[med-svn] [gnumed-client] 01/09: Imported Upstream version 1.6.0+dfsg

Andreas Tille tille at debian.org
Sat Mar 19 15:11:05 UTC 2016


This is an automated email from the git hooks/post-receive script.

tille pushed a commit to branch master
in repository gnumed-client.

commit 9e9b066bc3fa0efba6a93045c7641bb1df731ae4
Author: Andreas Tille <tille at debian.org>
Date:   Sat Mar 19 13:52:45 2016 +0100

    Imported Upstream version 1.6.0+dfsg
---
 client/CHANGELOG                                   |   109 +-
 client/appdata.xml                                 |    36 +
 client/business/gmATC.py                           |    26 +-
 client/business/gmAllergy.py                       |   137 +-
 client/business/gmArriba.py                        |     6 +-
 client/business/gmAutoHints.py                     |   319 +
 client/business/gmCA_MSVA.py                       |     4 +-
 client/business/gmClinNarrative.py                 |   207 +-
 client/business/gmClinicalCalculator.py            |    19 +-
 client/business/gmClinicalRecord.py                |   662 +-
 client/business/gmDICOM.py                         |   959 +
 client/business/gmDataMining.py                    |     4 +-
 client/business/gmDemographicRecord.py             |   167 +-
 client/business/gmDocuments.py                     |   121 +-
 client/business/gmEMRStructItems.py                |   434 +-
 client/business/gmExportArea.py                    |   122 +-
 client/business/gmFamilyHistory.py                 |    18 +-
 client/business/gmForms.py                         |   299 +-
 client/business/gmHL7.py                           |   251 +-
 client/business/gmKVK.py                           |    16 +-
 client/business/gmLOINC.py                         |    22 +-
 client/business/gmMedication.py                    |  1223 +-
 client/business/gmOrganization.py                  |    25 +-
 client/business/gmPathLab.py                       |   125 +-
 client/business/gmPerson.py                        |   298 +-
 client/business/gmPersonSearch.py                  |    98 +-
 client/business/gmPracSoftAU.py                    |     9 +-
 client/business/gmPraxis.py                        |    41 +
 client/business/gmProviderInbox.py                 |   260 +-
 client/business/gmSOAPimporter.py                  |     8 +-
 client/business/gmSoapDefs.py                      |   105 +
 client/business/gmStaff.py                         |    12 +-
 client/business/gmVCard.py                         |    29 +-
 client/business/gmVaccination.py                   |    17 +-
 client/business/gmXdtMappings.py                   |    32 +-
 client/business/gmXdtObjects.py                    |    16 +-
 client/doc/gm-describe_file.1                      |    44 +
 client/doc/gnumed.1                                |     2 +-
 client/doc/gnumed.conf.example                     |     8 +-
 .../doc/schema/gnumed-entire_schema-no_audit.dot   |   285 +-
 client/doc/schema/gnumed-entire_schema.html        | 68329 ++++++++++++-------
 client/etc/gnumed/gnumed-client.conf.example       |     8 +-
 client/exporters/gmPatientExporter.py              |   274 +-
 client/exporters/timeline.py                       |    10 +-
 client/gm-from-vcs.conf                            |     8 +-
 client/gm-from-vcs.sh                              |    24 +-
 client/gnumed.py                                   |    79 +-
 client/po/ar-gnumed.mo                             |   Bin 3003 -> 2373 bytes
 client/po/ar.po                                    |  4017 +-
 client/po/bg-gnumed.mo                             |   Bin 1340 -> 1340 bytes
 client/po/bg.po                                    |  4205 +-
 client/po/ca-gnumed.mo                             |   Bin 25609 -> 25469 bytes
 client/po/ca.po                                    |  3510 +-
 client/po/cs-gnumed.mo                             |   Bin 28175 -> 27310 bytes
 client/po/cs.po                                    |  4276 +-
 client/po/da-gnumed.mo                             |   Bin 3284 -> 3284 bytes
 client/po/da.po                                    |  4655 +-
 client/po/de-gnumed.mo                             |   Bin 452445 -> 474046 bytes
 client/po/de.po                                    |  7448 +-
 client/po/el-gnumed.mo                             |   Bin 79826 -> 76625 bytes
 client/po/el.po                                    |  4668 +-
 client/po/en_AU-gnumed.mo                          |   Bin 6734 -> 4988 bytes
 client/po/en_AU.po                                 |  4297 +-
 client/po/en_CA-gnumed.mo                          |   Bin 15791 -> 15065 bytes
 client/po/en_CA.po                                 |  4458 +-
 client/po/es-gnumed.mo                             |   Bin 492335 -> 511780 bytes
 client/po/es.po                                    |  7752 ++-
 client/po/fr-gnumed.mo                             |   Bin 155891 -> 152111 bytes
 client/po/fr.po                                    |  5613 +-
 client/po/id-gnumed.mo                             |   Bin 6379 -> 4526 bytes
 client/po/id.po                                    |  4058 +-
 client/po/it-gnumed.mo                             |   Bin 104264 -> 101346 bytes
 client/po/it.po                                    |  4994 +-
 client/po/ka-gnumed.mo                             |   Bin 2267 -> 1928 bytes
 client/po/ka.po                                    |  4194 +-
 client/po/nb-gnumed.mo                             |   Bin 2194 -> 2194 bytes
 client/po/nb.po                                    |  4873 +-
 client/po/nl-gnumed.mo                             |   Bin 146448 -> 141901 bytes
 client/po/nl.po                                    |  7626 ++-
 client/po/pl-gnumed.mo                             |   Bin 37589 -> 35554 bytes
 client/po/pl.po                                    |  4873 +-
 client/po/pt-gnumed.mo                             |   Bin 128341 -> 125025 bytes
 client/po/pt.po                                    |  4997 +-
 client/po/pt_BR-gnumed.mo                          |   Bin 153442 -> 148846 bytes
 client/po/pt_BR.po                                 |  5017 +-
 client/po/ro-gnumed.mo                             |   Bin 2847 -> 1311 bytes
 client/po/ro.po                                    |  4284 +-
 client/po/ru-gnumed.mo                             |   Bin 442369 -> 431809 bytes
 client/po/ru.po                                    |  5834 +-
 client/po/ru_RU-gnumed.mo                          |   Bin 463605 -> 451394 bytes
 client/po/ru_RU.po                                 |  5565 +-
 client/po/sq-gnumed.mo                             |   Bin 37257 -> 33489 bytes
 client/po/sq.po                                    |  4742 +-
 client/po/sr-gnumed.mo                             |   Bin 16044 -> 14583 bytes
 client/po/sr.po                                    |  4555 +-
 client/po/sv-gnumed.mo                             |   Bin 64576 -> 61655 bytes
 client/po/sv.po                                    |  4663 +-
 client/po/tr-gnumed.mo                             |   Bin 2166 -> 1940 bytes
 client/po/tr.po                                    |  3972 +-
 client/po/uk-gnumed.mo                             |   Bin 2715 -> 862 bytes
 client/po/uk.po                                    |  4607 +-
 client/po/zh_TW-gnumed.mo                          |   Bin 2740 -> 2740 bytes
 client/po/zh_TW.po                                 |  3967 +-
 client/pycommon/gmBackendListener.py               |    79 +-
 client/pycommon/gmBorg.py                          |    27 +-
 client/pycommon/gmBusinessDBObject.py              |    94 +-
 client/pycommon/gmCfg.py                           |    12 +-
 client/pycommon/gmCfg2.py                          |    66 +-
 client/pycommon/gmConfigCommon.py                  |   872 -
 client/pycommon/gmDateTime.py                      |   191 +-
 client/pycommon/gmDispatcher.py                    |    67 +-
 client/pycommon/gmExceptions.py                    |    53 +-
 client/pycommon/gmGuiBroker.py                     |   146 +-
 client/pycommon/gmHooks.py                         |    15 +-
 client/pycommon/gmI18N.py                          |    43 +-
 client/pycommon/gmLog2.py                          |     9 +-
 client/pycommon/gmLoginInfo.py                     |    11 +-
 client/pycommon/gmMatchProvider.py                 |    12 +-
 client/pycommon/gmMimeLib.py                       |   115 +-
 client/pycommon/gmMimeMagic.py                     |    35 +-
 client/pycommon/gmNetworkTools.py                  |    21 +-
 client/pycommon/gmNull.py                          |    15 +-
 client/pycommon/gmPG2.py                           |   344 +-
 client/pycommon/gmPrinting.py                      |    36 +-
 client/pycommon/gmPsql.py                          |    78 +-
 client/pycommon/gmScanBackend.py                   |    19 +-
 client/pycommon/gmScriptingListener.py             |     2 +-
 client/pycommon/gmShellAPI.py                      |    23 +-
 client/pycommon/gmTools.py                         |   751 +-
 client/sitecustomize.py                            |    32 +-
 client/wxGladeWidgets/wxgActiveEncounterPnl.py     |    37 +-
 client/wxGladeWidgets/wxgBrandedDrugEAPnl.py       |     5 +-
 .../wxGladeWidgets/wxgConsumableSubstanceEAPnl.py  |     2 +-
 client/wxGladeWidgets/wxgCurrentMedicationEAPnl.py |    98 +-
 client/wxGladeWidgets/wxgDataMiningPnl.py          |     2 +-
 client/wxGladeWidgets/wxgDrugComponentEAPnl.py     |     3 +-
 client/wxGladeWidgets/wxgDynamicHintDlg.py         |     2 +-
 client/wxGladeWidgets/wxgEMRJournalPluginPnl.py    |   118 +-
 .../wxGladeWidgets/wxgEMRListJournalPluginPnl.py   |    99 +
 client/wxGladeWidgets/wxgExportAreaPluginPnl.py    |     2 +-
 client/wxGladeWidgets/wxgGenericListManagerPnl.py  |    20 +-
 client/wxGladeWidgets/wxgGenericListSelectorDlg.py |   235 +-
 ...tsDetailsPnl.py => wxgMeasurementsAsListPnl.py} |    30 +-
 client/wxGladeWidgets/wxgMeasurementsAsTablePnl.py |    95 +
 .../wxGladeWidgets/wxgMeasurementsByBatteryPnl.py  |    65 +
 ...ntsDetailsPnl.py => wxgMeasurementsByDayPnl.py} |    29 +-
 client/wxGladeWidgets/wxgMeasurementsPnl.py        |     4 +-
 .../wxGladeWidgets/wxgModifyOrthancContentDlg.py   |    80 +
 client/wxGladeWidgets/wxgOrganizationManagerDlg.py |    41 +-
 client/wxGladeWidgets/wxgPACSPluginPnl.py          |   161 +
 client/wxGladeWidgets/wxgProgressNotesEAPnl.py     |   127 +
 client/wxGladeWidgets/wxgProviderInboxPnl.py       |     5 -
 client/wxGladeWidgets/wxgScanIdxPnl.py             |   336 +-
 .../wxgSoapNoteExpandoEditAreaPnl.py               |   133 -
 client/wxGladeWidgets/wxgSoapPluginPnl.py          |    31 +-
 .../wxGladeWidgets/wxgSplittedEMRTreeBrowserPnl.py |     2 +-
 client/wxGladeWidgets/wxgSubstanceAbuseEAPnl.py    |    33 +-
 client/wxGladeWidgets/wxgTopPnl.py                 |   120 +-
 client/wxGladeWidgets/wxgUnhandledExceptionDlg.py  |   233 +-
 client/wxGladeWidgets/wxgVaccineEAPnl.py           |     6 +-
 client/wxpython/gmAddressWidgets.py                |    74 +-
 client/wxpython/gmAutoHintWidgets.py               |    19 +-
 client/wxpython/gmBillingWidgets.py                |    14 +-
 client/wxpython/gmChartPullingWidgets.py           |     2 +-
 client/wxpython/gmContactWidgets.py                |     2 +-
 client/wxpython/gmDataMiningWidgets.py             |    24 +-
 client/wxpython/gmDateTimeInput.py                 |     8 +-
 client/wxpython/gmDemographicsWidgets.py           |    62 +-
 client/wxpython/gmDocumentWidgets.py               |  1014 +-
 client/wxpython/gmEMRBrowser.py                    |   436 +-
 client/wxpython/gmEMRStructWidgets.py              |    63 +-
 client/wxpython/gmEMRTimelineWidgets.py            |     1 -
 client/wxpython/gmEditArea.py                      |    36 +-
 client/wxpython/gmEncounterWidgets.py              |     2 -
 client/wxpython/gmExportAreaWidgets.py             |    63 +-
 client/wxpython/gmExternalCareWidgets.py           |     5 +-
 client/wxpython/gmFormWidgets.py                   |    13 +-
 client/wxpython/gmGuiHelpers.py                    |    44 +-
 client/wxpython/gmGuiMain.py                       |   409 +-
 client/wxpython/gmHabitWidgets.py                  |   345 +
 client/wxpython/gmHorstSpace.py                    |     2 +-
 client/wxpython/gmKeywordExpansionWidgets.py       |    87 +-
 client/wxpython/gmListWidgets.py                   |  1320 +-
 client/wxpython/gmMacro.py                         |   868 +-
 client/wxpython/gmMeasurementWidgets.py            |   617 +-
 client/wxpython/gmMedicationWidgets.py             |  1803 +-
 client/wxpython/gmNarrativeWidgets.py              |  1710 +-
 client/wxpython/gmNarrativeWorkflows.py            |   884 +
 client/wxpython/gmOrganizationWidgets.py           |     5 +-
 client/wxpython/gmPatOverviewWidgets.py            |   100 +-
 client/wxpython/gmPatPicWidgets.py                 |    16 +-
 client/wxpython/gmPatSearchWidgets.py              |    57 +-
 client/wxpython/gmPersonContactWidgets.py          |    21 +-
 client/wxpython/gmPersonCreationWidgets.py         |     6 +-
 client/wxpython/gmPhraseWheel.py                   |    44 +-
 client/wxpython/gmPlugin.py                        |    19 +-
 client/wxpython/gmPraxisWidgets.py                 |     5 +-
 client/wxpython/gmPregWidgets.py                   |    35 +-
 client/wxpython/gmProgressNotesEAWidgets.py        |   420 +
 client/wxpython/gmProviderInboxWidgets.py          |    44 +-
 client/wxpython/gmRegetMixin.py                    |     1 +
 client/wxpython/gmResizingWidgets.py               |     4 +-
 client/wxpython/gmSOAPWidgets.py                   |     2 +-
 client/wxpython/gmSnellen.py                       |     2 +-
 client/wxpython/gmSoapSTCWidgets.py                |  1209 +
 client/wxpython/gmStaffWidgets.py                  |     5 +-
 client/wxpython/gmSubstanceMgmtWidgets.py          |  1189 +
 client/wxpython/gmTextCtrl.py                      |   355 +-
 client/wxpython/gmTimer.py                         |    10 +-
 client/wxpython/gmTopPanel.py                      |    93 +-
 client/wxpython/gmVaccWidgets.py                   |     2 +-
 client/wxpython/gmVisualProgressNoteWidgets.py     |   436 +
 client/wxpython/gmWaitingListWidgets.py            |     8 +-
 client/wxpython/gui/gmCardiacDevicePlugin.py       |     2 +-
 client/wxpython/gui/gmEMRBrowserPlugin.py          |     6 +-
 client/wxpython/gui/gmEMRJournalPlugin.py          |     6 +-
 ...RJournalPlugin.py => gmEMRListJournalPlugin.py} |    23 +-
 client/wxpython/gui/gmEMRTimelinePlugin.py         |     5 +-
 client/wxpython/gui/gmExamplePlugin.py             |     2 +-
 client/wxpython/gui/gmExportAreaPlugin.py          |     2 +-
 client/wxpython/gui/gmMeasurementsPlugin.py        |    61 +
 .../gui/gmNotebookedPatientEditionPlugin.py        |     2 +-
 .../gui/gmNotebookedProgressNoteInputPlugin.py     |     2 +-
 client/wxpython/gui/gmPACSPlugin.py                |    54 +
 client/wxpython/gui/gmPatientOverviewPlugin.py     |     2 +-
 client/wxpython/gui/gmPrintManagerPlugin.py        |     2 +-
 client/wxpython/gui/gmSimpleSoapPlugin.py          |     2 +-
 client/wxpython/gui/gmSoapPlugin.py                |     2 +-
 client/wxpython/gui/gmXdtViewer.py                 |     6 +-
 external-tools/check-prerequisites.py              |    11 +
 external-tools/check-prerequisites.sh              |   132 +-
 231 files changed, 146863 insertions(+), 85823 deletions(-)

diff --git a/client/CHANGELOG b/client/CHANGELOG
index 42fe778..5729569 100644
--- a/client/CHANGELOG
+++ b/client/CHANGELOG
@@ -3,6 +3,77 @@
 *****************************************************************
 
 ------------------------------------------------
+# rel-1-6-patches
+------------------------------------------------
+
+	1.6.0
+
+NEW: plugin: list based EMR journal
+NEW: plugin: limited PACS access (Orthanc DICOM server)
+NEW: text editor like SOAP editor (STC based)
+NEW: first cut at German AMTS medication plan
+NEW: always display select measurements in top panel
+NEW: copy-to-clipboard list content via popup menu
+NEW: region support for placeholder output
+NEW: ellipsis support for placeholder output
+NEW: placeholder $range_of$
+NEW: placeholder $ph_cfg$
+NEW: placeholder $current_meds_AMTS$
+NEW: placeholder $praxis_vcf$
+NEW: placeholder <form_version_internal>
+NEW: placeholder <form_last_modified>
+NEW: placeholder $url_escape$
+NEW: add appdata.xml
+NEW: show patient address in openstreetmap
+NEW: support for substance abuse status (nicotine, ethanol, other)
+NEW: print EMR from EMR tree
+NEW: search in EMR journal view
+NEW: copy EMR journal to export area
+NEW: tooltip in procedures list
+NEW: browse tmp dir, ~/gnumed/, ~/.gnumed/ from client
+NEW: dynamic hint on outdated / questionable EDC
+NEW: HIT risk assessment algorithm
+
+IMPROVED: substance intake editing workflow
+IMPROVED: shutdown with dangling top level windows
+IMPROVED: list suppressed dynamic hints in patient overview [thanks Jim]
+IMPROVED: top panel active encounter area layout [thanks Jim]
+IMPROVED: measurements plots layout
+IMPROVED: injectable placeholders: support arbitrary names if desired
+IMPROVED: placeholder nesting regexen
+IMPROVED: enable nested placeholders in text engine, too
+IMPROVED: lab_panel.most_recent_results() can now respect meta types
+IMPROVED: ignore_dupes_on_picking seems a better item picker default
+IMPROVED: overall code towards Python 3 compatibility
+IMPROVED: CODE: cIdentity(Tag) -> cPerson(Tag)
+IMPROVED: security of tmp/sandbox dir setup
+IMPROVED: do not auto-plot results from edit area
+IMPROVED: much faster access to latest vaccinations
+IMPROVED: show all selected parts at once in new-document plugin
+IMPROVED: ask whether to create metadata when saving export area documents
+IMPROVED: EMR journal formatting
+IMPROVED: support deleting more than one list item at a time
+IMPROVED: put file from filename in clipboard into export area
+IMPROVED: startup shell script
+IMPROVED: procedure tooltip in patient overview Hx box
+IMPROVED: external care tooltip in patient overview problems box
+IMPROVED: tooltip in external care management list
+IMPROVED: substance intake timeframe formatting
+IMPROVED: layout of measurements plugin
+IMPROVED: properly show visual progress notes for empty issues in EMR tree
+IMPROVED: support for invoking file manager on a directory
+IMPROVED: show admin SOAP in EMR tree at encounter level
+IMPROVED: ACEI/pregnancy dynamic hint
+IMPROVED: data mining SQL now wants $<ID_ACTIVE_PATIENT>$ rather than $<ID_active_patient>$
+IMPROVED: can now delete EDC
+IMPROVED: support documenting which organization a document originated from
+IMPROVED: workflow for disabling an identity
+IMPROVED: EMR Journal formatting of hospital stays
+IMPROVED: new-document workflow
+IMPROVED: German referral letter
+IMPROVED: include clinical reminders with EMR Journal
+
+------------------------------------------------
 # rel-1-5-patches
 ------------------------------------------------
 
@@ -14,8 +85,6 @@ FIX: patient merging, again [thanks Marc]
 
 FIX: patient merging [thanks Marc]
 
-IMPROVED: update ES translations [thanks Uwe]
-
 	1.5.8
 
 FIX: SQL formatting when retrieving clinical narrative [thanks Marc]
@@ -34,7 +103,6 @@ IMPROVED: early startup logging
 IMPROVED: show low file location during startup
 IMPROVED: windows startup batch file
 IMPROVED: redirect wxPython log to python logging
-IMPROVED: set wxPython AssertMode appropriately
 
 	1.5.6
 
@@ -137,10 +205,6 @@ IMPROVED: new-documents virtual inbox message
 # rel-1-4-patches
 ------------------------------------------------
 
-	1.4.16
-
-FIX: exception in staff list if there is staff with deleted DB account
-
 	1.4.15
 
 FIX: exception on moving SOAP between encounters
@@ -1615,9 +1679,40 @@ FIX: missing cast to ::text in dem.date_trunc_utc() calls
 *****************************************************************
 
 ------------------------------------------------
+# gnumed_v21
+------------------------------------------------
+
+	21.0
+
+NEW: require PG 9.2 because of pg_trigger_depth()
+
+NEW: dem.v_basic_person -> dem.v_active_persons
+NEW: prevent deletion of staff records that are in use
+NEW: smoking support in clin.patient
+NEW: constraints on audit trail to be in the past
+NEW: check for track_commit_timestamp on PG > 9.5
+NEW: chunked md5() for large objects
+NEW: backup/restore scripts based on directory format
+
+IMPROVED: database restore default configuration
+IMPROVED: more resilient backups
+IMPROVED: all input files now utf8 (io.open() Py3 preps)
+IMPROVED: dem.state -> dem.region
+IMPROVED: dem.region.id -> dem.region.pk
+IMPROVED: dem.urb.id_state -> dem.urb.fk_region
+
+FIX: pg_trgm placement and use
+FIX: trigger on clin.procedure normalizing .is_ongoing
+
+------------------------------------------------
 # gnumed_v20
 ------------------------------------------------
 
+	20.11
+
+FIX: better REINDEXing before upgrade [thanks Jim]
+FIX: clin.procedure.is_ongoing=FALSE IF clin.procedure.clin_end < now() [thanks pg_upgrade]
+
 	20.10
 
 FIX: pg_trgm placement and use
diff --git a/client/appdata.xml b/client/appdata.xml
new file mode 100644
index 0000000..c81d8ff
--- /dev/null
+++ b/client/appdata.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright karsten.hilbert at gmx.net, GPL v2> -->
+<!-- Thanks to Carsten Grohmann <mail at carstengrohmann.de> -->
+<application>
+    <id type="desktop">gnumed-client.desktop</id>
+    <metadata_license>CC0-1.0</metadata_license>
+    <project_license>GPL v2 or later</project_license>
+    <name>GNUmed</name>
+    <summary>
+        An Electronic Medical Record for community care.
+    </summary>
+    <description>
+        <p>
+            GNUmeds purpose is to enable doctors to keep a medically
+            sound record on their patients' health. It does not currently
+            provide functionality for stock keeping. Clinical features
+            are well-tested by real doctors in the field.
+        </p>
+        <p>
+            While the GNUmed team has taken the utmost care to make sure
+            the medical records are safe at all times you still need to
+            make sure you are taking appropriate steps to backup the
+            medical data to a safe place at appropriate intervals. Do
+            not forget to test your recovery procedures, too !
+        </p>
+        <p>
+            Protect your data! GNUmed itself comes without
+            any warranty whatsoever. You have been warned.
+        </p>
+    </description>
+    <screenshots>
+        <screenshot type="default">http://wiki.gnumed.de</screenshot>
+    </screenshots>
+    <url type="homepage">http://www.gnumed.de</url>
+    <updatecontact>gnumed-devel_at_gnu.org</updatecontact>
+</application>
diff --git a/client/business/gmATC.py b/client/business/gmATC.py
index 52d81c6..e3bef98 100644
--- a/client/business/gmATC.py
+++ b/client/business/gmATC.py
@@ -5,25 +5,33 @@ http://who.no
 
 There is no DDD handling because DDD explicitely
 does not carry clinical meaning.
-
-license: GPL v2 or later
 """
 #============================================================
-__version__ = "$Revision: 1.7 $"
 __author__ = "K.Hilbert <Karsten.Hilbert at gmx.net>"
+__license__ = "GPL v2 or later"
 
-import sys, codecs, logging, csv, re as regex, os.path
+import sys
+import io
+import logging
+import csv
+import os.path
+import re as regex
 
 
 if __name__ == '__main__':
 	sys.path.insert(0, '../../')
-from Gnumed.pycommon import gmPG2, gmTools, gmCfg2
+from Gnumed.pycommon import gmPG2
+from Gnumed.pycommon import gmTools
+from Gnumed.pycommon import gmCfg2
 
 
 _log = logging.getLogger('gm.atc')
-_log.info(__version__)
-
 _cfg = gmCfg2.gmCfgData()
+
+
+ATC_NICOTINE = u'N07BA01'
+ATC_ETHANOL  = u'V03AB16'
+
 #============================================================
 def propagate_atc(substance=None, atc=None):
 
@@ -53,6 +61,7 @@ def propagate_atc(substance=None, atc=None):
 	gmPG2.run_rw_queries(queries = queries)
 
 	return atc
+
 #============================================================
 def text2atc(text=None, fuzzy=False):
 
@@ -158,7 +167,7 @@ insert into ref.data_source (name_long, name_short, version, description, lang,
 	_log.debug('ATC data source record created, pk is #%s', data_src_pk)
 
 	# import data
-	csv_file = codecs.open(data_fname, 'rU', 'utf8', 'replace')
+	csv_file = io.open(data_fname, mode = 'rt', encoding = 'utf8', errors = 'replace')
 	atc_reader = gmTools.unicode_csv_reader(csv_file, delimiter = ",", quotechar = '"')
 
 	# clean out staging area
@@ -256,6 +265,7 @@ from
 	_log.debug('ATC staging table emptied')
 
 	return True
+
 #============================================================
 # main
 #------------------------------------------------------------
diff --git a/client/business/gmAllergy.py b/client/business/gmAllergy.py
index 3557acf..acbe75f 100644
--- a/client/business/gmAllergy.py
+++ b/client/business/gmAllergy.py
@@ -1,3 +1,4 @@
+# -*- coding: utf-8 -*-
 """GNUmed allergy related business object."""
 #============================================================
 __author__ = "Carlos Moro <cfmoro1976 at yahoo.es>"
@@ -12,6 +13,7 @@ from Gnumed.pycommon import gmPG2
 from Gnumed.pycommon import gmI18N
 from Gnumed.pycommon import gmBusinessDBObject
 from Gnumed.pycommon import gmDateTime
+from Gnumed.pycommon import gmTools
 
 
 _log = logging.getLogger('gm.domain')
@@ -58,6 +60,7 @@ def ensure_has_allergy_state(encounter=None):
 	)
 
 	return cAllergyState(aPK_obj = rows[0][0])
+
 #------------------------------------------------------------
 class cAllergyState(gmBusinessDBObject.cBusinessDBObject):
 	"""Represents the allergy state of one patient."""
@@ -67,7 +70,7 @@ class cAllergyState(gmBusinessDBObject.cBusinessDBObject):
 		u"""update clin.allergy_state set
 				last_confirmed = %(last_confirmed)s,
 				has_allergy = %(has_allergy)s,
-				comment = %(comment)s
+				comment = gm.nullify_empty_string(%(comment)s)
 			where
 				pk = %(pk_allergy_state)s and
 				xmin = %(xmin_allergy_state)s""",
@@ -78,6 +81,18 @@ class cAllergyState(gmBusinessDBObject.cBusinessDBObject):
 		'has_allergy',			# verified against allergy_states (see above)
 		'comment'				# u'' maps to None / NULL
 	]
+
+	#--------------------------------------------------------
+	def format_maximum_information(self, patient=None):
+		lines = []
+		lines.append(u'%s (%s)' % (
+			self.state_string,
+			gmDateTime.pydt_strftime(self['last_confirmed'], '%Y %b %d', none_str = u'?')
+		))
+		if self._payload[self._idx['comment']] is not None:
+			lines.append(u' %s' % self._payload[self._idx['comment']])
+		return lines
+
 	#--------------------------------------------------------
 	# properties
 	#--------------------------------------------------------
@@ -95,6 +110,7 @@ class cAllergyState(gmBusinessDBObject.cBusinessDBObject):
 		raise AttributeError('invalid to set allergy state string')
 
 	state_string = property(_get_as_string, _set_string)
+
 	#--------------------------------------------------------
 	def _get_as_symbol(self):
 		if self._payload[self._idx['has_allergy']] is None:
@@ -113,6 +129,55 @@ class cAllergyState(gmBusinessDBObject.cBusinessDBObject):
 		return _('ERROR: unknown allergy state [%s]') % self._payload[self._idx['has_allergy']]
 
 	state_symbol = property(_get_as_symbol, lambda x:x)
+
+	#--------------------------------------------------------
+	def _get_as_amts_latex(self, strict=True):
+		table_rows = []
+		# Trennzeile als leere Zeile für bessere Lesbarkeit
+		table_rows.append(u'\\multicolumn{11}{l}{}\\tabularnewline')
+		# Zwischenüberschrift: 31 Zeichen, $..., 14pt, no frame, \textwidth
+		state = u'%s (%s)' % (
+			self.state_string,
+			gmDateTime.pydt_strftime(self['last_confirmed'], '%b %Y')
+		)
+		if strict:
+			state = state[:31]
+		table_rows.append(u'\\multicolumn{11}{>{\\RaggedRight}p{27.9cm}}{\\rule{0pt}{4.5mm} \\fontsize{14pt}{16pt}\selectfont %s\label{AnchorAllergieDetails}}\\tabularnewline' % gmTools.tex_escape_string(state))
+		# Freitextzeile: 200 Zeichen, @..., \textwidth
+		if self['comment'] is not None:
+			if strict:
+				cmt = self['comment'].strip()[:200]
+			else:
+				cmt = self['comment'].strip()
+			table_rows.append(u'\\multicolumn{11}{>{\\RaggedRight}p{27.9cm}}{%s}\\tabularnewline') % gmTools.tex_escape_string(cmt)
+		return table_rows
+
+	as_amts_latex = property(_get_as_amts_latex, lambda x:x)
+
+	#--------------------------------------------------------
+	def _get_as_amts_data(self, strict=True):
+		lines = []
+		# Trennzeile für bessere Lesbarkeit als leere Zwischenüberschrift
+		lines.append(u'$ ')
+		# Zwischenüberschrift: 31 Zeichen, $..., \textwidth
+		txt = u'$%s (%s)' % (
+			self.state_string,
+			gmDateTime.pydt_strftime(self['last_confirmed'], '%b %Y')
+		)
+		if strict:
+			lines.append(txt[:32])
+		else:
+			lines.append(txt)
+		# Freitextzeile: 200 Zeichen, @..., \textwidth
+		if self['comment'] is not None:
+			if strict:
+				lines.append(u'@%s' % self['comment'][:200])
+			else:
+				lines.append(u'@%s' % self['comment'])
+		return lines
+
+	as_amts_data = property(_get_as_amts_data, lambda x:x)
+
 	#--------------------------------------------------------
 	def __setitem__(self, attribute, value):
 		if attribute == u'comment':
@@ -129,6 +194,7 @@ class cAllergyState(gmBusinessDBObject.cBusinessDBObject):
 				raise ValueError('invalid allergy state [%s]' % value)
 
 		gmBusinessDBObject.cBusinessDBObject.__setitem__(self, attribute, value)
+
 #============================================================
 class cAllergy(gmBusinessDBObject.cBusinessDBObject):
 	"""Represents one allergy item.
@@ -170,6 +236,43 @@ class cAllergy(gmBusinessDBObject.cBusinessDBObject):
 		'reaction'
 	]
 	#--------------------------------------------------------
+	def format_maximum_information(self, patient=None):
+		lines = []
+		lines.append(u'%s%s: %s     [#%s]' % (
+			self._payload[self._idx['l10n_type']],
+			gmTools.bool2subst (
+				self._payload[self._idx['definite']],
+				u' (%s)' % _('definite'),
+				u' (%s)' % _('indefinite'),
+				u''
+			),
+			self._payload[self._idx['descriptor']],
+			self._payload[self._idx['pk_allergy']]
+		))
+		if self._payload[self._idx['reaction']] is not None:
+			lines.append(u' ' + _('Reaction:') + u' ' + self._payload[self._idx['reaction']])
+		if self._payload[self._idx['date']] is not None:
+			lines.append(u' ' + _('Noted:') + u' ' + gmDateTime.pydt_strftime(self._payload[self._idx['date']], '%Y %b %d'))
+		if self._payload[self._idx['allergene']] is not None:
+			lines.append(u' ' + _('Allergene:') + u' ' + self._payload[self._idx['allergene']])
+		if self._payload[self._idx['substance']] is not None:
+			lines.append(u' ' + _('Substance:') + u' ' + self._payload[self._idx['substance']])
+		if self._payload[self._idx['substance_code']] is not None:
+			lines.append(u' ' + _('Code:') + u' ' + self._payload[self._idx['substance_code']])
+		if self._payload[self._idx['atc_code']] is not None:
+			lines.append(u' ' + _('ATC:') + u' ' + self._payload[self._idx['atc_code']])
+		lines.append(u' ' + _('Specific to:') + u' ' + gmTools.bool2subst (
+			self._payload[self._idx['generic_specific']],
+			_('this substance only'),
+			_('drug class'),
+			_('unknown')
+		))
+		if self._payload[self._idx['generics']] is not None:
+			lines.append(u' ' + _('Generics:') + u' ' + self._payload[self._idx['generics']])
+
+		return lines
+
+	#--------------------------------------------------------
 	def __setitem__(self, attribute, value):
 		if attribute == 'pk_type':
 			if value in ['allergy', 'sensitivity']:
@@ -178,6 +281,38 @@ class cAllergy(gmBusinessDBObject.cBusinessDBObject):
 				value = rows[0][0]
 
 		gmBusinessDBObject.cBusinessDBObject.__setitem__(self, attribute, value)
+
+	#--------------------------------------------------------
+	def _get_as_amts_latex(self, strict=True):
+		# Freitextzeile: 200 Zeichen, @...
+		cells = [u'\\multicolumn{1}{>{\\RaggedRight}p{4cm}}{%s}' % gmTools.tex_escape_string(self['descriptor'])]
+		txt = u'%s%s' % (
+			self['l10n_type'],
+			gmTools.coalesce(self['reaction'], u'', u': %s')
+		)
+		if strict:
+			txt = txt[:(200-len(self['descriptor']))]
+		cells.append(u'\\multicolumn{10}{>{\\RaggedRight}p{23.9cm}}{%s}' % gmTools.tex_escape_string(txt))
+		table_row = u' & '.join(cells)
+		table_row += u'\\tabularnewline'
+		return table_row
+
+	as_amts_latex = property(_get_as_amts_latex, lambda x:x)
+
+	#--------------------------------------------------------
+	def _get_as_amts_data(self, strict=True):
+		# Freitextzeile: 200 Zeichen, @..., \textwidth
+		txt = u'@%s %s%s' % (
+			self['descriptor'],
+			self['l10n_type'],
+			gmTools.coalesce(self['reaction'], u'', u': %s')
+		)
+		if strict:
+			return txt[:200]
+		return txt
+
+	as_amts_data = property(_get_as_amts_data, lambda x:x)
+
 #============================================================
 # convenience functions
 #------------------------------------------------------------
diff --git a/client/business/gmArriba.py b/client/business/gmArriba.py
index 2dff81c..7433a4f 100644
--- a/client/business/gmArriba.py
+++ b/client/business/gmArriba.py
@@ -20,7 +20,7 @@ __author__ = "K.Hilbert <Karsten.Hilbert at gmx.net>"
 # std lib
 import os
 import sys
-import codecs
+import io
 import subprocess
 import logging
 
@@ -115,7 +115,7 @@ class cArriba(object):
 		fname_status = gmTools.get_unique_filename(prefix = 'arriba2gm_status-', suffix = '.xml')
 		self.xml_result = gmTools.get_unique_filename(prefix = 'arriba2gm_result-', suffix = '.xml')
 		self.pdf_result = gmTools.get_unique_filename(prefix = 'arriba2gm_result-', suffix = '.pdf')
-		xml_file = codecs.open(fname_cfg, 'wb', 'utf8', 'replace')
+		xml_file = io.open(fname_cfg, mode = 'wt', encoding = 'utf8', errors = 'replace')
 		xml_file.write (xml % (
 			pat_xml,
 			fname_status,
@@ -177,7 +177,7 @@ if __name__ == "__main__":
 
 	from Gnumed.business import gmPerson
 
-	gmPerson.set_active_patient(patient = gmPerson.cIdentity(aPK_obj = 12))
+	gmPerson.set_active_patient(patient = gmPerson.cPerson(aPK_obj = 12))
 
 	arriba = cArriba()
 	print arriba
diff --git a/client/business/gmAutoHints.py b/client/business/gmAutoHints.py
new file mode 100644
index 0000000..c449a9f
--- /dev/null
+++ b/client/business/gmAutoHints.py
@@ -0,0 +1,319 @@
+# -*- coding: utf-8 -*-
+"""GNUmed auto hints middleware.
+
+This should eventually end up in a class cPractice.
+"""
+#============================================================
+__license__ = "GPL"
+__author__ = "K.Hilbert <Karsten.Hilbert at gmx.net>"
+
+
+import sys
+import logging
+
+
+if __name__ == '__main__':
+	sys.path.insert(0, '../../')
+from Gnumed.pycommon import gmPG2
+from Gnumed.pycommon import gmBusinessDBObject
+from Gnumed.pycommon import gmTools
+from Gnumed.pycommon import gmDateTime
+
+from Gnumed.business import gmStaff
+
+_log = logging.getLogger('gm.hints')
+
+#============================================================
+# dynamic hints API
+#------------------------------------------------------------
+_SQL_get_dynamic_hints = u"SELECT * FROM ref.v_auto_hints WHERE %s"
+
+class cDynamicHint(gmBusinessDBObject.cBusinessDBObject):
+	"""Represents dynamic hints to be run against the database."""
+
+	_cmd_fetch_payload = _SQL_get_dynamic_hints % u"pk_auto_hint = %s"
+	_cmds_store_payload = [
+		u"""UPDATE ref.auto_hint SET
+				query = gm.nullify_empty_string(%(query)s),
+				recommendation_query = gm.nullify_empty_string(%(recommendation_query)s),
+				title = gm.nullify_empty_string(%(title)s),
+				hint = gm.nullify_empty_string(%(hint)s),
+				url = gm.nullify_empty_string(%(url)s),
+				source = gm.nullify_empty_string(%(source)s),
+				is_active = %(is_active)s
+			WHERE
+				pk = %(pk_auto_hint)s
+					AND
+				xmin = %(xmin_auto_hint)s
+			RETURNING
+				xmin AS xmin_auto_hint
+		"""
+	]
+	_updatable_fields = [
+		u'query',
+		u'recommendation_query',
+		u'title',
+		u'hint',
+		u'url',
+		u'source',
+		u'is_active'
+	]
+	#--------------------------------------------------------
+	def format(self):
+		txt = u'%s               [#%s]\n' % (
+			gmTools.bool2subst(self._payload[self._idx['is_active']], _('Active clinical hint'), _('Inactive clinical hint')),
+			self._payload[self._idx['pk_auto_hint']]
+		)
+		txt += u'\n'
+		txt += self._payload[self._idx['title']]
+		txt += u'\n'
+		txt += u'\n'
+		txt += _('Source: %s\n') % self._payload[self._idx['source']]
+		txt += _('Language: %s\n') % self._payload[self._idx['lang']]
+		txt += u'\n'
+		txt += gmTools.wrap(self._payload[self._idx['hint']], width = 50, initial_indent = u' ', subsequent_indent = u' ')
+		txt += u'\n'
+		txt += u'\n'
+		if self._payload[self._idx['recommendation']] is not None:
+			txt += gmTools.wrap(self._payload[self._idx['recommendation']], width = 50, initial_indent = u' ', subsequent_indent = u' ')
+			txt += u'\n'
+			txt += u'\n'
+		txt += gmTools.wrap (
+			gmTools.coalesce(self._payload[self._idx['url']], u''),
+			width = 50,
+			initial_indent = u' ',
+			subsequent_indent = u' '
+		)
+		txt += u'\n'
+		txt += u'\n'
+		txt += gmTools.wrap(self._payload[self._idx['query']], width = 50, initial_indent = u' ', subsequent_indent = u' ')
+		txt += u'\n'
+		if self._payload[self._idx['recommendation_query']] is not None:
+			txt += u'\n'
+			txt += gmTools.wrap(self._payload[self._idx['recommendation_query']], width = 50, initial_indent = u' ', subsequent_indent = u' ')
+			txt += u'\n'
+		return txt
+	#--------------------------------------------------------
+	def suppress(self, rationale=None, pk_encounter=None):
+		return suppress_dynamic_hint (
+			pk_hint = self._payload[self._idx['pk_auto_hint']],
+			pk_encounter = pk_encounter,
+			rationale = rationale
+		)
+	#--------------------------------------------------------
+	def invalidate_suppression(self, pk_encounter=None):
+		return invalidate_hint_suppression (
+			pk_hint = self._payload[self._idx['pk_auto_hint']],
+			pk_encounter = pk_encounter
+		)
+
+#------------------------------------------------------------
+def get_dynamic_hints(order_by=None, link_obj=None):
+	if order_by is None:
+		order_by = u'TRUE'
+	else:
+		order_by = u'TRUE ORDER BY %s' % order_by
+
+	cmd = _SQL_get_dynamic_hints % order_by
+	rows, idx = gmPG2.run_ro_queries(link_obj = link_obj, queries = [{'cmd': cmd}], get_col_idx = True)
+	return [ cDynamicHint(row = {'data': r, 'idx': idx, 'pk_field': 'pk_auto_hint'}) for r in rows ]
+
+#------------------------------------------------------------
+def create_dynamic_hint(link_obj=None, query=None, title=None, hint=None, source=None):
+	args = {
+		u'query': query,
+		u'title': title,
+		u'hint': hint,
+		u'source': source,
+		u'usr': gmStaff.gmCurrentProvider()['db_user']
+	}
+	cmd = u"""
+		INSERT INTO ref.auto_hint (
+			query,
+			title,
+			hint,
+			source,
+			lang
+		) VALUES (
+			gm.nullify_empty_string(%(query)s),
+			gm.nullify_empty_string(%(title)s),
+			gm.nullify_empty_string(%(hint)s),
+			gm.nullify_empty_string(%(source)s),
+			i18n.get_curr_lang(%(usr)s)
+		)
+		RETURNING pk
+	"""
+	rows, idx = gmPG2.run_rw_queries(link_obj = link_obj, queries = [{'cmd': cmd, 'args': args}], return_data = True, get_col_idx = True)
+	return cDynamicHint(aPK_obj = rows[0]['pk'], link_obj = link_obj)
+
+#------------------------------------------------------------
+def delete_dynamic_hint(link_obj=None, pk_hint=None):
+	args = {'pk': pk_hint}
+	cmd = u"DELETE FROM ref.auto_hint WHERE pk = %(pk)s"
+	gmPG2.run_rw_queries(link_obj = link_obj, queries = [{'cmd': cmd, 'args': args}])
+	return True
+
+#------------------------------------------------------------
+def get_hints_for_patient(pk_identity=None, include_suppressed_needing_invalidation=False):
+	conn = gmPG2.get_connection()
+	curs = conn.cursor()
+	curs.callproc('clin.get_hints_for_patient', [pk_identity])
+	rows = curs.fetchall()
+	idx = gmPG2.get_col_indices(curs)
+	curs.close()
+	conn.rollback()
+	if not include_suppressed_needing_invalidation:
+		return [ cDynamicHint(row = {'data': r, 'idx': idx, 'pk_field': 'pk_auto_hint'}) for r in rows if r['rationale4suppression'] != 'magic_tag::please_invalidate_suppression' ]
+	return [ cDynamicHint(row = {'data': r, 'idx': idx, 'pk_field': 'pk_auto_hint'}) for r in rows ]
+
+#------------------------------------------------------------
+def suppress_dynamic_hint(pk_hint=None, rationale=None, pk_encounter=None):
+	args = {
+		'hint': pk_hint,
+		'rationale': rationale,
+		'enc': pk_encounter
+	}
+	cmd = u"""
+		DELETE FROM clin.suppressed_hint
+		WHERE
+			fk_hint = %(hint)s
+				AND
+			fk_encounter IN (
+				SELECT pk FROM clin.encounter WHERE fk_patient = (
+					SELECT fk_patient FROM clin.encounter WHERE pk = %(enc)s
+				)
+			)
+	"""
+	queries = [{'cmd': cmd, 'args': args}]
+	cmd = u"""
+		INSERT INTO clin.suppressed_hint (
+			fk_encounter,
+			fk_hint,
+			rationale,
+			md5_sum
+		) VALUES (
+			%(enc)s,
+			%(hint)s,
+			%(rationale)s,
+			(SELECT r_vah.md5_sum FROM ref.v_auto_hints r_vah WHERE r_vah.pk_auto_hint = %(hint)s)
+		)
+	"""
+	queries.append({'cmd': cmd, 'args': args})
+	gmPG2.run_rw_queries(queries = queries)
+	return True
+
+#------------------------------------------------------------
+# suppressed dynamic hints
+#------------------------------------------------------------
+_SQL_get_suppressed_hints = u"SELECT * FROM clin.v_suppressed_hints WHERE %s"
+
+class cSuppressedHint(gmBusinessDBObject.cBusinessDBObject):
+	"""Represents suppressed dynamic hints per patient."""
+
+	_cmd_fetch_payload = _SQL_get_suppressed_hints % u"pk_suppressed_hint = %s"
+	_cmds_store_payload = []
+	_updatable_fields = []
+	#--------------------------------------------------------
+	def format(self):
+		txt = u'%s               [#%s]\n' % (
+			gmTools.bool2subst(self._payload[self._idx['is_active']], _('Suppressed active dynamic hint'), _('Suppressed inactive dynamic hint')),
+			self._payload[self._idx['pk_suppressed_hint']]
+		)
+		txt += u'\n'
+		txt += u'%s\n\n' % self._payload[self._idx['title']]
+		txt += _('Suppressed by: %s\n') % self._payload[self._idx['suppressed_by']]
+		txt += _('Suppressed at: %s\n') % gmDateTime.pydt_strftime(self._payload[self._idx['suppressed_when']], '%Y %b %d')
+		txt += _('Hint #: %s\n') % self._payload[self._idx['pk_hint']]
+		txt += _('Patient #: %s\n') % self._payload[self._idx['pk_identity']]
+		txt += _('MD5 (currently): %s\n') % self._payload[self._idx['md5_hint']]
+		txt += _('MD5 (at suppression): %s\n') % self._payload[self._idx['md5_suppressed']]
+		txt += _('Source: %s\n') % self._payload[self._idx['source']]
+		txt += _('Language: %s\n') % self._payload[self._idx['lang']]
+		txt += u'\n'
+		txt += u'%s\n' % gmTools.wrap(self._payload[self._idx['hint']], width = 50, initial_indent = u' ', subsequent_indent = u' ')
+		txt += u'\n'
+		if self._payload[self._idx['recommendation']] is not None:
+			txt += u'\n'
+			txt += u'%s\n' % gmTools.wrap(self._payload[self._idx['recommendation']], width = 50, initial_indent = u' ', subsequent_indent = u' ')
+			txt += u'\n'
+		txt += u'%s\n' % gmTools.wrap (
+			gmTools.coalesce(self._payload[self._idx['url']], u''),
+			width = 50,
+			initial_indent = u' ',
+			subsequent_indent = u' '
+		)
+		txt += u'\n'
+		txt += u'%s\n' % gmTools.wrap(self._payload[self._idx['query']], width = 50, initial_indent = u' ', subsequent_indent = u' ')
+		return txt
+
+#------------------------------------------------------------
+def get_suppressed_hints(pk_identity=None, order_by=None):
+	args = {'pat': pk_identity}
+	if pk_identity is None:
+		where = u'true'
+	else:
+		where = u"pk_identity = %(pat)s"
+	if order_by is None:
+		order_by = u''
+	else:
+		order_by = u' ORDER BY %s' % order_by
+	cmd = (_SQL_get_suppressed_hints % where) + order_by
+	rows, idx = gmPG2.run_ro_queries(queries = [{'cmd': cmd, 'args': args}], get_col_idx = True)
+	return [ cSuppressedHint(row = {'data': r, 'idx': idx, 'pk_field': 'pk_suppressed_hint'}) for r in rows ]
+
+#------------------------------------------------------------
+def delete_suppressed_hint(pk_suppressed_hint=None):
+	args = {'pk': pk_suppressed_hint}
+	cmd = u"DELETE FROM clin.suppressed_hint WHERE pk = %(pk)s"
+	gmPG2.run_rw_queries(queries = [{'cmd': cmd, 'args': args}])
+	return True
+
+#------------------------------------------------------------
+def invalidate_hint_suppression(pk_hint=None, pk_encounter=None):
+	_log.debug('invalidating suppression of hint #%s', pk_hint)
+	args = {
+		'pk_hint': pk_hint,
+		'enc': pk_encounter,
+		'fake_md5': '***INVALIDATED***'			# only needs to NOT match ANY md5 sum
+	}
+	cmd = u"""
+		UPDATE clin.suppressed_hint SET
+			fk_encounter = %(enc)s,
+			md5_sum = %(fake_md5)s
+		WHERE
+			pk = (
+				SELECT pk_suppressed_hint
+				FROM clin.v_suppressed_hints
+				WHERE
+					pk_hint = %(pk_hint)s
+						AND
+					pk_identity = (
+						SELECT fk_patient FROM clin.encounter WHERE pk = %(enc)s
+					)
+			)
+		"""
+	gmPG2.run_rw_queries(queries = [{'cmd': cmd, 'args': args}])
+	return True
+
+#============================================================
+if __name__ == '__main__':
+
+	if len(sys.argv) < 2:
+		sys.exit()
+
+	if sys.argv[1] != 'test':
+		sys.exit()
+
+	from Gnumed.pycommon import gmI18N
+
+	gmI18N.activate_locale()
+	gmI18N.install_domain()
+
+	#---------------------------------------
+	def test_auto_hints():
+#		for row in get_dynamic_hints():
+#			print row
+		for row in get_hints_for_patient(pk_identity = 12):
+			print row
+	#---------------------------------------
+	test_auto_hints()
diff --git a/client/business/gmCA_MSVA.py b/client/business/gmCA_MSVA.py
index 29b6ae1..8b5933e 100644
--- a/client/business/gmCA_MSVA.py
+++ b/client/business/gmCA_MSVA.py
@@ -86,7 +86,7 @@ __author__ = "K.Hilbert <Karsten.Hilbert at gmx.net>"
 
 
 # stdlib
-import sys, codecs, time, datetime as pyDT
+import sys, io, time, datetime as pyDT
 
 
 # GNUmed modules
@@ -105,7 +105,7 @@ def read_persons_from_msva_file(filename=None, encoding=None):
 	if encoding is None:
 		encoding = MSVA_encoding
 
-	pats_file = codecs.open(filename = filename, mode = 'rU', encoding = encoding)
+	pats_file = io.open(filename, mode = 'rt', encoding = encoding)
 
 	dtos = []
 
diff --git a/client/business/gmClinNarrative.py b/client/business/gmClinNarrative.py
index ec8f916..88e97d5 100644
--- a/client/business/gmClinNarrative.py
+++ b/client/business/gmClinNarrative.py
@@ -3,54 +3,24 @@
 __author__ = "Carlos Moro <cfmoro1976 at yahoo.es>, Karsten Hilbert <Karsten.Hilbert at gmx.net>"
 __license__ = 'GPL v2 or later (for details see http://gnu.org)'
 
-import sys, logging
+import sys
+import logging
 
 
 if __name__ == '__main__':
 	sys.path.insert(0, '../../')
-from Gnumed.pycommon import gmPG2, gmExceptions, gmBusinessDBObject, gmTools, gmDispatcher, gmHooks
-from Gnumed.business import gmCoding
-
+from Gnumed.pycommon import gmPG2
+from Gnumed.pycommon import gmBusinessDBObject
+from Gnumed.pycommon import gmTools
+from Gnumed.pycommon import gmDispatcher
+from Gnumed.pycommon import gmHooks
 
-try:
-	_('dummy-no-need-to-translate-but-make-epydoc-happy')
-except NameError:
-	_ = lambda x:x
+from Gnumed.business import gmCoding
+from Gnumed.business import gmSoapDefs
 
 
 _log = logging.getLogger('gm.emr')
 
-
-soap_cat2l10n = {
-	u's': _('soap_S').replace(u'soap_', u''),
-	u'o': _('soap_O').replace(u'soap_', u''),
-	u'a': _('soap_A').replace(u'soap_', u''),
-	u'p': _('soap_P').replace(u'soap_', u''),
-	u'u': _('soap_U').replace(u'soap_', u''),
-#	u'u': u'?',
-	None: gmTools.u_ellipsis,
-	u'': gmTools.u_ellipsis
-}
-
-soap_cat2l10n_str = {
-	u's': _('soap_Subjective').replace(u'soap_', u''),
-	u'o': _('soap_Objective').replace(u'soap_', u''),
-	u'a': _('soap_Assessment').replace(u'soap_', u''),
-	u'p': _('soap_Plan').replace(u'soap_', u''),
-	u'u': _('soap_Unspecified').replace(u'soap_', u''),
-	None: _('soap_Administrative').replace(u'soap_', u'')
-}
-
-l10n2soap_cat = {
-	_('soap_S').replace(u'soap_', u''): u's',
-	_('soap_O').replace(u'soap_', u''): u'o',
-	_('soap_A').replace(u'soap_', u''): u'a',
-	_('soap_P').replace(u'soap_', u''): u'p',
-	_('soap_U').replace(u'soap_', u''): u'u',
-#	u'?': u'u',
-	gmTools.u_ellipsis: None
-}
-
 #============================================================
 def _on_soap_modified():
 	"""Always relates to the active patient."""
@@ -60,8 +30,8 @@ gmDispatcher.connect(_on_soap_modified, u'clin.clin_narrative_mod_db')
 
 #============================================================
 class cNarrative(gmBusinessDBObject.cBusinessDBObject):
-	"""Represents one clinical free text entry.
-	"""
+	"""Represents one clinical free text entry."""
+
 	_cmd_fetch_payload = u"SELECT * FROM clin.v_narrative WHERE pk_narrative = %s"
 	_cmds_store_payload = [
 		u"""update clin.clin_narrative set
@@ -87,14 +57,17 @@ class cNarrative(gmBusinessDBObject.cBusinessDBObject):
 	]
 
 	#--------------------------------------------------------
+	def format_maximum_information(self, patient=None):
+		return self.format(fancy = True, width = 70).split(u'\n')
+
+	#--------------------------------------------------------
 	def format(self, left_margin=u'', fancy=False, width=75):
 
 		if fancy:
-			# FIXME: add revision
 			txt = gmTools.wrap (
 				text = _('%s: %s by %.8s (v%s)\n%s') % (
 					self._payload[self._idx['date']].strftime('%x %H:%M'),
-					soap_cat2l10n_str[self._payload[self._idx['soap_cat']]],
+					gmSoapDefs.soap_cat2l10n_str[self._payload[self._idx['soap_cat']]],
 					self._payload[self._idx['modified_by']],
 					self._payload[self._idx['row_version']],
 					self._payload[self._idx['narrative']]
@@ -106,7 +79,7 @@ class cNarrative(gmBusinessDBObject.cBusinessDBObject):
 		else:
 			txt = u'%s [%s]: %s (%.8s)' % (
 				self._payload[self._idx['date']].strftime('%x %H:%M'),
-				soap_cat2l10n[self._payload[self._idx['soap_cat']]],
+				gmSoapDefs.soap_cat2l10n[self._payload[self._idx['soap_cat']]],
 				self._payload[self._idx['narrative']],
 				self._payload[self._idx['modified_by']]
 			)
@@ -114,6 +87,7 @@ class cNarrative(gmBusinessDBObject.cBusinessDBObject):
 				txt = txt[:width] + gmTools.u_ellipsis
 
 		return txt
+
 	#--------------------------------------------------------
 	def add_code(self, pk_code=None):
 		"""<pk_code> must be a value from ref.coding_system_root.pk_coding_system (clin.lnk_code2item_root.fk_generic_code)"""
@@ -140,6 +114,7 @@ class cNarrative(gmBusinessDBObject.cBusinessDBObject):
 		}
 		rows, idx = gmPG2.run_rw_queries(queries = [{'cmd': cmd, 'args': args}])
 		return
+
 	#--------------------------------------------------------
 	def remove_code(self, pk_code=None):
 		"""<pk_code> must be a value from ref.coding_system_root.pk_coding_system (clin.lnk_code2item_root.fk_generic_code)"""
@@ -150,6 +125,7 @@ class cNarrative(gmBusinessDBObject.cBusinessDBObject):
 		}
 		rows, idx = gmPG2.run_rw_queries(queries = [{'cmd': cmd, 'args': args}])
 		return True
+
 	#--------------------------------------------------------
 	# properties
 	#--------------------------------------------------------
@@ -189,23 +165,58 @@ class cNarrative(gmBusinessDBObject.cBusinessDBObject):
 		return
 
 	generic_codes = property(_get_generic_codes, _set_generic_codes)
+
 #============================================================
-# convenience functions
-#============================================================
-def search_text_across_emrs(search_term=None):
+def create_progress_note(soap=None, episode_id=None, encounter_id=None, link_obj=None):
+	"""Create clinical narrative entries.
 
-	if search_term is None:
-		return []
+	<soap>
+		must be a dict, the keys being SOAP categories (including U and
+		None=admin) and the values being text (possibly multi-line)
 
-	if search_term.strip() == u'':
-		return []
+	Existing but empty ('' or None) categories are skipped.
+	"""
+	if soap is None:
+		return True
 
-	cmd = u'select * from clin.v_narrative4search where narrative ~* %(term)s order by pk_patient limit 1000'
-	rows, idx = gmPG2.run_ro_queries(queries = [{'cmd': cmd, 'args': {'term': search_term}}], get_col_idx = False)
+	if link_obj is None:
+		link_obj = gmPG2.get_connection(readonly = False)
+		conn_rollback = link_obj.rollback
+		conn_commit = link_obj.commit
+		conn_close = link_obj.close
+	else:
+		conn_rollback = lambda x:x
+		conn_commit = lambda x:x
+		conn_close = lambda x:x
+
+	instances = {}
+	for cat in soap:
+		if cat not in gmSoapDefs.KNOWN_SOAP_CATS:
+			conn_rollback()
+			conn_close()
+			raise ValueError(u'invalid SOAP category [%s] in <soap> dictionary: %s', cat, soap)
+		val = soap[cat]
+		if val is None:
+			continue
+		if u''.join([ v.strip() for v in val ]) == u'':
+			continue
+		instance = create_narrative_item (
+			narrative = u'\n'.join([ v.strip() for v in val ]),
+			soap_cat = cat,
+			episode_id = episode_id,
+			encounter_id = encounter_id,
+			link_obj = link_obj
+		)
+		if instance is None:
+			continue
+		instances[cat] = instance
+
+	conn_commit()
+	conn_close()
+	return instances
 
-	return rows
 #============================================================
-def create_clin_narrative(narrative=None, soap_cat=None, episode_id=None, encounter_id=None, link_obj=None):
+def create_narrative_item(narrative=None, soap_cat=None, episode_id=None, encounter_id=None, link_obj=None):
 	"""Creates a new clinical narrative entry
 
 		narrative - free text clinical narrative
@@ -220,7 +231,7 @@ def create_clin_narrative(narrative=None, soap_cat=None, episode_id=None, encoun
 	# 1) silently do not insert empty narrative
 	narrative = narrative.strip()
 	if narrative == u'':
-		return (True, None)
+		return None
 
 	# 2) also, silently do not insert true duplicates
 	# FIXME: this should check for .provider = current_user but
@@ -245,7 +256,7 @@ def create_clin_narrative(narrative=None, soap_cat=None, episode_id=None, encoun
 	rows, idx = gmPG2.run_ro_queries(link_obj = link_obj, queries = [{'cmd': cmd, 'args': args}], get_col_idx = True)
 	if len(rows) == 1:
 		narrative = cNarrative(row = {'pk_field': 'pk_narrative', 'data': rows[0], 'idx': idx})
-		return (True, narrative)
+		return narrative
 
 	# insert new narrative
 	queries = [
@@ -265,13 +276,15 @@ def create_clin_narrative(narrative=None, soap_cat=None, episode_id=None, encoun
 	rows, idx = gmPG2.run_rw_queries(link_obj = link_obj, queries = queries, return_data = True, get_col_idx = True)
 
 	narrative = cNarrative(row = {'pk_field': 'pk_narrative', 'idx': idx, 'data': rows[0]})
-	return (True, narrative)
+	return narrative
+
 #------------------------------------------------------------
 def delete_clin_narrative(narrative=None):
 	"""Deletes a clin.clin_narrative row by it's PK."""
 	cmd = u"delete from clin.clin_narrative where pk=%s"
 	rows, idx = gmPG2.run_rw_queries(queries = [{'cmd': cmd, 'args': [narrative]}])
 	return True
+
 #------------------------------------------------------------
 def get_narrative(since=None, until=None, encounters=None, episodes=None, issues=None, soap_cats=None, providers=None, patient=None, order_by=None):
 	"""Get SOAP notes pertinent to this encounter.
@@ -367,7 +380,7 @@ def get_as_journal(since=None, until=None, encounters=None, episodes=None, issue
 		raise ValueError('at least one of <patient>, <episodes>, <issues>, <encounters> must not be None')
 
 	if order_by is None:
-		order_by = u'ORDER BY vemrj.clin_when, vemrj.pk_episode, scr, vemrj.src_table'
+		order_by = u'ORDER BY c_vej.clin_when, c_vej.pk_episode, scr, c_vej.modified_when, c_vej.src_table'
 	else:
 		order_by = u'ORDER BY %s' % order_by
 
@@ -375,50 +388,60 @@ def get_as_journal(since=None, until=None, encounters=None, episodes=None, issue
 	args = {}
 
 	if patient is not None:
-		where_parts.append(u'pk_patient = %(pat)s')
+		where_parts.append(u'c_vej.pk_patient = %(pat)s')
 		args['pat'] = patient
 
 	if soap_cats is not None:
 		# work around bug in psycopg2 not being able to properly
 		# adapt None to NULL inside tuples
 		if None in soap_cats:
-			where_parts.append(u'((vemrj.soap_cat IN %(soap_cat)s) OR (vemrj.soap_cat IS NULL))')
+			where_parts.append(u'((c_vej.soap_cat IN %(soap_cat)s) OR (c_vej.soap_cat IS NULL))')
 			soap_cats.remove(None)
 		else:
-			where_parts.append(u'vemrj.soap_cat IN %(soap_cat)s')
+			where_parts.append(u'c_vej.soap_cat IN %(soap_cat)s')
 		args['soap_cat'] = tuple(soap_cats)
 
 	if time_range is not None:
-		where_parts.append(u"vemrj.clin_when > (now() - '%s days'::interval)" % time_range)
+		where_parts.append(u"c_vej.clin_when > (now() - '%s days'::interval)" % time_range)
 
 	if episodes is not None:
-		where_parts.append(u"vemrj.pk_episode IN %(epis)s")
+		where_parts.append(u"c_vej.pk_episode IN %(epis)s")
 		args['epis'] = tuple(episodes)
 
 	if issues is not None:
-		where_parts.append(u"vemrj.pk_health_issue IN %(issues)s")
+		where_parts.append(u"c_vej.pk_health_issue IN %(issues)s")
 		args['issues'] = tuple(issues)
 
 	# FIXME: implement more constraints
 
 	cmd = u"""
 		SELECT
-			to_char(vemrj.clin_when, 'YYYY-MM-DD') AS date,
-			vemrj.clin_when,
-			coalesce(vemrj.soap_cat, '') as soap_cat,
-			vemrj.narrative,
-			vemrj.src_table,
-
-			(SELECT rank FROM clin.soap_cat_ranks WHERE soap_cat = vemrj.soap_cat) AS scr,
-
-			vemrj.modified_when,
-			to_char(vemrj.modified_when, 'YYYY-MM-DD HH24:MI') AS date_modified,
-			vemrj.modified_by,
-			vemrj.row_version,
-			vemrj.pk_episode,
-			vemrj.pk_encounter,
-			vemrj.soap_cat as real_soap_cat
-		FROM clin.v_emr_journal vemrj
+			to_char(c_vej.clin_when, 'YYYY-MM-DD') AS date,
+			c_vej.clin_when,
+			coalesce(c_vej.soap_cat, '') as soap_cat,
+			c_vej.narrative,
+			c_vej.src_table,
+			c_scr.rank AS scr,
+			c_vej.modified_when,
+			to_char(c_vej.modified_when, 'YYYY-MM-DD HH24:MI') AS date_modified,
+			c_vej.modified_by,
+			c_vej.row_version,
+			c_vej.pk_episode,
+			c_vej.pk_encounter,
+			c_vej.soap_cat as real_soap_cat,
+			c_vej.src_pk,
+			c_vej.pk_health_issue,
+			c_vej.health_issue,
+			c_vej.episode,
+			c_vej.issue_active,
+			c_vej.issue_clinically_relevant,
+			c_vej.episode_open,
+			c_vej.encounter_started,
+			c_vej.encounter_last_affirmed,
+			c_vej.encounter_l10n_type
+		FROM
+			clin.v_emr_journal c_vej
+				join clin.soap_cat_ranks c_scr on (c_scr.soap_cat = c_vej.soap_cat)
 		WHERE
 			%s
 		%s""" % (
@@ -428,6 +451,23 @@ def get_as_journal(since=None, until=None, encounters=None, episodes=None, issue
 
 	rows, idx = gmPG2.run_ro_queries(queries = [{'cmd': cmd, 'args': args}], get_col_idx = True)
 	return rows
+
+#============================================================
+# convenience functions
+#============================================================
+def search_text_across_emrs(search_term=None):
+
+	if search_term is None:
+		return []
+
+	if search_term.strip() == u'':
+		return []
+
+	cmd = u'select * from clin.v_narrative4search where narrative ~* %(term)s order by pk_patient limit 1000'
+	rows, idx = gmPG2.run_ro_queries(queries = [{'cmd': cmd, 'args': {'term': search_term}}], get_col_idx = False)
+
+	return rows
+
 #============================================================
 # main
 #------------------------------------------------------------
@@ -458,7 +498,7 @@ if __name__ == '__main__':
 		#print "codes:", diagnose.get_codes()
 
 		#print "creating narrative..."
-		#status, new_narrative = create_clin_narrative(narrative = 'Test narrative', soap_cat = 'a', episode_id=1, encounter_id=2)
+		#new_narrative = create_narrative_item(narrative = 'Test narrative', soap_cat = 'a', episode_id=1, encounter_id=2)
 		#print new_narrative
 
 	#-----------------------------------------
@@ -470,6 +510,3 @@ if __name__ == '__main__':
 
 	#test_search_text_across_emrs()
 	test_narrative()
-
-#============================================================
-
diff --git a/client/business/gmClinicalCalculator.py b/client/business/gmClinicalCalculator.py
index 4362eb0..74a9fc1 100644
--- a/client/business/gmClinicalCalculator.py
+++ b/client/business/gmClinicalCalculator.py
@@ -27,6 +27,7 @@ if __name__ == '__main__':
 	gmDateTime.init()
 
 from Gnumed.pycommon import gmTools
+from Gnumed.pycommon import gmBorg
 from Gnumed.business import gmLOINC
 
 
@@ -97,14 +98,14 @@ class cClinicalResult(object):
 			if len(self.warnings) > 0:
 				lines.append(u' Caveat:')
 			for w in self.warnings:
-				txt = gmTools.wrap(text = w, width = width, initial_indent = u'  %s ' % gmTools.u_right_arrow, subsequent_indent = u'    ', eol = eol)
+				txt = gmTools.wrap(text = w, width = width, initial_indent = u'  %s ' % gmTools.u_arrow2right, subsequent_indent = u'    ', eol = eol)
 				lines.append(txt)
 
 		if with_hints:
 			if len(self.hints) > 0:
 				lines.append(u' Hints:')
 			for h in self.hints:
-				txt = gmTools.wrap(text = h, width = width, initial_indent = u'  %s ' % gmTools.u_right_arrow, subsequent_indent = u'    ', eol = eol)
+				txt = gmTools.wrap(text = h, width = width, initial_indent = u'  %s ' % gmTools.u_arrow2right, subsequent_indent = u'    ', eol = eol)
 				lines.append(txt)
 
 		if with_variables:
@@ -112,7 +113,7 @@ class cClinicalResult(object):
 				lines.append(u' %s' % _('Variables:'))
 			for key in self.variables.keys():
 				txt = u'  %s %s: %s' % (
-					gmTools.u_right_arrow,
+					gmTools.u_arrow2right,
 					key,
 					self.variables[key]
 				)
@@ -245,9 +246,9 @@ class cClinicalCalculator(object):
 	def _get_egfr(self):
 
 		# < 18 ?
-		eGFR = self.eGFR_Schwartz
-		if eGFR.numeric_value is not None:
-			return eGFR
+		Schwartz = self.eGFR_Schwartz
+		if Schwartz.numeric_value is not None:
+			return Schwartz
 
 		# this logic is based on "KVH aktuell 2/2014 Seite 10-15"
 		# expect normal GFR
@@ -897,16 +898,18 @@ if __name__ == "__main__":
 	from Gnumed.pycommon import gmLog2
 	#-----------------------------------------
 	def test_clin_calc():
+		from Gnumed.business.gmPraxis import gmCurrentPraxisBranch
+		praxis = gmCurrentPraxisBranch()
 		from Gnumed.business.gmPerson import cPatient
 		pat = cPatient(aPK_obj = 12)
 		calc = cClinicalCalculator(patient = pat)
 		#result = calc.eGFR_MDRD_short
 		#result = calc.eGFR_Schwartz
-		#result = calc.eGFR
+		result = calc.eGFR
 		#result = calc.body_surface_area
 		#result = calc.get_EDC(lmp = gmDateTime.pydt_now_here())
 		#result = calc.body_mass_index
-		result = calc.eGFRs
+		#result = calc.eGFRs
 		print u'%s' % result.format(with_formula = True, with_warnings = True, with_variables = True, with_sub_results = True)
 	#-----------------------------------------
 	test_clin_calc()
diff --git a/client/business/gmClinicalRecord.py b/client/business/gmClinicalRecord.py
index 013ffc5..db10560 100644
--- a/client/business/gmClinicalRecord.py
+++ b/client/business/gmClinicalRecord.py
@@ -13,10 +13,14 @@ import sys
 import logging
 import datetime as pydt
 
-
 if __name__ == '__main__':
 	sys.path.insert(0, '../../')
-	from Gnumed.pycommon import gmLog2, gmDateTime, gmI18N
+
+from Gnumed.pycommon import gmI18N
+from Gnumed.pycommon import gmDateTime
+
+if __name__ == '__main__':
+	from Gnumed.pycommon import gmLog2
 	gmI18N.activate_locale()
 	gmI18N.install_domain()
 	gmDateTime.init()
@@ -24,21 +28,21 @@ if __name__ == '__main__':
 from Gnumed.pycommon import gmExceptions
 from Gnumed.pycommon import gmPG2
 from Gnumed.pycommon import gmDispatcher
-from Gnumed.pycommon import gmI18N
 from Gnumed.pycommon import gmCfg
 from Gnumed.pycommon import gmTools
-from Gnumed.pycommon import gmDateTime
 
 from Gnumed.business import gmAllergy
 from Gnumed.business import gmPathLab
 from Gnumed.business import gmLOINC
 from Gnumed.business import gmClinNarrative
+from Gnumed.business import gmSoapDefs
 from Gnumed.business import gmEMRStructItems
 from Gnumed.business import gmMedication
 from Gnumed.business import gmVaccination
 from Gnumed.business import gmFamilyHistory
 from Gnumed.business import gmExternalCare
 from Gnumed.business import gmOrganization
+from Gnumed.business import gmAutoHints
 from Gnumed.business.gmDemographicRecord import get_occupations
 
 
@@ -61,6 +65,91 @@ def set_func_ask_user(a_func = None):
 	_func_ask_user = a_func
 
 #============================================================
+_map_clin_root_item2type_str = {
+	'clin.encounter': _(u'Encounter'),
+	'clin.episode': _(u'Episode'),
+	'clin.health_issue': _('Health issue'),
+	'clin.external_care': _('External care'),
+	'clin.vaccination': _('Vaccination'),
+	'clin.clin_narrative': _('Clinical narrative'),
+	'clin.test_result': _('Test result'),
+	'clin.substance_intake': _('Substance intake'),
+	'clin.hospital_stay': _('Hospital stay'),
+	'clin.procedure': _('Performed procedure'),
+	'clin.allergy': _('Allergy'),
+	'clin.allergy_state': _('Allergy state'),
+	'clin.family_history': _('Family history'),
+	'blobs.doc_med': _('Document')
+}
+
+def format_clin_root_item_type(table):
+	try:
+		return _map_clin_root_item2type_str[table]
+	except KeyError:
+		return _(u'unmapped entry type from table [%s]') % table
+
+#------------------------------------------------------------
+from Gnumed.business.gmDocuments import cDocument
+
+_map_table2class = {
+	'clin.encounter': gmEMRStructItems.cEncounter,
+	'clin.episode': gmEMRStructItems.cEpisode,
+	'clin.health_issue': gmEMRStructItems.cHealthIssue,
+	'clin.external_care': gmExternalCare.cExternalCareItem,
+	'clin.vaccination': gmVaccination.cVaccination,
+	'clin.clin_narrative': gmClinNarrative.cNarrative,
+	'clin.test_result': gmPathLab.cTestResult,
+	'clin.substance_intake': gmMedication.cSubstanceIntakeEntry,
+	'clin.hospital_stay': gmEMRStructItems.cHospitalStay,
+	'clin.procedure': gmEMRStructItems.cPerformedProcedure,
+	'clin.allergy': gmAllergy.cAllergy,
+	'clin.allergy_state': gmAllergy.cAllergyState,
+	'clin.family_history': gmFamilyHistory.cFamilyHistory,
+	'clin.suppressed_hint': gmAutoHints.cSuppressedHint,
+	'blobs.doc_med': cDocument
+}
+
+def instantiate_clin_root_item(table, pk):
+	try:
+		item_class = _map_table2class[table]
+	except KeyError:
+		_log.error('unmapped clin_root_item entry [%s], cannot instantiate', table)
+		return None
+
+	return item_class(aPK_obj = pk)
+
+#------------------------------------------------------------
+def format_clin_root_item(table, pk, patient=None):
+
+	instance = instantiate_clin_root_item(table, pk)
+	if instance is None:
+		return _('cannot instantiate clinical root item <%s(%s)>' % (table, pk))
+
+#	if patient is not None:
+#		if patient.ID != instance['pk_patient']:
+#			raise ValueError(u'patient passed in: [%s], but instance is: [%s:%s:%s]' % (patient.ID, table, pk, instance['pk_patient']))
+
+	if hasattr(instance, 'format_maximum_information'):
+		return u'\n'.join(instance.format_maximum_information(patient = patient))
+
+	if hasattr(instance, 'format'):
+		try:
+			formatted = instance.format(patient = patient)
+		except TypeError:
+			formatted = instance.format()
+		if type(formatted) == type([]):
+			return u'\n'.join(formatted)
+		return formatted
+
+	d = instance.fields_as_dict (
+		date_format = '%Y %b %d  %H:%M',
+		none_string = gmTools.u_diameter,
+		escape_style = None,
+		bool_strings = [_('True'), _('False')]
+	)
+	return gmTools.format_dict_like(d, tabular = True, value_delimiters = None)
+
+#============================================================
 class cClinicalRecord(object):
 
 	def __init__(self, aPKey=None, allow_user_interaction=True, encounter=None):
@@ -93,9 +182,11 @@ class cClinicalRecord(object):
 		if not self._register_interests():
 			raise gmExceptions.ConstructorError, "cannot register signal interests"
 
+		self.__calculator = None
+
 		_log.debug('Instantiated clinical record for patient [%s].' % self.pk_patient)
 	#--------------------------------------------------------
-	def __old_style_init(self):
+	def __old_style_init(self, allow_user_interaction=True):
 
 		_log.error('%s.__old_style_init() used', self.__class__.__name__)
 		print u'*** GNUmed [%s]: __old_style_init() used ***' % self.__class__.__name__
@@ -103,7 +194,7 @@ class cClinicalRecord(object):
 		# FIXME: delegate to worker thread
 		# log access to patient record (HIPAA, for example)
 		cmd = u'SELECT gm.log_access2emr(%(todo)s)'
-		args = {'todo': u'patient [%s]' % aPKey}
+		args = {'todo': u'patient [%s]' % self.pk_patient}
 		gmPG2.run_rw_queries(queries = [{'cmd': cmd, 'args': args}])
 
 		# load current or create new encounter
@@ -116,7 +207,7 @@ class cClinicalRecord(object):
 
 		self.__encounter = None
 		if not self.__initiate_active_encounter(allow_user_interaction = allow_user_interaction):
-			raise gmExceptions.ConstructorError, "cannot activate an encounter for patient [%s]" % aPKey
+			raise gmExceptions.ConstructorError, "cannot activate an encounter for patient [%s]" % self.pk_patient
 
 #		# FIXME: delegate to worker thread
 		gmAllergy.ensure_has_allergy_state(encounter = self.current_encounter['pk_encounter'])
@@ -127,6 +218,7 @@ class cClinicalRecord(object):
 		if self.__encounter is not None:
 			self.__encounter.unlock(exclusive = False)
 		return True
+
 	#--------------------------------------------------------
 	def log_access(self, action=None):
 		if action is None:
@@ -134,6 +226,17 @@ class cClinicalRecord(object):
 		args = {'action': action}
 		cmd = u'SELECT gm.log_access2emr(%(action)s)'
 		gmPG2.run_rw_queries(queries = [{'cmd': cmd, 'args': args}])
+
+	#--------------------------------------------------------
+	def _get_calculator(self):
+		if self.__calculator is None:
+			from Gnumed.business.gmClinicalCalculator import cClinicalCalculator
+			from Gnumed.business.gmPerson import cPatient
+			self.__calculator = cClinicalCalculator()
+			self.__calculator.patient = cPatient(self.pk_patient)
+		return self.__calculator
+
+	calculator = property(_get_calculator, lambda x:x)
 	#--------------------------------------------------------
 	# messaging
 	#--------------------------------------------------------
@@ -150,7 +253,7 @@ class cClinicalRecord(object):
 		if self.current_encounter is None:
 			_log.debug('no local current-encounter, ignoring encounter modification signal')
 			return True
-		if int(kwds['pk_row']) <> self.current_encounter['pk_encounter']:
+		if int(kwds['pk_row']) != self.current_encounter['pk_encounter']:
 			_log.debug('modified encounter [%s] != local encounter [%s], ignoring signal', kwds['pk_row'], self.current_encounter['pk_encounter'])
 			return True
 
@@ -276,7 +379,7 @@ class cClinicalRecord(object):
 	def _get_gender(self):
 		if self.__gender is not None:
 			return self.__gender
-		cmd = u'SELECT gender, dob FROM dem.v_basic_person WHERE pk_identity = %(pat)s'
+		cmd = u'SELECT gender, dob FROM dem.v_all_persons WHERE pk_identity = %(pat)s'
 		args = {u'pat': self.pk_patient}
 		rows, idx = gmPG2.run_ro_queries(queries = [{u'cmd': cmd, u'args': args}], get_col_idx = False)
 		self.__gender = rows[0][u'gender']
@@ -286,11 +389,12 @@ class cClinicalRecord(object):
 		self.__gender = gender
 
 	gender = property(_get_gender, _set_gender)
+
 	#--------------------------------------------------------
 	def _get_dob(self):
 		if self.__dob is not None:
 			return self.__dob
-		cmd = u'SELECT gender, dob FROM dem.v_basic_person WHERE pk_identity = %(pat)s'
+		cmd = u'SELECT gender, dob FROM dem.v_all_persons WHERE pk_identity = %(pat)s'
 		args = {u'pat': self.pk_patient}
 		rows, idx = gmPG2.run_ro_queries(queries = [{u'cmd': cmd, u'args': args}], get_col_idx = False)
 		self.__gender = rows[0][u'gender']
@@ -300,6 +404,7 @@ class cClinicalRecord(object):
 		self.__dob = dob
 
 	dob = property(_get_dob, _set_dob)
+
 	#--------------------------------------------------------
 	def _get_EDC(self):
 		cmd = u'SELECT edc FROM clin.patient WHERE fk_identity = %(pat)s'
@@ -325,6 +430,7 @@ class cClinicalRecord(object):
 			gmPG2.run_rw_queries(queries = [{'cmd': cmd, 'args': args}])
 
 	EDC = property(_get_EDC, _set_EDC)
+
 	#--------------------------------------------------------
 	def _EDC_is_fishy(self):
 		edc = self.EDC
@@ -351,6 +457,265 @@ class cClinicalRecord(object):
 			return True
 
 	EDC_is_fishy = property(_EDC_is_fishy, lambda x:x)
+
+	#--------------------------------------------------------
+	def __normalize_smoking_details(self, details):
+		try:
+			details['quit_when']
+		except KeyError:
+			details['quit_when'] = None
+
+		try:
+			details['last_confirmed']
+			if details['last_confirmed'] is None:
+				details['last_confirmed'] = gmDateTime.pydt_now_here()
+		except KeyError:
+			details['last_confirmed'] = gmDateTime.pydt_now_here()
+
+		try:
+			details['comment']
+			if details['comment'].strip() == u'':
+				details['comment'] = None
+		except KeyError:
+			details['comment'] = None
+
+		return details
+
+	#--------------------------------------------------------
+	def _get_smoking_status(self):
+		use = self.harmful_substance_use
+		if use is None:
+			return None
+		return use['tobacco']
+
+	def _set_smoking_status(self, status):
+		# valid ?
+		status_flag, details = status
+		self.__harmful_substance_use = None
+		args = {
+			'pat': self.pk_patient,
+			'status': status_flag
+		}
+		if status_flag is None:
+			cmd = u'UPDATE clin.patient SET smoking_status = %(status)s, smoking_details = NULL WHERE fk_identity = %(pat)s'
+		elif status_flag == 0:
+			details['quit_when'] = None
+			args['details'] = gmTools.dict2json(self.__normalize_smoking_details(details))
+			cmd = u'UPDATE clin.patient SET smoking_status = %(status)s, smoking_details = %(details)s WHERE fk_identity = %(pat)s'
+		else:
+			args['details'] = gmTools.dict2json(self.__normalize_smoking_details(details))
+			cmd = u'UPDATE clin.patient SET smoking_status = %(status)s, smoking_details = %(details)s WHERE fk_identity = %(pat)s'
+		rows, idx = gmPG2.run_rw_queries(queries = [{'cmd': cmd, 'args': args}], get_col_idx = False)
+
+	smoking_status = property(_get_smoking_status, _set_smoking_status)
+
+	#--------------------------------------------------------
+	def _get_alcohol_status(self):
+		use = self.harmful_substance_use
+		if use is None:
+			return None
+		return use['alcohol']
+
+	def _set_alcohol_status(self, status):
+		# valid ?
+		harmful, details = status
+		self.__harmful_substance_use = None
+		args = {'pat': self.pk_patient}
+		if harmful is None:
+			cmd = u'UPDATE clin.patient SET c2_currently_harmful_use = NULL, c2_details = NULL WHERE fk_identity = %(pat)s'
+		elif harmful is False:
+			cmd = u'UPDATE clin.patient SET c2_currently_harmful_use = FALSE, c2_details = gm.nullify_empty_string(%(details)s) WHERE fk_identity = %(pat)s'
+		else:
+			cmd = u'UPDATE clin.patient SET c2_currently_harmful_use = TRUE, c2_details = gm.nullify_empty_string(%(details)s) WHERE fk_identity = %(pat)s'
+		rows, idx = gmPG2.run_rw_queries(queries = [{'cmd': cmd, 'args': args}], get_col_idx = False)
+
+	alcohol_status = property(_get_alcohol_status, _set_alcohol_status)
+
+	#--------------------------------------------------------
+	def _get_drugs_status(self):
+		use = self.harmful_substance_use
+		if use is None:
+			return None
+		return use['drugs']
+
+	def _set_drugs_status(self, status):
+		# valid ?
+		harmful, details = status
+		self.__harmful_substance_use = None
+		args = {'pat': self.pk_patient}
+		if harmful is None:
+			cmd = u'UPDATE clin.patient SET drugs_currently_harmful_use = NULL, drugs_details = NULL WHERE fk_identity = %(pat)s'
+		elif harmful is False:
+			cmd = u'UPDATE clin.patient SET drugs_currently_harmful_use = FALSE, drugs_details = gm.nullify_empty_string(%(details)s) WHERE fk_identity = %(pat)s'
+		else:
+			cmd = u'UPDATE clin.patient SET drugs_currently_harmful_use = TRUE, drugs_details = gm.nullify_empty_string(%(details)s) WHERE fk_identity = %(pat)s'
+		rows, idx = gmPG2.run_rw_queries(queries = [{'cmd': cmd, 'args': args}], get_col_idx = False)
+
+	drugs_status = property(_get_drugs_status, _set_drugs_status)
+
+	#--------------------------------------------------------
+	def _get_harmful_substance_use(self):
+		# caching does not take into account status changes from elsewhere
+		try:
+			self.__harmful_substance_use
+		except AttributeError:
+			self.__harmful_substance_use = None
+
+		if self.__harmful_substance_use is not None:
+			return self.__harmful_substance_use
+
+		args = {'pat': self.pk_patient}
+		cmd = u"""
+			SELECT
+				-- tobacco use
+				smoking_status,
+				smoking_details,
+				(smoking_details->>'last_confirmed')::timestamp with time zone
+					AS ts_last,
+				(smoking_details->>'quit_when')::timestamp with time zone
+					AS ts_quit,
+				-- c2 use
+				c2_currently_harmful_use,
+				c2_details,
+				-- other drugs use
+				drugs_currently_harmful_use,
+				drugs_details
+			FROM clin.patient
+			WHERE fk_identity = %(pat)s
+		"""
+		rows, idx = gmPG2.run_ro_queries(queries = [{'cmd': cmd, 'args': args}], get_col_idx = False)
+		if len(rows) == 0:
+			return None
+		# disentangle smoking
+		status = rows[0]['smoking_status']
+		details = rows[0]['smoking_details']
+		if status is not None:
+			details['last_confirmed'] = rows[0]['ts_last']
+			details['quit_when'] = rows[0]['ts_quit']
+		# set fields
+		self.__harmful_substance_use = {
+			'tobacco':  (status, details),
+			'alcohol': (rows[0]['c2_currently_harmful_use'], rows[0]['c2_details']),
+			'drugs': (rows[0]['drugs_currently_harmful_use'], rows[0]['drugs_details'])
+		}
+
+		return self.__harmful_substance_use
+
+
+	def _get_harmful_substance_use2(self):
+		cmd = u'SELECT * FROM clin.v_substance_intakes WHERE harmful_use_type  = %s'
+
+	harmful_substance_use = property(_get_harmful_substance_use, lambda x:x)
+
+	#--------------------------------------------------------
+	def format_harmful_substance_use(self, include_tobacco=True, include_alcohol=True, include_drugs=True, include_nonuse=True, include_unknown=True):
+		use = self.harmful_substance_use
+		if use is None:
+			return []
+
+		lines = []
+
+		if include_tobacco:
+			status, details = use['tobacco']
+			add_details = False
+			if status is None:
+				if include_unknown:
+					lines.append(_('unknown smoking status'))
+			elif status == 0:
+				if include_nonuse:
+					lines.append(u'%s (%s)' % (_('non-smoker'), gmDateTime.pydt_strftime(details['last_confirmed'], '%Y %b %d')))
+					add_details = True
+			elif status == 1:		# now or previous
+				if details['quit_when'] is None:
+					lines.append(u'%s (%s)' % (_('current smoker'), gmDateTime.pydt_strftime(details['last_confirmed'], '%Y %b %d')))
+					add_details = True
+				elif details['quit_when'] < gmDateTime.pydt_now_here():
+					if include_nonuse:
+						lines.append(u'%s (%s)' % (_('ex-smoker'), gmDateTime.pydt_strftime(details['last_confirmed'], '%Y %b %d')))
+						add_details = True
+				else:
+					lines.append(u'%s (%s)' % (_('current smoker'), gmDateTime.pydt_strftime(details['last_confirmed'], '%Y %b %d')))
+					add_details = True
+			elif status == 2:		# addicted
+				lines.append(u'%s (%s)' % (_('tobacco addiction'), gmDateTime.pydt_strftime(details['last_confirmed'], '%Y %b %d')))
+				add_details = True
+			if add_details:
+				if details['quit_when'] is not None:
+					lines.append(u' %s: %s' % (_('Quit date'), gmDateTime.pydt_strftime(details['quit_when'], '%Y %b %d')))
+				if details['comment'] is not None:
+					lines.append(u' %s' % details['comment'])
+
+		if include_alcohol:
+			status, details = use['alcohol']
+			if status is False:
+				if include_nonuse:
+					if len(lines) > 0:
+						lines.append(u'')
+					lines.append(_('no or non-harmful alcohol use'))
+					lines.append(u' %s' % details)
+			elif status is True:
+				if len(lines) > 0:
+					lines.append(u'')
+				lines.append(_('harmful alcohol use'))
+				lines.append(u' %s' % details)
+			else:
+				if include_unknown:
+					if len(lines) > 0:
+						lines.append(u'')
+					lines.append(_('unknown alcohol use'))
+					lines.append(u' %s' % details)
+
+		if include_drugs:
+			status, details = use['drugs']
+			if status is False:
+				if include_nonuse:
+					if len(lines) > 0:
+						lines.append(u'')
+					lines.append(_('no or non-harmful drug use'))
+					lines.append(u' %s' % details)
+			elif status is True:
+				if len(lines) > 0:
+					lines.append(u'')
+				lines.append(_('harmful drug use'))
+				lines.append(u' %s' % details)
+			else:
+				if include_unknown:
+					if len(lines) > 0:
+						lines.append(u'')
+					lines.append(_('unknown drug use'))
+					lines.append(u' %s' % details)
+
+		return lines
+
+	#--------------------------------------------------------
+	def _get_currently_abuses_substances(self):
+		# returns True / False / None (= unknown)
+
+		use = self.harmful_substance_use
+		# we know that at least one group is used:
+		if use['alcohol'][0] is True:
+			return True
+		if use['drugs'][0] is True:
+			return True
+		if use['tobacco'][0] > 0:
+		# is True:
+			if use['tobacco'][1]['quit_when'] is None:
+				return True
+		# at this point no group is currently used for sure
+		# we don't know about some of the groups so we can NOT say: no abuse at all:
+		if use['alcohol'][0] is None:
+			return None
+		if use['drugs'][0] is None:
+			return None
+		if use['tobacco'][0] is None:
+			return None
+		# at this point all groups must be FALSE, except for
+		# tobacco which can also be TRUE _but_, if so, a quit
+		# date has been set, which is considered non-abuse
+		return False
+
+	currently_abuses_substances = property(_get_currently_abuses_substances, lambda x:x)
+
 	#--------------------------------------------------------
 	# API: performed procedures
 	#--------------------------------------------------------
@@ -439,21 +804,19 @@ class cClinicalRecord(object):
 	# API: narrative
 	#--------------------------------------------------------
 	def add_notes(self, notes=None, episode=None, encounter=None):
-
 		enc = gmTools.coalesce (
 			encounter,
 			self.current_encounter['pk_encounter']
 		)
-
 		for note in notes:
-			success, data = gmClinNarrative.create_clin_narrative (
+			gmClinNarrative.create_narrative_item (
 				narrative = note[1],
 				soap_cat = note[0],
 				episode_id = episode,
 				encounter_id = enc
 			)
-
 		return True
+
 	#--------------------------------------------------------
 	def add_clin_narrative(self, note='', soap_cat='s', episode=None, link_obj=None):
 		if note.strip() == '':
@@ -461,17 +824,14 @@ class cClinicalRecord(object):
 			return None
 		if isinstance(episode, gmEMRStructItems.cEpisode):
 			episode = episode['pk_episode']
-		status, data = gmClinNarrative.create_clin_narrative (
+		instance = gmClinNarrative.create_narrative_item (
 			link_obj = link_obj,
 			narrative = note,
 			soap_cat = soap_cat,
 			episode_id = episode,
 			encounter_id = self.current_encounter['pk_encounter']
 		)
-		if not status:
-			_log.error(str(data))
-			return None
-		return data
+		return instance
 
 	#--------------------------------------------------------
 	def get_clin_narrative(self, encounters=None, episodes=None, issues=None, soap_cats=None, providers=None):
@@ -527,11 +887,7 @@ class cClinicalRecord(object):
 
 		if soap_cats is not None:
 			where_parts.append(u'c_vn.soap_cat IN %(cats)s')
-			soap_cats = list(soap_cats)
-			args['cats'] = [ cat.lower() for cat in soap_cats if cat is not None ]
-			if None in soap_cats:
-				args['cats'].append(None)
-			args['cats'] = tuple(args['cats'])
+			args['cats'] = tuple(gmSoapDefs.soap_cats2list(soap_cats))
 
 		if providers is not None:
 			where_parts.append(u'c_vn.modified_by IN %(docs)s')
@@ -565,6 +921,7 @@ class cClinicalRecord(object):
 			order_by = order_by,
 			time_range = time_range
 		)
+
 	#--------------------------------------------------------
 	def search_narrative_simple(self, search_term=''):
 
@@ -573,25 +930,25 @@ class cClinicalRecord(object):
 			return []
 
 		cmd = u"""
-SELECT
-	*,
-	coalesce((SELECT description FROM clin.episode WHERE pk = vn4s.pk_episode), vn4s.src_table)
-		as episode,
-	coalesce((SELECT description FROM clin.health_issue WHERE pk = vn4s.pk_health_issue), vn4s.src_table)
-		as health_issue,
-	(SELECT started FROM clin.encounter WHERE pk = vn4s.pk_encounter)
-		as encounter_started,
-	(SELECT last_affirmed FROM clin.encounter WHERE pk = vn4s.pk_encounter)
-		as encounter_ended,
-	(SELECT _(description) FROM clin.encounter_type WHERE pk = (SELECT fk_type FROM clin.encounter WHERE pk = vn4s.pk_encounter))
-		as encounter_type
-from clin.v_narrative4search vn4s
-WHERE
-	pk_patient = %(pat)s and
-	vn4s.narrative ~ %(term)s
-order by
-	encounter_started
-"""		# case sensitive
+			SELECT
+				*,
+				coalesce((SELECT description FROM clin.episode WHERE pk = vn4s.pk_episode), vn4s.src_table)
+					as episode,
+				coalesce((SELECT description FROM clin.health_issue WHERE pk = vn4s.pk_health_issue), vn4s.src_table)
+					as health_issue,
+				(SELECT started FROM clin.encounter WHERE pk = vn4s.pk_encounter)
+					as encounter_started,
+				(SELECT last_affirmed FROM clin.encounter WHERE pk = vn4s.pk_encounter)
+					as encounter_ended,
+				(SELECT _(description) FROM clin.encounter_type WHERE pk = (SELECT fk_type FROM clin.encounter WHERE pk = vn4s.pk_encounter))
+					as encounter_type
+			from clin.v_narrative4search vn4s
+			WHERE
+				pk_patient = %(pat)s and
+				vn4s.narrative ~ %(term)s
+			order by
+				encounter_started
+		""" # case sensitive
 		rows, idx = gmPG2.run_ro_queries(queries = [
 			{'cmd': cmd, 'args': {'pat': self.pk_patient, 'term': search_term}}
 		])
@@ -662,7 +1019,7 @@ order by
 		for item in rows:
 			src_table = item[view_col_idx['src_table']]
 			pk_item = item[view_col_idx['pk_item']]
-			if not items_by_table.has_key(src_table):
+			if src_table not in items_by_table:
 				items_by_table[src_table] = {}
 			items_by_table[src_table][pk_item] = item
 
@@ -716,7 +1073,7 @@ order by
 				except:
 					issue_name = view_row[view_col_idx['pk_health_issue']]
 
-				if not emr_data.has_key(age):
+				if age not in emr_data:
 					emr_data[age] = []
 
 				emr_data[age].append(
@@ -828,7 +1185,7 @@ order by
 	#--------------------------------------------------------
 	def format_summary(self):
 
-		cmd = u"SELECT dob FROM dem.v_basic_person WHERE pk_identity = %(pk)s"
+		cmd = u"SELECT dob FROM dem.v_all_persons WHERE pk_identity = %(pk)s"
 		args = {'pk': self.pk_patient}
 		rows, idx = gmPG2.run_ro_queries(queries = [{'cmd': cmd, 'args': args}], get_col_idx = False)
 		dob = rows[0]['dob']
@@ -886,13 +1243,13 @@ order by
 				gmTools.coalesce(allg['reaction'], _('unknown reaction'))
 			)
 
-		meds = self.get_current_substance_intakes(order_by = u'intake_is_approved_of DESC, substance')
+		meds = self.get_current_medications(order_by = u'intake_is_approved_of DESC, substance')
 		if len(meds) > 0:
 			txt += u'\n'
 			txt += _('Medications and Substances')
 			txt += u'\n'
 		for m in meds:
-			txt += u'%s\n' % m.format_as_one_line(left_margin = 1)
+			txt += u'%s\n' % m.format_as_single_line(left_margin = 1)
 
 		fhx = self.get_family_history()
 		if len(fhx) > 0:
@@ -1125,6 +1482,9 @@ WHERE
 	#--------------------------------------------------------
 	def get_external_care_items(self, order_by=None):
 		return gmExternalCare.get_external_care_items(pk_identity = self.pk_patient, order_by = order_by)
+
+	external_care_items = property(get_external_care_items, lambda x:x)
+
 	#--------------------------------------------------------
 	# API: episodes
 	#--------------------------------------------------------
@@ -1379,16 +1739,48 @@ WHERE
 	#--------------------------------------------------------
 	# API: substance intake
 	#--------------------------------------------------------
-	def get_current_substance_intakes(self, include_inactive=True, include_unapproved=False, order_by=None, episodes=None, issues=None):
+	def get_current_medications(self, include_inactive=True, include_unapproved=False, order_by=None, episodes=None, issues=None):
+		return self._get_current_substance_intakes (
+			include_inactive = include_inactive,
+			include_unapproved = include_unapproved,
+			order_by = order_by,
+			episodes = episodes,
+			issues = issues,
+			exclude_medications = False,
+			exclude_potential_abuses = True
+		)
+
+	#--------------------------------------------------------
+	def _get_abused_substances(self, order_by=None):
+		return self._get_current_substance_intakes (
+			include_inactive = True,
+			include_unapproved = True,
+			order_by = order_by,
+			episodes = None,
+			issues = None,
+			exclude_medications = True,
+			exclude_potential_abuses = False
+		)
+
+	abused_substances = property(_get_abused_substances, lambda x:x)
+
+	#--------------------------------------------------------
+	def _get_current_substance_intakes(self, include_inactive=True, include_unapproved=False, order_by=None, episodes=None, issues=None, exclude_potential_abuses=False, exclude_medications=False):
 
 		where_parts = [u'pk_patient = %(pat)s']
 		args = {'pat': self.pk_patient}
 
 		if not include_inactive:
-			where_parts.append(u'is_currently_active IN (true, null)')
+			where_parts.append(u'is_currently_active IN (TRUE, NULL)')
 
 		if not include_unapproved:
-			where_parts.append(u'intake_is_approved_of IN (true, null)')
+			where_parts.append(u'intake_is_approved_of IN (TRUE, NULL)')
+
+		if exclude_potential_abuses:
+			where_parts.append(u'harmful_use_type IS NULL')
+
+		if exclude_medications:
+			where_parts.append(u'harmful_use_type IS NOT NULL')
 
 		if order_by is None:
 			order_by = u''
@@ -1400,30 +1792,34 @@ WHERE
 			order_by
 		)
 		rows, idx = gmPG2.run_ro_queries(queries = [{'cmd': cmd, 'args': args}], get_col_idx = True)
-		meds = [ gmMedication.cSubstanceIntakeEntry(row = {'idx': idx, 'data': r, 'pk_field': 'pk_substance_intake'})  for r in rows ]
+		intakes = [ gmMedication.cSubstanceIntakeEntry(row = {'idx': idx, 'data': r, 'pk_field': 'pk_substance_intake'})  for r in rows ]
 
 		if episodes is not None:
-			meds = filter(lambda s: s['pk_episode'] in episodes, meds)
+			intakes = filter(lambda s: s['pk_episode'] in episodes, intakes)
 
 		if issues is not None:
-			meds = filter(lambda s: s['pk_health_issue'] in issues, meds)
+			intakes = filter(lambda s: s['pk_health_issue'] in issues, intakes)
+
+		return intakes
 
-		return meds
 	#--------------------------------------------------------
-	def add_substance_intake(self, pk_substance=None, pk_component=None, episode=None, preparation=None):
+	def add_substance_intake(self, pk_substance=None, pk_component=None, episode=None, preparation=None, pk_brand=None):
 		return gmMedication.create_substance_intake (
 			pk_substance = pk_substance,
 			pk_component = pk_component,
 			encounter = self.current_encounter['pk_encounter'],
 			episode = episode,
-			preparation = preparation
+			preparation = preparation,
+			pk_brand = pk_brand
 		)
+
 	#--------------------------------------------------------
-	def substance_intake_exists(self, pk_component=None, pk_substance=None):
+	def substance_intake_exists(self, pk_component=None, pk_substance=None, pk_brand=None):
 		return gmMedication.substance_intake_exists (
 			pk_component = pk_component,
 			pk_substance = pk_substance,
-			pk_identity = self.pk_patient
+			pk_identity = self.pk_patient,
+			pk_brand = pk_brand
 		)
 	#--------------------------------------------------------
 	# API: vaccinations
@@ -1435,6 +1831,7 @@ WHERE
 			vaccine = vaccine,
 			batch_no = batch_no
 		)
+
 	#--------------------------------------------------------
 	def get_latest_vaccinations(self, episodes=None, issues=None):
 		"""Returns latest given vaccination for each vaccinated indication.
@@ -1443,43 +1840,67 @@ WHERE
 
 		Note that this will produce duplicate vaccination instances on combi-indication vaccines !
 		"""
-		# find the PKs
 		args = {'pat': self.pk_patient}
-		where_parts = [u'pk_patient = %(pat)s']
+		where_parts = [u'c_v_pv.pk_patient = %(pat)s']
 
 		if (episodes is not None) and (len(episodes) > 0):
-			where_parts.append(u'pk_episode IN %(epis)s')
+			where_parts.append(u'c_v_pv.pk_episode IN %(epis)s')
 			args['epis'] = tuple(episodes)
 
 		if (issues is not None) and (len(issues) > 0):
-			where_parts.append(u'pk_episode IN (select pk from clin.episode where fk_health_issue IN %(issues)s)')
+			where_parts.append(u'c_v_pv.pk_episode IN (select pk from clin.episode where fk_health_issue IN %(issues)s)')
 			args['issues'] = tuple(issues)
 
-		cmd = u'SELECT pk_vaccination, l10n_indication, indication_count FROM clin.v_pat_last_vacc4indication WHERE %s' % u'\nAND '.join(where_parts)
-		rows, idx = gmPG2.run_ro_queries(queries = [{'cmd': cmd, 'args': args}], get_col_idx = False)
+		## find the PKs
+		#cmd = u'SELECT pk_vaccination, l10n_indication, no_of_shots FROM clin.v_pat_last_vacc4indication WHERE %s' % u'\nAND '.join(where_parts)
+		#rows, idx = gmPG2.run_ro_queries(queries = [{'cmd': cmd, 'args': args}], get_col_idx = False)
+
+		# find the shots
+		cmd = u"""
+			SELECT
+				c_v_pv.*,
+				c_v_plv4i.l10n_indication,
+				c_v_plv4i.no_of_shots
+				--c_v_plv4i.indication_count as no_of_shots
+			FROM
+				clin.v_pat_vaccinations c_v_pv
+					JOIN clin.v_pat_last_vacc4indication c_v_plv4i ON (c_v_pv.pk_vaccination = c_v_plv4i.pk_vaccination)
+			WHERE %s
+		""" % u'\nAND '.join(where_parts)
+		rows, idx = gmPG2.run_ro_queries(queries = [{'cmd': cmd, 'args': args}], get_col_idx = True)
 
 		# none found
 		if len(rows) == 0:
 			return {}
 
-		vpks = [ ind['pk_vaccination'] for ind in rows ]
-		vinds = [ ind['l10n_indication'] for ind in rows ]
-		ind_counts = [ ind['indication_count'] for ind in rows ]
-
 		# turn them into vaccinations
-		cmd = gmVaccination.sql_fetch_vaccination % u'pk_vaccination IN %(pks)s'
-		args = {'pks': tuple(vpks)}
-		rows, row_idx = gmPG2.run_ro_queries(queries = [{'cmd': cmd, 'args': args}], get_col_idx = True)
-
+		# (idx is constant)
 		vaccs = {}
-		for idx in range(len(vpks)):
-			pk = vpks[idx]
-			ind_count = ind_counts[idx]
-			for r in rows:
-				if r['pk_vaccination'] == pk:
-					vaccs[vinds[idx]] = (ind_count, gmVaccination.cVaccination(row = {'idx': row_idx, 'data': r, 'pk_field': 'pk_vaccination'}))
+		for shot_row in rows:
+			vaccs[shot_row['l10n_indication']] = (
+				shot_row['no_of_shots'],
+				gmVaccination.cVaccination(row = {'idx': idx, 'data': shot_row, 'pk_field': 'pk_vaccination'})
+			)
+
+		#shot_pks = [ shot_for_ind['pk_vaccination'] for shot_for_ind in rows ]
+		#shot_inds = [ shot_for_ind['l10n_indication'] for shot_for_ind in rows ]
+		#counts_of_shots = [ shot_for_ind['no_of_shots'] for shot_for_ind in rows ]
+
+		## turn them into vaccinations
+		#cmd = gmVaccination.sql_fetch_vaccination % u'pk_vaccination IN %(pks)s'
+		#args = {'pks': tuple(shot_pks)}
+		#rows, row_idx = gmPG2.run_ro_queries(queries = [{'cmd': cmd, 'args': args}], get_col_idx = True)
+
+		#vaccs = {}
+		#for shot_num in range(len(shot_pks)):
+		#	pk = shot_pks[shot_num]
+		#	count_of_shots = counts_of_shots[shot_num]
+		#	for r in rows:
+		#		if r['pk_vaccination'] == pk:
+		#			vaccs[shot_inds[shot_num]] = (count_of_shots, gmVaccination.cVaccination(row = {'idx': row_idx, 'data': r, 'pk_field': 'pk_vaccination'}))
 
 		return vaccs
+
 	#--------------------------------------------------------
 	def get_vaccinations(self, order_by=None, episodes=None, issues=None, encounters=None):
 
@@ -1886,7 +2307,7 @@ WHERE
 		# ask user whether to attach or not
 		cmd = u"""
 			SELECT title, firstnames, lastnames, gender, dob
-			FROM dem.v_basic_person WHERE pk_identity=%s"""
+			FROM dem.v_all_persons WHERE pk_identity=%s"""
 		pats, idx = gmPG2.run_ro_queries(queries = [{'cmd': cmd, 'args': [self.pk_patient]}])
 		pat = pats[0]
 		pat_str = u'%s %s %s (%s), %s  [#%s]' % (
@@ -1932,6 +2353,7 @@ WHERE
 		self.current_encounter = encounter
 		_log.debug('"fairly recent" encounter re-activated')
 		return True
+
 	#------------------------------------------------------------------
 	def start_new_encounter(self):
 		cfg_db = gmCfg.cCfgSQL()
@@ -1949,6 +2371,7 @@ WHERE
 		enc.save()
 		self.current_encounter = enc
 		_log.debug('new encounter [%s] initiated' % self.current_encounter['pk_encounter'])
+
 	#------------------------------------------------------------------
 	def get_encounters(self, since=None, until=None, id_list=None, episodes=None, issues=None, skip_empty=False):
 		"""Retrieves patient's encounters.
@@ -2396,8 +2819,49 @@ SELECT MIN(earliest) FROM (
 		cmd = gmOrganization._SQL_get_org_unit % where
 		rows, idx = gmPG2.run_ro_queries(queries = [{'cmd': cmd, 'args': args}], get_col_idx = True)
 		return [ gmOrganization.cOrgUnit(row = {'pk_field': 'pk_org_unit', 'data': r, 'idx': idx}) for r in rows ]
+	#------------------------------------------------------------------
+	def _get_best_gfr_or_crea(self):
+
+		measured_gfr = self.get_most_recent_results(loinc = gmLOINC.LOINC_gfr_quantity, no_of_results = 1)
+		crea = self.get_most_recent_results(loinc = gmLOINC.LOINC_creatinine_quantity, no_of_results = 1)
+
+		if (measured_gfr is None) and (crea is None):
+			return None
+
+		if (measured_gfr is not None) and (crea is None):
+			return measured_gfr
+
+		# from here, Crea cannot be None anymore
+		if measured_gfr is None:
+			eGFR = self.calculator.eGFR
+			if eGFR.numeric_value is None:
+				return crea
+			return eGFR
+
+		# from here, measured_gfr cannot be None anymore, either
+		two_weeks = pydt.timedelta(weeks = 2)
+		gfr_too_old = (crea['clin_when'] - measured_gfr['clin_when']) > two_weeks
+		if not gfr_too_old:
+			return measured_gfr
+
+		# from here, measured_gfr is considered too
+		# old, so attempt a more timely estimate
+		eGFR = self.calculator.eGFR
+		if eGFR.numeric_value is None:
+			# return crea since we cannot get a
+			# better estimate for some reason
+			return crea
+
+		return eGFR
+
+	best_gfr_or_crea = property(_get_best_gfr_or_crea, lambda x:x)
 
 	#------------------------------------------------------------------
+	def _get_bmi(self):
+		return self.calculator.bmi
+
+	bmi = property(_get_bmi, lambda x:x)
+	#------------------------------------------------------------------
 	#------------------------------------------------------------------
 	#------------------------------------------------------------------
 	def get_lab_request(self, pk=None, req_id=None, lab=None):
@@ -2432,6 +2896,10 @@ if __name__ == "__main__":
 		sys.exit()
 
 	from Gnumed.pycommon import gmLog2
+
+	from Gnumed.business import gmPraxis
+	branches = gmPraxis.get_praxis_branches()
+	praxis = gmPraxis.gmCurrentPraxisBranch(branches[0])
 	#-----------------------------------------
 	def test_allergy_state():
 		emr = cClinicalRecord(aPKey=1)
@@ -2526,9 +2994,14 @@ if __name__ == "__main__":
 	#-----------------------------------------
 	def test_get_meds():
 		emr = cClinicalRecord(aPKey=12)
-		for med in emr.get_current_substance_intakes():
+		for med in emr.get_current_medications():
 			print med
 	#-----------------------------------------
+	def test_get_abuses():
+		emr = cClinicalRecord(aPKey=12)
+		for med in emr.abused_substances:
+			print med.format(single_line = True)
+	#-----------------------------------------
 	def test_is_allergic_to():
 		emr = cClinicalRecord(aPKey = 12)
 		print emr.is_allergic_to(atcs = tuple(sys.argv[2:]), inns = tuple(sys.argv[2:]), brand = sys.argv[2])
@@ -2556,11 +3029,24 @@ if __name__ == "__main__":
 		pat = cPatient(aPK_obj = 12)
 		print emr.format_as_journal(left_margin = 1, patient = pat)
 	#-----------------------------------------
+	def test_smoking():
+		emr = cClinicalRecord(aPKey=12)
+		#print emr.is_or_was_smoker
+		smoking, details = emr.smoking_status
+		print 'status:', smoking
+		print 'details:'
+		print details
+		emr.smoking_status = (True, {'comment': '2', 'last_confirmed': gmDateTime.pydt_now_here()})
+		print emr.smoking_status
+		print emr.alcohol_status
+		print emr.drugs_status
+
+	#-----------------------------------------
 
 	#test_allergy_state()
 	#test_is_allergic_to()
 
-	test_get_test_names()
+	#test_get_test_names()
 	#test_get_dates_for_results()
 	#test_get_measurements()
 	#test_get_test_results_by_date()
@@ -2574,6 +3060,8 @@ if __name__ == "__main__":
 	#test_get_most_recent()
 	#test_episodes()
 	#test_format_as_journal()
+	#test_smoking()
+	test_get_abuses()
 
 #	emr = cClinicalRecord(aPKey = 12)
 
@@ -2606,19 +3094,19 @@ if __name__ == "__main__":
 #	print ''
 
 	#dump = record.get_missing_vaccinations()
-	#f = open('vaccs.lst', 'wb')
+	#f = io.open('vaccs.lst', 'wb')
 	#if dump is not None:
 	#	print "=== due ==="
-	#	f.write("=== due ===\n")
+	#	f.write(u"=== due ===\n")
 	#	for row in dump['due']:
 	#		print row
 	#		f.write(repr(row))
-	#		f.write('\n')
+	#		f.write(u'\n')
 	#	print "=== overdue ==="
-	#	f.write("=== overdue ===\n")
+	#	f.write(u"=== overdue ===\n")
 	#	for row in dump['overdue']:
 	#		print row
 	#		f.write(repr(row))
-	#		f.write('\n')
+	#		f.write(u'\n')
 	#f.close()
 
diff --git a/client/business/gmDICOM.py b/client/business/gmDICOM.py
new file mode 100644
index 0000000..d949039
--- /dev/null
+++ b/client/business/gmDICOM.py
@@ -0,0 +1,959 @@
+# -*- coding: utf-8 -*-
+#============================================================
+
+from __future__ import print_function
+
+__doc__ = """GNUmed DICOM handling middleware"""
+
+__license__ = "GPL v2 or later"
+__author__ = "K.Hilbert <Karsten.Hilbert at gmx.net>"
+
+
+# stdlib
+import io
+import os
+import sys
+import logging
+import httplib			# needed for exception names thrown by httplib2, duh |-(
+import socket			# needed for exception names thrown by httplib2, duh |-(
+import httplib2
+import json
+import zipfile
+import shutil
+from urllib import urlencode
+import distutils.version as version
+
+
+# GNUmed modules
+if __name__ == '__main__':
+	sys.path.insert(0, '../../')
+from Gnumed.pycommon import gmTools
+from Gnumed.pycommon import gmShellAPI
+from Gnumed.pycommon import gmMimeLib
+#from Gnumed.pycommon import gmHooks
+#from Gnumed.pycommon import gmDispatcher
+
+_log = logging.getLogger('gm.dicom')
+
+_map_gender_gm2dcm = {
+	'm': 'M',
+	'f': 'F',
+	'tm': 'M',
+	'tf': 'F',
+	'h': None
+}
+
+#============================================================
+class cOrthancServer:
+	# REST API access to Orthanc DICOM servers
+
+#	def __init__(self):
+#		self.__server_identification = None
+#		self.__user = None
+#		self.__password = None
+#		self.__conn = None
+#		self.__server_url = None
+
+	#--------------------------------------------------------
+	def connect(self, host, port, user, password, expected_minimal_version=None, expected_name=None, expected_aet=None):
+		if (host is None) or (host.strip() == u''):
+			host = u'localhost'
+		self.__server_url = str('http://%s:%s' % (host, port))
+		self.__user = user
+		self.__password = password
+		_log.info('connecting as [%s] to Orthanc server at [%s]', self.__user, self.__server_url)
+		self.__conn = httplib2.Http()
+		self.__conn.add_credentials(self.__user, self.__password)
+		_log.debug('connected to server: %s', self.server_identification)
+		self.connect_error = u''
+		if self.server_identification is False:
+			self.connect_error += u'retrieving server identification failed'
+			return False
+		if expected_minimal_version is not None:
+			if version.LooseVersion(self.server_identification['Version']) < version.LooseVersion(expected_min_version):
+				_log.error('server too old, needed [%s]', expected_min_version)
+				self.connect_error += u'server too old, needed version [%s]' % expected_min_version
+				return False
+		if expected_name is not None:
+			if self.server_identification['Name'] != expected_name:
+				_log.error('wrong server name, expected [%s]', expected_name)
+				self.connect_error += u'wrong server name, expected [%s]' % expected_name
+				return False
+		if expected_aet is not None:
+			if self.server_identification['DicomAet'] != expected_name:
+				_log.error('wrong server AET, expected [%s]', expected_aet)
+				self.connect_error += u'wrong server AET, expected [%s]' % expected_aet
+				return False
+		return True
+
+	#--------------------------------------------------------
+	def _get_server_identification(self):
+		try:
+			return self.__server_identification
+		except AttributeError:
+			pass
+		system_data = self.__run_GET(url = '%s/system' % self.__server_url)
+		if system_data is False:
+			_log.error('unable to get server identification')
+			return False
+		_log.debug('server: %s', system_data)
+		self.__server_identification = system_data
+		return self.__server_identification
+
+	server_identification = property(_get_server_identification, lambda x:x)
+
+	#--------------------------------------------------------
+	def _get_as_external_id_issuer(self):
+		# fixed type :: user level instance name :: DICOM AET
+		return u'Orthanc::%(Name)s::%(DicomAet)s' % self.__server_identification
+
+	as_external_id_issuer = property(_get_as_external_id_issuer, lambda x:x)
+
+	#--------------------------------------------------------
+	def _get_url_browse_patients(self):
+		if self.__user is None:
+			return self.__server_url
+		return self.__server_url.replace('http://', 'http://%s@' % self.__user)
+
+	url_browse_patients = property(_get_url_browse_patients, lambda x:x)
+
+	#--------------------------------------------------------
+	def get_url_browse_patient(self, patient_id):
+		# http://localhost:8042/#patient?uuid=0da01e38-cf792452-65c1e6af-b77faf5a-b637a05b
+		return str('%s/#patient?uuid=%s' % (self.url_browse_patients, patient_id))
+
+	#--------------------------------------------------------
+	def get_url_browse_study(self, study_id):
+		# http://localhost:8042/#study?uuid=0da01e38-cf792452-65c1e6af-b77faf5a-b637a05b
+		return str('%s/#study?uuid=%s' % (self.url_browse_patients, study_id))
+
+	#--------------------------------------------------------
+	# download API
+	#--------------------------------------------------------
+	def get_matching_patients(self, person):
+		_log.info(u'searching for Orthanc patients matching %s', person)
+
+		# look for patient by external ID first
+		pacs_ids = person.get_external_ids(id_type = u'PACS', issuer = self.as_external_id_issuer)
+		if len(pacs_ids) > 1:
+			_log.error('GNUmed patient has more than one ID for this PACS: %s', pacs_ids)
+			_log.error('the PACS ID is expected to be unique per PACS')
+			return []
+
+		pacs_ids2use = []
+
+		if len(pacs_ids) == 1:
+			pacs_ids2use.append(pacs_ids[0]['value'])
+		pacs_ids2use.extend(person.suggest_external_ids(target = u'PACS'))
+
+		for pacs_id in pacs_ids2use:
+			_log.debug('using PACS ID [%s]', pacs_id)
+			pats = self.get_patients_by_external_id(external_id = pacs_id)
+			if len(pats) > 1:
+				_log.warning('more than one Orthanc patient matches PACS ID: %s', pacs_id)
+			if len(pats) > 0:
+				return pats
+
+		_log.debug('no matching patient found in PACS')
+		# return find type ? especially useful for non-matches on ID
+
+		# search by name
+
+#		# then look for name parts
+#		name = person.get_active_name()
+		return []
+
+	#--------------------------------------------------------
+	def get_patients_by_external_id(self, external_id=None):
+		matching_patients = []
+		_log.info(u'searching for patients with external ID >>>%s<<<', external_id)
+
+		# elegant server-side approach:
+		search_data = {
+			'Level': 'Patient',
+			'CaseSensitive': False,
+			'Expand': True,
+			'Query': {'PatientID': external_id.strip(u'*')}
+		}
+		_log.info(u'server-side C-FIND SCU over REST search, mogrified search data: %s', search_data)
+		matches = self.__run_POST(url = '%s/tools/find' % self.__server_url, data = search_data)
+
+		# paranoia
+		for match in matches:
+			self.protect_patient(orthanc_id = match['ID'])
+		return matches
+
+#		# recursive brute force approach:
+#		for pat_id in self.__run_GET(url = '%s/patients' % self.__server_url):
+#			orthanc_pat = self.__run_GET(url = '%s/patients/%s' % (self.__server_url, pat_id))
+#			orthanc_external_id = orthanc_pat['MainDicomTags']['PatientID']
+#			if orthanc_external_id != external_id:
+#				continue
+#			_log.debug(u'match: %s (name=[%s], orthanc_id=[%s])', orthanc_external_id, orthanc_pat['MainDicomTags']['PatientName'], orthanc_pat['ID'])
+#			matching_patients.append(orthanc_pat)
+#		if len(matching_patients) == 0:
+#			_log.debug(u'no matches')
+#		return matching_patients
+
+	#--------------------------------------------------------
+	def get_patients_by_name(self, name_parts=None, gender=None, dob=None, fuzzy=False):
+		_log.info(u'name parts %s, gender [%s], dob [%s], fuzzy: %s', name_parts, gender, dob, fuzzy)
+		if len(name_parts) > 1:
+			return self.get_patients_by_name_parts(name_parts = name_parts, gender = gender, dob = dob, fuzzy = fuzzy)
+		if not fuzzy:
+			search_term = name_parts[0].strip(u'*')
+		else:
+			search_term = name_parts[0]
+			if not search_term.endswith(u'*'):
+				search_term += u'*'
+		search_data = {
+			'Level': 'Patient',
+			'CaseSensitive': False,
+			'Expand': True,
+			'Query': {'PatientName': search_term}
+		}
+		if gender is not None:
+			gender = _map_gender_gm2dcm[gender.lower()]
+			if gender is not None:
+				search_data['Query']['PatientSex'] = gender
+		if dob is not None:
+			search_data['Query']['PatientBirthDate'] = dob.strftime('%Y%m%d')
+		_log.info(u'server-side C-FIND SCU over REST search, mogrified search data: %s', search_data)
+		matches = self.__run_POST(url = '%s/tools/find' % self.__server_url, data = search_data)
+		return matches
+
+	#--------------------------------------------------------
+	def get_patients_by_name_parts(self, name_parts=None, gender=None, dob=None, fuzzy=False):
+		# fuzzy: allow partial/substring matches (but not across name part boundaries ',' or '^')
+		matching_patients = []
+		clean_parts = []
+		for part in name_parts:
+			if part.strip() == u'':
+				continue
+			clean_parts.append(part.lower().strip())
+		_log.info(u'client-side patient search, scrubbed search terms: %s', clean_parts)
+		pat_ids = self.__run_GET(url = '%s/patients' % self.__server_url)
+		if pat_ids is False:
+			_log.error(u'cannot retrieve patients')
+			return []
+		for pat_id in pat_ids:
+			orthanc_pat = self.__run_GET(url = '%s/patients/%s' % (self.__server_url, pat_id))
+			if orthanc_pat is False:
+				_log.error('cannot retrieve patient')
+				continue
+			orthanc_name = orthanc_pat['MainDicomTags']['PatientName'].lower().strip()
+			if not fuzzy:
+				orthanc_name = orthanc_name.replace(u' ', u',').replace(u'^', u',').split(u',')
+			parts_in_orthanc_name = 0
+			for part in clean_parts:
+				if part in orthanc_name:
+					parts_in_orthanc_name += 1
+			if parts_in_orthanc_name == len(clean_parts):
+				_log.debug(u'name match: "%s" contains all of %s', orthanc_name, clean_parts)
+				if gender is not None:
+					gender = _map_gender_gm2dcm[gender.lower()]
+					if gender is not None:
+						if orthanc_pat['MainDicomTags']['PatientSex'].lower() != gender:
+							_log.debug(u'gender mismatch: dicom=[%s] gnumed=[%s], skipping', orthanc_pat['MainDicomTags']['PatientSex'], gender)
+							continue
+				if dob is not None:
+					if orthanc_pat['MainDicomTags']['PatientBirthDate'] != dob.strftime('%Y%m%d'):
+						_log.debug(u'dob mismatch: dicom=[%s] gnumed=[%s], skipping', orthanc_pat['MainDicomTags']['PatientBirthDate'], dob)
+						continue
+				matching_patients.append(orthanc_pat)
+			else:
+				_log.debug(u'name mismatch: "%s" does not contain all of %s', orthanc_name, clean_parts)
+		return matching_patients
+
+	#--------------------------------------------------------
+	def get_studies_list_by_patient_name(self, name_parts=None, gender=None, dob=None, fuzzy=False):
+		return self.get_studies_list_by_orthanc_patient_list (
+			orthanc_patients = self.get_patients_by_name(name_parts = name_parts, gender = gender, dob = dob, fuzzy = fuzzy)
+		)
+
+	#--------------------------------------------------------
+	def get_studies_list_by_external_id(self, external_id=None):
+		return self.get_studies_list_by_orthanc_patient_list (
+			orthanc_patients = self.get_patients_by_external_id(external_id = external_id)
+		)
+
+	#--------------------------------------------------------
+	def get_study_as_zip(self, study_id=None, filename=None):
+		if filename is None:
+			filename = gmTools.get_unique_filename(prefix = r'DCM-', suffix = r'.zip')
+		_log.info('exporting study [%s] into [%s]', study_id, filename)
+		f = io.open(filename, 'wb')
+		f.write(self.__run_GET(url = '%s/studies/%s/archive' % (self.__server_url, str(study_id))))
+		f.close()
+		return filename
+
+	#--------------------------------------------------------
+	def get_study_as_zip_with_dicomdir(self, study_id=None, filename=None):
+		if filename is None:
+			filename = gmTools.get_unique_filename(prefix = r'DCM-', suffix = r'.zip')
+		_log.info('exporting study [%s] into [%s]', study_id, filename)
+		f = io.open(filename, 'wb')
+		f.write(self.__run_GET(url = '%s/studies/%s/media' % (self.__server_url, str(study_id))))
+		f.close()
+		return filename
+
+	#--------------------------------------------------------
+	def get_studies_as_zip(self, study_ids=None, patient_id=None, filename=None):
+		if filename is None:
+			filename = gmTools.get_unique_filename(prefix = r'DCM-', suffix = r'.zip')
+		if study_ids is None:
+			_log.info('exporting all studies of patient [%s] into [%s]', patient_id, filename)
+			f = io.open(filename, 'wb')
+			f.write(self.__run_GET(url = '%s/patients/%s/archive' % (self.__server_url, str(patient_id))))
+			f.close()
+			return filename
+
+	#--------------------------------------------------------
+	def get_studies_with_dicomdir(self, study_ids=None, patient_id=None, target_dir=None, filename=None, create_zip=False):
+
+		if filename is None:
+			filename = gmTools.get_unique_filename(prefix = r'DCM-', suffix = r'.zip', tmp_dir = target_dir)
+
+		# all studies
+		if study_ids is None:
+			if study_ids is None:
+				_log.info(u'exporting all studies of patient [%s] into [%s]', patient_id, filename)
+				f = io.open(filename, 'wb')
+				url = '%s/patients/%s/media' % (self.__server_url, str(patient_id))
+				_log.debug(url)
+				f.write(self.__run_GET(url = url))
+				f.close()
+				if create_zip:
+					return filename
+				if target_dir is None:
+					target_dir = gmTools.mk_sandbox_dir(prefix = u'dcm-')
+				if not gmTools.unzip_archive(filename, target_dir = target_dir, remove_archive = True):
+					return False
+				return target_dir
+
+		# a selection of studies
+#		return u'get range of studies as zip with dicomdir not implemented, either all or one'
+
+		dicomdir_cmd = u'gm-create_dicomdir'		# args: 1) name of DICOMDIR to create 2) base directory where to start recursing for DICOM files
+		found, external_cmd = gmShellAPI.detect_external_binary(dicomdir_cmd)
+		if not found:
+			_log.error('[%s] not found', dicomdir_cmd)
+			return False
+
+		dicomdir_cmd = u'gm-create_dicomdir'		# args: 1) name of DICOMDIR to create 2) base directory where to start recursing for DICOM files
+		found, external_cmd = gmShellAPI.detect_external_binary(dicomdir_cmd)
+		if not found:
+			_log.error('[%s] not found', dicomdir_cmd)
+			return False
+
+		if create_zip:
+			sandbox_dir = gmTools.mk_sandbox_dir(prefix = u'dcm-')
+			_log.info(u'exporting studies [%s] into [%s] (sandbox [%s])', study_ids, filename, sandbox_dir)
+		else:
+			sandbox_dir = target_dir
+			_log.info(u'exporting studies [%s] into [%s]', study_ids, sandbox_dir)
+		_log.debug(u'sandbox dir: %s', sandbox_dir)
+		idx = 0
+		for study_id in study_ids:
+			study_zip_name = gmTools.get_unique_filename(prefix = u'dcm-', suffix = u'.zip')
+			# getting with DICOMDIR returns DICOMDIR compatible subdirs and filenames
+			study_zip_name = self.get_study_as_zip_with_dicomdir(study_id = study_id, filename = study_zip_name)
+			# non-beautiful per-study dir name required by subsequent DICOMDIR generation
+			idx += 1
+			study_unzip_dir = os.path.join(sandbox_dir, 'STUDY%s' % idx)
+			_log.debug(u'study [%s] -> %s -> %s', study_id, study_zip_name, study_unzip_dir)
+			# need to extract into per-study subdir because get-with-dicomdir
+			# returns identical-across-studies subdirs / filenames
+			if not gmTools.unzip_archive(study_zip_name, target_dir = study_unzip_dir, remove_archive = True):
+				return False
+
+		# create DICOMDIR across all studies,
+		# we simply ignore the already existing per-study DICOMDIR files
+		target_dicomdir_name = os.path.join(sandbox_dir, 'DICOMDIR')
+		gmTools.remove_file(target_dicomdir_name, log_error = False)	# better safe than sorry
+		_log.debug('generating [%s]', target_dicomdir_name)
+		cmd = u'%(cmd)s %(DICOMDIR)s %(startdir)s' % {
+			'cmd': external_cmd,
+			'DICOMDIR': target_dicomdir_name,
+			'startdir': sandbox_dir
+		}
+		success = gmShellAPI.run_command_in_shell (
+			command = cmd,
+			blocking = True
+		)
+		if not success:
+			_log.error('problem running [gm-create_dicomdir]')
+			return False
+		# paranoia
+		try:
+			io.open(target_dicomdir_name)
+		except StandardError:
+			_log.error('[%s] not generated, aborting', target_dicomdir_name)
+			return False
+
+		# return path to extracted studies
+		if not create_zip:
+			return sandbox_dir
+
+		# else return ZIP of all studies
+		studies_zip = shutil.make_archive (
+			gmTools.fname_stem_with_path(filename),
+			'zip',
+			root_dir = gmTools.parent_dir(sandbox_dir),
+			base_dir = gmTools.dirname_stem(sandbox_dir),
+			logger = _log
+		)
+		_log.debug(u'archived all studies with one DICOMDIR into: %s', studies_zip)
+		# studies can be _large_ so attempt to get rid of intermediate files
+		gmTools.rmdir(sandbox_dir)
+		return studies_zip
+
+		#> > I finally implemented your request to create a ZIP-with-DICOMDIR from
+		#> > several patients/studies.
+		#> > 
+		#> > You have to make a POST request against URI "/tools/create-media", with a
+		#> > JSON body that contains the array of the resources of interest (as Orthanc
+		#> > identifiers). Here is a sample command-line:
+		#> > 
+		#> > # curl -X POST http://localhost:8042/tools/create-media -d '["8c4663df-c3e66066-9e20a8fc-dd14d1e5-251d3d84","2cd4848d-02f0005f-812ffef6-a210bbcf-3f01a00a","6eeded74-75005003-c3ae9738-d4a06a4f-6beedeb8","8a622020-c058291c-7693b63f-bc67aa2e-0a02e69c"]' -v > /tmp/a.zip
+		# (this will not create duplicates but will also not check for single-patient-ness)
+
+	#--------------------------------------------------------
+	# server-side API
+	#--------------------------------------------------------
+	def protect_patient(self, orthanc_id):
+		url = '%s/patients/%s/protected' % (self.__server_url, str(orthanc_id))
+		if self.__run_GET(url) == 1:
+			_log.debug('patient already protected: %s', orthanc_id)
+			return True
+		_log.warning(u'patient [%s] not protected against recycling, enabling protection now', orthanc_id)
+		self.__run_PUT(url = url, data = '1')
+		if self.__run_GET(url) == 1:
+			return True
+		_log.error(u'cannot protect patient [%s] against recycling', orthanc_id)
+		return False
+
+	#--------------------------------------------------------
+	def unprotect_patient(self, orthanc_id):
+		url = '%s/patients/%s/protected' % (self.__server_url, str(orthanc_id))
+		if self.__run_GET(url) == 0:
+			return True
+		_log.info(u'patient [%s] protected against recycling, disabling protection now', orthanc_id)
+		self.__run_PUT(url = url, data = '0')
+		if self.__run_GET(url) == 0:
+			return True
+		_log.error(u'cannot unprotect patient [%s] against recycling', orthanc_id)
+		return False
+
+	#--------------------------------------------------------
+	def patient_is_protected(self, orthanc_id):
+		url = '%s/patients/%s/protected' % (self.__server_url, str(orthanc_id))
+		return (self.__run_GET(url) == 1)
+
+	#--------------------------------------------------------
+	def modify_patient_id(self, old_patient_id, new_patient_id):
+
+		if old_patient_id == new_patient_id:
+			return True
+
+		modify_data = {
+			u'Replace': {
+				u'PatientID': new_patient_id
+				#,u'0010,0021': praxis.name / "GNUmed vX.X.X"
+				#,u'0010,1002': series of (old) patient IDs
+			}
+		}
+		o_pats = self.get_patients_by_external_id(external_id = old_patient_id)
+		all_modified = True
+		for o_pat in o_pats:
+			_log.info('modifying Orthanc patient [%s]: DICOM ID [%s] -> [%s]', o_pat['ID'], old_patient_id, new_patient_id)
+			if self.patient_is_protected(o_pat['ID']):
+				_log.debug('patient protected: %s, unprotecting for modification', o_pat['ID'])
+				if not self.unprotect_patient(o_pat['ID']):
+					_log.error('cannot unlock patient [%s], skipping', o_pat['ID'])
+					all_modified = False
+					continue
+				was_protected = True
+			else:
+				was_protected = False
+			pat_url = '%s/patients/%s' % (self.__server_url, o_pat['ID'])
+			modify_url = '%s/modify' % pat_url
+			result = self.__run_POST(modify_url, data = modify_data)
+			_log.debug('modified: %s', result)
+			if result is False:
+				_log.error('cannot modify patient [%s]', o_pat['ID'])
+				all_modified = False
+				continue
+			newly_created_patient_id = result['ID']
+			_log.debug('newly created Orthanc patient ID: %s', newly_created_patient_id)
+			_log.debug('deleting archived patient: %s', self.__run_DELETE(pat_url))
+			if was_protected:
+				if not self.protect_patient(newly_created_patient_id):
+					_log.error('cannot re-lock (new) patient [%s]', newly_created_patient_id)
+
+		return all_modified
+
+	#--------------------------------------------------------
+	# upload API
+	#--------------------------------------------------------
+	def upload_dicom_file(self, filename, check_mime_type=False):
+		if gmTools.fname_stem(filename) == u'DICOMDIR':
+			_log.debug('ignoring [%s], no use uploading DICOMDIR files to Orthanc', filename)
+			return True
+
+		if check_mime_type:
+			if gmMimeLib.guess_mimetype(filename) != u'application/dicom':
+				_log.error(u'not considered a DICOM file: %s', filename)
+				return False
+		try:
+			f = io.open(filename, 'rb')
+		except StandardError:
+			_log.exception('cannot open [%s]', filename)
+			return False
+		dcm_data = f.read()
+		f.close()
+		upload_url = '%s/instances' % self.__server_url
+		uploaded = self.__run_POST(upload_url, data = dcm_data, content_type = 'application/dicom')
+		if uploaded is False:
+			_log.error('cannot upload [%s]', filename)
+			return False
+		_log.debug(uploaded)
+		if uploaded[u'Status'] == u'AlreadyStored':
+			# paranoia, as is our custom
+			available_fields_url = '%s%s/attachments/dicom' % (self.__server_url, uploaded[u'Path'])	# u'Path': u'/instances/1440110e-9cd02a98-0b1c0452-087d35db-3fd5eb05'
+			available_fields = self.__run_GET(available_fields_url)
+			if 'md5' not in available_fields:
+				_log.debug('md5 of instance not available in Orthanc, cannot compare against file md5, trusting Orthanc')
+				return True
+			md5_url = '%s/md5' % available_fields_url
+			md5_db = self.__run_GET(md5_url)
+			md5_file = gmTools.file2md5(filename)
+			if md5_file != md5_db:
+				_log.error('local md5: %s', md5_file)
+				_log.error('in-db md5: %s', md5_db)
+				_log.error('MD5 mismatch !')
+				return False
+			_log.error('MD5 match between file and database')
+		return True
+
+	#--------------------------------------------------------
+	def upload_dicom_files(self, files=None, check_mime_type=False):
+		uploaded = []
+		not_uploaded = []
+		for filename in files:
+			success = self.upload_dicom_file(filename, check_mime_type = check_mime_type)
+			if success:
+				uploaded.append(filename)
+				continue
+			not_uploaded.append(filename)
+
+		if len(not_uploaded) > 0:
+			_log.error('not all files uploaded')
+		return (uploaded, not_uploaded)
+
+	#--------------------------------------------------------
+	def upload_from_directory(self, directory=None, recursive=False, check_mime_type=False, ignore_other_files=True):
+
+		#--------------------
+		def _on_error(exc):
+			_log.error('DICOM (?) file not accessible: %s', exc.filename)
+			_log.error(exc)
+		#--------------------
+
+		_log.debug('uploading DICOM files from [%s]', directory)
+		if not recursive:
+			files2try = os.listdir(directory)
+			if ignore_other_files:
+				files2try = [ f for f in files2try if gmMimeLib.guess_mimetype(f) == u'application/dicom' ]
+			return self.upload_dicom_files(files = files2try, check_mime_type = check_mime_type)
+
+		_log.debug('recursing for DICOM files')
+		uploaded = []
+		not_uploaded = []
+		for curr_root, curr_root_subdirs, curr_root_files in os.walk(directory, onerror = _on_error):
+			_log.debug('recursing into [%s]', curr_root)
+			files2try = [ os.path.join(curr_root, f) for f in curr_root_files ]
+			if ignore_other_files:
+				files2try = [ f for f in files2try if gmMimeLib.guess_mimetype(f) == u'application/dicom' ]
+			up, not_up = self.upload_dicom_files (
+				files = files2try,
+				check_mime_type = check_mime_type
+			)
+			uploaded.extend(up)
+			not_uploaded.extend(not_up)
+
+		return (uploaded, not_uploaded)
+
+	#--------------------------------------------------------
+	def upload_by_DICOMDIR(self, DICOMDIR=None):
+		pass
+
+	#--------------------------------------------------------
+	# helper functions
+	#--------------------------------------------------------
+	def get_studies_list_by_orthanc_patient_list(self, orthanc_patients=None):
+		studies_by_patient = []
+		study_keys = {}
+		study_keys_m = {}
+		series_keys = {}
+		series_keys_m = {}
+		for pat in orthanc_patients:
+			pat_dict = {
+				'orthanc_id': pat['ID'],
+				'name': pat['MainDicomTags']['PatientName'],
+				'external_id': pat['MainDicomTags']['PatientID'],
+				'studies': []
+			}
+			try:
+				pat_dict['date_of_birth'] = pat['MainDicomTags']['PatientBirthDate']
+			except KeyError:
+				pat_dict['date_of_birth'] = None
+			try:
+				pat_dict['gender'] = pat['MainDicomTags']['PatientSex']
+			except KeyError:
+				pat_dict['gender'] = None
+			for key in pat_dict:
+				if pat_dict[key] == u'unknown':
+					pat_dict[key] = None
+				if pat_dict[key] == u'(null)':
+					pat_dict[key] = None
+			studies_by_patient.append(pat_dict)
+			orth_studies = self.__run_GET(url = u'%s/patients/%s/studies' % (self.__server_url, pat['ID']))
+			if orth_studies is False:
+				_log.error('cannot retrieve studies')
+				return []
+			for orth_study in orth_studies:
+				# debugging
+				#for key in orth_study.keys():
+				#	study_keys[key] = True
+				#for key in orth_study['MainDicomTags'].keys():
+				#	study_keys_m[key] = True
+				study_dict = {
+					'orthanc_id': orth_study['ID'],
+					'date': orth_study['MainDicomTags'][u'StudyDate'],
+					'time': orth_study['MainDicomTags'][u'StudyTime'],
+					'series': []
+				}
+				try:
+					study_dict['description'] = orth_study['MainDicomTags'][u'StudyDescription']
+				except KeyError:
+					study_dict['description'] = None
+				for key in study_dict:
+					if study_dict[key] == u'unknown':
+						study_dict[key] = None
+					if study_dict[key] == u'(null)':
+						study_dict[key] = None
+				pat_dict['studies'].append(study_dict)
+				for orth_series_id in orth_study['Series']:
+					orth_series = self.__run_GET(url = u'%s/series/%s' % (self.__server_url, orth_series_id))
+					if orth_series is False:
+						_log.error('cannot retrieve series')
+						return []
+					# debugging
+					#for key in orth_series.keys():
+					#	series_keys[key] = True
+					#for key in orth_series['MainDicomTags'].keys():
+					#	series_keys_m[key] = True
+					series_dict = {
+						'orthanc_id': orth_series['ID'],
+						'modality': orth_series['MainDicomTags']['Modality'],
+						'instances': len(orth_series['Instances'])
+					}
+					try:
+						series_dict['date'] = orth_series['MainDicomTags']['SeriesDate']
+					except KeyError:
+						series_dict['date'] = study_dict['date']
+					try:
+						series_dict['description'] = orth_series['MainDicomTags'][u'SeriesDescription']
+					except KeyError:
+						series_dict['description'] = None
+					try:
+						series_dict['time'] = orth_series['MainDicomTags']['SeriesTime']
+					except KeyError:
+						series_dict['time'] = None
+					if series_dict['time'] is not None:
+						if series_dict['time'].strip() == u'':
+							series_dict['time'] = None
+					try:
+						series_dict['body_part'] = orth_series['MainDicomTags']['BodyPartExamined']
+					except KeyError:
+						series_dict['body_part'] = None
+					try:
+						series_dict['protocol'] = orth_series['MainDicomTags']['ProtocolName']
+					except KeyError:
+						series_dict['protocol'] = None
+					if series_dict['description'] == series_dict['protocol']:
+						_log.debug('<series description> matches <series protocol>, ignoring description')
+						series_dict['description'] = None
+					try:
+						series_dict['station'] = orth_series['MainDicomTags']['StationName']
+					except KeyError:
+						series_dict['station'] = None
+					for key in series_dict:
+						if series_dict[key] == u'unknown':
+							series_dict[key] = None
+						if series_dict[key] == u'(null)':
+							series_dict[key] = None
+					study_dict['series'].append(series_dict)
+
+		# debugging
+		#_log.debug('study: %s', study_keys.keys())
+		#_log.debug('study(MainDicomTags): %s', study_keys_m.keys())
+		#_log.debug('series: %s', series_keys.keys())
+		#_log.debug('series(MainDicomTags): %s', series_keys_m.keys())
+
+		return studies_by_patient
+
+	#--------------------------------------------------------
+	# generic REST helpers
+	#--------------------------------------------------------
+	def __run_GET(self, url=None, data=None):
+		if data is None:
+			data = {}
+		params = u''
+		if len(data.keys()) > 0:
+			params = u'?' + urlencode(data)
+		full_url = url + params
+		try:
+			response, content = self.__conn.request(full_url, 'GET')
+		except httplib.ResponseNotReady:
+			_log.exception('cannot GET: %s', full_url)
+			return False
+		except socket.error:
+			_log.exception('cannot GET: %s', full_url)
+			return False
+
+		if not (response.status in [ 200 ]):
+			_log.error('cannot GET: %s', full_url)
+			_log.error('response: %s', response)
+			return False
+		try:
+			return json.loads(content)
+		except StandardError:
+			return content
+
+	#--------------------------------------------------------
+	def __run_POST(self, url=None, data=None, content_type=u''):
+		if isinstance(data, str):
+			body = data
+			if len(content_type) != 0:
+				headers = { 'content-type' : content_type }
+			else:
+				headers = { 'content-type' : 'text/plain' }
+		else:
+			body = json.dumps(data)
+			headers = { 'content-type' : 'application/json' }
+		try:
+			response, content = self.__conn.request(url, 'POST', body = body, headers = headers)
+		except httplib.ResponseNotReady:
+			_log.exception('cannot POST: %s', url)
+			return False
+		except socket.error:
+			_log.exception('cannot POST: %s', url)
+			return False
+
+		if response.status == 404:
+			_log.debug('no data, response: %s', response)
+			return []
+		if not (response.status in [ 200, 302 ]):
+			_log.error('cannot POST: %s', url)
+			_log.error('response: %s', response)
+			return False
+		try:
+			return json.loads(content)
+		except StandardError:
+			return content
+
+	#--------------------------------------------------------
+	def __run_PUT(self, url=None, data=None, content_type=u''):
+		if isinstance(data, str):
+			body = data
+			if len(content_type) != 0:
+				headers = { 'content-type' : content_type }
+			else:
+				headers = { 'content-type' : 'text/plain' }
+		else:
+			body = json.dumps(data)
+			headers = { 'content-type' : 'application/json' }
+		try:
+			response, content = self.__conn.request(url, 'PUT', body = body, headers = headers)
+		except httplib.ResponseNotReady:
+			_log.exception('cannot PUT: %s', url)
+			return False
+		except socket.error:
+			_log.exception('cannot PUT: %s', url)
+			return False
+
+		if response.status == 404:
+			_log.debug('no data, response: %s', response)
+			return []
+		if not (response.status in [ 200, 302 ]):
+			_log.error('cannot PUT: %s', url)
+			_log.error('response: %s', response)
+			return False
+		try:
+			return json.loads(content)
+		except StandardError:
+			return content
+
+	#--------------------------------------------------------
+	def __run_DELETE(self, url=None):
+		try:
+			response, content = self.__conn.request(url, 'DELETE')
+		except httplib.ResponseNotReady:
+			_log.exception('cannot DELETE: %s', url)
+			return False
+		except socket.error:
+			_log.exception('cannot DELETE: %s', url)
+			return False
+
+		if not (response.status in [ 200 ]):
+			_log.error('cannot DELETE: %s', url)
+			_log.error('response: %s', response)
+			return False
+		try:
+			return json.loads(content)
+		except StandardError:
+			return content
+
+#============================================================
+# main
+#------------------------------------------------------------
+if __name__ == "__main__":
+
+	if len(sys.argv) == 1:
+		sys.exit()
+
+	if sys.argv[1] != 'test':
+		sys.exit()
+
+#	if __name__ == '__main__':
+#		sys.path.insert(0, '../../')
+	from Gnumed.pycommon import gmLog2
+
+	#--------------------------------------------------------
+	def orthanc_console(host, port):
+		orthanc = cOrthancServer()
+		if not orthanc.connect(host, port, user = None, password = None):		#, expected_aet = 'another AET'
+			print('error connecting to server:', orthanc.connect_error)
+			return False
+		print('Connected to Orthanc server "%s" (AET [%s] - version [%s] - DB [%s])' % (
+			orthanc.server_identification['Name'],
+			orthanc.server_identification['DicomAet'],
+			orthanc.server_identification['Version'],
+			orthanc.server_identification['DatabaseVersion']
+		))
+		print('')
+		print('Please enter patient name parts, separated by SPACE.')
+
+		while True:
+			entered_name = gmTools.prompted_input(prompt = "\nEnter person search term or leave blank to exit")
+			if entered_name in ['exit', 'quit', 'bye', None]:
+				print("user cancelled patient search")
+				break
+
+			pats = orthanc.get_patients_by_external_id(external_id = entered_name)
+			if len(pats) > 0:
+				for pat in pats:
+					print(pat)
+				continue
+
+			pats = orthanc.get_patients_by_name(name_parts = entered_name.split(), fuzzy = True)
+			for pat in pats:
+				print(pat)
+				continue
+
+			pats = orthanc.get_studies_list_by_patient_name(name_parts = entered_name.split(), fuzzy = True)
+			for pat in pats:
+				print(pat['name'])
+				for study in pat['studies']:
+					print(u' ', gmTools.format_dict_like(study, relevant_keys = ['orthanc_id', 'date', 'time'], template = u'study [%%(orthanc_id)s] at %%(date)s %%(time)s contains %s series' % len(study['series'])))
+					for series in study['series']:
+						print (
+							u'  ',
+							gmTools.format_dict_like (
+								series,
+								relevant_keys = ['orthanc_id', 'date', 'time', 'modality', 'instances', 'body_part', 'protocol', 'description', 'station'],
+								template = u'series [%(orthanc_id)s] at %(date)s %(time)s: "%(description)s" %(modality)s@%(station)s (%(protocol)s) of body part "%(body_part)s" holds %(instances)s images'
+							)
+						)
+				#print(orthanc.get_study_as_zip_with_dicomdir(study_id = study['orthanc_id'], filename = 'study_%s.zip' % study['orthanc_id']))
+				#print(orthanc.get_study_as_zip(study_id = study['orthanc_id'], filename = 'study_%s.zip' % study['orthanc_id']))
+				#print(orthanc.get_studies_as_zip_with_dicomdir(study_ids = [ s['orthanc_id'] for s in pat['studies'] ], filename = 'studies_of_%s.zip' % pat['orthanc_id']))
+				print(u'--------')
+
+	#--------------------------------------------------------
+	def run_console():
+		try:
+			host = sys.argv[2]
+			port = sys.argv[3]
+		except IndexError:
+			host = None
+			port = '8042'
+		orthanc_console(host, port)
+	#--------------------------------------------------------
+	def test_modify_patient_id():
+		try:
+			host = sys.argv[2]
+			port = sys.argv[3]
+		except IndexError:
+			host = None
+			port = '8042'
+		orthanc = cOrthancServer()
+		if not orthanc.connect(host, port, user = None, password = None):		#, expected_aet = 'another AET'
+			print('error connecting to server:', orthanc.connect_error)
+			return False
+		print('Connected to Orthanc server "%s" (AET [%s] - version [%s] - DB [%s])' % (
+			orthanc.server_identification['Name'],
+			orthanc.server_identification['DicomAet'],
+			orthanc.server_identification['Version'],
+			orthanc.server_identification['DatabaseVersion']
+		))
+		print('')
+		print('Please enter patient name parts, separated by SPACE.')
+
+		entered_name = gmTools.prompted_input(prompt = "\nEnter person search term or leave blank to exit")
+		if entered_name in ['exit', 'quit', 'bye', None]:
+			print("user cancelled patient search")
+			return
+
+		pats = orthanc.get_patients_by_name(name_parts = entered_name.split(), fuzzy = True)
+		if len(pats) == 0:
+			print('no patient found')
+			return
+
+		pat = pats[0]
+		print('test patient:')
+		print(pat)
+		old_id = pat['MainDicomTags']['PatientID']
+		new_id = old_id + u'-1'
+		print('setting [%s] to [%s]:' % (old_id, new_id), orthanc.modify_patient_id(old_id, new_id))
+
+	#--------------------------------------------------------
+	def test_upload_files():
+#		try:
+#			host = sys.argv[2]
+#			port = sys.argv[3]
+#		except IndexError:
+		host = None
+		port = '8042'
+
+		orthanc = cOrthancServer()
+		if not orthanc.connect(host, port, user = None, password = None):		#, expected_aet = 'another AET'
+			print('error connecting to server:', orthanc.connect_error)
+			return False
+		print('Connected to Orthanc server "%s" (AET [%s] - version [%s] - DB [%s])' % (
+			orthanc.server_identification['Name'],
+			orthanc.server_identification['DicomAet'],
+			orthanc.server_identification['Version'],
+			orthanc.server_identification['DatabaseVersion']
+		))
+		print('')
+
+		#orthanc.upload_dicom_file(sys.argv[2])
+		orthanc.upload_from_directory(directory = sys.argv[2], recursive = True, check_mime_type = False, ignore_other_files = True)
+
+	#--------------------------------------------------------
+	#run_console()
+	#test_modify_patient_id()
+	test_upload_files()
diff --git a/client/business/gmDataMining.py b/client/business/gmDataMining.py
index c3b28f3..f2d7f9b 100644
--- a/client/business/gmDataMining.py
+++ b/client/business/gmDataMining.py
@@ -51,7 +51,7 @@ def delete_report_definition(name=None):
 def run_report_query(query=None, limit=None, pk_identity=None):
 	"""Returns (status, hint, cols, rows)"""
 
-	PATIENT_ID_TOKEN = u'$<ID_active_patient>$'
+	PATIENT_ID_TOKEN = u'$<ID_ACTIVE_PATIENT>$'
 	if limit is None:
 		limit = u''
 	else:
@@ -95,7 +95,7 @@ def run_report_query(query=None, limit=None, pk_identity=None):
 	try:
 		# read-only for safety reasons
 		rows, idx = gmPG2.run_ro_queries(queries = [{'cmd': wrapped_query}], get_col_idx = True)
-	except StandardError:
+	except Exception:
 		_log.exception('report query failed')
 		gmDispatcher.send('statustext', msg = _('The query failed.'), beep = True)
 		cols = [_('Error')]
diff --git a/client/business/gmDemographicRecord.py b/client/business/gmDemographicRecord.py
index 946c581..04d2fa2 100644
--- a/client/business/gmDemographicRecord.py
+++ b/client/business/gmDemographicRecord.py
@@ -14,6 +14,7 @@ import sys
 import os
 import os.path
 import logging
+import urllib
 
 
 # GNUmed
@@ -172,11 +173,11 @@ def delete_tag_image(tag_image=None):
 	return True
 
 #============================================================
-_SQL_get_identity_tags = u"""SELECT * FROM dem.v_identity_tags WHERE %s"""
+_SQL_get_person_tags = u"""SELECT * FROM dem.v_identity_tags WHERE %s"""
 
-class cIdentityTag(gmBusinessDBObject.cBusinessDBObject):
+class cPersonTag(gmBusinessDBObject.cBusinessDBObject):
 
-	_cmd_fetch_payload = _SQL_get_identity_tags % u"pk_identity_tag = %s"
+	_cmd_fetch_payload = _SQL_get_person_tags % u"pk_identity_tag = %s"
 	_cmds_store_payload = [
 		u"""
 			UPDATE dem.identity_tag SET
@@ -208,7 +209,7 @@ class cIdentityTag(gmBusinessDBObject.cBusinessDBObject):
 					suffix = None
 			# get unique filename
 			filename = gmTools.get_unique_filename (
-				prefix = 'gm-identity_tag-',
+				prefix = 'gm-person_tag-',
 				suffix = suffix
 			)
 
@@ -241,9 +242,9 @@ def get_countries():
 #------------------------------------------------------------
 def get_country_for_region(region=None):
 	cmd = u"""
-SELECT code_country, l10n_country FROM dem.v_state WHERE lower(l10n_state) = lower(%(region)s)
+SELECT code_country, l10n_country FROM dem.v_region WHERE lower(l10n_region) = lower(%(region)s)
 	union
-SELECT code_country, l10n_country FROM dem.v_state WHERE lower(state) = lower(%(region)s)
+SELECT code_country, l10n_country FROM dem.v_region WHERE lower(region) = lower(%(region)s)
 """
 	rows, idx = gmPG2.run_ro_queries(queries = [{'cmd': cmd, 'args': {'region': region}}])
 	return rows
@@ -277,9 +278,9 @@ def map_urb_zip_region2country(urb=None, zip=None, region=None):
 			lower(urb) = lower(%(urb)s)
 				AND
 			(
-				(lower(state) = lower(coalesce(%(region)s, 'state/territory/province/region not available')))
+				(lower(region) = lower(coalesce(%(region)s, 'state/territory/province/region not available')))
 					OR
-				(lower(l10n_state) = lower(coalesce(%(region)s, _('state/territory/province/region not available'))))
+				(lower(l10n_region) = lower(coalesce(%(region)s, _('state/territory/province/region not available'))))
 			)
 
 		) UNION (
@@ -307,9 +308,9 @@ def map_urb_zip_region2country(urb=None, zip=None, region=None):
 			postcode_urb = %(zip)s
 				AND
 			(
-				(lower(state) = lower(%(region)s))
+				(lower(region) = lower(%(region)s))
 					OR
-				(lower(l10n_state) = lower(%(region)s))
+				(lower(l10n_region) = lower(%(region)s))
 			)
 
 		) UNION (
@@ -323,9 +324,9 @@ def map_urb_zip_region2country(urb=None, zip=None, region=None):
 		FROM dem.v_urb WHERE
 			lower(urb) = lower(%(urb)s)
 				AND
-			((lower(state) = lower(%(region)s))
+			((lower(region) = lower(%(region)s))
 				OR
-			(lower(l10n_state) = lower(%(region)s)))
+			(lower(l10n_region) = lower(%(region)s)))
 
 		) UNION (
 
@@ -335,10 +336,10 @@ def map_urb_zip_region2country(urb=None, zip=None, region=None):
 			country,
 			l10n_country,
 			code_country
-		FROM dem.v_state WHERE
-			lower(state) = lower(%(region)s)
+		FROM dem.v_region WHERE
+			lower(region) = lower(%(region)s)
 				OR
-			lower(l10n_state) = lower(%(region)s)
+			lower(l10n_region) = lower(%(region)s)
 
 		) ORDER BY rank"""
 
@@ -361,9 +362,9 @@ def map_urb_zip_country2region(urb=None, zip=None, country=None, country_code=No
 		-- find by using all known details
 		SELECT
 			1 AS rank,
-			state,
-			l10n_state,
-			code_state
+			region,
+			l10n_region,
+			code_region
 		FROM dem.v_urb WHERE
 			postcode_urb = %(zip)s
 				AND
@@ -382,9 +383,9 @@ def map_urb_zip_country2region(urb=None, zip=None, country=None, country_code=No
 		-- find by zip / urb
 		SELECT
 			2 AS rank,
-			state,
-			l10n_state,
-			code_state
+			region,
+			l10n_region,
+			code_region
 		FROM dem.v_urb WHERE
 			postcode_urb = %(zip)s
 				AND
@@ -395,9 +396,9 @@ def map_urb_zip_country2region(urb=None, zip=None, country=None, country_code=No
 		-- find by zip / country
 		SELECT
 			2 AS rank,
-			state,
-			l10n_state,
-			code_state
+			region,
+			l10n_region,
+			code_region
 		FROM dem.v_urb WHERE
 			postcode_urb = %(zip)s
 				AND
@@ -414,9 +415,9 @@ def map_urb_zip_country2region(urb=None, zip=None, country=None, country_code=No
 		-- find by urb / country
 		SELECT
 			2 AS rank,
-			state,
-			l10n_state,
-			code_state
+			region,
+			l10n_region,
+			code_region
 		FROM dem.v_urb WHERE
 			lower(urb) = lower(%(urb)s)
 				AND
@@ -437,10 +438,10 @@ def map_urb_zip_country2region(urb=None, zip=None, country=None, country_code=No
 		-- find by country (some countries will only have one region)
 		SELECT
 			1 AS rank,		-- dummy to conform with function result structure at Python level
-			state,
-			l10n_state,
-			code_state
-		FROM dem.v_state WHERE
+			region,
+			l10n_region,
+			code_region
+		FROM dem.v_region WHERE
 			(lower(country) = lower(%(country)s))
 				OR
 			(lower(l10n_country) = lower(%(country)s))
@@ -467,15 +468,15 @@ def map_urb_zip_country2region(urb=None, zip=None, country=None, country_code=No
 def map_region2code(region=None, country_code=None):
 	if country_code is None:
 		cmd = u"""
-			SELECT code FROM dem.state WHERE lower(_(name)) = lower(%(region)s)
+			SELECT code FROM dem.region WHERE lower(_(name)) = lower(%(region)s)
 				UNION
-			SELECT code FROM dem.state WHERE lower(name) = lower(%(region)s)
+			SELECT code FROM dem.region WHERE lower(name) = lower(%(region)s)
 		"""
 	else:
 		cmd = u"""
-			SELECT code FROM dem.state WHERE lower(_(name)) = lower(%(region)s) AND lower(country) = lower(%(country_code)s)
+			SELECT code FROM dem.region WHERE lower(_(name)) = lower(%(region)s) AND lower(country) = lower(%(country_code)s)
 				UNION
-			SELECT code FROM dem.state WHERE lower(name) = %(region)s AND lower(country) = lower(%(country_code)s)
+			SELECT code FROM dem.region WHERE lower(name) = %(region)s AND lower(country) = lower(%(country_code)s)
 		"""
 	args = {
 		'country_code': country_code,
@@ -497,7 +498,7 @@ def delete_region(region=None, delete_urbs=False):
 			'cmd': u"""
 				delete from dem.urb du
 				where
-					du.id_state = %(region)s
+					du.fk_region = %(region)s
 						and
 					not exists (select 1 from dem.street ds where ds.id_urb = du.id)""",
 			'args': args
@@ -505,11 +506,11 @@ def delete_region(region=None, delete_urbs=False):
 
 	queries.append ({
 		'cmd': u"""
-			delete from dem.state ds
-			where
-				ds.id = %(region)s
-					and
-				not exists (select 1 from dem.urb du where du.id_state = ds.id)""",
+			DELETE FROM dem.region d_r
+			WHERE
+				d_r.pk = %(region)s
+					AND
+				NOT EXISTS (SELECT 1 FROM dem.urb du WHERE du.fk_region = d_r.pk)""",
 		'args': args
 	})
 
@@ -522,14 +523,14 @@ def create_region(name=None, code=None, country=None):
 
 	args = {'code': code, 'country': country, 'name': name}
 
-	cmd = u"""SELECT EXISTS (SELECT 1 FROM dem.state WHERE name = %(name)s)"""
+	cmd = u"""SELECT EXISTS (SELECT 1 FROM dem.region WHERE name = %(name)s)"""
 	rows, idx = gmPG2.run_ro_queries(queries = [{'cmd': cmd, 'args': args}], get_col_idx = False)
 
 	if rows[0][0]:
 		return
 
 	cmd = u"""
-		INSERT INTO dem.state (
+		INSERT INTO dem.region (
 			code, country, name
 		) VALUES (
 			%(code)s, %(country)s, %(name)s
@@ -539,9 +540,9 @@ def create_region(name=None, code=None, country=None):
 def get_regions():
 	cmd = u"""
 		select
-			l10n_state, l10n_country, state, code_state, code_country, pk_state, country_deprecated
-		from dem.v_state
-		order by l10n_country, l10n_state"""
+			l10n_region, l10n_country, region, code_region, code_country, pk_region, country_deprecated
+		from dem.v_region
+		order by l10n_country, l10n_region"""
 	rows, idx = gmPG2.run_ro_queries(queries = [{'cmd': cmd}])
 	return rows
 
@@ -567,7 +568,7 @@ class cAddress(gmBusinessDBObject.cBusinessDBObject):
 	whom it is attached. In many cases you will want to create a *new*
 	address and link it to a person instead of the old address.
 	"""
-	_cmd_fetch_payload = u"select * from dem.v_address where pk_address = %s"
+	_cmd_fetch_payload = u"SELECT * FROM dem.v_address WHERE pk_address = %s"
 	_cmds_store_payload = [
 		u"""UPDATE dem.address SET
 				aux_street = %(notes_street)s,
@@ -593,6 +594,18 @@ class cAddress(gmBusinessDBObject.cBusinessDBObject):
 			return format_address_single_line(address = self, show_type = False, verbose = verbose)
 		return format_address(address = self, show_type = False)
 
+	#--------------------------------------------------------
+	def _get_as_map_url(self):
+		url = u'http://nominatim.openstreetmap.org/search/%s/%s/%s/%s?limit=3' % (
+			urllib.quote(self['country'].encode('utf8')),
+			urllib.quote(self['urb'].encode('utf8')),
+			urllib.quote(self['street'].encode('utf8')),
+			urllib.quote(self['number'].encode('utf8'))
+		)
+		return url
+
+	as_map_url = property(_get_as_map_url, lambda x:x)
+
 #------------------------------------------------------------
 def address_exists(country_code=None, region_code=None, urb=None, postcode=None, street=None, number=None, subunit=None):
 
@@ -685,6 +698,7 @@ def delete_address(pk_address=None):
 		"""
 	rows, idx = gmPG2.run_rw_queries(queries = [{'cmd': cmd, 'args': {'pk': pk_address}}])
 	return True
+
 #------------------------------------------------------------
 def format_address_single_line(address=None, verbose=False, show_type=False):
 	data = {
@@ -697,8 +711,8 @@ def format_address_single_line(address=None, verbose=False, show_type=False):
 		'zip': address['postcode'],
 		'urb': address['urb'],
 		'suburb': gmTools.coalesce(address['suburb'], u'', u' (%s)'),
-		'l10n_state': address['l10n_state'],
-		'code_state': address['code_state'],
+		'l10n_region': address['l10n_region'],
+		'code_region': address['code_region'],
 		'l10n_country': address['l10n_country'],
 		'code_country': address['code_country']
 	}
@@ -707,16 +721,17 @@ def format_address_single_line(address=None, verbose=False, show_type=False):
 
 	if verbose:
 		if show_type:
-			template = _('%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s %(suburb)s, %(code_state)s, %(code_country)s')
+			template = _('%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s %(suburb)s, %(code_region)s, %(code_country)s')
 		else:
-			template = _('%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s %(suburb)s, %(code_state)s, %(code_country)s')
+			template = _('%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s %(suburb)s, %(code_region)s, %(code_country)s')
 	else:
 		if show_type:
-			template = _('%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_state)s, %(code_country)s')
+			template = _('%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_region)s, %(code_country)s')
 		else:
-			template = _('%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_state)s, %(code_country)s')
+			template = _('%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_region)s, %(code_country)s')
 
 	return template % data
+
 #------------------------------------------------------------
 def format_address(address=None, show_type=False):
 	data = {
@@ -729,8 +744,8 @@ def format_address(address=None, show_type=False):
 		'zip': address['postcode'],
 		'urb': address['urb'],
 		'suburb': gmTools.coalesce(address['suburb'], u'', u' (%s)'),
-		'l10n_state': address['l10n_state'],
-		'code_state': address['code_state'],
+		'l10n_region': address['l10n_region'],
+		'code_region': address['code_region'],
 		'l10n_country': address['l10n_country'],
 		'code_country': address['code_country']
 	}
@@ -741,7 +756,7 @@ def format_address(address=None, show_type=False):
 			' Street: %(street)s%(notes_street)s\n'
 			' Number/Unit: %(number)s%(subunit)s%(notes_subunit)s\n'
 			' Location: %(zip)s %(urb)s%(suburb)s\n'
-			' Region: %(l10n_state)s, %(code_state)s\n'
+			' Region: %(l10n_region)s, %(code_region)s\n'
 			' Country: %(l10n_country)s, %(code_country)s'
 		)
 	else:
@@ -750,11 +765,12 @@ def format_address(address=None, show_type=False):
 			' Street: %(street)s%(notes_street)s\n'
 			' Number/Unit: %(number)s%(subunit)s%(notes_subunit)s\n'
 			' Location: %(zip)s %(urb)s%(suburb)s\n'
-			' Region: %(l10n_state)s, %(code_state)s\n'
+			' Region: %(l10n_region)s, %(code_region)s\n'
 			' Country: %(l10n_country)s, %(code_country)s'
 		)
 	txt = template % data
 	return txt.split('\n')
+
 #------------------------------------------------------------
 def create_address_type(address_type=None):
 	args = {'typ': address_type}
@@ -845,6 +861,12 @@ class cPatientAddress(gmBusinessDBObject.cBusinessDBObject):
 
 	address = property(_get_address, lambda x:x)
 
+	#--------------------------------------------------------
+	def _get_as_map_url(self):
+		return self.address.as_map_url
+
+	as_map_url = property(_get_as_map_url, lambda x:x)
+
 #===================================================================
 # communication channels API
 #-------------------------------------------------------------------
@@ -1037,14 +1059,14 @@ def getRelationshipTypes():
 def getUrb (id_urb):
 	cmd = """
 select
-	dem.state.name,
+	dem.region.name,
 	dem.urb.postcode
 from
 	dem.urb,
-	dem.state
+	dem.region
 where
 	dem.urb.id = %s and
-	dem.urb.id_state = dem.state.id"""
+	dem.urb.fk_region = dem.region.pk"""
 	row_list = gmPG.run_ro_query('personalia', cmd, None, id_urb)
 	if not row_list:
 		return None
@@ -1054,17 +1076,17 @@ where
 def getStreet (id_street):
 	cmd = """
 select
-	dem.state.name,
+	dem.region.name,
 	coalesce (dem.street.postcode, dem.urb.postcode),
 	dem.urb.name
 from
 	dem.urb,
-	dem.state,
+	dem.region,
 	dem.street
 where
 	dem.street.id = %s and
 	dem.street.id_urb = dem.urb.id and
-	dem.urb.id_state = dem.state.id
+	dem.urb.fk_region = dem.region.pk
 """
 	row_list = gmPG.run_ro_query('personalia', cmd, None, id_street)
 	if not row_list:
@@ -1083,18 +1105,18 @@ def get_town_data (town):
 	row_list = gmPG.run_ro_query ('personalia', """
 select
 	dem.urb.postcode,
-	dem.state.code,
-	dem.state.name,
+	dem.region.code,
+	dem.region.name,
 	dem.country.code,
 	dem.country.name
 from
 	dem.urb,
-	dem.state,
+	dem.region,
 	dem.country
 where
 	dem.urb.name = %s and
-	dem.urb.id_state = dem.state.id and
-	dem.state.country = dem.country.code""", None, town)
+	dem.urb.fk_region = dem.region.pk and
+	dem.region.country = dem.country.code""", None, town)
 	if not row_list:
 		return (None, None, None, None, None)
 	else:
@@ -1208,6 +1230,7 @@ if __name__ == "__main__":
 		print "created new address with subunit", su
 		print address
 		print address.format()
+		print address.as_map_url
 		print "deleted address:", delete_address(pk_address = address['pk_address'])
 	#--------------------------------------------------------
 	def test_get_countries():
@@ -1259,15 +1282,11 @@ if __name__ == "__main__":
 	#gmPG2.get_connection()
 
 	#test_address_exists()
-	#test_create_address()
+	test_create_address()
 	#test_get_countries()
 	#test_get_country_for_region()
 	#test_delete_tag()
 	#test_tag_images()
 	#test_get_billing_address()
 	#test_map_urb_zip_region2country()
-	test_map_urb_zip_country2region()
-
-	sys.exit()
-#============================================================
-
+	#test_map_urb_zip_country2region()
diff --git a/client/business/gmDocuments.py b/client/business/gmDocuments.py
index cb4ccf9..abcf806 100644
--- a/client/business/gmDocuments.py
+++ b/client/business/gmDocuments.py
@@ -15,12 +15,15 @@ from Gnumed.pycommon import gmTools
 from Gnumed.pycommon import gmMimeLib
 from Gnumed.pycommon import gmDateTime
 
+from Gnumed.business import gmOrganization
+
 
 _log = logging.getLogger('gm.docs')
 
 MUGSHOT=26
 DOCUMENT_TYPE_VISUAL_PROGRESS_NOTE = u'visual progress note'
 DOCUMENT_TYPE_PRESCRIPTION = u'prescription'
+
 #============================================================
 class cDocumentFolder:
 	"""Represents a folder with medical documents for a single patient."""
@@ -207,9 +210,22 @@ class cDocumentFolder:
 		return [ cDocument(row = {'pk_field': 'pk_doc', 'idx': idx, 'data': r}) for r in rows ]
 
 	documents = property(get_documents, lambda x:x)
+
 	#--------------------------------------------------------
 	def add_document(self, document_type=None, encounter=None, episode=None, link_obj=None):
 		return create_document(link_obj = link_obj, document_type = document_type, encounter = encounter, episode = episode)
+
+	#--------------------------------------------------------
+	def add_prescription(self, encounter=None, episode=None, link_obj=None):
+		return self.add_document (
+			link_obj = link_obj,
+			document_type = create_document_type (
+				document_type = DOCUMENT_TYPE_PRESCRIPTION
+			)['pk_doc_type'],
+			encounter = encounter,
+			episode = episode
+		)
+
 #============================================================
 _sql_fetch_document_part_fields = u"select * from blobs.v_obj4doc_no_data where %s"
 
@@ -289,7 +305,7 @@ class cDocumentPart(gmBusinessDBObject.cBusinessDBObject):
 	#--------------------------------------------------------
 	def get_reviews(self):
 		cmd = u"""
-select
+SELECT
 	reviewer,
 	reviewed_when,
 	is_technically_abnormal,
@@ -297,9 +313,9 @@ select
 	is_review_by_responsible_reviewer,
 	is_your_review,
 	coalesce(comment, '')
-from blobs.v_reviewed_doc_objects
-where pk_doc_obj = %s
-order by
+FROM blobs.v_reviewed_doc_objects
+WHERE pk_doc_obj = %s
+ORDER BY
 	is_your_review desc,
 	is_review_by_responsible_reviewer desc,
 	reviewed_when desc
@@ -466,6 +482,7 @@ insert into blobs.reviewed_doc_objs (
 			gmTools.coalesce(self._payload[self._idx['doc_comment']], u'', u' ("%s")')
 		)
 		return txt
+
 	#--------------------------------------------------------
 	def format(self, single_line=False):
 		if single_line:
@@ -493,12 +510,19 @@ insert into blobs.reviewed_doc_objs (
 		)
 
 		if self._payload[self._idx['filename']] is not None:
-			txt += _(' Filename: %s\n') % self._payload[self._idx['filename']]
+			path, fname = os.path.split(self._payload[self._idx['filename']])
+			if not path.endswith(os.path.sep):
+				if path != u'':
+					path += os.path.sep
+			if path != u'':
+				path = u' (%s)' % path
+			txt += _(' Filename: %s%s\n') % (fname, path)
 
 		if self._payload[self._idx['obj_comment']] is not None:
 			txt += u'\n%s\n' % self._payload[self._idx['obj_comment']]
 
 		return txt
+
 	#--------------------------------------------------------
 	def get_useful_filename(self, patient=None, make_unique=False, directory=None):
 		patient_part = ''
@@ -513,11 +537,11 @@ insert into blobs.reviewed_doc_objs (
 			if suffix == u'':
 				suffix = '.dat'
 
-		fname = 'gm-doc_part-%s-%s-%s--pg_%s' % (
+		fname = 'gm_doc-part_%s-%s-%s-%s-' % (
+			self._payload[self._idx['seq_idx']],
 			patient_part,
 			self._payload[self._idx['l10n_type']].replace(' ', '_'),
-			gmDateTime.pydt_strftime(self._payload[self._idx['date_generated']], '%Y-%b-%d', 'utf-8', gmDateTime.acc_days),
-			self._payload[self._idx['seq_idx']],
+			gmDateTime.pydt_strftime(self._payload[self._idx['date_generated']], '%Y-%b-%d', 'utf-8', gmDateTime.acc_days)
 			#,gmTools.coalesce(self.__curr_node_data['ext_ref'], '', '-%s').replace(' ', '_')
 		)
 
@@ -555,8 +579,7 @@ _sql_fetch_document_fields = u"""
 		FROM
 			blobs.v_doc_med b_vdm
 		WHERE
-			%s
-"""
+			%s"""
 
 class cDocument(gmBusinessDBObject.cBusinessDBObject):
 	"""Represents one medical document."""
@@ -567,6 +590,7 @@ class cDocument(gmBusinessDBObject.cBusinessDBObject):
 				fk_type = %(pk_type)s,
 				fk_episode = %(pk_episode)s,
 				fk_encounter = %(pk_encounter)s,
+				fk_org_unit = %(pk_org_unit)s,
 				clin_when = %(clin_when)s,
 				comment = gm.nullify_empty_string(%(comment)s),
 				ext_ref = gm.nullify_empty_string(%(ext_ref)s)
@@ -582,7 +606,8 @@ class cDocument(gmBusinessDBObject.cBusinessDBObject):
 		'clin_when',
 		'ext_ref',
 		'pk_episode',
-		'pk_encounter'			# mainly useful when moving visual progress notes to their respective encounters
+		'pk_encounter',			# mainly useful when moving visual progress notes to their respective encounters
+		'pk_org_unit'
 	]
 	#--------------------------------------------------------
 	def refetch_payload(self, ignore_changes=False, link_obj=None):
@@ -647,7 +672,7 @@ class cDocument(gmBusinessDBObject.cBusinessDBObject):
 		pk_part = rows[0][0]
 		new_part = cDocumentPart(aPK_obj = pk_part, link_obj = link_obj)
 		if not new_part.update_data_from_file(link_obj = link_obj, fname = file):
-			_log.error('cannot import binary data from [%s] into document part' % file)
+			_log.error(u'cannot import binary data from [%s] into document part' % file)
 			gmPG2.run_rw_queries (
 				link_obj = link_obj,
 				queries = [{'cmd': u"DELETE FROM blobs.doc_obj WHERE pk = %s", 'args': [pk_part]}]
@@ -665,7 +690,7 @@ class cDocument(gmBusinessDBObject.cBusinessDBObject):
 		for filename in files:
 			new_part = self.add_part(file = filename)
 			if new_part is None:
-				msg = 'cannot instantiate document part object'
+				msg = u'cannot instantiate document part object from [%s]' % filename
 				_log.error(msg)
 				return (False, msg, filename)
 			new_parts.append(new_part)
@@ -674,7 +699,7 @@ class cDocument(gmBusinessDBObject.cBusinessDBObject):
 				new_part['pk_intended_reviewer'] = reviewer			# None == Null
 				success, data = new_part.save_payload()
 				if not success:
-					msg = 'cannot set reviewer to [%s]' % reviewer
+					msg = u'cannot set reviewer to [%s] on [%s]' % (reviewer, filename)
 					_log.error(msg)
 					_log.error(str(data))
 					return (False, msg, filename)
@@ -722,8 +747,49 @@ class cDocument(gmBusinessDBObject.cBusinessDBObject):
 				_log.error(str(data))
 				return False
 		return True
+
 	#--------------------------------------------------------
-	def format(self):
+	def format_single_line(self):
+
+		part_count = len(self._payload[self._idx['seq_idx_list']])
+		if part_count == 0:
+			parts = _('no parts')
+		elif part_count == 1:
+			parts = _('1 part')
+		else:
+			parts = _('%s parts') % part_count
+
+		detail = u''
+		if self._payload[self._idx['ext_ref']] is not None:
+			detail = self._payload[self._idx['ext_ref']]
+		if self._payload[self._idx['unit']] is not None:
+			template = _(u'%s of %s')
+			if detail == u'':
+				detail = _(u'%s of %s') % (
+					self._payload[self._idx['unit']],
+					self._payload[self._idx['organization']]
+				)
+			else:
+				detail += (u' @ ' + template % (
+					self._payload[self._idx['unit']],
+					self._payload[self._idx['organization']]
+				))
+		if detail != u'':
+			detail = u' (%s)' % detail
+
+		return u'%s %s (%s):%s%s' % (
+			gmDateTime.pydt_strftime(self._payload[self._idx['clin_when']], '%Y %b %d', accuracy = gmDateTime.acc_days),
+			self._payload[self._idx['l10n_type']],
+			parts,
+			gmTools.coalesce(self._payload[self._idx['comment']], u'', u' "%s"'),
+			detail
+		)
+
+	#--------------------------------------------------------
+	def format(self, single_line=False):
+		if single_line:
+			return self.format_single_line()
+
 		part_count = len(self._payload[self._idx['seq_idx_list']])
 		if part_count == 0:
 			parts = _('no parts')
@@ -733,12 +799,12 @@ class cDocument(gmBusinessDBObject.cBusinessDBObject):
 			parts = _('%s parts') % part_count
 		txt = _(
 			'%s (%s)   #%s\n'
-			'\n'
 			' Created: %s\n'
 			' Episode: %s\n'
 			'%s'
 			'%s'
 			'%s'
+			'%s'
 		) % (
 			self._payload[self._idx['l10n_type']],
 			parts,
@@ -747,9 +813,17 @@ class cDocument(gmBusinessDBObject.cBusinessDBObject):
 			self._payload[self._idx['episode']],
 			gmTools.coalesce(self._payload[self._idx['health_issue']], u'', _(' Health issue: %s\n')),
 			gmTools.coalesce(self._payload[self._idx['ext_ref']], u'', _(' External reference: %s\n')),
+			gmTools.coalesce(self._payload[self._idx['unit']], u'', _(' Organization: %%s @ %s\n') % self._payload[self._idx['organization']]),
 			gmTools.coalesce(self._payload[self._idx['comment']], u'', u' %s')
 		)
 		return txt
+
+	#--------------------------------------------------------
+	def _get_org_unit(self):
+		return gmOrganization.cOrgUnit(self._payload[self._idx['pk_org_unit']])
+
+	org_unit = property(_get_org_unit, lambda x:x)
+
 #------------------------------------------------------------
 def create_document(document_type=None, encounter=None, episode=None, link_obj=None):
 	"""Returns new document instance or raises an exception."""
@@ -775,6 +849,7 @@ def create_document(document_type=None, encounter=None, episode=None, link_obj=N
 	rows, idx = gmPG2.run_rw_queries(link_obj = link_obj, queries = [{'cmd': cmd, 'args': args}], return_data = True)
 	doc = cDocument(aPK_obj = rows[0][0], link_obj = link_obj)
 	return doc
+
 #------------------------------------------------------------
 def search_for_documents(patient_id=None, type_id=None, external_reference=None):
 	"""Searches for documents with the given patient and type ID."""
@@ -793,6 +868,7 @@ def search_for_documents(patient_id=None, type_id=None, external_reference=None)
 	cmd = _sql_fetch_document_fields % u' AND '.join(where_parts)
 	rows, idx = gmPG2.run_ro_queries(queries = [{'cmd': cmd, 'args': args}], get_col_idx = True)
 	return [ cDocument(row = {'data': r, 'idx': idx, 'pk_field': 'pk_doc'}) for r in rows ]
+
 #------------------------------------------------------------
 def delete_document(document_id=None, encounter_id=None):
 	# cascades to doc_obj and doc_desc but not bill.bill
@@ -803,6 +879,7 @@ def delete_document(document_id=None, encounter_id=None):
 		_log.error('cannot delete document [%s]', document_id)
 		return False
 	return True
+
 #------------------------------------------------------------
 def reclassify_documents_by_type(original_type=None, target_type=None):
 
@@ -925,6 +1002,7 @@ def get_ext_ref():
 	# extract name for dir
 	path, doc_ID = os.path.split(dirname)
 	return doc_ID
+
 #============================================================
 # main
 #------------------------------------------------------------
@@ -989,8 +1067,12 @@ if __name__ == '__main__':
 
 		docs = doc_folder.get_documents()
 		for doc in docs:
-			print type(doc), doc
-			print doc.parts
+			#print type(doc), doc
+			#print doc.parts
+			#print doc.format_single_line()
+			print u'--------------------------'
+			print doc.format(single_line = True)
+			print doc.format()
 		#pprint(gmBusinessDBObject.jsonclasshintify(docs))
 	#--------------------------------------------------------
 	from Gnumed.pycommon import gmI18N
@@ -1002,6 +1084,3 @@ if __name__ == '__main__':
 	test_get_documents()
 
 #	print get_ext_ref()
-
-#============================================================
-
diff --git a/client/business/gmEMRStructItems.py b/client/business/gmEMRStructItems.py
index 7cfd862..9e46433 100644
--- a/client/business/gmEMRStructItems.py
+++ b/client/business/gmEMRStructItems.py
@@ -6,7 +6,13 @@ license: GPL v2 or later
 #============================================================
 __author__ = "Carlos Moro <cfmoro1976 at yahoo.es>, <karsten.hilbert at gmx.net>"
 
-import types, sys, string, datetime, logging, time, pprint
+import types
+import sys
+import string
+import datetime
+import logging
+import time
+import pprint
 
 
 if __name__ == '__main__':
@@ -20,6 +26,7 @@ from Gnumed.pycommon import gmNull
 from Gnumed.pycommon import gmExceptions
 
 from Gnumed.business import gmClinNarrative
+from Gnumed.business import gmSoapDefs
 from Gnumed.business import gmCoding
 from Gnumed.business import gmPraxis
 from Gnumed.business import gmOrganization
@@ -249,7 +256,7 @@ class cHealthIssue(gmBusinessDBObject.cBusinessDBObject):
 			top_row = u'%s%s %s (%s) %s' % (
 				gmTools.u_box_top_left_arc,
 				gmTools.u_box_horiz_single,
-				gmClinNarrative.soap_cat2l10n_str[row['real_soap_cat']],
+				gmSoapDefs.soap_cat2l10n_str[row['real_soap_cat']],
 				when,
 				gmTools.u_box_horiz_single * 5
 			)
@@ -421,7 +428,7 @@ class cHealthIssue(gmBusinessDBObject.cBusinessDBObject):
 
 			# medications
 			if with_medications:
-				meds = emr.get_current_substance_intakes (
+				meds = emr.get_current_medications (
 					issues = [ self._payload[self._idx['pk_health_issue']] ],
 					order_by = u'is_currently_active DESC, started, substance'
 				)
@@ -723,11 +730,17 @@ FROM (
 		return diagnostic_certainty_classification2str(self._payload[self._idx['diagnostic_certainty_classification']])
 
 	diagnostic_certainty_description = property(_get_diagnostic_certainty_description, lambda x:x)
+
 	#--------------------------------------------------------
 	def _get_formatted_revision_history(self):
 		cmd = u"""SELECT
-				NULL AS audit_action, NULL AS audit_when, NULL AS audit_by,
-				pk_audit, row_version, modified_when, modified_by,
+				'NONE (live row)'::text as audit__action_applied,
+				NULL AS audit__action_when,
+				NULL AS audit__action_by,
+				pk_audit,
+				row_version,
+				modified_when,
+				modified_by,
 				pk,
 				description,
 				laterality,
@@ -736,13 +749,21 @@ FROM (
 				clinically_relevant,
 				is_confidential,
 				is_cause_of_death,
-				fk_encounter
+				fk_encounter,
+				grouping,
+				diagnostic_certainty_classification,
+				summary
 			FROM clin.health_issue
 			WHERE pk = %(pk_health_issue)s
 		UNION ALL (
 			SELECT
-				audit_action, audit_when, audit_by,
-				pk_audit, row_version, modified_when, modified_by,
+				audit_action as audit__action_applied,
+				audit_when as audit__action_when,
+				audit_by as audit__action_by,
+				pk_audit,
+				orig_version as row_version,
+				orig_when as modified_when,
+				orig_by as modified_by,
 				pk,
 				description,
 				laterality,
@@ -751,40 +772,22 @@ FROM (
 				clinically_relevant,
 				is_confidential,
 				is_cause_of_death,
-				fk_encounter
+				fk_encounter,
+				grouping,
+				diagnostic_certainty_classification,
+				summary
 			FROM audit.log_health_issue
-			WHERE
-				pk_audit = (SELECT pk_audit FROM clin.health_issue WHERE pk = %(pk_health_issue)s)
+			WHERE pk = %(pk_health_issue)s
 		)
 		ORDER BY row_version DESC
 		"""
 		args = {'pk_health_issue': self.pk_obj}
-		rows, idx  = gmPG2.run_ro_queries(queries = [{'cmd': cmd, 'args': args}], get_col_idx = True)
-		txt = _('health issue: %s%s%s\n\n') % (
+		title = _('Health issue: %s%s%s') % (
 			gmTools.u_left_double_angle_quote,
 			self._payload[self._idx['description']],
 			gmTools.u_right_double_angle_quote
 		)
-		__fields_ordered = [ key for (key, value) in sorted(idx.items(), key = lambda (x, y): y)]
-		__current_version = {}
-		for col in __fields_ordered[3:]: # skip first 3 fields
-			__current_version[col] = rows[0][col]
-		txt += u'-' * 20 + '\n'
-		txt += _('\ncurrent values:\n')
-		txt += pprint.pformat(__current_version)
-		txt += u'\n'
-		if __current_version['row_version'] == 0:
-			txt += u'-' * 20 + '\n'
-			txt += _('no previous versions of this record')
-		else:
-			cols = {}
-			for col in __fields_ordered:
-				cols[col] = [ row[col] for row in rows ]
-			txt += u'-' * 20 + '\n'
-			txt += _('\nall values with <audit_action>, <audit_when>, <audit_by> fields (current value first):\n')
-			txt += u'\n' + pprint.pformat(cols) + '\n'
-
-		return txt
+		return u'\n'.join(self._get_revision_history(cmd, args, title))
 
 	formatted_revision_history = property(_get_formatted_revision_history, lambda x:x)
 	#--------------------------------------------------------
@@ -824,6 +827,7 @@ FROM (
 		return
 
 	generic_codes = property(_get_generic_codes, _set_generic_codes)
+
 #============================================================
 def create_health_issue(description=None, encounter=None, patient=None):
 	"""Creates a new health issue for a given patient.
@@ -847,19 +851,22 @@ def create_health_issue(description=None, encounter=None, patient=None):
 	h_issue = cHealthIssue(aPK_obj = rows[0][0])
 
 	return h_issue
+
 #-----------------------------------------------------------
 def delete_health_issue(health_issue=None):
 	if isinstance(health_issue, cHealthIssue):
-		pk = health_issue['pk_health_issue']
+		args = {'pk': health_issue['pk_health_issue']}
 	else:
-		pk = int(health_issue)
-
+		args = {'pk': int(health_issue)}
 	try:
-		gmPG2.run_rw_queries(queries = [{'cmd': u'delete from clin.health_issue where pk=%(pk)s', 'args': {'pk': pk}}])
+		gmPG2.run_rw_queries(queries = [{'cmd': u'DELETE FROM clin.health_issue WHERE pk = %(pk)s', 'args': args}])
 	except gmPG2.dbapi.IntegrityError:
 		# should be parsing pgcode/and or error message
 		_log.exception('cannot delete health issue')
-		raise gmExceptions.DatabaseObjectInUseError('cannot delete health issue, it is in use')
+		return False
+
+	return True
+
 #------------------------------------------------------------
 # use as dummy for unassociated episodes
 def get_dummy_health_issue():
@@ -876,6 +883,7 @@ def get_dummy_health_issue():
 		'grouping': None
 	}
 	return issue
+
 #-----------------------------------------------------------
 def health_issue2problem(health_issue=None, allow_irrelevant=False):
 	return cProblem (
@@ -1030,6 +1038,7 @@ class cEpisode(gmBusinessDBObject.cBusinessDBObject):
 		}
 		rows, idx = gmPG2.run_rw_queries(queries = [{'cmd': cmd, 'args': args}])
 		return True
+
 	#--------------------------------------------------------
 	def format_as_journal(self, left_margin=0, date_format='%a, %b %d %Y'):
 		rows = gmClinNarrative.get_as_journal (
@@ -1057,7 +1066,7 @@ class cEpisode(gmBusinessDBObject.cBusinessDBObject):
 			top_row = u'%s%s %s (%s) %s' % (
 				gmTools.u_box_top_left_arc,
 				gmTools.u_box_horiz_single,
-				gmClinNarrative.soap_cat2l10n_str[row['real_soap_cat']],
+				gmSoapDefs.soap_cat2l10n_str[row['real_soap_cat']],
 				when,
 				gmTools.u_box_horiz_single * 5
 			)
@@ -1085,6 +1094,31 @@ class cEpisode(gmBusinessDBObject.cBusinessDBObject):
 
 		eol_w_margin = u'\n%s' % left_margin
 		return left_margin + eol_w_margin.join(lines) + u'\n'
+
+	#--------------------------------------------------------
+	def format_maximum_information(self, patient=None):
+		if patient is None:
+			from Gnumed.business.gmPerson import gmCurrentPatient, cPerson
+			if self._payload[self._idx['pk_patient']] == gmCurrentPatient().ID:
+				patient = gmCurrentPatient()
+			else:
+				patient = cPerson(self._payload[self._idx['pk_patient']])
+
+		return self.format (
+			patient = patient,
+			with_summary = True,
+			with_codes = True,
+			with_encounters = True,
+			with_documents = True,
+			with_hospital_stays = True,
+			with_procedures = True,
+			with_family_history = True,
+			with_tests = False,		# does not inform on the episode itself
+			with_vaccinations = True,
+			with_health_issue = True,
+			return_list = True
+		)
+
 	#--------------------------------------------------------
 	def format(self, left_margin=0, patient=None,
 		with_summary=True,
@@ -1096,16 +1130,27 @@ class cEpisode(gmBusinessDBObject.cBusinessDBObject):
 		with_family_history=True,
 		with_tests=True,
 		with_vaccinations=True,
-		with_health_issue=False
+		with_health_issue=False,
+		return_list=False
 	):
 
-		if patient.ID != self._payload[self._idx['pk_patient']]:
-			msg = '<patient>.ID = %s but episode %s belongs to patient %s' % (
-				patient.ID,
-				self._payload[self._idx['pk_episode']],
-				self._payload[self._idx['pk_patient']]
-			)
-			raise ValueError(msg)
+		if patient is not None:
+			if patient.ID != self._payload[self._idx['pk_patient']]:
+				msg = '<patient>.ID = %s but episode %s belongs to patient %s' % (
+					patient.ID,
+					self._payload[self._idx['pk_episode']],
+					self._payload[self._idx['pk_patient']]
+				)
+				raise ValueError(msg)
+			emr = patient.get_emr()
+		else:
+			with_encounters = False
+			with_documents = False
+			with_hospital_stays = False
+			with_procedures = False
+			with_family_history = False
+			with_tests = False
+			with_vaccinations = False
 
 		lines = []
 
@@ -1125,25 +1170,25 @@ class cEpisode(gmBusinessDBObject.cBusinessDBObject):
 			self._payload[self._idx['pk_encounter']]
 		))
 
-		emr = patient.get_emr()
-		encs = emr.get_encounters(episodes = [self._payload[self._idx['pk_episode']]])
-		first_encounter = None
-		last_encounter = None
-		if (encs is not None) and (len(encs) > 0):
-			first_encounter = emr.get_first_encounter(episode_id = self._payload[self._idx['pk_episode']])
-			last_encounter = emr.get_last_encounter(episode_id = self._payload[self._idx['pk_episode']])
-			if self._payload[self._idx['episode_open']]:
-				end = gmDateTime.pydt_now_here()
-				end_str = gmTools.u_ellipsis
-			else:
-				end = last_encounter['last_affirmed']
-				end_str = last_encounter['last_affirmed'].strftime('%m/%Y')
-			age = gmDateTime.format_interval_medically(end - first_encounter['started'])
-			lines.append(_(' Duration: %s (%s - %s)') % (
-				age,
-				first_encounter['started'].strftime('%m/%Y'),
-				end_str
-			))
+		if patient is not None:
+			encs = emr.get_encounters(episodes = [self._payload[self._idx['pk_episode']]])
+			first_encounter = None
+			last_encounter = None
+			if (encs is not None) and (len(encs) > 0):
+				first_encounter = emr.get_first_encounter(episode_id = self._payload[self._idx['pk_episode']])
+				last_encounter = emr.get_last_encounter(episode_id = self._payload[self._idx['pk_episode']])
+				if self._payload[self._idx['episode_open']]:
+					end = gmDateTime.pydt_now_here()
+					end_str = gmTools.u_ellipsis
+				else:
+					end = last_encounter['last_affirmed']
+					end_str = last_encounter['last_affirmed'].strftime('%m/%Y')
+				age = gmDateTime.format_interval_medically(end - first_encounter['started'])
+				lines.append(_(' Duration: %s (%s - %s)') % (
+					age,
+					first_encounter['started'].strftime('%m/%Y'),
+					end_str
+				))
 
 		lines.append(u' ' + _('Status') + u': %s%s' % (
 			gmTools.bool2subst(self._payload[self._idx['episode_open']], _('active'), _('finished')),
@@ -1264,12 +1309,7 @@ class cEpisode(gmBusinessDBObject.cBusinessDBObject):
 				lines.append('')
 				lines.append(_('Documents: %s') % len(docs))
 			for d in docs:
-				lines.append(u' %s %s:%s%s' % (
-					d['clin_when'].strftime('%Y-%m-%d'),
-					d['l10n_type'],
-					gmTools.coalesce(d['comment'], u'', u' "%s"'),
-					gmTools.coalesce(d['ext_ref'], u'', u' (%s)')
-				))
+				lines.append(u' ' + d.format(single_line = True))
 			del docs
 
 		# hospitalizations
@@ -1339,10 +1379,14 @@ class cEpisode(gmBusinessDBObject.cBusinessDBObject):
 				))
 			del vaccs
 
+		lines = gmTools.strip_trailing_empty_lines(lines = lines, eol = u'\n')
+		if return_list:
+			return lines
+
 		left_margin = u' ' * left_margin
 		eol_w_margin = u'\n%s' % left_margin
-		lines = gmTools.strip_trailing_empty_lines(lines = lines, eol = u'\n')
 		return left_margin + eol_w_margin.join(lines) + u'\n'
+
 	#--------------------------------------------------------
 	# properties
 	#--------------------------------------------------------
@@ -1463,51 +1507,42 @@ FROM (
 	#--------------------------------------------------------
 	def _get_formatted_revision_history(self):
 		cmd = u"""SELECT
-				NULL AS audit_action, NULL AS audit_when, NULL AS audit_by,
-				pk_audit, row_version, modified_when, modified_by,
-				pk, fk_health_issue, description, is_open, fk_encounter
+				'NONE (live row)'::text as audit__action_applied,
+				NULL AS audit__action_when,
+				NULL AS audit__action_by,
+				pk_audit,
+				row_version,
+				modified_when,
+				modified_by,
+				pk, fk_health_issue, description, is_open, fk_encounter,
+				diagnostic_certainty_classification,
+				summary
 			FROM clin.episode
 			WHERE pk = %(pk_episode)s
 		UNION ALL (
 			SELECT
-				audit_action, audit_when, audit_by,
-				pk_audit, row_version, modified_when, modified_by,
-				pk, fk_health_issue, description, is_open, fk_encounter
+				audit_action as audit__action_applied,
+				audit_when as audit__action_when,
+				audit_by as audit__action_by,
+				pk_audit,
+				orig_version as row_version,
+				orig_when as modified_when,
+				orig_by as modified_by,
+				pk, fk_health_issue, description, is_open, fk_encounter,
+				diagnostic_certainty_classification,
+				summary
 			FROM audit.log_episode
-			WHERE
-				pk_audit = (SELECT pk_audit FROM clin.episode WHERE pk = %(pk_episode)s)
+			WHERE pk = %(pk_episode)s
 		)
 		ORDER BY row_version DESC
 		"""
 		args = {'pk_episode': self.pk_obj}
-		rows, idx  = gmPG2.run_ro_queries(queries = [{'cmd': cmd, 'args': args}], get_col_idx = True)
-
-		txt = _('episode: %s%s%s\n\n') % (
+		title = _('Episode: %s%s%s') % (
 			gmTools.u_left_double_angle_quote,
 			self._payload[self._idx['description']],
 			gmTools.u_right_double_angle_quote
 		)
-
-		__fields_ordered = [ key for (key, value) in sorted(idx.items(), key=lambda (x, y): y)]
-		__current_version = {}
-		for col in __fields_ordered[3:]: # skip first 3 fields
-			__current_version[col] = rows[0][col]
-		txt += u'-' * 20 + '\n'
-		txt += _('\ncurrent values:\n')
-		txt += pprint.pformat(__current_version)			# pprint.pformat automatically sorts dictionary
-		txt += u'\n'
-		if __current_version['row_version'] == 0:
-			txt += u'-' * 20 + '\n'
-			txt += _(u'no previous versions of this record')
-		else:
-			cols={}
-			for col in __fields_ordered:
-				cols[col] = [ row[col] for row in rows ]
-			txt += u'-' * 20 + '\n'
-			txt += _('\nall values with <audit_action>, <audit_when>, <audit_by> fields (current value first):\n')
-			txt += u'\n' + pprint.pformat(cols) + '\n'
-
-		return txt
+		return u'\n'.join(self._get_revision_history(cmd, args, title))
 
 	formatted_revision_history = property(_get_formatted_revision_history, lambda x:x)
 	#--------------------------------------------------------
@@ -1566,6 +1601,7 @@ FROM (
 		return rows[0][0]
 
 	has_narrative = property(_get_has_narrative, lambda x:x)
+
 #============================================================
 def create_episode(pk_health_issue=None, episode_name=None, is_open=False, allow_dupes=False, encounter=None, link_obj=None):
 	"""Creates a new episode for a given patient's health issue.
@@ -1591,6 +1627,7 @@ def create_episode(pk_health_issue=None, episode_name=None, is_open=False, allow
 
 	episode = cEpisode(row = {'data': rows[0], 'idx': idx, 'pk_field': 'pk_episode'})
 	return episode
+
 #-----------------------------------------------------------
 def delete_episode(episode=None):
 	if isinstance(episode, cEpisode):
@@ -1938,11 +1975,14 @@ limit 1
 		}
 		rows, idx = gmPG2.run_rw_queries(queries = [{'cmd': cmd, 'args': args}])
 		return True
+
+	#--------------------------------------------------------
+	# data formatting
 	#--------------------------------------------------------
 	def format_soap(self, episodes=None, left_margin=0, soap_cats='soapu', emr=None, issues=None):
 
 		lines = []
-		for soap_cat in soap_cats:
+		for soap_cat in gmSoapDefs.soap_cats2list(soap_cats):
 			soap_cat_narratives = emr.get_clin_narrative (
 				episodes = episodes,
 				issues = issues,
@@ -1957,7 +1997,7 @@ limit 1
 			lines.append(u'%s%s %s %s' % (
 				gmTools.u_box_top_left_arc,
 				gmTools.u_box_horiz_single,
-				gmClinNarrative.soap_cat2l10n_str[soap_cat],
+				gmSoapDefs.soap_cat2l10n_str[soap_cat],
 				gmTools.u_box_horiz_single * 5
 			))
 			for soap_entry in soap_cat_narratives:
@@ -1984,6 +2024,7 @@ limit 1
 				lines.append('')
 
 		return lines
+
 	#--------------------------------------------------------
 	def format_latex(self, date_format=None, soap_cats=None, soap_order=None):
 
@@ -2074,12 +2115,13 @@ limit 1
 				)
 			for soap in soaps:
 				tex += u'{\\small %s} & {\\small %s} \\tabularnewline \n' % (
-					gmTools.tex_escape_string(gmClinNarrative.soap_cat2l10n[soap['soap_cat']]),
+					gmTools.tex_escape_string(gmSoapDefs.soap_cat2l10n[soap['soap_cat']]),
 					gmTools.tex_escape_string(soap['narrative'], replace_eol = True)
 				)
 			tex += u' & \\tabularnewline \n'
 
 		return tex
+
 	#--------------------------------------------------------
 	def __format_header_fancy(self, left_margin=0):
 		lines = []
@@ -2194,11 +2236,14 @@ limit 1
 			del codes
 
 		return lines
+
 	#--------------------------------------------------------
 	def format_by_episode(self, episodes=None, issues=None, left_margin=0, patient=None, with_soap=False, with_tests=True, with_docs=True, with_vaccinations=True, with_family_history=True):
 
+		if patient is not None:
+			emr = patient.emr
+
 		lines = []
-		emr = patient.emr
 		if episodes is None:
 			episodes = [ e['pk_episode'] for e in self.episodes ]
 
@@ -2220,11 +2265,10 @@ limit 1
 						self._payload[self._idx['pk_patient']]
 					)
 					raise ValueError(msg)
-
 				lines.extend(self.format_soap (
 					episodes = [pk],
 					left_margin = left_margin,
-					soap_cats = 'soapu',
+					soap_cats = None,		# meaning: all
 					emr = emr,
 					issues = issues
 				))
@@ -2288,18 +2332,36 @@ limit 1
 					lines.append(u'')
 					lines.append(_('Documents:'))
 				for d in docs:
-					lines.append(u' %s %s:%s%s' % (
-						d['clin_when'].strftime('%Y-%m-%d'),
-						d['l10n_type'],
-						gmTools.coalesce(d['comment'], u'', u' "%s"'),
-						gmTools.coalesce(d['ext_ref'], u'', u' (%s)')
-					))
-
+					lines.append(u' ' + d.format(single_line = True))
 				del docs
 
 		return lines
+
+	#--------------------------------------------------------
+	def format_maximum_information(self, patient=None):
+		if patient is None:
+			from Gnumed.business.gmPerson import gmCurrentPatient, cPerson
+			if self._payload[self._idx['pk_patient']] == gmCurrentPatient().ID:
+				patient = gmCurrentPatient()
+			else:
+				patient = cPerson(self._payload[self._idx['pk_patient']])
+
+		return self.format (
+			patient = patient,
+			fancy_header = True,
+			with_rfe_aoe = True,
+			with_soap = True,
+			with_docs = True,
+			with_tests = False,
+			with_vaccinations = True,
+			with_co_encountlet_hints = True,
+			with_family_history = True,
+			by_episode = False,
+			return_list = True
+		)
+
 	#--------------------------------------------------------
-	def format(self, episodes=None, with_soap=False, left_margin=0, patient=None, issues=None, with_docs=True, with_tests=True, fancy_header=True, with_vaccinations=True, with_co_encountlet_hints=False, with_rfe_aoe=False, with_family_history=True, by_episode=False):
+	def format(self, episodes=None, with_soap=False, left_margin=0, patient=None, issues=None, with_docs=True, with_tests=True, fancy_header=True, with_vaccinations=True, with_co_encountlet_hints=False, with_rfe_aoe=False, with_family_history=True, by_episode=False, return_list=False):
 		"""Format an encounter.
 
 		with_co_encountlet_hints:
@@ -2312,6 +2374,13 @@ limit 1
 			with_rfe_aoe = with_rfe_aoe
 		)
 
+		if patient is None:
+			_log.debug('no patient, cannot load patient related data')
+			with_soap = False
+			with_tests = False
+			with_vaccinations = False
+			with_docs = False
+
 		if by_episode:
 			lines.extend(self.format_by_episode (
 				episodes = episodes,
@@ -2324,11 +2393,9 @@ limit 1
 				with_vaccinations = with_vaccinations,
 				with_family_history = with_family_history
 			))
-
 		else:
 			if with_soap:
 				lines.append(u'')
-
 				if patient.ID != self._payload[self._idx['pk_patient']]:
 					msg = '<patient>.ID = %s but encounter %s belongs to patient %s' % (
 						patient.ID,
@@ -2336,13 +2403,11 @@ limit 1
 						self._payload[self._idx['pk_patient']]
 					)
 					raise ValueError(msg)
-
 				emr = patient.get_emr()
-
 				lines.extend(self.format_soap (
 					episodes = episodes,
 					left_margin = left_margin,
-					soap_cats = 'soapu',
+					soap_cats = None,		# meaning: all
 					emr = emr,
 					issues = issues
 				))
@@ -2372,10 +2437,8 @@ limit 1
 				if len(tests) > 0:
 					lines.append('')
 					lines.append(_('Measurements and Results:'))
-
 				for t in tests:
 					lines.append(t.format())
-
 				del tests
 
 			# vaccinations
@@ -2386,11 +2449,9 @@ limit 1
 					encounters = [ self._payload[self._idx['pk_encounter']] ],
 					order_by = u'date_given DESC, vaccine'
 				)
-
 				if len(vaccs) > 0:
 					lines.append(u'')
 					lines.append(_('Vaccinations:'))
-
 				for vacc in vaccs:
 					lines.extend(vacc.format (
 						with_indications = True,
@@ -2407,19 +2468,11 @@ limit 1
 					episodes = episodes,
 					encounter = self._payload[self._idx['pk_encounter']]
 				)
-
 				if len(docs) > 0:
 					lines.append(u'')
 					lines.append(_('Documents:'))
-
 				for d in docs:
-					lines.append(u' %s %s:%s%s' % (
-						d['clin_when'].strftime('%Y-%m-%d'),
-						d['l10n_type'],
-						gmTools.coalesce(d['comment'], u'', u' "%s"'),
-						gmTools.coalesce(d['ext_ref'], u'', u' (%s)')
-					))
-
+					lines.append(u' ' + d.format(single_line = True))
 				del docs
 
 			# co-encountlets
@@ -2437,8 +2490,12 @@ limit 1
 							gmTools.coalesce(epi['health_issue'], u'', u' (%s)')
 						))
 
+		if return_list:
+			return lines
+
 		eol_w_margin = u'\n%s' % (u' ' * left_margin)
 		return u'%s\n' % eol_w_margin.join(lines)
+
 	#--------------------------------------------------------
 	# properties
 	#--------------------------------------------------------
@@ -2534,51 +2591,38 @@ limit 1
 	#--------------------------------------------------------
 	def _get_formatted_revision_history(self):
 		cmd = u"""SELECT
-				NULL AS audit_action, NULL AS audit_when, NULL AS audit_by,
-				pk_audit, row_version, modified_when, modified_by,
+				'NONE (live row)'::text as audit__action_applied,
+				NULL AS audit__action_when,
+				NULL AS audit__action_by,
+				pk_audit,
+				row_version,
+				modified_when,
+				modified_by,
 				pk, fk_patient, fk_type, fk_location, source_time_zone, reason_for_encounter, assessment_of_encounter, started, last_affirmed
 			FROM clin.encounter
 			WHERE pk = %(pk_encounter)s
 		UNION ALL (
 			SELECT
-				audit_action, audit_when, audit_by,
-				pk_audit, orig_version, orig_when, orig_by,
+				audit_action as audit__action_applied,
+				audit_when as audit__action_when,
+				audit_by as audit__action_by,
+				pk_audit,
+				orig_version as row_version,
+				orig_when as modified_when,
+				orig_by as modified_by,
 				pk, fk_patient, fk_type, fk_location, source_time_zone, reason_for_encounter, assessment_of_encounter, started, last_affirmed
 			FROM audit.log_encounter
-			WHERE
-				pk_audit = (SELECT pk_audit FROM clin.encounter WHERE pk = %(pk_encounter)s)
+			WHERE pk = %(pk_encounter)s
 		)
 		ORDER BY row_version DESC
 		"""
 		args = {'pk_encounter': self._payload[self._idx['pk_encounter']]}
-		rows, idx = gmPG2.run_ro_queries(queries = [{'cmd': cmd, 'args': args}], get_col_idx = True)
-
-		txt = _('encounter: %s%s%s\n\n') % (
+		title = _('Encounter: %s%s%s') % (
 			gmTools.u_left_double_angle_quote,
 			self._payload[self._idx['l10n_type']],
 			gmTools.u_right_double_angle_quote
 		)
-
-		__fields_ordered = [ key for (key, value) in sorted(idx.items(), key = lambda (x, y): y)]
-		__current_version = {}
-		for col in __fields_ordered[3:]: # skip first 3 fields
-			__current_version[col] = rows[0][col]
-		txt += u'-' * 20 + '\n'
-		txt += _('\ncurrent values:\n')
-		txt += pprint.pformat(__current_version)			# pprint.pformat automatically sorts dictionary
-		txt += u'\n'
-		if __current_version['row_version'] == 0:
-			txt += u'-' * 20 + '\n'
-			txt += _(u'no previous versions of this record')
-		else:
-			cols = {}
-			for col in __fields_ordered:
-				cols[col] = [ row[col] for row in rows ]
-			txt += u'-' * 20 + '\n'
-			txt += _('\nall values with <audit_action>, <audit_when>, <audit_by> fields (current value first):\n')
-			txt += u'\n' + pprint.pformat(cols) + '\n'
-
-		return txt
+		return u'\n'.join(self._get_revision_history(cmd, args, title))
 
 	formatted_revision_history = property(_get_formatted_revision_history, lambda x:x)
 
@@ -2986,6 +3030,14 @@ class cHospitalStay(gmBusinessDBObject.cBusinessDBObject):
 		'pk_encounter',
 		'comment'
 	]
+
+	#--------------------------------------------------------
+	def format_maximum_information(self, patient=None):
+		return self.format (
+			include_procedures = True,
+			include_docs = True
+		).split(u'\n')
+
 	#-------------------------------------------------------
 	def format(self, left_margin=0, include_procedures=False, include_docs=False):
 
@@ -3096,8 +3148,18 @@ class cPerformedProcedure(gmBusinessDBObject.cBusinessDBObject):
 			gmBusinessDBObject.cBusinessDBObject.__setitem__(self, 'pk_hospital_stay', None)
 
 		gmBusinessDBObject.cBusinessDBObject.__setitem__(self, attribute, value)
+
+	#--------------------------------------------------------
+	def format_maximum_information(self, patient=None):
+		return self.format (
+			include_episode = True,
+			include_codes = True,
+			include_address = True,
+			include_comm = True
+		).split(u'\n')
+
 	#-------------------------------------------------------
-	def format(self, left_margin=0, include_episode=True, include_codes=False):
+	def format(self, left_margin=0, include_episode=True, include_codes=False, include_address=False, include_comm=False):
 
 		if self._payload[self._idx['is_ongoing']]:
 			end = _(' (ongoing)')
@@ -3108,16 +3170,26 @@ class cPerformedProcedure(gmBusinessDBObject.cBusinessDBObject):
 			else:
 				end = u' - %s' % gmDateTime.pydt_strftime(end, '%Y %b %d')
 
-		line = u'%s%s%s (%s @ %s): %s' % (
+		line = u'%s%s%s: %s%s [%s @ %s]' % (
 			(u' ' * left_margin),
 			gmDateTime.pydt_strftime(self._payload[self._idx['clin_when']], '%Y %b %d'),
 			end,
+			self._payload[self._idx['performed_procedure']],
+			gmTools.bool2str(include_episode, u' (%s)' % self._payload[self._idx['episode']], u''),
 			self._payload[self._idx['unit']],
-			self._payload[self._idx['organization']],
-			self._payload[self._idx['performed_procedure']]
+			self._payload[self._idx['organization']]
 		)
-		if include_episode:
-			line = u'%s (%s)' % (line, self._payload[self._idx['episode']])
+
+		if include_comm:
+			for channel in self.org_unit.comm_channels:
+				line += (u'\n%(comm_type)s: %(url)s' % channel)
+
+		if include_address:
+			adr = self.org_unit.address
+			if adr is not None:
+				line += u'\n'
+				line += u'\n'.join(adr.format(single_line = False, show_type = False))
+				line += u'\n'
 
 		if include_codes:
 			codes = self.generic_codes
@@ -3154,9 +3226,24 @@ class cPerformedProcedure(gmBusinessDBObject.cBusinessDBObject):
 		}
 		rows, idx = gmPG2.run_rw_queries(queries = [{'cmd': cmd, 'args': args}])
 		return True
+
 	#--------------------------------------------------------
 	# properties
 	#--------------------------------------------------------
+	def _get_stay(self):
+		if self._payload[self._idx['pk_hospital_stay']] is None:
+			return None
+		return cHospitalStay(aPK_obj = self._payload[self._idx['pk_hospital_stay']])
+
+	hospital_stay = property(_get_stay, lambda x:x)
+
+	#--------------------------------------------------------
+	def _get_org_unit(self):
+		return gmOrganization.cOrgUnit(self._payload[self._idx['pk_org_unit']])
+
+	org_unit = property(_get_org_unit, lambda x:x)
+
+	#--------------------------------------------------------
 	def _get_generic_codes(self):
 		if len(self._payload[self._idx['pk_generic_codes']]) == 0:
 			return []
@@ -3193,6 +3280,7 @@ class cPerformedProcedure(gmBusinessDBObject.cBusinessDBObject):
 		return
 
 	generic_codes = property(_get_generic_codes, _set_generic_codes)
+
 #-----------------------------------------------------------
 def get_performed_procedures(patient=None):
 
diff --git a/client/business/gmExportArea.py b/client/business/gmExportArea.py
index 364698b..c89acf2 100644
--- a/client/business/gmExportArea.py
+++ b/client/business/gmExportArea.py
@@ -14,7 +14,7 @@ import sys
 import logging
 import shutil
 import os
-import codecs
+import io
 
 
 if __name__ == '__main__':
@@ -299,7 +299,13 @@ _html_list_item = u"""	<li><a href="documents/%s">%s</a></li>
 _html_end = u"""
 </ul>
 
-%s, GNUmed version %s
+<p>
+%(date)s<br>
+%(branch)s @ %(praxis)s
+%(adr)s
+</p>
+
+(<a href="http://www.gnumed.de">GNUmed</a> version %(gm_ver)s)
 
 </body>
 </html>
@@ -388,7 +394,7 @@ class cExportArea(object):
 	def add_file(self, filename=None, hint=None):
 		try:
 			open(filename).close()
-		except StandardError:
+		except Exception:
 			_log.exception('cannot open file <%s>', filename)
 			return None
 
@@ -459,11 +465,12 @@ class cExportArea(object):
 
 		r = rows[0]
 		return cExportItem(row = {'data': r, 'idx': idx, 'pk_field': 'pk_export_item'})
+
 	#--------------------------------------------------------
-	def export_with_meta_data(self, base_dir=None, items=None):
+	def export(self, base_dir=None, items=None, with_metadata=True, expand_compressed=False):
 
 		if items is None:
-			items_found = self.items
+			items = self.items
 
 		if len(items) == 0:
 			return None
@@ -471,46 +478,41 @@ class cExportArea(object):
 		from Gnumed.business.gmPerson import cPatient
 		pat = cPatient(aPK_obj = self.__pk_identity)
 		if base_dir is None:
-			base_dir = gmTools.get_unique_filename(prefix = u'export-%s-' % pat.dirname, suffix = '.dir')
-
+			base_dir = gmTools.mk_sandbox_dir(prefix = u'exp-%s-' % pat.dirname)
 		_log.debug('base dir: %s', base_dir)
 
 		doc_dir = os.path.join(base_dir, r'documents')
 		gmTools.mkdir(doc_dir)
 
+		_html_start_data = {
+			u'html_title_header': _('Patient data for'),
+			u'html_title_patient': gmTools.html_escape_string(pat.get_description_gender(with_nickname = False) + u', ' + _(u'born') + u' ' + pat.get_formatted_dob('%Y %B %d')),
+			u'title': _('Patient data export'),
+			u'pat_name': gmTools.html_escape_string(pat.get_description_gender(with_nickname = False)),
+			u'pat_dob': gmTools.html_escape_string(_(u'born') + u' ' + pat.get_formatted_dob('%Y %B %d')),
+			u'mugshot_url': u'documents/no-such-file.png',
+			u'mugshot_alt': _('no patient photograph available'),
+			u'mugshot_title': u'',
+			u'docs_title': _(u'Documents'),
+			u'browse_root': _(u'browse storage medium'),
+			u'browse_docs': _(u'browse documents area'),
+			u'browse_dicomdir': u''
+		}
+
 		mugshot = pat.document_folder.latest_mugshot
-		if mugshot is None:
-			mugshot_url = u'documents/no-such-file.png'
-			mugshot_alt = _('no patient photograph available')
-			mugshot_title = u''
-		else:
-			mugshot_url = mugshot.export_to_file(directory = doc_dir)
-			mugshot_alt =_('patient photograph from %s') % gmDateTime.pydt_strftime(mugshot['date_generated'], '%B %Y')
-			mugshot_title = gmDateTime.pydt_strftime(mugshot['date_generated'], '%B %Y')
+		if mugshot is not None:
+			_html_start_data['mugshot_url'] = mugshot.export_to_file(directory = doc_dir)
+			_html_start_data['mugshot_alt'] =_('patient photograph from %s') % gmDateTime.pydt_strftime(mugshot['date_generated'], '%B %Y')
+			_html_start_data['mugshot_title'] = gmDateTime.pydt_strftime(mugshot['date_generated'], '%B %Y')
 
 		# index.html
 		idx_fname = os.path.join(base_dir, u'index.html')
-		idx_file = codecs.open(idx_fname, u'wb', u'utf8')
-
+		idx_file = io.open(idx_fname, mode = u'wt', encoding = u'utf8')
 		# header
-		browse_dicomdir = u''
 		existing_files = os.listdir(base_dir)
 		if u'DICOMDIR' in existing_files:
-			browse_dicomdir = u'	<li><a href="./DICOMDIR">browse DICOMDIR</a></li>'
-		idx_file.write(_html_start % {
-			u'html_title_header': _('Patient data for'),
-			u'html_title_patient': gmTools.html_escape_string(pat['description_gender'] + u', ' + _(u'born') + u' ' + pat.get_formatted_dob('%Y %B %d')),
-			u'title': _('Patient data export'),
-			u'pat_name': gmTools.html_escape_string(pat['description_gender']),
-			u'pat_dob': gmTools.html_escape_string(_(u'born') + u' ' + pat.get_formatted_dob('%Y %B %d')),
-			u'mugshot_url': mugshot_url,
-			u'mugshot_alt': mugshot_alt,
-			u'mugshot_title': mugshot_title,
-			u'docs_title': _(u'Documents'),
-			u'browse_root': _(u'browse storage medium'),
-			u'browse_docs': _(u'browse documents area'),
-			u'browse_dicomdir': browse_dicomdir
-		})
+			_html_start_data[u'browse_dicomdir'] = u'	<li><a href="./DICOMDIR">browse DICOMDIR</a></li>'
+		idx_file.write(_html_start % _html_start_data)
 		# middle
 		for item in items:
 			item_path = item.export_to_file(directory = doc_dir)
@@ -521,30 +523,51 @@ class cExportArea(object):
 			))
 		# footer
 		_cfg = gmCfg2.gmCfgData()
-		idx_file.write(_html_end % (
-			gmTools.html_escape_string(gmDateTime.pydt_strftime(format = '%Y %B %d', encoding = u'utf8')),
-			gmTools.html_escape_string(_cfg.get(option = u'client_version'))
-		))
+		from Gnumed.business.gmPraxis import gmCurrentPraxisBranch
+		prax = gmCurrentPraxisBranch()
+		lines = []
+		adr = prax.branch.org_unit.address
+		if adr is not None:
+			lines.extend(adr.format())
+		for comm in prax.branch.org_unit.comm_channels:
+			if comm['is_confidential'] is True:
+				continue
+			lines.append(u'%s: %s' % (
+				comm['l10n_comm_type'],
+				comm['url']
+			))
+		adr = u''
+		if len(lines) > 0:
+			adr = gmTools.html_escape_string(u'\n'.join(lines), replace_eol = True, keep_visual_eol = True)
+		_html_end_data = {
+			'branch': gmTools.html_escape_string(prax['branch']),
+			'praxis': gmTools.html_escape_string(prax['praxis']),
+			'date' : gmTools.html_escape_string(gmDateTime.pydt_strftime(gmDateTime.pydt_now_here(), format = '%Y %B %d', encoding = u'utf8')),
+			'gm_ver': gmTools.html_escape_string(_cfg.get(option = u'client_version')),
+			#'gm_ver': 'git HEAD',				# for testing
+			'adr': adr
+		}
+		idx_file.write(_html_end % _html_end_data)
 		idx_file.close()
 
 		# autorun.inf
 		autorun_fname = os.path.join(base_dir, u'autorun.inf')
-		autorun_file = codecs.open(autorun_fname, u'wb', u'utf8')
+		autorun_file = io.open(autorun_fname, mode = u'wt', encoding = u'utf8')
 		autorun_file.write(_autorun_inf % (
-			(pat['description_gender'] + u', ' + _(u'born') + u' ' + pat.get_formatted_dob('%Y %B %d')).strip(),
+			(pat.get_description_gender(with_nickname = False) + u', ' + _(u'born') + u' ' + pat.get_formatted_dob('%Y %B %d')).strip(),
 			_('Browse patient data')
 		))
 		autorun_file.close()
 
 		# cd.inf
 		cd_inf_fname = os.path.join(base_dir, u'cd.inf')
-		cd_inf_file = codecs.open(cd_inf_fname, u'wb', u'utf8')
+		cd_inf_file = io.open(cd_inf_fname, mode = u'wt', encoding = u'utf8')
 		cd_inf_file.write(_cd_inf % (
 			pat['lastnames'],
 			pat['firstnames'],
 			gmTools.coalesce(pat['gender'], u'?'),
 			pat.get_formatted_dob('%Y-%m-%d'),
-			gmDateTime.pydt_strftime(format = '%Y-%m-%d', encoding = u'utf8'),
+			gmDateTime.pydt_strftime(gmDateTime.pydt_now_here(), format = '%Y-%m-%d', encoding = u'utf8'),
 			pat.ID,
 			_cfg.get(option = u'client_version'),
 			u' / '.join([ u'%s = %s (%s)' % (g['tag'], g['label'], g['l10n_label']) for g in pat.gender_list ])
@@ -553,9 +576,9 @@ class cExportArea(object):
 
 		# README
 		readme_fname = os.path.join(base_dir, u'README')
-		readme_file = codecs.open(readme_fname, u'wb', u'utf8')
+		readme_file = io.open(readme_fname, mode = u'wt', encoding = u'utf8')
 		readme_file.write(_README % (
-			pat['description_gender'] + u', ' + _(u'born') + u' ' + pat.get_formatted_dob('%Y %B %d')
+			pat.get_description_gender(with_nickname = False) + u', ' + _(u'born') + u' ' + pat.get_formatted_dob('%Y %B %d')
 		))
 		readme_file.close()
 
@@ -564,6 +587,9 @@ class cExportArea(object):
 		pat.export_as_xml_linuxmednews(filename = os.path.join(base_dir, u'patient.xml'))
 		pat.export_as_vcard(filename = os.path.join(base_dir, u'patient.vcf'))
 
+		# praxis VCF
+		shutil.move(prax.vcf, os.path.join(base_dir, u'praxis.vcf'))
+
 		return base_dir
 	#--------------------------------------------------------
 	# properties
@@ -588,10 +614,11 @@ if __name__ == '__main__':
 		sys.exit()
 
 	from Gnumed.pycommon import gmI18N
-
 	gmI18N.activate_locale()
 	gmI18N.install_domain()
 
+	from Gnumed.business import gmPraxis
+
 	#---------------------------------------
 	def test_export_items():
 #		items = get_export_items()
@@ -609,7 +636,12 @@ if __name__ == '__main__':
 	def test_export_area():
 		exp = cExportArea(12)
 		#print exp.export_with_meta_data()
-		print exp.items
+		#print exp.items
+		exp.add_file(sys.argv[2])
+		prax = gmPraxis.gmCurrentPraxisBranch(branch = gmPraxis.cPraxisBranch(1))
+		print prax
+		print prax.branch
+		print exp.export(with_metadata = True)
 	#---------------------------------------
 	#test_export_items()
 	test_export_area()
diff --git a/client/business/gmFamilyHistory.py b/client/business/gmFamilyHistory.py
index 424bf9b..3b41721 100644
--- a/client/business/gmFamilyHistory.py
+++ b/client/business/gmFamilyHistory.py
@@ -54,6 +54,7 @@ def create_relationship_type(relationship=None, genetic=None):
 	"""
 	rows, idx = gmPG2.run_rw_queries(queries = [{'cmd': cmd, 'args': args}], return_data = True)
 	return rows[0]
+
 #============================================================
 # Family History item handling
 #------------------------------------------------------------
@@ -99,6 +100,7 @@ class cFamilyHistory(gmBusinessDBObject.cBusinessDBObject):
 		u'pk_fhx_relation_type',
 		u'comment'
 	]
+
 	#--------------------------------------------------------
 	def add_code(self, pk_code=None):
 		"""<pk_code> must be a value from ref.coding_system_root.pk_coding_system (clin.lnk_code2item_root.fk_generic_code)"""
@@ -125,6 +127,7 @@ class cFamilyHistory(gmBusinessDBObject.cBusinessDBObject):
 		}
 		rows, idx = gmPG2.run_rw_queries(queries = [{'cmd': cmd, 'args': args}])
 		return
+
 	#--------------------------------------------------------
 	def remove_code(self, pk_code=None):
 		"""<pk_code> must be a value from ref.coding_system_root.pk_coding_system (clin.lnk_code2item_root.fk_generic_code)"""
@@ -135,6 +138,18 @@ class cFamilyHistory(gmBusinessDBObject.cBusinessDBObject):
 		}
 		rows, idx = gmPG2.run_rw_queries(queries = [{'cmd': cmd, 'args': args}])
 		return True
+
+	#--------------------------------------------------------
+	def format_maximum_information(self, patient=None):
+
+		# include more fields from clin.v_family_history
+
+		return self.format (
+			include_episode = True,
+			include_comment = True,
+			include_codes = True
+		).split(u'\n')
+
 	#--------------------------------------------------------
 	def format(self, left_margin=0, include_episode=False, include_comment=False, include_codes=False):
 
@@ -152,7 +167,7 @@ class cFamilyHistory(gmBusinessDBObject.cBusinessDBObject):
 			line += gmTools.coalesce(self._payload[self._idx['age_noted']], u'', u' (@ %s)')
 		if self._payload[self._idx['contributed_to_death']]:
 			line += u' %s %s' % (
-				gmTools.u_right_arrow,
+				gmTools.u_arrow2right,
 				gmTools.u_skull_and_crossbones
 			)
 
@@ -185,6 +200,7 @@ class cFamilyHistory(gmBusinessDBObject.cBusinessDBObject):
 			del codes
 
 		return line
+
 	#--------------------------------------------------------
 	# properties
 	#--------------------------------------------------------
diff --git a/client/business/gmForms.py b/client/business/gmForms.py
index 7360ad8..150a516 100644
--- a/client/business/gmForms.py
+++ b/client/business/gmForms.py
@@ -14,12 +14,13 @@ import sys
 import time
 import os.path
 import logging
-import codecs
 import re as regex
 import shutil
 import random
 import platform
 import subprocess
+import io
+import codecs
 import socket										# needed for OOo on Windows
 #, libxml2, libxslt
 import shlex
@@ -42,6 +43,7 @@ from Gnumed.pycommon import gmCfg
 from Gnumed.pycommon import gmCfg2
 from Gnumed.pycommon import gmBusinessDBObject
 from Gnumed.pycommon import gmPG2
+from Gnumed.pycommon import gmDateTime
 
 from Gnumed.business import gmPerson
 from Gnumed.business import gmStaff
@@ -654,7 +656,8 @@ class cOOoLetter(object):
 			signal = u'import_document_from_file',
 			filename = filename,
 			document_type = self.instance_type,
-			unlock_patient = True
+			unlock_patient = True,
+			pk_org_unit = gmPraxis.gmCurrentPraxisBranch()['pk_org_unit']
 		)
 		self.ooo_doc = None
 	#--------------------------------------------------------
@@ -789,14 +792,16 @@ class cAbiWordForm(cFormEngine):
 			ext = r'.abw'
 		self.instance_filename = r'%s-instance%s' % (path, ext)
 
-		template_file = codecs.open(self.template_filename, 'rU', 'utf8')
-		instance_file = codecs.open(self.instance_filename, 'wb', 'utf8')
+		template_file = io.open(self.template_filename, mode = 'rt', encoding = 'utf8')
+		instance_file = io.open(self.instance_filename, mode = 'wt', encoding = 'utf8')
 
 		if self.template is not None:
 			# inject placeholder values
 			data_source.set_placeholder(u'form_name_long', self.template['name_long'])
 			data_source.set_placeholder(u'form_name_short', self.template['name_short'])
 			data_source.set_placeholder(u'form_version', self.template['external_version'])
+			data_source.set_placeholder(u'form_version_internal', self.template['gnumed_revision'])
+			data_source.set_placeholder(u'form_last_modified', gmDateTime.pydt_strftime(self.template['last_modified'], '%Y-%b-%d %H:%M'))
 
 		data_source.escape_style = u'xml'
 		data_source.escape_function = None			# gmTools.xml_escape_text() ?
@@ -832,6 +837,8 @@ class cAbiWordForm(cFormEngine):
 			data_source.unset_placeholder(u'form_name_long')
 			data_source.unset_placeholder(u'form_name_short')
 			data_source.unset_placeholder(u'form_version')
+			data_source.unset_placeholder(u'form_version_internal')
+			data_source.unset_placeholder(u'form_last_modified')
 
 		return
 	#--------------------------------------------------------
@@ -880,66 +887,124 @@ class cTextForm(cFormEngine):
 	"""A forms engine outputting data as text for further processing."""
 
 	def __init__(self, template_file=None):
+
 		super(self.__class__, self).__init__(template_file = template_file)
 
-		# generate real template file from .ini file
-		cfg_file = codecs.open(filename = self.template_filename, mode = 'rU', encoding = u'utf8')
+		# create sandbox to play in (and don't assume much
+		# of anything about the template_file except that it
+		# is at our disposal for reading)
+		self.__sandbox_dir = gmTools.mk_sandbox_dir()
+		_log.debug('sandbox directory: [%s]', self.__sandbox_dir)
+
+		# parse template file which is an INI style config
+		# file containing the actual template plus metadata
+		self.form_definition_filename = self.template_filename
+		_log.debug('form definition file: [%s]', self.form_definition_filename)
+		cfg_file = io.open(self.form_definition_filename, mode = 'rt', encoding = u'utf8')
 		self.form_definition = gmCfg2.parse_INI_stream(stream = cfg_file)
 		cfg_file.close()
-		self.form_definition['form::template']
+
+		# extract actual template into a file
+		template_text = self.form_definition['form::template']
+		if isinstance(template_text, type([])):
+			template_text = u'\n'.join(self.form_definition['form::template'])
+		self.template_filename = gmTools.get_unique_filename (
+			prefix = 'gm-',
+			suffix = '.txt',
+			tmp_dir = self.__sandbox_dir
+		)
+		_log.debug('template file: [%s]', self.template_filename)
+		f = io.open(self.template_filename, mode = 'wt', encoding = 'utf8')
+		f.write(template_text)
+		f.close()
+
 	#--------------------------------------------------------
 	def substitute_placeholders(self, data_source=None):
-		self.instance_filename = gmTools.get_unique_filename (
-			prefix = 'gm-T-instance-',
-			suffix = '.txt'
-		)
-		instance_file = codecs.open(self.instance_filename, 'wb', 'utf8')
 
 		if self.template is not None:
 			# inject placeholder values
 			data_source.set_placeholder(u'form_name_long', self.template['name_long'])
 			data_source.set_placeholder(u'form_name_short', self.template['name_short'])
 			data_source.set_placeholder(u'form_version', self.template['external_version'])
+			data_source.set_placeholder(u'form_version_internal', self.template['gnumed_revision'])
+			data_source.set_placeholder(u'form_last_modified', gmDateTime.pydt_strftime(self.template['last_modified'], '%Y-%b-%d %H:%M'))
 
-		if isinstance(self.form_definition['form::template'], type([])):
-			template_text = self.form_definition['form::template']
-		else:
-			template_text = self.form_definition['form::template'].split('\n')
+		base = os.path.join(self.__sandbox_dir, gmTools.fname_stem(self.template_filename))
+		filenames = [
+			self.template_filename,
+			r'%s-result-pass-1.txt' % base,
+			r'%s-result-pass-2.txt' % base,
+			r'%s-result-pass-3.txt' % base
+		]
+		regexen = [
+			'dummy',
+			data_source.first_pass_placeholder_regex,
+			data_source.second_pass_placeholder_regex,
+			data_source.third_pass_placeholder_regex
+		]
 
-		no_errors = True
-		for line in template_text:
+		current_pass = 1
+		while current_pass < 4:
+			_log.debug('placeholder substitution pass #%s', current_pass)
+			found_placeholders = self.__substitute_placeholders (
+				input_filename = filenames[current_pass-1],
+				output_filename = filenames[current_pass],
+				data_source = data_source,
+				placeholder_regex = regexen[current_pass]
+			)
+			current_pass += 1
+
+		# remove temporary placeholders
+		data_source.unset_placeholder(u'form_name_long')
+		data_source.unset_placeholder(u'form_name_short')
+		data_source.unset_placeholder(u'form_version')
+		data_source.unset_placeholder(u'form_version_internal')
+		data_source.unset_placeholder(u'form_last_modified')
+
+		self.instance_filename = self.re_editable_filenames[0]
+
+		return True
+
+	#--------------------------------------------------------
+	def __substitute_placeholders(self, data_source=None, input_filename=None, output_filename=None, placeholder_regex=None):
+
+		_log.debug('[%s] -> [%s]', input_filename, output_filename)
+		_log.debug('searching for placeholders with pattern: %s', placeholder_regex)
+
+		template_file = io.open(input_filename, mode = 'rt', encoding = 'utf8')
+		instance_file = io.open(output_filename, mode = 'wt', encoding = 'utf8')
+
+		for line in template_file:
+			# empty lines
 			if line.strip() in [u'', u'\r', u'\n', u'\r\n']:
-				instance_file.write('%s\n' % line)
+				instance_file.write(line)
 				continue
 
 			# 1) find placeholders in this line
-			placeholders_in_line = regex.findall(data_source.placeholder_regex, line, regex.IGNORECASE)
-			# 2) and replace them
+			placeholders_in_line = regex.findall(placeholder_regex, line, regex.IGNORECASE)
+			if len(placeholders_in_line) == 0:
+				instance_file.write(line)
+				continue
+
+			# 2) replace them
+			_log.debug('%s placeholders found in this line', len(placeholders_in_line))
 			for placeholder in placeholders_in_line:
 				try:
 					val = data_source[placeholder]
 				except:
 					val = _('error with placeholder [%s]') % placeholder
 					_log.exception(val)
-					no_errors = False
-
 				if val is None:
 					val = _('error with placeholder [%s]') % placeholder
 
 				line = line.replace(placeholder, val)
 
-			instance_file.write(u'%s\n' % line)
+			instance_file.write(line)
 
 		instance_file.close()
-		self.re_editable_filenames = [self.instance_filename]
-
-		if self.template is not None:
-			# remove temporary placeholders
-			data_source.unset_placeholder(u'form_name_long')
-			data_source.unset_placeholder(u'form_name_short')
-			data_source.unset_placeholder(u'form_version')
+		self.re_editable_filenames = [output_filename]
+		template_file.close()
 
-		return no_errors
 	#--------------------------------------------------------
 	def edit(self):
 
@@ -961,15 +1026,19 @@ class cTextForm(cFormEngine):
 		self.re_editable_filenames = [self.instance_filename]
 
 		return result
+
 	#--------------------------------------------------------
 	def generate_output(self, format=None):
 		try:
-			post_processor = self.form_definition['form::post processor'] % self.instance_filename
+			post_processor = self.form_definition['form::post processor'] % {
+				'input_name': self.instance_filename,
+				'output_name': self.instance_filename + u'.output'
+			}
 		except KeyError:
 			_log.debug('no explicit post processor defined for text template')
 			return True
 
-		self.final_output_filenames = [self.instance_filename]
+		self.final_output_filenames = [self.instance_filename + u'.output']
 
 		return gmShellAPI.run_command_in_shell(command = post_processor, blocking = True)
 #------------------------------------------------------------
@@ -985,19 +1054,16 @@ class cLaTeXForm(cFormEngine):
 
 		# create sandbox for LaTeX to play in (and don't assume
 		# much of anything about the template_file except that it
-		# is at our disposal)
-		sandbox_dir = gmTools.get_unique_filename (
-			prefix = gmTools.fname_stem(template_file) + '_',
-			suffix = '.dir'
-		)
+		# is at our disposal for reading)
+		sandbox_dir = gmTools.mk_sandbox_dir(prefix = gmTools.fname_stem(template_file) + '_')
 		_log.debug('LaTeX sandbox directory: [%s]', sandbox_dir)
-		gmTools.mkdir(sandbox_dir)
 		shutil.copy(template_file, sandbox_dir)
 		template_file = os.path.join(sandbox_dir, os.path.split(template_file)[1])
 
 		super(self.__class__, self).__init__(template_file = template_file)
 
 		self.__sandbox_dir = sandbox_dir
+
 	#--------------------------------------------------------
 	def substitute_placeholders(self, data_source=None):
 
@@ -1006,6 +1072,8 @@ class cLaTeXForm(cFormEngine):
 			data_source.set_placeholder(u'form_name_long', self.template['name_long'])
 			data_source.set_placeholder(u'form_name_short', self.template['name_short'])
 			data_source.set_placeholder(u'form_version', self.template['external_version'])
+			data_source.set_placeholder(u'form_version_internal', self.template['gnumed_revision'])
+			data_source.set_placeholder(u'form_last_modified', gmDateTime.pydt_strftime(self.template['last_modified'], '%Y-%b-%d %H:%M'))
 
 		data_source.escape_function = gmTools.tex_escape_string
 		data_source.escape_style = u'latex'
@@ -1016,78 +1084,83 @@ class cLaTeXForm(cFormEngine):
 
 		filenames = [
 			self.template_filename,
-			r'%s-result_run1%s' % (path, ext),
-			r'%s-result_run2%s' % (path, ext),
-			r'%s-result_run3%s' % (path, ext)
+			r'%s-result-pass-1%s' % (path, ext),
+			r'%s-result-pass-2%s' % (path, ext),
+			r'%s-result-pass-3%s' % (path, ext)
+		]
+		regexen = [
+			'dummy',
+			data_source.first_pass_placeholder_regex,
+			data_source.second_pass_placeholder_regex,
+			data_source.third_pass_placeholder_regex
 		]
 
-		found_placeholders = True
-		current_run = 1
-		while found_placeholders and (current_run < 4):
-			_log.debug('placeholder substitution run #%s', current_run)
+		current_pass = 1
+		while current_pass < 4:
+			_log.debug('placeholder substitution pass #%s', current_pass)
 			found_placeholders = self.__substitute_placeholders (
-				input_filename = filenames[current_run-1],
-				output_filename = filenames[current_run],
-				data_source = data_source
+				input_filename = filenames[current_pass-1],
+				output_filename = filenames[current_pass],
+				data_source = data_source,
+				placeholder_regex = regexen[current_pass]
 			)
-			current_run += 1
+			current_pass += 1
 
-		if self.template is not None:
-			# remove temporary placeholders
-			data_source.unset_placeholder(u'form_name_long')
-			data_source.unset_placeholder(u'form_name_short')
-			data_source.unset_placeholder(u'form_version')
+		# remove temporary placeholders
+		data_source.unset_placeholder(u'form_name_long')
+		data_source.unset_placeholder(u'form_name_short')
+		data_source.unset_placeholder(u'form_version')
+		data_source.unset_placeholder(u'form_version_internal')
+		data_source.unset_placeholder(u'form_last_modified')
 
 		self.instance_filename = self.re_editable_filenames[0]
 
 		return
 	#--------------------------------------------------------
-	def __substitute_placeholders(self, data_source=None, input_filename=None, output_filename=None):
+	def __substitute_placeholders(self, data_source=None, input_filename=None, output_filename=None, placeholder_regex=None):
 
 		_log.debug('[%s] -> [%s]', input_filename, output_filename)
+		_log.debug('searching for placeholders with pattern: %s', placeholder_regex)
 
-		found_placeholders = False
-
-		template_file = codecs.open(input_filename, 'rU', 'utf8')
-		instance_file = codecs.open(output_filename, 'wb', 'utf8')
+		template_file = io.open(input_filename, mode = 'rt', encoding = 'utf8')
+		instance_file = io.open(output_filename, mode = 'wt', encoding = 'utf8')
 
 		for line in template_file:
-
-			if line.strip() in [u'', u'\r', u'\n', u'\r\n']:		# empty lines
+			# empty lines
+			if line.strip() in [u'', u'\r', u'\n', u'\r\n']:
 				instance_file.write(line)
 				continue
-			if line.lstrip().startswith('%'):		# TeX comment
+			# TeX-comment-only lines
+			if line.lstrip().startswith('%'):
 				instance_file.write(line)
 				continue
 
-			for placeholder_regex in [data_source.first_order_placeholder_regex, data_source.second_order_placeholder_regex, data_source.third_order_placeholder_regex]:
-				# 1) find placeholders in this line
-				placeholders_in_line = regex.findall(placeholder_regex, line, regex.IGNORECASE)
-				if len(placeholders_in_line) == 0:
-					continue
-				_log.debug('%s placeholders found with pattern: %s', len(placeholders_in_line), placeholder_regex)
-				found_placeholders = True
-				# 2) replace them
-				for placeholder in placeholders_in_line:
-					try:
-						val = data_source[placeholder]
-					except:
-						_log.exception('error with placeholder [%s]', placeholder)
-						val = gmTools.tex_escape_string(_('error with placeholder [%s]') % placeholder)
-
-					if val is None:
-						_log.debug('error with placeholder [%s]', placeholder)
-						val = _('error with placeholder [%s]') % gmTools.tex_escape_string(placeholder)
-
-					line = line.replace(placeholder, val)
+			# 1) find placeholders in this line
+			placeholders_in_line = regex.findall(placeholder_regex, line, regex.IGNORECASE)
+			if len(placeholders_in_line) == 0:
+				instance_file.write(line)
+				continue
 
+			# 2) replace them
+			_log.debug('%s placeholders found in this line', len(placeholders_in_line))
+			for placeholder in placeholders_in_line:
+				try:
+					val = data_source[placeholder]
+				except:
+					_log.exception('error with placeholder [%s]', placeholder)
+					val = gmTools.tex_escape_string(_('error with placeholder [%s]') % placeholder)
+				if val is None:
+					_log.debug('error with placeholder [%s]', placeholder)
+					val = gmTools.tex_escape_string(_('error with placeholder [%s]') % placeholder)
+				line = line.replace(placeholder, val)
 			instance_file.write(line)
 
 		instance_file.close()
 		self.re_editable_filenames = [output_filename]
 		template_file.close()
 
-		return found_placeholders
+		return
+
 	#--------------------------------------------------------
 	def edit(self):
 
@@ -1178,12 +1251,8 @@ class cXeTeXForm(cFormEngine):
 		# create sandbox for LaTeX to play in (and don't assume
 		# much of anything about the template_file except that it
 		# is at our disposal)
-		sandbox_dir = gmTools.get_unique_filename (
-			prefix = gmTools.fname_stem(template_file) + '_',
-			suffix = '.dir'
-		)
+		sandbox_dir = gmTools.mk_sandbox_dir(prefix = gmTools.fname_stem(template_file) + '_')
 		_log.debug('Xe(La)TeX sandbox directory: [%s]', sandbox_dir)
-		gmTools.mkdir(sandbox_dir)
 		shutil.copy(template_file, sandbox_dir)
 		template_file = os.path.join(sandbox_dir, os.path.split(template_file)[1])
 
@@ -1198,6 +1267,8 @@ class cXeTeXForm(cFormEngine):
 			data_source.set_placeholder(u'form_name_long', self.template['name_long'])
 			data_source.set_placeholder(u'form_name_short', self.template['name_short'])
 			data_source.set_placeholder(u'form_version', self.template['external_version'])
+			data_source.set_placeholder(u'form_version_internal', self.template['gnumed_revision'])
+			data_source.set_placeholder(u'form_last_modified', gmDateTime.pydt_strftime(self.template['last_modified'], '%Y-%b-%d %H:%M'))
 
 		data_source.escape_function = gmTools.xetex_escape_string
 		data_source.escape_style = u'xetex'
@@ -1229,6 +1300,8 @@ class cXeTeXForm(cFormEngine):
 			data_source.unset_placeholder(u'form_name_long')
 			data_source.unset_placeholder(u'form_name_short')
 			data_source.unset_placeholder(u'form_version')
+			data_source.unset_placeholder(u'form_version_internal')
+			data_source.unset_placeholder(u'form_last_modified')
 
 		self.instance_filename = self.re_editable_filenames[0]
 
@@ -1239,8 +1312,8 @@ class cXeTeXForm(cFormEngine):
 
 		found_placeholders = False
 
-		template_file = codecs.open(input_filename, 'rU', 'utf8')
-		instance_file = codecs.open(output_filename, 'wb', 'utf8')
+		template_file = io.open(input_filename, mode = 'rt', encoding = 'utf8')
+		instance_file = io.open(output_filename, mode = 'wt', encoding = 'utf8')
 
 		for line in template_file:
 
@@ -1251,7 +1324,7 @@ class cXeTeXForm(cFormEngine):
 				instance_file.write(line)
 				continue
 
-			for placeholder_regex in [data_source.first_order_placeholder_regex, data_source.second_order_placeholder_regex, data_source.third_order_placeholder_regex]:
+			for placeholder_regex in [data_source.first_pass_placeholder_regex, data_source.second_pass_placeholder_regex, data_source.third_pass_placeholder_regex]:
 				# 1) find placeholders in this line
 				placeholders_in_line = regex.findall(placeholder_regex, line, regex.IGNORECASE)
 				if len(placeholders_in_line) == 0:
@@ -1385,9 +1458,9 @@ class cGnuplotForm(cFormEngine):
 		Expects .data_filename to be set.
 		"""
 		self.conf_filename = gmTools.get_unique_filename(prefix = 'gm2gpl-', suffix = '.conf')
-		conf_file = codecs.open(self.conf_filename, 'wb', 'utf8')
-		conf_file.write('# setting the gnuplot data file\n')
-		conf_file.write("gm2gpl_datafile = '%s'\n" % self.data_filename)
+		conf_file = io.open(self.conf_filename, mode = 'wt', encoding = 'utf8')
+		conf_file.write(u'# setting the gnuplot data file\n')
+		conf_file.write(u"gm2gpl_datafile = '%s'\n" % self.data_filename)
 		conf_file.close()
 
 		# FIXME: cater for configurable path
@@ -1396,7 +1469,12 @@ class cGnuplotForm(cFormEngine):
 		else:
 			exec_name = 'gnuplot'
 
-		args = [exec_name, '-p', self.conf_filename, self.template_filename]
+		args = [
+			exec_name,
+			'-p',					# let plot window persist after main gnuplot process exits
+			self.conf_filename,		# contains the gm2gpl_datafile setting which, in turn, contains the actual data
+			self.template_filename	# contains the plotting instructions (IOW a user provided gnuplot script)
+		]
 		_log.debug('plotting args: %s' % str(args))
 
 		try:
@@ -1478,8 +1556,8 @@ class cPDFForm(cFormEngine):
 
 		# parse dumped FDF file for "/V (...)" records
 		# and replace placeholders therein
-		fdf_dumped_file = open(self.fdf_dumped_filename, 'rbU')
-		fdf_replaced_file = codecs.open(self.fdf_replaced_filename, 'wb')
+		fdf_dumped_file = io.open(self.fdf_dumped_filename, mode = 'rt', encoding = u'utf8')
+		fdf_replaced_file = io.open(self.fdf_replaced_filename, mode = 'wt', encoding = u'utf8')
 
 		string_value_regex = r'\s*/V\s*\(.+\)\s*$'
 		for line in fdf_dumped_file:
@@ -1533,10 +1611,10 @@ class cPDFForm(cFormEngine):
 
 			replaced_line = '\x00\\n'.join(replaced_lines)
 
-			fdf_replaced_file.write('/V (')
+			fdf_replaced_file.write(u'/V (')
 			fdf_replaced_file.write(codecs.BOM_UTF16_BE)
 			fdf_replaced_file.write(replaced_line)
-			fdf_replaced_file.write(')\n')
+			fdf_replaced_file.write(u')\n')
 
 		fdf_replaced_file.close()
 		fdf_dumped_file.close()
@@ -1768,7 +1846,7 @@ class cXSLTFormEngine(cFormEngine):
 		fname = gmTools.get_unique_filename(prefix = u'gm_XSLT_form-', suffix = u'.html')
 		#html_file = os.open(fname, 'wb')
 		#html_file.write(self._FormData.encode('UTF-8'))
-		html_file = codecs.open(fname, 'wb', 'utf8', 'strict')		# or 'replace' ?
+		html_file = io.open(fname, mode = 'wt', encoding = 'utf8', errors = 'strict')		# or 'replace' ?
 		html_file.write(self._FormData)
 		html_file.close()
 
@@ -1913,7 +1991,7 @@ $DISEASELIST
 
 
 def test_au():
-	f = open('../../test-area/ian/terry-form.tex')
+	f = io.open('../../test-area/ian/terry-form.tex')
 	params = {
 	'RECIPIENT': "Dr. R. Terry\n1 Main St\nNewcastle",
 	'DOCTORSNAME': 'Ian Haywood',
@@ -1961,7 +2039,7 @@ def test_au2 ():
 	form.cleanup ()
 #------------------------------------------------------------
 def test_de():
-		template = open('../../test-area/ian/Formularkopf-DE.tex')
+		template = io.open('../../test-area/ian/Formularkopf-DE.tex')
 		form = LaTeXForm(template=template.read())
 		params = {
 				'PATIENT LASTNAME': 'Kirk',
@@ -1986,7 +2064,6 @@ if __name__ == '__main__':
 	if sys.argv[1] != 'test':
 		sys.exit()
 
-	from Gnumed.pycommon import gmDateTime
 	gmDateTime.init()
 
 	#--------------------------------------------------------
@@ -2131,6 +2208,13 @@ if __name__ == '__main__':
 		print "final file is:", final_name
 	#--------------------------------------------------------
 	def test_text_form():
+
+		from Gnumed.business import gmPraxis
+
+		branches = gmPraxis.get_praxis_branches()
+		praxis = gmPraxis.gmCurrentPraxisBranch(branches[0])
+		print praxis
+
 		pat = gmPersonSearch.ask_for_patient()
 		if pat is None:
 			return
@@ -2145,6 +2229,7 @@ if __name__ == '__main__':
 		ph = gmMacro.gmPlaceholderHandler()
 		ph.debug = True
 		print "placeholder substitution worked:", form.substitute_placeholders(data_source = ph)
+		print form.re_editable_filenames
 		form.edit()
 		form.generate_output()
 	#--------------------------------------------------------
@@ -2164,9 +2249,9 @@ if __name__ == '__main__':
 
 	#test_cFormTemplate()
 	#set_template_from_file()
-	test_latex_form()
+	#test_latex_form()
 	#test_pdf_form()
 	#test_abiword_form()
-	#test_text_form()
+	test_text_form()
 
 #============================================================
diff --git a/client/business/gmHL7.py b/client/business/gmHL7.py
index c3d717c..8e8fef8 100644
--- a/client/business/gmHL7.py
+++ b/client/business/gmHL7.py
@@ -7,7 +7,7 @@ __license__ = "GPL v2 or later"
 
 import sys
 import os
-import codecs
+import io
 import logging
 import time
 import shutil
@@ -30,6 +30,7 @@ from Gnumed.pycommon import gmDateTime
 
 from Gnumed.business import gmPathLab
 from Gnumed.business import gmPerson
+from Gnumed.business import gmPraxis
 from Gnumed.business import gmStaff
 
 
@@ -37,6 +38,7 @@ _log = logging.getLogger('gm.hl7')
 
 # constants
 HL7_EOL = u'\r'
+HL7_BRK = u'\.br\\'
 
 HL7_SEGMENTS = u'FHS BHS MSH PID PV1 OBX NTE ORC OBR'.split()
 
@@ -338,7 +340,7 @@ def extract_HL7_from_XML_CDATA(filename, xml_path, target_dir=None):
 		_log.debug('target dir: %s', target_dir)
 		gmTools.mkdir(target_dir)
 		gmTools.mkdir(done_dir)
-	except StandardError:
+	except Exception:
 		_log.exception('cannot setup unwrapping environment')
 		return None
 
@@ -354,9 +356,10 @@ def extract_HL7_from_XML_CDATA(filename, xml_path, target_dir=None):
 		return None
 
 	_log.debug('unwrapping HL7 from XML into [%s]', work_filename)
-	hl7_file = codecs.open(work_filename, 'wb', 'utf8')
+	hl7_file = io.open(work_filename, mode = 'wt', encoding = 'utf8', newline = '')		# universal newlines acceptance but no translation on output
 	for node in nodes:
-		hl7_file.write(node.text.rstrip(u'\r').rstrip(u'\n').rstrip(u'\r').rstrip(u'\n') + HL7_EOL)
+#		hl7_file.write(node.text.rstrip() + HL7_EOL)
+		hl7_file.write(node.text + u'')		# trick to make node.text unicode
 	hl7_file.close()
 
 	target_fname = os.path.join(target_dir, os.path.split(work_filename)[1])
@@ -403,7 +406,7 @@ def split_hl7_file(filename, target_dir=None, encoding='utf8'):
 			target_dir = os.path.join(orig_dir, u'PID')
 		_log.debug('target dir: %s', target_dir)
 		gmTools.mkdir(target_dir)
-	except StandardError:
+	except Exception:
 		_log.exception('cannot setup splitting environment')
 		root_logger.removeHandler(local_logger)
 		return False, None
@@ -420,7 +423,7 @@ def split_hl7_file(filename, target_dir=None, encoding='utf8'):
 		for PID_fname in PID_fnames:
 			shutil.move(PID_fname, target_dir)
 			target_names.append(os.path.join(target_dir, os.path.split(PID_fname)[1]))
-	except StandardError:
+	except Exception:
 		_log.exception('cannot split HL7 file')
 		for target_name in target_names:
 			try: os.remove(target_name)
@@ -439,11 +442,15 @@ def split_hl7_file(filename, target_dir=None, encoding='utf8'):
 	return True, target_names
 
 #------------------------------------------------------------
-def format_hl7_message(message=None, skip_empty_fields=True, eol=u'\n '):
+def format_hl7_message(message=None, skip_empty_fields=True, eol=u'\n ', source=None):
 	# a segment is a line starting with a type
 	msg = pyhl7.parse(message)
 
-	output = [[_('HL7 Message'), _(' %s segments (lines)%s') % (len(msg), gmTools.bool2subst(skip_empty_fields, _(', skipping empty fields'), u''))]]
+	output = []
+	if source is not None:
+		output.append([_('HL7 Source'), u'%s' % source])
+	output.append([_('HL7 data size'), _('%s bytes') % len(message)])
+	output.append([_('HL7 Message'), _(' %s segments (lines)%s') % (len(msg), gmTools.bool2subst(skip_empty_fields, _(', skipping empty fields'), u''))])
 
 	max_len = 0
 	for seg_idx in range(len(msg)):
@@ -470,7 +477,7 @@ def format_hl7_message(message=None, skip_empty_fields=True, eol=u'\n '):
 					output.append([u'%2s - %s' % (field_idx, label), _('<EMTPY>')])
 				continue
 
-			content_lines = (u'%s' % field).split(u'\.br\\')
+			content_lines = (u'%s' % field).split(HL7_BRK)
 			output.append([u'%2s - %s' % (field_idx, label), content_lines[0]])
 			for line in content_lines[1:]:
 				output.append([u'', line])
@@ -483,16 +490,19 @@ def format_hl7_message(message=None, skip_empty_fields=True, eol=u'\n '):
 	return eol.join([ u'%s: %s' % ((o[0] + (u' ' * max_len))[:max_len], o[1]) for o in output ])
 
 #------------------------------------------------------------
-def format_hl7_file(filename, skip_empty_fields=True, eol=u'\n ', return_filename=False, fix_hl7=False):
+def format_hl7_file(filename, skip_empty_fields=True, eol=u'\n ', return_filename=False, fix_hl7=True):
 	if fix_hl7:
 		fixed_name = __fix_malformed_hl7_file(filename)
-		hl7_file = codecs.open(fixed_name, 'rb', 'utf8')
+		hl7_file = io.open(fixed_name, mode = 'rt', encoding = 'utf8', newline = '')	# read universal but pass on untranslated
+		source = u'%s (<- %s)' % (fixed_name, filename)
 	else:
-		hl7_file = codecs.open(filename, 'rb', 'utf8')
+		hl7_file = io.open(filename, mode = 'rt', encoding = 'utf8', newline = '')	# read universal but pass on untranslated
+		source = filename
 	output = format_hl7_message (
 		message = hl7_file.read(1024 * 1024 * 5),		# 5 MB max
 		skip_empty_fields = skip_empty_fields,
-		eol = eol
+		eol = eol,
+		source = source
 	)
 	hl7_file.close()
 
@@ -503,7 +513,7 @@ def format_hl7_file(filename, skip_empty_fields=True, eol=u'\n ', return_filenam
 		output = u'\n '.join([ u'%s: %s' % ((o[0] + (u' ' * max_len))[:max_len], o[1]) for o in output ])
 
 	out_name = gmTools.get_unique_filename(prefix = 'gm-formatted_hl7-', suffix = u'.hl7')
-	out_file = codecs.open(out_name, 'wb', 'utf8')
+	out_file = io.open(out_name, mode = 'wt', encoding = 'utf8')
 	out_file.write(output)
 	out_file.close()
 
@@ -540,22 +550,22 @@ def stage_single_PID_hl7_file(filename, source=None, encoding='utf8'):
 		gmTools.mkdir(done_dir)
 		error_dir = os.path.join(orig_dir, u'failed')
 		gmTools.mkdir(error_dir)
-	except StandardError:
+	except Exception:
 		_log.exception('cannot setup staging environment')
 		root_logger.removeHandler(local_logger)
 		return False
 
 	# stage
 	try:
-		inc = create_incoming_data(u'HL7%s' % gmTools.coalesce(source, u'', u' (%s)'), filename)
-		if inc is None:
+		incoming = create_incoming_data(u'HL7%s' % gmTools.coalesce(source, u'', u' (%s)'), filename)
+		if incoming is None:
 			_log.error(u'cannot stage PID file: %s', filename)
 			root_logger.removeHandler(local_logger)
 			shutil.move(filename, error_dir)
 			shutil.move(local_log_name, error_dir)
 			return False
-		inc.update_data_from_file(fname = filename)
-	except StandardError:
+		incoming.update_data_from_file(fname = filename)
+	except Exception:
 		_log.exception(u'error staging PID file')
 		root_logger.removeHandler(local_logger)
 		shutil.move(filename, error_dir)
@@ -563,38 +573,38 @@ def stage_single_PID_hl7_file(filename, source=None, encoding='utf8'):
 		return False
 
 	# set additional data
-	MSH_file = codecs.open(filename, 'rb', 'utf8')
+	MSH_file = io.open(filename, mode = 'rt', encoding = 'utf8', newline = '')
 	raw_hl7 = MSH_file.read(1024 * 1024 * 5)	# 5 MB max
 	MSH_file.close()
 	shutil.move(filename, done_dir)
-	inc['comment'] = format_hl7_message (
+	incoming['comment'] = format_hl7_message (
 		message = raw_hl7,
 		skip_empty_fields = True,
 		eol = u'\n'
 	)
 	HL7 = pyhl7.parse(raw_hl7)
 	del raw_hl7
-	inc['comment'] += u'\n'
-	inc['comment'] += (u'-' * 80)
-	inc['comment'] += u'\n\n'
-	log = codecs.open(local_log_name, 'r', 'utf8')
-	inc['comment'] += log.read()
+	incoming['comment'] += u'\n'
+	incoming['comment'] += (u'-' * 80)
+	incoming['comment'] += u'\n\n'
+	log = io.open(local_log_name, mode = 'rt', encoding = 'utf8')
+	incoming['comment'] += log.read()
 	log.close()
 	try:
-		inc['lastnames'] = HL7.extract_field('PID', segment_num = 1, field_num = PID_field__name, component_num = PID_component__lastname)
-		inc['firstnames'] = HL7.extract_field('PID', segment_num = 1, field_num = PID_field__name, component_num = PID_component__firstname)
+		incoming['lastnames'] = HL7.extract_field('PID', segment_num = 1, field_num = PID_field__name, component_num = PID_component__lastname)
+		incoming['firstnames'] = HL7.extract_field('PID', segment_num = 1, field_num = PID_field__name, component_num = PID_component__firstname)
 		val = HL7.extract_field('PID', segment_num = 1, field_num = PID_field__name, component_num = PID_component__middlename)
 		if val is not None:
-			inc['firstnames'] += u' '
-			inc['firstnames'] += val
+			incoming['firstnames'] += u' '
+			incoming['firstnames'] += val
 		val = HL7.extract_field('PID', segment_num = 1, field_num = PID_field__dob)
 		if val is not None:
 			tmp = time.strptime(val, '%Y%m%d')
-			inc['dob'] = pyDT.datetime(tmp.tm_year, tmp.tm_mon, tmp.tm_mday, tzinfo = gmDateTime.gmCurrentLocalTimezone)
+			incoming['dob'] = pyDT.datetime(tmp.tm_year, tmp.tm_mon, tmp.tm_mday, tzinfo = gmDateTime.gmCurrentLocalTimezone)
 		val = HL7.extract_field('PID', segment_num = 1, field_num = PID_field__gender)
 		if val is not None:
-			inc['gender'] = val
-		inc['external_data_id'] = filename
+			incoming['gender'] = val
+		incoming['external_data_id'] = filename
 		#u'fk_patient_candidates',
 		#	u'request_id',						# request ID as found in <data>
 		#	u'postcode',
@@ -603,9 +613,9 @@ def stage_single_PID_hl7_file(filename, source=None, encoding='utf8'):
 		#	u'fk_identity_disambiguated',
 		#	u'comment',							# a free text comment on this row, eg. why is it here, error logs etc
 		#	u'fk_provider_disambiguated'		# The provider the data is relevant to.
-	except StandardError:
+	except Exception:
 		_log.exception(u'cannot add more data')
-	inc.save()
+	incoming.save()
 
 	_log.info(u'successfully staged')
 	root_logger.removeHandler(local_logger)
@@ -649,15 +659,15 @@ def process_staged_single_PID_hl7_file(staged_item):
 			root_logger.removeHandler(import_logger)
 			return True, log_name
 		_log.error('error when importing single-PID/single-MSH file')
-	except StandardError:
+	except Exception:
 		_log.exception('error when importing single-PID/single-MSH file')
 
 	if not success:
-		staged_item['comment'] = _('failed import: %s\n') % gmDateTime.pydt_strftime()
+		staged_item['comment'] = _('failed import: %s\n') % gmDateTime.pydt_strftime(gmDateTime.pydt_now_here())
 		staged_item['comment'] += u'\n'
 		staged_item['comment'] += (u'-' * 80)
 		staged_item['comment'] += u'\n\n'
-		log = codecs.open(log_name, 'r', 'utf8')
+		log = io.open(log_name, mode = 'rt', encoding = 'utf8')
 		staged_item['comment'] += log.read()
 		log.close()
 		staged_item['comment'] += u'\n'
@@ -690,7 +700,7 @@ def import_single_PID_hl7_file(filename):
 		success = __import_single_PID_hl7_file(filename)
 		if not success:
 			_log.error('error when importing single-PID/single-MSH file')
-	except StandardError:
+	except Exception:
 		_log.exception('error when importing single-PID/single-MSH file')
 
 	root_logger.removeHandler(import_logger)
@@ -706,20 +716,18 @@ def __fix_malformed_hl7_file(filename, encoding='utf8'):
 	# first pass:
 	# - remove empty lines
 	# - normalize line endings
-	# - unwrap wrapped segments
+	# - unwrap wrapped segments (based on the assumption that segments are wrapped until a line starts with a known segment marker)
 	out1_fname = gmTools.get_unique_filename (
 		prefix = u'gm_fix1-%s-' % gmTools.fname_stem(filename),
 		suffix = u'.hl7'
 	)
-	hl7_in = codecs.open(filename, 'rb', encoding)
-	hl7_out = codecs.open(out1_fname, 'wb', 'utf8')
-
+	hl7_in = io.open(filename, mode = 'rt', encoding = encoding)					# universal newlines: translate any type of EOL to \n
+	hl7_out = io.open(out1_fname, mode = 'wt', encoding = 'utf8', newline = u'')	# newline='' -> no translation of EOL at all
 	is_first_line = True
 	for line in hl7_in:
 		# skip empty line
-		if line.strip().strip(u'\r').strip(u'\n').strip(u'\r').strip(u'\n').strip() == u'':
+		if line.strip() == u'':
 			continue
-
 		# starts with known segment ?
 		segment = line[:3]
 		if (segment in HL7_SEGMENTS) and (line[3] == u'|'):
@@ -727,23 +735,25 @@ def __fix_malformed_hl7_file(filename, encoding='utf8'):
 				hl7_out.write(HL7_EOL)
 			else:
 				is_first_line = False
-
-		hl7_out.write(line.rstrip(u'\r').rstrip(u'\n').rstrip(u'\r').rstrip(u'\n'))
-
+		else:
+			hl7_out.write(u' ')
+		hl7_out.write(line.rstrip())
+	hl7_out.write(HL7_EOL)
 	hl7_out.close()
 	hl7_in.close()
 
 	# second pass:
 	# - normalize # of fields per line
+	# - remove '\.br.\'-only fields ;-)
 	out2_fname = gmTools.get_unique_filename (
 		prefix = u'gm_fix2-%s-' % gmTools.fname_stem(filename),
 		suffix = '.hl7'
 	)
-	hl7_in = codecs.open(out1_fname, 'rb', 'utf8')
-	hl7_out = codecs.open(out2_fname, 'wb', 'utf8')
-
+	# we can now _expect_ lines to end in HL7_EOL, anything else is an error
+	hl7_in = io.open(out1_fname, mode = 'rt', encoding = 'utf8', newline = HL7_EOL)
+	hl7_out = io.open(out2_fname, mode = 'wt', encoding = 'utf8', newline = u'')
 	for line in hl7_in:
-		line = line.strip(HL7_EOL)
+		line = line.strip()
 		seg_type = line[:3]						# assumption: field separator = '|'
 		field_count = line.count(u'|') + 1		# assumption: no '|' in data ...
 		try:
@@ -753,8 +763,15 @@ def __fix_malformed_hl7_file(filename, encoding='utf8'):
 		missing_fields_count = required_fields - field_count
 		if missing_fields_count > 0:
 			line += (u'|' * missing_fields_count)
-		hl7_out.write(line + HL7_EOL)
-
+		cleaned_fields = []
+		for field in line.split(u'|'):
+			if field.replace(HL7_BRK, u'').strip() == u'':
+				cleaned_fields.append(u'')
+				continue
+			cleaned = gmTools.strip_prefix(field, HL7_BRK, remove_repeats = True, remove_whitespace = True)
+			cleaned = gmTools.strip_suffix(cleaned, HL7_BRK, remove_repeats = True, remove_whitespace = True)
+			cleaned_fields.append(cleaned)
+		hl7_out.write(u'|'.join(cleaned_fields) + HL7_EOL)
 	hl7_out.close()
 	hl7_in.close()
 
@@ -764,21 +781,21 @@ def __fix_malformed_hl7_file(filename, encoding='utf8'):
 		prefix = u'gm_fix3-%s-' % gmTools.fname_stem(filename),
 		suffix = '.hl7'
 	)
-	hl7_in = codecs.open(out2_fname, 'rb', 'utf8')
-	hl7_out = codecs.open(out3_fname, 'wb', 'utf8')
-
+	# we can now _expect_ lines to end in HL7_EOL, anything else is an error
+	hl7_in = io.open(out2_fname, mode = 'rt', encoding = 'utf8', newline = HL7_EOL)
+	hl7_out = io.open(out3_fname, mode = 'wt', encoding = 'utf8', newline = u'')
 	prev_identity = None
 	prev_fields = None
 	for line in hl7_in:
+		line = line.strip()
 		if not line.startswith(u'OBX|'):
 			if prev_fields is not None:
 				hl7_out.write(u'|'.join(prev_fields) + HL7_EOL)
-			hl7_out.write(line)
+			hl7_out.write(line + HL7_EOL)
 			prev_identity = None
 			prev_fields = None
 			curr_fields = None
 			continue
-		line = line.strip(HL7_EOL)
 		# first OBX
 		curr_fields = line.split(u'|')
 		if curr_fields[OBX_field__datatype] != u'FT':
@@ -809,18 +826,16 @@ def __fix_malformed_hl7_file(filename, encoding='utf8'):
 			prev_fields = curr_fields
 			prev_identity = curr_identity
 			continue
-		if prev_fields[OBX_field__value].endswith(u'\.br\\'):
+		if prev_fields[OBX_field__value].endswith(HL7_BRK):
 			prev_fields[OBX_field__value] += curr_fields[OBX_field__value]
 		else:
-			if curr_fields[OBX_field__value].startswith(u'\.br\\'):
+			if curr_fields[OBX_field__value].startswith(HL7_BRK):
 				prev_fields[OBX_field__value] += curr_fields[OBX_field__value]
 			else:
-				prev_fields[OBX_field__value] += u'\.br\\'
+				prev_fields[OBX_field__value] += HL7_BRK
 				prev_fields[OBX_field__value] += curr_fields[OBX_field__value]
-
 	if prev_fields is not None:
 		hl7_out.write(u'|'.join(prev_fields) + HL7_EOL)
-
 	hl7_out.close()
 	hl7_in.close()
 
@@ -831,17 +846,18 @@ def __split_hl7_file_by_MSH(filename, encoding='utf8'):
 
 	_log.debug('splitting [%s] into single-MSH files', filename)
 
-	hl7_in = codecs.open(filename, 'rb', encoding)
+	hl7_in = io.open(filename, mode = 'rt', encoding = encoding)
 
 	idx = 0
 	first_line = True
 	MSH_file = None
 	MSH_fnames = []
 	for line in hl7_in:
+		line = line.strip()
 		# first line must be MSH
 		if first_line:
 			# ignore empty / FHS / BHS lines
-			if line.strip() == u'':
+			if line == u'':
 				continue
 			if line.startswith(u'FHS|'):
 				_log.debug('ignoring FHS')
@@ -860,7 +876,7 @@ def __split_hl7_file_by_MSH(filename, encoding='utf8'):
 			out_fname = gmTools.get_unique_filename(prefix = u'%s-MSH_%s-' % (gmTools.fname_stem(filename), idx), suffix = 'hl7')
 			_log.debug('writing message %s to [%s]', idx, out_fname)
 			MSH_fnames.append(out_fname)
-			MSH_file = codecs.open(out_fname, 'wb', 'utf8')
+			MSH_file = io.open(out_fname, mode = 'wt', encoding = 'utf8', newline = u'')
 		# ignore BTS / FTS lines
 		if line.startswith(u'BTS|'):
 			_log.debug('ignoring BTS')
@@ -869,7 +885,7 @@ def __split_hl7_file_by_MSH(filename, encoding='utf8'):
 			_log.debug('ignoring FTS')
 			continue
 		# else write line to new file
-		MSH_file.write(line.strip('\n').strip('\r').strip('\n').strip('\r') + HL7_EOL)
+		MSH_file.write(line + HL7_EOL)
 
 	if MSH_file is not None:
 		MSH_file.close()
@@ -889,7 +905,7 @@ def __split_MSH_by_PID(filename):
 	"""
 	_log.debug('splitting single-MSH file [%s] into single-PID files', filename)
 
-	MSH_in = codecs.open(filename, 'rb', 'utf8')
+	MSH_in = io.open(filename, mode = 'rt', encoding = 'utf8')
 
 	looking_for_MSH = True
 	MSH_line = None
@@ -898,15 +914,16 @@ def __split_MSH_by_PID(filename):
 	PID_fnames = []
 	idx = 0
 	for line in MSH_in:
+		line = line.strip()
 		# ignore empty
-		if line.strip() == u'':
+		if line == u'':
 			continue
 
 		# first non-empty line must be MSH
 		if looking_for_MSH:
 			if line.startswith(u'MSH|'):
 				looking_for_MSH = False
-				MSH_line = line.strip('\n').strip('\r').strip('\n').strip('\r') + u'\r'
+				MSH_line = line + HL7_EOL
 				continue
 			raise ValueError('HL7 MSH file <%s> does not start with "MSH" line' % filename)
 		else:
@@ -927,10 +944,10 @@ def __split_MSH_by_PID(filename):
 			out_fname = gmTools.get_unique_filename(prefix = u'%s-PID_%s-' % (gmTools.fname_stem(filename), idx), suffix = 'hl7')
 			_log.debug('writing message for PID %s to [%s]', idx, out_fname)
 			PID_fnames.append(out_fname)
-			PID_file = codecs.open(out_fname, 'wb', 'utf8')
+			PID_file = io.open(out_fname, mode = 'wt', encoding = 'utf8', newline = u'')
 			PID_file.write(MSH_line)
 		# else write line to new file
-		PID_file.write(line.strip('\n').strip('\r').strip('\n').strip('\r') + HL7_EOL)
+		PID_file.write(line + HL7_EOL)
 
 	if PID_file is not None:
 		PID_file.close()
@@ -958,8 +975,9 @@ def __find_or_create_test_type(loinc=None, name=None, pk_lab=None, unit=None, li
 
 	tt = gmPathLab.find_measurement_type(link_obj = link_obj, lab = pk_lab, name = name)
 	if tt is None:
-		_log.debug('test type [%s %s (%s)] not found for lab #%s, creating', name, unit, loinc, pk_lab)
+		_log.debug('test type [%s::%s::%s] not found for lab #%s, creating', name, unit, loinc, pk_lab)
 		tt = gmPathLab.create_measurement_type(link_obj = link_obj, lab = pk_lab, abbrev = gmTools.coalesce(abbrev, name), unit = unit, name = name)
+		_log.debug('created as: %s', tt)
 
 	if loinc is None:
 		return tt
@@ -1052,7 +1070,7 @@ def __import_single_PID_hl7_file(filename, emr=None):
 	_log.debug('importing single-PID single-MSH HL7 data from [%s]', filename)
 
 	# read the file
-	MSH_file = codecs.open(filename, 'rb', 'utf8')
+	MSH_file = io.open(filename, mode = 'rt', encoding = 'utf8', newline = '')
 	HL7 = pyhl7.parse(MSH_file.read(1024 * 1024 * 5))	# 5 MB max
 	MSH_file.close()
 
@@ -1159,7 +1177,8 @@ def __import_single_PID_hl7_file(filename, emr=None):
 				loinc = u'%s' % seg[OBX_field__type][0][OBX_component__loinc-1],
 				name = u'%s' % seg[OBX_field__type][0][OBX_component__name-1],
 				pk_lab = gm_lab['pk_test_org'],
-				unit = unit
+				unit = unit,
+				link_obj = conn
 			)
 			# eventually, episode should be read from lab_request
 			epi = emr.add_episode (
@@ -1222,7 +1241,7 @@ def __import_single_PID_hl7_file(filename, emr=None):
 				if name == u'':
 					name = _('Comment')
 				# FIXME: please suggest a LOINC for "order comment"
-				test_type = __find_or_create_test_type(name = name, pk_lab = gm_lab['pk_test_org'], abbrev = obr['abbrev'])
+				test_type = __find_or_create_test_type(name = name, pk_lab = gm_lab['pk_test_org'], abbrev = obr['abbrev'], link_obj = conn)
 				# eventually, episode should be read from lab_request
 				epi = emr.add_episode (
 					link_obj = conn,
@@ -1318,6 +1337,7 @@ def __import_single_PID_hl7_file(filename, emr=None):
 			episode = epi['pk_episode']
 		)
 		hl7_doc['comment'] = _('list of imported HL7 data files')
+		hl7_doc['pk_org_unit'] = gmPraxis.gmCurrentPraxisBranch()['pk_org_unit']
 	hl7_doc['clin_when'] = gmDateTime.pydt_now_here()
 	hl7_doc.save()
 	part = hl7_doc.add_part(file = filename)
@@ -1335,7 +1355,7 @@ def __stage_MSH_as_incoming_data(filename, source=None, logfile=None):
 	_log.debug('staging [%s] as unmatched incoming HL7%s', gmTools.coalesce(source, u'', u' (%s)'), filename)
 
 	# parse HL7
-	MSH_file = codecs.open(filename, 'rb', 'utf8')
+	MSH_file = io.open(filename, mode = 'rt', encoding = 'utf8', newline = '')
 	raw_hl7 = MSH_file.read(1024 * 1024 * 5)	# 5 MB max
 	MSH_file.close()
 	formatted_hl7 = format_hl7_message (
@@ -1347,33 +1367,33 @@ def __stage_MSH_as_incoming_data(filename, source=None, logfile=None):
 	del raw_hl7
 
 	# import file
-	inc = create_incoming_data(u'HL7%s' % gmTools.coalesce(source, u'', u' (%s)'), filename)
-	if inc is None:
+	incoming = create_incoming_data(u'HL7%s' % gmTools.coalesce(source, u'', u' (%s)'), filename)
+	if incoming is None:
 		return None
-	inc.update_data_from_file(fname = filename)
-	inc['comment'] = formatted_hl7
+	incoming.update_data_from_file(fname = filename)
+	incoming['comment'] = formatted_hl7
 	if logfile is not None:
-		log = codecs.open(logfile, 'r', 'utf8')
-		inc['comment'] += u'\n'
-		inc['comment'] += (u'-' * 80)
-		inc['comment'] += u'\n\n'
-		inc['comment'] += log.read()
+		log = io.open(logfile, mode = 'rt', encoding = 'utf8')
+		incoming['comment'] += u'\n'
+		incoming['comment'] += (u'-' * 80)
+		incoming['comment'] += u'\n\n'
+		incoming['comment'] += log.read()
 		log.close()
 	try:
-		inc['lastnames'] = HL7.extract_field('PID', segment_num = 1, field_num = PID_field__name, component_num = PID_component__lastname)
-		inc['firstnames'] = HL7.extract_field('PID', segment_num = 1, field_num = PID_field__name, component_num = PID_component__firstname)
+		incoming['lastnames'] = HL7.extract_field('PID', segment_num = 1, field_num = PID_field__name, component_num = PID_component__lastname)
+		incoming['firstnames'] = HL7.extract_field('PID', segment_num = 1, field_num = PID_field__name, component_num = PID_component__firstname)
 		val = HL7.extract_field('PID', segment_num = 1, field_num = PID_field__name, component_num = PID_component__middlename)
 		if val is not None:
-			inc['firstnames'] += u' '
-			inc['firstnames'] += val
+			incoming['firstnames'] += u' '
+			incoming['firstnames'] += val
 		val = HL7.extract_field('PID', segment_num = 1, field_num = PID_field__dob)
 		if val is not None:
 			tmp = time.strptime(val, '%Y%m%d')
-			inc['dob'] = pyDT.datetime(tmp.tm_year, tmp.tm_mon, tmp.tm_mday, tzinfo = gmDateTime.gmCurrentLocalTimezone)
+			incoming['dob'] = pyDT.datetime(tmp.tm_year, tmp.tm_mon, tmp.tm_mday, tzinfo = gmDateTime.gmCurrentLocalTimezone)
 		val = HL7.extract_field('PID', segment_num = 1, field_num = PID_field__gender)
 		if val is not None:
-			inc['gender'] = val
-		inc['external_data_id'] = filename
+			incoming['gender'] = val
+		incoming['external_data_id'] = filename
 		#u'fk_patient_candidates',
 		#	u'request_id',						# request ID as found in <data>
 		#	u'postcode',
@@ -1384,9 +1404,9 @@ def __stage_MSH_as_incoming_data(filename, source=None, logfile=None):
 		#	u'fk_provider_disambiguated'		# The provider the data is relevant to.
 	except KeyError:
 		_log.exception('no PID segment, cannot add more data')
-	inc.save()
+	incoming.save()
 
-	return inc
+	return incoming
 
 #============================================================
 # main
@@ -1463,9 +1483,8 @@ if __name__ == "__main__":
 			)
 	#-------------------------------------------------------
 	def test_format_hl7_file(filename):
-		fixed = __fix_malformed_hl7_file(filename)
 		print format_hl7_file (
-			fixed,
+			filename,
 #			skip_empty_fields = True
 			return_filename = True
 		)
@@ -1473,8 +1492,41 @@ if __name__ == "__main__":
 	def test___fix_malformed_hl7():
 		print "fixed HL7:", __fix_malformed_hl7_file(sys.argv[2])
 	#-------------------------------------------------------
+	def test_parse_hl7():
+		MSH_file = io.open(sys.argv[2], mode = 'rt', encoding = 'utf8', newline = '')
+		raw_hl7 = MSH_file.read(1024 * 1024 * 5)	# 5 MB max
+		MSH_file.close()
+		print format_hl7_message (
+			message = raw_hl7,
+			skip_empty_fields = True,
+			eol = u'\n'
+		)
+		HL7 = pyhl7.parse(raw_hl7)
+		del raw_hl7
+		for seg in HL7.segments('MSH'):
+			print seg
+		print "PID:"
+		print HL7.extract_field(u'PID')
+		print HL7.extract_field('PID', segment_num = 1, field_num = PID_field__name, component_num = PID_component__lastname)
+		print HL7.extract_field('PID', segment_num = 1, field_num = PID_field__name, component_num = PID_component__lastname)
+
+#			incoming['firstnames'] = HL7.extract_field('PID', segment_num = 1, field_num = PID_field__name, component_num = PID_component__firstname)
+#			val = HL7.extract_field('PID', segment_num = 1, field_num = PID_field__name, component_num = PID_component__middlename)
+#			if val is not None:
+#				incoming['firstnames'] += u' '
+#				incoming['firstnames'] += val
+#			val = HL7.extract_field('PID', segment_num = 1, field_num = PID_field__dob)
+#			if val is not None:
+#				tmp = time.strptime(val, '%Y%m%d')
+#				incoming['dob'] = pyDT.datetime(tmp.tm_year, tmp.tm_mon, tmp.tm_mday, tzinfo = gmDateTime.gmCurrentLocalTimezone)
+#			val = HL7.extract_field('PID', segment_num = 1, field_num = PID_field__gender)
+#			if val is not None:
+#				incoming['gender'] = val
+#			incoming['external_data_id'] = filename
+
+	#-------------------------------------------------------
 	#test_import_HL7(sys.argv[2])
-	test_xml_extract()
+	#test_xml_extract()
 	#test_incoming_data()
 	#test_stage_hl7_from_xml()
 	#test_stage_hl7()
@@ -1482,3 +1534,4 @@ if __name__ == "__main__":
 	#test_format_hl7_file(sys.argv[2])
 	#test___fix_malformed_hl7()
 	#test_split_hl7_file()
+	test_parse_hl7()
diff --git a/client/business/gmKVK.py b/client/business/gmKVK.py
index ccec2b3..99fc7e8 100644
--- a/client/business/gmKVK.py
+++ b/client/business/gmKVK.py
@@ -14,7 +14,7 @@ import sys
 import os
 import os.path
 import fileinput
-import codecs
+import io
 import time
 import glob
 import datetime as pyDT
@@ -165,7 +165,7 @@ class cDTO_CCRdr(gmPerson.cDTO_person):
 			name_candidate_ids = [ o.ID for o in old_idents ]
 			for r in rows:
 				if r[0] not in name_candidate_ids:
-					old_idents.append(gmPerson.cIdentity(aPK_obj = r[0]))
+					old_idents.append(gmPerson.cPerson(aPK_obj = r[0]))
 
 		return old_idents
 
@@ -207,7 +207,7 @@ class cDTO_CCRdr(gmPerson.cDTO_person):
 	def __load_vk_file(self):
 
 		_log.debug('loading eGK/KVK/PKVK data from [%s]', self.filename)
-		vk_file = codecs.open(filename = self.filename, mode = 'rU', encoding = 'utf8')
+		vk_file = io.open(self.filename, mode = 'rt', encoding = 'utf8')
 		self.raw_data = json.load(vk_file)
 		vk_file.close()
 
@@ -393,7 +393,7 @@ select pk_identity from dem.v_external_ids4identity where
 			for oid in old_idents:
 				if r[0] == oid.ID:
 					break
-			new_idents.append(gmPerson.cIdentity(aPK_obj = r['pk_identity']))
+			new_idents.append(gmPerson.cPerson(aPK_obj = r['pk_identity']))
 
 		old_idents.extend(new_idents)
 
@@ -440,7 +440,7 @@ select pk_identity from dem.v_external_ids4identity where
 
 		_log.debug('parsing eGK data in [%s]', self.filename)
 
-		egk_file = codecs.open(filename = self.filename, mode = 'rU', encoding = 'utf8')
+		egk_file = io.open(self.filename, mode = 'rt', encoding = 'utf8')
 
 		card_type_seen = False
 		for line in egk_file:
@@ -530,7 +530,7 @@ select pk_identity from dem.v_external_ids4identity where
 			for oid in old_idents:
 				if r[0] == oid.ID:
 					break
-			new_idents.append(gmPerson.cIdentity(aPK_obj = r['pk_identity']))
+			new_idents.append(gmPerson.cPerson(aPK_obj = r['pk_identity']))
 
 		old_idents.extend(new_idents)
 
@@ -575,7 +575,7 @@ select pk_identity from dem.v_external_ids4identity where
 
 		_log.debug('parsing KVK data in [%s]', self.filename)
 
-		kvk_file = codecs.open(filename = self.filename, mode = 'rU', encoding = 'utf8')
+		kvk_file = io.open(self.filename, mode = 'rt', encoding = 'utf8')
 
 		card_type_seen = False
 		for line in kvk_file:
@@ -624,7 +624,7 @@ select pk_identity from dem.v_external_ids4identity where
 #============================================================
 def detect_card_type(card_file=None):
 
-	data_file = codecs.open(filename = card_file, mode = 'rU', encoding = 'utf8')
+	data_file = io.open(card_file, mode = 'rt', encoding = 'utf8')
 
 	for line in kvk_file:
 		line = line.replace('\n', '').replace('\r', '')
diff --git a/client/business/gmLOINC.py b/client/business/gmLOINC.py
index 4bc0a19..6070a92 100644
--- a/client/business/gmLOINC.py
+++ b/client/business/gmLOINC.py
@@ -9,7 +9,7 @@ license: GPL v2 or later
 __author__ = "K.Hilbert <Karsten.Hilbert at gmx.net>"
 
 import sys
-import codecs
+import io
 import logging
 import csv
 import re as regex
@@ -40,6 +40,9 @@ LOINC_creatinine_quantity = ['2160-0', '14682-9', '40264-4', '40248-7']
 LOINC_gfr_quantity = ['33914-3', '45066-8', '48642-3', '48643-1', '50044-7', '50210-4', '50384-7', '62238-1', '69405-9', '70969-1']
 LOINC_height = ['3137-7', '3138-5', '8301-4', '8302-2', '8305-5', '8306-3', '8307-1', '8308-9']
 LOINC_weight = ['18833-4', '29463-7', '3141-9', '3142-7', '8335-2', '8339-4', '8344-4', '8346-9', '8351-9']
+LOINC_rr_quantity = ['8478-0', '8448-3', '8449-1', '8456-6', '8457-4', '8458-2', '55284-4', '50403-5', '50402-7', '45372-0']
+LOINC_heart_rate_quantity = ['8867-4', '67129-7', '40443-4', '69000-8', '69001-6', '68999-2']
+LOINC_inr_quantity = ['34714-6', '46418-0', '6301-6', '38875-1']
 
 #============================================================
 def loinc2term(loinc=None):
@@ -93,15 +96,15 @@ def split_LOINCDBTXT(input_fname=None, data_fname=None, license_fname=None):
 		data_fname = gmTools.get_unique_filename(prefix = 'loinc_data-', suffix = '.csv')
 	_log.debug('LOINC data: %s', data_fname)
 
-	loinc_file = codecs.open(input_fname, 'rU', encoding = file_encoding, errors = 'replace')
-	out_file = codecs.open(license_fname, 'w', encoding = 'utf8', errors = 'replace')
+	loinc_file = io.open(input_fname, mode = 'rt', encoding = file_encoding, errors = 'replace')
+	out_file = io.open(license_fname, mode = 'wt', encoding = 'utf8', errors = 'replace')
 
 	for line in loinc_file:
 
 		if license_delimiter in line:
 			out_file.write(line)
 			out_file.close()
-			out_file = codecs.open(data_fname, 'w', encoding = 'utf8', errors = 'replace')
+			out_file = io.open(data_fname, mode = 'wt', encoding = 'utf8', errors = 'replace')
 			continue
 
 		out_file.write(line)
@@ -109,18 +112,20 @@ def split_LOINCDBTXT(input_fname=None, data_fname=None, license_fname=None):
 	out_file.close()
 
 	return data_fname, license_fname
+
 #============================================================
 def map_field_names(data_fname='loinc_data.csv'):
 
-	csv_file = codecs.open(data_fname, 'rU', 'utf8', 'replace')
+	csv_file = io.open(data_fname, mode = 'rt', encoding = 'utf8', errors = 'replace')
 	first_line = csv_file.readline()
 	sniffer = csv.Sniffer()
 	if sniffer.has_header(first_line):
 		pass
+
 #============================================================
 def get_version(license_fname='loinc_license.txt'):
 
-	in_file = codecs.open(license_fname, 'rU', encoding = 'utf8', errors = 'replace')
+	in_file = io.open(license_fname, mode = 'rt', encoding = 'utf8', errors = 'replace')
 
 	version = None
 	for line in in_file:
@@ -130,6 +135,7 @@ def get_version(license_fname='loinc_license.txt'):
 
 	in_file.close()
 	return version
+
 #============================================================
 def loinc_import(data_fname=None, license_fname=None, version=None, conn=None, lang='en_EN'):
 
@@ -150,7 +156,7 @@ def loinc_import(data_fname=None, license_fname=None, version=None, conn=None, l
 	_log.debug('staging table emptied')
 
 	# import data from csv file into staging table
-	csv_file = codecs.open(data_fname, 'rU', 'utf8', 'replace')
+	csv_file = io.open(data_fname, mode = 'rt', encoding = 'utf8', errors = 'replace')
 	loinc_reader = gmTools.unicode_csv_reader(csv_file, delimiter = "\t", quotechar = '"')
 	curs = conn.cursor()
 	cmd = u"""INSERT INTO staging.loinc_staging values (%s%%s)""" % (u'%s, ' * (len(loinc_fields) - 1))
@@ -166,7 +172,7 @@ def loinc_import(data_fname=None, license_fname=None, version=None, conn=None, l
 	_log.debug('staging table loaded')
 
 	# create data source record
-	in_file = codecs.open(license_fname, 'rU', encoding = 'utf8', errors = 'replace')
+	in_file = io.open(license_fname, mode = 'rt', encoding = 'utf8', errors = 'replace')
 	desc = in_file.read()
 	in_file.close()
 	args = {'ver': version, 'desc': desc, 'url': origin_url, 'name_long': name_long, 'name_short': name_short, 'lang': lang}
diff --git a/client/business/gmMedication.py b/client/business/gmMedication.py
index df16be4..05d9330 100644
--- a/client/business/gmMedication.py
+++ b/client/business/gmMedication.py
@@ -9,7 +9,7 @@ __author__ = "K.Hilbert <Karsten.Hilbert at gmx.net>"
 import sys
 import logging
 import csv
-import codecs
+import io
 import os
 import re as regex
 import subprocess
@@ -20,7 +20,9 @@ import datetime as pydt
 
 if __name__ == '__main__':
 	sys.path.insert(0, '../../')
-	_ = lambda x:x
+	from Gnumed.pycommon import gmI18N
+	gmI18N.activate_locale()
+	gmI18N.install_domain('gnumed')
 from Gnumed.pycommon import gmBusinessDBObject
 from Gnumed.pycommon import gmTools
 from Gnumed.pycommon import gmShellAPI
@@ -33,8 +35,7 @@ from Gnumed.pycommon import gmDateTime
 from Gnumed.business import gmATC
 from Gnumed.business import gmAllergy
 from Gnumed.business import gmCoding
-from Gnumed.business.gmDocuments import DOCUMENT_TYPE_PRESCRIPTION
-from Gnumed.business.gmDocuments import create_document_type
+from Gnumed.business import gmEMRStructItems
 
 
 _log = logging.getLogger('gm.meds')
@@ -193,7 +194,7 @@ class cGelbeListeCSVFile(object):
 
 		_log.debug('reading Gelbe Liste/MMI drug data from [%s]', self.filename)
 
-		self.csv_file = codecs.open(filename = filename, mode = 'rUb', encoding = cGelbeListeCSVFile.default_encoding)
+		self.csv_file = io.open(filename, mode = 'rt', encoding = cGelbeListeCSVFile.default_encoding)
 
 		self.csv_lines = gmTools.unicode_csv_reader (
 			self.csv_file,
@@ -232,6 +233,7 @@ class cGelbeListeCSVFile(object):
 		return (gmTools.default_csv_reader_rest_key in self.csv_fieldnames)
 
 	has_unknown_fields = property(_get_has_unknown_fields, lambda x:x)
+
 #============================================================
 class cDrugDataSourceInterface(object):
 
@@ -498,7 +500,7 @@ class cFreeDiamsInterface(cDrugDataSourceInterface):
 				# do fail because __export_latest_prescription() should not have been called without patient
 				return False
 			emr = self.patient.get_emr()
-			substance_intakes = emr.get_current_substance_intakes (
+			substance_intakes = emr.get_current_medications (
 				include_inactive = False,
 				include_unapproved = True
 			)
@@ -605,7 +607,7 @@ class cFreeDiamsInterface(cDrugDataSourceInterface):
 </FreeDiams>
 """
 
-		xml_file = codecs.open(self.__fd2gm_filename, 'wb', 'utf8')
+		xml_file = io.open(self.__fd2gm_filename, mode = 'wt', encoding = 'utf8')
 		xml_file.write(xml % u'\n\t\t'.join(drug_snippets))
 		xml_file.close()
 
@@ -620,7 +622,7 @@ class cFreeDiamsInterface(cDrugDataSourceInterface):
 		else:
 			mode = u'select-only'
 
-		xml_file = codecs.open(self.__gm2fd_filename, 'wb', 'utf8')
+		xml_file = io.open(self.__gm2fd_filename, mode = 'wt', encoding = 'utf8')
 
 		xml = u"""<?xml version="1.0" encoding="UTF-8"?>
 
@@ -743,10 +745,7 @@ class cFreeDiamsInterface(cDrugDataSourceInterface):
 		docs = self.patient.get_document_folder()
 		emr = self.patient.get_emr()
 
-		prescription = docs.add_document (
-			document_type = create_document_type (
-				document_type = DOCUMENT_TYPE_PRESCRIPTION
-			)['pk_doc_type'],
+		prescription = docs.add_prescription (
 			encounter = emr.active_encounter['pk_encounter'],
 			episode = emr.add_episode (
 				episode_name = DEFAULT_MEDICATION_HISTORY_EPISODE,
@@ -1033,6 +1032,7 @@ class cFreeDiamsInterface(cDrugDataSourceInterface):
 					amount = data['amount'],
 					unit = data['unit']
 				)
+
 #============================================================
 class cGelbeListeWindowsInterface(cDrugDataSourceInterface):
 	"""Support v8.2 CSV file interface only."""
@@ -1073,7 +1073,7 @@ class cGelbeListeWindowsInterface(cDrugDataSourceInterface):
 				}
 		try:
 			open(self.data_date_filename, 'wb').close()
-		except StandardError:
+		except Exception:
 			_log.error('problem querying the MMI drug database for version information')
 			_log.exception('cannot create MMI drug database version file [%s]', self.data_date_filename)
 			self.__data_date = None
@@ -1094,8 +1094,8 @@ class cGelbeListeWindowsInterface(cDrugDataSourceInterface):
 			}
 
 		try:
-			version_file = open(self.data_date_filename, 'rU')
-		except StandardError:
+			version_file = io.open(self.data_date_filename, mode = 'rt', encoding = 'utf8')
+		except Exception:
 			_log.error('problem querying the MMI drug database for version information')
 			_log.exception('cannot open MMI drug database version file [%s]', self.data_date_filename)
 			self.__data_date = None
@@ -1247,7 +1247,7 @@ class cGelbeListeWindowsInterface(cDrugDataSourceInterface):
 		if drug_ids_list < 2:
 			return
 
-		bdt_file = codecs.open(filename = self.interactions_filename, mode = 'wb', encoding = cGelbeListeWindowsInterface.default_encoding)
+		bdt_file = io.open(self.interactions_filename, mode = 'wt', encoding = cGelbeListeWindowsInterface.default_encoding)
 
 		for pzn in drug_ids_list:
 			pzn = pzn.strip()
@@ -1279,6 +1279,7 @@ class cGelbeListeWindowsInterface(cDrugDataSourceInterface):
 		open(self.interactions_filename, 'wb').close()
 
 		self.switch_to_frontend(cmd = cmd)
+
 #============================================================
 class cGelbeListeWineInterface(cGelbeListeWindowsInterface):
 
@@ -1297,6 +1298,7 @@ class cGelbeListeWineInterface(cGelbeListeWindowsInterface):
 		self.default_csv_filename_arg = r'c:\windows\temp\mmi2gm.csv'
 		self.interactions_filename = os.path.join(paths.home_dir, '.wine', 'drive_c', 'windows', 'temp', 'gm2mmi.bdt')
 		self.data_date_filename = os.path.join(paths.home_dir, '.wine', 'drive_c', 'Programme', 'MMI PHARMINDEX', 'datadate.txt')
+
 #============================================================
 class cIfapInterface(cDrugDataSourceInterface):
 	"""empirical CSV interface"""
@@ -1307,7 +1309,7 @@ class cIfapInterface(cDrugDataSourceInterface):
 	def print_transfer_file(self, filename=None):
 
 		try:
-			csv_file = open(filename, 'rb')						# FIXME: encoding ?
+			csv_file = io.open(filename, mode = 'rt', encoding = 'latin1')						# FIXME: encoding correct ?
 		except:
 			_log.exception('cannot access [%s]', filename)
 			csv_file = None
@@ -1341,6 +1343,7 @@ class cIfapInterface(cDrugDataSourceInterface):
 #					line['Hersteller'].strip(),
 #					line['PZN'].strip()
 #				)
+
 #============================================================
 drug_data_source_interfaces = {
 	'Deutschland: Gelbe Liste/MMI (Windows)': cGelbeListeWindowsInterface,
@@ -1357,7 +1360,6 @@ _SQL_get_consumable_substance = u"""
 	FROM ref.consumable_substance
 	WHERE %s
 """
-
 class cConsumableSubstance(gmBusinessDBObject.cBusinessDBObject):
 
 	_cmd_fetch_payload = _SQL_get_consumable_substance % u"pk = %s"
@@ -1416,6 +1418,16 @@ class cConsumableSubstance(gmBusinessDBObject.cBusinessDBObject):
 		u'unit'
 	]
 	#--------------------------------------------------------
+	def format(self, left_margin=0):
+		return (u' ' * left_margin) + u'%s: %s %s%s%s' % (
+			_('Consumable substance'),
+			self._payload[self._idx['description']],
+			self._payload[self._idx['amount']],
+			self._payload[self._idx['unit']],
+			gmTools.coalesce(self._payload[self._idx['atc_code']], u'', u' [%s]')
+		)
+
+	#--------------------------------------------------------
 	def save_payload(self, conn=None):
 		success, data = super(self.__class__, self).save_payload(conn = conn)
 
@@ -1432,6 +1444,22 @@ class cConsumableSubstance(gmBusinessDBObject.cBusinessDBObject):
 
 		return (success, data)
 	#--------------------------------------------------------
+	def exists_as_intake(self, pk_patient=None):
+		return substance_intake_exists (
+			pk_substance = self.pk_obj,
+			pk_identity = pk_patient
+		)
+
+	#--------------------------------------------------------
+	def turn_into_intake(self, encounter=None, episode=None, preparation=None):
+		return create_substance_intake (
+			pk_substance = self.pk_obj,
+			encounter = encounter,
+			episode = episode,
+			preparation = preparation
+		)
+
+	#--------------------------------------------------------
 	# properties
 	#--------------------------------------------------------
 	def _get_is_in_use_by_patients(self):
@@ -1479,6 +1507,7 @@ class cConsumableSubstance(gmBusinessDBObject.cBusinessDBObject):
 		return rows[0][0]
 
 	is_drug_component = property(_get_is_drug_component, lambda x:x)
+
 #------------------------------------------------------------
 def get_consumable_substances(order_by=None):
 	if order_by is None:
@@ -1488,10 +1517,10 @@ def get_consumable_substances(order_by=None):
 	cmd = _SQL_get_consumable_substance % order_by
 	rows, idx = gmPG2.run_ro_queries(queries = [{'cmd': cmd}], get_col_idx = True)
 	return [ cConsumableSubstance(row = {'data': r, 'idx': idx, 'pk_field': 'pk'}) for r in rows ]
+
 #------------------------------------------------------------
 def create_consumable_substance(substance=None, atc=None, amount=None, unit=None):
 
-	substance = substance
 	if atc is not None:
 		atc = atc.strip()
 
@@ -1529,6 +1558,40 @@ def create_consumable_substance(substance=None, atc=None, amount=None, unit=None
 	gmATC.propagate_atc(substance = substance, atc = atc)
 
 	return cConsumableSubstance(aPK_obj = rows[0]['pk'])
+
+#------------------------------------------------------------
+def create_consumable_substance_by_atc(substance=None, atc=None, amount=None, unit=None):
+
+	atc = atc.strip()
+	if atc == u'':
+		raise ValueError('<atc> cannot be empty: [%s]', atc)
+	converted, amount = gmTools.input2decimal(amount)
+	if not converted:
+		raise ValueError('<amount> must be a number: %s (%s)', amount, type(amount))
+	args = {
+		'desc': substance.strip(),
+		'amount': amount,
+		'unit': unit.strip(),
+		'atc': atc
+	}
+	cmd = u"""
+		INSERT INTO ref.consumable_substance (description, atc_code, amount, unit)
+			SELECT
+				%(desc)s,
+				%(atc)s,
+				%(amount)s,
+				gm.nullify_empty_string(%(unit)s)
+			WHERE NOT EXISTS (
+				SELECT 1 FROM ref.consumable_substance WHERE atc = %(atc)s
+			)
+		RETURNING pk"""
+	rows, idx = gmPG2.run_rw_queries(queries = [{'cmd': cmd, 'args': args}], return_data = True, get_col_idx = False)
+	if len(rows) == 0:
+		cmd = u"SELECT pk FROM ref.consumable_substance WHERE atc = %(atc)s LIMIT 1"
+		rows, idx = gmPG2.run_ro_queries(queries = [{'cmd': cmd, 'args': args}])
+
+	return cConsumableSubstance(aPK_obj = rows[0]['pk'])
+
 #------------------------------------------------------------
 def delete_consumable_substance(substance=None):
 	args = {'pk': substance}
@@ -1703,6 +1766,301 @@ class cSubstanceMatchProvider(gmMatchProvider.cMatchProvider_SQL2):
 
 		return self._find_matches(fragment_condition)
 
+#------------------------------------------------------------
+class cBrandOrSubstanceMatchProvider(gmMatchProvider.cMatchProvider_SQL2):
+
+	# by brand name
+	_query_brand_by_name = u"""
+		SELECT
+			ARRAY[1, pk]::INTEGER[]
+				AS data,
+			(description || ' (' || preparation || ')' || coalesce(' [' || atc_code || ']', ''))
+				AS list_label,
+			(description || ' (' || preparation || ')' || coalesce(' [' || atc_code || ']', ''))
+				AS field_label,
+			1 AS rank
+		FROM ref.branded_drug
+		WHERE description %(fragment_condition)s
+		LIMIT 50
+	"""
+	_query_brand_by_name_and_strength = u"""
+		SELECT
+			ARRAY[1, pk_brand]::INTEGER[]
+				AS data,
+			(brand || ' (' || preparation || %s || amount || unit || ' ' || substance || ')' || coalesce(' [' || atc_brand || ']', ''))
+				AS list_label,
+			(brand || ' (' || preparation || %s || amount || unit || ' ' || substance || ')' || coalesce(' [' || atc_brand || ']', ''))
+				AS field_label,
+			1 AS rank
+		FROM
+			(SELECT *, brand AS description FROM ref.v_drug_components) AS _components
+		WHERE %%(fragment_condition)s
+		LIMIT 50
+	""" % (
+		_('w/'),
+		_('w/')
+	)
+
+	# by component
+	_query_component_by_name = u"""
+		SELECT
+			ARRAY[3, r_vdc1.pk_component]::INTEGER[]
+				AS data,
+			(r_vdc1.substance || ' ' || r_vdc1.amount || r_vdc1.unit || ' ' || r_vdc1.preparation || ' ('
+				|| r_vdc1.brand || ' ['
+					|| (
+						SELECT array_to_string(array_agg(r_vdc2.amount), ' / ')
+						FROM ref.v_drug_components r_vdc2
+						WHERE r_vdc2.pk_brand = r_vdc1.pk_brand
+					)
+				|| ']'
+			|| ')'
+			)	AS field_label,
+			(r_vdc1.substance || ' ' || r_vdc1.amount || r_vdc1.unit || ' ' || r_vdc1.preparation || ' ('
+				|| r_vdc1.brand || ' ['
+					|| (
+						SELECT array_to_string(array_agg(r_vdc2.amount), ' / ')
+						FROM ref.v_drug_components r_vdc2
+						WHERE r_vdc2.pk_brand = r_vdc1.pk_brand
+					)
+				|| ']'
+			|| ')'
+			)	AS list_label,
+			1 AS rank
+		FROM
+			(SELECT *, brand AS description FROM ref.v_drug_components) AS r_vdc1
+		WHERE
+			r_vdc1.substance %(fragment_condition)s
+		LIMIT 50"""
+	_query_component_by_name_and_strength = u"""
+		SELECT
+			ARRAY[3, r_vdc1.pk_component]::INTEGER[]
+				AS data,
+			(r_vdc1.substance || ' ' || r_vdc1.amount || r_vdc1.unit || ' ' || r_vdc1.preparation || ' ('
+				|| r_vdc1.brand || ' ['
+					|| (
+						SELECT array_to_string(array_agg(r_vdc2.amount), ' / ')
+						FROM ref.v_drug_components r_vdc2
+						WHERE r_vdc2.pk_brand = r_vdc1.pk_brand
+					)
+				|| ']'
+			|| ')'
+			)	AS field_label,
+			(r_vdc1.substance || ' ' || r_vdc1.amount || r_vdc1.unit || ' ' || r_vdc1.preparation || ' ('
+				|| r_vdc1.brand || ' ['
+					|| (
+						SELECT array_to_string(array_agg(r_vdc2.amount), ' / ')
+						FROM ref.v_drug_components r_vdc2
+						WHERE r_vdc2.pk_brand = r_vdc1.pk_brand
+					)
+				|| ']'
+			|| ')'
+			)	AS list_label,
+			1 AS rank
+		FROM (SELECT *, substance AS description FROM ref.v_drug_components) AS r_vdc1
+		WHERE
+			%(fragment_condition)s
+		ORDER BY list_label
+		LIMIT 50"""
+
+	# by substance name
+	_query_substance_by_name = u"""
+		SELECT
+			data,
+			field_label,
+			list_label,
+			rank
+		FROM ((
+			-- first: substance intakes which match, because we tend to reuse them often
+			SELECT
+				ARRAY[2, pk_substance]::INTEGER[] AS data,
+				(description || ' ' || amount || ' ' || unit) AS field_label,
+				(description || ' ' || amount || ' ' || unit || ' (%s)') AS list_label,
+				1 AS rank
+			FROM (
+				SELECT DISTINCT ON (description, amount, unit)
+					pk_substance,
+					substance AS description,
+					amount,
+					unit
+				FROM clin.v_nonbrand_intakes
+			) AS normalized_intakes
+			WHERE description %%(fragment_condition)s
+
+		) UNION ALL (
+
+			-- second: consumable substances which match but are not intakes
+			SELECT
+				ARRAY[2, pk]::INTEGER[] AS data,
+				(description || ' ' || amount || ' ' || unit) AS field_label,
+				(description || ' ' || amount || ' ' || unit) AS list_label,
+				2 AS rank
+			FROM ref.consumable_substance
+			WHERE
+				description %%(fragment_condition)s
+					AND
+				pk NOT IN (
+					SELECT fk_substance
+					FROM clin.substance_intake
+					WHERE fk_substance IS NOT NULL
+				)
+		)) AS candidates
+		--ORDER BY rank, list_label
+		LIMIT 50""" % _('in use')
+	_query_substance_by_name_and_strength = 	u"""
+		SELECT
+			data,
+			field_label,
+			list_label,
+			rank
+		FROM ((
+			SELECT
+				ARRAY[2, pk_substance]::INTEGER[] AS data,
+				(description || ' ' || amount || ' ' || unit) AS field_label,
+				(description || ' ' || amount || ' ' || unit || ' (%s)') AS list_label,
+				1 AS rank
+			FROM (
+				SELECT DISTINCT ON (description, amount, unit)
+					pk_substance,
+					substance AS description,
+					amount,
+					unit
+				FROM clin.v_nonbrand_intakes
+			) AS normalized_intakes
+			WHERE
+				%%(fragment_condition)s
+
+		) UNION ALL (
+
+			-- matching substances which are not in intakes
+			SELECT
+				ARRAY[2, pk]::INTEGER[] AS data,
+				(description || ' ' || amount || ' ' || unit) AS field_label,
+				(description || ' ' || amount || ' ' || unit) AS list_label,
+				2 AS rank
+			FROM ref.consumable_substance
+			WHERE
+				%%(fragment_condition)s
+					AND
+				pk NOT IN (
+					SELECT fk_substance
+					FROM clin.substance_intake
+					WHERE fk_substance IS NOT NULL
+				)
+		)) AS candidates
+		--ORDER BY rank, list_label
+		LIMIT 50""" % _('in use')
+
+	_pattern = regex.compile(r'^\D+\s*\d+$', regex.UNICODE | regex.LOCALE)
+
+	_master_query = u"""
+		SELECT
+			data, field_label, list_label, rank
+		FROM ((%s) UNION (%s) UNION (%s))
+			AS _union
+		ORDER BY rank, list_label
+		LIMIT 50
+	"""
+	#--------------------------------------------------------
+	def getMatchesByPhrase(self, aFragment):
+		"""Return matches for aFragment at start of phrases."""
+
+		if cBrandOrSubstanceMatchProvider._pattern.match(aFragment):
+			self._queries = [
+				cBrandOrSubstanceMatchProvider._master_query % (
+					cBrandOrSubstanceMatchProvider._query_brand_by_name_and_strength,
+					cBrandOrSubstanceMatchProvider._query_substance_by_name_and_strength,
+					cBrandOrSubstanceMatchProvider._query_component_by_name_and_strength
+				)
+			]
+			#self._queries = [cBrandOrSubstanceMatchProvider._query_substance_by_name_and_strength]
+			fragment_condition = """description ILIKE %(desc)s
+				AND
+			amount::text ILIKE %(amount)s"""
+			self._args['desc'] = u'%s%%' % regex.sub(r'\s*\d+$', u'', aFragment)
+			self._args['amount'] = u'%s%%' % regex.sub(r'^\D+\s*', u'', aFragment)
+		else:
+			self._queries = [
+				cBrandOrSubstanceMatchProvider._master_query % (
+					cBrandOrSubstanceMatchProvider._query_brand_by_name,
+					cBrandOrSubstanceMatchProvider._query_substance_by_name,
+					cBrandOrSubstanceMatchProvider._query_component_by_name
+				)
+			]
+			#self._queries = [cBrandOrSubstanceMatchProvider._query_substance_by_name]
+			fragment_condition = u"ILIKE %(fragment)s"
+			self._args['fragment'] = u"%s%%" % aFragment
+
+		return self._find_matches(fragment_condition)
+	#--------------------------------------------------------
+	def getMatchesByWord(self, aFragment):
+		"""Return matches for aFragment at start of words inside phrases."""
+
+		if cBrandOrSubstanceMatchProvider._pattern.match(aFragment):
+			self._queries = [
+				cBrandOrSubstanceMatchProvider._master_query % (
+					cBrandOrSubstanceMatchProvider._query_brand_by_name_and_strength,
+					cBrandOrSubstanceMatchProvider._query_substance_by_name_and_strength,
+					cBrandOrSubstanceMatchProvider._query_component_by_name_and_strength
+				)
+			]
+			#self._queries = [cBrandOrSubstanceMatchProvider._query_substance_by_name_and_strength]
+
+			desc = regex.sub(r'\s*\d+$', u'', aFragment)
+			desc = gmPG2.sanitize_pg_regex(expression = desc, escape_all = False)
+
+			fragment_condition = """description ~* %(desc)s
+				AND
+			amount::text ILIKE %(amount)s"""
+
+			self._args['desc'] = u"( %s)|(^%s)" % (desc, desc)
+			self._args['amount'] = u'%s%%' % regex.sub(r'^\D+\s*', u'', aFragment)
+		else:
+			self._queries = [
+				cBrandOrSubstanceMatchProvider._master_query % (
+					cBrandOrSubstanceMatchProvider._query_brand_by_name,
+					cBrandOrSubstanceMatchProvider._query_substance_by_name,
+					cBrandOrSubstanceMatchProvider._query_component_by_name
+				)
+			]
+			#self._queries = [cBrandOrSubstanceMatchProvider._query_substance_by_name]
+			fragment_condition = u"~* %(fragment)s"
+			aFragment = gmPG2.sanitize_pg_regex(expression = aFragment, escape_all = False)
+			self._args['fragment'] = u"( %s)|(^%s)" % (aFragment, aFragment)
+
+		return self._find_matches(fragment_condition)
+	#--------------------------------------------------------
+	def getMatchesBySubstr(self, aFragment):
+		"""Return matches for aFragment as a true substring."""
+
+		if cBrandOrSubstanceMatchProvider._pattern.match(aFragment):
+			self._queries = [
+				cBrandOrSubstanceMatchProvider._master_query % (
+					cBrandOrSubstanceMatchProvider._query_brand_by_name_and_strength,
+					cBrandOrSubstanceMatchProvider._query_substance_by_name_and_strength,
+					cBrandOrSubstanceMatchProvider._query_component_by_name_and_strength
+				)
+			]
+			#self._queries = [cBrandOrSubstanceMatchProvider._query_substance_by_name_and_strength]
+			fragment_condition = """description ILIKE %(desc)s
+				AND
+			amount::text ILIKE %(amount)s"""
+			self._args['desc'] = u'%%%s%%' % regex.sub(r'\s*\d+$', u'', aFragment)
+			self._args['amount'] = u'%s%%' % regex.sub(r'^\D+\s*', u'', aFragment)
+		else:
+			self._queries = [
+				cBrandOrSubstanceMatchProvider._master_query % (
+					cBrandOrSubstanceMatchProvider._query_brand_by_name,
+					cBrandOrSubstanceMatchProvider._query_substance_by_name,
+					cBrandOrSubstanceMatchProvider._query_component_by_name
+				)
+			]
+			#self._queries = [cBrandOrSubstanceMatchProvider._query_substance_by_name]
+			fragment_condition = u"ILIKE %(fragment)s"
+			self._args['fragment'] = u"%%%s%%" % aFragment
+
+		return self._find_matches(fragment_condition)
+
 #============================================================
 class cSubstanceIntakeEntry(gmBusinessDBObject.cBusinessDBObject):
 	"""Represents a substance currently taken by a patient."""
@@ -1710,14 +2068,27 @@ class cSubstanceIntakeEntry(gmBusinessDBObject.cBusinessDBObject):
 	_cmd_fetch_payload = u"SELECT * FROM clin.v_substance_intakes WHERE pk_substance_intake = %s"
 	_cmds_store_payload = [
 		u"""UPDATE clin.substance_intake SET
-				clin_when = %(started)s,
+				-- if .comment_on_start = '?' then .started will be mapped to NULL
+				-- in the view, also, .started CANNOT be NULL any other way so far,
+				-- so do not attempt to set .clin_when if .started is NULL
+				clin_when = (
+					CASE
+						WHEN %(started)s IS NULL THEN clin_when
+						ELSE %(started)s
+					END
+				)::timestamp with time zone,
+				comment_on_start = gm.nullify_empty_string(%(comment_on_start)s),
 				discontinued = %(discontinued)s,
 				discontinue_reason = gm.nullify_empty_string(%(discontinue_reason)s),
 				schedule = gm.nullify_empty_string(%(schedule)s),
 				aim = gm.nullify_empty_string(%(aim)s),
 				narrative = gm.nullify_empty_string(%(notes)s),
 				intake_is_approved_of = %(intake_is_approved_of)s,
+				harmful_use_type = %(harmful_use_type)s,
 				fk_episode = %(pk_episode)s,
+				-- only used to document "last checked" such that
+				-- .clin_when -> .started does not have to change meaning
+				fk_encounter = %(pk_encounter)s,
 
 				preparation = (
 					case
@@ -1753,6 +2124,7 @@ class cSubstanceIntakeEntry(gmBusinessDBObject.cBusinessDBObject):
 	]
 	_updatable_fields = [
 		u'started',
+		u'comment_on_start',
 		u'discontinued',
 		u'discontinue_reason',
 		u'preparation',
@@ -1762,21 +2134,51 @@ class cSubstanceIntakeEntry(gmBusinessDBObject.cBusinessDBObject):
 		u'aim',
 		u'is_long_term',
 		u'notes',
-		u'pk_episode'
+		u'pk_episode',
+		u'pk_encounter',
+		u'harmful_use_type'
 	]
+
+	#--------------------------------------------------------
+	def format_maximum_information(self, patient=None):
+		return self.format (
+			single_line = False,
+			show_all_brand_components = True,
+			include_metadata = True,
+			date_format = '%Y %b %d'
+		).split(u'\n')
+
 	#--------------------------------------------------------
-	def format(self, left_margin=0, date_format='%Y %b %d', one_line=True, allergy=None, show_all_brand_components=False):
-		if one_line:
-			return self.format_as_one_line(left_margin = left_margin, date_format = date_format)
+	def format(self, left_margin=0, date_format='%Y %b %d', single_line=True, allergy=None, show_all_brand_components=False, include_metadata=True):
 
-		return self.format_as_multiple_lines (
-			left_margin = left_margin,
-			date_format = date_format,
-			allergy = allergy,
-			show_all_brand_components = show_all_brand_components
+		# medication
+		if self._payload[self._idx['harmful_use_type']] is None:
+			if single_line:
+				return self.format_as_single_line(left_margin = left_margin, date_format = date_format)
+			return self.format_as_multiple_lines (
+				left_margin = left_margin,
+				date_format = date_format,
+				allergy = allergy,
+				show_all_brand_components = show_all_brand_components
+			)
+
+		# abuse
+		if single_line:
+			return self.format_as_single_line_abuse(left_margin = left_margin, date_format = date_format)
+
+		return self.format_as_multiple_lines_abuse(left_margin = left_margin, date_format = date_format, include_metadata = include_metadata)
+
+	#--------------------------------------------------------
+	def format_as_single_line_abuse(self, left_margin=0, date_format='%Y %b %d'):
+		return u'%s%s: %s (%s)' % (
+			u' ' * left_margin,
+			self._payload[self._idx['substance']],
+			self.harmful_use_type_string,
+			gmDateTime.pydt_strftime(self._payload[self._idx['last_checked_when']], '%b %Y')
 		)
+
 	#--------------------------------------------------------
-	def format_as_one_line(self, left_margin=0, date_format='%Y %b %d'):
+	def format_as_single_line(self, left_margin=0, date_format='%Y %b %d'):
 
 		if self._payload[self._idx['is_currently_active']]:
 			if self._payload[self._idx['duration']] is None:
@@ -1797,7 +2199,7 @@ class cSubstanceIntakeEntry(gmBusinessDBObject.cBusinessDBObject):
 		line = u'%s%s (%s %s): %s %s%s %s (%s)' % (
 			u' ' * left_margin,
 			self.medically_formatted_start,
-			gmTools.u_right_arrow,
+			gmTools.u_arrow2right,
 			duration,
 			self._payload[self._idx['substance']],
 			self._payload[self._idx['amount']],
@@ -1807,6 +2209,39 @@ class cSubstanceIntakeEntry(gmBusinessDBObject.cBusinessDBObject):
 		)
 
 		return line
+
+	#--------------------------------------------------------
+	def format_as_multiple_lines_abuse(self, left_margin=0, date_format='%Y %b %d', include_metadata=True):
+
+		txt = u''
+		if include_metadata:
+			txt = _('Substance abuse entry                                              [#%s]\n') % self._payload[self._idx['pk_substance_intake']]
+		txt += u' ' + _('Substance: %s [#%s]%s\n') % (
+			self._payload[self._idx['substance']],
+			self._payload[self._idx['pk_substance']],
+			gmTools.coalesce(self._payload[self._idx['atc_substance']], u'', ' ATC %s')
+		)
+		txt += u' ' + _('Use type: %s\n') % self.harmful_use_type_string
+		txt += u' ' + _('Last checked: %s\n') % gmDateTime.pydt_strftime(self._payload[self._idx['last_checked_when']], '%Y %b %d')
+		if self._payload[self._idx['discontinued']] is not None:
+			txt += _(' Discontinued %s\n') % (
+				gmDateTime.pydt_strftime (
+					self._payload[self._idx['discontinued']],
+					format = date_format,
+					accuracy = gmDateTime.acc_days
+				)
+			)
+		txt += gmTools.coalesce(self._payload[self._idx['notes']], u'', _(' Notes: %s\n'))
+		if include_metadata:
+			txt += u'\n'
+			txt += _(u'Revision: #%(row_ver)s, %(mod_when)s by %(mod_by)s.') % {
+				'row_ver': self._payload[self._idx['row_version']],
+				'mod_when': gmDateTime.pydt_strftime(self._payload[self._idx['modified_when']]),
+				'mod_by': self._payload[self._idx['modified_by']]
+			}
+
+		return txt
+
 	#--------------------------------------------------------
 	def format_as_multiple_lines(self, left_margin=0, date_format='%Y %b %d', allergy=None, show_all_brand_components=False):
 
@@ -1868,12 +2303,12 @@ class cSubstanceIntakeEntry(gmBusinessDBObject.cBusinessDBObject):
 		txt += gmTools.coalesce(self._payload[self._idx['schedule']], u'', _(' Regimen: %s\n'))
 
 		if self._payload[self._idx['is_long_term']]:
-			duration = u' %s %s' % (gmTools.u_right_arrow, gmTools.u_infinity)
+			duration = u' %s %s' % (gmTools.u_arrow2right, gmTools.u_infinity)
 		else:
 			if self._payload[self._idx['duration']] is None:
 				duration = u''
 			else:
-				duration = u' %s %s' % (gmTools.u_right_arrow, gmDateTime.format_interval(self._payload[self._idx['duration']], gmDateTime.acc_days))
+				duration = u' %s %s' % (gmTools.u_arrow2right, gmDateTime.format_interval(self._payload[self._idx['duration']], gmDateTime.acc_days))
 
 		txt += _(' Started %s%s%s\n') % (
 			self.medically_formatted_start,
@@ -1889,7 +2324,7 @@ class cSubstanceIntakeEntry(gmBusinessDBObject.cBusinessDBObject):
 					accuracy = gmDateTime.acc_days
 				)
 			)
-			txt += _(' Reason: %s\n') % self._payload[self._idx['discontinue_reason']]
+			txt += gmTools.coalesce(self._payload[self._idx['discontinue_reason']], u'', _(' Reason: %s\n'))
 
 		txt += u'\n'
 
@@ -1907,6 +2342,7 @@ class cSubstanceIntakeEntry(gmBusinessDBObject.cBusinessDBObject):
 		}
 
 		return txt
+
 	#--------------------------------------------------------
 	def turn_into_allergy(self, encounter_id=None, allergy_type='allergy'):
 		allg = gmAllergy.create_allergy (
@@ -1936,8 +2372,28 @@ class cSubstanceIntakeEntry(gmBusinessDBObject.cBusinessDBObject):
 		allg.save()
 		return allg
 	#--------------------------------------------------------
+	def delete(self):
+		return delete_substance_intake(substance = self._payload[self._idx['pk_substance_intake']])
+
+	#--------------------------------------------------------
 	# properties
 	#--------------------------------------------------------
+	def _get_harmful_use_type_string(self):
+
+		if self._payload[self._idx['harmful_use_type']] is None:
+			return _('medication, not abuse')
+		if self._payload[self._idx['harmful_use_type']] == 0:
+			return _('no or non-harmful use')
+		if self._payload[self._idx['harmful_use_type']] == 1:
+			return _('presently harmful use')
+		if self._payload[self._idx['harmful_use_type']] == 2:
+			return _('presently addicted')
+		if self._payload[self._idx['harmful_use_type']] == 3:
+			return _('previously addicted')
+
+	harmful_use_type_string = property(_get_harmful_use_type_string)
+
+	#--------------------------------------------------------
 	def _get_external_code(self):
 		drug = self.containing_drug
 
@@ -1967,33 +2423,166 @@ class cSubstanceIntakeEntry(gmBusinessDBObject.cBusinessDBObject):
 	containing_drug = property(_get_containing_drug, lambda x:x)
 	#--------------------------------------------------------
 	def _get_medically_formatted_start(self):
-		if self._payload[self._idx['started']] is None:
-			return u''
+		if self._payload[self._idx['comment_on_start']] == u'?':
+			return u'?'
+
+		start_prefix = u''
+		if self._payload[self._idx['comment_on_start']] is not None:
+			start_prefix = gmTools.u_almost_equal_to
 
 		duration_taken = gmDateTime.pydt_now_here() - self._payload[self._idx['started']]
 
 		three_months = pydt.timedelta(weeks = 13, days = 3)
 		if duration_taken < three_months:
-			return _('%s: %s ago') % (
+			return _('%s%s: %s ago%s') % (
+				start_prefix,
 				gmDateTime.pydt_strftime(self._payload[self._idx['started']], '%Y %b %d', u'utf8', gmDateTime.acc_days),
-				gmDateTime.format_interval_medically(duration_taken)
+				gmDateTime.format_interval_medically(duration_taken),
+				gmTools.coalesce(self._payload[self._idx['comment_on_start']], u'', u' (%s)')
 			)
 
 		five_years = pydt.timedelta(weeks = 265)
 		if duration_taken < five_years:
-			return _('%s: %s ago (%s)') % (
+			return _('%s%s: %s ago (%s)') % (
+				start_prefix,
 				gmDateTime.pydt_strftime(self._payload[self._idx['started']], '%Y %b', u'utf8', gmDateTime.acc_months),
 				gmDateTime.format_interval_medically(duration_taken),
-				gmDateTime.pydt_strftime(self._payload[self._idx['started']], '%b %d', u'utf8', gmDateTime.acc_days)
+				gmTools.coalesce (
+					self._payload[self._idx['comment_on_start']],
+					gmDateTime.pydt_strftime(self._payload[self._idx['started']], '%b %d', u'utf8', gmDateTime.acc_days),
+				)
 			)
 
-		return _('%s: %s ago (%s)') % (
+		return _('%s%s: %s ago (%s)') % (
+			start_prefix,
 			gmDateTime.pydt_strftime(self._payload[self._idx['started']], '%Y', u'utf8', gmDateTime.acc_years),
 			gmDateTime.format_interval_medically(duration_taken),
-			gmDateTime.pydt_strftime(self._payload[self._idx['started']], '%b %d', u'utf8', gmDateTime.acc_years)
+			gmTools.coalesce (
+				self._payload[self._idx['comment_on_start']],
+				gmDateTime.pydt_strftime(self._payload[self._idx['started']], '%b %d', u'utf8', gmDateTime.acc_days),
+			)
 		)
 
 	medically_formatted_start = property(_get_medically_formatted_start, lambda x:x)
+
+	#--------------------------------------------------------
+	def _get_medically_formatted_start_end(self):
+
+		now = gmDateTime.pydt_now_here()
+
+		if self._payload[self._idx['comment_on_start']] is None:
+			start_prefix = u''
+		else:
+			start_prefix = gmTools.u_almost_equal_to
+
+		# ongoing medication
+		if self._payload[self._idx['discontinued']] is None:
+			# calculate start string
+			if self._payload[self._idx['started']] is None:
+				start = gmTools.coalesce(self._payload[self._idx['comment_on_start']], u'?')
+			else:
+				started_ago = now - self._payload[self._idx['started']]
+				three_months = pydt.timedelta(weeks = 13, days = 3)
+				five_years = pydt.timedelta(weeks = 265)
+				if started_ago < three_months:
+					start = _('%s%s%s (%s ago)') % (
+						start_prefix,
+						gmDateTime.pydt_strftime(self._payload[self._idx['started']], format = '%Y %b %d', encoding = u'utf8', accuracy = gmDateTime.acc_days),
+						gmTools.coalesce(self._payload[self._idx['comment_on_start']], u'', u' [%s]'),
+						gmDateTime.format_interval_medically(started_ago)
+					)
+				elif started_ago < five_years:
+					start = _('%s%s%s (%s ago, %s)') % (
+						start_prefix,
+						gmDateTime.pydt_strftime(self._payload[self._idx['started']], '%Y %b', u'utf8', gmDateTime.acc_months),
+						gmTools.coalesce(self._payload[self._idx['comment_on_start']], u'', u' [%s]'),
+						gmDateTime.format_interval_medically(started_ago),
+						gmDateTime.pydt_strftime(self._payload[self._idx['started']], '%b %d', u'utf8', gmDateTime.acc_days)
+					)
+				else:
+					start = _('%s%s%s (%s ago, %s)') % (
+						start_prefix,
+						gmDateTime.pydt_strftime(self._payload[self._idx['started']], '%Y', u'utf8', gmDateTime.acc_years),
+						gmTools.coalesce(self._payload[self._idx['comment_on_start']], u'', u' [%s]'),
+						gmDateTime.format_interval_medically(started_ago),
+						gmDateTime.pydt_strftime(self._payload[self._idx['started']], '%b %d', u'utf8', gmDateTime.acc_days),
+					)
+
+			# calculate end string
+			if self._payload[self._idx['is_long_term']]:
+				end = u' %s %s' % (gmTools.u_arrow2right, gmTools.u_infinity)
+				if self._payload[self._idx['duration']] is not None:
+					duration = gmDateTime.format_interval(self._payload[self._idx['duration']], gmDateTime.acc_days)
+					if self._payload[self._idx['started']] is None:
+						planned_end_str = u''
+					else:
+						planned_end = self._payload[self._idx['started']] + self._payload[self._idx['duration']]
+						if planned_end < now:
+							planned_end_from_now_str = _(u'%s ago') % gmDateTime.format_interval(now - planned_end, gmDateTime.acc_days)
+						else:
+							planned_end_from_now_str = _(u'in %s') % gmDateTime.format_interval(planned_end - now, gmDateTime.acc_days)
+						planned_end_str = _(u', until %s (%s)') % (
+							gmDateTime.pydt_strftime(planned_end, '%Y %b %d', u'utf8', gmDateTime.acc_days),
+							planned_end_from_now_str
+						)
+					end += _(u' (planned for %s%s)') % (duration, planned_end_str)
+			else:
+				if self._payload[self._idx['duration']] is None:
+					end = u' %s ?' % gmTools.u_arrow2right
+				else:
+					duration = gmDateTime.format_interval(self._payload[self._idx['duration']], gmDateTime.acc_days)
+					if self._payload[self._idx['started']] is None:
+						planned_end_str = u''
+					else:
+						planned_end = self._payload[self._idx['started']] + self._payload[self._idx['duration']]
+						if planned_end < now:
+							planned_end_from_now_str = _(u'%s ago') % gmDateTime.format_interval(now - planned_end, gmDateTime.acc_days)
+						else:
+							planned_end_from_now_str = _(u'in %s') % gmDateTime.format_interval(planned_end - now, gmDateTime.acc_days)
+						planned_end_str = _(u', until %s (%s)') % (
+							gmDateTime.pydt_strftime(planned_end, '%Y %b %d', u'utf8', gmDateTime.acc_days),
+							planned_end_from_now_str
+						)
+					end = _(u', planned for %s%s') % (duration, planned_end_str)
+
+			txt = u'%s%s' % (start, end)
+
+		# stopped medication
+		else:
+			duration_taken = self._payload[self._idx['discontinued']] - self._payload[self._idx['started']]
+			if self._payload[self._idx['started']] is None:
+				start = gmTools.coalesce(self._payload[self._idx['comment_on_start']], u'?')
+			else:
+				start = u'%s%s%s' % (
+					start_prefix,
+					gmDateTime.pydt_strftime(self._payload[self._idx['started']], format = '%Y %b %d', encoding = u'utf8', accuracy = gmDateTime.acc_days),
+					gmTools.coalesce(self._payload[self._idx['comment_on_start']], u'', u' [%s]')
+				)
+			ended_ago = now - self._payload[self._idx['discontinued']]
+			txt = _(u'%s ago (for %s: %s %s %s)') % (
+				gmDateTime.format_interval_medically(ended_ago),
+				gmDateTime.format_interval_medically(duration_taken),
+				start,
+				gmTools.u_arrow2right,
+				gmDateTime.pydt_strftime(self._payload[self._idx['discontinued']], '%Y %b %d', u'utf8', gmDateTime.acc_days)
+			)
+
+		return txt
+
+	medically_formatted_start_end = property(_get_medically_formatted_start_end, lambda x:x)
+
+	#--------------------------------------------------------
+	def _get_as_amts_latex(self, strict=True):
+		return format_substance_intake_as_amts_latex(intake = self, strict=strict)
+
+	as_amts_latex = property(_get_as_amts_latex, lambda x:x)
+
+	#--------------------------------------------------------
+	def _get_as_amts_data(self, strict=True):
+		return format_substance_intake_as_amts_data(intake = self, strict = strict)
+
+	as_amts_data = property(_get_as_amts_data, lambda x:x)
+
 	#--------------------------------------------------------
 	def _get_parsed_schedule(self):
 		tests = [
@@ -2008,59 +2597,98 @@ class cSubstanceIntakeEntry(gmBusinessDBObject.cBusinessDBObject):
 		pattern = "^(\d\d|/\d|\d/\d|\d)[\s-]{1,5}\d{0,2}[\s-]{1,5}\d{0,2}[\s-]{1,5}\d{0,2}$"
 		for test in tests:
 			print test.strip(), ":", regex.match(pattern, test.strip())
+
 #------------------------------------------------------------
-def substance_intake_exists(pk_component=None, pk_substance=None, pk_identity=None):
-	args = {'comp': pk_component, 'subst': pk_substance, 'pat': pk_identity}
+def substance_intake_exists(pk_component=None, pk_substance=None, pk_identity=None, pk_brand=None):
 
-	where_clause = u"""
-		fk_encounter IN (
-			SELECT pk FROM clin.encounter WHERE fk_patient = %(pat)s
-		)
-			AND
-		"""
+	if [pk_substance, pk_component, pk_brand].count(None) != 2:
+		raise ValueError('only one of pk_substance, pk_component, and pk_brand can be non-NULL')
+
+	args = {
+		'comp': pk_component,
+		'subst': pk_substance,
+		'pat': pk_identity,
+		'brand': pk_brand
+	}
+
+	where_parts = [u'fk_encounter IN (SELECT pk FROM clin.encounter WHERE fk_patient = %(pat)s)']
 
 	if pk_substance is not None:
-		where_clause += u'fk_substance = %(subst)s'
+		where_parts.append(u'fk_substance = %(subst)s')
 	if pk_component is not None:
-		where_clause += u'fk_drug_component = %(comp)s'
+		where_parts.append(u'fk_drug_component = %(comp)s')
+	if pk_brand is not None:
+		where_parts.append(u'fk_drug_component IN (SELECT pk FROM ref.lnk_substance2brand WHERE fk_brand = %(brand)s)')
 
-	cmd = u"""SELECT exists (
-	SELECT 1 FROM clin.substance_intake
-	WHERE
-		%s
-	LIMIT 1
-	)""" % where_clause
+	cmd = u"""
+		SELECT EXISTS (
+			SELECT 1 FROM clin.substance_intake
+			WHERE
+				%s
+			LIMIT 1
+		)
+	""" % u'\nAND\n'.join(where_parts)
+
+	rows, idx = gmPG2.run_ro_queries(queries = [{'cmd': cmd, 'args': args}])
+	return rows[0][0]
+
+#------------------------------------------------------------
+def substance_intake_exists_by_atc(pk_identity=None, atc=None):
+
+	if (atc is None) or (pk_identity is None):
+		raise ValueError('atc and pk_identity cannot be None')
+
+	args = {
+		'pat': pk_identity,
+		'atc': atc
+	}
+	where_parts = [
+		u'pk_patient = %(pat)s',
+		u'((atc_substance = %(atc)s) OR (atc_brand = %(atc)s))'
+	]
+	cmd = u"""
+		SELECT EXISTS (
+			SELECT 1 FROM clin.v_substance_intakes
+			WHERE
+				%s
+			LIMIT 1
+		)
+	""" % u'\nAND\n'.join(where_parts)
 
 	rows, idx = gmPG2.run_ro_queries(queries = [{'cmd': cmd, 'args': args}])
 	return rows[0][0]
+
 #------------------------------------------------------------
-def create_substance_intake(pk_substance=None, pk_component=None, preparation=None, encounter=None, episode=None):
+def create_substance_intake(pk_substance=None, pk_component=None, preparation=None, encounter=None, episode=None, pk_brand=None):
+
+	if [pk_substance, pk_component, pk_brand].count(None) != 2:
+		raise ValueError('only one of pk_substance, pk_component, and pk_brand can be non-NULL')
 
 	args = {
 		'enc': encounter,
 		'epi': episode,
 		'comp': pk_component,
 		'subst': pk_substance,
+		'brand': pk_brand,
 		'prep': preparation
 	}
 
-	if pk_component is None:
+	if pk_brand is not None:
 		cmd = u"""
 			INSERT INTO clin.substance_intake (
 				fk_encounter,
 				fk_episode,
 				intake_is_approved_of,
-				fk_substance,
-				preparation
+				fk_drug_component
 			) VALUES (
 				%(enc)s,
 				%(epi)s,
 				False,
-				%(subst)s,
-				%(prep)s
+				(SELECT pk FROM ref.lnk_substance2brand WHERE fk_brand = %(brand)s LIMIT 1)
 			)
 			RETURNING pk"""
-	else:
+
+	if pk_component is not None:
 		cmd = u"""
 			INSERT INTO clin.substance_intake (
 				fk_encounter,
@@ -2075,6 +2703,23 @@ def create_substance_intake(pk_substance=None, pk_component=None, preparation=No
 			)
 			RETURNING pk"""
 
+	if pk_substance is not None:
+		cmd = u"""
+			INSERT INTO clin.substance_intake (
+				fk_encounter,
+				fk_episode,
+				intake_is_approved_of,
+				fk_substance,
+				preparation
+			) VALUES (
+				%(enc)s,
+				%(epi)s,
+				False,
+				%(subst)s,
+				%(prep)s
+			)
+			RETURNING pk"""
+
 	try:
 		rows, idx = gmPG2.run_rw_queries(queries = [{'cmd': cmd, 'args': args}], return_data = True)
 	except gmPG2.dbapi.InternalError, exc:
@@ -2088,18 +2733,301 @@ def create_substance_intake(pk_substance=None, pk_component=None, preparation=No
 		raise
 
 	return cSubstanceIntakeEntry(aPK_obj = rows[0][0])
+
 #------------------------------------------------------------
 def delete_substance_intake(substance=None):
-	cmd = u'delete from clin.substance_intake where pk = %(pk)s'
+	cmd = u'DELETE FROM clin.substance_intake WHERE pk = %(pk)s'
 	gmPG2.run_rw_queries(queries = [{'cmd': cmd, 'args': {'pk': substance}}])
+	return True
 
 #------------------------------------------------------------
+# AMTS formatting
+#------------------------------------------------------------
+def format_substance_intake_as_amts_latex(intake=None, strict=True):
+
+	_esc = gmTools.tex_escape_string
+
+	# %(contains)s & %(brand)s & %(amount)s%(unit)s & %(preparation)s & \multicolumn{4}{l|}{%(schedule)s} & Einheit & %(notes)s & %(aim)s \tabularnewline \hline
+	cells = []
+	if intake['pk_brand'] is None:
+		# components
+		if strict:
+			cells.append(_esc(intake['substance'][:80]))
+		else:
+			cells.append(_esc(intake['substance']))
+		# brand
+		cells.append(u'')
+		# Wirkstärke
+		cells.append(_esc(u'%s%s' % ((u'%s' % intake['amount']).replace(u'.', u','), intake['unit'])))
+	else:
+		# components
+		components = [ c.split('::') for c in intake.containing_drug['components'] ]
+		if len(components) > 3:
+			cells.append(_esc(u'WS-Kombi.'))
+		elif len(components) == 1:
+			c = components[0]
+			if strict:
+				cells.append(u'\\mbox{%s}' % _esc(c[0][:80]))
+			else:
+				cells.append(u'\\mbox{%s}' % _esc(c[0]))
+		else:
+			if strict:
+				cells.append(u'\\fontsize{10pt}{12pt}\selectfont %s ' % u'\\newline '.join([u'\\mbox{%s}' % _esc(c[0][:80]) for c in components]))
+			else:
+				cells.append(u'\\fontsize{10pt}{12pt}\selectfont %s ' % u'\\newline '.join([u'\\mbox{%s}' % _esc(c[0]) for c in components]))
+		# brand
+		if strict:
+			cells.append(_esc(intake['brand'][:50]))
+		else:
+			cells.append(_esc(intake['brand']))
+		# Wirkstärken
+		if len(components) > 3:
+			cells.append(u'')
+		elif len(components) == 1:
+			c = components[0]
+			if strict:
+				cells.append(_esc((u'%s%s' % ((u'%s' % c[1]).replace(u'.', u','), c[2]))[:11]))
+			else:
+				cells.append(_esc(u'%s%s' % ((u'%s' % c[1]).replace(u'.', u','), c[2])))
+		else:
+			if strict:
+				cells.append(u'\\fontsize{10pt}{12pt}\selectfont %s ' % u'\\newline\\ '.join([_esc((u'%s%s' % ((u'%s' % c[1]).replace(u'.', u','), c[2]))[:11]) for c in components]))
+			else:
+				cells.append(u'\\fontsize{10pt}{12pt}\selectfont %s ' % u'\\newline\\ '.join([_esc(u'%s%s' % ((u'%s' % c[1]).replace(u'.', u','), c[2])) for c in components]))
+	# preparation
+	if strict:
+		cells.append(_esc(intake['preparation'][:7]))
+	else:
+		cells.append(_esc(intake['preparation']))
+	# schedule - for now be simple - maybe later parse 1-1-1-1 etc
+	if intake['schedule'] is None:
+		cells.append(u'\\multicolumn{4}{p{3.2cm}|}{\\ }')
+	else:
+		# spec says [:20] but implementation guide says: never trim
+		if len(intake['schedule']) > 20:
+			cells.append(u'\\multicolumn{4}{>{\\RaggedRight}p{3.2cm}|}{\\fontsize{10pt}{12pt}\selectfont %s}' % _esc(intake['schedule']))
+		else:
+			cells.append(u'\\multicolumn{4}{>{\\RaggedRight}p{3.2cm}|}{%s}' % _esc(intake['schedule']))
+	# Einheit to take
+	cells.append(u'')#[:20]
+	# notes
+	if intake['notes'] is None:
+		cells.append(u' ')
+	else:
+		if strict:
+			cells.append(_esc(intake['notes'][:80]))
+		else:
+			cells.append(u'\\fontsize{10pt}{12pt}\selectfont %s ' % _esc(intake['notes']))
+	# aim
+	if intake['aim'] is None:
+		cells.append(u' ')
+	else:
+		if strict:
+			cells.append(_esc(intake['aim'][:50]))
+		else:
+			cells.append(u'\\fontsize{10pt}{12pt}\selectfont %s ' % _esc(intake['aim']))
+
+	table_row = u' & '.join(cells)
+	table_row += u'\\tabularnewline\n\\hline'
+
+	return table_row
+
+#------------------------------------------------------------
+def format_substance_intake_as_amts_data(intake=None, strict=True):
+
+	if not strict:
+		pass
+		# relax length checks
+
+	fields = []
+
+	if intake['pk_brand'] is None:
+		# components
+		fields.append(intake['substance'][:80])
+		# brand
+		fields.append(u'')
+		# Wirkstärke
+		fields.append((u'%s%s' % (intake['amount'], intake['unit']))[:11])
+	else:
+		# components
+		components = [ c.split('::') for c in intake.containing_drug['components'] ]
+		if len(components) > 3:
+			fields.append(u'WS-Kombi.')
+		elif len(components) == 1:
+			c = components[0]
+			fields.append(c[0][:80])
+		else:
+			fields.append(u'~'.join([c[0][:80] for c in components]))
+		# brand
+		fields.append(intake['brand'][:50])
+		# Wirkstärken
+		if len(components) > 3:
+			fields.append(u'')
+		elif len(components) == 1:
+			c = components[0]
+			fields.append((u'%s%s' % (c[1], c[2]))[:11])
+		else:
+			fields.append(u'~'.join([(u'%s%s' % (c[1], c[2]))[:11] for c in components]))
+	# preparation
+	fields.append(intake['preparation'][:7])
+	# schedule - for now be simple - maybe later parse 1-1-1-1 etc
+	fields.append(gmTools.coalesce(intake['schedule'], u'')[:20])
+	# Einheit to take
+	fields.append(u'')#[:20]
+	# notes
+	fields.append(gmTools.coalesce(intake['notes'], u'')[:80])
+	# aim
+	fields.append(gmTools.coalesce(intake['aim'], u'')[:50])
+
+	return u'|'.join(fields)
+
+#------------------------------------------------------------
+def calculate_amts_data_check_symbol(intakes=None):
+
+	# first char of generic substance or brand name
+	first_chars = []
+	for intake in intakes:
+		if intake['pk_brand'] is None:
+			first_chars.append(intake['substance'][0])
+		else:
+			first_chars.append(intake['brand'][0])
+
+	# add up_per page
+	val_sum = 0
+	for first_char in first_chars:
+		# ziffer: ascii+7
+		if first_char.isdigit():
+			val_sum += (ord(first_char) + 7)
+		# großbuchstabe: ascii
+		# kleinbuchstabe ascii(großbuchstabe)
+		if first_char.isalpha():
+			val_sum += ord(first_char.upper())
+		# other: 0
+
+	# get remainder of sum mod 36
+	tmp, remainder = divmod(val_sum, 36)
+	# 0-9 -> '0' - '9'
+	if remainder < 10:
+		return u'%s' % remainder
+	# 10-35 -> 'A' - 'Z'
+	return chr(remainder + 55)
+
+#------------------------------------------------------------
+def generate_amts_data_template_definition_file(work_dir=None, strict=True):
+
+	if not strict:
+		return __generate_enhanced_amts_data_template_definition_file(work_dir = work_dir)
+
+	amts_fields = [
+		u'MP',
+		u'020',	# Version
+		u'DE',	# Land
+		u'DE',	# Sprache
+		u'1',	# Zeichensatz 1 = Ext ASCII (fest) = ISO8859-1 = Latin1
+		u'$<today::%Y%m%d::8>$',
+		u'$<amts_page_idx::::1>$',				# to be set by code using the template
+		u'$<amts_total_pages::::1>$',			# to be set by code using the template
+		u'0',	# Zertifizierungsstatus
+
+		u'$<name::%(firstnames)s::45>$',
+		u'$<name::%(lastnames)s::45>$',
+		u'',	# Patienten-ID
+		u'$<date_of_birth::%Y%m%d::8>$',
+
+		u'$<<range_of::$<praxis::%(praxis)s,%(branch)s::>$,$<current_provider::::>$::30>>$',
+		u'$<praxis_address::%(street)s %(number)s %(subunit)s|%(postcode)s|%(urb)s::57>$',		# 55+2 because of 2 embedded "|"s
+		u'$<praxis_comm::workphone::20>$',
+		u'$<praxis_comm::email::80>$',
+
+		#u'264 $<allergy_state::::21>$',				# param 1, Allergien 25-4 (4 for "264 ", spec says max of 25)
+		u'264 Seite $<amts_total_pages::::1>$ unten',	# param 1, Allergien 25-4 (4 for "264 ", spec says max of 25)
+		u'', # param 2, not used currently
+		u'', # param 3, not used currently
+
+		# Medikationseinträge
+		u'$<amts_intakes_as_data::::9999999>$',
+
+		u'$<amts_check_symbol::::1>$',	# Prüfzeichen, value to be set by code using the template, *per page* !
+		u'#@',							# Endesymbol
+	]
+
+	amts_fname = gmTools.get_unique_filename (
+		prefix = 'gm2amts_data-',
+		suffix = '.txt',
+		tmp_dir = work_dir
+	)
+	amts_template = io.open(amts_fname, mode = 'wt', encoding = 'utf8')
+	amts_template.write(u'[form]\n')
+	amts_template.write(u'template = $template$\n')
+	amts_template.write(u'|'.join(amts_fields))
+	amts_template.write(u'\n')
+	amts_template.write(u'$template$\n')
+	amts_template.close()
+
+	return amts_fname
+
+#------------------------------------------------------------
+def __generate_enhanced_amts_data_template_definition_file(work_dir=None):
+
+	amts_fields = [
+		u'MP',
+		u'020',	# Version
+		u'DE',	# Land
+		u'DE',	# Sprache
+		u'1',	# Zeichensatz 1 = Ext ASCII (fest) = ISO8859-1 = Latin1
+		u'$<today::%Y%m%d::8>$',
+		u'1',	# idx of this page
+		u'1',	# total pages
+		u'0',	# Zertifizierungsstatus
+
+		u'$<name::%(firstnames)s::>$',
+		u'$<name::%(lastnames)s::>$',
+		u'',	# Patienten-ID
+		u'$<date_of_birth::%Y%m%d::8>$',
+
+		u'$<praxis::%(praxis)s,%(branch)s::>$,$<current_provider::::>$',
+		u'$<praxis_address::%(street)s %(number)s %(subunit)s::>$',
+		u'$<praxis_address::%(postcode)s::>$',
+		u'$<praxis_address::%(urb)s::>$',
+		u'$<praxis_comm::workphone::>$',
+		u'$<praxis_comm::email::>$',
+
+		#u'264 $<allergy_state::::>$', 					# param 1, Allergien
+		u'264 Seite 1 unten',							# param 1, Allergien
+		u'', # param 2, not used currently
+		u'', # param 3, not used currently
+
+		# Medikationseinträge
+		u'$<amts_intakes_as_data_enhanced::::>$',
+
+		u'$<amts_check_symbol::::1>$',	# Prüfzeichen, value to be set by code using the template, *per page* !
+		u'#@',							# Endesymbol
+	]
+
+	amts_fname = gmTools.get_unique_filename (
+		prefix = 'gm2amts_data-utf8-unabridged-',
+		suffix = '.txt',
+		tmp_dir = work_dir
+	)
+	amts_template = io.open(amts_fname, mode = 'wt', encoding = 'utf8')
+	amts_template.write(u'[form]\n')
+	amts_template.write(u'template = $template$\n')
+	amts_template.write(u'|'.join(amts_fields))
+	amts_template.write(u'\n')
+	amts_template.write(u'$template$\n')
+	amts_template.close()
+
+	return amts_fname
+
+#------------------------------------------------------------
+# other formatting
+#------------------------------------------------------------
 def format_substance_intake_notes(emr=None, output_format=u'latex', table_type=u'by-brand'):
 
 	tex = u'\\noindent %s\n' % _('Additional notes')
 	tex += u'%%%% requires "\\usepackage{longtable}"\n'
 	tex += u'%%%% requires "\\usepackage{tabu}"\n'
-	tex += u'\\noindent \\begin{longtabu} to \\textwidth {|X[,L]|l|X[,L]|}\n'
+	tex += u'\\noindent \\begin{longtabu} to \\textwidth {|X[,L]|r|X[,L]|}\n'
 	tex += u'\\hline\n'
 	tex += u'%s {\\scriptsize (%s)} & %s & %s \\tabularnewline \n' % (_('Substance'), _('Brand'), _('Strength'), _('Aim'))
 	tex += u'\\hline\n'
@@ -2107,7 +3035,7 @@ def format_substance_intake_notes(emr=None, output_format=u'latex', table_type=u
 	tex += u'%s\n'
 	tex += u'\\end{longtabu}\n'
 
-	current_meds = emr.get_current_substance_intakes (
+	current_meds = emr.get_current_medications (
 		include_inactive = False,
 		include_unapproved = False,
 		order_by = u'brand, substance'
@@ -2119,7 +3047,7 @@ def format_substance_intake_notes(emr=None, output_format=u'latex', table_type=u
 		if med['brand'] is None:
 			brand = u''
 		else:
-			brand = u': {\\tiny %s}' % gmTools.tex_escape_string(med['brand'])
+			brand = u'{\\small :} {\\tiny %s}' % gmTools.tex_escape_string(med['brand'])
 		if med['aim'] is None:
 			aim = u''
 		else:
@@ -2138,18 +3066,23 @@ def format_substance_intake_notes(emr=None, output_format=u'latex', table_type=u
 #------------------------------------------------------------
 def format_substance_intake(emr=None, output_format=u'latex', table_type=u'by-brand'):
 
-	tex = u'\\noindent %s {\\tiny (%s)\\par}\n' % (_('Medication list'), _('ordered by brand'))
-	tex += u'%%%% requires "\\usepackage{longtable}"\n'
-	tex += u'%%%% requires "\\usepackage{tabu}"\n'
-	tex += u'\\noindent \\begin{longtabu} to \\textwidth {|X[-1,L]|X[2.5,L]|}\n'
-	tex += u'\\hline\n'
-	tex += u'%s & %s \\tabularnewline \n' % (_('Drug'), _('Regimen / Advice'))
+	tex = u'\\noindent %s {\\tiny (%s)}\n' % (
+		gmTools.tex_escape_string(_('Medication list')),
+		gmTools.tex_escape_string(_('ordered by brand'))
+	)
+	tex += u'%% requires "\\usepackage{longtable}"\n'
+	tex += u'%% requires "\\usepackage{tabu}"\n'
+	tex += u'\\begin{longtabu} to \\textwidth {|X[-1,L]|X[2.5,L]|}\n'
 	tex += u'\\hline\n'
+	tex += u'%s & %s \\tabularnewline \n' % (
+		gmTools.tex_escape_string(_('Drug')),
+		gmTools.tex_escape_string(_('Regimen / Advice'))
+	)
 	tex += u'\\hline\n'
 	tex += u'%s\n'
 	tex += u'\\end{longtabu}\n'
 
-	current_meds = emr.get_current_substance_intakes (
+	current_meds = emr.get_current_medications (
 		include_inactive = False,
 		include_unapproved = False,
 		order_by = u'brand, substance'
@@ -2178,9 +3111,9 @@ def format_substance_intake(emr=None, output_format=u'latex', table_type=u'by-br
 	# create lines
 	already_seen = []
 	lines = []
-	line1_template = u'%s %s             & %s \\tabularnewline'
-	line2_template = u' {\\tiny %s\\par} & {\\scriptsize %s\\par} \\tabularnewline'
-	line3_template = u'                  & {\\scriptsize %s\\par} \\tabularnewline'
+	line1_template = u'\\rule{0pt}{3ex}{\\Large %s} %s & %s \\tabularnewline'
+	line2_template = u'{\\tiny %s}                     & {\\scriptsize %s} \\tabularnewline'
+	line3_template = u'                                & {\\scriptsize %s} \\tabularnewline'
 
 	for med in current_meds:
 		identifier = gmTools.coalesce(med['brand'], med['substance'])
@@ -2210,6 +3143,17 @@ def format_substance_intake(emr=None, output_format=u'latex', table_type=u'by-br
 
 	return tex % u'\n'.join(lines)
 
+#------------------------------------------------------------
+def create_default_medication_history_episode(pk_health_issue=None, encounter=None, link_obj=None):
+	return gmEMRStructItems.create_episode (
+		pk_health_issue = pk_health_issue,
+		episode_name = DEFAULT_MEDICATION_HISTORY_EPISODE,
+		is_open = False,
+		allow_dupes = False,
+		encounter = encounter,
+		link_obj = link_obj
+	)
+
 #============================================================
 _SQL_get_drug_components = u'SELECT * FROM ref.v_drug_components WHERE %s'
 
@@ -2240,6 +3184,48 @@ class cDrugComponent(gmBusinessDBObject.cBusinessDBObject):
 		u'pk_consumable_substance'
 	]
 	#--------------------------------------------------------
+	def format(self, left_margin=0):
+		lines = []
+		lines.append(u'%s %s%s' % (
+			self._payload[self._idx['substance']],
+			self._payload[self._idx['amount']],
+			self._payload[self._idx['unit']]
+		))
+		lines.append(_('Component of %s (%s)') % (
+			self._payload[self._idx['brand']],
+			self._payload[self._idx['preparation']]
+		))
+		if self._payload[self._idx['atc_substance']] is not None:
+			lines.append(_('ATC (substance): %s') % self._payload[self._idx['atc_substance']])
+		if self._payload[self._idx['atc_brand']] is not None:
+			lines.append(_('ATC (brand): %s') % self._payload[self._idx['atc_brand']])
+		if self._payload[self._idx['external_code_brand']] is not None:
+			lines.append(u'%s: %s' % (
+				self._payload[self._idx['external_code_type_brand']],
+				self._payload[self._idx['external_code_brand']]
+			))
+		if self._payload[self._idx['is_fake_brand']]:
+			lines.append(_('this is a component of a fake brand'))
+
+		return (u' ' * left_margin) + (u'\n' + (u' ' * left_margin)).join(lines)
+	#--------------------------------------------------------
+	def exists_as_intake(self, pk_patient=None):
+		return substance_intake_exists (
+			pk_component = self._payload[self._idx['pk_component']],
+			pk_identity = pk_patient
+		)
+
+	#--------------------------------------------------------
+	def turn_into_intake(self, emr=None, encounter=None, episode=None, preparation=None):
+		# preparation is ignored, only exists for uniformity with cConsumableSubstance
+		return create_substance_intake (
+			pk_component = self._payload[self._idx['pk_component']],
+			encounter = encounter,
+			episode = episode,
+			preparation = self._payload[self._idx['preparation']]
+		)
+
+	#--------------------------------------------------------
 	# properties
 	#--------------------------------------------------------
 	def _get_containing_drug(self):
@@ -2263,21 +3249,6 @@ def get_drug_components():
 	return [ cDrugComponent(row = {'data': r, 'idx': idx, 'pk_field': 'pk_component'}) for r in rows ]
 
 #------------------------------------------------------------
-_SQL_find_matching_drug_components_by_name = u"""
-SELECT
-	data,
-	field_label,
-	list_label,
-	rank
-FROM ((
-
-	) UNION ALL (
-
-	)) AS matches
-ORDER BY rank, list_label
-LIMIT 50"""
-
-
 class cDrugComponentMatchProvider(gmMatchProvider.cMatchProvider_SQL2):
 
 	_pattern = regex.compile(r'^\D+\s*\d+$', regex.UNICODE | regex.LOCALE)
@@ -2440,6 +3411,29 @@ class cBrandedDrug(gmBusinessDBObject.cBusinessDBObject):
 		u'pk_data_source'
 	]
 	#--------------------------------------------------------
+	def format(self, left_margin=0):
+		lines = []
+		lines.append(u'%s (%s)' % (
+			self._payload[self._idx['brand']],
+			self._payload[self._idx['preparation']]
+			)
+		)
+		if self._payload[self._idx['atc']] is not None:
+			lines.append(u'ATC: %s' % self._payload[self._idx['atc']])
+		if self._payload[self._idx['external_code']] is not None:
+			lines.append(u'%s: %s' % (self._payload[self._idx['external_code_type']], self._payload[self._idx['external_code']]))
+		if self._payload[self._idx['components']] is not None:
+			lines.append(_('Components:'))
+			for comp in self._payload[self._idx['components']]:
+				lines.append(u' ' + comp)
+		if self._payload[self._idx['is_fake_brand']]:
+			lines.append(u'')
+			lines.append(_('this is a fake brand'))
+		if self.is_vaccine:
+			lines.append(_('this is a vaccine'))
+
+		return (u' ' * left_margin) + (u'\n' + (u' ' * left_margin)).join(lines)
+	#--------------------------------------------------------
 	def save_payload(self, conn=None):
 		success, data = super(self.__class__, self).save_payload(conn = conn)
 
@@ -2567,6 +3561,23 @@ class cBrandedDrug(gmBusinessDBObject.cBusinessDBObject):
 
 		return True
 	#--------------------------------------------------------
+	def exists_as_intake(self, pk_patient=None):
+		return substance_intake_exists (
+			pk_brand = self._payload[self._idx['pk_brand']],
+			pk_identity = pk_patient
+		)
+
+	#--------------------------------------------------------
+	def turn_into_intake(self, emr=None, encounter=None, episode=None, preparation=None):
+		# preparation is ignored, only exists for uniformity with cConsumableSubstance
+		return create_substance_intake (
+			pk_brand = self._payload[self._idx['pk_brand']],
+			encounter = encounter,
+			episode = episode,
+			preparation = self._payload[self._idx['preparation']]
+		)
+
+	#--------------------------------------------------------
 	# properties
 	#--------------------------------------------------------
 	def _get_external_code(self):
@@ -2717,7 +3728,7 @@ if __name__ == "__main__":
 		sys.exit()
 
 	from Gnumed.pycommon import gmLog2
-	from Gnumed.pycommon import gmI18N
+	#from Gnumed.pycommon import gmI18N
 	from Gnumed.business import gmPerson
 
 	gmI18N.activate_locale()
@@ -2775,17 +3786,17 @@ if __name__ == "__main__":
 	# FreeDiams
 	#--------------------------------------------------------
 	def test_fd_switch_to():
-		gmPerson.set_active_patient(patient = gmPerson.cIdentity(aPK_obj = 12))
+		gmPerson.set_active_patient(patient = gmPerson.cPerson(aPK_obj = 12))
 		fd = cFreeDiamsInterface()
 		fd.patient = gmPerson.gmCurrentPatient()
 #		fd.switch_to_frontend(blocking = True)
 		fd.import_fd2gm_file_as_drugs(filename = sys.argv[2])
 	#--------------------------------------------------------
 	def test_fd_show_interactions():
-		gmPerson.set_active_patient(patient = gmPerson.cIdentity(aPK_obj = 12))
+		gmPerson.set_active_patient(patient = gmPerson.cPerson(aPK_obj = 12))
 		fd = cFreeDiamsInterface()
 		fd.patient = gmPerson.gmCurrentPatient()
-		fd.check_interactions(substances = fd.patient.get_emr().get_current_substance_intakes(include_unapproved = True))
+		fd.check_interactions(substances = fd.patient.get_emr().get_current_medications(include_unapproved = True))
 	#--------------------------------------------------------
 	# generic
 	#--------------------------------------------------------
@@ -2809,6 +3820,18 @@ if __name__ == "__main__":
 	def test_drug2renal_insufficiency_url():
 		drug2renal_insufficiency_url(search_term = 'Metoprolol')
 	#--------------------------------------------------------
+	def test_medically_formatted_start_end():
+		cmd = u"SELECT pk_substance_intake FROM clin.v_substance_intakes"
+		rows, idx = gmPG2.run_ro_queries(queries = [{'cmd': cmd}])
+		for row in rows:
+			entry = cSubstanceIntakeEntry(row['pk_substance_intake'])
+			print u'==============================================================='
+			print entry.format(left_margin = 1, single_line = False, show_all_brand_components = True)
+			print u'--------------------------------'
+			print entry.medically_formatted_start_end
+			gmTools.prompted_input()
+
+	#--------------------------------------------------------
 	# MMI/Gelbe Liste
 	#test_MMI_interface()
 	#test_MMI_file()
@@ -2818,7 +3841,7 @@ if __name__ == "__main__":
 	#test_mmi_import_drugs()
 
 	# FreeDiams
-	test_fd_switch_to()
+	#test_fd_switch_to()
 	#test_fd_show_interactions()
 
 	# generic
@@ -2828,4 +3851,4 @@ if __name__ == "__main__":
 	#test_get_consumable_substances()
 
 	#test_drug2renal_insufficiency_url()
-#============================================================
+	test_medically_formatted_start_end()
diff --git a/client/business/gmOrganization.py b/client/business/gmOrganization.py
index 83bdb40..b413260 100644
--- a/client/business/gmOrganization.py
+++ b/client/business/gmOrganization.py
@@ -81,6 +81,7 @@ class cOrg(gmBusinessDBObject.cBusinessDBObject):
 		return get_org_units(order_by = u'unit', org = self._payload[self._idx['pk_org']])
 
 	units = property(_get_units, lambda x:x)
+
 #------------------------------------------------------------
 def org_exists(organization=None, category=None, link_obj=None):
 	args = {'desc': organization, 'cat': category}
@@ -200,6 +201,9 @@ class cOrgUnit(gmBusinessDBObject.cBusinessDBObject):
 					'idx': idx
 				}) for r in rows
 			]
+
+	comm_channels = property(get_comm_channels, lambda x:x)
+
 	#--------------------------------------------------------
 	def link_comm_channel(self, comm_medium=None, url=None, is_confidential=False, pk_channel_type=None):
 		"""Link a communication medium with this org unit.
@@ -384,6 +388,7 @@ class cOrgUnit(gmBusinessDBObject.cBusinessDBObject):
 					gmTools.bool2subst(comm['is_confidential'], _(' (confidential)'), u'', u'')
 				))
 		return lines
+
 	#--------------------------------------------------------
 	# properties
 	#--------------------------------------------------------
@@ -397,6 +402,7 @@ class cOrgUnit(gmBusinessDBObject.cBusinessDBObject):
 		self.save()
 
 	address = property(_get_address, _set_address)
+
 	#--------------------------------------------------------
 	def _get_org(self):
 		return cOrg(aPK_obj = self._payload[self._idx['pk_org']])
@@ -405,6 +411,7 @@ class cOrgUnit(gmBusinessDBObject.cBusinessDBObject):
 	org = property(_get_org, lambda x:x)
 
 	comm_channels = property(get_comm_channels, lambda x:x)
+
 #------------------------------------------------------------
 def create_org_unit(pk_organization=None, unit=None, link_obj=None):
 	_log.debug(u'creating org unit [%s:%s]', unit, pk_organization)
@@ -519,7 +526,7 @@ def get_comm_channels_data_for_org_ids( idList):
 		return None 
 	m = {}
 	for (id_org, id_type, url) in result:
-		if not m.has_key(id_org):
+		if id_org not in m:
 			m[id_org] = []
 		m[id_org].append( (id_type, url) )
 
@@ -531,7 +538,7 @@ def get_address_data_for_org_ids( idList):
 	"""
 
 	ids = ", ".join( [ str(x) for x in idList]) 
-	cmd = """select l.id_org, number, street, city, postcode, state, country 
+	cmd = """select l.id_org, number, street, city, postcode, region, country 
 			from dem.v_basic_address v , dem.lnk_org2address l 
 				where v.addr_id = l.id_address and
 				l.id_org in ( select id from dem.org where id in (%s) ) """ % ids 
@@ -736,7 +743,7 @@ if __name__ == '__main__':
 
 		print """testing single level orgs"""
 		f = [ "name", "office", "subtype",  "memo", "category", "phone", "fax", "email","mobile"]
-		a = ["number", "street", "urb", "postcode", "state", "country"]
+		a = ["number", "street", "urb", "postcode", 'region', "country"]
 		h = cOrgImpl1()
 
 		h.set(*f1)
@@ -849,7 +856,7 @@ if __name__ == '__main__':
 			("""drop table del_org""", [])
 
 			]
-		result =  gmPG.run_commit("personalia", cmds) <> None
+		result = (gmPG.run_commit("personalia", cmds) is not None)
 
 		return result
 
@@ -929,7 +936,7 @@ if __name__ == '__main__':
 	def create_temp_categories( categories = ['hospital']):
 		print "NEED TO CREATE TEMPORARY ORG_CATEGORY.\n\n ** PLEASE ENTER administrator login  : e.g  user 'gm-dbo' and  his password"
 		#get a admin login
-		for i in xrange(0, 4):
+		for i in range(0, 4):
 			result ,tmplogin = login_admin_user()
 			if result:
 				break
@@ -980,7 +987,7 @@ if __name__ == '__main__':
 		Please enter login for administrator:
 		"""
 		if adminlogin is None:
-			for i in xrange(0, 4):
+			for i in range(0, 4):
 				result, adminlogin = login_admin_user()
 				if  result:
 					break
@@ -1012,7 +1019,7 @@ if __name__ == '__main__':
 
 		conn = None
 		p.ReleaseConnection(service)
-		if failed_remove <> []:
+		if failed_remove != []:
 			print "FAILED TO REMOVE ", failed_remove
 		return failed_remove
 
@@ -1214,7 +1221,7 @@ if __name__ == '__main__':
 		if result == categories:
 			print "Unable to create temporary org_category. Test aborted"
 			sys.exit(-1)
-		if result <> []:
+		if result != []:
 			print "UNABLE TO CREATE THESE CATEGORIES"
 			if not raw_input("Continue ?") in ['y', 'Y'] :
 				sys.exit(-1)
@@ -1245,7 +1252,7 @@ if __name__ == '__main__':
 
 			# cleanup after the test case
 		for (result , org) in results:
-			if not result and org.getId() <> None:
+			if not result and org.getId() is not None:
 				print "trying cleanup"
 				if  org.shallow_del(): print " 	may have succeeded"
 				else:
diff --git a/client/business/gmPathLab.py b/client/business/gmPathLab.py
index 5f9a458..513a673 100644
--- a/client/business/gmPathLab.py
+++ b/client/business/gmPathLab.py
@@ -9,7 +9,7 @@ __license__ = "GPL"
 import types
 import sys
 import logging
-import codecs
+import io
 import decimal
 import re as regex
 
@@ -21,6 +21,8 @@ from Gnumed.pycommon import gmDateTime
 if __name__ == '__main__':
 	from Gnumed.pycommon import gmLog2
 	from Gnumed.pycommon import gmI18N
+	gmI18N.activate_locale()
+	gmI18N.install_domain('gnumed')
 	gmDateTime.init()
 from Gnumed.pycommon import gmExceptions
 from Gnumed.pycommon import gmBusinessDBObject
@@ -331,13 +333,16 @@ class cTestPanel(gmBusinessDBObject.cBusinessDBObject):
 		return
 
 	generic_codes = property(_get_generic_codes, _set_generic_codes)
+
 	#--------------------------------------------------------
-	def get_most_recent_results(self, pk_patient=None, order_by=None):
+	def get_most_recent_results(self, pk_patient=None, order_by=None, group_by_meta_type=False):
 		return get_most_recent_results_for_panel (
 			pk_patient = pk_patient,
 			pk_panel = self._payload[self._idx['pk_test_panel']],
-			order_by = order_by
+			order_by = order_by,
+			group_by_meta_type = group_by_meta_type
 		)
+
 #------------------------------------------------------------
 def get_test_panels(order_by=None):
 	if order_by is None:
@@ -1888,7 +1893,7 @@ def get_test_results(pk_patient=None, encounters=None, episodes=None, order_by=N
 	return tests
 
 #------------------------------------------------------------
-def get_most_recent_results_for_panel(pk_patient=None, pk_panel=None, order_by=None):
+def get_most_recent_results_for_panel(pk_patient=None, pk_panel=None, order_by=None, group_by_meta_type=False):
 
 	if order_by is None:
 		order_by = u''
@@ -1899,7 +1904,36 @@ def get_most_recent_results_for_panel(pk_patient=None, pk_panel=None, order_by=N
 		'pat': pk_patient,
 		'pnl': pk_panel
 	}
-	cmd = u"""
+
+	if group_by_meta_type:
+		# return most recent results in panel grouped by
+		# meta test type if any, non-grouped results are
+		# returned ungrouped :-)
+		cmd = u"""
+			SELECT c_vtr.*
+			FROM (
+				-- max(clin_when) per test_type-in-panel for patient
+				SELECT
+					pk_meta_test_type,
+					MAX(clin_when) AS max_clin_when
+				FROM clin.v_test_results
+				WHERE
+					pk_patient = %(pat)s
+						AND
+					pk_meta_test_type IS DISTINCT FROM NULL
+						AND
+					pk_test_type = ANY (
+						(SELECT fk_test_types FROM clin.test_panel WHERE pk = %(pnl)s)::int[]
+					)
+				GROUP BY pk_meta_test_type
+			) AS latest_results
+				INNER JOIN clin.v_test_results c_vtr ON
+					c_vtr.pk_meta_test_type = latest_results.pk_meta_test_type
+						AND
+					c_vtr.clin_when = latest_results.max_clin_when
+
+		UNION ALL
+
 		SELECT c_vtr.*
 		FROM (
 			-- max(clin_when) per test_type-in-panel for patient
@@ -1908,16 +1942,52 @@ def get_most_recent_results_for_panel(pk_patient=None, pk_panel=None, order_by=N
 				MAX(clin_when) AS max_clin_when
 			FROM clin.v_test_results
 			WHERE
-				pk_patient = %%(pat)s
+				pk_patient = %(pat)s
+					AND
+				pk_meta_test_type IS NULL
 					AND
 				pk_test_type = ANY (
-					(SELECT fk_test_types FROM clin.test_panel WHERE pk = %%(pnl)s)::int[]
+					(SELECT fk_test_types FROM clin.test_panel WHERE pk = %(pnl)s)::int[]
 				)
 			GROUP BY pk_test_type
 		) AS latest_results
-			INNER JOIN clin.v_test_results c_vtr ON c_vtr.pk_test_type = latest_results.pk_test_type AND c_vtr.clin_when = latest_results.max_clin_when
-		%s
-	""" % order_by
+			INNER JOIN clin.v_test_results c_vtr ON
+				c_vtr.pk_test_type = latest_results.pk_test_type
+					AND
+				c_vtr.clin_when = latest_results.max_clin_when
+		"""
+	else:
+		# return most recent results in panel regardless of whether
+		# distinct test types in this panel are grouped under the
+		# same meta test type
+		cmd = u"""
+			SELECT c_vtr.*
+			FROM (
+				-- max(clin_when) per test_type-in-panel for patient
+				SELECT
+					pk_test_type,
+					MAX(clin_when) AS max_clin_when
+				FROM clin.v_test_results
+				WHERE
+					pk_patient = %(pat)s
+						AND
+					pk_test_type = ANY (
+						(SELECT fk_test_types FROM clin.test_panel WHERE pk = %(pnl)s)::int[]
+					)
+				GROUP BY pk_test_type
+			) AS latest_results
+				-- this INNER join makes certain we do not expand
+				-- the row selection beyond the patient's rows
+				-- which we constrained to inside the SELECT
+				-- producing "latest_results"
+				INNER JOIN clin.v_test_results c_vtr ON
+					c_vtr.pk_test_type = latest_results.pk_test_type
+						AND
+					c_vtr.clin_when = latest_results.max_clin_when
+			"""
+
+	cmd += order_by
+
 	rows, idx = gmPG2.run_ro_queries(queries = [{'cmd': cmd, 'args': args}], get_col_idx = True)
 	tests = [ cTestResult(row = {'pk_field': 'pk_test_result', 'idx': idx, 'data': r}) for r in rows ]
 	return tests
@@ -2306,7 +2376,7 @@ def export_results_for_gnuplot(results=None, filename=None, show_year=True):
 		except KeyError:
 			series[r['unified_name']] = [r]
 
-	gp_data = codecs.open(filename, 'wb', 'utf8')
+	gp_data = io.open(filename, mode = 'wt', encoding = 'utf8')
 
 	gp_data.write(u'# %s\n' % _('GNUmed test results export for Gnuplot plotting'))
 	gp_data.write(u'# -------------------------------------------------------------\n')
@@ -2484,10 +2554,11 @@ class cLabResult(gmBusinessDBObject.cBusinessDBObject):
 				vbp.firstnames,
 				vbp.lastnames,
 				vbp.dob
-			from v_basic_person vbp
-			where vbp.pk_identity=%%s""" % self._payload[self._idx['pk_patient']]
+			from v_active_persons vbp
+			where vbp.pk_identity = %%s""" % self._payload[self._idx['pk_patient']]
 		pat = gmPG.run_ro_query('historica', cmd, None, self._payload[self._idx['pk_patient']])
 		return pat[0]
+
 #============================================================
 class cLabRequest(gmBusinessDBObject.cBusinessDBObject):
 	"""Represents one lab request."""
@@ -2565,7 +2636,7 @@ class cLabRequest(gmBusinessDBObject.cBusinessDBObject):
 	def get_patient(self):
 		cmd = """
 			select vpi.pk_patient, vbp.title, vbp.firstnames, vbp.lastnames, vbp.dob
-			from v_pat_items vpi, v_basic_person vbp
+			from v_pat_items vpi, v_active_persons vbp
 			where
 				vpi.pk_item=%s
 					and
@@ -2578,6 +2649,7 @@ class cLabRequest(gmBusinessDBObject.cBusinessDBObject):
 			_log.error('no patient associated with lab request [%s]' % self._payload[self._idx['pk_item']])
 			return None
 		return pat[0]
+
 #============================================================
 # convenience functions
 #------------------------------------------------------------
@@ -2954,12 +3026,29 @@ if __name__ == '__main__':
 		print tp.format()
 	#--------------------------------------------------------
 	def test_get_most_recent_results_for_panel():
-		tp = cTestPanel(aPK_obj = 1)
+		#tp = cTestPanel(aPK_obj = 1)
+		tp = cTestPanel(aPK_obj = 3)
 		print tp.format()
-		print len(tp.get_most_recent_results(pk_patient=12))
+		#most_recent = tp.get_most_recent_results(pk_patient = 12, group_by_meta_type = False)
+		most_recent = tp.get_most_recent_results(pk_patient = 138, group_by_meta_type = False)
+		print len(most_recent)
+		#most_recent = tp.get_most_recent_results(pk_patient = 12, group_by_meta_type = True)
+		most_recent = tp.get_most_recent_results(pk_patient = 138, group_by_meta_type = True)
+		print len(most_recent)
+
+		return
+
+		for t in most_recent:
+			print '--------------'
+			if t['pk_meta_test_type'] is None:
+				print "standalone"
+			else:
+				print "meta"
+			print t.format()
+
 	#--------------------------------------------------------
 
-	test_result()
+	#test_result()
 	#test_create_test_result()
 	#test_delete_test_result()
 	#test_create_measurement_type()
@@ -2973,6 +3062,6 @@ if __name__ == '__main__':
 	#test_format_test_results()
 	#test_calculate_bmi()
 	#test_test_panel()
-	#test_get_most_recent_results_for_panel()
+	test_get_most_recent_results_for_panel()
 
 #============================================================
diff --git a/client/business/gmPerson.py b/client/business/gmPerson.py
index 9fb701d..09b91ab 100644
--- a/client/business/gmPerson.py
+++ b/client/business/gmPerson.py
@@ -14,7 +14,7 @@ import os.path
 import time
 import re as regex
 import datetime as pyDT
-import codecs
+import io
 import thread
 import threading
 import logging
@@ -48,6 +48,7 @@ from Gnumed.business import gmXdtMappings
 from Gnumed.business import gmProviderInbox
 from Gnumed.business import gmExportArea
 from Gnumed.business import gmBilling
+from Gnumed.business import gmAutoHints
 from Gnumed.business.gmDocuments import cDocumentFolder
 from Gnumed.business.gmChartPulling import tui_chart_puller
 
@@ -83,7 +84,7 @@ def external_id_exists(pk_issuer, value):
 	return rows[0][0]
 
 #============================================================
-def person_exists(lastnames, dob, firstnames=None):
+def person_exists(lastnames, dob, firstnames=None, active_only=True):
 	args = {
 		'last': lastnames,
 		'dob': dob
@@ -97,7 +98,10 @@ def person_exists(lastnames, dob, firstnames=None):
 			#where_parts.append(u"position(%(first)s in firstnames) = 1")
 			where_parts.append(u"firstnames ~* %(first)s")
 			args['first'] = u'\\m' + firstnames
-	cmd = u"""SELECT COUNT(1) FROM dem.v_basic_person WHERE %s""" % u' AND '.join(where_parts)
+	if active_only:
+		cmd = u"""SELECT COUNT(1) FROM dem.v_active_persons WHERE %s""" % u' AND '.join(where_parts)
+	else:
+		cmd = u"""SELECT COUNT(1) FROM dem.v_all_persons WHERE %s""" % u' AND '.join(where_parts)
 	rows, idx = gmPG2.run_ro_queries(queries = [{'cmd': cmd, 'args': args}], get_col_idx = False)
 	return rows[0][0]
 
@@ -203,9 +207,10 @@ class cDTO_person(object):
 			where_snippets.append(u'lower(gender) = lower(%(sex)s)')
 			args['sex'] = self.gender
 
+		# FIXME: allow disabled persons ?
 		cmd = u"""
 			SELECT *, '%s' AS match_type
-			FROM dem.v_basic_person
+			FROM dem.v_active_persons
 			WHERE
 				pk_identity IN (
 					SELECT pk_identity FROM dem.v_person_names WHERE %s
@@ -231,7 +236,7 @@ class cDTO_person(object):
 				return None
 			identities = [ident]
 		else:
-			identities = [ cIdentity(row = {'pk_field': 'pk_identity', 'data': row, 'idx': idx}) for row in rows ]
+			identities = [ cPerson(row = {'pk_field': 'pk_identity', 'data': row, 'idx': idx}) for row in rows ]
 
 		return identities
 	#--------------------------------------------------------
@@ -262,7 +267,7 @@ class cDTO_person(object):
 					issuer = ext_id['issuer'],
 					comment = ext_id['comment']
 				)
-			except StandardError:
+			except Exception:
 				_log.exception('cannot import <external ID> from external data source')
 				gmLog2.log_stack_trace()
 
@@ -272,7 +277,7 @@ class cDTO_person(object):
 					comm_medium = comm['channel'],
 					url = comm['url']
 				)
-			except StandardError:
+			except Exception:
 				_log.exception('cannot import <comm channel> from external data source')
 				gmLog2.log_stack_trace()
 
@@ -288,7 +293,7 @@ class cDTO_person(object):
 					region_code = adr['region_code'],
 					country_code = adr['country_code']
 				)
-			except StandardError:
+			except Exception:
 				_log.exception('cannot import <address> from external data source')
 				gmLog2.log_stack_trace()
 
@@ -440,18 +445,19 @@ class cPersonName(gmBusinessDBObject.cBusinessDBObject):
 	description = property(_get_description, lambda x:x)
 
 #============================================================
-class cIdentity(gmBusinessDBObject.cBusinessDBObject):
-	_cmd_fetch_payload = u"SELECT * FROM dem.v_basic_person WHERE pk_identity = %s"
+_SQL_get_active_person = u"SELECT * FROM dem.v_active_persons WHERE pk_identity = %s"
+_SQL_get_any_person = u"SELECT * FROM dem.v_all_persons WHERE pk_identity = %s"
+
+class cPerson(gmBusinessDBObject.cBusinessDBObject):
+	_cmd_fetch_payload = _SQL_get_any_person
 	_cmds_store_payload = [
 		u"""UPDATE dem.identity SET
 				gender = %(gender)s,
 				dob = %(dob)s,
 				dob_is_estimated = %(dob_is_estimated)s,
 				tob = %(tob)s,
-				cob = gm.nullify_empty_string(%(cob)s),
 				title = gm.nullify_empty_string(%(title)s),
 				fk_marital_status = %(pk_marital_status)s,
-				pupic = gm.nullify_empty_string(%(pupic)s),
 				deceased = %(deceased)s,
 				emergency_contact = gm.nullify_empty_string(%(emergency_contact)s),
 				fk_emergency_contact = %(pk_emergency_contact)s,
@@ -467,10 +473,8 @@ class cIdentity(gmBusinessDBObject.cBusinessDBObject):
 		"title",
 		"dob",
 		"tob",
-		"cob",
 		"gender",
 		"pk_marital_status",
-		"pupic",
 		'deceased',
 		'emergency_contact',
 		'pk_emergency_contact',
@@ -485,6 +489,7 @@ class cIdentity(gmBusinessDBObject.cBusinessDBObject):
 		raise AttributeError('setting ID of identity is not allowed')
 
 	ID = property(_get_ID, _set_ID)
+
 	#--------------------------------------------------------
 	def __setitem__(self, attribute, value):
 
@@ -513,9 +518,11 @@ class cIdentity(gmBusinessDBObject.cBusinessDBObject):
 						return
 
 		gmBusinessDBObject.cBusinessDBObject.__setitem__(self, attribute, value)
+
 	#--------------------------------------------------------
 	def cleanup(self):
 		pass
+
 	#--------------------------------------------------------
 	def _get_is_patient(self):
 		return identity_is_patient(self._payload[self._idx['pk_identity']])
@@ -526,11 +533,13 @@ class cIdentity(gmBusinessDBObject.cBusinessDBObject):
 		return False
 
 	is_patient = property(_get_is_patient, _set_is_patient)
+
 	#--------------------------------------------------------
 	def _get_as_patient(self):
 		return cPatient(self._payload[self._idx['pk_identity']])
 
 	as_patient = property(_get_as_patient, lambda x:x)
+
 	#--------------------------------------------------------
 	def _get_staff_id(self):
 		cmd = u"SELECT pk FROM dem.staff WHERE fk_identity = %(pk)s"
@@ -541,6 +550,7 @@ class cIdentity(gmBusinessDBObject.cBusinessDBObject):
 		return rows[0][0]
 
 	staff_id = property(_get_staff_id, lambda x:x)
+
 	#--------------------------------------------------------
 	# identity API
 	#--------------------------------------------------------
@@ -592,17 +602,26 @@ class cIdentity(gmBusinessDBObject.cBusinessDBObject):
 		names = [ cPersonName(row = {'idx': idx, 'data': r, 'pk_field': 'pk_name'}) for r in rows ]
 		return names
 	#--------------------------------------------------------
-	def get_description_gender(self):
-		return _(u'%(last)s,%(title)s %(first)s%(nick)s (%(sex)s)') % {
+	def get_description_gender(self, with_nickname=True):
+		if with_nickname:
+			template = _(u'%(last)s,%(title)s %(first)s%(nick)s (%(sex)s)')
+		else:
+			template = _(u'%(last)s,%(title)s %(first)s (%(sex)s)')
+		return template % {
 			'last': self._payload[self._idx['lastnames']],
 			'title': gmTools.coalesce(self._payload[self._idx['title']], u'', u' %s'),
 			'first': self._payload[self._idx['firstnames']],
 			'nick': gmTools.coalesce(self._payload[self._idx['preferred']], u'', u" '%s'"),
 			'sex': self.gender_symbol
 		}
+
 	#--------------------------------------------------------
-	def get_description(self):
-		return _(u'%(last)s,%(title)s %(first)s%(nick)s') % {
+	def get_description(self, with_nickname=True):
+		if with_nickname:
+			template = _(u'%(last)s,%(title)s %(first)s%(nick)s')
+		else:
+			template = _(u'%(last)s,%(title)s %(first)s')
+		return template % {
 			'last': self._payload[self._idx['lastnames']],
 			'title': gmTools.coalesce(self._payload[self._idx['title']], u'', u' %s'),
 			'first': self._payload[self._idx['firstnames']],
@@ -643,7 +662,7 @@ class cIdentity(gmBusinessDBObject.cBusinessDBObject):
 			return True
 		rows, idx = gmPG2.run_rw_queries(queries = [{'cmd': u"SELECT dem.set_nickname(%s, %s)", 'args': [self.ID, nickname]}])
 		# setting nickname doesn't change dem.identity, so other fields
-		# of dem.v_basic_person do not get changed as a consequence of
+		# of dem.v_active_persons do not get changed as a consequence of
 		# setting the nickname, hence locally setting nickname matches
 		# in-database reality
 		self._payload[self._idx['preferred']] = nickname
@@ -657,10 +676,10 @@ class cIdentity(gmBusinessDBObject.cBusinessDBObject):
 		else:
 			order_by = u'ORDER BY %s' % order_by
 
-		cmd = gmDemographicRecord._SQL_get_identity_tags % (u'pk_identity = %%(pat)s %s' % order_by)
+		cmd = gmDemographicRecord._SQL_get_person_tags % (u'pk_identity = %%(pat)s %s' % order_by)
 		rows, idx = gmPG2.run_ro_queries(queries = [{'cmd': cmd, 'args': {u'pat': self.ID}}], get_col_idx = True)
 
-		return [ gmDemographicRecord.cIdentityTag(row = {'data': r, 'idx': idx, 'pk_field': 'pk_identity_tag'}) for r in rows ]
+		return [ gmDemographicRecord.cPersonTag(row = {'data': r, 'idx': idx, 'pk_field': 'pk_identity_tag'}) for r in rows ]
 
 	tags = property(get_tags, lambda x:x)
 
@@ -675,7 +694,7 @@ class cIdentity(gmBusinessDBObject.cBusinessDBObject):
 		cmd = u"SELECT pk FROM dem.identity_tag WHERE fk_tag = %(tag)s AND fk_identity = %(identity)s"
 		rows, idx = gmPG2.run_ro_queries(queries = [{'cmd': cmd, 'args': args}], get_col_idx = False)
 		if len(rows) > 0:
-			return gmDemographicRecord.cIdentityTag(aPK_obj = rows[0]['pk'])
+			return gmDemographicRecord.cPersonTag(aPK_obj = rows[0]['pk'])
 
 		# no, add
 		cmd = u"""
@@ -689,7 +708,7 @@ class cIdentity(gmBusinessDBObject.cBusinessDBObject):
 			RETURNING pk
 		"""
 		rows, idx = gmPG2.run_rw_queries(queries = [{'cmd': cmd, 'args': args}], return_data = True, get_col_idx = False)
-		return gmDemographicRecord.cIdentityTag(aPK_obj = rows[0]['pk'])
+		return gmDemographicRecord.cPersonTag(aPK_obj = rows[0]['pk'])
 
 	#--------------------------------------------------------
 	def remove_tag(self, tag):
@@ -701,7 +720,7 @@ class cIdentity(gmBusinessDBObject.cBusinessDBObject):
 	#
 	# since external IDs are not treated as first class
 	# citizens (classes in their own right, that is), we
-	# handle them *entirely* within cIdentity, also they
+	# handle them *entirely* within cPerson, also they
 	# only make sense with one single person (like names)
 	# and are not reused (like addresses), so they are
 	# truly added/deleted, not just linked/unlinked
@@ -711,7 +730,6 @@ class cIdentity(gmBusinessDBObject.cBusinessDBObject):
 
 		creates ID type if necessary
 		"""
-
 		# check for existing ID
 		if pk_type is not None:
 			cmd = u"""
@@ -799,6 +817,7 @@ class cIdentity(gmBusinessDBObject.cBusinessDBObject):
 		"""
 		args = {'pk': pk_id, 'value': value, 'type': type, 'issuer': issuer, 'comment': comment}
 		rows, idx = gmPG2.run_rw_queries(queries = [{'cmd': cmd, 'args': args}])
+
 	#--------------------------------------------------------
 	def get_external_ids(self, id_type=None, issuer=None):
 		where_parts = ['pk_identity = %(pat)s']
@@ -822,12 +841,72 @@ class cIdentity(gmBusinessDBObject.cBusinessDBObject):
 	#--------------------------------------------------------
 	def delete_external_id(self, pk_ext_id=None):
 		cmd = u"""
-delete from dem.lnk_identity2ext_id
-where id_identity = %(pat)s and id = %(pk)s"""
+			DELETE FROM dem.lnk_identity2ext_id
+			WHERE id_identity = %(pat)s AND id = %(pk)s"""
 		args = {'pat': self.ID, 'pk': pk_ext_id}
 		gmPG2.run_rw_queries(queries = [{'cmd': cmd, 'args': args}])
 
 	#--------------------------------------------------------
+	def suggest_external_id(self, target=None, encoding=None):
+		name = self.active_name
+		last = u' '.join(p for p in name['lastnames'].split(u"-"))
+		last = u' '.join(p for p in last.split(u"."))
+		last = u' '.join(p for p in last.split(u"'"))
+		last = u''.join(gmTools.capitalize(text = p, mode = gmTools.CAPS_FIRST_ONLY) for p in last.split(u' '))
+		first = u' '.join(p for p in name['firstnames'].split(u"-"))
+		first = u' '.join(p for p in first.split(u"."))
+		first = u' '.join(p for p in first.split(u"'"))
+		first = u''.join(gmTools.capitalize(text = p, mode = gmTools.CAPS_FIRST_ONLY) for p in first.split(u' '))
+		suggestion = u'GMd-%s%s%s%s%s' % (
+			gmTools.coalesce(target, u'', u'%s-'),
+			last,
+			first,
+			self.get_formatted_dob(format = '-%Y%m%d', none_string = u''),
+			gmTools.coalesce(self['gender'], u'', u'-%s')
+		)
+		try:
+			import unidecode
+			return unidecode.unidecode(suggestion)
+		except ImportError:
+			_log.debug('cannot transliterate external ID suggestion, <unidecode> module not installed')
+		if encoding is None:
+			return suggestion
+		return suggestion.encode(encoding)
+
+	external_id_suggestion = property(suggest_external_id, lambda x:x)
+
+	#--------------------------------------------------------
+	def suggest_external_ids(self, target=None, encoding=None):
+		names2use = [self.active_name]
+		names2use.extend(self.get_names(active_only = False, exclude_active = True))
+		target = gmTools.coalesce(target, u'', u'%s-')
+		dob = self.get_formatted_dob(format = '-%Y%m%d', none_string = u'')
+		gender = gmTools.coalesce(self['gender'], u'', u'-%s')
+		suggestions = []
+		for name in names2use:
+			last = u' '.join(p for p in name['lastnames'].split(u"-"))
+			last = u' '.join(p for p in last.split(u"."))
+			last = u' '.join(p for p in last.split(u"'"))
+			last = u''.join(gmTools.capitalize(text = p, mode = gmTools.CAPS_FIRST_ONLY) for p in last.split(u' '))
+			first = u' '.join(p for p in name['firstnames'].split(u"-"))
+			first = u' '.join(p for p in first.split(u"."))
+			first = u' '.join(p for p in first.split(u"'"))
+			first = u''.join(gmTools.capitalize(text = p, mode = gmTools.CAPS_FIRST_ONLY) for p in first.split(u' '))
+			suggestion = u'GMd-%s%s%s%s%s' % (target, last, first, dob, gender)
+			try:
+				import unidecode
+				suggestions.append(unidecode.unidecode(suggestion))
+				continue
+			except ImportError:
+				_log.debug('cannot transliterate external ID suggestion, <unidecode> module not installed')
+			if encoding is None:
+				suggestions.append(suggestion)
+			else:
+				suggestions.append(suggestion.encode(encoding))
+		return suggestions
+
+	#--------------------------------------------------------
+	#--------------------------------------------------------
 	def assimilate_identity(self, other_identity=None, link_obj=None):
 		"""Merge another identity into this one.
 
@@ -1070,12 +1149,7 @@ where id_identity = %(pat)s and id = %(pk)s"""
 				suffix = u'.gdt'
 			)
 
-		gdt_file = codecs.open (
-			filename = filename,
-			mode = 'wb',
-			encoding = encoding,
-			errors = 'strict'
-		)
+		gdt_file = io.open(filename, mode = 'wt', encoding = encoding, errors = 'strict')
 
 		gdt_file.write(template % (u'013', u'8000', u'6301'))
 		gdt_file.write(template % (u'013', u'9218', u'2.10'))
@@ -1120,9 +1194,10 @@ where id_identity = %(pat)s and id = %(pk)s"""
 		last = etree.SubElement(pat, u'lastname')
 		last.text = gmTools.coalesce(self._payload[self._idx['lastnames']], u'')
 
-		middle = etree.SubElement(pat, u'middlename')
-		middle.set(u'comment', _('preferred name/call name/...'))
-		middle.text = gmTools.coalesce(self._payload[self._idx['preferred']], u'')
+		# privacy
+		#middle = etree.SubElement(pat, u'middlename')
+		#middle.set(u'comment', _('preferred name/call name/...'))
+		#middle.text = gmTools.coalesce(self._payload[self._idx['preferred']], u'')
 
 		pref = etree.SubElement(pat, u'name_prefix')
 		pref.text = gmTools.coalesce(self._payload[self._idx['title']], u'')
@@ -1149,9 +1224,9 @@ where id_identity = %(pat)s and id = %(pk)s"""
 			city.set(u'comment', gmTools.coalesce(adr['suburb'], u''))
 			city.text = gmTools.coalesce(adr['urb'], u'')
 
-			state = etree.SubElement(home, u'state')
-			state.set(u'comment', gmTools.coalesce(adr['l10n_state'], u''))
-			state.text = gmTools.coalesce(adr['code_state'], u'')
+			region = etree.SubElement(home, u'region')
+			region.set(u'comment', gmTools.coalesce(adr['l10n_region'], u''))
+			region.text = gmTools.coalesce(adr['code_region'], u'')
 
 			zipcode = etree.SubElement(home, u'postal_code')
 			zipcode.text = gmTools.coalesce(adr['postcode'], u'')
@@ -1214,8 +1289,9 @@ where id_identity = %(pat)s and id = %(pk)s"""
 		vc.fn.value = self.get_description()
 		vc.add(u'n')
 		vc.n.value = vobject.vcard.Name(family = self._payload[self._idx['lastnames']], given = self._payload[self._idx['firstnames']])
-		vc.add(u'nickname')
-		vc.nickname.value = gmTools.coalesce(self._payload[self._idx['preferred']], u'')
+		# privacy
+		#vc.add(u'nickname')
+		#vc.nickname.value = gmTools.coalesce(self._payload[self._idx['preferred']], u'')
 		vc.add(u'title')
 		vc.title.value = gmTools.coalesce(self._payload[self._idx['title']], u'')
 		vc.add(u'gender')
@@ -1270,7 +1346,7 @@ where id_identity = %(pat)s and id = %(pk)s"""
 			vc_adr = vc.adr.value
 			vc_adr.extended = gmTools.coalesce(home_adr['subunit'], u'')
 			vc_adr.street = gmTools.coalesce(home_adr['street'], u'', u'%s ') + gmTools.coalesce(home_adr['number'], u'')
-			vc_adr.region = gmTools.coalesce(home_adr['l10n_state'], u'')
+			vc_adr.region = gmTools.coalesce(home_adr['l10n_region'], u'')
 			vc_adr.code = gmTools.coalesce(home_adr['postcode'], u'')
 			vc_adr.city = gmTools.coalesce(home_adr['urb'], u'')
 			vc_adr.country = gmTools.coalesce(home_adr['l10n_country'], u'')
@@ -1279,10 +1355,10 @@ where id_identity = %(pat)s and id = %(pk)s"""
 
 		if filename is None:
 			filename = gmTools.get_unique_filename (
-				prefix = u'gm-patient2vcard-',
+				prefix = u'gm-pat2vcf-',
 				suffix = u'.vcf'
 			)
-		vcf = codecs.open(filename, mode = 'wb', encoding = 'utf8')
+		vcf = io.open(filename, mode = 'wt', encoding = 'utf8')
 		vcf.write(vc.serialize().decode('utf-8'))
 		vcf.close()
 
@@ -1484,47 +1560,41 @@ where id_identity = %(pat)s and id = %(pk)s"""
 	#----------------------------------------------------------------------
 	def get_relatives(self):
 		cmd = u"""
-			select
-				t.description,
-				vbp.pk_identity as id,
-				title,
-				firstnames,
-				lastnames,
-				dob,
-				cob,
-				gender,
-				pupic,
-				pk_marital_status,
-				marital_status,
-				xmin_identity,
-				preferred
-			from
-				dem.v_basic_person vbp, dem.relation_types t, dem.lnk_person2relative l
-			where
-				(
-					l.id_identity = %(pk)s and
-					vbp.pk_identity = l.id_relative and
-					t.id = l.id_relation_type
+			SELECT
+				d_rt.description,
+				d_vap.*
+			FROM
+				dem.v_all_persons d_vap,
+				dem.relation_types d_rt,
+				dem.lnk_person2relative d_lp2r
+			WHERE
+				(	d_lp2r.id_identity = %(pk)s
+						AND
+					d_vap.pk_identity = d_lp2r.id_relative
+						AND
+					d_rt.id = d_lp2r.id_relation_type
 				) or (
-					l.id_relative = %(pk)s and
-					vbp.pk_identity = l.id_identity and
-					t.inverse = l.id_relation_type
+					d_lp2r.id_relative = %(pk)s
+						AND
+					d_vap.pk_identity = d_lp2r.id_identity
+						AND
+					d_rt.inverse = d_lp2r.id_relation_type
 				)"""
 		rows, idx = gmPG2.run_ro_queries(queries = [{'cmd': cmd, 'args': {'pk': self.pk_obj}}])
 		if len(rows) == 0:
 			return []
-		return [(row[0], cIdentity(row = {'data': row[1:], 'idx':idx, 'pk_field': 'pk'})) for row in rows]
+		return [(row[0], cPerson(row = {'data': row[1:], 'idx':idx, 'pk_field': 'pk_identity'})) for row in rows]
 	#--------------------------------------------------------
 	def link_new_relative(self, rel_type = 'parent'):
 		# create new relative
 		id_new_relative = create_dummy_identity()
 
-		relative = cIdentity(aPK_obj=id_new_relative)
+		relative = cPerson(aPK_obj=id_new_relative)
 		# pre-fill with data from ourselves
 #		relative.copy_addresses(self)
 		relative.add_name( '**?**', self.get_names()['lastnames'])
 		# and link the two
-		if self._ext_cache.has_key('relatives'):
+		if u'relatives' in self._ext_cache:
 			del self._ext_cache['relatives']
 		cmd = u"""
 			insert into dem.lnk_person2relative (
@@ -1542,7 +1612,7 @@ where id_identity = %(pat)s and id = %(pk)s"""
 	def _get_emergency_contact_from_database(self):
 		if self._payload[self._idx['pk_emergency_contact']] is None:
 			return None
-		return cIdentity(aPK_obj = self._payload[self._idx['pk_emergency_contact']])
+		return cPerson(self._payload[self._idx['pk_emergency_contact']])
 
 	emergency_contact_in_database = property(_get_emergency_contact_from_database, lambda x:x)
 	#----------------------------------------------------------------------
@@ -1661,13 +1731,32 @@ where id_identity = %(pat)s and id = %(pk)s"""
 		return gmProviderInbox.delete_inbox_message(inbox_message = pk)
 	#--------------------------------------------------------
 	def _get_dynamic_hints(self, include_suppressed_needing_invalidation=False):
-		return gmProviderInbox.get_hints_for_patient (
+		return gmAutoHints.get_hints_for_patient (
 			pk_identity = self._payload[self._idx['pk_identity']],
 			include_suppressed_needing_invalidation = include_suppressed_needing_invalidation
 		)
 
 	dynamic_hints = property(_get_dynamic_hints, lambda x:x)
 	#--------------------------------------------------------
+	def _get_suppressed_hints(self):
+		return gmAutoHints.get_suppressed_hints(pk_identity = self._payload[self._idx['pk_identity']])
+
+	suppressed_hints = property(_get_suppressed_hints, lambda x:x)
+
+	#--------------------------------------------------------
+	def _get_primary_provider_identity(self):
+		if self._payload[self._idx['pk_primary_provider']] is None:
+			return None
+		cmd = u"SELECT * FROM dem.v_all_persons WHERE pk_identity = (SELECT pk_identity FROM dem.v_staff WHERE pk_staff = %(pk_staff)s)"
+		args = {'pk_staff': self._payload[self._idx['pk_primary_provider']]}
+		rows, idx = gmPG2.run_ro_queries(queries = [{'cmd': cmd, 'args': args}], get_col_idx = True)
+		if len(rows) == 0:
+			return None
+		return cPerson(row = {'data': rows[0], 'idx': idx, 'pk_field': 'pk_identity'})
+
+	primary_provider_identity = property(_get_primary_provider_identity, lambda x:x)
+
+	#--------------------------------------------------------
 	def _get_primary_provider(self):
 		if self._payload[self._idx['pk_primary_provider']] is None:
 			return None
@@ -1675,15 +1764,18 @@ where id_identity = %(pat)s and id = %(pk)s"""
 		return gmStaff.cStaff(aPK_obj = self._payload[self._idx['pk_primary_provider']])
 
 	primary_provider = property(_get_primary_provider, lambda x:x)
+
 	#----------------------------------------------------------------------
 	# convenience
 	#----------------------------------------------------------------------
 	def get_dirname(self):
 		"""Format patient demographics into patient specific path name fragment."""
-		return (u'%s-%s%s-%s' % (
+		#return (u'%s-%s%s-%s' % (
+		return (u'%s-%s-%s' % (
 			self._payload[self._idx['lastnames']].replace(u' ', u'_'),
 			self._payload[self._idx['firstnames']].replace(u' ', u'_'),
-			gmTools.coalesce(self._payload[self._idx['preferred']], u'', template_initial = u'-(%s)').replace(u' ', u'_'),
+			# privacy
+			#gmTools.coalesce(self._payload[self._idx['preferred']], u'', template_initial = u'-(%s)').replace(u' ', u'_'),
 			self.get_formatted_dob(format = '%Y-%m-%d', encoding = gmI18N.get_encoding())
 		)).replace (
 			u"'", u""
@@ -1762,14 +1854,14 @@ def set_yielder(yielder):
 	_log.debug('setting yielder to <%s>', yielder)
 
 #============================================================
-class cPatient(cIdentity):
+class cPatient(cPerson):
 	"""Represents a person which is a patient.
 
-	- a specializing subclass of cIdentity turning it into a patient
+	- a specializing subclass of cPerson turning it into a patient
 	- its use is to cache subobjects like EMR and document folder
 	"""
 	def __init__(self, aPK_obj=None, row=None):
-		cIdentity.__init__(self, aPK_obj = aPK_obj, row = row)
+		cPerson.__init__(self, aPK_obj = aPK_obj, row = row)
 		self.__emr_access_lock = threading.Lock()
 		self.__emr = None
 		self.__doc_folder = None
@@ -1783,7 +1875,7 @@ class cPatient(cIdentity):
 			self.__emr.cleanup()
 		if self.__doc_folder is not None:
 			self.__doc_folder.cleanup()
-		cIdentity.cleanup(self)
+		cPerson.cleanup(self)
 	#----------------------------------------------------------------
 	def ensure_has_allergy_state(self, pk_encounter=None):
 		from Gnumed.business.gmAllergy import ensure_has_allergy_state
@@ -1853,10 +1945,12 @@ class cPatient(cIdentity):
 
 #============================================================
 class gmCurrentPatient(gmBorg.cBorg):
-	"""Patient Borg to hold currently active patient.
+	"""Patient Borg to hold the currently active patient.
 
 	There may be many instances of this but they all share state.
 
+	The underlying dem.identity row must have .deleted set to FALSE.
+
 	The sequence of events when changing the active patient:
 
 		1) Registered callbacks are run.
@@ -1870,6 +1964,9 @@ class gmCurrentPatient(gmBorg.cBorg):
 
 		2) Signal "pre_patient_unselection" is sent.
 			This does not wait for nor check results.
+			The keyword pk_identity contains the
+			PK of the person being switched away
+			from.
 
 		3) the current patient is unset (gmNull.cNull)
 
@@ -1944,6 +2041,10 @@ class gmCurrentPatient(gmBorg.cBorg):
 		if (self.patient['pk_identity'] == patient['pk_identity']) and not forced_reload:
 			return None
 
+		if patient['is_deleted']:
+			_log.error('cannot set active patient to disabled dem.identity row: %s', patient)
+			raise ValueError('gmPerson.gmCurrentPatient.__init__(): <patient> is disabled: %s' % patient)
+
 		# user wants different patient
 		_log.info('patient change [%s] -> [%s] requested', self.patient['pk_identity'], patient['pk_identity'])
 
@@ -2149,6 +2250,7 @@ class cMatchProvider_Provider(gmMatchProvider.cMatchProvider_SQL2):
 			]
 		)
 		self.setThresholds(1, 2, 3)
+
 #============================================================
 # convenience functions
 #============================================================
@@ -2180,18 +2282,28 @@ INSERT INTO dem.names (
 		],
 		return_data = True
 	)
-	ident = cIdentity(aPK_obj = rows[0][0])
+	ident = cPerson(aPK_obj = rows[0][0])
 	gmHooks.run_hook_script(hook = u'post_person_creation')
 	return ident
 
 #============================================================
+def disable_identity(pk_identity):
+	_log.info('disabling identity [%s]', pk_identity)
+	cmd = u"UPDATE dem.identity SET deleted = true WHERE pk = %(pk)s"
+	args = {'pk': identity['pk_identity']}
+	gmPG2.run_rw_queries(queries = [
+		{'cmd': cmd, 'args': args}
+	])
+	return True
+
+#============================================================
 def create_dummy_identity():
 	cmd = u"INSERT INTO dem.identity(gender) VALUES (NULL::text) RETURNING pk"
 	rows, idx = gmPG2.run_rw_queries (
 		queries = [{'cmd': cmd}],
 		return_data = True
 	)
-	return gmDemographicRecord.cIdentity(aPK_obj = rows[0][0])
+	return gmDemographicRecord.cPerson(aPK_obj = rows[0][0])
 
 #============================================================
 def identity_exists(pk_identity):
@@ -2211,7 +2323,7 @@ def set_active_patient(patient=None, forced_reload=False):
 
 	if isinstance(patient, cPatient):
 		pat = patient
-	elif isinstance(patient, cIdentity):
+	elif isinstance(patient, cPerson):
 		pat = pat.as_patient
 	elif patient == -1:
 		pat = patient
@@ -2219,7 +2331,7 @@ def set_active_patient(patient=None, forced_reload=False):
 		# maybe integer ?
 		success, pk = gmTools.input2int(initial = patient, minval = 1)
 		if not success:
-			raise ValueError('<patient> must be either -1, >0, or a cPatient, cIdentity or gmCurrentPatient instance, is: %s' % patient)
+			raise ValueError('<patient> must be either -1, >0, or a cPatient, cPerson or gmCurrentPatient instance, is: %s' % patient)
 		# but also valid patient ID ?
 		try:
 			pat = cPatient(aPK_obj = pk)
@@ -2235,6 +2347,7 @@ def set_active_patient(patient=None, forced_reload=False):
 		return False
 
 	return True
+
 #============================================================
 # gender related
 #------------------------------------------------------------
@@ -2352,7 +2465,7 @@ def get_person_IDs():
 
 #============================================================
 def get_persons_from_pks(pks=None):
-	return [ cIdentity(aPK_obj = pk) for pk in pks ]
+	return [ cPerson(aPK_obj = pk) for pk in pks ]
 #============================================================
 def get_person_from_xdt(filename=None, encoding=None, dob_format=None):
 	from Gnumed.business import gmXdtObjects
@@ -2382,7 +2495,7 @@ if __name__ == '__main__':
 	#--------------------------------------------------------
 	def test_set_active_pat():
 
-		ident = cIdentity(1)
+		ident = cPerson(1)
 		print "setting active patient with", ident
 		set_active_patient(patient=ident)
 
@@ -2427,7 +2540,7 @@ if __name__ == '__main__':
 		new_identity['title'] = 'test title';
 		new_identity['gender'] = 'f';
 		new_identity.save_payload()
-		print 'Refetching identity from db: %s' % cIdentity(aPK_obj=new_identity['pk_identity'])
+		print 'Refetching identity from db: %s' % cPerson(aPK_obj=new_identity['pk_identity'])
 
 		print '\nGetting all names...'
 		for a_name in new_identity.get_names():
@@ -2476,18 +2589,18 @@ if __name__ == '__main__':
 			print "%s, %s, %s" % (gender[idx['tag']], gender[idx['l10n_label']], gender[idx['sort_weight']])
 	#--------------------------------------------------------
 	def test_export_area():
-		person = cIdentity(aPK_obj = 12)
+		person = cPerson(aPK_obj = 12)
 		print person
 		print person.export_area
 		print person.export_area.items
 	#--------------------------------------------------------
 	def test_ext_id():
-		person = cIdentity(aPK_obj = 9)
+		person = cPerson(aPK_obj = 9)
 		print person.get_external_ids(id_type=u'Fachgebiet', issuer=u'Ärztekammer')
 		#print person.get_external_ids()
 	#--------------------------------------------------------
 	def test_vcf():
-		person = cIdentity(aPK_obj = 12)
+		person = cPerson(aPK_obj = 12)
 		print person.export_as_vcard()
 
 	#--------------------------------------------------------
@@ -2496,6 +2609,10 @@ if __name__ == '__main__':
 		print "pat.get_emr()", pat.get_emr()
 
 	#--------------------------------------------------------
+	def test_ext_id():
+		person = cPerson(aPK_obj = 12)
+		print person.suggest_external_id(target = u'Orthanc')
+	#--------------------------------------------------------
 	#test_dto_person()
 	#test_identity()
 	#test_set_active_pat()
@@ -2511,6 +2628,7 @@ if __name__ == '__main__':
 	#test_export_area()
 	#test_ext_id()
 	#test_vcf()
+	test_ext_id()
 	test_current_patient()
 
 #============================================================
diff --git a/client/business/gmPersonSearch.py b/client/business/gmPersonSearch.py
index 26acabb..2bd8c98 100644
--- a/client/business/gmPersonSearch.py
+++ b/client/business/gmPersonSearch.py
@@ -87,7 +87,7 @@ class cPatientSearcher_SQL:
 			if len(rows) == 0:
 				continue
 			identities.extend (
-				[ gmPerson.cIdentity(row = {'pk_field': 'pk_identity', 'data': row, 'idx': idx}) for row in rows ]
+				[ gmPerson.cPerson(row = {'pk_field': 'pk_identity', 'data': row, 'idx': idx}) for row in rows ]
 			)
 
 		pks = []
@@ -169,12 +169,12 @@ class cPatientSearcher_SQL:
 			_log.debug("[%s]: a PK or DOB" % raw)
 			tmp = raw.strip()
 			queries.append ({
-				'cmd': u"SELECT *, %s::text AS match_type FROM dem.v_basic_person WHERE pk_identity = %s ORDER BY lastnames, firstnames, dob",
+				'cmd': u"SELECT *, %s::text AS match_type FROM dem.v_active_persons WHERE pk_identity = %s ORDER BY lastnames, firstnames, dob",
 				'args': [_('internal patient ID'), tmp]
 			})
 			if len(tmp) > 7:	# DOB needs at least 8 digits
 				queries.append ({
-					'cmd': u"SELECT *, %s::text AS match_type FROM dem.v_basic_person WHERE dem.date_trunc_utc('day'::text, dob) = dem.date_trunc_utc('day'::text, %s::timestamp with time zone) ORDER BY lastnames, firstnames, dob",
+					'cmd': u"SELECT *, %s::text AS match_type FROM dem.v_active_persons WHERE dem.date_trunc_utc('day'::text, dob) = dem.date_trunc_utc('day'::text, %s::timestamp with time zone) ORDER BY lastnames, firstnames, dob",
 					'args': [_('date of birth'), tmp.replace(',', '.')]
 				})
 			queries.append ({
@@ -182,7 +182,7 @@ class cPatientSearcher_SQL:
 					SELECT vba.*, %s::text AS match_type
 					FROM
 						dem.lnk_identity2ext_id li2ext_id,
-						dem.v_basic_person vba
+						dem.v_active_persons vba
 					WHERE
 						vba.pk_identity = li2ext_id.id_identity and lower(li2ext_id.external_id) ~* lower(%s)
 					ORDER BY
@@ -196,13 +196,13 @@ class cPatientSearcher_SQL:
 		if regex.match(u"^(\d|\s|\t)+$", raw, flags = regex.LOCALE | regex.UNICODE):
 			_log.debug("[%s]: a DOB or PK" % raw)
 			queries.append ({
-				'cmd': u"SELECT *, %s::text AS match_type FROM dem.v_basic_person WHERE dem.date_trunc_utc('day'::text, dob) = dem.date_trunc_utc('day'::text, %s::timestamp with time zone) ORDER BY lastnames, firstnames, dob",
+				'cmd': u"SELECT *, %s::text AS match_type FROM dem.v_active_persons WHERE dem.date_trunc_utc('day'::text, dob) = dem.date_trunc_utc('day'::text, %s::timestamp with time zone) ORDER BY lastnames, firstnames, dob",
 				'args': [_('date of birth'), raw.replace(',', '.')]
 			})
 			tmp = raw.replace(u' ', u'')
 			tmp = tmp.replace(u'\t', u'')
 			queries.append ({
-				'cmd': u"SELECT *, %s::text AS match_type FROM dem.v_basic_person WHERE pk_identity LIKE %s%%",
+				'cmd': u"SELECT *, %s::text AS match_type FROM dem.v_active_persons WHERE pk_identity LIKE %s%%",
 				'args': [_('internal patient ID'), tmp]
 			})
 			return queries
@@ -216,7 +216,7 @@ class cPatientSearcher_SQL:
 			tmp = tmp.replace(u'\t', u'')
 			# this seemingly stupid query ensures the PK actually exists
 			queries.append ({
-				'cmd': u"SELECT *, %s::text AS match_type FROM dem.v_basic_person WHERE pk_identity = %s ORDER BY lastnames, firstnames, dob",
+				'cmd': u"SELECT *, %s::text AS match_type FROM dem.v_active_persons WHERE pk_identity = %s ORDER BY lastnames, firstnames, dob",
 				'args': [_('internal patient ID'), tmp]
 			})
 			# but might also be an external ID
@@ -227,14 +227,14 @@ class cPatientSearcher_SQL:
 			tmp = tmp.replace(u'***DUMMY***', u'(\s|\t|-|/)*')
 			queries.append ({
 				'cmd': u"""
-					SELECT vba.*, %s::text AS match_type FROM dem.lnk_identity2ext_id li2ext_id, dem.v_basic_person vba
+					SELECT vba.*, %s::text AS match_type FROM dem.lnk_identity2ext_id li2ext_id, dem.v_active_persons vba
 					WHERE vba.pk_identity = li2ext_id.id_identity and lower(li2ext_id.external_id) ~* lower(%s)
 					ORDER BY lastnames, firstnames, dob""",
 				'args': [_('external patient ID'), tmp]
 			})
 			return queries
 
-		# "#<di/git s or c-hars>" - external ID (or PUPIC)
+		# "#<di/git s or c-hars>" - external ID
 		if regex.match(u"^(\s|\t)*#.+$", raw, flags = regex.LOCALE | regex.UNICODE):
 			_log.debug("[%s]: an external ID" % raw)
 			tmp = raw.replace(u'#', u'')
@@ -251,7 +251,7 @@ class cPatientSearcher_SQL:
 						%s::text AS match_type
 					FROM
 						dem.lnk_identity2ext_id li2ext_id,
-						dem.v_basic_person vba
+						dem.v_active_persons vba
 					WHERE
 						vba.pk_identity = li2ext_id.id_identity
 							AND
@@ -272,7 +272,7 @@ class cPatientSearcher_SQL:
 			#tmp = tmp.replace('-', '.')
 			#tmp = tmp.replace('/', '.')
 			queries.append ({
-				'cmd': u"SELECT *, %s AS match_type FROM dem.v_basic_person WHERE dem.date_trunc_utc('day'::text, dob) = dem.date_trunc_utc('day'::text, %s::timestamp with time zone) ORDER BY lastnames, firstnames, dob",
+				'cmd': u"SELECT *, %s AS match_type FROM dem.v_active_persons WHERE dem.date_trunc_utc('day'::text, dob) = dem.date_trunc_utc('day'::text, %s::timestamp with time zone) ORDER BY lastnames, firstnames, dob",
 				'args': [_('date of birth'), tmp.replace(',', '.')]
 			})
 			return queries
@@ -284,13 +284,13 @@ class cPatientSearcher_SQL:
 			cmd = u"""
 SELECT DISTINCT ON (pk_identity) * FROM (
 	SELECT *, %s AS match_type FROM ((
-		SELECT vbp.*
-		FROM dem.names, dem.v_basic_person vbp
-		WHERE dem.names.firstnames ~ %s and vbp.pk_identity = dem.names.id_identity
+		SELECT d_vap.*
+		FROM dem.names, dem.v_active_persons d_vap
+		WHERE dem.names.firstnames ~ %s and d_vap.pk_identity = dem.names.id_identity
 	) union all (
-		SELECT vbp.*
-		FROM dem.names, dem.v_basic_person vbp
-		WHERE dem.names.firstnames ~ %s and vbp.pk_identity = dem.names.id_identity
+		SELECT d_vap.*
+		FROM dem.names, dem.v_active_persons d_vap
+		WHERE dem.names.firstnames ~ %s and d_vap.pk_identity = dem.names.id_identity
 	)) AS super_list ORDER BY lastnames, firstnames, dob
 ) AS sorted_list"""
 			queries.append ({
@@ -305,7 +305,7 @@ SELECT DISTINCT ON (pk_identity) * FROM (
 			tmp = raw.replace(u'*', u'')
 			tmp = tmp.replace(u'$', u'')
 			queries.append ({
-				'cmd': u"SELECT *, %s AS match_type FROM dem.v_basic_person WHERE dem.date_trunc_utc('day'::text, dob) = dem.date_trunc_utc('day'::text, %s::timestamp with time zone) ORDER BY lastnames, firstnames, dob",
+				'cmd': u"SELECT *, %s AS match_type FROM dem.v_active_persons WHERE dem.date_trunc_utc('day'::text, dob) = dem.date_trunc_utc('day'::text, %s::timestamp with time zone) ORDER BY lastnames, firstnames, dob",
 				'args': [_('date of birth'), tmp.replace(u',', u'.')]
 			})
 			return queries
@@ -349,7 +349,7 @@ SELECT DISTINCT ON (pk_identity) * FROM (
 			return None
 
 		cmd = u"""
-			SELECT *, %%s AS match_type FROM dem.v_basic_person
+			SELECT *, %%s AS match_type FROM dem.v_active_persons
 			WHERE pk_identity in (
 				SELECT id_identity FROM dem.names WHERE %s
 			) ORDER BY lastnames, firstnames, dob""" % ' and '.join(where_snippets)
@@ -392,26 +392,26 @@ SELECT DISTINCT ON (pk_identity) * FROM (
 				SELECT DISTINCT ON (pk_identity) * FROM (
 					SELECT * FROM ((
 						-- lastname
-						SELECT vbp.*, %s::text AS match_type FROM dem.v_basic_person vbp, dem.names n
-						WHERE vbp.pk_identity = n.id_identity and lower(n.lastnames) ~* lower(%s)
+						SELECT d_vap.*, %s::text AS match_type FROM dem.v_active_persons d_vap, dem.names n
+						WHERE d_vap.pk_identity = n.id_identity and lower(n.lastnames) ~* lower(%s)
 					) union all (
 						-- firstname
-						SELECT vbp.*, %s::text AS match_type FROM dem.v_basic_person vbp, dem.names n
-						WHERE vbp.pk_identity = n.id_identity and lower(n.firstnames) ~* lower(%s)
+						SELECT d_vap.*, %s::text AS match_type FROM dem.v_active_persons d_vap, dem.names n
+						WHERE d_vap.pk_identity = n.id_identity and lower(n.firstnames) ~* lower(%s)
 					) union all (
 						-- nickname
-						SELECT vbp.*, %s::text AS match_type FROM dem.v_basic_person vbp, dem.names n
-						WHERE vbp.pk_identity = n.id_identity and lower(n.preferred) ~* lower(%s)
+						SELECT d_vap.*, %s::text AS match_type FROM dem.v_active_persons d_vap, dem.names n
+						WHERE d_vap.pk_identity = n.id_identity and lower(n.preferred) ~* lower(%s)
 					) union all (
 						-- anywhere in name
 						SELECT
-							vbp.*,
+							d_vap.*,
 							%s::text AS match_type
 						FROM
-							dem.v_basic_person vbp,
+							dem.v_active_persons d_vap,
 							dem.names n
 						WHERE
-							vbp.pk_identity = n.id_identity
+							d_vap.pk_identity = n.id_identity
 								AND
 							lower(n.firstnames || ' ' || n.lastnames || ' ' || coalesce(n.preferred, '')) ~* lower(%s)
 					)) AS super_list ORDER BY lastnames, firstnames, dob
@@ -468,31 +468,31 @@ SELECT DISTINCT ON (pk_identity) * FROM (
 				if date_count == 0:
 					# assumption: first last
 					queries.append ({
-						'cmd': u"SELECT DISTINCT ON (id_identity) vbp.*, %s::text AS match_type FROM dem.v_basic_person vbp, dem.names n WHERE vbp.pk_identity = n.id_identity and n.firstnames ~ %s AND n.lastnames ~ %s",
+						'cmd': u"SELECT DISTINCT ON (id_identity) d_vap.*, %s::text AS match_type FROM dem.v_active_persons d_vap, dem.names n WHERE d_vap.pk_identity = n.id_identity and n.firstnames ~ %s AND n.lastnames ~ %s",
 						'args': [_('name: first-last'), '^' + gmTools.capitalize(name_parts[0], mode=gmTools.CAPS_NAMES), '^' + gmTools.capitalize(name_parts[1], mode=gmTools.CAPS_NAMES)]
 					})
 					queries.append ({
-						'cmd': u"SELECT DISTINCT ON (id_identity) vbp.*, %s::text AS match_type FROM dem.v_basic_person vbp, dem.names n WHERE vbp.pk_identity = n.id_identity and lower(n.firstnames) ~* lower(%s) AND lower(n.lastnames) ~* lower(%s)",
+						'cmd': u"SELECT DISTINCT ON (id_identity) d_vap.*, %s::text AS match_type FROM dem.v_active_persons d_vap, dem.names n WHERE d_vap.pk_identity = n.id_identity and lower(n.firstnames) ~* lower(%s) AND lower(n.lastnames) ~* lower(%s)",
 						'args': [_('name: first-last'), '^' + name_parts[0], '^' + name_parts[1]]
 					})
 					# assumption: last first
 					queries.append ({
-						'cmd': u"SELECT DISTINCT ON (id_identity) vbp.*, %s::text AS match_type FROM dem.v_basic_person vbp, dem.names n WHERE vbp.pk_identity = n.id_identity and n.firstnames ~ %s AND n.lastnames ~ %s",
+						'cmd': u"SELECT DISTINCT ON (id_identity) d_vap.*, %s::text AS match_type FROM dem.v_active_persons d_vap, dem.names n WHERE d_vap.pk_identity = n.id_identity and n.firstnames ~ %s AND n.lastnames ~ %s",
 						'args': [_('name: last-first'), '^' + gmTools.capitalize(name_parts[1], mode=gmTools.CAPS_NAMES), '^' + gmTools.capitalize(name_parts[0], mode=gmTools.CAPS_NAMES)]
 					})
 					queries.append ({
-						'cmd': u"SELECT DISTINCT ON (id_identity) vbp.*, %s::text AS match_type FROM dem.v_basic_person vbp, dem.names n WHERE vbp.pk_identity = n.id_identity and lower(n.firstnames) ~* lower(%s) AND lower(n.lastnames) ~* lower(%s)",
+						'cmd': u"SELECT DISTINCT ON (id_identity) d_vap.*, %s::text AS match_type FROM dem.v_active_persons d_vap, dem.names n WHERE d_vap.pk_identity = n.id_identity and lower(n.firstnames) ~* lower(%s) AND lower(n.lastnames) ~* lower(%s)",
 						'args': [_('name: last-first'), '^' + name_parts[1], '^' + name_parts[0]]
 					})
 					print "before nick"
 					print queries
 					# assumption: last nick
 					queries.append ({
-						'cmd': u"SELECT DISTINCT ON (id_identity) vbp.*, %s::text AS match_type FROM dem.v_basic_person vbp, dem.names n WHERE vbp.pk_identity = n.id_identity and n.preferred ~ %s AND n.lastnames ~ %s",
+						'cmd': u"SELECT DISTINCT ON (id_identity) d_vap.*, %s::text AS match_type FROM dem.v_active_persons d_vap, dem.names n WHERE d_vap.pk_identity = n.id_identity and n.preferred ~ %s AND n.lastnames ~ %s",
 						'args': [_('name: last-nick'), '^' + gmTools.capitalize(name_parts[1], mode=gmTools.CAPS_NAMES), '^' + gmTools.capitalize(name_parts[0], mode=gmTools.CAPS_NAMES)]
 					})
 					queries.append ({
-						'cmd': u"SELECT DISTINCT ON (id_identity) vbp.*, %s::text AS match_type FROM dem.v_basic_person vbp, dem.names n WHERE vbp.pk_identity = n.id_identity and lower(n.preferred) ~* lower(%s) AND lower(n.lastnames) ~* lower(%s)",
+						'cmd': u"SELECT DISTINCT ON (id_identity) d_vap.*, %s::text AS match_type FROM dem.v_active_persons d_vap, dem.names n WHERE d_vap.pk_identity = n.id_identity and lower(n.preferred) ~* lower(%s) AND lower(n.lastnames) ~* lower(%s)",
 						'args': [_('name: last-nick'), '^' + name_parts[1], '^' + name_parts[0]]
 					})
 					print "after nick"
@@ -500,13 +500,13 @@ SELECT DISTINCT ON (pk_identity) * FROM (
 					# name parts anywhere inside name - third order query ...
 					queries.append ({
 						'cmd': u"""SELECT DISTINCT ON (id_identity)
-									vbp.*,
+									d_vap.*,
 									%s::text AS match_type
 								FROM
-									dem.v_basic_person vbp,
+									dem.v_active_persons d_vap,
 									dem.names n
 								WHERE
-									vbp.pk_identity = n.id_identity
+									d_vap.pk_identity = n.id_identity
 										AND
 									-- name_parts[0]
 									lower(n.firstnames || ' ' || n.lastnames) ~* lower(%s)
@@ -526,32 +526,32 @@ SELECT DISTINCT ON (pk_identity) * FROM (
 				if date_count == 1:
 					# assumption: first, last, dob - first order
 					queries.append ({
-						'cmd': u"SELECT DISTINCT ON (id_identity) vbp.*, %s::text AS match_type FROM dem.v_basic_person vbp, dem.names n WHERE vbp.pk_identity = n.id_identity and n.firstnames ~ %s AND n.lastnames ~ %s AND dem.date_trunc_utc('day'::text, dob) = dem.date_trunc_utc('day'::text, %s::timestamp with time zone)",
+						'cmd': u"SELECT DISTINCT ON (id_identity) d_vap.*, %s::text AS match_type FROM dem.v_active_persons d_vap, dem.names n WHERE d_vap.pk_identity = n.id_identity and n.firstnames ~ %s AND n.lastnames ~ %s AND dem.date_trunc_utc('day'::text, dob) = dem.date_trunc_utc('day'::text, %s::timestamp with time zone)",
 						'args': [_('names: first-last, date of birth'), '^' + gmTools.capitalize(name_parts[0], mode=gmTools.CAPS_NAMES), '^' + gmTools.capitalize(name_parts[1], mode=gmTools.CAPS_NAMES), date_part.replace(u',', u'.')]
 					})
 					queries.append ({
-						'cmd': u"SELECT DISTINCT ON (id_identity) vbp.*, %s::text AS match_type FROM dem.v_basic_person vbp, dem.names n WHERE vbp.pk_identity = n.id_identity and lower(n.firstnames) ~* lower(%s) AND lower(n.lastnames) ~* lower(%s) AND dem.date_trunc_utc('day'::text, dob) = dem.date_trunc_utc('day'::text, %s::timestamp with time zone)",
+						'cmd': u"SELECT DISTINCT ON (id_identity) d_vap.*, %s::text AS match_type FROM dem.v_active_persons d_vap, dem.names n WHERE d_vap.pk_identity = n.id_identity and lower(n.firstnames) ~* lower(%s) AND lower(n.lastnames) ~* lower(%s) AND dem.date_trunc_utc('day'::text, dob) = dem.date_trunc_utc('day'::text, %s::timestamp with time zone)",
 						'args': [_('names: first-last, date of birth'), '^' + name_parts[0], '^' + name_parts[1], date_part.replace(u',', u'.')]
 					})
 					# assumption: last, first, dob - second order query
 					queries.append ({
-						'cmd': u"SELECT DISTINCT ON (id_identity) vbp.*, %s::text AS match_type FROM dem.v_basic_person vbp, dem.names n WHERE vbp.pk_identity = n.id_identity and n.firstnames ~ %s AND n.lastnames ~ %s AND dem.date_trunc_utc('day'::text, dob) = dem.date_trunc_utc('day'::text, %s::timestamp with time zone)",
+						'cmd': u"SELECT DISTINCT ON (id_identity) d_vap.*, %s::text AS match_type FROM dem.v_active_persons d_vap, dem.names n WHERE d_vap.pk_identity = n.id_identity and n.firstnames ~ %s AND n.lastnames ~ %s AND dem.date_trunc_utc('day'::text, dob) = dem.date_trunc_utc('day'::text, %s::timestamp with time zone)",
 						'args': [_('names: last-first, date of birth'), '^' + gmTools.capitalize(name_parts[1], mode=gmTools.CAPS_NAMES), '^' + gmTools.capitalize(name_parts[0], mode=gmTools.CAPS_NAMES), date_part.replace(u',', u'.')]
 					})
 					queries.append ({
-						'cmd': u"SELECT DISTINCT ON (id_identity) vbp.*, %s::text AS match_type FROM dem.v_basic_person vbp, dem.names n WHERE vbp.pk_identity = n.id_identity and lower(n.firstnames) ~* lower(%s) AND lower(n.lastnames) ~* lower(%s) AND dem.date_trunc_utc('day'::text, dob) = dem.date_trunc_utc('day'::text, %s::timestamp with time zone)",
+						'cmd': u"SELECT DISTINCT ON (id_identity) d_vap.*, %s::text AS match_type FROM dem.v_active_persons d_vap, dem.names n WHERE d_vap.pk_identity = n.id_identity and lower(n.firstnames) ~* lower(%s) AND lower(n.lastnames) ~* lower(%s) AND dem.date_trunc_utc('day'::text, dob) = dem.date_trunc_utc('day'::text, %s::timestamp with time zone)",
 						'args': [_('names: last-first, dob'), '^' + name_parts[1], '^' + name_parts[0], date_part.replace(u',', u'.')]
 					})
 					# name parts anywhere in name - third order query ...
 					queries.append ({
 						'cmd': u"""SELECT DISTINCT ON (id_identity)
-									vbp.*,
+									d_vap.*,
 									%s::text AS match_type
 								FROM
-									dem.v_basic_person vbp,
+									dem.v_active_persons d_vap,
 									dem.names n
 								WHERE
-									vbp.pk_identity = n.id_identity
+									d_vap.pk_identity = n.id_identity
 										AND
 									lower(n.firstnames || ' ' || n.lastnames) ~* lower(%s)
 										AND
@@ -706,7 +706,7 @@ SELECT DISTINCT ON (pk_identity) * FROM (
 			# and finally generate the queries ...
 			for where_part in where_parts:
 				queries.append ({
-					'cmd': u"SELECT *, %%s::text AS match_type FROM dem.v_basic_person WHERE %s" % where_part['conditions'],
+					'cmd': u"SELECT *, %%s::text AS match_type FROM dem.v_active_persons WHERE %s" % where_part['conditions'],
 					'args': where_part['args']
 				})
 			return queries
@@ -721,19 +721,19 @@ SELECT DISTINCT ON (pk_identity) * FROM (
 		args = []
 		# FIXME: split on more than just ' '
 		for arg in search_term.strip().split():
-			where_clause += u" AND lower(coalesce(vbp.title, '') || ' ' || vbp.firstnames || ' ' || vbp.lastnames) ~* lower(%s)"
+			where_clause += u" AND lower(coalesce(d_vap.title, '') || ' ' || d_vap.firstnames || ' ' || d_vap.lastnames) ~* lower(%s)"
 			args.append(arg)
 
 		query = u"""
 SELECT DISTINCT ON (pk_identity) * FROM (
 	SELECT
-		vbp.*,
+		d_vap.*,
 		'%s'::text AS match_type
 	FROM
-		dem.v_basic_person vbp,
+		dem.v_active_persons d_vap,
 		dem.names n
 	WHERE
-		vbp.pk_identity = n.id_identity
+		d_vap.pk_identity = n.id_identity
 		%s
 	ORDER BY
 		lastnames,
diff --git a/client/business/gmPracSoftAU.py b/client/business/gmPracSoftAU.py
index fd4bd4f..7cedc8f 100644
--- a/client/business/gmPracSoftAU.py
+++ b/client/business/gmPracSoftAU.py
@@ -11,15 +11,12 @@ fixed width fields.
 This implementation is in the sole responsibility of the authors.
 """
 #============================================================
-# $Source: /home/ncq/Projekte/cvs2git/vcs-mirror/gnumed/gnumed/client/business/gmPracSoftAU.py,v $
-# $Id: gmPracSoftAU.py,v 1.2 2007-02-13 17:05:22 ncq Exp $
-__license__ = "GPL"
-__version__ = "$Revision: 1.2 $"
+__license__ = "GPL v2 or later"
 __author__ = "K.Hilbert <Karsten.Hilbert at gmx.net>"
 
 
 # stdlib
-import sys, codecs, time, datetime as pyDT
+import sys, io, time, datetime as pyDT
 
 
 # GNUmed modules
@@ -34,7 +31,7 @@ PATIENTS_IN_dob_format = '%d/%m/%Y'
 #============================================================
 def read_persons_from_pracsoft_file(filename=None, encoding='ascii'):
 
-	pats_file = codecs.open(filename=filename, mode='rU', encoding=encoding)
+	pats_file = io.open(filename, mode = 'rt', encoding = encoding)
 	dtos = []
 
 	for line in pats_file:
diff --git a/client/business/gmPraxis.py b/client/business/gmPraxis.py
index 7b762d2..4dbc0ad 100644
--- a/client/business/gmPraxis.py
+++ b/client/business/gmPraxis.py
@@ -6,6 +6,7 @@ __author__ = "K.Hilbert <Karsten.Hilbert at gmx.net>"
 
 import sys
 import logging
+import io
 
 
 if __name__ == '__main__':
@@ -103,6 +104,7 @@ class cPraxisBranch(gmBusinessDBObject.cBusinessDBObject):
 		return gmOrganization.cOrgUnit(aPK_obj = self._payload[self._idx['pk_org_unit']])
 
 	org_unit = property(_get_org_unit, lambda x:x)
+
 	#--------------------------------------------------------
 	def _get_org(self):
 		return gmOrganization.cOrg(aPK_obj = self._payload[self._idx['pk_org']])
@@ -120,6 +122,37 @@ class cPraxisBranch(gmBusinessDBObject.cBusinessDBObject):
 #		self.save()
 #	address = property(_get_address, _set_address)
 
+	#--------------------------------------------------------
+	def _get_vcf(self):
+		vcf_fields = [
+			u'BEGIN:VCARD',
+			u'VERSION:4.0',
+			u'KIND:org',
+			_(u'FN:%(l10n_unit_category)s %(branch)s of %(l10n_organization_category)s %(praxis)s') % self,
+			u'N:%(praxis)s;%(branch)s' % self
+		]
+		adr = self.address
+		if adr is not None:
+			vcf_fields.append(u'ADR:;%(subunit)s;%(street)s %(number)s;%(urb)s;%(l10n_region)s;%(postcode)s;%(l10n_country)s' % adr)
+		comms = self.get_comm_channels(comm_medium = u'workphone')
+		if len(comms) > 0:
+			vcf_fields.append(u'TEL;VALUE=uri;TYPE=work:tel:%(url)s' % comms[0])
+		comms = self.get_comm_channels(comm_medium = u'email')
+		if len(comms) > 0:
+			vcf_fields.append(u'EMAIL:%(url)s' % comms[0])
+		vcf_fields.append(u'END:VCARD')
+		vcf_fname = gmTools.get_unique_filename (
+			prefix = 'gm_praxis2vcf-',
+			suffix = '.vcf'
+		)
+		vcf_file = io.open(vcf_fname, mode = 'wt', encoding = 'utf8')
+		vcf_file.write(u'\n'.join(vcf_fields))
+		vcf_file.write(u'\n')
+		vcf_file.close()
+		return vcf_fname
+
+	vcf = property(_get_vcf, lambda x:x)
+
 #------------------------------------------------------------
 def lock_praxis_branch(pk_praxis_branch=None, exclusive=False):
 	return gmPG2.lock_row(table = u'dem.praxis_branch', pk = pk_praxis_branch, exclusive = exclusive)
@@ -273,15 +306,18 @@ class gmCurrentPraxisBranch(gmBorg.cBorg):
 		if attribute in ['branch', 'waiting_list_patients', 'help_desk', 'db_logon_banner', 'active_workplace', 'workplaces', 'user_email']:
 			return getattr(self, attribute)
 		return getattr(self.branch, attribute)
+
 	#--------------------------------------------------------
 	# __get/setitem__ handling
 	#--------------------------------------------------------
 	def __getitem__(self, attribute = None):
 		"""Return any attribute if known how to retrieve it by proxy."""
 		return self.branch[attribute]
+
 	#--------------------------------------------------------
 	def __setitem__(self, attribute, value):
 		self.branch[attribute] = value
+
 	#--------------------------------------------------------
 	# waiting list handling
 	#--------------------------------------------------------
@@ -338,6 +374,7 @@ where
 		return rows
 
 	waiting_list_patients = property (_get_waiting_list_patients, lambda x:x)
+
 	#--------------------------------------------------------
 	def _set_helpdesk(self, helpdesk):
 		return
@@ -365,6 +402,7 @@ where
 		return self.__helpdesk
 
 	helpdesk = property(_get_helpdesk, _set_helpdesk)
+
 	#--------------------------------------------------------
 	def _get_db_logon_banner(self):
 		rows, idx = gmPG2.run_ro_queries(queries = [{'cmd': u'select _(message) from cfg.db_logon_banner'}])
@@ -384,6 +422,7 @@ where
 		rows, idx = gmPG2.run_rw_queries(queries = queries, end_tx = True)
 
 	db_logon_banner = property(_get_db_logon_banner, _set_db_logon_banner)
+
 	#--------------------------------------------------------
 	def _set_workplace(self, workplace):
 		# maybe later allow switching workplaces on the fly
@@ -415,6 +454,7 @@ where
 		return self.__active_workplace
 
 	active_workplace = property(_get_workplace, _set_workplace)
+
 	#--------------------------------------------------------
 	def _set_workplaces(self, val):
 		pass
@@ -424,6 +464,7 @@ where
 		return [ r[0] for r in rows ]
 
 	workplaces = property(_get_workplaces, _set_workplaces)
+
 	#--------------------------------------------------------
 	def _get_user_email(self):
 		# FIXME: get this from the current users staff record in the database
diff --git a/client/business/gmProviderInbox.py b/client/business/gmProviderInbox.py
index 9c32045..aedd4fc 100644
--- a/client/business/gmProviderInbox.py
+++ b/client/business/gmProviderInbox.py
@@ -82,7 +82,7 @@ class cInboxMessage(gmBusinessDBObject.cBusinessDBObject):
 
 		tt += u'%s %s %s\n' % (
 			self._payload[self._idx['modified_by']],
-			gmTools.u_right_arrow,
+			gmTools.u_arrow2right,
 			gmTools.coalesce(self._payload[self._idx['provider']], _('everyone'))
 		)
 
@@ -374,257 +374,6 @@ class cProviderInbox:
 		)
 
 #============================================================
-# dynamic hints API
-#------------------------------------------------------------
-_SQL_get_dynamic_hints = u"SELECT * FROM ref.v_auto_hints WHERE %s"
-
-class cDynamicHint(gmBusinessDBObject.cBusinessDBObject):
-	"""Represents dynamic hints to be run against the database."""
-
-	_cmd_fetch_payload = _SQL_get_dynamic_hints % u"pk_auto_hint = %s"
-	_cmds_store_payload = [
-		u"""UPDATE ref.auto_hint SET
-				query = gm.nullify_empty_string(%(query)s),
-				title = gm.nullify_empty_string(%(title)s),
-				hint = gm.nullify_empty_string(%(hint)s),
-				url = gm.nullify_empty_string(%(url)s),
-				source = gm.nullify_empty_string(%(source)s),
-				is_active = %(is_active)s
-			WHERE
-				pk = %(pk_auto_hint)s
-					AND
-				xmin = %(xmin_auto_hint)s
-			RETURNING
-				xmin AS xmin_auto_hint
-		"""
-	]
-	_updatable_fields = [
-		u'query',
-		u'title',
-		u'hint',
-		u'url',
-		u'source',
-		u'is_active'
-	]
-	#--------------------------------------------------------
-	def format(self):
-		txt = u'%s               [#%s]\n' % (
-			gmTools.bool2subst(self._payload[self._idx['is_active']], _('Active clinical hint'), _('Inactive clinical hint')),
-			self._payload[self._idx['pk_auto_hint']]
-		)
-		txt += u'\n'
-		txt += u'%s\n\n' % self._payload[self._idx['title']]
-		txt += _('Source: %s\n') % self._payload[self._idx['source']]
-		txt += _('Language: %s\n') % self._payload[self._idx['lang']]
-		txt += u'\n'
-		txt += u'%s\n' % gmTools.wrap(self._payload[self._idx['hint']], width = 50, initial_indent = u' ', subsequent_indent = u' ')
-		txt += u'\n'
-		txt += u'%s\n' % gmTools.wrap (
-			gmTools.coalesce(self._payload[self._idx['url']], u''),
-			width = 50,
-			initial_indent = u' ',
-			subsequent_indent = u' '
-		)
-		txt += u'\n'
-		txt += u'%s\n' % gmTools.wrap(self._payload[self._idx['query']], width = 50, initial_indent = u' ', subsequent_indent = u' ')
-		return txt
-	#--------------------------------------------------------
-	def suppress(self, rationale=None, pk_encounter=None):
-		return suppress_dynamic_hint (
-			pk_hint = self._payload[self._idx['pk_auto_hint']],
-			pk_encounter = pk_encounter,
-			rationale = rationale
-		)
-	#--------------------------------------------------------
-	def invalidate_suppression(self, pk_encounter=None):
-		return invalidate_hint_suppression (
-			pk_hint = self._payload[self._idx['pk_auto_hint']],
-			pk_encounter = pk_encounter
-		)
-
-#------------------------------------------------------------
-def get_dynamic_hints(order_by=None, link_obj=None):
-	if order_by is None:
-		order_by = u'true'
-	else:
-		order_by = u'true ORDER BY %s' % order_by
-
-	cmd = _SQL_get_dynamic_hints % order_by
-	rows, idx = gmPG2.run_ro_queries(link_obj = link_obj, queries = [{'cmd': cmd}], get_col_idx = True)
-	return [ cDynamicHint(row = {'data': r, 'idx': idx, 'pk_field': 'pk_auto_hint'}) for r in rows ]
-
-#------------------------------------------------------------
-def create_dynamic_hint(link_obj=None, query=None, title=None, hint=None, source=None):
-	args = {
-		u'query': query,
-		u'title': title,
-		u'hint': hint,
-		u'source': source,
-		u'usr': gmStaff.gmCurrentProvider()['db_user']
-	}
-	cmd = u"""
-		INSERT INTO ref.auto_hint (
-			query,
-			title,
-			hint,
-			source,
-			lang
-		) VALUES (
-			gm.nullify_empty_string(%(query)s),
-			gm.nullify_empty_string(%(title)s),
-			gm.nullify_empty_string(%(hint)s),
-			gm.nullify_empty_string(%(source)s),
-			i18n.get_curr_lang(%(usr)s)
-		)
-		RETURNING pk
-	"""
-	rows, idx = gmPG2.run_rw_queries(link_obj = link_obj, queries = [{'cmd': cmd, 'args': args}], return_data = True, get_col_idx = True)
-	return cDynamicHint(aPK_obj = rows[0]['pk'], link_obj = link_obj)
-
-#------------------------------------------------------------
-def delete_dynamic_hint(link_obj=None, pk_hint=None):
-	args = {'pk': pk_hint}
-	cmd = u"DELETE FROM ref.auto_hint WHERE pk = %(pk)s"
-	gmPG2.run_rw_queries(link_obj = link_obj, queries = [{'cmd': cmd, 'args': args}])
-	return True
-
-#------------------------------------------------------------
-def get_hints_for_patient(pk_identity=None, include_suppressed_needing_invalidation=False):
-	conn = gmPG2.get_connection()
-	curs = conn.cursor()
-	curs.callproc('clin.get_hints_for_patient', [pk_identity])
-	rows = curs.fetchall()
-	idx = gmPG2.get_col_indices(curs)
-	curs.close()
-	conn.rollback()
-	if not include_suppressed_needing_invalidation:
-		return [ cDynamicHint(row = {'data': r, 'idx': idx, 'pk_field': 'pk_auto_hint'}) for r in rows if r['rationale4suppression'] != 'please_invalidate_suppression' ]
-	return [ cDynamicHint(row = {'data': r, 'idx': idx, 'pk_field': 'pk_auto_hint'}) for r in rows ]
-
-#------------------------------------------------------------
-def suppress_dynamic_hint(pk_hint=None, rationale=None, pk_encounter=None):
-	args = {
-		'hint': pk_hint,
-		'rationale': rationale,
-		'enc': pk_encounter
-	}
-	cmd = u"""
-		DELETE FROM clin.suppressed_hint
-		WHERE
-			fk_hint = %(hint)s
-				AND
-			fk_encounter IN (
-				SELECT pk FROM clin.encounter WHERE fk_patient = (
-					SELECT fk_patient FROM clin.encounter WHERE pk = %(enc)s
-				)
-			)
-	"""
-	queries = [{'cmd': cmd, 'args': args}]
-	cmd = u"""
-		INSERT INTO clin.suppressed_hint (
-			fk_encounter,
-			fk_hint,
-			rationale,
-			md5_sum
-		) VALUES (
-			%(enc)s,
-			%(hint)s,
-			%(rationale)s,
-			(SELECT r_vah.md5_sum FROM ref.v_auto_hints r_vah WHERE r_vah.pk_auto_hint = %(hint)s)
-		)
-	"""
-	queries.append({'cmd': cmd, 'args': args})
-	gmPG2.run_rw_queries(queries = queries)
-	return True
-
-#------------------------------------------------------------
-# suppressed dynamic hints
-#------------------------------------------------------------
-_SQL_get_suppressed_hints = u"SELECT * FROM clin.v_suppressed_hints WHERE %s"
-
-class cSuppressedHint(gmBusinessDBObject.cBusinessDBObject):
-	"""Represents suppressed dynamic hints per patient."""
-
-	_cmd_fetch_payload = _SQL_get_suppressed_hints % u"pk_suppressed_hint = %s"
-	_cmds_store_payload = []
-	_updatable_fields = []
-	#--------------------------------------------------------
-	def format(self):
-		txt = u'%s               [#%s]\n' % (
-			gmTools.bool2subst(self._payload[self._idx['is_active']], _('Suppressed active dynamic hint'), _('Suppressed inactive dynamic hint')),
-			self._payload[self._idx['pk_suppressed_hint']]
-		)
-		txt += u'\n'
-		txt += u'%s\n\n' % self._payload[self._idx['title']]
-		txt += _('Suppressed by: %s\n') % self._payload[self._idx['suppressed_by']]
-		txt += _('Suppressed at: %s\n') % gmDateTime.pydt_strftime(self._payload[self._idx['suppressed_when']], '%Y %b %d')
-		txt += _('Hint #: %s\n') % self._payload[self._idx['pk_hint']]
-		txt += _('Patient #: %s\n') % self._payload[self._idx['pk_identity']]
-		txt += _('MD5 (currently): %s\n') % self._payload[self._idx['md5_hint']]
-		txt += _('MD5 (at suppression): %s\n') % self._payload[self._idx['md5_suppressed']]
-		txt += _('Source: %s\n') % self._payload[self._idx['source']]
-		txt += _('Language: %s\n') % self._payload[self._idx['lang']]
-		txt += u'\n'
-		txt += u'%s\n' % gmTools.wrap(self._payload[self._idx['hint']], width = 50, initial_indent = u' ', subsequent_indent = u' ')
-		txt += u'\n'
-		txt += u'%s\n' % gmTools.wrap (
-			gmTools.coalesce(self._payload[self._idx['url']], u''),
-			width = 50,
-			initial_indent = u' ',
-			subsequent_indent = u' '
-		)
-		txt += u'\n'
-		txt += u'%s\n' % gmTools.wrap(self._payload[self._idx['query']], width = 50, initial_indent = u' ', subsequent_indent = u' ')
-		return txt
-
-#------------------------------------------------------------
-def get_suppressed_hints(pk_identity=None, order_by=None):
-	args = {'pat': pk_identity}
-	if pk_identity is None:
-		where = u'true'
-	else:
-		where = u"pk_identity = %(pat)s"
-	if order_by is not None:
-		order_by = u' ORDER BY %s' % order_by
-	cmd = (_SQL_get_suppressed_hints % where) + order_by
-	rows, idx = gmPG2.run_ro_queries(queries = [{'cmd': cmd, 'args': args}], get_col_idx = True)
-	return [ cSuppressedHint(row = {'data': r, 'idx': idx, 'pk_field': 'pk_suppressed_hint'}) for r in rows ]
-
-#------------------------------------------------------------
-def delete_suppressed_hint(pk_suppressed_hint=None):
-	args = {'pk': pk_suppressed_hint}
-	cmd = u"DELETE FROM clin.suppressed_hint WHERE pk = %(pk)s"
-	gmPG2.run_rw_queries(queries = [{'cmd': cmd, 'args': args}])
-	return True
-
-#------------------------------------------------------------
-def invalidate_hint_suppression(pk_hint=None, pk_encounter=None):
-	_log.debug('invalidating suppression of hint #%s', pk_hint)
-	args = {
-		'pk_hint': pk_hint,
-		'enc': pk_encounter,
-		'fake_md5': '***INVALIDATED***'			# only needs to NOT match ANY md5 sum
-	}
-	cmd = u"""
-		UPDATE clin.suppressed_hint SET
-			fk_encounter = %(enc)s,
-			md5_sum = %(fake_md5)s
-		WHERE
-			pk = (
-				SELECT pk_suppressed_hint
-				FROM clin.v_suppressed_hints
-				WHERE
-					pk_hint = %(pk_hint)s
-						AND
-					pk_identity = (
-						SELECT fk_patient FROM clin.encounter WHERE pk = %(enc)s
-					)
-			)
-		"""
-	gmPG2.run_rw_queries(queries = [{'cmd': cmd, 'args': args}])
-	return True
-
-#============================================================
 if __name__ == '__main__':
 
 	if len(sys.argv) < 2:
@@ -656,16 +405,9 @@ if __name__ == '__main__':
 		for msg in get_overdue_messages(pk_patient = 12):
 			print msg.format()
 	#---------------------------------------
-	def test_auto_hints():
-#		for row in get_dynamic_hints():
-#			print row
-		for row in get_hints_for_patient(pk_identity = 12):
-			print row
-	#---------------------------------------
 	#test_inbox()
 	#test_msg()
 	#test_create_type()
 	#test_due()
-	test_auto_hints()
 
 #============================================================
diff --git a/client/business/gmSOAPimporter.py b/client/business/gmSOAPimporter.py
index e7deda6..b15cc50 100644
--- a/client/business/gmSOAPimporter.py
+++ b/client/business/gmSOAPimporter.py
@@ -102,7 +102,7 @@ class cSOAPImporter:
 			enc_id = enc['pk_encounter']
 
 		# create narrative row
-		status, narr = gmClinNarrative.create_clin_narrative (
+		narr = gmClinNarrative.create_narrative_item (
 			narrative = soap_entry[soap_bundle_TEXT_KEY],
 			soap_cat = soap_entry[soap_bundle_SOAP_CAT_KEY],
 			episode_id = epi_id,
@@ -110,10 +110,10 @@ class cSOAPImporter:
 		)
 
 #		# attach types
-#		if soap_entry.has_key(soap_bundle_TYPES_KEY):
+#		if soap_bundle_TYPES_KEY in soap_entry:
 #			print "code missing to attach types to imported narrative"
 
-		return status
+		return (narr is not None)
 	#-----------------------------------------------------------
 	def __verify_soap_entry(self, soap_entry):
 		"""Perform basic integrity check of a supplied SOAP entry.
@@ -216,7 +216,7 @@ if __name__ == '__main__':
 				patient.cleanup()
 			except:
 				print "error cleaning up patient"
-	except StandardError:
+	except Exception:
 		_log.exception("unhandled exception caught !", sys.exc_info(), 1)
 		# but re-raise them
 		raise
diff --git a/client/business/gmSoapDefs.py b/client/business/gmSoapDefs.py
new file mode 100644
index 0000000..b18e46f
--- /dev/null
+++ b/client/business/gmSoapDefs.py
@@ -0,0 +1,105 @@
+"""GNUmed SOAP related defintions"""
+
+__author__ = "Karsten Hilbert <Karsten.Hilbert at gmx.net>"
+__license__ = 'GPL v2 or later (for details see http://gnu.org)'
+
+#============================================================
+import logging
+
+
+try:
+	_('dummy-no-need-to-translate-but-make-epydoc-happy')
+except NameError:
+	_ = lambda x:x
+
+#============================================================
+_U_ELLIPSIS = u'\u2026'
+
+KNOWN_SOAP_CATS = list(u'soapu')
+KNOWN_SOAP_CATS.append(None)
+
+
+soap_cat2l10n = {
+	u's': _('SOAP_char_S=S').replace(u'SOAP_char_S=', u''),
+	u'o': _('SOAP_char_O=O').replace(u'SOAP_char_O=', u''),
+	u'a': _('SOAP_char_A=A').replace(u'SOAP_char_A=', u''),
+	u'p': _('SOAP_char_P=P').replace(u'SOAP_char_P=', u''),
+	u'u': _('SOAP_char_U=U').replace(u'SOAP_char_U=', u''),
+	None: _U_ELLIPSIS
+}
+
+
+soap_cat2l10n_str = {
+	u's': _('SOAP_string_Subjective=Subjective').replace(u'SOAP_string_Subjective=', u''),
+	u'o': _('SOAP_string_Objective=Objective').replace(u'SOAP_string_Objective=', u''),
+	u'a': _('SOAP_string_Assessment=Assessment').replace(u'SOAP_string_Assessment=', u''),
+	u'p': _('SOAP_string_Plan=Plan').replace(u'SOAP_string_Plan=', u''),
+	u'u': _('SOAP_string_Unspecified=Unspecified').replace(u'SOAP_string_Unspecified=', u''),
+	None: _('SOAP_string_Administrative=Administrative').replace(u'SOAP_string_Administrative=', u'')
+}
+
+
+l10n2soap_cat = {
+	_('SOAP_char_S=S').replace(u'SOAP_char_S=', u''): u's',
+	_('SOAP_char_O=O').replace(u'SOAP_char_O=', u''): u'o',
+	_('SOAP_char_A=A').replace(u'SOAP_char_A=', u''): u'a',
+	_('SOAP_char_P=P').replace(u'SOAP_char_P=', u''): u'p',
+	_('SOAP_char_U=U').replace(u'SOAP_char_U=', u''): u'u',
+	_U_ELLIPSIS: None,
+	u'.': None,
+	u' ': None,
+	u'': None
+}
+
+#============================================================
+def soap_cats2list(soap_cats):
+	"""Normalizes a string or list of SOAP categories, preserving order.
+
+		None -> gmSoapDefs.KNOWN_SOAP_CATS (all)
+		[] -> []
+		u'' -> []
+		u' ' -> [None]	(admin)
+	"""
+	if soap_cats is None:
+		return KNOWN_SOAP_CATS
+
+	normalized_cats = []
+	for cat in soap_cats:
+		if cat in [u' ', None]:
+			if None in normalized_cats:
+				continue
+			normalized_cats.append(None)
+			continue
+		cat = cat.lower()
+		if cat in KNOWN_SOAP_CATS:
+			if cat in normalized_cats:
+				continue
+			normalized_cats.append(cat)
+
+	return normalized_cats
+
+#============================================================
+if __name__ == '__main__':
+
+	import sys
+
+	if len(sys.argv) < 2:
+		sys.exit()
+
+	if sys.argv[1] != 'test':
+		sys.exit()
+
+	sys.path.insert(0, '../../')
+
+	from Gnumed.pycommon import gmI18N
+
+	gmI18N.activate_locale()
+	gmI18N.install_domain()
+
+	#--------------------------------------------------------
+	def test_translation():
+		for c in KNOWN_SOAP_CATS:
+			print c, soap_cat2l10n[c], soap_cat2l10n_str[c]
+
+	#--------------------------------------------------------
+	test_translation()
diff --git a/client/business/gmStaff.py b/client/business/gmStaff.py
index bf5391e..3249a8f 100644
--- a/client/business/gmStaff.py
+++ b/client/business/gmStaff.py
@@ -49,7 +49,6 @@ class cStaff(gmBusinessDBObject.cBusinessDBObject):
 	def __init__(self, aPK_obj=None, row=None):
 		# by default get staff corresponding to CURRENT_USER
 		if (aPK_obj is None) and (row is None):
-			#cmd = u"select *, _(role) AS l10n_role from dem.v_staff where "
 			cmd = _SQL_fetch_staff_fields % u"db_user = CURRENT_USER"
 			try:
 				rows, idx = gmPG2.run_ro_queries(queries = [{'cmd': cmd}], get_col_idx=True)
@@ -110,8 +109,8 @@ class cStaff(gmBusinessDBObject.cBusinessDBObject):
 	inbox = property(_get_inbox, _set_inbox)
 	#--------------------------------------------------------
 	def _get_identity(self):
-		from Gnumed.business import gmPerson
-		return gmPerson.cIdentity(aPK_obj = self._payload[self._idx['pk_identity']])
+		from Gnumed.business.gmPerson import cPerson
+		return cPerson(self._payload[self._idx['pk_identity']])
 
 	identity = property(_get_identity, lambda x:x)
 	#--------------------------------------------------------
@@ -137,6 +136,7 @@ class cStaff(gmBusinessDBObject.cBusinessDBObject):
 		return True
 
 	role = property(lambda x:x, set_role)
+
 #============================================================
 def get_staff_list(active_only=False):
 	if active_only:
@@ -153,6 +153,7 @@ def get_staff_list(active_only=False):
 		}
 		staff_list.append(cStaff(row=obj_row))
 	return staff_list
+
 #------------------------------------------------------------
 def create_staff(conn=None, db_account=None, password=None, identity=None, short_alias=None):
 	args = {
@@ -191,6 +192,7 @@ def create_staff(conn=None, db_account=None, password=None, identity=None, short
 		raise
 
 	return True, None
+
 #------------------------------------------------------------
 def delete_staff(conn=None, pk_staff=None):
 	queries = [{'cmd': u'DELETE FROM dem.staff WHERE pk = %(pk)s', 'args': {'pk': pk_staff}}]
@@ -209,6 +211,7 @@ def delete_staff(conn=None, pk_staff=None):
 		raise
 
 	return True, None
+
 #------------------------------------------------------------
 def activate_staff(conn=None, pk_staff=None):
 	# 1) activate staff entry
@@ -225,6 +228,7 @@ def activate_staff(conn=None, pk_staff=None):
 	)
 
 	return True
+
 #------------------------------------------------------------
 def deactivate_staff(conn=None, pk_staff=None):
 
@@ -241,6 +245,7 @@ def deactivate_staff(conn=None, pk_staff=None):
 	)
 
 	return True
+
 #============================================================
 def set_current_provider_to_logged_on_user():
 	gmCurrentProvider(provider = cStaff())
@@ -303,6 +308,7 @@ class gmCurrentProvider(gmBorg.cBorg):
 		if not isinstance(self.provider, gmNull.cNull):
 			return getattr(self.provider, attribute)
 #		raise AttributeError
+
 #============================================================
 # main/testing
 #============================================================
diff --git a/client/business/gmVCard.py b/client/business/gmVCard.py
index 165bbe2..e93631f 100644
--- a/client/business/gmVCard.py
+++ b/client/business/gmVCard.py
@@ -6,7 +6,7 @@ __license__ = "GPL v2"
 
 # std lib
 import sys
-import codecs
+import io
 import datetime as pyDT
 import logging
 
@@ -22,7 +22,7 @@ from Gnumed.business import gmPerson
 from Gnumed.business import gmDemographicRecord
 
 
-_log = logging.getLogger('gm-LinuxMedNewsXML')
+_log = logging.getLogger('gm-vcf')
 
 #============================================================
 def parse_vcard2dto(vc_text=None, filename=None):
@@ -33,7 +33,7 @@ def parse_vcard2dto(vc_text=None, filename=None):
 		_log.info('trying to parse vCard from [%s]', filename)
 		for encoding in ['utf8', 'Windows-1252']:
 			try:
-				vcf = codecs.open(filename, mode = u'rB', encoding = encoding)
+				vcf = io.open(filename, mode = u'rt', encoding = encoding)
 				vc_text = vcf.read()
 				vcf.close()
 				break
@@ -41,6 +41,18 @@ def parse_vcard2dto(vc_text=None, filename=None):
 				_log.exception('vCard not encoded as [%s]', encoding)
 		if vc_text is None:
 			return None
+		vcf_lines = []
+		found_first = False
+		for line in vc_text.split(u'\n'):
+			if not found_first:
+				if line.strip() == u'BEGIN:VCARD':
+					found_first = True
+					vcf_lines.append(line)
+				continue
+			vcf_lines.append(line)
+			if line.strip() == u'END:VCARD':
+				break
+		vc_text = u'\n'.join(vcf_lines)
 
 	dob_format = '%Y%m%d'
 
@@ -60,8 +72,10 @@ def parse_vcard2dto(vc_text=None, filename=None):
 	dto = gmPerson.cDTO_person()
 	dto.firstnames = vc.n.value.given.strip()
 	dto.lastnames = vc.n.value.family.strip()
-	if vc.title:
+	try:
 		dto.title = vc.title.value.strip()
+	except AttributeError:
+		_log.debug('vCard.TITLE attribute not available')
 	try:
 		gender = vc.gender.value.strip().lower()
 		if gender != u'':
@@ -105,8 +119,8 @@ def parse_vcard2dto(vc_text=None, filename=None):
 			if region is None:
 				region_row = gmDemographicRecord.map_urb_zip_country2region(urb = adr.city, zip = adr.code, country_code = country_code)
 				if region_row is not None:
-					region = region_row['state']
-					region_code = region_row['code_state']
+					region = region_row['region']
+					region_code = region_row['code_region']
 			else:
 				region_code = gmDemographicRecord.map_region2code(region = region, country_code = country_code)
 			if region_code is None:
@@ -128,7 +142,7 @@ def parse_vcard2dto(vc_text=None, filename=None):
 	except AttributeError:
 		_log.debug('vCard.TEL attribute not available')
 	if tel is not None:
-		if vc.tel.params.has_key(u'TYPE'):
+		if u'TYPE' in vc.tel.params:
 			channel = (vc.tel.params[u'TYPE'][0]).lower()
 			if not channel.endswith('phone'):
 				channel += 'phone'
@@ -167,7 +181,6 @@ if __name__ == '__main__':
 
 	from Gnumed.pycommon import gmLog2
 
-	#import datetime
 	gmDateTime.init()
 
 	def test():
diff --git a/client/business/gmVaccination.py b/client/business/gmVaccination.py
index f555658..f03e782 100644
--- a/client/business/gmVaccination.py
+++ b/client/business/gmVaccination.py
@@ -1,7 +1,6 @@
 """GNUmed vaccination related business objects.
 """
 #============================================================
-__version__ = "$Revision: 1.38 $"
 __author__ = "K.Hilbert <Karsten.Hilbert at gmx.net>"
 __license__ = "GPL"
 
@@ -15,7 +14,6 @@ from Gnumed.business import gmMedication
 
 
 _log = logging.getLogger('gm.vaccination')
-_log.info(__version__)
 
 #============================================================
 def get_indications(order_by=None, pk_indications=None):
@@ -33,6 +31,7 @@ def get_indications(order_by=None, pk_indications=None):
 	rows, idx = gmPG2.run_ro_queries(queries = [{'cmd': cmd, 'args': args}], get_col_idx = False)
 
 	return rows
+
 #============================================================
 _sql_fetch_vaccine = u"""SELECT *, xmin_vaccine FROM clin.v_vaccines WHERE %s"""
 
@@ -128,6 +127,7 @@ class cVaccine(gmBusinessDBObject.cBusinessDBObject):
 		return rows[0][0]
 
 	is_in_use = property(_get_is_in_use, lambda x:x)
+
 #------------------------------------------------------------
 def create_vaccine(pk_brand=None, brand_name=None, indications=None, pk_indications=None):
 
@@ -229,6 +229,7 @@ def regenerate_generic_vaccines():
 	rows, idx = gmPG2.run_rw_queries(queries = [{'cmd': cmd}], return_data = True)
 
 	return rows[0][0]
+
 #============================================================
 # vaccination related classes
 #============================================================
@@ -271,6 +272,16 @@ class cVaccination(gmBusinessDBObject.cBusinessDBObject):
 		u'pk_encounter',
 		u'pk_episode'
 	]
+
+	#--------------------------------------------------------
+	def format_maximum_information(self, patient=None):
+		return self.format (
+			with_indications = True,
+			with_comment = True,
+			with_reaction = True,
+			date_format = '%Y %b %d'
+		)
+
 	#--------------------------------------------------------
 	def format(self, with_indications=False, with_comment=False, with_reaction=False, date_format='%Y-%m-%d'):
 
@@ -295,11 +306,13 @@ class cVaccination(gmBusinessDBObject.cBusinessDBObject):
 			lines.append(u'   %s' % u' / '.join(self._payload[self._idx['indications']]))
 
 		return lines
+
 	#--------------------------------------------------------
 	def _get_vaccine(self):
 		return cVaccine(aPK_obj = self._payload[self._idx['pk_vaccine']])
 
 	vaccine = property(_get_vaccine, lambda x:x)
+
 #------------------------------------------------------------
 def create_vaccination(encounter=None, episode=None, vaccine=None, batch_no=None):
 
diff --git a/client/business/gmXdtMappings.py b/client/business/gmXdtMappings.py
index 012480c..f2734b8 100644
--- a/client/business/gmXdtMappings.py
+++ b/client/business/gmXdtMappings.py
@@ -1138,22 +1138,22 @@ kvdt_Packungsgroesse_map = {
 	'kA': 'keine Angabe'
 }
 # Heilmittel : 0925
-#kvdt_Heilmittel_map = {
-#	'01': 'Massagetherapie',
-#	'02': 'Bewegungstherapie',
-#	'03': 'Krankengymnastik',
-#	'04': 'Elektrotherapie',
-#	'06': 'Thermotherapie(Wärme- und Kältetherapie)',
-#	'08': 'Kohlensäurebäder',
-#	'09': 'Inhalalationtherapie',
-#	'10': 'Traktionsbehandlung',
-#	'20': 'Stimmtherapie',
-#	'25': 'Sprechtherapie',
-#	'30': 'Sprachtherapie',
-#	'35': 'Sprech- und/oder Sprachtherapie bei Kindern und Jugendlichen',
-#	'40': 'Beschäftigungs- und Arbeitstherapie (Ergotherapie)',
-#	'90': 'Sonstiges',
-#}
+kvdt_Heilmittel_map = {
+	'01': 'Massagetherapie',
+	'02': 'Bewegungstherapie',
+	'03': 'Krankengymnastik',
+	'04': 'Elektrotherapie',
+	'06': 'Thermotherapie(Wärme- und Kältetherapie)',
+	'08': 'Kohlensäurebäder',
+	'09': 'Inhalalationtherapie',
+	'10': 'Traktionsbehandlung',
+	'20': 'Stimmtherapie',
+	'25': 'Sprechtherapie',
+	'30': 'Sprachtherapie',
+	'35': 'Sprech- und/oder Sprachtherapie bei Kindern und Jugendlichen',
+	'40': 'Beschäftigungs- und Arbeitstherapie (Ergotherapie)',
+	'90': 'Sonstiges'
+}
 
 # Kennzeichnung gebührenpflichtig, aut idem, noctu
 kvdt_Kennzeichnung_map = {
diff --git a/client/business/gmXdtObjects.py b/client/business/gmXdtObjects.py
index a2d4a28..f130ae4 100644
--- a/client/business/gmXdtObjects.py
+++ b/client/business/gmXdtObjects.py
@@ -8,7 +8,7 @@ __version__ = "$Revision: 1.33 $"
 __author__ = "K.Hilbert, S.Hilbert"
 __license__ = "GPL"
 
-import os.path, sys, linecache, codecs, re as regex, time, datetime as pyDT, logging
+import os.path, sys, linecache, io, re as regex, time, datetime as pyDT, logging, io
 
 
 import mx.DateTime as mxDT
@@ -31,7 +31,7 @@ class cDTO_xdt_person(gmPerson.cDTO_person):
 #==============================================================
 def determine_xdt_encoding(filename=None, default_encoding=None):
 
-	f = codecs.open(filename=filename, mode='rU', encoding='utf8', errors='ignore')
+	f = io.open(filename, mode = 'rt', encoding = 'utf8', errors = 'ignore')
 
 	file_encoding = None
 	for line in f:
@@ -77,7 +77,7 @@ def read_person_from_xdt(filename=None, encoding=None, dob_format=None):
 	if encoding is None:
 		encoding = determine_xdt_encoding(filename=filename)
 
-	xdt_file = codecs.open(filename=filename, mode='rU', encoding=encoding)
+	xdt_file = io.open(filename, mode = 'rt', encoding = encoding)
 
 	for line in xdt_file:
 
@@ -181,7 +181,7 @@ class cLDTFile(object):
 		if self.__header is not None:
 			return self.__header
 
-		ldt_file = codecs.open(filename = self.filename, mode = 'rU', encoding = self.encoding)
+		ldt_file = io.open(self.filename, mode = 'rt', encoding = self.encoding)
 		self.__header = []
 		for line in ldt_file:
 			length, field, content = line[:3], line[3:7], line[7:].replace('\015','').replace('\012','')
@@ -201,7 +201,7 @@ class cLDTFile(object):
 		if self.__tail is not None:
 			return self.__tail
 
-		ldt_file = codecs.open(filename = self.filename, mode = 'rU', encoding = self.encoding)
+		ldt_file = io.open(self.filename, mode = 'rt', encoding = self.encoding)
 		self.__tail = []
 		in_tail = False
 		for line in ldt_file:
@@ -225,7 +225,7 @@ class cLDTFile(object):
 	#----------------------------------------------------------
 	def split_by_patient(self, dir=None, file=None):
 
-		ldt_file = codecs.open(filename = self.filename, mode = 'rU', encoding = self.encoding)
+		ldt_file = io.open(self.filename, mode = 'rt', encoding = self.encoding)
 		out_file = None
 
 		in_patient = False
@@ -245,7 +245,7 @@ class cLDTFile(object):
 					if out_file is not None:
 						out_file.write(u''.join(self.tail))
 						out_file.close()
-					#out_file = codecs.open(filename=filename_xxxx, mode=xxxx_'rU', encoding=self.encoding)
+					#out_file = io.open(filename=filename_xxxx, mode=xxxx_'rU', encoding=self.encoding)
 					out_file.write(u''.join(self.header))
 				else:
 					in_patient = False
@@ -365,7 +365,7 @@ def get_rand_fname(aDir):
 #==============================================================
 def write_xdt_pat_data(data, aDir):
 	"""write record for this patient to new file"""
-	pat_file = open(os.path.join(aDir, get_rand_fname(aDir)), "w")
+	pat_file = io.open(os.path.join(aDir, get_rand_fname(aDir)), mode = "wt", encoding = 'utf8')
 	map(pat_file.write, data)
 	pat_file.close()
 	return fname
diff --git a/client/doc/gm-describe_file.1 b/client/doc/gm-describe_file.1
new file mode 100644
index 0000000..893159d
--- /dev/null
+++ b/client/doc/gm-describe_file.1
@@ -0,0 +1,44 @@
+.\" ========================================================
+.\" license: GPL v2 or later
+.\" ========================================================
+
+.TH gm-describe_file 1 "2016 January 1st" "Describe files from within GNUmed"
+
+
+.SH NAME
+.B gm-describe_file
+- describes files from within GNUmed
+
+
+.SH SYNOPSIS
+.B gm-describe_file
+.I <input file>
+.I <metadata file>
+
+
+.SH DESCRIPTION
+.B gm-describe_file
+is a helper script which GNUmed uses to extract metadata
+from files for describing them to the user when needed.
+
+
+.SH OPTIONS
+.PP
+.TP
+.B input file
+The file to describe.
+.TP
+.B metadata file
+The file into which to store extracted metadata for description.
+
+Defaults to (and overwrites) <input file>.txt if not given.
+
+
+.SH SEE ALSO
+.TP
+.B exiftool(1)
+
+
+.SH AUTHOR
+This manual page was written by Karsten Hilbert <karsten.hilbert at gmx.net>
+for the Debian GNU/Linux system (but may be used by others).
diff --git a/client/doc/gnumed.1 b/client/doc/gnumed.1
index e15a2ec..b88b350 100644
--- a/client/doc/gnumed.1
+++ b/client/doc/gnumed.1
@@ -145,7 +145,7 @@ German website
 .B http://savannah.gnu.org/projects/gnumed
 Mailing list home
 .TP
-.B http://gitorious.org/gnumed
+.B https://github.org/ncqgm/gnumed
 Source code repository (Git)
 .TP
 .B /usr/share/doc/gnumed/
diff --git a/client/doc/gnumed.conf.example b/client/doc/gnumed.conf.example
index 4993098..47806f8 100644
--- a/client/doc/gnumed.conf.example
+++ b/client/doc/gnumed.conf.example
@@ -20,7 +20,7 @@
 
 # -------------------------------------------------------------
 [preferences]
-profile = GNUmed database at publicdb.gnumed.de (PUBLIC) (gnumed_v20 at publicdb.gnumed.de)
+profile = GNUmed database on this machine ("local": Linux/Mac) (gnumed_v21@)
 login = any-doc
 
 
@@ -69,7 +69,7 @@ $profiles$
 
 host = 
 port = 5432
-database = gnumed_v20
+database = gnumed_v21
 public/open access = 0
 help desk = Your own IT support <needs configuration>
 last known workplaces = $last known workplaces$
@@ -85,7 +85,7 @@ $last known workplaces$
 
 host = 127.0.0.1
 port = 5432
-database = gnumed_v20
+database = gnumed_v21
 public/open access = 0
 help desk = Your own IT support <needs configuration>
 
@@ -102,7 +102,7 @@ host = publicdb.gnumed.de
 # there are several PostgreSQL instances running
 # on a database server
 port = 5432
-database = gnumed_v20
+database = gnumed_v21
 # public/open access controls exception message and log handling
 # 0 --> message by default goes to public list if no receiver given
 # 0 (1) --> log is (not) included by default, which user can override
diff --git a/client/doc/schema/gnumed-entire_schema-no_audit.dot b/client/doc/schema/gnumed-entire_schema-no_audit.dot
index 15d0e4c..d0e77e7 100644
--- a/client/doc/schema/gnumed-entire_schema-no_audit.dot
+++ b/client/doc/schema/gnumed-entire_schema-no_audit.dot
@@ -11,7 +11,7 @@ shape = record
 edge [
 ];
 
-"au.referral" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer </TD><T [...]
+"au.referral" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer </TD><T [...]
 
 "audit.audit_fields" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > serial </TD><TD align="left" > PK </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer [...]
 
@@ -114,16 +114,15 @@ edge [
 
 
 
+"bill.bill" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer </TD><TD  [...]
 
-"bill.bill" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer </TD><TD  [...]
-
-"bill.bill_item" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer </TD [...]
+"bill.bill_item" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer </TD [...]
 
 "bill.lnk_enc_type2billable" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk </TD><TD align="left" > serial </TD><TD align="left" > PK </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > fk_encounter_type </TD><TD align="left" > [...]
 
-"blobs.doc_desc" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer </TD [...]
+"blobs.doc_desc" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer </TD [...]
 
-"blobs.doc_med" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer </TD> [...]
+"blobs.doc_med" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer </TD> [...]
 
 "blobs.doc_obj" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk </TD><TD align="left" > serial </TD><TD align="left" > PK </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > fk_doc </TD><TD align="left" > integer </TD><TD align= [...]
 
@@ -153,89 +152,89 @@ edge [
 
 "cfg.db_logon_banner" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > message </TD><TD align="left" > text </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > singularizer </TD><TD align="left" > boolean </ [...]
 
-"cfg.report_query" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer </ [...]
+"cfg.report_query" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer </ [...]
 
 "clin._enum_allergy_type" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk </TD><TD align="left" > serial </TD><TD align="left" > PK </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > value </TD><TD align="left" > text </TD><TD  [...]
 
-"clin.allergy" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer </TD>< [...]
+"clin.allergy" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer </TD>< [...]
 
-"clin.allergy_state" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer  [...]
+"clin.allergy_state" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer  [...]
 
-"clin.clin_aux_note" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer  [...]
+"clin.clin_aux_note" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer  [...]
 
-"clin.clin_diag" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer </TD [...]
+"clin.clin_diag" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer </TD [...]
 
-"clin.clin_item_type" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer [...]
+"clin.clin_item_type" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer [...]
 
-"clin.clin_narrative" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer [...]
+"clin.clin_narrative" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer [...]
 
 "clin.clin_root_item" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer [...]
 
-"clin.encounter" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer </TD [...]
+"clin.encounter" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer </TD [...]
 
 "clin.encounter_type" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk </TD><TD align="left" > serial </TD><TD align="left" > PK </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > description </TD><TD align="left" > text </TD><T [...]
 
-"clin.episode" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer </TD>< [...]
+"clin.episode" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer </TD>< [...]
 
 "clin.export_item" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk </TD><TD align="left" > serial </TD><TD align="left" > PK </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > fk_identity </TD><TD align="left" > integer </TD><T [...]
 
-"clin.external_care" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer  [...]
+"clin.external_care" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer  [...]
 
-"clin.family_history" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer [...]
+"clin.family_history" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer [...]
 
-"clin.fhx_relation_type" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > inte [...]
+"clin.fhx_relation_type" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > inte [...]
 
-"clin.form_data" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer </TD [...]
+"clin.form_data" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer </TD [...]
 
-"clin.form_instances" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer [...]
+"clin.form_instances" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer [...]
 
-"clin.health_issue" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer < [...]
+"clin.health_issue" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer < [...]
 
-"clin.hospital_stay" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer  [...]
+"clin.hospital_stay" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer  [...]
 
-"clin.incoming_data_unmatchable" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left [...]
+"clin.incoming_data_unmatchable" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left [...]
 
-"clin.incoming_data_unmatched" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left"  [...]
+"clin.incoming_data_unmatched" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left"  [...]
 
-"clin.lab_request" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer </ [...]
+"clin.lab_request" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer </ [...]
 
-"clin.lnk_code2aoe" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer < [...]
+"clin.lnk_code2aoe" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer < [...]
 
-"clin.lnk_code2episode" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integ [...]
+"clin.lnk_code2episode" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integ [...]
 
-"clin.lnk_code2fhx" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer < [...]
+"clin.lnk_code2fhx" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer < [...]
 
-"clin.lnk_code2h_issue" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integ [...]
+"clin.lnk_code2h_issue" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integ [...]
 
 "clin.lnk_code2item_root" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > int [...]
 
-"clin.lnk_code2narrative" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > int [...]
+"clin.lnk_code2narrative" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > int [...]
 
-"clin.lnk_code2procedure" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > int [...]
+"clin.lnk_code2procedure" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > int [...]
 
-"clin.lnk_code2rfe" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer < [...]
+"clin.lnk_code2rfe" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer < [...]
 
-"clin.lnk_code2tst_pnl" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integ [...]
+"clin.lnk_code2tst_pnl" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integ [...]
 
-"clin.lnk_constraint2vacc_course" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="lef [...]
+"clin.lnk_constraint2vacc_course" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="lef [...]
 
-"clin.lnk_pat2vaccination_course" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="lef [...]
+"clin.lnk_pat2vaccination_course" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="lef [...]
 
 "clin.lnk_substance2episode" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" >  [...]
 
-"clin.lnk_tst2norm" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer < [...]
+"clin.lnk_tst2norm" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer < [...]
 
-"clin.lnk_type2item" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer  [...]
+"clin.lnk_type2item" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer  [...]
 
-"clin.lnk_vaccination_course2schedule" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align [...]
+"clin.lnk_vaccination_course2schedule" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align [...]
 
-"clin.lnk_vaccine2inds" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integ [...]
+"clin.lnk_vaccine2inds" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integ [...]
 
 "clin.meta_test_type" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk </TD><TD align="left" > serial </TD><TD align="left" > PK </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > abbrev </TD><TD align="left" > text </TD><TD ali [...]
 
-"clin.patient" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer </TD>< [...]
+"clin.patient" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer </TD>< [...]
 
-"clin.procedure" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer </TD [...]
+"clin.procedure" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer </TD [...]
 
 "clin.review_root" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer </ [...]
 
@@ -243,53 +242,51 @@ edge [
 
 "clin.soap_cat_ranks" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk </TD><TD align="left" > serial </TD><TD align="left" > PK </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > rank </TD><TD align="left" > integer </TD><TD al [...]
 
-"clin.substance_intake" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integ [...]
-
-"clin.suppressed_hint" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > intege [...]
+"clin.substance_intake" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integ [...]
 
-"clin.test_org" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer </TD> [...]
+"clin.suppressed_hint" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > intege [...]
 
-"clin.test_panel" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer </T [...]
+"clin.test_org" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer </TD> [...]
 
-"clin.test_result" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer </ [...]
+"clin.test_panel" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer </T [...]
 
-"clin.test_type" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer </TD [...]
+"clin.test_result" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer </ [...]
 
-"clin.vacc_indication" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > intege [...]
+"clin.test_type" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer </TD [...]
 
-"clin.vacc_route" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer </T [...]
+"clin.vacc_indication" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > intege [...]
 
-"clin.vaccination" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer </ [...]
+"clin.vacc_route" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer </T [...]
 
-"clin.vaccination_course" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > int [...]
+"clin.vaccination" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer </ [...]
 
-"clin.vaccination_course_constraint" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align=" [...]
+"clin.vaccination_course" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > int [...]
 
-"clin.vaccination_definition" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > [...]
+"clin.vaccination_course_constraint" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align=" [...]
 
-"clin.vaccination_schedule" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > i [...]
+"clin.vaccination_definition" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > [...]
 
-"clin.vaccine" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer </TD>< [...]
+"clin.vaccination_schedule" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > i [...]
 
-"clin.vaccine_batches" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > intege [...]
+"clin.vaccine" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer </TD>< [...]
 
-"clin.waiting_list" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer < [...]
+"clin.vaccine_batches" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > intege [...]
 
-"de_de.beh_fall_typ" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer  [...]
+"clin.waiting_list" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer < [...]
 
-"de_de.behandlungsfall" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk </TD><TD align="left" > serial </TD><TD align="left" > PK </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > fk_patient </TD><TD align="left" > integer </T [...]
+"de_de.beh_fall_typ" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer  [...]
 
 "de_de.kvk" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk </TD><TD align="left" > serial </TD><TD align="left" > PK </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > fk_patient </TD><TD align="left" > integer </TD><TD align= [...]
 
-"de_de.lab_test_gnr" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer  [...]
+"de_de.lab_test_gnr" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer  [...]
 
 "de_de.payment_method" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk </TD><TD align="left" > serial </TD><TD align="left" > PK </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > description </TD><TD align="left" > text </TD>< [...]
 
-"de_de.prax_geb_paid" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer [...]
+"de_de.prax_geb_paid" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer [...]
 
 "de_de.zuzahlungsbefreiung" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > id </TD><TD align="left" > serial </TD><TD align="left" > PK </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > id_patient </TD><TD align="left" > integer [...]
 
-"dem.address" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer </TD><T [...]
+"dem.address" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer </TD><T [...]
 
 "dem.address_type" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > id </TD><TD align="left" > serial </TD><TD align="left" > PK </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > name </TD><TD align="left" > text </TD><TD align="l [...]
 
@@ -299,59 +296,59 @@ edge [
 
 "dem.enum_ext_id_types" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk </TD><TD align="left" > serial </TD><TD align="left" > PK </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > name </TD><TD align="left" > text </TD><TD ali [...]
 
-"dem.gender_label" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer </ [...]
+"dem.gender_label" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer </ [...]
 
-"dem.identity" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer </TD>< [...]
+"dem.identity" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer </TD>< [...]
 
-"dem.identity_tag" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer </ [...]
+"dem.identity_tag" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer </ [...]
 
-"dem.inbox_item_category" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > int [...]
+"dem.inbox_item_category" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > int [...]
 
-"dem.inbox_item_type" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer [...]
+"dem.inbox_item_type" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer [...]
 
 "dem.lnk_identity2comm" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk </TD><TD align="left" > serial </TD><TD align="left" > PK </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > fk_identity </TD><TD align="left" > integer </ [...]
 
-"dem.lnk_identity2ext_id" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > int [...]
+"dem.lnk_identity2ext_id" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > int [...]
 
-"dem.lnk_job2person" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer  [...]
+"dem.lnk_job2person" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer  [...]
 
-"dem.lnk_org_unit2comm" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integ [...]
+"dem.lnk_org_unit2comm" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integ [...]
 
-"dem.lnk_org_unit2ext_id" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > int [...]
+"dem.lnk_org_unit2ext_id" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > int [...]
 
-"dem.lnk_person2relative" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > int [...]
+"dem.lnk_person2relative" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > int [...]
 
 "dem.lnk_person_org_address" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > id </TD><TD align="left" > serial </TD><TD align="left" > PK </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > id_identity </TD><TD align="left" > integ [...]
 
 "dem.marital_status" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk </TD><TD align="left" > serial </TD><TD align="left" > PK </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > name </TD><TD align="left" > text </TD><TD align= [...]
 
-"dem.message_inbox" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer < [...]
+"dem.message_inbox" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer < [...]
 
 "dem.name_gender_map" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > id </TD><TD align="left" > serial </TD><TD align="left" > PK </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > name </TD><TD align="left" > text </TD><TD align [...]
 
 "dem.names" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > id </TD><TD align="left" > serial </TD><TD align="left" > PK </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > id_identity </TD><TD align="left" > integer </TD><TD align [...]
 
-"dem.occupation" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer </TD [...]
+"dem.occupation" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer </TD [...]
 
-"dem.org" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer </TD><TD al [...]
+"dem.org" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer </TD><TD al [...]
 
 "dem.org_category" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk </TD><TD align="left" > serial </TD><TD align="left" > PK </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > description </TD><TD align="left" > text </TD><TD a [...]
 
-"dem.org_unit" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer </TD>< [...]
+"dem.org_unit" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer </TD>< [...]
 
-"dem.praxis_branch" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer < [...]
+"dem.praxis_branch" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer < [...]
 
-"dem.relation_types" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer  [...]
+"dem.region" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer </TD><TD [...]
 
-"dem.staff" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer </TD><TD  [...]
+"dem.relation_types" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer  [...]
 
-"dem.state" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer </TD><TD  [...]
+"dem.staff" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer </TD><TD  [...]
 
-"dem.street" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer </TD><TD [...]
+"dem.street" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer </TD><TD [...]
 
-"dem.urb" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer </TD><TD al [...]
+"dem.urb" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer </TD><TD al [...]
 
-"gm.access_log" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer </TD> [...]
+"gm.access_log" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer </TD> [...]
 
 "gm.notifying_tables" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk </TD><TD align="left" > serial </TD><TD align="left" > PK </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > schema_name </TD><TD align="left" > name </TD><T [...]
 
@@ -383,15 +380,15 @@ edge [
 
 "public.unit" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk </TD><TD align="left" > serial </TD><TD align="left" > PK </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > fk_basic_unit </TD><TD align="left" > integer </TD><TD a [...]
 
-"ref.atc" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_coding_system </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > code </TD><TD align="left" > text </TD><TD alig [...]
+"ref.atc" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_coding_system </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > code </TD><TD align="left" > text </TD><TD alig [...]
 
 "ref.atc_staging" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > atc </TD><TD align="left" > text </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > name </TD><TD align="left" > text </TD><TD align="left" [...]
 
-"ref.auto_hint" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer </TD> [...]
+"ref.auto_hint" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer </TD> [...]
 
 "ref.billable" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_coding_system </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > code </TD><TD align="left" > text </TD><TD [...]
 
-"ref.branded_drug" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer </ [...]
+"ref.branded_drug" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer </ [...]
 
 "ref.coda" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_coding_system </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > code </TD><TD align="left" > text </TD><TD ali [...]
 
@@ -399,9 +396,9 @@ edge [
 
 "ref.coding_system_root" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_coding_system </TD><TD align="left" > serial </TD><TD align="left" > PK </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > code </TD><TD align="left" > te [...]
 
-"ref.consumable_substance" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > in [...]
+"ref.consumable_substance" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > in [...]
 
-"ref.data_source" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer </T [...]
+"ref.data_source" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer </T [...]
 
 "ref.document_type" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk </TD><TD align="left" > serial </TD><TD align="left" > PK </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > scope </TD><TD align="left" > text </TD><TD align= [...]
 
@@ -421,7 +418,7 @@ edge [
 
 "ref.keyword_expansion" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk </TD><TD align="left" > serial </TD><TD align="left" > PK </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > fk_staff </TD><TD align="left" > integer </TD> [...]
 
-"ref.lnk_substance2brand" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > int [...]
+"ref.lnk_substance2brand" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > int [...]
 
 "ref.loinc" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_coding_system </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > code </TD><TD align="left" > text </TD><TD al [...]
 
@@ -431,9 +428,9 @@ edge [
 
 "ref.papersizes" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk </TD><TD align="left" > serial </TD><TD align="left" > PK </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > name </TD><TD align="left" > text </TD><TD align="lef [...]
 
-"ref.paperwork_templates" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > int [...]
+"ref.paperwork_templates" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > int [...]
 
-"ref.tag_image" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer </TD> [...]
+"ref.tag_image" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer </TD> [...]
 
 "staging.lab_request" [shape = plaintext, label = < <TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0"> <TR ><TD PORT="ltcol0"> </TD> <TD bgcolor="grey90" border="1" COLSPAN="4"> \N </TD> <TD PORT="rtcol0"></TD></TR>  <TR><TD PORT="ltcol1" ></TD><TD align="left" > pk_audit </TD><TD align="left" > integer </TD><TD align="left" >  </TD><TD align="left" >  </TD><TD align="left" PORT="rtcol1"> </TD></TR> <TR><TD PORT="ltcol2" ></TD><TD align="left" > row_version </TD><TD align="left" > integer [...]
 
@@ -443,23 +440,29 @@ edge [
 
 
 
+"au.referral":rtcol4 -> "dem.staff":ltcol7 [label="fk_au_referral_fk_modified_by"];
 "au.referral":rtcol7 -> "clin.encounter":ltcol5 [label="referral_fk_encounter_fkey"];
 "au.referral":rtcol8 -> "clin.episode":ltcol5 [label="referral_fk_episode_fkey"];
 "au.referral":rtcol12 -> "dem.identity":ltcol5 [label="referral_fk_referee_fkey"];
 "au.referral":rtcol13 -> "clin.form_instances":ltcol11 [label="referral_fk_form_fkey"];
+"bill.bill":rtcol4 -> "dem.staff":ltcol7 [label="fk_bill_bill_fk_modified_by"];
 "bill.bill":rtcol9 -> "dem.identity":ltcol5 [label="bill_fk_receiver_identity_fkey"];
 "bill.bill":rtcol10 -> "dem.lnk_person_org_address":ltcol1 [label="bill_fk_receiver_address_fkey"];
 "bill.bill":rtcol11 -> "blobs.doc_med":ltcol5 [label="bill_fk_doc_fkey"];
+"bill.bill_item":rtcol4 -> "dem.staff":ltcol7 [label="fk_bill_bill_item_fk_modified_by"];
 "bill.bill_item":rtcol6 -> "dem.staff":ltcol5 [label="bill_item_fk_provider_fkey"];
 "bill.bill_item":rtcol7 -> "clin.encounter":ltcol5 [label="bill_item_fk_encounter_fkey"];
 "bill.bill_item":rtcol13 -> "ref.billable":ltcol6 [label="bill_item_fk_billable_fkey"];
 "bill.bill_item":rtcol14 -> "bill.bill":ltcol5 [label="fk_bill_item_fk_bill"];
 "bill.lnk_enc_type2billable":rtcol2 -> "clin.encounter_type":ltcol1 [label="lnk_enc_type2billable_fk_encounter_type_fkey"];
 "bill.lnk_enc_type2billable":rtcol3 -> "ref.billable":ltcol6 [label="lnk_enc_type2billable_fk_billable_fkey"];
+"blobs.doc_desc":rtcol4 -> "dem.staff":ltcol7 [label="fk_blobs_doc_desc_fk_modified_by"];
 "blobs.doc_desc":rtcol6 -> "blobs.doc_med":ltcol5 [label="doc_desc_doc_id_fkey"];
+"blobs.doc_med":rtcol4 -> "dem.staff":ltcol7 [label="fk_blobs_doc_med_fk_modified_by"];
 "blobs.doc_med":rtcol6 -> "clin.encounter":ltcol5 [label="doc_med_fk_encounter_fkey"];
 "blobs.doc_med":rtcol7 -> "clin.episode":ltcol5 [label="doc_med_fk_episode_fkey"];
 "blobs.doc_med":rtcol8 -> "blobs.doc_type":ltcol1 [label="doc_med_type_fkey"];
+"blobs.doc_med":rtcol12 -> "dem.org_unit":ltcol5 [label="fk_blobs_doc_med_dem_org_unit_pk"];
 "blobs.doc_obj":rtcol2 -> "blobs.doc_med":ltcol5 [label="doc_obj_fk_doc_fkey"];
 "blobs.doc_obj":rtcol5 -> "dem.staff":ltcol5 [label="doc_obj_fk_intended_reviewer_fkey"];
 "blobs.lnk_doc2hospital_stay":rtcol6 -> "clin.hospital_stay":ltcol11 [label="lnk_doc2hospital_stay_fk_stay_fkey"];
@@ -473,145 +476,216 @@ edge [
 "cfg.cfg_str_array":rtcol1 -> "cfg.cfg_item":ltcol1 [label="cfg_str_array_fk_item_fkey"];
 "cfg.cfg_string":rtcol1 -> "cfg.cfg_item":ltcol1 [label="cfg_string_fk_item_fkey"];
 "cfg.cfg_template":rtcol3 -> "cfg.cfg_type_enum":ltcol1 [label="cfg_template_type_fkey"];
+"cfg.report_query":rtcol4 -> "dem.staff":ltcol7 [label="fk_cfg_report_query_fk_modified_by"];
+"clin.allergy":rtcol4 -> "dem.staff":ltcol7 [label="fk_clin_allergy_fk_modified_by"];
 "clin.allergy":rtcol7 -> "clin.encounter":ltcol5 [label="allergy_fk_encounter_fkey"];
 "clin.allergy":rtcol8 -> "clin.episode":ltcol5 [label="allergy_fk_episode_fkey"];
 "clin.allergy":rtcol17 -> "clin._enum_allergy_type":ltcol1 [label="allergy_id_type_fkey"];
+"clin.allergy_state":rtcol4 -> "dem.staff":ltcol7 [label="fk_clin_allergy_state_fk_modified_by"];
 "clin.allergy_state":rtcol9 -> "clin.encounter":ltcol5 [label="allergy_state_fk_encounter_fkey"];
+"clin.clin_aux_note":rtcol4 -> "dem.staff":ltcol7 [label="fk_clin_clin_aux_note_fk_modified_by"];
 "clin.clin_aux_note":rtcol7 -> "clin.encounter":ltcol5 [label="clin_aux_note_fk_encounter_fkey"];
 "clin.clin_aux_note":rtcol8 -> "clin.episode":ltcol5 [label="clin_aux_note_fk_episode_fkey"];
+"clin.clin_diag":rtcol4 -> "dem.staff":ltcol7 [label="fk_clin_clin_diag_fk_modified_by"];
 "clin.clin_diag":rtcol6 -> "clin.clin_narrative":ltcol11 [label="clin_diag_fk_narrative_fkey"];
+"clin.clin_item_type":rtcol4 -> "dem.staff":ltcol7 [label="fk_clin_clin_item_type_fk_modified_by"];
+"clin.clin_narrative":rtcol4 -> "dem.staff":ltcol7 [label="fk_clin_clin_narrative_fk_modified_by"];
 "clin.clin_narrative":rtcol7 -> "clin.encounter":ltcol5 [label="clin_narrative_fk_encounter_fkey"];
 "clin.clin_narrative":rtcol8 -> "clin.episode":ltcol5 [label="clin_narrative_fk_episode_fkey"];
 "clin.clin_root_item":rtcol7 -> "clin.encounter":ltcol5 [label="clin_root_item_fk_encounter_fkey"];
 "clin.clin_root_item":rtcol8 -> "clin.episode":ltcol5 [label="clin_root_item_fk_episode_fkey"];
+"clin.encounter":rtcol4 -> "dem.staff":ltcol7 [label="fk_clin_encounter_fk_modified_by"];
 "clin.encounter":rtcol6 -> "clin.patient":ltcol6 [label="fk_clin_encounter_fk_patient"];
 "clin.encounter":rtcol7 -> "clin.encounter_type":ltcol1 [label="encounter_fk_type_fkey"];
 "clin.encounter":rtcol8 -> "dem.org_unit":ltcol5 [label="encounter_fk_location_fkey"];
+"clin.episode":rtcol4 -> "dem.staff":ltcol7 [label="fk_clin_episode_fk_modified_by"];
 "clin.episode":rtcol6 -> "clin.health_issue":ltcol5 [label="episode_fk_health_issue_fkey"];
 "clin.episode":rtcol9 -> "clin.encounter":ltcol5 [label="episode_fk_encounter_fkey"];
 "clin.export_item":rtcol2 -> "clin.patient":ltcol6 [label="fk_clin_export_item_fk_identity"];
 "clin.export_item":rtcol7 -> "blobs.doc_obj":ltcol1 [label="fk_clin_export_item_fk_doc_obj"];
+"clin.external_care":rtcol4 -> "dem.staff":ltcol7 [label="fk_clin_external_care_fk_modified_by"];
 "clin.external_care":rtcol6 -> "clin.encounter":ltcol5 [label="fk_clin_external_care_fk_encounter"];
 "clin.external_care":rtcol7 -> "clin.health_issue":ltcol5 [label="fk_clin_ext_care_fk_health_issue"];
 "clin.external_care":rtcol9 -> "dem.org_unit":ltcol5 [label="fk_clin_ext_care_fk_org_unit"];
+"clin.family_history":rtcol4 -> "dem.staff":ltcol7 [label="fk_clin_family_history_fk_modified_by"];
 "clin.family_history":rtcol7 -> "clin.encounter":ltcol5 [label="clin_hx_family_fk_encounter_fkey"];
 "clin.family_history":rtcol8 -> "clin.episode":ltcol5 [label="clin_hx_family_fk_episode_fkey"];
 "clin.family_history":rtcol12 -> "clin.fhx_relation_type":ltcol5 [label="family_history_fk_relation_type_fkey"];
+"clin.fhx_relation_type":rtcol4 -> "dem.staff":ltcol7 [label="fk_clin_fhx_relation_type_fk_modified_by"];
+"clin.form_data":rtcol4 -> "dem.staff":ltcol7 [label="fk_clin_form_data_fk_modified_by"];
 "clin.form_data":rtcol6 -> "clin.form_instances":ltcol11 [label="form_data_fk_instance_fkey"];
 "clin.form_data":rtcol7 -> "public.form_fields":ltcol1 [label="form_data_fk_form_field_fkey"];
+"clin.form_instances":rtcol4 -> "dem.staff":ltcol7 [label="fk_clin_form_instances_fk_modified_by"];
 "clin.form_instances":rtcol7 -> "clin.encounter":ltcol5 [label="form_instances_fk_encounter_fkey"];
 "clin.form_instances":rtcol8 -> "clin.episode":ltcol5 [label="form_instances_fk_episode_fkey"];
 "clin.form_instances":rtcol12 -> "ref.paperwork_templates":ltcol5 [label="form_instances_fk_form_def_fkey"];
+"clin.health_issue":rtcol4 -> "dem.staff":ltcol7 [label="fk_clin_health_issue_fk_modified_by"];
 "clin.health_issue":rtcol13 -> "clin.encounter":ltcol5 [label="health_issue_fk_encounter_fkey"];
+"clin.hospital_stay":rtcol4 -> "dem.staff":ltcol7 [label="fk_clin_hospital_stay_fk_modified_by"];
 "clin.hospital_stay":rtcol7 -> "clin.encounter":ltcol5 [label="hospital_stay_fk_encounter_fkey"];
 "clin.hospital_stay":rtcol8 -> "clin.episode":ltcol5 [label="hospital_stay_fk_episode_fkey"];
 "clin.hospital_stay":rtcol13 -> "dem.org_unit":ltcol5 [label="hospital_stay_fk_org_unit_fkey"];
+"clin.incoming_data_unmatchable":rtcol4 -> "dem.staff":ltcol7 [label="fk_clin_incoming_data_unmatchable_fk_modified_by"];
+"clin.incoming_data_unmatched":rtcol4 -> "dem.staff":ltcol7 [label="fk_clin_incoming_data_unmatched_fk_modified_by"];
 "clin.incoming_data_unmatched":rtcol18 -> "clin.patient":ltcol6 [label="fk_incoming_data_unmatched_fk_identity_disambiguated"];
 "clin.incoming_data_unmatched":rtcol20 -> "dem.staff":ltcol5 [label="incoming_data_unmatched_fk_provider_disambiguated_fkey"];
+"clin.lab_request":rtcol4 -> "dem.staff":ltcol7 [label="fk_clin_lab_request_fk_modified_by"];
 "clin.lab_request":rtcol7 -> "clin.encounter":ltcol5 [label="lab_request_fk_encounter_fkey"];
 "clin.lab_request":rtcol8 -> "clin.episode":ltcol5 [label="lab_request_fk_episode_fkey"];
 "clin.lab_request":rtcol12 -> "clin.test_org":ltcol5 [label="lab_request_fk_test_org_fkey"];
 "clin.lab_request":rtcol14 -> "dem.identity":ltcol5 [label="lab_request_fk_requestor_fkey"];
+"clin.lnk_code2aoe":rtcol4 -> "dem.staff":ltcol7 [label="fk_clin_lnk_code2aoe_fk_modified_by"];
 "clin.lnk_code2aoe":rtcol7 -> "clin.encounter":ltcol5 [label="lnk_code2aoe_fk_item_fkey"];
+"clin.lnk_code2episode":rtcol4 -> "dem.staff":ltcol7 [label="fk_clin_lnk_code2episode_fk_modified_by"];
 "clin.lnk_code2episode":rtcol7 -> "clin.episode":ltcol5 [label="lnk_code2episode_fk_item_fkey"];
+"clin.lnk_code2fhx":rtcol4 -> "dem.staff":ltcol7 [label="fk_clin_lnk_code2fhx_fk_modified_by"];
 "clin.lnk_code2fhx":rtcol7 -> "clin.family_history":ltcol11 [label="lnk_code2fhx_fk_item_fkey"];
+"clin.lnk_code2h_issue":rtcol4 -> "dem.staff":ltcol7 [label="fk_clin_lnk_code2h_issue_fk_modified_by"];
 "clin.lnk_code2h_issue":rtcol7 -> "clin.health_issue":ltcol5 [label="lnk_code2h_issue_fk_item_fkey"];
+"clin.lnk_code2narrative":rtcol4 -> "dem.staff":ltcol7 [label="fk_clin_lnk_code2narrative_fk_modified_by"];
 "clin.lnk_code2narrative":rtcol7 -> "clin.clin_narrative":ltcol11 [label="lnk_code2narrative_fk_item_fkey"];
+"clin.lnk_code2procedure":rtcol4 -> "dem.staff":ltcol7 [label="fk_clin_lnk_code2procedure_fk_modified_by"];
 "clin.lnk_code2procedure":rtcol7 -> "clin.procedure":ltcol11 [label="lnk_code2procedure_fk_item_fkey"];
+"clin.lnk_code2rfe":rtcol4 -> "dem.staff":ltcol7 [label="fk_clin_lnk_code2rfe_fk_modified_by"];
 "clin.lnk_code2rfe":rtcol7 -> "clin.encounter":ltcol5 [label="lnk_code2rfe_fk_item_fkey"];
+"clin.lnk_code2tst_pnl":rtcol4 -> "dem.staff":ltcol7 [label="fk_clin_lnk_code2tst_pnl_fk_modified_by"];
 "clin.lnk_code2tst_pnl":rtcol7 -> "clin.test_panel":ltcol5 [label="lnk_code2tst_pnl_fk_item_fkey"];
+"clin.lnk_constraint2vacc_course":rtcol4 -> "dem.staff":ltcol7 [label="fk_clin_lnk_constraint2vacc_course_fk_modified_by"];
 "clin.lnk_constraint2vacc_course":rtcol6 -> "clin.vaccination_course":ltcol5 [label="lnk_constraint2vacc_course_fk_vaccination_course_fkey"];
 "clin.lnk_constraint2vacc_course":rtcol7 -> "clin.vaccination_course_constraint":ltcol5 [label="lnk_constraint2vacc_course_fk_constraint_fkey"];
+"clin.lnk_pat2vaccination_course":rtcol4 -> "dem.staff":ltcol7 [label="fk_clin_lnk_pat2vaccination_course_fk_modified_by"];
 "clin.lnk_pat2vaccination_course":rtcol6 -> "clin.patient":ltcol6 [label="fk_lnk_pat2vaccination_course_fk_patient"];
 "clin.lnk_pat2vaccination_course":rtcol7 -> "clin.vaccination_course":ltcol5 [label="lnk_pat2vaccination_course_fk_course_fkey"];
 "clin.lnk_substance2episode":rtcol6 -> "clin.episode":ltcol5 [label="lnk_substance2episode_fk_episode_fkey"];
 "clin.lnk_substance2episode":rtcol7 -> "clin.substance_intake":ltcol11 [label="lnk_substance2episode_fk_substance_fkey"];
+"clin.lnk_tst2norm":rtcol4 -> "dem.staff":ltcol7 [label="fk_clin_lnk_tst2norm_fk_modified_by"];
 "clin.lnk_tst2norm":rtcol6 -> "clin.test_type":ltcol5 [label="lnk_tst2norm_id_test_fkey"];
+"clin.lnk_type2item":rtcol4 -> "dem.staff":ltcol7 [label="fk_clin_lnk_type2item_fk_modified_by"];
 "clin.lnk_type2item":rtcol6 -> "clin.clin_item_type":ltcol5 [label="lnk_type2item_fk_type_fkey"];
+"clin.lnk_vaccination_course2schedule":rtcol4 -> "dem.staff":ltcol7 [label="fk_clin_lnk_vaccination_course2schedule_fk_modified_by"];
 "clin.lnk_vaccination_course2schedule":rtcol6 -> "clin.vaccination_course":ltcol5 [label="lnk_vaccination_course2schedule_fk_course_fkey"];
 "clin.lnk_vaccination_course2schedule":rtcol7 -> "clin.vaccination_schedule":ltcol5 [label="lnk_vaccination_course2schedule_fk_schedule_fkey"];
+"clin.lnk_vaccine2inds":rtcol4 -> "dem.staff":ltcol7 [label="fk_clin_lnk_vaccine2inds_fk_modified_by"];
 "clin.lnk_vaccine2inds":rtcol6 -> "clin.vaccine":ltcol5 [label="lnk_vaccine2inds_fk_vaccine_fkey"];
 "clin.lnk_vaccine2inds":rtcol7 -> "clin.vacc_indication":ltcol5 [label="lnk_vaccine2inds_fk_indication_fkey"];
+"clin.patient":rtcol4 -> "dem.staff":ltcol7 [label="fk_clin_patient_fk_modified_by"];
 "clin.patient":rtcol6 -> "dem.identity":ltcol5 [label="fk_clin_patient_fk_identity"];
+"clin.procedure":rtcol4 -> "dem.staff":ltcol7 [label="fk_clin_procedure_fk_modified_by"];
 "clin.procedure":rtcol7 -> "clin.encounter":ltcol5 [label="procedure_fk_encounter_fkey"];
 "clin.procedure":rtcol8 -> "clin.episode":ltcol5 [label="procedure_fk_episode_fkey"];
-"clin.procedure":rtcol13 -> "clin.hospital_stay":ltcol11 [label="procedure_fk_hospital_stay_fkey"];
-"clin.procedure":rtcol16 -> "dem.org_unit":ltcol5 [label="procedure_fk_org_unit_fkey"];
+"clin.procedure":rtcol12 -> "clin.hospital_stay":ltcol11 [label="procedure_fk_hospital_stay_fkey"];
+"clin.procedure":rtcol15 -> "dem.org_unit":ltcol5 [label="procedure_fk_org_unit_fkey"];
 "clin.review_root":rtcol7 -> "dem.staff":ltcol5 [label="review_root_fk_reviewer_fkey"];
 "clin.reviewed_test_results":rtcol6 -> "clin.test_result":ltcol11 [label="reviewed_test_results_fk_reviewed_row_fkey"];
 "clin.reviewed_test_results":rtcol7 -> "dem.staff":ltcol5 [label="reviewed_test_results_fk_reviewer_fkey"];
+"clin.substance_intake":rtcol4 -> "dem.staff":ltcol7 [label="fk_clin_substance_intake_fk_modified_by"];
 "clin.substance_intake":rtcol7 -> "clin.encounter":ltcol5 [label="substance_intake_fk_encounter_fkey"];
 "clin.substance_intake":rtcol8 -> "clin.episode":ltcol5 [label="substance_intake_fk_episode_fkey"];
 "clin.substance_intake":rtcol12 -> "ref.consumable_substance":ltcol5 [label="substance_intake_fk_substance_fkey"];
 "clin.substance_intake":rtcol21 -> "ref.lnk_substance2brand":ltcol5 [label="substance_intake_fk_drug_component_fkey"];
+"clin.suppressed_hint":rtcol4 -> "dem.staff":ltcol7 [label="fk_clin_suppressed_hint_fk_modified_by"];
 "clin.suppressed_hint":rtcol6 -> "clin.encounter":ltcol5 [label="fk_clin_suppressed_hint_fk_encounter"];
 "clin.suppressed_hint":rtcol7 -> "ref.auto_hint":ltcol5 [label="fk_clin_suppressed_hint_fk_hint"];
+"clin.test_org":rtcol4 -> "dem.staff":ltcol7 [label="fk_clin_test_org_fk_modified_by"];
 "clin.test_org":rtcol6 -> "dem.org_unit":ltcol5 [label="test_org_fk_org_unit_fkey"];
 "clin.test_org":rtcol7 -> "dem.identity":ltcol5 [label="test_org_fk_adm_contact_fkey"];
 "clin.test_org":rtcol8 -> "dem.identity":ltcol5 [label="test_org_fk_med_contact_fkey"];
+"clin.test_panel":rtcol4 -> "dem.staff":ltcol7 [label="fk_clin_test_panel_fk_modified_by"];
+"clin.test_result":rtcol4 -> "dem.staff":ltcol7 [label="fk_clin_test_result_fk_modified_by"];
 "clin.test_result":rtcol7 -> "clin.encounter":ltcol5 [label="test_result_fk_encounter_fkey"];
 "clin.test_result":rtcol8 -> "clin.episode":ltcol5 [label="test_result_fk_episode_fkey"];
 "clin.test_result":rtcol12 -> "clin.test_type":ltcol5 [label="test_result_fk_type_fkey"];
 "clin.test_result":rtcol27 -> "dem.staff":ltcol5 [label="test_result_fk_intended_reviewer_fkey"];
 "clin.test_result":rtcol28 -> "clin.lab_request":ltcol11 [label="test_result_fk_request_fkey"];
+"clin.test_type":rtcol4 -> "dem.staff":ltcol7 [label="fk_clin_test_type_fk_modified_by"];
 "clin.test_type":rtcol6 -> "clin.test_org":ltcol5 [label="test_type_fk_test_org_fkey"];
 "clin.test_type":rtcol12 -> "clin.meta_test_type":ltcol1 [label="test_type_fk_meta_test_type_fkey"];
+"clin.vacc_indication":rtcol4 -> "dem.staff":ltcol7 [label="fk_clin_vacc_indication_fk_modified_by"];
+"clin.vacc_route":rtcol4 -> "dem.staff":ltcol7 [label="fk_clin_vacc_route_fk_modified_by"];
+"clin.vaccination":rtcol4 -> "dem.staff":ltcol7 [label="fk_clin_vaccination_fk_modified_by"];
 "clin.vaccination":rtcol7 -> "clin.encounter":ltcol5 [label="vaccination_fk_encounter_fkey"];
 "clin.vaccination":rtcol8 -> "clin.episode":ltcol5 [label="vaccination_fk_episode_fkey"];
 "clin.vaccination":rtcol12 -> "dem.staff":ltcol5 [label="vaccination_fk_provider_fkey"];
 "clin.vaccination":rtcol13 -> "clin.vaccine":ltcol5 [label="vaccination_fk_vaccine_fkey"];
+"clin.vaccination_course":rtcol4 -> "dem.staff":ltcol7 [label="fk_clin_vaccination_course_fk_modified_by"];
 "clin.vaccination_course":rtcol7 -> "clin.vacc_indication":ltcol5 [label="vaccination_course_fk_indication_fkey"];
+"clin.vaccination_course_constraint":rtcol4 -> "dem.staff":ltcol7 [label="fk_clin_vaccination_course_constraint_fk_modified_by"];
+"clin.vaccination_definition":rtcol4 -> "dem.staff":ltcol7 [label="fk_clin_vaccination_definition_fk_modified_by"];
 "clin.vaccination_definition":rtcol6 -> "clin.vaccination_course":ltcol5 [label="vaccination_definition_fk_course_fkey"];
+"clin.vaccination_schedule":rtcol4 -> "dem.staff":ltcol7 [label="fk_clin_vaccination_schedule_fk_modified_by"];
+"clin.vaccine":rtcol4 -> "dem.staff":ltcol7 [label="fk_clin_vaccine_fk_modified_by"];
 "clin.vaccine":rtcol6 -> "clin.vacc_route":ltcol5 [label="vaccine_id_route_fkey"];
 "clin.vaccine":rtcol11 -> "ref.branded_drug":ltcol5 [label="vaccine_fk_brand_fkey"];
+"clin.vaccine_batches":rtcol4 -> "dem.staff":ltcol7 [label="fk_clin_vaccine_batches_fk_modified_by"];
 "clin.vaccine_batches":rtcol6 -> "clin.vaccine":ltcol5 [label="vaccine_batches_fk_vaccine_fkey"];
+"clin.waiting_list":rtcol4 -> "dem.staff":ltcol7 [label="fk_clin_waiting_list_fk_modified_by"];
 "clin.waiting_list":rtcol6 -> "dem.identity":ltcol5 [label="waiting_list_fk_patient_fkey"];
-"de_de.behandlungsfall":rtcol2 -> "dem.identity":ltcol5 [label="behandlungsfall_fk_patient_fkey"];
-"de_de.behandlungsfall":rtcol3 -> "de_de.beh_fall_typ":ltcol5 [label="behandlungsfall_fk_falltyp_fkey"];
+"de_de.beh_fall_typ":rtcol4 -> "dem.staff":ltcol7 [label="fk_de_de_beh_fall_typ_fk_modified_by"];
 "de_de.kvk":rtcol2 -> "dem.identity":ltcol5 [label="kvk_fk_patient_fkey"];
+"de_de.lab_test_gnr":rtcol4 -> "dem.staff":ltcol7 [label="fk_de_de_lab_test_gnr_fk_modified_by"];
 "de_de.lab_test_gnr":rtcol6 -> "clin.test_type":ltcol5 [label="lab_test_gnr_id_test_fkey"];
-"de_de.prax_geb_paid":rtcol6 -> "de_de.behandlungsfall":ltcol1 [label="prax_geb_paid_fk_fall_fkey"];
+"de_de.prax_geb_paid":rtcol4 -> "dem.staff":ltcol7 [label="fk_de_de_prax_geb_paid_fk_modified_by"];
 "de_de.prax_geb_paid":rtcol9 -> "de_de.payment_method":ltcol1 [label="prax_geb_paid_paid_with_fkey"];
 "de_de.zuzahlungsbefreiung":rtcol2 -> "dem.identity":ltcol5 [label="zuzahlungsbefreiung_id_patient_fkey"];
+"dem.address":rtcol4 -> "dem.staff":ltcol7 [label="fk_dem_address_fk_modified_by"];
 "dem.address":rtcol6 -> "dem.street":ltcol5 [label="address_id_street_fkey"];
+"dem.gender_label":rtcol4 -> "dem.staff":ltcol7 [label="fk_dem_gender_label_fk_modified_by"];
+"dem.identity":rtcol4 -> "dem.staff":ltcol7 [label="fk_dem_identity_fk_modified_by"];
 "dem.identity":rtcol8 -> "dem.gender_label":ltcol6 [label="identity_gender_fkey"];
-"dem.identity":rtcol11 -> "dem.marital_status":ltcol1 [label="identity_fk_marital_status_fkey"];
-"dem.identity":rtcol17 -> "dem.identity":ltcol5 [label="identity_fk_emergency_contact_fkey"];
-"dem.identity":rtcol19 -> "dem.staff":ltcol5 [label="identity_fk_primary_provider_fkey"];
+"dem.identity":rtcol10 -> "dem.marital_status":ltcol1 [label="identity_fk_marital_status_fkey"];
+"dem.identity":rtcol16 -> "dem.identity":ltcol5 [label="identity_fk_emergency_contact_fkey"];
+"dem.identity":rtcol18 -> "dem.staff":ltcol5 [label="identity_fk_primary_provider_fkey"];
+"dem.identity_tag":rtcol4 -> "dem.staff":ltcol7 [label="fk_dem_identity_tag_fk_modified_by"];
 "dem.identity_tag":rtcol6 -> "dem.identity":ltcol5 [label="identity_tag_fk_identity_fkey"];
 "dem.identity_tag":rtcol7 -> "ref.tag_image":ltcol5 [label="identity_tag_fk_tag_fkey"];
+"dem.inbox_item_category":rtcol4 -> "dem.staff":ltcol7 [label="fk_dem_inbox_item_category_fk_modified_by"];
+"dem.inbox_item_type":rtcol4 -> "dem.staff":ltcol7 [label="fk_dem_inbox_item_type_fk_modified_by"];
 "dem.inbox_item_type":rtcol6 -> "dem.inbox_item_category":ltcol5 [label="inbox_item_type_fk_inbox_item_category_fkey"];
 "dem.lnk_identity2comm":rtcol2 -> "dem.identity":ltcol5 [label="lnk_identity2comm_id_identity_fkey"];
 "dem.lnk_identity2comm":rtcol3 -> "dem.address":ltcol5 [label="lnk_identity2comm_id_address_fkey"];
 "dem.lnk_identity2comm":rtcol5 -> "dem.enum_comm_types":ltcol1 [label="lnk_identity2comm_id_type_fkey"];
+"dem.lnk_identity2ext_id":rtcol4 -> "dem.staff":ltcol7 [label="fk_dem_lnk_identity2ext_id_fk_modified_by"];
 "dem.lnk_identity2ext_id":rtcol6 -> "dem.identity":ltcol5 [label="lnk_identity2ext_id_id_identity_fkey"];
 "dem.lnk_identity2ext_id":rtcol8 -> "dem.enum_ext_id_types":ltcol1 [label="lnk_identity2ext_id_fk_origin_fkey"];
+"dem.lnk_job2person":rtcol4 -> "dem.staff":ltcol7 [label="fk_dem_lnk_job2person_fk_modified_by"];
 "dem.lnk_job2person":rtcol6 -> "dem.identity":ltcol5 [label="lnk_job2person_fk_identity_fkey"];
 "dem.lnk_job2person":rtcol7 -> "dem.occupation":ltcol5 [label="lnk_job2person_fk_occupation_fkey"];
+"dem.lnk_org_unit2comm":rtcol4 -> "dem.staff":ltcol7 [label="fk_dem_lnk_org_unit2comm_fk_modified_by"];
 "dem.lnk_org_unit2comm":rtcol6 -> "dem.org_unit":ltcol5 [label="lnk_org_unit2comm_fk_org_unit_fkey"];
 "dem.lnk_org_unit2comm":rtcol8 -> "dem.enum_comm_types":ltcol1 [label="lnk_org_unit2comm_fk_type_fkey"];
+"dem.lnk_org_unit2ext_id":rtcol4 -> "dem.staff":ltcol7 [label="fk_dem_lnk_org_unit2ext_id_fk_modified_by"];
 "dem.lnk_org_unit2ext_id":rtcol6 -> "dem.org_unit":ltcol5 [label="lnk_org_unit2ext_id_fk_org_unit_fkey"];
 "dem.lnk_org_unit2ext_id":rtcol8 -> "dem.enum_ext_id_types":ltcol1 [label="lnk_org_unit2ext_id_fk_type_fkey"];
+"dem.lnk_person2relative":rtcol4 -> "dem.staff":ltcol7 [label="fk_dem_lnk_person2relative_fk_modified_by"];
 "dem.lnk_person2relative":rtcol6 -> "dem.identity":ltcol5 [label="lnk_person2relative_id_identity_fkey"];
 "dem.lnk_person2relative":rtcol7 -> "dem.identity":ltcol5 [label="lnk_person2relative_id_relative_fkey"];
 "dem.lnk_person2relative":rtcol8 -> "dem.relation_types":ltcol5 [label="lnk_person2relative_id_relation_type_fkey"];
 "dem.lnk_person_org_address":rtcol2 -> "dem.identity":ltcol5 [label="lnk_person_org_address_id_identity_fkey"];
 "dem.lnk_person_org_address":rtcol3 -> "dem.address":ltcol5 [label="lnk_person_org_address_id_address_fkey"];
 "dem.lnk_person_org_address":rtcol4 -> "dem.address_type":ltcol1 [label="lnk_person_org_address_id_type_fkey"];
+"dem.message_inbox":rtcol4 -> "dem.staff":ltcol7 [label="fk_dem_message_inbox_fk_modified_by"];
 "dem.message_inbox":rtcol6 -> "dem.staff":ltcol5 [label="provider_inbox_fk_staff_fkey"];
 "dem.message_inbox":rtcol7 -> "dem.inbox_item_type":ltcol5 [label="provider_inbox_fk_inbox_item_type_fkey"];
 "dem.message_inbox":rtcol11 -> "dem.identity":ltcol5 [label="message_inbox_fk_patient_fkey"];
 "dem.names":rtcol2 -> "dem.identity":ltcol5 [label="names_id_identity_fkey"];
+"dem.occupation":rtcol4 -> "dem.staff":ltcol7 [label="fk_dem_occupation_fk_modified_by"];
+"dem.org":rtcol4 -> "dem.staff":ltcol7 [label="fk_dem_org_fk_modified_by"];
 "dem.org":rtcol7 -> "dem.org_category":ltcol1 [label="org_fk_category_fkey"];
 "dem.org":rtcol8 -> "ref.data_source":ltcol5 [label="org_fk_data_source_fkey"];
+"dem.org_unit":rtcol4 -> "dem.staff":ltcol7 [label="fk_dem_org_unit_fk_modified_by"];
 "dem.org_unit":rtcol7 -> "dem.org":ltcol5 [label="org_unit_fk_org_fkey"];
 "dem.org_unit":rtcol8 -> "dem.address":ltcol5 [label="org_unit_fk_address_fkey"];
 "dem.org_unit":rtcol9 -> "dem.org_category":ltcol1 [label="org_unit_fk_category_fkey"];
+"dem.praxis_branch":rtcol4 -> "dem.staff":ltcol7 [label="fk_dem_praxis_branch_fk_modified_by"];
+"dem.region":rtcol4 -> "dem.staff":ltcol7 [label="fk_dem_region_fk_modified_by"];
+"dem.region":rtcol7 -> "dem.country":ltcol2 [label="state_country_fkey"];
+"dem.relation_types":rtcol4 -> "dem.staff":ltcol7 [label="fk_dem_relation_types_fk_modified_by"];
 "dem.relation_types":rtcol6 -> "dem.relation_types":ltcol5 [label="relation_types_inverse_fkey"];
 "dem.staff":rtcol6 -> "dem.identity":ltcol5 [label="staff_fk_identity_fkey"];
-"dem.state":rtcol7 -> "dem.country":ltcol2 [label="state_country_fkey"];
+"dem.street":rtcol4 -> "dem.staff":ltcol7 [label="fk_dem_street_fk_modified_by"];
 "dem.street":rtcol6 -> "dem.urb":ltcol5 [label="street_id_urb_fkey"];
-"dem.urb":rtcol6 -> "dem.state":ltcol5 [label="urb_id_state_fkey"];
+"dem.urb":rtcol4 -> "dem.staff":ltcol7 [label="fk_dem_urb_fk_modified_by"];
+"dem.urb":rtcol6 -> "dem.region":ltcol5 [label="fk_dem_urb_dem_region_pk"];
 "public.form_fields":rtcol2 -> "ref.paperwork_templates":ltcol5 [label="form_fields_fk_form_fkey"];
 "public.form_fields":rtcol6 -> "public.form_field_types":ltcol2 [label="form_fields_fk_type_fkey"];
 "public.form_job_queue":rtcol2 -> "clin.form_instances":ltcol11 [label="form_job_queue_fk_form_instance_fkey"];
@@ -619,10 +693,14 @@ edge [
 "public.form_print_defs":rtcol3 -> "ref.papersizes":ltcol1 [label="form_print_defs_fk_papersize_fkey"];
 "public.unit":rtcol2 -> "public.basic_unit":ltcol1 [label="unit_fk_basic_unit_fkey"];
 "ref.atc":rtcol4 -> "ref.data_source":ltcol5 [label="atc_fk_data_source_fkey"];
+"ref.auto_hint":rtcol4 -> "dem.staff":ltcol7 [label="fk_ref_auto_hint_fk_modified_by"];
 "ref.billable":rtcol4 -> "ref.data_source":ltcol5 [label="billable_fk_data_source_fkey"];
+"ref.branded_drug":rtcol4 -> "dem.staff":ltcol7 [label="fk_ref_branded_drug_fk_modified_by"];
 "ref.branded_drug":rtcol10 -> "ref.data_source":ltcol5 [label="branded_drug_fk_data_source_fkey"];
 "ref.coda":rtcol4 -> "ref.data_source":ltcol5 [label="coda_fk_data_source_fkey"];
 "ref.coding_system_root":rtcol4 -> "ref.data_source":ltcol5 [label="coding_system_root_fk_data_source_fkey"];
+"ref.consumable_substance":rtcol4 -> "dem.staff":ltcol7 [label="fk_ref_consumable_substance_fk_modified_by"];
+"ref.data_source":rtcol4 -> "dem.staff":ltcol7 [label="fk_ref_data_source_fk_modified_by"];
 "ref.icd10":rtcol4 -> "ref.data_source":ltcol5 [label="icd10_fk_data_source_fkey"];
 "ref.icd9":rtcol4 -> "ref.data_source":ltcol5 [label="icd9_fk_data_source_fkey"];
 "ref.icpc":rtcol4 -> "ref.data_source":ltcol5 [label="icpc_fk_data_source_fkey"];
@@ -630,12 +708,15 @@ edge [
 "ref.icpc":rtcol15 -> "ref.icpc_chapter":ltcol2 [label="icpc_fk_chapter_fkey"];
 "ref.icpc_thesaurus":rtcol2 -> "ref.icpc":ltcol1 [label="icpc_thesaurus_fk_code_fkey"];
 "ref.keyword_expansion":rtcol2 -> "dem.staff":ltcol5 [label="keyword_expansion_fk_staff_fkey"];
+"ref.lnk_substance2brand":rtcol4 -> "dem.staff":ltcol7 [label="fk_ref_lnk_substance2brand_fk_modified_by"];
 "ref.lnk_substance2brand":rtcol6 -> "ref.branded_drug":ltcol5 [label="lnk_substance2brand_fk_brand_fkey"];
 "ref.lnk_substance2brand":rtcol7 -> "ref.consumable_substance":ltcol5 [label="lnk_substance2brand_fk_substance_fkey"];
 "ref.loinc":rtcol4 -> "ref.data_source":ltcol5 [label="loinc_fk_data_source_fkey"];
 "ref.ops":rtcol4 -> "ref.data_source":ltcol5 [label="ops_fk_data_source_fkey"];
 "ref.other_code":rtcol4 -> "ref.data_source":ltcol5 [label="other_code_fk_data_source_fkey"];
+"ref.paperwork_templates":rtcol4 -> "dem.staff":ltcol7 [label="fk_ref_paperwork_templates_fk_modified_by"];
 "ref.paperwork_templates":rtcol6 -> "ref.form_types":ltcol2 [label="paperwork_templates_fk_template_type_fkey"];
+"ref.tag_image":rtcol4 -> "dem.staff":ltcol7 [label="fk_ref_tag_image_fk_modified_by"];
 "staging.lab_request":rtcol11 -> "clin.test_org":ltcol5 [label="lab_request_fk_test_org_fkey"];
 "staging.test_result":rtcol27 -> "staging.lab_request":ltcol10 [label="test_result_fk_request_fkey"];
 }
diff --git a/client/doc/schema/gnumed-entire_schema.html b/client/doc/schema/gnumed-entire_schema.html
index 713c711..a189b0f 100644
--- a/client/doc/schema/gnumed-entire_schema.html
+++ b/client/doc/schema/gnumed-entire_schema.html
@@ -4,7 +4,7 @@
 
 <html>
   <head>
-    <title>Index for gnumed_v20</title>
+    <title>Index for gnumed_v21</title>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
     <style type="text/css">
 	BODY {
@@ -104,16 +104,16 @@
 		font-size: 12px;
 	}
     </style>
-    <link rel="stylesheet" type="text/css" media="all" href="http://publicdb.gnumed.de/~ncq/gnumed/schema/gnumed_v20/all.css">
-    <link rel="stylesheet" type="text/css" media="screen" href="http://publicdb.gnumed.de/~ncq/gnumed/schema/gnumed_v20/screen.css">
-    <link rel="stylesheet" type="text/css" media="print" href="http://publicdb.gnumed.de/~ncq/gnumed/schema/gnumed_v20/print.css">
+    <link rel="stylesheet" type="text/css" media="all" href="http://publicdb.gnumed.de/~ncq/gnumed/schema/gnumed_v21/all.css">
+    <link rel="stylesheet" type="text/css" media="screen" href="http://publicdb.gnumed.de/~ncq/gnumed/schema/gnumed_v21/screen.css">
+    <link rel="stylesheet" type="text/css" media="print" href="http://publicdb.gnumed.de/~ncq/gnumed/schema/gnumed_v21/print.css">
     <meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
   </head>
   <body>
 
     <!-- Primary Index -->
-	<p><br><br>Dumped on 2016-01-27</p>
-<h1><a name="index">Index of database - gnumed_v20</a></h1>
+	<p><br><br>Dumped on 2016-03-17</p>
+<h1><a name="index">Index of database - gnumed_v21</a></h1>
 <ul>
     
     <li><a name="au.schema">au</a></li><ul>
@@ -122,8 +122,8 @@
     </ul>
     
     <li><a name="audit.schema">audit</a></li><ul>
-    	<li><a href="gnumed-entire_schema.html#audit.table.audit-fields">audit_fields</a></li><li><a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a></li><li><a href="gnumed-entire_schema.html#audit.table.audited-tables">audited_tables</a></li><li><a href="gnumed-entire_schema.html#audit.table.log-access-log">log_access_log</a></li><li><a href="gnumed-entire_schema.html#audit.table.log-address">log_address</a></li><li><a href="gnumed-entire_schema.html#audit.table.lo [...]
-  	<li><a href="gnumed-entire_schema.html#audit.function.add-table-for-audit-name">add_table_for_audit(name)</a></li><li><a href="gnumed-entire_schema.html#audit.function.add-table-for-audit-name-name">add_table_for_audit(name, name)</a></li><li><a href="gnumed-entire_schema.html#audit.function.ft-del-access-log">ft_del_access_log()</a></li><li><a href="gnumed-entire_schema.html#audit.function.ft-del-active-substance">ft_del_active_substance()</a></li><li><a href="gnumed-entire_schema.ht [...]
+    	<li><a href="gnumed-entire_schema.html#audit.table.audit-fields">audit_fields</a></li><li><a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a></li><li><a href="gnumed-entire_schema.html#audit.table.audited-tables">audited_tables</a></li><li><a href="gnumed-entire_schema.html#audit.table.log-access-log">log_access_log</a></li><li><a href="gnumed-entire_schema.html#audit.table.log-address">log_address</a></li><li><a href="gnumed-entire_schema.html#audit.table.lo [...]
+  	<li><a href="gnumed-entire_schema.html#audit.function.add-table-for-audit-name">add_table_for_audit(name)</a></li><li><a href="gnumed-entire_schema.html#audit.function.add-table-for-audit-name-name">add_table_for_audit(name, name)</a></li><li><a href="gnumed-entire_schema.html#audit.function.ft-del-access-log">ft_del_access_log()</a></li><li><a href="gnumed-entire_schema.html#audit.function.ft-del-active-substance">ft_del_active_substance()</a></li><li><a href="gnumed-entire_schema.ht [...]
     </ul>
     
     <li><a name="bill.schema">bill</a></li><ul>
@@ -142,23 +142,23 @@
     </ul>
     
     <li><a name="clin.schema">clin</a></li><ul>
-    	<li><a href="gnumed-entire_schema.html#clin.table.-enum-allergy-type">_enum_allergy_type</a></li><li><a href="gnumed-entire_schema.html#clin.table.allergy">allergy</a></li><li><a href="gnumed-entire_schema.html#clin.table.allergy-state">allergy_state</a></li><li><a href="gnumed-entire_schema.html#clin.table.clin-aux-note">clin_aux_note</a></li><li><a href="gnumed-entire_schema.html#clin.table.clin-diag">clin_diag</a></li><li><a href="gnumed-entire_schema.html#clin.table.clin-item-ty [...]
-  	<li><a href="gnumed-entire_schema.html#clin.function.add-coded-phrase-text-text-text">add_coded_phrase(text, text, text)</a></li><li><a href="gnumed-entire_schema.html#clin.function.f-del-booster-must-have-base-immunity">f_del_booster_must_have_base_immunity()</a></li><li><a href="gnumed-entire_schema.html#clin.function.f-fk-reviewer-default">f_fk_reviewer_default()</a></li><li><a href="gnumed-entire_schema.html#clin.function.f-ins-booster-must-have-base-immunity">f_ins_booster_must_h [...]
+    	<li><a href="gnumed-entire_schema.html#clin.table.-enum-allergy-type">_enum_allergy_type</a></li><li><a href="gnumed-entire_schema.html#clin.table.allergy">allergy</a></li><li><a href="gnumed-entire_schema.html#clin.table.allergy-state">allergy_state</a></li><li><a href="gnumed-entire_schema.html#clin.table.clin-aux-note">clin_aux_note</a></li><li><a href="gnumed-entire_schema.html#clin.table.clin-diag">clin_diag</a></li><li><a href="gnumed-entire_schema.html#clin.table.clin-item-ty [...]
+  	<li><a href="gnumed-entire_schema.html#clin.function.-get-recommendation-for-patient-hint-text-integer">_get_recommendation_for_patient_hint(text, integer)</a></li><li><a href="gnumed-entire_schema.html#clin.function.add-coded-phrase-text-text-text">add_coded_phrase(text, text, text)</a></li><li><a href="gnumed-entire_schema.html#clin.function.f-del-booster-must-have-base-immunity">f_del_booster_must_have_base_immunity()</a></li><li><a href="gnumed-entire_schema.html#clin.function.f-f [...]
     </ul>
     
     <li><a name="de-de.schema">de_de</a></li><ul>
-    	<li><a href="gnumed-entire_schema.html#de-de.table.beh-fall-typ">beh_fall_typ</a></li><li><a href="gnumed-entire_schema.html#de-de.table.behandlungsfall">behandlungsfall</a></li><li><a href="gnumed-entire_schema.html#de-de.table.kvk">kvk</a></li><li><a href="gnumed-entire_schema.html#de-de.table.lab-test-gnr">lab_test_gnr</a></li><li><a href="gnumed-entire_schema.html#de-de.table.payment-method">payment_method</a></li><li><a href="gnumed-entire_schema.html#de-de.table.prax-geb-paid" [...]
+    	<li><a href="gnumed-entire_schema.html#de-de.table.beh-fall-typ">beh_fall_typ</a></li><li><a href="gnumed-entire_schema.html#de-de.table.kvk">kvk</a></li><li><a href="gnumed-entire_schema.html#de-de.table.lab-test-gnr">lab_test_gnr</a></li><li><a href="gnumed-entire_schema.html#de-de.table.payment-method">payment_method</a></li><li><a href="gnumed-entire_schema.html#de-de.table.prax-geb-paid">prax_geb_paid</a></li><li><a href="gnumed-entire_schema.html#de-de.table.zuzahlungsbefreiun [...]
   	
     </ul>
     
     <li><a name="dem.schema">dem</a></li><ul>
-    	<li><a href="gnumed-entire_schema.html#dem.table.address">address</a></li><li><a href="gnumed-entire_schema.html#dem.table.address-type">address_type</a></li><li><a href="gnumed-entire_schema.html#dem.table.country">country</a></li><li><a href="gnumed-entire_schema.html#dem.table.enum-comm-types">enum_comm_types</a></li><li><a href="gnumed-entire_schema.html#dem.table.enum-ext-id-types">enum_ext_id_types</a></li><li><a href="gnumed-entire_schema.html#dem.table.gender-label">gender_l [...]
-  	<li><a href="gnumed-entire_schema.html#dem.function.add-external-id-type-text-text">add_external_id_type(text, text)</a></li><li><a href="gnumed-entire_schema.html#dem.function.add-name-integer-text-text-boolean">add_name(integer, text, text, boolean)</a></li><li><a href="gnumed-entire_schema.html#dem.function.address-exists-text-text-text-text-text-text-text">address_exists(text, text, text, text, text, text, text)</a></li><li><a href="gnumed-entire_schema.html#dem.function.create-ad [...]
+    	<li><a href="gnumed-entire_schema.html#dem.table.address">address</a></li><li><a href="gnumed-entire_schema.html#dem.table.address-type">address_type</a></li><li><a href="gnumed-entire_schema.html#dem.table.country">country</a></li><li><a href="gnumed-entire_schema.html#dem.table.enum-comm-types">enum_comm_types</a></li><li><a href="gnumed-entire_schema.html#dem.table.enum-ext-id-types">enum_ext_id_types</a></li><li><a href="gnumed-entire_schema.html#dem.table.gender-label">gender_l [...]
+  	<li><a href="gnumed-entire_schema.html#dem.function.add-external-id-type-text-text">add_external_id_type(text, text)</a></li><li><a href="gnumed-entire_schema.html#dem.function.add-name-integer-text-text-boolean">add_name(integer, text, text, boolean)</a></li><li><a href="gnumed-entire_schema.html#dem.function.address-exists-text-text-text-text-text-text-text">address_exists(text, text, text, text, text, text, text)</a></li><li><a href="gnumed-entire_schema.html#dem.function.create-ad [...]
     </ul>
     
     <li><a name="gm.schema">gm</a></li><ul>
     	<li><a href="gnumed-entire_schema.html#gm.table.access-log">access_log</a></li><li><a href="gnumed-entire_schema.html#gm.table.notifying-tables">notifying_tables</a></li><li><a href="gnumed-entire_schema.html#gm.table.schema-revision">schema_revision</a></li>
-  	<li><a href="gnumed-entire_schema.html#gm.function.add-missing-array-bits">add_missing_array_bits()</a></li><li><a href="gnumed-entire_schema.html#gm.function.add-table-for-notifies-name-name">add_table_for_notifies(name, name)</a></li><li><a href="gnumed-entire_schema.html#gm.function.add-user-to-permission-group-name-name">add_user_to_permission_group(name, name)</a></li><li><a href="gnumed-entire_schema.html#gm.function.array-unnest-anyarray">array_unnest(anyarray)</a></li><li><a h [...]
+  	<li><a href="gnumed-entire_schema.html#gm.function.account-is-dbowner-or-staff-account-name">account_is_dbowner_or_staff(_account name)</a></li><li><a href="gnumed-entire_schema.html#gm.function.add-missing-array-bits">add_missing_array_bits()</a></li><li><a href="gnumed-entire_schema.html#gm.function.add-table-for-notifies-name-name">add_table_for_notifies(name, name)</a></li><li><a href="gnumed-entire_schema.html#gm.function.add-user-to-permission-group-name-name">add_user_to_permis [...]
     </ul>
     
     <li><a name="i18n.schema">i18n</a></li><ul>
@@ -166,6 +166,11 @@
   	<li><a href="gnumed-entire_schema.html#i18n.function.-text">_(text)</a></li><li><a href="gnumed-entire_schema.html#i18n.function.-text-text">_(text, text)</a></li><li><a href="gnumed-entire_schema.html#i18n.function.force-curr-lang-text">force_curr_lang(text)</a></li><li><a href="gnumed-entire_schema.html#i18n.function.force-curr-lang-text-name">force_curr_lang(text, name)</a></li><li><a href="gnumed-entire_schema.html#i18n.function.get-curr-lang">get_curr_lang()</a></li><li><a href=" [...]
     </ul>
     
+    <li><a name="pgtrgm.schema">pgtrgm</a></li><ul>
+    	
+  	<li><a href="gnumed-entire_schema.html#pgtrgm.function.gin-extract-query-trgm-text-internal-smallint-internal-internal-internal-internal">gin_extract_query_trgm(text, internal, smallint, internal, internal, internal, internal)</a></li><li><a href="gnumed-entire_schema.html#pgtrgm.function.gin-extract-value-trgm-text-internal">gin_extract_value_trgm(text, internal)</a></li><li><a href="gnumed-entire_schema.html#pgtrgm.function.gin-trgm-consistent-internal-smallint-text-integer-internal [...]
+    </ul>
+    
     <li><a name="public.schema">public</a></li><ul>
     	<li><a href="gnumed-entire_schema.html#public.table.basic-unit">basic_unit</a></li><li><a href="gnumed-entire_schema.html#public.table.form-field-types">form_field_types</a></li><li><a href="gnumed-entire_schema.html#public.table.form-fields">form_fields</a></li><li><a href="gnumed-entire_schema.html#public.table.form-job-queue">form_job_queue</a></li><li><a href="gnumed-entire_schema.html#public.table.form-job-targets">form_job_targets</a></li><li><a href="gnumed-entire_schema.html [...]
   	<li><a href="gnumed-entire_schema.html#public.function.-text">_(text)</a></li><li><a href="gnumed-entire_schema.html#public.function.-text-text">_(text, text)</a></li><li><a href="gnumed-entire_schema.html#public.function.f-rfi-type2item">f_rfi_type2item()</a></li><li><a href="gnumed-entire_schema.html#public.function.f-set-encounter-timezone">f_set_encounter_timezone()</a></li>
@@ -263,11 +268,19 @@
             <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
+                
                 </td>
             	<td>modified_by</td>
             	<td>name</td>
                 <td><i>
 				
+					
+
+					
+				
 
 				NOT NULL
 				DEFAULT "current_user"()
@@ -488,6 +501,11 @@ this referral.
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>clin_root_item_sane_soap_cat</td>
                 <td>CHECK (((soap_cat IS NULL) OR (lower(soap_cat) = ANY (ARRAY['s'::text, 'o'::text, 'a'::text, 'p'::text, 'u'::text]))))</td>
             </tr>
@@ -630,6 +648,21 @@ this referral.
 
         <!-- Constraint List -->
 		
+        <p> </p>
+		<table width="100%" cellspacing="0" cellpadding="3">
+            <caption>audit.audit_fields Constraints</caption>
+            <tr>
+            	<th>Name</th>
+            	<th>Constraint</th>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+		</table>
+		
 
         <!-- Foreign Key Discovery -->
 		
@@ -824,6 +857,21 @@ this referral.
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -1222,6 +1270,21 @@ this referral.
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -1578,6 +1641,21 @@ this referral.
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -2062,6 +2140,21 @@ this referral.
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -2386,6 +2479,21 @@ this referral.
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -2731,6 +2839,22 @@ this referral.
 				</td>
 			 </tr>
             
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>recommendation_query</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
         </table>
 
         <!-- Inherits -->
@@ -2758,6 +2882,21 @@ this referral.
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -3066,6 +3205,21 @@ this referral.
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -3093,13 +3247,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-behandlungsfall">log_behandlungsfall</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-bill">log_bill</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_behandlungsfall Structure</caption>
+                <caption>audit.log_bill Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -3239,6 +3393,54 @@ this referral.
 				<td>
                 
                 </td>
+            	<td>row_version</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>modified_when</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>modified_by</td>
+            	<td>name</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
             	<td>pk</td>
             	<td>integer</td>
                 <td><i>
@@ -3251,11 +3453,59 @@ this referral.
 				</td>
 			 </tr>
             
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>invoice_id</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
             <tr class="tr1">
 				<td>
                 
                 </td>
-            	<td>fk_patient</td>
+            	<td>close_date</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>apply_vat</td>
+            	<td>boolean</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>fk_receiver_identity</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -3271,7 +3521,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_falltyp</td>
+            	<td>fk_receiver_address</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -3287,8 +3537,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>started</td>
-            	<td>date</td>
+            	<td>fk_doc</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -3303,8 +3553,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>must_pay_prax_geb</td>
-            	<td>boolean</td>
+            	<td>comment</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -3319,7 +3569,7 @@ this referral.
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_behandlungsfall Inherits
+        <p>Table audit.log_bill Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -3335,13 +3585,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_behandlungsfall Constraints</caption>
+            <caption>audit.log_bill Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -3369,13 +3634,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-bill">log_bill</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-bill-item">log_bill_item</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_bill Structure</caption>
+                <caption>audit.log_bill_item Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -3579,7 +3844,55 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>invoice_id</td>
+            	<td>fk_provider</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>fk_encounter</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>date_to_bill</td>
+            	<td>date</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>description</td>
             	<td>text</td>
                 <td><i>
 				
@@ -3591,12 +3904,28 @@ this referral.
 				</td>
 			 </tr>
             
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>net_amount_per_unit</td>
+            	<td>numeric</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
             <tr class="tr1">
 				<td>
                 
                 </td>
-            	<td>close_date</td>
-            	<td>timestamp with time zone</td>
+            	<td>currency</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -3611,8 +3940,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>apply_vat</td>
-            	<td>boolean</td>
+            	<td>status</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -3627,7 +3956,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_receiver_identity</td>
+            	<td>fk_billable</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -3643,7 +3972,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_receiver_address</td>
+            	<td>fk_bill</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -3659,7 +3988,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_doc</td>
+            	<td>unit_count</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -3675,8 +4004,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>comment</td>
-            	<td>text</td>
+            	<td>amount_multiplier</td>
+            	<td>numeric</td>
                 <td><i>
 				
 
@@ -3691,7 +4020,7 @@ this referral.
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_bill Inherits
+        <p>Table audit.log_bill_item Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -3707,13 +4036,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_bill Constraints</caption>
+            <caption>audit.log_bill_item Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -3741,13 +4085,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-bill-item">log_bill_item</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-billable">log_billable</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_bill_item Structure</caption>
+                <caption>audit.log_billable Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -3887,7 +4231,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>row_version</td>
+            	<td>pk_coding_system</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -3903,8 +4247,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>modified_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>code</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -3919,8 +4263,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>modified_by</td>
-            	<td>name</td>
+            	<td>term</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -3935,7 +4279,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>pk</td>
+            	<td>fk_data_source</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -3951,8 +4295,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_provider</td>
-            	<td>integer</td>
+            	<td>comment</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -3967,7 +4311,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_encounter</td>
+            	<td>pk</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -3983,39 +4327,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>date_to_bill</td>
-            	<td>date</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>description</td>
-            	<td>text</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>net_amount_per_unit</td>
+            	<td>amount</td>
             	<td>numeric</td>
                 <td><i>
 				
@@ -4047,40 +4359,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>status</td>
-            	<td>text</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>fk_billable</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>fk_bill</td>
-            	<td>integer</td>
+            	<td>vat_multiplier</td>
+            	<td>numeric</td>
                 <td><i>
 				
 
@@ -4095,8 +4375,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>unit_count</td>
-            	<td>integer</td>
+            	<td>active</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -4111,8 +4391,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>amount_multiplier</td>
-            	<td>numeric</td>
+            	<td>discountable</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -4127,7 +4407,7 @@ this referral.
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_bill_item Inherits
+        <p>Table audit.log_billable Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -4143,13 +4423,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_bill_item Constraints</caption>
+            <caption>audit.log_billable Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -4177,13 +4472,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-billable">log_billable</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-branded-drug">log_branded_drug</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_billable Structure</caption>
+                <caption>audit.log_branded_drug Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -4323,7 +4618,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>pk_coding_system</td>
+            	<td>row_version</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -4339,8 +4634,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>code</td>
-            	<td>text</td>
+            	<td>modified_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
@@ -4355,8 +4650,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>term</td>
-            	<td>text</td>
+            	<td>modified_by</td>
+            	<td>name</td>
                 <td><i>
 				
 
@@ -4371,7 +4666,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_data_source</td>
+            	<td>pk</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -4387,7 +4682,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>comment</td>
+            	<td>description</td>
             	<td>text</td>
                 <td><i>
 				
@@ -4403,8 +4698,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>pk</td>
-            	<td>integer</td>
+            	<td>preparation</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -4419,8 +4714,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>amount</td>
-            	<td>numeric</td>
+            	<td>atc_code</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -4435,8 +4730,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>currency</td>
-            	<td>text</td>
+            	<td>is_fake</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -4451,8 +4746,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>vat_multiplier</td>
-            	<td>numeric</td>
+            	<td>fk_data_source</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -4467,8 +4762,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>active</td>
-            	<td>boolean</td>
+            	<td>external_code</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -4483,8 +4778,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>discountable</td>
-            	<td>boolean</td>
+            	<td>external_code_type</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -4499,7 +4794,7 @@ this referral.
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_billable Inherits
+        <p>Table audit.log_branded_drug Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -4515,13 +4810,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_billable Constraints</caption>
+            <caption>audit.log_branded_drug Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -4549,13 +4859,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-branded-drug">log_branded_drug</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-clin-aux-note">log_clin_aux_note</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_branded_drug Structure</caption>
+                <caption>audit.log_clin_aux_note Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -4743,7 +5053,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>pk</td>
+            	<td>pk_item</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -4759,8 +5069,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>description</td>
-            	<td>text</td>
+            	<td>clin_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
@@ -4775,8 +5085,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>preparation</td>
-            	<td>text</td>
+            	<td>fk_encounter</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -4791,8 +5101,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>atc_code</td>
-            	<td>text</td>
+            	<td>fk_episode</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -4807,8 +5117,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>is_fake</td>
-            	<td>boolean</td>
+            	<td>narrative</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -4823,23 +5133,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_data_source</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>external_code</td>
+            	<td>soap_cat</td>
             	<td>text</td>
                 <td><i>
 				
@@ -4851,12 +5145,12 @@ this referral.
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
-            	<td>external_code_type</td>
-            	<td>text</td>
+            	<td>pk</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -4871,7 +5165,7 @@ this referral.
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_branded_drug Inherits
+        <p>Table audit.log_clin_aux_note Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -4887,13 +5181,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_branded_drug Constraints</caption>
+            <caption>audit.log_clin_aux_note Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -4921,13 +5230,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-clin-aux-note">log_clin_aux_note</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-clin-diag">log_clin_diag</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_clin_aux_note Structure</caption>
+                <caption>audit.log_clin_diag Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -5115,7 +5424,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>pk_item</td>
+            	<td>pk</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -5131,8 +5440,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>clin_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>fk_narrative</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -5147,8 +5456,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_encounter</td>
-            	<td>integer</td>
+            	<td>laterality</td>
+            	<td>bpchar</td>
                 <td><i>
 				
 
@@ -5163,8 +5472,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_episode</td>
-            	<td>integer</td>
+            	<td>is_chronic</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -5179,8 +5488,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>narrative</td>
-            	<td>text</td>
+            	<td>is_active</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -5195,8 +5504,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>soap_cat</td>
-            	<td>text</td>
+            	<td>is_definite</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -5211,8 +5520,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>pk</td>
-            	<td>integer</td>
+            	<td>clinically_relevant</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -5227,7 +5536,7 @@ this referral.
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_clin_aux_note Inherits
+        <p>Table audit.log_clin_diag Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -5243,13 +5552,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_clin_aux_note Constraints</caption>
+            <caption>audit.log_clin_diag Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -5277,13 +5601,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-clin-diag">log_clin_diag</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-clin-item-type">log_clin_item_type</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_clin_diag Structure</caption>
+                <caption>audit.log_clin_item_type Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -5487,72 +5811,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_narrative</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>laterality</td>
-            	<td>bpchar</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>is_chronic</td>
-            	<td>boolean</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>is_active</td>
-            	<td>boolean</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>is_definite</td>
-            	<td>boolean</td>
+            	<td>type</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -5567,8 +5827,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>clinically_relevant</td>
-            	<td>boolean</td>
+            	<td>code</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -5583,7 +5843,7 @@ this referral.
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_clin_diag Inherits
+        <p>Table audit.log_clin_item_type Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -5599,13 +5859,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_clin_diag Constraints</caption>
+            <caption>audit.log_clin_item_type Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -5633,13 +5908,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-clin-item-type">log_clin_item_type</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-clin-narrative">log_clin_narrative</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_clin_item_type Structure</caption>
+                <caption>audit.log_clin_narrative Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -5827,7 +6102,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>pk</td>
+            	<td>pk_item</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -5843,8 +6118,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>type</td>
-            	<td>text</td>
+            	<td>clin_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
@@ -5859,7 +6134,55 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>code</td>
+            	<td>fk_encounter</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>fk_episode</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>narrative</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>soap_cat</td>
             	<td>text</td>
                 <td><i>
 				
@@ -5871,11 +6194,27 @@ this referral.
 				</td>
 			 </tr>
             
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>pk</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
         </table>
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_clin_item_type Inherits
+        <p>Table audit.log_clin_narrative Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -5891,13 +6230,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_clin_item_type Constraints</caption>
+            <caption>audit.log_clin_narrative Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -5925,13 +6279,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-clin-narrative">log_clin_narrative</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-consumable-substance">log_consumable_substance</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_clin_narrative Structure</caption>
+                <caption>audit.log_consumable_substance Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -6119,39 +6473,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>pk_item</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>clin_when</td>
-            	<td>timestamp with time zone</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>fk_encounter</td>
+            	<td>pk</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -6167,8 +6489,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_episode</td>
-            	<td>integer</td>
+            	<td>description</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -6183,7 +6505,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>narrative</td>
+            	<td>atc_code</td>
             	<td>text</td>
                 <td><i>
 				
@@ -6199,8 +6521,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>soap_cat</td>
-            	<td>text</td>
+            	<td>amount</td>
+            	<td>numeric</td>
                 <td><i>
 				
 
@@ -6215,8 +6537,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>pk</td>
-            	<td>integer</td>
+            	<td>unit</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -6231,7 +6553,7 @@ this referral.
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_clin_narrative Inherits
+        <p>Table audit.log_consumable_substance Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -6247,13 +6569,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_clin_narrative Constraints</caption>
+            <caption>audit.log_consumable_substance Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -6281,13 +6618,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-consumable-substance">log_consumable_substance</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-consumed-substance">log_consumed_substance</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_consumable_substance Structure</caption>
+                <caption>audit.log_consumed_substance Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -6519,43 +6856,11 @@ this referral.
 				</td>
 			 </tr>
             
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>amount</td>
-            	<td>numeric</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>unit</td>
-            	<td>text</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
         </table>
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_consumable_substance Inherits
+        <p>Table audit.log_consumed_substance Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -6571,13 +6876,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_consumable_substance Constraints</caption>
+            <caption>audit.log_consumed_substance Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -6605,13 +6925,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-consumed-substance">log_consumed_substance</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-data-source">log_data_source</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_consumed_substance Structure</caption>
+                <caption>audit.log_data_source Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -6815,6 +7135,54 @@ this referral.
 				<td>
                 
                 </td>
+            	<td>name_short</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>name_long</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>version</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
             	<td>description</td>
             	<td>text</td>
                 <td><i>
@@ -6827,11 +7195,27 @@ this referral.
 				</td>
 			 </tr>
             
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>source</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
             <tr class="tr1">
 				<td>
                 
                 </td>
-            	<td>atc_code</td>
+            	<td>lang</td>
             	<td>text</td>
                 <td><i>
 				
@@ -6847,7 +7231,7 @@ this referral.
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_consumed_substance Inherits
+        <p>Table audit.log_data_source Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -6863,13 +7247,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_consumed_substance Constraints</caption>
+            <caption>audit.log_data_source Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -6897,13 +7296,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-data-source">log_data_source</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-doc-desc">log_doc_desc</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_data_source Structure</caption>
+                <caption>audit.log_doc_desc Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -7107,8 +7506,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>name_short</td>
-            	<td>text</td>
+            	<td>fk_doc</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -7123,71 +7522,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>name_long</td>
             	<td>text</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>version</td>
-            	<td>text</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>description</td>
-            	<td>text</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>source</td>
-            	<td>text</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>lang</td>
             	<td>text</td>
                 <td><i>
 				
@@ -7203,7 +7538,7 @@ this referral.
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_data_source Inherits
+        <p>Table audit.log_doc_desc Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -7219,13 +7554,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_data_source Constraints</caption>
+            <caption>audit.log_doc_desc Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -7253,13 +7603,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-doc-desc">log_doc_desc</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-doc-med">log_doc_med</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_doc_desc Structure</caption>
+                <caption>audit.log_doc_med Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -7463,7 +7813,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_doc</td>
+            	<td>fk_encounter</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -7479,7 +7829,71 @@ this referral.
 				<td>
                 
                 </td>
+            	<td>fk_episode</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>fk_type</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>comment</td>
             	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>clin_when</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>ext_ref</td>
             	<td>text</td>
                 <td><i>
 				
@@ -7491,11 +7905,27 @@ this referral.
 				</td>
 			 </tr>
             
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>fk_org_unit</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
         </table>
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_doc_desc Inherits
+        <p>Table audit.log_doc_med Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -7511,13 +7941,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_doc_desc Constraints</caption>
+            <caption>audit.log_doc_med Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -7545,13 +7990,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-doc-med">log_doc_med</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-encounter">log_encounter</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_doc_med Structure</caption>
+                <caption>audit.log_encounter Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -7755,7 +8200,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_encounter</td>
+            	<td>fk_patient</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -7771,7 +8216,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_episode</td>
+            	<td>fk_type</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -7787,7 +8232,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_type</td>
+            	<td>fk_location</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -7803,7 +8248,39 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>comment</td>
+            	<td>source_time_zone</td>
+            	<td>interval</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>reason_for_encounter</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>assessment_of_encounter</td>
             	<td>text</td>
                 <td><i>
 				
@@ -7819,7 +8296,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>clin_when</td>
+            	<td>started</td>
             	<td>timestamp with time zone</td>
                 <td><i>
 				
@@ -7835,8 +8312,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>ext_ref</td>
-            	<td>text</td>
+            	<td>last_affirmed</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
@@ -7851,7 +8328,7 @@ this referral.
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_doc_med Inherits
+        <p>Table audit.log_encounter Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -7867,13 +8344,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_doc_med Constraints</caption>
+            <caption>audit.log_encounter Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -7901,13 +8393,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-encounter">log_encounter</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-episode">log_episode</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_encounter Structure</caption>
+                <caption>audit.log_episode Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -8111,7 +8603,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_patient</td>
+            	<td>fk_health_issue</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -8127,8 +8619,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_type</td>
-            	<td>integer</td>
+            	<td>description</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -8143,8 +8635,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_location</td>
-            	<td>integer</td>
+            	<td>is_open</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -8159,8 +8651,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>source_time_zone</td>
-            	<td>interval</td>
+            	<td>fk_encounter</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -8175,7 +8667,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>reason_for_encounter</td>
+            	<td>diagnostic_certainty_classification</td>
             	<td>text</td>
                 <td><i>
 				
@@ -8191,7 +8683,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>assessment_of_encounter</td>
+            	<td>summary</td>
             	<td>text</td>
                 <td><i>
 				
@@ -8203,43 +8695,11 @@ this referral.
 				</td>
 			 </tr>
             
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>started</td>
-            	<td>timestamp with time zone</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>last_affirmed</td>
-            	<td>timestamp with time zone</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
         </table>
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_encounter Inherits
+        <p>Table audit.log_episode Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -8255,13 +8715,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_encounter Constraints</caption>
+            <caption>audit.log_episode Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -8289,13 +8764,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-episode">log_episode</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-external-care">log_external_care</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_episode Structure</caption>
+                <caption>audit.log_external_care Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -8499,7 +8974,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_health_issue</td>
+            	<td>fk_encounter</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -8515,8 +8990,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>description</td>
-            	<td>text</td>
+            	<td>fk_health_issue</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -8531,8 +9006,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>is_open</td>
-            	<td>boolean</td>
+            	<td>issue</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -8547,7 +9022,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_encounter</td>
+            	<td>fk_org_unit</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -8563,7 +9038,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>diagnostic_certainty_classification</td>
+            	<td>provider</td>
             	<td>text</td>
                 <td><i>
 				
@@ -8579,7 +9054,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>summary</td>
+            	<td>comment</td>
             	<td>text</td>
                 <td><i>
 				
@@ -8595,7 +9070,7 @@ this referral.
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_episode Inherits
+        <p>Table audit.log_external_care Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -8611,13 +9086,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_episode Constraints</caption>
+            <caption>audit.log_external_care Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -8645,13 +9135,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-external-care">log_external_care</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-family-history">log_family_history</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_external_care Structure</caption>
+                <caption>audit.log_family_history Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -8669,7 +9159,7 @@ this referral.
 				
 
 				NOT NULL
-				DEFAULT nextval('audit.audit_trail_pk_audit_seq'::regclass)
+				DEFAULT nextval('audit_trail_pk_audit_seq'::regclass)
 				</i>
 				
 				</td>
@@ -8839,7 +9329,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>pk</td>
+            	<td>pk_item</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -8855,6 +9345,22 @@ this referral.
 				<td>
                 
                 </td>
+            	<td>clin_when</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
             	<td>fk_encounter</td>
             	<td>integer</td>
                 <td><i>
@@ -8867,11 +9373,11 @@ this referral.
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>fk_health_issue</td>
+            	<td>fk_episode</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -8883,11 +9389,27 @@ this referral.
 				</td>
 			 </tr>
             
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>narrative</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
             <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>issue</td>
+            	<td>soap_cat</td>
             	<td>text</td>
                 <td><i>
 				
@@ -8903,7 +9425,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_org_unit</td>
+            	<td>pk</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -8919,7 +9441,71 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>provider</td>
+            	<td>fk_relation_type</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>age_noted</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>age_of_death</td>
+            	<td>interval</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>contributed_to_death</td>
+            	<td>boolean</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>name_relative</td>
             	<td>text</td>
                 <td><i>
 				
@@ -8935,6 +9521,22 @@ this referral.
 				<td>
                 
                 </td>
+            	<td>dob_relative</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
             	<td>comment</td>
             	<td>text</td>
                 <td><i>
@@ -8951,7 +9553,7 @@ this referral.
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_external_care Inherits
+        <p>Table audit.log_family_history Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -8967,13 +9569,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_external_care Constraints</caption>
+            <caption>audit.log_family_history Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -9001,13 +9618,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-family-history">log_family_history</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-fhx-relation-type">log_fhx_relation_type</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_family_history Structure</caption>
+                <caption>audit.log_fhx_relation_type Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -9195,7 +9812,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>pk_item</td>
+            	<td>pk</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -9211,8 +9828,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>clin_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>description</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -9227,8 +9844,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_encounter</td>
-            	<td>integer</td>
+            	<td>is_genetic</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -9239,17 +9856,100 @@ this referral.
 				</td>
 			 </tr>
             
+        </table>
+
+        <!-- Inherits -->
+		
+        <p>Table audit.log_fhx_relation_type Inherits
+        
+            
+           <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
+        
+        </p>
+		
+
+		
+		
+		
+
+        <!-- Constraint List -->
+		
+        <p> </p>
+		<table width="100%" cellspacing="0" cellpadding="3">
+            <caption>audit.log_fhx_relation_type Constraints</caption>
+            <tr>
+            	<th>Name</th>
+            	<th>Constraint</th>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_trail_audit_action_check</td>
+                <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
+            </tr>
+			
+		</table>
+		
+
+        <!-- Foreign Key Discovery -->
+		
+
+    <!-- Indexes -->
+    
+
+	<!-- View Definition -->
+	
+
+	<!-- List off permissions -->
+	
+
+	<p>
+		<a href="gnumed-entire_schema.html#index">Index</a> -
+		<a href="gnumed-entire_schema.html#audit.schema">Schema audit</a>
+    </p>
+	
+        <hr>
+		<h2>Table:
+			
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-form-data">log_form_data</a>
+		</h2>
+        
+
+
+        <table width="100%" cellspacing="0" cellpadding="3">
+                <caption>audit.log_form_data Structure</caption>
+                <tr>
+                <th>F-Key</th>
+                <th>Name</th>
+                <th>Type</th>
+                <th>Description</th>
+                </tr>
+            
             <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>fk_episode</td>
+            	<td>pk_audit</td>
             	<td>integer</td>
                 <td><i>
 				
 
-				
-				
+				NOT NULL
+				DEFAULT nextval('audit_trail_pk_audit_seq'::regclass)
 				</i>
 				
 				</td>
@@ -9259,15 +9959,47 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>narrative</td>
-            	<td>text</td>
+            	<td>orig_version</td>
+            	<td>integer</td>
                 <td><i>
 				
 
+				NOT NULL
+				
+				</i>
+				<br><br>the .row_version in the original row before the audited action took place, should be equal to .row_version
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>orig_when</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
 				
+
+				NOT NULL
 				
 				</i>
+				<br><br>the .modified_when in the original row before the audited action took place, should be equal to .modified_when
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>orig_by</td>
+            	<td>name</td>
+                <td><i>
+				
+
+				NOT NULL
 				
+				</i>
+				<br><br>the .modified_by in the original row before the audited action took place, should be equal to .modified_by
 				</td>
 			 </tr>
             
@@ -9275,29 +10007,61 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>soap_cat</td>
-            	<td>text</td>
+            	<td>orig_tableoid</td>
+            	<td>oid</td>
                 <td><i>
 				
 
+				NOT NULL
 				
+				</i>
+				<br><br>the TG_RELID when the audit trigger was run
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>audit_action</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				NOT NULL
 				
 				</i>
 				
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>pk</td>
-            	<td>integer</td>
+            	<td>audit_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
+				NOT NULL
+				DEFAULT now()
+				</i>
 				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>audit_by</td>
+            	<td>name</td>
+                <td><i>
 				
+
+				NOT NULL
+				DEFAULT "current_user"()
 				</i>
 				
 				</td>
@@ -9307,7 +10071,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_relation_type</td>
+            	<td>row_version</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -9323,8 +10087,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>age_noted</td>
-            	<td>text</td>
+            	<td>modified_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
@@ -9339,8 +10103,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>age_of_death</td>
-            	<td>interval</td>
+            	<td>modified_by</td>
+            	<td>name</td>
                 <td><i>
 				
 
@@ -9355,8 +10119,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>contributed_to_death</td>
-            	<td>boolean</td>
+            	<td>pk</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -9371,8 +10135,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>name_relative</td>
-            	<td>text</td>
+            	<td>fk_instance</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -9387,8 +10151,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>dob_relative</td>
-            	<td>timestamp with time zone</td>
+            	<td>fk_form_field</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -9403,7 +10167,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>comment</td>
+            	<td>value</td>
             	<td>text</td>
                 <td><i>
 				
@@ -9419,7 +10183,7 @@ this referral.
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_family_history Inherits
+        <p>Table audit.log_form_data Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -9435,13 +10199,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_family_history Constraints</caption>
+            <caption>audit.log_form_data Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -9469,13 +10248,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-fhx-relation-type">log_fhx_relation_type</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-form-instances">log_form_instances</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_fhx_relation_type Structure</caption>
+                <caption>audit.log_form_instances Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -9663,7 +10442,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>pk</td>
+            	<td>pk_item</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -9679,7 +10458,71 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>description</td>
+            	<td>clin_when</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>fk_encounter</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>fk_episode</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>narrative</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>soap_cat</td>
             	<td>text</td>
                 <td><i>
 				
@@ -9695,8 +10538,40 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>is_genetic</td>
-            	<td>boolean</td>
+            	<td>pk</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>fk_form_def</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>form_name</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -9711,7 +10586,7 @@ this referral.
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_fhx_relation_type Inherits
+        <p>Table audit.log_form_instances Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -9727,13 +10602,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_fhx_relation_type Constraints</caption>
+            <caption>audit.log_form_instances Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -9761,13 +10651,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-form-data">log_form_data</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-gender-label">log_gender_label</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_form_data Structure</caption>
+                <caption>audit.log_gender_label Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -9971,8 +10861,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_instance</td>
-            	<td>integer</td>
+            	<td>tag</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -9987,8 +10877,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_form_field</td>
-            	<td>integer</td>
+            	<td>label</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -10003,7 +10893,23 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>value</td>
+            	<td>sort_weight</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>comment</td>
             	<td>text</td>
                 <td><i>
 				
@@ -10019,7 +10925,7 @@ this referral.
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_form_data Inherits
+        <p>Table audit.log_gender_label Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -10035,13 +10941,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_form_data Constraints</caption>
+            <caption>audit.log_gender_label Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -10069,13 +10990,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-form-instances">log_form_instances</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-health-issue">log_health_issue</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_form_instances Structure</caption>
+                <caption>audit.log_health_issue Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -10263,7 +11184,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>pk_item</td>
+            	<td>pk</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -10279,8 +11200,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>clin_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>description</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -10295,8 +11216,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_encounter</td>
-            	<td>integer</td>
+            	<td>laterality</td>
+            	<td>character varying</td>
                 <td><i>
 				
 
@@ -10311,8 +11232,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_episode</td>
-            	<td>integer</td>
+            	<td>age_noted</td>
+            	<td>interval</td>
                 <td><i>
 				
 
@@ -10327,8 +11248,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>narrative</td>
-            	<td>text</td>
+            	<td>is_active</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -10343,8 +11264,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>soap_cat</td>
-            	<td>text</td>
+            	<td>clinically_relevant</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -10359,8 +11280,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>pk</td>
-            	<td>integer</td>
+            	<td>is_confidential</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -10375,7 +11296,23 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_form_def</td>
+            	<td>is_cause_of_death</td>
+            	<td>boolean</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>fk_encounter</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -10387,11 +11324,43 @@ this referral.
 				</td>
 			 </tr>
             
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>grouping</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
             <tr class="tr1">
 				<td>
                 
                 </td>
-            	<td>form_name</td>
+            	<td>diagnostic_certainty_classification</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>summary</td>
             	<td>text</td>
                 <td><i>
 				
@@ -10407,7 +11376,7 @@ this referral.
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_form_instances Inherits
+        <p>Table audit.log_health_issue Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -10423,13 +11392,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_form_instances Constraints</caption>
+            <caption>audit.log_health_issue Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -10457,13 +11441,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-gender-label">log_gender_label</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-hospital-stay">log_hospital_stay</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_gender_label Structure</caption>
+                <caption>audit.log_hospital_stay Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -10651,7 +11635,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>pk</td>
+            	<td>pk_item</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -10667,8 +11651,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>tag</td>
-            	<td>text</td>
+            	<td>clin_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
@@ -10683,8 +11667,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>label</td>
-            	<td>text</td>
+            	<td>fk_encounter</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -10699,7 +11683,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>sort_weight</td>
+            	<td>fk_episode</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -10715,7 +11699,23 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>comment</td>
+            	<td>narrative</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>soap_cat</td>
             	<td>text</td>
                 <td><i>
 				
@@ -10727,11 +11727,59 @@ this referral.
 				</td>
 			 </tr>
             
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>pk</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>discharge</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>fk_org_unit</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
         </table>
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_gender_label Inherits
+        <p>Table audit.log_hospital_stay Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -10747,13 +11795,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_gender_label Constraints</caption>
+            <caption>audit.log_hospital_stay Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -10781,13 +11844,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-health-issue">log_health_issue</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-hx-family-item">log_hx_family_item</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_health_issue Structure</caption>
+                <caption>audit.log_hx_family_item Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -10991,40 +12054,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>description</td>
-            	<td>text</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>laterality</td>
-            	<td>character varying</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>age_noted</td>
-            	<td>interval</td>
+            	<td>fk_narrative_condition</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -11039,8 +12070,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>is_active</td>
-            	<td>boolean</td>
+            	<td>fk_relative</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -11055,8 +12086,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>clinically_relevant</td>
-            	<td>boolean</td>
+            	<td>name_relative</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -11071,8 +12102,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>is_confidential</td>
-            	<td>boolean</td>
+            	<td>dob_relative</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
@@ -11087,8 +12118,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>is_cause_of_death</td>
-            	<td>boolean</td>
+            	<td>condition</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -11103,8 +12134,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_encounter</td>
-            	<td>integer</td>
+            	<td>age_noted</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -11119,8 +12150,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>grouping</td>
-            	<td>text</td>
+            	<td>age_of_death</td>
+            	<td>interval</td>
                 <td><i>
 				
 
@@ -11135,24 +12166,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>diagnostic_certainty_classification</td>
-            	<td>text</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>summary</td>
-            	<td>text</td>
+            	<td>is_cause_of_death</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -11167,7 +12182,7 @@ this referral.
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_health_issue Inherits
+        <p>Table audit.log_hx_family_item Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -11183,13 +12198,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_health_issue Constraints</caption>
+            <caption>audit.log_hx_family_item Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -11217,13 +12247,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-hospital-stay">log_hospital_stay</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-identity">log_identity</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_hospital_stay Structure</caption>
+                <caption>audit.log_identity Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -11411,7 +12441,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>pk_item</td>
+            	<td>pk</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -11427,7 +12457,39 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>clin_when</td>
+            	<td>deleted</td>
+            	<td>boolean</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>gender</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>dob</td>
             	<td>timestamp with time zone</td>
                 <td><i>
 				
@@ -11443,7 +12505,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_encounter</td>
+            	<td>fk_marital_status</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -11459,8 +12521,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_episode</td>
-            	<td>integer</td>
+            	<td>cob</td>
+            	<td>bpchar</td>
                 <td><i>
 				
 
@@ -11475,7 +12537,23 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>narrative</td>
+            	<td>deceased</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>title</td>
             	<td>text</td>
                 <td><i>
 				
@@ -11487,11 +12565,27 @@ this referral.
 				</td>
 			 </tr>
             
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>tob</td>
+            	<td>time without time zone</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
             <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>soap_cat</td>
+            	<td>emergency_contact</td>
             	<td>text</td>
                 <td><i>
 				
@@ -11507,7 +12601,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>pk</td>
+            	<td>fk_emergency_contact</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -11523,8 +12617,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>discharge</td>
-            	<td>timestamp with time zone</td>
+            	<td>comment</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -11539,7 +12633,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_org_unit</td>
+            	<td>fk_primary_provider</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -11551,11 +12645,27 @@ this referral.
 				</td>
 			 </tr>
             
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>dob_is_estimated</td>
+            	<td>boolean</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
         </table>
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_hospital_stay Inherits
+        <p>Table audit.log_identity Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -11571,13 +12681,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_hospital_stay Constraints</caption>
+            <caption>audit.log_identity Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -11605,13 +12730,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-hx-family-item">log_hx_family_item</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-identity-tag">log_identity_tag</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_hx_family_item Structure</caption>
+                <caption>audit.log_identity_tag Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -11815,7 +12940,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_narrative_condition</td>
+            	<td>fk_identity</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -11831,7 +12956,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_relative</td>
+            	<td>fk_tag</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -11847,7 +12972,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>name_relative</td>
+            	<td>comment</td>
             	<td>text</td>
                 <td><i>
 				
@@ -11859,19 +12984,150 @@ this referral.
 				</td>
 			 </tr>
             
+        </table>
+
+        <!-- Inherits -->
+		
+        <p>Table audit.log_identity_tag Inherits
+        
+            
+           <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
+        
+        </p>
+		
+
+		
+		
+		
+
+        <!-- Constraint List -->
+		
+        <p> </p>
+		<table width="100%" cellspacing="0" cellpadding="3">
+            <caption>audit.log_identity_tag Constraints</caption>
+            <tr>
+            	<th>Name</th>
+            	<th>Constraint</th>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
             <tr class="tr1">
+				<td>audit_trail_audit_action_check</td>
+                <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
+            </tr>
+			
+		</table>
+		
+
+        <!-- Foreign Key Discovery -->
+		
+
+    <!-- Indexes -->
+    
+
+	<!-- View Definition -->
+	
+
+	<!-- List off permissions -->
+	
+
+	<p>
+		<a href="gnumed-entire_schema.html#index">Index</a> -
+		<a href="gnumed-entire_schema.html#audit.schema">Schema audit</a>
+    </p>
+	
+        <hr>
+		<h2>Table:
+			
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-inbox-item-category">log_inbox_item_category</a>
+		</h2>
+        
+
+
+        <table width="100%" cellspacing="0" cellpadding="3">
+                <caption>audit.log_inbox_item_category Structure</caption>
+                <tr>
+                <th>F-Key</th>
+                <th>Name</th>
+                <th>Type</th>
+                <th>Description</th>
+                </tr>
+            
+            <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>dob_relative</td>
-            	<td>timestamp with time zone</td>
+            	<td>pk_audit</td>
+            	<td>integer</td>
                 <td><i>
 				
 
+				NOT NULL
+				DEFAULT nextval('audit_trail_pk_audit_seq'::regclass)
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>orig_version</td>
+            	<td>integer</td>
+                <td><i>
 				
+
+				NOT NULL
 				
 				</i>
+				<br><br>the .row_version in the original row before the audited action took place, should be equal to .row_version
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>orig_when</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
 				
+
+				NOT NULL
+				
+				</i>
+				<br><br>the .modified_when in the original row before the audited action took place, should be equal to .modified_when
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>orig_by</td>
+            	<td>name</td>
+                <td><i>
+				
+
+				NOT NULL
+				
+				</i>
+				<br><br>the .modified_by in the original row before the audited action took place, should be equal to .modified_by
 				</td>
 			 </tr>
             
@@ -11879,13 +13135,45 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>condition</td>
+            	<td>orig_tableoid</td>
+            	<td>oid</td>
+                <td><i>
+				
+
+				NOT NULL
+				
+				</i>
+				<br><br>the TG_RELID when the audit trigger was run
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>audit_action</td>
             	<td>text</td>
                 <td><i>
 				
 
+				NOT NULL
 				
+				</i>
 				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>audit_when</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				NOT NULL
+				DEFAULT now()
 				</i>
 				
 				</td>
@@ -11895,8 +13183,40 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>age_noted</td>
-            	<td>text</td>
+            	<td>audit_by</td>
+            	<td>name</td>
+                <td><i>
+				
+
+				NOT NULL
+				DEFAULT "current_user"()
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>row_version</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>modified_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
@@ -11911,8 +13231,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>age_of_death</td>
-            	<td>interval</td>
+            	<td>modified_by</td>
+            	<td>name</td>
                 <td><i>
 				
 
@@ -11927,7 +13247,39 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>is_cause_of_death</td>
+            	<td>pk</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>description</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>is_user</td>
             	<td>boolean</td>
                 <td><i>
 				
@@ -11943,7 +13295,7 @@ this referral.
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_hx_family_item Inherits
+        <p>Table audit.log_inbox_item_category Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -11959,13 +13311,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_hx_family_item Constraints</caption>
+            <caption>audit.log_inbox_item_category Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -11993,13 +13360,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-identity">log_identity</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-inbox-item-type">log_inbox_item_type</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_identity Structure</caption>
+                <caption>audit.log_inbox_item_type Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -12203,8 +13570,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>deleted</td>
-            	<td>boolean</td>
+            	<td>fk_inbox_item_category</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -12219,8 +13586,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>pupic</td>
-            	<td>bpchar</td>
+            	<td>description</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -12235,8 +13602,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>gender</td>
-            	<td>text</td>
+            	<td>is_user</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -12247,33 +13614,100 @@ this referral.
 				</td>
 			 </tr>
             
+        </table>
+
+        <!-- Inherits -->
+		
+        <p>Table audit.log_inbox_item_type Inherits
+        
+            
+           <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
+        
+        </p>
+		
+
+		
+		
+		
+
+        <!-- Constraint List -->
+		
+        <p> </p>
+		<table width="100%" cellspacing="0" cellpadding="3">
+            <caption>audit.log_inbox_item_type Constraints</caption>
+            <tr>
+            	<th>Name</th>
+            	<th>Constraint</th>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
             <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>dob</td>
-            	<td>timestamp with time zone</td>
-                <td><i>
-				
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_trail_audit_action_check</td>
+                <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
+            </tr>
+			
+		</table>
+		
 
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
+        <!-- Foreign Key Discovery -->
+		
+
+    <!-- Indexes -->
+    
+
+	<!-- View Definition -->
+	
+
+	<!-- List off permissions -->
+	
+
+	<p>
+		<a href="gnumed-entire_schema.html#index">Index</a> -
+		<a href="gnumed-entire_schema.html#audit.schema">Schema audit</a>
+    </p>
+	
+        <hr>
+		<h2>Table:
+			
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-incoming-data-unmatchable">log_incoming_data_unmatchable</a>
+		</h2>
+        
+
+
+        <table width="100%" cellspacing="0" cellpadding="3">
+                <caption>audit.log_incoming_data_unmatchable Structure</caption>
+                <tr>
+                <th>F-Key</th>
+                <th>Name</th>
+                <th>Type</th>
+                <th>Description</th>
+                </tr>
             
             <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>fk_marital_status</td>
+            	<td>pk_audit</td>
             	<td>integer</td>
                 <td><i>
 				
 
-				
-				
+				NOT NULL
+				DEFAULT nextval('audit_trail_pk_audit_seq'::regclass)
 				</i>
 				
 				</td>
@@ -12283,15 +13717,15 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>cob</td>
-            	<td>bpchar</td>
+            	<td>orig_version</td>
+            	<td>integer</td>
                 <td><i>
 				
 
-				
+				NOT NULL
 				
 				</i>
-				
+				<br><br>the .row_version in the original row before the audited action took place, should be equal to .row_version
 				</td>
 			 </tr>
             
@@ -12299,15 +13733,15 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>deceased</td>
+            	<td>orig_when</td>
             	<td>timestamp with time zone</td>
                 <td><i>
 				
 
-				
+				NOT NULL
 				
 				</i>
-				
+				<br><br>the .modified_when in the original row before the audited action took place, should be equal to .modified_when
 				</td>
 			 </tr>
             
@@ -12315,15 +13749,15 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>title</td>
-            	<td>text</td>
+            	<td>orig_by</td>
+            	<td>name</td>
                 <td><i>
 				
 
-				
+				NOT NULL
 				
 				</i>
-				
+				<br><br>the .modified_by in the original row before the audited action took place, should be equal to .modified_by
 				</td>
 			 </tr>
             
@@ -12331,15 +13765,15 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>tob</td>
-            	<td>time without time zone</td>
+            	<td>orig_tableoid</td>
+            	<td>oid</td>
                 <td><i>
 				
 
-				
+				NOT NULL
 				
 				</i>
-				
+				<br><br>the TG_RELID when the audit trigger was run
 				</td>
 			 </tr>
             
@@ -12347,12 +13781,12 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>emergency_contact</td>
+            	<td>audit_action</td>
             	<td>text</td>
                 <td><i>
 				
 
-				
+				NOT NULL
 				
 				</i>
 				
@@ -12363,13 +13797,13 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_emergency_contact</td>
-            	<td>integer</td>
+            	<td>audit_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
-				
-				
+				NOT NULL
+				DEFAULT now()
 				</i>
 				
 				</td>
@@ -12379,13 +13813,13 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>comment</td>
-            	<td>text</td>
+            	<td>audit_by</td>
+            	<td>name</td>
                 <td><i>
 				
 
-				
-				
+				NOT NULL
+				DEFAULT "current_user"()
 				</i>
 				
 				</td>
@@ -12395,7 +13829,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_primary_provider</td>
+            	<td>row_version</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -12411,8 +13845,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>dob_is_estimated</td>
-            	<td>boolean</td>
+            	<td>modified_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
@@ -12423,85 +13857,17 @@ this referral.
 				</td>
 			 </tr>
             
-        </table>
-
-        <!-- Inherits -->
-		
-        <p>Table audit.log_identity Inherits
-        
-            
-           <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
-        
-        </p>
-		
-
-		
-		
-		
-
-        <!-- Constraint List -->
-		
-        <p> </p>
-		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_identity Constraints</caption>
-            <tr>
-            	<th>Name</th>
-            	<th>Constraint</th>
-            </tr>
-			
-            <tr class="tr0">
-				<td>audit_trail_audit_action_check</td>
-                <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
-            </tr>
-			
-		</table>
-		
-
-        <!-- Foreign Key Discovery -->
-		
-
-    <!-- Indexes -->
-    
-
-	<!-- View Definition -->
-	
-
-	<!-- List off permissions -->
-	
-
-	<p>
-		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#audit.schema">Schema audit</a>
-    </p>
-	
-        <hr>
-		<h2>Table:
-			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-identity-tag">log_identity_tag</a>
-		</h2>
-        
-
-
-        <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_identity_tag Structure</caption>
-                <tr>
-                <th>F-Key</th>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Description</th>
-                </tr>
-            
             <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>pk_audit</td>
-            	<td>integer</td>
+            	<td>modified_by</td>
+            	<td>name</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT nextval('audit_trail_pk_audit_seq'::regclass)
+				
+				
 				</i>
 				
 				</td>
@@ -12511,15 +13877,15 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>orig_version</td>
+            	<td>pk</td>
             	<td>integer</td>
                 <td><i>
 				
 
-				NOT NULL
+				
 				
 				</i>
-				<br><br>the .row_version in the original row before the audited action took place, should be equal to .row_version
+				
 				</td>
 			 </tr>
             
@@ -12527,15 +13893,15 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>orig_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>fk_patient_candidates</td>
+            	<td>integer[]</td>
                 <td><i>
 				
 
-				NOT NULL
+				
 				
 				</i>
-				<br><br>the .modified_when in the original row before the audited action took place, should be equal to .modified_when
+				
 				</td>
 			 </tr>
             
@@ -12543,15 +13909,15 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>orig_by</td>
-            	<td>name</td>
+            	<td>request_id</td>
+            	<td>text</td>
                 <td><i>
 				
 
-				NOT NULL
+				
 				
 				</i>
-				<br><br>the .modified_by in the original row before the audited action took place, should be equal to .modified_by
+				
 				</td>
 			 </tr>
             
@@ -12559,15 +13925,15 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>orig_tableoid</td>
-            	<td>oid</td>
+            	<td>firstnames</td>
+            	<td>text</td>
                 <td><i>
 				
 
-				NOT NULL
+				
 				
 				</i>
-				<br><br>the TG_RELID when the audit trigger was run
+				
 				</td>
 			 </tr>
             
@@ -12575,12 +13941,12 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>audit_action</td>
+            	<td>lastnames</td>
             	<td>text</td>
                 <td><i>
 				
 
-				NOT NULL
+				
 				
 				</i>
 				
@@ -12591,13 +13957,13 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>audit_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>dob</td>
+            	<td>date</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT now()
+				
+				
 				</i>
 				
 				</td>
@@ -12607,13 +13973,13 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>audit_by</td>
-            	<td>name</td>
+            	<td>postcode</td>
+            	<td>text</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT "current_user"()
+				
+				
 				</i>
 				
 				</td>
@@ -12623,8 +13989,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>row_version</td>
-            	<td>integer</td>
+            	<td>other_info</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -12639,8 +14005,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>modified_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>type</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -12655,8 +14021,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>modified_by</td>
-            	<td>name</td>
+            	<td>data</td>
+            	<td>bytea</td>
                 <td><i>
 				
 
@@ -12671,8 +14037,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>pk</td>
-            	<td>integer</td>
+            	<td>gender</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -12687,8 +14053,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_identity</td>
-            	<td>integer</td>
+            	<td>requestor</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -12703,8 +14069,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_tag</td>
-            	<td>integer</td>
+            	<td>external_data_id</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -12719,8 +14085,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>comment</td>
-            	<td>text</td>
+            	<td>fk_identity_disambiguated</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -12735,7 +14101,7 @@ this referral.
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_identity_tag Inherits
+        <p>Table audit.log_incoming_data_unmatchable Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -12751,13 +14117,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_identity_tag Constraints</caption>
+            <caption>audit.log_incoming_data_unmatchable Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -12785,13 +14166,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-inbox-item-category">log_inbox_item_category</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-incoming-data-unmatched">log_incoming_data_unmatched</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_inbox_item_category Structure</caption>
+                <caption>audit.log_incoming_data_unmatched Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -12995,8 +14376,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>description</td>
-            	<td>text</td>
+            	<td>fk_patient_candidates</td>
+            	<td>integer[]</td>
                 <td><i>
 				
 
@@ -13011,8 +14392,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>is_user</td>
-            	<td>boolean</td>
+            	<td>request_id</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -13023,119 +14404,19 @@ this referral.
 				</td>
 			 </tr>
             
-        </table>
-
-        <!-- Inherits -->
-		
-        <p>Table audit.log_inbox_item_category Inherits
-        
-            
-           <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
-        
-        </p>
-		
-
-		
-		
-		
-
-        <!-- Constraint List -->
-		
-        <p> </p>
-		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_inbox_item_category Constraints</caption>
-            <tr>
-            	<th>Name</th>
-            	<th>Constraint</th>
-            </tr>
-			
-            <tr class="tr0">
-				<td>audit_trail_audit_action_check</td>
-                <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
-            </tr>
-			
-		</table>
-		
-
-        <!-- Foreign Key Discovery -->
-		
-
-    <!-- Indexes -->
-    
-
-	<!-- View Definition -->
-	
-
-	<!-- List off permissions -->
-	
-
-	<p>
-		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#audit.schema">Schema audit</a>
-    </p>
-	
-        <hr>
-		<h2>Table:
-			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-inbox-item-type">log_inbox_item_type</a>
-		</h2>
-        
-
-
-        <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_inbox_item_type Structure</caption>
-                <tr>
-                <th>F-Key</th>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Description</th>
-                </tr>
-            
             <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>pk_audit</td>
-            	<td>integer</td>
+            	<td>firstnames</td>
+            	<td>text</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT nextval('audit_trail_pk_audit_seq'::regclass)
-				</i>
 				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>orig_version</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				NOT NULL
 				
 				</i>
-				<br><br>the .row_version in the original row before the audited action took place, should be equal to .row_version
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>orig_when</td>
-            	<td>timestamp with time zone</td>
-                <td><i>
 				
-
-				NOT NULL
-				
-				</i>
-				<br><br>the .modified_when in the original row before the audited action took place, should be equal to .modified_when
 				</td>
 			 </tr>
             
@@ -13143,15 +14424,15 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>orig_by</td>
-            	<td>name</td>
+            	<td>lastnames</td>
+            	<td>text</td>
                 <td><i>
 				
 
-				NOT NULL
+				
 				
 				</i>
-				<br><br>the .modified_by in the original row before the audited action took place, should be equal to .modified_by
+				
 				</td>
 			 </tr>
             
@@ -13159,15 +14440,15 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>orig_tableoid</td>
-            	<td>oid</td>
+            	<td>dob</td>
+            	<td>date</td>
                 <td><i>
 				
 
-				NOT NULL
+				
 				
 				</i>
-				<br><br>the TG_RELID when the audit trigger was run
+				
 				</td>
 			 </tr>
             
@@ -13175,12 +14456,12 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>audit_action</td>
+            	<td>postcode</td>
             	<td>text</td>
                 <td><i>
 				
 
-				NOT NULL
+				
 				
 				</i>
 				
@@ -13191,13 +14472,13 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>audit_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>other_info</td>
+            	<td>text</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT now()
+				
+				
 				</i>
 				
 				</td>
@@ -13207,13 +14488,13 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>audit_by</td>
-            	<td>name</td>
+            	<td>type</td>
+            	<td>text</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT "current_user"()
+				
+				
 				</i>
 				
 				</td>
@@ -13223,8 +14504,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>row_version</td>
-            	<td>integer</td>
+            	<td>data</td>
+            	<td>bytea</td>
                 <td><i>
 				
 
@@ -13239,8 +14520,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>modified_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>gender</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -13255,8 +14536,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>modified_by</td>
-            	<td>name</td>
+            	<td>requestor</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -13271,8 +14552,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>pk</td>
-            	<td>integer</td>
+            	<td>external_data_id</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -13287,7 +14568,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_inbox_item_category</td>
+            	<td>fk_identity_disambiguated</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -13303,7 +14584,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>description</td>
+            	<td>comment</td>
             	<td>text</td>
                 <td><i>
 				
@@ -13319,8 +14600,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>is_user</td>
-            	<td>boolean</td>
+            	<td>fk_provider_disambiguated</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -13335,7 +14616,7 @@ this referral.
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_inbox_item_type Inherits
+        <p>Table audit.log_incoming_data_unmatched Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -13351,13 +14632,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_inbox_item_type Constraints</caption>
+            <caption>audit.log_incoming_data_unmatched Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -13385,13 +14681,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-incoming-data-unmatchable">log_incoming_data_unmatchable</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-lab-request">log_lab_request</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_incoming_data_unmatchable Structure</caption>
+                <caption>audit.log_lab_request Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -13579,6 +14875,102 @@ this referral.
 				<td>
                 
                 </td>
+            	<td>pk_item</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>clin_when</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>fk_encounter</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>fk_episode</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>narrative</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>soap_cat</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
             	<td>pk</td>
             	<td>integer</td>
                 <td><i>
@@ -13595,8 +14987,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_patient_candidates</td>
-            	<td>integer[]</td>
+            	<td>fk_test_org</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -13627,8 +15019,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>firstnames</td>
-            	<td>text</td>
+            	<td>fk_requestor</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -13643,7 +15035,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>lastnames</td>
+            	<td>lab_request_id</td>
             	<td>text</td>
                 <td><i>
 				
@@ -13659,8 +15051,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>dob</td>
-            	<td>date</td>
+            	<td>lab_rxd_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
@@ -13675,8 +15067,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>postcode</td>
-            	<td>text</td>
+            	<td>results_reported_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
@@ -13691,23 +15083,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>other_info</td>
-            	<td>text</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>type</td>
+            	<td>request_status</td>
             	<td>text</td>
                 <td><i>
 				
@@ -13719,28 +15095,12 @@ this referral.
 				</td>
 			 </tr>
             
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>data</td>
-            	<td>bytea</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
             <tr class="tr1">
 				<td>
                 
                 </td>
-            	<td>gender</td>
-            	<td>text</td>
+            	<td>is_pending</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -13755,7 +15115,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>requestor</td>
+            	<td>diagnostic_service_section</td>
             	<td>text</td>
                 <td><i>
 				
@@ -13771,7 +15131,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>external_data_id</td>
+            	<td>ordered_service</td>
             	<td>text</td>
                 <td><i>
 				
@@ -13787,8 +15147,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_identity_disambiguated</td>
-            	<td>integer</td>
+            	<td>note_test_org</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -13803,7 +15163,7 @@ this referral.
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_incoming_data_unmatchable Inherits
+        <p>Table audit.log_lab_request Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -13819,13 +15179,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_incoming_data_unmatchable Constraints</caption>
+            <caption>audit.log_lab_request Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -13853,13 +15228,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-incoming-data-unmatched">log_incoming_data_unmatched</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-lab-test-gnr">log_lab_test_gnr</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_incoming_data_unmatched Structure</caption>
+                <caption>audit.log_lab_test_gnr Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -14047,7 +15422,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>pk</td>
+            	<td>id</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -14063,8 +15438,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_patient_candidates</td>
-            	<td>integer[]</td>
+            	<td>id_test</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -14075,19 +15450,118 @@ this referral.
 				</td>
 			 </tr>
             
+        </table>
+
+        <!-- Inherits -->
+		
+        <p>Table audit.log_lab_test_gnr Inherits
+        
+            
+           <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
+        
+        </p>
+		
+
+		
+		
+		
+
+        <!-- Constraint List -->
+		
+        <p> </p>
+		<table width="100%" cellspacing="0" cellpadding="3">
+            <caption>audit.log_lab_test_gnr Constraints</caption>
+            <tr>
+            	<th>Name</th>
+            	<th>Constraint</th>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
             <tr class="tr1">
+				<td>audit_trail_audit_action_check</td>
+                <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
+            </tr>
+			
+		</table>
+		
+
+        <!-- Foreign Key Discovery -->
+		
+
+    <!-- Indexes -->
+    
+
+	<!-- View Definition -->
+	
+
+	<!-- List off permissions -->
+	
+
+	<p>
+		<a href="gnumed-entire_schema.html#index">Index</a> -
+		<a href="gnumed-entire_schema.html#audit.schema">Schema audit</a>
+    </p>
+	
+        <hr>
+		<h2>Table:
+			
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-lnk-code2aoe">log_lnk_code2aoe</a>
+		</h2>
+        
+
+
+        <table width="100%" cellspacing="0" cellpadding="3">
+                <caption>audit.log_lnk_code2aoe Structure</caption>
+                <tr>
+                <th>F-Key</th>
+                <th>Name</th>
+                <th>Type</th>
+                <th>Description</th>
+                </tr>
+            
+            <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>request_id</td>
-            	<td>text</td>
+            	<td>pk_audit</td>
+            	<td>integer</td>
                 <td><i>
 				
 
+				NOT NULL
+				DEFAULT nextval('audit_trail_pk_audit_seq'::regclass)
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>orig_version</td>
+            	<td>integer</td>
+                <td><i>
 				
+
+				NOT NULL
 				
 				</i>
-				
+				<br><br>the .row_version in the original row before the audited action took place, should be equal to .row_version
 				</td>
 			 </tr>
             
@@ -14095,15 +15569,15 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>firstnames</td>
-            	<td>text</td>
+            	<td>orig_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
-				
+				NOT NULL
 				
 				</i>
-				
+				<br><br>the .modified_when in the original row before the audited action took place, should be equal to .modified_when
 				</td>
 			 </tr>
             
@@ -14111,15 +15585,15 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>lastnames</td>
-            	<td>text</td>
+            	<td>orig_by</td>
+            	<td>name</td>
                 <td><i>
 				
 
-				
+				NOT NULL
 				
 				</i>
-				
+				<br><br>the .modified_by in the original row before the audited action took place, should be equal to .modified_by
 				</td>
 			 </tr>
             
@@ -14127,15 +15601,15 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>dob</td>
-            	<td>date</td>
+            	<td>orig_tableoid</td>
+            	<td>oid</td>
                 <td><i>
 				
 
-				
+				NOT NULL
 				
 				</i>
-				
+				<br><br>the TG_RELID when the audit trigger was run
 				</td>
 			 </tr>
             
@@ -14143,12 +15617,12 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>postcode</td>
+            	<td>audit_action</td>
             	<td>text</td>
                 <td><i>
 				
 
-				
+				NOT NULL
 				
 				</i>
 				
@@ -14159,13 +15633,13 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>other_info</td>
-            	<td>text</td>
+            	<td>audit_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
-				
-				
+				NOT NULL
+				DEFAULT now()
 				</i>
 				
 				</td>
@@ -14175,13 +15649,13 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>type</td>
-            	<td>text</td>
+            	<td>audit_by</td>
+            	<td>name</td>
                 <td><i>
 				
 
-				
-				
+				NOT NULL
+				DEFAULT "current_user"()
 				</i>
 				
 				</td>
@@ -14191,8 +15665,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>data</td>
-            	<td>bytea</td>
+            	<td>row_version</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -14207,8 +15681,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>gender</td>
-            	<td>text</td>
+            	<td>modified_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
@@ -14223,8 +15697,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>requestor</td>
-            	<td>text</td>
+            	<td>modified_by</td>
+            	<td>name</td>
                 <td><i>
 				
 
@@ -14239,8 +15713,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>external_data_id</td>
-            	<td>text</td>
+            	<td>pk_lnk_code2item</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -14255,7 +15729,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_identity_disambiguated</td>
+            	<td>fk_generic_code</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -14271,8 +15745,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>comment</td>
-            	<td>text</td>
+            	<td>fk_item</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -14287,7 +15761,23 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_provider_disambiguated</td>
+            	<td>code_modifier</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>pk</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -14303,7 +15793,7 @@ this referral.
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_incoming_data_unmatched Inherits
+        <p>Table audit.log_lnk_code2aoe Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -14319,13 +15809,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_incoming_data_unmatched Constraints</caption>
+            <caption>audit.log_lnk_code2aoe Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -14353,13 +15858,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-lab-request">log_lab_request</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-lnk-code2episode">log_lnk_code2episode</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_lab_request Structure</caption>
+                <caption>audit.log_lnk_code2episode Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -14547,7 +16052,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>pk_item</td>
+            	<td>pk_lnk_code2item</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -14563,8 +16068,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>clin_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>fk_generic_code</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -14579,7 +16084,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_encounter</td>
+            	<td>fk_item</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -14595,8 +16100,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_episode</td>
-            	<td>integer</td>
+            	<td>code_modifier</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -14611,8 +16116,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>narrative</td>
-            	<td>text</td>
+            	<td>pk</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -14623,17 +16128,100 @@ this referral.
 				</td>
 			 </tr>
             
+        </table>
+
+        <!-- Inherits -->
+		
+        <p>Table audit.log_lnk_code2episode Inherits
+        
+            
+           <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
+        
+        </p>
+		
+
+		
+		
+		
+
+        <!-- Constraint List -->
+		
+        <p> </p>
+		<table width="100%" cellspacing="0" cellpadding="3">
+            <caption>audit.log_lnk_code2episode Constraints</caption>
+            <tr>
+            	<th>Name</th>
+            	<th>Constraint</th>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_trail_audit_action_check</td>
+                <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
+            </tr>
+			
+		</table>
+		
+
+        <!-- Foreign Key Discovery -->
+		
+
+    <!-- Indexes -->
+    
+
+	<!-- View Definition -->
+	
+
+	<!-- List off permissions -->
+	
+
+	<p>
+		<a href="gnumed-entire_schema.html#index">Index</a> -
+		<a href="gnumed-entire_schema.html#audit.schema">Schema audit</a>
+    </p>
+	
+        <hr>
+		<h2>Table:
+			
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-lnk-code2fhx">log_lnk_code2fhx</a>
+		</h2>
+        
+
+
+        <table width="100%" cellspacing="0" cellpadding="3">
+                <caption>audit.log_lnk_code2fhx Structure</caption>
+                <tr>
+                <th>F-Key</th>
+                <th>Name</th>
+                <th>Type</th>
+                <th>Description</th>
+                </tr>
+            
             <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>soap_cat</td>
-            	<td>text</td>
+            	<td>pk_audit</td>
+            	<td>integer</td>
                 <td><i>
 				
 
-				
-				
+				NOT NULL
+				DEFAULT nextval('audit_trail_pk_audit_seq'::regclass)
 				</i>
 				
 				</td>
@@ -14643,15 +16231,15 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>pk</td>
+            	<td>orig_version</td>
             	<td>integer</td>
                 <td><i>
 				
 
-				
+				NOT NULL
 				
 				</i>
-				
+				<br><br>the .row_version in the original row before the audited action took place, should be equal to .row_version
 				</td>
 			 </tr>
             
@@ -14659,15 +16247,47 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_test_org</td>
-            	<td>integer</td>
+            	<td>orig_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
+				NOT NULL
+				
+				</i>
+				<br><br>the .modified_when in the original row before the audited action took place, should be equal to .modified_when
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>orig_by</td>
+            	<td>name</td>
+                <td><i>
 				
+
+				NOT NULL
 				
 				</i>
+				<br><br>the .modified_by in the original row before the audited action took place, should be equal to .modified_by
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>orig_tableoid</td>
+            	<td>oid</td>
+                <td><i>
+				
+
+				NOT NULL
 				
+				</i>
+				<br><br>the TG_RELID when the audit trigger was run
 				</td>
 			 </tr>
             
@@ -14675,12 +16295,12 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>request_id</td>
+            	<td>audit_action</td>
             	<td>text</td>
                 <td><i>
 				
 
-				
+				NOT NULL
 				
 				</i>
 				
@@ -14691,13 +16311,13 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_requestor</td>
-            	<td>integer</td>
+            	<td>audit_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
-				
-				
+				NOT NULL
+				DEFAULT now()
 				</i>
 				
 				</td>
@@ -14707,13 +16327,13 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>lab_request_id</td>
-            	<td>text</td>
+            	<td>audit_by</td>
+            	<td>name</td>
                 <td><i>
 				
 
-				
-				
+				NOT NULL
+				DEFAULT "current_user"()
 				</i>
 				
 				</td>
@@ -14723,8 +16343,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>lab_rxd_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>row_version</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -14739,7 +16359,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>results_reported_when</td>
+            	<td>modified_when</td>
             	<td>timestamp with time zone</td>
                 <td><i>
 				
@@ -14755,8 +16375,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>request_status</td>
-            	<td>text</td>
+            	<td>modified_by</td>
+            	<td>name</td>
                 <td><i>
 				
 
@@ -14771,8 +16391,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>is_pending</td>
-            	<td>boolean</td>
+            	<td>pk_lnk_code2item</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -14787,8 +16407,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>diagnostic_service_section</td>
-            	<td>text</td>
+            	<td>fk_generic_code</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -14803,8 +16423,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>ordered_service</td>
-            	<td>text</td>
+            	<td>fk_item</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -14819,7 +16439,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>note_test_org</td>
+            	<td>code_modifier</td>
             	<td>text</td>
                 <td><i>
 				
@@ -14831,11 +16451,27 @@ this referral.
 				</td>
 			 </tr>
             
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>pk</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
         </table>
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_lab_request Inherits
+        <p>Table audit.log_lnk_code2fhx Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -14851,13 +16487,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_lab_request Constraints</caption>
+            <caption>audit.log_lnk_code2fhx Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -14885,13 +16536,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-lab-test-gnr">log_lab_test_gnr</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-lnk-code2h-issue">log_lnk_code2h_issue</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_lab_test_gnr Structure</caption>
+                <caption>audit.log_lnk_code2h_issue Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -15079,7 +16730,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>id</td>
+            	<td>pk_lnk_code2item</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -15095,7 +16746,55 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>id_test</td>
+            	<td>fk_generic_code</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>fk_item</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>code_modifier</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>pk</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -15111,7 +16810,7 @@ this referral.
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_lab_test_gnr Inherits
+        <p>Table audit.log_lnk_code2h_issue Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -15127,13 +16826,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_lab_test_gnr Constraints</caption>
+            <caption>audit.log_lnk_code2h_issue Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -15161,13 +16875,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-lnk-code2aoe">log_lnk_code2aoe</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-lnk-code2narrative">log_lnk_code2narrative</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_lnk_code2aoe Structure</caption>
+                <caption>audit.log_lnk_code2narrative Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -15435,7 +17149,7 @@ this referral.
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_lnk_code2aoe Inherits
+        <p>Table audit.log_lnk_code2narrative Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -15451,13 +17165,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_lnk_code2aoe Constraints</caption>
+            <caption>audit.log_lnk_code2narrative Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -15485,13 +17214,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-lnk-code2episode">log_lnk_code2episode</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-lnk-code2procedure">log_lnk_code2procedure</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_lnk_code2episode Structure</caption>
+                <caption>audit.log_lnk_code2procedure Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -15759,7 +17488,7 @@ this referral.
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_lnk_code2episode Inherits
+        <p>Table audit.log_lnk_code2procedure Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -15775,13 +17504,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_lnk_code2episode Constraints</caption>
+            <caption>audit.log_lnk_code2procedure Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -15809,13 +17553,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-lnk-code2fhx">log_lnk_code2fhx</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-lnk-code2rfe">log_lnk_code2rfe</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_lnk_code2fhx Structure</caption>
+                <caption>audit.log_lnk_code2rfe Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -16083,7 +17827,7 @@ this referral.
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_lnk_code2fhx Inherits
+        <p>Table audit.log_lnk_code2rfe Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -16099,13 +17843,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_lnk_code2fhx Constraints</caption>
+            <caption>audit.log_lnk_code2rfe Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -16133,13 +17892,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-lnk-code2h-issue">log_lnk_code2h_issue</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-lnk-code2tst-pnl">log_lnk_code2tst_pnl</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_lnk_code2h_issue Structure</caption>
+                <caption>audit.log_lnk_code2tst_pnl Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -16407,7 +18166,7 @@ this referral.
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_lnk_code2h_issue Inherits
+        <p>Table audit.log_lnk_code2tst_pnl Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -16423,13 +18182,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_lnk_code2h_issue Constraints</caption>
+            <caption>audit.log_lnk_code2tst_pnl Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -16457,13 +18231,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-lnk-code2narrative">log_lnk_code2narrative</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-lnk-constraint2vacc-course">log_lnk_constraint2vacc_course</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_lnk_code2narrative Structure</caption>
+                <caption>audit.log_lnk_constraint2vacc_course Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -16651,7 +18425,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>pk_lnk_code2item</td>
+            	<td>pk</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -16667,7 +18441,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_generic_code</td>
+            	<td>fk_vaccination_course</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -16683,39 +18457,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_item</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>code_modifier</td>
-            	<td>text</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>pk</td>
+            	<td>fk_constraint</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -16731,7 +18473,7 @@ this referral.
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_lnk_code2narrative Inherits
+        <p>Table audit.log_lnk_constraint2vacc_course Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -16747,13 +18489,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_lnk_code2narrative Constraints</caption>
+            <caption>audit.log_lnk_constraint2vacc_course Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -16781,13 +18538,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-lnk-code2procedure">log_lnk_code2procedure</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-lnk-identity2ext-id">log_lnk_identity2ext_id</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_lnk_code2procedure Structure</caption>
+                <caption>audit.log_lnk_identity2ext_id Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -16975,7 +18732,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>pk_lnk_code2item</td>
+            	<td>id</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -16991,7 +18748,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_generic_code</td>
+            	<td>id_identity</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -17007,8 +18764,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_item</td>
-            	<td>integer</td>
+            	<td>external_id</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -17023,8 +18780,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>code_modifier</td>
-            	<td>text</td>
+            	<td>fk_origin</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -17039,8 +18796,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>pk</td>
-            	<td>integer</td>
+            	<td>comment</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -17055,7 +18812,7 @@ this referral.
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_lnk_code2procedure Inherits
+        <p>Table audit.log_lnk_identity2ext_id Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -17071,13 +18828,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_lnk_code2procedure Constraints</caption>
+            <caption>audit.log_lnk_identity2ext_id Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -17105,13 +18877,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-lnk-code2rfe">log_lnk_code2rfe</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-lnk-identity2primary-doc">log_lnk_identity2primary_doc</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_lnk_code2rfe Structure</caption>
+                <caption>audit.log_lnk_identity2primary_doc Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -17251,71 +19023,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>row_version</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>modified_when</td>
-            	<td>timestamp with time zone</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>modified_by</td>
-            	<td>name</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>pk_lnk_code2item</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>fk_generic_code</td>
+            	<td>pk</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -17331,7 +19039,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_item</td>
+            	<td>fk_identity</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -17347,23 +19055,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>code_modifier</td>
-            	<td>text</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>pk</td>
+            	<td>fk_primary_doc</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -17379,7 +19071,7 @@ this referral.
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_lnk_code2rfe Inherits
+        <p>Table audit.log_lnk_identity2primary_doc Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -17395,13 +19087,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_lnk_code2rfe Constraints</caption>
+            <caption>audit.log_lnk_identity2primary_doc Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -17429,13 +19136,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-lnk-code2tst-pnl">log_lnk_code2tst_pnl</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-lnk-job2person">log_lnk_job2person</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_lnk_code2tst_pnl Structure</caption>
+                <caption>audit.log_lnk_job2person Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -17623,7 +19330,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>pk_lnk_code2item</td>
+            	<td>pk</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -17639,7 +19346,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_generic_code</td>
+            	<td>fk_identity</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -17655,7 +19362,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_item</td>
+            	<td>fk_occupation</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -17671,7 +19378,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>code_modifier</td>
+            	<td>activities</td>
             	<td>text</td>
                 <td><i>
 				
@@ -17683,27 +19390,11 @@ this referral.
 				</td>
 			 </tr>
             
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>pk</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
         </table>
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_lnk_code2tst_pnl Inherits
+        <p>Table audit.log_lnk_job2person Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -17719,13 +19410,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_lnk_code2tst_pnl Constraints</caption>
+            <caption>audit.log_lnk_job2person Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -17753,13 +19459,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-lnk-constraint2vacc-course">log_lnk_constraint2vacc_course</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-lnk-org-unit2comm">log_lnk_org_unit2comm</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_lnk_constraint2vacc_course Structure</caption>
+                <caption>audit.log_lnk_org_unit2comm Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -17963,7 +19669,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_vaccination_course</td>
+            	<td>fk_org_unit</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -17979,7 +19685,23 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_constraint</td>
+            	<td>url</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>fk_type</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -17991,11 +19713,43 @@ this referral.
 				</td>
 			 </tr>
             
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>is_confidential</td>
+            	<td>boolean</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>comment</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
         </table>
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_lnk_constraint2vacc_course Inherits
+        <p>Table audit.log_lnk_org_unit2comm Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -18011,13 +19765,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_lnk_constraint2vacc_course Constraints</caption>
+            <caption>audit.log_lnk_org_unit2comm Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -18045,13 +19814,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-lnk-identity2ext-id">log_lnk_identity2ext_id</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-lnk-org-unit2ext-id">log_lnk_org_unit2ext_id</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_lnk_identity2ext_id Structure</caption>
+                <caption>audit.log_lnk_org_unit2ext_id Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -18239,7 +20008,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>id</td>
+            	<td>pk</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -18255,7 +20024,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>id_identity</td>
+            	<td>fk_org_unit</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -18287,7 +20056,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_origin</td>
+            	<td>fk_type</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -18319,7 +20088,7 @@ this referral.
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_lnk_identity2ext_id Inherits
+        <p>Table audit.log_lnk_org_unit2ext_id Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -18335,13 +20104,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_lnk_identity2ext_id Constraints</caption>
+            <caption>audit.log_lnk_org_unit2ext_id Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -18369,13 +20153,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-lnk-identity2primary-doc">log_lnk_identity2primary_doc</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-lnk-pat2vaccination-course">log_lnk_pat2vaccination_course</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_lnk_identity2primary_doc Structure</caption>
+                <caption>audit.log_lnk_pat2vaccination_course Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -18515,7 +20299,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>pk</td>
+            	<td>row_version</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -18531,7 +20315,39 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_identity</td>
+            	<td>modified_when</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>modified_by</td>
+            	<td>name</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>pk</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -18547,7 +20363,23 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_primary_doc</td>
+            	<td>fk_patient</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>fk_course</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -18563,7 +20395,7 @@ this referral.
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_lnk_identity2primary_doc Inherits
+        <p>Table audit.log_lnk_pat2vaccination_course Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -18579,13 +20411,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_lnk_identity2primary_doc Constraints</caption>
+            <caption>audit.log_lnk_pat2vaccination_course Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -18613,13 +20460,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-lnk-job2person">log_lnk_job2person</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-lnk-person2relative">log_lnk_person2relative</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_lnk_job2person Structure</caption>
+                <caption>audit.log_lnk_person2relative Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -18807,7 +20654,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>pk</td>
+            	<td>id</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -18823,7 +20670,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_identity</td>
+            	<td>id_identity</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -18839,7 +20686,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_occupation</td>
+            	<td>id_relative</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -18855,8 +20702,40 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>activities</td>
-            	<td>text</td>
+            	<td>id_relation_type</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>started</td>
+            	<td>date</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>ended</td>
+            	<td>date</td>
                 <td><i>
 				
 
@@ -18871,7 +20750,7 @@ this referral.
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_lnk_job2person Inherits
+        <p>Table audit.log_lnk_person2relative Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -18887,13 +20766,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_lnk_job2person Constraints</caption>
+            <caption>audit.log_lnk_person2relative Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -18921,13 +20815,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-lnk-org-unit2comm">log_lnk_org_unit2comm</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-lnk-substance2brand">log_lnk_substance2brand</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_lnk_org_unit2comm Structure</caption>
+                <caption>audit.log_lnk_substance2brand Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -19131,7 +21025,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_org_unit</td>
+            	<td>fk_brand</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -19147,13 +21041,224 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>url</td>
+            	<td>fk_substance</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+        </table>
+
+        <!-- Inherits -->
+		
+        <p>Table audit.log_lnk_substance2brand Inherits
+        
+            
+           <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
+        
+        </p>
+		
+
+		
+		
+		
+
+        <!-- Constraint List -->
+		
+        <p> </p>
+		<table width="100%" cellspacing="0" cellpadding="3">
+            <caption>audit.log_lnk_substance2brand Constraints</caption>
+            <tr>
+            	<th>Name</th>
+            	<th>Constraint</th>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_trail_audit_action_check</td>
+                <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
+            </tr>
+			
+		</table>
+		
+
+        <!-- Foreign Key Discovery -->
+		
+
+    <!-- Indexes -->
+    
+
+	<!-- View Definition -->
+	
+
+	<!-- List off permissions -->
+	
+
+	<p>
+		<a href="gnumed-entire_schema.html#index">Index</a> -
+		<a href="gnumed-entire_schema.html#audit.schema">Schema audit</a>
+    </p>
+	
+        <hr>
+		<h2>Table:
+			
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-lnk-tst2norm">log_lnk_tst2norm</a>
+		</h2>
+        
+
+
+        <table width="100%" cellspacing="0" cellpadding="3">
+                <caption>audit.log_lnk_tst2norm Structure</caption>
+                <tr>
+                <th>F-Key</th>
+                <th>Name</th>
+                <th>Type</th>
+                <th>Description</th>
+                </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_audit</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				NOT NULL
+				DEFAULT nextval('audit_trail_pk_audit_seq'::regclass)
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>orig_version</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				NOT NULL
+				
+				</i>
+				<br><br>the .row_version in the original row before the audited action took place, should be equal to .row_version
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>orig_when</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				NOT NULL
+				
+				</i>
+				<br><br>the .modified_when in the original row before the audited action took place, should be equal to .modified_when
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>orig_by</td>
+            	<td>name</td>
+                <td><i>
+				
+
+				NOT NULL
+				
+				</i>
+				<br><br>the .modified_by in the original row before the audited action took place, should be equal to .modified_by
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>orig_tableoid</td>
+            	<td>oid</td>
+                <td><i>
+				
+
+				NOT NULL
+				
+				</i>
+				<br><br>the TG_RELID when the audit trigger was run
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>audit_action</td>
             	<td>text</td>
                 <td><i>
 				
 
+				NOT NULL
 				
+				</i>
 				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>audit_when</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				NOT NULL
+				DEFAULT now()
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>audit_by</td>
+            	<td>name</td>
+                <td><i>
+				
+
+				NOT NULL
+				DEFAULT "current_user"()
 				</i>
 				
 				</td>
@@ -19163,7 +21268,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_type</td>
+            	<td>row_version</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -19179,8 +21284,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>is_confidential</td>
-            	<td>boolean</td>
+            	<td>modified_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
@@ -19195,8 +21300,56 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>comment</td>
-            	<td>text</td>
+            	<td>modified_by</td>
+            	<td>name</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>id</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>id_test</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>id_norm</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -19211,7 +21364,7 @@ this referral.
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_lnk_org_unit2comm Inherits
+        <p>Table audit.log_lnk_tst2norm Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -19227,13 +21380,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_lnk_org_unit2comm Constraints</caption>
+            <caption>audit.log_lnk_tst2norm Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -19261,13 +21429,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-lnk-org-unit2ext-id">log_lnk_org_unit2ext_id</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-lnk-type2item">log_lnk_type2item</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_lnk_org_unit2ext_id Structure</caption>
+                <caption>audit.log_lnk_type2item Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -19471,38 +21639,6 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_org_unit</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>external_id</td>
-            	<td>text</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
             	<td>fk_type</td>
             	<td>integer</td>
                 <td><i>
@@ -19519,8 +21655,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>comment</td>
-            	<td>text</td>
+            	<td>fk_item</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -19535,7 +21671,7 @@ this referral.
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_lnk_org_unit2ext_id Inherits
+        <p>Table audit.log_lnk_type2item Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -19551,13 +21687,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_lnk_org_unit2ext_id Constraints</caption>
+            <caption>audit.log_lnk_type2item Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -19585,13 +21736,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-lnk-pat2vaccination-course">log_lnk_pat2vaccination_course</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-lnk-vaccination-course2schedule">log_lnk_vaccination_course2schedule</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_lnk_pat2vaccination_course Structure</caption>
+                <caption>audit.log_lnk_vaccination_course2schedule Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -19795,7 +21946,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_patient</td>
+            	<td>fk_course</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -19811,7 +21962,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_course</td>
+            	<td>fk_schedule</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -19827,7 +21978,7 @@ this referral.
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_lnk_pat2vaccination_course Inherits
+        <p>Table audit.log_lnk_vaccination_course2schedule Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -19843,13 +21994,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_lnk_pat2vaccination_course Constraints</caption>
+            <caption>audit.log_lnk_vaccination_course2schedule Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -19877,13 +22043,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-lnk-person2relative">log_lnk_person2relative</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-lnk-vaccine2inds">log_lnk_vaccine2inds</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_lnk_person2relative Structure</caption>
+                <caption>audit.log_lnk_vaccine2inds Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -20087,7 +22253,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>id_identity</td>
+            	<td>fk_vaccine</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -20103,23 +22269,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>id_relative</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>id_relation_type</td>
+            	<td>fk_indication</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -20131,43 +22281,11 @@ this referral.
 				</td>
 			 </tr>
             
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>started</td>
-            	<td>date</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>ended</td>
-            	<td>date</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
         </table>
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_lnk_person2relative Inherits
+        <p>Table audit.log_lnk_vaccine2inds Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -20183,13 +22301,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_lnk_person2relative Constraints</caption>
+            <caption>audit.log_lnk_vaccine2inds Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -20217,13 +22350,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-lnk-substance2brand">log_lnk_substance2brand</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-message-inbox">log_message_inbox</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_lnk_substance2brand Structure</caption>
+                <caption>audit.log_message_inbox Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -20427,7 +22560,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_brand</td>
+            	<td>fk_staff</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -20443,7 +22576,71 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_substance</td>
+            	<td>fk_inbox_item_type</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>comment</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>data</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>importance</td>
+            	<td>smallint</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>fk_patient</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -20455,11 +22652,59 @@ this referral.
 				</td>
 			 </tr>
             
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>ufk_context</td>
+            	<td>integer[]</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>due_date</td>
+            	<td>date</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>expiry_date</td>
+            	<td>date</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
         </table>
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_lnk_substance2brand Inherits
+        <p>Table audit.log_message_inbox Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -20475,13 +22720,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_lnk_substance2brand Constraints</caption>
+            <caption>audit.log_message_inbox Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -20509,13 +22769,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-lnk-tst2norm">log_lnk_tst2norm</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-occupation">log_occupation</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_lnk_tst2norm Structure</caption>
+                <caption>audit.log_occupation Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -20719,24 +22979,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>id_test</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>id_norm</td>
-            	<td>integer</td>
+            	<td>name</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -20751,7 +22995,7 @@ this referral.
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_lnk_tst2norm Inherits
+        <p>Table audit.log_occupation Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -20767,13 +23011,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_lnk_tst2norm Constraints</caption>
+            <caption>audit.log_occupation Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -20801,13 +23060,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-lnk-type2item">log_lnk_type2item</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-operation">log_operation</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_lnk_type2item Structure</caption>
+                <caption>audit.log_operation Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -21011,7 +23270,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_type</td>
+            	<td>fk_health_issue</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -21027,7 +23286,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_item</td>
+            	<td>fk_encounter</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -21039,11 +23298,43 @@ this referral.
 				</td>
 			 </tr>
             
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>clin_where</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>comment</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
         </table>
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_lnk_type2item Inherits
+        <p>Table audit.log_operation Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -21059,13 +23350,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_lnk_type2item Constraints</caption>
+            <caption>audit.log_operation Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -21093,13 +23399,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-lnk-vaccination-course2schedule">log_lnk_vaccination_course2schedule</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-org">log_org</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_lnk_vaccination_course2schedule Structure</caption>
+                <caption>audit.log_org Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -21303,8 +23609,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_course</td>
-            	<td>integer</td>
+            	<td>description</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -21319,7 +23625,23 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_schedule</td>
+            	<td>fk_category</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>fk_data_source</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -21335,7 +23657,7 @@ this referral.
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_lnk_vaccination_course2schedule Inherits
+        <p>Table audit.log_org Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -21351,13 +23673,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_lnk_vaccination_course2schedule Constraints</caption>
+            <caption>audit.log_org Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -21385,13 +23722,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-lnk-vaccine2inds">log_lnk_vaccine2inds</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-org-unit">log_org_unit</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_lnk_vaccine2inds Structure</caption>
+                <caption>audit.log_org_unit Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -21579,7 +23916,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>id</td>
+            	<td>pk</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -21595,7 +23932,39 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_vaccine</td>
+            	<td>description</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>fk_org</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>fk_address</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -21611,7 +23980,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_indication</td>
+            	<td>fk_category</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -21627,7 +23996,7 @@ this referral.
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_lnk_vaccine2inds Inherits
+        <p>Table audit.log_org_unit Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -21643,13 +24012,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_lnk_vaccine2inds Constraints</caption>
+            <caption>audit.log_org_unit Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -21677,13 +24061,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-message-inbox">log_message_inbox</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-paperwork-templates">log_paperwork_templates</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_message_inbox Structure</caption>
+                <caption>audit.log_paperwork_templates Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -21887,7 +24271,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_staff</td>
+            	<td>fk_template_type</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -21903,8 +24287,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_inbox_item_type</td>
-            	<td>integer</td>
+            	<td>instance_type</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -21919,7 +24303,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>comment</td>
+            	<td>name_short</td>
             	<td>text</td>
                 <td><i>
 				
@@ -21935,7 +24319,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>data</td>
+            	<td>name_long</td>
             	<td>text</td>
                 <td><i>
 				
@@ -21951,8 +24335,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>importance</td>
-            	<td>smallint</td>
+            	<td>external_version</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -21967,8 +24351,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_patient</td>
-            	<td>integer</td>
+            	<td>gnumed_revision</td>
+            	<td>double precision</td>
                 <td><i>
 				
 
@@ -21983,8 +24367,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>ufk_context</td>
-            	<td>integer[]</td>
+            	<td>engine</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -21999,8 +24383,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>due_date</td>
-            	<td>date</td>
+            	<td>in_use</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -22015,8 +24399,40 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>expiry_date</td>
-            	<td>date</td>
+            	<td>filename</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>data</td>
+            	<td>bytea</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>edit_after_substitution</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -22031,7 +24447,7 @@ this referral.
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_message_inbox Inherits
+        <p>Table audit.log_paperwork_templates Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -22047,13 +24463,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_message_inbox Constraints</caption>
+            <caption>audit.log_paperwork_templates Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -22081,13 +24512,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-occupation">log_occupation</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-patient">log_patient</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_occupation Structure</caption>
+                <caption>audit.log_patient Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -22275,7 +24706,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>id</td>
+            	<td>pk</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -22291,8 +24722,24 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>name</td>
-            	<td>text</td>
+            	<td>fk_identity</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>edc</td>
+            	<td>date</td>
                 <td><i>
 				
 
@@ -22307,7 +24754,7 @@ this referral.
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_occupation Inherits
+        <p>Table audit.log_patient Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -22323,13 +24770,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_occupation Constraints</caption>
+            <caption>audit.log_patient Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -22357,13 +24819,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-operation">log_operation</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-prax-geb-paid">log_prax_geb_paid</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_operation Structure</caption>
+                <caption>audit.log_prax_geb_paid Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -22567,7 +25029,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_health_issue</td>
+            	<td>fk_fall</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -22583,8 +25045,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_encounter</td>
-            	<td>integer</td>
+            	<td>paid_amount</td>
+            	<td>numeric</td>
                 <td><i>
 				
 
@@ -22599,8 +25061,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>clin_where</td>
-            	<td>text</td>
+            	<td>paid_when</td>
+            	<td>date</td>
                 <td><i>
 				
 
@@ -22615,8 +25077,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>comment</td>
-            	<td>text</td>
+            	<td>paid_with</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -22631,7 +25093,7 @@ this referral.
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_operation Inherits
+        <p>Table audit.log_prax_geb_paid Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -22647,13 +25109,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_operation Constraints</caption>
+            <caption>audit.log_prax_geb_paid Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -22681,13 +25158,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-org">log_org</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-praxis-branch">log_praxis_branch</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_org Structure</caption>
+                <caption>audit.log_praxis_branch Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -22891,39 +25368,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>description</td>
-            	<td>text</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>fk_category</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>fk_data_source</td>
+            	<td>fk_org_unit</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -22939,7 +25384,7 @@ this referral.
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_org Inherits
+        <p>Table audit.log_praxis_branch Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -22955,13 +25400,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_org Constraints</caption>
+            <caption>audit.log_praxis_branch Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -22989,13 +25449,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-org-unit">log_org_unit</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-procedure">log_procedure</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_org_unit Structure</caption>
+                <caption>audit.log_procedure Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -23183,7 +25643,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>pk</td>
+            	<td>pk_item</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -23199,7 +25659,71 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>description</td>
+            	<td>clin_when</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>fk_encounter</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>fk_episode</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>narrative</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>soap_cat</td>
             	<td>text</td>
                 <td><i>
 				
@@ -23215,7 +25739,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_org</td>
+            	<td>pk</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -23231,7 +25755,23 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_address</td>
+            	<td>clin_where</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>fk_hospital_stay</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -23243,11 +25783,43 @@ this referral.
 				</td>
 			 </tr>
             
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>clin_end</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
             <tr class="tr1">
 				<td>
                 
                 </td>
-            	<td>fk_category</td>
+            	<td>is_ongoing</td>
+            	<td>boolean</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>fk_org_unit</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -23263,7 +25835,7 @@ this referral.
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_org_unit Inherits
+        <p>Table audit.log_procedure Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -23279,13 +25851,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_org_unit Constraints</caption>
+            <caption>audit.log_procedure Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -23313,13 +25900,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-paperwork-templates">log_paperwork_templates</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-referral">log_referral</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_paperwork_templates Structure</caption>
+                <caption>audit.log_referral Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -23507,7 +26094,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>pk</td>
+            	<td>pk_item</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -23523,8 +26110,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_template_type</td>
-            	<td>integer</td>
+            	<td>clin_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
@@ -23539,8 +26126,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>instance_type</td>
-            	<td>text</td>
+            	<td>fk_encounter</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -23555,8 +26142,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>name_short</td>
-            	<td>text</td>
+            	<td>fk_episode</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -23571,23 +26158,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>name_long</td>
-            	<td>text</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>external_version</td>
+            	<td>narrative</td>
             	<td>text</td>
                 <td><i>
 				
@@ -23599,27 +26170,11 @@ this referral.
 				</td>
 			 </tr>
             
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>gnumed_revision</td>
-            	<td>double precision</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
             <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>engine</td>
+            	<td>soap_cat</td>
             	<td>text</td>
                 <td><i>
 				
@@ -23635,8 +26190,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>in_use</td>
-            	<td>boolean</td>
+            	<td>id</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -23651,8 +26206,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>filename</td>
-            	<td>text</td>
+            	<td>fk_referee</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -23667,24 +26222,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>data</td>
-            	<td>bytea</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>edit_after_substitution</td>
-            	<td>boolean</td>
+            	<td>fk_form</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -23699,7 +26238,7 @@ this referral.
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_paperwork_templates Inherits
+        <p>Table audit.log_referral Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -23715,13 +26254,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_paperwork_templates Constraints</caption>
+            <caption>audit.log_referral Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -23749,13 +26303,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-patient">log_patient</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-region">log_region</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_patient Structure</caption>
+                <caption>audit.log_region Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -23773,7 +26327,7 @@ this referral.
 				
 
 				NOT NULL
-				DEFAULT nextval('audit.audit_trail_pk_audit_seq'::regclass)
+				DEFAULT nextval('audit_trail_pk_audit_seq'::regclass)
 				</i>
 				
 				</td>
@@ -23959,8 +26513,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_identity</td>
-            	<td>integer</td>
+            	<td>code</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -23975,8 +26529,24 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>edc</td>
-            	<td>date</td>
+            	<td>country</td>
+            	<td>bpchar</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>name</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -23991,7 +26561,7 @@ this referral.
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_patient Inherits
+        <p>Table audit.log_region Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -24007,13 +26577,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_patient Constraints</caption>
+            <caption>audit.log_region Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -24041,13 +26626,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-prax-geb-paid">log_prax_geb_paid</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-relation-types">log_relation_types</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_prax_geb_paid Structure</caption>
+                <caption>audit.log_relation_types Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -24235,7 +26820,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>pk</td>
+            	<td>id</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -24251,7 +26836,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_fall</td>
+            	<td>inverse</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -24267,8 +26852,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>paid_amount</td>
-            	<td>numeric</td>
+            	<td>biological</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -24283,8 +26868,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>paid_when</td>
-            	<td>date</td>
+            	<td>biol_verified</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -24299,8 +26884,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>paid_with</td>
-            	<td>integer</td>
+            	<td>description</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -24315,7 +26900,7 @@ this referral.
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_prax_geb_paid Inherits
+        <p>Table audit.log_relation_types Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -24331,13 +26916,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_prax_geb_paid Constraints</caption>
+            <caption>audit.log_relation_types Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -24365,13 +26965,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-praxis-branch">log_praxis_branch</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-report-query">log_report_query</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_praxis_branch Structure</caption>
+                <caption>audit.log_report_query Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -24389,7 +26989,7 @@ this referral.
 				
 
 				NOT NULL
-				DEFAULT nextval('audit.audit_trail_pk_audit_seq'::regclass)
+				DEFAULT nextval('audit_trail_pk_audit_seq'::regclass)
 				</i>
 				
 				</td>
@@ -24575,8 +27175,24 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_org_unit</td>
-            	<td>integer</td>
+            	<td>label</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>cmd</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -24591,7 +27207,7 @@ this referral.
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_praxis_branch Inherits
+        <p>Table audit.log_report_query Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -24607,13 +27223,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_praxis_branch Constraints</caption>
+            <caption>audit.log_report_query Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -24641,13 +27272,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-procedure">log_procedure</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-staff">log_staff</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_procedure Structure</caption>
+                <caption>audit.log_staff Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -24835,39 +27466,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>pk_item</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>clin_when</td>
-            	<td>timestamp with time zone</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>fk_encounter</td>
+            	<td>pk</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -24883,7 +27482,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_episode</td>
+            	<td>fk_identity</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -24899,8 +27498,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>narrative</td>
-            	<td>text</td>
+            	<td>db_user</td>
+            	<td>name</td>
                 <td><i>
 				
 
@@ -24915,7 +27514,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>soap_cat</td>
+            	<td>short_alias</td>
             	<td>text</td>
                 <td><i>
 				
@@ -24931,23 +27530,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>pk</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>clin_where</td>
+            	<td>comment</td>
             	<td>text</td>
                 <td><i>
 				
@@ -24959,43 +27542,11 @@ this referral.
 				</td>
 			 </tr>
             
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>fk_hospital_stay</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
             <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>clin_end</td>
-            	<td>timestamp with time zone</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>is_ongoing</td>
+            	<td>is_active</td>
             	<td>boolean</td>
                 <td><i>
 				
@@ -25007,27 +27558,11 @@ this referral.
 				</td>
 			 </tr>
             
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>fk_org_unit</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
         </table>
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_procedure Inherits
+        <p>Table audit.log_staff Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -25043,13 +27578,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_procedure Constraints</caption>
+            <caption>audit.log_staff Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -25077,13 +27627,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-referral">log_referral</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-street">log_street</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_referral Structure</caption>
+                <caption>audit.log_street Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -25271,39 +27821,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>pk_item</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>clin_when</td>
-            	<td>timestamp with time zone</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>fk_encounter</td>
+            	<td>id</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -25319,7 +27837,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_episode</td>
+            	<td>id_urb</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -25335,7 +27853,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>narrative</td>
+            	<td>name</td>
             	<td>text</td>
                 <td><i>
 				
@@ -25351,7 +27869,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>soap_cat</td>
+            	<td>postcode</td>
             	<td>text</td>
                 <td><i>
 				
@@ -25367,8 +27885,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>id</td>
-            	<td>integer</td>
+            	<td>suburb</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -25383,24 +27901,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_referee</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>fk_form</td>
-            	<td>integer</td>
+            	<td>lat_lon</td>
+            	<td>point</td>
                 <td><i>
 				
 
@@ -25415,7 +27917,7 @@ this referral.
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_referral Inherits
+        <p>Table audit.log_street Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -25431,13 +27933,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_referral Constraints</caption>
+            <caption>audit.log_street Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -25465,13 +27982,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-relation-types">log_relation_types</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-substance-in-brand">log_substance_in_brand</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_relation_types Structure</caption>
+                <caption>audit.log_substance_in_brand Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -25659,7 +28176,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>id</td>
+            	<td>pk</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -25675,7 +28192,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>inverse</td>
+            	<td>fk_brand</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -25691,8 +28208,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>biological</td>
-            	<td>boolean</td>
+            	<td>description</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -25707,23 +28224,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>biol_verified</td>
-            	<td>boolean</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>description</td>
+            	<td>atc_code</td>
             	<td>text</td>
                 <td><i>
 				
@@ -25739,7 +28240,7 @@ this referral.
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_relation_types Inherits
+        <p>Table audit.log_substance_in_brand Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -25755,13 +28256,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_relation_types Constraints</caption>
+            <caption>audit.log_substance_in_brand Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -25789,13 +28305,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-report-query">log_report_query</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-substance-intake">log_substance_intake</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_report_query Structure</caption>
+                <caption>audit.log_substance_intake Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -25983,7 +28499,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>pk</td>
+            	<td>pk_item</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -25999,8 +28515,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>label</td>
-            	<td>text</td>
+            	<td>clin_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
@@ -26015,8 +28531,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>cmd</td>
-            	<td>text</td>
+            	<td>fk_encounter</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -26027,85 +28543,17 @@ this referral.
 				</td>
 			 </tr>
             
-        </table>
-
-        <!-- Inherits -->
-		
-        <p>Table audit.log_report_query Inherits
-        
-            
-           <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
-        
-        </p>
-		
-
-		
-		
-		
-
-        <!-- Constraint List -->
-		
-        <p> </p>
-		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_report_query Constraints</caption>
-            <tr>
-            	<th>Name</th>
-            	<th>Constraint</th>
-            </tr>
-			
-            <tr class="tr0">
-				<td>audit_trail_audit_action_check</td>
-                <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
-            </tr>
-			
-		</table>
-		
-
-        <!-- Foreign Key Discovery -->
-		
-
-    <!-- Indexes -->
-    
-
-	<!-- View Definition -->
-	
-
-	<!-- List off permissions -->
-	
-
-	<p>
-		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#audit.schema">Schema audit</a>
-    </p>
-	
-        <hr>
-		<h2>Table:
-			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-staff">log_staff</a>
-		</h2>
-        
-
-
-        <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_staff Structure</caption>
-                <tr>
-                <th>F-Key</th>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Description</th>
-                </tr>
-            
             <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>pk_audit</td>
+            	<td>fk_episode</td>
             	<td>integer</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT nextval('audit_trail_pk_audit_seq'::regclass)
+				
+				
 				</i>
 				
 				</td>
@@ -26115,15 +28563,15 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>orig_version</td>
-            	<td>integer</td>
+            	<td>narrative</td>
+            	<td>text</td>
                 <td><i>
 				
 
-				NOT NULL
+				
 				
 				</i>
-				<br><br>the .row_version in the original row before the audited action took place, should be equal to .row_version
+				
 				</td>
 			 </tr>
             
@@ -26131,15 +28579,15 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>orig_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>soap_cat</td>
+            	<td>text</td>
                 <td><i>
 				
 
-				NOT NULL
+				
 				
 				</i>
-				<br><br>the .modified_when in the original row before the audited action took place, should be equal to .modified_when
+				
 				</td>
 			 </tr>
             
@@ -26147,15 +28595,15 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>orig_by</td>
-            	<td>name</td>
+            	<td>pk</td>
+            	<td>integer</td>
                 <td><i>
 				
 
-				NOT NULL
+				
 				
 				</i>
-				<br><br>the .modified_by in the original row before the audited action took place, should be equal to .modified_by
+				
 				</td>
 			 </tr>
             
@@ -26163,15 +28611,15 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>orig_tableoid</td>
-            	<td>oid</td>
+            	<td>fk_substance</td>
+            	<td>integer</td>
                 <td><i>
 				
 
-				NOT NULL
+				
 				
 				</i>
-				<br><br>the TG_RELID when the audit trigger was run
+				
 				</td>
 			 </tr>
             
@@ -26179,12 +28627,12 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>audit_action</td>
+            	<td>preparation</td>
             	<td>text</td>
                 <td><i>
 				
 
-				NOT NULL
+				
 				
 				</i>
 				
@@ -26195,13 +28643,13 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>audit_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>schedule</td>
+            	<td>text</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT now()
+				
+				
 				</i>
 				
 				</td>
@@ -26211,13 +28659,13 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>audit_by</td>
-            	<td>name</td>
+            	<td>aim</td>
+            	<td>text</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT "current_user"()
+				
+				
 				</i>
 				
 				</td>
@@ -26227,8 +28675,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>row_version</td>
-            	<td>integer</td>
+            	<td>duration</td>
+            	<td>interval</td>
                 <td><i>
 				
 
@@ -26243,8 +28691,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>modified_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>intake_is_approved_of</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -26259,8 +28707,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>modified_by</td>
-            	<td>name</td>
+            	<td>is_long_term</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -26275,8 +28723,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>pk</td>
-            	<td>integer</td>
+            	<td>discontinued</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
@@ -26291,8 +28739,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_identity</td>
-            	<td>integer</td>
+            	<td>discontinue_reason</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -26307,8 +28755,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>db_user</td>
-            	<td>name</td>
+            	<td>fk_drug_component</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -26323,7 +28771,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>short_alias</td>
+            	<td>comment_on_start</td>
             	<td>text</td>
                 <td><i>
 				
@@ -26339,24 +28787,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>comment</td>
-            	<td>text</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>is_active</td>
-            	<td>boolean</td>
+            	<td>harmful_use_type</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -26371,7 +28803,7 @@ this referral.
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_staff Inherits
+        <p>Table audit.log_substance_intake Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -26387,13 +28819,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_staff Constraints</caption>
+            <caption>audit.log_substance_intake Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -26421,13 +28868,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-state">log_state</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-suppressed-hint">log_suppressed_hint</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_state Structure</caption>
+                <caption>audit.log_suppressed_hint Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -26615,7 +29062,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>id</td>
+            	<td>pk</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -26631,8 +29078,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>code</td>
-            	<td>text</td>
+            	<td>fk_encounter</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -26647,8 +29094,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>country</td>
-            	<td>bpchar</td>
+            	<td>fk_hint</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -26663,7 +29110,55 @@ this referral.
 				<td>
                 
                 </td>
+            	<td>suppressed_by</td>
             	<td>name</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>suppressed_when</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>rationale</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>md5_sum</td>
             	<td>text</td>
                 <td><i>
 				
@@ -26679,7 +29174,7 @@ this referral.
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_state Inherits
+        <p>Table audit.log_suppressed_hint Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -26695,13 +29190,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_state Constraints</caption>
+            <caption>audit.log_suppressed_hint Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -26729,13 +29239,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-street">log_street</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-tag-image">log_tag_image</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_street Structure</caption>
+                <caption>audit.log_tag_image Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -26923,23 +29433,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>id</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>id_urb</td>
+            	<td>pk</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -26951,27 +29445,11 @@ this referral.
 				</td>
 			 </tr>
             
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>name</td>
-            	<td>text</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
             <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>postcode</td>
+            	<td>description</td>
             	<td>text</td>
                 <td><i>
 				
@@ -26987,7 +29465,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>suburb</td>
+            	<td>filename</td>
             	<td>text</td>
                 <td><i>
 				
@@ -27003,8 +29481,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>lat_lon</td>
-            	<td>point</td>
+            	<td>image</td>
+            	<td>bytea</td>
                 <td><i>
 				
 
@@ -27019,7 +29497,7 @@ this referral.
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_street Inherits
+        <p>Table audit.log_tag_image Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -27035,13 +29513,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_street Constraints</caption>
+            <caption>audit.log_tag_image Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -27069,13 +29562,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-substance-in-brand">log_substance_in_brand</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-test-org">log_test_org</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_substance_in_brand Structure</caption>
+                <caption>audit.log_test_org Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -27279,7 +29772,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_brand</td>
+            	<td>fk_org_unit</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -27295,7 +29788,39 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>description</td>
+            	<td>fk_adm_contact</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>fk_med_contact</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>comment</td>
             	<td>text</td>
                 <td><i>
 				
@@ -27311,7 +29836,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>atc_code</td>
+            	<td>contact</td>
             	<td>text</td>
                 <td><i>
 				
@@ -27327,7 +29852,7 @@ this referral.
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_substance_in_brand Inherits
+        <p>Table audit.log_test_org Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -27343,13 +29868,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_substance_in_brand Constraints</caption>
+            <caption>audit.log_test_org Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -27377,13 +29917,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-substance-intake">log_substance_intake</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-test-panel">log_test_panel</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_substance_intake Structure</caption>
+                <caption>audit.log_test_panel Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -27571,102 +30111,6 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>pk_item</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>clin_when</td>
-            	<td>timestamp with time zone</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>fk_encounter</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>fk_episode</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>narrative</td>
-            	<td>text</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>soap_cat</td>
-            	<td>text</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
             	<td>pk</td>
             	<td>integer</td>
                 <td><i>
@@ -27683,39 +30127,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_substance</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>preparation</td>
-            	<td>text</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>schedule</td>
+            	<td>description</td>
             	<td>text</td>
                 <td><i>
 				
@@ -27731,7 +30143,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>aim</td>
+            	<td>comment</td>
             	<td>text</td>
                 <td><i>
 				
@@ -27747,88 +30159,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>duration</td>
-            	<td>interval</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>intake_is_approved_of</td>
-            	<td>boolean</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>is_long_term</td>
-            	<td>boolean</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>discontinued</td>
-            	<td>timestamp with time zone</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>discontinue_reason</td>
-            	<td>text</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>fk_drug_component</td>
-            	<td>integer</td>
+            	<td>fk_test_types</td>
+            	<td>integer[]</td>
                 <td><i>
 				
 
@@ -27843,7 +30175,7 @@ this referral.
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_substance_intake Inherits
+        <p>Table audit.log_test_panel Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -27859,13 +30191,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_substance_intake Constraints</caption>
+            <caption>audit.log_test_panel Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -27893,13 +30240,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-suppressed-hint">log_suppressed_hint</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-test-result">log_test_result</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_suppressed_hint Structure</caption>
+                <caption>audit.log_test_result Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -27917,7 +30264,7 @@ this referral.
 				
 
 				NOT NULL
-				DEFAULT nextval('audit.audit_trail_pk_audit_seq'::regclass)
+				DEFAULT nextval('audit_trail_pk_audit_seq'::regclass)
 				</i>
 				
 				</td>
@@ -28087,7 +30434,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>pk</td>
+            	<td>pk_item</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -28103,8 +30450,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_encounter</td>
-            	<td>integer</td>
+            	<td>clin_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
@@ -28119,7 +30466,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_hint</td>
+            	<td>fk_encounter</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -28135,8 +30482,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>suppressed_by</td>
-            	<td>name</td>
+            	<td>fk_episode</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -28151,8 +30498,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>suppressed_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>narrative</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -28167,7 +30514,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>rationale</td>
+            	<td>soap_cat</td>
             	<td>text</td>
                 <td><i>
 				
@@ -28183,8 +30530,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>md5_sum</td>
-            	<td>text</td>
+            	<td>pk</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -28195,85 +30542,81 @@ this referral.
 				</td>
 			 </tr>
             
-        </table>
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>fk_type</td>
+            	<td>integer</td>
+                <td><i>
+				
 
-        <!-- Inherits -->
-		
-        <p>Table audit.log_suppressed_hint Inherits
-        
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
             
-           <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
-        
-        </p>
-		
-
-		
-		
-		
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>val_num</td>
+            	<td>numeric</td>
+                <td><i>
+				
 
-        <!-- Constraint List -->
-		
-        <p> </p>
-		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_suppressed_hint Constraints</caption>
-            <tr>
-            	<th>Name</th>
-            	<th>Constraint</th>
-            </tr>
-			
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
             <tr class="tr0">
-				<td>audit_trail_audit_action_check</td>
-                <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
-            </tr>
-			
-		</table>
-		
-
-        <!-- Foreign Key Discovery -->
-		
-
-    <!-- Indexes -->
-    
-
-	<!-- View Definition -->
-	
-
-	<!-- List off permissions -->
-	
-
-	<p>
-		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#audit.schema">Schema audit</a>
-    </p>
-	
-        <hr>
-		<h2>Table:
-			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-tag-image">log_tag_image</a>
-		</h2>
-        
+				<td>
+                
+                </td>
+            	<td>val_alpha</td>
+            	<td>text</td>
+                <td><i>
+				
 
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>val_unit</td>
+            	<td>text</td>
+                <td><i>
+				
 
-        <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_tag_image Structure</caption>
-                <tr>
-                <th>F-Key</th>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Description</th>
-                </tr>
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
             
             <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>pk_audit</td>
-            	<td>integer</td>
+            	<td>val_normal_min</td>
+            	<td>numeric</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT nextval('audit_trail_pk_audit_seq'::regclass)
+				
+				
 				</i>
 				
 				</td>
@@ -28283,15 +30626,15 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>orig_version</td>
-            	<td>integer</td>
+            	<td>val_normal_max</td>
+            	<td>numeric</td>
                 <td><i>
 				
 
-				NOT NULL
+				
 				
 				</i>
-				<br><br>the .row_version in the original row before the audited action took place, should be equal to .row_version
+				
 				</td>
 			 </tr>
             
@@ -28299,15 +30642,15 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>orig_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>val_normal_range</td>
+            	<td>text</td>
                 <td><i>
 				
 
-				NOT NULL
+				
 				
 				</i>
-				<br><br>the .modified_when in the original row before the audited action took place, should be equal to .modified_when
+				
 				</td>
 			 </tr>
             
@@ -28315,15 +30658,15 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>orig_by</td>
-            	<td>name</td>
+            	<td>val_target_min</td>
+            	<td>numeric</td>
                 <td><i>
 				
 
-				NOT NULL
+				
 				
 				</i>
-				<br><br>the .modified_by in the original row before the audited action took place, should be equal to .modified_by
+				
 				</td>
 			 </tr>
             
@@ -28331,15 +30674,15 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>orig_tableoid</td>
-            	<td>oid</td>
+            	<td>val_target_max</td>
+            	<td>numeric</td>
                 <td><i>
 				
 
-				NOT NULL
+				
 				
 				</i>
-				<br><br>the TG_RELID when the audit trigger was run
+				
 				</td>
 			 </tr>
             
@@ -28347,12 +30690,12 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>audit_action</td>
+            	<td>val_target_range</td>
             	<td>text</td>
                 <td><i>
 				
 
-				NOT NULL
+				
 				
 				</i>
 				
@@ -28363,13 +30706,13 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>audit_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>abnormality_indicator</td>
+            	<td>text</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT now()
+				
+				
 				</i>
 				
 				</td>
@@ -28379,13 +30722,13 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>audit_by</td>
-            	<td>name</td>
+            	<td>norm_ref_group</td>
+            	<td>text</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT "current_user"()
+				
+				
 				</i>
 				
 				</td>
@@ -28395,8 +30738,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>row_version</td>
-            	<td>integer</td>
+            	<td>note_test_org</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -28411,8 +30754,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>modified_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>material</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -28427,8 +30770,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>modified_by</td>
-            	<td>name</td>
+            	<td>material_detail</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -28443,7 +30786,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>pk</td>
+            	<td>fk_intended_reviewer</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -28459,8 +30802,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>description</td>
-            	<td>text</td>
+            	<td>fk_request</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -28475,7 +30818,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>filename</td>
+            	<td>status</td>
             	<td>text</td>
                 <td><i>
 				
@@ -28491,8 +30834,24 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>image</td>
-            	<td>bytea</td>
+            	<td>source_data</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>val_grouping</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -28507,7 +30866,7 @@ this referral.
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_tag_image Inherits
+        <p>Table audit.log_test_result Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -28523,13 +30882,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_tag_image Constraints</caption>
+            <caption>audit.log_test_result Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -28557,13 +30931,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-test-org">log_test_org</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-test-type">log_test_type</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_test_org Structure</caption>
+                <caption>audit.log_test_type Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -28767,7 +31141,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_org_unit</td>
+            	<td>fk_test_org</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -28783,8 +31157,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_adm_contact</td>
-            	<td>integer</td>
+            	<td>name</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -28799,8 +31173,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_med_contact</td>
-            	<td>integer</td>
+            	<td>comment</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -28815,7 +31189,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>comment</td>
+            	<td>reference_unit</td>
             	<td>text</td>
                 <td><i>
 				
@@ -28831,7 +31205,23 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>contact</td>
+            	<td>loinc</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>abbrev</td>
             	<td>text</td>
                 <td><i>
 				
@@ -28843,11 +31233,27 @@ this referral.
 				</td>
 			 </tr>
             
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>fk_meta_test_type</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
         </table>
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_test_org Inherits
+        <p>Table audit.log_test_type Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -28863,13 +31269,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_test_org Constraints</caption>
+            <caption>audit.log_test_type Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -28897,13 +31318,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-test-panel">log_test_panel</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-urb">log_urb</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_test_panel Structure</caption>
+                <caption>audit.log_urb Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -29091,7 +31512,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>pk</td>
+            	<td>id</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -29107,8 +31528,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>description</td>
-            	<td>text</td>
+            	<td>fk_region</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -29123,7 +31544,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>comment</td>
+            	<td>postcode</td>
             	<td>text</td>
                 <td><i>
 				
@@ -29139,8 +31560,24 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_test_types</td>
-            	<td>integer[]</td>
+            	<td>lat_lon</td>
+            	<td>point</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>name</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -29155,7 +31592,7 @@ this referral.
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_test_panel Inherits
+        <p>Table audit.log_urb Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -29171,13 +31608,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_test_panel Constraints</caption>
+            <caption>audit.log_urb Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -29205,13 +31657,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-test-result">log_test_result</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-vacc-indication">log_vacc_indication</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_test_result Structure</caption>
+                <caption>audit.log_vacc_indication Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -29399,7 +31851,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>pk_item</td>
+            	<td>id</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -29415,8 +31867,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>clin_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>description</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -29431,8 +31883,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_encounter</td>
-            	<td>integer</td>
+            	<td>atcs_single_indication</td>
+            	<td>text[]</td>
                 <td><i>
 				
 
@@ -29447,8 +31899,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_episode</td>
-            	<td>integer</td>
+            	<td>atcs_combi_indication</td>
+            	<td>text[]</td>
                 <td><i>
 				
 
@@ -29459,161 +31911,100 @@ this referral.
 				</td>
 			 </tr>
             
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>narrative</td>
-            	<td>text</td>
-                <td><i>
-				
+        </table>
 
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
+        <!-- Inherits -->
+		
+        <p>Table audit.log_vacc_indication Inherits
+        
             
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>soap_cat</td>
-            	<td>text</td>
-                <td><i>
-				
+           <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
+        
+        </p>
+		
 
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>pk</td>
-            	<td>integer</td>
-                <td><i>
-				
+		
+		
+		
 
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
+        <!-- Constraint List -->
+		
+        <p> </p>
+		<table width="100%" cellspacing="0" cellpadding="3">
+            <caption>audit.log_vacc_indication Constraints</caption>
+            <tr>
+            	<th>Name</th>
+            	<th>Constraint</th>
+            </tr>
+			
             <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>fk_type</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
             <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>val_num</td>
-            	<td>numeric</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
             <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>val_alpha</td>
-            	<td>text</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
             <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>val_unit</td>
-            	<td>text</td>
-                <td><i>
-				
+				<td>audit_trail_audit_action_check</td>
+                <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
+            </tr>
+			
+		</table>
+		
 
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>val_normal_min</td>
-            	<td>numeric</td>
-                <td><i>
-				
+        <!-- Foreign Key Discovery -->
+		
 
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>val_normal_max</td>
-            	<td>numeric</td>
-                <td><i>
-				
+    <!-- Indexes -->
+    
 
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
+	<!-- View Definition -->
+	
+
+	<!-- List off permissions -->
+	
+
+	<p>
+		<a href="gnumed-entire_schema.html#index">Index</a> -
+		<a href="gnumed-entire_schema.html#audit.schema">Schema audit</a>
+    </p>
+	
+        <hr>
+		<h2>Table:
+			
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-vacc-route">log_vacc_route</a>
+		</h2>
+        
+
+
+        <table width="100%" cellspacing="0" cellpadding="3">
+                <caption>audit.log_vacc_route Structure</caption>
+                <tr>
+                <th>F-Key</th>
+                <th>Name</th>
+                <th>Type</th>
+                <th>Description</th>
+                </tr>
             
             <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>val_normal_range</td>
-            	<td>text</td>
+            	<td>pk_audit</td>
+            	<td>integer</td>
                 <td><i>
 				
 
-				
-				
+				NOT NULL
+				DEFAULT nextval('audit_trail_pk_audit_seq'::regclass)
 				</i>
 				
 				</td>
@@ -29623,15 +32014,15 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>val_target_min</td>
-            	<td>numeric</td>
+            	<td>orig_version</td>
+            	<td>integer</td>
                 <td><i>
 				
 
-				
+				NOT NULL
 				
 				</i>
-				
+				<br><br>the .row_version in the original row before the audited action took place, should be equal to .row_version
 				</td>
 			 </tr>
             
@@ -29639,15 +32030,15 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>val_target_max</td>
-            	<td>numeric</td>
+            	<td>orig_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
-				
+				NOT NULL
 				
 				</i>
-				
+				<br><br>the .modified_when in the original row before the audited action took place, should be equal to .modified_when
 				</td>
 			 </tr>
             
@@ -29655,15 +32046,15 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>val_target_range</td>
-            	<td>text</td>
+            	<td>orig_by</td>
+            	<td>name</td>
                 <td><i>
 				
 
-				
+				NOT NULL
 				
 				</i>
-				
+				<br><br>the .modified_by in the original row before the audited action took place, should be equal to .modified_by
 				</td>
 			 </tr>
             
@@ -29671,15 +32062,15 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>abnormality_indicator</td>
-            	<td>text</td>
+            	<td>orig_tableoid</td>
+            	<td>oid</td>
                 <td><i>
 				
 
-				
+				NOT NULL
 				
 				</i>
-				
+				<br><br>the TG_RELID when the audit trigger was run
 				</td>
 			 </tr>
             
@@ -29687,12 +32078,12 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>norm_ref_group</td>
+            	<td>audit_action</td>
             	<td>text</td>
                 <td><i>
 				
 
-				
+				NOT NULL
 				
 				</i>
 				
@@ -29703,13 +32094,13 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>note_test_org</td>
-            	<td>text</td>
+            	<td>audit_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
-				
-				
+				NOT NULL
+				DEFAULT now()
 				</i>
 				
 				</td>
@@ -29719,13 +32110,13 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>material</td>
-            	<td>text</td>
+            	<td>audit_by</td>
+            	<td>name</td>
                 <td><i>
 				
 
-				
-				
+				NOT NULL
+				DEFAULT "current_user"()
 				</i>
 				
 				</td>
@@ -29735,8 +32126,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>material_detail</td>
-            	<td>text</td>
+            	<td>row_version</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -29751,8 +32142,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_intended_reviewer</td>
-            	<td>integer</td>
+            	<td>modified_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
@@ -29767,8 +32158,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_request</td>
-            	<td>integer</td>
+            	<td>modified_by</td>
+            	<td>name</td>
                 <td><i>
 				
 
@@ -29783,8 +32174,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>status</td>
-            	<td>text</td>
+            	<td>id</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -29799,7 +32190,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>source_data</td>
+            	<td>abbreviation</td>
             	<td>text</td>
                 <td><i>
 				
@@ -29815,7 +32206,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>val_grouping</td>
+            	<td>description</td>
             	<td>text</td>
                 <td><i>
 				
@@ -29831,7 +32222,7 @@ this referral.
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_test_result Inherits
+        <p>Table audit.log_vacc_route Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -29847,13 +32238,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_test_result Constraints</caption>
+            <caption>audit.log_vacc_route Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -29881,13 +32287,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-test-type">log_test_type</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-vaccination">log_vaccination</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_test_type Structure</caption>
+                <caption>audit.log_vaccination Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -30075,7 +32481,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>pk</td>
+            	<td>pk_item</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -30091,8 +32497,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_test_org</td>
-            	<td>integer</td>
+            	<td>clin_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
@@ -30107,8 +32513,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>name</td>
-            	<td>text</td>
+            	<td>fk_encounter</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -30123,8 +32529,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>comment</td>
-            	<td>text</td>
+            	<td>fk_episode</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -30139,7 +32545,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>reference_unit</td>
+            	<td>narrative</td>
             	<td>text</td>
                 <td><i>
 				
@@ -30155,7 +32561,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>loinc</td>
+            	<td>soap_cat</td>
             	<td>text</td>
                 <td><i>
 				
@@ -30171,192 +32577,12 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>abbrev</td>
-            	<td>text</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>fk_meta_test_type</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-        </table>
-
-        <!-- Inherits -->
-		
-        <p>Table audit.log_test_type Inherits
-        
-            
-           <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
-        
-        </p>
-		
-
-		
-		
-		
-
-        <!-- Constraint List -->
-		
-        <p> </p>
-		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_test_type Constraints</caption>
-            <tr>
-            	<th>Name</th>
-            	<th>Constraint</th>
-            </tr>
-			
-            <tr class="tr0">
-				<td>audit_trail_audit_action_check</td>
-                <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
-            </tr>
-			
-		</table>
-		
-
-        <!-- Foreign Key Discovery -->
-		
-
-    <!-- Indexes -->
-    
-
-	<!-- View Definition -->
-	
-
-	<!-- List off permissions -->
-	
-
-	<p>
-		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#audit.schema">Schema audit</a>
-    </p>
-	
-        <hr>
-		<h2>Table:
-			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-urb">log_urb</a>
-		</h2>
-        
-
-
-        <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_urb Structure</caption>
-                <tr>
-                <th>F-Key</th>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Description</th>
-                </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>pk_audit</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				NOT NULL
-				DEFAULT nextval('audit_trail_pk_audit_seq'::regclass)
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>orig_version</td>
+            	<td>pk</td>
             	<td>integer</td>
                 <td><i>
 				
 
-				NOT NULL
-				
-				</i>
-				<br><br>the .row_version in the original row before the audited action took place, should be equal to .row_version
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>orig_when</td>
-            	<td>timestamp with time zone</td>
-                <td><i>
-				
-
-				NOT NULL
-				
-				</i>
-				<br><br>the .modified_when in the original row before the audited action took place, should be equal to .modified_when
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>orig_by</td>
-            	<td>name</td>
-                <td><i>
 				
-
-				NOT NULL
-				
-				</i>
-				<br><br>the .modified_by in the original row before the audited action took place, should be equal to .modified_by
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>orig_tableoid</td>
-            	<td>oid</td>
-                <td><i>
-				
-
-				NOT NULL
-				
-				</i>
-				<br><br>the TG_RELID when the audit trigger was run
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>audit_action</td>
-            	<td>text</td>
-                <td><i>
-				
-
-				NOT NULL
 				
 				</i>
 				
@@ -30367,39 +32593,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>audit_when</td>
-            	<td>timestamp with time zone</td>
-                <td><i>
-				
-
-				NOT NULL
-				DEFAULT now()
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>audit_by</td>
-            	<td>name</td>
-                <td><i>
-				
-
-				NOT NULL
-				DEFAULT "current_user"()
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>row_version</td>
+            	<td>fk_patient</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -30415,39 +32609,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>modified_when</td>
-            	<td>timestamp with time zone</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>modified_by</td>
-            	<td>name</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>id</td>
+            	<td>fk_provider</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -30463,7 +32625,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>id_state</td>
+            	<td>fk_vaccine</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -30479,7 +32641,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>postcode</td>
+            	<td>site</td>
             	<td>text</td>
                 <td><i>
 				
@@ -30495,8 +32657,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>lat_lon</td>
-            	<td>point</td>
+            	<td>batch_no</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -30511,7 +32673,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>name</td>
+            	<td>reaction</td>
             	<td>text</td>
                 <td><i>
 				
@@ -30527,7 +32689,7 @@ this referral.
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_urb Inherits
+        <p>Table audit.log_vaccination Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -30543,13 +32705,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_urb Constraints</caption>
+            <caption>audit.log_vaccination Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -30577,13 +32754,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-vacc-indication">log_vacc_indication</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-vaccination-course">log_vaccination_course</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_vacc_indication Structure</caption>
+                <caption>audit.log_vaccination_course Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -30771,7 +32948,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>id</td>
+            	<td>pk</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -30787,8 +32964,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>description</td>
-            	<td>text</td>
+            	<td>fk_recommended_by</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -30803,8 +32980,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>atcs_single_indication</td>
-            	<td>text[]</td>
+            	<td>fk_indication</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -30819,8 +32996,24 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>atcs_combi_indication</td>
-            	<td>text[]</td>
+            	<td>is_active</td>
+            	<td>boolean</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>comment</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -30835,7 +33028,7 @@ this referral.
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_vacc_indication Inherits
+        <p>Table audit.log_vaccination_course Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -30851,13 +33044,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_vacc_indication Constraints</caption>
+            <caption>audit.log_vaccination_course Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -30885,13 +33093,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-vacc-route">log_vacc_route</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-vaccination-course-constraint">log_vaccination_course_constraint</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_vacc_route Structure</caption>
+                <caption>audit.log_vaccination_course_constraint Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -31079,7 +33287,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>id</td>
+            	<td>pk</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -31095,22 +33303,6 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>abbreviation</td>
-            	<td>text</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
             	<td>description</td>
             	<td>text</td>
                 <td><i>
@@ -31127,7 +33319,7 @@ this referral.
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_vacc_route Inherits
+        <p>Table audit.log_vaccination_course_constraint Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -31143,13 +33335,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_vacc_route Constraints</caption>
+            <caption>audit.log_vaccination_course_constraint Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -31177,13 +33384,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-vaccination">log_vaccination</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-vaccination-definition">log_vaccination_definition</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_vaccination Structure</caption>
+                <caption>audit.log_vaccination_definition Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -31371,39 +33578,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>pk_item</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>clin_when</td>
-            	<td>timestamp with time zone</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>fk_encounter</td>
+            	<td>id</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -31419,7 +33594,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_episode</td>
+            	<td>fk_course</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -31435,40 +33610,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>narrative</td>
-            	<td>text</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>soap_cat</td>
-            	<td>text</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>pk</td>
-            	<td>integer</td>
+            	<td>is_booster</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -31483,7 +33626,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_patient</td>
+            	<td>seq_no</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -31499,8 +33642,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_provider</td>
-            	<td>integer</td>
+            	<td>min_age_due</td>
+            	<td>interval</td>
                 <td><i>
 				
 
@@ -31515,8 +33658,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_vaccine</td>
-            	<td>integer</td>
+            	<td>max_age_due</td>
+            	<td>interval</td>
                 <td><i>
 				
 
@@ -31531,8 +33674,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>site</td>
-            	<td>text</td>
+            	<td>min_interval</td>
+            	<td>interval</td>
                 <td><i>
 				
 
@@ -31547,23 +33690,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>batch_no</td>
-            	<td>text</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>reaction</td>
+            	<td>comment</td>
             	<td>text</td>
                 <td><i>
 				
@@ -31579,7 +33706,7 @@ this referral.
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_vaccination Inherits
+        <p>Table audit.log_vaccination_definition Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -31595,13 +33722,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_vaccination Constraints</caption>
+            <caption>audit.log_vaccination_definition Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -31629,13 +33771,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-vaccination-course">log_vaccination_course</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-vaccination-schedule">log_vaccination_schedule</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_vaccination_course Structure</caption>
+                <caption>audit.log_vaccination_schedule Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -31839,40 +33981,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_recommended_by</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>fk_indication</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>is_active</td>
-            	<td>boolean</td>
+            	<td>name</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -31903,7 +34013,7 @@ this referral.
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_vaccination_course Inherits
+        <p>Table audit.log_vaccination_schedule Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -31919,13 +34029,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_vaccination_course Constraints</caption>
+            <caption>audit.log_vaccination_schedule Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -31953,13 +34078,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-vaccination-course-constraint">log_vaccination_course_constraint</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-vaccine">log_vaccine</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_vaccination_course_constraint Structure</caption>
+                <caption>audit.log_vaccine Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -32163,7 +34288,71 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>description</td>
+            	<td>id_route</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>is_live</td>
+            	<td>boolean</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>min_age</td>
+            	<td>interval</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>max_age</td>
+            	<td>interval</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>comment</td>
             	<td>text</td>
                 <td><i>
 				
@@ -32175,11 +34364,27 @@ this referral.
 				</td>
 			 </tr>
             
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>fk_brand</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
         </table>
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_vaccination_course_constraint Inherits
+        <p>Table audit.log_vaccine Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -32195,13 +34400,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_vaccination_course_constraint Constraints</caption>
+            <caption>audit.log_vaccine Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -32229,13 +34449,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-vaccination-definition">log_vaccination_definition</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-vaccine-batches">log_vaccine_batches</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_vaccination_definition Structure</caption>
+                <caption>audit.log_vaccine_batches Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -32423,23 +34643,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>id</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>fk_course</td>
+            	<td>pk</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -32451,27 +34655,11 @@ this referral.
 				</td>
 			 </tr>
             
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>is_booster</td>
-            	<td>boolean</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
             <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>seq_no</td>
+            	<td>fk_vaccine</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -32487,55 +34675,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>min_age_due</td>
-            	<td>interval</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>max_age_due</td>
-            	<td>interval</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>min_interval</td>
-            	<td>interval</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>comment</td>
+            	<td>batch_no</td>
             	<td>text</td>
                 <td><i>
 				
@@ -32551,7 +34691,7 @@ this referral.
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_vaccination_definition Inherits
+        <p>Table audit.log_vaccine_batches Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -32567,13 +34707,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_vaccination_definition Constraints</caption>
+            <caption>audit.log_vaccine_batches Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -32601,13 +34756,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-vaccination-schedule">log_vaccination_schedule</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-waiting-list">log_waiting_list</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_vaccination_schedule Structure</caption>
+                <caption>audit.log_waiting_list Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -32811,8 +34966,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>name</td>
-            	<td>text</td>
+            	<td>fk_patient</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -32827,6 +34982,54 @@ this referral.
 				<td>
                 
                 </td>
+            	<td>registered</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>urgency</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>list_position</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
             	<td>comment</td>
             	<td>text</td>
                 <td><i>
@@ -32839,11 +35042,27 @@ this referral.
 				</td>
 			 </tr>
             
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>area</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
         </table>
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_vaccination_schedule Inherits
+        <p>Table audit.log_waiting_list Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -32859,13 +35078,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_vaccination_schedule Constraints</caption>
+            <caption>audit.log_waiting_list Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -32893,13 +35127,13 @@ this referral.
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-vaccine">log_vaccine</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-xlnk-identity">log_xlnk_identity</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_vaccine Structure</caption>
+                <caption>audit.log_xlnk_identity Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -33103,7 +35337,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>id_route</td>
+            	<td>xfk_identity</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -33119,40 +35353,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>is_live</td>
-            	<td>boolean</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>min_age</td>
-            	<td>interval</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>max_age</td>
-            	<td>interval</td>
+            	<td>pupic</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -33167,7 +35369,7 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>comment</td>
+            	<td>data</td>
             	<td>text</td>
                 <td><i>
 				
@@ -33179,27 +35381,11 @@ this referral.
 				</td>
 			 </tr>
             
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>fk_brand</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
         </table>
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_vaccine Inherits
+        <p>Table audit.log_xlnk_identity Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
@@ -33215,13 +35401,28 @@ this referral.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_vaccine Constraints</caption>
+            <caption>audit.log_xlnk_identity Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_trail_orig_before_audit_when</td>
+                <td>CHECK (((orig_when <= audit_when) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>audit_audit_trail_sane_audit_when</td>
+                <td>CHECK (((audit_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_trail_sane_orig_when</td>
+                <td>CHECK (((orig_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>audit_trail_audit_action_check</td>
                 <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
             </tr>
@@ -33247,15 +35448,15 @@ this referral.
     </p>
 	
         <hr>
-		<h2>Table:
+		<h2>View:
 			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-vaccine-batches">log_vaccine_batches</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.view.v-audit-trail">v_audit_trail</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_vaccine_batches Structure</caption>
+                <caption>audit.v_audit_trail Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -33267,79 +35468,15 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>pk_audit</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				NOT NULL
-				DEFAULT nextval('audit_trail_pk_audit_seq'::regclass)
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>orig_version</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				NOT NULL
-				
-				</i>
-				<br><br>the .row_version in the original row before the audited action took place, should be equal to .row_version
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>orig_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>event_when</td>
+            	<td>text</td>
                 <td><i>
 				
 
-				NOT NULL
-				
-				</i>
-				<br><br>the .modified_when in the original row before the audited action took place, should be equal to .modified_when
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>orig_by</td>
-            	<td>name</td>
-                <td><i>
 				
-
-				NOT NULL
 				
 				</i>
-				<br><br>the .modified_by in the original row before the audited action took place, should be equal to .modified_by
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>orig_tableoid</td>
-            	<td>oid</td>
-                <td><i>
-				
-
-				NOT NULL
 				
-				</i>
-				<br><br>the TG_RELID when the audit trigger was run
 				</td>
 			 </tr>
             
@@ -33347,45 +35484,13 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>audit_action</td>
+            	<td>event_by</td>
             	<td>text</td>
                 <td><i>
 				
 
-				NOT NULL
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>audit_when</td>
-            	<td>timestamp with time zone</td>
-                <td><i>
-				
-
-				NOT NULL
-				DEFAULT now()
-				</i>
 				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>audit_by</td>
-            	<td>name</td>
-                <td><i>
 				
-
-				NOT NULL
-				DEFAULT "current_user"()
 				</i>
 				
 				</td>
@@ -33395,8 +35500,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>row_version</td>
-            	<td>integer</td>
+            	<td>event_table</td>
+            	<td>regclass</td>
                 <td><i>
 				
 
@@ -33411,8 +35516,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>modified_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>row_version_before</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -33427,8 +35532,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>modified_by</td>
-            	<td>name</td>
+            	<td>row_version_after</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -33443,8 +35548,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>pk</td>
-            	<td>integer</td>
+            	<td>event</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -33459,8 +35564,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>fk_vaccine</td>
-            	<td>integer</td>
+            	<td>audit_when_ts</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
@@ -33475,8 +35580,8 @@ this referral.
 				<td>
                 
                 </td>
-            	<td>batch_no</td>
-            	<td>text</td>
+            	<td>pk_audit</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -33491,35 +35596,11 @@ this referral.
 
         <!-- Inherits -->
 		
-        <p>Table audit.log_vaccine_batches Inherits
-        
-            
-           <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
-        
-        </p>
-		
 
 		
-		
-		
 
         <!-- Constraint List -->
 		
-        <p> </p>
-		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_vaccine_batches Constraints</caption>
-            <tr>
-            	<th>Name</th>
-            	<th>Constraint</th>
-            </tr>
-			
-            <tr class="tr0">
-				<td>audit_trail_audit_action_check</td>
-                <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
-            </tr>
-			
-		</table>
-		
 
         <!-- Foreign Key Discovery -->
 		
@@ -33529,6 +35610,126 @@ this referral.
 
 	<!-- View Definition -->
 	
+	<pre>
+SELECT to_char
+(aat.audit_when
+     ,'YYYY-MM-DD HH24:MI'::text
+) AS event_when
+,
+    COALESCE
+(
+     (
+      SELECT staff.short_alias
+           
+        FROM dem.staff
+          
+       WHERE (staff.db_user = aat.audit_by)
+     )
+     , (
+           ('<'::text || 
+                 (aat.audit_by)::text
+           ) || '>'::text
+     )
+) AS event_by
+,
+    
+(aat.orig_tableoid)::regclass AS event_table
+,
+    aat.orig_version AS row_version_before
+,
+        CASE
+            WHEN 
+(aat.audit_action = 'DELETE'::text) THEN NULL::integer
+            ELSE 
+(aat.orig_version + 1)
+        END AS row_version_after
+,
+    aat.audit_action AS event
+,
+    aat.audit_when AS audit_when_ts
+,
+    aat.pk_audit
+   
+FROM audit.audit_trail aat
+
+UNION ALL
+ 
+SELECT to_char
+(gal.modified_when
+     ,'YYYY-MM-DD HH24:MI'::text
+) AS event_when
+,
+    COALESCE
+(
+     (
+      SELECT staff.short_alias
+           
+        FROM dem.staff
+          
+       WHERE (staff.db_user = gal.modified_by)
+     )
+     , (
+           ('<'::text || 
+                 (gal.modified_by)::text
+           ) || '>'::text
+     )
+) AS event_by
+,
+    'gm.access_log'::regclass AS event_table
+,
+    NULL::integer AS row_version_before
+,
+    0 AS row_version_after
+,
+    gal.user_action AS event
+,
+    gal.modified_when AS audit_when_ts
+,
+    gal.pk_audit
+   
+FROM gm.access_log gal
+  
+WHERE (gal.row_version = 0)
+UNION ALL
+ 
+SELECT to_char
+(aaf.modified_when
+     ,'YYYY-MM-DD HH24:MI'::text
+) AS event_when
+,
+    COALESCE
+(
+     (
+      SELECT staff.short_alias
+           
+        FROM dem.staff
+          
+       WHERE (staff.db_user = aaf.modified_by)
+     )
+     , (
+           ('<'::text || 
+                 (aaf.modified_by)::text
+           ) || '>'::text
+     )
+) AS event_by
+,
+    
+(aaf.tableoid)::regclass AS event_table
+,
+    NULL::integer AS row_version_before
+,
+    0 AS row_version_after
+,
+    'INSERT'::text AS event
+,
+    aaf.modified_when AS audit_when_ts
+,
+    aaf.pk_audit
+   
+FROM audit.audit_fields aaf
+  
+WHERE (aaf.row_version = 0);</pre>
+	
 
 	<!-- List off permissions -->
 	
@@ -33538,1091 +35739,230 @@ this referral.
 		<a href="gnumed-entire_schema.html#audit.schema">Schema audit</a>
     </p>
 	
-        <hr>
-		<h2>Table:
-			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-waiting-list">log_waiting_list</a>
+
+	<!-- We've gone through the table structure, now lets take a look at user functions -->
+	
+		<hr>
+		<h2>Function:
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.function.add-table-for-audit-name">add_table_for_audit(name)</a>
 		</h2>
+<h3>Returns: boolean</h3>
+<h3>Language: SQL</h3>
         
-
-
-        <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_waiting_list Structure</caption>
-                <tr>
-                <th>F-Key</th>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Description</th>
-                </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>pk_audit</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				NOT NULL
-				DEFAULT nextval('audit_trail_pk_audit_seq'::regclass)
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>orig_version</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				NOT NULL
-				
-				</i>
-				<br><br>the .row_version in the original row before the audited action took place, should be equal to .row_version
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>orig_when</td>
-            	<td>timestamp with time zone</td>
-                <td><i>
-				
-
-				NOT NULL
-				
-				</i>
-				<br><br>the .modified_when in the original row before the audited action took place, should be equal to .modified_when
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>orig_by</td>
-            	<td>name</td>
-                <td><i>
-				
-
-				NOT NULL
-				
-				</i>
-				<br><br>the .modified_by in the original row before the audited action took place, should be equal to .modified_by
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>orig_tableoid</td>
-            	<td>oid</td>
-                <td><i>
-				
-
-				NOT NULL
-				
-				</i>
-				<br><br>the TG_RELID when the audit trigger was run
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>audit_action</td>
-            	<td>text</td>
-                <td><i>
-				
-
-				NOT NULL
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>audit_when</td>
-            	<td>timestamp with time zone</td>
-                <td><i>
-				
-
-				NOT NULL
-				DEFAULT now()
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>audit_by</td>
-            	<td>name</td>
-                <td><i>
-				
-
-				NOT NULL
-				DEFAULT "current_user"()
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>row_version</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>modified_when</td>
-            	<td>timestamp with time zone</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>modified_by</td>
-            	<td>name</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>pk</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>fk_patient</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>registered</td>
-            	<td>timestamp with time zone</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>urgency</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>list_position</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>comment</td>
-            	<td>text</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>area</td>
-            	<td>text</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-        </table>
-
-        <!-- Inherits -->
-		
-        <p>Table audit.log_waiting_list Inherits
-        
-            
-           <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
+        <pre>select audit.register_table_for_auditing('public', $1);</pre>
+	
+		<hr>
+		<h2>Function:
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.function.add-table-for-audit-name-name">add_table_for_audit(name, name)</a>
+		</h2>
+<h3>Returns: boolean</h3>
+<h3>Language: SQL</h3>
         
-        </p>
-		
-
-		
-		
-		
-
-        <!-- Constraint List -->
-		
-        <p> </p>
-		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_waiting_list Constraints</caption>
-            <tr>
-            	<th>Name</th>
-            	<th>Constraint</th>
-            </tr>
-			
-            <tr class="tr0">
-				<td>audit_trail_audit_action_check</td>
-                <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
-            </tr>
-			
-		</table>
-		
-
-        <!-- Foreign Key Discovery -->
-		
-
-    <!-- Indexes -->
-    
-
-	<!-- View Definition -->
+        <pre>select audit.register_table_for_auditing($1, $2);</pre>
 	
-
-	<!-- List off permissions -->
+		<hr>
+		<h2>Function:
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.function.ft-del-access-log">ft_del_access_log()</a>
+		</h2>
+<h3>Returns: trigger</h3>
+<h3>Language: PLPGSQL</h3>
+        
+        <pre>
+DECLARE
+	_is_allowed_deleter boolean;
+BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
+	INSERT INTO audit.log_access_log (
+		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
+		pk, user_action
+	) VALUES (
+		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
+		OLD.pk, OLD.user_action
+	);
+	return OLD;
+END;</pre>
 	
-
-	<p>
-		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#audit.schema">Schema audit</a>
-    </p>
+		<hr>
+		<h2>Function:
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.function.ft-del-active-substance">ft_del_active_substance()</a>
+		</h2>
+<h3>Returns: trigger</h3>
+<h3>Language: PLPGSQL</h3>
+        
+        <pre>
+BEGIN
+	INSERT INTO audit.log_active_substance (
+		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
+		pk_audit, row_version, modified_when, modified_by, pk, description, atc_code
+	) VALUES (
+		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
+		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.description, OLD.atc_code
+	);
+	return OLD;
+END;</pre>
 	
-        <hr>
-		<h2>Table:
-			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.table.log-xlnk-identity">log_xlnk_identity</a>
+		<hr>
+		<h2>Function:
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.function.ft-del-address">ft_del_address()</a>
 		</h2>
+<h3>Returns: trigger</h3>
+<h3>Language: PLPGSQL</h3>
         
-
-
-        <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.log_xlnk_identity Structure</caption>
-                <tr>
-                <th>F-Key</th>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Description</th>
-                </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>pk_audit</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				NOT NULL
-				DEFAULT nextval('audit_trail_pk_audit_seq'::regclass)
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>orig_version</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				NOT NULL
-				
-				</i>
-				<br><br>the .row_version in the original row before the audited action took place, should be equal to .row_version
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>orig_when</td>
-            	<td>timestamp with time zone</td>
-                <td><i>
-				
-
-				NOT NULL
-				
-				</i>
-				<br><br>the .modified_when in the original row before the audited action took place, should be equal to .modified_when
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>orig_by</td>
-            	<td>name</td>
-                <td><i>
-				
-
-				NOT NULL
-				
-				</i>
-				<br><br>the .modified_by in the original row before the audited action took place, should be equal to .modified_by
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>orig_tableoid</td>
-            	<td>oid</td>
-                <td><i>
-				
-
-				NOT NULL
-				
-				</i>
-				<br><br>the TG_RELID when the audit trigger was run
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>audit_action</td>
-            	<td>text</td>
-                <td><i>
-				
-
-				NOT NULL
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>audit_when</td>
-            	<td>timestamp with time zone</td>
-                <td><i>
-				
-
-				NOT NULL
-				DEFAULT now()
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>audit_by</td>
-            	<td>name</td>
-                <td><i>
-				
-
-				NOT NULL
-				DEFAULT "current_user"()
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>row_version</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>modified_when</td>
-            	<td>timestamp with time zone</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>modified_by</td>
-            	<td>name</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>pk</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>xfk_identity</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>pupic</td>
-            	<td>text</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>data</td>
-            	<td>text</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-        </table>
-
-        <!-- Inherits -->
-		
-        <p>Table audit.log_xlnk_identity Inherits
+        <pre>
+DECLARE
+	_is_allowed_deleter boolean;
+BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
+	INSERT INTO audit.log_address (
+		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
+		id, id_street, aux_street, number, subunit, addendum, lat_lon
+	) VALUES (
+		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
+		OLD.id, OLD.id_street, OLD.aux_street, OLD.number, OLD.subunit, OLD.addendum, OLD.lat_lon
+	);
+	return OLD;
+END;</pre>
+	
+		<hr>
+		<h2>Function:
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.function.ft-del-allergy">ft_del_allergy()</a>
+		</h2>
+<h3>Returns: trigger</h3>
+<h3>Language: PLPGSQL</h3>
         
-            
-           <a href="gnumed-entire_schema.html#audit.table.audit-trail">audit_trail</a>, 
+        <pre>
+DECLARE
+	_is_allowed_deleter boolean;
+BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
+	INSERT INTO audit.log_allergy (
+		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
+		pk_item, clin_when, fk_encounter, fk_episode, narrative, soap_cat, pk, substance, substance_code, generics, allergene, atc_code, fk_type, generic_specific, definite
+	) VALUES (
+		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
+		OLD.pk_item, OLD.clin_when, OLD.fk_encounter, OLD.fk_episode, OLD.narrative, OLD.soap_cat, OLD.pk, OLD.substance, OLD.substance_code, OLD.generics, OLD.allergene, OLD.atc_code, OLD.fk_type, OLD.generic_specific, OLD.definite
+	);
+	return OLD;
+END;</pre>
+	
+		<hr>
+		<h2>Function:
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.function.ft-del-allergy-state">ft_del_allergy_state()</a>
+		</h2>
+<h3>Returns: trigger</h3>
+<h3>Language: PLPGSQL</h3>
         
-        </p>
-		
-
-		
-		
-		
-
-        <!-- Constraint List -->
-		
-        <p> </p>
-		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>audit.log_xlnk_identity Constraints</caption>
-            <tr>
-            	<th>Name</th>
-            	<th>Constraint</th>
-            </tr>
-			
-            <tr class="tr0">
-				<td>audit_trail_audit_action_check</td>
-                <td>CHECK ((audit_action = ANY (ARRAY['UPDATE'::text, 'DELETE'::text])))</td>
-            </tr>
-			
-		</table>
-		
-
-        <!-- Foreign Key Discovery -->
-		
-
-    <!-- Indexes -->
-    
-
-	<!-- View Definition -->
+        <pre>
+DECLARE
+	_is_allowed_deleter boolean;
+BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
+	INSERT INTO audit.log_allergy_state (
+		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
+		pk, has_allergy, comment, last_confirmed, fk_encounter
+	) VALUES (
+		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
+		OLD.pk, OLD.has_allergy, OLD.comment, OLD.last_confirmed, OLD.fk_encounter
+	);
+	return OLD;
+END;</pre>
 	
-
-	<!-- List off permissions -->
+		<hr>
+		<h2>Function:
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.function.ft-del-atc-group">ft_del_atc_group()</a>
+		</h2>
+<h3>Returns: trigger</h3>
+<h3>Language: PLPGSQL</h3>
+        
+        <pre>
+BEGIN
+	INSERT INTO audit.log_atc_group (
+		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
+		pk_audit, row_version, modified_when, modified_by, pk, code, description
+	) VALUES (
+		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
+		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.code, OLD.description
+	);
+	return OLD;
+END;</pre>
 	
-
-	<p>
-		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#audit.schema">Schema audit</a>
-    </p>
+		<hr>
+		<h2>Function:
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.function.ft-del-atc-substance">ft_del_atc_substance()</a>
+		</h2>
+<h3>Returns: trigger</h3>
+<h3>Language: PLPGSQL</h3>
+        
+        <pre>
+BEGIN
+	INSERT INTO audit.log_atc_substance (
+		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
+		pk_audit, row_version, modified_when, modified_by, pk, code, name, ddd_amount, fk_ddd_unit, route, comment
+	) VALUES (
+		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
+		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.code, OLD.name, OLD.ddd_amount, OLD.fk_ddd_unit, OLD.route, OLD.comment
+	);
+	return OLD;
+END;</pre>
 	
-        <hr>
-		<h2>View:
-			
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.view.v-audit-trail">v_audit_trail</a>
+		<hr>
+		<h2>Function:
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.function.ft-del-auto-hint">ft_del_auto_hint()</a>
 		</h2>
-        
-
-
-        <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>audit.v_audit_trail Structure</caption>
-                <tr>
-                <th>F-Key</th>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Description</th>
-                </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>event_when</td>
-            	<td>text</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>event_by</td>
-            	<td>text</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>event_table</td>
-            	<td>regclass</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>row_version_before</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>row_version_after</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>event</td>
-            	<td>text</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>audit_when_ts</td>
-            	<td>timestamp with time zone</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>pk_audit</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-        </table>
-
-        <!-- Inherits -->
-		
-
-		
-
-        <!-- Constraint List -->
-		
-
-        <!-- Foreign Key Discovery -->
-		
-
-    <!-- Indexes -->
-    
-
-	<!-- View Definition -->
-	
-	<pre>
-(
-SELECT to_char
-     (aat.audit_when
-           ,'YYYY-MM-DD HH24:MI'::text
-     ) AS event_when
-     , COALESCE
-     (
-           (
-            SELECT staff.short_alias 
-              FROM dem.staff 
-             WHERE (staff.db_user = aat.audit_by)
-           )
-           , (
-                 ('<'::text || 
-                       (aat.audit_by)::text
-                 ) || '>'::text
-           )
-     ) AS event_by
-     , (aat.orig_tableoid)::regclass AS event_table
-     , aat.orig_version AS row_version_before
-     , CASE WHEN 
-     (aat.audit_action = 'DELETE'::text) THEN NULL::integer ELSE 
-     (aat.orig_version + 1) END AS row_version_after
-     , aat.audit_action AS event
-     , aat.audit_when AS audit_when_ts
-     , aat.pk_audit 
-  FROM audit.audit_trail aat 
-UNION ALLSELECT to_char
-     (gal.modified_when
-           ,'YYYY-MM-DD HH24:MI'::text
-     ) AS event_when
-     , COALESCE
-     (
-           (
-            SELECT staff.short_alias 
-              FROM dem.staff 
-             WHERE (staff.db_user = gal.modified_by)
-           )
-           , (
-                 ('<'::text || 
-                       (gal.modified_by)::text
-                 ) || '>'::text
-           )
-     ) AS event_by
-     ,'gm.access_log'::regclass AS event_table
-     , NULL::integer AS row_version_before
-     , 0 AS row_version_after
-     , gal.user_action AS event
-     , gal.modified_when AS audit_when_ts
-     , gal.pk_audit 
-  FROM gm.access_log gal 
- WHERE (gal.row_version = 0)
-)
-UNION ALLSELECT to_char
-(aaf.modified_when
-     ,'YYYY-MM-DD HH24:MI'::text
-) AS event_when
-, COALESCE
-(
-     (
-      SELECT staff.short_alias 
-        FROM dem.staff 
-       WHERE (staff.db_user = aaf.modified_by)
-     )
-     , (
-           ('<'::text || 
-                 (aaf.modified_by)::text
-           ) || '>'::text
-     )
-) AS event_by
-, (aaf.tableoid)::regclass AS event_table
-, NULL::integer AS row_version_before
-, 0 AS row_version_after
-,'INSERT'::text AS event
-, aaf.modified_when AS audit_when_ts
-, aaf.pk_audit 
-FROM audit.audit_fields aaf 
-WHERE (aaf.row_version = 0);</pre>
-	
-
-	<!-- List off permissions -->
-	
-
-	<p>
-		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#audit.schema">Schema audit</a>
-    </p>
-	
-
-	<!-- We've gone through the table structure, now lets take a look at user functions -->
-	
-		<hr>
-		<h2>Function:
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.function.add-table-for-audit-name">add_table_for_audit(name)</a>
-		</h2>
-<h3>Returns: boolean</h3>
-<h3>Language: SQL</h3>
-        
-        <pre>select audit.register_table_for_auditing('public', $1);</pre>
-	
-		<hr>
-		<h2>Function:
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.function.add-table-for-audit-name-name">add_table_for_audit(name, name)</a>
-		</h2>
-<h3>Returns: boolean</h3>
-<h3>Language: SQL</h3>
-        
-        <pre>select audit.register_table_for_auditing($1, $2);</pre>
-	
-		<hr>
-		<h2>Function:
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.function.ft-del-access-log">ft_del_access_log()</a>
-		</h2>
-<h3>Returns: trigger</h3>
-<h3>Language: PLPGSQL</h3>
-        
-        <pre>
-BEGIN
-	INSERT INTO audit.log_access_log (
-		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, user_action
-	) VALUES (
-		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.user_action
-	);
-	return OLD;
-END;</pre>
-	
-		<hr>
-		<h2>Function:
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.function.ft-del-active-substance">ft_del_active_substance()</a>
-		</h2>
-<h3>Returns: trigger</h3>
-<h3>Language: PLPGSQL</h3>
-        
-        <pre>
-BEGIN
-	INSERT INTO audit.log_active_substance (
-		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, description, atc_code
-	) VALUES (
-		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.description, OLD.atc_code
-	);
-	return OLD;
-END;</pre>
-	
-		<hr>
-		<h2>Function:
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.function.ft-del-address">ft_del_address()</a>
-		</h2>
-<h3>Returns: trigger</h3>
-<h3>Language: PLPGSQL</h3>
-        
-        <pre>
-BEGIN
-	INSERT INTO audit.log_address (
-		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, id, id_street, aux_street, number, subunit, addendum, lat_lon
-	) VALUES (
-		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.id, OLD.id_street, OLD.aux_street, OLD.number, OLD.subunit, OLD.addendum, OLD.lat_lon
-	);
-	return OLD;
-END;</pre>
-	
-		<hr>
-		<h2>Function:
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.function.ft-del-allergy">ft_del_allergy()</a>
-		</h2>
-<h3>Returns: trigger</h3>
-<h3>Language: PLPGSQL</h3>
-        
-        <pre>
-BEGIN
-	INSERT INTO audit.log_allergy (
-		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk_item, clin_when, fk_encounter, fk_episode, narrative, soap_cat, pk, substance, substance_code, generics, allergene, atc_code, fk_type, generic_specific, definite
-	) VALUES (
-		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk_item, OLD.clin_when, OLD.fk_encounter, OLD.fk_episode, OLD.narrative, OLD.soap_cat, OLD.pk, OLD.substance, OLD.substance_code, OLD.generics, OLD.allergene, OLD.atc_code, OLD.fk_type, OLD.generic_specific, OLD.definite
-	);
-	return OLD;
-END;</pre>
-	
-		<hr>
-		<h2>Function:
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.function.ft-del-allergy-state">ft_del_allergy_state()</a>
-		</h2>
-<h3>Returns: trigger</h3>
-<h3>Language: PLPGSQL</h3>
-        
-        <pre>
-BEGIN
-	INSERT INTO audit.log_allergy_state (
-		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, has_allergy, comment, last_confirmed, fk_encounter
-	) VALUES (
-		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.has_allergy, OLD.comment, OLD.last_confirmed, OLD.fk_encounter
-	);
-	return OLD;
-END;</pre>
-	
-		<hr>
-		<h2>Function:
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.function.ft-del-atc-group">ft_del_atc_group()</a>
-		</h2>
-<h3>Returns: trigger</h3>
-<h3>Language: PLPGSQL</h3>
-        
-        <pre>
-BEGIN
-	INSERT INTO audit.log_atc_group (
-		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, code, description
-	) VALUES (
-		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.code, OLD.description
-	);
-	return OLD;
-END;</pre>
-	
-		<hr>
-		<h2>Function:
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.function.ft-del-atc-substance">ft_del_atc_substance()</a>
-		</h2>
-<h3>Returns: trigger</h3>
-<h3>Language: PLPGSQL</h3>
-        
-        <pre>
-BEGIN
-	INSERT INTO audit.log_atc_substance (
-		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, code, name, ddd_amount, fk_ddd_unit, route, comment
-	) VALUES (
-		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.code, OLD.name, OLD.ddd_amount, OLD.fk_ddd_unit, OLD.route, OLD.comment
-	);
-	return OLD;
-END;</pre>
-	
-		<hr>
-		<h2>Function:
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.function.ft-del-auto-hint">ft_del_auto_hint()</a>
-		</h2>
-<h3>Returns: trigger</h3>
-<h3>Language: PLPGSQL</h3>
+<h3>Returns: trigger</h3>
+<h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_auto_hint (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, query, title, hint, url, is_active, source, lang
+		pk, query, title, hint, url, is_active, source, lang, recommendation_query
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.query, OLD.title, OLD.hint, OLD.url, OLD.is_active, OLD.source, OLD.lang
+		OLD.pk, OLD.query, OLD.title, OLD.hint, OLD.url, OLD.is_active, OLD.source, OLD.lang, OLD.recommendation_query
 	);
 	return OLD;
 END;</pre>
@@ -34635,13 +35975,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_beh_fall_typ (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, code, kurzform, name
+		pk, code, kurzform, name
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.code, OLD.kurzform, OLD.name
+		OLD.pk, OLD.code, OLD.kurzform, OLD.name
 	);
 	return OLD;
 END;</pre>
@@ -34673,13 +36024,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_bill (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, invoice_id, close_date, apply_vat, fk_receiver_identity, fk_receiver_address, fk_doc, comment
+		pk, invoice_id, close_date, apply_vat, fk_receiver_identity, fk_receiver_address, fk_doc, comment
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.invoice_id, OLD.close_date, OLD.apply_vat, OLD.fk_receiver_identity, OLD.fk_receiver_address, OLD.fk_doc, OLD.comment
+		OLD.pk, OLD.invoice_id, OLD.close_date, OLD.apply_vat, OLD.fk_receiver_identity, OLD.fk_receiver_address, OLD.fk_doc, OLD.comment
 	);
 	return OLD;
 END;</pre>
@@ -34692,13 +36054,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_bill_item (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, fk_provider, fk_encounter, date_to_bill, description, net_amount_per_unit, currency, status, fk_billable, fk_bill, unit_count, amount_multiplier
+		pk, fk_provider, fk_encounter, date_to_bill, description, net_amount_per_unit, currency, status, fk_billable, fk_bill, unit_count, amount_multiplier
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.fk_provider, OLD.fk_encounter, OLD.date_to_bill, OLD.description, OLD.net_amount_per_unit, OLD.currency, OLD.status, OLD.fk_billable, OLD.fk_bill, OLD.unit_count, OLD.amount_multiplier
+		OLD.pk, OLD.fk_provider, OLD.fk_encounter, OLD.date_to_bill, OLD.description, OLD.net_amount_per_unit, OLD.currency, OLD.status, OLD.fk_billable, OLD.fk_bill, OLD.unit_count, OLD.amount_multiplier
 	);
 	return OLD;
 END;</pre>
@@ -34711,13 +36084,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_branded_drug (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, description, preparation, atc_code, is_fake, fk_data_source, external_code, external_code_type
+		pk, description, preparation, atc_code, is_fake, fk_data_source, external_code, external_code_type
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.description, OLD.preparation, OLD.atc_code, OLD.is_fake, OLD.fk_data_source, OLD.external_code, OLD.external_code_type
+		OLD.pk, OLD.description, OLD.preparation, OLD.atc_code, OLD.is_fake, OLD.fk_data_source, OLD.external_code, OLD.external_code_type
 	);
 	return OLD;
 END;</pre>
@@ -34730,13 +36114,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_clin_aux_note (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk_item, clin_when, fk_encounter, fk_episode, narrative, soap_cat, pk
+		pk_item, clin_when, fk_encounter, fk_episode, narrative, soap_cat, pk
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk_item, OLD.clin_when, OLD.fk_encounter, OLD.fk_episode, OLD.narrative, OLD.soap_cat, OLD.pk
+		OLD.pk_item, OLD.clin_when, OLD.fk_encounter, OLD.fk_episode, OLD.narrative, OLD.soap_cat, OLD.pk
 	);
 	return OLD;
 END;</pre>
@@ -34749,13 +36144,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_clin_diag (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, fk_narrative, laterality, is_chronic, is_active, is_definite, clinically_relevant
+		pk, fk_narrative, laterality, is_chronic, is_active, is_definite, clinically_relevant
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.fk_narrative, OLD.laterality, OLD.is_chronic, OLD.is_active, OLD.is_definite, OLD.clinically_relevant
+		OLD.pk, OLD.fk_narrative, OLD.laterality, OLD.is_chronic, OLD.is_active, OLD.is_definite, OLD.clinically_relevant
 	);
 	return OLD;
 END;</pre>
@@ -34768,13 +36174,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_clin_item_type (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, type, code
+		pk, type, code
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.type, OLD.code
+		OLD.pk, OLD.type, OLD.code
 	);
 	return OLD;
 END;</pre>
@@ -34806,13 +36223,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_clin_narrative (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk_item, clin_when, fk_encounter, fk_episode, narrative, soap_cat, pk
+		pk_item, clin_when, fk_encounter, fk_episode, narrative, soap_cat, pk
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk_item, OLD.clin_when, OLD.fk_encounter, OLD.fk_episode, OLD.narrative, OLD.soap_cat, OLD.pk
+		OLD.pk_item, OLD.clin_when, OLD.fk_encounter, OLD.fk_episode, OLD.narrative, OLD.soap_cat, OLD.pk
 	);
 	return OLD;
 END;</pre>
@@ -34844,13 +36272,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_consumable_substance (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, description, atc_code, amount, unit
+		pk, description, atc_code, amount, unit
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.description, OLD.atc_code, OLD.amount, OLD.unit
+		OLD.pk, OLD.description, OLD.atc_code, OLD.amount, OLD.unit
 	);
 	return OLD;
 END;</pre>
@@ -34882,13 +36321,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_data_source (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, name_long, name_short, version, description, source, lang
+		pk, name_long, name_short, version, description, source, lang
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.name_long, OLD.name_short, OLD.version, OLD.description, OLD.source, OLD.lang
+		OLD.pk, OLD.name_long, OLD.name_short, OLD.version, OLD.description, OLD.source, OLD.lang
 	);
 	return OLD;
 END;</pre>
@@ -34901,13 +36351,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_doc_desc (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, fk_doc, text
+		pk, fk_doc, text
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.fk_doc, OLD.text
+		OLD.pk, OLD.fk_doc, OLD.text
 	);
 	return OLD;
 END;</pre>
@@ -34920,13 +36381,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_doc_med (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, fk_encounter, fk_episode, fk_type, comment, clin_when, ext_ref
+		pk, fk_encounter, fk_episode, fk_type, comment, clin_when, ext_ref, fk_org_unit
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.fk_encounter, OLD.fk_episode, OLD.fk_type, OLD.comment, OLD.clin_when, OLD.ext_ref
+		OLD.pk, OLD.fk_encounter, OLD.fk_episode, OLD.fk_type, OLD.comment, OLD.clin_when, OLD.ext_ref, OLD.fk_org_unit
 	);
 	return OLD;
 END;</pre>
@@ -34939,13 +36411,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_encounter (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, fk_patient, fk_type, fk_location, source_time_zone, reason_for_encounter, assessment_of_encounter, started, last_affirmed
+		pk, fk_patient, fk_type, fk_location, source_time_zone, reason_for_encounter, assessment_of_encounter, started, last_affirmed
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.fk_patient, OLD.fk_type, OLD.fk_location, OLD.source_time_zone, OLD.reason_for_encounter, OLD.assessment_of_encounter, OLD.started, OLD.last_affirmed
+		OLD.pk, OLD.fk_patient, OLD.fk_type, OLD.fk_location, OLD.source_time_zone, OLD.reason_for_encounter, OLD.assessment_of_encounter, OLD.started, OLD.last_affirmed
 	);
 	return OLD;
 END;</pre>
@@ -34958,13 +36441,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_episode (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, fk_health_issue, description, is_open, fk_encounter, diagnostic_certainty_classification, summary
+		pk, fk_health_issue, description, is_open, fk_encounter, diagnostic_certainty_classification, summary
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.fk_health_issue, OLD.description, OLD.is_open, OLD.fk_encounter, OLD.diagnostic_certainty_classification, OLD.summary
+		OLD.pk, OLD.fk_health_issue, OLD.description, OLD.is_open, OLD.fk_encounter, OLD.diagnostic_certainty_classification, OLD.summary
 	);
 	return OLD;
 END;</pre>
@@ -34977,13 +36471,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_external_care (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, fk_encounter, fk_health_issue, issue, fk_org_unit, provider, comment
+		pk, fk_encounter, fk_health_issue, issue, fk_org_unit, provider, comment
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.fk_encounter, OLD.fk_health_issue, OLD.issue, OLD.fk_org_unit, OLD.provider, OLD.comment
+		OLD.pk, OLD.fk_encounter, OLD.fk_health_issue, OLD.issue, OLD.fk_org_unit, OLD.provider, OLD.comment
 	);
 	return OLD;
 END;</pre>
@@ -34996,13 +36501,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_family_history (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk_item, clin_when, fk_encounter, fk_episode, narrative, soap_cat, pk, fk_relation_type, age_noted, age_of_death, contributed_to_death, name_relative, dob_relative, comment
+		pk_item, clin_when, fk_encounter, fk_episode, narrative, soap_cat, pk, fk_relation_type, age_noted, age_of_death, contributed_to_death, name_relative, dob_relative, comment
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk_item, OLD.clin_when, OLD.fk_encounter, OLD.fk_episode, OLD.narrative, OLD.soap_cat, OLD.pk, OLD.fk_relation_type, OLD.age_noted, OLD.age_of_death, OLD.contributed_to_death, OLD.name_relative, OLD.dob_relative, OLD.comment
+		OLD.pk_item, OLD.clin_when, OLD.fk_encounter, OLD.fk_episode, OLD.narrative, OLD.soap_cat, OLD.pk, OLD.fk_relation_type, OLD.age_noted, OLD.age_of_death, OLD.contributed_to_death, OLD.name_relative, OLD.dob_relative, OLD.comment
 	);
 	return OLD;
 END;</pre>
@@ -35015,13 +36531,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_fhx_relation_type (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, description, is_genetic
+		pk, description, is_genetic
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.description, OLD.is_genetic
+		OLD.pk, OLD.description, OLD.is_genetic
 	);
 	return OLD;
 END;</pre>
@@ -35034,13 +36561,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_form_data (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, fk_instance, fk_form_field, value
+		pk, fk_instance, fk_form_field, value
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.fk_instance, OLD.fk_form_field, OLD.value
+		OLD.pk, OLD.fk_instance, OLD.fk_form_field, OLD.value
 	);
 	return OLD;
 END;</pre>
@@ -35072,13 +36610,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_form_instances (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk_item, clin_when, fk_encounter, fk_episode, narrative, soap_cat, pk, fk_form_def, form_name
+		pk_item, clin_when, fk_encounter, fk_episode, narrative, soap_cat, pk, fk_form_def, form_name
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk_item, OLD.clin_when, OLD.fk_encounter, OLD.fk_episode, OLD.narrative, OLD.soap_cat, OLD.pk, OLD.fk_form_def, OLD.form_name
+		OLD.pk_item, OLD.clin_when, OLD.fk_encounter, OLD.fk_episode, OLD.narrative, OLD.soap_cat, OLD.pk, OLD.fk_form_def, OLD.form_name
 	);
 	return OLD;
 END;</pre>
@@ -35091,13 +36640,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_gender_label (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, tag, label, sort_weight, comment
+		pk, tag, label, sort_weight, comment
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.tag, OLD.label, OLD.sort_weight, OLD.comment
+		OLD.pk, OLD.tag, OLD.label, OLD.sort_weight, OLD.comment
 	);
 	return OLD;
 END;</pre>
@@ -35110,13 +36670,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_health_issue (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, description, laterality, age_noted, is_active, clinically_relevant, is_confidential, is_cause_of_death, fk_encounter, grouping, diagnostic_certainty_classification, summary
+		pk, description, laterality, age_noted, is_active, clinically_relevant, is_confidential, is_cause_of_death, fk_encounter, grouping, diagnostic_certainty_classification, summary
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.description, OLD.laterality, OLD.age_noted, OLD.is_active, OLD.clinically_relevant, OLD.is_confidential, OLD.is_cause_of_death, OLD.fk_encounter, OLD.grouping, OLD.diagnostic_certainty_classification, OLD.summary
+		OLD.pk, OLD.description, OLD.laterality, OLD.age_noted, OLD.is_active, OLD.clinically_relevant, OLD.is_confidential, OLD.is_cause_of_death, OLD.fk_encounter, OLD.grouping, OLD.diagnostic_certainty_classification, OLD.summary
 	);
 	return OLD;
 END;</pre>
@@ -35129,13 +36700,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_hospital_stay (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk_item, clin_when, fk_encounter, fk_episode, narrative, soap_cat, pk, discharge, fk_org_unit
+		pk_item, clin_when, fk_encounter, fk_episode, narrative, soap_cat, pk, discharge, fk_org_unit
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk_item, OLD.clin_when, OLD.fk_encounter, OLD.fk_episode, OLD.narrative, OLD.soap_cat, OLD.pk, OLD.discharge, OLD.fk_org_unit
+		OLD.pk_item, OLD.clin_when, OLD.fk_encounter, OLD.fk_episode, OLD.narrative, OLD.soap_cat, OLD.pk, OLD.discharge, OLD.fk_org_unit
 	);
 	return OLD;
 END;</pre>
@@ -35167,13 +36749,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_identity (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, deleted, pupic, gender, dob, fk_marital_status, cob, deceased, title, tob, emergency_contact, fk_emergency_contact, comment, fk_primary_provider, dob_is_estimated
+		pk, deleted, gender, dob, fk_marital_status, cob, deceased, title, tob, emergency_contact, fk_emergency_contact, comment, fk_primary_provider, dob_is_estimated
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.deleted, OLD.pupic, OLD.gender, OLD.dob, OLD.fk_marital_status, OLD.cob, OLD.deceased, OLD.title, OLD.tob, OLD.emergency_contact, OLD.fk_emergency_contact, OLD.comment, OLD.fk_primary_provider, OLD.dob_is_estimated
+		OLD.pk, OLD.deleted, OLD.gender, OLD.dob, OLD.fk_marital_status, OLD.cob, OLD.deceased, OLD.title, OLD.tob, OLD.emergency_contact, OLD.fk_emergency_contact, OLD.comment, OLD.fk_primary_provider, OLD.dob_is_estimated
 	);
 	return OLD;
 END;</pre>
@@ -35186,13 +36779,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_identity_tag (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, fk_identity, fk_tag, comment
+		pk, fk_identity, fk_tag, comment
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.fk_identity, OLD.fk_tag, OLD.comment
+		OLD.pk, OLD.fk_identity, OLD.fk_tag, OLD.comment
 	);
 	return OLD;
 END;</pre>
@@ -35205,13 +36809,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_inbox_item_category (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, description, is_user
+		pk, description, is_user
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.description, OLD.is_user
+		OLD.pk, OLD.description, OLD.is_user
 	);
 	return OLD;
 END;</pre>
@@ -35224,13 +36839,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_inbox_item_type (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, fk_inbox_item_category, description, is_user
+		pk, fk_inbox_item_category, description, is_user
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.fk_inbox_item_category, OLD.description, OLD.is_user
+		OLD.pk, OLD.fk_inbox_item_category, OLD.description, OLD.is_user
 	);
 	return OLD;
 END;</pre>
@@ -35243,13 +36869,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_incoming_data_unmatchable (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, fk_patient_candidates, request_id, firstnames, lastnames, dob, postcode, other_info, type, data, gender, requestor, external_data_id, fk_identity_disambiguated
+		pk, fk_patient_candidates, request_id, firstnames, lastnames, dob, postcode, other_info, type, data, gender, requestor, external_data_id, fk_identity_disambiguated
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.fk_patient_candidates, OLD.request_id, OLD.firstnames, OLD.lastnames, OLD.dob, OLD.postcode, OLD.other_info, OLD.type, OLD.data, OLD.gender, OLD.requestor, OLD.external_data_id, OLD.fk_identity_disambiguated
+		OLD.pk, OLD.fk_patient_candidates, OLD.request_id, OLD.firstnames, OLD.lastnames, OLD.dob, OLD.postcode, OLD.other_info, OLD.type, OLD.data, OLD.gender, OLD.requestor, OLD.external_data_id, OLD.fk_identity_disambiguated
 	);
 	return OLD;
 END;</pre>
@@ -35262,13 +36899,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_incoming_data_unmatched (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, fk_patient_candidates, request_id, firstnames, lastnames, dob, postcode, other_info, type, data, gender, requestor, external_data_id, fk_identity_disambiguated, comment, fk_provider_disambiguated
+		pk, fk_patient_candidates, request_id, firstnames, lastnames, dob, postcode, other_info, type, data, gender, requestor, external_data_id, fk_identity_disambiguated, comment, fk_provider_disambiguated
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.fk_patient_candidates, OLD.request_id, OLD.firstnames, OLD.lastnames, OLD.dob, OLD.postcode, OLD.other_info, OLD.type, OLD.data, OLD.gender, OLD.requestor, OLD.external_data_id, OLD.fk_identity_disambiguated, OLD.comment, OLD.fk_provider_disambiguated
+		OLD.pk, OLD.fk_patient_candidates, OLD.request_id, OLD.firstnames, OLD.lastnames, OLD.dob, OLD.postcode, OLD.other_info, OLD.type, OLD.data, OLD.gender, OLD.requestor, OLD.external_data_id, OLD.fk_identity_disambiguated, OLD.comment, OLD.fk_provider_disambiguated
 	);
 	return OLD;
 END;</pre>
@@ -35281,13 +36929,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_lab_request (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk_item, clin_when, fk_encounter, fk_episode, narrative, soap_cat, pk, fk_test_org, request_id, fk_requestor, lab_request_id, lab_rxd_when, results_reported_when, request_status, is_pending, diagnostic_service_section, ordered_service, note_test_org
+		pk_item, clin_when, fk_encounter, fk_episode, narrative, soap_cat, pk, fk_test_org, request_id, fk_requestor, lab_request_id, lab_rxd_when, results_reported_when, request_status, is_pending, diagnostic_service_section, ordered_service, note_test_org
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk_item, OLD.clin_when, OLD.fk_encounter, OLD.fk_episode, OLD.narrative, OLD.soap_cat, OLD.pk, OLD.fk_test_org, OLD.request_id, OLD.fk_requestor, OLD.lab_request_id, OLD.lab_rxd_when, OLD.results_reported_when, OLD.request_status, OLD.is_pending, OLD.diagnostic_service_section, OLD.ordered_service, OLD.note_test_org
+		OLD.pk_item, OLD.clin_when, OLD.fk_encounter, OLD.fk_episode, OLD.narrative, OLD.soap_cat, OLD.pk, OLD.fk_test_org, OLD.request_id, OLD.fk_requestor, OLD.lab_request_id, OLD.lab_rxd_when, OLD.results_reported_when, OLD.request_status, OLD.is_pending, OLD.diagnostic_service_section, OLD.ordered_service, OLD.note_test_org
 	);
 	return OLD;
 END;</pre>
@@ -35300,13 +36959,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_lab_test_gnr (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, id, id_test
+		id, id_test
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.id, OLD.id_test
+		OLD.id, OLD.id_test
 	);
 	return OLD;
 END;</pre>
@@ -35319,13 +36989,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_lnk_code2aoe (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk_lnk_code2item, fk_generic_code, fk_item, code_modifier, pk
+		pk_lnk_code2item, fk_generic_code, fk_item, code_modifier, pk
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk_lnk_code2item, OLD.fk_generic_code, OLD.fk_item, OLD.code_modifier, OLD.pk
+		OLD.pk_lnk_code2item, OLD.fk_generic_code, OLD.fk_item, OLD.code_modifier, OLD.pk
 	);
 	return OLD;
 END;</pre>
@@ -35338,13 +37019,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_lnk_code2episode (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk_lnk_code2item, fk_generic_code, fk_item, code_modifier, pk
+		pk_lnk_code2item, fk_generic_code, fk_item, code_modifier, pk
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk_lnk_code2item, OLD.fk_generic_code, OLD.fk_item, OLD.code_modifier, OLD.pk
+		OLD.pk_lnk_code2item, OLD.fk_generic_code, OLD.fk_item, OLD.code_modifier, OLD.pk
 	);
 	return OLD;
 END;</pre>
@@ -35357,13 +37049,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_lnk_code2fhx (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk_lnk_code2item, fk_generic_code, fk_item, code_modifier, pk
+		pk_lnk_code2item, fk_generic_code, fk_item, code_modifier, pk
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk_lnk_code2item, OLD.fk_generic_code, OLD.fk_item, OLD.code_modifier, OLD.pk
+		OLD.pk_lnk_code2item, OLD.fk_generic_code, OLD.fk_item, OLD.code_modifier, OLD.pk
 	);
 	return OLD;
 END;</pre>
@@ -35376,13 +37079,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_lnk_code2h_issue (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk_lnk_code2item, fk_generic_code, fk_item, code_modifier, pk
+		pk_lnk_code2item, fk_generic_code, fk_item, code_modifier, pk
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk_lnk_code2item, OLD.fk_generic_code, OLD.fk_item, OLD.code_modifier, OLD.pk
+		OLD.pk_lnk_code2item, OLD.fk_generic_code, OLD.fk_item, OLD.code_modifier, OLD.pk
 	);
 	return OLD;
 END;</pre>
@@ -35395,13 +37109,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_lnk_code2narrative (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk_lnk_code2item, fk_generic_code, fk_item, code_modifier, pk
+		pk_lnk_code2item, fk_generic_code, fk_item, code_modifier, pk
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk_lnk_code2item, OLD.fk_generic_code, OLD.fk_item, OLD.code_modifier, OLD.pk
+		OLD.pk_lnk_code2item, OLD.fk_generic_code, OLD.fk_item, OLD.code_modifier, OLD.pk
 	);
 	return OLD;
 END;</pre>
@@ -35414,13 +37139,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_lnk_code2procedure (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk_lnk_code2item, fk_generic_code, fk_item, code_modifier, pk
+		pk_lnk_code2item, fk_generic_code, fk_item, code_modifier, pk
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk_lnk_code2item, OLD.fk_generic_code, OLD.fk_item, OLD.code_modifier, OLD.pk
+		OLD.pk_lnk_code2item, OLD.fk_generic_code, OLD.fk_item, OLD.code_modifier, OLD.pk
 	);
 	return OLD;
 END;</pre>
@@ -35433,13 +37169,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_lnk_code2rfe (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk_lnk_code2item, fk_generic_code, fk_item, code_modifier, pk
+		pk_lnk_code2item, fk_generic_code, fk_item, code_modifier, pk
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk_lnk_code2item, OLD.fk_generic_code, OLD.fk_item, OLD.code_modifier, OLD.pk
+		OLD.pk_lnk_code2item, OLD.fk_generic_code, OLD.fk_item, OLD.code_modifier, OLD.pk
 	);
 	return OLD;
 END;</pre>
@@ -35452,13 +37199,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_lnk_code2tst_pnl (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk_lnk_code2item, fk_generic_code, fk_item, code_modifier, pk
+		pk_lnk_code2item, fk_generic_code, fk_item, code_modifier, pk
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk_lnk_code2item, OLD.fk_generic_code, OLD.fk_item, OLD.code_modifier, OLD.pk
+		OLD.pk_lnk_code2item, OLD.fk_generic_code, OLD.fk_item, OLD.code_modifier, OLD.pk
 	);
 	return OLD;
 END;</pre>
@@ -35471,13 +37229,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_lnk_constraint2vacc_course (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, fk_vaccination_course, fk_constraint
+		pk, fk_vaccination_course, fk_constraint
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.fk_vaccination_course, OLD.fk_constraint
+		OLD.pk, OLD.fk_vaccination_course, OLD.fk_constraint
 	);
 	return OLD;
 END;</pre>
@@ -35490,13 +37259,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_lnk_identity2ext_id (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, id, id_identity, external_id, fk_origin, comment
+		id, id_identity, external_id, fk_origin, comment
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.id, OLD.id_identity, OLD.external_id, OLD.fk_origin, OLD.comment
+		OLD.id, OLD.id_identity, OLD.external_id, OLD.fk_origin, OLD.comment
 	);
 	return OLD;
 END;</pre>
@@ -35528,13 +37308,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_lnk_job2person (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, fk_identity, fk_occupation, activities
+		pk, fk_identity, fk_occupation, activities
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.fk_identity, OLD.fk_occupation, OLD.activities
+		OLD.pk, OLD.fk_identity, OLD.fk_occupation, OLD.activities
 	);
 	return OLD;
 END;</pre>
@@ -35547,13 +37338,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_lnk_org_unit2comm (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, fk_org_unit, url, fk_type, is_confidential, comment
+		pk, fk_org_unit, url, fk_type, is_confidential, comment
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.fk_org_unit, OLD.url, OLD.fk_type, OLD.is_confidential, OLD.comment
+		OLD.pk, OLD.fk_org_unit, OLD.url, OLD.fk_type, OLD.is_confidential, OLD.comment
 	);
 	return OLD;
 END;</pre>
@@ -35566,13 +37368,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_lnk_org_unit2ext_id (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, fk_org_unit, external_id, fk_type, comment
+		pk, fk_org_unit, external_id, fk_type, comment
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.fk_org_unit, OLD.external_id, OLD.fk_type, OLD.comment
+		OLD.pk, OLD.fk_org_unit, OLD.external_id, OLD.fk_type, OLD.comment
 	);
 	return OLD;
 END;</pre>
@@ -35585,13 +37398,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
-	INSERT INTO audit.log_lnk_pat2vaccination_course (
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
+	INSERT INTO audit.log_lnk_pat2vaccination_course (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, fk_patient, fk_course
+		pk, fk_patient, fk_course
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.fk_patient, OLD.fk_course
+		OLD.pk, OLD.fk_patient, OLD.fk_course
 	);
 	return OLD;
 END;</pre>
@@ -35604,13 +37428,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_lnk_person2relative (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, id, id_identity, id_relative, id_relation_type, started, ended
+		id, id_identity, id_relative, id_relation_type, started, ended
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.id, OLD.id_identity, OLD.id_relative, OLD.id_relation_type, OLD.started, OLD.ended
+		OLD.id, OLD.id_identity, OLD.id_relative, OLD.id_relation_type, OLD.started, OLD.ended
 	);
 	return OLD;
 END;</pre>
@@ -35623,13 +37458,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_lnk_substance2brand (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, fk_brand, fk_substance
+		pk, fk_brand, fk_substance
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.fk_brand, OLD.fk_substance
+		OLD.pk, OLD.fk_brand, OLD.fk_substance
 	);
 	return OLD;
 END;</pre>
@@ -35642,13 +37488,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_lnk_tst2norm (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, id, id_test, id_norm
+		id, id_test, id_norm
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.id, OLD.id_test, OLD.id_norm
+		OLD.id, OLD.id_test, OLD.id_norm
 	);
 	return OLD;
 END;</pre>
@@ -35661,13 +37518,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_lnk_type2item (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, fk_type, fk_item
+		pk, fk_type, fk_item
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.fk_type, OLD.fk_item
+		OLD.pk, OLD.fk_type, OLD.fk_item
 	);
 	return OLD;
 END;</pre>
@@ -35680,13 +37548,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_lnk_vaccination_course2schedule (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, fk_course, fk_schedule
+		pk, fk_course, fk_schedule
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.fk_course, OLD.fk_schedule
+		OLD.pk, OLD.fk_course, OLD.fk_schedule
 	);
 	return OLD;
 END;</pre>
@@ -35699,13 +37578,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_lnk_vaccine2inds (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, id, fk_vaccine, fk_indication
+		id, fk_vaccine, fk_indication
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.id, OLD.fk_vaccine, OLD.fk_indication
+		OLD.id, OLD.fk_vaccine, OLD.fk_indication
 	);
 	return OLD;
 END;</pre>
@@ -35718,13 +37608,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_message_inbox (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, fk_staff, fk_inbox_item_type, comment, data, importance, fk_patient, ufk_context, due_date, expiry_date
+		pk, fk_staff, fk_inbox_item_type, comment, data, importance, fk_patient, ufk_context, due_date, expiry_date
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.fk_staff, OLD.fk_inbox_item_type, OLD.comment, OLD.data, OLD.importance, OLD.fk_patient, OLD.ufk_context, OLD.due_date, OLD.expiry_date
+		OLD.pk, OLD.fk_staff, OLD.fk_inbox_item_type, OLD.comment, OLD.data, OLD.importance, OLD.fk_patient, OLD.ufk_context, OLD.due_date, OLD.expiry_date
 	);
 	return OLD;
 END;</pre>
@@ -35737,13 +37638,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_occupation (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, id, name
+		id, name
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.id, OLD.name
+		OLD.id, OLD.name
 	);
 	return OLD;
 END;</pre>
@@ -35775,13 +37687,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_org (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, description, fk_category, fk_data_source
+		pk, description, fk_category, fk_data_source
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.description, OLD.fk_category, OLD.fk_data_source
+		OLD.pk, OLD.description, OLD.fk_category, OLD.fk_data_source
 	);
 	return OLD;
 END;</pre>
@@ -35794,13 +37717,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_org_unit (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, description, fk_org, fk_address, fk_category
+		pk, description, fk_org, fk_address, fk_category
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.description, OLD.fk_org, OLD.fk_address, OLD.fk_category
+		OLD.pk, OLD.description, OLD.fk_org, OLD.fk_address, OLD.fk_category
 	);
 	return OLD;
 END;</pre>
@@ -35813,13 +37747,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_paperwork_templates (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, fk_template_type, instance_type, name_short, name_long, external_version, gnumed_revision, engine, in_use, filename, data, edit_after_substitution
+		pk, fk_template_type, instance_type, name_short, name_long, external_version, gnumed_revision, engine, in_use, filename, data, edit_after_substitution
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.fk_template_type, OLD.instance_type, OLD.name_short, OLD.name_long, OLD.external_version, OLD.gnumed_revision, OLD.engine, OLD.in_use, OLD.filename, OLD.data, OLD.edit_after_substitution
+		OLD.pk, OLD.fk_template_type, OLD.instance_type, OLD.name_short, OLD.name_long, OLD.external_version, OLD.gnumed_revision, OLD.engine, OLD.in_use, OLD.filename, OLD.data, OLD.edit_after_substitution
 	);
 	return OLD;
 END;</pre>
@@ -35832,13 +37777,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_patient (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, fk_identity, edc
+		pk, fk_identity, edc
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.fk_identity, OLD.edc
+		OLD.pk, OLD.fk_identity, OLD.edc
 	);
 	return OLD;
 END;</pre>
@@ -35851,13 +37807,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_prax_geb_paid (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, fk_fall, paid_amount, paid_when, paid_with
+		pk, fk_fall, paid_amount, paid_when, paid_with
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.fk_fall, OLD.paid_amount, OLD.paid_when, OLD.paid_with
+		OLD.pk, OLD.fk_fall, OLD.paid_amount, OLD.paid_when, OLD.paid_with
 	);
 	return OLD;
 END;</pre>
@@ -35870,13 +37837,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_praxis_branch (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, fk_org_unit
+		pk, fk_org_unit
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.fk_org_unit
+		OLD.pk, OLD.fk_org_unit
 	);
 	return OLD;
 END;</pre>
@@ -35889,13 +37867,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_procedure (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk_item, clin_when, fk_encounter, fk_episode, narrative, soap_cat, pk, fk_hospital_stay, clin_end, is_ongoing, fk_org_unit
+		pk_item, clin_when, fk_encounter, fk_episode, narrative, soap_cat, pk, fk_hospital_stay, clin_end, is_ongoing, fk_org_unit
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk_item, OLD.clin_when, OLD.fk_encounter, OLD.fk_episode, OLD.narrative, OLD.soap_cat, OLD.pk, OLD.fk_hospital_stay, OLD.clin_end, OLD.is_ongoing, OLD.fk_org_unit
+		OLD.pk_item, OLD.clin_when, OLD.fk_encounter, OLD.fk_episode, OLD.narrative, OLD.soap_cat, OLD.pk, OLD.fk_hospital_stay, OLD.clin_end, OLD.is_ongoing, OLD.fk_org_unit
 	);
 	return OLD;
 END;</pre>
@@ -35927,108 +37916,163 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_referral (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk_item, clin_when, fk_encounter, fk_episode, narrative, soap_cat, id, fk_referee, fk_form
+		pk_item, clin_when, fk_encounter, fk_episode, narrative, soap_cat, id, fk_referee, fk_form
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk_item, OLD.clin_when, OLD.fk_encounter, OLD.fk_episode, OLD.narrative, OLD.soap_cat, OLD.id, OLD.fk_referee, OLD.fk_form
+		OLD.pk_item, OLD.clin_when, OLD.fk_encounter, OLD.fk_episode, OLD.narrative, OLD.soap_cat, OLD.id, OLD.fk_referee, OLD.fk_form
 	);
 	return OLD;
 END;</pre>
 	
 		<hr>
 		<h2>Function:
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.function.ft-del-relation-types">ft_del_relation_types()</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.function.ft-del-region">ft_del_region()</a>
 		</h2>
 <h3>Returns: trigger</h3>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
-	INSERT INTO audit.log_relation_types (
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
+	INSERT INTO audit.log_region (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, id, inverse, biological, biol_verified, description
+		pk, code, country, name
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.id, OLD.inverse, OLD.biological, OLD.biol_verified, OLD.description
+		OLD.pk, OLD.code, OLD.country, OLD.name
 	);
 	return OLD;
 END;</pre>
 	
 		<hr>
 		<h2>Function:
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.function.ft-del-report-query">ft_del_report_query()</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.function.ft-del-relation-types">ft_del_relation_types()</a>
 		</h2>
 <h3>Returns: trigger</h3>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
-	INSERT INTO audit.log_report_query (
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
+	INSERT INTO audit.log_relation_types (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, label, cmd
+		id, inverse, biological, biol_verified, description
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.label, OLD.cmd
+		OLD.id, OLD.inverse, OLD.biological, OLD.biol_verified, OLD.description
 	);
 	return OLD;
 END;</pre>
 	
 		<hr>
 		<h2>Function:
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.function.ft-del-staff">ft_del_staff()</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.function.ft-del-report-query">ft_del_report_query()</a>
 		</h2>
 <h3>Returns: trigger</h3>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
-	INSERT INTO audit.log_staff (
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
+	INSERT INTO audit.log_report_query (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, fk_identity, db_user, short_alias, comment, is_active
+		pk, label, cmd
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.fk_identity, OLD.db_user, OLD.short_alias, OLD.comment, OLD.is_active
+		OLD.pk, OLD.label, OLD.cmd
 	);
 	return OLD;
 END;</pre>
 	
 		<hr>
 		<h2>Function:
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.function.ft-del-staff-role">ft_del_staff_role()</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.function.ft-del-staff">ft_del_staff()</a>
 		</h2>
 <h3>Returns: trigger</h3>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
-	INSERT INTO audit.log_staff_role (
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
+	INSERT INTO audit.log_staff (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, name, comment
+		pk, fk_identity, db_user, short_alias, comment, is_active
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.name, OLD.comment
+		OLD.pk, OLD.fk_identity, OLD.db_user, OLD.short_alias, OLD.comment, OLD.is_active
 	);
 	return OLD;
 END;</pre>
 	
 		<hr>
 		<h2>Function:
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.function.ft-del-state">ft_del_state()</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.function.ft-del-staff-role">ft_del_staff_role()</a>
 		</h2>
 <h3>Returns: trigger</h3>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
 BEGIN
-	INSERT INTO audit.log_state (
+	INSERT INTO audit.log_staff_role (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, id, code, country, name
+		pk_audit, row_version, modified_when, modified_by, pk, name, comment
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.id, OLD.code, OLD.country, OLD.name
+		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.name, OLD.comment
 	);
 	return OLD;
 END;</pre>
@@ -36041,13 +38085,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_street (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, id, id_urb, name, postcode, suburb, lat_lon
+		id, id_urb, name, postcode, suburb, lat_lon
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.id, OLD.id_urb, OLD.name, OLD.postcode, OLD.suburb, OLD.lat_lon
+		OLD.id, OLD.id_urb, OLD.name, OLD.postcode, OLD.suburb, OLD.lat_lon
 	);
 	return OLD;
 END;</pre>
@@ -36079,13 +38134,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_substance_intake (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk_item, clin_when, fk_encounter, fk_episode, narrative, soap_cat, pk, fk_substance, preparation, schedule, aim, duration, intake_is_approved_of, is_long_term, discontinued, discontinue_reason, fk_drug_component
+		pk_item, clin_when, fk_encounter, fk_episode, narrative, soap_cat, pk, fk_substance, preparation, schedule, aim, duration, intake_is_approved_of, is_long_term, discontinued, discontinue_reason, fk_drug_component, comment_on_start, harmful_use_type
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk_item, OLD.clin_when, OLD.fk_encounter, OLD.fk_episode, OLD.narrative, OLD.soap_cat, OLD.pk, OLD.fk_substance, OLD.preparation, OLD.schedule, OLD.aim, OLD.duration, OLD.intake_is_approved_of, OLD.is_long_term, OLD.discontinued, OLD.discontinue_reason, OLD.fk_drug_component
+		OLD.pk_item, OLD.clin_when, OLD.fk_encounter, OLD.fk_episode, OLD.narrative, OLD.soap_cat, OLD.pk, OLD.fk_substance, OLD.preparation, OLD.schedule, OLD.aim, OLD.duration, OLD.intake_is_approved_of, OLD.is_long_term, OLD.discontinued, OLD.discontinue_reason, OLD.fk_drug_component, OLD.comment_on_start, OLD.harmful_use_type
 	);
 	return OLD;
 END;</pre>
@@ -36098,13 +38164,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_suppressed_hint (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, fk_encounter, fk_hint, suppressed_by, suppressed_when, rationale, md5_sum
+		pk, fk_encounter, fk_hint, suppressed_by, suppressed_when, rationale, md5_sum
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.fk_encounter, OLD.fk_hint, OLD.suppressed_by, OLD.suppressed_when, OLD.rationale, OLD.md5_sum
+		OLD.pk, OLD.fk_encounter, OLD.fk_hint, OLD.suppressed_by, OLD.suppressed_when, OLD.rationale, OLD.md5_sum
 	);
 	return OLD;
 END;</pre>
@@ -36117,13 +38194,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_tag_image (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, description, filename, image
+		pk, description, filename, image
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.description, OLD.filename, OLD.image
+		OLD.pk, OLD.description, OLD.filename, OLD.image
 	);
 	return OLD;
 END;</pre>
@@ -36136,13 +38224,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_test_org (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, fk_org_unit, fk_adm_contact, fk_med_contact, comment, contact
+		pk, fk_org_unit, fk_adm_contact, fk_med_contact, comment, contact
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.fk_org_unit, OLD.fk_adm_contact, OLD.fk_med_contact, OLD.comment, OLD.contact
+		OLD.pk, OLD.fk_org_unit, OLD.fk_adm_contact, OLD.fk_med_contact, OLD.comment, OLD.contact
 	);
 	return OLD;
 END;</pre>
@@ -36155,13 +38254,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_test_panel (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, description, comment, fk_test_types
+		pk, description, comment, fk_test_types
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.description, OLD.comment, OLD.fk_test_types
+		OLD.pk, OLD.description, OLD.comment, OLD.fk_test_types
 	);
 	return OLD;
 END;</pre>
@@ -36174,13 +38284,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_test_result (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk_item, clin_when, fk_encounter, fk_episode, narrative, soap_cat, pk, fk_type, val_num, val_alpha, val_unit, val_normal_min, val_normal_max, val_normal_range, val_target_min, val_target_max, val_target_range, abnormality_indicator, norm_ref_group, note_test_org, material, material_detail, fk_intended_reviewer, fk_request, status, source_data, val_grouping
+		pk_item, clin_when, fk_encounter, fk_episode, narrative, soap_cat, pk, fk_type, val_num, val_alpha, val_unit, val_normal_min, val_normal_max, val_normal_range, val_target_min, val_target_max, val_target_range, abnormality_indicator, norm_ref_group, note_test_org, material, material_detail, fk_intended_reviewer, fk_request, status, source_data, val_grouping
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk_item, OLD.clin_when, OLD.fk_encounter, OLD.fk_episode, OLD.narrative, OLD.soap_cat, OLD.pk, OLD.fk_type, OLD.val_num, OLD.val_alpha, OLD.val_unit, OLD.val_normal_min, OLD.val_normal_max, OLD.val_normal_range, OLD.val_target_min, OLD.val_target_max, OLD.val_target_range, OLD.abnormality_indicator, OLD.norm_ref_group, OLD.note_test_org, OLD.material, OLD.material_detail, OLD.fk_intended_reviewer, OLD.fk_request, OL [...]
+		OLD.pk_item, OLD.clin_when, OLD.fk_encounter, OLD.fk_episode, OLD.narrative, OLD.soap_cat, OLD.pk, OLD.fk_type, OLD.val_num, OLD.val_alpha, OLD.val_unit, OLD.val_normal_min, OLD.val_normal_max, OLD.val_normal_range, OLD.val_target_min, OLD.val_target_max, OLD.val_target_range, OLD.abnormality_indicator, OLD.norm_ref_group, OLD.note_test_org, OLD.material, OLD.material_detail, OLD.fk_intended_reviewer, OLD.fk_request, OLD.status, OLD.source_data, OLD.val_grouping
 	);
 	return OLD;
 END;</pre>
@@ -36193,13 +38314,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_test_type (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, fk_test_org, name, comment, reference_unit, loinc, abbrev, fk_meta_test_type
+		pk, fk_test_org, name, comment, reference_unit, loinc, abbrev, fk_meta_test_type
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.fk_test_org, OLD.name, OLD.comment, OLD.reference_unit, OLD.loinc, OLD.abbrev, OLD.fk_meta_test_type
+		OLD.pk, OLD.fk_test_org, OLD.name, OLD.comment, OLD.reference_unit, OLD.loinc, OLD.abbrev, OLD.fk_meta_test_type
 	);
 	return OLD;
 END;</pre>
@@ -36212,13 +38344,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_urb (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, id, id_state, postcode, lat_lon, name
+		id, fk_region, postcode, lat_lon, name
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.id, OLD.id_state, OLD.postcode, OLD.lat_lon, OLD.name
+		OLD.id, OLD.fk_region, OLD.postcode, OLD.lat_lon, OLD.name
 	);
 	return OLD;
 END;</pre>
@@ -36231,13 +38374,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_vacc_indication (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, id, description, atcs_single_indication, atcs_combi_indication
+		id, description, atcs_single_indication, atcs_combi_indication
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.id, OLD.description, OLD.atcs_single_indication, OLD.atcs_combi_indication
+		OLD.id, OLD.description, OLD.atcs_single_indication, OLD.atcs_combi_indication
 	);
 	return OLD;
 END;</pre>
@@ -36250,13 +38404,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_vacc_route (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, id, abbreviation, description
+		id, abbreviation, description
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.id, OLD.abbreviation, OLD.description
+		OLD.id, OLD.abbreviation, OLD.description
 	);
 	return OLD;
 END;</pre>
@@ -36269,13 +38434,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_vaccination (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk_item, clin_when, fk_encounter, fk_episode, narrative, soap_cat, pk, fk_provider, fk_vaccine, site, batch_no, reaction
+		pk_item, clin_when, fk_encounter, fk_episode, narrative, soap_cat, pk, fk_provider, fk_vaccine, site, batch_no, reaction
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk_item, OLD.clin_when, OLD.fk_encounter, OLD.fk_episode, OLD.narrative, OLD.soap_cat, OLD.pk, OLD.fk_provider, OLD.fk_vaccine, OLD.site, OLD.batch_no, OLD.reaction
+		OLD.pk_item, OLD.clin_when, OLD.fk_encounter, OLD.fk_episode, OLD.narrative, OLD.soap_cat, OLD.pk, OLD.fk_provider, OLD.fk_vaccine, OLD.site, OLD.batch_no, OLD.reaction
 	);
 	return OLD;
 END;</pre>
@@ -36288,13 +38464,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_vaccination_course (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, fk_recommended_by, fk_indication, is_active, comment
+		pk, fk_recommended_by, fk_indication, is_active, comment
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.fk_recommended_by, OLD.fk_indication, OLD.is_active, OLD.comment
+		OLD.pk, OLD.fk_recommended_by, OLD.fk_indication, OLD.is_active, OLD.comment
 	);
 	return OLD;
 END;</pre>
@@ -36307,13 +38494,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_vaccination_course_constraint (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, description
+		pk, description
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.description
+		OLD.pk, OLD.description
 	);
 	return OLD;
 END;</pre>
@@ -36326,13 +38524,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_vaccination_definition (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, id, fk_course, is_booster, seq_no, min_age_due, max_age_due, min_interval, comment
+		id, fk_course, is_booster, seq_no, min_age_due, max_age_due, min_interval, comment
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.id, OLD.fk_course, OLD.is_booster, OLD.seq_no, OLD.min_age_due, OLD.max_age_due, OLD.min_interval, OLD.comment
+		OLD.id, OLD.fk_course, OLD.is_booster, OLD.seq_no, OLD.min_age_due, OLD.max_age_due, OLD.min_interval, OLD.comment
 	);
 	return OLD;
 END;</pre>
@@ -36345,13 +38554,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_vaccination_schedule (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, name, comment
+		pk, name, comment
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.name, OLD.comment
+		OLD.pk, OLD.name, OLD.comment
 	);
 	return OLD;
 END;</pre>
@@ -36364,13 +38584,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_vaccine (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, id_route, is_live, min_age, max_age, comment, fk_brand
+		pk, id_route, is_live, min_age, max_age, comment, fk_brand
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.id_route, OLD.is_live, OLD.min_age, OLD.max_age, OLD.comment, OLD.fk_brand
+		OLD.pk, OLD.id_route, OLD.is_live, OLD.min_age, OLD.max_age, OLD.comment, OLD.fk_brand
 	);
 	return OLD;
 END;</pre>
@@ -36383,13 +38614,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_vaccine_batches (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, fk_vaccine, batch_no
+		pk, fk_vaccine, batch_no
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.fk_vaccine, OLD.batch_no
+		OLD.pk, OLD.fk_vaccine, OLD.batch_no
 	);
 	return OLD;
 END;</pre>
@@ -36402,13 +38644,24 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_deleter boolean;
 BEGIN
+	-- is the session user allowed to delete data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_deleter;
+	IF _is_allowed_deleter IS FALSE THEN
+		RAISE EXCEPTION
+			'DELETE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return OLD;
+	END IF;
 	INSERT INTO audit.log_waiting_list (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, fk_patient, registered, urgency, list_position, comment, area
+		pk, fk_patient, registered, urgency, list_position, comment, area
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.fk_patient, OLD.registered, OLD.urgency, OLD.list_position, OLD.comment, OLD.area
+		OLD.pk, OLD.fk_patient, OLD.registered, OLD.urgency, OLD.list_position, OLD.comment, OLD.area
 	);
 	return OLD;
 END;</pre>
@@ -36440,7 +38693,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -36470,7 +38734,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -36485,7 +38760,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -36500,7 +38786,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -36545,7 +38842,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -36560,7 +38868,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -36590,7 +38909,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -36605,7 +38935,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -36620,7 +38961,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -36635,7 +38987,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -36650,7 +39013,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -36665,7 +39039,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -36695,7 +39080,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -36725,7 +39121,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -36755,7 +39162,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -36770,7 +39188,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -36785,7 +39214,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -36800,7 +39240,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -36815,7 +39266,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -36830,7 +39292,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -36845,7 +39318,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -36860,7 +39344,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -36875,7 +39370,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -36905,7 +39411,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -36920,7 +39437,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -36935,7 +39463,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -36950,7 +39489,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -36980,7 +39530,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -36995,7 +39556,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -37010,7 +39582,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -37025,7 +39608,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -37040,7 +39634,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -37055,7 +39660,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -37070,7 +39686,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -37085,7 +39712,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -37100,7 +39738,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -37115,7 +39764,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -37130,7 +39790,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -37145,7 +39816,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -37160,7 +39842,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -37175,7 +39868,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -37190,7 +39894,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -37205,7 +39920,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -37220,7 +39946,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -37235,7 +39972,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -37265,7 +40013,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -37280,7 +40039,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -37295,7 +40065,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -37310,7 +40091,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -37325,7 +40117,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -37340,7 +40143,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -37355,7 +40169,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -37370,7 +40195,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -37385,7 +40221,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -37400,7 +40247,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -37415,7 +40273,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -37430,7 +40299,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -37460,7 +40340,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -37475,7 +40366,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -37490,7 +40392,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -37505,7 +40418,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -37520,7 +40444,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -37535,7 +40470,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -37550,7 +40496,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -37580,7 +40537,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -37589,13 +40557,24 @@ END;</pre>
 	
 		<hr>
 		<h2>Function:
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.function.ft-ins-relation-types">ft_ins_relation_types()</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.function.ft-ins-region">ft_ins_region()</a>
 		</h2>
 <h3>Returns: trigger</h3>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -37604,13 +40583,24 @@ END;</pre>
 	
 		<hr>
 		<h2>Function:
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.function.ft-ins-report-query">ft_ins_report_query()</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.function.ft-ins-relation-types">ft_ins_relation_types()</a>
 		</h2>
 <h3>Returns: trigger</h3>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -37619,13 +40609,24 @@ END;</pre>
 	
 		<hr>
 		<h2>Function:
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.function.ft-ins-staff">ft_ins_staff()</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.function.ft-ins-report-query">ft_ins_report_query()</a>
 		</h2>
 <h3>Returns: trigger</h3>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -37634,13 +40635,24 @@ END;</pre>
 	
 		<hr>
 		<h2>Function:
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.function.ft-ins-staff-role">ft_ins_staff_role()</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.function.ft-ins-staff">ft_ins_staff()</a>
 		</h2>
 <h3>Returns: trigger</h3>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -37649,7 +40661,7 @@ END;</pre>
 	
 		<hr>
 		<h2>Function:
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.function.ft-ins-state">ft_ins_state()</a>
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.function.ft-ins-staff-role">ft_ins_staff_role()</a>
 		</h2>
 <h3>Returns: trigger</h3>
 <h3>Language: PLPGSQL</h3>
@@ -37670,7 +40682,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -37700,7 +40723,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -37715,7 +40749,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -37730,7 +40775,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -37745,7 +40801,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -37760,7 +40827,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -37775,7 +40853,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -37790,7 +40879,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -37805,7 +40905,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -37820,7 +40931,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -37835,7 +40957,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -37850,7 +40983,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -37865,7 +41009,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -37880,7 +41035,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -37895,7 +41061,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -37910,7 +41087,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -37925,7 +41113,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -37940,7 +41139,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -37955,7 +41165,18 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_inserter boolean;
 BEGIN
+	-- is the session user allowed to insert data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_inserter;
+	IF _is_allowed_inserter IS FALSE THEN
+		RAISE EXCEPTION
+			'INSERT: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := 0;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
@@ -37985,16 +41206,27 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_access_log (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, user_action
+		pk, user_action
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.user_action
+		OLD.pk, OLD.user_action
 	);
 	return NEW;
 END;</pre>
@@ -38029,16 +41261,27 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_address (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, id, id_street, aux_street, number, subunit, addendum, lat_lon
+		id, id_street, aux_street, number, subunit, addendum, lat_lon
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.id, OLD.id_street, OLD.aux_street, OLD.number, OLD.subunit, OLD.addendum, OLD.lat_lon
+		OLD.id, OLD.id_street, OLD.aux_street, OLD.number, OLD.subunit, OLD.addendum, OLD.lat_lon
 	);
 	return NEW;
 END;</pre>
@@ -38051,16 +41294,27 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_allergy (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk_item, clin_when, fk_encounter, fk_episode, narrative, soap_cat, pk, substance, substance_code, generics, allergene, atc_code, fk_type, generic_specific, definite
+		pk_item, clin_when, fk_encounter, fk_episode, narrative, soap_cat, pk, substance, substance_code, generics, allergene, atc_code, fk_type, generic_specific, definite
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk_item, OLD.clin_when, OLD.fk_encounter, OLD.fk_episode, OLD.narrative, OLD.soap_cat, OLD.pk, OLD.substance, OLD.substance_code, OLD.generics, OLD.allergene, OLD.atc_code, OLD.fk_type, OLD.generic_specific, OLD.definite
+		OLD.pk_item, OLD.clin_when, OLD.fk_encounter, OLD.fk_episode, OLD.narrative, OLD.soap_cat, OLD.pk, OLD.substance, OLD.substance_code, OLD.generics, OLD.allergene, OLD.atc_code, OLD.fk_type, OLD.generic_specific, OLD.definite
 	);
 	return NEW;
 END;</pre>
@@ -38073,16 +41327,27 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_allergy_state (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, has_allergy, comment, last_confirmed, fk_encounter
+		pk, has_allergy, comment, last_confirmed, fk_encounter
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.has_allergy, OLD.comment, OLD.last_confirmed, OLD.fk_encounter
+		OLD.pk, OLD.has_allergy, OLD.comment, OLD.last_confirmed, OLD.fk_encounter
 	);
 	return NEW;
 END;</pre>
@@ -38139,16 +41404,27 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_auto_hint (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, query, title, hint, url, is_active, source, lang
+		pk, query, title, hint, url, is_active, source, lang, recommendation_query
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.query, OLD.title, OLD.hint, OLD.url, OLD.is_active, OLD.source, OLD.lang
+		OLD.pk, OLD.query, OLD.title, OLD.hint, OLD.url, OLD.is_active, OLD.source, OLD.lang, OLD.recommendation_query
 	);
 	return NEW;
 END;</pre>
@@ -38161,16 +41437,27 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_beh_fall_typ (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, code, kurzform, name
+		pk, code, kurzform, name
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.code, OLD.kurzform, OLD.name
+		OLD.pk, OLD.code, OLD.kurzform, OLD.name
 	);
 	return NEW;
 END;</pre>
@@ -38205,16 +41492,27 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_bill (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, invoice_id, close_date, apply_vat, fk_receiver_identity, fk_receiver_address, fk_doc, comment
+		pk, invoice_id, close_date, apply_vat, fk_receiver_identity, fk_receiver_address, fk_doc, comment
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.invoice_id, OLD.close_date, OLD.apply_vat, OLD.fk_receiver_identity, OLD.fk_receiver_address, OLD.fk_doc, OLD.comment
+		OLD.pk, OLD.invoice_id, OLD.close_date, OLD.apply_vat, OLD.fk_receiver_identity, OLD.fk_receiver_address, OLD.fk_doc, OLD.comment
 	);
 	return NEW;
 END;</pre>
@@ -38227,16 +41525,27 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_bill_item (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, fk_provider, fk_encounter, date_to_bill, description, net_amount_per_unit, currency, status, fk_billable, fk_bill, unit_count, amount_multiplier
+		pk, fk_provider, fk_encounter, date_to_bill, description, net_amount_per_unit, currency, status, fk_billable, fk_bill, unit_count, amount_multiplier
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.fk_provider, OLD.fk_encounter, OLD.date_to_bill, OLD.description, OLD.net_amount_per_unit, OLD.currency, OLD.status, OLD.fk_billable, OLD.fk_bill, OLD.unit_count, OLD.amount_multiplier
+		OLD.pk, OLD.fk_provider, OLD.fk_encounter, OLD.date_to_bill, OLD.description, OLD.net_amount_per_unit, OLD.currency, OLD.status, OLD.fk_billable, OLD.fk_bill, OLD.unit_count, OLD.amount_multiplier
 	);
 	return NEW;
 END;</pre>
@@ -38249,16 +41558,27 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_branded_drug (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, description, preparation, atc_code, is_fake, fk_data_source, external_code, external_code_type
+		pk, description, preparation, atc_code, is_fake, fk_data_source, external_code, external_code_type
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.description, OLD.preparation, OLD.atc_code, OLD.is_fake, OLD.fk_data_source, OLD.external_code, OLD.external_code_type
+		OLD.pk, OLD.description, OLD.preparation, OLD.atc_code, OLD.is_fake, OLD.fk_data_source, OLD.external_code, OLD.external_code_type
 	);
 	return NEW;
 END;</pre>
@@ -38271,16 +41591,27 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_clin_aux_note (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk_item, clin_when, fk_encounter, fk_episode, narrative, soap_cat, pk
+		pk_item, clin_when, fk_encounter, fk_episode, narrative, soap_cat, pk
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk_item, OLD.clin_when, OLD.fk_encounter, OLD.fk_episode, OLD.narrative, OLD.soap_cat, OLD.pk
+		OLD.pk_item, OLD.clin_when, OLD.fk_encounter, OLD.fk_episode, OLD.narrative, OLD.soap_cat, OLD.pk
 	);
 	return NEW;
 END;</pre>
@@ -38293,16 +41624,27 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_clin_diag (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, fk_narrative, laterality, is_chronic, is_active, is_definite, clinically_relevant
+		pk, fk_narrative, laterality, is_chronic, is_active, is_definite, clinically_relevant
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.fk_narrative, OLD.laterality, OLD.is_chronic, OLD.is_active, OLD.is_definite, OLD.clinically_relevant
+		OLD.pk, OLD.fk_narrative, OLD.laterality, OLD.is_chronic, OLD.is_active, OLD.is_definite, OLD.clinically_relevant
 	);
 	return NEW;
 END;</pre>
@@ -38315,16 +41657,27 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_clin_item_type (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, type, code
+		pk, type, code
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.type, OLD.code
+		OLD.pk, OLD.type, OLD.code
 	);
 	return NEW;
 END;</pre>
@@ -38359,16 +41712,27 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_clin_narrative (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk_item, clin_when, fk_encounter, fk_episode, narrative, soap_cat, pk
+		pk_item, clin_when, fk_encounter, fk_episode, narrative, soap_cat, pk
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk_item, OLD.clin_when, OLD.fk_encounter, OLD.fk_episode, OLD.narrative, OLD.soap_cat, OLD.pk
+		OLD.pk_item, OLD.clin_when, OLD.fk_encounter, OLD.fk_episode, OLD.narrative, OLD.soap_cat, OLD.pk
 	);
 	return NEW;
 END;</pre>
@@ -38403,16 +41767,27 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_consumable_substance (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, description, atc_code, amount, unit
+		pk, description, atc_code, amount, unit
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.description, OLD.atc_code, OLD.amount, OLD.unit
+		OLD.pk, OLD.description, OLD.atc_code, OLD.amount, OLD.unit
 	);
 	return NEW;
 END;</pre>
@@ -38447,16 +41822,27 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_data_source (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, name_long, name_short, version, description, source, lang
+		pk, name_long, name_short, version, description, source, lang
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.name_long, OLD.name_short, OLD.version, OLD.description, OLD.source, OLD.lang
+		OLD.pk, OLD.name_long, OLD.name_short, OLD.version, OLD.description, OLD.source, OLD.lang
 	);
 	return NEW;
 END;</pre>
@@ -38469,16 +41855,27 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_doc_desc (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, fk_doc, text
+		pk, fk_doc, text
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.fk_doc, OLD.text
+		OLD.pk, OLD.fk_doc, OLD.text
 	);
 	return NEW;
 END;</pre>
@@ -38491,16 +41888,27 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_doc_med (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, fk_encounter, fk_episode, fk_type, comment, clin_when, ext_ref
+		pk, fk_encounter, fk_episode, fk_type, comment, clin_when, ext_ref, fk_org_unit
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.fk_encounter, OLD.fk_episode, OLD.fk_type, OLD.comment, OLD.clin_when, OLD.ext_ref
+		OLD.pk, OLD.fk_encounter, OLD.fk_episode, OLD.fk_type, OLD.comment, OLD.clin_when, OLD.ext_ref, OLD.fk_org_unit
 	);
 	return NEW;
 END;</pre>
@@ -38513,16 +41921,27 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_encounter (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, fk_patient, fk_type, fk_location, source_time_zone, reason_for_encounter, assessment_of_encounter, started, last_affirmed
+		pk, fk_patient, fk_type, fk_location, source_time_zone, reason_for_encounter, assessment_of_encounter, started, last_affirmed
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.fk_patient, OLD.fk_type, OLD.fk_location, OLD.source_time_zone, OLD.reason_for_encounter, OLD.assessment_of_encounter, OLD.started, OLD.last_affirmed
+		OLD.pk, OLD.fk_patient, OLD.fk_type, OLD.fk_location, OLD.source_time_zone, OLD.reason_for_encounter, OLD.assessment_of_encounter, OLD.started, OLD.last_affirmed
 	);
 	return NEW;
 END;</pre>
@@ -38535,16 +41954,27 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_episode (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, fk_health_issue, description, is_open, fk_encounter, diagnostic_certainty_classification, summary
+		pk, fk_health_issue, description, is_open, fk_encounter, diagnostic_certainty_classification, summary
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.fk_health_issue, OLD.description, OLD.is_open, OLD.fk_encounter, OLD.diagnostic_certainty_classification, OLD.summary
+		OLD.pk, OLD.fk_health_issue, OLD.description, OLD.is_open, OLD.fk_encounter, OLD.diagnostic_certainty_classification, OLD.summary
 	);
 	return NEW;
 END;</pre>
@@ -38557,16 +41987,27 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_external_care (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, fk_encounter, fk_health_issue, issue, fk_org_unit, provider, comment
+		pk, fk_encounter, fk_health_issue, issue, fk_org_unit, provider, comment
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.fk_encounter, OLD.fk_health_issue, OLD.issue, OLD.fk_org_unit, OLD.provider, OLD.comment
+		OLD.pk, OLD.fk_encounter, OLD.fk_health_issue, OLD.issue, OLD.fk_org_unit, OLD.provider, OLD.comment
 	);
 	return NEW;
 END;</pre>
@@ -38579,16 +42020,27 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_family_history (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk_item, clin_when, fk_encounter, fk_episode, narrative, soap_cat, pk, fk_relation_type, age_noted, age_of_death, contributed_to_death, name_relative, dob_relative, comment
+		pk_item, clin_when, fk_encounter, fk_episode, narrative, soap_cat, pk, fk_relation_type, age_noted, age_of_death, contributed_to_death, name_relative, dob_relative, comment
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk_item, OLD.clin_when, OLD.fk_encounter, OLD.fk_episode, OLD.narrative, OLD.soap_cat, OLD.pk, OLD.fk_relation_type, OLD.age_noted, OLD.age_of_death, OLD.contributed_to_death, OLD.name_relative, OLD.dob_relative, OLD.comment
+		OLD.pk_item, OLD.clin_when, OLD.fk_encounter, OLD.fk_episode, OLD.narrative, OLD.soap_cat, OLD.pk, OLD.fk_relation_type, OLD.age_noted, OLD.age_of_death, OLD.contributed_to_death, OLD.name_relative, OLD.dob_relative, OLD.comment
 	);
 	return NEW;
 END;</pre>
@@ -38601,16 +42053,27 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_fhx_relation_type (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, description, is_genetic
+		pk, description, is_genetic
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.description, OLD.is_genetic
+		OLD.pk, OLD.description, OLD.is_genetic
 	);
 	return NEW;
 END;</pre>
@@ -38623,16 +42086,27 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_form_data (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, fk_instance, fk_form_field, value
+		pk, fk_instance, fk_form_field, value
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.fk_instance, OLD.fk_form_field, OLD.value
+		OLD.pk, OLD.fk_instance, OLD.fk_form_field, OLD.value
 	);
 	return NEW;
 END;</pre>
@@ -38667,16 +42141,27 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_form_instances (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk_item, clin_when, fk_encounter, fk_episode, narrative, soap_cat, pk, fk_form_def, form_name
+		pk_item, clin_when, fk_encounter, fk_episode, narrative, soap_cat, pk, fk_form_def, form_name
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk_item, OLD.clin_when, OLD.fk_encounter, OLD.fk_episode, OLD.narrative, OLD.soap_cat, OLD.pk, OLD.fk_form_def, OLD.form_name
+		OLD.pk_item, OLD.clin_when, OLD.fk_encounter, OLD.fk_episode, OLD.narrative, OLD.soap_cat, OLD.pk, OLD.fk_form_def, OLD.form_name
 	);
 	return NEW;
 END;</pre>
@@ -38689,16 +42174,27 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_gender_label (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, tag, label, sort_weight, comment
+		pk, tag, label, sort_weight, comment
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.tag, OLD.label, OLD.sort_weight, OLD.comment
+		OLD.pk, OLD.tag, OLD.label, OLD.sort_weight, OLD.comment
 	);
 	return NEW;
 END;</pre>
@@ -38711,16 +42207,27 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_health_issue (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, description, laterality, age_noted, is_active, clinically_relevant, is_confidential, is_cause_of_death, fk_encounter, grouping, diagnostic_certainty_classification, summary
+		pk, description, laterality, age_noted, is_active, clinically_relevant, is_confidential, is_cause_of_death, fk_encounter, grouping, diagnostic_certainty_classification, summary
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.description, OLD.laterality, OLD.age_noted, OLD.is_active, OLD.clinically_relevant, OLD.is_confidential, OLD.is_cause_of_death, OLD.fk_encounter, OLD.grouping, OLD.diagnostic_certainty_classification, OLD.summary
+		OLD.pk, OLD.description, OLD.laterality, OLD.age_noted, OLD.is_active, OLD.clinically_relevant, OLD.is_confidential, OLD.is_cause_of_death, OLD.fk_encounter, OLD.grouping, OLD.diagnostic_certainty_classification, OLD.summary
 	);
 	return NEW;
 END;</pre>
@@ -38733,16 +42240,27 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_hospital_stay (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk_item, clin_when, fk_encounter, fk_episode, narrative, soap_cat, pk, discharge, fk_org_unit
+		pk_item, clin_when, fk_encounter, fk_episode, narrative, soap_cat, pk, discharge, fk_org_unit
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk_item, OLD.clin_when, OLD.fk_encounter, OLD.fk_episode, OLD.narrative, OLD.soap_cat, OLD.pk, OLD.discharge, OLD.fk_org_unit
+		OLD.pk_item, OLD.clin_when, OLD.fk_encounter, OLD.fk_episode, OLD.narrative, OLD.soap_cat, OLD.pk, OLD.discharge, OLD.fk_org_unit
 	);
 	return NEW;
 END;</pre>
@@ -38777,16 +42295,27 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_identity (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, deleted, pupic, gender, dob, fk_marital_status, cob, deceased, title, tob, emergency_contact, fk_emergency_contact, comment, fk_primary_provider, dob_is_estimated
+		pk, deleted, gender, dob, fk_marital_status, cob, deceased, title, tob, emergency_contact, fk_emergency_contact, comment, fk_primary_provider, dob_is_estimated
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.deleted, OLD.pupic, OLD.gender, OLD.dob, OLD.fk_marital_status, OLD.cob, OLD.deceased, OLD.title, OLD.tob, OLD.emergency_contact, OLD.fk_emergency_contact, OLD.comment, OLD.fk_primary_provider, OLD.dob_is_estimated
+		OLD.pk, OLD.deleted, OLD.gender, OLD.dob, OLD.fk_marital_status, OLD.cob, OLD.deceased, OLD.title, OLD.tob, OLD.emergency_contact, OLD.fk_emergency_contact, OLD.comment, OLD.fk_primary_provider, OLD.dob_is_estimated
 	);
 	return NEW;
 END;</pre>
@@ -38799,16 +42328,27 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_identity_tag (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, fk_identity, fk_tag, comment
+		pk, fk_identity, fk_tag, comment
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.fk_identity, OLD.fk_tag, OLD.comment
+		OLD.pk, OLD.fk_identity, OLD.fk_tag, OLD.comment
 	);
 	return NEW;
 END;</pre>
@@ -38821,16 +42361,27 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_inbox_item_category (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, description, is_user
+		pk, description, is_user
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.description, OLD.is_user
+		OLD.pk, OLD.description, OLD.is_user
 	);
 	return NEW;
 END;</pre>
@@ -38843,16 +42394,27 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_inbox_item_type (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, fk_inbox_item_category, description, is_user
+		pk, fk_inbox_item_category, description, is_user
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.fk_inbox_item_category, OLD.description, OLD.is_user
+		OLD.pk, OLD.fk_inbox_item_category, OLD.description, OLD.is_user
 	);
 	return NEW;
 END;</pre>
@@ -38865,16 +42427,27 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_incoming_data_unmatchable (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, fk_patient_candidates, request_id, firstnames, lastnames, dob, postcode, other_info, type, data, gender, requestor, external_data_id, fk_identity_disambiguated
+		pk, fk_patient_candidates, request_id, firstnames, lastnames, dob, postcode, other_info, type, data, gender, requestor, external_data_id, fk_identity_disambiguated
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.fk_patient_candidates, OLD.request_id, OLD.firstnames, OLD.lastnames, OLD.dob, OLD.postcode, OLD.other_info, OLD.type, OLD.data, OLD.gender, OLD.requestor, OLD.external_data_id, OLD.fk_identity_disambiguated
+		OLD.pk, OLD.fk_patient_candidates, OLD.request_id, OLD.firstnames, OLD.lastnames, OLD.dob, OLD.postcode, OLD.other_info, OLD.type, OLD.data, OLD.gender, OLD.requestor, OLD.external_data_id, OLD.fk_identity_disambiguated
 	);
 	return NEW;
 END;</pre>
@@ -38887,16 +42460,27 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_incoming_data_unmatched (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, fk_patient_candidates, request_id, firstnames, lastnames, dob, postcode, other_info, type, data, gender, requestor, external_data_id, fk_identity_disambiguated, comment, fk_provider_disambiguated
+		pk, fk_patient_candidates, request_id, firstnames, lastnames, dob, postcode, other_info, type, data, gender, requestor, external_data_id, fk_identity_disambiguated, comment, fk_provider_disambiguated
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.fk_patient_candidates, OLD.request_id, OLD.firstnames, OLD.lastnames, OLD.dob, OLD.postcode, OLD.other_info, OLD.type, OLD.data, OLD.gender, OLD.requestor, OLD.external_data_id, OLD.fk_identity_disambiguated, OLD.comment, OLD.fk_provider_disambiguated
+		OLD.pk, OLD.fk_patient_candidates, OLD.request_id, OLD.firstnames, OLD.lastnames, OLD.dob, OLD.postcode, OLD.other_info, OLD.type, OLD.data, OLD.gender, OLD.requestor, OLD.external_data_id, OLD.fk_identity_disambiguated, OLD.comment, OLD.fk_provider_disambiguated
 	);
 	return NEW;
 END;</pre>
@@ -38909,16 +42493,27 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_lab_request (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk_item, clin_when, fk_encounter, fk_episode, narrative, soap_cat, pk, fk_test_org, request_id, fk_requestor, lab_request_id, lab_rxd_when, results_reported_when, request_status, is_pending, diagnostic_service_section, ordered_service, note_test_org
+		pk_item, clin_when, fk_encounter, fk_episode, narrative, soap_cat, pk, fk_test_org, request_id, fk_requestor, lab_request_id, lab_rxd_when, results_reported_when, request_status, is_pending, diagnostic_service_section, ordered_service, note_test_org
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk_item, OLD.clin_when, OLD.fk_encounter, OLD.fk_episode, OLD.narrative, OLD.soap_cat, OLD.pk, OLD.fk_test_org, OLD.request_id, OLD.fk_requestor, OLD.lab_request_id, OLD.lab_rxd_when, OLD.results_reported_when, OLD.request_status, OLD.is_pending, OLD.diagnostic_service_section, OLD.ordered_service, OLD.note_test_org
+		OLD.pk_item, OLD.clin_when, OLD.fk_encounter, OLD.fk_episode, OLD.narrative, OLD.soap_cat, OLD.pk, OLD.fk_test_org, OLD.request_id, OLD.fk_requestor, OLD.lab_request_id, OLD.lab_rxd_when, OLD.results_reported_when, OLD.request_status, OLD.is_pending, OLD.diagnostic_service_section, OLD.ordered_service, OLD.note_test_org
 	);
 	return NEW;
 END;</pre>
@@ -38931,16 +42526,27 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_lab_test_gnr (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, id, id_test
+		id, id_test
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.id, OLD.id_test
+		OLD.id, OLD.id_test
 	);
 	return NEW;
 END;</pre>
@@ -38953,16 +42559,27 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_lnk_code2aoe (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk_lnk_code2item, fk_generic_code, fk_item, code_modifier, pk
+		pk_lnk_code2item, fk_generic_code, fk_item, code_modifier, pk
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk_lnk_code2item, OLD.fk_generic_code, OLD.fk_item, OLD.code_modifier, OLD.pk
+		OLD.pk_lnk_code2item, OLD.fk_generic_code, OLD.fk_item, OLD.code_modifier, OLD.pk
 	);
 	return NEW;
 END;</pre>
@@ -38975,16 +42592,27 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_lnk_code2episode (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk_lnk_code2item, fk_generic_code, fk_item, code_modifier, pk
+		pk_lnk_code2item, fk_generic_code, fk_item, code_modifier, pk
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk_lnk_code2item, OLD.fk_generic_code, OLD.fk_item, OLD.code_modifier, OLD.pk
+		OLD.pk_lnk_code2item, OLD.fk_generic_code, OLD.fk_item, OLD.code_modifier, OLD.pk
 	);
 	return NEW;
 END;</pre>
@@ -38997,16 +42625,27 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_lnk_code2fhx (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk_lnk_code2item, fk_generic_code, fk_item, code_modifier, pk
+		pk_lnk_code2item, fk_generic_code, fk_item, code_modifier, pk
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk_lnk_code2item, OLD.fk_generic_code, OLD.fk_item, OLD.code_modifier, OLD.pk
+		OLD.pk_lnk_code2item, OLD.fk_generic_code, OLD.fk_item, OLD.code_modifier, OLD.pk
 	);
 	return NEW;
 END;</pre>
@@ -39019,16 +42658,27 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_lnk_code2h_issue (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk_lnk_code2item, fk_generic_code, fk_item, code_modifier, pk
+		pk_lnk_code2item, fk_generic_code, fk_item, code_modifier, pk
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk_lnk_code2item, OLD.fk_generic_code, OLD.fk_item, OLD.code_modifier, OLD.pk
+		OLD.pk_lnk_code2item, OLD.fk_generic_code, OLD.fk_item, OLD.code_modifier, OLD.pk
 	);
 	return NEW;
 END;</pre>
@@ -39041,16 +42691,27 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_lnk_code2narrative (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk_lnk_code2item, fk_generic_code, fk_item, code_modifier, pk
+		pk_lnk_code2item, fk_generic_code, fk_item, code_modifier, pk
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk_lnk_code2item, OLD.fk_generic_code, OLD.fk_item, OLD.code_modifier, OLD.pk
+		OLD.pk_lnk_code2item, OLD.fk_generic_code, OLD.fk_item, OLD.code_modifier, OLD.pk
 	);
 	return NEW;
 END;</pre>
@@ -39063,16 +42724,27 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_lnk_code2procedure (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk_lnk_code2item, fk_generic_code, fk_item, code_modifier, pk
+		pk_lnk_code2item, fk_generic_code, fk_item, code_modifier, pk
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk_lnk_code2item, OLD.fk_generic_code, OLD.fk_item, OLD.code_modifier, OLD.pk
+		OLD.pk_lnk_code2item, OLD.fk_generic_code, OLD.fk_item, OLD.code_modifier, OLD.pk
 	);
 	return NEW;
 END;</pre>
@@ -39085,16 +42757,27 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_lnk_code2rfe (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk_lnk_code2item, fk_generic_code, fk_item, code_modifier, pk
+		pk_lnk_code2item, fk_generic_code, fk_item, code_modifier, pk
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk_lnk_code2item, OLD.fk_generic_code, OLD.fk_item, OLD.code_modifier, OLD.pk
+		OLD.pk_lnk_code2item, OLD.fk_generic_code, OLD.fk_item, OLD.code_modifier, OLD.pk
 	);
 	return NEW;
 END;</pre>
@@ -39107,16 +42790,27 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_lnk_code2tst_pnl (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk_lnk_code2item, fk_generic_code, fk_item, code_modifier, pk
+		pk_lnk_code2item, fk_generic_code, fk_item, code_modifier, pk
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk_lnk_code2item, OLD.fk_generic_code, OLD.fk_item, OLD.code_modifier, OLD.pk
+		OLD.pk_lnk_code2item, OLD.fk_generic_code, OLD.fk_item, OLD.code_modifier, OLD.pk
 	);
 	return NEW;
 END;</pre>
@@ -39129,16 +42823,27 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_lnk_constraint2vacc_course (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, fk_vaccination_course, fk_constraint
+		pk, fk_vaccination_course, fk_constraint
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.fk_vaccination_course, OLD.fk_constraint
+		OLD.pk, OLD.fk_vaccination_course, OLD.fk_constraint
 	);
 	return NEW;
 END;</pre>
@@ -39151,16 +42856,27 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_lnk_identity2ext_id (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, id, id_identity, external_id, fk_origin, comment
+		id, id_identity, external_id, fk_origin, comment
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.id, OLD.id_identity, OLD.external_id, OLD.fk_origin, OLD.comment
+		OLD.id, OLD.id_identity, OLD.external_id, OLD.fk_origin, OLD.comment
 	);
 	return NEW;
 END;</pre>
@@ -39195,16 +42911,27 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_lnk_job2person (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, fk_identity, fk_occupation, activities
+		pk, fk_identity, fk_occupation, activities
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.fk_identity, OLD.fk_occupation, OLD.activities
+		OLD.pk, OLD.fk_identity, OLD.fk_occupation, OLD.activities
 	);
 	return NEW;
 END;</pre>
@@ -39217,16 +42944,27 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_lnk_org_unit2comm (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, fk_org_unit, url, fk_type, is_confidential, comment
+		pk, fk_org_unit, url, fk_type, is_confidential, comment
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.fk_org_unit, OLD.url, OLD.fk_type, OLD.is_confidential, OLD.comment
+		OLD.pk, OLD.fk_org_unit, OLD.url, OLD.fk_type, OLD.is_confidential, OLD.comment
 	);
 	return NEW;
 END;</pre>
@@ -39239,16 +42977,27 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_lnk_org_unit2ext_id (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, fk_org_unit, external_id, fk_type, comment
+		pk, fk_org_unit, external_id, fk_type, comment
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.fk_org_unit, OLD.external_id, OLD.fk_type, OLD.comment
+		OLD.pk, OLD.fk_org_unit, OLD.external_id, OLD.fk_type, OLD.comment
 	);
 	return NEW;
 END;</pre>
@@ -39261,16 +43010,27 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_lnk_pat2vaccination_course (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, fk_patient, fk_course
+		pk, fk_patient, fk_course
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.fk_patient, OLD.fk_course
+		OLD.pk, OLD.fk_patient, OLD.fk_course
 	);
 	return NEW;
 END;</pre>
@@ -39283,16 +43043,27 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_lnk_person2relative (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, id, id_identity, id_relative, id_relation_type, started, ended
+		id, id_identity, id_relative, id_relation_type, started, ended
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.id, OLD.id_identity, OLD.id_relative, OLD.id_relation_type, OLD.started, OLD.ended
+		OLD.id, OLD.id_identity, OLD.id_relative, OLD.id_relation_type, OLD.started, OLD.ended
 	);
 	return NEW;
 END;</pre>
@@ -39305,16 +43076,27 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_lnk_substance2brand (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, fk_brand, fk_substance
+		pk, fk_brand, fk_substance
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.fk_brand, OLD.fk_substance
+		OLD.pk, OLD.fk_brand, OLD.fk_substance
 	);
 	return NEW;
 END;</pre>
@@ -39327,16 +43109,27 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_lnk_tst2norm (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, id, id_test, id_norm
+		id, id_test, id_norm
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.id, OLD.id_test, OLD.id_norm
+		OLD.id, OLD.id_test, OLD.id_norm
 	);
 	return NEW;
 END;</pre>
@@ -39349,16 +43142,27 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_lnk_type2item (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, fk_type, fk_item
+		pk, fk_type, fk_item
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.fk_type, OLD.fk_item
+		OLD.pk, OLD.fk_type, OLD.fk_item
 	);
 	return NEW;
 END;</pre>
@@ -39371,16 +43175,27 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_lnk_vaccination_course2schedule (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, fk_course, fk_schedule
+		pk, fk_course, fk_schedule
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.fk_course, OLD.fk_schedule
+		OLD.pk, OLD.fk_course, OLD.fk_schedule
 	);
 	return NEW;
 END;</pre>
@@ -39393,16 +43208,27 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_lnk_vaccine2inds (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, id, fk_vaccine, fk_indication
+		id, fk_vaccine, fk_indication
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.id, OLD.fk_vaccine, OLD.fk_indication
+		OLD.id, OLD.fk_vaccine, OLD.fk_indication
 	);
 	return NEW;
 END;</pre>
@@ -39415,16 +43241,27 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_message_inbox (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, fk_staff, fk_inbox_item_type, comment, data, importance, fk_patient, ufk_context, due_date, expiry_date
+		pk, fk_staff, fk_inbox_item_type, comment, data, importance, fk_patient, ufk_context, due_date, expiry_date
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.fk_staff, OLD.fk_inbox_item_type, OLD.comment, OLD.data, OLD.importance, OLD.fk_patient, OLD.ufk_context, OLD.due_date, OLD.expiry_date
+		OLD.pk, OLD.fk_staff, OLD.fk_inbox_item_type, OLD.comment, OLD.data, OLD.importance, OLD.fk_patient, OLD.ufk_context, OLD.due_date, OLD.expiry_date
 	);
 	return NEW;
 END;</pre>
@@ -39437,16 +43274,27 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_occupation (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, id, name
+		id, name
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.id, OLD.name
+		OLD.id, OLD.name
 	);
 	return NEW;
 END;</pre>
@@ -39481,16 +43329,27 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_org (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, description, fk_category, fk_data_source
+		pk, description, fk_category, fk_data_source
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.description, OLD.fk_category, OLD.fk_data_source
+		OLD.pk, OLD.description, OLD.fk_category, OLD.fk_data_source
 	);
 	return NEW;
 END;</pre>
@@ -39503,16 +43362,27 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_org_unit (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, description, fk_org, fk_address, fk_category
+		pk, description, fk_org, fk_address, fk_category
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.description, OLD.fk_org, OLD.fk_address, OLD.fk_category
+		OLD.pk, OLD.description, OLD.fk_org, OLD.fk_address, OLD.fk_category
 	);
 	return NEW;
 END;</pre>
@@ -39525,16 +43395,27 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_paperwork_templates (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, fk_template_type, instance_type, name_short, name_long, external_version, gnumed_revision, engine, in_use, filename, data, edit_after_substitution
+		pk, fk_template_type, instance_type, name_short, name_long, external_version, gnumed_revision, engine, in_use, filename, data, edit_after_substitution
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.fk_template_type, OLD.instance_type, OLD.name_short, OLD.name_long, OLD.external_version, OLD.gnumed_revision, OLD.engine, OLD.in_use, OLD.filename, OLD.data, OLD.edit_after_substitution
+		OLD.pk, OLD.fk_template_type, OLD.instance_type, OLD.name_short, OLD.name_long, OLD.external_version, OLD.gnumed_revision, OLD.engine, OLD.in_use, OLD.filename, OLD.data, OLD.edit_after_substitution
 	);
 	return NEW;
 END;</pre>
@@ -39547,16 +43428,27 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_patient (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, fk_identity, edc
+		pk, fk_identity, edc
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.fk_identity, OLD.edc
+		OLD.pk, OLD.fk_identity, OLD.edc
 	);
 	return NEW;
 END;</pre>
@@ -39569,16 +43461,27 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_prax_geb_paid (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, fk_fall, paid_amount, paid_when, paid_with
+		pk, fk_fall, paid_amount, paid_when, paid_with
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.fk_fall, OLD.paid_amount, OLD.paid_when, OLD.paid_with
+		OLD.pk, OLD.fk_fall, OLD.paid_amount, OLD.paid_when, OLD.paid_with
 	);
 	return NEW;
 END;</pre>
@@ -39591,16 +43494,27 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_praxis_branch (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, fk_org_unit
+		pk, fk_org_unit
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.fk_org_unit
+		OLD.pk, OLD.fk_org_unit
 	);
 	return NEW;
 END;</pre>
@@ -39613,16 +43527,27 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_procedure (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk_item, clin_when, fk_encounter, fk_episode, narrative, soap_cat, pk, fk_hospital_stay, clin_end, is_ongoing, fk_org_unit
+		pk_item, clin_when, fk_encounter, fk_episode, narrative, soap_cat, pk, fk_hospital_stay, clin_end, is_ongoing, fk_org_unit
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk_item, OLD.clin_when, OLD.fk_encounter, OLD.fk_episode, OLD.narrative, OLD.soap_cat, OLD.pk, OLD.fk_hospital_stay, OLD.clin_end, OLD.is_ongoing, OLD.fk_org_unit
+		OLD.pk_item, OLD.clin_when, OLD.fk_encounter, OLD.fk_episode, OLD.narrative, OLD.soap_cat, OLD.pk, OLD.fk_hospital_stay, OLD.clin_end, OLD.is_ongoing, OLD.fk_org_unit
 	);
 	return NEW;
 END;</pre>
@@ -39657,16 +43582,60 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_referral (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk_item, clin_when, fk_encounter, fk_episode, narrative, soap_cat, id, fk_referee, fk_form
+		pk_item, clin_when, fk_encounter, fk_episode, narrative, soap_cat, id, fk_referee, fk_form
+	) VALUES (
+		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
+		OLD.pk_item, OLD.clin_when, OLD.fk_encounter, OLD.fk_episode, OLD.narrative, OLD.soap_cat, OLD.id, OLD.fk_referee, OLD.fk_form
+	);
+	return NEW;
+END;</pre>
+	
+		<hr>
+		<h2>Function:
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.function.ft-upd-region">ft_upd_region()</a>
+		</h2>
+<h3>Returns: trigger</h3>
+<h3>Language: PLPGSQL</h3>
+        
+        <pre>
+DECLARE
+	_is_allowed_updater boolean;
+BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
+	NEW.row_version := OLD.row_version + 1;
+	NEW.modified_when := CURRENT_TIMESTAMP;
+	NEW.modified_by := SESSION_USER;
+	INSERT INTO audit.log_region (
+		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
+		pk, code, country, name
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk_item, OLD.clin_when, OLD.fk_encounter, OLD.fk_episode, OLD.narrative, OLD.soap_cat, OLD.id, OLD.fk_referee, OLD.fk_form
+		OLD.pk, OLD.code, OLD.country, OLD.name
 	);
 	return NEW;
 END;</pre>
@@ -39679,16 +43648,27 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_relation_types (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, id, inverse, biological, biol_verified, description
+		id, inverse, biological, biol_verified, description
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.id, OLD.inverse, OLD.biological, OLD.biol_verified, OLD.description
+		OLD.id, OLD.inverse, OLD.biological, OLD.biol_verified, OLD.description
 	);
 	return NEW;
 END;</pre>
@@ -39701,16 +43681,27 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_report_query (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, label, cmd
+		pk, label, cmd
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.label, OLD.cmd
+		OLD.pk, OLD.label, OLD.cmd
 	);
 	return NEW;
 END;</pre>
@@ -39723,16 +43714,27 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_staff (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, fk_identity, db_user, short_alias, comment, is_active
+		pk, fk_identity, db_user, short_alias, comment, is_active
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.fk_identity, OLD.db_user, OLD.short_alias, OLD.comment, OLD.is_active
+		OLD.pk, OLD.fk_identity, OLD.db_user, OLD.short_alias, OLD.comment, OLD.is_active
 	);
 	return NEW;
 END;</pre>
@@ -39761,44 +43763,33 @@ END;</pre>
 	
 		<hr>
 		<h2>Function:
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.function.ft-upd-state">ft_upd_state()</a>
-		</h2>
-<h3>Returns: trigger</h3>
-<h3>Language: PLPGSQL</h3>
-        
-        <pre>
-BEGIN
-	NEW.row_version := OLD.row_version + 1;
-	NEW.modified_when := CURRENT_TIMESTAMP;
-	NEW.modified_by := SESSION_USER;
-	INSERT INTO audit.log_state (
-		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, id, code, country, name
-	) VALUES (
-		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.id, OLD.code, OLD.country, OLD.name
-	);
-	return NEW;
-END;</pre>
-	
-		<hr>
-		<h2>Function:
 			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.function.ft-upd-street">ft_upd_street()</a>
 		</h2>
 <h3>Returns: trigger</h3>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_street (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, id, id_urb, name, postcode, suburb, lat_lon
+		id, id_urb, name, postcode, suburb, lat_lon
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.id, OLD.id_urb, OLD.name, OLD.postcode, OLD.suburb, OLD.lat_lon
+		OLD.id, OLD.id_urb, OLD.name, OLD.postcode, OLD.suburb, OLD.lat_lon
 	);
 	return NEW;
 END;</pre>
@@ -39833,16 +43824,27 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_substance_intake (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk_item, clin_when, fk_encounter, fk_episode, narrative, soap_cat, pk, fk_substance, preparation, schedule, aim, duration, intake_is_approved_of, is_long_term, discontinued, discontinue_reason, fk_drug_component
+		pk_item, clin_when, fk_encounter, fk_episode, narrative, soap_cat, pk, fk_substance, preparation, schedule, aim, duration, intake_is_approved_of, is_long_term, discontinued, discontinue_reason, fk_drug_component, comment_on_start, harmful_use_type
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk_item, OLD.clin_when, OLD.fk_encounter, OLD.fk_episode, OLD.narrative, OLD.soap_cat, OLD.pk, OLD.fk_substance, OLD.preparation, OLD.schedule, OLD.aim, OLD.duration, OLD.intake_is_approved_of, OLD.is_long_term, OLD.discontinued, OLD.discontinue_reason, OLD.fk_drug_component
+		OLD.pk_item, OLD.clin_when, OLD.fk_encounter, OLD.fk_episode, OLD.narrative, OLD.soap_cat, OLD.pk, OLD.fk_substance, OLD.preparation, OLD.schedule, OLD.aim, OLD.duration, OLD.intake_is_approved_of, OLD.is_long_term, OLD.discontinued, OLD.discontinue_reason, OLD.fk_drug_component, OLD.comment_on_start, OLD.harmful_use_type
 	);
 	return NEW;
 END;</pre>
@@ -39855,16 +43857,27 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_suppressed_hint (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, fk_encounter, fk_hint, suppressed_by, suppressed_when, rationale, md5_sum
+		pk, fk_encounter, fk_hint, suppressed_by, suppressed_when, rationale, md5_sum
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.fk_encounter, OLD.fk_hint, OLD.suppressed_by, OLD.suppressed_when, OLD.rationale, OLD.md5_sum
+		OLD.pk, OLD.fk_encounter, OLD.fk_hint, OLD.suppressed_by, OLD.suppressed_when, OLD.rationale, OLD.md5_sum
 	);
 	return NEW;
 END;</pre>
@@ -39877,16 +43890,27 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_tag_image (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, description, filename, image
+		pk, description, filename, image
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.description, OLD.filename, OLD.image
+		OLD.pk, OLD.description, OLD.filename, OLD.image
 	);
 	return NEW;
 END;</pre>
@@ -39899,16 +43923,27 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_test_org (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, fk_org_unit, fk_adm_contact, fk_med_contact, comment, contact
+		pk, fk_org_unit, fk_adm_contact, fk_med_contact, comment, contact
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.fk_org_unit, OLD.fk_adm_contact, OLD.fk_med_contact, OLD.comment, OLD.contact
+		OLD.pk, OLD.fk_org_unit, OLD.fk_adm_contact, OLD.fk_med_contact, OLD.comment, OLD.contact
 	);
 	return NEW;
 END;</pre>
@@ -39921,16 +43956,27 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_test_panel (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, description, comment, fk_test_types
+		pk, description, comment, fk_test_types
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.description, OLD.comment, OLD.fk_test_types
+		OLD.pk, OLD.description, OLD.comment, OLD.fk_test_types
 	);
 	return NEW;
 END;</pre>
@@ -39943,16 +43989,27 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_test_result (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk_item, clin_when, fk_encounter, fk_episode, narrative, soap_cat, pk, fk_type, val_num, val_alpha, val_unit, val_normal_min, val_normal_max, val_normal_range, val_target_min, val_target_max, val_target_range, abnormality_indicator, norm_ref_group, note_test_org, material, material_detail, fk_intended_reviewer, fk_request, status, source_data, val_grouping
+		pk_item, clin_when, fk_encounter, fk_episode, narrative, soap_cat, pk, fk_type, val_num, val_alpha, val_unit, val_normal_min, val_normal_max, val_normal_range, val_target_min, val_target_max, val_target_range, abnormality_indicator, norm_ref_group, note_test_org, material, material_detail, fk_intended_reviewer, fk_request, status, source_data, val_grouping
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk_item, OLD.clin_when, OLD.fk_encounter, OLD.fk_episode, OLD.narrative, OLD.soap_cat, OLD.pk, OLD.fk_type, OLD.val_num, OLD.val_alpha, OLD.val_unit, OLD.val_normal_min, OLD.val_normal_max, OLD.val_normal_range, OLD.val_target_min, OLD.val_target_max, OLD.val_target_range, OLD.abnormality_indicator, OLD.norm_ref_group, OLD.note_test_org, OLD.material, OLD.material_detail, OLD.fk_intended_reviewer, OLD.fk_request, OL [...]
+		OLD.pk_item, OLD.clin_when, OLD.fk_encounter, OLD.fk_episode, OLD.narrative, OLD.soap_cat, OLD.pk, OLD.fk_type, OLD.val_num, OLD.val_alpha, OLD.val_unit, OLD.val_normal_min, OLD.val_normal_max, OLD.val_normal_range, OLD.val_target_min, OLD.val_target_max, OLD.val_target_range, OLD.abnormality_indicator, OLD.norm_ref_group, OLD.note_test_org, OLD.material, OLD.material_detail, OLD.fk_intended_reviewer, OLD.fk_request, OLD.status, OLD.source_data, OLD.val_grouping
 	);
 	return NEW;
 END;</pre>
@@ -39965,16 +44022,27 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_test_type (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, fk_test_org, name, comment, reference_unit, loinc, abbrev, fk_meta_test_type
+		pk, fk_test_org, name, comment, reference_unit, loinc, abbrev, fk_meta_test_type
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.fk_test_org, OLD.name, OLD.comment, OLD.reference_unit, OLD.loinc, OLD.abbrev, OLD.fk_meta_test_type
+		OLD.pk, OLD.fk_test_org, OLD.name, OLD.comment, OLD.reference_unit, OLD.loinc, OLD.abbrev, OLD.fk_meta_test_type
 	);
 	return NEW;
 END;</pre>
@@ -39987,16 +44055,27 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_urb (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, id, id_state, postcode, lat_lon, name
+		id, fk_region, postcode, lat_lon, name
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.id, OLD.id_state, OLD.postcode, OLD.lat_lon, OLD.name
+		OLD.id, OLD.fk_region, OLD.postcode, OLD.lat_lon, OLD.name
 	);
 	return NEW;
 END;</pre>
@@ -40009,16 +44088,27 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_vacc_indication (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, id, description, atcs_single_indication, atcs_combi_indication
+		id, description, atcs_single_indication, atcs_combi_indication
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.id, OLD.description, OLD.atcs_single_indication, OLD.atcs_combi_indication
+		OLD.id, OLD.description, OLD.atcs_single_indication, OLD.atcs_combi_indication
 	);
 	return NEW;
 END;</pre>
@@ -40031,16 +44121,27 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_vacc_route (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, id, abbreviation, description
+		id, abbreviation, description
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.id, OLD.abbreviation, OLD.description
+		OLD.id, OLD.abbreviation, OLD.description
 	);
 	return NEW;
 END;</pre>
@@ -40053,243 +44154,10141 @@ END;</pre>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
+DECLARE
+	_is_allowed_updater boolean;
 BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
 	NEW.row_version := OLD.row_version + 1;
 	NEW.modified_when := CURRENT_TIMESTAMP;
 	NEW.modified_by := SESSION_USER;
 	INSERT INTO audit.log_vaccination (
 		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk_item, clin_when, fk_encounter, fk_episode, narrative, soap_cat, pk, fk_provider, fk_vaccine, site, batch_no, reaction
+		pk_item, clin_when, fk_encounter, fk_episode, narrative, soap_cat, pk, fk_provider, fk_vaccine, site, batch_no, reaction
+	) VALUES (
+		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
+		OLD.pk_item, OLD.clin_when, OLD.fk_encounter, OLD.fk_episode, OLD.narrative, OLD.soap_cat, OLD.pk, OLD.fk_provider, OLD.fk_vaccine, OLD.site, OLD.batch_no, OLD.reaction
+	);
+	return NEW;
+END;</pre>
+	
+		<hr>
+		<h2>Function:
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.function.ft-upd-vaccination-course">ft_upd_vaccination_course()</a>
+		</h2>
+<h3>Returns: trigger</h3>
+<h3>Language: PLPGSQL</h3>
+        
+        <pre>
+DECLARE
+	_is_allowed_updater boolean;
+BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
+	NEW.row_version := OLD.row_version + 1;
+	NEW.modified_when := CURRENT_TIMESTAMP;
+	NEW.modified_by := SESSION_USER;
+	INSERT INTO audit.log_vaccination_course (
+		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
+		pk, fk_recommended_by, fk_indication, is_active, comment
+	) VALUES (
+		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
+		OLD.pk, OLD.fk_recommended_by, OLD.fk_indication, OLD.is_active, OLD.comment
+	);
+	return NEW;
+END;</pre>
+	
+		<hr>
+		<h2>Function:
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.function.ft-upd-vaccination-course-constraint">ft_upd_vaccination_course_constraint()</a>
+		</h2>
+<h3>Returns: trigger</h3>
+<h3>Language: PLPGSQL</h3>
+        
+        <pre>
+DECLARE
+	_is_allowed_updater boolean;
+BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
+	NEW.row_version := OLD.row_version + 1;
+	NEW.modified_when := CURRENT_TIMESTAMP;
+	NEW.modified_by := SESSION_USER;
+	INSERT INTO audit.log_vaccination_course_constraint (
+		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
+		pk, description
+	) VALUES (
+		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
+		OLD.pk, OLD.description
+	);
+	return NEW;
+END;</pre>
+	
+		<hr>
+		<h2>Function:
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.function.ft-upd-vaccination-definition">ft_upd_vaccination_definition()</a>
+		</h2>
+<h3>Returns: trigger</h3>
+<h3>Language: PLPGSQL</h3>
+        
+        <pre>
+DECLARE
+	_is_allowed_updater boolean;
+BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
+	NEW.row_version := OLD.row_version + 1;
+	NEW.modified_when := CURRENT_TIMESTAMP;
+	NEW.modified_by := SESSION_USER;
+	INSERT INTO audit.log_vaccination_definition (
+		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
+		id, fk_course, is_booster, seq_no, min_age_due, max_age_due, min_interval, comment
+	) VALUES (
+		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
+		OLD.id, OLD.fk_course, OLD.is_booster, OLD.seq_no, OLD.min_age_due, OLD.max_age_due, OLD.min_interval, OLD.comment
+	);
+	return NEW;
+END;</pre>
+	
+		<hr>
+		<h2>Function:
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.function.ft-upd-vaccination-schedule">ft_upd_vaccination_schedule()</a>
+		</h2>
+<h3>Returns: trigger</h3>
+<h3>Language: PLPGSQL</h3>
+        
+        <pre>
+DECLARE
+	_is_allowed_updater boolean;
+BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
+	NEW.row_version := OLD.row_version + 1;
+	NEW.modified_when := CURRENT_TIMESTAMP;
+	NEW.modified_by := SESSION_USER;
+	INSERT INTO audit.log_vaccination_schedule (
+		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
+		pk, name, comment
+	) VALUES (
+		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
+		OLD.pk, OLD.name, OLD.comment
+	);
+	return NEW;
+END;</pre>
+	
+		<hr>
+		<h2>Function:
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.function.ft-upd-vaccine">ft_upd_vaccine()</a>
+		</h2>
+<h3>Returns: trigger</h3>
+<h3>Language: PLPGSQL</h3>
+        
+        <pre>
+DECLARE
+	_is_allowed_updater boolean;
+BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
+	NEW.row_version := OLD.row_version + 1;
+	NEW.modified_when := CURRENT_TIMESTAMP;
+	NEW.modified_by := SESSION_USER;
+	INSERT INTO audit.log_vaccine (
+		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
+		pk, id_route, is_live, min_age, max_age, comment, fk_brand
+	) VALUES (
+		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
+		OLD.pk, OLD.id_route, OLD.is_live, OLD.min_age, OLD.max_age, OLD.comment, OLD.fk_brand
+	);
+	return NEW;
+END;</pre>
+	
+		<hr>
+		<h2>Function:
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.function.ft-upd-vaccine-batches">ft_upd_vaccine_batches()</a>
+		</h2>
+<h3>Returns: trigger</h3>
+<h3>Language: PLPGSQL</h3>
+        
+        <pre>
+DECLARE
+	_is_allowed_updater boolean;
+BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
+	NEW.row_version := OLD.row_version + 1;
+	NEW.modified_when := CURRENT_TIMESTAMP;
+	NEW.modified_by := SESSION_USER;
+	INSERT INTO audit.log_vaccine_batches (
+		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
+		pk, fk_vaccine, batch_no
+	) VALUES (
+		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
+		OLD.pk, OLD.fk_vaccine, OLD.batch_no
+	);
+	return NEW;
+END;</pre>
+	
+		<hr>
+		<h2>Function:
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.function.ft-upd-waiting-list">ft_upd_waiting_list()</a>
+		</h2>
+<h3>Returns: trigger</h3>
+<h3>Language: PLPGSQL</h3>
+        
+        <pre>
+DECLARE
+	_is_allowed_updater boolean;
+BEGIN
+	-- is the session user allowed to update data ?
+	SELECT gm.account_is_dbowner_or_staff(SESSION_USER) INTO STRICT _is_allowed_updater;
+	IF _is_allowed_updater IS FALSE THEN
+		RAISE EXCEPTION
+			'UPDATE: gm.account_is_dbowner_or_staff(NAME): <%> is neither database owner, nor <postgres>, nor on staff', SESSION_USER
+			USING ERRCODE = 'integrity_constraint_violation'
+		;
+		return NEW;
+	END IF;
+	NEW.row_version := OLD.row_version + 1;
+	NEW.modified_when := CURRENT_TIMESTAMP;
+	NEW.modified_by := SESSION_USER;
+	INSERT INTO audit.log_waiting_list (
+		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
+		pk, fk_patient, registered, urgency, list_position, comment, area
+	) VALUES (
+		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
+		OLD.pk, OLD.fk_patient, OLD.registered, OLD.urgency, OLD.list_position, OLD.comment, OLD.area
+	);
+	return NEW;
+END;</pre>
+	
+		<hr>
+		<h2>Function:
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.function.ft-upd-xlnk-identity">ft_upd_xlnk_identity()</a>
+		</h2>
+<h3>Returns: trigger</h3>
+<h3>Language: PLPGSQL</h3>
+        
+        <pre>
+BEGIN
+	NEW.row_version := OLD.row_version + 1;
+	NEW.modified_when := CURRENT_TIMESTAMP;
+	NEW.modified_by := SESSION_USER;
+	INSERT INTO audit.log_xlnk_identity (
+		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
+		pk_audit, row_version, modified_when, modified_by, pk, xfk_identity, pupic, data
 	) VALUES (
 		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk_item, OLD.clin_when, OLD.fk_encounter, OLD.fk_episode, OLD.narrative, OLD.soap_cat, OLD.pk, OLD.fk_provider, OLD.fk_vaccine, OLD.site, OLD.batch_no, OLD.reaction
+		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.xfk_identity, OLD.pupic, OLD.data
 	);
 	return NEW;
 END;</pre>
 	
-		<hr>
-		<h2>Function:
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.function.ft-upd-vaccination-course">ft_upd_vaccination_course()</a>
-		</h2>
-<h3>Returns: trigger</h3>
-<h3>Language: PLPGSQL</h3>
-        
-        <pre>
-BEGIN
-	NEW.row_version := OLD.row_version + 1;
-	NEW.modified_when := CURRENT_TIMESTAMP;
-	NEW.modified_by := SESSION_USER;
-	INSERT INTO audit.log_vaccination_course (
-		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, fk_recommended_by, fk_indication, is_active, comment
-	) VALUES (
-		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.fk_recommended_by, OLD.fk_indication, OLD.is_active, OLD.comment
-	);
-	return NEW;
-END;</pre>
+		<hr>
+		<h2>Function:
+			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.function.register-table-for-auditing-name-name">register_table_for_auditing(name, name)</a>
+		</h2>
+<h3>Returns: boolean</h3>
+<h3>Language: PLPGSQL</h3>
+        <p>sanity-checking convenience function for registering a table for auditing</p>
+        <pre>
+DECLARE
+	_schema alias for $1;
+	_table alias for $2;
+BEGIN
+	-- does table exist ?
+	perform 1 from pg_class where
+		relname = _table
+			and
+		relnamespace = (select oid from pg_namespace where nspname = _schema)
+	;
+	if not found then
+		raise exception 'audit.register_table_for_auditing(): table [%.%] does not exist', _schema, _table;
+		return false;
+	end if;
+	-- already queued for auditing ?
+	perform 1 from audit.audited_tables where
+		table_name = _table
+			and
+		schema = _schema;
+	if found then
+		return true;
+	end if;
+	-- add definition
+	insert into audit.audited_tables (
+		schema, table_name
+	) values (
+		_schema, _table
+	);
+	return true;
+END;</pre>
+	
+
+<!-- billbill -->
+
+		
+		<hr>
+		<h1>Schema bill</h1>
+		
+			<p>Holds everything related to billing.</p>
+		
+
+		
+		
+        <hr>
+		<h2>Table:
+			
+			<a href="gnumed-entire_schema.html#bill.schema">bill</a>.<a name="bill.table.bill">bill</a>
+		</h2>
+        
+         <p>actual bills</p>
+        
+
+
+        <table width="100%" cellspacing="0" cellpadding="3">
+                <caption>bill.bill Structure</caption>
+                <tr>
+                <th>F-Key</th>
+                <th>Name</th>
+                <th>Type</th>
+                <th>Description</th>
+                </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_audit</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				NOT NULL
+				DEFAULT nextval('audit.audit_fields_pk_audit_seq'::regclass)
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>row_version</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				NOT NULL
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>modified_when</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				NOT NULL
+				DEFAULT now()
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
+                
+                </td>
+            	<td>modified_by</td>
+            	<td>name</td>
+                <td><i>
+				
+					
+
+					
+				
+
+				NOT NULL
+				DEFAULT "current_user"()
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                  
+                
+                </td>
+            	<td>pk</td>
+            	<td>serial</td>
+                <td><i>
+				
+					PRIMARY KEY
+					
+
+					
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                  
+                
+                </td>
+            	<td>invoice_id</td>
+            	<td>text</td>
+                <td><i>
+				
+					
+
+					
+                       UNIQUE
+                    
+				
+
+				
+				
+				</i>
+				<br><br>the ID of the bill
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>close_date</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				<br><br>cannot add further bill_items after this date if not NULL
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>apply_vat</td>
+            	<td>boolean</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				<br><br>whether or not to apply VAT on the invoice
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.identity">dem.identity.pk</a>
+                  
+                
+                </td>
+            	<td>fk_receiver_identity</td>
+            	<td>integer</td>
+                <td><i>
+				
+					
+
+					
+				
+
+				
+				
+				</i>
+				<br><br>link to the receiver as a GNUmed identity, if known
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.lnk-person-org-address">dem.lnk_person_org_address.id</a>
+                  
+                
+                </td>
+            	<td>fk_receiver_address</td>
+            	<td>integer</td>
+                <td><i>
+				
+					
+
+					
+				
+
+				
+				
+				</i>
+				<br><br>links the address of the receiver of the invoice
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                  
+                  <a href="gnumed-entire_schema.html#blobs.table.doc-med">blobs.doc_med.pk</a>
+                  
+                
+                </td>
+            	<td>fk_doc</td>
+            	<td>integer</td>
+                <td><i>
+				
+					
+
+					
+				
+
+				
+				
+				</i>
+				<br><br>links to the document which contains the invoice PDF
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>comment</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				<br><br>arbitrary comments on bills
+				</td>
+			 </tr>
+            
+        </table>
+
+        <!-- Inherits -->
+		
+        <p>Table bill.bill Inherits
+        
+            
+           <a href="gnumed-entire_schema.html#audit.table.audit-fields">audit_fields</a>, 
+        
+        </p>
+		
+
+		
+		
+		
+
+        <!-- Constraint List -->
+		
+        <p> </p>
+		<table width="100%" cellspacing="0" cellpadding="3">
+            <caption>bill.bill Constraints</caption>
+            <tr>
+            	<th>Name</th>
+            	<th>Constraint</th>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>bill_bill_sane_apply_vat</td>
+                <td>CHECK (((apply_vat IS NOT NULL) OR ((apply_vat IS NULL) AND (fk_doc IS NULL))))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>bill_bill_sane_comment</td>
+                <td>CHECK ((gm.is_null_or_non_empty_string(comment) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>bill_bill_sane_invoice_id</td>
+                <td>CHECK ((gm.is_null_or_blank_string(invoice_id) IS FALSE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>bill_bill_sane_recv_adr</td>
+                <td>CHECK (((fk_receiver_address IS NOT NULL) OR (close_date IS NULL)))</td>
+            </tr>
+			
+		</table>
+		
+
+        <!-- Foreign Key Discovery -->
+		
+			<p>Tables referencing this one via Foreign Key Constraints:</p>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#bill.table.bill-item">bill.bill_item</a></li>
+			</ul>
+		
+		
+
+    <!-- Indexes -->
+    
+
+	<!-- View Definition -->
+	
+
+	<!-- List off permissions -->
+	
+
+	<p>
+		<a href="gnumed-entire_schema.html#index">Index</a> -
+		<a href="gnumed-entire_schema.html#bill.schema">Schema bill</a>
+    </p>
+	
+        <hr>
+		<h2>Table:
+			
+			<a href="gnumed-entire_schema.html#bill.schema">bill</a>.<a name="bill.table.bill-item">bill_item</a>
+		</h2>
+        
+         <p>items patients currently *are* billed for</p>
+        
+
+
+        <table width="100%" cellspacing="0" cellpadding="3">
+                <caption>bill.bill_item Structure</caption>
+                <tr>
+                <th>F-Key</th>
+                <th>Name</th>
+                <th>Type</th>
+                <th>Description</th>
+                </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_audit</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				NOT NULL
+				DEFAULT nextval('audit.audit_fields_pk_audit_seq'::regclass)
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>row_version</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				NOT NULL
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>modified_when</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				NOT NULL
+				DEFAULT now()
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
+                
+                </td>
+            	<td>modified_by</td>
+            	<td>name</td>
+                <td><i>
+				
+					
+
+					
+				
+
+				NOT NULL
+				DEFAULT "current_user"()
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                  
+                
+                </td>
+            	<td>pk</td>
+            	<td>serial</td>
+                <td><i>
+				
+					PRIMARY KEY
+					
+
+					
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.pk</a>
+                  
+                
+                </td>
+            	<td>fk_provider</td>
+            	<td>integer</td>
+                <td><i>
+				
+					
+
+					
+				
+
+				NOT NULL
+				
+				</i>
+				<br><br>by whom or on whose behalf did the billable activity happen
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                  
+                  <a href="gnumed-entire_schema.html#clin.table.encounter">clin.encounter.pk</a>
+                  
+                
+                </td>
+            	<td>fk_encounter</td>
+            	<td>integer</td>
+                <td><i>
+				
+					
+
+					
+				
+
+				NOT NULL
+				
+				</i>
+				<br><br>the encounter during which the billable action for this item took place
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>date_to_bill</td>
+            	<td>date</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				<br><br>The date the bill item was caused. If NULL, use .fk_encounter -> .started
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>description</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				<br><br>Can be used to further explain the bill item over and above .fk_billable.description.
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>net_amount_per_unit</td>
+            	<td>numeric</td>
+                <td><i>
+				
+
+				NOT NULL
+				
+				</i>
+				<br><br>How much to charge for one unit of this bill item.
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>currency</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				NOT NULL
+				
+				</i>
+				<br><br>Which currency to charge in. Must not be NULL if .net_amount_per_unit is not NULL.
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>status</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				DEFAULT 'new'::text
+				</i>
+				<br><br>the status of this item
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                  
+                  <a href="gnumed-entire_schema.html#ref.table.billable">ref.billable.pk</a>
+                  
+                
+                </td>
+            	<td>fk_billable</td>
+            	<td>integer</td>
+                <td><i>
+				
+					
+
+					
+				
+
+				NOT NULL
+				
+				</i>
+				<br><br>Links to the billable item this bill item stands for.
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                  
+                  <a href="gnumed-entire_schema.html#bill.table.bill">bill.bill.pk</a>
+                  
+                
+                </td>
+            	<td>fk_bill</td>
+            	<td>integer</td>
+                <td><i>
+				
+					
+
+					
+				
+
+				
+				
+				</i>
+				<br><br>Links to the bill this bill item is on if any.
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>unit_count</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				NOT NULL
+				DEFAULT 1
+				</i>
+				<br><br>The number of times this item is to be billed. 0 can be used for informative items.
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>amount_multiplier</td>
+            	<td>numeric</td>
+                <td><i>
+				
+
+				NOT NULL
+				DEFAULT 1
+				</i>
+				<br><br>A multiplier to apply to .net_amount_per_unit. Can be used for discounts, rebates, or increases. Must be > 0.
+				</td>
+			 </tr>
+            
+        </table>
+
+        <!-- Inherits -->
+		
+        <p>Table bill.bill_item Inherits
+        
+            
+           <a href="gnumed-entire_schema.html#audit.table.audit-fields">audit_fields</a>, 
+        
+        </p>
+		
+
+		
+		
+		
+
+        <!-- Constraint List -->
+		
+        <p> </p>
+		<table width="100%" cellspacing="0" cellpadding="3">
+            <caption>bill.bill_item Constraints</caption>
+            <tr>
+            	<th>Name</th>
+            	<th>Constraint</th>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>bill_bill_item_sane_count</td>
+                <td>CHECK ((unit_count > (-1)))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>bill_bill_item_sane_currency</td>
+                <td>CHECK ((gm.is_null_or_blank_string(currency) IS FALSE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>bill_bill_item_sane_desc</td>
+                <td>CHECK ((gm.is_null_or_non_empty_string(description) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>bill_bill_item_sane_multiplier</td>
+                <td>CHECK ((amount_multiplier > (0)::numeric))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>valid_stati</td>
+                <td>CHECK ((status = ANY (ARRAY['new'::text, 'transferred'::text])))</td>
+            </tr>
+			
+		</table>
+		
+
+        <!-- Foreign Key Discovery -->
+		
+
+    <!-- Indexes -->
+    
+       idx_bill_bill_item_fk_bill fk_bill
+    
+       idx_bill_bill_item_fk_billable fk_billable
+    
+
+	<!-- View Definition -->
+	
+
+	<!-- List off permissions -->
+	
+
+	<p>
+		<a href="gnumed-entire_schema.html#index">Index</a> -
+		<a href="gnumed-entire_schema.html#bill.schema">Schema bill</a>
+    </p>
+	
+        <hr>
+		<h2>Table:
+			
+			<a href="gnumed-entire_schema.html#bill.schema">bill</a>.<a name="bill.table.lnk-enc-type2billable">lnk_enc_type2billable</a>
+		</h2>
+        
+         <p>actual bills</p>
+        
+
+
+        <table width="100%" cellspacing="0" cellpadding="3">
+                <caption>bill.lnk_enc_type2billable Structure</caption>
+                <tr>
+                <th>F-Key</th>
+                <th>Name</th>
+                <th>Type</th>
+                <th>Description</th>
+                </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                  
+                
+                </td>
+            	<td>pk</td>
+            	<td>serial</td>
+                <td><i>
+				
+					PRIMARY KEY
+					
+
+					
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                  
+                  <a href="gnumed-entire_schema.html#clin.table.encounter-type">clin.encounter_type.pk</a>
+                  
+                
+                </td>
+            	<td>fk_encounter_type</td>
+            	<td>integer</td>
+                <td><i>
+				
+					
+
+					
+				
+
+				NOT NULL
+				
+				</i>
+				<br><br>Links to encounter type this billable is associated with.
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                  
+                  <a href="gnumed-entire_schema.html#ref.table.billable">ref.billable.pk</a>
+                  
+                
+                </td>
+            	<td>fk_billable</td>
+            	<td>integer</td>
+                <td><i>
+				
+					
+
+					
+				
+
+				NOT NULL
+				
+				</i>
+				<br><br>Links to the billable item the encounter type is associated with.
+				</td>
+			 </tr>
+            
+        </table>
+
+        <!-- Inherits -->
+		
+
+		
+		
+		
+
+        <!-- Constraint List -->
+		
+
+        <!-- Foreign Key Discovery -->
+		
+
+    <!-- Indexes -->
+    
+       idx_lnk_enc_type2billable_fk_billable fk_billable
+    
+       idx_lnk_enc_type2billable_fk_encounter_type fk_encounter_type
+    
+
+	<!-- View Definition -->
+	
+
+	<!-- List off permissions -->
+	
+
+	<p>
+		<a href="gnumed-entire_schema.html#index">Index</a> -
+		<a href="gnumed-entire_schema.html#bill.schema">Schema bill</a>
+    </p>
+	
+        <hr>
+		<h2>View:
+			
+			<a href="gnumed-entire_schema.html#bill.schema">bill</a>.<a name="bill.view.v-bill-items">v_bill_items</a>
+		</h2>
+        
+
+
+        <table width="100%" cellspacing="0" cellpadding="3">
+                <caption>bill.v_bill_items Structure</caption>
+                <tr>
+                <th>F-Key</th>
+                <th>Name</th>
+                <th>Type</th>
+                <th>Description</th>
+                </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_bill_item</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>billable_code</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>billable_description</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>item_detail</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>date_to_bill</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>net_amount_per_unit</td>
+            	<td>numeric</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>unit_count</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>amount_multiplier</td>
+            	<td>numeric</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>total_amount</td>
+            	<td>numeric</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>vat</td>
+            	<td>numeric</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>currency</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>raw_date_to_bill</td>
+            	<td>date</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>billable_amount</td>
+            	<td>numeric</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>vat_multiplier</td>
+            	<td>numeric</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>billable_currency</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>billable_comment</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>billable_active</td>
+            	<td>boolean</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>billable_discountable</td>
+            	<td>boolean</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>catalog_long</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>catalog_short</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>catalog_version</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>catalog_language</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_patient</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>pk_encounter_type</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_provider</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>pk_encounter_to_bill</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_bill</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>pk_billable</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_data_source</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>xmin_bill_item</td>
+            	<td>xid</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+        </table>
+
+        <!-- Inherits -->
+		
+
+		
+
+        <!-- Constraint List -->
+		
+
+        <!-- Foreign Key Discovery -->
+		
+
+    <!-- Indexes -->
+    
+
+	<!-- View Definition -->
+	
+	<pre>
+SELECT b_bi.pk AS pk_bill_item
+,
+    r_b.code AS billable_code
+,
+    r_b.term AS billable_description
+,
+    b_bi.description AS item_detail
+,
+    COALESCE
+(
+     (b_bi.date_to_bill)::timestamp with time zone
+     , c_enc.started
+) AS date_to_bill
+,
+    b_bi.net_amount_per_unit
+,
+    b_bi.unit_count
+,
+    b_bi.amount_multiplier
+,
+    
+(
+     (
+           (b_bi.unit_count)::numeric * b_bi.net_amount_per_unit
+     ) * b_bi.amount_multiplier
+) AS total_amount
+,
+    
+(
+     (
+           (
+                 (b_bi.unit_count)::numeric * b_bi.net_amount_per_unit
+           ) * b_bi.amount_multiplier
+     ) * r_b.vat_multiplier
+) AS vat
+,
+    b_bi.currency
+,
+    b_bi.date_to_bill AS raw_date_to_bill
+,
+    r_b.amount AS billable_amount
+,
+    r_b.vat_multiplier
+,
+    r_b.currency AS billable_currency
+,
+    r_b.comment AS billable_comment
+,
+    r_b.active AS billable_active
+,
+    r_b.discountable AS billable_discountable
+,
+    r_ds.name_long AS catalog_long
+,
+    r_ds.name_short AS catalog_short
+,
+    r_ds.version AS catalog_version
+,
+    r_ds.lang AS catalog_language
+,
+    c_enc.fk_patient AS pk_patient
+,
+    c_enc.fk_type AS pk_encounter_type
+,
+    b_bi.fk_provider AS pk_provider
+,
+    b_bi.fk_encounter AS pk_encounter_to_bill
+,
+    b_bi.fk_bill AS pk_bill
+,
+    r_b.pk AS pk_billable
+,
+    r_b.fk_data_source AS pk_data_source
+,
+    b_bi.xmin AS xmin_bill_item
+   
+FROM (
+     (
+           (bill.bill_item b_bi
+     
+              JOIN ref.billable r_b 
+                ON (
+                       (b_bi.fk_billable = r_b.pk)
+                 )
+           )
+     
+   LEFT JOIN ref.data_source r_ds 
+          ON (
+                 (r_b.fk_data_source = r_ds.pk)
+           )
+     )
+     
+LEFT JOIN clin.encounter c_enc 
+    ON (
+           (b_bi.fk_encounter = c_enc.pk)
+     )
+);</pre>
+	
+
+	<!-- List off permissions -->
+	
+
+	<p>
+		<a href="gnumed-entire_schema.html#index">Index</a> -
+		<a href="gnumed-entire_schema.html#bill.schema">Schema bill</a>
+    </p>
+	
+        <hr>
+		<h2>View:
+			
+			<a href="gnumed-entire_schema.html#bill.schema">bill</a>.<a name="bill.view.v-bills">v_bills</a>
+		</h2>
+        
+
+
+        <table width="100%" cellspacing="0" cellpadding="3">
+                <caption>bill.v_bills Structure</caption>
+                <tr>
+                <th>F-Key</th>
+                <th>Name</th>
+                <th>Type</th>
+                <th>Description</th>
+                </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_bill</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>invoice_id</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_receiver_identity</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>total_amount</td>
+            	<td>numeric</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>total_vat</td>
+            	<td>numeric</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>total_amount_with_vat</td>
+            	<td>numeric</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>percent_vat</td>
+            	<td>numeric</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>currency</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>close_date</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>apply_vat</td>
+            	<td>boolean</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>comment</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>pk_receiver_address</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_doc</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>pk_patient</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_bill_items</td>
+            	<td>integer[]</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>xmin_bill</td>
+            	<td>xid</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+        </table>
+
+        <!-- Inherits -->
+		
+
+		
+
+        <!-- Constraint List -->
+		
+
+        <!-- Foreign Key Discovery -->
+		
+
+    <!-- Indexes -->
+    
+
+	<!-- View Definition -->
+	
+	<pre>
+SELECT b_b.pk AS pk_bill
+,
+    b_b.invoice_id
+,
+    b_b.fk_receiver_identity AS pk_receiver_identity
+,
+    
+(
+SELECT round
+     (sum
+           (v_bill_items.total_amount)
+           , 2
+     ) AS round
+           
+  FROM bill.v_bill_items
+          
+ WHERE (v_bill_items.pk_bill = b_b.pk)
+) AS total_amount
+,
+    
+(
+SELECT round
+     (sum
+           (v_bill_items.vat)
+           , 2
+     ) AS round
+           
+  FROM bill.v_bill_items
+          
+ WHERE (v_bill_items.pk_bill = b_b.pk)
+) AS total_vat
+,
+    
+(
+SELECT round
+     (sum
+           (
+                 (v_bill_items.total_amount + v_bill_items.vat)
+           )
+           , 2
+     ) AS round
+           
+  FROM bill.v_bill_items
+          
+ WHERE (v_bill_items.pk_bill = b_b.pk)
+) AS total_amount_with_vat
+,
+    
+(
+SELECT (v_bill_items.vat_multiplier * 
+           (100)::numeric
+     )
+           
+  FROM bill.v_bill_items
+          
+ WHERE (v_bill_items.pk_bill = b_b.pk)
+         LIMIT 1
+) AS percent_vat
+,
+    
+(
+SELECT v_bill_items.currency
+           
+  FROM bill.v_bill_items
+          
+ WHERE (v_bill_items.pk_bill = b_b.pk)
+         LIMIT 1
+) AS currency
+,
+    b_b.close_date
+,
+    b_b.apply_vat
+,
+    b_b.comment
+,
+    b_b.fk_receiver_address AS pk_receiver_address
+,
+    b_b.fk_doc AS pk_doc
+,
+    
+(
+SELECT encounter.fk_patient
+           
+  FROM clin.encounter
+          
+ WHERE (encounter.pk = 
+           (
+            SELECT bill_item.fk_encounter
+                   
+              FROM bill.bill_item
+                  
+             WHERE (bill_item.fk_bill = b_b.pk)
+                 LIMIT 1
+           )
+     )
+) AS pk_patient
+,
+    
+(
+SELECT array_agg
+     (sorted_values.pk_bill_item) AS array_agg
+           
+  FROM (
+      SELECT b_vbi.pk_bill_item
+                   
+        FROM bill.v_bill_items b_vbi
+                  
+       WHERE (b_vbi.pk_bill = b_b.pk)
+                  
+    ORDER BY b_vbi.date_to_bill
+           , b_vbi.billable_code
+     ) sorted_values
+) AS pk_bill_items
+,
+    b_b.xmin AS xmin_bill
+   
+FROM bill.bill b_b;</pre>
+	
+
+	<!-- List off permissions -->
+	
+
+	<p>
+		<a href="gnumed-entire_schema.html#index">Index</a> -
+		<a href="gnumed-entire_schema.html#bill.schema">Schema bill</a>
+    </p>
+	
+
+	<!-- We've gone through the table structure, now lets take a look at user functions -->
+	
+		<hr>
+		<h2>Function:
+			<a href="gnumed-entire_schema.html#bill.schema">bill</a>.<a name="bill.function.get-bill-receiver-identity-integer">get_bill_receiver_identity(integer)</a>
+		</h2>
+<h3>Returns: integer</h3>
+<h3>Language: SQL</h3>
+        
+        <pre>
+select
+	value
+from (
+	select
+		id.pk_id,
+		id.value::integer
+	from
+		dem.v_external_ids4identity id
+			join dem.identity d_i on (id.value = d_i.pk::text)
+	where
+		id.pk_type = (select pk from dem.enum_ext_id_types where name = 'bill receiver' and issuer = 'GNUmed')
+			and
+		id.pk_identity = $1
+	union all
+	select
+		0,
+		$1
+) me
+limit 1;</pre>
+	
+		<hr>
+		<h2>Function:
+			<a href="gnumed-entire_schema.html#bill.schema">bill</a>.<a name="bill.function.trf-prevent-empty-bills">trf_prevent_empty_bills()</a>
+		</h2>
+<h3>Returns: trigger</h3>
+<h3>Language: PLPGSQL</h3>
+        <p>Prevent bills to become void of items due to deletions/updates of bill items.</p>
+        <pre>
+DECLARE
+	_item_count integer;
+	_msg text;
+BEGIN
+	if TG_OP = 'UPDATE' then
+		if OLD.fk_bill IS NULL then
+			return NULL;
+		end if;
+		if OLD.fk_bill IS NOT DISTINCT FROM NEW.fk_bill then
+			return NULL;
+		end if;
+	else
+		if OLD.fk_bill is NULL then
+			return NULL;
+		end if;
+	end if;
+	-- we now either:
+	--	DELETE with .fk_bill NOT NULL
+	-- or:
+	--	UPDATE with an .fk_bill change (including towards fk_bill = NULL)
+	-- let us check whether the (previous) bill still exists
+	-- at all or whether we are deleting the bill (and thereby
+	-- setting our .fk_bill to NULL)
+	-- only works at or below REPEATABLE READ after deletion of bill
+	perform 1 from bill.bill where pk = OLD.fk_bill;
+	if FOUND is FALSE then
+		return NULL;
+	end if;
+	select count(1) into _item_count
+	from bill.bill_item
+	where
+		fk_bill = OLD.fk_bill
+			and
+		pk != OLD.pk;
+	if _item_count > 0 then
+		return NULL;
+	end if;
+	_msg := '[bill.trf_prevent_empty_bills]: cannot remove (by '
+			|| '<' || TG_OP || '>'
+			||') the only item (bill.bill_item.pk='
+			|| coalesce(OLD.pk::text, '<NULL>'::text)
+			|| ') from bill (bill.bill_item.fk_bill=bill.bill.pk='
+			|| coalesce(OLD.fk_bill::text, '<NULL>'::text)
+			|| ') ';
+	raise exception unique_violation using message = _msg;
+	return NULL;
+END;</pre>
+	
+		<hr>
+		<h2>Function:
+			<a href="gnumed-entire_schema.html#bill.schema">bill</a>.<a name="bill.function.trf-prevent-mislinked-bills">trf_prevent_mislinked_bills()</a>
+		</h2>
+<h3>Returns: trigger</h3>
+<h3>Language: PLPGSQL</h3>
+        <p>Prevent bills to link to invoices of another patient.</p>
+        <pre>
+DECLARE
+	_doc_patient integer;
+	_bill_patient integer;
+	_msg text;
+BEGIN
+	if NEW.fk_doc IS NULL then
+		return NEW;
+	end if;
+	if TG_OP = 'UPDATE' then
+		if OLD.fk_doc IS NOT DISTINCT FROM NEW.fk_doc then
+			return NEW;
+		end if;
+	end if;
+	-- we now either:
+	--	INSERT with .fk_doc NOT NULL
+	-- or:
+	--	UPDATE with an .fk_bill change to a NON-NULL value
+	select pk_patient into _doc_patient
+	from blobs.v_doc_med
+	where
+		pk_doc = NEW.fk_doc;
+	select pk_patient into _bill_patient
+	from bill.v_bills
+	where
+		pk_bill = NEW.pk;
+	if _doc_patient = _bill_patient then
+		return NEW;
+	end if;
+	_msg := '[bill.trf_prevent_mislinked_bills]: patient mismatch between '
+		|| 'bill (pk=' || NEW.pk || ', patient=' || _bill_patient || ') '
+		|| 'and invoice (pk=' || NEW.fk_doc || ', patient=' || _doc_patient || ')';
+	raise exception integrity_constraint_violation using message = _msg;
+	return NULL;
+END;</pre>
+	
+
+<!-- blobsblobs -->
+
+		
+		<hr>
+		<h1>Schema blobs</h1>
+		
+
+		
+		
+        <hr>
+		<h2>Table:
+			
+			<a href="gnumed-entire_schema.html#blobs.schema">blobs</a>.<a name="blobs.table.doc-desc">doc_desc</a>
+		</h2>
+        
+         <p>A textual description of the content such
+	 as a result summary. Several of these may
+	 belong to one document object.</p>
+        
+
+
+        <table width="100%" cellspacing="0" cellpadding="3">
+                <caption>blobs.doc_desc Structure</caption>
+                <tr>
+                <th>F-Key</th>
+                <th>Name</th>
+                <th>Type</th>
+                <th>Description</th>
+                </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_audit</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				NOT NULL
+				DEFAULT nextval('audit.audit_fields_pk_audit_seq'::regclass)
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>row_version</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				NOT NULL
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>modified_when</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				NOT NULL
+				DEFAULT now()
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
+                
+                </td>
+            	<td>modified_by</td>
+            	<td>name</td>
+                <td><i>
+				
+					
+
+					
+				
+
+				NOT NULL
+				DEFAULT "current_user"()
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                  
+                
+                </td>
+            	<td>pk</td>
+            	<td>serial</td>
+                <td><i>
+				
+					PRIMARY KEY
+					
+
+					
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                  
+                  <a href="gnumed-entire_schema.html#blobs.table.doc-med">blobs.doc_med.pk</a>
+                  
+                
+                  
+                
+                </td>
+            	<td>fk_doc</td>
+            	<td>integer</td>
+                <td><i>
+				
+					
+
+					
+				
+					
+
+					
+                       UNIQUE#1
+                    
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                  
+                
+                </td>
+            	<td>text</td>
+            	<td>text</td>
+                <td><i>
+				
+					
+
+					
+                       UNIQUE#1
+                    
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+        </table>
+
+        <!-- Inherits -->
+		
+        <p>Table blobs.doc_desc Inherits
+        
+            
+           <a href="gnumed-entire_schema.html#audit.table.audit-fields">audit_fields</a>, 
+        
+        </p>
+		
+
+		
+		
+		
+
+        <!-- Constraint List -->
+		
+        <p> </p>
+		<table width="100%" cellspacing="0" cellpadding="3">
+            <caption>blobs.doc_desc Constraints</caption>
+            <tr>
+            	<th>Name</th>
+            	<th>Constraint</th>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+		</table>
+		
+
+        <!-- Foreign Key Discovery -->
+		
+
+    <!-- Indexes -->
+    
+       idx_doc_desc_fk_doc fk_doc
+    
+
+	<!-- View Definition -->
+	
+
+	<!-- List off permissions -->
+	
+
+	<p>
+		<a href="gnumed-entire_schema.html#index">Index</a> -
+		<a href="gnumed-entire_schema.html#blobs.schema">Schema blobs</a>
+    </p>
+	
+        <hr>
+		<h2>Table:
+			
+			<a href="gnumed-entire_schema.html#blobs.schema">blobs</a>.<a name="blobs.table.doc-med">doc_med</a>
+		</h2>
+        
+         <p>a medical document object possibly containing several
+	 data objects such as several pages of a paper document</p>
+        
+
+
+        <table width="100%" cellspacing="0" cellpadding="3">
+                <caption>blobs.doc_med Structure</caption>
+                <tr>
+                <th>F-Key</th>
+                <th>Name</th>
+                <th>Type</th>
+                <th>Description</th>
+                </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_audit</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				NOT NULL
+				DEFAULT nextval('audit.audit_fields_pk_audit_seq'::regclass)
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>row_version</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				NOT NULL
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>modified_when</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				NOT NULL
+				DEFAULT now()
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
+                
+                </td>
+            	<td>modified_by</td>
+            	<td>name</td>
+                <td><i>
+				
+					
+
+					
+				
+
+				NOT NULL
+				DEFAULT "current_user"()
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                  
+                
+                </td>
+            	<td>pk</td>
+            	<td>serial</td>
+                <td><i>
+				
+					PRIMARY KEY
+					
+
+					
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                  
+                  <a href="gnumed-entire_schema.html#clin.table.encounter">clin.encounter.pk</a>
+                  
+                
+                </td>
+            	<td>fk_encounter</td>
+            	<td>integer</td>
+                <td><i>
+				
+					
+
+					
+				
+
+				NOT NULL
+				
+				</i>
+				<br><br>the encounter in which this document was entered into the system
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                  
+                  <a href="gnumed-entire_schema.html#clin.table.episode">clin.episode.pk</a>
+                  
+                
+                </td>
+            	<td>fk_episode</td>
+            	<td>integer</td>
+                <td><i>
+				
+					
+
+					
+				
+
+				NOT NULL
+				
+				</i>
+				<br><br>the episode this document pertains to, this may not be the only
+	 one applicable to the document (think discharge letters), see also
+	 lnk_doc_med2episode
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                  
+                  <a href="gnumed-entire_schema.html#blobs.table.doc-type">blobs.doc_type.pk</a>
+                  
+                
+                </td>
+            	<td>fk_type</td>
+            	<td>integer</td>
+                <td><i>
+				
+					
+
+					
+				
+
+				NOT NULL
+				
+				</i>
+				<br><br>semantic type of document (not type of file or mime
+	 type), such as "referral letter", "discharge summary", etc.
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>comment</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				<br><br>additional short comment such as "abdominal", "ward 3,
+	 Dr. Stein", etc.
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>clin_when</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				NOT NULL
+				DEFAULT now()
+				</i>
+				<br><br>date of document content creation (such as exam date),
+	 NOT date of document creation or date of import; may
+	 be imprecise such as "7/99"
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>ext_ref</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				<br><br>external reference string of physical document,
+	 original paper copy can be found with this
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.org-unit">dem.org_unit.pk</a>
+                  
+                
+                </td>
+            	<td>fk_org_unit</td>
+            	<td>integer</td>
+                <td><i>
+				
+					
+
+					
+				
+
+				
+				
+				</i>
+				<br><br>Optional link to the org unit this document originates from.\n
+Note that the document may contain data from several units but\n
+there will always be one "sender".
+				</td>
+			 </tr>
+            
+        </table>
+
+        <!-- Inherits -->
+		
+        <p>Table blobs.doc_med Inherits
+        
+            
+           <a href="gnumed-entire_schema.html#audit.table.audit-fields">audit_fields</a>, 
+        
+        </p>
+		
+
+		
+		
+		
+
+        <!-- Constraint List -->
+		
+        <p> </p>
+		<table width="100%" cellspacing="0" cellpadding="3">
+            <caption>blobs.doc_med Constraints</caption>
+            <tr>
+            	<th>Name</th>
+            	<th>Constraint</th>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+		</table>
+		
+
+        <!-- Foreign Key Discovery -->
+		
+			<p>Tables referencing this one via Foreign Key Constraints:</p>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#bill.table.bill">bill.bill</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#blobs.table.doc-desc">blobs.doc_desc</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#blobs.table.doc-obj">blobs.doc_obj</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#blobs.table.lnk-doc2hospital-stay">blobs.lnk_doc2hospital_stay</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#blobs.table.lnk-doc-med2episode">blobs.lnk_doc_med2episode</a></li>
+			</ul>
+		
+		
+
+    <!-- Indexes -->
+    
+
+	<!-- View Definition -->
+	
+
+	<!-- List off permissions -->
+	
+
+	<p>
+		<a href="gnumed-entire_schema.html#index">Index</a> -
+		<a href="gnumed-entire_schema.html#blobs.schema">Schema blobs</a>
+    </p>
+	
+        <hr>
+		<h2>Table:
+			
+			<a href="gnumed-entire_schema.html#blobs.schema">blobs</a>.<a name="blobs.table.doc-obj">doc_obj</a>
+		</h2>
+        
+         <p>possibly several of these form a medical document
+	 such as multiple scanned pages/images</p>
+        
+
+
+        <table width="100%" cellspacing="0" cellpadding="3">
+                <caption>blobs.doc_obj Structure</caption>
+                <tr>
+                <th>F-Key</th>
+                <th>Name</th>
+                <th>Type</th>
+                <th>Description</th>
+                </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                  
+                
+                </td>
+            	<td>pk</td>
+            	<td>serial</td>
+                <td><i>
+				
+					PRIMARY KEY
+					
+
+					
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                  
+                  <a href="gnumed-entire_schema.html#blobs.table.doc-med">blobs.doc_med.pk</a>
+                  
+                
+                </td>
+            	<td>fk_doc</td>
+            	<td>integer</td>
+                <td><i>
+				
+					
+
+					
+				
+
+				NOT NULL
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>seq_idx</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				<br><br>index of this object in the sequence
+	 of objects for this document
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>comment</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				<br><br>optional tiny comment for this
+	 object, such as "page 1"
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.pk</a>
+                  
+                
+                </td>
+            	<td>fk_intended_reviewer</td>
+            	<td>integer</td>
+                <td><i>
+				
+					
+
+					
+				
+
+				NOT NULL
+				
+				</i>
+				<br><br>who is *supposed* to review this item
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>data</td>
+            	<td>bytea</td>
+                <td><i>
+				
+
+				NOT NULL
+				
+				</i>
+				<br><br>actual binary object data;
+
+	 here is why we use bytea:
+
+== --------------------------------------------------
+
+To: leon at oss.minimetria.com
+
+Cc: pgsql-sql at postgresql.org
+
+Subject: Re: [SQL] Recommendation on bytea or blob for binary data like images 
+
+Date: Fri, 02 Sep 2005 16:33:09 -0400
+
+Message-ID: <17794.1125693189 at sss.pgh.pa.us>
+
+From: Tom Lane <tgl at sss.pgh.pa.us>
+
+List-Archive: <http://archives.postgresql.org/pgsql-sql>
+
+List-Help: <mailto:majordomo at postgresql.org?body=help>
+
+List-ID: <pgsql-sql.postgresql.org>
+
+
+
+leon at oss.minimetria.com writes:
+
+> Hi, I"d like to know what the official recommendation is on which binary
+
+> datatype to use for common small-binary size use.
+
+
+
+If bytea will work for you, it"s definitely the thing to use.  The only
+
+real drawback to bytea is that there"s currently no API to read and
+
+write bytea values in a streaming fashion.  If your objects are small
+
+enough that you can load and store them as units, bytea is fine.
+
+
+
+BLOBs, on the other hand, have a number of drawbacks --- hard to dump,
+
+impossible to secure, etc.
+
+
+
+			regards, tom lane
+
+== --------------------------------------------------
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>filename</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				<br><br>the filename from when the data was imported - if any, can be NULL,
+	 useful for re-export since legacy devices/applications might expect
+	 particular file names and not use mime types for file detection
+				</td>
+			 </tr>
+            
+        </table>
+
+        <!-- Inherits -->
+		
+
+		
+		
+		
+
+        <!-- Constraint List -->
+		
+        <p> </p>
+		<table width="100%" cellspacing="0" cellpadding="3">
+            <caption>blobs.doc_obj Constraints</caption>
+            <tr>
+            	<th>Name</th>
+            	<th>Constraint</th>
+            </tr>
+			
+            <tr class="tr0">
+				<td>doc_obj_filename_check</td>
+                <td>CHECK ((btrim(COALESCE(filename, 'NULL'::text)) <> ''::text))</td>
+            </tr>
+			
+		</table>
+		
+
+        <!-- Foreign Key Discovery -->
+		
+			<p>Tables referencing this one via Foreign Key Constraints:</p>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#blobs.table.reviewed-doc-objs">blobs.reviewed_doc_objs</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.export-item">clin.export_item</a></li>
+			</ul>
+		
+		
+
+    <!-- Indexes -->
+    
+
+	<!-- View Definition -->
+	
+
+	<!-- List off permissions -->
+	
+
+	<p>
+		<a href="gnumed-entire_schema.html#index">Index</a> -
+		<a href="gnumed-entire_schema.html#blobs.schema">Schema blobs</a>
+    </p>
+	
+        <hr>
+		<h2>Table:
+			
+			<a href="gnumed-entire_schema.html#blobs.schema">blobs</a>.<a name="blobs.table.doc-type">doc_type</a>
+		</h2>
+        
+         <p>this table enumerates the document types known to the system</p>
+        
+
+
+        <table width="100%" cellspacing="0" cellpadding="3">
+                <caption>blobs.doc_type Structure</caption>
+                <tr>
+                <th>F-Key</th>
+                <th>Name</th>
+                <th>Type</th>
+                <th>Description</th>
+                </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                  
+                
+                </td>
+            	<td>pk</td>
+            	<td>serial</td>
+                <td><i>
+				
+					PRIMARY KEY
+					
+
+					
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                  
+                
+                </td>
+            	<td>name</td>
+            	<td>text</td>
+                <td><i>
+				
+					
+
+					
+                       UNIQUE
+                    
+				
+
+				NOT NULL
+				
+				</i>
+				<br><br>the name/label of the document type
+				</td>
+			 </tr>
+            
+        </table>
+
+        <!-- Inherits -->
+		
+
+		
+		
+		
+
+        <!-- Constraint List -->
+		
+
+        <!-- Foreign Key Discovery -->
+		
+			<p>Tables referencing this one via Foreign Key Constraints:</p>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#blobs.table.doc-med">blobs.doc_med</a></li>
+			</ul>
+		
+		
+
+    <!-- Indexes -->
+    
+
+	<!-- View Definition -->
+	
+
+	<!-- List off permissions -->
+	
+
+	<p>
+		<a href="gnumed-entire_schema.html#index">Index</a> -
+		<a href="gnumed-entire_schema.html#blobs.schema">Schema blobs</a>
+    </p>
+	
+        <hr>
+		<h2>Table:
+			
+			<a href="gnumed-entire_schema.html#blobs.schema">blobs</a>.<a name="blobs.table.lnk-doc2hospital-stay">lnk_doc2hospital_stay</a>
+		</h2>
+        
+         <p>links documents to any hospital stay they might pertain to</p>
+        
+
+
+        <table width="100%" cellspacing="0" cellpadding="3">
+                <caption>blobs.lnk_doc2hospital_stay Structure</caption>
+                <tr>
+                <th>F-Key</th>
+                <th>Name</th>
+                <th>Type</th>
+                <th>Description</th>
+                </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_audit</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				NOT NULL
+				DEFAULT nextval('audit.audit_fields_pk_audit_seq'::regclass)
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>row_version</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				NOT NULL
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>modified_when</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				NOT NULL
+				DEFAULT now()
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>modified_by</td>
+            	<td>name</td>
+                <td><i>
+				
+
+				NOT NULL
+				DEFAULT "current_user"()
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                  
+                
+                </td>
+            	<td>pk</td>
+            	<td>serial</td>
+                <td><i>
+				
+					PRIMARY KEY
+					
+
+					
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                  
+                  <a href="gnumed-entire_schema.html#clin.table.hospital-stay">clin.hospital_stay.pk</a>
+                  
+                
+                </td>
+            	<td>fk_stay</td>
+            	<td>integer</td>
+                <td><i>
+				
+					
+
+					
+				
+
+				NOT NULL
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                  
+                  <a href="gnumed-entire_schema.html#blobs.table.doc-med">blobs.doc_med.pk</a>
+                  
+                
+                  
+                
+                </td>
+            	<td>fk_document</td>
+            	<td>integer</td>
+                <td><i>
+				
+					
+
+					
+				
+					
+
+					
+                       UNIQUE
+                    
+				
+
+				NOT NULL
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+        </table>
+
+        <!-- Inherits -->
+		
+        <p>Table blobs.lnk_doc2hospital_stay Inherits
+        
+            
+           <a href="gnumed-entire_schema.html#audit.table.audit-fields">audit_fields</a>, 
+        
+        </p>
+		
+
+		
+		
+		
+
+        <!-- Constraint List -->
+		
+        <p> </p>
+		<table width="100%" cellspacing="0" cellpadding="3">
+            <caption>blobs.lnk_doc2hospital_stay Constraints</caption>
+            <tr>
+            	<th>Name</th>
+            	<th>Constraint</th>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+		</table>
+		
+
+        <!-- Foreign Key Discovery -->
+		
+
+    <!-- Indexes -->
+    
+
+	<!-- View Definition -->
+	
+
+	<!-- List off permissions -->
+	
+
+	<p>
+		<a href="gnumed-entire_schema.html#index">Index</a> -
+		<a href="gnumed-entire_schema.html#blobs.schema">Schema blobs</a>
+    </p>
+	
+        <hr>
+		<h2>Table:
+			
+			<a href="gnumed-entire_schema.html#blobs.schema">blobs</a>.<a name="blobs.table.lnk-doc-med2episode">lnk_doc_med2episode</a>
+		</h2>
+        
+         <p>this allows linking documents to episodes,
+	 each document can apply to several episodes
+	 but only once each</p>
+        
+
+
+        <table width="100%" cellspacing="0" cellpadding="3">
+                <caption>blobs.lnk_doc_med2episode Structure</caption>
+                <tr>
+                <th>F-Key</th>
+                <th>Name</th>
+                <th>Type</th>
+                <th>Description</th>
+                </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_audit</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				NOT NULL
+				DEFAULT nextval('audit.audit_fields_pk_audit_seq'::regclass)
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>row_version</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				NOT NULL
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>modified_when</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				NOT NULL
+				DEFAULT now()
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>modified_by</td>
+            	<td>name</td>
+                <td><i>
+				
+
+				NOT NULL
+				DEFAULT "current_user"()
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                  
+                
+                </td>
+            	<td>pk</td>
+            	<td>serial</td>
+                <td><i>
+				
+					PRIMARY KEY
+					
+
+					
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                  
+                  <a href="gnumed-entire_schema.html#clin.table.episode">clin.episode.pk</a>
+                  
+                
+                  
+                
+                </td>
+            	<td>fk_episode</td>
+            	<td>integer</td>
+                <td><i>
+				
+					
+
+					
+				
+					
+
+					
+                       UNIQUE#1
+                    
+				
+
+				NOT NULL
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                  
+                  <a href="gnumed-entire_schema.html#blobs.table.doc-med">blobs.doc_med.pk</a>
+                  
+                
+                  
+                
+                </td>
+            	<td>fk_doc_med</td>
+            	<td>integer</td>
+                <td><i>
+				
+					
+
+					
+				
+					
+
+					
+                       UNIQUE#1
+                    
+				
+
+				NOT NULL
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+        </table>
+
+        <!-- Inherits -->
+		
+        <p>Table blobs.lnk_doc_med2episode Inherits
+        
+            
+           <a href="gnumed-entire_schema.html#audit.table.audit-fields">audit_fields</a>, 
+        
+        </p>
+		
+
+		
+		
+		
+
+        <!-- Constraint List -->
+		
+        <p> </p>
+		<table width="100%" cellspacing="0" cellpadding="3">
+            <caption>blobs.lnk_doc_med2episode Constraints</caption>
+            <tr>
+            	<th>Name</th>
+            	<th>Constraint</th>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+		</table>
+		
+
+        <!-- Foreign Key Discovery -->
+		
+
+    <!-- Indexes -->
+    
+
+	<!-- View Definition -->
+	
+
+	<!-- List off permissions -->
+	
+
+	<p>
+		<a href="gnumed-entire_schema.html#index">Index</a> -
+		<a href="gnumed-entire_schema.html#blobs.schema">Schema blobs</a>
+    </p>
+	
+        <hr>
+		<h2>Table:
+			
+			<a href="gnumed-entire_schema.html#blobs.schema">blobs</a>.<a name="blobs.table.reviewed-doc-objs">reviewed_doc_objs</a>
+		</h2>
+        
+         <p>review table for documents (per object such as a page)</p>
+        
+
+
+        <table width="100%" cellspacing="0" cellpadding="3">
+                <caption>blobs.reviewed_doc_objs Structure</caption>
+                <tr>
+                <th>F-Key</th>
+                <th>Name</th>
+                <th>Type</th>
+                <th>Description</th>
+                </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_audit</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				NOT NULL
+				DEFAULT nextval('audit.audit_fields_pk_audit_seq'::regclass)
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>row_version</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				NOT NULL
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>modified_when</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				NOT NULL
+				DEFAULT now()
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>modified_by</td>
+            	<td>name</td>
+                <td><i>
+				
+
+				NOT NULL
+				DEFAULT "current_user"()
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                  
+                
+                </td>
+            	<td>pk</td>
+            	<td>integer</td>
+                <td><i>
+				
+					PRIMARY KEY
+					
+
+					
+				
+
+				
+				DEFAULT nextval('clin.review_root_pk_seq'::regclass)
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                  
+                  <a href="gnumed-entire_schema.html#blobs.table.doc-obj">blobs.doc_obj.pk</a>
+                  
+                
+                  
+                
+                </td>
+            	<td>fk_reviewed_row</td>
+            	<td>integer</td>
+                <td><i>
+				
+					
+
+					
+				
+					
+
+					
+                       UNIQUE#1
+                    
+				
+
+				NOT NULL
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                  
+                
+                </td>
+            	<td>fk_reviewer</td>
+            	<td>integer</td>
+                <td><i>
+				
+					
+
+					
+                       UNIQUE#1
+                    
+				
+
+				NOT NULL
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>is_technically_abnormal</td>
+            	<td>boolean</td>
+                <td><i>
+				
+
+				NOT NULL
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>clinically_relevant</td>
+            	<td>boolean</td>
+                <td><i>
+				
+
+				NOT NULL
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>comment</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+        </table>
+
+        <!-- Inherits -->
+		
+        <p>Table blobs.reviewed_doc_objs Inherits
+        
+            
+           <a href="gnumed-entire_schema.html#clin.table.review-root">review_root</a>, 
+        
+        </p>
+		
+
+		
+		
+		
+
+        <!-- Constraint List -->
+		
+        <p> </p>
+		<table width="100%" cellspacing="0" cellpadding="3">
+            <caption>blobs.reviewed_doc_objs Constraints</caption>
+            <tr>
+            	<th>Name</th>
+            	<th>Constraint</th>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+		</table>
+		
+
+        <!-- Foreign Key Discovery -->
+		
+
+    <!-- Indexes -->
+    
+
+	<!-- View Definition -->
+	
+
+	<!-- List off permissions -->
+	
+
+	<p>
+		<a href="gnumed-entire_schema.html#index">Index</a> -
+		<a href="gnumed-entire_schema.html#blobs.schema">Schema blobs</a>
+    </p>
+	
+        <hr>
+		<h2>View:
+			
+			<a href="gnumed-entire_schema.html#blobs.schema">blobs</a>.<a name="blobs.view.v-doc-desc">v_doc_desc</a>
+		</h2>
+        
+         <p>aggregates some document data descriptions</p>
+        
+
+
+        <table width="100%" cellspacing="0" cellpadding="3">
+                <caption>blobs.v_doc_desc Structure</caption>
+                <tr>
+                <th>F-Key</th>
+                <th>Name</th>
+                <th>Type</th>
+                <th>Description</th>
+                </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_patient</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>pk_doc</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>description</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>pk_encounter</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_episode</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>pk_health_issue</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_doc_desc</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+        </table>
+
+        <!-- Inherits -->
+		
+
+		
+
+        <!-- Constraint List -->
+		
+
+        <!-- Foreign Key Discovery -->
+		
+
+    <!-- Indexes -->
+    
+
+	<!-- View Definition -->
+	
+	<pre>
+SELECT vdm.pk_patient
+,
+    dd.fk_doc AS pk_doc
+,
+    dd.text AS description
+,
+    vdm.pk_encounter
+,
+    vdm.pk_episode
+,
+    vdm.pk_health_issue
+,
+    dd.pk AS pk_doc_desc
+   
+FROM blobs.doc_desc dd
+,
+    blobs.v_doc_med vdm
+  
+WHERE (dd.fk_doc = vdm.pk_doc);</pre>
+	
+
+	<!-- List off permissions -->
+	
+
+	<p>
+		<a href="gnumed-entire_schema.html#index">Index</a> -
+		<a href="gnumed-entire_schema.html#blobs.schema">Schema blobs</a>
+    </p>
+	
+        <hr>
+		<h2>View:
+			
+			<a href="gnumed-entire_schema.html#blobs.schema">blobs</a>.<a name="blobs.view.v-doc-med">v_doc_med</a>
+		</h2>
+        
+
+
+        <table width="100%" cellspacing="0" cellpadding="3">
+                <caption>blobs.v_doc_med Structure</caption>
+                <tr>
+                <th>F-Key</th>
+                <th>Name</th>
+                <th>Type</th>
+                <th>Description</th>
+                </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_patient</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>pk_doc</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>clin_when</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>type</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>l10n_type</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>ext_ref</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>comment</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>episode</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>health_issue</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>episode_open</td>
+            	<td>boolean</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>unit</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>organization</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_type</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>pk_encounter</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_episode</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>pk_health_issue</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_org_unit</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>pk_org</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>modified_when</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>modified_by</td>
+            	<td>name</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>xmin_doc_med</td>
+            	<td>xid</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+        </table>
+
+        <!-- Inherits -->
+		
+
+		
+
+        <!-- Constraint List -->
+		
+
+        <!-- Foreign Key Discovery -->
+		
+
+    <!-- Indexes -->
+    
+
+	<!-- View Definition -->
+	
+	<pre>
+SELECT c_enc.fk_patient AS pk_patient
+,
+    b_dm.pk AS pk_doc
+,
+    b_dm.clin_when
+,
+    b_dt.name AS type
+,
+    _
+(b_dt.name) AS l10n_type
+,
+    b_dm.ext_ref
+,
+    b_dm.comment
+,
+    c_epi.description AS episode
+,
+    c_hi.description AS health_issue
+,
+    c_epi.is_open AS episode_open
+,
+    d_ou.description AS unit
+,
+    d_o.description AS organization
+,
+    b_dm.fk_type AS pk_type
+,
+    b_dm.fk_encounter AS pk_encounter
+,
+    b_dm.fk_episode AS pk_episode
+,
+    c_epi.fk_health_issue AS pk_health_issue
+,
+    b_dm.fk_org_unit AS pk_org_unit
+,
+    d_ou.fk_org AS pk_org
+,
+    b_dm.modified_when
+,
+    b_dm.modified_by
+,
+    b_dm.xmin AS xmin_doc_med
+   
+FROM (
+     (
+           (
+                 (
+                       (
+                             (blobs.doc_med b_dm
+     
+                                JOIN blobs.doc_type b_dt 
+                                  ON (
+                                         (b_dm.fk_type = b_dt.pk)
+                                   )
+                             )
+     
+                          JOIN clin.encounter c_enc 
+                            ON (
+                                   (b_dm.fk_encounter = c_enc.pk)
+                             )
+                       )
+     
+                    JOIN clin.episode c_epi 
+                      ON (
+                             (b_dm.fk_episode = c_epi.pk)
+                       )
+                 )
+     
+         LEFT JOIN clin.health_issue c_hi 
+                ON (
+                       (c_hi.pk = c_epi.fk_health_issue)
+                 )
+           )
+     
+   LEFT JOIN dem.org_unit d_ou 
+          ON (
+                 (b_dm.fk_org_unit = d_ou.pk)
+           )
+     )
+     
+LEFT JOIN dem.org d_o 
+    ON (
+           (d_ou.fk_org = d_o.pk)
+     )
+);</pre>
+	
+
+	<!-- List off permissions -->
+	
+
+	<p>
+		<a href="gnumed-entire_schema.html#index">Index</a> -
+		<a href="gnumed-entire_schema.html#blobs.schema">Schema blobs</a>
+    </p>
+	
+        <hr>
+		<h2>View:
+			
+			<a href="gnumed-entire_schema.html#blobs.schema">blobs</a>.<a name="blobs.view.v-doc-med-journal">v_doc_med_journal</a>
+		</h2>
+        
+
+
+        <table width="100%" cellspacing="0" cellpadding="3">
+                <caption>blobs.v_doc_med_journal Structure</caption>
+                <tr>
+                <th>F-Key</th>
+                <th>Name</th>
+                <th>Type</th>
+                <th>Description</th>
+                </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_patient</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>modified_when</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>clin_when</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>modified_by</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>soap_cat</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>narrative</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_encounter</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>pk_episode</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_health_issue</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>src_pk</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>src_table</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>row_version</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>health_issue</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>issue_laterality</td>
+            	<td>character varying(2)</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>issue_active</td>
+            	<td>boolean</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>issue_clinically_relevant</td>
+            	<td>boolean</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>issue_confidential</td>
+            	<td>boolean</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>episode</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>episode_open</td>
+            	<td>boolean</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>encounter_started</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>encounter_last_affirmed</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>encounter_type</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>encounter_l10n_type</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+        </table>
+
+        <!-- Inherits -->
+		
+
+		
+
+        <!-- Constraint List -->
+		
+
+        <!-- Foreign Key Discovery -->
+		
+
+    <!-- Indexes -->
+    
+
+	<!-- View Definition -->
+	
+	<pre>
+SELECT c_enc.fk_patient AS pk_patient
+,
+    b_dm.modified_when
+,
+    b_dm.clin_when
+,
+    COALESCE
+(
+     (
+      SELECT staff.short_alias
+           
+        FROM dem.staff
+          
+       WHERE (staff.db_user = b_dm.modified_by)
+     )
+     , (
+           ('<'::text || 
+                 (b_dm.modified_by)::text
+           ) || '>'::text
+     )
+) AS modified_by
+,
+    NULL::text AS soap_cat
+,
+    
+('"'::text || 
+     (
+           (
+                 (
+                       (
+                             (
+                                   (
+                                         (
+                                               (
+                                                     (
+                                                           (
+                                                                 (
+                                                                       (
+                                                                             (
+                                                                                   (_
+                                                                                         (b_dt.name) || '" '::text
+                                                                                   ) || _
+                                                                                   ('with'::text)
+                                                                             ) || ' '::text
+                                                                       ) || 
+                                                                       (
+                                                                        SELECT count
+                                                                             (1) AS count
+           
+                                                                          FROM blobs.doc_obj b_do
+          
+                                                                         WHERE (b_do.fk_doc = b_dm.pk)
+                                                                       )
+                                                                 ) || ' '::text
+                                                           ) || _
+                                                           ('part(s)'::text
+                                                     )
+                                               ) || '
+'::text
+                                         ) || ' '::text
+                                   ) || to_char
+                                   (b_dm.clin_when
+                                         ,'YYYY-MM-DD HH24:MI'::text
+                                   )
+                             ) || '
+'::text
+                       ) || COALESCE
+                       (
+                             (
+                                   (' ['::text || b_dm.ext_ref) || ']'::text
+                             )
+                             ,''::text
+                       )
+                 ) || COALESCE
+                 (
+                       (
+                             (
+                                   (
+                                         (
+                                               (' @ '::text || d_ou.description) || ' '::text
+                                         ) || _
+                                         ('of'::text)
+                                   ) || ' '::text
+                             ) || d_o.description
+                       )
+                       ,''::text
+                 )
+           ) || '
+'::text
+     ) || COALESCE
+     (
+           (' '::text || b_dm.comment)
+           ,''::text
+     )
+)
+)      AS narrative
+,     
+    b_dm.fk_encounter AS pk_encounter
+,     
+    b_dm.fk_episode AS pk_episode
+,     
+    c_epi.fk_health_issue AS pk_health_issue
+,     
+    b_dm.pk AS src_pk
+,     
+    'blobs.doc_med'::text AS src_table
+,     
+    b_dm.row_version
+,     
+    c_hi.description AS health_issue
+,     
+    c_hi.laterality AS issue_laterality
+,     
+    c_hi.is_active AS issue_active
+,     
+    c_hi.clinically_relevant AS issue_clinically_relevant
+,     
+    c_hi.is_confidential AS issue_confidential
+,     
+    c_epi.description AS episode
+,     
+    c_epi.is_open AS episode_open
+,     
+    c_enc.started AS encounter_started
+,     
+    c_enc.last_affirmed AS encounter_last_affirmed
+,     
+    c_ety.description AS encounter_type
+,     
+    _
+(     c_ety.description) AS encounter_l10n_type
+   
+FROM   (
+(
+     (
+           (
+                 (
+                       (
+                             (blobs.doc_med b_dm
+     
+                                JOIN clin.encounter c_enc 
+                                  ON (
+                                         (b_dm.fk_encounter = c_enc.pk)
+                                   )
+                             )
+     
+                          JOIN clin.encounter_type c_ety 
+                            ON (
+                                   (c_enc.fk_type = c_ety.pk)
+                             )
+                       )
+     
+                    JOIN blobs.doc_type b_dt 
+                      ON (
+                             (b_dm.fk_type = b_dt.pk)
+                       )
+                 )
+     
+              JOIN clin.episode c_epi 
+                ON (
+                       (b_dm.fk_episode = c_epi.pk)
+                 )
+           )
+     
+   LEFT JOIN clin.health_issue c_hi 
+          ON (
+                 (c_epi.fk_health_issue = c_hi.pk)
+           )
+     )
+     
+LEFT JOIN dem.org_unit d_ou 
+    ON (
+           (b_dm.fk_org_unit = d_ou.pk)
+     )
+)
+     
+LEFT JOIN dem.org d_o 
+ON (
+     (d_ou.fk_org = d_o.pk)
+)
+)     ;</pre>
+	
+
+	<!-- List off permissions -->
+	
+
+	<p>
+		<a href="gnumed-entire_schema.html#index">Index</a> -
+		<a href="gnumed-entire_schema.html#blobs.schema">Schema blobs</a>
+    </p>
+	
+        <hr>
+		<h2>View:
+			
+			<a href="gnumed-entire_schema.html#blobs.schema">blobs</a>.<a name="blobs.view.v-doc-type">v_doc_type</a>
+		</h2>
+        
+         <p>list active document types, those that are activated for use</p>
+        
+
+
+        <table width="100%" cellspacing="0" cellpadding="3">
+                <caption>blobs.v_doc_type Structure</caption>
+                <tr>
+                <th>F-Key</th>
+                <th>Name</th>
+                <th>Type</th>
+                <th>Description</th>
+                </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_doc_type</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>type</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>l10n_type</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>is_user_defined</td>
+            	<td>boolean</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>is_in_use</td>
+            	<td>boolean</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>xmin_doc_type</td>
+            	<td>xid</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+        </table>
+
+        <!-- Inherits -->
+		
+
+		
+
+        <!-- Constraint List -->
+		
+
+        <!-- Foreign Key Discovery -->
+		
+
+    <!-- Indexes -->
+    
+
+	<!-- View Definition -->
+	
+	<pre>
+SELECT dt.pk AS pk_doc_type
+,
+    dt.name AS type
+,
+    _
+(dt.name) AS l10n_type
+,
+    
+(NOT 
+     (EXISTS 
+           (
+            SELECT 1
+           
+              FROM ref.document_type
+          
+             WHERE (document_type.description = dt.name)
+           )
+     )
+) AS is_user_defined
+,
+    
+(EXISTS 
+     (
+      SELECT 1
+           
+        FROM blobs.doc_med
+          
+       WHERE (doc_med.fk_type = dt.pk)
+     )
+) AS is_in_use
+,
+    dt.xmin AS xmin_doc_type
+   
+FROM blobs.doc_type dt;</pre>
+	
+
+	<!-- List off permissions -->
+	
+
+	<p>
+		<a href="gnumed-entire_schema.html#index">Index</a> -
+		<a href="gnumed-entire_schema.html#blobs.schema">Schema blobs</a>
+    </p>
+	
+        <hr>
+		<h2>View:
+			
+			<a href="gnumed-entire_schema.html#blobs.schema">blobs</a>.<a name="blobs.view.v-latest-mugshot">v_latest_mugshot</a>
+		</h2>
+        
+         <p>shows the latest picture of the patient, currently the highest
+	 seq_idx of the newest document of type "patient photograph"</p>
+        
+
+
+        <table width="100%" cellspacing="0" cellpadding="3">
+                <caption>blobs.v_latest_mugshot Structure</caption>
+                <tr>
+                <th>F-Key</th>
+                <th>Name</th>
+                <th>Type</th>
+                <th>Description</th>
+                </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_patient</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>doc_comment</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>date_taken</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>ext_ref</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>obj_seq_idx</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>obj_comment</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_doc</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>pk_obj</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>image</td>
+            	<td>bytea</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+        </table>
+
+        <!-- Inherits -->
+		
+
+		
+
+        <!-- Constraint List -->
+		
+
+        <!-- Foreign Key Discovery -->
+		
+
+    <!-- Indexes -->
+    
+
+	<!-- View Definition -->
+	
+	<pre>
+SELECT vo4d.pk_patient
+,
+    vo4d.doc_comment
+,
+    vo4d.date_generated AS date_taken
+,
+    vo4d.ext_ref
+,
+    vo4d.seq_idx AS obj_seq_idx
+,
+    vo4d.obj_comment
+,
+    vo4d.pk_doc
+,
+    vo4d.pk_obj
+,
+    bdo.data AS image
+   
+FROM blobs.v_obj4doc_no_data vo4d
+,
+    blobs.doc_obj bdo
+  
+WHERE (
+     (
+           (vo4d.type = 'patient photograph'::text)
+         AND (vo4d.seq_idx = 
+                 (
+                  SELECT max
+                       (vo4d1.seq_idx) AS max
+           
+                    FROM blobs.v_obj4doc_no_data vo4d1
+          
+                   WHERE (
+                             (vo4d1.pk_patient = vo4d.pk_patient)
+                           AND (vo4d1.type = 'patient photograph'::text)
+                       )
+          
+                GROUP BY vo4d1.date_generated
+          
+                ORDER BY vo4d1.date_generated DESC
+         LIMIT 1
+                 )
+           )
+     )
+   AND (bdo.pk = vo4d.pk_obj)
+);</pre>
+	
+
+	<!-- List off permissions -->
+	
+
+	<p>
+		<a href="gnumed-entire_schema.html#index">Index</a> -
+		<a href="gnumed-entire_schema.html#blobs.schema">Schema blobs</a>
+    </p>
+	
+        <hr>
+		<h2>View:
+			
+			<a href="gnumed-entire_schema.html#blobs.schema">blobs</a>.<a name="blobs.view.v-obj4doc-no-data">v_obj4doc_no_data</a>
+		</h2>
+        
+         <p>denormalized metadata for blobs.doc_obj but without the data itself</p>
+        
+
+
+        <table width="100%" cellspacing="0" cellpadding="3">
+                <caption>blobs.v_obj4doc_no_data Structure</caption>
+                <tr>
+                <th>F-Key</th>
+                <th>Name</th>
+                <th>Type</th>
+                <th>Description</th>
+                </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_patient</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>pk_obj</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>seq_idx</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>size</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>date_generated</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>type</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>l10n_type</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>ext_ref</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>episode</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>doc_comment</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>obj_comment</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>filename</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_intended_reviewer</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>reviewed</td>
+            	<td>boolean</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>reviewed_by_you</td>
+            	<td>boolean</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>reviewed_by_intended_reviewer</td>
+            	<td>boolean</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_doc</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>pk_type</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_encounter</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>pk_episode</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_health_issue</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>xmin_doc_obj</td>
+            	<td>xid</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+        </table>
+
+        <!-- Inherits -->
+		
+
+		
+
+        <!-- Constraint List -->
+		
+
+        <!-- Foreign Key Discovery -->
+		
+
+    <!-- Indexes -->
+    
+
+	<!-- View Definition -->
+	
+	<pre>
+SELECT b_vdm.pk_patient
+,
+    b_do.pk AS pk_obj
+,
+    b_do.seq_idx
+,
+    octet_length
+(COALESCE
+     (b_do.data
+           ,'\x'::bytea
+     )
+) AS size
+,
+    b_vdm.clin_when AS date_generated
+,
+    b_vdm.type
+,
+    b_vdm.l10n_type
+,
+    b_vdm.ext_ref
+,
+    b_vdm.episode
+,
+    b_vdm.comment AS doc_comment
+,
+    b_do.comment AS obj_comment
+,
+    b_do.filename
+,
+    b_do.fk_intended_reviewer AS pk_intended_reviewer
+,
+    
+(EXISTS 
+     (
+      SELECT 1
+           
+        FROM blobs.reviewed_doc_objs
+          
+       WHERE (reviewed_doc_objs.fk_reviewed_row = b_do.pk)
+     )
+) AS reviewed
+,
+    
+(EXISTS 
+     (
+      SELECT 1
+           
+        FROM blobs.reviewed_doc_objs
+          
+       WHERE (
+                 (reviewed_doc_objs.fk_reviewed_row = b_do.pk)
+               AND (reviewed_doc_objs.fk_reviewer = 
+                       (
+                        SELECT staff.pk
+                   
+                          FROM dem.staff
+                  
+                         WHERE (staff.db_user = "current_user"
+                                   ()
+                             )
+                       )
+                 )
+           )
+     )
+) AS reviewed_by_you
+,
+    
+(EXISTS 
+     (
+      SELECT 1
+           
+        FROM blobs.reviewed_doc_objs
+          
+       WHERE (
+                 (reviewed_doc_objs.fk_reviewed_row = b_do.pk)
+               AND (reviewed_doc_objs.fk_reviewer = b_do.fk_intended_reviewer)
+           )
+     )
+) AS reviewed_by_intended_reviewer
+,
+    b_vdm.pk_doc
+,
+    b_vdm.pk_type
+,
+    b_vdm.pk_encounter
+,
+    b_vdm.pk_episode
+,
+    b_vdm.pk_health_issue
+,
+    b_do.xmin AS xmin_doc_obj
+   
+FROM (blobs.v_doc_med b_vdm
+     
+  JOIN blobs.doc_obj b_do 
+    ON (
+           (b_do.fk_doc = b_vdm.pk_doc)
+     )
+)
+  
+WHERE (b_vdm.pk_doc = b_do.fk_doc);</pre>
+	
+
+	<!-- List off permissions -->
+	
+
+	<p>
+		<a href="gnumed-entire_schema.html#index">Index</a> -
+		<a href="gnumed-entire_schema.html#blobs.schema">Schema blobs</a>
+    </p>
+	
+        <hr>
+		<h2>View:
+			
+			<a href="gnumed-entire_schema.html#blobs.schema">blobs</a>.<a name="blobs.view.v-reviewed-doc-objects">v_reviewed_doc_objects</a>
+		</h2>
+        
+
+
+        <table width="100%" cellspacing="0" cellpadding="3">
+                <caption>blobs.v_reviewed_doc_objects Structure</caption>
+                <tr>
+                <th>F-Key</th>
+                <th>Name</th>
+                <th>Type</th>
+                <th>Description</th>
+                </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_doc_obj</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>reviewer</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>is_technically_abnormal</td>
+            	<td>boolean</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>clinically_relevant</td>
+            	<td>boolean</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>is_review_by_responsible_reviewer</td>
+            	<td>boolean</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>is_your_review</td>
+            	<td>boolean</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>comment</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>reviewed_when</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>modified_by</td>
+            	<td>name</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>pk_review_root</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_reviewer</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>pk_patient</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_encounter</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>pk_episode</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_health_issue</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+        </table>
+
+        <!-- Inherits -->
+		
+
+		
+
+        <!-- Constraint List -->
+		
+
+        <!-- Foreign Key Discovery -->
+		
+
+    <!-- Indexes -->
+    
+
+	<!-- View Definition -->
+	
+	<pre>
+SELECT rdo.fk_reviewed_row AS pk_doc_obj
+,
+    COALESCE
+(
+     (
+      SELECT staff.short_alias
+           
+        FROM dem.staff
+          
+       WHERE (staff.pk = rdo.fk_reviewer)
+     )
+     , (
+           ('<#'::text || rdo.fk_reviewer) || '>'::text
+     )
+) AS reviewer
+,
+    rdo.is_technically_abnormal
+,
+    rdo.clinically_relevant
+,
+    
+(EXISTS 
+     (
+      SELECT 1
+           
+        FROM blobs.doc_obj
+          
+       WHERE (
+                 (doc_obj.pk = rdo.fk_reviewed_row)
+               AND (doc_obj.fk_intended_reviewer = rdo.fk_reviewer)
+           )
+     )
+) AS is_review_by_responsible_reviewer
+,
+    
+(EXISTS 
+     (
+      SELECT 1
+           
+        FROM dem.staff
+          
+       WHERE (
+                 (staff.pk = rdo.fk_reviewer)
+               AND (staff.db_user = "current_user"
+                       ()
+                 )
+           )
+     )
+) AS is_your_review
+,
+    rdo.comment
+,
+    rdo.modified_when AS reviewed_when
+,
+    rdo.modified_by
+,
+    rdo.pk AS pk_review_root
+,
+    rdo.fk_reviewer AS pk_reviewer
+,
+    
+(
+SELECT v_obj4doc_no_data.pk_patient
+           
+  FROM blobs.v_obj4doc_no_data
+          
+ WHERE (v_obj4doc_no_data.pk_obj = rdo.fk_reviewed_row)
+) AS pk_patient
+,
+    
+(
+SELECT v_obj4doc_no_data.pk_encounter
+           
+  FROM blobs.v_obj4doc_no_data
+          
+ WHERE (v_obj4doc_no_data.pk_obj = rdo.fk_reviewed_row)
+) AS pk_encounter
+,
+    
+(
+SELECT v_obj4doc_no_data.pk_episode
+           
+  FROM blobs.v_obj4doc_no_data
+          
+ WHERE (v_obj4doc_no_data.pk_obj = rdo.fk_reviewed_row)
+) AS pk_episode
+,
+    
+(
+SELECT v_obj4doc_no_data.pk_health_issue
+           
+  FROM blobs.v_obj4doc_no_data
+          
+ WHERE (v_obj4doc_no_data.pk_obj = rdo.fk_reviewed_row)
+) AS pk_health_issue
+   
+FROM blobs.reviewed_doc_objs rdo;</pre>
+	
+
+	<!-- List off permissions -->
+	
+
+	<p>
+		<a href="gnumed-entire_schema.html#index">Index</a> -
+		<a href="gnumed-entire_schema.html#blobs.schema">Schema blobs</a>
+    </p>
+	
+        <hr>
+		<h2>View:
+			
+			<a href="gnumed-entire_schema.html#blobs.schema">blobs</a>.<a name="blobs.view.v-unreviewed-docs">v_unreviewed_docs</a>
+		</h2>
+        
+
+
+        <table width="100%" cellspacing="0" cellpadding="3">
+                <caption>blobs.v_unreviewed_docs Structure</caption>
+                <tr>
+                <th>F-Key</th>
+                <th>Name</th>
+                <th>Type</th>
+                <th>Description</th>
+                </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_doc</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>pk_intended_reviewer</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_patient</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+        </table>
+
+        <!-- Inherits -->
+		
+
+		
+
+        <!-- Constraint List -->
+		
+
+        <!-- Foreign Key Discovery -->
+		
+
+    <!-- Indexes -->
+    
+
+	<!-- View Definition -->
+	
+	<pre>
+SELECT DISTINCT 
+ON (b_do.fk_doc) b_do.fk_doc AS pk_doc
+,
+    min
+(b_do.fk_intended_reviewer) AS pk_intended_reviewer
+,
+    min
+(c_e.fk_patient) AS pk_patient
+   
+FROM (
+     (blobs.doc_obj b_do
+     
+        JOIN blobs.doc_med b_dm 
+          ON (
+                 (b_dm.pk = b_do.fk_doc)
+           )
+     )
+     
+  JOIN clin.encounter c_e 
+    ON (
+           (b_dm.fk_encounter = c_e.pk)
+     )
+)
+  
+WHERE (NOT 
+     (EXISTS 
+           (
+            SELECT 1
+           
+              FROM blobs.reviewed_doc_objs b_rdo
+          
+             WHERE (b_rdo.fk_reviewed_row = b_do.pk)
+           )
+     )
+)
+  
+GROUP BY b_do.fk_doc;</pre>
+	
+
+	<!-- List off permissions -->
+	
+
+	<p>
+		<a href="gnumed-entire_schema.html#index">Index</a> -
+		<a href="gnumed-entire_schema.html#blobs.schema">Schema blobs</a>
+    </p>
+	
+        <hr>
+		<h2>View:
+			
+			<a href="gnumed-entire_schema.html#blobs.schema">blobs</a>.<a name="blobs.view.v-unreviewed-docs-inbox">v_unreviewed_docs_inbox</a>
+		</h2>
+        
+
+
+        <table width="100%" cellspacing="0" cellpadding="3">
+                <caption>blobs.v_unreviewed_docs_inbox Structure</caption>
+                <tr>
+                <th>F-Key</th>
+                <th>Name</th>
+                <th>Type</th>
+                <th>Description</th>
+                </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>received_when</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>modified_by</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>provider</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>importance</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>category</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>l10n_category</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>type</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>l10n_type</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>comment</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>pk_context</td>
+            	<td>integer[]</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>data</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>pk_inbox_message</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_staff</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>pk_category</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_type</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>pk_patient</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>is_virtual</td>
+            	<td>boolean</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>due_date</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>expiry_date</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>is_overdue</td>
+            	<td>boolean</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>is_expired</td>
+            	<td>boolean</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>interval_due</td>
+            	<td>interval</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>xmin_message_inbox</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+        </table>
+
+        <!-- Inherits -->
+		
+
+		
+
+        <!-- Constraint List -->
+		
+
+        <!-- Foreign Key Discovery -->
+		
+
+    <!-- Indexes -->
+    
+
+	<!-- View Definition -->
+	
+	<pre>
+SELECT now
+() AS received_when
+,
+    '<system>'::text AS modified_by
+,
+    NULL::text AS provider
+,
+    0 AS importance
+,
+    'clinical'::text AS category
+,
+    _
+('clinical'::text) AS l10n_category
+,
+    'review docs'::text AS type
+,
+    _
+('review docs'::text) AS l10n_type
+,
+    
+(
+SELECT (
+           (
+                 (
+                       (
+                             (
+                                   (b_vuds.no_of_docs || ' '::text) || _
+                                   ('unreviewed documents for patient'::text)
+                             ) || ' '::text
+                       ) || d_n.lastnames
+                 ) || 
+              ', '::text
+           ) || d_n.firstnames
+     )
+) AS comment
+,
+    NULL::integer[] AS pk_context
+,
+    NULL::text AS data
+,
+    NULL::integer AS pk_inbox_message
+,
+    
+(
+SELECT staff.pk
+           
+  FROM dem.staff
+          
+ WHERE (staff.db_user = "current_user"
+           ()
+     )
+) AS pk_staff
+,
+    
+(
+SELECT v_inbox_item_type.pk_category
+           
+  FROM dem.v_inbox_item_type
+          
+ WHERE (v_inbox_item_type.type = 'review docs'::text)
+) AS pk_category
+,
+    
+(
+SELECT v_inbox_item_type.pk_type
+           
+  FROM dem.v_inbox_item_type
+          
+ WHERE (v_inbox_item_type.type = 'review docs'::text)
+) AS pk_type
+,
+    b_vuds.pk_patient
+,
+    true AS is_virtual
+,
+    
+(now
+     () - '01:00:00'::interval
+) AS due_date
+,
+    NULL::timestamp with time zone AS expiry_date
+,
+    true AS is_overdue
+,
+    false AS is_expired
+,
+    '01:00:00'::interval AS interval_due
+,
+    NULL::integer AS xmin_message_inbox
+   
+FROM (blobs.v_unreviewed_docs_summary b_vuds
+     
+  JOIN dem.names d_n 
+    ON (
+           (b_vuds.pk_patient = d_n.id_identity)
+     )
+)
+  
+WHERE (d_n.active IS TRUE);</pre>
+	
+
+	<!-- List off permissions -->
+	
+
+	<p>
+		<a href="gnumed-entire_schema.html#index">Index</a> -
+		<a href="gnumed-entire_schema.html#blobs.schema">Schema blobs</a>
+    </p>
+	
+        <hr>
+		<h2>View:
+			
+			<a href="gnumed-entire_schema.html#blobs.schema">blobs</a>.<a name="blobs.view.v-unreviewed-docs-summary">v_unreviewed_docs_summary</a>
+		</h2>
+        
+
+
+        <table width="100%" cellspacing="0" cellpadding="3">
+                <caption>blobs.v_unreviewed_docs_summary Structure</caption>
+                <tr>
+                <th>F-Key</th>
+                <th>Name</th>
+                <th>Type</th>
+                <th>Description</th>
+                </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_patient</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>no_of_docs</td>
+            	<td>bigint</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+        </table>
+
+        <!-- Inherits -->
+		
+
+		
+
+        <!-- Constraint List -->
+		
+
+        <!-- Foreign Key Discovery -->
+		
+
+    <!-- Indexes -->
+    
+
+	<!-- View Definition -->
+	
+	<pre>
+SELECT b_vud.pk_patient
+,
+    count
+(1) AS no_of_docs
+   
+FROM blobs.v_unreviewed_docs b_vud
+  
+GROUP BY b_vud.pk_patient;</pre>
+	
+
+	<!-- List off permissions -->
+	
+
+	<p>
+		<a href="gnumed-entire_schema.html#index">Index</a> -
+		<a href="gnumed-entire_schema.html#blobs.schema">Schema blobs</a>
+    </p>
+	
+
+	<!-- We've gone through the table structure, now lets take a look at user functions -->
+	
+		<hr>
+		<h2>Function:
+			<a href="gnumed-entire_schema.html#blobs.schema">blobs</a>.<a name="blobs.function.delete-document-integer-integer">delete_document(integer, integer)</a>
+		</h2>
+<h3>Returns: boolean</h3>
+<h3>Language: PLPGSQL</h3>
+        
+        <pre>
+DECLARE
+	_pk_doc alias for $1;
+	_pk_encounter alias for $2;
+	_del_note text;
+	_doc_row record;
+	_obj_row record;
+	tmp text;
+BEGIN
+	select * into _doc_row from blobs.doc_med where pk = _pk_doc;
+	_del_note := _('Deletion of document') || E':
+'
+		|| ' '
+			|| to_char(_doc_row.clin_when, 'YYYY-MM-DD HH24:MI')
+			|| ' "' || (select _(dt.name) from blobs.doc_type dt where pk = _doc_row.fk_type) || '"'
+			|| coalesce(' (' || _doc_row.ext_ref || ')', '')
+		|| coalesce(E'
+ ' || _doc_row.comment, '')
+	;
+	FOR _obj_row IN select * from blobs.doc_obj where fk_doc = _pk_doc order by seq_idx LOOP
+		_del_note := _del_note || E'
+'
+			|| ' #' || coalesce(_obj_row.seq_idx, '-1') || ': "' || coalesce(_obj_row.comment, '') || E'"
+'
+			|| ' ' || coalesce(_obj_row.filename, '') || E'
+';
+	end LOOP;
+	insert into clin.clin_narrative
+		(fk_encounter, fk_episode, narrative, soap_cat)
+	values (
+		_pk_encounter,
+		_doc_row.fk_episode,
+		_del_note,
+		NULL
+	);
+	-- should auto-cascade:
+	--delete from blobs.doc_obj where fk_doc = _pk_doc;
+	-- should auto-NULL:
+	--bill.bill.fk_doc
+	delete from blobs.doc_med where pk = _pk_doc;
+	return True;
+END;</pre>
+	
+		<hr>
+		<h2>Function:
+			<a href="gnumed-entire_schema.html#blobs.schema">blobs</a>.<a name="blobs.function.delete-document-part-integer-integer">delete_document_part(integer, integer)</a>
+		</h2>
+<h3>Returns: boolean</h3>
+<h3>Language: PLPGSQL</h3>
+        
+        <pre>
+DECLARE
+	_pk_doc_part alias for $1;
+	_pk_encounter alias for $2;
+	_del_note text;
+	_doc_row record;
+	_obj_row record;
+	tmp text;
+BEGIN
+	select * into _obj_row from blobs.doc_obj where pk = _pk_doc_part;
+	select * into _doc_row from blobs.doc_med where pk = _obj_row.fk_doc;
+	_del_note := _('Deletion of part from document') || E':
+'
+		|| ' '
+			|| to_char(_doc_row.clin_when, 'YYYY-MM-DD HH24:MI')
+			|| ' "' || (select _(dt.name) from blobs.doc_type dt where pk = _doc_row.fk_type) || '"'
+			|| coalesce(' (' || _doc_row.ext_ref || ')', '')
+		|| coalesce(E'
+ ' || _doc_row.comment, '')
+		|| E'
+'
+		|| ' #' || coalesce(_obj_row.seq_idx, '-1') || ': "' || coalesce(_obj_row.comment, '') || E'"
+'
+		|| ' ' || coalesce(_obj_row.filename, '') || E'
+'
+	;
+	insert into clin.clin_narrative
+		(fk_encounter, fk_episode, narrative, soap_cat)
+	values (
+		_pk_encounter,
+		_doc_row.fk_episode,
+		_del_note,
+		NULL
+	);
+	delete from blobs.doc_obj where pk = _pk_doc_part;
+	return True;
+END;</pre>
+	
+		<hr>
+		<h2>Function:
+			<a href="gnumed-entire_schema.html#blobs.schema">blobs</a>.<a name="blobs.function.trf-do-not-duplicate-primary-episode-in-link-table">trf_do_not_duplicate_primary_episode_in_link_table()</a>
+		</h2>
+<h3>Returns: trigger</h3>
+<h3>Language: PLPGSQL</h3>
+        <p>This trigger function is called before a lnk_doc_med2episode
+	 row is inserted or updated. It makes sure the episode does
+	 not duplicate the primary episode for this document listed
+	 in doc_med. If it does the insert/update is skipped.</p>
+        <pre>
+BEGIN
+	-- if already in doc_med
+	perform 1 from blobs.doc_med dm where dm.fk_episode = NEW.fk_episode and dm.pk = NEW.fk_doc_med;
+	if FOUND then
+		-- skip the insert/update
+		return null;
+	end if;
+	return NEW;
+END;</pre>
+	
+		<hr>
+		<h2>Function:
+			<a href="gnumed-entire_schema.html#blobs.schema">blobs</a>.<a name="blobs.function.trf-mark-unreviewed-on-doc-obj-update">trf_mark_unreviewed_on_doc_obj_update()</a>
+		</h2>
+<h3>Returns: trigger</h3>
+<h3>Language: PLPGSQL</h3>
+        
+        <pre>
+BEGIN
+	if (NEW.data != OLD.data) or ((NEW.data != OLD.data) is NULL) then
+		delete from blobs.reviewed_doc_objs where fk_reviewed_row = OLD.pk;
+	end if;
+	return NEW;
+END;</pre>
+	
+		<hr>
+		<h2>Function:
+			<a href="gnumed-entire_schema.html#blobs.schema">blobs</a>.<a name="blobs.function.trf-remove-primary-episode-from-link-table">trf_remove_primary_episode_from_link_table()</a>
+		</h2>
+<h3>Returns: trigger</h3>
+<h3>Language: PLPGSQL</h3>
+        <p>This trigger function is called when a doc_med row
+	 is inserted or updated. It makes sure the primary
+	 episode listed in doc_med is not duplicated in
+	 lnk_doc_med2episode for the same document. If it
+	 exists in the latter it is removed from there.</p>
+        <pre>
+BEGIN
+	-- if update
+	if TG_OP = 'UPDATE' then
+		-- and no change
+		if NEW.fk_episode = OLD.fk_episode then
+			-- then do nothing
+			return NEW;
+		end if;
+	end if;
+	-- if already in link table
+	perform 1 from blobs.lnk_doc_med2episode ldm2e where ldm2e.fk_episode = NEW.fk_episode and ldm2e.fk_doc_med = NEW.pk;
+	if FOUND then
+		-- delete from link table
+		delete from blobs.lnk_doc_med2episode where fk_episode = NEW.fk_episode and fk_doc_med = NEW.pk;
+	end if;
+	return NEW;
+END;</pre>
+	
+		<hr>
+		<h2>Function:
+			<a href="gnumed-entire_schema.html#blobs.schema">blobs</a>.<a name="blobs.function.trf-set-intended-reviewer">trf_set_intended_reviewer()</a>
+		</h2>
+<h3>Returns: trigger</h3>
+<h3>Language: PLPGSQL</h3>
+        <p>Set the default on blobs.doc_obj.fk_intended_reviewer.</p>
+        <pre>
+DECLARE
+	_pk_patient integer;
+	_pk_provider integer;
+BEGIN
+	-- explicitely set ?
+	if NEW.fk_intended_reviewer is not NULL then
+		return NEW;
+	end if;
+	-- find patient via document
+	select
+		fk_patient into _pk_patient
+	from
+		clin.encounter
+	where
+		clin.encounter.pk = (
+			select fk_encounter from blobs.doc_med where pk = NEW.fk_doc
+		);
+	-- does patient have primary provider ?
+	select
+		fk_primary_provider into _pk_provider
+	from
+		dem.identity
+	where
+		dem.identity.pk = _pk_patient;
+	if _pk_provider is not NULL then
+		NEW.fk_intended_reviewer := _pk_provider;
+		return NEW;
+	end if;
+	-- else use CURRENT_USER
+	select
+		pk into _pk_provider
+	from
+		dem.staff
+	where
+		dem.staff.db_user = current_user;
+	NEW.fk_intended_reviewer := _pk_provider;
+	return NEW;
+END;</pre>
+	
+		<hr>
+		<h2>Function:
+			<a href="gnumed-entire_schema.html#blobs.schema">blobs</a>.<a name="blobs.function.trf-verify-page-number">trf_verify_page_number()</a>
+		</h2>
+<h3>Returns: trigger</h3>
+<h3>Language: PLPGSQL</h3>
+        
+        <pre>
+declare
+	msg text;
+begin
+	if NEW.seq_idx is NULL then
+		return NEW;
+	end if;
+	perform 1 from blobs.doc_obj where pk <> NEW.pk and fk_doc = NEW.fk_doc and seq_idx = NEW.seq_idx;
+	if FOUND then
+		msg := '[blobs.trf_verify_page_number]: uniqueness violation: seq_idx [' || NEW.seq_idx || '] already exists for fk_doc [' || NEW.fk_doc || ']';
+		raise exception '%', msg;
+	end if;
+	return NEW;
+end;</pre>
+	
+
+<!-- cfgcfg -->
+
+		
+		<hr>
+		<h1>Schema cfg</h1>
+		
+			<p>This schema holds all the configuration data.</p>
+		
+
+		
+		
+        <hr>
+		<h2>Table:
+			
+			<a href="gnumed-entire_schema.html#cfg.schema">cfg</a>.<a name="cfg.table.cfg-data">cfg_data</a>
+		</h2>
+        
+         <p>stores opaque configuration data, either text or binary,
+	 note that it will be difficult to share such options
+	 among different types of clients</p>
+        
+
+
+        <table width="100%" cellspacing="0" cellpadding="3">
+                <caption>cfg.cfg_data Structure</caption>
+                <tr>
+                <th>F-Key</th>
+                <th>Name</th>
+                <th>Type</th>
+                <th>Description</th>
+                </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                  
+                  <a href="gnumed-entire_schema.html#cfg.table.cfg-item">cfg.cfg_item.pk</a>
+                  
+                
+                </td>
+            	<td>fk_item</td>
+            	<td>integer</td>
+                <td><i>
+				
+					
+
+					
+				
+
+				NOT NULL
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>value</td>
+            	<td>bytea</td>
+                <td><i>
+				
+
+				NOT NULL
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                  
+                
+                </td>
+            	<td>pk</td>
+            	<td>serial</td>
+                <td><i>
+				
+					PRIMARY KEY
+					
+
+					
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+        </table>
+
+        <!-- Inherits -->
+		
+
+		
+		
+		
+
+        <!-- Constraint List -->
+		
+
+        <!-- Foreign Key Discovery -->
+		
+
+    <!-- Indexes -->
+    
+
+	<!-- View Definition -->
+	
+
+	<!-- List off permissions -->
+	
+
+	<p>
+		<a href="gnumed-entire_schema.html#index">Index</a> -
+		<a href="gnumed-entire_schema.html#cfg.schema">Schema cfg</a>
+    </p>
+	
+        <hr>
+		<h2>Table:
+			
+			<a href="gnumed-entire_schema.html#cfg.schema">cfg</a>.<a name="cfg.table.cfg-item">cfg_item</a>
+		</h2>
+        
+         <p>this table holds all "instances" of cfg.cfg_template</p>
+        
+
+
+        <table width="100%" cellspacing="0" cellpadding="3">
+                <caption>cfg.cfg_item Structure</caption>
+                <tr>
+                <th>F-Key</th>
+                <th>Name</th>
+                <th>Type</th>
+                <th>Description</th>
+                </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                  
+                
+                </td>
+            	<td>pk</td>
+            	<td>serial</td>
+                <td><i>
+				
+					PRIMARY KEY
+					
+
+					
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                  
+                  <a href="gnumed-entire_schema.html#cfg.table.cfg-template">cfg.cfg_template.pk</a>
+                  
+                
+                  
+                
+                </td>
+            	<td>fk_template</td>
+            	<td>integer</td>
+                <td><i>
+				
+					
+
+					
+				
+					
+
+					
+                       UNIQUE#1
+                    
+				
+
+				NOT NULL
+				
+				</i>
+				<br><br>this points to the class of this option, think of this as a base object, this also defines the data type
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                  
+                
+                </td>
+            	<td>owner</td>
+            	<td>name</td>
+                <td><i>
+				
+					
+
+					
+                       UNIQUE#1
+                    
+				
+
+				NOT NULL
+				DEFAULT "current_user"()
+				</i>
+				<br><br>the database level user this option belongs to; this
+	 is the "role" of the user from the perspective of
+	 the database; can be "default" at the application
+	 level to indicate that it does not care
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                  
+                
+                </td>
+            	<td>workplace</td>
+            	<td>text</td>
+                <td><i>
+				
+					
+
+					
+                       UNIQUE#1
+                    
+				
+
+				
+				
+				</i>
+				<br><br>- the logical workplace this option pertains to
+	 - can be a hostname but should be a logical rather
+	   than a physical identifier as machines get moved,
+	   workplaces do not, kind of like a "role" for the
+	   machine
+	 - associate this with a physical workplace through
+	   a local config file or environment variable
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                  
+                
+                </td>
+            	<td>cookie</td>
+            	<td>text</td>
+                <td><i>
+				
+					
+
+					
+                       UNIQUE#1
+                    
+				
+
+				
+				
+				</i>
+				<br><br>an arbitrary, opaque entity the client code can use
+	 to associate this config item with even finer grained
+	 context; could be the pertinent patient ID for patient
+	 specific options
+				</td>
+			 </tr>
+            
+        </table>
+
+        <!-- Inherits -->
+		
+
+		
+		
+		
+
+        <!-- Constraint List -->
+		
+
+        <!-- Foreign Key Discovery -->
+		
+			<p>Tables referencing this one via Foreign Key Constraints:</p>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#cfg.table.cfg-data">cfg.cfg_data</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#cfg.table.cfg-numeric">cfg.cfg_numeric</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#cfg.table.cfg-str-array">cfg.cfg_str_array</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#cfg.table.cfg-string">cfg.cfg_string</a></li>
+			</ul>
+		
+		
+
+    <!-- Indexes -->
+    
+
+	<!-- View Definition -->
+	
+
+	<!-- List off permissions -->
+	
+
+	<p>
+		<a href="gnumed-entire_schema.html#index">Index</a> -
+		<a href="gnumed-entire_schema.html#cfg.schema">Schema cfg</a>
+    </p>
+	
+        <hr>
+		<h2>Table:
+			
+			<a href="gnumed-entire_schema.html#cfg.schema">cfg</a>.<a name="cfg.table.cfg-numeric">cfg_numeric</a>
+		</h2>
+        
+
+
+        <table width="100%" cellspacing="0" cellpadding="3">
+                <caption>cfg.cfg_numeric Structure</caption>
+                <tr>
+                <th>F-Key</th>
+                <th>Name</th>
+                <th>Type</th>
+                <th>Description</th>
+                </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                  
+                  <a href="gnumed-entire_schema.html#cfg.table.cfg-item">cfg.cfg_item.pk</a>
+                  
+                
+                </td>
+            	<td>fk_item</td>
+            	<td>integer</td>
+                <td><i>
+				
+					
+
+					
+				
+
+				NOT NULL
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>value</td>
+            	<td>numeric</td>
+                <td><i>
+				
+
+				NOT NULL
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                  
+                
+                </td>
+            	<td>pk</td>
+            	<td>serial</td>
+                <td><i>
+				
+					PRIMARY KEY
+					
+
+					
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+        </table>
+
+        <!-- Inherits -->
+		
+
+		
+		
+		
+
+        <!-- Constraint List -->
+		
+
+        <!-- Foreign Key Discovery -->
+		
+
+    <!-- Indexes -->
+    
+
+	<!-- View Definition -->
+	
+
+	<!-- List off permissions -->
+	
+
+	<p>
+		<a href="gnumed-entire_schema.html#index">Index</a> -
+		<a href="gnumed-entire_schema.html#cfg.schema">Schema cfg</a>
+    </p>
+	
+        <hr>
+		<h2>Table:
+			
+			<a href="gnumed-entire_schema.html#cfg.schema">cfg</a>.<a name="cfg.table.cfg-str-array">cfg_str_array</a>
+		</h2>
+        
+
+
+        <table width="100%" cellspacing="0" cellpadding="3">
+                <caption>cfg.cfg_str_array Structure</caption>
+                <tr>
+                <th>F-Key</th>
+                <th>Name</th>
+                <th>Type</th>
+                <th>Description</th>
+                </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                  
+                  <a href="gnumed-entire_schema.html#cfg.table.cfg-item">cfg.cfg_item.pk</a>
+                  
+                
+                </td>
+            	<td>fk_item</td>
+            	<td>integer</td>
+                <td><i>
+				
+					
+
+					
+				
+
+				NOT NULL
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>value</td>
+            	<td>text[]</td>
+                <td><i>
+				
+
+				NOT NULL
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                  
+                
+                </td>
+            	<td>pk</td>
+            	<td>serial</td>
+                <td><i>
+				
+					PRIMARY KEY
+					
+
+					
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+        </table>
+
+        <!-- Inherits -->
+		
+
+		
+		
+		
+
+        <!-- Constraint List -->
+		
+
+        <!-- Foreign Key Discovery -->
+		
+
+    <!-- Indexes -->
+    
+
+	<!-- View Definition -->
+	
+
+	<!-- List off permissions -->
+	
+
+	<p>
+		<a href="gnumed-entire_schema.html#index">Index</a> -
+		<a href="gnumed-entire_schema.html#cfg.schema">Schema cfg</a>
+    </p>
+	
+        <hr>
+		<h2>Table:
+			
+			<a href="gnumed-entire_schema.html#cfg.schema">cfg</a>.<a name="cfg.table.cfg-string">cfg_string</a>
+		</h2>
+        
+
+
+        <table width="100%" cellspacing="0" cellpadding="3">
+                <caption>cfg.cfg_string Structure</caption>
+                <tr>
+                <th>F-Key</th>
+                <th>Name</th>
+                <th>Type</th>
+                <th>Description</th>
+                </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                  
+                  <a href="gnumed-entire_schema.html#cfg.table.cfg-item">cfg.cfg_item.pk</a>
+                  
+                
+                </td>
+            	<td>fk_item</td>
+            	<td>integer</td>
+                <td><i>
+				
+					
+
+					
+				
+
+				NOT NULL
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>value</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				NOT NULL
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                  
+                
+                </td>
+            	<td>pk</td>
+            	<td>serial</td>
+                <td><i>
+				
+					PRIMARY KEY
+					
+
+					
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+        </table>
+
+        <!-- Inherits -->
+		
+
+		
+		
+		
+
+        <!-- Constraint List -->
+		
+
+        <!-- Foreign Key Discovery -->
+		
+
+    <!-- Indexes -->
+    
+
+	<!-- View Definition -->
+	
+
+	<!-- List off permissions -->
+	
+
+	<p>
+		<a href="gnumed-entire_schema.html#index">Index</a> -
+		<a href="gnumed-entire_schema.html#cfg.schema">Schema cfg</a>
+    </p>
+	
+        <hr>
+		<h2>Table:
+			
+			<a href="gnumed-entire_schema.html#cfg.schema">cfg</a>.<a name="cfg.table.cfg-template">cfg_template</a>
+		</h2>
+        
+         <p>meta definition of config items</p>
+        
+
+
+        <table width="100%" cellspacing="0" cellpadding="3">
+                <caption>cfg.cfg_template Structure</caption>
+                <tr>
+                <th>F-Key</th>
+                <th>Name</th>
+                <th>Type</th>
+                <th>Description</th>
+                </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                  
+                
+                </td>
+            	<td>pk</td>
+            	<td>serial</td>
+                <td><i>
+				
+					PRIMARY KEY
+					
+
+					
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>name</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				NOT NULL
+				DEFAULT 'must set this !'::text
+				</i>
+				<br><br>the name of the option; this MUST be set to something meaningful
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                  
+                  <a href="gnumed-entire_schema.html#cfg.table.cfg-type-enum">cfg.cfg_type_enum.name</a>
+                  
+                
+                </td>
+            	<td>type</td>
+            	<td>text</td>
+                <td><i>
+				
+					
+
+					
+				
+
+				NOT NULL
+				
+				</i>
+				<br><br>type of the value
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>cfg_group</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				NOT NULL
+				DEFAULT 'xxxDEFAULTxxx'::text
+				</i>
+				<br><br>just for logical grouping of options according to task sets to facilitate better config management
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>description</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				NOT NULL
+				DEFAULT 'programmer is an avid Camel Book Reader'::text
+				</i>
+				<br><br>arbitrary description (user visible)
+				</td>
+			 </tr>
+            
+        </table>
+
+        <!-- Inherits -->
+		
+
+		
+		
+		
+
+        <!-- Constraint List -->
+		
+
+        <!-- Foreign Key Discovery -->
+		
+			<p>Tables referencing this one via Foreign Key Constraints:</p>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#cfg.table.cfg-item">cfg.cfg_item</a></li>
+			</ul>
+		
+		
+
+    <!-- Indexes -->
+    
+
+	<!-- View Definition -->
+	
+
+	<!-- List off permissions -->
+	
+
+	<p>
+		<a href="gnumed-entire_schema.html#index">Index</a> -
+		<a href="gnumed-entire_schema.html#cfg.schema">Schema cfg</a>
+    </p>
+	
+        <hr>
+		<h2>Table:
+			
+			<a href="gnumed-entire_schema.html#cfg.schema">cfg</a>.<a name="cfg.table.cfg-type-enum">cfg_type_enum</a>
+		</h2>
+        
+         <p>enumeration of config option data types</p>
+        
+
+
+        <table width="100%" cellspacing="0" cellpadding="3">
+                <caption>cfg.cfg_type_enum Structure</caption>
+                <tr>
+                <th>F-Key</th>
+                <th>Name</th>
+                <th>Type</th>
+                <th>Description</th>
+                </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                  
+                
+                </td>
+            	<td>name</td>
+            	<td>text</td>
+                <td><i>
+				
+					
+
+					
+                       UNIQUE
+                    
+				
+
+				NOT NULL
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+        </table>
+
+        <!-- Inherits -->
+		
+
+		
+		
+		
+
+        <!-- Constraint List -->
+		
+
+        <!-- Foreign Key Discovery -->
+		
+			<p>Tables referencing this one via Foreign Key Constraints:</p>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#cfg.table.cfg-template">cfg.cfg_template</a></li>
+			</ul>
+		
+		
+
+    <!-- Indexes -->
+    
+
+	<!-- View Definition -->
+	
+
+	<!-- List off permissions -->
+	
+
+	<p>
+		<a href="gnumed-entire_schema.html#index">Index</a> -
+		<a href="gnumed-entire_schema.html#cfg.schema">Schema cfg</a>
+    </p>
+	
+        <hr>
+		<h2>Table:
+			
+			<a href="gnumed-entire_schema.html#cfg.schema">cfg</a>.<a name="cfg.table.config">config</a>
+		</h2>
+        
+         <p>maps a service name to a database location
+	 for a particular user, includes user
+	 credentials for that database</p>
+        
+
+
+        <table width="100%" cellspacing="0" cellpadding="3">
+                <caption>cfg.config Structure</caption>
+                <tr>
+                <th>F-Key</th>
+                <th>Name</th>
+                <th>Type</th>
+                <th>Description</th>
+                </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                  
+                
+                </td>
+            	<td>id</td>
+            	<td>serial</td>
+                <td><i>
+				
+					PRIMARY KEY
+					
+
+					
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>profile</td>
+            	<td>character(25)</td>
+                <td><i>
+				
+
+				
+				DEFAULT 'default'::bpchar
+				</i>
+				<br><br>allows multiple profiles per user/
+	 pseudo user, one user may have different
+	 configuration profiles depending on role,
+	 need and location
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>username</td>
+            	<td>character(25)</td>
+                <td><i>
+				
+
+				
+				DEFAULT "current_user"()
+				</i>
+				<br><br>user name as used within the GNUmed system
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>ddb</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				<br><br>which GNUmed service are we mapping to a database here
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>db</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				<br><br>how to reach the database host for this service
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>crypt_pwd</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				<br><br>password for user and database, encrypted
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>crypt_algo</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				<br><br>encryption algorithm used for password encryption
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>pwd_hash</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				<br><br>hash of the unencrypted password
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>hash_algo</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				<br><br>algorithm used for password hashing
+				</td>
+			 </tr>
+            
+        </table>
+
+        <!-- Inherits -->
+		
+
+		
+		
+		
+
+        <!-- Constraint List -->
+		
+
+        <!-- Foreign Key Discovery -->
+		
+
+    <!-- Indexes -->
+    
+
+	<!-- View Definition -->
+	
+
+	<!-- List off permissions -->
+	
+
+	<p>
+		<a href="gnumed-entire_schema.html#index">Index</a> -
+		<a href="gnumed-entire_schema.html#cfg.schema">Schema cfg</a>
+    </p>
+	
+        <hr>
+		<h2>Table:
+			
+			<a href="gnumed-entire_schema.html#cfg.schema">cfg</a>.<a name="cfg.table.db-logon-banner">db_logon_banner</a>
+		</h2>
+        
+         <p>Stores a banner to show when clients log on.</p>
+        
+
+
+        <table width="100%" cellspacing="0" cellpadding="3">
+                <caption>cfg.db_logon_banner Structure</caption>
+                <tr>
+                <th>F-Key</th>
+                <th>Name</th>
+                <th>Type</th>
+                <th>Description</th>
+                </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>message</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				<br><br>The actual message to show.
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                  
+                
+                </td>
+            	<td>singularizer</td>
+            	<td>boolean</td>
+                <td><i>
+				
+					
+
+					
+                       UNIQUE
+                    
+				
+
+				
+				DEFAULT true
+				</i>
+				<br><br>Makes sure there only ever is one such banner at any given time.
+				</td>
+			 </tr>
+            
+        </table>
+
+        <!-- Inherits -->
+		
+
+		
+		
+		
+
+        <!-- Constraint List -->
+		
+        <p> </p>
+		<table width="100%" cellspacing="0" cellpadding="3">
+            <caption>cfg.db_logon_banner Constraints</caption>
+            <tr>
+            	<th>Name</th>
+            	<th>Constraint</th>
+            </tr>
+			
+            <tr class="tr0">
+				<td>db_logon_banner_message_check</td>
+                <td>CHECK ((btrim(message) <> ''::text))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>db_logon_banner_singularizer_check</td>
+                <td>CHECK ((singularizer IS TRUE))</td>
+            </tr>
+			
+		</table>
+		
+
+        <!-- Foreign Key Discovery -->
+		
+
+    <!-- Indexes -->
+    
+
+	<!-- View Definition -->
+	
+
+	<!-- List off permissions -->
+	
+
+	<p>
+		<a href="gnumed-entire_schema.html#index">Index</a> -
+		<a href="gnumed-entire_schema.html#cfg.schema">Schema cfg</a>
+    </p>
+	
+        <hr>
+		<h2>Table:
+			
+			<a href="gnumed-entire_schema.html#cfg.schema">cfg</a>.<a name="cfg.table.report-query">report_query</a>
+		</h2>
+        
+         <p>This table stores SQL commands to be used in frontend report style queries.</p>
+        
+
+
+        <table width="100%" cellspacing="0" cellpadding="3">
+                <caption>cfg.report_query Structure</caption>
+                <tr>
+                <th>F-Key</th>
+                <th>Name</th>
+                <th>Type</th>
+                <th>Description</th>
+                </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_audit</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				NOT NULL
+				DEFAULT nextval('audit.audit_fields_pk_audit_seq'::regclass)
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>row_version</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				NOT NULL
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>modified_when</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				NOT NULL
+				DEFAULT now()
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
+                
+                </td>
+            	<td>modified_by</td>
+            	<td>name</td>
+                <td><i>
+				
+					
+
+					
+				
+
+				NOT NULL
+				DEFAULT "current_user"()
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                  
+                
+                </td>
+            	<td>pk</td>
+            	<td>serial</td>
+                <td><i>
+				
+					PRIMARY KEY
+					
+
+					
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                  
+                
+                </td>
+            	<td>label</td>
+            	<td>text</td>
+                <td><i>
+				
+					
+
+					
+                       UNIQUE
+                    
+				
+
+				NOT NULL
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>cmd</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				NOT NULL
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+        </table>
+
+        <!-- Inherits -->
+		
+        <p>Table cfg.report_query Inherits
+        
+            
+           <a href="gnumed-entire_schema.html#audit.table.audit-fields">audit_fields</a>, 
+        
+        </p>
+		
+
+		
+		
+		
+
+        <!-- Constraint List -->
+		
+        <p> </p>
+		<table width="100%" cellspacing="0" cellpadding="3">
+            <caption>cfg.report_query Constraints</caption>
+            <tr>
+            	<th>Name</th>
+            	<th>Constraint</th>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>report_query_cmd_check</td>
+                <td>CHECK ((btrim(COALESCE(cmd, 'NULL'::text)) <> ''::text))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>report_query_label_check</td>
+                <td>CHECK ((btrim(COALESCE(label, 'NULL'::text)) <> ''::text))</td>
+            </tr>
+			
+		</table>
+		
+
+        <!-- Foreign Key Discovery -->
+		
+
+    <!-- Indexes -->
+    
+
+	<!-- View Definition -->
+	
+
+	<!-- List off permissions -->
+	
+
+	<p>
+		<a href="gnumed-entire_schema.html#index">Index</a> -
+		<a href="gnumed-entire_schema.html#cfg.schema">Schema cfg</a>
+    </p>
+	
+        <hr>
+		<h2>View:
+			
+			<a href="gnumed-entire_schema.html#cfg.schema">cfg</a>.<a name="cfg.view.v-cfg-options">v_cfg_options</a>
+		</h2>
+        
+
+
+        <table width="100%" cellspacing="0" cellpadding="3">
+                <caption>cfg.v_cfg_options Structure</caption>
+                <tr>
+                <th>F-Key</th>
+                <th>Name</th>
+                <th>Type</th>
+                <th>Description</th>
+                </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>option</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>description</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>owner</td>
+            	<td>name</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>workplace</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>cookie</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>type</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>group</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>pk_cfg_template</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_cfg_item</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+        </table>
+
+        <!-- Inherits -->
+		
+
+		
+
+        <!-- Constraint List -->
+		
+
+        <!-- Foreign Key Discovery -->
+		
+
+    <!-- Indexes -->
+    
+
+	<!-- View Definition -->
+	
+	<pre>
+SELECT cfg_t.name AS option
+,
+    cfg_t.description
+,
+    cfg_i.owner
+,
+    cfg_i.workplace
+,
+    cfg_i.cookie
+,
+    cfg_t.type
+,
+    cfg_t.cfg_group AS "group"
+,
+    cfg_t.pk AS pk_cfg_template
+,
+    cfg_i.pk AS pk_cfg_item
+   
+FROM cfg.cfg_template cfg_t
+,
+    cfg.cfg_item cfg_i
+  
+WHERE (cfg_i.fk_template = cfg_t.pk);</pre>
+	
+
+	<!-- List off permissions -->
+	
+
+	<p>
+		<a href="gnumed-entire_schema.html#index">Index</a> -
+		<a href="gnumed-entire_schema.html#cfg.schema">Schema cfg</a>
+    </p>
+	
+        <hr>
+		<h2>View:
+			
+			<a href="gnumed-entire_schema.html#cfg.schema">cfg</a>.<a name="cfg.view.v-cfg-opts-data">v_cfg_opts_data</a>
+		</h2>
+        
+
+
+        <table width="100%" cellspacing="0" cellpadding="3">
+                <caption>cfg.v_cfg_opts_data Structure</caption>
+                <tr>
+                <th>F-Key</th>
+                <th>Name</th>
+                <th>Type</th>
+                <th>Description</th>
+                </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>option</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>value</td>
+            	<td>bytea</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>description</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>owner</td>
+            	<td>name</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>workplace</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>cookie</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>group</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>pk_cfg_template</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_cfg_item</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+        </table>
+
+        <!-- Inherits -->
+		
+
+		
+
+        <!-- Constraint List -->
+		
+
+        <!-- Foreign Key Discovery -->
+		
+
+    <!-- Indexes -->
+    
+
+	<!-- View Definition -->
+	
+	<pre>
+SELECT cfg_t.name AS option
+,
+    cfg_v.value
+,
+    cfg_t.description
+,
+    cfg_i.owner
+,
+    cfg_i.workplace
+,
+    cfg_i.cookie
+,
+    cfg_t.cfg_group AS "group"
+,
+    cfg_t.pk AS pk_cfg_template
+,
+    cfg_i.pk AS pk_cfg_item
+   
+FROM cfg.cfg_template cfg_t
+,
+    cfg.cfg_item cfg_i
+,
+    cfg.cfg_data cfg_v
+  
+WHERE (
+     (cfg_i.fk_template = cfg_t.pk)
+   AND (cfg_v.fk_item = cfg_i.pk)
+);</pre>
+	
+
+	<!-- List off permissions -->
+	
+
+	<p>
+		<a href="gnumed-entire_schema.html#index">Index</a> -
+		<a href="gnumed-entire_schema.html#cfg.schema">Schema cfg</a>
+    </p>
+	
+        <hr>
+		<h2>View:
+			
+			<a href="gnumed-entire_schema.html#cfg.schema">cfg</a>.<a name="cfg.view.v-cfg-opts-numeric">v_cfg_opts_numeric</a>
+		</h2>
+        
+
+
+        <table width="100%" cellspacing="0" cellpadding="3">
+                <caption>cfg.v_cfg_opts_numeric Structure</caption>
+                <tr>
+                <th>F-Key</th>
+                <th>Name</th>
+                <th>Type</th>
+                <th>Description</th>
+                </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>option</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>value</td>
+            	<td>numeric</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>description</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>owner</td>
+            	<td>name</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>workplace</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>cookie</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>group</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>pk_cfg_template</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_cfg_item</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+        </table>
+
+        <!-- Inherits -->
+		
+
+		
+
+        <!-- Constraint List -->
+		
+
+        <!-- Foreign Key Discovery -->
+		
+
+    <!-- Indexes -->
+    
+
+	<!-- View Definition -->
+	
+	<pre>
+SELECT cfg_t.name AS option
+,
+    cfg_v.value
+,
+    cfg_t.description
+,
+    cfg_i.owner
+,
+    cfg_i.workplace
+,
+    cfg_i.cookie
+,
+    cfg_t.cfg_group AS "group"
+,
+    cfg_t.pk AS pk_cfg_template
+,
+    cfg_i.pk AS pk_cfg_item
+   
+FROM cfg.cfg_template cfg_t
+,
+    cfg.cfg_item cfg_i
+,
+    cfg.cfg_numeric cfg_v
+  
+WHERE (
+     (cfg_i.fk_template = cfg_t.pk)
+   AND (cfg_v.fk_item = cfg_i.pk)
+);</pre>
+	
+
+	<!-- List off permissions -->
+	
+
+	<p>
+		<a href="gnumed-entire_schema.html#index">Index</a> -
+		<a href="gnumed-entire_schema.html#cfg.schema">Schema cfg</a>
+    </p>
+	
+        <hr>
+		<h2>View:
+			
+			<a href="gnumed-entire_schema.html#cfg.schema">cfg</a>.<a name="cfg.view.v-cfg-opts-str-array">v_cfg_opts_str_array</a>
+		</h2>
+        
+
+
+        <table width="100%" cellspacing="0" cellpadding="3">
+                <caption>cfg.v_cfg_opts_str_array Structure</caption>
+                <tr>
+                <th>F-Key</th>
+                <th>Name</th>
+                <th>Type</th>
+                <th>Description</th>
+                </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>option</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>value</td>
+            	<td>text[]</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>description</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>owner</td>
+            	<td>name</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>workplace</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>cookie</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>group</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>pk_cfg_template</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_cfg_item</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+        </table>
+
+        <!-- Inherits -->
+		
+
+		
+
+        <!-- Constraint List -->
+		
+
+        <!-- Foreign Key Discovery -->
+		
+
+    <!-- Indexes -->
+    
+
+	<!-- View Definition -->
+	
+	<pre>
+SELECT cfg_t.name AS option
+,
+    cfg_v.value
+,
+    cfg_t.description
+,
+    cfg_i.owner
+,
+    cfg_i.workplace
+,
+    cfg_i.cookie
+,
+    cfg_t.cfg_group AS "group"
+,
+    cfg_t.pk AS pk_cfg_template
+,
+    cfg_i.pk AS pk_cfg_item
+   
+FROM cfg.cfg_template cfg_t
+,
+    cfg.cfg_item cfg_i
+,
+    cfg.cfg_str_array cfg_v
+  
+WHERE (
+     (cfg_i.fk_template = cfg_t.pk)
+   AND (cfg_v.fk_item = cfg_i.pk)
+);</pre>
 	
-		<hr>
-		<h2>Function:
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.function.ft-upd-vaccination-course-constraint">ft_upd_vaccination_course_constraint()</a>
-		</h2>
-<h3>Returns: trigger</h3>
-<h3>Language: PLPGSQL</h3>
-        
-        <pre>
-BEGIN
-	NEW.row_version := OLD.row_version + 1;
-	NEW.modified_when := CURRENT_TIMESTAMP;
-	NEW.modified_by := SESSION_USER;
-	INSERT INTO audit.log_vaccination_course_constraint (
-		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, description
-	) VALUES (
-		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.description
-	);
-	return NEW;
-END;</pre>
+
+	<!-- List off permissions -->
 	
-		<hr>
-		<h2>Function:
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.function.ft-upd-vaccination-definition">ft_upd_vaccination_definition()</a>
-		</h2>
-<h3>Returns: trigger</h3>
-<h3>Language: PLPGSQL</h3>
-        
-        <pre>
-BEGIN
-	NEW.row_version := OLD.row_version + 1;
-	NEW.modified_when := CURRENT_TIMESTAMP;
-	NEW.modified_by := SESSION_USER;
-	INSERT INTO audit.log_vaccination_definition (
-		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, id, fk_course, is_booster, seq_no, min_age_due, max_age_due, min_interval, comment
-	) VALUES (
-		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.id, OLD.fk_course, OLD.is_booster, OLD.seq_no, OLD.min_age_due, OLD.max_age_due, OLD.min_interval, OLD.comment
-	);
-	return NEW;
-END;</pre>
+
+	<p>
+		<a href="gnumed-entire_schema.html#index">Index</a> -
+		<a href="gnumed-entire_schema.html#cfg.schema">Schema cfg</a>
+    </p>
 	
-		<hr>
-		<h2>Function:
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.function.ft-upd-vaccination-schedule">ft_upd_vaccination_schedule()</a>
+        <hr>
+		<h2>View:
+			
+			<a href="gnumed-entire_schema.html#cfg.schema">cfg</a>.<a name="cfg.view.v-cfg-opts-string">v_cfg_opts_string</a>
 		</h2>
-<h3>Returns: trigger</h3>
-<h3>Language: PLPGSQL</h3>
         
-        <pre>
-BEGIN
-	NEW.row_version := OLD.row_version + 1;
-	NEW.modified_when := CURRENT_TIMESTAMP;
-	NEW.modified_by := SESSION_USER;
-	INSERT INTO audit.log_vaccination_schedule (
-		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, name, comment
-	) VALUES (
-		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.name, OLD.comment
-	);
-	return NEW;
-END;</pre>
+
+
+        <table width="100%" cellspacing="0" cellpadding="3">
+                <caption>cfg.v_cfg_opts_string Structure</caption>
+                <tr>
+                <th>F-Key</th>
+                <th>Name</th>
+                <th>Type</th>
+                <th>Description</th>
+                </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>option</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>value</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>description</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>owner</td>
+            	<td>name</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>workplace</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>cookie</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>group</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>pk_cfg_template</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_cfg_item</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+        </table>
+
+        <!-- Inherits -->
+		
+
+		
+
+        <!-- Constraint List -->
+		
+
+        <!-- Foreign Key Discovery -->
+		
+
+    <!-- Indexes -->
+    
+
+	<!-- View Definition -->
 	
-		<hr>
-		<h2>Function:
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.function.ft-upd-vaccine">ft_upd_vaccine()</a>
-		</h2>
-<h3>Returns: trigger</h3>
-<h3>Language: PLPGSQL</h3>
-        
-        <pre>
-BEGIN
-	NEW.row_version := OLD.row_version + 1;
-	NEW.modified_when := CURRENT_TIMESTAMP;
-	NEW.modified_by := SESSION_USER;
-	INSERT INTO audit.log_vaccine (
-		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, id_route, is_live, min_age, max_age, comment, fk_brand
-	) VALUES (
-		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.id_route, OLD.is_live, OLD.min_age, OLD.max_age, OLD.comment, OLD.fk_brand
-	);
-	return NEW;
-END;</pre>
+	<pre>
+SELECT cfg_t.name AS option
+,
+    cfg_v.value
+,
+    cfg_t.description
+,
+    cfg_i.owner
+,
+    cfg_i.workplace
+,
+    cfg_i.cookie
+,
+    cfg_t.cfg_group AS "group"
+,
+    cfg_t.pk AS pk_cfg_template
+,
+    cfg_i.pk AS pk_cfg_item
+   
+FROM cfg.cfg_template cfg_t
+,
+    cfg.cfg_item cfg_i
+,
+    cfg.cfg_string cfg_v
+  
+WHERE (
+     (cfg_i.fk_template = cfg_t.pk)
+   AND (cfg_v.fk_item = cfg_i.pk)
+);</pre>
 	
-		<hr>
-		<h2>Function:
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.function.ft-upd-vaccine-batches">ft_upd_vaccine_batches()</a>
-		</h2>
-<h3>Returns: trigger</h3>
-<h3>Language: PLPGSQL</h3>
-        
-        <pre>
-BEGIN
-	NEW.row_version := OLD.row_version + 1;
-	NEW.modified_when := CURRENT_TIMESTAMP;
-	NEW.modified_by := SESSION_USER;
-	INSERT INTO audit.log_vaccine_batches (
-		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, fk_vaccine, batch_no
-	) VALUES (
-		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.fk_vaccine, OLD.batch_no
-	);
-	return NEW;
-END;</pre>
+
+	<!-- List off permissions -->
 	
-		<hr>
-		<h2>Function:
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.function.ft-upd-waiting-list">ft_upd_waiting_list()</a>
-		</h2>
-<h3>Returns: trigger</h3>
-<h3>Language: PLPGSQL</h3>
-        
-        <pre>
-BEGIN
-	NEW.row_version := OLD.row_version + 1;
-	NEW.modified_when := CURRENT_TIMESTAMP;
-	NEW.modified_by := SESSION_USER;
-	INSERT INTO audit.log_waiting_list (
-		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, fk_patient, registered, urgency, list_position, comment, area
-	) VALUES (
-		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.fk_patient, OLD.registered, OLD.urgency, OLD.list_position, OLD.comment, OLD.area
-	);
-	return NEW;
-END;</pre>
+
+	<p>
+		<a href="gnumed-entire_schema.html#index">Index</a> -
+		<a href="gnumed-entire_schema.html#cfg.schema">Schema cfg</a>
+    </p>
+	
+
+	<!-- We've gone through the table structure, now lets take a look at user functions -->
 	
 		<hr>
 		<h2>Function:
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.function.ft-upd-xlnk-identity">ft_upd_xlnk_identity()</a>
+			<a href="gnumed-entire_schema.html#cfg.schema">cfg</a>.<a name="cfg.function.create-cfg-item-text-text-text-text-text">create_cfg_item(text, text, text, text, text)</a>
 		</h2>
-<h3>Returns: trigger</h3>
+<h3>Returns: integer</h3>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
-BEGIN
-	NEW.row_version := OLD.row_version + 1;
-	NEW.modified_when := CURRENT_TIMESTAMP;
-	NEW.modified_by := SESSION_USER;
-	INSERT INTO audit.log_xlnk_identity (
-		orig_version, orig_when, orig_by, orig_tableoid, audit_action,
-		pk_audit, row_version, modified_when, modified_by, pk, xfk_identity, pupic, data
-	) VALUES (
-		OLD.row_version, OLD.modified_when, OLD.modified_by, TG_RELID, TG_OP,
-		OLD.pk_audit, OLD.row_version, OLD.modified_when, OLD.modified_by, OLD.pk, OLD.xfk_identity, OLD.pupic, OLD.data
+declare
+	_option alias for $1;
+	_val_type alias for $2;
+	_workplace alias for $3;
+	_cookie alias for $4;
+	_owner alias for $5;
+	real_owner text;
+	pk_template integer;
+	pk_item integer;
+begin
+	-- check template
+	select into pk_template pk from cfg.cfg_template where name = _option and type = _val_type;
+	if not FOUND then
+		insert into cfg.cfg_template (name, type) values (_option, _val_type);
+		select into pk_template currval('cfg.cfg_template_pk_seq');
+	end if;
+	if _owner is null then
+		select into real_owner CURRENT_USER;
+	else
+		real_owner := _owner;
+	end if;
+	-- check item
+	if _cookie is NULL then
+		select into pk_item pk from cfg.cfg_item where
+			fk_template = pk_template and
+			owner = real_owner and
+			workplace = _workplace and
+			cookie is null;
+	else
+		select into pk_item pk from cfg.cfg_item where
+			fk_template = pk_template and
+			owner = real_owner and
+			workplace = _workplace and
+			cookie = _cookie;
+	end if;
+	if FOUND then
+		return pk_item;
+	end if;
+	insert into cfg.cfg_item (
+		fk_template, workplace, cookie, owner
+	) values (
+		pk_template,
+		_workplace,
+		_cookie,
+		real_owner
 	);
-	return NEW;
-END;</pre>
+	select into pk_item currval('cfg.cfg_item_pk_seq');
+	return pk_item;
+end;</pre>
 	
 		<hr>
 		<h2>Function:
-			<a href="gnumed-entire_schema.html#audit.schema">audit</a>.<a name="audit.function.register-table-for-auditing-name-name">register_table_for_auditing(name, name)</a>
+			<a href="gnumed-entire_schema.html#cfg.schema">cfg</a>.<a name="cfg.function.set-option-text-anyelement-text-text-text">set_option(text, anyelement, text, text, text)</a>
 		</h2>
 <h3>Returns: boolean</h3>
 <h3>Language: PLPGSQL</h3>
-        <p>sanity-checking convenience function for registering a table for auditing</p>
+        <p>set option, owner = NULL means CURRENT_USER</p>
         <pre>
-DECLARE
-	_schema alias for $1;
-	_table alias for $2;
-BEGIN
-	-- does table exist ?
-	perform 1 from pg_class where
-		relname = _table
-			and
-		relnamespace = (select oid from pg_namespace where nspname = _schema)
-	;
-	if not found then
-		raise exception 'audit.register_table_for_auditing(): table [%.%] does not exist', _schema, _table;
-		return false;
+declare
+	_option alias for $1;
+	_value alias for $2;
+	_workplace alias for $3;
+	_cookie alias for $4;
+	_owner alias for $5;
+	val_type text;
+	pk_item integer;
+	rows integer;
+	cmd text;
+begin
+	-- determine data type
+	if _value is of (text, char, varchar, name) then
+		val_type := 'string';
+	elsif _value is of (smallint, integer, bigint, numeric, boolean) then
+		val_type := 'numeric';
+	elsif _value is of (bytea) then
+		val_type := 'data';
+	elsif _value is of (text[]) then
+		val_type := 'str_array';
+	else
+		raise exception 'cfg.set_option(text, any, text, text, text): invalid type of value';
 	end if;
-	-- already queued for auditing ?
-	perform 1 from audit.audited_tables where
-		table_name = _table
-			and
-		schema = _schema;
-	if found then
-		return true;
+	-- create template/item if need be
+	select into pk_item cfg.create_cfg_item(_option, val_type, _workplace, _cookie, _owner);
+	-- set item value
+	cmd := 'select 1 from cfg.cfg_' || val_type || ' where fk_item=' || pk_item || ';';
+	execute cmd;
+	get diagnostics rows = row_count;
+	found := rows <> 0;
+	if FOUND then
+		if val_type = 'str_array' then
+			cmd := 'update cfg.cfg_str_array set value=''{"' || array_to_string(_value, '","') || '"}'' where fk_item=' || pk_item || ';';
+		elsif val_type = 'data' then
+			cmd := 'update cfg.cfg_data set value=''' || encode(_value, 'escape') || ''' where fk_item=' || pk_item || ';';
+		else
+			cmd := 'update cfg.cfg_' || val_type || ' set value=' || quote_literal(_value) || ' where fk_item=' || pk_item || ';';
+		end if;
+		execute cmd;
+		return True;
 	end if;
-	-- add definition
-	insert into audit.audited_tables (
-		schema, table_name
-	) values (
-		_schema, _table
-	);
-	return true;
-END;</pre>
+	if val_type = 'str_array' then
+		cmd := 'insert into cfg.cfg_str_array(fk_item, value) values (' || pk_item || ', ''{"' || array_to_string(_value, '","') || '"}'');';
+	elsif val_type = 'data' then
+		cmd := 'insert into cfg.cfg_data(fk_item, value) values (' || pk_item || ', ''' || encode(_value, 'escape') || ''');';
+	else
+		cmd := 'insert into cfg.cfg_' || val_type || ' (fk_item, value) values (' || pk_item || ', ' || quote_literal(_value) || ');';
+	end if;
+	execute cmd;
+	return True;
+end;</pre>
 	
 
-<!-- billbill -->
+<!-- clinclin -->
 
 		
 		<hr>
-		<h1>Schema bill</h1>
-		
-			<p>Holds everything related to billing.</p>
+		<h1>Schema clin</h1>
 		
 
 		
@@ -40297,15 +54296,13 @@ END;</pre>
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#bill.schema">bill</a>.<a name="bill.table.bill">bill</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.-enum-allergy-type">_enum_allergy_type</a>
 		</h2>
         
-         <p>actual bills</p>
-        
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>bill.bill Structure</caption>
+                <caption>clin._enum_allergy_type Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -40316,70 +54313,6 @@ END;</pre>
             <tr class="tr0">
 				<td>
                 
-                </td>
-            	<td>pk_audit</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				NOT NULL
-				DEFAULT nextval('audit.audit_fields_pk_audit_seq'::regclass)
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>row_version</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				NOT NULL
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>modified_when</td>
-            	<td>timestamp with time zone</td>
-                <td><i>
-				
-
-				NOT NULL
-				DEFAULT now()
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>modified_by</td>
-            	<td>name</td>
-                <td><i>
-				
-
-				NOT NULL
-				DEFAULT "current_user"()
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
                   
                 
                 </td>
@@ -40406,7 +54339,7 @@ END;</pre>
                   
                 
                 </td>
-            	<td>invoice_id</td>
+            	<td>value</td>
             	<td>text</td>
                 <td><i>
 				
@@ -40417,130 +54350,10 @@ END;</pre>
                     
 				
 
-				
-				
-				</i>
-				<br><br>the ID of the bill
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>close_date</td>
-            	<td>timestamp with time zone</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				<br><br>cannot add further bill_items after this date if not NULL
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>apply_vat</td>
-            	<td>boolean</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				<br><br>whether or not to apply VAT on the invoice
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                  
-                  <a href="gnumed-entire_schema.html#dem.table.identity">dem.identity.pk</a>
-                  
-                
-                </td>
-            	<td>fk_receiver_identity</td>
-            	<td>integer</td>
-                <td><i>
-				
-					
-
-					
-				
-
-				
-				
-				</i>
-				<br><br>link to the receiver as a GNUmed identity, if known
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                  
-                  <a href="gnumed-entire_schema.html#dem.table.lnk-person-org-address">dem.lnk_person_org_address.id</a>
-                  
-                
-                </td>
-            	<td>fk_receiver_address</td>
-            	<td>integer</td>
-                <td><i>
-				
-					
-
-					
-				
-
-				
-				
-				</i>
-				<br><br>links the address of the receiver of the invoice
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                  
-                  <a href="gnumed-entire_schema.html#blobs.table.doc-med">blobs.doc_med.pk</a>
-                  
-                
-                </td>
-            	<td>fk_doc</td>
-            	<td>integer</td>
-                <td><i>
-				
-					
-
-					
-				
-
-				
+				NOT NULL
 				
 				</i>
-				<br><br>links to the document which contains the invoice PDF
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>comment</td>
-            	<td>text</td>
-                <td><i>
 				
-
-				
-				
-				</i>
-				<br><br>arbitrary comments on bills
 				</td>
 			 </tr>
             
@@ -40548,13 +54361,6 @@ END;</pre>
 
         <!-- Inherits -->
 		
-        <p>Table bill.bill Inherits
-        
-            
-           <a href="gnumed-entire_schema.html#audit.table.audit-fields">audit_fields</a>, 
-        
-        </p>
-		
 
 		
 		
@@ -40562,43 +54368,13 @@ END;</pre>
 
         <!-- Constraint List -->
 		
-        <p> </p>
-		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>bill.bill Constraints</caption>
-            <tr>
-            	<th>Name</th>
-            	<th>Constraint</th>
-            </tr>
-			
-            <tr class="tr0">
-				<td>bill_bill_sane_apply_vat</td>
-                <td>CHECK (((apply_vat IS NOT NULL) OR ((apply_vat IS NULL) AND (fk_doc IS NULL))))</td>
-            </tr>
-			
-            <tr class="tr1">
-				<td>bill_bill_sane_comment</td>
-                <td>CHECK ((gm.is_null_or_non_empty_string(comment) IS TRUE))</td>
-            </tr>
-			
-            <tr class="tr0">
-				<td>bill_bill_sane_invoice_id</td>
-                <td>CHECK ((gm.is_null_or_blank_string(invoice_id) IS FALSE))</td>
-            </tr>
-			
-            <tr class="tr1">
-				<td>bill_bill_sane_recv_adr</td>
-                <td>CHECK (((fk_receiver_address IS NOT NULL) OR (close_date IS NULL)))</td>
-            </tr>
-			
-		</table>
-		
 
         <!-- Foreign Key Discovery -->
 		
 			<p>Tables referencing this one via Foreign Key Constraints:</p>
 		
 			<ul>
-				<li><a href="gnumed-entire_schema.html#bill.table.bill-item">bill.bill_item</a></li>
+				<li><a href="gnumed-entire_schema.html#clin.table.allergy">clin.allergy</a></li>
 			</ul>
 		
 		
@@ -40614,21 +54390,21 @@ END;</pre>
 
 	<p>
 		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#bill.schema">Schema bill</a>
+		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
     </p>
 	
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#bill.schema">bill</a>.<a name="bill.table.bill-item">bill_item</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.allergy">allergy</a>
 		</h2>
         
-         <p>items patients currently *are* billed for</p>
+         <p>patient allergy details</p>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>bill.bill_item Structure</caption>
+                <caption>clin.allergy Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -40687,11 +54463,19 @@ END;</pre>
             <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
+                
                 </td>
             	<td>modified_by</td>
             	<td>name</td>
                 <td><i>
 				
+					
+
+					
+				
 
 				NOT NULL
 				DEFAULT "current_user"()
@@ -40703,35 +54487,44 @@ END;</pre>
             <tr class="tr0">
 				<td>
                 
-                  
-                
                 </td>
-            	<td>pk</td>
-            	<td>serial</td>
+            	<td>pk_item</td>
+            	<td>integer</td>
                 <td><i>
 				
-					PRIMARY KEY
-					
-
-					
-				
 
+				NOT NULL
+				DEFAULT nextval('clin_root_item_pk_item_seq'::regclass)
+				</i>
 				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>clin_when</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
 				
+
+				NOT NULL
+				DEFAULT now()
 				</i>
 				
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                   
-                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.pk</a>
+                  <a href="gnumed-entire_schema.html#clin.table.encounter">clin.encounter.pk</a>
                   
                 
                 </td>
-            	<td>fk_provider</td>
+            	<td>fk_encounter</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -40743,19 +54536,19 @@ END;</pre>
 				NOT NULL
 				
 				</i>
-				<br><br>by whom or on whose behalf did the billable activity happen
+				
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                   
-                  <a href="gnumed-entire_schema.html#clin.table.encounter">clin.encounter.pk</a>
+                  <a href="gnumed-entire_schema.html#clin.table.episode">clin.episode.pk</a>
                   
                 
                 </td>
-            	<td>fk_encounter</td>
+            	<td>fk_episode</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -40767,39 +54560,62 @@ END;</pre>
 				NOT NULL
 				
 				</i>
-				<br><br>the encounter during which the billable action for this item took place
+				
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>date_to_bill</td>
-            	<td>date</td>
+            	<td>narrative</td>
+            	<td>text</td>
                 <td><i>
 				
 
 				
 				
 				</i>
-				<br><br>The date the bill item was caused. If NULL, use .fk_encounter -> .started
+				<br><br>used as field "reaction"
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
-            	<td>description</td>
+            	<td>soap_cat</td>
             	<td>text</td>
                 <td><i>
 				
 
 				
+				DEFAULT 'o'::text
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                  
+                
+                </td>
+            	<td>pk</td>
+            	<td>serial</td>
+                <td><i>
+				
+					PRIMARY KEY
+					
+
+					
+				
+
+				
 				
 				</i>
-				<br><br>Can be used to further explain the bill item over and above .fk_billable.description.
+				
 				</td>
 			 </tr>
             
@@ -40807,15 +54623,15 @@ END;</pre>
 				<td>
                 
                 </td>
-            	<td>net_amount_per_unit</td>
-            	<td>numeric</td>
+            	<td>substance</td>
+            	<td>text</td>
                 <td><i>
 				
 
 				NOT NULL
 				
 				</i>
-				<br><br>How much to charge for one unit of this bill item.
+				<br><br>real-world name of substance the patient reacted to, brand name if drug
 				</td>
 			 </tr>
             
@@ -40823,15 +54639,19 @@ END;</pre>
 				<td>
                 
                 </td>
-            	<td>currency</td>
+            	<td>substance_code</td>
             	<td>text</td>
                 <td><i>
 				
 
-				NOT NULL
+				
 				
 				</i>
-				<br><br>Which currency to charge in. Must not be NULL if .net_amount_per_unit is not NULL.
+				<br><br>data source specific opaque product code; must provide a link
+	 to a unique product/substance in the database in use; should follow
+	 the parseable convention of "<source>::<source version>::<identifier>",
+	 e.g. "MIMS::2003-1::190" for Zantac; it is left as an exercise to the
+	 application to know what to do with this information
 				</td>
 			 </tr>
             
@@ -40839,51 +54659,59 @@ END;</pre>
 				<td>
                 
                 </td>
-            	<td>status</td>
+            	<td>generics</td>
             	<td>text</td>
                 <td><i>
 				
 
 				
-				DEFAULT 'new'::text
+				
 				</i>
-				<br><br>the status of this item
+				<br><br>names of generic compounds if drug; brand names change/disappear, generic names do not
 				</td>
 			 </tr>
             
             <tr class="tr0">
 				<td>
                 
-                  
-                  <a href="gnumed-entire_schema.html#ref.table.billable">ref.billable.pk</a>
-                  
-                
                 </td>
-            	<td>fk_billable</td>
-            	<td>integer</td>
+            	<td>allergene</td>
+            	<td>text</td>
                 <td><i>
 				
-					
 
-					
 				
-
-				NOT NULL
 				
 				</i>
-				<br><br>Links to the billable item this bill item stands for.
+				<br><br>name of allergenic ingredient in substance if known
 				</td>
 			 </tr>
             
             <tr class="tr1">
 				<td>
                 
+                </td>
+            	<td>atc_code</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				<br><br>ATC code of allergene or substance if approprate, applicable for penicilline, not so for cat fur
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
                   
-                  <a href="gnumed-entire_schema.html#bill.table.bill">bill.bill.pk</a>
+                  <a href="gnumed-entire_schema.html#clin.table.-enum-allergy-type">clin._enum_allergy_type.pk</a>
                   
                 
                 </td>
-            	<td>fk_bill</td>
+            	<td>fk_type</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -40892,42 +54720,46 @@ END;</pre>
 					
 				
 
-				
+				NOT NULL
 				
 				</i>
-				<br><br>Links to the bill this bill item is on if any.
+				<br><br>allergy/sensitivity
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
-            	<td>unit_count</td>
-            	<td>integer</td>
+            	<td>generic_specific</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT 1
+				
+				DEFAULT false
 				</i>
-				<br><br>The number of times this item is to be billed. 0 can be used for informative items.
+				<br><br>only meaningful for *drug*/*generic* reactions:
+	 1) true: applies to one in "generics" forming "substance",
+			  if more than one generic listed in "generics" then
+			  "allergene" *must* contain the generic in question;
+	 2) false: applies to drug class of "substance";
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>amount_multiplier</td>
-            	<td>numeric</td>
+            	<td>definite</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT 1
+				
+				DEFAULT false
 				</i>
-				<br><br>A multiplier to apply to .net_amount_per_unit. Can be used for discounts, rebates, or increases. Must be > 0.
+				<br><br>true: definite, false: not definite
 				</td>
 			 </tr>
             
@@ -40935,10 +54767,10 @@ END;</pre>
 
         <!-- Inherits -->
 		
-        <p>Table bill.bill_item Inherits
+        <p>Table clin.allergy Inherits
         
             
-           <a href="gnumed-entire_schema.html#audit.table.audit-fields">audit_fields</a>, 
+           <a href="gnumed-entire_schema.html#clin.table.clin-root-item">clin_root_item</a>, 
         
         </p>
 		
@@ -40951,35 +54783,20 @@ END;</pre>
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>bill.bill_item Constraints</caption>
+            <caption>clin.allergy Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
-				<td>bill_bill_item_sane_count</td>
-                <td>CHECK ((unit_count > (-1)))</td>
-            </tr>
-			
-            <tr class="tr1">
-				<td>bill_bill_item_sane_currency</td>
-                <td>CHECK ((gm.is_null_or_blank_string(currency) IS FALSE))</td>
-            </tr>
-			
-            <tr class="tr0">
-				<td>bill_bill_item_sane_desc</td>
-                <td>CHECK ((gm.is_null_or_non_empty_string(description) IS TRUE))</td>
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
             </tr>
 			
             <tr class="tr1">
-				<td>bill_bill_item_sane_multiplier</td>
-                <td>CHECK ((amount_multiplier > (0)::numeric))</td>
-            </tr>
-			
-            <tr class="tr0">
-				<td>valid_stati</td>
-                <td>CHECK ((status = ANY (ARRAY['new'::text, 'transferred'::text])))</td>
+				<td>clin_root_item_sane_soap_cat</td>
+                <td>CHECK (((soap_cat IS NULL) OR (lower(soap_cat) = ANY (ARRAY['s'::text, 'o'::text, 'a'::text, 'p'::text, 'u'::text]))))</td>
             </tr>
 			
 		</table>
@@ -40990,9 +54807,9 @@ END;</pre>
 
     <!-- Indexes -->
     
-       idx_bill_bill_item_fk_bill fk_bill
+       idx_clin_allergy_fk_encounter fk_encounter
     
-       idx_bill_bill_item_fk_billable fk_billable
+       idx_clin_allergy_fk_episode fk_episode
     
 
 	<!-- View Definition -->
@@ -41003,27 +54820,97 @@ END;</pre>
 
 	<p>
 		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#bill.schema">Schema bill</a>
+		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
     </p>
 	
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#bill.schema">bill</a>.<a name="bill.table.lnk-enc-type2billable">lnk_enc_type2billable</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.allergy-state">allergy_state</a>
 		</h2>
         
-         <p>actual bills</p>
-        
 
 
-        <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>bill.lnk_enc_type2billable Structure</caption>
-                <tr>
-                <th>F-Key</th>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Description</th>
-                </tr>
+        <table width="100%" cellspacing="0" cellpadding="3">
+                <caption>clin.allergy_state Structure</caption>
+                <tr>
+                <th>F-Key</th>
+                <th>Name</th>
+                <th>Type</th>
+                <th>Description</th>
+                </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_audit</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				NOT NULL
+				DEFAULT nextval('audit.audit_fields_pk_audit_seq'::regclass)
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>row_version</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				NOT NULL
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>modified_when</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				NOT NULL
+				DEFAULT now()
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
+                
+                </td>
+            	<td>modified_by</td>
+            	<td>name</td>
+                <td><i>
+				
+					
+
+					
+				
+
+				NOT NULL
+				DEFAULT "current_user"()
+				</i>
+				
+				</td>
+			 </tr>
             
             <tr class="tr0">
 				<td>
@@ -41051,24 +54938,53 @@ END;</pre>
             <tr class="tr1">
 				<td>
                 
-                  
-                  <a href="gnumed-entire_schema.html#clin.table.encounter-type">clin.encounter_type.pk</a>
-                  
-                
                 </td>
-            	<td>fk_encounter_type</td>
+            	<td>has_allergy</td>
             	<td>integer</td>
                 <td><i>
 				
-					
 
-					
+				
+				
+				</i>
+				<br><br>patient allergenic state:
+	 - null: unknown, not asked, no data available
+	 - -1: unknown, asked, no data obtained
+	 - 0:  known, asked, has no known allergies
+	 - 1:  known, asked, does have allergies
+	
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>comment</td>
+            	<td>text</td>
+                <td><i>
 				
 
-				NOT NULL
+				
 				
 				</i>
-				<br><br>Links to encounter type this billable is associated with.
+				<br><br>A comment on the state, such as "patient says no allergies but I think he is holding back some".
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>last_confirmed</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				<br><br>When was the state of allergies last confirmed. Must be not NULL if has_allergy is not NULL.
 				</td>
 			 </tr>
             
@@ -41076,11 +54992,11 @@ END;</pre>
 				<td>
                 
                   
-                  <a href="gnumed-entire_schema.html#ref.table.billable">ref.billable.pk</a>
+                  <a href="gnumed-entire_schema.html#clin.table.encounter">clin.encounter.pk</a>
                   
                 
                 </td>
-            	<td>fk_billable</td>
+            	<td>fk_encounter</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -41092,7 +55008,7 @@ END;</pre>
 				NOT NULL
 				
 				</i>
-				<br><br>Links to the billable item the encounter type is associated with.
+				
 				</td>
 			 </tr>
             
@@ -41100,6 +55016,13 @@ END;</pre>
 
         <!-- Inherits -->
 		
+        <p>Table clin.allergy_state Inherits
+        
+            
+           <a href="gnumed-entire_schema.html#audit.table.audit-fields">audit_fields</a>, 
+        
+        </p>
+		
 
 		
 		
@@ -41107,16 +55030,37 @@ END;</pre>
 
         <!-- Constraint List -->
 		
+        <p> </p>
+		<table width="100%" cellspacing="0" cellpadding="3">
+            <caption>clin.allergy_state Constraints</caption>
+            <tr>
+            	<th>Name</th>
+            	<th>Constraint</th>
+            </tr>
+			
+            <tr class="tr0">
+				<td>allergy_state_check</td>
+                <td>CHECK (((has_allergy IS NULL) OR ((has_allergy IS NOT NULL) AND (last_confirmed IS NOT NULL))))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>allergy_state_has_allergy_check</td>
+                <td>CHECK ((has_allergy = ANY (ARRAY[NULL::integer, 0, 1])))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+		</table>
+		
 
         <!-- Foreign Key Discovery -->
 		
 
     <!-- Indexes -->
     
-       idx_lnk_enc_type2billable_fk_billable fk_billable
-    
-       idx_lnk_enc_type2billable_fk_encounter_type fk_encounter_type
-    
 
 	<!-- View Definition -->
 	
@@ -41126,19 +55070,21 @@ END;</pre>
 
 	<p>
 		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#bill.schema">Schema bill</a>
+		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
     </p>
 	
         <hr>
-		<h2>View:
+		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#bill.schema">bill</a>.<a name="bill.view.v-bill-items">v_bill_items</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.clin-aux-note">clin_aux_note</a>
 		</h2>
         
+         <p>Other tables link to this if they need more free text fields.</p>
+        
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>bill.v_bill_items Structure</caption>
+                <caption>clin.clin_aux_note Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -41150,13 +55096,13 @@ END;</pre>
 				<td>
                 
                 </td>
-            	<td>pk_bill_item</td>
+            	<td>pk_audit</td>
             	<td>integer</td>
                 <td><i>
 				
 
-				
-				
+				NOT NULL
+				DEFAULT nextval('audit.audit_fields_pk_audit_seq'::regclass)
 				</i>
 				
 				</td>
@@ -41166,12 +55112,12 @@ END;</pre>
 				<td>
                 
                 </td>
-            	<td>billable_code</td>
-            	<td>text</td>
+            	<td>row_version</td>
+            	<td>integer</td>
                 <td><i>
 				
 
-				
+				NOT NULL
 				
 				</i>
 				
@@ -41182,13 +55128,13 @@ END;</pre>
 				<td>
                 
                 </td>
-            	<td>billable_description</td>
-            	<td>text</td>
+            	<td>modified_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
-				
-				
+				NOT NULL
+				DEFAULT now()
 				</i>
 				
 				</td>
@@ -41197,14 +55143,22 @@ END;</pre>
             <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
+                
                 </td>
-            	<td>item_detail</td>
-            	<td>text</td>
+            	<td>modified_by</td>
+            	<td>name</td>
                 <td><i>
 				
+					
 
+					
 				
-				
+
+				NOT NULL
+				DEFAULT "current_user"()
 				</i>
 				
 				</td>
@@ -41214,13 +55168,13 @@ END;</pre>
 				<td>
                 
                 </td>
-            	<td>date_to_bill</td>
-            	<td>timestamp with time zone</td>
+            	<td>pk_item</td>
+            	<td>integer</td>
                 <td><i>
 				
 
-				
-				
+				NOT NULL
+				DEFAULT nextval('clin_root_item_pk_item_seq'::regclass)
 				</i>
 				
 				</td>
@@ -41230,13 +55184,13 @@ END;</pre>
 				<td>
                 
                 </td>
-            	<td>net_amount_per_unit</td>
-            	<td>numeric</td>
+            	<td>clin_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
-				
-				
+				NOT NULL
+				DEFAULT now()
 				</i>
 				
 				</td>
@@ -41245,13 +55199,21 @@ END;</pre>
             <tr class="tr0">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#clin.table.encounter">clin.encounter.pk</a>
+                  
+                
                 </td>
-            	<td>unit_count</td>
+            	<td>fk_encounter</td>
             	<td>integer</td>
                 <td><i>
 				
+					
 
+					
 				
+
+				NOT NULL
 				
 				</i>
 				
@@ -41261,13 +55223,21 @@ END;</pre>
             <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#clin.table.episode">clin.episode.pk</a>
+                  
+                
                 </td>
-            	<td>amount_multiplier</td>
-            	<td>numeric</td>
+            	<td>fk_episode</td>
+            	<td>integer</td>
                 <td><i>
 				
+					
 
+					
 				
+
+				NOT NULL
 				
 				</i>
 				
@@ -41278,8 +55248,8 @@ END;</pre>
 				<td>
                 
                 </td>
-            	<td>total_amount</td>
-            	<td>numeric</td>
+            	<td>narrative</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -41294,8 +55264,8 @@ END;</pre>
 				<td>
                 
                 </td>
-            	<td>vat</td>
-            	<td>numeric</td>
+            	<td>soap_cat</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -41309,11 +55279,18 @@ END;</pre>
             <tr class="tr0">
 				<td>
                 
+                  
+                
                 </td>
-            	<td>currency</td>
-            	<td>text</td>
+            	<td>pk</td>
+            	<td>serial</td>
                 <td><i>
 				
+					PRIMARY KEY
+					
+
+					
+				
 
 				
 				
@@ -41322,33 +55299,98 @@ END;</pre>
 				</td>
 			 </tr>
             
+        </table>
+
+        <!-- Inherits -->
+		
+        <p>Table clin.clin_aux_note Inherits
+        
+            
+           <a href="gnumed-entire_schema.html#clin.table.clin-root-item">clin_root_item</a>, 
+        
+        </p>
+		
+
+		
+		
+		
+
+        <!-- Constraint List -->
+		
+        <p> </p>
+		<table width="100%" cellspacing="0" cellpadding="3">
+            <caption>clin.clin_aux_note Constraints</caption>
+            <tr>
+            	<th>Name</th>
+            	<th>Constraint</th>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
             <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>raw_date_to_bill</td>
-            	<td>date</td>
-                <td><i>
-				
+				<td>clin_root_item_sane_soap_cat</td>
+                <td>CHECK (((soap_cat IS NULL) OR (lower(soap_cat) = ANY (ARRAY['s'::text, 'o'::text, 'a'::text, 'p'::text, 'u'::text]))))</td>
+            </tr>
+			
+		</table>
+		
 
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
+        <!-- Foreign Key Discovery -->
+		
+
+    <!-- Indexes -->
+    
+       idx_clin_clin_aux_note_fk_encounter fk_encounter
+    
+       idx_clin_clin_aux_note_fk_episode fk_episode
+    
+
+	<!-- View Definition -->
+	
+
+	<!-- List off permissions -->
+	
+
+	<p>
+		<a href="gnumed-entire_schema.html#index">Index</a> -
+		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
+    </p>
+	
+        <hr>
+		<h2>Table:
+			
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.clin-diag">clin_diag</a>
+		</h2>
+        
+         <p>stores additional detail on those clin.clin_narrative
+	 rows where soap_cat=a that are true diagnoses,
+	 true diagnoses DO have a code from one of the coding systems</p>
+        
+
+
+        <table width="100%" cellspacing="0" cellpadding="3">
+                <caption>clin.clin_diag Structure</caption>
+                <tr>
+                <th>F-Key</th>
+                <th>Name</th>
+                <th>Type</th>
+                <th>Description</th>
+                </tr>
             
             <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>billable_amount</td>
-            	<td>numeric</td>
+            	<td>pk_audit</td>
+            	<td>integer</td>
                 <td><i>
 				
 
-				
-				
+				NOT NULL
+				DEFAULT nextval('audit.audit_fields_pk_audit_seq'::regclass)
 				</i>
 				
 				</td>
@@ -41358,12 +55400,12 @@ END;</pre>
 				<td>
                 
                 </td>
-            	<td>vat_multiplier</td>
-            	<td>numeric</td>
+            	<td>row_version</td>
+            	<td>integer</td>
                 <td><i>
 				
 
-				
+				NOT NULL
 				
 				</i>
 				
@@ -41374,13 +55416,13 @@ END;</pre>
 				<td>
                 
                 </td>
-            	<td>billable_currency</td>
-            	<td>text</td>
+            	<td>modified_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
-				
-				
+				NOT NULL
+				DEFAULT now()
 				</i>
 				
 				</td>
@@ -41389,14 +55431,22 @@ END;</pre>
             <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
+                
                 </td>
-            	<td>billable_comment</td>
-            	<td>text</td>
+            	<td>modified_by</td>
+            	<td>name</td>
                 <td><i>
 				
+					
 
+					
 				
-				
+
+				NOT NULL
+				DEFAULT "current_user"()
 				</i>
 				
 				</td>
@@ -41405,11 +55455,18 @@ END;</pre>
             <tr class="tr0">
 				<td>
                 
+                  
+                
                 </td>
-            	<td>billable_active</td>
-            	<td>boolean</td>
+            	<td>pk</td>
+            	<td>serial</td>
                 <td><i>
 				
+					PRIMARY KEY
+					
+
+					
+				
 
 				
 				
@@ -41421,13 +55478,29 @@ END;</pre>
             <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#clin.table.clin-narrative">clin.clin_narrative.pk</a>
+                  
+                
+                  
+                
                 </td>
-            	<td>billable_discountable</td>
-            	<td>boolean</td>
+            	<td>fk_narrative</td>
+            	<td>integer</td>
                 <td><i>
 				
+					
+
+					
+				
+					
 
+					
+                       UNIQUE
+                    
 				
+
+				NOT NULL
 				
 				</i>
 				
@@ -41438,13 +55511,13 @@ END;</pre>
 				<td>
                 
                 </td>
-            	<td>catalog_long</td>
-            	<td>text</td>
+            	<td>laterality</td>
+            	<td>character(1)</td>
                 <td><i>
 				
 
 				
-				
+				DEFAULT NULL::bpchar
 				</i>
 				
 				</td>
@@ -41454,15 +55527,18 @@ END;</pre>
 				<td>
                 
                 </td>
-            	<td>catalog_short</td>
-            	<td>text</td>
+            	<td>is_chronic</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
-				
-				
+				NOT NULL
+				DEFAULT false
 				</i>
-				
+				<br><br>whether this diagnosis is chronic, eg. no complete
+	 cure is to be expected, regardless of whether it is
+	 *active* right now (think of active/non-active phases
+	 of Multiple Sclerosis which is sure chronic)
 				</td>
 			 </tr>
             
@@ -41470,15 +55546,15 @@ END;</pre>
 				<td>
                 
                 </td>
-            	<td>catalog_version</td>
-            	<td>text</td>
+            	<td>is_active</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
-				
-				
+				NOT NULL
+				DEFAULT true
 				</i>
-				
+				<br><br>whether diagnosis is currently active or dormant
 				</td>
 			 </tr>
             
@@ -41486,13 +55562,13 @@ END;</pre>
 				<td>
                 
                 </td>
-            	<td>catalog_language</td>
-            	<td>text</td>
+            	<td>is_definite</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
-				
-				
+				NOT NULL
+				DEFAULT false
 				</i>
 				
 				</td>
@@ -41502,45 +55578,113 @@ END;</pre>
 				<td>
                 
                 </td>
-            	<td>pk_patient</td>
-            	<td>integer</td>
+            	<td>clinically_relevant</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
-				
-				
+				NOT NULL
+				DEFAULT true
 				</i>
-				
+				<br><br>whether this diagnosis is considered clinically
+	 relevant, eg. significant;
+	 currently active diagnoses are considered to
+	 always be relevant, while inactive ones may
+	 or may not be
 				</td>
 			 </tr>
             
+        </table>
+
+        <!-- Inherits -->
+		
+        <p>Table clin.clin_diag Inherits
+        
+            
+           <a href="gnumed-entire_schema.html#audit.table.audit-fields">audit_fields</a>, 
+        
+        </p>
+		
+
+		
+		
+		
+
+        <!-- Constraint List -->
+		
+        <p> </p>
+		<table width="100%" cellspacing="0" cellpadding="3">
+            <caption>clin.clin_diag Constraints</caption>
+            <tr>
+            	<th>Name</th>
+            	<th>Constraint</th>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
             <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>pk_encounter_type</td>
-            	<td>integer</td>
-                <td><i>
-				
+				<td>clin_diag_laterality_check</td>
+                <td>CHECK (((laterality = ANY (ARRAY['l'::bpchar, 'r'::bpchar, 'b'::bpchar, '?'::bpchar])) OR (laterality IS NULL)))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>if_active_then_relevant</td>
+                <td>CHECK (((is_active = false) OR ((is_active = true) AND (clinically_relevant = true))))</td>
+            </tr>
+			
+		</table>
+		
 
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
+        <!-- Foreign Key Discovery -->
+		
+
+    <!-- Indexes -->
+    
+
+	<!-- View Definition -->
+	
+
+	<!-- List off permissions -->
+	
+
+	<p>
+		<a href="gnumed-entire_schema.html#index">Index</a> -
+		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
+    </p>
+	
+        <hr>
+		<h2>Table:
+			
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.clin-item-type">clin_item_type</a>
+		</h2>
+        
+         <p>stores arbitrary types for tagging clinical items</p>
+        
+
+
+        <table width="100%" cellspacing="0" cellpadding="3">
+                <caption>clin.clin_item_type Structure</caption>
+                <tr>
+                <th>F-Key</th>
+                <th>Name</th>
+                <th>Type</th>
+                <th>Description</th>
+                </tr>
             
             <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>pk_provider</td>
+            	<td>pk_audit</td>
             	<td>integer</td>
                 <td><i>
 				
 
-				
-				
+				NOT NULL
+				DEFAULT nextval('audit.audit_fields_pk_audit_seq'::regclass)
 				</i>
 				
 				</td>
@@ -41550,12 +55694,12 @@ END;</pre>
 				<td>
                 
                 </td>
-            	<td>pk_encounter_to_bill</td>
+            	<td>row_version</td>
             	<td>integer</td>
                 <td><i>
 				
 
-				
+				NOT NULL
 				
 				</i>
 				
@@ -41566,13 +55710,13 @@ END;</pre>
 				<td>
                 
                 </td>
-            	<td>pk_bill</td>
-            	<td>integer</td>
+            	<td>modified_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
-				
-				
+				NOT NULL
+				DEFAULT now()
 				</i>
 				
 				</td>
@@ -41581,14 +55725,22 @@ END;</pre>
             <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
+                
                 </td>
-            	<td>pk_billable</td>
-            	<td>integer</td>
+            	<td>modified_by</td>
+            	<td>name</td>
                 <td><i>
 				
+					
 
+					
 				
-				
+
+				NOT NULL
+				DEFAULT "current_user"()
 				</i>
 				
 				</td>
@@ -41597,11 +55749,18 @@ END;</pre>
             <tr class="tr0">
 				<td>
                 
+                  
+                
                 </td>
-            	<td>pk_data_source</td>
-            	<td>integer</td>
+            	<td>pk</td>
+            	<td>serial</td>
                 <td><i>
 				
+					PRIMARY KEY
+					
+
+					
+				
 
 				
 				
@@ -41613,16 +55772,48 @@ END;</pre>
             <tr class="tr1">
 				<td>
                 
+                  
+                
                 </td>
-            	<td>xmin_bill_item</td>
-            	<td>xid</td>
+            	<td>type</td>
+            	<td>text</td>
                 <td><i>
 				
+					
 
+					
+                       UNIQUE
+                    
 				
-				
+
+				NOT NULL
+				DEFAULT 'history'::text
 				</i>
+				<br><br>the full name of the item type such as "family history"
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                  
+                
+                </td>
+            	<td>code</td>
+            	<td>text</td>
+                <td><i>
+				
+					
+
+					
+                       UNIQUE
+                    
 				
+
+				NOT NULL
+				DEFAULT 'Hx'::text
+				</i>
+				<br><br>shorthand for the type, eg "FHx"
 				</td>
 			 </tr>
             
@@ -41630,103 +55821,75 @@ END;</pre>
 
         <!-- Inherits -->
 		
+        <p>Table clin.clin_item_type Inherits
+        
+            
+           <a href="gnumed-entire_schema.html#audit.table.audit-fields">audit_fields</a>, 
+        
+        </p>
+		
 
 		
+		
+		
 
         <!-- Constraint List -->
 		
+        <p> </p>
+		<table width="100%" cellspacing="0" cellpadding="3">
+            <caption>clin.clin_item_type Constraints</caption>
+            <tr>
+            	<th>Name</th>
+            	<th>Constraint</th>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+		</table>
+		
 
         <!-- Foreign Key Discovery -->
 		
+			<p>Tables referencing this one via Foreign Key Constraints:</p>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.lnk-type2item">clin.lnk_type2item</a></li>
+			</ul>
+		
+		
 
     <!-- Indexes -->
     
 
 	<!-- View Definition -->
 	
-	<pre>
-SELECT b_bi.pk AS pk_bill_item
-, r_b.code AS billable_code
-, r_b.term AS billable_description
-, b_bi.description AS item_detail
-, COALESCE
-(
-     (b_bi.date_to_bill)::timestamp with time zone
-     , c_enc.started
-) AS date_to_bill
-, b_bi.net_amount_per_unit
-, b_bi.unit_count
-, b_bi.amount_multiplier
-, (
-     (
-           (b_bi.unit_count)::numeric * b_bi.net_amount_per_unit
-     ) * b_bi.amount_multiplier
-) AS total_amount
-, (
-     (
-           (
-                 (b_bi.unit_count)::numeric * b_bi.net_amount_per_unit
-           ) * b_bi.amount_multiplier
-     ) * r_b.vat_multiplier
-) AS vat
-, b_bi.currency
-, b_bi.date_to_bill AS raw_date_to_bill
-, r_b.amount AS billable_amount
-, r_b.vat_multiplier
-, r_b.currency AS billable_currency
-, r_b.comment AS billable_comment
-, r_b.active AS billable_active
-, r_b.discountable AS billable_discountable
-, r_ds.name_long AS catalog_long
-, r_ds.name_short AS catalog_short
-, r_ds.version AS catalog_version
-, r_ds.lang AS catalog_language
-, c_enc.fk_patient AS pk_patient
-, c_enc.fk_type AS pk_encounter_type
-, b_bi.fk_provider AS pk_provider
-, b_bi.fk_encounter AS pk_encounter_to_bill
-, b_bi.fk_bill AS pk_bill
-, r_b.pk AS pk_billable
-, r_b.fk_data_source AS pk_data_source
-, b_bi.xmin AS xmin_bill_item 
-FROM (
-     (
-           (bill.bill_item b_bi 
-              JOIN ref.billable r_b 
-                ON (
-                       (b_bi.fk_billable = r_b.pk)
-                 )
-           )
-   LEFT JOIN ref.data_source r_ds 
-          ON (
-                 (r_b.fk_data_source = r_ds.pk)
-           )
-     )
-LEFT JOIN clin.encounter c_enc 
-    ON (
-           (b_bi.fk_encounter = c_enc.pk)
-     )
-);</pre>
-	
 
 	<!-- List off permissions -->
 	
 
 	<p>
 		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#bill.schema">Schema bill</a>
+		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
     </p>
 	
         <hr>
-		<h2>View:
+		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#bill.schema">bill</a>.<a name="bill.view.v-bills">v_bills</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.clin-narrative">clin_narrative</a>
 		</h2>
         
+         <p>Used to store clinical free text *not* associated
+	 with any other table. Used to implement a simple
+	 SOAP structure. Also other tags can be associated
+	 via link tables.</p>
+        
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>bill.v_bills Structure</caption>
+                <caption>clin.clin_narrative Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -41738,13 +55901,13 @@ LEFT JOIN clin.encounter c_enc
 				<td>
                 
                 </td>
-            	<td>pk_bill</td>
+            	<td>pk_audit</td>
             	<td>integer</td>
                 <td><i>
 				
 
-				
-				
+				NOT NULL
+				DEFAULT nextval('audit.audit_fields_pk_audit_seq'::regclass)
 				</i>
 				
 				</td>
@@ -41754,12 +55917,12 @@ LEFT JOIN clin.encounter c_enc
 				<td>
                 
                 </td>
-            	<td>invoice_id</td>
-            	<td>text</td>
+            	<td>row_version</td>
+            	<td>integer</td>
                 <td><i>
 				
 
-				
+				NOT NULL
 				
 				</i>
 				
@@ -41770,13 +55933,13 @@ LEFT JOIN clin.encounter c_enc
 				<td>
                 
                 </td>
-            	<td>pk_receiver_identity</td>
-            	<td>integer</td>
+            	<td>modified_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
-				
-				
+				NOT NULL
+				DEFAULT now()
 				</i>
 				
 				</td>
@@ -41785,46 +55948,22 @@ LEFT JOIN clin.encounter c_enc
             <tr class="tr1">
 				<td>
                 
-                </td>
-            	<td>total_amount</td>
-            	<td>numeric</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
                 
                 </td>
-            	<td>total_vat</td>
-            	<td>numeric</td>
+            	<td>modified_by</td>
+            	<td>name</td>
                 <td><i>
 				
+					
 
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>total_amount_with_vat</td>
-            	<td>numeric</td>
-                <td><i>
+					
 				
 
-				
-				
+				NOT NULL
+				DEFAULT "current_user"()
 				</i>
 				
 				</td>
@@ -41834,13 +55973,13 @@ LEFT JOIN clin.encounter c_enc
 				<td>
                 
                 </td>
-            	<td>percent_vat</td>
-            	<td>numeric</td>
+            	<td>pk_item</td>
+            	<td>integer</td>
                 <td><i>
 				
 
-				
-				
+				NOT NULL
+				DEFAULT nextval('clin_root_item_pk_item_seq'::regclass)
 				</i>
 				
 				</td>
@@ -41850,60 +55989,36 @@ LEFT JOIN clin.encounter c_enc
 				<td>
                 
                 </td>
-            	<td>currency</td>
-            	<td>text</td>
+            	<td>clin_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
-				
-				
+				NOT NULL
+				DEFAULT now()
 				</i>
-				
+				<br><br>when did the item reach clinical reality
 				</td>
 			 </tr>
             
             <tr class="tr0">
 				<td>
                 
-                </td>
-            	<td>close_date</td>
-            	<td>timestamp with time zone</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
+                  
+                  <a href="gnumed-entire_schema.html#clin.table.encounter">clin.encounter.pk</a>
+                  
                 
                 </td>
-            	<td>apply_vat</td>
-            	<td>boolean</td>
+            	<td>fk_encounter</td>
+            	<td>integer</td>
                 <td><i>
 				
+					
 
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>comment</td>
-            	<td>text</td>
-                <td><i>
+					
 				
 
-				
+				NOT NULL
 				
 				</i>
 				
@@ -41913,13 +56028,21 @@ LEFT JOIN clin.encounter c_enc
             <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#clin.table.episode">clin.episode.pk</a>
+                  
+                
                 </td>
-            	<td>pk_receiver_address</td>
+            	<td>fk_episode</td>
             	<td>integer</td>
                 <td><i>
 				
+					
 
+					
 				
+
+				NOT NULL
 				
 				</i>
 				
@@ -41930,8 +56053,8 @@ LEFT JOIN clin.encounter c_enc
 				<td>
                 
                 </td>
-            	<td>pk_doc</td>
-            	<td>integer</td>
+            	<td>narrative</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -41946,8 +56069,8 @@ LEFT JOIN clin.encounter c_enc
 				<td>
                 
                 </td>
-            	<td>pk_patient</td>
-            	<td>integer</td>
+            	<td>soap_cat</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -41961,291 +56084,123 @@ LEFT JOIN clin.encounter c_enc
             <tr class="tr0">
 				<td>
                 
-                </td>
-            	<td>pk_bill_items</td>
-            	<td>integer[]</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
+                  
                 
                 </td>
-            	<td>xmin_bill</td>
-            	<td>xid</td>
+            	<td>pk</td>
+            	<td>serial</td>
                 <td><i>
 				
+					PRIMARY KEY
+					
 
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-        </table>
-
-        <!-- Inherits -->
-		
-
-		
-
-        <!-- Constraint List -->
-		
-
-        <!-- Foreign Key Discovery -->
-		
-
-    <!-- Indexes -->
-    
-
-	<!-- View Definition -->
-	
-	<pre>
-SELECT b_b.pk AS pk_bill
-, b_b.invoice_id
-, b_b.fk_receiver_identity AS pk_receiver_identity
-, (
-SELECT round
-     (sum
-           (v_bill_items.total_amount)
-           , 2
-     ) AS round 
-  FROM bill.v_bill_items 
- WHERE (v_bill_items.pk_bill = b_b.pk)
-) AS total_amount
-, (
-SELECT round
-     (sum
-           (v_bill_items.vat)
-           , 2
-     ) AS round 
-  FROM bill.v_bill_items 
- WHERE (v_bill_items.pk_bill = b_b.pk)
-) AS total_vat
-, (
-SELECT round
-     (sum
-           (
-                 (v_bill_items.total_amount + v_bill_items.vat)
-           )
-           , 2
-     ) AS round 
-  FROM bill.v_bill_items 
- WHERE (v_bill_items.pk_bill = b_b.pk)
-) AS total_amount_with_vat
-, (
-SELECT (v_bill_items.vat_multiplier * 
-           (100)::numeric
-     )
-  FROM bill.v_bill_items 
- WHERE (v_bill_items.pk_bill = b_b.pk) LIMIT 1
-) AS percent_vat
-, (
-SELECT v_bill_items.currency 
-  FROM bill.v_bill_items 
- WHERE (v_bill_items.pk_bill = b_b.pk) LIMIT 1
-) AS currency
-, b_b.close_date
-, b_b.apply_vat
-, b_b.comment
-, b_b.fk_receiver_address AS pk_receiver_address
-, b_b.fk_doc AS pk_doc
-, (
-SELECT encounter.fk_patient 
-  FROM clin.encounter 
- WHERE (encounter.pk = 
-           (
-            SELECT bill_item.fk_encounter 
-              FROM bill.bill_item 
-             WHERE (bill_item.fk_bill = b_b.pk) LIMIT 1
-           )
-     )
-) AS pk_patient
-, (
-SELECT array_agg
-     (sorted_values.pk_bill_item) AS array_agg 
-  FROM (
-      SELECT b_vbi.pk_bill_item 
-        FROM bill.v_bill_items b_vbi 
-       WHERE (b_vbi.pk_bill = b_b.pk)
-    ORDER BY b_vbi.date_to_bill
-           , b_vbi.billable_code
-     ) sorted_values
-) AS pk_bill_items
-, b_b.xmin AS xmin_bill 
-FROM bill.bill b_b;</pre>
-	
-
-	<!-- List off permissions -->
-	
-
-	<p>
-		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#bill.schema">Schema bill</a>
-    </p>
-	
-
-	<!-- We've gone through the table structure, now lets take a look at user functions -->
-	
-		<hr>
-		<h2>Function:
-			<a href="gnumed-entire_schema.html#bill.schema">bill</a>.<a name="bill.function.get-bill-receiver-identity-integer">get_bill_receiver_identity(integer)</a>
-		</h2>
-<h3>Returns: integer</h3>
-<h3>Language: SQL</h3>
-        
-        <pre>
-select
-	value
-from (
-	select
-		id.pk_id,
-		id.value::integer
-	from
-		dem.v_external_ids4identity id
-			join dem.identity d_i on (id.value = d_i.pk::text)
-	where
-		id.pk_type = (select pk from dem.enum_ext_id_types where name = 'bill receiver' and issuer = 'GNUmed')
-			and
-		id.pk_identity = $1
-	union all
-	select
-		0,
-		$1
-) me
-limit 1;</pre>
-	
-		<hr>
-		<h2>Function:
-			<a href="gnumed-entire_schema.html#bill.schema">bill</a>.<a name="bill.function.trf-prevent-empty-bills">trf_prevent_empty_bills()</a>
-		</h2>
-<h3>Returns: trigger</h3>
-<h3>Language: PLPGSQL</h3>
-        <p>Prevent bills to become void of items due to deletions/updates of bill items.</p>
-        <pre>
-DECLARE
-	_item_count integer;
-	_msg text;
-BEGIN
-	if TG_OP = 'UPDATE' then
-		if OLD.fk_bill IS NULL then
-			return NULL;
-		end if;
-		if OLD.fk_bill IS NOT DISTINCT FROM NEW.fk_bill then
-			return NULL;
-		end if;
-	else
-		if OLD.fk_bill is NULL then
-			return NULL;
-		end if;
-	end if;
-	-- we now either:
-	--	DELETE with .fk_bill NOT NULL
-	-- or:
-	--	UPDATE with an .fk_bill change (including towards fk_bill = NULL)
-	-- let us check whether the (previous) bill still exists
-	-- at all or whether we are deleting the bill (and thereby
-	-- setting our .fk_bill to NULL)
-	-- only works at or below REPEATABLE READ after deletion of bill
-	perform 1 from bill.bill where pk = OLD.fk_bill;
-	if FOUND is FALSE then
-		return NULL;
-	end if;
-	select count(1) into _item_count
-	from bill.bill_item
-	where
-		fk_bill = OLD.fk_bill
-			and
-		pk != OLD.pk;
-	if _item_count > 0 then
-		return NULL;
-	end if;
-	_msg := '[bill.trf_prevent_empty_bills]: cannot remove (by '
-			|| '<' || TG_OP || '>'
-			||') the only item (bill.bill_item.pk='
-			|| coalesce(OLD.pk::text, '<NULL>'::text)
-			|| ') from bill (bill.bill_item.fk_bill=bill.bill.pk='
-			|| coalesce(OLD.fk_bill::text, '<NULL>'::text)
-			|| ') ';
-	raise exception unique_violation using message = _msg;
-	return NULL;
-END;</pre>
-	
-		<hr>
-		<h2>Function:
-			<a href="gnumed-entire_schema.html#bill.schema">bill</a>.<a name="bill.function.trf-prevent-mislinked-bills">trf_prevent_mislinked_bills()</a>
-		</h2>
-<h3>Returns: trigger</h3>
-<h3>Language: PLPGSQL</h3>
-        <p>Prevent bills to link to invoices of another patient.</p>
-        <pre>
-DECLARE
-	_doc_patient integer;
-	_bill_patient integer;
-	_msg text;
-BEGIN
-	if NEW.fk_doc IS NULL then
-		return NEW;
-	end if;
-	if TG_OP = 'UPDATE' then
-		if OLD.fk_doc IS NOT DISTINCT FROM NEW.fk_doc then
-			return NEW;
-		end if;
-	end if;
-	-- we now either:
-	--	INSERT with .fk_doc NOT NULL
-	-- or:
-	--	UPDATE with an .fk_bill change to a NON-NULL value
-	select pk_patient into _doc_patient
-	from blobs.v_doc_med
-	where
-		pk_doc = NEW.fk_doc;
-	select pk_patient into _bill_patient
-	from bill.v_bills
-	where
-		pk_bill = NEW.pk;
-	if _doc_patient = _bill_patient then
-		return NEW;
-	end if;
-	_msg := '[bill.trf_prevent_mislinked_bills]: patient mismatch between '
-		|| 'bill (pk=' || NEW.pk || ', patient=' || _bill_patient || ') '
-		|| 'and invoice (pk=' || NEW.fk_doc || ', patient=' || _doc_patient || ')';
-	raise exception integrity_constraint_violation using message = _msg;
-	return NULL;
-END;</pre>
-	
+					
+				
 
-<!-- blobsblobs -->
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+        </table>
 
+        <!-- Inherits -->
 		
-		<hr>
-		<h1>Schema blobs</h1>
+        <p>Table clin.clin_narrative Inherits
+        
+            
+           <a href="gnumed-entire_schema.html#clin.table.clin-root-item">clin_root_item</a>, 
+        
+        </p>
+		
+
+		
+		
+		
+
+        <!-- Constraint List -->
+		
+        <p> </p>
+		<table width="100%" cellspacing="0" cellpadding="3">
+            <caption>clin.clin_narrative Constraints</caption>
+            <tr>
+            	<th>Name</th>
+            	<th>Constraint</th>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>clin_root_item_sane_soap_cat</td>
+                <td>CHECK (((soap_cat IS NULL) OR (lower(soap_cat) = ANY (ARRAY['s'::text, 'o'::text, 'a'::text, 'p'::text, 'u'::text]))))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>narrative_neither_null_nor_empty</td>
+                <td>CHECK ((btrim(COALESCE(narrative, ''::text)) <> ''::text))</td>
+            </tr>
+			
+		</table>
 		
 
+        <!-- Foreign Key Discovery -->
+		
+			<p>Tables referencing this one via Foreign Key Constraints:</p>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.clin-diag">clin.clin_diag</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.lnk-code2narrative">clin.lnk_code2narrative</a></li>
+			</ul>
 		
 		
+
+    <!-- Indexes -->
+    
+       idx_clin_clin_narrative_fk_encounter fk_encounter
+    
+       idx_clin_clin_narrative_fk_episode fk_episode
+    
+       idx_narrative_modified_by modified_by
+    
+       idx_narrative_soap_cat soap_cat) WHERE (lower(soap_cat) = ANY (ARRAY['s'::text, 'o'::text, 'a'::text, 'p'::text, 'u'::text])
+    
+
+	<!-- View Definition -->
+	
+
+	<!-- List off permissions -->
+	
+
+	<p>
+		<a href="gnumed-entire_schema.html#index">Index</a> -
+		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
+    </p>
+	
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#blobs.schema">blobs</a>.<a name="blobs.table.doc-desc">doc_desc</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.clin-root-item">clin_root_item</a>
 		</h2>
         
-         <p>A textual description of the content such
-	 as a result summary. Several of these may
-	 belong to one document object.</p>
+         <p>ancestor table for clinical items of any kind, basic
+	 unit of clinical information, do *not* store data in
+	 here directly, use child tables,
+	 contains all the clinical narrative aggregated for full
+	 text search, ancestor for all tables that want to store
+	 clinical free text</p>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>blobs.doc_desc Structure</caption>
+                <caption>clin.clin_root_item Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -42323,7 +56278,7 @@ END;</pre>
                   
                 
                 </td>
-            	<td>pk</td>
+            	<td>pk_item</td>
             	<td>serial</td>
                 <td><i>
 				
@@ -42336,21 +56291,39 @@ END;</pre>
 				
 				
 				</i>
-				
+				<br><br>the primary key, not named "id" or "pk" as usual since child
+	 tables will have "id"/"pk"-named primary keys already and
+	 we would get duplicate columns while inheriting from this
+	 table
 				</td>
 			 </tr>
             
             <tr class="tr1">
 				<td>
                 
-                  
-                  <a href="gnumed-entire_schema.html#blobs.table.doc-med">blobs.doc_med.pk</a>
-                  
+                </td>
+            	<td>clin_when</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				NOT NULL
+				DEFAULT now()
+				</i>
+				<br><br>when this clinical item became known, can be different from
+	 when it was entered into the system (= audit.audit_fields.modified_when)
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
                 
                   
+                  <a href="gnumed-entire_schema.html#clin.table.encounter">clin.encounter.pk</a>
+                  
                 
                 </td>
-            	<td>fk_doc</td>
+            	<td>fk_encounter</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -42358,41 +56331,68 @@ END;</pre>
 
 					
 				
+
+				NOT NULL
+				
+				</i>
+				<br><br>the encounter this item belongs to
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                  
+                  <a href="gnumed-entire_schema.html#clin.table.episode">clin.episode.pk</a>
+                  
+                
+                </td>
+            	<td>fk_episode</td>
+            	<td>integer</td>
+                <td><i>
+				
 					
 
 					
-                       UNIQUE#1
-                    
 				
 
-				
+				NOT NULL
 				
 				</i>
-				
+				<br><br>the episode this item belongs to
 				</td>
 			 </tr>
             
             <tr class="tr0">
 				<td>
                 
-                  
-                
                 </td>
-            	<td>text</td>
+            	<td>narrative</td>
             	<td>text</td>
                 <td><i>
 				
-					
 
-					
-                       UNIQUE#1
-                    
+				
+				
+				</i>
+				<br><br>each clinical item by default inherits a free text field for clinical narrative
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>soap_cat</td>
+            	<td>text</td>
+                <td><i>
 				
 
 				
 				
 				</i>
-				
+				<br><br>each clinical item must be either one of the S, O, A, P, U
+	 categories or NULL to indicate a non-clinical item, U meaning Unspecified-but-clinical
 				</td>
 			 </tr>
             
@@ -42400,7 +56400,7 @@ END;</pre>
 
         <!-- Inherits -->
 		
-        <p>Table blobs.doc_desc Inherits
+        <p>Table clin.clin_root_item Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-fields">audit_fields</a>, 
@@ -42414,13 +56414,35 @@ END;</pre>
 
         <!-- Constraint List -->
 		
+        <p> </p>
+		<table width="100%" cellspacing="0" cellpadding="3">
+            <caption>clin.clin_root_item Constraints</caption>
+            <tr>
+            	<th>Name</th>
+            	<th>Constraint</th>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>clin_root_item_sane_soap_cat</td>
+                <td>CHECK (((soap_cat IS NULL) OR (lower(soap_cat) = ANY (ARRAY['s'::text, 'o'::text, 'a'::text, 'p'::text, 'u'::text]))))</td>
+            </tr>
+			
+		</table>
+		
 
         <!-- Foreign Key Discovery -->
 		
 
     <!-- Indexes -->
     
-       idx_doc_desc_fk_doc fk_doc
+       idx_cri_encounter fk_encounter
+    
+       idx_cri_episode fk_episode
     
 
 	<!-- View Definition -->
@@ -42431,22 +56453,21 @@ END;</pre>
 
 	<p>
 		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#blobs.schema">Schema blobs</a>
+		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
     </p>
 	
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#blobs.schema">blobs</a>.<a name="blobs.table.doc-med">doc_med</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.encounter">encounter</a>
 		</h2>
         
-         <p>a medical document object possibly containing several
-	 data objects such as several pages of a paper document</p>
+         <p>a clinical encounter between a person and the health care system</p>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>blobs.doc_med Structure</caption>
+                <caption>clin.encounter Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -42505,11 +56526,19 @@ END;</pre>
             <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
+                
                 </td>
             	<td>modified_by</td>
             	<td>name</td>
                 <td><i>
 				
+					
+
+					
+				
 
 				NOT NULL
 				DEFAULT "current_user"()
@@ -42545,11 +56574,11 @@ END;</pre>
 				<td>
                 
                   
-                  <a href="gnumed-entire_schema.html#clin.table.encounter">clin.encounter.pk</a>
+                  <a href="gnumed-entire_schema.html#clin.table.patient">clin.patient.fk_identity</a>
                   
                 
                 </td>
-            	<td>fk_encounter</td>
+            	<td>fk_patient</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -42561,7 +56590,7 @@ END;</pre>
 				NOT NULL
 				
 				</i>
-				<br><br>the encounter in which this document was entered into the system
+				<br><br>PK of subject of care, should be PUPIC, actually
 				</td>
 			 </tr>
             
@@ -42569,11 +56598,11 @@ END;</pre>
 				<td>
                 
                   
-                  <a href="gnumed-entire_schema.html#clin.table.episode">clin.episode.pk</a>
+                  <a href="gnumed-entire_schema.html#clin.table.encounter-type">clin.encounter_type.pk</a>
                   
                 
                 </td>
-            	<td>fk_episode</td>
+            	<td>fk_type</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -42583,11 +56612,9 @@ END;</pre>
 				
 
 				NOT NULL
-				
+				DEFAULT 1
 				</i>
-				<br><br>the episode this document pertains to, this may not be the only
-	 one applicable to the document (think discharge letters), see also
-	 lnk_doc_med2episode
+				<br><br>PK of type of this encounter
 				</td>
 			 </tr>
             
@@ -42595,11 +56622,11 @@ END;</pre>
 				<td>
                 
                   
-                  <a href="gnumed-entire_schema.html#blobs.table.doc-type">blobs.doc_type.pk</a>
+                  <a href="gnumed-entire_schema.html#dem.table.org-unit">dem.org_unit.pk</a>
                   
                 
                 </td>
-            	<td>fk_type</td>
+            	<td>fk_location</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -42611,8 +56638,7 @@ END;</pre>
 				NOT NULL
 				
 				</i>
-				<br><br>semantic type of document (not type of file or mime
-	 type), such as "referral letter", "discharge summary", etc.
+				<br><br>PK of location *of care*, e.g. where the provider is at
 				</td>
 			 </tr>
             
@@ -42620,7 +56646,24 @@ END;</pre>
 				<td>
                 
                 </td>
-            	<td>comment</td>
+            	<td>source_time_zone</td>
+            	<td>interval</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				<br><br>time zone of location, used to approximate source time
+	 zone for all timestamps in this encounter
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>reason_for_encounter</td>
             	<td>text</td>
                 <td><i>
 				
@@ -42628,8 +56671,28 @@ END;</pre>
 				
 				
 				</i>
-				<br><br>additional short comment such as "abdominal", "ward 3,
-	 Dr. Stein", etc.
+				<br><br>the RFE for the encounter as related by either
+	 the patient or the provider (say, in a chart
+	 review)
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>assessment_of_encounter</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				<br><br>the Assessment of Encounter (eg consultation summary)
+	 as determined by the provider, may simply be a
+	 concatenation of soAp narrative, this assessment
+	 should go across all problems
 				</td>
 			 </tr>
             
@@ -42637,7 +56700,7 @@ END;</pre>
 				<td>
                 
                 </td>
-            	<td>clin_when</td>
+            	<td>started</td>
             	<td>timestamp with time zone</td>
                 <td><i>
 				
@@ -42645,26 +56708,256 @@ END;</pre>
 				NOT NULL
 				DEFAULT now()
 				</i>
-				<br><br>date of document content creation (such as exam date),
-	 NOT date of document creation or date of import; may
-	 be imprecise such as "7/99"
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>last_affirmed</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				NOT NULL
+				DEFAULT now()
+				</i>
+				
 				</td>
 			 </tr>
             
+        </table>
+
+        <!-- Inherits -->
+		
+        <p>Table clin.encounter Inherits
+        
+            
+           <a href="gnumed-entire_schema.html#audit.table.audit-fields">audit_fields</a>, 
+        
+        </p>
+		
+
+		
+		
+		
+
+        <!-- Constraint List -->
+		
+        <p> </p>
+		<table width="100%" cellspacing="0" cellpadding="3">
+            <caption>clin.encounter Constraints</caption>
+            <tr>
+            	<th>Name</th>
+            	<th>Constraint</th>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>clin_enc_sane_duration</td>
+                <td>CHECK ((last_affirmed >= started))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>encounter_assessment_of_encounter_check</td>
+                <td>CHECK ((btrim(COALESCE(assessment_of_encounter, 'xxxDEFAULTxxx'::text)) <> ''::text))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>encounter_reason_for_encounter_check</td>
+                <td>CHECK ((btrim(COALESCE(reason_for_encounter, 'xxxDEFAULTxxx'::text)) <> ''::text))</td>
+            </tr>
+			
+		</table>
+		
+
+        <!-- Foreign Key Discovery -->
+		
+			<p>Tables referencing this one via Foreign Key Constraints:</p>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#au.table.referral">au.referral</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#bill.table.bill-item">bill.bill_item</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#blobs.table.doc-med">blobs.doc_med</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.allergy">clin.allergy</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.allergy-state">clin.allergy_state</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.clin-aux-note">clin.clin_aux_note</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.clin-narrative">clin.clin_narrative</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.clin-root-item">clin.clin_root_item</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.episode">clin.episode</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.external-care">clin.external_care</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.family-history">clin.family_history</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.form-instances">clin.form_instances</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.health-issue">clin.health_issue</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.hospital-stay">clin.hospital_stay</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.lab-request">clin.lab_request</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.lnk-code2aoe">clin.lnk_code2aoe</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.lnk-code2rfe">clin.lnk_code2rfe</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.procedure">clin.procedure</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.substance-intake">clin.substance_intake</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.suppressed-hint">clin.suppressed_hint</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.test-result">clin.test_result</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.vaccination">clin.vaccination</a></li>
+			</ul>
+		
+		
+
+    <!-- Indexes -->
+    
+       idx_clin_encounter_fk_location fk_location
+    
+       idx_encounter_affirmed last_affirmed
+    
+       idx_encounter_modified_by modified_by
+    
+       idx_encounter_started started
+    
+       idx_pat_per_encounter fk_patient
+    
+
+	<!-- View Definition -->
+	
+
+	<!-- List off permissions -->
+	
+
+	<p>
+		<a href="gnumed-entire_schema.html#index">Index</a> -
+		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
+    </p>
+	
+        <hr>
+		<h2>Table:
+			
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.encounter-type">encounter_type</a>
+		</h2>
+        
+         <p>these are the types of encounter</p>
+        
+
+
+        <table width="100%" cellspacing="0" cellpadding="3">
+                <caption>clin.encounter_type Structure</caption>
+                <tr>
+                <th>F-Key</th>
+                <th>Name</th>
+                <th>Type</th>
+                <th>Description</th>
+                </tr>
+            
             <tr class="tr0">
 				<td>
                 
+                  
+                
+                </td>
+            	<td>pk</td>
+            	<td>serial</td>
+                <td><i>
+				
+					PRIMARY KEY
+					
+
+					
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                  
+                
                 </td>
-            	<td>ext_ref</td>
+            	<td>description</td>
             	<td>text</td>
                 <td><i>
 				
+					
 
+					
+                       UNIQUE
+                    
 				
+
+				NOT NULL
 				
 				</i>
-				<br><br>external reference string of physical document,
-	 original paper copy can be found with this
+				
 				</td>
 			 </tr>
             
@@ -42672,13 +56965,6 @@ END;</pre>
 
         <!-- Inherits -->
 		
-        <p>Table blobs.doc_med Inherits
-        
-            
-           <a href="gnumed-entire_schema.html#audit.table.audit-fields">audit_fields</a>, 
-        
-        </p>
-		
 
 		
 		
@@ -42692,23 +56978,11 @@ END;</pre>
 			<p>Tables referencing this one via Foreign Key Constraints:</p>
 		
 			<ul>
-				<li><a href="gnumed-entire_schema.html#bill.table.bill">bill.bill</a></li>
-			</ul>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#blobs.table.doc-desc">blobs.doc_desc</a></li>
-			</ul>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#blobs.table.doc-obj">blobs.doc_obj</a></li>
-			</ul>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#blobs.table.lnk-doc2hospital-stay">blobs.lnk_doc2hospital_stay</a></li>
+				<li><a href="gnumed-entire_schema.html#bill.table.lnk-enc-type2billable">bill.lnk_enc_type2billable</a></li>
 			</ul>
 		
 			<ul>
-				<li><a href="gnumed-entire_schema.html#blobs.table.lnk-doc-med2episode">blobs.lnk_doc_med2episode</a></li>
+				<li><a href="gnumed-entire_schema.html#clin.table.encounter">clin.encounter</a></li>
 			</ul>
 		
 		
@@ -42724,22 +56998,25 @@ END;</pre>
 
 	<p>
 		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#blobs.schema">Schema blobs</a>
+		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
     </p>
 	
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#blobs.schema">blobs</a>.<a name="blobs.table.doc-obj">doc_obj</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.episode">episode</a>
 		</h2>
         
-         <p>possibly several of these form a medical document
-	 such as multiple scanned pages/images</p>
+         <p>Clinical episodes such as "Otitis media",
+	 "traffic accident 7/99", "Hepatitis B".
+	 This covers a range of time in which
+	 activity of illness was noted for the
+	 problem episode.description.</p>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>blobs.doc_obj Structure</caption>
+                <caption>clin.episode Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -42750,6 +57027,78 @@ END;</pre>
             <tr class="tr0">
 				<td>
                 
+                </td>
+            	<td>pk_audit</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				NOT NULL
+				DEFAULT nextval('audit.audit_fields_pk_audit_seq'::regclass)
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>row_version</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				NOT NULL
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>modified_when</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				NOT NULL
+				DEFAULT now()
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
+                
+                </td>
+            	<td>modified_by</td>
+            	<td>name</td>
+                <td><i>
+				
+					
+
+					
+				
+
+				NOT NULL
+				DEFAULT "current_user"()
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
                   
                 
                 </td>
@@ -42774,11 +57123,11 @@ END;</pre>
 				<td>
                 
                   
-                  <a href="gnumed-entire_schema.html#blobs.table.doc-med">blobs.doc_med.pk</a>
+                  <a href="gnumed-entire_schema.html#clin.table.health-issue">clin.health_issue.pk</a>
                   
                 
                 </td>
-            	<td>fk_doc</td>
+            	<td>fk_health_issue</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -42787,10 +57136,10 @@ END;</pre>
 					
 				
 
-				NOT NULL
 				
-				</i>
 				
+				</i>
+				<br><br>health issue this episode belongs to
 				</td>
 			 </tr>
             
@@ -42798,16 +57147,15 @@ END;</pre>
 				<td>
                 
                 </td>
-            	<td>seq_idx</td>
-            	<td>integer</td>
+            	<td>description</td>
+            	<td>text</td>
                 <td><i>
 				
 
-				
+				NOT NULL
 				
 				</i>
-				<br><br>index of this object in the sequence
-	 of objects for this document
+				<br><br>description/name of this episode
 				</td>
 			 </tr>
             
@@ -42815,16 +57163,17 @@ END;</pre>
 				<td>
                 
                 </td>
-            	<td>comment</td>
-            	<td>text</td>
+            	<td>is_open</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
 				
-				
+				DEFAULT true
 				</i>
-				<br><br>optional tiny comment for this
-	 object, such as "page 1"
+				<br><br>whether the episode is open (eg. there is activity for it),
+	 means open in a temporal sense as in "not closed yet";
+	 only one episode can be open per health issue
 				</td>
 			 </tr>
             
@@ -42832,11 +57181,11 @@ END;</pre>
 				<td>
                 
                   
-                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.pk</a>
+                  <a href="gnumed-entire_schema.html#clin.table.encounter">clin.encounter.pk</a>
                   
                 
                 </td>
-            	<td>fk_intended_reviewer</td>
+            	<td>fk_encounter</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -42848,7 +57197,7 @@ END;</pre>
 				NOT NULL
 				
 				</i>
-				<br><br>who is *supposed* to review this item
+				<br><br>The encounter during which this episode was added (begun).
 				</td>
 			 </tr>
             
@@ -42856,67 +57205,19 @@ END;</pre>
 				<td>
                 
                 </td>
-            	<td>data</td>
-            	<td>bytea</td>
+            	<td>diagnostic_certainty_classification</td>
+            	<td>text</td>
                 <td><i>
 				
 
-				NOT NULL
+				
 				
 				</i>
-				<br><br>actual binary object data;
-
-	 here is why we use bytea:
-
-== --------------------------------------------------
-
-To: leon at oss.minimetria.com
-
-Cc: pgsql-sql at postgresql.org
-
-Subject: Re: [SQL] Recommendation on bytea or blob for binary data like images 
-
-Date: Fri, 02 Sep 2005 16:33:09 -0400
-
-Message-ID: <17794.1125693189 at sss.pgh.pa.us>
-
-From: Tom Lane <tgl at sss.pgh.pa.us>
-
-List-Archive: <http://archives.postgresql.org/pgsql-sql>
-
-List-Help: <mailto:majordomo at postgresql.org?body=help>
-
-List-ID: <pgsql-sql.postgresql.org>
-
-
-
-leon at oss.minimetria.com writes:
-
-> Hi, I"d like to know what the official recommendation is on which binary
-
-> datatype to use for common small-binary size use.
-
-
-
-If bytea will work for you, it"s definitely the thing to use.  The only
-
-real drawback to bytea is that there"s currently no API to read and
-
-write bytea values in a streaming fashion.  If your objects are small
-
-enough that you can load and store them as units, bytea is fine.
-
-
-
-BLOBs, on the other hand, have a number of drawbacks --- hard to dump,
-
-impossible to secure, etc.
-
-
-
-			regards, tom lane
-
-== --------------------------------------------------
+				<br><br>The certainty at which this problem is believed to be a diagnosis:
+A: sign (Symptom)
+B: cluster of signs (Symptomkomplex)
+C: syndromic diagnosis (Bild einer Diagnose)
+D: proven diagnosis (diagnostisch gesichert)
 				</td>
 			 </tr>
             
@@ -42924,7 +57225,7 @@ impossible to secure, etc.
 				<td>
                 
                 </td>
-            	<td>filename</td>
+            	<td>summary</td>
             	<td>text</td>
                 <td><i>
 				
@@ -42932,9 +57233,7 @@ impossible to secure, etc.
 				
 				
 				</i>
-				<br><br>the filename from when the data was imported - if any, can be NULL,
-	 useful for re-export since legacy devices/applications might expect
-	 particular file names and not use mime types for file detection
+				<br><br>Used for tracking the summary of this episode.
 				</td>
 			 </tr>
             
@@ -42942,6 +57241,13 @@ impossible to secure, etc.
 
         <!-- Inherits -->
 		
+        <p>Table clin.episode Inherits
+        
+            
+           <a href="gnumed-entire_schema.html#audit.table.audit-fields">audit_fields</a>, 
+        
+        </p>
+		
 
 		
 		
@@ -42951,15 +57257,30 @@ impossible to secure, etc.
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>blobs.doc_obj Constraints</caption>
+            <caption>clin.episode Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
-				<td>doc_obj_filename_check</td>
-                <td>CHECK ((btrim(COALESCE(filename, 'NULL'::text)) <> ''::text))</td>
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>episode_sane_summary</td>
+                <td>CHECK (gm.is_null_or_non_empty_string(summary))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>sane_description</td>
+                <td>CHECK ((gm.is_null_or_blank_string(description) IS FALSE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>valid_diagnostic_certainty_classification</td>
+                <td>CHECK ((diagnostic_certainty_classification = ANY (ARRAY['A'::text, 'B'::text, 'C'::text, 'D'::text, NULL::text])))</td>
             </tr>
 			
 		</table>
@@ -42970,17 +57291,87 @@ impossible to secure, etc.
 			<p>Tables referencing this one via Foreign Key Constraints:</p>
 		
 			<ul>
-				<li><a href="gnumed-entire_schema.html#blobs.table.reviewed-doc-objs">blobs.reviewed_doc_objs</a></li>
+				<li><a href="gnumed-entire_schema.html#au.table.referral">au.referral</a></li>
 			</ul>
 		
 			<ul>
-				<li><a href="gnumed-entire_schema.html#clin.table.export-item">clin.export_item</a></li>
+				<li><a href="gnumed-entire_schema.html#blobs.table.doc-med">blobs.doc_med</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#blobs.table.lnk-doc-med2episode">blobs.lnk_doc_med2episode</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.allergy">clin.allergy</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.clin-aux-note">clin.clin_aux_note</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.clin-narrative">clin.clin_narrative</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.clin-root-item">clin.clin_root_item</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.family-history">clin.family_history</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.form-instances">clin.form_instances</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.hospital-stay">clin.hospital_stay</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.lab-request">clin.lab_request</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.lnk-code2episode">clin.lnk_code2episode</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.lnk-substance2episode">clin.lnk_substance2episode</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.procedure">clin.procedure</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.substance-intake">clin.substance_intake</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.test-result">clin.test_result</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.vaccination">clin.vaccination</a></li>
 			</ul>
 		
 		
 
     <!-- Indexes -->
     
+       idx_episode_fk_encounter fk_encounter
+    
+       idx_episode_issue fk_health_issue
+    
+       idx_episode_modified_by modified_by
+    
+       idx_episode_with_issue fk_health_issue) WHERE (fk_health_issue IS NOT NULL
+    
+       idx_episode_without_issue fk_health_issue) WHERE (fk_health_issue IS NULL
+    
 
 	<!-- View Definition -->
 	
@@ -42990,21 +57381,21 @@ impossible to secure, etc.
 
 	<p>
 		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#blobs.schema">Schema blobs</a>
+		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
     </p>
 	
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#blobs.schema">blobs</a>.<a name="blobs.table.doc-type">doc_type</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.export-item">export_item</a>
 		</h2>
         
-         <p>this table enumerates the document types known to the system</p>
+         <p>A table to hold binary data for patients intended for export as print/mail/fax/removable media/...</p>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>blobs.doc_type Structure</caption>
+                <caption>clin.export_item Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -43040,93 +57431,46 @@ impossible to secure, etc.
                 
                   
                 
+                  
+                  <a href="gnumed-entire_schema.html#clin.table.patient">clin.patient.fk_identity</a>
+                  
+                
                 </td>
-            	<td>name</td>
-            	<td>text</td>
+            	<td>fk_identity</td>
+            	<td>integer</td>
                 <td><i>
 				
 					
 
 					
-                       UNIQUE
+                       UNIQUE#1
                     
 				
+					
 
-				NOT NULL
+					
+				
+
+				
 				
 				</i>
-				<br><br>the name/label of the document type
+				<br><br>the patient this item pertains to, DELETE does not cascade because we may have wanted to export data before deleting a patient ...
 				</td>
 			 </tr>
             
-        </table>
-
-        <!-- Inherits -->
-		
-
-		
-		
-		
-
-        <!-- Constraint List -->
-		
-
-        <!-- Foreign Key Discovery -->
-		
-			<p>Tables referencing this one via Foreign Key Constraints:</p>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#blobs.table.doc-med">blobs.doc_med</a></li>
-			</ul>
-		
-		
-
-    <!-- Indexes -->
-    
-
-	<!-- View Definition -->
-	
-
-	<!-- List off permissions -->
-	
-
-	<p>
-		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#blobs.schema">Schema blobs</a>
-    </p>
-	
-        <hr>
-		<h2>Table:
-			
-			<a href="gnumed-entire_schema.html#blobs.schema">blobs</a>.<a name="blobs.table.lnk-doc2hospital-stay">lnk_doc2hospital_stay</a>
-		</h2>
-        
-         <p>links documents to any hospital stay they might pertain to</p>
-        
-
-
-        <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>blobs.lnk_doc2hospital_stay Structure</caption>
-                <tr>
-                <th>F-Key</th>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Description</th>
-                </tr>
-            
             <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>pk_audit</td>
-            	<td>integer</td>
+            	<td>created_by</td>
+            	<td>name</td>
                 <td><i>
 				
 
 				NOT NULL
-				DEFAULT nextval('audit.audit_fields_pk_audit_seq'::regclass)
+				DEFAULT "current_user"()
 				</i>
-				
+				<br><br>who put this item here
 				</td>
 			 </tr>
             
@@ -43134,15 +57478,15 @@ impossible to secure, etc.
 				<td>
                 
                 </td>
-            	<td>row_version</td>
-            	<td>integer</td>
+            	<td>created_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
 				NOT NULL
-				
+				DEFAULT statement_timestamp()
 				</i>
-				
+				<br><br>when was this item put here
 				</td>
 			 </tr>
             
@@ -43150,31 +57494,39 @@ impossible to secure, etc.
 				<td>
                 
                 </td>
-            	<td>modified_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>designation</td>
+            	<td>text</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT now()
-				</i>
 				
+				
+				</i>
+				<br><br>the intended use for this item if any, say "print" for printing
 				</td>
 			 </tr>
             
             <tr class="tr1">
 				<td>
                 
+                  
+                
                 </td>
-            	<td>modified_by</td>
-            	<td>name</td>
+            	<td>description</td>
+            	<td>text</td>
                 <td><i>
 				
+					
 
-				NOT NULL
-				DEFAULT "current_user"()
-				</i>
+					
+                       UNIQUE#1
+                    
 				
+
+				
+				
+				</i>
+				<br><br>a unique-per-patient description of the item
 				</td>
 			 </tr>
             
@@ -43183,77 +57535,62 @@ impossible to secure, etc.
                 
                   
                 
+                  
+                  <a href="gnumed-entire_schema.html#blobs.table.doc-obj">blobs.doc_obj.pk</a>
+                  
+                
                 </td>
-            	<td>pk</td>
-            	<td>serial</td>
+            	<td>fk_doc_obj</td>
+            	<td>integer</td>
                 <td><i>
 				
-					PRIMARY KEY
 					
 
 					
+                       UNIQUE
+                    
 				
+					
 
+					
 				
+
 				
-				</i>
 				
+				</i>
+				<br><br>points to a document object
 				</td>
 			 </tr>
             
             <tr class="tr1">
 				<td>
                 
-                  
-                  <a href="gnumed-entire_schema.html#clin.table.hospital-stay">clin.hospital_stay.pk</a>
-                  
-                
                 </td>
-            	<td>fk_stay</td>
-            	<td>integer</td>
+            	<td>data</td>
+            	<td>bytea</td>
                 <td><i>
 				
-					
 
-					
 				
-
-				NOT NULL
 				
 				</i>
-				
+				<br><br>binary data representing the actual export item (unless fk_doc_obj points to a document object)
 				</td>
 			 </tr>
             
             <tr class="tr0">
 				<td>
                 
-                  
-                  <a href="gnumed-entire_schema.html#blobs.table.doc-med">blobs.doc_med.pk</a>
-                  
-                
-                  
-                
                 </td>
-            	<td>fk_document</td>
-            	<td>integer</td>
+            	<td>filename</td>
+            	<td>text</td>
                 <td><i>
 				
-					
-
-					
-				
-					
 
-					
-                       UNIQUE
-                    
 				
-
-				NOT NULL
 				
 				</i>
-				
+				<br><br>a filename, possibly from an import, if applicable, mainly used to please non-mime pseudo operating systems
 				</td>
 			 </tr>
             
@@ -43261,13 +57598,6 @@ impossible to secure, etc.
 
         <!-- Inherits -->
 		
-        <p>Table blobs.lnk_doc2hospital_stay Inherits
-        
-            
-           <a href="gnumed-entire_schema.html#audit.table.audit-fields">audit_fields</a>, 
-        
-        </p>
-		
 
 		
 		
@@ -43275,6 +57605,56 @@ impossible to secure, etc.
 
         <!-- Constraint List -->
 		
+        <p> </p>
+		<table width="100%" cellspacing="0" cellpadding="3">
+            <caption>clin.export_item Constraints</caption>
+            <tr>
+            	<th>Name</th>
+            	<th>Constraint</th>
+            </tr>
+			
+            <tr class="tr0">
+				<td>clin_export_item_fk_obj_or_data</td>
+                <td>CHECK ((((data IS NULL) AND (fk_doc_obj IS NOT NULL)) OR ((data IS NOT NULL) AND (fk_doc_obj IS NULL))))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>clin_export_item_fk_obj_or_filename</td>
+                <td>CHECK ((((filename IS NULL) AND (fk_doc_obj IS NOT NULL)) OR ((filename IS NOT NULL) AND (fk_doc_obj IS NULL))))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>clin_export_item_fk_obj_or_fk_identity</td>
+                <td>CHECK ((((fk_identity IS NULL) AND (fk_doc_obj IS NOT NULL)) OR ((fk_identity IS NOT NULL) AND (fk_doc_obj IS NULL))))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>clin_export_item_sane_by</td>
+                <td>CHECK ((length((created_by)::text) > 0))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>clin_export_item_sane_data</td>
+                <td>CHECK (((data IS NULL) OR (length(data) > 0)))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>clin_export_item_sane_description</td>
+                <td>CHECK ((gm.is_null_or_blank_string(description) IS FALSE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>clin_export_item_sane_designation</td>
+                <td>CHECK ((gm.is_null_or_non_empty_string(designation) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>clin_export_item_sane_filename</td>
+                <td>CHECK ((gm.is_null_or_non_empty_string(filename) IS TRUE))</td>
+            </tr>
+			
+		</table>
+		
 
         <!-- Foreign Key Discovery -->
 		
@@ -43290,23 +57670,21 @@ impossible to secure, etc.
 
 	<p>
 		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#blobs.schema">Schema blobs</a>
+		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
     </p>
 	
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#blobs.schema">blobs</a>.<a name="blobs.table.lnk-doc-med2episode">lnk_doc_med2episode</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.external-care">external_care</a>
 		</h2>
         
-         <p>this allows linking documents to episodes,
-	 each document can apply to several episodes
-	 but only once each</p>
+         <p>lists external care situations for patients</p>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>blobs.lnk_doc_med2episode Structure</caption>
+                <caption>clin.external_care Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -43365,11 +57743,19 @@ impossible to secure, etc.
             <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
+                
                 </td>
             	<td>modified_by</td>
             	<td>name</td>
                 <td><i>
 				
+					
+
+					
+				
 
 				NOT NULL
 				DEFAULT "current_user"()
@@ -43405,13 +57791,11 @@ impossible to secure, etc.
 				<td>
                 
                   
-                  <a href="gnumed-entire_schema.html#clin.table.episode">clin.episode.pk</a>
-                  
-                
+                  <a href="gnumed-entire_schema.html#clin.table.encounter">clin.encounter.pk</a>
                   
                 
                 </td>
-            	<td>fk_episode</td>
+            	<td>fk_encounter</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -43419,17 +57803,59 @@ impossible to secure, etc.
 
 					
 				
+
+				NOT NULL
+				
+				</i>
+				<br><br>the encounter during which this external care item was first documented
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                  
+                
+                  
+                  <a href="gnumed-entire_schema.html#clin.table.health-issue">clin.health_issue.pk</a>
+                  
+                
+                </td>
+            	<td>fk_health_issue</td>
+            	<td>integer</td>
+                <td><i>
+				
 					
 
 					
                        UNIQUE#1
                     
 				
+					
 
-				NOT NULL
+					
+				
+
+				
 				
 				</i>
+				<br><br>link to a health issue, if any
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>issue</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
 				
+				</i>
+				<br><br>description of the issue of external care
 				</td>
 			 </tr>
             
@@ -43437,31 +57863,63 @@ impossible to secure, etc.
 				<td>
                 
                   
-                  <a href="gnumed-entire_schema.html#blobs.table.doc-med">blobs.doc_med.pk</a>
-                  
                 
                   
+                  <a href="gnumed-entire_schema.html#dem.table.org-unit">dem.org_unit.pk</a>
+                  
                 
                 </td>
-            	<td>fk_doc_med</td>
+            	<td>fk_org_unit</td>
             	<td>integer</td>
                 <td><i>
 				
 					
 
 					
+                       UNIQUE#1
+                    
 				
 					
 
 					
-                       UNIQUE#1
-                    
 				
 
 				NOT NULL
 				
 				</i>
+				<br><br>link to the org unit where care is rendered
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>provider</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				<br><br>name of actual provider at .fk_org_unit
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>comment</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
 				
+				</i>
+				<br><br>comment on the patient/provider relationship, say role/issues cared for/...
 				</td>
 			 </tr>
             
@@ -43469,7 +57927,7 @@ impossible to secure, etc.
 
         <!-- Inherits -->
 		
-        <p>Table blobs.lnk_doc_med2episode Inherits
+        <p>Table clin.external_care Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-fields">audit_fields</a>, 
@@ -43483,12 +57941,53 @@ impossible to secure, etc.
 
         <!-- Constraint List -->
 		
+        <p> </p>
+		<table width="100%" cellspacing="0" cellpadding="3">
+            <caption>clin.external_care Constraints</caption>
+            <tr>
+            	<th>Name</th>
+            	<th>Constraint</th>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>clin_ext_care_issue_xor_fk_issue</td>
+                <td>CHECK ((((fk_health_issue IS NULL) AND (issue IS NOT NULL)) OR ((fk_health_issue IS NOT NULL) AND (issue IS NULL))))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>clin_ext_care_sane_comment</td>
+                <td>CHECK ((gm.is_null_or_non_empty_string(comment) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>clin_ext_care_sane_issue</td>
+                <td>CHECK ((gm.is_null_or_non_empty_string(issue) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>clin_ext_care_sane_provider</td>
+                <td>CHECK ((gm.is_null_or_non_empty_string(provider) IS TRUE))</td>
+            </tr>
+			
+		</table>
+		
 
         <!-- Foreign Key Discovery -->
 		
 
     <!-- Indexes -->
     
+       idx_external_care_fk_encounter fk_encounter
+    
+       idx_external_care_fk_health_issue fk_health_issue
+    
+       idx_external_care_fk_org_unit fk_org_unit
+    
 
 	<!-- View Definition -->
 	
@@ -43498,21 +57997,21 @@ impossible to secure, etc.
 
 	<p>
 		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#blobs.schema">Schema blobs</a>
+		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
     </p>
 	
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#blobs.schema">blobs</a>.<a name="blobs.table.reviewed-doc-objs">reviewed_doc_objs</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.family-history">family_history</a>
 		</h2>
         
-         <p>review table for documents (per object such as a page)</p>
+         <p>This table stores family history items on persons not otherwise in the database.</p>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>blobs.reviewed_doc_objs Structure</caption>
+                <caption>clin.family_history Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -43571,11 +58070,19 @@ impossible to secure, etc.
             <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
+                
                 </td>
             	<td>modified_by</td>
             	<td>name</td>
                 <td><i>
 				
+					
+
+					
+				
 
 				NOT NULL
 				DEFAULT "current_user"()
@@ -43587,21 +58094,14 @@ impossible to secure, etc.
             <tr class="tr0">
 				<td>
                 
-                  
-                
                 </td>
-            	<td>pk</td>
+            	<td>pk_item</td>
             	<td>integer</td>
                 <td><i>
 				
-					PRIMARY KEY
-					
-
-					
-				
 
-				
-				DEFAULT nextval('clin.review_root_pk_seq'::regclass)
+				NOT NULL
+				DEFAULT nextval('clin_root_item_pk_item_seq'::regclass)
 				</i>
 				
 				</td>
@@ -43610,32 +58110,16 @@ impossible to secure, etc.
             <tr class="tr1">
 				<td>
                 
-                  
-                  <a href="gnumed-entire_schema.html#blobs.table.doc-obj">blobs.doc_obj.pk</a>
-                  
-                
-                  
-                
                 </td>
-            	<td>fk_reviewed_row</td>
-            	<td>integer</td>
+            	<td>clin_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
-					
-
-					
-				
-					
-
-					
-                       UNIQUE#1
-                    
-				
 
 				NOT NULL
-				
+				DEFAULT now()
 				</i>
-				
+				<br><br>When the family history item became known to the patient (not the afflicted relative).
 				</td>
 			 </tr>
             
@@ -43643,39 +58127,47 @@ impossible to secure, etc.
 				<td>
                 
                   
+                  <a href="gnumed-entire_schema.html#clin.table.encounter">clin.encounter.pk</a>
+                  
                 
                 </td>
-            	<td>fk_reviewer</td>
+            	<td>fk_encounter</td>
             	<td>integer</td>
                 <td><i>
 				
 					
 
 					
-                       UNIQUE#1
-                    
 				
 
 				NOT NULL
 				
 				</i>
-				
+				<br><br>encounter during which family history item became known
 				</td>
 			 </tr>
             
             <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#clin.table.episode">clin.episode.pk</a>
+                  
+                
                 </td>
-            	<td>is_technically_abnormal</td>
-            	<td>boolean</td>
+            	<td>fk_episode</td>
+            	<td>integer</td>
                 <td><i>
 				
+					
+
+					
+				
 
 				NOT NULL
 				
 				</i>
-				
+				<br><br>episode to which family history item is of importance
 				</td>
 			 </tr>
             
@@ -43683,15 +58175,15 @@ impossible to secure, etc.
 				<td>
                 
                 </td>
-            	<td>clinically_relevant</td>
-            	<td>boolean</td>
+            	<td>narrative</td>
+            	<td>text</td>
                 <td><i>
 				
 
-				NOT NULL
 				
-				</i>
 				
+				</i>
+				<br><br>the condition this relative suffered from
 				</td>
 			 </tr>
             
@@ -43699,7 +58191,7 @@ impossible to secure, etc.
 				<td>
                 
                 </td>
-            	<td>comment</td>
+            	<td>soap_cat</td>
             	<td>text</td>
                 <td><i>
 				
@@ -43711,69 +58203,21 @@ impossible to secure, etc.
 				</td>
 			 </tr>
             
-        </table>
-
-        <!-- Inherits -->
-		
-        <p>Table blobs.reviewed_doc_objs Inherits
-        
-            
-           <a href="gnumed-entire_schema.html#clin.table.review-root">review_root</a>, 
-        
-        </p>
-		
-
-		
-		
-		
-
-        <!-- Constraint List -->
-		
-
-        <!-- Foreign Key Discovery -->
-		
-
-    <!-- Indexes -->
-    
-
-	<!-- View Definition -->
-	
-
-	<!-- List off permissions -->
-	
-
-	<p>
-		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#blobs.schema">Schema blobs</a>
-    </p>
-	
-        <hr>
-		<h2>View:
-			
-			<a href="gnumed-entire_schema.html#blobs.schema">blobs</a>.<a name="blobs.view.v-doc-desc">v_doc_desc</a>
-		</h2>
-        
-         <p>aggregates some document data descriptions</p>
-        
-
-
-        <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>blobs.v_doc_desc Structure</caption>
-                <tr>
-                <th>F-Key</th>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Description</th>
-                </tr>
-            
             <tr class="tr0">
 				<td>
                 
+                  
+                
                 </td>
-            	<td>pk_patient</td>
-            	<td>integer</td>
+            	<td>pk</td>
+            	<td>serial</td>
                 <td><i>
 				
+					PRIMARY KEY
+					
+
+					
+				
 
 				
 				
@@ -43785,16 +58229,24 @@ impossible to secure, etc.
             <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#clin.table.fhx-relation-type">clin.fhx_relation_type.pk</a>
+                  
+                
                 </td>
-            	<td>pk_doc</td>
+            	<td>fk_relation_type</td>
             	<td>integer</td>
                 <td><i>
 				
+					
 
+					
 				
+
+				NOT NULL
 				
 				</i>
-				
+				<br><br>foreign key to the type of relation the patient has to the afflicated relative
 				</td>
 			 </tr>
             
@@ -43802,7 +58254,7 @@ impossible to secure, etc.
 				<td>
                 
                 </td>
-            	<td>description</td>
+            	<td>age_noted</td>
             	<td>text</td>
                 <td><i>
 				
@@ -43810,7 +58262,7 @@ impossible to secure, etc.
 				
 				
 				</i>
-				
+				<br><br>age at which the condition was noted in the relative if known
 				</td>
 			 </tr>
             
@@ -43818,15 +58270,15 @@ impossible to secure, etc.
 				<td>
                 
                 </td>
-            	<td>pk_encounter</td>
-            	<td>integer</td>
+            	<td>age_of_death</td>
+            	<td>interval</td>
                 <td><i>
 				
 
 				
 				
 				</i>
-				
+				<br><br>age at which the relative died if known
 				</td>
 			 </tr>
             
@@ -43834,15 +58286,15 @@ impossible to secure, etc.
 				<td>
                 
                 </td>
-            	<td>pk_episode</td>
-            	<td>integer</td>
+            	<td>contributed_to_death</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
 				
 				
 				</i>
-				
+				<br><br>whether the condition contributed to the death of the relative if known
 				</td>
 			 </tr>
             
@@ -43850,15 +58302,15 @@ impossible to secure, etc.
 				<td>
                 
                 </td>
-            	<td>pk_health_issue</td>
-            	<td>integer</td>
+            	<td>name_relative</td>
+            	<td>text</td>
                 <td><i>
 				
 
 				
 				
 				</i>
-				
+				<br><br>name of the relative suffering the condition
 				</td>
 			 </tr>
             
@@ -43866,8 +58318,24 @@ impossible to secure, etc.
 				<td>
                 
                 </td>
-            	<td>pk_doc_desc</td>
-            	<td>integer</td>
+            	<td>dob_relative</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				<br><br>date of birth of the relative if known
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>comment</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -43882,51 +58350,101 @@ impossible to secure, etc.
 
         <!-- Inherits -->
 		
+        <p>Table clin.family_history Inherits
+        
+            
+           <a href="gnumed-entire_schema.html#clin.table.clin-root-item">clin_root_item</a>, 
+        
+        </p>
+		
 
 		
+		
+		
 
         <!-- Constraint List -->
 		
+        <p> </p>
+		<table width="100%" cellspacing="0" cellpadding="3">
+            <caption>clin.family_history Constraints</caption>
+            <tr>
+            	<th>Name</th>
+            	<th>Constraint</th>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>c_family_history_sane_age_noted</td>
+                <td>CHECK ((gm.is_null_or_non_empty_string(age_noted) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>c_family_history_sane_condition</td>
+                <td>CHECK ((gm.is_null_or_blank_string(narrative) IS FALSE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>c_family_history_sane_name</td>
+                <td>CHECK ((gm.is_null_or_non_empty_string(name_relative) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>clin_root_item_sane_soap_cat</td>
+                <td>CHECK (((soap_cat IS NULL) OR (lower(soap_cat) = ANY (ARRAY['s'::text, 'o'::text, 'a'::text, 'p'::text, 'u'::text]))))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>narrative_neither_null_nor_empty</td>
+                <td>CHECK ((btrim(COALESCE(narrative, ''::text)) <> ''::text))</td>
+            </tr>
+			
+		</table>
+		
 
         <!-- Foreign Key Discovery -->
 		
+			<p>Tables referencing this one via Foreign Key Constraints:</p>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.lnk-code2fhx">clin.lnk_code2fhx</a></li>
+			</ul>
+		
+		
 
     <!-- Indexes -->
     
+       idx_clin_family_history_fk_encounter fk_encounter
+    
+       idx_clin_family_history_fk_episode fk_episode
+    
 
 	<!-- View Definition -->
 	
-	<pre>
-SELECT vdm.pk_patient
-, dd.fk_doc AS pk_doc
-, dd.text AS description
-, vdm.pk_encounter
-, vdm.pk_episode
-, vdm.pk_health_issue
-, dd.pk AS pk_doc_desc 
-FROM blobs.doc_desc dd
-, blobs.v_doc_med vdm 
-WHERE (dd.fk_doc = vdm.pk_doc);</pre>
-	
 
 	<!-- List off permissions -->
 	
 
 	<p>
 		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#blobs.schema">Schema blobs</a>
+		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
     </p>
 	
         <hr>
-		<h2>View:
+		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#blobs.schema">blobs</a>.<a name="blobs.view.v-doc-med">v_doc_med</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.fhx-relation-type">fhx_relation_type</a>
 		</h2>
         
+         <p>Enumerates inter-person relations for family history linking.</p>
+        
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>blobs.v_doc_med Structure</caption>
+                <caption>clin.fhx_relation_type Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -43938,45 +58456,13 @@ WHERE (dd.fk_doc = vdm.pk_doc);</pre>
 				<td>
                 
                 </td>
-            	<td>pk_patient</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>pk_doc</td>
+            	<td>pk_audit</td>
             	<td>integer</td>
                 <td><i>
 				
 
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>clin_when</td>
-            	<td>timestamp with time zone</td>
-                <td><i>
-				
-
-				
-				
+				NOT NULL
+				DEFAULT nextval('audit.audit_fields_pk_audit_seq'::regclass)
 				</i>
 				
 				</td>
@@ -43986,12 +58472,12 @@ WHERE (dd.fk_doc = vdm.pk_doc);</pre>
 				<td>
                 
                 </td>
-            	<td>type</td>
-            	<td>text</td>
+            	<td>row_version</td>
+            	<td>integer</td>
                 <td><i>
 				
 
-				
+				NOT NULL
 				
 				</i>
 				
@@ -44002,13 +58488,13 @@ WHERE (dd.fk_doc = vdm.pk_doc);</pre>
 				<td>
                 
                 </td>
-            	<td>l10n_type</td>
-            	<td>text</td>
+            	<td>modified_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
-				
-				
+				NOT NULL
+				DEFAULT now()
 				</i>
 				
 				</td>
@@ -44017,14 +58503,22 @@ WHERE (dd.fk_doc = vdm.pk_doc);</pre>
             <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
+                
                 </td>
-            	<td>ext_ref</td>
-            	<td>text</td>
+            	<td>modified_by</td>
+            	<td>name</td>
                 <td><i>
 				
+					
 
+					
 				
-				
+
+				NOT NULL
+				DEFAULT "current_user"()
 				</i>
 				
 				</td>
@@ -44033,11 +58527,18 @@ WHERE (dd.fk_doc = vdm.pk_doc);</pre>
             <tr class="tr0">
 				<td>
                 
+                  
+                
                 </td>
-            	<td>episode</td>
-            	<td>text</td>
+            	<td>pk</td>
+            	<td>serial</td>
                 <td><i>
 				
+					PRIMARY KEY
+					
+
+					
+				
 
 				
 				
@@ -44049,107 +58550,221 @@ WHERE (dd.fk_doc = vdm.pk_doc);</pre>
             <tr class="tr1">
 				<td>
                 
+                  
+                
                 </td>
-            	<td>comment</td>
+            	<td>description</td>
             	<td>text</td>
                 <td><i>
 				
+					
 
+					
+                       UNIQUE#1
+                    
 				
+
 				
-				</i>
 				
+				</i>
+				<br><br>Description of the relation type, specific or unspecific: sister, father, ..., maternal family, ...
 				</td>
 			 </tr>
             
             <tr class="tr0">
 				<td>
                 
+                  
+                
                 </td>
-            	<td>episode_open</td>
+            	<td>is_genetic</td>
             	<td>boolean</td>
                 <td><i>
 				
+					
 
+					
+                       UNIQUE#1
+                    
 				
+
+				NOT NULL
 				
 				</i>
-				
+				<br><br>Whether or not this type of relation is biologic/genetic or not. Note that non-genetic relations may still pose a risk because of infectious diseases.
 				</td>
 			 </tr>
             
+        </table>
+
+        <!-- Inherits -->
+		
+        <p>Table clin.fhx_relation_type Inherits
+        
+            
+           <a href="gnumed-entire_schema.html#audit.table.audit-fields">audit_fields</a>, 
+        
+        </p>
+		
+
+		
+		
+		
+
+        <!-- Constraint List -->
+		
+        <p> </p>
+		<table width="100%" cellspacing="0" cellpadding="3">
+            <caption>clin.fhx_relation_type Constraints</caption>
+            <tr>
+            	<th>Name</th>
+            	<th>Constraint</th>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
             <tr class="tr1">
+				<td>c_fhx_relation_type_sane_desc</td>
+                <td>CHECK ((gm.is_null_or_blank_string(description) IS FALSE))</td>
+            </tr>
+			
+		</table>
+		
+
+        <!-- Foreign Key Discovery -->
+		
+			<p>Tables referencing this one via Foreign Key Constraints:</p>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.family-history">clin.family_history</a></li>
+			</ul>
+		
+		
+
+    <!-- Indexes -->
+    
+
+	<!-- View Definition -->
+	
+
+	<!-- List off permissions -->
+	
+
+	<p>
+		<a href="gnumed-entire_schema.html#index">Index</a> -
+		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
+    </p>
+	
+        <hr>
+		<h2>Table:
+			
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.form-data">form_data</a>
+		</h2>
+        
+         <p>holds the values used in form instances, for
+	 later re-use/validation</p>
+        
+
+
+        <table width="100%" cellspacing="0" cellpadding="3">
+                <caption>clin.form_data Structure</caption>
+                <tr>
+                <th>F-Key</th>
+                <th>Name</th>
+                <th>Type</th>
+                <th>Description</th>
+                </tr>
+            
+            <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>pk_type</td>
+            	<td>pk_audit</td>
             	<td>integer</td>
                 <td><i>
 				
 
-				
-				
+				NOT NULL
+				DEFAULT nextval('audit.audit_fields_pk_audit_seq'::regclass)
 				</i>
 				
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
-            	<td>pk_encounter</td>
+            	<td>row_version</td>
             	<td>integer</td>
                 <td><i>
 				
 
-				
+				NOT NULL
 				
 				</i>
 				
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>pk_episode</td>
-            	<td>integer</td>
+            	<td>modified_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
-				
-				
+				NOT NULL
+				DEFAULT now()
 				</i>
 				
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
+                
                 </td>
-            	<td>pk_health_issue</td>
-            	<td>integer</td>
+            	<td>modified_by</td>
+            	<td>name</td>
                 <td><i>
 				
+					
 
+					
 				
-				
+
+				NOT NULL
+				DEFAULT "current_user"()
 				</i>
 				
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
+                  
+                
                 </td>
-            	<td>modified_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>pk</td>
+            	<td>serial</td>
                 <td><i>
 				
+					PRIMARY KEY
+					
+
+					
+				
 
 				
 				
@@ -44158,51 +58773,85 @@ WHERE (dd.fk_doc = vdm.pk_doc);</pre>
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#clin.table.form-instances">clin.form_instances.pk</a>
+                  
+                
+                  
+                
                 </td>
-            	<td>modified_by</td>
-            	<td>name</td>
+            	<td>fk_instance</td>
+            	<td>integer</td>
                 <td><i>
 				
+					
+
+					
+				
+					
 
+					
+                       UNIQUE#1
+                    
 				
+
+				NOT NULL
 				
 				</i>
-				
+				<br><br>the form instance this value was used in
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#public.table.form-fields">public.form_fields.pk</a>
+                  
+                
+                  
+                
                 </td>
-            	<td>xmin_doc_med</td>
-            	<td>xid</td>
+            	<td>fk_form_field</td>
+            	<td>integer</td>
                 <td><i>
 				
+					
+
+					
+				
+					
 
+					
+                       UNIQUE#1
+                    
 				
+
+				NOT NULL
 				
 				</i>
-				
+				<br><br>points to the definition of the field in the form
+	 which in turn defines the place holder in the
+	 template to replace with <value>
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
-            	<td>health_issue</td>
+            	<td>value</td>
             	<td>text</td>
                 <td><i>
 				
 
-				
+				NOT NULL
 				
 				</i>
-				
+				<br><br>the value to replace the place holder with
 				</td>
 			 </tr>
             
@@ -44210,11 +58859,35 @@ WHERE (dd.fk_doc = vdm.pk_doc);</pre>
 
         <!-- Inherits -->
 		
+        <p>Table clin.form_data Inherits
+        
+            
+           <a href="gnumed-entire_schema.html#audit.table.audit-fields">audit_fields</a>, 
+        
+        </p>
+		
 
 		
+		
+		
 
         <!-- Constraint List -->
 		
+        <p> </p>
+		<table width="100%" cellspacing="0" cellpadding="3">
+            <caption>clin.form_data Constraints</caption>
+            <tr>
+            	<th>Name</th>
+            	<th>Constraint</th>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+		</table>
+		
 
         <!-- Foreign Key Discovery -->
 		
@@ -44224,61 +58897,27 @@ WHERE (dd.fk_doc = vdm.pk_doc);</pre>
 
 	<!-- View Definition -->
 	
-	<pre>
-SELECT (
-SELECT encounter.fk_patient 
-  FROM clin.encounter 
- WHERE (encounter.pk = dm.fk_encounter)
-) AS pk_patient
-, dm.pk AS pk_doc
-, dm.clin_when
-, dt.name AS type
-, _
-(dt.name) AS l10n_type
-, dm.ext_ref
-, cle.description AS episode
-, dm.comment
-, cle.is_open AS episode_open
-, dm.fk_type AS pk_type
-, dm.fk_encounter AS pk_encounter
-, dm.fk_episode AS pk_episode
-, cle.fk_health_issue AS pk_health_issue
-, dm.modified_when
-, dm.modified_by
-, dm.xmin AS xmin_doc_med
-, chi.description AS health_issue 
-FROM blobs.doc_med dm
-, blobs.doc_type dt
-, (clin.episode cle 
-LEFT JOIN clin.health_issue chi 
-    ON (
-           (chi.pk = cle.fk_health_issue)
-     )
-)
-WHERE (
-     (dt.pk = dm.fk_type)
-   AND (cle.pk = dm.fk_episode)
-);</pre>
-	
 
 	<!-- List off permissions -->
 	
 
 	<p>
 		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#blobs.schema">Schema blobs</a>
+		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
     </p>
 	
         <hr>
-		<h2>View:
+		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#blobs.schema">blobs</a>.<a name="blobs.view.v-doc-med-journal">v_doc_med_journal</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.form-instances">form_instances</a>
 		</h2>
         
+         <p>instances of forms, like a log of all processed forms</p>
+        
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>blobs.v_doc_med_journal Structure</caption>
+                <caption>clin.form_instances Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -44290,13 +58929,13 @@ WHERE (
 				<td>
                 
                 </td>
-            	<td>pk_patient</td>
+            	<td>pk_audit</td>
             	<td>integer</td>
                 <td><i>
 				
 
-				
-				
+				NOT NULL
+				DEFAULT nextval('audit.audit_fields_pk_audit_seq'::regclass)
 				</i>
 				
 				</td>
@@ -44306,12 +58945,12 @@ WHERE (
 				<td>
                 
                 </td>
-            	<td>modified_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>row_version</td>
+            	<td>integer</td>
                 <td><i>
 				
 
-				
+				NOT NULL
 				
 				</i>
 				
@@ -44322,13 +58961,13 @@ WHERE (
 				<td>
                 
                 </td>
-            	<td>clin_when</td>
+            	<td>modified_when</td>
             	<td>timestamp with time zone</td>
                 <td><i>
 				
 
-				
-				
+				NOT NULL
+				DEFAULT now()
 				</i>
 				
 				</td>
@@ -44337,46 +58976,22 @@ WHERE (
             <tr class="tr1">
 				<td>
                 
-                </td>
-            	<td>modified_by</td>
-            	<td>text</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
                 
                 </td>
-            	<td>soap_cat</td>
-            	<td>text</td>
+            	<td>modified_by</td>
+            	<td>name</td>
                 <td><i>
 				
+					
 
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>narrative</td>
-            	<td>text</td>
-                <td><i>
+					
 				
 
-				
-				
+				NOT NULL
+				DEFAULT "current_user"()
 				</i>
 				
 				</td>
@@ -44386,13 +59001,13 @@ WHERE (
 				<td>
                 
                 </td>
-            	<td>pk_encounter</td>
+            	<td>pk_item</td>
             	<td>integer</td>
                 <td><i>
 				
 
-				
-				
+				NOT NULL
+				DEFAULT nextval('clin_root_item_pk_item_seq'::regclass)
 				</i>
 				
 				</td>
@@ -44402,13 +59017,13 @@ WHERE (
 				<td>
                 
                 </td>
-            	<td>pk_episode</td>
-            	<td>integer</td>
+            	<td>clin_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
-				
-				
+				NOT NULL
+				DEFAULT now()
 				</i>
 				
 				</td>
@@ -44417,13 +59032,21 @@ WHERE (
             <tr class="tr0">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#clin.table.encounter">clin.encounter.pk</a>
+                  
+                
                 </td>
-            	<td>pk_health_issue</td>
+            	<td>fk_encounter</td>
             	<td>integer</td>
                 <td><i>
 				
+					
 
+					
 				
+
+				NOT NULL
 				
 				</i>
 				
@@ -44433,157 +59056,40 @@ WHERE (
             <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#clin.table.episode">clin.episode.pk</a>
+                  
+                
                 </td>
-            	<td>src_pk</td>
+            	<td>fk_episode</td>
             	<td>integer</td>
                 <td><i>
 				
+					
 
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>src_table</td>
-            	<td>text</td>
-                <td><i>
+					
 				
 
-				
+				NOT NULL
 				
 				</i>
 				
 				</td>
 			 </tr>
             
-        </table>
-
-        <!-- Inherits -->
-		
-
-		
-
-        <!-- Constraint List -->
-		
-
-        <!-- Foreign Key Discovery -->
-		
-
-    <!-- Indexes -->
-    
-
-	<!-- View Definition -->
-	
-	<pre>
-SELECT (
-SELECT encounter.fk_patient 
-  FROM clin.encounter 
- WHERE (encounter.pk = dm.fk_encounter)
-) AS pk_patient
-, dm.modified_when
-, dm.clin_when
-, COALESCE
-(
-     (
-      SELECT staff.short_alias 
-        FROM dem.staff 
-       WHERE (staff.db_user = dm.modified_by)
-     )
-     , (
-           ('<'::text || 
-                 (dm.modified_by)::text
-           ) || '>'::text
-     )
-) AS modified_by
-, NULL::text AS soap_cat
-, (
-     (
-           (
-                 (
-                       (
-                             (_
-                                   ('Document'::text) || ': '::text
-                             ) || _
-                             (dt.name)
-                       ) || COALESCE
-                       (
-                             (
-                                   (' "'::text || dm.ext_ref) || 
-                               '" ('::text)
-                                   , ' ('::text)
-                             ) || to_char
-                             (dm.clin_when
-                                   ,'YYYY-MM-DD HH24:MI'::text
-                             )
-                       ) || 
-               ')'::text
-           ) || COALESCE
-           (
-                 ('
- '::text || dm.comment)
-                 ,''::text
-           )
-     ) AS narrative
-     , dm.fk_encounter AS pk_encounter
-     , dm.fk_episode AS pk_episode
-     , (
-      SELECT episode.fk_health_issue 
-        FROM clin.episode 
-       WHERE (episode.pk = dm.fk_episode)
-     ) AS pk_health_issue
-     , dm.pk AS src_pk
-     ,'blobs.doc_med'::text AS src_table 
-  FROM blobs.doc_med dm
-     , blobs.doc_type dt 
- WHERE (dt.pk = dm.fk_type);</pre>
-	
-
-	<!-- List off permissions -->
-	
-
-	<p>
-		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#blobs.schema">Schema blobs</a>
-    </p>
-	
-        <hr>
-		<h2>View:
-			
-			<a href="gnumed-entire_schema.html#blobs.schema">blobs</a>.<a name="blobs.view.v-doc-type">v_doc_type</a>
-		</h2>
-        
-         <p>list active document types, those that are activated for use</p>
-        
-
-
-        <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>blobs.v_doc_type Structure</caption>
-                <tr>
-                <th>F-Key</th>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Description</th>
-                </tr>
-            
             <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>pk_doc_type</td>
-            	<td>integer</td>
+            	<td>narrative</td>
+            	<td>text</td>
                 <td><i>
 				
 
 				
 				
 				</i>
-				
+				<br><br>can be used as a status field, eg. "printed", "faxed" etc.
 				</td>
 			 </tr>
             
@@ -44591,7 +59097,7 @@ SELECT encounter.fk_patient
 				<td>
                 
                 </td>
-            	<td>type</td>
+            	<td>soap_cat</td>
             	<td>text</td>
                 <td><i>
 				
@@ -44606,26 +59112,17 @@ SELECT encounter.fk_patient
             <tr class="tr0">
 				<td>
                 
+                  
+                
                 </td>
-            	<td>l10n_type</td>
-            	<td>text</td>
+            	<td>pk</td>
+            	<td>serial</td>
                 <td><i>
 				
+					PRIMARY KEY
+					
 
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>is_user_defined</td>
-            	<td>boolean</td>
-                <td><i>
+					
 				
 
 				
@@ -44635,35 +59132,46 @@ SELECT encounter.fk_patient
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#ref.table.paperwork-templates">ref.paperwork_templates.pk</a>
+                  
+                
                 </td>
-            	<td>is_in_use</td>
-            	<td>boolean</td>
+            	<td>fk_form_def</td>
+            	<td>integer</td>
                 <td><i>
 				
+					
 
+					
 				
+
+				NOT NULL
 				
 				</i>
-				
+				<br><br>points to the definition of this instance,
+	 this FK will fail once we start separating services,
+	 make it into a x_db_fk then
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>xmin_doc_type</td>
-            	<td>xid</td>
+            	<td>form_name</td>
+            	<td>text</td>
                 <td><i>
 				
 
-				
+				NOT NULL
 				
 				</i>
-				
+				<br><br>a string uniquely identifying the form template,
+	 necessary for the audit trail
 				</td>
 			 </tr>
             
@@ -44671,66 +59179,98 @@ SELECT encounter.fk_patient
 
         <!-- Inherits -->
 		
+        <p>Table clin.form_instances Inherits
+        
+            
+           <a href="gnumed-entire_schema.html#clin.table.clin-root-item">clin_root_item</a>, 
+        
+        </p>
+		
 
 		
+		
+		
 
         <!-- Constraint List -->
 		
+        <p> </p>
+		<table width="100%" cellspacing="0" cellpadding="3">
+            <caption>clin.form_instances Constraints</caption>
+            <tr>
+            	<th>Name</th>
+            	<th>Constraint</th>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>clin_root_item_sane_soap_cat</td>
+                <td>CHECK (((soap_cat IS NULL) OR (lower(soap_cat) = ANY (ARRAY['s'::text, 'o'::text, 'a'::text, 'p'::text, 'u'::text]))))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>form_is_plan</td>
+                <td>CHECK ((soap_cat = 'p'::text))</td>
+            </tr>
+			
+		</table>
+		
 
         <!-- Foreign Key Discovery -->
 		
+			<p>Tables referencing this one via Foreign Key Constraints:</p>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#au.table.referral">au.referral</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.form-data">clin.form_data</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#public.table.form-job-queue">public.form_job_queue</a></li>
+			</ul>
+		
+		
 
     <!-- Indexes -->
     
+       idx_clin_form_instances_fk_encounter fk_encounter
+    
+       idx_clin_form_instances_fk_episode fk_episode
+    
 
 	<!-- View Definition -->
 	
-	<pre>
-SELECT dt.pk AS pk_doc_type
-, dt.name AS type
-, _
-(dt.name) AS l10n_type
-, (NOT 
-     (EXISTS 
-           (
-            SELECT 1 
-              FROM ref.document_type 
-             WHERE (document_type.description = dt.name)
-           )
-     )
-) AS is_user_defined
-, (EXISTS 
-     (
-      SELECT 1 
-        FROM blobs.doc_med 
-       WHERE (doc_med.fk_type = dt.pk)
-     )
-) AS is_in_use
-, dt.xmin AS xmin_doc_type 
-FROM blobs.doc_type dt;</pre>
-	
 
 	<!-- List off permissions -->
 	
 
 	<p>
 		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#blobs.schema">Schema blobs</a>
+		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
     </p>
 	
         <hr>
-		<h2>View:
+		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#blobs.schema">blobs</a>.<a name="blobs.view.v-latest-mugshot">v_latest_mugshot</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.health-issue">health_issue</a>
 		</h2>
         
-         <p>shows the latest picture of the patient, currently the highest
-	 seq_idx of the newest document of type "patient photograph"</p>
+         <p>This is pretty much what others would call "Past Medical History"
+	 or "Foundational illness", eg. longer-ranging, underlying,
+	 encompassing issues with one's health such as "immunodeficiency",
+	 "type 2 diabetes". In Belgium it is called "problem".
+	 L.L.Weed includes lots of little things into it, we do not.</p>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>blobs.v_latest_mugshot Structure</caption>
+                <caption>clin.health_issue Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -44742,13 +59282,13 @@ FROM blobs.doc_type dt;</pre>
 				<td>
                 
                 </td>
-            	<td>pk_patient</td>
+            	<td>pk_audit</td>
             	<td>integer</td>
                 <td><i>
 				
 
-				
-				
+				NOT NULL
+				DEFAULT nextval('audit.audit_fields_pk_audit_seq'::regclass)
 				</i>
 				
 				</td>
@@ -44758,12 +59298,12 @@ FROM blobs.doc_type dt;</pre>
 				<td>
                 
                 </td>
-            	<td>doc_comment</td>
-            	<td>text</td>
+            	<td>row_version</td>
+            	<td>integer</td>
                 <td><i>
 				
 
-				
+				NOT NULL
 				
 				</i>
 				
@@ -44774,13 +59314,13 @@ FROM blobs.doc_type dt;</pre>
 				<td>
                 
                 </td>
-            	<td>date_taken</td>
+            	<td>modified_when</td>
             	<td>timestamp with time zone</td>
                 <td><i>
 				
 
-				
-				
+				NOT NULL
+				DEFAULT now()
 				</i>
 				
 				</td>
@@ -44789,14 +59329,22 @@ FROM blobs.doc_type dt;</pre>
             <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
+                
                 </td>
-            	<td>ext_ref</td>
-            	<td>text</td>
+            	<td>modified_by</td>
+            	<td>name</td>
                 <td><i>
 				
+					
 
+					
 				
-				
+
+				NOT NULL
+				DEFAULT "current_user"()
 				</i>
 				
 				</td>
@@ -44805,11 +59353,18 @@ FROM blobs.doc_type dt;</pre>
             <tr class="tr0">
 				<td>
                 
+                  
+                
                 </td>
-            	<td>obj_seq_idx</td>
-            	<td>integer</td>
+            	<td>pk</td>
+            	<td>serial</td>
                 <td><i>
 				
+					PRIMARY KEY
+					
+
+					
+				
 
 				
 				
@@ -44822,15 +59377,16 @@ FROM blobs.doc_type dt;</pre>
 				<td>
                 
                 </td>
-            	<td>obj_comment</td>
+            	<td>description</td>
             	<td>text</td>
                 <td><i>
 				
 
-				
+				NOT NULL
 				
 				</i>
-				
+				<br><br>descriptive name of this health issue, may
+	 change over time as evidence increases
 				</td>
 			 </tr>
             
@@ -44838,15 +59394,19 @@ FROM blobs.doc_type dt;</pre>
 				<td>
                 
                 </td>
-            	<td>pk_doc</td>
-            	<td>integer</td>
+            	<td>laterality</td>
+            	<td>character varying(2)</td>
                 <td><i>
 				
 
 				
-				
+				DEFAULT NULL::character varying
 				</i>
-				
+				<br><br>NULL: don't know
+	 s: sinister - left
+	 d: dexter - right
+	 sd: sinister and dexter - both sides
+	 na: not applicable
 				</td>
 			 </tr>
             
@@ -44854,125 +59414,31 @@ FROM blobs.doc_type dt;</pre>
 				<td>
                 
                 </td>
-            	<td>pk_obj</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>image</td>
-            	<td>bytea</td>
+            	<td>age_noted</td>
+            	<td>interval</td>
                 <td><i>
 				
 
 				
 				
 				</i>
-				
+				<br><br>at what age the patient acquired the condition
 				</td>
 			 </tr>
             
-        </table>
-
-        <!-- Inherits -->
-		
-
-		
-
-        <!-- Constraint List -->
-		
-
-        <!-- Foreign Key Discovery -->
-		
-
-    <!-- Indexes -->
-    
-
-	<!-- View Definition -->
-	
-	<pre>
-SELECT vo4d.pk_patient
-, vo4d.doc_comment
-, vo4d.date_generated AS date_taken
-, vo4d.ext_ref
-, vo4d.seq_idx AS obj_seq_idx
-, vo4d.obj_comment
-, vo4d.pk_doc
-, vo4d.pk_obj
-, bdo.data AS image 
-FROM blobs.v_obj4doc_no_data vo4d
-, blobs.doc_obj bdo 
-WHERE (
-     (
-           (vo4d.type = 'patient photograph'::text)
-         AND (vo4d.seq_idx = 
-                 (
-                  SELECT max
-                       (vo4d1.seq_idx) AS max 
-                    FROM blobs.v_obj4doc_no_data vo4d1 
-                   WHERE (
-                             (vo4d1.pk_patient = vo4d.pk_patient)
-                           AND (vo4d1.type = 'patient photograph'::text)
-                       )
-                GROUP BY vo4d1.date_generated 
-                ORDER BY vo4d1.date_generated DESC LIMIT 1
-                 )
-           )
-     )
-   AND (bdo.pk = vo4d.pk_obj)
-);</pre>
-	
-
-	<!-- List off permissions -->
-	
-
-	<p>
-		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#blobs.schema">Schema blobs</a>
-    </p>
-	
-        <hr>
-		<h2>View:
-			
-			<a href="gnumed-entire_schema.html#blobs.schema">blobs</a>.<a name="blobs.view.v-obj4doc-no-data">v_obj4doc_no_data</a>
-		</h2>
-        
-         <p>denormalized metadata for blobs.doc_obj but without the data itself</p>
-        
-
-
-        <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>blobs.v_obj4doc_no_data Structure</caption>
-                <tr>
-                <th>F-Key</th>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Description</th>
-                </tr>
-            
             <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>pk_patient</td>
-            	<td>integer</td>
+            	<td>is_active</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
 				
-				
+				DEFAULT true
 				</i>
-				
+				<br><br>whether this health issue (problem) is active
 				</td>
 			 </tr>
             
@@ -44980,15 +59446,15 @@ WHERE (
 				<td>
                 
                 </td>
-            	<td>pk_obj</td>
-            	<td>integer</td>
+            	<td>clinically_relevant</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
 				
-				
+				DEFAULT true
 				</i>
-				
+				<br><br>whether this health issue (problem) has any clinical relevance
 				</td>
 			 </tr>
             
@@ -44996,13 +59462,13 @@ WHERE (
 				<td>
                 
                 </td>
-            	<td>seq_idx</td>
-            	<td>integer</td>
+            	<td>is_confidential</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
 				
-				
+				DEFAULT false
 				</i>
 				
 				</td>
@@ -45012,13 +59478,13 @@ WHERE (
 				<td>
                 
                 </td>
-            	<td>size</td>
-            	<td>integer</td>
+            	<td>is_cause_of_death</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
-				
-				
+				NOT NULL
+				DEFAULT false
 				</i>
 				
 				</td>
@@ -45027,16 +59493,24 @@ WHERE (
             <tr class="tr0">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#clin.table.encounter">clin.encounter.pk</a>
+                  
+                
                 </td>
-            	<td>date_generated</td>
-            	<td>timestamp with time zone</td>
+            	<td>fk_encounter</td>
+            	<td>integer</td>
                 <td><i>
 				
+					
 
+					
 				
+
+				NOT NULL
 				
 				</i>
-				
+				<br><br>The encounter during which this health issue was added.
 				</td>
 			 </tr>
             
@@ -45044,7 +59518,7 @@ WHERE (
 				<td>
                 
                 </td>
-            	<td>type</td>
+            	<td>grouping</td>
             	<td>text</td>
                 <td><i>
 				
@@ -45052,7 +59526,8 @@ WHERE (
 				
 				
 				</i>
-				
+				<br><br>This can be used to entirely arbitrarily group health
+ issues felt to belong to each other.
 				</td>
 			 </tr>
             
@@ -45060,7 +59535,7 @@ WHERE (
 				<td>
                 
                 </td>
-            	<td>l10n_type</td>
+            	<td>diagnostic_certainty_classification</td>
             	<td>text</td>
                 <td><i>
 				
@@ -45068,7 +59543,11 @@ WHERE (
 				
 				
 				</i>
-				
+				<br><br>The certainty at which this issue is believed to be a diagnosis:
+A: sign (Symptom)
+B: cluster of signs (Symptomkomplex)
+C: syndromic diagnosis (Bild einer Diagnose)
+D: proven diagnosis (diagnostisch gesichert)
 				</td>
 			 </tr>
             
@@ -45076,7 +59555,7 @@ WHERE (
 				<td>
                 
                 </td>
-            	<td>ext_ref</td>
+            	<td>summary</td>
             	<td>text</td>
                 <td><i>
 				
@@ -45084,21 +59563,133 @@ WHERE (
 				
 				
 				</i>
-				
+				<br><br>Used for tracking the summary of this health issue.
 				</td>
 			 </tr>
             
+        </table>
+
+        <!-- Inherits -->
+		
+        <p>Table clin.health_issue Inherits
+        
+            
+           <a href="gnumed-entire_schema.html#audit.table.audit-fields">audit_fields</a>, 
+        
+        </p>
+		
+
+		
+		
+		
+
+        <!-- Constraint List -->
+		
+        <p> </p>
+		<table width="100%" cellspacing="0" cellpadding="3">
+            <caption>clin.health_issue Constraints</caption>
+            <tr>
+            	<th>Name</th>
+            	<th>Constraint</th>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>health_issue_laterality_check</td>
+                <td>CHECK (((laterality)::text = ANY (ARRAY[(NULL::character varying)::text, ('s'::character varying)::text, ('d'::character varying)::text, ('sd'::character varying)::text, ('na'::character varying)::text])))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>health_issue_sane_summary</td>
+                <td>CHECK (gm.is_null_or_non_empty_string(summary))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>issue_name_not_empty</td>
+                <td>CHECK ((btrim(description) <> ''::text))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>sane_grouping</td>
+                <td>CHECK (gm.is_null_or_non_empty_string(grouping))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>valid_diagnostic_certainty_classification</td>
+                <td>CHECK ((diagnostic_certainty_classification = ANY (ARRAY['A'::text, 'B'::text, 'C'::text, 'D'::text, NULL::text])))</td>
+            </tr>
+			
+		</table>
+		
+
+        <!-- Foreign Key Discovery -->
+		
+			<p>Tables referencing this one via Foreign Key Constraints:</p>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.episode">clin.episode</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.external-care">clin.external_care</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.lnk-code2h-issue">clin.lnk_code2h_issue</a></li>
+			</ul>
+		
+		
+
+    <!-- Indexes -->
+    
+       idx_health_issue_modified_by modified_by
+    
+
+	<!-- View Definition -->
+	
+
+	<!-- List off permissions -->
+	
+
+	<p>
+		<a href="gnumed-entire_schema.html#index">Index</a> -
+		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
+    </p>
+	
+        <hr>
+		<h2>Table:
+			
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.hospital-stay">hospital_stay</a>
+		</h2>
+        
+         <p>collects data on hospitalisations of patients, reasons are linked via a link table</p>
+        
+
+
+        <table width="100%" cellspacing="0" cellpadding="3">
+                <caption>clin.hospital_stay Structure</caption>
+                <tr>
+                <th>F-Key</th>
+                <th>Name</th>
+                <th>Type</th>
+                <th>Description</th>
+                </tr>
+            
             <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>episode</td>
-            	<td>text</td>
+            	<td>pk_audit</td>
+            	<td>integer</td>
                 <td><i>
 				
 
-				
-				
+				NOT NULL
+				DEFAULT nextval('audit.audit_fields_pk_audit_seq'::regclass)
 				</i>
 				
 				</td>
@@ -45108,12 +59699,12 @@ WHERE (
 				<td>
                 
                 </td>
-            	<td>doc_comment</td>
-            	<td>text</td>
+            	<td>row_version</td>
+            	<td>integer</td>
                 <td><i>
 				
 
-				
+				NOT NULL
 				
 				</i>
 				
@@ -45124,13 +59715,13 @@ WHERE (
 				<td>
                 
                 </td>
-            	<td>obj_comment</td>
-            	<td>text</td>
+            	<td>modified_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
-				
-				
+				NOT NULL
+				DEFAULT now()
 				</i>
 				
 				</td>
@@ -45139,14 +59730,22 @@ WHERE (
             <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
+                
                 </td>
-            	<td>filename</td>
-            	<td>text</td>
+            	<td>modified_by</td>
+            	<td>name</td>
                 <td><i>
 				
+					
 
+					
 				
-				
+
+				NOT NULL
+				DEFAULT "current_user"()
 				</i>
 				
 				</td>
@@ -45156,13 +59755,13 @@ WHERE (
 				<td>
                 
                 </td>
-            	<td>pk_intended_reviewer</td>
+            	<td>pk_item</td>
             	<td>integer</td>
                 <td><i>
 				
 
-				
-				
+				NOT NULL
+				DEFAULT nextval('clin_root_item_pk_item_seq'::regclass)
 				</i>
 				
 				</td>
@@ -45172,28 +59771,36 @@ WHERE (
 				<td>
                 
                 </td>
-            	<td>reviewed</td>
-            	<td>boolean</td>
+            	<td>clin_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
-				
-				
+				NOT NULL
+				DEFAULT now()
 				</i>
-				
+				<br><br>to be used as when the patient was admitted
 				</td>
 			 </tr>
             
             <tr class="tr0">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#clin.table.encounter">clin.encounter.pk</a>
+                  
+                
                 </td>
-            	<td>reviewed_by_you</td>
-            	<td>boolean</td>
+            	<td>fk_encounter</td>
+            	<td>integer</td>
                 <td><i>
 				
+					
 
+					
 				
+
+				NOT NULL
 				
 				</i>
 				
@@ -45203,57 +59810,49 @@ WHERE (
             <tr class="tr1">
 				<td>
                 
-                </td>
-            	<td>reviewed_by_intended_reviewer</td>
-            	<td>boolean</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
+                  
+                  <a href="gnumed-entire_schema.html#clin.table.episode">clin.episode.pk</a>
+                  
                 
                 </td>
-            	<td>pk_doc</td>
+            	<td>fk_episode</td>
             	<td>integer</td>
                 <td><i>
 				
+					
 
+					
 				
+
+				NOT NULL
 				
 				</i>
 				
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>pk_type</td>
-            	<td>integer</td>
+            	<td>narrative</td>
+            	<td>text</td>
                 <td><i>
 				
 
 				
 				
 				</i>
-				
+				<br><br>a comment on the hospital stay
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
-            	<td>pk_encounter</td>
-            	<td>integer</td>
+            	<td>soap_cat</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -45264,14 +59863,21 @@ WHERE (
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
+                  
+                
                 </td>
-            	<td>pk_episode</td>
-            	<td>integer</td>
+            	<td>pk</td>
+            	<td>serial</td>
                 <td><i>
 				
+					PRIMARY KEY
+					
+
+					
+				
 
 				
 				
@@ -45280,35 +59886,43 @@ WHERE (
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
-            	<td>pk_health_issue</td>
-            	<td>integer</td>
+            	<td>discharge</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
 				
 				
 				</i>
-				
+				<br><br>when was the patient discharged
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.org-unit">dem.org_unit.pk</a>
+                  
+                
                 </td>
-            	<td>xmin_doc_obj</td>
-            	<td>xid</td>
+            	<td>fk_org_unit</td>
+            	<td>integer</td>
                 <td><i>
 				
+					
 
+					
 				
+
+				NOT NULL
 				
 				</i>
-				
+				<br><br>links to the hospital the patient was admitted to
 				</td>
 			 </tr>
             
@@ -45316,103 +59930,97 @@ WHERE (
 
         <!-- Inherits -->
 		
+        <p>Table clin.hospital_stay Inherits
+        
+            
+           <a href="gnumed-entire_schema.html#clin.table.clin-root-item">clin_root_item</a>, 
+        
+        </p>
+		
 
 		
+		
+		
 
         <!-- Constraint List -->
 		
+        <p> </p>
+		<table width="100%" cellspacing="0" cellpadding="3">
+            <caption>clin.hospital_stay Constraints</caption>
+            <tr>
+            	<th>Name</th>
+            	<th>Constraint</th>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>clin_root_item_sane_soap_cat</td>
+                <td>CHECK (((soap_cat IS NULL) OR (lower(soap_cat) = ANY (ARRAY['s'::text, 'o'::text, 'a'::text, 'p'::text, 'u'::text]))))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>sane_duration</td>
+                <td>CHECK (((discharge IS NULL) OR (discharge > clin_when)))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>sane_hospital</td>
+                <td>CHECK (gm.is_null_or_non_empty_string(narrative))</td>
+            </tr>
+			
+		</table>
+		
 
         <!-- Foreign Key Discovery -->
 		
+			<p>Tables referencing this one via Foreign Key Constraints:</p>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#blobs.table.lnk-doc2hospital-stay">blobs.lnk_doc2hospital_stay</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.procedure">clin.procedure</a></li>
+			</ul>
+		
+		
 
     <!-- Indexes -->
     
+       idx_clin_hospital_stay_fk_encounter fk_encounter
+    
+       idx_clin_hospital_stay_fk_episode fk_episode
+    
 
 	<!-- View Definition -->
 	
-	<pre>
-SELECT vdm.pk_patient
-, dobj.pk AS pk_obj
-, dobj.seq_idx
-, octet_length
-(COALESCE
-     (dobj.data
-           ,'\x'::bytea
-     )
-) AS size
-, vdm.clin_when AS date_generated
-, vdm.type
-, vdm.l10n_type
-, vdm.ext_ref
-, vdm.episode
-, vdm.comment AS doc_comment
-, dobj.comment AS obj_comment
-, dobj.filename
-, dobj.fk_intended_reviewer AS pk_intended_reviewer
-, (EXISTS 
-     (
-      SELECT 1 
-        FROM blobs.reviewed_doc_objs 
-       WHERE (reviewed_doc_objs.fk_reviewed_row = dobj.pk)
-     )
-) AS reviewed
-, (EXISTS 
-     (
-      SELECT 1 
-        FROM blobs.reviewed_doc_objs 
-       WHERE (
-                 (reviewed_doc_objs.fk_reviewed_row = dobj.pk)
-               AND (reviewed_doc_objs.fk_reviewer = 
-                       (
-                        SELECT staff.pk 
-                          FROM dem.staff 
-                         WHERE (staff.db_user = "current_user"
-                                   ()
-                             )
-                       )
-                 )
-           )
-     )
-) AS reviewed_by_you
-, (EXISTS 
-     (
-      SELECT 1 
-        FROM blobs.reviewed_doc_objs 
-       WHERE (
-                 (reviewed_doc_objs.fk_reviewed_row = dobj.pk)
-               AND (reviewed_doc_objs.fk_reviewer = dobj.fk_intended_reviewer)
-           )
-     )
-) AS reviewed_by_intended_reviewer
-, vdm.pk_doc
-, vdm.pk_type
-, vdm.pk_encounter
-, vdm.pk_episode
-, vdm.pk_health_issue
-, dobj.xmin AS xmin_doc_obj 
-FROM blobs.v_doc_med vdm
-, blobs.doc_obj dobj 
-WHERE (vdm.pk_doc = dobj.fk_doc);</pre>
-	
 
 	<!-- List off permissions -->
 	
 
 	<p>
 		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#blobs.schema">Schema blobs</a>
+		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
     </p>
 	
         <hr>
-		<h2>View:
+		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#blobs.schema">blobs</a>.<a name="blobs.view.v-reviewed-doc-objects">v_reviewed_doc_objects</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.incoming-data-unmatchable">incoming_data_unmatchable</a>
 		</h2>
         
+         <p>this table holds test results that could not be matched
+	 to any patient, it is intended to prevent overflow of
+	 incoming_data_unmatched with unmatchable data</p>
+        
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>blobs.v_reviewed_doc_objects Structure</caption>
+                <caption>clin.incoming_data_unmatchable Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -45424,13 +60032,13 @@ WHERE (vdm.pk_doc = dobj.fk_doc);</pre>
 				<td>
                 
                 </td>
-            	<td>pk_doc_obj</td>
+            	<td>pk_audit</td>
             	<td>integer</td>
                 <td><i>
 				
 
-				
-				
+				NOT NULL
+				DEFAULT nextval('audit.audit_fields_pk_audit_seq'::regclass)
 				</i>
 				
 				</td>
@@ -45440,12 +60048,12 @@ WHERE (vdm.pk_doc = dobj.fk_doc);</pre>
 				<td>
                 
                 </td>
-            	<td>reviewer</td>
-            	<td>text</td>
+            	<td>row_version</td>
+            	<td>integer</td>
                 <td><i>
 				
 
-				
+				NOT NULL
 				
 				</i>
 				
@@ -45456,13 +60064,13 @@ WHERE (vdm.pk_doc = dobj.fk_doc);</pre>
 				<td>
                 
                 </td>
-            	<td>is_technically_abnormal</td>
-            	<td>boolean</td>
+            	<td>modified_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
-				
-				
+				NOT NULL
+				DEFAULT now()
 				</i>
 				
 				</td>
@@ -45471,14 +60079,22 @@ WHERE (vdm.pk_doc = dobj.fk_doc);</pre>
             <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
+                
                 </td>
-            	<td>clinically_relevant</td>
-            	<td>boolean</td>
+            	<td>modified_by</td>
+            	<td>name</td>
                 <td><i>
 				
+					
 
+					
 				
-				
+
+				NOT NULL
+				DEFAULT "current_user"()
 				</i>
 				
 				</td>
@@ -45487,11 +60103,18 @@ WHERE (vdm.pk_doc = dobj.fk_doc);</pre>
             <tr class="tr0">
 				<td>
                 
+                  
+                
                 </td>
-            	<td>is_review_by_responsible_reviewer</td>
-            	<td>boolean</td>
+            	<td>pk</td>
+            	<td>serial</td>
                 <td><i>
 				
+					PRIMARY KEY
+					
+
+					
+				
 
 				
 				
@@ -45504,8 +60127,8 @@ WHERE (vdm.pk_doc = dobj.fk_doc);</pre>
 				<td>
                 
                 </td>
-            	<td>is_your_review</td>
-            	<td>boolean</td>
+            	<td>fk_patient_candidates</td>
+            	<td>integer[]</td>
                 <td><i>
 				
 
@@ -45520,7 +60143,7 @@ WHERE (vdm.pk_doc = dobj.fk_doc);</pre>
 				<td>
                 
                 </td>
-            	<td>comment</td>
+            	<td>request_id</td>
             	<td>text</td>
                 <td><i>
 				
@@ -45536,8 +60159,8 @@ WHERE (vdm.pk_doc = dobj.fk_doc);</pre>
 				<td>
                 
                 </td>
-            	<td>reviewed_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>firstnames</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -45552,8 +60175,8 @@ WHERE (vdm.pk_doc = dobj.fk_doc);</pre>
 				<td>
                 
                 </td>
-            	<td>modified_by</td>
-            	<td>name</td>
+            	<td>lastnames</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -45568,8 +60191,8 @@ WHERE (vdm.pk_doc = dobj.fk_doc);</pre>
 				<td>
                 
                 </td>
-            	<td>pk_review_root</td>
-            	<td>integer</td>
+            	<td>dob</td>
+            	<td>date</td>
                 <td><i>
 				
 
@@ -45584,8 +60207,8 @@ WHERE (vdm.pk_doc = dobj.fk_doc);</pre>
 				<td>
                 
                 </td>
-            	<td>pk_reviewer</td>
-            	<td>integer</td>
+            	<td>postcode</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -45600,8 +60223,8 @@ WHERE (vdm.pk_doc = dobj.fk_doc);</pre>
 				<td>
                 
                 </td>
-            	<td>pk_patient</td>
-            	<td>integer</td>
+            	<td>other_info</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -45616,8 +60239,8 @@ WHERE (vdm.pk_doc = dobj.fk_doc);</pre>
 				<td>
                 
                 </td>
-            	<td>pk_encounter</td>
-            	<td>integer</td>
+            	<td>type</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -45632,12 +60255,12 @@ WHERE (vdm.pk_doc = dobj.fk_doc);</pre>
 				<td>
                 
                 </td>
-            	<td>pk_episode</td>
-            	<td>integer</td>
+            	<td>data</td>
+            	<td>bytea</td>
                 <td><i>
 				
 
-				
+				NOT NULL
 				
 				</i>
 				
@@ -45648,8 +60271,8 @@ WHERE (vdm.pk_doc = dobj.fk_doc);</pre>
 				<td>
                 
                 </td>
-            	<td>pk_health_issue</td>
-            	<td>integer</td>
+            	<td>gender</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -45660,120 +60283,12 @@ WHERE (vdm.pk_doc = dobj.fk_doc);</pre>
 				</td>
 			 </tr>
             
-        </table>
-
-        <!-- Inherits -->
-		
-
-		
-
-        <!-- Constraint List -->
-		
-
-        <!-- Foreign Key Discovery -->
-		
-
-    <!-- Indexes -->
-    
-
-	<!-- View Definition -->
-	
-	<pre>
-SELECT rdo.fk_reviewed_row AS pk_doc_obj
-, COALESCE
-(
-     (
-      SELECT staff.short_alias 
-        FROM dem.staff 
-       WHERE (staff.pk = rdo.fk_reviewer)
-     )
-     , (
-           ('<#'::text || rdo.fk_reviewer) || '>'::text
-     )
-) AS reviewer
-, rdo.is_technically_abnormal
-, rdo.clinically_relevant
-, (EXISTS 
-     (
-      SELECT 1 
-        FROM blobs.doc_obj 
-       WHERE (
-                 (doc_obj.pk = rdo.fk_reviewed_row)
-               AND (doc_obj.fk_intended_reviewer = rdo.fk_reviewer)
-           )
-     )
-) AS is_review_by_responsible_reviewer
-, (EXISTS 
-     (
-      SELECT 1 
-        FROM dem.staff 
-       WHERE (
-                 (staff.pk = rdo.fk_reviewer)
-               AND (staff.db_user = "current_user"
-                       ()
-                 )
-           )
-     )
-) AS is_your_review
-, rdo.comment
-, rdo.modified_when AS reviewed_when
-, rdo.modified_by
-, rdo.pk AS pk_review_root
-, rdo.fk_reviewer AS pk_reviewer
-, (
-SELECT v_obj4doc_no_data.pk_patient 
-  FROM blobs.v_obj4doc_no_data 
- WHERE (v_obj4doc_no_data.pk_obj = rdo.fk_reviewed_row)
-) AS pk_patient
-, (
-SELECT v_obj4doc_no_data.pk_encounter 
-  FROM blobs.v_obj4doc_no_data 
- WHERE (v_obj4doc_no_data.pk_obj = rdo.fk_reviewed_row)
-) AS pk_encounter
-, (
-SELECT v_obj4doc_no_data.pk_episode 
-  FROM blobs.v_obj4doc_no_data 
- WHERE (v_obj4doc_no_data.pk_obj = rdo.fk_reviewed_row)
-) AS pk_episode
-, (
-SELECT v_obj4doc_no_data.pk_health_issue 
-  FROM blobs.v_obj4doc_no_data 
- WHERE (v_obj4doc_no_data.pk_obj = rdo.fk_reviewed_row)
-) AS pk_health_issue 
-FROM blobs.reviewed_doc_objs rdo;</pre>
-	
-
-	<!-- List off permissions -->
-	
-
-	<p>
-		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#blobs.schema">Schema blobs</a>
-    </p>
-	
-        <hr>
-		<h2>View:
-			
-			<a href="gnumed-entire_schema.html#blobs.schema">blobs</a>.<a name="blobs.view.v-unreviewed-docs">v_unreviewed_docs</a>
-		</h2>
-        
-
-
-        <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>blobs.v_unreviewed_docs Structure</caption>
-                <tr>
-                <th>F-Key</th>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Description</th>
-                </tr>
-            
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
-            	<td>pk_doc</td>
-            	<td>integer</td>
+            	<td>requestor</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -45784,12 +60299,12 @@ FROM blobs.reviewed_doc_objs rdo;</pre>
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>pk_intended_reviewer</td>
-            	<td>integer</td>
+            	<td>external_data_id</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -45800,11 +60315,11 @@ FROM blobs.reviewed_doc_objs rdo;</pre>
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
-            	<td>pk_patient</td>
+            	<td>fk_identity_disambiguated</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -45820,11 +60335,35 @@ FROM blobs.reviewed_doc_objs rdo;</pre>
 
         <!-- Inherits -->
 		
+        <p>Table clin.incoming_data_unmatchable Inherits
+        
+            
+           <a href="gnumed-entire_schema.html#audit.table.audit-fields">audit_fields</a>, 
+        
+        </p>
+		
 
 		
+		
+		
 
         <!-- Constraint List -->
 		
+        <p> </p>
+		<table width="100%" cellspacing="0" cellpadding="3">
+            <caption>clin.incoming_data_unmatchable Constraints</caption>
+            <tr>
+            	<th>Name</th>
+            	<th>Constraint</th>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+		</table>
+		
 
         <!-- Foreign Key Discovery -->
 		
@@ -45834,201 +60373,48 @@ FROM blobs.reviewed_doc_objs rdo;</pre>
 
 	<!-- View Definition -->
 	
-	<pre>
-SELECT DISTINCT 
-ON (b_do.fk_doc) b_do.fk_doc AS pk_doc
-, min
-(b_do.fk_intended_reviewer) AS pk_intended_reviewer
-, min
-(c_e.fk_patient) AS pk_patient 
-FROM (
-     (blobs.doc_obj b_do 
-        JOIN blobs.doc_med b_dm 
-          ON (
-                 (b_dm.pk = b_do.fk_doc)
-           )
-     )
-  JOIN clin.encounter c_e 
-    ON (
-           (b_dm.fk_encounter = c_e.pk)
-     )
-)
-WHERE (NOT 
-     (EXISTS 
-           (
-            SELECT 1 
-              FROM blobs.reviewed_doc_objs b_rdo 
-             WHERE (b_rdo.fk_reviewed_row = b_do.pk)
-           )
-     )
-)
-GROUP BY b_do.fk_doc;</pre>
-	
 
 	<!-- List off permissions -->
 	
 
 	<p>
 		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#blobs.schema">Schema blobs</a>
+		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
     </p>
 	
         <hr>
-		<h2>View:
+		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#blobs.schema">blobs</a>.<a name="blobs.view.v-unreviewed-docs-inbox">v_unreviewed_docs_inbox</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.incoming-data-unmatched">incoming_data_unmatched</a>
 		</h2>
         
+         <p>this table holds incoming data (lab results, documents)
+	 that could not be matched to one single patient automatically,
+	 it is intended to facilitate manual matching,
+	 - use "modified_when" for import time</p>
+        
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>blobs.v_unreviewed_docs_inbox Structure</caption>
+                <caption>clin.incoming_data_unmatched Structure</caption>
                 <tr>
-                <th>F-Key</th>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Description</th>
-                </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>received_when</td>
-            	<td>timestamp with time zone</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>modified_by</td>
-            	<td>text</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>provider</td>
-            	<td>text</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>importance</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>category</td>
-            	<td>text</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>l10n_category</td>
-            	<td>text</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>type</td>
-            	<td>text</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>l10n_type</td>
-            	<td>text</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
+                <th>F-Key</th>
+                <th>Name</th>
+                <th>Type</th>
+                <th>Description</th>
+                </tr>
             
             <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>comment</td>
-            	<td>text</td>
+            	<td>pk_audit</td>
+            	<td>integer</td>
                 <td><i>
 				
 
-				
-				
+				NOT NULL
+				DEFAULT nextval('audit.audit_fields_pk_audit_seq'::regclass)
 				</i>
 				
 				</td>
@@ -46038,12 +60424,12 @@ GROUP BY b_do.fk_doc;</pre>
 				<td>
                 
                 </td>
-            	<td>pk_context</td>
-            	<td>integer[]</td>
+            	<td>row_version</td>
+            	<td>integer</td>
                 <td><i>
 				
 
-				
+				NOT NULL
 				
 				</i>
 				
@@ -46054,13 +60440,13 @@ GROUP BY b_do.fk_doc;</pre>
 				<td>
                 
                 </td>
-            	<td>data</td>
-            	<td>text</td>
+            	<td>modified_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
-				
-				
+				NOT NULL
+				DEFAULT now()
 				</i>
 				
 				</td>
@@ -46069,14 +60455,22 @@ GROUP BY b_do.fk_doc;</pre>
             <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
+                
                 </td>
-            	<td>pk_inbox_message</td>
-            	<td>integer</td>
+            	<td>modified_by</td>
+            	<td>name</td>
                 <td><i>
 				
+					
 
+					
 				
-				
+
+				NOT NULL
+				DEFAULT "current_user"()
 				</i>
 				
 				</td>
@@ -46085,11 +60479,18 @@ GROUP BY b_do.fk_doc;</pre>
             <tr class="tr0">
 				<td>
                 
+                  
+                
                 </td>
-            	<td>pk_staff</td>
-            	<td>integer</td>
+            	<td>pk</td>
+            	<td>serial</td>
                 <td><i>
 				
+					PRIMARY KEY
+					
+
+					
+				
 
 				
 				
@@ -46102,15 +60503,17 @@ GROUP BY b_do.fk_doc;</pre>
 				<td>
                 
                 </td>
-            	<td>pk_category</td>
-            	<td>integer</td>
+            	<td>fk_patient_candidates</td>
+            	<td>integer[]</td>
                 <td><i>
 				
 
 				
 				
 				</i>
-				
+				<br><br>a matching algorithm can be applied to produce
+	 a list of likely candidate patients, the question
+	 remains whether this should not be done at runtime
 				</td>
 			 </tr>
             
@@ -46118,15 +60521,15 @@ GROUP BY b_do.fk_doc;</pre>
 				<td>
                 
                 </td>
-            	<td>pk_type</td>
-            	<td>integer</td>
+            	<td>request_id</td>
+            	<td>text</td>
                 <td><i>
 				
 
 				
 				
 				</i>
-				
+				<br><br>request ID as found in <data>
 				</td>
 			 </tr>
             
@@ -46134,15 +60537,15 @@ GROUP BY b_do.fk_doc;</pre>
 				<td>
                 
                 </td>
-            	<td>pk_patient</td>
-            	<td>integer</td>
+            	<td>firstnames</td>
+            	<td>text</td>
                 <td><i>
 				
 
 				
 				
 				</i>
-				
+				<br><br>first names as found in <data>
 				</td>
 			 </tr>
             
@@ -46150,15 +60553,15 @@ GROUP BY b_do.fk_doc;</pre>
 				<td>
                 
                 </td>
-            	<td>is_virtual</td>
-            	<td>boolean</td>
+            	<td>lastnames</td>
+            	<td>text</td>
                 <td><i>
 				
 
 				
 				
 				</i>
-				
+				<br><br>last names as found in <data>
 				</td>
 			 </tr>
             
@@ -46166,15 +60569,15 @@ GROUP BY b_do.fk_doc;</pre>
 				<td>
                 
                 </td>
-            	<td>due_date</td>
-            	<td>timestamp with time zone</td>
+            	<td>dob</td>
+            	<td>date</td>
                 <td><i>
 				
 
 				
 				
 				</i>
-				
+				<br><br>date of birth as found in <data>
 				</td>
 			 </tr>
             
@@ -46182,15 +60585,15 @@ GROUP BY b_do.fk_doc;</pre>
 				<td>
                 
                 </td>
-            	<td>expiry_date</td>
-            	<td>timestamp with time zone</td>
+            	<td>postcode</td>
+            	<td>text</td>
                 <td><i>
 				
 
 				
 				
 				</i>
-				
+				<br><br>postcode as found in <data>
 				</td>
 			 </tr>
             
@@ -46198,15 +60601,15 @@ GROUP BY b_do.fk_doc;</pre>
 				<td>
                 
                 </td>
-            	<td>is_overdue</td>
-            	<td>boolean</td>
+            	<td>other_info</td>
+            	<td>text</td>
                 <td><i>
 				
 
 				
 				
 				</i>
-				
+				<br><br>other identifying information as found in <data>
 				</td>
 			 </tr>
             
@@ -46214,15 +60617,16 @@ GROUP BY b_do.fk_doc;</pre>
 				<td>
                 
                 </td>
-            	<td>is_expired</td>
-            	<td>boolean</td>
+            	<td>type</td>
+            	<td>text</td>
                 <td><i>
 				
 
 				
 				
 				</i>
-				
+				<br><br>the type of <data>, eg HL7, LDT, ...,
+	 useful for selecting an importer
 				</td>
 			 </tr>
             
@@ -46230,156 +60634,31 @@ GROUP BY b_do.fk_doc;</pre>
 				<td>
                 
                 </td>
-            	<td>interval_due</td>
-            	<td>interval</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>xmin_message_inbox</td>
-            	<td>integer</td>
+            	<td>data</td>
+            	<td>bytea</td>
                 <td><i>
 				
 
-				
+				NOT NULL
 				
 				</i>
-				
+				<br><br>the raw data
 				</td>
 			 </tr>
             
-        </table>
-
-        <!-- Inherits -->
-		
-
-		
-
-        <!-- Constraint List -->
-		
-
-        <!-- Foreign Key Discovery -->
-		
-
-    <!-- Indexes -->
-    
-
-	<!-- View Definition -->
-	
-	<pre>
-SELECT now
-() AS received_when
-,'<system>'::text AS modified_by
-, NULL::text AS provider
-, 0 AS importance
-,'clinical'::text AS category
-, _
-('clinical'::text) AS l10n_category
-,'review docs'::text AS type
-, _
-('review docs'::text) AS l10n_type
-, (
-SELECT (
-           (
-                 (
-                       (
-                             (
-                                   (b_vuds.no_of_docs || ' '::text) || _
-                                   ('unreviewed documents for patient'::text)
-                             ) || ' '::text
-                       ) || d_n.lastnames
-                 ) || 
-              ', '::text
-           ) || d_n.firstnames
-     )
-) AS comment
-, NULL::integer[] AS pk_context
-, NULL::text AS data
-, NULL::integer AS pk_inbox_message
-, (
-SELECT staff.pk 
-  FROM dem.staff 
- WHERE (staff.db_user = "current_user"
-           ()
-     )
-) AS pk_staff
-, (
-SELECT v_inbox_item_type.pk_category 
-  FROM dem.v_inbox_item_type 
- WHERE (v_inbox_item_type.type = 'review docs'::text)
-) AS pk_category
-, (
-SELECT v_inbox_item_type.pk_type 
-  FROM dem.v_inbox_item_type 
- WHERE (v_inbox_item_type.type = 'review docs'::text)
-) AS pk_type
-, b_vuds.pk_patient
-, true AS is_virtual
-, (now
-     () - '01:00:00'::interval
-) AS due_date
-, NULL::timestamp with time zone AS expiry_date
-, true AS is_overdue
-, false AS is_expired
-,'01:00:00'::interval AS interval_due
-, NULL::integer AS xmin_message_inbox 
-FROM (blobs.v_unreviewed_docs_summary b_vuds 
-  JOIN dem.names d_n 
-    ON (
-           (b_vuds.pk_patient = d_n.id_identity)
-     )
-)
-WHERE (d_n.active IS TRUE);</pre>
-	
-
-	<!-- List off permissions -->
-	
-
-	<p>
-		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#blobs.schema">Schema blobs</a>
-    </p>
-	
-        <hr>
-		<h2>View:
-			
-			<a href="gnumed-entire_schema.html#blobs.schema">blobs</a>.<a name="blobs.view.v-unreviewed-docs-summary">v_unreviewed_docs_summary</a>
-		</h2>
-        
-
-
-        <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>blobs.v_unreviewed_docs_summary Structure</caption>
-                <tr>
-                <th>F-Key</th>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Description</th>
-                </tr>
-            
             <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>pk_patient</td>
-            	<td>integer</td>
+            	<td>gender</td>
+            	<td>text</td>
                 <td><i>
 				
 
 				
 				
 				</i>
-				
+				<br><br>Gender of patient in source data if available.
 				</td>
 			 </tr>
             
@@ -46387,327 +60666,43 @@ WHERE (d_n.active IS TRUE);</pre>
 				<td>
                 
                 </td>
-            	<td>no_of_docs</td>
-            	<td>bigint</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-        </table>
-
-        <!-- Inherits -->
-		
-
-		
-
-        <!-- Constraint List -->
-		
-
-        <!-- Foreign Key Discovery -->
-		
-
-    <!-- Indexes -->
-    
-
-	<!-- View Definition -->
-	
-	<pre>
-SELECT b_vud.pk_patient
-, count
-(1) AS no_of_docs 
-FROM blobs.v_unreviewed_docs b_vud 
-GROUP BY b_vud.pk_patient;</pre>
-	
-
-	<!-- List off permissions -->
-	
-
-	<p>
-		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#blobs.schema">Schema blobs</a>
-    </p>
-	
-
-	<!-- We've gone through the table structure, now lets take a look at user functions -->
-	
-		<hr>
-		<h2>Function:
-			<a href="gnumed-entire_schema.html#blobs.schema">blobs</a>.<a name="blobs.function.delete-document-integer-integer">delete_document(integer, integer)</a>
-		</h2>
-<h3>Returns: boolean</h3>
-<h3>Language: PLPGSQL</h3>
-        
-        <pre>
-DECLARE
-	_pk_doc alias for $1;
-	_pk_encounter alias for $2;
-	_del_note text;
-	_doc_row record;
-	_obj_row record;
-	tmp text;
-BEGIN
-	select * into _doc_row from blobs.doc_med where pk = _pk_doc;
-	_del_note := _('Deletion of document') || E':
-'
-		|| ' '
-			|| to_char(_doc_row.clin_when, 'YYYY-MM-DD HH24:MI')
-			|| ' "' || (select _(dt.name) from blobs.doc_type dt where pk = _doc_row.fk_type) || '"'
-			|| coalesce(' (' || _doc_row.ext_ref || ')', '')
-		|| coalesce(E'
- ' || _doc_row.comment, '')
-	;
-	FOR _obj_row IN select * from blobs.doc_obj where fk_doc = _pk_doc order by seq_idx LOOP
-		_del_note := _del_note || E'
-'
-			|| ' #' || coalesce(_obj_row.seq_idx, '-1') || ': "' || coalesce(_obj_row.comment, '') || E'"
-'
-			|| ' ' || coalesce(_obj_row.filename, '') || E'
-';
-	end LOOP;
-	insert into clin.clin_narrative
-		(fk_encounter, fk_episode, narrative, soap_cat)
-	values (
-		_pk_encounter,
-		_doc_row.fk_episode,
-		_del_note,
-		NULL
-	);
-	-- should auto-cascade:
-	--delete from blobs.doc_obj where fk_doc = _pk_doc;
-	-- should auto-NULL:
-	--bill.bill.fk_doc
-	delete from blobs.doc_med where pk = _pk_doc;
-	return True;
-END;</pre>
-	
-		<hr>
-		<h2>Function:
-			<a href="gnumed-entire_schema.html#blobs.schema">blobs</a>.<a name="blobs.function.delete-document-part-integer-integer">delete_document_part(integer, integer)</a>
-		</h2>
-<h3>Returns: boolean</h3>
-<h3>Language: PLPGSQL</h3>
-        
-        <pre>
-DECLARE
-	_pk_doc_part alias for $1;
-	_pk_encounter alias for $2;
-	_del_note text;
-	_doc_row record;
-	_obj_row record;
-	tmp text;
-BEGIN
-	select * into _obj_row from blobs.doc_obj where pk = _pk_doc_part;
-	select * into _doc_row from blobs.doc_med where pk = _obj_row.fk_doc;
-	_del_note := _('Deletion of part from document') || E':
-'
-		|| ' '
-			|| to_char(_doc_row.clin_when, 'YYYY-MM-DD HH24:MI')
-			|| ' "' || (select _(dt.name) from blobs.doc_type dt where pk = _doc_row.fk_type) || '"'
-			|| coalesce(' (' || _doc_row.ext_ref || ')', '')
-		|| coalesce(E'
- ' || _doc_row.comment, '')
-		|| E'
-'
-		|| ' #' || coalesce(_obj_row.seq_idx, '-1') || ': "' || coalesce(_obj_row.comment, '') || E'"
-'
-		|| ' ' || coalesce(_obj_row.filename, '') || E'
-'
-	;
-	insert into clin.clin_narrative
-		(fk_encounter, fk_episode, narrative, soap_cat)
-	values (
-		_pk_encounter,
-		_doc_row.fk_episode,
-		_del_note,
-		NULL
-	);
-	delete from blobs.doc_obj where pk = _pk_doc_part;
-	return True;
-END;</pre>
-	
-		<hr>
-		<h2>Function:
-			<a href="gnumed-entire_schema.html#blobs.schema">blobs</a>.<a name="blobs.function.trf-do-not-duplicate-primary-episode-in-link-table">trf_do_not_duplicate_primary_episode_in_link_table()</a>
-		</h2>
-<h3>Returns: trigger</h3>
-<h3>Language: PLPGSQL</h3>
-        <p>This trigger function is called before a lnk_doc_med2episode
-	 row is inserted or updated. It makes sure the episode does
-	 not duplicate the primary episode for this document listed
-	 in doc_med. If it does the insert/update is skipped.</p>
-        <pre>
-BEGIN
-	-- if already in doc_med
-	perform 1 from blobs.doc_med dm where dm.fk_episode = NEW.fk_episode and dm.pk = NEW.fk_doc_med;
-	if FOUND then
-		-- skip the insert/update
-		return null;
-	end if;
-	return NEW;
-END;</pre>
-	
-		<hr>
-		<h2>Function:
-			<a href="gnumed-entire_schema.html#blobs.schema">blobs</a>.<a name="blobs.function.trf-mark-unreviewed-on-doc-obj-update">trf_mark_unreviewed_on_doc_obj_update()</a>
-		</h2>
-<h3>Returns: trigger</h3>
-<h3>Language: PLPGSQL</h3>
-        
-        <pre>
-BEGIN
-	if (NEW.data != OLD.data) or ((NEW.data != OLD.data) is NULL) then
-		delete from blobs.reviewed_doc_objs where fk_reviewed_row = OLD.pk;
-	end if;
-	return NEW;
-END;</pre>
-	
-		<hr>
-		<h2>Function:
-			<a href="gnumed-entire_schema.html#blobs.schema">blobs</a>.<a name="blobs.function.trf-remove-primary-episode-from-link-table">trf_remove_primary_episode_from_link_table()</a>
-		</h2>
-<h3>Returns: trigger</h3>
-<h3>Language: PLPGSQL</h3>
-        <p>This trigger function is called when a doc_med row
-	 is inserted or updated. It makes sure the primary
-	 episode listed in doc_med is not duplicated in
-	 lnk_doc_med2episode for the same document. If it
-	 exists in the latter it is removed from there.</p>
-        <pre>
-BEGIN
-	-- if update
-	if TG_OP = 'UPDATE' then
-		-- and no change
-		if NEW.fk_episode = OLD.fk_episode then
-			-- then do nothing
-			return NEW;
-		end if;
-	end if;
-	-- if already in link table
-	perform 1 from blobs.lnk_doc_med2episode ldm2e where ldm2e.fk_episode = NEW.fk_episode and ldm2e.fk_doc_med = NEW.pk;
-	if FOUND then
-		-- delete from link table
-		delete from blobs.lnk_doc_med2episode where fk_episode = NEW.fk_episode and fk_doc_med = NEW.pk;
-	end if;
-	return NEW;
-END;</pre>
-	
-		<hr>
-		<h2>Function:
-			<a href="gnumed-entire_schema.html#blobs.schema">blobs</a>.<a name="blobs.function.trf-set-intended-reviewer">trf_set_intended_reviewer()</a>
-		</h2>
-<h3>Returns: trigger</h3>
-<h3>Language: PLPGSQL</h3>
-        <p>Set the default on blobs.doc_obj.fk_intended_reviewer.</p>
-        <pre>
-DECLARE
-	_pk_patient integer;
-	_pk_provider integer;
-BEGIN
-	-- explicitely set ?
-	if NEW.fk_intended_reviewer is not NULL then
-		return NEW;
-	end if;
-	-- find patient via document
-	select
-		fk_patient into _pk_patient
-	from
-		clin.encounter
-	where
-		clin.encounter.pk = (
-			select fk_encounter from blobs.doc_med where pk = NEW.fk_doc
-		);
-	-- does patient have primary provider ?
-	select
-		fk_primary_provider into _pk_provider
-	from
-		dem.identity
-	where
-		dem.identity.pk = _pk_patient;
-	if _pk_provider is not NULL then
-		NEW.fk_intended_reviewer := _pk_provider;
-		return NEW;
-	end if;
-	-- else use CURRENT_USER
-	select
-		pk into _pk_provider
-	from
-		dem.staff
-	where
-		dem.staff.db_user = current_user;
-	NEW.fk_intended_reviewer := _pk_provider;
-	return NEW;
-END;</pre>
-	
-		<hr>
-		<h2>Function:
-			<a href="gnumed-entire_schema.html#blobs.schema">blobs</a>.<a name="blobs.function.trf-verify-page-number">trf_verify_page_number()</a>
-		</h2>
-<h3>Returns: trigger</h3>
-<h3>Language: PLPGSQL</h3>
-        
-        <pre>
-declare
-	msg text;
-begin
-	if NEW.seq_idx is NULL then
-		return NEW;
-	end if;
-	perform 1 from blobs.doc_obj where pk <> NEW.pk and fk_doc = NEW.fk_doc and seq_idx = NEW.seq_idx;
-	if FOUND then
-		msg := '[blobs.trf_verify_page_number]: uniqueness violation: seq_idx [' || NEW.seq_idx || '] already exists for fk_doc [' || NEW.fk_doc || ']';
-		raise exception '%', msg;
-	end if;
-	return NEW;
-end;</pre>
-	
-
-<!-- cfgcfg -->
-
-		
-		<hr>
-		<h1>Schema cfg</h1>
-		
-			<p>This schema holds all the configuration data.</p>
-		
-
-		
-		
-        <hr>
-		<h2>Table:
-			
-			<a href="gnumed-entire_schema.html#cfg.schema">cfg</a>.<a name="cfg.table.cfg-data">cfg_data</a>
-		</h2>
-        
-         <p>stores opaque configuration data, either text or binary,
-	 note that it will be difficult to share such options
-	 among different types of clients</p>
-        
-
+            	<td>requestor</td>
+            	<td>text</td>
+                <td><i>
+				
 
-        <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>cfg.cfg_data Structure</caption>
-                <tr>
-                <th>F-Key</th>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Description</th>
-                </tr>
+				
+				
+				</i>
+				<br><br>Requestor of data (e.g. who ordered test results) if available in source data.
+				</td>
+			 </tr>
             
             <tr class="tr0">
 				<td>
                 
+                </td>
+            	<td>external_data_id</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				<br><br>ID of content of .data in external system (e.g. importer) where appropriate
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
                   
-                  <a href="gnumed-entire_schema.html#cfg.table.cfg-item">cfg.cfg_item.pk</a>
+                  <a href="gnumed-entire_schema.html#clin.table.patient">clin.patient.fk_identity</a>
                   
                 
                 </td>
-            	<td>fk_item</td>
+            	<td>fk_identity_disambiguated</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -46716,40 +60711,41 @@ end;</pre>
 					
 				
 
-				NOT NULL
 				
-				</i>
 				
+				</i>
+				<br><br>ID of patient the data is judged to really belong to.
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>value</td>
-            	<td>bytea</td>
+            	<td>comment</td>
+            	<td>text</td>
                 <td><i>
 				
 
-				NOT NULL
 				
-				</i>
 				
+				</i>
+				<br><br>a free text comment on this row, eg. why is it here
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                   
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.pk</a>
+                  
                 
                 </td>
-            	<td>pk</td>
-            	<td>serial</td>
+            	<td>fk_provider_disambiguated</td>
+            	<td>integer</td>
                 <td><i>
 				
-					PRIMARY KEY
 					
 
 					
@@ -46758,7 +60754,7 @@ end;</pre>
 				
 				
 				</i>
-				
+				<br><br>The provider the data is relevant to.
 				</td>
 			 </tr>
             
@@ -46766,6 +60762,13 @@ end;</pre>
 
         <!-- Inherits -->
 		
+        <p>Table clin.incoming_data_unmatched Inherits
+        
+            
+           <a href="gnumed-entire_schema.html#audit.table.audit-fields">audit_fields</a>, 
+        
+        </p>
+		
 
 		
 		
@@ -46773,6 +60776,26 @@ end;</pre>
 
         <!-- Constraint List -->
 		
+        <p> </p>
+		<table width="100%" cellspacing="0" cellpadding="3">
+            <caption>clin.incoming_data_unmatched Constraints</caption>
+            <tr>
+            	<th>Name</th>
+            	<th>Constraint</th>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>unmatched_data_sane_comment</td>
+                <td>CHECK ((gm.is_null_or_non_empty_string(comment) IS TRUE))</td>
+            </tr>
+			
+		</table>
+		
 
         <!-- Foreign Key Discovery -->
 		
@@ -46788,21 +60811,21 @@ end;</pre>
 
 	<p>
 		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#cfg.schema">Schema cfg</a>
+		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
     </p>
 	
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#cfg.schema">cfg</a>.<a name="cfg.table.cfg-item">cfg_item</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.lab-request">lab_request</a>
 		</h2>
         
-         <p>this table holds all "instances" of cfg.cfg_template</p>
+         <p>test request metadata</p>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>cfg.cfg_item Structure</caption>
+                <caption>clin.lab_request Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -46813,6 +60836,192 @@ end;</pre>
             <tr class="tr0">
 				<td>
                 
+                </td>
+            	<td>pk_audit</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				NOT NULL
+				DEFAULT nextval('audit.audit_fields_pk_audit_seq'::regclass)
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>row_version</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				NOT NULL
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>modified_when</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				NOT NULL
+				DEFAULT now()
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
+                
+                </td>
+            	<td>modified_by</td>
+            	<td>name</td>
+                <td><i>
+				
+					
+
+					
+				
+
+				NOT NULL
+				DEFAULT "current_user"()
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_item</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				NOT NULL
+				DEFAULT nextval('clin_root_item_pk_item_seq'::regclass)
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>clin_when</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				NOT NULL
+				DEFAULT now()
+				</i>
+				<br><br>the time the sample for this request was taken
+	 LDT: 8432:8433
+	 HL7: OBR.quantity_timing
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                  
+                  <a href="gnumed-entire_schema.html#clin.table.encounter">clin.encounter.pk</a>
+                  
+                
+                </td>
+            	<td>fk_encounter</td>
+            	<td>integer</td>
+                <td><i>
+				
+					
+
+					
+				
+
+				NOT NULL
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                  
+                  <a href="gnumed-entire_schema.html#clin.table.episode">clin.episode.pk</a>
+                  
+                
+                </td>
+            	<td>fk_episode</td>
+            	<td>integer</td>
+                <td><i>
+				
+					
+
+					
+				
+
+				NOT NULL
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>narrative</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				<br><br>free text comment on request
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>soap_cat</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				DEFAULT 'p'::text
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
                   
                 
                 </td>
@@ -46837,13 +61046,13 @@ end;</pre>
 				<td>
                 
                   
-                  <a href="gnumed-entire_schema.html#cfg.table.cfg-template">cfg.cfg_template.pk</a>
+                  <a href="gnumed-entire_schema.html#clin.table.test-org">clin.test_org.pk</a>
                   
                 
                   
                 
                 </td>
-            	<td>fk_template</td>
+            	<td>fk_test_org</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -46858,10 +61067,10 @@ end;</pre>
                     
 				
 
-				NOT NULL
+				
 				
 				</i>
-				<br><br>this points to the class of this option, think of this as a base object, this also defines the data type
+				
 				</td>
 			 </tr>
             
@@ -46871,8 +61080,8 @@ end;</pre>
                   
                 
                 </td>
-            	<td>owner</td>
-            	<td>name</td>
+            	<td>request_id</td>
+            	<td>text</td>
                 <td><i>
 				
 					
@@ -46883,12 +61092,11 @@ end;</pre>
 				
 
 				NOT NULL
-				DEFAULT "current_user"()
+				
 				</i>
-				<br><br>the database level user this option belongs to; this
-	 is the "role" of the user from the perspective of
-	 the database; can be "default" at the application
-	 level to indicate that it does not care
+				<br><br>ID this request had when sent to the lab
+	 LDT: 8310
+	 HL7: OBR.filler_order_number
 				</td>
 			 </tr>
             
@@ -46896,56 +61104,161 @@ end;</pre>
 				<td>
                 
                   
+                  <a href="gnumed-entire_schema.html#dem.table.identity">dem.identity.pk</a>
+                  
                 
                 </td>
-            	<td>workplace</td>
-            	<td>text</td>
+            	<td>fk_requestor</td>
+            	<td>integer</td>
                 <td><i>
 				
 					
 
 					
-                       UNIQUE#1
-                    
 				
 
 				
 				
 				</i>
-				<br><br>- the logical workplace this option pertains to
-	 - can be a hostname but should be a logical rather
-	   than a physical identifier as machines get moved,
-	   workplaces do not, kind of like a "role" for the
-	   machine
-	 - associate this with a physical workplace through
-	   a local config file or environment variable
+				<br><br>who requested the test - really needed ?
 				</td>
 			 </tr>
             
             <tr class="tr0">
 				<td>
                 
-                  
+                </td>
+            	<td>lab_request_id</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				<br><br>ID this request had internally at the lab
+	 LDT: 8311
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
                 
                 </td>
-            	<td>cookie</td>
+            	<td>lab_rxd_when</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				<br><br>when did the lab receive the request+sample
+	 LDT: 8301
+	 HL7: OBR.requested_date_time
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>results_reported_when</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				<br><br>when was the report on the result generated,
+	LDT: 8302
+	HL7: OBR.results_report_status_change
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>request_status</td>
             	<td>text</td>
                 <td><i>
 				
-					
 
-					
-                       UNIQUE#1
-                    
+				NOT NULL
+				
+				</i>
+				<br><br>pending, final, preliminary, partial
+	 LDT: 8401
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>is_pending</td>
+            	<td>boolean</td>
+                <td><i>
+				
+
+				NOT NULL
+				DEFAULT true
+				</i>
+				<br><br>true if any (even partial) results are still pending
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>diagnostic_service_section</td>
+            	<td>text</td>
+                <td><i>
 				
 
 				
 				
 				</i>
-				<br><br>an arbitrary, opaque entity the client code can use
-	 to associate this config item with even finer grained
-	 context; could be the pertinent patient ID for patient
-	 specific options
+				<br><br>The (section of) the diagnostic service which performed the test.
+- HL7 2.3: OBR:24 Diagnostic Service Section ID
+- somewhat redundant with fk_test_org, which, however,
+  points to more normalized data
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>ordered_service</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				<br><br>The (battery of) test(s)/service(s) ordered.
+- HL7 2.3: OBR:4 Universal Service ID
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>note_test_org</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				<br><br>A comment on this lab request by the performing organization (lab).
 				</td>
 			 </tr>
             
@@ -46953,6 +61266,13 @@ end;</pre>
 
         <!-- Inherits -->
 		
+        <p>Table clin.lab_request Inherits
+        
+            
+           <a href="gnumed-entire_schema.html#clin.table.clin-root-item">clin_root_item</a>, 
+        
+        </p>
+		
 
 		
 		
@@ -46960,31 +61280,58 @@ end;</pre>
 
         <!-- Constraint List -->
 		
+        <p> </p>
+		<table width="100%" cellspacing="0" cellpadding="3">
+            <caption>clin.lab_request Constraints</caption>
+            <tr>
+            	<th>Name</th>
+            	<th>Constraint</th>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>clin_lab_req_sane_test_org_note</td>
+                <td>CHECK ((gm.is_null_or_non_empty_string(note_test_org) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>clin_root_item_sane_soap_cat</td>
+                <td>CHECK (((soap_cat IS NULL) OR (lower(soap_cat) = ANY (ARRAY['s'::text, 'o'::text, 'a'::text, 'p'::text, 'u'::text]))))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>lab_request_request_id_check</td>
+                <td>CHECK ((btrim(request_id) <> ''::text))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>lab_request_request_status_check</td>
+                <td>CHECK ((request_status = ANY (ARRAY['pending'::text, 'preliminary'::text, 'partial'::text, 'final'::text])))</td>
+            </tr>
+			
+		</table>
+		
 
         <!-- Foreign Key Discovery -->
 		
 			<p>Tables referencing this one via Foreign Key Constraints:</p>
 		
 			<ul>
-				<li><a href="gnumed-entire_schema.html#cfg.table.cfg-data">cfg.cfg_data</a></li>
-			</ul>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#cfg.table.cfg-numeric">cfg.cfg_numeric</a></li>
-			</ul>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#cfg.table.cfg-str-array">cfg.cfg_str_array</a></li>
-			</ul>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#cfg.table.cfg-string">cfg.cfg_string</a></li>
+				<li><a href="gnumed-entire_schema.html#clin.table.test-result">clin.test_result</a></li>
 			</ul>
 		
 		
 
     <!-- Indexes -->
     
+       idx_clin_lab_request_fk_encounter fk_encounter
+    
+       idx_clin_lab_request_fk_episode fk_episode
+    
 
 	<!-- View Definition -->
 	
@@ -46994,19 +61341,21 @@ end;</pre>
 
 	<p>
 		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#cfg.schema">Schema cfg</a>
+		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
     </p>
 	
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#cfg.schema">cfg</a>.<a name="cfg.table.cfg-numeric">cfg_numeric</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.lnk-code2aoe">lnk_code2aoe</a>
 		</h2>
         
+         <p>Links codes to encounter.aoe.</p>
+        
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>cfg.cfg_numeric Structure</caption>
+                <caption>clin.lnk_code2aoe Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -47017,22 +61366,14 @@ end;</pre>
             <tr class="tr0">
 				<td>
                 
-                  
-                  <a href="gnumed-entire_schema.html#cfg.table.cfg-item">cfg.cfg_item.pk</a>
-                  
-                
                 </td>
-            	<td>fk_item</td>
+            	<td>pk_audit</td>
             	<td>integer</td>
                 <td><i>
 				
-					
-
-					
-				
 
 				NOT NULL
-				
+				DEFAULT nextval('audit.audit_fields_pk_audit_seq'::regclass)
 				</i>
 				
 				</td>
@@ -47042,8 +61383,8 @@ end;</pre>
 				<td>
                 
                 </td>
-            	<td>value</td>
-            	<td>numeric</td>
+            	<td>row_version</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -47057,82 +61398,29 @@ end;</pre>
             <tr class="tr0">
 				<td>
                 
-                  
-                
                 </td>
-            	<td>pk</td>
-            	<td>serial</td>
+            	<td>modified_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
-					PRIMARY KEY
-					
-
-					
-				
 
-				
-				
+				NOT NULL
+				DEFAULT now()
 				</i>
 				
 				</td>
 			 </tr>
             
-        </table>
-
-        <!-- Inherits -->
-		
-
-		
-		
-		
-
-        <!-- Constraint List -->
-		
-
-        <!-- Foreign Key Discovery -->
-		
-
-    <!-- Indexes -->
-    
-
-	<!-- View Definition -->
-	
-
-	<!-- List off permissions -->
-	
-
-	<p>
-		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#cfg.schema">Schema cfg</a>
-    </p>
-	
-        <hr>
-		<h2>Table:
-			
-			<a href="gnumed-entire_schema.html#cfg.schema">cfg</a>.<a name="cfg.table.cfg-str-array">cfg_str_array</a>
-		</h2>
-        
-
-
-        <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>cfg.cfg_str_array Structure</caption>
-                <tr>
-                <th>F-Key</th>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Description</th>
-                </tr>
-            
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                   
-                  <a href="gnumed-entire_schema.html#cfg.table.cfg-item">cfg.cfg_item.pk</a>
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
                   
                 
                 </td>
-            	<td>fk_item</td>
-            	<td>integer</td>
+            	<td>modified_by</td>
+            	<td>name</td>
                 <td><i>
 				
 					
@@ -47141,102 +61429,59 @@ end;</pre>
 				
 
 				NOT NULL
-				
+				DEFAULT "current_user"()
 				</i>
 				
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>value</td>
-            	<td>text[]</td>
+            	<td>pk_lnk_code2item</td>
+            	<td>integer</td>
                 <td><i>
 				
 
 				NOT NULL
-				
+				DEFAULT nextval('lnk_code2item_root_pk_lnk_code2item_seq'::regclass)
 				</i>
 				
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                   
                 
                 </td>
-            	<td>pk</td>
-            	<td>serial</td>
+            	<td>fk_generic_code</td>
+            	<td>integer</td>
                 <td><i>
 				
-					PRIMARY KEY
 					
 
 					
+                       UNIQUE#1
+                    
 				
 
-				
+				NOT NULL
 				
 				</i>
-				
+				<br><br>Custom foreign key to ref.coding_system_root.
 				</td>
 			 </tr>
             
-        </table>
-
-        <!-- Inherits -->
-		
-
-		
-		
-		
-
-        <!-- Constraint List -->
-		
-
-        <!-- Foreign Key Discovery -->
-		
-
-    <!-- Indexes -->
-    
-
-	<!-- View Definition -->
-	
-
-	<!-- List off permissions -->
-	
-
-	<p>
-		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#cfg.schema">Schema cfg</a>
-    </p>
-	
-        <hr>
-		<h2>Table:
-			
-			<a href="gnumed-entire_schema.html#cfg.schema">cfg</a>.<a name="cfg.table.cfg-string">cfg_string</a>
-		</h2>
-        
-
-
-        <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>cfg.cfg_string Structure</caption>
-                <tr>
-                <th>F-Key</th>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Description</th>
-                </tr>
-            
             <tr class="tr0">
 				<td>
                 
                   
-                  <a href="gnumed-entire_schema.html#cfg.table.cfg-item">cfg.cfg_item.pk</a>
+                
+                  
+                  <a href="gnumed-entire_schema.html#clin.table.encounter">clin.encounter.pk</a>
                   
                 
                 </td>
@@ -47247,12 +61492,18 @@ end;</pre>
 					
 
 					
+                       UNIQUE#1
+                    
+				
+					
+
+					
 				
 
-				NOT NULL
 				
-				</i>
 				
+				</i>
+				<br><br>Foreign key to clin.encounter
 				</td>
 			 </tr>
             
@@ -47260,12 +61511,12 @@ end;</pre>
 				<td>
                 
                 </td>
-            	<td>value</td>
+            	<td>code_modifier</td>
             	<td>text</td>
                 <td><i>
 				
 
-				NOT NULL
+				
 				
 				</i>
 				
@@ -47299,6 +61550,13 @@ end;</pre>
 
         <!-- Inherits -->
 		
+        <p>Table clin.lnk_code2aoe Inherits
+        
+            
+           <a href="gnumed-entire_schema.html#clin.table.lnk-code2item-root">lnk_code2item_root</a>, 
+        
+        </p>
+		
 
 		
 		
@@ -47306,12 +61564,29 @@ end;</pre>
 
         <!-- Constraint List -->
 		
+        <p> </p>
+		<table width="100%" cellspacing="0" cellpadding="3">
+            <caption>clin.lnk_code2aoe Constraints</caption>
+            <tr>
+            	<th>Name</th>
+            	<th>Constraint</th>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+		</table>
+		
 
         <!-- Foreign Key Discovery -->
 		
 
     <!-- Indexes -->
     
+       idx_c_lc2aoe_fk_item fk_item
+    
 
 	<!-- View Definition -->
 	
@@ -47321,21 +61596,21 @@ end;</pre>
 
 	<p>
 		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#cfg.schema">Schema cfg</a>
+		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
     </p>
 	
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#cfg.schema">cfg</a>.<a name="cfg.table.cfg-template">cfg_template</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.lnk-code2episode">lnk_code2episode</a>
 		</h2>
         
-         <p>meta definition of config items</p>
+         <p>Links codes to episodes.</p>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>cfg.cfg_template Structure</caption>
+                <caption>clin.lnk_code2episode Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -47346,52 +61621,61 @@ end;</pre>
             <tr class="tr0">
 				<td>
                 
-                  
-                
                 </td>
-            	<td>pk</td>
-            	<td>serial</td>
+            	<td>pk_audit</td>
+            	<td>integer</td>
                 <td><i>
 				
-					PRIMARY KEY
-					
 
-					
+				NOT NULL
+				DEFAULT nextval('audit.audit_fields_pk_audit_seq'::regclass)
+				</i>
 				
-
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>row_version</td>
+            	<td>integer</td>
+                <td><i>
 				
+
+				NOT NULL
 				
 				</i>
 				
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>name</td>
-            	<td>text</td>
+            	<td>modified_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
 				NOT NULL
-				DEFAULT 'must set this !'::text
+				DEFAULT now()
 				</i>
-				<br><br>the name of the option; this MUST be set to something meaningful
+				
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                   
-                  <a href="gnumed-entire_schema.html#cfg.table.cfg-type-enum">cfg.cfg_type_enum.name</a>
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
                   
                 
                 </td>
-            	<td>type</td>
-            	<td>text</td>
+            	<td>modified_by</td>
+            	<td>name</td>
                 <td><i>
 				
 					
@@ -47400,98 +61684,99 @@ end;</pre>
 				
 
 				NOT NULL
-				
+				DEFAULT "current_user"()
 				</i>
-				<br><br>type of the value
+				
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>cfg_group</td>
-            	<td>text</td>
+            	<td>pk_lnk_code2item</td>
+            	<td>integer</td>
                 <td><i>
 				
 
 				NOT NULL
-				DEFAULT 'xxxDEFAULTxxx'::text
+				DEFAULT nextval('lnk_code2item_root_pk_lnk_code2item_seq'::regclass)
 				</i>
-				<br><br>just for logical grouping of options according to task sets to facilitate better config management
+				
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
+                  
+                
                 </td>
-            	<td>description</td>
-            	<td>text</td>
+            	<td>fk_generic_code</td>
+            	<td>integer</td>
                 <td><i>
 				
+					
+
+					
+                       UNIQUE#1
+                    
+				
 
 				NOT NULL
-				DEFAULT 'programmer is an avid Camel Book Reader'::text
+				
 				</i>
-				<br><br>arbitrary description (user visible)
+				<br><br>Custom foreign key to ref.coding_system_root.
 				</td>
 			 </tr>
             
-        </table>
-
-        <!-- Inherits -->
-		
-
-		
-		
-		
-
-        <!-- Constraint List -->
-		
-
-        <!-- Foreign Key Discovery -->
-		
-			<p>Tables referencing this one via Foreign Key Constraints:</p>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#cfg.table.cfg-item">cfg.cfg_item</a></li>
-			</ul>
-		
-		
-
-    <!-- Indexes -->
-    
-
-	<!-- View Definition -->
-	
+            <tr class="tr0">
+				<td>
+                
+                  
+                
+                  
+                  <a href="gnumed-entire_schema.html#clin.table.episode">clin.episode.pk</a>
+                  
+                
+                </td>
+            	<td>fk_item</td>
+            	<td>integer</td>
+                <td><i>
+				
+					
 
-	<!-- List off permissions -->
-	
+					
+                       UNIQUE#1
+                    
+				
+					
 
-	<p>
-		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#cfg.schema">Schema cfg</a>
-    </p>
-	
-        <hr>
-		<h2>Table:
-			
-			<a href="gnumed-entire_schema.html#cfg.schema">cfg</a>.<a name="cfg.table.cfg-type-enum">cfg_type_enum</a>
-		</h2>
-        
-         <p>enumeration of config option data types</p>
-        
+					
+				
 
+				
+				
+				</i>
+				<br><br>Foreign key to clin.episode
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>code_modifier</td>
+            	<td>text</td>
+                <td><i>
+				
 
-        <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>cfg.cfg_type_enum Structure</caption>
-                <tr>
-                <th>F-Key</th>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Description</th>
-                </tr>
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
             
             <tr class="tr0">
 				<td>
@@ -47499,18 +61784,17 @@ end;</pre>
                   
                 
                 </td>
-            	<td>name</td>
-            	<td>text</td>
+            	<td>pk</td>
+            	<td>serial</td>
                 <td><i>
 				
+					PRIMARY KEY
 					
 
 					
-                       UNIQUE
-                    
 				
 
-				NOT NULL
+				
 				
 				</i>
 				
@@ -47521,6 +61805,13 @@ end;</pre>
 
         <!-- Inherits -->
 		
+        <p>Table clin.lnk_code2episode Inherits
+        
+            
+           <a href="gnumed-entire_schema.html#clin.table.lnk-code2item-root">lnk_code2item_root</a>, 
+        
+        </p>
+		
 
 		
 		
@@ -47528,19 +61819,29 @@ end;</pre>
 
         <!-- Constraint List -->
 		
+        <p> </p>
+		<table width="100%" cellspacing="0" cellpadding="3">
+            <caption>clin.lnk_code2episode Constraints</caption>
+            <tr>
+            	<th>Name</th>
+            	<th>Constraint</th>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+		</table>
+		
 
         <!-- Foreign Key Discovery -->
 		
-			<p>Tables referencing this one via Foreign Key Constraints:</p>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#cfg.table.cfg-template">cfg.cfg_template</a></li>
-			</ul>
-		
-		
 
     <!-- Indexes -->
     
+       idx_c_lc2epi_fk_item fk_item
+    
 
 	<!-- View Definition -->
 	
@@ -47550,23 +61851,21 @@ end;</pre>
 
 	<p>
 		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#cfg.schema">Schema cfg</a>
+		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
     </p>
 	
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#cfg.schema">cfg</a>.<a name="cfg.table.config">config</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.lnk-code2fhx">lnk_code2fhx</a>
 		</h2>
         
-         <p>maps a service name to a database location
-	 for a particular user, includes user
-	 credentials for that database</p>
+         <p>Links codes to family history items.</p>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>cfg.config Structure</caption>
+                <caption>clin.lnk_code2fhx Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -47577,21 +61876,14 @@ end;</pre>
             <tr class="tr0">
 				<td>
                 
-                  
-                
                 </td>
-            	<td>id</td>
-            	<td>serial</td>
+            	<td>pk_audit</td>
+            	<td>integer</td>
                 <td><i>
 				
-					PRIMARY KEY
-					
-
-					
-				
 
-				
-				
+				NOT NULL
+				DEFAULT nextval('audit.audit_fields_pk_audit_seq'::regclass)
 				</i>
 				
 				</td>
@@ -47601,18 +61893,15 @@ end;</pre>
 				<td>
                 
                 </td>
-            	<td>profile</td>
-            	<td>character(25)</td>
+            	<td>row_version</td>
+            	<td>integer</td>
                 <td><i>
 				
 
+				NOT NULL
 				
-				DEFAULT 'default'::bpchar
 				</i>
-				<br><br>allows multiple profiles per user/
-	 pseudo user, one user may have different
-	 configuration profiles depending on role,
-	 need and location
+				
 				</td>
 			 </tr>
             
@@ -47620,63 +61909,39 @@ end;</pre>
 				<td>
                 
                 </td>
-            	<td>username</td>
-            	<td>character(25)</td>
+            	<td>modified_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
-				
-				DEFAULT "current_user"()
+				NOT NULL
+				DEFAULT now()
 				</i>
-				<br><br>user name as used within the GNUmed system
+				
 				</td>
 			 </tr>
             
             <tr class="tr1">
 				<td>
                 
-                </td>
-            	<td>ddb</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				<br><br>which GNUmed service are we mapping to a database here
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
                 
                 </td>
-            	<td>db</td>
-            	<td>integer</td>
+            	<td>modified_by</td>
+            	<td>name</td>
                 <td><i>
 				
+					
 
-				
-				
-				</i>
-				<br><br>how to reach the database host for this service
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>crypt_pwd</td>
-            	<td>text</td>
-                <td><i>
+					
 				
 
-				
-				
+				NOT NULL
+				DEFAULT "current_user"()
 				</i>
-				<br><br>password for user and database, encrypted
+				
 				</td>
 			 </tr>
             
@@ -47684,103 +61949,79 @@ end;</pre>
 				<td>
                 
                 </td>
-            	<td>crypt_algo</td>
-            	<td>text</td>
+            	<td>pk_lnk_code2item</td>
+            	<td>integer</td>
                 <td><i>
 				
 
-				
-				
+				NOT NULL
+				DEFAULT nextval('lnk_code2item_root_pk_lnk_code2item_seq'::regclass)
 				</i>
-				<br><br>encryption algorithm used for password encryption
+				
 				</td>
 			 </tr>
             
             <tr class="tr1">
 				<td>
                 
+                  
+                
                 </td>
-            	<td>pwd_hash</td>
-            	<td>text</td>
+            	<td>fk_generic_code</td>
+            	<td>integer</td>
                 <td><i>
 				
+					
 
+					
+                       UNIQUE#1
+                    
 				
+
+				NOT NULL
 				
 				</i>
-				<br><br>hash of the unencrypted password
+				<br><br>Custom foreign key to ref.coding_system_root.
 				</td>
 			 </tr>
             
             <tr class="tr0">
 				<td>
                 
+                  
+                
+                  
+                  <a href="gnumed-entire_schema.html#clin.table.family-history">clin.family_history.pk</a>
+                  
+                
                 </td>
-            	<td>hash_algo</td>
-            	<td>text</td>
+            	<td>fk_item</td>
+            	<td>integer</td>
                 <td><i>
 				
+					
+
+					
+                       UNIQUE#1
+                    
+				
+					
+
+					
+				
 
 				
 				
 				</i>
-				<br><br>algorithm used for password hashing
+				<br><br>Foreign key to clin.family_history
 				</td>
 			 </tr>
             
-        </table>
-
-        <!-- Inherits -->
-		
-
-		
-		
-		
-
-        <!-- Constraint List -->
-		
-
-        <!-- Foreign Key Discovery -->
-		
-
-    <!-- Indexes -->
-    
-
-	<!-- View Definition -->
-	
-
-	<!-- List off permissions -->
-	
-
-	<p>
-		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#cfg.schema">Schema cfg</a>
-    </p>
-	
-        <hr>
-		<h2>Table:
-			
-			<a href="gnumed-entire_schema.html#cfg.schema">cfg</a>.<a name="cfg.table.db-logon-banner">db_logon_banner</a>
-		</h2>
-        
-         <p>Stores a banner to show when clients log on.</p>
-        
-
-
-        <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>cfg.db_logon_banner Structure</caption>
-                <tr>
-                <th>F-Key</th>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Description</th>
-                </tr>
-            
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
-            	<td>message</td>
+            	<td>code_modifier</td>
             	<td>text</td>
                 <td><i>
 				
@@ -47788,31 +62029,30 @@ end;</pre>
 				
 				
 				</i>
-				<br><br>The actual message to show.
+				
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                   
                 
                 </td>
-            	<td>singularizer</td>
-            	<td>boolean</td>
+            	<td>pk</td>
+            	<td>serial</td>
                 <td><i>
 				
+					PRIMARY KEY
 					
 
 					
-                       UNIQUE
-                    
 				
 
 				
-				DEFAULT true
+				
 				</i>
-				<br><br>Makes sure there only ever is one such banner at any given time.
+				
 				</td>
 			 </tr>
             
@@ -47820,6 +62060,13 @@ end;</pre>
 
         <!-- Inherits -->
 		
+        <p>Table clin.lnk_code2fhx Inherits
+        
+            
+           <a href="gnumed-entire_schema.html#clin.table.lnk-code2item-root">lnk_code2item_root</a>, 
+        
+        </p>
+		
 
 		
 		
@@ -47829,20 +62076,15 @@ end;</pre>
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>cfg.db_logon_banner Constraints</caption>
+            <caption>clin.lnk_code2fhx Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
-				<td>db_logon_banner_message_check</td>
-                <td>CHECK ((btrim(message) <> ''::text))</td>
-            </tr>
-			
-            <tr class="tr1">
-				<td>db_logon_banner_singularizer_check</td>
-                <td>CHECK ((singularizer IS TRUE))</td>
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
             </tr>
 			
 		</table>
@@ -47853,6 +62095,8 @@ end;</pre>
 
     <!-- Indexes -->
     
+       idx_c_lc2fhx_fk_item fk_item
+    
 
 	<!-- View Definition -->
 	
@@ -47862,21 +62106,21 @@ end;</pre>
 
 	<p>
 		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#cfg.schema">Schema cfg</a>
+		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
     </p>
 	
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#cfg.schema">cfg</a>.<a name="cfg.table.report-query">report_query</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.lnk-code2h-issue">lnk_code2h_issue</a>
 		</h2>
         
-         <p>This table stores SQL commands to be used in frontend report style queries.</p>
+         <p>Links codes to health issues.</p>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>cfg.report_query Structure</caption>
+                <caption>clin.lnk_code2h_issue Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -47935,11 +62179,19 @@ end;</pre>
             <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
+                
                 </td>
             	<td>modified_by</td>
             	<td>name</td>
                 <td><i>
 				
+					
+
+					
+				
 
 				NOT NULL
 				DEFAULT "current_user"()
@@ -47951,44 +62203,85 @@ end;</pre>
             <tr class="tr0">
 				<td>
                 
+                </td>
+            	<td>pk_lnk_code2item</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				NOT NULL
+				DEFAULT nextval('lnk_code2item_root_pk_lnk_code2item_seq'::regclass)
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
                   
                 
                 </td>
-            	<td>pk</td>
-            	<td>serial</td>
+            	<td>fk_generic_code</td>
+            	<td>integer</td>
                 <td><i>
 				
-					PRIMARY KEY
 					
 
 					
+                       UNIQUE#1
+                    
 				
 
-				
+				NOT NULL
 				
 				</i>
-				
+				<br><br>Custom foreign key to ref.coding_system_root.
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                   
                 
+                  
+                  <a href="gnumed-entire_schema.html#clin.table.health-issue">clin.health_issue.pk</a>
+                  
+                
                 </td>
-            	<td>label</td>
-            	<td>text</td>
+            	<td>fk_item</td>
+            	<td>integer</td>
                 <td><i>
 				
 					
 
 					
-                       UNIQUE
+                       UNIQUE#1
                     
 				
+					
+
+					
+				
+
+				
+				
+				</i>
+				<br><br>Foreign key to clin.health_issue
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>code_modifier</td>
+            	<td>text</td>
+                <td><i>
+				
 
-				NOT NULL
+				
 				
 				</i>
 				
@@ -47998,13 +62291,20 @@ end;</pre>
             <tr class="tr0">
 				<td>
                 
+                  
+                
                 </td>
-            	<td>cmd</td>
-            	<td>text</td>
+            	<td>pk</td>
+            	<td>serial</td>
                 <td><i>
 				
+					PRIMARY KEY
+					
 
-				NOT NULL
+					
+				
+
+				
 				
 				</i>
 				
@@ -48015,10 +62315,10 @@ end;</pre>
 
         <!-- Inherits -->
 		
-        <p>Table cfg.report_query Inherits
+        <p>Table clin.lnk_code2h_issue Inherits
         
             
-           <a href="gnumed-entire_schema.html#audit.table.audit-fields">audit_fields</a>, 
+           <a href="gnumed-entire_schema.html#clin.table.lnk-code2item-root">lnk_code2item_root</a>, 
         
         </p>
 		
@@ -48031,20 +62331,15 @@ end;</pre>
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>cfg.report_query Constraints</caption>
+            <caption>clin.lnk_code2h_issue Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
-				<td>report_query_cmd_check</td>
-                <td>CHECK ((btrim(COALESCE(cmd, 'NULL'::text)) <> ''::text))</td>
-            </tr>
-			
-            <tr class="tr1">
-				<td>report_query_label_check</td>
-                <td>CHECK ((btrim(COALESCE(label, 'NULL'::text)) <> ''::text))</td>
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
             </tr>
 			
 		</table>
@@ -48055,6 +62350,8 @@ end;</pre>
 
     <!-- Indexes -->
     
+       idx_c_lc2iss_fk_item fk_item
+    
 
 	<!-- View Definition -->
 	
@@ -48064,19 +62361,27 @@ end;</pre>
 
 	<p>
 		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#cfg.schema">Schema cfg</a>
+		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
     </p>
 	
         <hr>
-		<h2>View:
+		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#cfg.schema">cfg</a>.<a name="cfg.view.v-cfg-options">v_cfg_options</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.lnk-code2item-root">lnk_code2item_root</a>
 		</h2>
         
+         <p>The parent table of all tables linking codes to EMR structures.
+Coding tables check this table for existence of their PK in
+.fk_generic_code in order to prevent cascading DELETEs/UPDATEs
+from breaking referential integrity.
+EMR structure tables foreign key into children of this table in
+order to link structures to codes.
+</p>
+        
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>cfg.v_cfg_options Structure</caption>
+                <caption>clin.lnk_code2item_root Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -48088,13 +62393,13 @@ end;</pre>
 				<td>
                 
                 </td>
-            	<td>option</td>
-            	<td>text</td>
+            	<td>pk_audit</td>
+            	<td>integer</td>
                 <td><i>
 				
 
-				
-				
+				NOT NULL
+				DEFAULT nextval('audit.audit_fields_pk_audit_seq'::regclass)
 				</i>
 				
 				</td>
@@ -48104,12 +62409,12 @@ end;</pre>
 				<td>
                 
                 </td>
-            	<td>description</td>
-            	<td>text</td>
+            	<td>row_version</td>
+            	<td>integer</td>
                 <td><i>
 				
 
-				
+				NOT NULL
 				
 				</i>
 				
@@ -48120,13 +62425,13 @@ end;</pre>
 				<td>
                 
                 </td>
-            	<td>owner</td>
-            	<td>name</td>
+            	<td>modified_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
-				
-				
+				NOT NULL
+				DEFAULT now()
 				</i>
 				
 				</td>
@@ -48136,13 +62441,13 @@ end;</pre>
 				<td>
                 
                 </td>
-            	<td>workplace</td>
-            	<td>text</td>
+            	<td>modified_by</td>
+            	<td>name</td>
                 <td><i>
 				
 
-				
-				
+				NOT NULL
+				DEFAULT "current_user"()
 				</i>
 				
 				</td>
@@ -48151,26 +62456,17 @@ end;</pre>
             <tr class="tr0">
 				<td>
                 
+                  
+                
                 </td>
-            	<td>cookie</td>
-            	<td>text</td>
+            	<td>pk_lnk_code2item</td>
+            	<td>serial</td>
                 <td><i>
 				
+					PRIMARY KEY
+					
 
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>type</td>
-            	<td>text</td>
-                <td><i>
+					
 				
 
 				
@@ -48180,27 +62476,27 @@ end;</pre>
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
-            	<td>group</td>
-            	<td>text</td>
+            	<td>fk_generic_code</td>
+            	<td>integer</td>
                 <td><i>
 				
 
 				
 				
 				</i>
-				
+				<br><br>Custom foreign key to ref.coding_system_root.pk_coding_system.
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>pk_cfg_template</td>
+            	<td>fk_item</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -48208,23 +62504,23 @@ end;</pre>
 				
 				
 				</i>
-				
+				<br><br>Foreign key to clin.* tables
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
-            	<td>pk_cfg_item</td>
-            	<td>integer</td>
+            	<td>code_modifier</td>
+            	<td>text</td>
                 <td><i>
 				
 
 				
 				
 				</i>
-				
+				<br><br>Usage specific modifier on the base code, say, certainty or laterality of ICD-10 codes.
 				</td>
 			 </tr>
             
@@ -48232,11 +62528,35 @@ end;</pre>
 
         <!-- Inherits -->
 		
+        <p>Table clin.lnk_code2item_root Inherits
+        
+            
+           <a href="gnumed-entire_schema.html#audit.table.audit-fields">audit_fields</a>, 
+        
+        </p>
+		
 
 		
+		
+		
 
         <!-- Constraint List -->
 		
+        <p> </p>
+		<table width="100%" cellspacing="0" cellpadding="3">
+            <caption>clin.lnk_code2item_root Constraints</caption>
+            <tr>
+            	<th>Name</th>
+            	<th>Constraint</th>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+		</table>
+		
 
         <!-- Foreign Key Discovery -->
 		
@@ -48246,39 +62566,27 @@ end;</pre>
 
 	<!-- View Definition -->
 	
-	<pre>
-SELECT cfg_t.name AS option
-, cfg_t.description
-, cfg_i.owner
-, cfg_i.workplace
-, cfg_i.cookie
-, cfg_t.type
-, cfg_t.cfg_group AS "group"
-, cfg_t.pk AS pk_cfg_template
-, cfg_i.pk AS pk_cfg_item 
-FROM cfg.cfg_template cfg_t
-, cfg.cfg_item cfg_i 
-WHERE (cfg_i.fk_template = cfg_t.pk);</pre>
-	
 
 	<!-- List off permissions -->
 	
 
 	<p>
 		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#cfg.schema">Schema cfg</a>
+		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
     </p>
 	
         <hr>
-		<h2>View:
+		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#cfg.schema">cfg</a>.<a name="cfg.view.v-cfg-opts-data">v_cfg_opts_data</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.lnk-code2narrative">lnk_code2narrative</a>
 		</h2>
         
+         <p>Links codes to SOAP narrative.</p>
+        
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>cfg.v_cfg_opts_data Structure</caption>
+                <caption>clin.lnk_code2narrative Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -48290,13 +62598,13 @@ WHERE (cfg_i.fk_template = cfg_t.pk);</pre>
 				<td>
                 
                 </td>
-            	<td>option</td>
-            	<td>text</td>
+            	<td>pk_audit</td>
+            	<td>integer</td>
                 <td><i>
 				
 
-				
-				
+				NOT NULL
+				DEFAULT nextval('audit.audit_fields_pk_audit_seq'::regclass)
 				</i>
 				
 				</td>
@@ -48306,12 +62614,12 @@ WHERE (cfg_i.fk_template = cfg_t.pk);</pre>
 				<td>
                 
                 </td>
-            	<td>value</td>
-            	<td>bytea</td>
+            	<td>row_version</td>
+            	<td>integer</td>
                 <td><i>
 				
 
-				
+				NOT NULL
 				
 				</i>
 				
@@ -48322,13 +62630,13 @@ WHERE (cfg_i.fk_template = cfg_t.pk);</pre>
 				<td>
                 
                 </td>
-            	<td>description</td>
-            	<td>text</td>
+            	<td>modified_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
-				
-				
+				NOT NULL
+				DEFAULT now()
 				</i>
 				
 				</td>
@@ -48337,14 +62645,22 @@ WHERE (cfg_i.fk_template = cfg_t.pk);</pre>
             <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
+                
                 </td>
-            	<td>owner</td>
+            	<td>modified_by</td>
             	<td>name</td>
                 <td><i>
 				
+					
 
+					
 				
-				
+
+				NOT NULL
+				DEFAULT "current_user"()
 				</i>
 				
 				</td>
@@ -48354,13 +62670,13 @@ WHERE (cfg_i.fk_template = cfg_t.pk);</pre>
 				<td>
                 
                 </td>
-            	<td>workplace</td>
-            	<td>text</td>
+            	<td>pk_lnk_code2item</td>
+            	<td>integer</td>
                 <td><i>
 				
 
-				
-				
+				NOT NULL
+				DEFAULT nextval('lnk_code2item_root_pk_lnk_code2item_seq'::regclass)
 				</i>
 				
 				</td>
@@ -48369,32 +62685,56 @@ WHERE (cfg_i.fk_template = cfg_t.pk);</pre>
             <tr class="tr1">
 				<td>
                 
+                  
+                
                 </td>
-            	<td>cookie</td>
-            	<td>text</td>
+            	<td>fk_generic_code</td>
+            	<td>integer</td>
                 <td><i>
 				
+					
 
+					
+                       UNIQUE#1
+                    
 				
+
+				NOT NULL
 				
 				</i>
-				
+				<br><br>Custom foreign key to ref.coding_system_root.
 				</td>
 			 </tr>
             
             <tr class="tr0">
 				<td>
                 
+                  
+                
+                  
+                  <a href="gnumed-entire_schema.html#clin.table.clin-narrative">clin.clin_narrative.pk</a>
+                  
+                
                 </td>
-            	<td>group</td>
-            	<td>text</td>
+            	<td>fk_item</td>
+            	<td>integer</td>
                 <td><i>
 				
+					
 
+					
+                       UNIQUE#1
+                    
 				
+					
+
+					
+				
+
 				
-				</i>
 				
+				</i>
+				<br><br>Foreign key to clin.clin_narrative
 				</td>
 			 </tr>
             
@@ -48402,8 +62742,8 @@ WHERE (cfg_i.fk_template = cfg_t.pk);</pre>
 				<td>
                 
                 </td>
-            	<td>pk_cfg_template</td>
-            	<td>integer</td>
+            	<td>code_modifier</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -48417,11 +62757,18 @@ WHERE (cfg_i.fk_template = cfg_t.pk);</pre>
             <tr class="tr0">
 				<td>
                 
+                  
+                
                 </td>
-            	<td>pk_cfg_item</td>
-            	<td>integer</td>
+            	<td>pk</td>
+            	<td>serial</td>
                 <td><i>
 				
+					PRIMARY KEY
+					
+
+					
+				
 
 				
 				
@@ -48434,57 +62781,67 @@ WHERE (cfg_i.fk_template = cfg_t.pk);</pre>
 
         <!-- Inherits -->
 		
+        <p>Table clin.lnk_code2narrative Inherits
+        
+            
+           <a href="gnumed-entire_schema.html#clin.table.lnk-code2item-root">lnk_code2item_root</a>, 
+        
+        </p>
+		
 
 		
+		
+		
 
         <!-- Constraint List -->
 		
+        <p> </p>
+		<table width="100%" cellspacing="0" cellpadding="3">
+            <caption>clin.lnk_code2narrative Constraints</caption>
+            <tr>
+            	<th>Name</th>
+            	<th>Constraint</th>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+		</table>
+		
 
         <!-- Foreign Key Discovery -->
 		
 
     <!-- Indexes -->
     
+       idx_c_lc2narr_fk_item fk_item
+    
 
 	<!-- View Definition -->
 	
-	<pre>
-SELECT cfg_t.name AS option
-, cfg_v.value
-, cfg_t.description
-, cfg_i.owner
-, cfg_i.workplace
-, cfg_i.cookie
-, cfg_t.cfg_group AS "group"
-, cfg_t.pk AS pk_cfg_template
-, cfg_i.pk AS pk_cfg_item 
-FROM cfg.cfg_template cfg_t
-, cfg.cfg_item cfg_i
-, cfg.cfg_data cfg_v 
-WHERE (
-     (cfg_i.fk_template = cfg_t.pk)
-   AND (cfg_v.fk_item = cfg_i.pk)
-);</pre>
-	
 
 	<!-- List off permissions -->
 	
 
 	<p>
 		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#cfg.schema">Schema cfg</a>
+		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
     </p>
 	
         <hr>
-		<h2>View:
+		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#cfg.schema">cfg</a>.<a name="cfg.view.v-cfg-opts-numeric">v_cfg_opts_numeric</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.lnk-code2procedure">lnk_code2procedure</a>
 		</h2>
         
+         <p>Links codes to procedures. OPS comes to mind.</p>
+        
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>cfg.v_cfg_opts_numeric Structure</caption>
+                <caption>clin.lnk_code2procedure Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -48496,13 +62853,13 @@ WHERE (
 				<td>
                 
                 </td>
-            	<td>option</td>
-            	<td>text</td>
+            	<td>pk_audit</td>
+            	<td>integer</td>
                 <td><i>
 				
 
-				
-				
+				NOT NULL
+				DEFAULT nextval('audit.audit_fields_pk_audit_seq'::regclass)
 				</i>
 				
 				</td>
@@ -48512,12 +62869,12 @@ WHERE (
 				<td>
                 
                 </td>
-            	<td>value</td>
-            	<td>numeric</td>
+            	<td>row_version</td>
+            	<td>integer</td>
                 <td><i>
 				
 
-				
+				NOT NULL
 				
 				</i>
 				
@@ -48528,13 +62885,13 @@ WHERE (
 				<td>
                 
                 </td>
-            	<td>description</td>
-            	<td>text</td>
+            	<td>modified_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
-				
-				
+				NOT NULL
+				DEFAULT now()
 				</i>
 				
 				</td>
@@ -48543,14 +62900,22 @@ WHERE (
             <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
+                
                 </td>
-            	<td>owner</td>
+            	<td>modified_by</td>
             	<td>name</td>
                 <td><i>
 				
+					
 
+					
 				
-				
+
+				NOT NULL
+				DEFAULT "current_user"()
 				</i>
 				
 				</td>
@@ -48560,13 +62925,13 @@ WHERE (
 				<td>
                 
                 </td>
-            	<td>workplace</td>
-            	<td>text</td>
+            	<td>pk_lnk_code2item</td>
+            	<td>integer</td>
                 <td><i>
 				
 
-				
-				
+				NOT NULL
+				DEFAULT nextval('lnk_code2item_root_pk_lnk_code2item_seq'::regclass)
 				</i>
 				
 				</td>
@@ -48575,32 +62940,56 @@ WHERE (
             <tr class="tr1">
 				<td>
                 
+                  
+                
                 </td>
-            	<td>cookie</td>
-            	<td>text</td>
+            	<td>fk_generic_code</td>
+            	<td>integer</td>
                 <td><i>
 				
+					
 
+					
+                       UNIQUE#1
+                    
 				
+
+				NOT NULL
 				
 				</i>
-				
+				<br><br>Custom foreign key to ref.coding_system_root.
 				</td>
 			 </tr>
             
             <tr class="tr0">
 				<td>
                 
+                  
+                
+                  
+                  <a href="gnumed-entire_schema.html#clin.table.procedure">clin.procedure.pk</a>
+                  
+                
                 </td>
-            	<td>group</td>
-            	<td>text</td>
+            	<td>fk_item</td>
+            	<td>integer</td>
                 <td><i>
 				
+					
+
+					
+                       UNIQUE#1
+                    
+				
+					
+
+					
+				
 
 				
 				
 				</i>
-				
+				<br><br>Foreign key to clin.procedure
 				</td>
 			 </tr>
             
@@ -48608,8 +62997,8 @@ WHERE (
 				<td>
                 
                 </td>
-            	<td>pk_cfg_template</td>
-            	<td>integer</td>
+            	<td>code_modifier</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -48623,11 +63012,18 @@ WHERE (
             <tr class="tr0">
 				<td>
                 
+                  
+                
                 </td>
-            	<td>pk_cfg_item</td>
-            	<td>integer</td>
+            	<td>pk</td>
+            	<td>serial</td>
                 <td><i>
 				
+					PRIMARY KEY
+					
+
+					
+				
 
 				
 				
@@ -48640,57 +63036,67 @@ WHERE (
 
         <!-- Inherits -->
 		
+        <p>Table clin.lnk_code2procedure Inherits
+        
+            
+           <a href="gnumed-entire_schema.html#clin.table.lnk-code2item-root">lnk_code2item_root</a>, 
+        
+        </p>
+		
 
 		
+		
+		
 
         <!-- Constraint List -->
 		
+        <p> </p>
+		<table width="100%" cellspacing="0" cellpadding="3">
+            <caption>clin.lnk_code2procedure Constraints</caption>
+            <tr>
+            	<th>Name</th>
+            	<th>Constraint</th>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+		</table>
+		
 
         <!-- Foreign Key Discovery -->
 		
 
     <!-- Indexes -->
     
+       idx_c_lc2proc_fk_item fk_item
+    
 
 	<!-- View Definition -->
 	
-	<pre>
-SELECT cfg_t.name AS option
-, cfg_v.value
-, cfg_t.description
-, cfg_i.owner
-, cfg_i.workplace
-, cfg_i.cookie
-, cfg_t.cfg_group AS "group"
-, cfg_t.pk AS pk_cfg_template
-, cfg_i.pk AS pk_cfg_item 
-FROM cfg.cfg_template cfg_t
-, cfg.cfg_item cfg_i
-, cfg.cfg_numeric cfg_v 
-WHERE (
-     (cfg_i.fk_template = cfg_t.pk)
-   AND (cfg_v.fk_item = cfg_i.pk)
-);</pre>
-	
 
 	<!-- List off permissions -->
 	
 
 	<p>
 		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#cfg.schema">Schema cfg</a>
+		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
     </p>
 	
         <hr>
-		<h2>View:
+		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#cfg.schema">cfg</a>.<a name="cfg.view.v-cfg-opts-str-array">v_cfg_opts_str_array</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.lnk-code2rfe">lnk_code2rfe</a>
 		</h2>
         
+         <p>Links codes to encounters.</p>
+        
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>cfg.v_cfg_opts_str_array Structure</caption>
+                <caption>clin.lnk_code2rfe Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -48702,13 +63108,13 @@ WHERE (
 				<td>
                 
                 </td>
-            	<td>option</td>
-            	<td>text</td>
+            	<td>pk_audit</td>
+            	<td>integer</td>
                 <td><i>
 				
 
-				
-				
+				NOT NULL
+				DEFAULT nextval('audit.audit_fields_pk_audit_seq'::regclass)
 				</i>
 				
 				</td>
@@ -48718,12 +63124,12 @@ WHERE (
 				<td>
                 
                 </td>
-            	<td>value</td>
-            	<td>text[]</td>
+            	<td>row_version</td>
+            	<td>integer</td>
                 <td><i>
 				
 
-				
+				NOT NULL
 				
 				</i>
 				
@@ -48734,13 +63140,13 @@ WHERE (
 				<td>
                 
                 </td>
-            	<td>description</td>
-            	<td>text</td>
+            	<td>modified_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
-				
-				
+				NOT NULL
+				DEFAULT now()
 				</i>
 				
 				</td>
@@ -48749,14 +63155,22 @@ WHERE (
             <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
+                
                 </td>
-            	<td>owner</td>
+            	<td>modified_by</td>
             	<td>name</td>
                 <td><i>
 				
+					
 
+					
 				
-				
+
+				NOT NULL
+				DEFAULT "current_user"()
 				</i>
 				
 				</td>
@@ -48766,13 +63180,13 @@ WHERE (
 				<td>
                 
                 </td>
-            	<td>workplace</td>
-            	<td>text</td>
+            	<td>pk_lnk_code2item</td>
+            	<td>integer</td>
                 <td><i>
 				
 
-				
-				
+				NOT NULL
+				DEFAULT nextval('lnk_code2item_root_pk_lnk_code2item_seq'::regclass)
 				</i>
 				
 				</td>
@@ -48781,32 +63195,56 @@ WHERE (
             <tr class="tr1">
 				<td>
                 
+                  
+                
                 </td>
-            	<td>cookie</td>
-            	<td>text</td>
+            	<td>fk_generic_code</td>
+            	<td>integer</td>
                 <td><i>
 				
+					
 
+					
+                       UNIQUE#1
+                    
 				
+
+				NOT NULL
 				
 				</i>
-				
+				<br><br>Custom foreign key to ref.coding_system_root.
 				</td>
 			 </tr>
             
             <tr class="tr0">
 				<td>
                 
+                  
+                
+                  
+                  <a href="gnumed-entire_schema.html#clin.table.encounter">clin.encounter.pk</a>
+                  
+                
                 </td>
-            	<td>group</td>
-            	<td>text</td>
+            	<td>fk_item</td>
+            	<td>integer</td>
                 <td><i>
 				
+					
+
+					
+                       UNIQUE#1
+                    
+				
+					
 
+					
 				
+
 				
-				</i>
 				
+				</i>
+				<br><br>Foreign key to clin.encounter
 				</td>
 			 </tr>
             
@@ -48814,8 +63252,8 @@ WHERE (
 				<td>
                 
                 </td>
-            	<td>pk_cfg_template</td>
-            	<td>integer</td>
+            	<td>code_modifier</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -48829,11 +63267,18 @@ WHERE (
             <tr class="tr0">
 				<td>
                 
+                  
+                
                 </td>
-            	<td>pk_cfg_item</td>
-            	<td>integer</td>
+            	<td>pk</td>
+            	<td>serial</td>
                 <td><i>
 				
+					PRIMARY KEY
+					
+
+					
+				
 
 				
 				
@@ -48846,57 +63291,67 @@ WHERE (
 
         <!-- Inherits -->
 		
+        <p>Table clin.lnk_code2rfe Inherits
+        
+            
+           <a href="gnumed-entire_schema.html#clin.table.lnk-code2item-root">lnk_code2item_root</a>, 
+        
+        </p>
+		
 
 		
+		
+		
 
         <!-- Constraint List -->
 		
+        <p> </p>
+		<table width="100%" cellspacing="0" cellpadding="3">
+            <caption>clin.lnk_code2rfe Constraints</caption>
+            <tr>
+            	<th>Name</th>
+            	<th>Constraint</th>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+		</table>
+		
 
         <!-- Foreign Key Discovery -->
 		
 
     <!-- Indexes -->
     
+       idx_c_lc2rfe_fk_item fk_item
+    
 
 	<!-- View Definition -->
 	
-	<pre>
-SELECT cfg_t.name AS option
-, cfg_v.value
-, cfg_t.description
-, cfg_i.owner
-, cfg_i.workplace
-, cfg_i.cookie
-, cfg_t.cfg_group AS "group"
-, cfg_t.pk AS pk_cfg_template
-, cfg_i.pk AS pk_cfg_item 
-FROM cfg.cfg_template cfg_t
-, cfg.cfg_item cfg_i
-, cfg.cfg_str_array cfg_v 
-WHERE (
-     (cfg_i.fk_template = cfg_t.pk)
-   AND (cfg_v.fk_item = cfg_i.pk)
-);</pre>
-	
 
 	<!-- List off permissions -->
 	
 
 	<p>
 		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#cfg.schema">Schema cfg</a>
+		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
     </p>
 	
         <hr>
-		<h2>View:
+		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#cfg.schema">cfg</a>.<a name="cfg.view.v-cfg-opts-string">v_cfg_opts_string</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.lnk-code2tst-pnl">lnk_code2tst_pnl</a>
 		</h2>
         
+         <p>Links codes to test panels.</p>
+        
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>cfg.v_cfg_opts_string Structure</caption>
+                <caption>clin.lnk_code2tst_pnl Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -48908,13 +63363,13 @@ WHERE (
 				<td>
                 
                 </td>
-            	<td>option</td>
-            	<td>text</td>
+            	<td>pk_audit</td>
+            	<td>integer</td>
                 <td><i>
 				
 
-				
-				
+				NOT NULL
+				DEFAULT nextval('audit.audit_fields_pk_audit_seq'::regclass)
 				</i>
 				
 				</td>
@@ -48924,12 +63379,12 @@ WHERE (
 				<td>
                 
                 </td>
-            	<td>value</td>
-            	<td>text</td>
+            	<td>row_version</td>
+            	<td>integer</td>
                 <td><i>
 				
 
-				
+				NOT NULL
 				
 				</i>
 				
@@ -48940,13 +63395,13 @@ WHERE (
 				<td>
                 
                 </td>
-            	<td>description</td>
-            	<td>text</td>
+            	<td>modified_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
-				
-				
+				NOT NULL
+				DEFAULT now()
 				</i>
 				
 				</td>
@@ -48955,46 +63410,22 @@ WHERE (
             <tr class="tr1">
 				<td>
                 
-                </td>
-            	<td>owner</td>
-            	<td>name</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
                 
                 </td>
-            	<td>workplace</td>
-            	<td>text</td>
+            	<td>modified_by</td>
+            	<td>name</td>
                 <td><i>
 				
+					
 
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>cookie</td>
-            	<td>text</td>
-                <td><i>
+					
 				
 
-				
-				
+				NOT NULL
+				DEFAULT "current_user"()
 				</i>
 				
 				</td>
@@ -49004,13 +63435,13 @@ WHERE (
 				<td>
                 
                 </td>
-            	<td>group</td>
-            	<td>text</td>
+            	<td>pk_lnk_code2item</td>
+            	<td>integer</td>
                 <td><i>
 				
 
-				
-				
+				NOT NULL
+				DEFAULT nextval('lnk_code2item_root_pk_lnk_code2item_seq'::regclass)
 				</i>
 				
 				</td>
@@ -49019,239 +63450,47 @@ WHERE (
             <tr class="tr1">
 				<td>
                 
-                </td>
-            	<td>pk_cfg_template</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
+                  
                 
                 </td>
-            	<td>pk_cfg_item</td>
+            	<td>fk_generic_code</td>
             	<td>integer</td>
                 <td><i>
 				
+					
 
+					
+                       UNIQUE#1
+                    
 				
+
+				NOT NULL
 				
 				</i>
-				
+				<br><br>Custom foreign key to ref.coding_system_root.
 				</td>
 			 </tr>
             
-        </table>
-
-        <!-- Inherits -->
-		
-
-		
-
-        <!-- Constraint List -->
-		
-
-        <!-- Foreign Key Discovery -->
-		
-
-    <!-- Indexes -->
-    
-
-	<!-- View Definition -->
-	
-	<pre>
-SELECT cfg_t.name AS option
-, cfg_v.value
-, cfg_t.description
-, cfg_i.owner
-, cfg_i.workplace
-, cfg_i.cookie
-, cfg_t.cfg_group AS "group"
-, cfg_t.pk AS pk_cfg_template
-, cfg_i.pk AS pk_cfg_item 
-FROM cfg.cfg_template cfg_t
-, cfg.cfg_item cfg_i
-, cfg.cfg_string cfg_v 
-WHERE (
-     (cfg_i.fk_template = cfg_t.pk)
-   AND (cfg_v.fk_item = cfg_i.pk)
-);</pre>
-	
-
-	<!-- List off permissions -->
-	
-
-	<p>
-		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#cfg.schema">Schema cfg</a>
-    </p>
-	
-
-	<!-- We've gone through the table structure, now lets take a look at user functions -->
-	
-		<hr>
-		<h2>Function:
-			<a href="gnumed-entire_schema.html#cfg.schema">cfg</a>.<a name="cfg.function.create-cfg-item-text-text-text-text-text">create_cfg_item(text, text, text, text, text)</a>
-		</h2>
-<h3>Returns: integer</h3>
-<h3>Language: PLPGSQL</h3>
-        
-        <pre>
-declare
-	_option alias for $1;
-	_val_type alias for $2;
-	_workplace alias for $3;
-	_cookie alias for $4;
-	_owner alias for $5;
-	real_owner text;
-	pk_template integer;
-	pk_item integer;
-begin
-	-- check template
-	select into pk_template pk from cfg.cfg_template where name = _option and type = _val_type;
-	if not FOUND then
-		insert into cfg.cfg_template (name, type) values (_option, _val_type);
-		select into pk_template currval('cfg.cfg_template_pk_seq');
-	end if;
-	if _owner is null then
-		select into real_owner CURRENT_USER;
-	else
-		real_owner := _owner;
-	end if;
-	-- check item
-	if _cookie is NULL then
-		select into pk_item pk from cfg.cfg_item where
-			fk_template = pk_template and
-			owner = real_owner and
-			workplace = _workplace and
-			cookie is null;
-	else
-		select into pk_item pk from cfg.cfg_item where
-			fk_template = pk_template and
-			owner = real_owner and
-			workplace = _workplace and
-			cookie = _cookie;
-	end if;
-	if FOUND then
-		return pk_item;
-	end if;
-	insert into cfg.cfg_item (
-		fk_template, workplace, cookie, owner
-	) values (
-		pk_template,
-		_workplace,
-		_cookie,
-		real_owner
-	);
-	select into pk_item currval('cfg.cfg_item_pk_seq');
-	return pk_item;
-end;</pre>
-	
-		<hr>
-		<h2>Function:
-			<a href="gnumed-entire_schema.html#cfg.schema">cfg</a>.<a name="cfg.function.set-option-text-anyelement-text-text-text">set_option(text, anyelement, text, text, text)</a>
-		</h2>
-<h3>Returns: boolean</h3>
-<h3>Language: PLPGSQL</h3>
-        <p>set option, owner = NULL means CURRENT_USER</p>
-        <pre>
-declare
-	_option alias for $1;
-	_value alias for $2;
-	_workplace alias for $3;
-	_cookie alias for $4;
-	_owner alias for $5;
-	val_type text;
-	pk_item integer;
-	rows integer;
-	cmd text;
-begin
-	-- determine data type
-	if _value is of (text, char, varchar, name) then
-		val_type := 'string';
-	elsif _value is of (smallint, integer, bigint, numeric, boolean) then
-		val_type := 'numeric';
-	elsif _value is of (bytea) then
-		val_type := 'data';
-	elsif _value is of (text[]) then
-		val_type := 'str_array';
-	else
-		raise exception 'cfg.set_option(text, any, text, text, text): invalid type of value';
-	end if;
-	-- create template/item if need be
-	select into pk_item cfg.create_cfg_item(_option, val_type, _workplace, _cookie, _owner);
-	-- set item value
-	cmd := 'select 1 from cfg.cfg_' || val_type || ' where fk_item=' || pk_item || ';';
-	execute cmd;
-	get diagnostics rows = row_count;
-	found := rows <> 0;
-	if FOUND then
-		if val_type = 'str_array' then
-			cmd := 'update cfg.cfg_str_array set value=''{"' || array_to_string(_value, '","') || '"}'' where fk_item=' || pk_item || ';';
-		elsif val_type = 'data' then
-			cmd := 'update cfg.cfg_data set value=''' || encode(_value, 'escape') || ''' where fk_item=' || pk_item || ';';
-		else
-			cmd := 'update cfg.cfg_' || val_type || ' set value=' || quote_literal(_value) || ' where fk_item=' || pk_item || ';';
-		end if;
-		execute cmd;
-		return True;
-	end if;
-	if val_type = 'str_array' then
-		cmd := 'insert into cfg.cfg_str_array(fk_item, value) values (' || pk_item || ', ''{"' || array_to_string(_value, '","') || '"}'');';
-	elsif val_type = 'data' then
-		cmd := 'insert into cfg.cfg_data(fk_item, value) values (' || pk_item || ', ''' || encode(_value, 'escape') || ''');';
-	else
-		cmd := 'insert into cfg.cfg_' || val_type || ' (fk_item, value) values (' || pk_item || ', ' || quote_literal(_value) || ');';
-	end if;
-	execute cmd;
-	return True;
-end;</pre>
-	
-
-<!-- clinclin -->
-
-		
-		<hr>
-		<h1>Schema clin</h1>
-		
-
-		
-		
-        <hr>
-		<h2>Table:
-			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.-enum-allergy-type">_enum_allergy_type</a>
-		</h2>
-        
-
-
-        <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin._enum_allergy_type Structure</caption>
-                <tr>
-                <th>F-Key</th>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Description</th>
-                </tr>
-            
             <tr class="tr0">
 				<td>
                 
                   
                 
+                  
+                  <a href="gnumed-entire_schema.html#clin.table.test-panel">clin.test_panel.pk</a>
+                  
+                
                 </td>
-            	<td>pk</td>
-            	<td>serial</td>
+            	<td>fk_item</td>
+            	<td>integer</td>
                 <td><i>
 				
-					PRIMARY KEY
+					
+
+					
+                       UNIQUE#1
+                    
+				
 					
 
 					
@@ -49260,28 +63499,43 @@ end;</pre>
 				
 				
 				</i>
-				
+				<br><br>Foreign key to clin.test_panel
 				</td>
 			 </tr>
             
             <tr class="tr1">
 				<td>
                 
+                </td>
+            	<td>code_modifier</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
                   
                 
                 </td>
-            	<td>value</td>
-            	<td>text</td>
+            	<td>pk</td>
+            	<td>serial</td>
                 <td><i>
 				
+					PRIMARY KEY
 					
 
 					
-                       UNIQUE
-                    
 				
 
-				NOT NULL
+				
 				
 				</i>
 				
@@ -49292,6 +63546,13 @@ end;</pre>
 
         <!-- Inherits -->
 		
+        <p>Table clin.lnk_code2tst_pnl Inherits
+        
+            
+           <a href="gnumed-entire_schema.html#clin.table.lnk-code2item-root">lnk_code2item_root</a>, 
+        
+        </p>
+		
 
 		
 		
@@ -49299,19 +63560,29 @@ end;</pre>
 
         <!-- Constraint List -->
 		
+        <p> </p>
+		<table width="100%" cellspacing="0" cellpadding="3">
+            <caption>clin.lnk_code2tst_pnl Constraints</caption>
+            <tr>
+            	<th>Name</th>
+            	<th>Constraint</th>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+		</table>
+		
 
         <!-- Foreign Key Discovery -->
 		
-			<p>Tables referencing this one via Foreign Key Constraints:</p>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#clin.table.allergy">clin.allergy</a></li>
-			</ul>
-		
-		
 
     <!-- Indexes -->
     
+       idx_c_lc2tp_fk_item fk_item
+    
 
 	<!-- View Definition -->
 	
@@ -49327,15 +63598,15 @@ end;</pre>
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.allergy">allergy</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.lnk-constraint2vacc-course">lnk_constraint2vacc_course</a>
 		</h2>
         
-         <p>patient allergy details</p>
+         <p>links constraints to courses</p>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.allergy Structure</caption>
+                <caption>clin.lnk_constraint2vacc_course Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -49394,11 +63665,19 @@ end;</pre>
             <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
+                
                 </td>
             	<td>modified_by</td>
             	<td>name</td>
                 <td><i>
 				
+					
+
+					
+				
 
 				NOT NULL
 				DEFAULT "current_user"()
@@ -49410,44 +63689,37 @@ end;</pre>
             <tr class="tr0">
 				<td>
                 
+                  
+                
                 </td>
-            	<td>pk_item</td>
-            	<td>integer</td>
+            	<td>pk</td>
+            	<td>serial</td>
                 <td><i>
 				
+					PRIMARY KEY
+					
 
-				NOT NULL
-				DEFAULT nextval('clin_root_item_pk_item_seq'::regclass)
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>clin_when</td>
-            	<td>timestamp with time zone</td>
-                <td><i>
+					
 				
 
-				NOT NULL
-				DEFAULT now()
+				
+				
 				</i>
 				
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                   
-                  <a href="gnumed-entire_schema.html#clin.table.encounter">clin.encounter.pk</a>
+                  <a href="gnumed-entire_schema.html#clin.table.vaccination-course">clin.vaccination_course.pk</a>
+                  
+                
                   
                 
                 </td>
-            	<td>fk_encounter</td>
+            	<td>fk_vaccination_course</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -49455,6 +63727,12 @@ end;</pre>
 
 					
 				
+					
+
+					
+                       UNIQUE#1
+                    
+				
 
 				NOT NULL
 				
@@ -49463,15 +63741,17 @@ end;</pre>
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                   
-                  <a href="gnumed-entire_schema.html#clin.table.episode">clin.episode.pk</a>
+                  <a href="gnumed-entire_schema.html#clin.table.vaccination-course-constraint">clin.vaccination_course_constraint.pk</a>
+                  
+                
                   
                 
                 </td>
-            	<td>fk_episode</td>
+            	<td>fk_constraint</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -49479,6 +63759,12 @@ end;</pre>
 
 					
 				
+					
+
+					
+                       UNIQUE#1
+                    
+				
 
 				NOT NULL
 				
@@ -49487,56 +63773,91 @@ end;</pre>
 				</td>
 			 </tr>
             
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>narrative</td>
-            	<td>text</td>
-                <td><i>
-				
+        </table>
 
-				
-				
-				</i>
-				<br><br>used as field "reaction"
-				</td>
-			 </tr>
+        <!-- Inherits -->
+		
+        <p>Table clin.lnk_constraint2vacc_course Inherits
+        
             
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>soap_cat</td>
-            	<td>text</td>
-                <td><i>
-				
+           <a href="gnumed-entire_schema.html#audit.table.audit-fields">audit_fields</a>, 
+        
+        </p>
+		
 
-				
-				DEFAULT 'o'::text
-				</i>
-				
-				</td>
-			 </tr>
+		
+		
+		
+
+        <!-- Constraint List -->
+		
+        <p> </p>
+		<table width="100%" cellspacing="0" cellpadding="3">
+            <caption>clin.lnk_constraint2vacc_course Constraints</caption>
+            <tr>
+            	<th>Name</th>
+            	<th>Constraint</th>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+		</table>
+		
+
+        <!-- Foreign Key Discovery -->
+		
+
+    <!-- Indexes -->
+    
+
+	<!-- View Definition -->
+	
+
+	<!-- List off permissions -->
+	
+
+	<p>
+		<a href="gnumed-entire_schema.html#index">Index</a> -
+		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
+    </p>
+	
+        <hr>
+		<h2>Table:
+			
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.lnk-pat2vaccination-course">lnk_pat2vaccination_course</a>
+		</h2>
+        
+         <p>links patients to vaccination courses they are actually on,
+	 this allows for per-patient selection of courses to be
+	 followed, eg. children at different ages may be on different
+	 vaccination courses or some people are on a course due
+	 to a trip abroad while most others are not</p>
+        
+
+
+        <table width="100%" cellspacing="0" cellpadding="3">
+                <caption>clin.lnk_pat2vaccination_course Structure</caption>
+                <tr>
+                <th>F-Key</th>
+                <th>Name</th>
+                <th>Type</th>
+                <th>Description</th>
+                </tr>
             
             <tr class="tr0">
 				<td>
                 
-                  
-                
                 </td>
-            	<td>pk</td>
-            	<td>serial</td>
+            	<td>pk_audit</td>
+            	<td>integer</td>
                 <td><i>
 				
-					PRIMARY KEY
-					
-
-					
-				
 
-				
-				
+				NOT NULL
+				DEFAULT nextval('audit.audit_fields_pk_audit_seq'::regclass)
 				</i>
 				
 				</td>
@@ -49546,15 +63867,15 @@ end;</pre>
 				<td>
                 
                 </td>
-            	<td>substance</td>
-            	<td>text</td>
+            	<td>row_version</td>
+            	<td>integer</td>
                 <td><i>
 				
 
 				NOT NULL
 				
 				</i>
-				<br><br>real-world name of substance the patient reacted to, brand name if drug
+				
 				</td>
 			 </tr>
             
@@ -49562,79 +63883,76 @@ end;</pre>
 				<td>
                 
                 </td>
-            	<td>substance_code</td>
-            	<td>text</td>
+            	<td>modified_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
-				
-				
+				NOT NULL
+				DEFAULT now()
 				</i>
-				<br><br>data source specific opaque product code; must provide a link
-	 to a unique product/substance in the database in use; should follow
-	 the parseable convention of "<source>::<source version>::<identifier>",
-	 e.g. "MIMS::2003-1::190" for Zantac; it is left as an exercise to the
-	 application to know what to do with this information
+				
 				</td>
 			 </tr>
             
             <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
+                
                 </td>
-            	<td>generics</td>
-            	<td>text</td>
+            	<td>modified_by</td>
+            	<td>name</td>
                 <td><i>
 				
+					
 
+					
 				
-				
+
+				NOT NULL
+				DEFAULT "current_user"()
 				</i>
-				<br><br>names of generic compounds if drug; brand names change/disappear, generic names do not
+				
 				</td>
 			 </tr>
             
             <tr class="tr0">
 				<td>
                 
+                  
+                
                 </td>
-            	<td>allergene</td>
-            	<td>text</td>
+            	<td>pk</td>
+            	<td>serial</td>
                 <td><i>
 				
+					PRIMARY KEY
+					
 
-				
-				
-				</i>
-				<br><br>name of allergenic ingredient in substance if known
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>atc_code</td>
-            	<td>text</td>
-                <td><i>
+					
 				
 
 				
 				
 				</i>
-				<br><br>ATC code of allergene or substance if approprate, applicable for penicilline, not so for cat fur
+				
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                   
-                  <a href="gnumed-entire_schema.html#clin.table.-enum-allergy-type">clin._enum_allergy_type.pk</a>
+                  <a href="gnumed-entire_schema.html#clin.table.patient">clin.patient.fk_identity</a>
+                  
+                
                   
                 
                 </td>
-            	<td>fk_type</td>
+            	<td>fk_patient</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -49642,47 +63960,49 @@ end;</pre>
 
 					
 				
+					
+
+					
+                       UNIQUE#1
+                    
+				
 
 				NOT NULL
 				
 				</i>
-				<br><br>allergy/sensitivity
+				
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#clin.table.vaccination-course">clin.vaccination_course.pk</a>
+                  
+                
+                  
+                
                 </td>
-            	<td>generic_specific</td>
-            	<td>boolean</td>
+            	<td>fk_course</td>
+            	<td>integer</td>
                 <td><i>
 				
+					
 
+					
 				
-				DEFAULT false
-				</i>
-				<br><br>only meaningful for *drug*/*generic* reactions:
-	 1) true: applies to one in "generics" forming "substance",
-			  if more than one generic listed in "generics" then
-			  "allergene" *must* contain the generic in question;
-	 2) false: applies to drug class of "substance";
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>definite</td>
-            	<td>boolean</td>
-                <td><i>
+					
+
+					
+                       UNIQUE#1
+                    
 				
 
+				NOT NULL
 				
-				DEFAULT false
 				</i>
-				<br><br>true: definite, false: not definite
+				
 				</td>
 			 </tr>
             
@@ -49690,10 +64010,10 @@ end;</pre>
 
         <!-- Inherits -->
 		
-        <p>Table clin.allergy Inherits
+        <p>Table clin.lnk_pat2vaccination_course Inherits
         
             
-           <a href="gnumed-entire_schema.html#clin.table.clin-root-item">clin_root_item</a>, 
+           <a href="gnumed-entire_schema.html#audit.table.audit-fields">audit_fields</a>, 
         
         </p>
 		
@@ -49706,15 +64026,15 @@ end;</pre>
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>clin.allergy Constraints</caption>
+            <caption>clin.lnk_pat2vaccination_course Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
-				<td>clin_root_item_sane_soap_cat</td>
-                <td>CHECK (((soap_cat IS NULL) OR (lower(soap_cat) = ANY (ARRAY['s'::text, 'o'::text, 'a'::text, 'p'::text, 'u'::text]))))</td>
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
             </tr>
 			
 		</table>
@@ -49725,10 +64045,6 @@ end;</pre>
 
     <!-- Indexes -->
     
-       idx_clin_allergy_fk_encounter fk_encounter
-    
-       idx_clin_allergy_fk_episode fk_episode
-    
 
 	<!-- View Definition -->
 	
@@ -49744,13 +64060,13 @@ end;</pre>
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.allergy-state">allergy_state</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.lnk-substance2episode">lnk_substance2episode</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.allergy_state Structure</caption>
+                <caption>clin.lnk_substance2episode Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -49848,53 +64164,24 @@ end;</pre>
             <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#clin.table.episode">clin.episode.pk</a>
+                  
+                
                 </td>
-            	<td>has_allergy</td>
+            	<td>fk_episode</td>
             	<td>integer</td>
                 <td><i>
 				
+					
 
-				
-				
-				</i>
-				<br><br>patient allergenic state:
-	 - null: unknown, not asked, no data available
-	 - -1: unknown, asked, no data obtained
-	 - 0:  known, asked, has no known allergies
-	 - 1:  known, asked, does have allergies
-	
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>comment</td>
-            	<td>text</td>
-                <td><i>
+					
 				
 
 				
 				
 				</i>
-				<br><br>A comment on the state, such as "patient says no allergies but I think he is holding back some".
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>last_confirmed</td>
-            	<td>timestamp with time zone</td>
-                <td><i>
-				
-
-				
 				
-				</i>
-				<br><br>When was the state of allergies last confirmed. Must be not NULL if has_allergy is not NULL.
 				</td>
 			 </tr>
             
@@ -49902,11 +64189,11 @@ end;</pre>
 				<td>
                 
                   
-                  <a href="gnumed-entire_schema.html#clin.table.encounter">clin.encounter.pk</a>
+                  <a href="gnumed-entire_schema.html#clin.table.substance-intake">clin.substance_intake.pk</a>
                   
                 
                 </td>
-            	<td>fk_encounter</td>
+            	<td>fk_substance</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -49915,7 +64202,7 @@ end;</pre>
 					
 				
 
-				NOT NULL
+				
 				
 				</i>
 				
@@ -49926,7 +64213,7 @@ end;</pre>
 
         <!-- Inherits -->
 		
-        <p>Table clin.allergy_state Inherits
+        <p>Table clin.lnk_substance2episode Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-fields">audit_fields</a>, 
@@ -49942,20 +64229,15 @@ end;</pre>
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>clin.allergy_state Constraints</caption>
+            <caption>clin.lnk_substance2episode Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
-				<td>allergy_state_check</td>
-                <td>CHECK (((has_allergy IS NULL) OR ((has_allergy IS NOT NULL) AND (last_confirmed IS NOT NULL))))</td>
-            </tr>
-			
-            <tr class="tr1">
-				<td>allergy_state_has_allergy_check</td>
-                <td>CHECK ((has_allergy = ANY (ARRAY[NULL::integer, 0, 1])))</td>
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
             </tr>
 			
 		</table>
@@ -49981,15 +64263,15 @@ end;</pre>
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.clin-aux-note">clin_aux_note</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.lnk-tst2norm">lnk_tst2norm</a>
 		</h2>
         
-         <p>Other tables link to this if they need more free text fields.</p>
+         <p>links test result evaluation norms to tests</p>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.clin_aux_note Structure</caption>
+                <caption>clin.lnk_tst2norm Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -50029,89 +64311,17 @@ end;</pre>
 				</td>
 			 </tr>
             
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>modified_when</td>
-            	<td>timestamp with time zone</td>
-                <td><i>
-				
-
-				NOT NULL
-				DEFAULT now()
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>modified_by</td>
-            	<td>name</td>
-                <td><i>
-				
-
-				NOT NULL
-				DEFAULT "current_user"()
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>pk_item</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				NOT NULL
-				DEFAULT nextval('clin_root_item_pk_item_seq'::regclass)
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>clin_when</td>
-            	<td>timestamp with time zone</td>
-                <td><i>
-				
-
-				NOT NULL
-				DEFAULT now()
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                  
-                  <a href="gnumed-entire_schema.html#clin.table.encounter">clin.encounter.pk</a>
-                  
+            <tr class="tr0">
+				<td>
                 
                 </td>
-            	<td>fk_encounter</td>
-            	<td>integer</td>
+            	<td>modified_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
-					
-
-					
-				
 
 				NOT NULL
-				
+				DEFAULT now()
 				</i>
 				
 				</td>
@@ -50121,12 +64331,12 @@ end;</pre>
 				<td>
                 
                   
-                  <a href="gnumed-entire_schema.html#clin.table.episode">clin.episode.pk</a>
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
                   
                 
                 </td>
-            	<td>fk_episode</td>
-            	<td>integer</td>
+            	<td>modified_by</td>
+            	<td>name</td>
                 <td><i>
 				
 					
@@ -50135,7 +64345,7 @@ end;</pre>
 				
 
 				NOT NULL
-				
+				DEFAULT "current_user"()
 				</i>
 				
 				</td>
@@ -50144,11 +64354,18 @@ end;</pre>
             <tr class="tr0">
 				<td>
                 
+                  
+                
                 </td>
-            	<td>narrative</td>
-            	<td>text</td>
+            	<td>id</td>
+            	<td>serial</td>
                 <td><i>
 				
+					PRIMARY KEY
+					
+
+					
+				
 
 				
 				
@@ -50160,16 +64377,32 @@ end;</pre>
             <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#clin.table.test-type">clin.test_type.pk</a>
+                  
+                
+                  
+                
                 </td>
-            	<td>soap_cat</td>
-            	<td>text</td>
+            	<td>id_test</td>
+            	<td>integer</td>
                 <td><i>
 				
+					
 
+					
 				
+					
+
+					
+                       UNIQUE#1
+                    
 				
-				</i>
+
+				NOT NULL
 				
+				</i>
+				<br><br>which test does the linked norm apply to
 				</td>
 			 </tr>
             
@@ -50179,20 +64412,21 @@ end;</pre>
                   
                 
                 </td>
-            	<td>pk</td>
-            	<td>serial</td>
+            	<td>id_norm</td>
+            	<td>integer</td>
                 <td><i>
 				
-					PRIMARY KEY
 					
 
 					
+                       UNIQUE#1
+                    
 				
 
-				
+				NOT NULL
 				
 				</i>
-				
+				<br><br>the norm to apply to the linked test
 				</td>
 			 </tr>
             
@@ -50200,10 +64434,10 @@ end;</pre>
 
         <!-- Inherits -->
 		
-        <p>Table clin.clin_aux_note Inherits
+        <p>Table clin.lnk_tst2norm Inherits
         
             
-           <a href="gnumed-entire_schema.html#clin.table.clin-root-item">clin_root_item</a>, 
+           <a href="gnumed-entire_schema.html#audit.table.audit-fields">audit_fields</a>, 
         
         </p>
 		
@@ -50216,15 +64450,15 @@ end;</pre>
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>clin.clin_aux_note Constraints</caption>
+            <caption>clin.lnk_tst2norm Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
-				<td>clin_root_item_sane_soap_cat</td>
-                <td>CHECK (((soap_cat IS NULL) OR (lower(soap_cat) = ANY (ARRAY['s'::text, 'o'::text, 'a'::text, 'p'::text, 'u'::text]))))</td>
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
             </tr>
 			
 		</table>
@@ -50235,10 +64469,6 @@ end;</pre>
 
     <!-- Indexes -->
     
-       idx_clin_clin_aux_note_fk_encounter fk_encounter
-    
-       idx_clin_clin_aux_note_fk_episode fk_episode
-    
 
 	<!-- View Definition -->
 	
@@ -50254,17 +64484,15 @@ end;</pre>
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.clin-diag">clin_diag</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.lnk-type2item">lnk_type2item</a>
 		</h2>
         
-         <p>stores additional detail on those clin.clin_narrative
-	 rows where soap_cat=a that are true diagnoses,
-	 true diagnoses DO have a code from one of the coding systems</p>
+         <p>allow to link many-to-many between clin.clin_root_item and clin.clin_item_type</p>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.clin_diag Structure</caption>
+                <caption>clin.lnk_type2item Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -50323,11 +64551,19 @@ end;</pre>
             <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
+                
                 </td>
             	<td>modified_by</td>
             	<td>name</td>
                 <td><i>
 				
+					
+
+					
+				
 
 				NOT NULL
 				DEFAULT "current_user"()
@@ -50363,13 +64599,13 @@ end;</pre>
 				<td>
                 
                   
-                  <a href="gnumed-entire_schema.html#clin.table.clin-narrative">clin.clin_narrative.pk</a>
+                  <a href="gnumed-entire_schema.html#clin.table.clin-item-type">clin.clin_item_type.pk</a>
                   
                 
                   
                 
                 </td>
-            	<td>fk_narrative</td>
+            	<td>fk_type</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -50380,7 +64616,7 @@ end;</pre>
 					
 
 					
-                       UNIQUE
+                       UNIQUE#1
                     
 				
 
@@ -50394,87 +64630,29 @@ end;</pre>
             <tr class="tr0">
 				<td>
                 
-                </td>
-            	<td>laterality</td>
-            	<td>character(1)</td>
-                <td><i>
-				
-
-				
-				DEFAULT NULL::bpchar
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>is_chronic</td>
-            	<td>boolean</td>
-                <td><i>
-				
-
-				NOT NULL
-				DEFAULT false
-				</i>
-				<br><br>whether this diagnosis is chronic, eg. no complete
-	 cure is to be expected, regardless of whether it is
-	 *active* right now (think of active/non-active phases
-	 of Multiple Sclerosis which is sure chronic)
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
+                  
                 
                 </td>
-            	<td>is_active</td>
-            	<td>boolean</td>
+            	<td>fk_item</td>
+            	<td>integer</td>
                 <td><i>
 				
+					
 
-				NOT NULL
-				DEFAULT true
-				</i>
-				<br><br>whether diagnosis is currently active or dormant
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>is_definite</td>
-            	<td>boolean</td>
-                <td><i>
+					
+                       UNIQUE#1
+                    
 				
 
 				NOT NULL
-				DEFAULT false
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>clinically_relevant</td>
-            	<td>boolean</td>
-                <td><i>
 				
-
-				NOT NULL
-				DEFAULT true
 				</i>
-				<br><br>whether this diagnosis is considered clinically
-	 relevant, eg. significant;
-	 currently active diagnoses are considered to
-	 always be relevant, while inactive ones may
-	 or may not be
+				<br><br>the item this type is linked to,
+	 since PostgreSQL apparently cannot reference a value
+	 inserted from a child table (?) we must simulate
+	 referential integrity checks with a custom trigger,
+	 this, however, does not deal with update/delete
+	 cascading :-(
 				</td>
 			 </tr>
             
@@ -50482,7 +64660,7 @@ end;</pre>
 
         <!-- Inherits -->
 		
-        <p>Table clin.clin_diag Inherits
+        <p>Table clin.lnk_type2item Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-fields">audit_fields</a>, 
@@ -50498,20 +64676,15 @@ end;</pre>
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>clin.clin_diag Constraints</caption>
+            <caption>clin.lnk_type2item Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
-				<td>clin_diag_laterality_check</td>
-                <td>CHECK (((laterality = ANY (ARRAY['l'::bpchar, 'r'::bpchar, 'b'::bpchar, '?'::bpchar])) OR (laterality IS NULL)))</td>
-            </tr>
-			
-            <tr class="tr1">
-				<td>if_active_then_relevant</td>
-                <td>CHECK (((is_active = false) OR ((is_active = true) AND (clinically_relevant = true))))</td>
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
             </tr>
 			
 		</table>
@@ -50537,15 +64710,17 @@ end;</pre>
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.clin-item-type">clin_item_type</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.lnk-vaccination-course2schedule">lnk_vaccination_course2schedule</a>
 		</h2>
         
-         <p>stores arbitrary types for tagging clinical items</p>
+         <p>this table links vaccination courses for a single epitope
+	 into schedules defined and recommended by a vaccination
+	 council or similar entity</p>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.clin_item_type Structure</caption>
+                <caption>clin.lnk_vaccination_course2schedule Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -50604,11 +64779,19 @@ end;</pre>
             <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
+                
                 </td>
             	<td>modified_by</td>
             	<td>name</td>
                 <td><i>
 				
+					
+
+					
+				
 
 				NOT NULL
 				DEFAULT "current_user"()
@@ -50644,23 +64827,31 @@ end;</pre>
 				<td>
                 
                   
+                  <a href="gnumed-entire_schema.html#clin.table.vaccination-course">clin.vaccination_course.pk</a>
+                  
+                
+                  
                 
                 </td>
-            	<td>type</td>
-            	<td>text</td>
+            	<td>fk_course</td>
+            	<td>integer</td>
                 <td><i>
 				
 					
 
 					
+				
+					
+
+					
                        UNIQUE
                     
 				
 
 				NOT NULL
-				DEFAULT 'history'::text
+				
 				</i>
-				<br><br>the full name of the item type such as "family history"
+				
 				</td>
 			 </tr>
             
@@ -50668,23 +64859,23 @@ end;</pre>
 				<td>
                 
                   
+                  <a href="gnumed-entire_schema.html#clin.table.vaccination-schedule">clin.vaccination_schedule.pk</a>
+                  
                 
                 </td>
-            	<td>code</td>
-            	<td>text</td>
+            	<td>fk_schedule</td>
+            	<td>integer</td>
                 <td><i>
 				
 					
 
 					
-                       UNIQUE
-                    
 				
 
 				NOT NULL
-				DEFAULT 'Hx'::text
+				
 				</i>
-				<br><br>shorthand for the type, eg "FHx"
+				
 				</td>
 			 </tr>
             
@@ -50692,7 +64883,7 @@ end;</pre>
 
         <!-- Inherits -->
 		
-        <p>Table clin.clin_item_type Inherits
+        <p>Table clin.lnk_vaccination_course2schedule Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-fields">audit_fields</a>, 
@@ -50706,16 +64897,24 @@ end;</pre>
 
         <!-- Constraint List -->
 		
+        <p> </p>
+		<table width="100%" cellspacing="0" cellpadding="3">
+            <caption>clin.lnk_vaccination_course2schedule Constraints</caption>
+            <tr>
+            	<th>Name</th>
+            	<th>Constraint</th>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+		</table>
+		
 
         <!-- Foreign Key Discovery -->
 		
-			<p>Tables referencing this one via Foreign Key Constraints:</p>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#clin.table.lnk-type2item">clin.lnk_type2item</a></li>
-			</ul>
-		
-		
 
     <!-- Indexes -->
     
@@ -50734,18 +64933,15 @@ end;</pre>
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.clin-narrative">clin_narrative</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.lnk-vaccine2inds">lnk_vaccine2inds</a>
 		</h2>
         
-         <p>Used to store clinical free text *not* associated
-	 with any other table. Used to implement a simple
-	 SOAP structure. Also other tags can be associated
-	 via link tables.</p>
+         <p>links vaccines to their indications</p>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.clin_narrative Structure</caption>
+                <caption>clin.lnk_vaccine2inds Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -50804,69 +65000,44 @@ end;</pre>
             <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
+                
                 </td>
             	<td>modified_by</td>
             	<td>name</td>
                 <td><i>
 				
+					
 
-				NOT NULL
-				DEFAULT "current_user"()
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>pk_item</td>
-            	<td>integer</td>
-                <td><i>
+					
 				
 
 				NOT NULL
-				DEFAULT nextval('clin_root_item_pk_item_seq'::regclass)
+				DEFAULT "current_user"()
 				</i>
 				
 				</td>
 			 </tr>
             
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>clin_when</td>
-            	<td>timestamp with time zone</td>
-                <td><i>
-				
-
-				NOT NULL
-				DEFAULT now()
-				</i>
-				<br><br>when did the item reach clinical reality
-				</td>
-			 </tr>
-            
             <tr class="tr0">
 				<td>
                 
                   
-                  <a href="gnumed-entire_schema.html#clin.table.encounter">clin.encounter.pk</a>
-                  
                 
                 </td>
-            	<td>fk_encounter</td>
-            	<td>integer</td>
+            	<td>id</td>
+            	<td>serial</td>
                 <td><i>
 				
+					PRIMARY KEY
 					
 
 					
 				
 
-				NOT NULL
+				
 				
 				</i>
 				
@@ -50877,11 +65048,13 @@ end;</pre>
 				<td>
                 
                   
-                  <a href="gnumed-entire_schema.html#clin.table.episode">clin.episode.pk</a>
+                  <a href="gnumed-entire_schema.html#clin.table.vaccine">clin.vaccine.pk</a>
+                  
+                
                   
                 
                 </td>
-            	<td>fk_episode</td>
+            	<td>fk_vaccine</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -50889,40 +65062,14 @@ end;</pre>
 
 					
 				
+					
 
-				NOT NULL
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>narrative</td>
-            	<td>text</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>soap_cat</td>
-            	<td>text</td>
-                <td><i>
+					
+                       UNIQUE#1
+                    
 				
 
-				
+				NOT NULL
 				
 				</i>
 				
@@ -50933,19 +65080,28 @@ end;</pre>
 				<td>
                 
                   
+                  <a href="gnumed-entire_schema.html#clin.table.vacc-indication">clin.vacc_indication.id</a>
+                  
+                
+                  
                 
                 </td>
-            	<td>pk</td>
-            	<td>serial</td>
+            	<td>fk_indication</td>
+            	<td>integer</td>
                 <td><i>
 				
-					PRIMARY KEY
 					
 
 					
 				
+					
 
+					
+                       UNIQUE#1
+                    
 				
+
+				NOT NULL
 				
 				</i>
 				
@@ -50956,10 +65112,10 @@ end;</pre>
 
         <!-- Inherits -->
 		
-        <p>Table clin.clin_narrative Inherits
+        <p>Table clin.lnk_vaccine2inds Inherits
         
             
-           <a href="gnumed-entire_schema.html#clin.table.clin-root-item">clin_root_item</a>, 
+           <a href="gnumed-entire_schema.html#audit.table.audit-fields">audit_fields</a>, 
         
         </p>
 		
@@ -50972,20 +65128,15 @@ end;</pre>
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>clin.clin_narrative Constraints</caption>
+            <caption>clin.lnk_vaccine2inds Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
-				<td>clin_root_item_sane_soap_cat</td>
-                <td>CHECK (((soap_cat IS NULL) OR (lower(soap_cat) = ANY (ARRAY['s'::text, 'o'::text, 'a'::text, 'p'::text, 'u'::text]))))</td>
-            </tr>
-			
-            <tr class="tr1">
-				<td>narrative_neither_null_nor_empty</td>
-                <td>CHECK ((btrim(COALESCE(narrative, ''::text)) <> ''::text))</td>
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
             </tr>
 			
 		</table>
@@ -50993,27 +65144,12 @@ end;</pre>
 
         <!-- Foreign Key Discovery -->
 		
-			<p>Tables referencing this one via Foreign Key Constraints:</p>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#clin.table.clin-diag">clin.clin_diag</a></li>
-			</ul>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#clin.table.lnk-code2narrative">clin.lnk_code2narrative</a></li>
-			</ul>
-		
-		
 
     <!-- Indexes -->
     
-       idx_clin_clin_narrative_fk_encounter fk_encounter
-    
-       idx_clin_clin_narrative_fk_episode fk_episode
-    
-       idx_narrative_modified_by modified_by
+       idx_clin_lnk_vaccine2inds_fk_ind fk_indication
     
-       idx_narrative_soap_cat soap_cat) WHERE (lower(soap_cat) = ANY (ARRAY['s'::text, 'o'::text, 'a'::text, 'p'::text, 'u'::text])
+       idx_clin_lnk_vaccine2inds_fk_vacc fk_vaccine
     
 
 	<!-- View Definition -->
@@ -51030,20 +65166,19 @@ end;</pre>
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.clin-root-item">clin_root_item</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.meta-test-type">meta_test_type</a>
 		</h2>
         
-         <p>ancestor table for clinical items of any kind, basic
-	 unit of clinical information, do *not* store data in
-	 here directly, use child tables,
-	 contains all the clinical narrative aggregated for full
-	 text search, ancestor for all tables that want to store
-	 clinical free text</p>
+         <p>this table merges test types from various test orgs
+	 which are intended to measure the same value but have
+	 differing names into one logical test type,
+	 this is not intended to be used for aggregating
+	 semantically different test types into "profiles"</p>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.clin_root_item Structure</caption>
+                <caption>clin.meta_test_type Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -51054,74 +65189,10 @@ end;</pre>
             <tr class="tr0">
 				<td>
                 
-                </td>
-            	<td>pk_audit</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				NOT NULL
-				DEFAULT nextval('audit.audit_fields_pk_audit_seq'::regclass)
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>row_version</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				NOT NULL
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>modified_when</td>
-            	<td>timestamp with time zone</td>
-                <td><i>
-				
-
-				NOT NULL
-				DEFAULT now()
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>modified_by</td>
-            	<td>name</td>
-                <td><i>
-				
-
-				NOT NULL
-				DEFAULT "current_user"()
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
                   
                 
                 </td>
-            	<td>pk_item</td>
+            	<td>pk</td>
             	<td>serial</td>
                 <td><i>
 				
@@ -51134,83 +65205,63 @@ end;</pre>
 				
 				
 				</i>
-				<br><br>the primary key, not named "id" or "pk" as usual since child
-	 tables will have "id"/"pk"-named primary keys already and
-	 we would get duplicate columns while inheriting from this
-	 table
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>clin_when</td>
-            	<td>timestamp with time zone</td>
-                <td><i>
 				
-
-				NOT NULL
-				DEFAULT now()
-				</i>
-				<br><br>when this clinical item became known, can be different from
-	 when it was entered into the system (= audit.audit_fields.modified_when)
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                   
-                  <a href="gnumed-entire_schema.html#clin.table.encounter">clin.encounter.pk</a>
-                  
                 
                 </td>
-            	<td>fk_encounter</td>
-            	<td>integer</td>
+            	<td>abbrev</td>
+            	<td>text</td>
                 <td><i>
 				
 					
 
 					
+                       UNIQUE#1
+                    
 				
 
 				NOT NULL
 				
 				</i>
-				<br><br>the encounter this item belongs to
+				
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
-                
-                  
-                  <a href="gnumed-entire_schema.html#clin.table.episode">clin.episode.pk</a>
+                
                   
                 
                 </td>
-            	<td>fk_episode</td>
-            	<td>integer</td>
+            	<td>name</td>
+            	<td>text</td>
                 <td><i>
 				
 					
 
 					
+                       UNIQUE#1
+                    
 				
 
 				NOT NULL
 				
 				</i>
-				<br><br>the episode this item belongs to
+				
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
-            	<td>narrative</td>
+            	<td>loinc</td>
             	<td>text</td>
                 <td><i>
 				
@@ -51218,15 +65269,15 @@ end;</pre>
 				
 				
 				</i>
-				<br><br>each clinical item by default inherits a free text field for clinical narrative
+				
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>soap_cat</td>
+            	<td>comment</td>
             	<td>text</td>
                 <td><i>
 				
@@ -51234,8 +65285,7 @@ end;</pre>
 				
 				
 				</i>
-				<br><br>each clinical item must be either one of the S, O, A, P, U
-	 categories or NULL to indicate a non-clinical item, U meaning Unspecified-but-clinical
+				
 				</td>
 			 </tr>
             
@@ -51243,13 +65293,6 @@ end;</pre>
 
         <!-- Inherits -->
 		
-        <p>Table clin.clin_root_item Inherits
-        
-            
-           <a href="gnumed-entire_schema.html#audit.table.audit-fields">audit_fields</a>, 
-        
-        </p>
-		
 
 		
 		
@@ -51257,31 +65300,19 @@ end;</pre>
 
         <!-- Constraint List -->
 		
-        <p> </p>
-		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>clin.clin_root_item Constraints</caption>
-            <tr>
-            	<th>Name</th>
-            	<th>Constraint</th>
-            </tr>
-			
-            <tr class="tr0">
-				<td>clin_root_item_sane_soap_cat</td>
-                <td>CHECK (((soap_cat IS NULL) OR (lower(soap_cat) = ANY (ARRAY['s'::text, 'o'::text, 'a'::text, 'p'::text, 'u'::text]))))</td>
-            </tr>
-			
-		</table>
-		
 
         <!-- Foreign Key Discovery -->
 		
+			<p>Tables referencing this one via Foreign Key Constraints:</p>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.test-type">clin.test_type</a></li>
+			</ul>
+		
+		
 
     <!-- Indexes -->
     
-       idx_cri_encounter fk_encounter
-    
-       idx_cri_episode fk_episode
-    
 
 	<!-- View Definition -->
 	
@@ -51297,15 +65328,15 @@ end;</pre>
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.encounter">encounter</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.patient">patient</a>
 		</h2>
         
-         <p>a clinical encounter between a person and the health care system</p>
+         <p>A table to hold unique-per-identity *clinical* items, such as Expected Due Date.</p>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.encounter Structure</caption>
+                <caption>clin.patient Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -51364,11 +65395,19 @@ end;</pre>
             <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
+                
                 </td>
             	<td>modified_by</td>
             	<td>name</td>
                 <td><i>
 				
+					
+
+					
+				
 
 				NOT NULL
 				DEFAULT "current_user"()
@@ -51404,61 +65443,21 @@ end;</pre>
 				<td>
                 
                   
-                  <a href="gnumed-entire_schema.html#clin.table.patient">clin.patient.fk_identity</a>
-                  
-                
-                </td>
-            	<td>fk_patient</td>
-            	<td>integer</td>
-                <td><i>
-				
-					
-
-					
-				
-
-				NOT NULL
-				
-				</i>
-				<br><br>PK of subject of care, should be PUPIC, actually
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
                 
                   
-                  <a href="gnumed-entire_schema.html#clin.table.encounter-type">clin.encounter_type.pk</a>
+                  <a href="gnumed-entire_schema.html#dem.table.identity">dem.identity.pk</a>
                   
                 
                 </td>
-            	<td>fk_type</td>
+            	<td>fk_identity</td>
             	<td>integer</td>
                 <td><i>
 				
 					
 
 					
-				
-
-				NOT NULL
-				DEFAULT 1
-				</i>
-				<br><br>PK of type of this encounter
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                  
-                  <a href="gnumed-entire_schema.html#dem.table.org-unit">dem.org_unit.pk</a>
-                  
-                
-                </td>
-            	<td>fk_location</td>
-            	<td>integer</td>
-                <td><i>
+                       UNIQUE
+                    
 				
 					
 
@@ -51468,42 +65467,7 @@ end;</pre>
 				NOT NULL
 				
 				</i>
-				<br><br>PK of location *of care*, e.g. where the provider is at
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>source_time_zone</td>
-            	<td>interval</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				<br><br>time zone of location, used to approximate source time
-	 zone for all timestamps in this encounter
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>reason_for_encounter</td>
-            	<td>text</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				<br><br>the RFE for the encounter as related by either
-	 the patient or the provider (say, in a chart
-	 review)
+				<br><br>the dem.identity.pk of this patient
 				</td>
 			 </tr>
             
@@ -51511,48 +65475,13 @@ end;</pre>
 				<td>
                 
                 </td>
-            	<td>assessment_of_encounter</td>
-            	<td>text</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				<br><br>the Assessment of Encounter (eg consultation summary)
-	 as determined by the provider, may simply be a
-	 concatenation of soAp narrative, this assessment
-	 should go across all problems
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>started</td>
-            	<td>timestamp with time zone</td>
+            	<td>edc</td>
+            	<td>date</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT now()
-				</i>
 				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>last_affirmed</td>
-            	<td>timestamp with time zone</td>
-                <td><i>
 				
-
-				NOT NULL
-				DEFAULT now()
 				</i>
 				
 				</td>
@@ -51562,7 +65491,7 @@ end;</pre>
 
         <!-- Inherits -->
 		
-        <p>Table clin.encounter Inherits
+        <p>Table clin.patient Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-fields">audit_fields</a>, 
@@ -51578,25 +65507,20 @@ end;</pre>
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>clin.encounter Constraints</caption>
+            <caption>clin.patient Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
-				<td>clin_enc_sane_duration</td>
-                <td>CHECK ((last_affirmed >= started))</td>
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
             </tr>
 			
             <tr class="tr1">
-				<td>encounter_assessment_of_encounter_check</td>
-                <td>CHECK ((btrim(COALESCE(assessment_of_encounter, 'xxxDEFAULTxxx'::text)) <> ''::text))</td>
-            </tr>
-			
-            <tr class="tr0">
-				<td>encounter_reason_for_encounter_check</td>
-                <td>CHECK ((btrim(COALESCE(reason_for_encounter, 'xxxDEFAULTxxx'::text)) <> ''::text))</td>
+				<td>clin_patient_sane_edc</td>
+                <td>CHECK (((edc IS NULL) OR ((clin.get_dod(fk_identity) IS NULL) AND ((clin.get_dob(fk_identity) IS NULL) OR (edc > (clin.get_dob(fk_identity) + '5 years'::interval))))))</td>
             </tr>
 			
 		</table>
@@ -51607,107 +65531,25 @@ end;</pre>
 			<p>Tables referencing this one via Foreign Key Constraints:</p>
 		
 			<ul>
-				<li><a href="gnumed-entire_schema.html#au.table.referral">au.referral</a></li>
-			</ul>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#bill.table.bill-item">bill.bill_item</a></li>
-			</ul>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#blobs.table.doc-med">blobs.doc_med</a></li>
-			</ul>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#clin.table.allergy">clin.allergy</a></li>
-			</ul>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#clin.table.allergy-state">clin.allergy_state</a></li>
-			</ul>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#clin.table.clin-aux-note">clin.clin_aux_note</a></li>
-			</ul>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#clin.table.clin-narrative">clin.clin_narrative</a></li>
-			</ul>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#clin.table.clin-root-item">clin.clin_root_item</a></li>
-			</ul>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#clin.table.episode">clin.episode</a></li>
-			</ul>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#clin.table.external-care">clin.external_care</a></li>
-			</ul>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#clin.table.family-history">clin.family_history</a></li>
-			</ul>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#clin.table.form-instances">clin.form_instances</a></li>
-			</ul>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#clin.table.health-issue">clin.health_issue</a></li>
-			</ul>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#clin.table.hospital-stay">clin.hospital_stay</a></li>
-			</ul>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#clin.table.lab-request">clin.lab_request</a></li>
-			</ul>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#clin.table.lnk-code2aoe">clin.lnk_code2aoe</a></li>
-			</ul>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#clin.table.lnk-code2rfe">clin.lnk_code2rfe</a></li>
-			</ul>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#clin.table.procedure">clin.procedure</a></li>
-			</ul>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#clin.table.substance-intake">clin.substance_intake</a></li>
+				<li><a href="gnumed-entire_schema.html#clin.table.encounter">clin.encounter</a></li>
 			</ul>
 		
 			<ul>
-				<li><a href="gnumed-entire_schema.html#clin.table.suppressed-hint">clin.suppressed_hint</a></li>
+				<li><a href="gnumed-entire_schema.html#clin.table.export-item">clin.export_item</a></li>
 			</ul>
 		
 			<ul>
-				<li><a href="gnumed-entire_schema.html#clin.table.test-result">clin.test_result</a></li>
+				<li><a href="gnumed-entire_schema.html#clin.table.incoming-data-unmatched">clin.incoming_data_unmatched</a></li>
 			</ul>
 		
 			<ul>
-				<li><a href="gnumed-entire_schema.html#clin.table.vaccination">clin.vaccination</a></li>
+				<li><a href="gnumed-entire_schema.html#clin.table.lnk-pat2vaccination-course">clin.lnk_pat2vaccination_course</a></li>
 			</ul>
 		
 		
 
     <!-- Indexes -->
     
-       idx_clin_encounter_fk_location fk_location
-    
-       idx_encounter_affirmed last_affirmed
-    
-       idx_encounter_modified_by modified_by
-    
-       idx_encounter_started started
-    
-       idx_pat_per_encounter fk_patient
-    
 
 	<!-- View Definition -->
 	
@@ -51723,15 +65565,16 @@ end;</pre>
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.encounter-type">encounter_type</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.procedure">procedure</a>
 		</h2>
         
-         <p>these are the types of encounter</p>
+         <p>This table holds procedure/operations performed on the patient
+ both in hospital or in community care.</p>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.encounter_type Structure</caption>
+                <caption>clin.procedure Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -51742,21 +65585,14 @@ end;</pre>
             <tr class="tr0">
 				<td>
                 
-                  
-                
                 </td>
-            	<td>pk</td>
-            	<td>serial</td>
+            	<td>pk_audit</td>
+            	<td>integer</td>
                 <td><i>
 				
-					PRIMARY KEY
-					
-
-					
-				
 
-				
-				
+				NOT NULL
+				DEFAULT nextval('audit.audit_fields_pk_audit_seq'::regclass)
 				</i>
 				
 				</td>
@@ -51765,19 +65601,11 @@ end;</pre>
             <tr class="tr1">
 				<td>
                 
-                  
-                
                 </td>
-            	<td>description</td>
-            	<td>text</td>
+            	<td>row_version</td>
+            	<td>integer</td>
                 <td><i>
 				
-					
-
-					
-                       UNIQUE
-                    
-				
 
 				NOT NULL
 				
@@ -51786,80 +65614,17 @@ end;</pre>
 				</td>
 			 </tr>
             
-        </table>
-
-        <!-- Inherits -->
-		
-
-		
-		
-		
-
-        <!-- Constraint List -->
-		
-
-        <!-- Foreign Key Discovery -->
-		
-			<p>Tables referencing this one via Foreign Key Constraints:</p>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#bill.table.lnk-enc-type2billable">bill.lnk_enc_type2billable</a></li>
-			</ul>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#clin.table.encounter">clin.encounter</a></li>
-			</ul>
-		
-		
-
-    <!-- Indexes -->
-    
-
-	<!-- View Definition -->
-	
-
-	<!-- List off permissions -->
-	
-
-	<p>
-		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
-    </p>
-	
-        <hr>
-		<h2>Table:
-			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.episode">episode</a>
-		</h2>
-        
-         <p>Clinical episodes such as "Otitis media",
-	 "traffic accident 7/99", "Hepatitis B".
-	 This covers a range of time in which
-	 activity of illness was noted for the
-	 problem episode.description.</p>
-        
-
-
-        <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.episode Structure</caption>
-                <tr>
-                <th>F-Key</th>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Description</th>
-                </tr>
-            
             <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>pk_audit</td>
-            	<td>integer</td>
+            	<td>modified_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
 				NOT NULL
-				DEFAULT nextval('audit.audit_fields_pk_audit_seq'::regclass)
+				DEFAULT now()
 				</i>
 				
 				</td>
@@ -51868,14 +65633,22 @@ end;</pre>
             <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
+                
                 </td>
-            	<td>row_version</td>
-            	<td>integer</td>
+            	<td>modified_by</td>
+            	<td>name</td>
                 <td><i>
 				
+					
+
+					
+				
 
 				NOT NULL
-				
+				DEFAULT "current_user"()
 				</i>
 				
 				</td>
@@ -51885,13 +65658,13 @@ end;</pre>
 				<td>
                 
                 </td>
-            	<td>modified_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>pk_item</td>
+            	<td>integer</td>
                 <td><i>
 				
 
 				NOT NULL
-				DEFAULT now()
+				DEFAULT nextval('clin_root_item_pk_item_seq'::regclass)
 				</i>
 				
 				</td>
@@ -51901,13 +65674,13 @@ end;</pre>
 				<td>
                 
                 </td>
-            	<td>modified_by</td>
-            	<td>name</td>
+            	<td>clin_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
 				NOT NULL
-				DEFAULT "current_user"()
+				DEFAULT now()
 				</i>
 				
 				</td>
@@ -51917,19 +65690,20 @@ end;</pre>
 				<td>
                 
                   
+                  <a href="gnumed-entire_schema.html#clin.table.encounter">clin.encounter.pk</a>
+                  
                 
                 </td>
-            	<td>pk</td>
-            	<td>serial</td>
+            	<td>fk_encounter</td>
+            	<td>integer</td>
                 <td><i>
 				
-					PRIMARY KEY
 					
 
 					
 				
 
-				
+				NOT NULL
 				
 				</i>
 				
@@ -51940,11 +65714,11 @@ end;</pre>
 				<td>
                 
                   
-                  <a href="gnumed-entire_schema.html#clin.table.health-issue">clin.health_issue.pk</a>
+                  <a href="gnumed-entire_schema.html#clin.table.episode">clin.episode.pk</a>
                   
                 
                 </td>
-            	<td>fk_health_issue</td>
+            	<td>fk_episode</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -51953,10 +65727,10 @@ end;</pre>
 					
 				
 
-				
+				NOT NULL
 				
 				</i>
-				<br><br>health issue this episode belongs to
+				
 				</td>
 			 </tr>
             
@@ -51964,15 +65738,15 @@ end;</pre>
 				<td>
                 
                 </td>
-            	<td>description</td>
+            	<td>narrative</td>
             	<td>text</td>
                 <td><i>
 				
 
-				NOT NULL
+				
 				
 				</i>
-				<br><br>description/name of this episode
+				<br><br>Which procedure/operation was performed.
 				</td>
 			 </tr>
             
@@ -51980,17 +65754,15 @@ end;</pre>
 				<td>
                 
                 </td>
-            	<td>is_open</td>
-            	<td>boolean</td>
+            	<td>soap_cat</td>
+            	<td>text</td>
                 <td><i>
 				
 
 				
-				DEFAULT true
+				DEFAULT 'p'::text
 				</i>
-				<br><br>whether the episode is open (eg. there is activity for it),
-	 means open in a temporal sense as in "not closed yet";
-	 only one episode can be open per health issue
+				
 				</td>
 			 </tr>
             
@@ -51998,11 +65770,34 @@ end;</pre>
 				<td>
                 
                   
-                  <a href="gnumed-entire_schema.html#clin.table.encounter">clin.encounter.pk</a>
+                
+                </td>
+            	<td>pk</td>
+            	<td>serial</td>
+                <td><i>
+				
+					PRIMARY KEY
+					
+
+					
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                  
+                  <a href="gnumed-entire_schema.html#clin.table.hospital-stay">clin.hospital_stay.pk</a>
                   
                 
                 </td>
-            	<td>fk_encounter</td>
+            	<td>fk_hospital_stay</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -52011,10 +65806,29 @@ end;</pre>
 					
 				
 
-				NOT NULL
+				
 				
 				</i>
-				<br><br>The encounter during which this episode was added (begun).
+				<br><br>At which hospital was the procedure performed,
+ unless clin_where is not null,
+ if null it was an ambulatory procedure.
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>clin_end</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				<br><br>When did this procedure end/is expected to end.
+- NULL if unknown or .clin_when (=start) is sufficient (eg. insignificant duration)
 				</td>
 			 </tr>
             
@@ -52022,35 +65836,39 @@ end;</pre>
 				<td>
                 
                 </td>
-            	<td>diagnostic_certainty_classification</td>
-            	<td>text</td>
+            	<td>is_ongoing</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
-				
-				
+				NOT NULL
+				DEFAULT false
 				</i>
-				<br><br>The certainty at which this problem is believed to be a diagnosis:
-A: sign (Symptom)
-B: cluster of signs (Symptomkomplex)
-C: syndromic diagnosis (Bild einer Diagnose)
-D: proven diagnosis (diagnostisch gesichert)
+				<br><br>Whether this procedure is still going on (such as desensibilisation, chemotherapy, etc).
 				</td>
 			 </tr>
             
             <tr class="tr0">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.org-unit">dem.org_unit.pk</a>
+                  
+                
                 </td>
-            	<td>summary</td>
-            	<td>text</td>
+            	<td>fk_org_unit</td>
+            	<td>integer</td>
                 <td><i>
 				
+					
+
+					
+				
 
 				
 				
 				</i>
-				<br><br>Used for tracking the summary of this episode.
+				<br><br>links to the or unit the procedure was performed at
 				</td>
 			 </tr>
             
@@ -52058,10 +65876,10 @@ D: proven diagnosis (diagnostisch gesichert)
 
         <!-- Inherits -->
 		
-        <p>Table clin.episode Inherits
+        <p>Table clin.procedure Inherits
         
             
-           <a href="gnumed-entire_schema.html#audit.table.audit-fields">audit_fields</a>, 
+           <a href="gnumed-entire_schema.html#clin.table.clin-root-item">clin_root_item</a>, 
         
         </p>
 		
@@ -52074,25 +65892,40 @@ D: proven diagnosis (diagnostisch gesichert)
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>clin.episode Constraints</caption>
+            <caption>clin.procedure Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
-				<td>episode_sane_summary</td>
-                <td>CHECK (gm.is_null_or_non_empty_string(summary))</td>
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
             </tr>
 			
             <tr class="tr1">
-				<td>sane_description</td>
-                <td>CHECK ((gm.is_null_or_blank_string(description) IS FALSE))</td>
+				<td>clin_procedure_lnk_org_or_stay</td>
+                <td>CHECK ((((fk_hospital_stay IS NULL) AND (fk_org_unit IS NOT NULL)) OR ((fk_hospital_stay IS NOT NULL) AND (fk_org_unit IS NULL))))</td>
             </tr>
 			
             <tr class="tr0">
-				<td>valid_diagnostic_certainty_classification</td>
-                <td>CHECK ((diagnostic_certainty_classification = ANY (ARRAY['A'::text, 'B'::text, 'C'::text, 'D'::text, NULL::text])))</td>
+				<td>clin_root_item_sane_soap_cat</td>
+                <td>CHECK (((soap_cat IS NULL) OR (lower(soap_cat) = ANY (ARRAY['s'::text, 'o'::text, 'a'::text, 'p'::text, 'u'::text]))))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>procedure_sane_end</td>
+                <td>CHECK (((clin_end IS NULL) OR (clin_end >= clin_when)))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>sane_procedure</td>
+                <td>CHECK ((gm.is_null_or_blank_string(narrative) IS FALSE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>sane_soap_cat</td>
+                <td>CHECK ((soap_cat = ANY (ARRAY['a'::text, 'p'::text])))</td>
             </tr>
 			
 		</table>
@@ -52103,86 +65936,16 @@ D: proven diagnosis (diagnostisch gesichert)
 			<p>Tables referencing this one via Foreign Key Constraints:</p>
 		
 			<ul>
-				<li><a href="gnumed-entire_schema.html#au.table.referral">au.referral</a></li>
-			</ul>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#blobs.table.doc-med">blobs.doc_med</a></li>
-			</ul>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#blobs.table.lnk-doc-med2episode">blobs.lnk_doc_med2episode</a></li>
-			</ul>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#clin.table.allergy">clin.allergy</a></li>
-			</ul>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#clin.table.clin-aux-note">clin.clin_aux_note</a></li>
-			</ul>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#clin.table.clin-narrative">clin.clin_narrative</a></li>
-			</ul>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#clin.table.clin-root-item">clin.clin_root_item</a></li>
-			</ul>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#clin.table.family-history">clin.family_history</a></li>
-			</ul>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#clin.table.form-instances">clin.form_instances</a></li>
-			</ul>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#clin.table.hospital-stay">clin.hospital_stay</a></li>
-			</ul>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#clin.table.lab-request">clin.lab_request</a></li>
-			</ul>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#clin.table.lnk-code2episode">clin.lnk_code2episode</a></li>
-			</ul>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#clin.table.lnk-substance2episode">clin.lnk_substance2episode</a></li>
-			</ul>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#clin.table.procedure">clin.procedure</a></li>
-			</ul>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#clin.table.substance-intake">clin.substance_intake</a></li>
-			</ul>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#clin.table.test-result">clin.test_result</a></li>
-			</ul>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#clin.table.vaccination">clin.vaccination</a></li>
+				<li><a href="gnumed-entire_schema.html#clin.table.lnk-code2procedure">clin.lnk_code2procedure</a></li>
 			</ul>
 		
 		
 
     <!-- Indexes -->
     
-       idx_episode_fk_encounter fk_encounter
-    
-       idx_episode_issue fk_health_issue
-    
-       idx_episode_modified_by modified_by
-    
-       idx_episode_with_issue fk_health_issue) WHERE (fk_health_issue IS NOT NULL
+       idx_clin_procedure_fk_encounter fk_encounter
     
-       idx_episode_without_issue fk_health_issue) WHERE (fk_health_issue IS NULL
+       idx_clin_procedure_fk_episode fk_episode
     
 
 	<!-- View Definition -->
@@ -52199,15 +65962,16 @@ D: proven diagnosis (diagnostisch gesichert)
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.export-item">export_item</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.review-root">review_root</a>
 		</h2>
         
-         <p>A table to hold binary data for patients intended for export as print/mail/fax/removable media/...</p>
+         <p>this table tracks whether a particular clinical item
+	 was reviewed by a clinician or not</p>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.export_item Structure</caption>
+                <caption>clin.review_root Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -52218,21 +65982,14 @@ D: proven diagnosis (diagnostisch gesichert)
             <tr class="tr0">
 				<td>
                 
-                  
-                
                 </td>
-            	<td>pk</td>
-            	<td>serial</td>
+            	<td>pk_audit</td>
+            	<td>integer</td>
                 <td><i>
 				
-					PRIMARY KEY
-					
-
-					
-				
 
-				
-				
+				NOT NULL
+				DEFAULT nextval('audit.audit_fields_pk_audit_seq'::regclass)
 				</i>
 				
 				</td>
@@ -52241,32 +65998,16 @@ D: proven diagnosis (diagnostisch gesichert)
             <tr class="tr1">
 				<td>
                 
-                  
-                
-                  
-                  <a href="gnumed-entire_schema.html#clin.table.patient">clin.patient.fk_identity</a>
-                  
-                
                 </td>
-            	<td>fk_identity</td>
+            	<td>row_version</td>
             	<td>integer</td>
                 <td><i>
 				
-					
-
-					
-                       UNIQUE#1
-                    
-				
-					
-
-					
-				
 
-				
+				NOT NULL
 				
 				</i>
-				<br><br>the patient this item pertains to, DELETE does not cascade because we may have wanted to export data before deleting a patient ...
+				
 				</td>
 			 </tr>
             
@@ -52274,15 +66015,15 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                 </td>
-            	<td>created_by</td>
-            	<td>name</td>
+            	<td>modified_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
 				NOT NULL
-				DEFAULT "current_user"()
+				DEFAULT now()
 				</i>
-				<br><br>who put this item here
+				
 				</td>
 			 </tr>
             
@@ -52290,31 +66031,38 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                 </td>
-            	<td>created_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>modified_by</td>
+            	<td>name</td>
                 <td><i>
 				
 
 				NOT NULL
-				DEFAULT statement_timestamp()
+				DEFAULT "current_user"()
 				</i>
-				<br><br>when was this item put here
+				
 				</td>
 			 </tr>
             
             <tr class="tr0">
 				<td>
                 
+                  
+                
                 </td>
-            	<td>designation</td>
-            	<td>text</td>
+            	<td>pk</td>
+            	<td>serial</td>
                 <td><i>
 				
+					PRIMARY KEY
+					
+
+					
+				
 
 				
 				
 				</i>
-				<br><br>the intended use for this item if any, say "print" for printing
+				
 				</td>
 			 </tr>
             
@@ -52324,8 +66072,8 @@ D: proven diagnosis (diagnostisch gesichert)
                   
                 
                 </td>
-            	<td>description</td>
-            	<td>text</td>
+            	<td>fk_reviewed_row</td>
+            	<td>integer</td>
                 <td><i>
 				
 					
@@ -52335,10 +66083,11 @@ D: proven diagnosis (diagnostisch gesichert)
                     
 				
 
-				
+				NOT NULL
 				
 				</i>
-				<br><br>a unique-per-patient description of the item
+				<br><br>the row the review status is for: to be qualified
+	 as a proper foreign key in child tables
 				</td>
 			 </tr>
             
@@ -52348,18 +66097,18 @@ D: proven diagnosis (diagnostisch gesichert)
                   
                 
                   
-                  <a href="gnumed-entire_schema.html#blobs.table.doc-obj">blobs.doc_obj.pk</a>
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.pk</a>
                   
                 
                 </td>
-            	<td>fk_doc_obj</td>
+            	<td>fk_reviewer</td>
             	<td>integer</td>
                 <td><i>
 				
 					
 
 					
-                       UNIQUE
+                       UNIQUE#1
                     
 				
 					
@@ -52367,10 +66116,10 @@ D: proven diagnosis (diagnostisch gesichert)
 					
 				
 
-				
+				NOT NULL
 				
 				</i>
-				<br><br>points to a document object
+				<br><br>who has reviewed the item
 				</td>
 			 </tr>
             
@@ -52378,15 +66127,17 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                 </td>
-            	<td>data</td>
-            	<td>bytea</td>
+            	<td>is_technically_abnormal</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
-				
+				NOT NULL
 				
 				</i>
-				<br><br>binary data representing the actual export item (unless fk_doc_obj points to a document object)
+				<br><br>whether test provider flagged this result as abnormal,
+	 *not* a clinical assessment but rather a technical one
+	 LDT: exist(8422)
 				</td>
 			 </tr>
             
@@ -52394,7 +66145,26 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                 </td>
-            	<td>filename</td>
+            	<td>clinically_relevant</td>
+            	<td>boolean</td>
+                <td><i>
+				
+
+				NOT NULL
+				
+				</i>
+				<br><br>whether this result is considered relevant clinically,
+	 need not correspond to the value of "techically_abnormal"
+	 since abnormal values may be irrelevant while normal
+	 ones can be of significance
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>comment</td>
             	<td>text</td>
                 <td><i>
 				
@@ -52402,7 +66172,7 @@ D: proven diagnosis (diagnostisch gesichert)
 				
 				
 				</i>
-				<br><br>a filename, possibly from an import, if applicable, mainly used to please non-mime pseudo operating systems
+				
 				</td>
 			 </tr>
             
@@ -52410,6 +66180,13 @@ D: proven diagnosis (diagnostisch gesichert)
 
         <!-- Inherits -->
 		
+        <p>Table clin.review_root Inherits
+        
+            
+           <a href="gnumed-entire_schema.html#audit.table.audit-fields">audit_fields</a>, 
+        
+        </p>
+		
 
 		
 		
@@ -52419,50 +66196,15 @@ D: proven diagnosis (diagnostisch gesichert)
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>clin.export_item Constraints</caption>
+            <caption>clin.review_root Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
-				<td>clin_export_item_fk_obj_or_data</td>
-                <td>CHECK ((((data IS NULL) AND (fk_doc_obj IS NOT NULL)) OR ((data IS NOT NULL) AND (fk_doc_obj IS NULL))))</td>
-            </tr>
-			
-            <tr class="tr1">
-				<td>clin_export_item_fk_obj_or_filename</td>
-                <td>CHECK ((((filename IS NULL) AND (fk_doc_obj IS NOT NULL)) OR ((filename IS NOT NULL) AND (fk_doc_obj IS NULL))))</td>
-            </tr>
-			
-            <tr class="tr0">
-				<td>clin_export_item_fk_obj_or_fk_identity</td>
-                <td>CHECK ((((fk_identity IS NULL) AND (fk_doc_obj IS NOT NULL)) OR ((fk_identity IS NOT NULL) AND (fk_doc_obj IS NULL))))</td>
-            </tr>
-			
-            <tr class="tr1">
-				<td>clin_export_item_sane_by</td>
-                <td>CHECK ((length((created_by)::text) > 0))</td>
-            </tr>
-			
-            <tr class="tr0">
-				<td>clin_export_item_sane_data</td>
-                <td>CHECK (((data IS NULL) OR (length(data) > 0)))</td>
-            </tr>
-			
-            <tr class="tr1">
-				<td>clin_export_item_sane_description</td>
-                <td>CHECK ((gm.is_null_or_blank_string(description) IS FALSE))</td>
-            </tr>
-			
-            <tr class="tr0">
-				<td>clin_export_item_sane_designation</td>
-                <td>CHECK ((gm.is_null_or_non_empty_string(designation) IS TRUE))</td>
-            </tr>
-			
-            <tr class="tr1">
-				<td>clin_export_item_sane_filename</td>
-                <td>CHECK ((gm.is_null_or_non_empty_string(filename) IS TRUE))</td>
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
             </tr>
 			
 		</table>
@@ -52488,15 +66230,15 @@ D: proven diagnosis (diagnostisch gesichert)
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.external-care">external_care</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.reviewed-test-results">reviewed_test_results</a>
 		</h2>
         
-         <p>lists external care situations for patients</p>
+         <p>review table for test results</p>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.external_care Structure</caption>
+                <caption>clin.reviewed_test_results Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -52575,7 +66317,7 @@ D: proven diagnosis (diagnostisch gesichert)
                 
                 </td>
             	<td>pk</td>
-            	<td>serial</td>
+            	<td>integer</td>
                 <td><i>
 				
 					PRIMARY KEY
@@ -52585,7 +66327,7 @@ D: proven diagnosis (diagnostisch gesichert)
 				
 
 				
-				
+				DEFAULT nextval('review_root_pk_seq'::regclass)
 				</i>
 				
 				</td>
@@ -52595,11 +66337,15 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                   
-                  <a href="gnumed-entire_schema.html#clin.table.encounter">clin.encounter.pk</a>
+                  <a href="gnumed-entire_schema.html#clin.table.test-result">clin.test_result.pk</a>
+                  
+                
+                  
+                
                   
                 
                 </td>
-            	<td>fk_encounter</td>
+            	<td>fk_reviewed_row</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -52607,11 +66353,23 @@ D: proven diagnosis (diagnostisch gesichert)
 
 					
 				
+					
+
+					
+                       UNIQUE#1
+                    
+				
+					
+
+					
+                       UNIQUE
+                    
+				
 
 				NOT NULL
 				
 				</i>
-				<br><br>the encounter during which this external care item was first documented
+				
 				</td>
 			 </tr>
             
@@ -52621,11 +66379,11 @@ D: proven diagnosis (diagnostisch gesichert)
                   
                 
                   
-                  <a href="gnumed-entire_schema.html#clin.table.health-issue">clin.health_issue.pk</a>
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.pk</a>
                   
                 
                 </td>
-            	<td>fk_health_issue</td>
+            	<td>fk_reviewer</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -52640,10 +66398,42 @@ D: proven diagnosis (diagnostisch gesichert)
 					
 				
 
+				NOT NULL
+				DEFAULT f_fk_reviewer_default()
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>is_technically_abnormal</td>
+            	<td>boolean</td>
+                <td><i>
+				
+
+				NOT NULL
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>clinically_relevant</td>
+            	<td>boolean</td>
+                <td><i>
 				
+
+				NOT NULL
 				
 				</i>
-				<br><br>link to a health issue, if any
+				
 				</td>
 			 </tr>
             
@@ -52651,7 +66441,7 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                 </td>
-            	<td>issue</td>
+            	<td>comment</td>
             	<td>text</td>
                 <td><i>
 				
@@ -52659,39 +66449,100 @@ D: proven diagnosis (diagnostisch gesichert)
 				
 				
 				</i>
-				<br><br>description of the issue of external care
+				
 				</td>
 			 </tr>
             
+        </table>
+
+        <!-- Inherits -->
+		
+        <p>Table clin.reviewed_test_results Inherits
+        
+            
+           <a href="gnumed-entire_schema.html#clin.table.review-root">review_root</a>, 
+        
+        </p>
+		
+
+		
+		
+		
+
+        <!-- Constraint List -->
+		
+        <p> </p>
+		<table width="100%" cellspacing="0" cellpadding="3">
+            <caption>clin.reviewed_test_results Constraints</caption>
+            <tr>
+            	<th>Name</th>
+            	<th>Constraint</th>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+		</table>
+		
+
+        <!-- Foreign Key Discovery -->
+		
+
+    <!-- Indexes -->
+    
+       idx_rtr_fk_reviewer fk_reviewer
+    
+
+	<!-- View Definition -->
+	
+
+	<!-- List off permissions -->
+	
+
+	<p>
+		<a href="gnumed-entire_schema.html#index">Index</a> -
+		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
+    </p>
+	
+        <hr>
+		<h2>Table:
+			
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.soap-cat-ranks">soap_cat_ranks</a>
+		</h2>
+        
+
+
+        <table width="100%" cellspacing="0" cellpadding="3">
+                <caption>clin.soap_cat_ranks Structure</caption>
+                <tr>
+                <th>F-Key</th>
+                <th>Name</th>
+                <th>Type</th>
+                <th>Description</th>
+                </tr>
+            
             <tr class="tr0">
 				<td>
                 
                   
                 
-                  
-                  <a href="gnumed-entire_schema.html#dem.table.org-unit">dem.org_unit.pk</a>
-                  
-                
                 </td>
-            	<td>fk_org_unit</td>
-            	<td>integer</td>
+            	<td>pk</td>
+            	<td>serial</td>
                 <td><i>
 				
+					PRIMARY KEY
 					
 
 					
-                       UNIQUE#1
-                    
 				
-					
 
-					
 				
-
-				NOT NULL
 				
 				</i>
-				<br><br>link to the org unit where care is rendered
+				
 				</td>
 			 </tr>
             
@@ -52699,15 +66550,15 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                 </td>
-            	<td>provider</td>
-            	<td>text</td>
+            	<td>rank</td>
+            	<td>integer</td>
                 <td><i>
 				
 
-				
+				NOT NULL
 				
 				</i>
-				<br><br>name of actual provider at .fk_org_unit
+				
 				</td>
 			 </tr>
             
@@ -52715,15 +66566,15 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                 </td>
-            	<td>comment</td>
-            	<td>text</td>
+            	<td>soap_cat</td>
+            	<td>character(1)</td>
                 <td><i>
 				
 
 				
 				
 				</i>
-				<br><br>comment on the patient/provider relationship, say role/issues cared for/...
+				
 				</td>
 			 </tr>
             
@@ -52731,13 +66582,6 @@ D: proven diagnosis (diagnostisch gesichert)
 
         <!-- Inherits -->
 		
-        <p>Table clin.external_care Inherits
-        
-            
-           <a href="gnumed-entire_schema.html#audit.table.audit-fields">audit_fields</a>, 
-        
-        </p>
-		
 
 		
 		
@@ -52747,30 +66591,20 @@ D: proven diagnosis (diagnostisch gesichert)
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>clin.external_care Constraints</caption>
+            <caption>clin.soap_cat_ranks Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
-				<td>clin_ext_care_issue_xor_fk_issue</td>
-                <td>CHECK ((((fk_health_issue IS NULL) AND (issue IS NOT NULL)) OR ((fk_health_issue IS NOT NULL) AND (issue IS NULL))))</td>
-            </tr>
-			
-            <tr class="tr1">
-				<td>clin_ext_care_sane_comment</td>
-                <td>CHECK ((gm.is_null_or_non_empty_string(comment) IS TRUE))</td>
-            </tr>
-			
-            <tr class="tr0">
-				<td>clin_ext_care_sane_issue</td>
-                <td>CHECK ((gm.is_null_or_non_empty_string(issue) IS TRUE))</td>
+				<td>clin_soap_cat_ranks_sane_cats</td>
+                <td>CHECK (((soap_cat IS NULL) OR (lower((soap_cat)::text) = ANY (ARRAY['s'::text, 'o'::text, 'a'::text, 'p'::text, 'u'::text]))))</td>
             </tr>
 			
             <tr class="tr1">
-				<td>clin_ext_care_sane_provider</td>
-                <td>CHECK ((gm.is_null_or_non_empty_string(provider) IS TRUE))</td>
+				<td>clin_soap_cat_ranks_sane_ranks</td>
+                <td>CHECK ((rank = ANY (ARRAY[1, 2, 3, 4, 5, 6])))</td>
             </tr>
 			
 		</table>
@@ -52781,12 +66615,6 @@ D: proven diagnosis (diagnostisch gesichert)
 
     <!-- Indexes -->
     
-       idx_external_care_fk_encounter fk_encounter
-    
-       idx_external_care_fk_health_issue fk_health_issue
-    
-       idx_external_care_fk_org_unit fk_org_unit
-    
 
 	<!-- View Definition -->
 	
@@ -52802,15 +66630,15 @@ D: proven diagnosis (diagnostisch gesichert)
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.family-history">family_history</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.substance-intake">substance_intake</a>
 		</h2>
         
-         <p>This table stores family history items on persons not otherwise in the database.</p>
+         <p>The substances a patient is actually currently taking.</p>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.family_history Structure</caption>
+                <caption>clin.substance_intake Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -52869,11 +66697,19 @@ D: proven diagnosis (diagnostisch gesichert)
             <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
+                
                 </td>
             	<td>modified_by</td>
             	<td>name</td>
                 <td><i>
 				
+					
+
+					
+				
 
 				NOT NULL
 				DEFAULT "current_user"()
@@ -52910,7 +66746,7 @@ D: proven diagnosis (diagnostisch gesichert)
 				NOT NULL
 				DEFAULT now()
 				</i>
-				<br><br>When the family history item became known to the patient (not the afflicted relative).
+				<br><br>When was this substance started.
 				</td>
 			 </tr>
             
@@ -52934,7 +66770,7 @@ D: proven diagnosis (diagnostisch gesichert)
 				NOT NULL
 				
 				</i>
-				<br><br>encounter during which family history item became known
+				<br><br>The encounter use of this substance was documented under.
 				</td>
 			 </tr>
             
@@ -52958,7 +66794,7 @@ D: proven diagnosis (diagnostisch gesichert)
 				NOT NULL
 				
 				</i>
-				<br><br>episode to which family history item is of importance
+				
 				</td>
 			 </tr>
             
@@ -52974,7 +66810,7 @@ D: proven diagnosis (diagnostisch gesichert)
 				
 				
 				</i>
-				<br><br>the condition this relative suffered from
+				<br><br>Any notes on this substance use.
 				</td>
 			 </tr>
             
@@ -52988,7 +66824,7 @@ D: proven diagnosis (diagnostisch gesichert)
 				
 
 				
-				
+				DEFAULT 'p'::text
 				</i>
 				
 				</td>
@@ -53021,11 +66857,11 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                   
-                  <a href="gnumed-entire_schema.html#clin.table.fhx-relation-type">clin.fhx_relation_type.pk</a>
+                  <a href="gnumed-entire_schema.html#ref.table.consumable-substance">ref.consumable_substance.pk</a>
                   
                 
                 </td>
-            	<td>fk_relation_type</td>
+            	<td>fk_substance</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -53037,7 +66873,11 @@ D: proven diagnosis (diagnostisch gesichert)
 				NOT NULL
 				
 				</i>
-				<br><br>foreign key to the type of relation the patient has to the afflicated relative
+				<br><br>Links to a substance the patient is taking.
+********************************************* 
+DO NOT TRY TO USE THIS TO FIND OUT THE BRAND.
+IT WILL BE WRONG.
+*********************************************
 				</td>
 			 </tr>
             
@@ -53045,7 +66885,7 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                 </td>
-            	<td>age_noted</td>
+            	<td>preparation</td>
             	<td>text</td>
                 <td><i>
 				
@@ -53053,7 +66893,7 @@ D: proven diagnosis (diagnostisch gesichert)
 				
 				
 				</i>
-				<br><br>age at which the condition was noted in the relative if known
+				<br><br>How this substance is delivered, tablet, pill, liquid, cream.
 				</td>
 			 </tr>
             
@@ -53061,7 +66901,40 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                 </td>
-            	<td>age_of_death</td>
+            	<td>schedule</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				<br><br>The schedule, if any, the substance is to be taken by.
+ An XML snippet to be interpreted by the middleware.
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>aim</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				<br><br>The aim of taking this substance.
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>duration</td>
             	<td>interval</td>
                 <td><i>
 				
@@ -53069,7 +66942,7 @@ D: proven diagnosis (diagnostisch gesichert)
 				
 				
 				</i>
-				<br><br>age at which the relative died if known
+				<br><br>How long is this substances intended to be taken.
 				</td>
 			 </tr>
             
@@ -53077,7 +66950,23 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                 </td>
-            	<td>contributed_to_death</td>
+            	<td>intake_is_approved_of</td>
+            	<td>boolean</td>
+                <td><i>
+				
+
+				NOT NULL
+				
+				</i>
+				<br><br>Whether or not intake of this substance is recommended/approved of by the provider
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>is_long_term</td>
             	<td>boolean</td>
                 <td><i>
 				
@@ -53085,7 +66974,23 @@ D: proven diagnosis (diagnostisch gesichert)
 				
 				
 				</i>
-				<br><br>whether the condition contributed to the death of the relative if known
+				<br><br>whether this is expected to be a regular/ongoing/chronic/long-term/repeat/permament/perpetual/life-long substance intake
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>discontinued</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				<br><br>When was this intake discontinued ?
 				</td>
 			 </tr>
             
@@ -53093,7 +66998,7 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                 </td>
-            	<td>name_relative</td>
+            	<td>discontinue_reason</td>
             	<td>text</td>
                 <td><i>
 				
@@ -53101,23 +67006,31 @@ D: proven diagnosis (diagnostisch gesichert)
 				
 				
 				</i>
-				<br><br>name of the relative suffering the condition
+				<br><br>Why was this intake discontinued ?
 				</td>
 			 </tr>
             
             <tr class="tr0">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#ref.table.lnk-substance2brand">ref.lnk_substance2brand.pk</a>
+                  
+                
                 </td>
-            	<td>dob_relative</td>
-            	<td>timestamp with time zone</td>
+            	<td>fk_drug_component</td>
+            	<td>integer</td>
                 <td><i>
 				
+					
+
+					
+				
 
 				
 				
 				</i>
-				<br><br>date of birth of the relative if known
+				<br><br>Links to the component of a branded drug taken by a patient.
 				</td>
 			 </tr>
             
@@ -53125,7 +67038,7 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                 </td>
-            	<td>comment</td>
+            	<td>comment_on_start</td>
             	<td>text</td>
                 <td><i>
 				
@@ -53133,7 +67046,23 @@ D: proven diagnosis (diagnostisch gesichert)
 				
 				
 				</i>
+				<br><br>Comment (uncertainty level) on .clin_when = started. "?" = "entirely unknown".
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>harmful_use_type</td>
+            	<td>integer</td>
+                <td><i>
+				
+
 				
+				
+				</i>
+				<br><br>NULL=not considered=medication, 0=no or not considered harmful, 1=presently harmful use, 2=presently addicted, 3=previously addicted
 				</td>
 			 </tr>
             
@@ -53141,7 +67070,7 @@ D: proven diagnosis (diagnostisch gesichert)
 
         <!-- Inherits -->
 		
-        <p>Table clin.family_history Inherits
+        <p>Table clin.substance_intake Inherits
         
             
            <a href="gnumed-entire_schema.html#clin.table.clin-root-item">clin_root_item</a>, 
@@ -53157,35 +67086,60 @@ D: proven diagnosis (diagnostisch gesichert)
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>clin.family_history Constraints</caption>
+            <caption>clin.substance_intake Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
-				<td>c_family_history_sane_age_noted</td>
-                <td>CHECK ((gm.is_null_or_non_empty_string(age_noted) IS TRUE))</td>
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
             </tr>
 			
             <tr class="tr1">
-				<td>c_family_history_sane_condition</td>
-                <td>CHECK ((gm.is_null_or_blank_string(narrative) IS FALSE))</td>
+				<td>clin_patient_sane_use_type</td>
+                <td>CHECK (((harmful_use_type IS NULL) OR ((harmful_use_type >= 0) AND (harmful_use_type <= 3))))</td>
             </tr>
 			
             <tr class="tr0">
-				<td>c_family_history_sane_name</td>
-                <td>CHECK ((gm.is_null_or_non_empty_string(name_relative) IS TRUE))</td>
+				<td>clin_root_item_sane_soap_cat</td>
+                <td>CHECK (((soap_cat IS NULL) OR (lower(soap_cat) = ANY (ARRAY['s'::text, 'o'::text, 'a'::text, 'p'::text, 'u'::text]))))</td>
             </tr>
 			
             <tr class="tr1">
-				<td>clin_root_item_sane_soap_cat</td>
-                <td>CHECK (((soap_cat IS NULL) OR (lower(soap_cat) = ANY (ARRAY['s'::text, 'o'::text, 'a'::text, 'p'::text, 'u'::text]))))</td>
+				<td>clin_subst_intake_sane_prep</td>
+                <td>CHECK ((((fk_drug_component IS NULL) AND (preparation IS NOT NULL)) OR ((fk_drug_component IS NOT NULL) AND (preparation IS NULL))))</td>
             </tr>
 			
             <tr class="tr0">
-				<td>narrative_neither_null_nor_empty</td>
-                <td>CHECK ((btrim(COALESCE(narrative, ''::text)) <> ''::text))</td>
+				<td>clin_substance_intake_sane_start_comment</td>
+                <td>CHECK (gm.is_null_or_non_empty_string(comment_on_start))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>discontinued_after_started</td>
+                <td>CHECK ((((clin_when IS NULL) OR (discontinued IS NULL)) OR ((discontinued >= clin_when) AND (discontinued <= now()))))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>medication_is_plan</td>
+                <td>CHECK ((soap_cat = 'p'::text))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>sane_aim</td>
+                <td>CHECK ((gm.is_null_or_non_empty_string(aim) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>sane_discontinue_reason</td>
+                <td>CHECK ((((discontinued IS NULL) AND (discontinue_reason IS NULL)) OR ((discontinued IS NOT NULL) AND (gm.is_null_or_non_empty_string(discontinue_reason) IS TRUE))))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>sane_schedule</td>
+                <td>CHECK ((gm.is_null_or_non_empty_string(schedule) IS TRUE))</td>
             </tr>
 			
 		</table>
@@ -53196,16 +67150,20 @@ D: proven diagnosis (diagnostisch gesichert)
 			<p>Tables referencing this one via Foreign Key Constraints:</p>
 		
 			<ul>
-				<li><a href="gnumed-entire_schema.html#clin.table.lnk-code2fhx">clin.lnk_code2fhx</a></li>
+				<li><a href="gnumed-entire_schema.html#clin.table.lnk-substance2episode">clin.lnk_substance2episode</a></li>
 			</ul>
 		
 		
 
     <!-- Indexes -->
     
-       idx_clin_family_history_fk_encounter fk_encounter
+       idx_c_subst_int_fk_drug_comp fk_drug_component
     
-       idx_clin_family_history_fk_episode fk_episode
+       idx_clin_substance_intake_fk_encounter fk_encounter
+    
+       idx_clin_substance_intake_fk_episode fk_episode
+    
+       idx_fk_substance_curr_med fk_substance
     
 
 	<!-- View Definition -->
@@ -53222,15 +67180,15 @@ D: proven diagnosis (diagnostisch gesichert)
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.fhx-relation-type">fhx_relation_type</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.suppressed-hint">suppressed_hint</a>
 		</h2>
         
-         <p>Enumerates inter-person relations for family history linking.</p>
+         <p>A table to hold hints suppressed per patient</p>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.fhx_relation_type Structure</caption>
+                <caption>clin.suppressed_hint Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -53289,11 +67247,19 @@ D: proven diagnosis (diagnostisch gesichert)
             <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
+                
                 </td>
             	<td>modified_by</td>
             	<td>name</td>
                 <td><i>
 				
+					
+
+					
+				
 
 				NOT NULL
 				DEFAULT "current_user"()
@@ -53329,23 +67295,23 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                   
+                  <a href="gnumed-entire_schema.html#clin.table.encounter">clin.encounter.pk</a>
+                  
                 
                 </td>
-            	<td>description</td>
-            	<td>text</td>
+            	<td>fk_encounter</td>
+            	<td>integer</td>
                 <td><i>
 				
 					
 
 					
-                       UNIQUE#1
-                    
 				
 
-				
+				NOT NULL
 				
 				</i>
-				<br><br>Description of the relation type, specific or unspecific: sister, father, ..., maternal family, ...
+				<br><br>the encounter during which this hint was first suppressed
 				</td>
 			 </tr>
             
@@ -53353,23 +67319,87 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                   
+                  <a href="gnumed-entire_schema.html#ref.table.auto-hint">ref.auto_hint.pk</a>
+                  
                 
                 </td>
-            	<td>is_genetic</td>
-            	<td>boolean</td>
+            	<td>fk_hint</td>
+            	<td>integer</td>
                 <td><i>
 				
 					
 
 					
-                       UNIQUE#1
-                    
 				
 
 				NOT NULL
 				
 				</i>
-				<br><br>Whether or not this type of relation is biologic/genetic or not. Note that non-genetic relations may still pose a risk because of infectious diseases.
+				<br><br>the hint that is suppressed
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>suppressed_by</td>
+            	<td>name</td>
+                <td><i>
+				
+
+				NOT NULL
+				DEFAULT "current_user"()
+				</i>
+				<br><br>who suppressed this hint
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>suppressed_when</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				NOT NULL
+				DEFAULT statement_timestamp()
+				</i>
+				<br><br>when was this hint suppressed
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>rationale</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				<br><br>rationale on why this hint is suppressed in this patient
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>md5_sum</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				<br><br>md5 of relevant fields of this hint
 				</td>
 			 </tr>
             
@@ -53377,7 +67407,7 @@ D: proven diagnosis (diagnostisch gesichert)
 
         <!-- Inherits -->
 		
-        <p>Table clin.fhx_relation_type Inherits
+        <p>Table clin.suppressed_hint Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-fields">audit_fields</a>, 
@@ -53393,15 +67423,30 @@ D: proven diagnosis (diagnostisch gesichert)
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>clin.fhx_relation_type Constraints</caption>
+            <caption>clin.suppressed_hint Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
-				<td>c_fhx_relation_type_sane_desc</td>
-                <td>CHECK ((gm.is_null_or_blank_string(description) IS FALSE))</td>
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>clin_suppressed_hint_sane_by</td>
+                <td>CHECK ((length((suppressed_by)::text) > 0))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>clin_suppressed_hint_sane_md5</td>
+                <td>CHECK ((gm.is_null_or_blank_string(md5_sum) IS FALSE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>clin_suppressed_hint_sane_rationale</td>
+                <td>CHECK ((gm.is_null_or_blank_string(rationale) IS FALSE))</td>
             </tr>
 			
 		</table>
@@ -53409,16 +67454,13 @@ D: proven diagnosis (diagnostisch gesichert)
 
         <!-- Foreign Key Discovery -->
 		
-			<p>Tables referencing this one via Foreign Key Constraints:</p>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#clin.table.family-history">clin.family_history</a></li>
-			</ul>
-		
-		
 
     <!-- Indexes -->
     
+       idx_suppressed_hint_fk_encounter fk_encounter
+    
+       idx_suppressed_hint_fk_hint fk_hint
+    
 
 	<!-- View Definition -->
 	
@@ -53434,16 +67476,15 @@ D: proven diagnosis (diagnostisch gesichert)
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.form-data">form_data</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.test-org">test_org</a>
 		</h2>
         
-         <p>holds the values used in form instances, for
-	 later re-use/validation</p>
+         <p>organisation providing results</p>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.form_data Structure</caption>
+                <caption>clin.test_org Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -53502,11 +67543,19 @@ D: proven diagnosis (diagnostisch gesichert)
             <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
+                
                 </td>
             	<td>modified_by</td>
             	<td>name</td>
                 <td><i>
 				
+					
+
+					
+				
 
 				NOT NULL
 				DEFAULT "current_user"()
@@ -53542,31 +67591,31 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                   
-                  <a href="gnumed-entire_schema.html#clin.table.form-instances">clin.form_instances.pk</a>
-                  
                 
                   
+                  <a href="gnumed-entire_schema.html#dem.table.org-unit">dem.org_unit.pk</a>
+                  
                 
                 </td>
-            	<td>fk_instance</td>
+            	<td>fk_org_unit</td>
             	<td>integer</td>
                 <td><i>
 				
 					
 
 					
+                       UNIQUE
+                    
 				
 					
 
 					
-                       UNIQUE#1
-                    
 				
 
 				NOT NULL
 				
 				</i>
-				<br><br>the form instance this value was used in
+				<br><br>link to a unit of an organization more closely defining this lab
 				</td>
 			 </tr>
             
@@ -53574,13 +67623,35 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                   
-                  <a href="gnumed-entire_schema.html#public.table.form-fields">public.form_fields.pk</a>
+                  <a href="gnumed-entire_schema.html#dem.table.identity">dem.identity.pk</a>
                   
                 
+                </td>
+            	<td>fk_adm_contact</td>
+            	<td>integer</td>
+                <td><i>
+				
+					
+
+					
+				
+
+				
+				
+				</i>
+				<br><br>whom to call for admin questions (modem link, etc.)
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.identity">dem.identity.pk</a>
                   
                 
                 </td>
-            	<td>fk_form_field</td>
+            	<td>fk_med_contact</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -53588,19 +67659,30 @@ D: proven diagnosis (diagnostisch gesichert)
 
 					
 				
-					
 
-					
-                       UNIQUE#1
-                    
+				
+				
+				</i>
+				<br><br>whom to call for medical questions (result verification,
+	 additional test requests)
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>comment</td>
+            	<td>text</td>
+                <td><i>
 				
 
-				NOT NULL
+				
 				
 				</i>
-				<br><br>points to the definition of the field in the form
-	 which in turn defines the place holder in the
-	 template to replace with <value>
+				<br><br>useful for, say, dummy records where you want
+	 to mark up stuff like "pharmacy such-and-such"
+	 if you don't have it in your contacts
 				</td>
 			 </tr>
             
@@ -53608,15 +67690,15 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                 </td>
-            	<td>value</td>
+            	<td>contact</td>
             	<td>text</td>
                 <td><i>
 				
 
-				NOT NULL
+				
 				
 				</i>
-				<br><br>the value to replace the place holder with
+				<br><br>free-text contact information for this lab
 				</td>
 			 </tr>
             
@@ -53624,7 +67706,7 @@ D: proven diagnosis (diagnostisch gesichert)
 
         <!-- Inherits -->
 		
-        <p>Table clin.form_data Inherits
+        <p>Table clin.test_org Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-fields">audit_fields</a>, 
@@ -53638,9 +67720,49 @@ D: proven diagnosis (diagnostisch gesichert)
 
         <!-- Constraint List -->
 		
+        <p> </p>
+		<table width="100%" cellspacing="0" cellpadding="3">
+            <caption>clin.test_org Constraints</caption>
+            <tr>
+            	<th>Name</th>
+            	<th>Constraint</th>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>sane_comment</td>
+                <td>CHECK ((gm.is_null_or_non_empty_string(comment) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>sane_contact</td>
+                <td>CHECK ((gm.is_null_or_non_empty_string(contact) IS TRUE))</td>
+            </tr>
+			
+		</table>
+		
 
         <!-- Foreign Key Discovery -->
 		
+			<p>Tables referencing this one via Foreign Key Constraints:</p>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.lab-request">clin.lab_request</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.test-type">clin.test_type</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#staging.table.lab-request">staging.lab_request</a></li>
+			</ul>
+		
+		
 
     <!-- Indexes -->
     
@@ -53659,15 +67781,15 @@ D: proven diagnosis (diagnostisch gesichert)
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.form-instances">form_instances</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.test-panel">test_panel</a>
 		</h2>
         
-         <p>instances of forms, like a log of all processed forms</p>
+         <p>Panels of tests. The same test can appear in several panels.</p>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.form_instances Structure</caption>
+                <caption>clin.test_panel Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -53726,61 +67848,13 @@ D: proven diagnosis (diagnostisch gesichert)
             <tr class="tr1">
 				<td>
                 
-                </td>
-            	<td>modified_by</td>
-            	<td>name</td>
-                <td><i>
-				
-
-				NOT NULL
-				DEFAULT "current_user"()
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>pk_item</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				NOT NULL
-				DEFAULT nextval('clin_root_item_pk_item_seq'::regclass)
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>clin_when</td>
-            	<td>timestamp with time zone</td>
-                <td><i>
-				
-
-				NOT NULL
-				DEFAULT now()
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
                   
-                  <a href="gnumed-entire_schema.html#clin.table.encounter">clin.encounter.pk</a>
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
                   
                 
                 </td>
-            	<td>fk_encounter</td>
-            	<td>integer</td>
+            	<td>modified_by</td>
+            	<td>name</td>
                 <td><i>
 				
 					
@@ -53789,49 +67863,32 @@ D: proven diagnosis (diagnostisch gesichert)
 				
 
 				NOT NULL
-				
+				DEFAULT "current_user"()
 				</i>
 				
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                   
-                  <a href="gnumed-entire_schema.html#clin.table.episode">clin.episode.pk</a>
-                  
                 
                 </td>
-            	<td>fk_episode</td>
-            	<td>integer</td>
+            	<td>pk</td>
+            	<td>serial</td>
                 <td><i>
 				
+					PRIMARY KEY
 					
 
 					
 				
 
-				NOT NULL
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>narrative</td>
-            	<td>text</td>
-                <td><i>
-				
-
 				
 				
 				</i>
-				<br><br>can be used as a status field, eg. "printed", "faxed" etc.
+				
 				</td>
 			 </tr>
             
@@ -53839,7 +67896,7 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                 </td>
-            	<td>soap_cat</td>
+            	<td>description</td>
             	<td>text</td>
                 <td><i>
 				
@@ -53847,73 +67904,39 @@ D: proven diagnosis (diagnostisch gesichert)
 				
 				
 				</i>
-				
+				<br><br>A description/label for this panel.
 				</td>
 			 </tr>
             
             <tr class="tr0">
 				<td>
                 
-                  
-                
                 </td>
-            	<td>pk</td>
-            	<td>serial</td>
+            	<td>comment</td>
+            	<td>text</td>
                 <td><i>
 				
-					PRIMARY KEY
-					
-
-					
-				
 
 				
 				
 				</i>
-				
+				<br><br>An arbitrary comment on this panel.
 				</td>
 			 </tr>
             
             <tr class="tr1">
 				<td>
                 
-                  
-                  <a href="gnumed-entire_schema.html#ref.table.paperwork-templates">ref.paperwork_templates.pk</a>
-                  
-                
                 </td>
-            	<td>fk_form_def</td>
-            	<td>integer</td>
+            	<td>fk_test_types</td>
+            	<td>integer[]</td>
                 <td><i>
 				
-					
-
-					
-				
 
-				NOT NULL
-				
-				</i>
-				<br><br>points to the definition of this instance,
-	 this FK will fail once we start separating services,
-	 make it into a x_db_fk then
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>form_name</td>
-            	<td>text</td>
-                <td><i>
 				
-
-				NOT NULL
 				
 				</i>
-				<br><br>a string uniquely identifying the form template,
-	 necessary for the audit trail
+				<br><br>Links to test types which belong to this panel.
 				</td>
 			 </tr>
             
@@ -53921,10 +67944,10 @@ D: proven diagnosis (diagnostisch gesichert)
 
         <!-- Inherits -->
 		
-        <p>Table clin.form_instances Inherits
+        <p>Table clin.test_panel Inherits
         
             
-           <a href="gnumed-entire_schema.html#clin.table.clin-root-item">clin_root_item</a>, 
+           <a href="gnumed-entire_schema.html#audit.table.audit-fields">audit_fields</a>, 
         
         </p>
 		
@@ -53937,20 +67960,25 @@ D: proven diagnosis (diagnostisch gesichert)
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>clin.form_instances Constraints</caption>
+            <caption>clin.test_panel Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
-				<td>clin_root_item_sane_soap_cat</td>
-                <td>CHECK (((soap_cat IS NULL) OR (lower(soap_cat) = ANY (ARRAY['s'::text, 'o'::text, 'a'::text, 'p'::text, 'u'::text]))))</td>
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
             </tr>
 			
             <tr class="tr1">
-				<td>form_is_plan</td>
-                <td>CHECK ((soap_cat = 'p'::text))</td>
+				<td>clin_test_panel_sane_cmt</td>
+                <td>CHECK ((gm.is_null_or_non_empty_string(comment) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>clin_test_panel_sane_desc</td>
+                <td>CHECK ((gm.is_null_or_blank_string(description) IS FALSE))</td>
             </tr>
 			
 		</table>
@@ -53961,25 +67989,13 @@ D: proven diagnosis (diagnostisch gesichert)
 			<p>Tables referencing this one via Foreign Key Constraints:</p>
 		
 			<ul>
-				<li><a href="gnumed-entire_schema.html#au.table.referral">au.referral</a></li>
-			</ul>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#clin.table.form-data">clin.form_data</a></li>
-			</ul>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#public.table.form-job-queue">public.form_job_queue</a></li>
+				<li><a href="gnumed-entire_schema.html#clin.table.lnk-code2tst-pnl">clin.lnk_code2tst_pnl</a></li>
 			</ul>
 		
 		
 
     <!-- Indexes -->
     
-       idx_clin_form_instances_fk_encounter fk_encounter
-    
-       idx_clin_form_instances_fk_episode fk_episode
-    
 
 	<!-- View Definition -->
 	
@@ -53995,19 +68011,15 @@ D: proven diagnosis (diagnostisch gesichert)
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.health-issue">health_issue</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.test-result">test_result</a>
 		</h2>
         
-         <p>This is pretty much what others would call "Past Medical History"
-	 or "Foundational illness", eg. longer-ranging, underlying,
-	 encompassing issues with one's health such as "immunodeficiency",
-	 "type 2 diabetes". In Belgium it is called "problem".
-	 L.L.Weed includes lots of little things into it, we do not.</p>
+         <p>the results of a single measurement</p>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.health_issue Structure</caption>
+                <caption>clin.test_result Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -54066,11 +68078,19 @@ D: proven diagnosis (diagnostisch gesichert)
             <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
+                
                 </td>
             	<td>modified_by</td>
             	<td>name</td>
                 <td><i>
 				
+					
+
+					
+				
 
 				NOT NULL
 				DEFAULT "current_user"()
@@ -54082,21 +68102,14 @@ D: proven diagnosis (diagnostisch gesichert)
             <tr class="tr0">
 				<td>
                 
-                  
-                
                 </td>
-            	<td>pk</td>
-            	<td>serial</td>
+            	<td>pk_item</td>
+            	<td>integer</td>
                 <td><i>
 				
-					PRIMARY KEY
-					
-
-					
-				
 
-				
-				
+				NOT NULL
+				DEFAULT nextval('clin_root_item_pk_item_seq'::regclass)
 				</i>
 				
 				</td>
@@ -54106,52 +68119,66 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                 </td>
-            	<td>description</td>
-            	<td>text</td>
+            	<td>clin_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
 				NOT NULL
-				
+				DEFAULT now()
 				</i>
-				<br><br>descriptive name of this health issue, may
-	 change over time as evidence increases
+				<br><br>the time when this result was *actually* obtained,
+	 if this is a lab result this should be between
+	 lab_request.clin_when and lab_request.results_reported_when,
+	 HL7: OBR.observation_date_time
 				</td>
 			 </tr>
             
             <tr class="tr0">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#clin.table.encounter">clin.encounter.pk</a>
+                  
+                
                 </td>
-            	<td>laterality</td>
-            	<td>character varying(2)</td>
+            	<td>fk_encounter</td>
+            	<td>integer</td>
                 <td><i>
 				
+					
 
+					
+				
+
+				NOT NULL
 				
-				DEFAULT NULL::character varying
 				</i>
-				<br><br>NULL: don't know
-	 s: sinister - left
-	 d: dexter - right
-	 sd: sinister and dexter - both sides
-	 na: not applicable
+				
 				</td>
 			 </tr>
             
             <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#clin.table.episode">clin.episode.pk</a>
+                  
+                
                 </td>
-            	<td>age_noted</td>
-            	<td>interval</td>
+            	<td>fk_episode</td>
+            	<td>integer</td>
                 <td><i>
 				
+					
 
+					
 				
+
+				NOT NULL
 				
 				</i>
-				<br><br>at what age the patient acquired the condition
+				
 				</td>
 			 </tr>
             
@@ -54159,15 +68186,15 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                 </td>
-            	<td>is_active</td>
-            	<td>boolean</td>
+            	<td>narrative</td>
+            	<td>text</td>
                 <td><i>
 				
 
 				
-				DEFAULT true
+				
 				</i>
-				<br><br>whether this health issue (problem) is active
+				<br><br>clinical comment, progress note
 				</td>
 			 </tr>
             
@@ -54175,29 +68202,36 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                 </td>
-            	<td>clinically_relevant</td>
-            	<td>boolean</td>
+            	<td>soap_cat</td>
+            	<td>text</td>
                 <td><i>
 				
 
 				
-				DEFAULT true
+				DEFAULT 'o'::text
 				</i>
-				<br><br>whether this health issue (problem) has any clinical relevance
+				
 				</td>
 			 </tr>
             
             <tr class="tr0">
 				<td>
                 
+                  
+                
                 </td>
-            	<td>is_confidential</td>
-            	<td>boolean</td>
+            	<td>pk</td>
+            	<td>serial</td>
                 <td><i>
 				
+					PRIMARY KEY
+					
+
+					
+				
 
 				
-				DEFAULT false
+				
 				</i>
 				
 				</td>
@@ -54206,40 +68240,41 @@ D: proven diagnosis (diagnostisch gesichert)
             <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#clin.table.test-type">clin.test_type.pk</a>
+                  
+                
                 </td>
-            	<td>is_cause_of_death</td>
-            	<td>boolean</td>
+            	<td>fk_type</td>
+            	<td>integer</td>
                 <td><i>
 				
+					
+
+					
+				
 
 				NOT NULL
-				DEFAULT false
-				</i>
 				
+				</i>
+				<br><br>the type of test this result is from
 				</td>
 			 </tr>
             
             <tr class="tr0">
 				<td>
                 
-                  
-                  <a href="gnumed-entire_schema.html#clin.table.encounter">clin.encounter.pk</a>
-                  
-                
                 </td>
-            	<td>fk_encounter</td>
-            	<td>integer</td>
+            	<td>val_num</td>
+            	<td>numeric</td>
                 <td><i>
 				
-					
 
-					
 				
-
-				NOT NULL
 				
 				</i>
-				<br><br>The encounter during which this health issue was added.
+				<br><br>numeric value if any,
+	 HL7: OBX.observation_results if OBX.value_type == NM
 				</td>
 			 </tr>
             
@@ -54247,7 +68282,7 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                 </td>
-            	<td>grouping</td>
+            	<td>val_alpha</td>
             	<td>text</td>
                 <td><i>
 				
@@ -54255,8 +68290,8 @@ D: proven diagnosis (diagnostisch gesichert)
 				
 				
 				</i>
-				<br><br>This can be used to entirely arbitrarily group health
- issues felt to belong to each other.
+				<br><br>alphanumeric value if any,
+	 HL7: OBX.observation_results if OBX.value_type == FT
 				</td>
 			 </tr>
             
@@ -54264,7 +68299,7 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                 </td>
-            	<td>diagnostic_certainty_classification</td>
+            	<td>val_unit</td>
             	<td>text</td>
                 <td><i>
 				
@@ -54272,11 +68307,8 @@ D: proven diagnosis (diagnostisch gesichert)
 				
 				
 				</i>
-				<br><br>The certainty at which this issue is believed to be a diagnosis:
-A: sign (Symptom)
-B: cluster of signs (Symptomkomplex)
-C: syndromic diagnosis (Bild einer Diagnose)
-D: proven diagnosis (diagnostisch gesichert)
+				<br><br>the unit this result came in
+	 HL7: OBX.units
 				</td>
 			 </tr>
             
@@ -54284,138 +68316,33 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                 </td>
-            	<td>summary</td>
-            	<td>text</td>
+            	<td>val_normal_min</td>
+            	<td>numeric</td>
                 <td><i>
 				
 
 				
 				
 				</i>
-				<br><br>Used for tracking the summary of this health issue.
-				</td>
-			 </tr>
-            
-        </table>
-
-        <!-- Inherits -->
-		
-        <p>Table clin.health_issue Inherits
-        
-            
-           <a href="gnumed-entire_schema.html#audit.table.audit-fields">audit_fields</a>, 
-        
-        </p>
-		
-
-		
-		
-		
-
-        <!-- Constraint List -->
-		
-        <p> </p>
-		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>clin.health_issue Constraints</caption>
-            <tr>
-            	<th>Name</th>
-            	<th>Constraint</th>
-            </tr>
-			
-            <tr class="tr0">
-				<td>health_issue_laterality_check</td>
-                <td>CHECK (((laterality)::text = ANY (ARRAY[(NULL::character varying)::text, ('s'::character varying)::text, ('d'::character varying)::text, ('sd'::character varying)::text, ('na'::character varying)::text])))</td>
-            </tr>
-			
-            <tr class="tr1">
-				<td>health_issue_sane_summary</td>
-                <td>CHECK (gm.is_null_or_non_empty_string(summary))</td>
-            </tr>
-			
-            <tr class="tr0">
-				<td>issue_name_not_empty</td>
-                <td>CHECK ((btrim(description) <> ''::text))</td>
-            </tr>
-			
-            <tr class="tr1">
-				<td>sane_grouping</td>
-                <td>CHECK (gm.is_null_or_non_empty_string(grouping))</td>
-            </tr>
-			
-            <tr class="tr0">
-				<td>valid_diagnostic_certainty_classification</td>
-                <td>CHECK ((diagnostic_certainty_classification = ANY (ARRAY['A'::text, 'B'::text, 'C'::text, 'D'::text, NULL::text])))</td>
-            </tr>
-			
-		</table>
-		
-
-        <!-- Foreign Key Discovery -->
-		
-			<p>Tables referencing this one via Foreign Key Constraints:</p>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#clin.table.episode">clin.episode</a></li>
-			</ul>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#clin.table.external-care">clin.external_care</a></li>
-			</ul>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#clin.table.lnk-code2h-issue">clin.lnk_code2h_issue</a></li>
-			</ul>
-		
-		
-
-    <!-- Indexes -->
-    
-       idx_health_issue_modified_by modified_by
-    
-
-	<!-- View Definition -->
-	
-
-	<!-- List off permissions -->
-	
-
-	<p>
-		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
-    </p>
-	
-        <hr>
-		<h2>Table:
-			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.hospital-stay">hospital_stay</a>
-		</h2>
-        
-         <p>collects data on hospitalisations of patients, reasons are linked via a link table</p>
-        
-
-
-        <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.hospital_stay Structure</caption>
-                <tr>
-                <th>F-Key</th>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Description</th>
-                </tr>
+				<br><br>lower bound of normal range if numerical as
+	 defined by provider for this result
+				</td>
+			 </tr>
             
             <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>pk_audit</td>
-            	<td>integer</td>
+            	<td>val_normal_max</td>
+            	<td>numeric</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT nextval('audit.audit_fields_pk_audit_seq'::regclass)
-				</i>
 				
+				
+				</i>
+				<br><br>upper bound of normal range if numerical as
+	 defined by provider for this result
 				</td>
 			 </tr>
             
@@ -54423,15 +68350,18 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                 </td>
-            	<td>row_version</td>
-            	<td>integer</td>
+            	<td>val_normal_range</td>
+            	<td>text</td>
                 <td><i>
 				
 
-				NOT NULL
 				
-				</i>
 				
+				</i>
+				<br><br>range of normal values if alphanumerical
+	 as defined by provider for this result, eg.
+	 "less than 0.5 but detectable"
+	 HL7: OBX.reference_range
 				</td>
 			 </tr>
             
@@ -54439,15 +68369,16 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                 </td>
-            	<td>modified_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>val_target_min</td>
+            	<td>numeric</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT now()
-				</i>
 				
+				
+				</i>
+				<br><br>lower bound of target range if numerical as
+	 defined by clinician caring this patient
 				</td>
 			 </tr>
             
@@ -54455,15 +68386,16 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                 </td>
-            	<td>modified_by</td>
-            	<td>name</td>
+            	<td>val_target_max</td>
+            	<td>numeric</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT "current_user"()
-				</i>
 				
+				
+				</i>
+				<br><br>upper bound of target range if numerical as
+	 defined by clinician caring for this patient
 				</td>
 			 </tr>
             
@@ -54471,15 +68403,16 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                 </td>
-            	<td>pk_item</td>
-            	<td>integer</td>
+            	<td>val_target_range</td>
+            	<td>text</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT nextval('clin_root_item_pk_item_seq'::regclass)
-				</i>
 				
+				
+				</i>
+				<br><br>range of target values if alphanumerical
+	 as defined by clinician caring for this patient
 				</td>
 			 </tr>
             
@@ -54487,63 +68420,52 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                 </td>
-            	<td>clin_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>abnormality_indicator</td>
+            	<td>text</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT now()
+				
+				
 				</i>
-				<br><br>to be used as when the patient was admitted
+				<br><br>how the test provider flagged this result as abnormal,
+	 *not* a clinical assessment but rather a technical one
+	 LDT: 8422
 				</td>
 			 </tr>
             
             <tr class="tr0">
 				<td>
                 
-                  
-                  <a href="gnumed-entire_schema.html#clin.table.encounter">clin.encounter.pk</a>
-                  
-                
                 </td>
-            	<td>fk_encounter</td>
-            	<td>integer</td>
+            	<td>norm_ref_group</td>
+            	<td>text</td>
                 <td><i>
 				
-					
 
-					
 				
-
-				NOT NULL
 				
 				</i>
-				
+				<br><br>what sample of the population does this normal range
+	 applay to, eg what type of patient was assumed when
+	 interpreting this result,
+	 LDT: 8407
 				</td>
 			 </tr>
             
             <tr class="tr1">
 				<td>
                 
-                  
-                  <a href="gnumed-entire_schema.html#clin.table.episode">clin.episode.pk</a>
-                  
-                
                 </td>
-            	<td>fk_episode</td>
-            	<td>integer</td>
+            	<td>note_test_org</td>
+            	<td>text</td>
                 <td><i>
 				
-					
 
-					
 				
-
-				NOT NULL
 				
 				</i>
-				
+				<br><br>A comment on the test result provided by the tester or testing entity.
 				</td>
 			 </tr>
             
@@ -54551,7 +68473,7 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                 </td>
-            	<td>narrative</td>
+            	<td>material</td>
             	<td>text</td>
                 <td><i>
 				
@@ -54559,7 +68481,8 @@ D: proven diagnosis (diagnostisch gesichert)
 				
 				
 				</i>
-				<br><br>a comment on the hospital stay
+				<br><br>the submitted material, eg. smear, serum, urine, etc.,
+	 LDT: 8430
 				</td>
 			 </tr>
             
@@ -54567,7 +68490,7 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                 </td>
-            	<td>soap_cat</td>
+            	<td>material_detail</td>
             	<td>text</td>
                 <td><i>
 				
@@ -54575,7 +68498,8 @@ D: proven diagnosis (diagnostisch gesichert)
 				
 				
 				</i>
-				
+				<br><br>details re the material, eg. site taken from, etc.
+	 LDT: 8431
 				</td>
 			 </tr>
             
@@ -54583,62 +68507,95 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                   
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.pk</a>
+                  
                 
                 </td>
-            	<td>pk</td>
-            	<td>serial</td>
+            	<td>fk_intended_reviewer</td>
+            	<td>integer</td>
                 <td><i>
 				
-					PRIMARY KEY
 					
 
 					
 				
 
-				
+				NOT NULL
 				
 				</i>
-				
+				<br><br>who is *supposed* to review this item
 				</td>
 			 </tr>
             
             <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#clin.table.lab-request">clin.lab_request.pk</a>
+                  
+                
                 </td>
-            	<td>discharge</td>
-            	<td>timestamp with time zone</td>
+            	<td>fk_request</td>
+            	<td>integer</td>
                 <td><i>
 				
+					
+
+					
+				
 
 				
 				
 				</i>
-				<br><br>when was the patient discharged
+				<br><br>The request this result was ordered under if any.
 				</td>
 			 </tr>
             
             <tr class="tr0">
 				<td>
                 
-                  
-                  <a href="gnumed-entire_schema.html#dem.table.org-unit">dem.org_unit.pk</a>
-                  
+                </td>
+            	<td>status</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				<br><br>The result status (say, HL7 OBX 11 Observ result status (#00579, table 0085).
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
                 
                 </td>
-            	<td>fk_org_unit</td>
-            	<td>integer</td>
+            	<td>source_data</td>
+            	<td>text</td>
                 <td><i>
 				
-					
 
-					
+				
+				
+				</i>
+				<br><br>The source data for this observation (say, HL7 OBX).
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>val_grouping</td>
+            	<td>text</td>
+                <td><i>
 				
 
-				NOT NULL
+				
 				
 				</i>
-				<br><br>links to the hospital the patient was admitted to
+				<br><br>A grouping for related values (say, HL7 OBX Obs Sub ID, think antibiogram).
 				</td>
 			 </tr>
             
@@ -54646,7 +68603,7 @@ D: proven diagnosis (diagnostisch gesichert)
 
         <!-- Inherits -->
 		
-        <p>Table clin.hospital_stay Inherits
+        <p>Table clin.test_result Inherits
         
             
            <a href="gnumed-entire_schema.html#clin.table.clin-root-item">clin_root_item</a>, 
@@ -54662,25 +68619,45 @@ D: proven diagnosis (diagnostisch gesichert)
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>clin.hospital_stay Constraints</caption>
+            <caption>clin.test_result Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>clin_root_item_sane_soap_cat</td>
                 <td>CHECK (((soap_cat IS NULL) OR (lower(soap_cat) = ANY (ARRAY['s'::text, 'o'::text, 'a'::text, 'p'::text, 'u'::text]))))</td>
             </tr>
 			
+            <tr class="tr0">
+				<td>clin_test_result_sane_source_data</td>
+                <td>CHECK (gm.is_null_or_non_empty_string(source_data))</td>
+            </tr>
+			
             <tr class="tr1">
-				<td>sane_duration</td>
-                <td>CHECK (((discharge IS NULL) OR (discharge > clin_when)))</td>
+				<td>clin_test_result_sane_status</td>
+                <td>CHECK (gm.is_null_or_non_empty_string(status))</td>
             </tr>
 			
             <tr class="tr0">
-				<td>sane_hospital</td>
-                <td>CHECK (gm.is_null_or_non_empty_string(narrative))</td>
+				<td>clin_test_result_sane_val_grouping</td>
+                <td>CHECK (gm.is_null_or_non_empty_string(val_grouping))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>numval_needs_unit</td>
+                <td>CHECK ((((val_num IS NOT NULL) AND (btrim(COALESCE(val_unit, ''::text)) <> ''::text)) OR (val_num IS NULL)))</td>
+            </tr>
+			
+            <tr class="tr0">
+				<td>test_result_check</td>
+                <td>CHECK ((((val_num IS NOT NULL) OR (val_alpha IS NOT NULL)) OR (((val_num IS NULL) AND (val_alpha <> ''::text)) AND (val_alpha IS NOT NULL))))</td>
             </tr>
 			
 		</table>
@@ -54691,20 +68668,22 @@ D: proven diagnosis (diagnostisch gesichert)
 			<p>Tables referencing this one via Foreign Key Constraints:</p>
 		
 			<ul>
-				<li><a href="gnumed-entire_schema.html#blobs.table.lnk-doc2hospital-stay">blobs.lnk_doc2hospital_stay</a></li>
-			</ul>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#clin.table.procedure">clin.procedure</a></li>
+				<li><a href="gnumed-entire_schema.html#clin.table.reviewed-test-results">clin.reviewed_test_results</a></li>
 			</ul>
 		
 		
 
     <!-- Indexes -->
     
-       idx_clin_hospital_stay_fk_encounter fk_encounter
+       idx_clin_test_result_fk_encounter fk_encounter
     
-       idx_clin_hospital_stay_fk_episode fk_episode
+       idx_clin_test_result_fk_episode fk_episode
+    
+       idx_test_result_fk_type fk_type
+    
+       idx_test_result_status status
+    
+       idx_test_result_unit val_unit
     
 
 	<!-- View Definition -->
@@ -54721,17 +68700,15 @@ D: proven diagnosis (diagnostisch gesichert)
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.incoming-data-unmatchable">incoming_data_unmatchable</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.test-type">test_type</a>
 		</h2>
         
-         <p>this table holds test results that could not be matched
-	 to any patient, it is intended to prevent overflow of
-	 incoming_data_unmatched with unmatchable data</p>
+         <p>measurement type, like a "method" in a lab</p>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.incoming_data_unmatchable Structure</caption>
+                <caption>clin.test_type Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -54790,11 +68767,19 @@ D: proven diagnosis (diagnostisch gesichert)
             <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
+                
                 </td>
             	<td>modified_by</td>
             	<td>name</td>
                 <td><i>
 				
+					
+
+					
+				
 
 				NOT NULL
 				DEFAULT "current_user"()
@@ -54829,64 +68814,65 @@ D: proven diagnosis (diagnostisch gesichert)
             <tr class="tr1">
 				<td>
                 
-                </td>
-            	<td>fk_patient_candidates</td>
-            	<td>integer[]</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
+                  
+                
+                  
+                
+                  
+                  <a href="gnumed-entire_schema.html#clin.table.test-org">clin.test_org.pk</a>
+                  
                 
                 </td>
-            	<td>request_id</td>
-            	<td>text</td>
+            	<td>fk_test_org</td>
+            	<td>integer</td>
                 <td><i>
 				
+					
 
+					
+                       UNIQUE#1
+                    
 				
+					
+
+					
+                       UNIQUE#2
+                    
 				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>firstnames</td>
-            	<td>text</td>
-                <td><i>
-				
+					
 
+					
 				
+
+				NOT NULL
 				
 				</i>
-				
+				<br><br>organisation carrying out this type of measurement, eg. a particular lab
 				</td>
 			 </tr>
             
             <tr class="tr0">
 				<td>
                 
+                  
+                
                 </td>
-            	<td>lastnames</td>
+            	<td>name</td>
             	<td>text</td>
                 <td><i>
 				
+					
 
+					
+                       UNIQUE#2
+                    
 				
+
+				NOT NULL
 				
 				</i>
-				
+				<br><br>descriptive name of this measurement type,
+	 HL7: OBX.observation_identifier
 				</td>
 			 </tr>
             
@@ -54894,15 +68880,16 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                 </td>
-            	<td>dob</td>
-            	<td>date</td>
+            	<td>comment</td>
+            	<td>text</td>
                 <td><i>
 				
 
 				
 				
 				</i>
-				
+				<br><br>arbitrary comment on this type of measurement/test such
+	 as "outdated" or "only reliable when ..."
 				</td>
 			 </tr>
             
@@ -54910,7 +68897,7 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                 </td>
-            	<td>postcode</td>
+            	<td>reference_unit</td>
             	<td>text</td>
                 <td><i>
 				
@@ -54918,7 +68905,7 @@ D: proven diagnosis (diagnostisch gesichert)
 				
 				
 				</i>
-				
+				<br><br>The chosen reference unit for this test type, preferably SI, used for comparing results delivered in differing units. This does not relate to what unit the test provider delivers results in but rather the unit we think those results need to be converted to in order to be comparable to OTHER results.
 				</td>
 			 </tr>
             
@@ -54926,7 +68913,7 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                 </td>
-            	<td>other_info</td>
+            	<td>loinc</td>
             	<td>text</td>
                 <td><i>
 				
@@ -54941,26 +68928,18 @@ D: proven diagnosis (diagnostisch gesichert)
             <tr class="tr0">
 				<td>
                 
+                  
+                
                 </td>
-            	<td>type</td>
+            	<td>abbrev</td>
             	<td>text</td>
                 <td><i>
 				
+					
 
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>data</td>
-            	<td>bytea</td>
-                <td><i>
+					
+                       UNIQUE#1
+                    
 				
 
 				NOT NULL
@@ -54970,67 +68949,27 @@ D: proven diagnosis (diagnostisch gesichert)
 				</td>
 			 </tr>
             
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>gender</td>
-            	<td>text</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
             <tr class="tr1">
 				<td>
                 
-                </td>
-            	<td>requestor</td>
-            	<td>text</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
+                  
+                  <a href="gnumed-entire_schema.html#clin.table.meta-test-type">clin.meta_test_type.pk</a>
+                  
                 
                 </td>
-            	<td>external_data_id</td>
-            	<td>text</td>
+            	<td>fk_meta_test_type</td>
+            	<td>integer</td>
                 <td><i>
 				
+					
 
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>fk_identity_disambiguated</td>
-            	<td>integer</td>
-                <td><i>
+					
 				
 
 				
 				
 				</i>
-				
+				<br><br>Link to the meta test type (if any) this test type is to be aggregated under.
 				</td>
 			 </tr>
             
@@ -55038,7 +68977,7 @@ D: proven diagnosis (diagnostisch gesichert)
 
         <!-- Inherits -->
 		
-        <p>Table clin.incoming_data_unmatchable Inherits
+        <p>Table clin.test_type Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-fields">audit_fields</a>, 
@@ -55052,12 +68991,48 @@ D: proven diagnosis (diagnostisch gesichert)
 
         <!-- Constraint List -->
 		
+        <p> </p>
+		<table width="100%" cellspacing="0" cellpadding="3">
+            <caption>clin.test_type Constraints</caption>
+            <tr>
+            	<th>Name</th>
+            	<th>Constraint</th>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+		</table>
+		
 
         <!-- Foreign Key Discovery -->
 		
+			<p>Tables referencing this one via Foreign Key Constraints:</p>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.lnk-tst2norm">clin.lnk_tst2norm</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.test-result">clin.test_result</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#de-de.table.lab-test-gnr">de_de.lab_test_gnr</a></li>
+			</ul>
+		
+		
 
     <!-- Indexes -->
     
+       idx_test_type_fk_meta_test_type fk_meta_test_type
+    
+       idx_test_type_fk_test_org fk_test_org
+    
+       idx_test_type_loinc loinc
+    
 
 	<!-- View Definition -->
 	
@@ -55071,20 +69046,15 @@ D: proven diagnosis (diagnostisch gesichert)
     </p>
 	
         <hr>
-		<h2>Table:
+		<h2>View:
 			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.incoming-data-unmatched">incoming_data_unmatched</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-brand-intakes">v_brand_intakes</a>
 		</h2>
         
-         <p>this table holds incoming data (lab results, documents)
-	 that could not be matched to one single patient automatically,
-	 it is intended to facilitate manual matching,
-	 - use "modified_when" for import time</p>
-        
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.incoming_data_unmatched Structure</caption>
+                <caption>clin.v_brand_intakes Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -55096,13 +69066,13 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                 </td>
-            	<td>pk_audit</td>
+            	<td>pk_substance_intake</td>
             	<td>integer</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT nextval('audit.audit_fields_pk_audit_seq'::regclass)
+				
+				
 				</i>
 				
 				</td>
@@ -55112,12 +69082,12 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                 </td>
-            	<td>row_version</td>
+            	<td>pk_patient</td>
             	<td>integer</td>
                 <td><i>
 				
 
-				NOT NULL
+				
 				
 				</i>
 				
@@ -55128,13 +69098,13 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                 </td>
-            	<td>modified_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>soap_cat</td>
+            	<td>text</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT now()
+				
+				
 				</i>
 				
 				</td>
@@ -55144,13 +69114,13 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                 </td>
-            	<td>modified_by</td>
-            	<td>name</td>
+            	<td>brand</td>
+            	<td>text</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT "current_user"()
+				
+				
 				</i>
 				
 				</td>
@@ -55159,18 +69129,11 @@ D: proven diagnosis (diagnostisch gesichert)
             <tr class="tr0">
 				<td>
                 
-                  
-                
                 </td>
-            	<td>pk</td>
-            	<td>serial</td>
+            	<td>preparation</td>
+            	<td>text</td>
                 <td><i>
 				
-					PRIMARY KEY
-					
-
-					
-				
 
 				
 				
@@ -55183,17 +69146,15 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                 </td>
-            	<td>fk_patient_candidates</td>
-            	<td>integer[]</td>
+            	<td>substance</td>
+            	<td>text</td>
                 <td><i>
 				
 
 				
 				
 				</i>
-				<br><br>a matching algorithm can be applied to produce
-	 a list of likely candidate patients, the question
-	 remains whether this should not be done at runtime
+				
 				</td>
 			 </tr>
             
@@ -55201,15 +69162,15 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                 </td>
-            	<td>request_id</td>
-            	<td>text</td>
+            	<td>amount</td>
+            	<td>numeric</td>
                 <td><i>
 				
 
 				
 				
 				</i>
-				<br><br>request ID as found in <data>
+				
 				</td>
 			 </tr>
             
@@ -55217,7 +69178,7 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                 </td>
-            	<td>firstnames</td>
+            	<td>unit</td>
             	<td>text</td>
                 <td><i>
 				
@@ -55225,7 +69186,7 @@ D: proven diagnosis (diagnostisch gesichert)
 				
 				
 				</i>
-				<br><br>first names as found in <data>
+				
 				</td>
 			 </tr>
             
@@ -55233,7 +69194,7 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                 </td>
-            	<td>lastnames</td>
+            	<td>atc_substance</td>
             	<td>text</td>
                 <td><i>
 				
@@ -55241,7 +69202,7 @@ D: proven diagnosis (diagnostisch gesichert)
 				
 				
 				</i>
-				<br><br>last names as found in <data>
+				
 				</td>
 			 </tr>
             
@@ -55249,15 +69210,15 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                 </td>
-            	<td>dob</td>
-            	<td>date</td>
+            	<td>atc_brand</td>
+            	<td>text</td>
                 <td><i>
 				
 
 				
 				
 				</i>
-				<br><br>date of birth as found in <data>
+				
 				</td>
 			 </tr>
             
@@ -55265,7 +69226,7 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                 </td>
-            	<td>postcode</td>
+            	<td>external_code_brand</td>
             	<td>text</td>
                 <td><i>
 				
@@ -55273,7 +69234,7 @@ D: proven diagnosis (diagnostisch gesichert)
 				
 				
 				</i>
-				<br><br>postcode as found in <data>
+				
 				</td>
 			 </tr>
             
@@ -55281,7 +69242,7 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                 </td>
-            	<td>other_info</td>
+            	<td>external_code_type_brand</td>
             	<td>text</td>
                 <td><i>
 				
@@ -55289,7 +69250,7 @@ D: proven diagnosis (diagnostisch gesichert)
 				
 				
 				</i>
-				<br><br>other identifying information as found in <data>
+				
 				</td>
 			 </tr>
             
@@ -55297,16 +69258,15 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                 </td>
-            	<td>type</td>
-            	<td>text</td>
+            	<td>started</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
 				
 				
 				</i>
-				<br><br>the type of <data>, eg HL7, LDT, ...,
-	 useful for selecting an importer
+				
 				</td>
 			 </tr>
             
@@ -55314,15 +69274,15 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                 </td>
-            	<td>data</td>
-            	<td>bytea</td>
+            	<td>comment_on_start</td>
+            	<td>text</td>
                 <td><i>
 				
 
-				NOT NULL
+				
 				
 				</i>
-				<br><br>the raw data
+				
 				</td>
 			 </tr>
             
@@ -55330,15 +69290,15 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                 </td>
-            	<td>gender</td>
-            	<td>text</td>
+            	<td>start_is_unknown</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
 				
 				
 				</i>
-				<br><br>Gender of patient in source data if available.
+				
 				</td>
 			 </tr>
             
@@ -55346,15 +69306,15 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                 </td>
-            	<td>requestor</td>
-            	<td>text</td>
+            	<td>start_is_approximate</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
 				
 				
 				</i>
-				<br><br>Requestor of data (e.g. who ordered test results) if available in source data.
+				
 				</td>
 			 </tr>
             
@@ -55362,39 +69322,31 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                 </td>
-            	<td>external_data_id</td>
-            	<td>text</td>
+            	<td>intake_is_approved_of</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
 				
 				
 				</i>
-				<br><br>ID of content of .data in external system (e.g. importer) where appropriate
+				
 				</td>
 			 </tr>
             
             <tr class="tr1">
 				<td>
                 
-                  
-                  <a href="gnumed-entire_schema.html#clin.table.patient">clin.patient.fk_identity</a>
-                  
-                
                 </td>
-            	<td>fk_identity_disambiguated</td>
+            	<td>harmful_use_type</td>
             	<td>integer</td>
                 <td><i>
 				
-					
-
-					
-				
 
 				
 				
 				</i>
-				<br><br>ID of patient the data is judged to really belong to.
+				
 				</td>
 			 </tr>
             
@@ -55402,123 +69354,45 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                 </td>
-            	<td>comment</td>
-            	<td>text</td>
+            	<td>last_checked_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
 				
 				
 				</i>
-				<br><br>a free text comment on this row, eg. why is it here
+				
 				</td>
 			 </tr>
             
             <tr class="tr1">
 				<td>
                 
-                  
-                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.pk</a>
-                  
-                
                 </td>
-            	<td>fk_provider_disambiguated</td>
-            	<td>integer</td>
+            	<td>schedule</td>
+            	<td>text</td>
                 <td><i>
 				
-					
-
-					
-				
 
 				
 				
 				</i>
-				<br><br>The provider the data is relevant to.
+				
 				</td>
 			 </tr>
             
-        </table>
-
-        <!-- Inherits -->
-		
-        <p>Table clin.incoming_data_unmatched Inherits
-        
-            
-           <a href="gnumed-entire_schema.html#audit.table.audit-fields">audit_fields</a>, 
-        
-        </p>
-		
-
-		
-		
-		
-
-        <!-- Constraint List -->
-		
-        <p> </p>
-		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>clin.incoming_data_unmatched Constraints</caption>
-            <tr>
-            	<th>Name</th>
-            	<th>Constraint</th>
-            </tr>
-			
-            <tr class="tr0">
-				<td>unmatched_data_sane_comment</td>
-                <td>CHECK ((gm.is_null_or_non_empty_string(comment) IS TRUE))</td>
-            </tr>
-			
-		</table>
-		
-
-        <!-- Foreign Key Discovery -->
-		
-
-    <!-- Indexes -->
-    
-
-	<!-- View Definition -->
-	
-
-	<!-- List off permissions -->
-	
-
-	<p>
-		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
-    </p>
-	
-        <hr>
-		<h2>Table:
-			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.lab-request">lab_request</a>
-		</h2>
-        
-         <p>test request metadata</p>
-        
-
-
-        <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.lab_request Structure</caption>
-                <tr>
-                <th>F-Key</th>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Description</th>
-                </tr>
-            
             <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>pk_audit</td>
-            	<td>integer</td>
+            	<td>duration</td>
+            	<td>interval</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT nextval('audit.audit_fields_pk_audit_seq'::regclass)
+				
+				
 				</i>
 				
 				</td>
@@ -55528,12 +69402,12 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                 </td>
-            	<td>row_version</td>
-            	<td>integer</td>
+            	<td>discontinued</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
-				NOT NULL
+				
 				
 				</i>
 				
@@ -55544,13 +69418,13 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                 </td>
-            	<td>modified_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>discontinue_reason</td>
+            	<td>text</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT now()
+				
+				
 				</i>
 				
 				</td>
@@ -55560,13 +69434,13 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                 </td>
-            	<td>modified_by</td>
-            	<td>name</td>
+            	<td>is_long_term</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT "current_user"()
+				
+				
 				</i>
 				
 				</td>
@@ -55576,13 +69450,13 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                 </td>
-            	<td>pk_item</td>
-            	<td>integer</td>
+            	<td>aim</td>
+            	<td>text</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT nextval('clin_root_item_pk_item_seq'::regclass)
+				
+				
 				</i>
 				
 				</td>
@@ -55592,38 +69466,28 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                 </td>
-            	<td>clin_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>episode</td>
+            	<td>text</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT now()
+				
+				
 				</i>
-				<br><br>the time the sample for this request was taken
-	 LDT: 8432:8433
-	 HL7: OBR.quantity_timing
+				
 				</td>
 			 </tr>
             
             <tr class="tr0">
 				<td>
                 
-                  
-                  <a href="gnumed-entire_schema.html#clin.table.encounter">clin.encounter.pk</a>
-                  
-                
                 </td>
-            	<td>fk_encounter</td>
-            	<td>integer</td>
+            	<td>health_issue</td>
+            	<td>text</td>
                 <td><i>
 				
-					
 
-					
 				
-
-				NOT NULL
 				
 				</i>
 				
@@ -55633,21 +69497,13 @@ D: proven diagnosis (diagnostisch gesichert)
             <tr class="tr1">
 				<td>
                 
-                  
-                  <a href="gnumed-entire_schema.html#clin.table.episode">clin.episode.pk</a>
-                  
-                
                 </td>
-            	<td>fk_episode</td>
-            	<td>integer</td>
+            	<td>notes</td>
+            	<td>text</td>
                 <td><i>
 				
-					
 
-					
 				
-
-				NOT NULL
 				
 				</i>
 				
@@ -55658,15 +69514,15 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                 </td>
-            	<td>narrative</td>
-            	<td>text</td>
+            	<td>fake_brand</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
 				
 				
 				</i>
-				<br><br>free text comment on request
+				
 				</td>
 			 </tr>
             
@@ -55674,13 +69530,13 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                 </td>
-            	<td>soap_cat</td>
-            	<td>text</td>
+            	<td>is_currently_active</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
 				
-				DEFAULT 'p'::text
+				
 				</i>
 				
 				</td>
@@ -55689,18 +69545,11 @@ D: proven diagnosis (diagnostisch gesichert)
             <tr class="tr0">
 				<td>
                 
-                  
-                
                 </td>
-            	<td>pk</td>
-            	<td>serial</td>
+            	<td>seems_inactive</td>
+            	<td>boolean</td>
                 <td><i>
 				
-					PRIMARY KEY
-					
-
-					
-				
 
 				
 				
@@ -55712,27 +69561,11 @@ D: proven diagnosis (diagnostisch gesichert)
             <tr class="tr1">
 				<td>
                 
-                  
-                  <a href="gnumed-entire_schema.html#clin.table.test-org">clin.test_org.pk</a>
-                  
-                
-                  
-                
                 </td>
-            	<td>fk_test_org</td>
+            	<td>pk_brand</td>
             	<td>integer</td>
                 <td><i>
 				
-					
-
-					
-				
-					
-
-					
-                       UNIQUE#1
-                    
-				
 
 				
 				
@@ -55744,50 +69577,32 @@ D: proven diagnosis (diagnostisch gesichert)
             <tr class="tr0">
 				<td>
                 
-                  
-                
                 </td>
-            	<td>request_id</td>
-            	<td>text</td>
+            	<td>pk_data_source</td>
+            	<td>integer</td>
                 <td><i>
 				
-					
 
-					
-                       UNIQUE#1
-                    
 				
-
-				NOT NULL
 				
 				</i>
-				<br><br>ID this request had when sent to the lab
-	 LDT: 8310
-	 HL7: OBR.filler_order_number
+				
 				</td>
 			 </tr>
             
             <tr class="tr1">
 				<td>
                 
-                  
-                  <a href="gnumed-entire_schema.html#dem.table.identity">dem.identity.pk</a>
-                  
-                
                 </td>
-            	<td>fk_requestor</td>
+            	<td>pk_substance</td>
             	<td>integer</td>
                 <td><i>
 				
-					
-
-					
-				
 
 				
 				
 				</i>
-				<br><br>who requested the test - really needed ?
+				
 				</td>
 			 </tr>
             
@@ -55795,16 +69610,15 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                 </td>
-            	<td>lab_request_id</td>
-            	<td>text</td>
+            	<td>pk_drug_component</td>
+            	<td>integer</td>
                 <td><i>
 				
 
 				
 				
 				</i>
-				<br><br>ID this request had internally at the lab
-	 LDT: 8311
+				
 				</td>
 			 </tr>
             
@@ -55812,17 +69626,15 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                 </td>
-            	<td>lab_rxd_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>pk_encounter</td>
+            	<td>integer</td>
                 <td><i>
 				
 
 				
 				
 				</i>
-				<br><br>when did the lab receive the request+sample
-	 LDT: 8301
-	 HL7: OBR.requested_date_time
+				
 				</td>
 			 </tr>
             
@@ -55830,17 +69642,15 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                 </td>
-            	<td>results_reported_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>pk_episode</td>
+            	<td>integer</td>
                 <td><i>
 				
 
 				
 				
 				</i>
-				<br><br>when was the report on the result generated,
-	LDT: 8302
-	HL7: OBR.results_report_status_change
+				
 				</td>
 			 </tr>
             
@@ -55848,16 +69658,15 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                 </td>
-            	<td>request_status</td>
-            	<td>text</td>
+            	<td>pk_health_issue</td>
+            	<td>integer</td>
                 <td><i>
 				
 
-				NOT NULL
+				
 				
 				</i>
-				<br><br>pending, final, preliminary, partial
-	 LDT: 8401
+				
 				</td>
 			 </tr>
             
@@ -55865,15 +69674,15 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                 </td>
-            	<td>is_pending</td>
-            	<td>boolean</td>
+            	<td>modified_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT true
+				
+				
 				</i>
-				<br><br>true if any (even partial) results are still pending
+				
 				</td>
 			 </tr>
             
@@ -55881,18 +69690,15 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                 </td>
-            	<td>diagnostic_service_section</td>
-            	<td>text</td>
+            	<td>modified_by</td>
+            	<td>name</td>
                 <td><i>
 				
 
 				
 				
 				</i>
-				<br><br>The (section of) the diagnostic service which performed the test.
-- HL7 2.3: OBR:24 Diagnostic Service Section ID
-- somewhat redundant with fk_test_org, which, however,
-  points to more normalized data
+				
 				</td>
 			 </tr>
             
@@ -55900,16 +69706,15 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                 </td>
-            	<td>ordered_service</td>
-            	<td>text</td>
+            	<td>row_version</td>
+            	<td>integer</td>
                 <td><i>
 				
 
 				
 				
 				</i>
-				<br><br>The (battery of) test(s)/service(s) ordered.
-- HL7 2.3: OBR:4 Universal Service ID
+				
 				</td>
 			 </tr>
             
@@ -55917,15 +69722,15 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                 </td>
-            	<td>note_test_org</td>
-            	<td>text</td>
+            	<td>xmin_substance_intake</td>
+            	<td>xid</td>
                 <td><i>
 				
 
 				
 				
 				</i>
-				<br><br>A comment on this lab request by the performing organization (lab).
+				
 				</td>
 			 </tr>
             
@@ -55933,70 +69738,197 @@ D: proven diagnosis (diagnostisch gesichert)
 
         <!-- Inherits -->
 		
-        <p>Table clin.lab_request Inherits
-        
-            
-           <a href="gnumed-entire_schema.html#clin.table.clin-root-item">clin_root_item</a>, 
-        
-        </p>
-		
 
 		
-		
-		
 
         <!-- Constraint List -->
 		
-        <p> </p>
-		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>clin.lab_request Constraints</caption>
-            <tr>
-            	<th>Name</th>
-            	<th>Constraint</th>
-            </tr>
-			
-            <tr class="tr0">
-				<td>clin_lab_req_sane_test_org_note</td>
-                <td>CHECK ((gm.is_null_or_non_empty_string(note_test_org) IS TRUE))</td>
-            </tr>
-			
-            <tr class="tr1">
-				<td>clin_root_item_sane_soap_cat</td>
-                <td>CHECK (((soap_cat IS NULL) OR (lower(soap_cat) = ANY (ARRAY['s'::text, 'o'::text, 'a'::text, 'p'::text, 'u'::text]))))</td>
-            </tr>
-			
-            <tr class="tr0">
-				<td>lab_request_request_id_check</td>
-                <td>CHECK ((btrim(request_id) <> ''::text))</td>
-            </tr>
-			
-            <tr class="tr1">
-				<td>lab_request_request_status_check</td>
-                <td>CHECK ((request_status = ANY (ARRAY['pending'::text, 'preliminary'::text, 'partial'::text, 'final'::text])))</td>
-            </tr>
-			
-		</table>
-		
 
         <!-- Foreign Key Discovery -->
 		
-			<p>Tables referencing this one via Foreign Key Constraints:</p>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#clin.table.test-result">clin.test_result</a></li>
-			</ul>
-		
-		
 
     <!-- Indexes -->
     
-       idx_clin_lab_request_fk_encounter fk_encounter
-    
-       idx_clin_lab_request_fk_episode fk_episode
-    
 
 	<!-- View Definition -->
 	
+	<pre>
+SELECT c_si.pk AS pk_substance_intake
+,
+    
+(
+SELECT encounter.fk_patient
+           
+  FROM clin.encounter
+          
+ WHERE (encounter.pk = c_si.fk_encounter)
+) AS pk_patient
+,
+    c_si.soap_cat
+,
+    r_bd.description AS brand
+,
+    r_bd.preparation
+,
+    r_cs.description AS substance
+,
+    r_cs.amount
+,
+    r_cs.unit
+,
+    r_cs.atc_code AS atc_substance
+,
+    r_bd.atc_code AS atc_brand
+,
+    r_bd.external_code AS external_code_brand
+,
+    r_bd.external_code_type AS external_code_type_brand
+,
+        CASE
+            WHEN 
+(c_si.comment_on_start = '?'::text) THEN NULL::timestamp with time zone
+            ELSE c_si.clin_when
+        END AS started
+,
+    c_si.comment_on_start
+,
+        CASE
+            WHEN 
+(c_si.comment_on_start = '?'::text) THEN true
+            ELSE false
+        END AS start_is_unknown
+,
+        CASE
+            WHEN 
+(c_si.comment_on_start IS NULL) THEN false
+            ELSE true
+        END AS start_is_approximate
+,
+    c_si.intake_is_approved_of
+,
+    c_si.harmful_use_type
+,
+    NULL::timestamp with time zone AS last_checked_when
+,
+    c_si.schedule
+,
+    c_si.duration
+,
+    c_si.discontinued
+,
+    c_si.discontinue_reason
+,
+    c_si.is_long_term
+,
+    c_si.aim
+,
+    cep.description AS episode
+,
+    c_hi.description AS health_issue
+,
+    c_si.narrative AS notes
+,
+    r_bd.is_fake AS fake_brand
+,
+        CASE
+            WHEN 
+(c_si.discontinued IS NULL) THEN true
+            ELSE false
+        END AS is_currently_active
+,
+        CASE
+            WHEN 
+(c_si.discontinued IS NOT NULL) THEN true
+            WHEN 
+(c_si.clin_when IS NULL) THEN
+            CASE
+                WHEN 
+(c_si.is_long_term IS TRUE) THEN false
+                ELSE NULL::boolean
+            END
+            WHEN 
+(
+     (c_si.clin_when > now
+           ()
+     ) IS TRUE
+) THEN true
+            WHEN 
+(
+     (
+           (c_si.clin_when + c_si.duration) < now
+           ()
+     ) IS TRUE
+) THEN true
+            WHEN 
+(
+     (
+           (c_si.clin_when + c_si.duration) > now
+           ()
+     ) IS TRUE
+) THEN false
+            ELSE NULL::boolean
+        END AS seems_inactive
+,
+    r_ls2b.fk_brand AS pk_brand
+,
+    r_bd.fk_data_source AS pk_data_source
+,
+    r_ls2b.fk_substance AS pk_substance
+,
+    r_ls2b.pk AS pk_drug_component
+,
+    c_si.fk_encounter AS pk_encounter
+,
+    c_si.fk_episode AS pk_episode
+,
+    cep.fk_health_issue AS pk_health_issue
+,
+    c_si.modified_when
+,
+    c_si.modified_by
+,
+    c_si.row_version
+,
+    c_si.xmin AS xmin_substance_intake
+   
+FROM (
+     (
+           (
+                 (
+                       (clin.substance_intake c_si
+     
+                          JOIN ref.lnk_substance2brand r_ls2b 
+                            ON (
+                                   (c_si.fk_drug_component = r_ls2b.pk)
+                             )
+                       )
+     
+                    JOIN ref.branded_drug r_bd 
+                      ON (
+                             (r_ls2b.fk_brand = r_bd.pk)
+                       )
+                 )
+     
+              JOIN ref.consumable_substance r_cs 
+                ON (
+                       (r_ls2b.fk_substance = r_cs.pk)
+                 )
+           )
+     
+   LEFT JOIN clin.episode cep 
+          ON (
+                 (c_si.fk_episode = cep.pk)
+           )
+     )
+     
+LEFT JOIN clin.health_issue c_hi 
+    ON (
+           (c_hi.pk = cep.fk_health_issue)
+     )
+)
+  
+WHERE (c_si.fk_drug_component IS NOT NULL);</pre>
+	
 
 	<!-- List off permissions -->
 	
@@ -56007,35 +69939,97 @@ D: proven diagnosis (diagnostisch gesichert)
     </p>
 	
         <hr>
-		<h2>Table:
+		<h2>View:
 			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.lnk-code2aoe">lnk_code2aoe</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-edc-journal">v_edc_journal</a>
 		</h2>
         
-         <p>Links codes to encounter.aoe.</p>
-        
 
 
-        <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.lnk_code2aoe Structure</caption>
-                <tr>
-                <th>F-Key</th>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Description</th>
-                </tr>
+        <table width="100%" cellspacing="0" cellpadding="3">
+                <caption>clin.v_edc_journal Structure</caption>
+                <tr>
+                <th>F-Key</th>
+                <th>Name</th>
+                <th>Type</th>
+                <th>Description</th>
+                </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_patient</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>modified_when</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>clin_when</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>modified_by</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
             
             <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>pk_audit</td>
-            	<td>integer</td>
+            	<td>soap_cat</td>
+            	<td>text</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT nextval('audit.audit_fields_pk_audit_seq'::regclass)
+				
+				
 				</i>
 				
 				</td>
@@ -56045,12 +70039,12 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                 </td>
-            	<td>row_version</td>
-            	<td>integer</td>
+            	<td>narrative</td>
+            	<td>text</td>
                 <td><i>
 				
 
-				NOT NULL
+				
 				
 				</i>
 				
@@ -56061,13 +70055,13 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                 </td>
-            	<td>modified_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>pk_encounter</td>
+            	<td>integer</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT now()
+				
+				
 				</i>
 				
 				</td>
@@ -56077,13 +70071,13 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                 </td>
-            	<td>modified_by</td>
-            	<td>name</td>
+            	<td>pk_episode</td>
+            	<td>integer</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT "current_user"()
+				
+				
 				</i>
 				
 				</td>
@@ -56093,13 +70087,13 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                 </td>
-            	<td>pk_lnk_code2item</td>
+            	<td>pk_health_issue</td>
             	<td>integer</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT nextval('lnk_code2item_root_pk_lnk_code2item_seq'::regclass)
+				
+				
 				</i>
 				
 				</td>
@@ -56108,56 +70102,32 @@ D: proven diagnosis (diagnostisch gesichert)
             <tr class="tr1">
 				<td>
                 
-                  
-                
                 </td>
-            	<td>fk_generic_code</td>
+            	<td>src_pk</td>
             	<td>integer</td>
                 <td><i>
 				
-					
 
-					
-                       UNIQUE#1
-                    
 				
-
-				NOT NULL
 				
 				</i>
-				<br><br>Custom foreign key to ref.coding_system_root.
+				
 				</td>
 			 </tr>
             
             <tr class="tr0">
 				<td>
                 
-                  
-                
-                  
-                  <a href="gnumed-entire_schema.html#clin.table.encounter">clin.encounter.pk</a>
-                  
-                
                 </td>
-            	<td>fk_item</td>
-            	<td>integer</td>
+            	<td>src_table</td>
+            	<td>text</td>
                 <td><i>
 				
-					
-
-					
-                       UNIQUE#1
-                    
-				
-					
-
-					
-				
 
 				
 				
 				</i>
-				<br><br>Foreign key to clin.encounter
+				
 				</td>
 			 </tr>
             
@@ -56165,8 +70135,8 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                 </td>
-            	<td>code_modifier</td>
-            	<td>text</td>
+            	<td>row_version</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -56180,18 +70150,11 @@ D: proven diagnosis (diagnostisch gesichert)
             <tr class="tr0">
 				<td>
                 
-                  
-                
                 </td>
-            	<td>pk</td>
-            	<td>serial</td>
+            	<td>health_issue</td>
+            	<td>text</td>
                 <td><i>
 				
-					PRIMARY KEY
-					
-
-					
-				
 
 				
 				
@@ -56200,74 +70163,33 @@ D: proven diagnosis (diagnostisch gesichert)
 				</td>
 			 </tr>
             
-        </table>
-
-        <!-- Inherits -->
-		
-        <p>Table clin.lnk_code2aoe Inherits
-        
-            
-           <a href="gnumed-entire_schema.html#clin.table.lnk-code2item-root">lnk_code2item_root</a>, 
-        
-        </p>
-		
-
-		
-		
-		
-
-        <!-- Constraint List -->
-		
-
-        <!-- Foreign Key Discovery -->
-		
-
-    <!-- Indexes -->
-    
-       idx_c_lc2aoe_fk_item fk_item
-    
-
-	<!-- View Definition -->
-	
-
-	<!-- List off permissions -->
-	
-
-	<p>
-		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
-    </p>
-	
-        <hr>
-		<h2>Table:
-			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.lnk-code2episode">lnk_code2episode</a>
-		</h2>
-        
-         <p>Links codes to episodes.</p>
-        
-
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>issue_laterality</td>
+            	<td>text</td>
+                <td><i>
+				
 
-        <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.lnk_code2episode Structure</caption>
-                <tr>
-                <th>F-Key</th>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Description</th>
-                </tr>
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
             
             <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>pk_audit</td>
-            	<td>integer</td>
+            	<td>issue_active</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT nextval('audit.audit_fields_pk_audit_seq'::regclass)
+				
+				
 				</i>
 				
 				</td>
@@ -56277,12 +70199,12 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                 </td>
-            	<td>row_version</td>
-            	<td>integer</td>
+            	<td>issue_clinically_relevant</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
-				NOT NULL
+				
 				
 				</i>
 				
@@ -56293,13 +70215,13 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                 </td>
-            	<td>modified_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>issue_confidential</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT now()
+				
+				
 				</i>
 				
 				</td>
@@ -56309,13 +70231,13 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                 </td>
-            	<td>modified_by</td>
-            	<td>name</td>
+            	<td>episode</td>
+            	<td>text</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT "current_user"()
+				
+				
 				</i>
 				
 				</td>
@@ -56325,13 +70247,13 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                 </td>
-            	<td>pk_lnk_code2item</td>
-            	<td>integer</td>
+            	<td>episode_open</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT nextval('lnk_code2item_root_pk_lnk_code2item_seq'::regclass)
+				
+				
 				</i>
 				
 				</td>
@@ -56340,56 +70262,32 @@ D: proven diagnosis (diagnostisch gesichert)
             <tr class="tr1">
 				<td>
                 
-                  
-                
                 </td>
-            	<td>fk_generic_code</td>
-            	<td>integer</td>
+            	<td>encounter_started</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
-					
 
-					
-                       UNIQUE#1
-                    
 				
-
-				NOT NULL
 				
 				</i>
-				<br><br>Custom foreign key to ref.coding_system_root.
+				
 				</td>
 			 </tr>
             
             <tr class="tr0">
 				<td>
                 
-                  
-                
-                  
-                  <a href="gnumed-entire_schema.html#clin.table.episode">clin.episode.pk</a>
-                  
-                
                 </td>
-            	<td>fk_item</td>
-            	<td>integer</td>
+            	<td>encounter_last_affirmed</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
-					
-
-					
-                       UNIQUE#1
-                    
-				
-					
-
-					
-				
 
 				
 				
 				</i>
-				<br><br>Foreign key to clin.episode
+				
 				</td>
 			 </tr>
             
@@ -56397,7 +70295,7 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                 </td>
-            	<td>code_modifier</td>
+            	<td>encounter_type</td>
             	<td>text</td>
                 <td><i>
 				
@@ -56412,18 +70310,11 @@ D: proven diagnosis (diagnostisch gesichert)
             <tr class="tr0">
 				<td>
                 
-                  
-                
                 </td>
-            	<td>pk</td>
-            	<td>serial</td>
+            	<td>encounter_l10n_type</td>
+            	<td>text</td>
                 <td><i>
 				
-					PRIMARY KEY
-					
-
-					
-				
 
 				
 				
@@ -56436,17 +70327,8 @@ D: proven diagnosis (diagnostisch gesichert)
 
         <!-- Inherits -->
 		
-        <p>Table clin.lnk_code2episode Inherits
-        
-            
-           <a href="gnumed-entire_schema.html#clin.table.lnk-code2item-root">lnk_code2item_root</a>, 
-        
-        </p>
-		
 
 		
-		
-		
 
         <!-- Constraint List -->
 		
@@ -56456,11 +70338,91 @@ D: proven diagnosis (diagnostisch gesichert)
 
     <!-- Indexes -->
     
-       idx_c_lc2epi_fk_item fk_item
-    
 
 	<!-- View Definition -->
 	
+	<pre>
+SELECT c_p.fk_identity AS pk_patient
+,
+    c_p.modified_when
+,
+    c_p.modified_when AS clin_when
+,
+    COALESCE
+(
+     (
+      SELECT staff.short_alias
+           
+        FROM dem.staff
+          
+       WHERE (staff.db_user = c_p.modified_by)
+     )
+     , (
+           ('<'::text || 
+                 (c_p.modified_by)::text
+           ) || '>'::text
+     )
+) AS modified_by
+,
+    's'::text AS soap_cat
+,
+    
+(_
+     ('EDC'::text) || to_char
+     (
+           (c_p.edc)::timestamp with time zone
+           ,': YYYY Mon DD'::text
+     )
+) AS narrative
+,
+    
+(
+SELECT c_e.pk
+           
+  FROM clin.encounter c_e
+          
+ WHERE (c_e.fk_patient = c_p.fk_identity)
+          
+ORDER BY c_e.started DESC
+         LIMIT 1
+) AS pk_encounter
+,
+    NULL::integer AS pk_episode
+,
+    NULL::integer AS pk_health_issue
+,
+    c_p.pk AS src_pk
+,
+    'clin.patient'::text AS src_table
+,
+    c_p.row_version
+,
+    NULL::text AS health_issue
+,
+    NULL::text AS issue_laterality
+,
+    NULL::boolean AS issue_active
+,
+    NULL::boolean AS issue_clinically_relevant
+,
+    NULL::boolean AS issue_confidential
+,
+    NULL::text AS episode
+,
+    NULL::boolean AS episode_open
+,
+    NULL::timestamp with time zone AS encounter_started
+,
+    NULL::timestamp with time zone AS encounter_last_affirmed
+,
+    NULL::text AS encounter_type
+,
+    NULL::text AS encounter_l10n_type
+   
+FROM clin.patient c_p
+  
+WHERE (c_p.edc IS NOT NULL);</pre>
+	
 
 	<!-- List off permissions -->
 	
@@ -56471,17 +70433,20 @@ D: proven diagnosis (diagnostisch gesichert)
     </p>
 	
         <hr>
-		<h2>Table:
+		<h2>View:
 			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.lnk-code2fhx">lnk_code2fhx</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-emr-journal">v_emr_journal</a>
 		</h2>
         
-         <p>Links codes to family history items.</p>
+         <p>Clinical patient data formatted into one string per
+	 clinical entity even if it constains several user-
+	 visible fields. Mainly useful for display as a simple
+	 EMR journal.</p>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.lnk_code2fhx Structure</caption>
+                <caption>clin.v_emr_journal Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -56493,35 +70458,19 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                 </td>
-            	<td>pk_audit</td>
+            	<td>pk_patient</td>
             	<td>integer</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT nextval('audit.audit_fields_pk_audit_seq'::regclass)
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>row_version</td>
-            	<td>integer</td>
-                <td><i>
 				
-
-				NOT NULL
 				
 				</i>
 				
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
@@ -56530,24 +70479,8 @@ D: proven diagnosis (diagnostisch gesichert)
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT now()
-				</i>
 				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>modified_by</td>
-            	<td>name</td>
-                <td><i>
 				
-
-				NOT NULL
-				DEFAULT "current_user"()
 				</i>
 				
 				</td>
@@ -56557,13 +70490,13 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                 </td>
-            	<td>pk_lnk_code2item</td>
-            	<td>integer</td>
+            	<td>clin_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT nextval('lnk_code2item_root_pk_lnk_code2item_seq'::regclass)
+				
+				
 				</i>
 				
 				</td>
@@ -56572,56 +70505,32 @@ D: proven diagnosis (diagnostisch gesichert)
             <tr class="tr1">
 				<td>
                 
-                  
-                
                 </td>
-            	<td>fk_generic_code</td>
-            	<td>integer</td>
+            	<td>modified_by</td>
+            	<td>text</td>
                 <td><i>
 				
-					
 
-					
-                       UNIQUE#1
-                    
 				
-
-				NOT NULL
 				
 				</i>
-				<br><br>Custom foreign key to ref.coding_system_root.
+				
 				</td>
 			 </tr>
             
             <tr class="tr0">
 				<td>
                 
-                  
-                
-                  
-                  <a href="gnumed-entire_schema.html#clin.table.family-history">clin.family_history.pk</a>
-                  
-                
                 </td>
-            	<td>fk_item</td>
-            	<td>integer</td>
+            	<td>soap_cat</td>
+            	<td>text</td>
                 <td><i>
 				
-					
-
-					
-                       UNIQUE#1
-                    
-				
-					
-
-					
-				
 
 				
 				
 				</i>
-				<br><br>Foreign key to clin.family_history
+				
 				</td>
 			 </tr>
             
@@ -56629,7 +70538,7 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                 </td>
-            	<td>code_modifier</td>
+            	<td>narrative</td>
             	<td>text</td>
                 <td><i>
 				
@@ -56644,18 +70553,11 @@ D: proven diagnosis (diagnostisch gesichert)
             <tr class="tr0">
 				<td>
                 
-                  
-                
                 </td>
-            	<td>pk</td>
-            	<td>serial</td>
+            	<td>pk_encounter</td>
+            	<td>integer</td>
                 <td><i>
 				
-					PRIMARY KEY
-					
-
-					
-				
 
 				
 				
@@ -56664,89 +70566,16 @@ D: proven diagnosis (diagnostisch gesichert)
 				</td>
 			 </tr>
             
-        </table>
-
-        <!-- Inherits -->
-		
-        <p>Table clin.lnk_code2fhx Inherits
-        
-            
-           <a href="gnumed-entire_schema.html#clin.table.lnk-code2item-root">lnk_code2item_root</a>, 
-        
-        </p>
-		
-
-		
-		
-		
-
-        <!-- Constraint List -->
-		
-
-        <!-- Foreign Key Discovery -->
-		
-
-    <!-- Indexes -->
-    
-       idx_c_lc2fhx_fk_item fk_item
-    
-
-	<!-- View Definition -->
-	
-
-	<!-- List off permissions -->
-	
-
-	<p>
-		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
-    </p>
-	
-        <hr>
-		<h2>Table:
-			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.lnk-code2h-issue">lnk_code2h_issue</a>
-		</h2>
-        
-         <p>Links codes to health issues.</p>
-        
-
-
-        <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.lnk_code2h_issue Structure</caption>
-                <tr>
-                <th>F-Key</th>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Description</th>
-                </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>pk_audit</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				NOT NULL
-				DEFAULT nextval('audit.audit_fields_pk_audit_seq'::regclass)
-				</i>
-				
-				</td>
-			 </tr>
-            
             <tr class="tr1">
 				<td>
                 
                 </td>
-            	<td>row_version</td>
+            	<td>pk_episode</td>
             	<td>integer</td>
                 <td><i>
 				
 
-				NOT NULL
+				
 				
 				</i>
 				
@@ -56757,111 +70586,71 @@ D: proven diagnosis (diagnostisch gesichert)
 				<td>
                 
                 </td>
-            	<td>modified_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>pk_health_issue</td>
+            	<td>integer</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT now()
-				</i>
 				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>modified_by</td>
-            	<td>name</td>
-                <td><i>
 				
-
-				NOT NULL
-				DEFAULT "current_user"()
 				</i>
 				
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
-            	<td>pk_lnk_code2item</td>
+            	<td>src_pk</td>
             	<td>integer</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT nextval('lnk_code2item_root_pk_lnk_code2item_seq'::regclass)
+				
+				
 				</i>
 				
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
-                  
-                
                 </td>
-            	<td>fk_generic_code</td>
-            	<td>integer</td>
+            	<td>src_table</td>
+            	<td>text</td>
                 <td><i>
 				
-					
 
-					
-                       UNIQUE#1
-                    
 				
-
-				NOT NULL
 				
 				</i>
-				<br><br>Custom foreign key to ref.coding_system_root.
+				
 				</td>
 			 </tr>
             
-            <tr class="tr0">
-				<td>
-                
-                  
-                
-                  
-                  <a href="gnumed-entire_schema.html#clin.table.health-issue">clin.health_issue.pk</a>
-                  
+            <tr class="tr1">
+				<td>
                 
                 </td>
-            	<td>fk_item</td>
+            	<td>row_version</td>
             	<td>integer</td>
                 <td><i>
 				
-					
-
-					
-                       UNIQUE#1
-                    
-				
-					
-
-					
-				
 
 				
 				
 				</i>
-				<br><br>Foreign key to clin.health_issue
+				
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>code_modifier</td>
+            	<td>health_issue</td>
             	<td>text</td>
                 <td><i>
 				
@@ -56873,21 +70662,14 @@ D: proven diagnosis (diagnostisch gesichert)
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
-                  
-                
                 </td>
-            	<td>pk</td>
-            	<td>serial</td>
+            	<td>issue_laterality</td>
+            	<td>character varying</td>
                 <td><i>
 				
-					PRIMARY KEY
-					
-
-					
-				
 
 				
 				
@@ -56896,80 +70678,17 @@ D: proven diagnosis (diagnostisch gesichert)
 				</td>
 			 </tr>
             
-        </table>
-
-        <!-- Inherits -->
-		
-        <p>Table clin.lnk_code2h_issue Inherits
-        
-            
-           <a href="gnumed-entire_schema.html#clin.table.lnk-code2item-root">lnk_code2item_root</a>, 
-        
-        </p>
-		
-
-		
-		
-		
-
-        <!-- Constraint List -->
-		
-
-        <!-- Foreign Key Discovery -->
-		
-
-    <!-- Indexes -->
-    
-       idx_c_lc2iss_fk_item fk_item
-    
-
-	<!-- View Definition -->
-	
-
-	<!-- List off permissions -->
-	
-
-	<p>
-		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
-    </p>
-	
-        <hr>
-		<h2>Table:
-			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.lnk-code2item-root">lnk_code2item_root</a>
-		</h2>
-        
-         <p>The parent table of all tables linking codes to EMR structures.
-Coding tables check this table for existence of their PK in
-.fk_generic_code in order to prevent cascading DELETEs/UPDATEs
-from breaking referential integrity.
-EMR structure tables foreign key into children of this table in
-order to link structures to codes.
-</p>
-        
-
-
-        <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.lnk_code2item_root Structure</caption>
-                <tr>
-                <th>F-Key</th>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Description</th>
-                </tr>
-            
             <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>pk_audit</td>
-            	<td>integer</td>
+            	<td>issue_active</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT nextval('audit.audit_fields_pk_audit_seq'::regclass)
+				
+				
 				</i>
 				
 				</td>
@@ -56979,12 +70698,12 @@ order to link structures to codes.
 				<td>
                 
                 </td>
-            	<td>row_version</td>
-            	<td>integer</td>
+            	<td>issue_clinically_relevant</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
-				NOT NULL
+				
 				
 				</i>
 				
@@ -56995,13 +70714,13 @@ order to link structures to codes.
 				<td>
                 
                 </td>
-            	<td>modified_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>issue_confidential</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT now()
+				
+				
 				</i>
 				
 				</td>
@@ -57011,13 +70730,13 @@ order to link structures to codes.
 				<td>
                 
                 </td>
-            	<td>modified_by</td>
-            	<td>name</td>
+            	<td>episode</td>
+            	<td>text</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT "current_user"()
+				
+				
 				</i>
 				
 				</td>
@@ -57026,18 +70745,11 @@ order to link structures to codes.
             <tr class="tr0">
 				<td>
                 
-                  
-                
                 </td>
-            	<td>pk_lnk_code2item</td>
-            	<td>serial</td>
+            	<td>episode_open</td>
+            	<td>boolean</td>
                 <td><i>
 				
-					PRIMARY KEY
-					
-
-					
-				
 
 				
 				
@@ -57050,15 +70762,15 @@ order to link structures to codes.
 				<td>
                 
                 </td>
-            	<td>fk_generic_code</td>
-            	<td>integer</td>
+            	<td>encounter_started</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
 				
 				
 				</i>
-				<br><br>Custom foreign key to ref.coding_system_root.pk_coding_system.
+				
 				</td>
 			 </tr>
             
@@ -57066,15 +70778,15 @@ order to link structures to codes.
 				<td>
                 
                 </td>
-            	<td>fk_item</td>
-            	<td>integer</td>
+            	<td>encounter_last_affirmed</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
 				
 				
 				</i>
-				<br><br>Foreign key to clin.* tables
+				
 				</td>
 			 </tr>
             
@@ -57082,7 +70794,7 @@ order to link structures to codes.
 				<td>
                 
                 </td>
-            	<td>code_modifier</td>
+            	<td>encounter_type</td>
             	<td>text</td>
                 <td><i>
 				
@@ -57090,7 +70802,23 @@ order to link structures to codes.
 				
 				
 				</i>
-				<br><br>Usage specific modifier on the base code, say, certainty or laterality of ICD-10 codes.
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>encounter_l10n_type</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
 				</td>
 			 </tr>
             
@@ -57098,17 +70826,8 @@ order to link structures to codes.
 
         <!-- Inherits -->
 		
-        <p>Table clin.lnk_code2item_root Inherits
-        
-            
-           <a href="gnumed-entire_schema.html#audit.table.audit-fields">audit_fields</a>, 
-        
-        </p>
-		
 
 		
-		
-		
 
         <!-- Constraint List -->
 		
@@ -57121,6 +70840,855 @@ order to link structures to codes.
 
 	<!-- View Definition -->
 	
+	<pre>
+SELECT v_pat_narrative_journal.pk_patient
+,
+    v_pat_narrative_journal.modified_when
+,
+    v_pat_narrative_journal.clin_when
+,
+    v_pat_narrative_journal.modified_by
+,
+    v_pat_narrative_journal.soap_cat
+,
+    v_pat_narrative_journal.narrative
+,
+    v_pat_narrative_journal.pk_encounter
+,
+    v_pat_narrative_journal.pk_episode
+,
+    v_pat_narrative_journal.pk_health_issue
+,
+    v_pat_narrative_journal.src_pk
+,
+    v_pat_narrative_journal.src_table
+,
+    v_pat_narrative_journal.row_version
+,
+    v_pat_narrative_journal.health_issue
+,
+    v_pat_narrative_journal.issue_laterality
+,
+    v_pat_narrative_journal.issue_active
+,
+    v_pat_narrative_journal.issue_clinically_relevant
+,
+    v_pat_narrative_journal.issue_confidential
+,
+    v_pat_narrative_journal.episode
+,
+    v_pat_narrative_journal.episode_open
+,
+    v_pat_narrative_journal.encounter_started
+,
+    v_pat_narrative_journal.encounter_last_affirmed
+,
+    v_pat_narrative_journal.encounter_type
+,
+    v_pat_narrative_journal.encounter_l10n_type
+   
+FROM clin.v_pat_narrative_journal
+
+UNION ALL
+ 
+SELECT v_health_issues_journal.pk_patient
+,
+    v_health_issues_journal.modified_when
+,
+    v_health_issues_journal.clin_when
+,
+    v_health_issues_journal.modified_by
+,
+    v_health_issues_journal.soap_cat
+,
+    v_health_issues_journal.narrative
+,
+    v_health_issues_journal.pk_encounter
+,
+    v_health_issues_journal.pk_episode
+,
+    v_health_issues_journal.pk_health_issue
+,
+    v_health_issues_journal.src_pk
+,
+    v_health_issues_journal.src_table
+,
+    v_health_issues_journal.row_version
+,
+    v_health_issues_journal.health_issue
+,
+    v_health_issues_journal.issue_laterality
+,
+    v_health_issues_journal.issue_active
+,
+    v_health_issues_journal.issue_clinically_relevant
+,
+    v_health_issues_journal.issue_confidential
+,
+    v_health_issues_journal.episode
+,
+    v_health_issues_journal.episode_open
+,
+    v_health_issues_journal.encounter_started
+,
+    v_health_issues_journal.encounter_last_affirmed
+,
+    v_health_issues_journal.encounter_type
+,
+    v_health_issues_journal.encounter_l10n_type
+   
+FROM clin.v_health_issues_journal
+
+UNION ALL
+ 
+SELECT v_pat_encounters_journal.pk_patient
+,
+    v_pat_encounters_journal.modified_when
+,
+    v_pat_encounters_journal.clin_when
+,
+    v_pat_encounters_journal.modified_by
+,
+    v_pat_encounters_journal.soap_cat
+,
+    v_pat_encounters_journal.narrative
+,
+    v_pat_encounters_journal.pk_encounter
+,
+    v_pat_encounters_journal.pk_episode
+,
+    v_pat_encounters_journal.pk_health_issue
+,
+    v_pat_encounters_journal.src_pk
+,
+    v_pat_encounters_journal.src_table
+,
+    v_pat_encounters_journal.row_version
+,
+    v_pat_encounters_journal.health_issue
+,
+    v_pat_encounters_journal.issue_laterality
+,
+    v_pat_encounters_journal.issue_active
+,
+    v_pat_encounters_journal.issue_clinically_relevant
+,
+    v_pat_encounters_journal.issue_confidential
+,
+    v_pat_encounters_journal.episode
+,
+    v_pat_encounters_journal.episode_open
+,
+    v_pat_encounters_journal.encounter_started
+,
+    v_pat_encounters_journal.encounter_last_affirmed
+,
+    v_pat_encounters_journal.encounter_type
+,
+    v_pat_encounters_journal.encounter_l10n_type
+   
+FROM clin.v_pat_encounters_journal
+
+UNION ALL
+ 
+SELECT v_pat_episodes_journal.pk_patient
+,
+    v_pat_episodes_journal.modified_when
+,
+    v_pat_episodes_journal.clin_when
+,
+    v_pat_episodes_journal.modified_by
+,
+    v_pat_episodes_journal.soap_cat
+,
+    v_pat_episodes_journal.narrative
+,
+    v_pat_episodes_journal.pk_encounter
+,
+    v_pat_episodes_journal.pk_episode
+,
+    v_pat_episodes_journal.pk_health_issue
+,
+    v_pat_episodes_journal.src_pk
+,
+    v_pat_episodes_journal.src_table
+,
+    v_pat_episodes_journal.row_version
+,
+    v_pat_episodes_journal.health_issue
+,
+    v_pat_episodes_journal.issue_laterality
+,
+    v_pat_episodes_journal.issue_active
+,
+    v_pat_episodes_journal.issue_clinically_relevant
+,
+    v_pat_episodes_journal.issue_confidential
+,
+    v_pat_episodes_journal.episode
+,
+    v_pat_episodes_journal.episode_open
+,
+    v_pat_episodes_journal.encounter_started
+,
+    v_pat_episodes_journal.encounter_last_affirmed
+,
+    v_pat_episodes_journal.encounter_type
+,
+    v_pat_episodes_journal.encounter_l10n_type
+   
+FROM clin.v_pat_episodes_journal
+
+UNION ALL
+ 
+SELECT v_family_history_journal.pk_patient
+,
+    v_family_history_journal.modified_when
+,
+    v_family_history_journal.clin_when
+,
+    v_family_history_journal.modified_by
+,
+    v_family_history_journal.soap_cat
+,
+    v_family_history_journal.narrative
+,
+    v_family_history_journal.pk_encounter
+,
+    v_family_history_journal.pk_episode
+,
+    v_family_history_journal.pk_health_issue
+,
+    v_family_history_journal.src_pk
+,
+    v_family_history_journal.src_table
+,
+    v_family_history_journal.row_version
+,
+    v_family_history_journal.health_issue
+,
+    v_family_history_journal.issue_laterality
+,
+    v_family_history_journal.issue_active
+,
+    v_family_history_journal.issue_clinically_relevant
+,
+    v_family_history_journal.issue_confidential
+,
+    v_family_history_journal.episode
+,
+    v_family_history_journal.episode_open
+,
+    v_family_history_journal.encounter_started
+,
+    v_family_history_journal.encounter_last_affirmed
+,
+    v_family_history_journal.encounter_type
+,
+    v_family_history_journal.encounter_l10n_type
+   
+FROM clin.v_family_history_journal
+
+UNION ALL
+ 
+SELECT v_pat_allergies_journal.pk_patient
+,
+    v_pat_allergies_journal.modified_when
+,
+    v_pat_allergies_journal.clin_when
+,
+    v_pat_allergies_journal.modified_by
+,
+    v_pat_allergies_journal.soap_cat
+,
+    v_pat_allergies_journal.narrative
+,
+    v_pat_allergies_journal.pk_encounter
+,
+    v_pat_allergies_journal.pk_episode
+,
+    v_pat_allergies_journal.pk_health_issue
+,
+    v_pat_allergies_journal.src_pk
+,
+    v_pat_allergies_journal.src_table
+,
+    v_pat_allergies_journal.row_version
+,
+    v_pat_allergies_journal.health_issue
+,
+    v_pat_allergies_journal.issue_laterality
+,
+    v_pat_allergies_journal.issue_active
+,
+    v_pat_allergies_journal.issue_clinically_relevant
+,
+    v_pat_allergies_journal.issue_confidential
+,
+    v_pat_allergies_journal.episode
+,
+    v_pat_allergies_journal.episode_open
+,
+    v_pat_allergies_journal.encounter_started
+,
+    v_pat_allergies_journal.encounter_last_affirmed
+,
+    v_pat_allergies_journal.encounter_type
+,
+    v_pat_allergies_journal.encounter_l10n_type
+   
+FROM clin.v_pat_allergies_journal
+
+UNION ALL
+ 
+SELECT v_pat_allergy_state_journal.pk_patient
+,
+    v_pat_allergy_state_journal.modified_when
+,
+    v_pat_allergy_state_journal.clin_when
+,
+    v_pat_allergy_state_journal.modified_by
+,
+    v_pat_allergy_state_journal.soap_cat
+,
+    v_pat_allergy_state_journal.narrative
+,
+    v_pat_allergy_state_journal.pk_encounter
+,
+    v_pat_allergy_state_journal.pk_episode
+,
+    v_pat_allergy_state_journal.pk_health_issue
+,
+    v_pat_allergy_state_journal.src_pk
+,
+    v_pat_allergy_state_journal.src_table
+,
+    v_pat_allergy_state_journal.row_version
+,
+    v_pat_allergy_state_journal.health_issue
+,
+    v_pat_allergy_state_journal.issue_laterality
+,
+    v_pat_allergy_state_journal.issue_active
+,
+    v_pat_allergy_state_journal.issue_clinically_relevant
+,
+    v_pat_allergy_state_journal.issue_confidential
+,
+    v_pat_allergy_state_journal.episode
+,
+    v_pat_allergy_state_journal.episode_open
+,
+    v_pat_allergy_state_journal.encounter_started
+,
+    v_pat_allergy_state_journal.encounter_last_affirmed
+,
+    v_pat_allergy_state_journal.encounter_type
+,
+    v_pat_allergy_state_journal.encounter_l10n_type
+   
+FROM clin.v_pat_allergy_state_journal
+
+UNION ALL
+ 
+SELECT v_test_results_journal.pk_patient
+,
+    v_test_results_journal.modified_when
+,
+    v_test_results_journal.clin_when
+,
+    v_test_results_journal.modified_by
+,
+    v_test_results_journal.soap_cat
+,
+    v_test_results_journal.narrative
+,
+    v_test_results_journal.pk_encounter
+,
+    v_test_results_journal.pk_episode
+,
+    v_test_results_journal.pk_health_issue
+,
+    v_test_results_journal.src_pk
+,
+    v_test_results_journal.src_table
+,
+    v_test_results_journal.row_version
+,
+    v_test_results_journal.health_issue
+,
+    v_test_results_journal.issue_laterality
+,
+    v_test_results_journal.issue_active
+,
+    v_test_results_journal.issue_clinically_relevant
+,
+    v_test_results_journal.issue_confidential
+,
+    v_test_results_journal.episode
+,
+    v_test_results_journal.episode_open
+,
+    v_test_results_journal.encounter_started
+,
+    v_test_results_journal.encounter_last_affirmed
+,
+    v_test_results_journal.encounter_type
+,
+    v_test_results_journal.encounter_l10n_type
+   
+FROM clin.v_test_results_journal
+
+UNION ALL
+ 
+SELECT v_hospital_stays_journal.pk_patient
+,
+    v_hospital_stays_journal.modified_when
+,
+    v_hospital_stays_journal.clin_when
+,
+    v_hospital_stays_journal.modified_by
+,
+    v_hospital_stays_journal.soap_cat
+,
+    v_hospital_stays_journal.narrative
+,
+    v_hospital_stays_journal.pk_encounter
+,
+    v_hospital_stays_journal.pk_episode
+,
+    v_hospital_stays_journal.pk_health_issue
+,
+    v_hospital_stays_journal.src_pk
+,
+    v_hospital_stays_journal.src_table
+,
+    v_hospital_stays_journal.row_version
+,
+    v_hospital_stays_journal.health_issue
+,
+    v_hospital_stays_journal.issue_laterality
+,
+    v_hospital_stays_journal.issue_active
+,
+    v_hospital_stays_journal.issue_clinically_relevant
+,
+    v_hospital_stays_journal.issue_confidential
+,
+    v_hospital_stays_journal.episode
+,
+    v_hospital_stays_journal.episode_open
+,
+    v_hospital_stays_journal.encounter_started
+,
+    v_hospital_stays_journal.encounter_last_affirmed
+,
+    v_hospital_stays_journal.encounter_type
+,
+    v_hospital_stays_journal.encounter_l10n_type
+   
+FROM clin.v_hospital_stays_journal
+
+UNION ALL
+ 
+SELECT v_doc_med_journal.pk_patient
+,
+    v_doc_med_journal.modified_when
+,
+    v_doc_med_journal.clin_when
+,
+    v_doc_med_journal.modified_by
+,
+    v_doc_med_journal.soap_cat
+,
+    v_doc_med_journal.narrative
+,
+    v_doc_med_journal.pk_encounter
+,
+    v_doc_med_journal.pk_episode
+,
+    v_doc_med_journal.pk_health_issue
+,
+    v_doc_med_journal.src_pk
+,
+    v_doc_med_journal.src_table
+,
+    v_doc_med_journal.row_version
+,
+    v_doc_med_journal.health_issue
+,
+    v_doc_med_journal.issue_laterality
+,
+    v_doc_med_journal.issue_active
+,
+    v_doc_med_journal.issue_clinically_relevant
+,
+    v_doc_med_journal.issue_confidential
+,
+    v_doc_med_journal.episode
+,
+    v_doc_med_journal.episode_open
+,
+    v_doc_med_journal.encounter_started
+,
+    v_doc_med_journal.encounter_last_affirmed
+,
+    v_doc_med_journal.encounter_type
+,
+    v_doc_med_journal.encounter_l10n_type
+   
+FROM blobs.v_doc_med_journal
+
+UNION ALL
+ 
+SELECT v_substance_intake_journal.pk_patient
+,
+    v_substance_intake_journal.modified_when
+,
+    v_substance_intake_journal.clin_when
+,
+    v_substance_intake_journal.modified_by
+,
+    v_substance_intake_journal.soap_cat
+,
+    v_substance_intake_journal.narrative
+,
+    v_substance_intake_journal.pk_encounter
+,
+    v_substance_intake_journal.pk_episode
+,
+    v_substance_intake_journal.pk_health_issue
+,
+    v_substance_intake_journal.src_pk
+,
+    v_substance_intake_journal.src_table
+,
+    v_substance_intake_journal.row_version
+,
+    v_substance_intake_journal.health_issue
+,
+    v_substance_intake_journal.issue_laterality
+,
+    v_substance_intake_journal.issue_active
+,
+    v_substance_intake_journal.issue_clinically_relevant
+,
+    v_substance_intake_journal.issue_confidential
+,
+    v_substance_intake_journal.episode
+,
+    v_substance_intake_journal.episode_open
+,
+    v_substance_intake_journal.encounter_started
+,
+    v_substance_intake_journal.encounter_last_affirmed
+,
+    v_substance_intake_journal.encounter_type
+,
+    v_substance_intake_journal.encounter_l10n_type
+   
+FROM clin.v_substance_intake_journal
+
+UNION ALL
+ 
+SELECT v_procedures_journal.pk_patient
+,
+    v_procedures_journal.modified_when
+,
+    v_procedures_journal.clin_when
+,
+    v_procedures_journal.modified_by
+,
+    v_procedures_journal.soap_cat
+,
+    v_procedures_journal.narrative
+,
+    v_procedures_journal.pk_encounter
+,
+    v_procedures_journal.pk_episode
+,
+    v_procedures_journal.pk_health_issue
+,
+    v_procedures_journal.src_pk
+,
+    v_procedures_journal.src_table
+,
+    v_procedures_journal.row_version
+,
+    v_procedures_journal.health_issue
+,
+    v_procedures_journal.issue_laterality
+,
+    v_procedures_journal.issue_active
+,
+    v_procedures_journal.issue_clinically_relevant
+,
+    v_procedures_journal.issue_confidential
+,
+    v_procedures_journal.episode
+,
+    v_procedures_journal.episode_open
+,
+    v_procedures_journal.encounter_started
+,
+    v_procedures_journal.encounter_last_affirmed
+,
+    v_procedures_journal.encounter_type
+,
+    v_procedures_journal.encounter_l10n_type
+   
+FROM clin.v_procedures_journal
+
+UNION ALL
+ 
+SELECT v_vaccinations_journal.pk_patient
+,
+    v_vaccinations_journal.modified_when
+,
+    v_vaccinations_journal.clin_when
+,
+    v_vaccinations_journal.modified_by
+,
+    v_vaccinations_journal.soap_cat
+,
+    v_vaccinations_journal.narrative
+,
+    v_vaccinations_journal.pk_encounter
+,
+    v_vaccinations_journal.pk_episode
+,
+    v_vaccinations_journal.pk_health_issue
+,
+    v_vaccinations_journal.src_pk
+,
+    v_vaccinations_journal.src_table
+,
+    v_vaccinations_journal.row_version
+,
+    v_vaccinations_journal.health_issue
+,
+    v_vaccinations_journal.issue_laterality
+,
+    v_vaccinations_journal.issue_active
+,
+    v_vaccinations_journal.issue_clinically_relevant
+,
+    v_vaccinations_journal.issue_confidential
+,
+    v_vaccinations_journal.episode
+,
+    v_vaccinations_journal.episode_open
+,
+    v_vaccinations_journal.encounter_started
+,
+    v_vaccinations_journal.encounter_last_affirmed
+,
+    v_vaccinations_journal.encounter_type
+,
+    v_vaccinations_journal.encounter_l10n_type
+   
+FROM clin.v_vaccinations_journal
+
+UNION ALL
+ 
+SELECT v_suppressed_hints_journal.pk_patient
+,
+    v_suppressed_hints_journal.modified_when
+,
+    v_suppressed_hints_journal.clin_when
+,
+    v_suppressed_hints_journal.modified_by
+,
+    v_suppressed_hints_journal.soap_cat
+,
+    v_suppressed_hints_journal.narrative
+,
+    v_suppressed_hints_journal.fk_encounter AS pk_encounter
+,
+    v_suppressed_hints_journal.pk_episode
+,
+    v_suppressed_hints_journal.pk_health_issue
+,
+    v_suppressed_hints_journal.src_pk
+,
+    v_suppressed_hints_journal.src_table
+,
+    v_suppressed_hints_journal.row_version
+,
+    v_suppressed_hints_journal.health_issue
+,
+    v_suppressed_hints_journal.issue_laterality
+,
+    v_suppressed_hints_journal.issue_active
+,
+    v_suppressed_hints_journal.issue_clinically_relevant
+,
+    v_suppressed_hints_journal.issue_confidential
+,
+    v_suppressed_hints_journal.episode
+,
+    v_suppressed_hints_journal.episode_open
+,
+    v_suppressed_hints_journal.encounter_started
+,
+    v_suppressed_hints_journal.encounter_last_affirmed
+,
+    v_suppressed_hints_journal.encounter_type
+,
+    v_suppressed_hints_journal.encounter_l10n_type
+   
+FROM clin.v_suppressed_hints_journal
+
+UNION ALL
+ 
+SELECT v_external_care_journal.pk_patient
+,
+    v_external_care_journal.modified_when
+,
+    v_external_care_journal.clin_when
+,
+    v_external_care_journal.modified_by
+,
+    v_external_care_journal.soap_cat
+,
+    v_external_care_journal.narrative
+,
+    v_external_care_journal.pk_encounter
+,
+    v_external_care_journal.pk_episode
+,
+    v_external_care_journal.pk_health_issue
+,
+    v_external_care_journal.src_pk
+,
+    v_external_care_journal.src_table
+,
+    v_external_care_journal.row_version
+,
+    v_external_care_journal.health_issue
+,
+    v_external_care_journal.issue_laterality
+,
+    v_external_care_journal.issue_active
+,
+    v_external_care_journal.issue_clinically_relevant
+,
+    v_external_care_journal.issue_confidential
+,
+    v_external_care_journal.episode
+,
+    v_external_care_journal.episode_open
+,
+    v_external_care_journal.encounter_started
+,
+    v_external_care_journal.encounter_last_affirmed
+,
+    v_external_care_journal.encounter_type
+,
+    v_external_care_journal.encounter_l10n_type
+   
+FROM clin.v_external_care_journal
+
+UNION ALL
+ 
+SELECT v_edc_journal.pk_patient
+,
+    v_edc_journal.modified_when
+,
+    v_edc_journal.clin_when
+,
+    v_edc_journal.modified_by
+,
+    v_edc_journal.soap_cat
+,
+    v_edc_journal.narrative
+,
+    v_edc_journal.pk_encounter
+,
+    v_edc_journal.pk_episode
+,
+    v_edc_journal.pk_health_issue
+,
+    v_edc_journal.src_pk
+,
+    v_edc_journal.src_table
+,
+    v_edc_journal.row_version
+,
+    v_edc_journal.health_issue
+,
+    v_edc_journal.issue_laterality
+,
+    v_edc_journal.issue_active
+,
+    v_edc_journal.issue_clinically_relevant
+,
+    v_edc_journal.issue_confidential
+,
+    v_edc_journal.episode
+,
+    v_edc_journal.episode_open
+,
+    v_edc_journal.encounter_started
+,
+    v_edc_journal.encounter_last_affirmed
+,
+    v_edc_journal.encounter_type
+,
+    v_edc_journal.encounter_l10n_type
+   
+FROM clin.v_edc_journal
+
+UNION ALL
+ 
+SELECT v_reminders_journal.pk_patient
+,
+    v_reminders_journal.modified_when
+,
+    v_reminders_journal.clin_when
+,
+    v_reminders_journal.modified_by
+,
+    v_reminders_journal.soap_cat
+,
+    v_reminders_journal.narrative
+,
+    v_reminders_journal.pk_encounter
+,
+    v_reminders_journal.pk_episode
+,
+    v_reminders_journal.pk_health_issue
+,
+    v_reminders_journal.src_pk
+,
+    v_reminders_journal.src_table
+,
+    v_reminders_journal.row_version
+,
+    v_reminders_journal.health_issue
+,
+    v_reminders_journal.issue_laterality
+,
+    v_reminders_journal.issue_active
+,
+    v_reminders_journal.issue_clinically_relevant
+,
+    v_reminders_journal.issue_confidential
+,
+    v_reminders_journal.episode
+,
+    v_reminders_journal.episode_open
+,
+    v_reminders_journal.encounter_started
+,
+    v_reminders_journal.encounter_last_affirmed
+,
+    v_reminders_journal.encounter_type
+,
+    v_reminders_journal.encounter_l10n_type
+   
+FROM clin.v_reminders_journal;</pre>
+	
 
 	<!-- List off permissions -->
 	
@@ -57131,17 +71699,15 @@ order to link structures to codes.
     </p>
 	
         <hr>
-		<h2>Table:
+		<h2>View:
 			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.lnk-code2narrative">lnk_code2narrative</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-export-items">v_export_items</a>
 		</h2>
         
-         <p>Links codes to SOAP narrative.</p>
-        
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.lnk_code2narrative Structure</caption>
+                <caption>clin.v_export_items Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -57153,13 +71719,13 @@ order to link structures to codes.
 				<td>
                 
                 </td>
-            	<td>pk_audit</td>
+            	<td>pk_export_item</td>
             	<td>integer</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT nextval('audit.audit_fields_pk_audit_seq'::regclass)
+				
+				
 				</i>
 				
 				</td>
@@ -57169,12 +71735,12 @@ order to link structures to codes.
 				<td>
                 
                 </td>
-            	<td>row_version</td>
+            	<td>pk_identity</td>
             	<td>integer</td>
                 <td><i>
 				
 
-				NOT NULL
+				
 				
 				</i>
 				
@@ -57185,13 +71751,13 @@ order to link structures to codes.
 				<td>
                 
                 </td>
-            	<td>modified_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>created_by</td>
+            	<td>text</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT now()
+				
+				
 				</i>
 				
 				</td>
@@ -57201,13 +71767,13 @@ order to link structures to codes.
 				<td>
                 
                 </td>
-            	<td>modified_by</td>
-            	<td>name</td>
+            	<td>created_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT "current_user"()
+				
+				
 				</i>
 				
 				</td>
@@ -57217,13 +71783,13 @@ order to link structures to codes.
 				<td>
                 
                 </td>
-            	<td>pk_lnk_code2item</td>
-            	<td>integer</td>
+            	<td>designation</td>
+            	<td>text</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT nextval('lnk_code2item_root_pk_lnk_code2item_seq'::regclass)
+				
+				
 				</i>
 				
 				</td>
@@ -57232,56 +71798,32 @@ order to link structures to codes.
             <tr class="tr1">
 				<td>
                 
-                  
-                
                 </td>
-            	<td>fk_generic_code</td>
-            	<td>integer</td>
+            	<td>description</td>
+            	<td>text</td>
                 <td><i>
 				
-					
 
-					
-                       UNIQUE#1
-                    
 				
-
-				NOT NULL
 				
 				</i>
-				<br><br>Custom foreign key to ref.coding_system_root.
+				
 				</td>
 			 </tr>
             
             <tr class="tr0">
 				<td>
                 
-                  
-                
-                  
-                  <a href="gnumed-entire_schema.html#clin.table.clin-narrative">clin.clin_narrative.pk</a>
-                  
-                
                 </td>
-            	<td>fk_item</td>
+            	<td>pk_doc_obj</td>
             	<td>integer</td>
                 <td><i>
 				
-					
-
-					
-                       UNIQUE#1
-                    
-				
-					
-
-					
-				
 
 				
 				
 				</i>
-				<br><br>Foreign key to clin.clin_narrative
+				
 				</td>
 			 </tr>
             
@@ -57289,7 +71831,7 @@ order to link structures to codes.
 				<td>
                 
                 </td>
-            	<td>code_modifier</td>
+            	<td>md5_sum</td>
             	<td>text</td>
                 <td><i>
 				
@@ -57304,18 +71846,11 @@ order to link structures to codes.
             <tr class="tr0">
 				<td>
                 
-                  
-                
                 </td>
-            	<td>pk</td>
-            	<td>serial</td>
+            	<td>size</td>
+            	<td>integer</td>
                 <td><i>
 				
-					PRIMARY KEY
-					
-
-					
-				
 
 				
 				
@@ -57324,89 +71859,16 @@ order to link structures to codes.
 				</td>
 			 </tr>
             
-        </table>
-
-        <!-- Inherits -->
-		
-        <p>Table clin.lnk_code2narrative Inherits
-        
-            
-           <a href="gnumed-entire_schema.html#clin.table.lnk-code2item-root">lnk_code2item_root</a>, 
-        
-        </p>
-		
-
-		
-		
-		
-
-        <!-- Constraint List -->
-		
-
-        <!-- Foreign Key Discovery -->
-		
-
-    <!-- Indexes -->
-    
-       idx_c_lc2narr_fk_item fk_item
-    
-
-	<!-- View Definition -->
-	
-
-	<!-- List off permissions -->
-	
-
-	<p>
-		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
-    </p>
-	
-        <hr>
-		<h2>Table:
-			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.lnk-code2procedure">lnk_code2procedure</a>
-		</h2>
-        
-         <p>Links codes to procedures. OPS comes to mind.</p>
-        
-
-
-        <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.lnk_code2procedure Structure</caption>
-                <tr>
-                <th>F-Key</th>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Description</th>
-                </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>pk_audit</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				NOT NULL
-				DEFAULT nextval('audit.audit_fields_pk_audit_seq'::regclass)
-				</i>
-				
-				</td>
-			 </tr>
-            
             <tr class="tr1">
 				<td>
                 
                 </td>
-            	<td>row_version</td>
-            	<td>integer</td>
+            	<td>filename</td>
+            	<td>text</td>
                 <td><i>
 				
 
-				NOT NULL
+				
 				
 				</i>
 				
@@ -57417,13 +71879,13 @@ order to link structures to codes.
 				<td>
                 
                 </td>
-            	<td>modified_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>xmin_export_item</td>
+            	<td>xid</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT now()
+				
+				
 				</i>
 				
 				</td>
@@ -57433,13 +71895,13 @@ order to link structures to codes.
 				<td>
                 
                 </td>
-            	<td>modified_by</td>
-            	<td>name</td>
+            	<td>title</td>
+            	<td>text</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT "current_user"()
+				
+				
 				</i>
 				
 				</td>
@@ -57449,13 +71911,13 @@ order to link structures to codes.
 				<td>
                 
                 </td>
-            	<td>pk_lnk_code2item</td>
-            	<td>integer</td>
+            	<td>firstnames</td>
+            	<td>text</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT nextval('lnk_code2item_root_pk_lnk_code2item_seq'::regclass)
+				
+				
 				</i>
 				
 				</td>
@@ -57464,56 +71926,32 @@ order to link structures to codes.
             <tr class="tr1">
 				<td>
                 
-                  
-                
                 </td>
-            	<td>fk_generic_code</td>
-            	<td>integer</td>
+            	<td>lastnames</td>
+            	<td>text</td>
                 <td><i>
 				
-					
 
-					
-                       UNIQUE#1
-                    
 				
-
-				NOT NULL
 				
 				</i>
-				<br><br>Custom foreign key to ref.coding_system_root.
+				
 				</td>
 			 </tr>
             
             <tr class="tr0">
 				<td>
                 
-                  
-                
-                  
-                  <a href="gnumed-entire_schema.html#clin.table.procedure">clin.procedure.pk</a>
-                  
-                
                 </td>
-            	<td>fk_item</td>
-            	<td>integer</td>
+            	<td>preferred</td>
+            	<td>text</td>
                 <td><i>
 				
-					
-
-					
-                       UNIQUE#1
-                    
-				
-					
-
-					
-				
 
 				
 				
 				</i>
-				<br><br>Foreign key to clin.procedure
+				
 				</td>
 			 </tr>
             
@@ -57521,7 +71959,7 @@ order to link structures to codes.
 				<td>
                 
                 </td>
-            	<td>code_modifier</td>
+            	<td>gender</td>
             	<td>text</td>
                 <td><i>
 				
@@ -57536,18 +71974,11 @@ order to link structures to codes.
             <tr class="tr0">
 				<td>
                 
-                  
-                
                 </td>
-            	<td>pk</td>
-            	<td>serial</td>
+            	<td>dob</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
-					PRIMARY KEY
-					
-
-					
-				
 
 				
 				
@@ -57560,17 +71991,8 @@ order to link structures to codes.
 
         <!-- Inherits -->
 		
-        <p>Table clin.lnk_code2procedure Inherits
-        
-            
-           <a href="gnumed-entire_schema.html#clin.table.lnk-code2item-root">lnk_code2item_root</a>, 
-        
-        </p>
-		
 
 		
-		
-		
 
         <!-- Constraint List -->
 		
@@ -57580,11 +72002,141 @@ order to link structures to codes.
 
     <!-- Indexes -->
     
-       idx_c_lc2proc_fk_item fk_item
-    
 
 	<!-- View Definition -->
 	
+	<pre>
+SELECT inner_export_items.pk_export_item
+,
+    inner_export_items.pk_identity
+,
+    inner_export_items.created_by
+,
+    inner_export_items.created_when
+,
+    inner_export_items.designation
+,
+    inner_export_items.description
+,
+    inner_export_items.pk_doc_obj
+,
+    inner_export_items.md5_sum
+,
+    inner_export_items.size
+,
+    inner_export_items.filename
+,
+    inner_export_items.xmin_export_item
+,
+    d_vp.title
+,
+    d_vp.firstnames
+,
+    d_vp.lastnames
+,
+    d_vp.preferred
+,
+    d_vp.gender
+,
+    d_vp.dob
+   
+FROM (
+     (
+      SELECT c_ei.pk AS pk_export_item
+           ,
+            COALESCE
+           (c_ei.fk_identity
+                 , (
+                  SELECT encounter.fk_patient
+                   
+                    FROM clin.encounter
+                  
+                   WHERE (encounter.pk = 
+                             (
+                              SELECT doc_med.fk_encounter
+                           
+                                FROM blobs.doc_med
+                          
+                               WHERE (doc_med.pk = 
+                                         (
+                                          SELECT doc_obj.fk_doc
+                                   
+                                            FROM blobs.doc_obj
+                                  
+                                           WHERE (doc_obj.pk = c_ei.fk_doc_obj)
+                                         )
+                                   )
+                             )
+                       )
+                 )
+           ) AS pk_identity
+           ,
+            COALESCE
+           (
+                 (
+                  SELECT staff.short_alias
+                   
+                    FROM dem.staff
+                  
+                   WHERE (staff.db_user = c_ei.created_by)
+                 )
+                 , (c_ei.created_by)::text
+           ) AS created_by
+           ,
+            c_ei.created_when
+           ,
+            c_ei.designation
+           ,
+            c_ei.description
+           ,
+            c_ei.fk_doc_obj AS pk_doc_obj
+           ,
+            md5
+           (COALESCE
+                 (c_ei.data
+                       , COALESCE
+                       (
+                             (
+                              SELECT b_do.data
+                   
+                                FROM blobs.doc_obj b_do
+                  
+                               WHERE (b_do.pk = c_ei.fk_doc_obj)
+                             )
+                             ,'\x'::bytea
+                       )
+                 )
+           ) AS md5_sum
+           ,
+            octet_length
+           (COALESCE
+                 (c_ei.data
+                       ,'\x'::bytea
+                 )
+           ) AS size
+           ,
+            COALESCE
+           (c_ei.filename
+                 , (
+                  SELECT b_do.filename
+                   
+                    FROM blobs.doc_obj b_do
+                  
+                   WHERE (b_do.pk = c_ei.fk_doc_obj)
+                 )
+           ) AS filename
+           ,
+            c_ei.xmin AS xmin_export_item
+           
+        FROM clin.export_item c_ei
+     ) inner_export_items
+     
+  JOIN dem.v_all_persons d_vp 
+    ON (
+           (d_vp.pk_identity = inner_export_items.pk_identity)
+     )
+);</pre>
+	
 
 	<!-- List off permissions -->
 	
@@ -57595,35 +72147,65 @@ order to link structures to codes.
     </p>
 	
         <hr>
-		<h2>Table:
+		<h2>View:
 			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.lnk-code2rfe">lnk_code2rfe</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-external-care">v_external_care</a>
 		</h2>
         
-         <p>Links codes to encounters.</p>
-        
 
 
-        <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.lnk_code2rfe Structure</caption>
-                <tr>
-                <th>F-Key</th>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Description</th>
-                </tr>
+        <table width="100%" cellspacing="0" cellpadding="3">
+                <caption>clin.v_external_care Structure</caption>
+                <tr>
+                <th>F-Key</th>
+                <th>Name</th>
+                <th>Type</th>
+                <th>Description</th>
+                </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_external_care</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>pk_identity</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
             
             <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>pk_audit</td>
-            	<td>integer</td>
+            	<td>issue</td>
+            	<td>text</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT nextval('audit.audit_fields_pk_audit_seq'::regclass)
+				
+				
 				</i>
 				
 				</td>
@@ -57633,12 +72215,12 @@ order to link structures to codes.
 				<td>
                 
                 </td>
-            	<td>row_version</td>
-            	<td>integer</td>
+            	<td>provider</td>
+            	<td>text</td>
                 <td><i>
 				
 
-				NOT NULL
+				
 				
 				</i>
 				
@@ -57649,13 +72231,13 @@ order to link structures to codes.
 				<td>
                 
                 </td>
-            	<td>modified_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>unit</td>
+            	<td>text</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT now()
+				
+				
 				</i>
 				
 				</td>
@@ -57665,13 +72247,13 @@ order to link structures to codes.
 				<td>
                 
                 </td>
-            	<td>modified_by</td>
-            	<td>name</td>
+            	<td>organization</td>
+            	<td>text</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT "current_user"()
+				
+				
 				</i>
 				
 				</td>
@@ -57681,13 +72263,13 @@ order to link structures to codes.
 				<td>
                 
                 </td>
-            	<td>pk_lnk_code2item</td>
-            	<td>integer</td>
+            	<td>comment</td>
+            	<td>text</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT nextval('lnk_code2item_root_pk_lnk_code2item_seq'::regclass)
+				
+				
 				</i>
 				
 				</td>
@@ -57696,56 +72278,64 @@ order to link structures to codes.
             <tr class="tr1">
 				<td>
                 
-                  
-                
                 </td>
-            	<td>fk_generic_code</td>
+            	<td>pk_health_issue</td>
             	<td>integer</td>
                 <td><i>
 				
-					
 
-					
-                       UNIQUE#1
-                    
 				
-
-				NOT NULL
 				
 				</i>
-				<br><br>Custom foreign key to ref.coding_system_root.
+				
 				</td>
 			 </tr>
             
             <tr class="tr0">
 				<td>
                 
-                  
-                
-                  
-                  <a href="gnumed-entire_schema.html#clin.table.encounter">clin.encounter.pk</a>
-                  
-                
                 </td>
-            	<td>fk_item</td>
+            	<td>pk_org_unit</td>
             	<td>integer</td>
                 <td><i>
 				
-					
 
-					
-                       UNIQUE#1
-                    
 				
-					
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>pk_encounter</td>
+            	<td>integer</td>
+                <td><i>
+				
 
-					
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>xmin_external_care</td>
+            	<td>xid</td>
+                <td><i>
 				
 
 				
 				
 				</i>
-				<br><br>Foreign key to clin.encounter
+				
 				</td>
 			 </tr>
             
@@ -57753,8 +72343,8 @@ order to link structures to codes.
 				<td>
                 
                 </td>
-            	<td>code_modifier</td>
-            	<td>text</td>
+            	<td>modified_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
@@ -57768,17 +72358,26 @@ order to link structures to codes.
             <tr class="tr0">
 				<td>
                 
-                  
-                
                 </td>
-            	<td>pk</td>
-            	<td>serial</td>
+            	<td>modified_by</td>
+            	<td>name</td>
                 <td><i>
 				
-					PRIMARY KEY
-					
 
-					
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>row_version</td>
+            	<td>integer</td>
+                <td><i>
 				
 
 				
@@ -57792,17 +72391,8 @@ order to link structures to codes.
 
         <!-- Inherits -->
 		
-        <p>Table clin.lnk_code2rfe Inherits
-        
-            
-           <a href="gnumed-entire_schema.html#clin.table.lnk-code2item-root">lnk_code2item_root</a>, 
-        
-        </p>
-		
 
 		
-		
-		
 
         <!-- Constraint List -->
 		
@@ -57812,11 +72402,70 @@ order to link structures to codes.
 
     <!-- Indexes -->
     
-       idx_c_lc2rfe_fk_item fk_item
-    
 
 	<!-- View Definition -->
 	
+	<pre>
+SELECT c_ec.pk AS pk_external_care
+,
+    
+(
+SELECT encounter.fk_patient
+           
+  FROM clin.encounter
+          
+ WHERE (encounter.pk = c_ec.fk_encounter)
+) AS pk_identity
+,
+    COALESCE
+(c_ec.issue
+     , c_hi.description
+) AS issue
+,
+    c_ec.provider
+,
+    d_ou.description AS unit
+,
+    d_o.description AS organization
+,
+    c_ec.comment
+,
+    c_ec.fk_health_issue AS pk_health_issue
+,
+    c_ec.fk_org_unit AS pk_org_unit
+,
+    c_ec.fk_encounter AS pk_encounter
+,
+    c_ec.xmin AS xmin_external_care
+,
+    c_ec.modified_when
+,
+    c_ec.modified_by
+,
+    c_ec.row_version
+   
+FROM (
+     (
+           (clin.external_care c_ec
+     
+         LEFT JOIN clin.health_issue c_hi 
+                ON (
+                       (c_hi.pk = c_ec.fk_health_issue)
+                 )
+           )
+     
+   LEFT JOIN dem.org_unit d_ou 
+          ON (
+                 (c_ec.fk_org_unit = d_ou.pk)
+           )
+     )
+     
+LEFT JOIN dem.org d_o 
+    ON (
+           (d_ou.fk_org = d_o.pk)
+     )
+);</pre>
+	
 
 	<!-- List off permissions -->
 	
@@ -57827,17 +72476,15 @@ order to link structures to codes.
     </p>
 	
         <hr>
-		<h2>Table:
+		<h2>View:
 			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.lnk-code2tst-pnl">lnk_code2tst_pnl</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-external-care-journal">v_external_care_journal</a>
 		</h2>
         
-         <p>Links codes to test panels.</p>
-        
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.lnk_code2tst_pnl Structure</caption>
+                <caption>clin.v_external_care_journal Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -57849,13 +72496,13 @@ order to link structures to codes.
 				<td>
                 
                 </td>
-            	<td>pk_audit</td>
+            	<td>pk_patient</td>
             	<td>integer</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT nextval('audit.audit_fields_pk_audit_seq'::regclass)
+				
+				
 				</i>
 				
 				</td>
@@ -57865,12 +72512,12 @@ order to link structures to codes.
 				<td>
                 
                 </td>
-            	<td>row_version</td>
-            	<td>integer</td>
+            	<td>modified_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
-				NOT NULL
+				
 				
 				</i>
 				
@@ -57881,13 +72528,13 @@ order to link structures to codes.
 				<td>
                 
                 </td>
-            	<td>modified_when</td>
+            	<td>clin_when</td>
             	<td>timestamp with time zone</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT now()
+				
+				
 				</i>
 				
 				</td>
@@ -57898,12 +72545,12 @@ order to link structures to codes.
                 
                 </td>
             	<td>modified_by</td>
-            	<td>name</td>
+            	<td>text</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT "current_user"()
+				
+				
 				</i>
 				
 				</td>
@@ -57913,13 +72560,13 @@ order to link structures to codes.
 				<td>
                 
                 </td>
-            	<td>pk_lnk_code2item</td>
-            	<td>integer</td>
+            	<td>soap_cat</td>
+            	<td>text</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT nextval('lnk_code2item_root_pk_lnk_code2item_seq'::regclass)
+				
+				
 				</i>
 				
 				</td>
@@ -57928,56 +72575,32 @@ order to link structures to codes.
             <tr class="tr1">
 				<td>
                 
-                  
-                
                 </td>
-            	<td>fk_generic_code</td>
-            	<td>integer</td>
+            	<td>narrative</td>
+            	<td>text</td>
                 <td><i>
 				
-					
 
-					
-                       UNIQUE#1
-                    
 				
-
-				NOT NULL
 				
 				</i>
-				<br><br>Custom foreign key to ref.coding_system_root.
+				
 				</td>
 			 </tr>
             
             <tr class="tr0">
 				<td>
                 
-                  
-                
-                  
-                  <a href="gnumed-entire_schema.html#clin.table.test-panel">clin.test_panel.pk</a>
-                  
-                
                 </td>
-            	<td>fk_item</td>
+            	<td>pk_encounter</td>
             	<td>integer</td>
                 <td><i>
 				
-					
-
-					
-                       UNIQUE#1
-                    
-				
-					
-
-					
-				
 
 				
 				
 				</i>
-				<br><br>Foreign key to clin.test_panel
+				
 				</td>
 			 </tr>
             
@@ -57985,8 +72608,8 @@ order to link structures to codes.
 				<td>
                 
                 </td>
-            	<td>code_modifier</td>
-            	<td>text</td>
+            	<td>pk_episode</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -58000,18 +72623,11 @@ order to link structures to codes.
             <tr class="tr0">
 				<td>
                 
-                  
-                
                 </td>
-            	<td>pk</td>
-            	<td>serial</td>
+            	<td>pk_health_issue</td>
+            	<td>integer</td>
                 <td><i>
 				
-					PRIMARY KEY
-					
-
-					
-				
 
 				
 				
@@ -58020,142 +72636,78 @@ order to link structures to codes.
 				</td>
 			 </tr>
             
-        </table>
-
-        <!-- Inherits -->
-		
-        <p>Table clin.lnk_code2tst_pnl Inherits
-        
-            
-           <a href="gnumed-entire_schema.html#clin.table.lnk-code2item-root">lnk_code2item_root</a>, 
-        
-        </p>
-		
-
-		
-		
-		
-
-        <!-- Constraint List -->
-		
-
-        <!-- Foreign Key Discovery -->
-		
-
-    <!-- Indexes -->
-    
-       idx_c_lc2tp_fk_item fk_item
-    
-
-	<!-- View Definition -->
-	
-
-	<!-- List off permissions -->
-	
-
-	<p>
-		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
-    </p>
-	
-        <hr>
-		<h2>Table:
-			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.lnk-constraint2vacc-course">lnk_constraint2vacc_course</a>
-		</h2>
-        
-         <p>links constraints to courses</p>
-        
-
-
-        <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.lnk_constraint2vacc_course Structure</caption>
-                <tr>
-                <th>F-Key</th>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Description</th>
-                </tr>
-            
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
-            	<td>pk_audit</td>
+            	<td>src_pk</td>
             	<td>integer</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT nextval('audit.audit_fields_pk_audit_seq'::regclass)
+				
+				
 				</i>
 				
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>row_version</td>
-            	<td>integer</td>
+            	<td>src_table</td>
+            	<td>text</td>
                 <td><i>
 				
 
-				NOT NULL
+				
 				
 				</i>
 				
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
-            	<td>modified_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>row_version</td>
+            	<td>integer</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT now()
+				
+				
 				</i>
 				
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>modified_by</td>
-            	<td>name</td>
+            	<td>health_issue</td>
+            	<td>text</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT "current_user"()
+				
+				
 				</i>
 				
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
-                  
-                
                 </td>
-            	<td>pk</td>
-            	<td>serial</td>
+            	<td>issue_laterality</td>
+            	<td>character varying(2)</td>
                 <td><i>
 				
-					PRIMARY KEY
-					
-
-					
-				
 
 				
 				
@@ -58164,140 +72716,49 @@ order to link structures to codes.
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
-                  
-                  <a href="gnumed-entire_schema.html#clin.table.vaccination-course">clin.vaccination_course.pk</a>
-                  
-                
-                  
-                
                 </td>
-            	<td>fk_vaccination_course</td>
-            	<td>integer</td>
+            	<td>issue_active</td>
+            	<td>boolean</td>
                 <td><i>
 				
-					
-
-					
-				
-					
 
-					
-                       UNIQUE#1
-                    
 				
-
-				NOT NULL
 				
 				</i>
 				
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
-                  
-                  <a href="gnumed-entire_schema.html#clin.table.vaccination-course-constraint">clin.vaccination_course_constraint.pk</a>
-                  
-                
-                  
-                
                 </td>
-            	<td>fk_constraint</td>
-            	<td>integer</td>
+            	<td>issue_clinically_relevant</td>
+            	<td>boolean</td>
                 <td><i>
 				
-					
-
-					
-				
-					
 
-					
-                       UNIQUE#1
-                    
 				
-
-				NOT NULL
 				
 				</i>
 				
 				</td>
 			 </tr>
             
-        </table>
-
-        <!-- Inherits -->
-		
-        <p>Table clin.lnk_constraint2vacc_course Inherits
-        
-            
-           <a href="gnumed-entire_schema.html#audit.table.audit-fields">audit_fields</a>, 
-        
-        </p>
-		
-
-		
-		
-		
-
-        <!-- Constraint List -->
-		
-
-        <!-- Foreign Key Discovery -->
-		
-
-    <!-- Indexes -->
-    
-
-	<!-- View Definition -->
-	
-
-	<!-- List off permissions -->
-	
-
-	<p>
-		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
-    </p>
-	
-        <hr>
-		<h2>Table:
-			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.lnk-pat2vaccination-course">lnk_pat2vaccination_course</a>
-		</h2>
-        
-         <p>links patients to vaccination courses they are actually on,
-	 this allows for per-patient selection of courses to be
-	 followed, eg. children at different ages may be on different
-	 vaccination courses or some people are on a course due
-	 to a trip abroad while most others are not</p>
-        
-
-
-        <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.lnk_pat2vaccination_course Structure</caption>
-                <tr>
-                <th>F-Key</th>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Description</th>
-                </tr>
-            
             <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>pk_audit</td>
-            	<td>integer</td>
+            	<td>issue_confidential</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT nextval('audit.audit_fields_pk_audit_seq'::regclass)
+				
+				
 				</i>
 				
 				</td>
@@ -58307,12 +72768,12 @@ order to link structures to codes.
 				<td>
                 
                 </td>
-            	<td>row_version</td>
-            	<td>integer</td>
+            	<td>episode</td>
+            	<td>text</td>
                 <td><i>
 				
 
-				NOT NULL
+				
 				
 				</i>
 				
@@ -58323,13 +72784,13 @@ order to link structures to codes.
 				<td>
                 
                 </td>
-            	<td>modified_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>episode_open</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT now()
+				
+				
 				</i>
 				
 				</td>
@@ -58339,13 +72800,13 @@ order to link structures to codes.
 				<td>
                 
                 </td>
-            	<td>modified_by</td>
-            	<td>name</td>
+            	<td>encounter_started</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT "current_user"()
+				
+				
 				</i>
 				
 				</td>
@@ -58354,18 +72815,11 @@ order to link structures to codes.
             <tr class="tr0">
 				<td>
                 
-                  
-                
-                </td>
-            	<td>pk</td>
-            	<td>serial</td>
+                </td>
+            	<td>encounter_last_affirmed</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
-					PRIMARY KEY
-					
-
-					
-				
 
 				
 				
@@ -58377,29 +72831,13 @@ order to link structures to codes.
             <tr class="tr1">
 				<td>
                 
-                  
-                  <a href="gnumed-entire_schema.html#clin.table.patient">clin.patient.fk_identity</a>
-                  
-                
-                  
-                
                 </td>
-            	<td>fk_patient</td>
-            	<td>integer</td>
+            	<td>encounter_type</td>
+            	<td>text</td>
                 <td><i>
 				
-					
-
-					
-				
-					
 
-					
-                       UNIQUE#1
-                    
 				
-
-				NOT NULL
 				
 				</i>
 				
@@ -58409,29 +72847,13 @@ order to link structures to codes.
             <tr class="tr0">
 				<td>
                 
-                  
-                  <a href="gnumed-entire_schema.html#clin.table.vaccination-course">clin.vaccination_course.pk</a>
-                  
-                
-                  
-                
                 </td>
-            	<td>fk_course</td>
-            	<td>integer</td>
+            	<td>encounter_l10n_type</td>
+            	<td>text</td>
                 <td><i>
 				
-					
-
-					
-				
-					
 
-					
-                       UNIQUE#1
-                    
 				
-
-				NOT NULL
 				
 				</i>
 				
@@ -58442,17 +72864,8 @@ order to link structures to codes.
 
         <!-- Inherits -->
 		
-        <p>Table clin.lnk_pat2vaccination_course Inherits
-        
-            
-           <a href="gnumed-entire_schema.html#audit.table.audit-fields">audit_fields</a>, 
-        
-        </p>
-		
 
 		
-		
-		
 
         <!-- Constraint List -->
 		
@@ -58465,6 +72878,156 @@ order to link structures to codes.
 
 	<!-- View Definition -->
 	
+	<pre>
+SELECT c_enc.fk_patient AS pk_patient
+,
+    c_ec.modified_when
+,
+    c_ec.modified_when AS clin_when
+,
+    COALESCE
+(
+     (
+      SELECT staff.short_alias
+           
+        FROM dem.staff
+          
+       WHERE (staff.db_user = c_ec.modified_by)
+     )
+     , (
+           ('<'::text || 
+                 (c_ec.modified_by)::text
+           ) || '>'::text
+     )
+) AS modified_by
+,
+    's'::text AS soap_cat
+,
+    
+(
+     (
+           (
+                 (
+                       (
+                             (
+                                   (
+                                         (
+                                               (
+                                                     (
+                                                           (
+                                                                 (
+                                                                       (_
+                                                                             ('External care'::text) || COALESCE
+                                                                             (
+                                                                                   (
+                                                                                         (
+                                                                                               (' '::text || _
+                                                                                                     ('by'::text)
+                                                                                               ) || ' '::text
+                                                                                         ) || c_ec.provider
+                                                                                   )
+                                                                                   ,''::text
+                                                                             )
+                                                                       ) || ' @ '::text
+                                                                 ) || d_ou.description
+                                                           ) || ' '::text
+                                                     ) || _
+                                                     ('of'::text)
+                                               ) || ' '::text
+                                         ) || d_o.description
+                                   ) || '
+'::text
+                             ) || _
+                             ('Issue:'::text)
+                       ) || ' '::text
+                 ) || COALESCE
+                 (c_hi.description
+                       , c_ec.issue
+                 )
+           ) || '
+'::text
+     ) || COALESCE
+     (
+           (
+                 (_
+                       ('Comment:'::text) || ' '::text
+                 ) || c_ec.comment
+           )
+           ,''::text
+     )
+) AS narrative
+,
+    c_ec.fk_encounter AS pk_encounter
+,
+    NULL::integer AS pk_episode
+,
+    c_ec.fk_health_issue AS pk_health_issue
+,
+    c_ec.pk AS src_pk
+,
+    'clin.external_care'::text AS src_table
+,
+    c_ec.row_version
+,
+    c_hi.description AS health_issue
+,
+    c_hi.laterality AS issue_laterality
+,
+    c_hi.is_active AS issue_active
+,
+    c_hi.clinically_relevant AS issue_clinically_relevant
+,
+    c_hi.is_confidential AS issue_confidential
+,
+    NULL::text AS episode
+,
+    NULL::boolean AS episode_open
+,
+    c_enc.started AS encounter_started
+,
+    c_enc.last_affirmed AS encounter_last_affirmed
+,
+    c_ety.description AS encounter_type
+,
+    _
+(c_ety.description) AS encounter_l10n_type
+   
+FROM (
+     (
+           (
+                 (
+                       (clin.external_care c_ec
+     
+                          JOIN clin.encounter c_enc 
+                            ON (
+                                   (c_ec.fk_encounter = c_enc.pk)
+                             )
+                       )
+     
+                    JOIN clin.encounter_type c_ety 
+                      ON (
+                             (c_enc.fk_type = c_ety.pk)
+                       )
+                 )
+     
+         LEFT JOIN clin.health_issue c_hi 
+                ON (
+                       (c_ec.fk_health_issue = c_hi.pk)
+                 )
+           )
+     
+   LEFT JOIN dem.org_unit d_ou 
+          ON (
+                 (c_ec.fk_org_unit = d_ou.pk)
+           )
+     )
+     
+LEFT JOIN dem.org d_o 
+    ON (
+           (d_ou.fk_org = d_o.pk)
+     )
+);</pre>
+	
 
 	<!-- List off permissions -->
 	
@@ -58475,15 +73038,17 @@ order to link structures to codes.
     </p>
 	
         <hr>
-		<h2>Table:
+		<h2>View:
 			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.lnk-substance2episode">lnk_substance2episode</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-family-history">v_family_history</a>
 		</h2>
         
+         <p>family history denormalized</p>
+        
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.lnk_substance2episode Structure</caption>
+                <caption>clin.v_family_history Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -58495,13 +73060,13 @@ order to link structures to codes.
 				<td>
                 
                 </td>
-            	<td>pk_audit</td>
+            	<td>pk_family_history</td>
             	<td>integer</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT nextval('audit.audit_fields_pk_audit_seq'::regclass)
+				
+				
 				</i>
 				
 				</td>
@@ -58511,12 +73076,12 @@ order to link structures to codes.
 				<td>
                 
                 </td>
-            	<td>row_version</td>
+            	<td>pk_patient</td>
             	<td>integer</td>
                 <td><i>
 				
 
-				NOT NULL
+				
 				
 				</i>
 				
@@ -58527,13 +73092,13 @@ order to link structures to codes.
 				<td>
                 
                 </td>
-            	<td>modified_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>soap_cat</td>
+            	<td>text</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT now()
+				
+				
 				</i>
 				
 				</td>
@@ -58543,13 +73108,13 @@ order to link structures to codes.
 				<td>
                 
                 </td>
-            	<td>modified_by</td>
-            	<td>name</td>
+            	<td>relation</td>
+            	<td>text</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT "current_user"()
+				
+				
 				</i>
 				
 				</td>
@@ -58558,18 +73123,11 @@ order to link structures to codes.
             <tr class="tr0">
 				<td>
                 
-                  
-                
                 </td>
-            	<td>pk</td>
-            	<td>serial</td>
+            	<td>l10n_relation</td>
+            	<td>text</td>
                 <td><i>
 				
-					PRIMARY KEY
-					
-
-					
-				
 
 				
 				
@@ -58581,19 +73139,11 @@ order to link structures to codes.
             <tr class="tr1">
 				<td>
                 
-                  
-                  <a href="gnumed-entire_schema.html#clin.table.episode">clin.episode.pk</a>
-                  
-                
                 </td>
-            	<td>fk_episode</td>
-            	<td>integer</td>
+            	<td>condition</td>
+            	<td>text</td>
                 <td><i>
 				
-					
-
-					
-				
 
 				
 				
@@ -58605,19 +73155,11 @@ order to link structures to codes.
             <tr class="tr0">
 				<td>
                 
-                  
-                  <a href="gnumed-entire_schema.html#clin.table.substance-intake">clin.substance_intake.pk</a>
-                  
-                
                 </td>
-            	<td>fk_substance</td>
-            	<td>integer</td>
+            	<td>age_noted</td>
+            	<td>text</td>
                 <td><i>
 				
-					
-
-					
-				
 
 				
 				
@@ -58626,72 +73168,33 @@ order to link structures to codes.
 				</td>
 			 </tr>
             
-        </table>
-
-        <!-- Inherits -->
-		
-        <p>Table clin.lnk_substance2episode Inherits
-        
-            
-           <a href="gnumed-entire_schema.html#audit.table.audit-fields">audit_fields</a>, 
-        
-        </p>
-		
-
-		
-		
-		
-
-        <!-- Constraint List -->
-		
-
-        <!-- Foreign Key Discovery -->
-		
-
-    <!-- Indexes -->
-    
-
-	<!-- View Definition -->
-	
-
-	<!-- List off permissions -->
-	
-
-	<p>
-		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
-    </p>
-	
-        <hr>
-		<h2>Table:
-			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.lnk-tst2norm">lnk_tst2norm</a>
-		</h2>
-        
-         <p>links test result evaluation norms to tests</p>
-        
-
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>age_of_death</td>
+            	<td>interval</td>
+                <td><i>
+				
 
-        <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.lnk_tst2norm Structure</caption>
-                <tr>
-                <th>F-Key</th>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Description</th>
-                </tr>
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
             
             <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>pk_audit</td>
-            	<td>integer</td>
+            	<td>contributed_to_death</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT nextval('audit.audit_fields_pk_audit_seq'::regclass)
+				
+				
 				</i>
 				
 				</td>
@@ -58701,12 +73204,12 @@ order to link structures to codes.
 				<td>
                 
                 </td>
-            	<td>row_version</td>
-            	<td>integer</td>
+            	<td>comment</td>
+            	<td>text</td>
                 <td><i>
 				
 
-				NOT NULL
+				
 				
 				</i>
 				
@@ -58717,13 +73220,13 @@ order to link structures to codes.
 				<td>
                 
                 </td>
-            	<td>modified_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>episode</td>
+            	<td>text</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT now()
+				
+				
 				</i>
 				
 				</td>
@@ -58733,13 +73236,13 @@ order to link structures to codes.
 				<td>
                 
                 </td>
-            	<td>modified_by</td>
-            	<td>name</td>
+            	<td>when_known_to_patient</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT "current_user"()
+				
+				
 				</i>
 				
 				</td>
@@ -58748,18 +73251,11 @@ order to link structures to codes.
             <tr class="tr0">
 				<td>
                 
-                  
-                
                 </td>
-            	<td>id</td>
-            	<td>serial</td>
+            	<td>name_relative</td>
+            	<td>text</td>
                 <td><i>
 				
-					PRIMARY KEY
-					
-
-					
-				
 
 				
 				
@@ -58771,193 +73267,107 @@ order to link structures to codes.
             <tr class="tr1">
 				<td>
                 
-                  
-                  <a href="gnumed-entire_schema.html#clin.table.test-type">clin.test_type.pk</a>
-                  
-                
-                  
-                
                 </td>
-            	<td>id_test</td>
-            	<td>integer</td>
+            	<td>dob_relative</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
-					
-
-					
-				
-					
 
-					
-                       UNIQUE#1
-                    
 				
-
-				NOT NULL
 				
 				</i>
-				<br><br>which test does the linked norm apply to
+				
 				</td>
 			 </tr>
             
             <tr class="tr0">
 				<td>
                 
-                  
-                
                 </td>
-            	<td>id_norm</td>
-            	<td>integer</td>
+            	<td>is_genetic_relative</td>
+            	<td>boolean</td>
                 <td><i>
 				
-					
 
-					
-                       UNIQUE#1
-                    
 				
-
-				NOT NULL
 				
 				</i>
-				<br><br>the norm to apply to the linked test
+				
 				</td>
 			 </tr>
             
-        </table>
-
-        <!-- Inherits -->
-		
-        <p>Table clin.lnk_tst2norm Inherits
-        
-            
-           <a href="gnumed-entire_schema.html#audit.table.audit-fields">audit_fields</a>, 
-        
-        </p>
-		
-
-		
-		
-		
-
-        <!-- Constraint List -->
-		
-
-        <!-- Foreign Key Discovery -->
-		
-
-    <!-- Indexes -->
-    
-
-	<!-- View Definition -->
-	
-
-	<!-- List off permissions -->
-	
-
-	<p>
-		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
-    </p>
-	
-        <hr>
-		<h2>Table:
-			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.lnk-type2item">lnk_type2item</a>
-		</h2>
-        
-         <p>allow to link many-to-many between clin.clin_root_item and clin.clin_item_type</p>
-        
-
-
-        <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.lnk_type2item Structure</caption>
-                <tr>
-                <th>F-Key</th>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Description</th>
-                </tr>
-            
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
-            	<td>pk_audit</td>
+            	<td>pk_encounter</td>
             	<td>integer</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT nextval('audit.audit_fields_pk_audit_seq'::regclass)
+				
+				
 				</i>
 				
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>row_version</td>
+            	<td>pk_episode</td>
             	<td>integer</td>
                 <td><i>
 				
 
-				NOT NULL
+				
 				
 				</i>
 				
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
-            	<td>modified_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>pk_health_issue</td>
+            	<td>integer</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT now()
+				
+				
 				</i>
 				
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>modified_by</td>
-            	<td>name</td>
+            	<td>pk_fhx_relation_type</td>
+            	<td>integer</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT "current_user"()
+				
+				
 				</i>
 				
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
-                  
-                
                 </td>
-            	<td>pk</td>
-            	<td>serial</td>
+            	<td>modified_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
-					PRIMARY KEY
-					
-
-					
-				
 
 				
 				
@@ -58966,64 +73376,35 @@ order to link structures to codes.
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
-                  
-                  <a href="gnumed-entire_schema.html#clin.table.clin-item-type">clin.clin_item_type.pk</a>
-                  
-                
-                  
-                
                 </td>
-            	<td>fk_type</td>
-            	<td>integer</td>
+            	<td>pk_generic_codes</td>
+            	<td>integer[]</td>
                 <td><i>
 				
-					
-
-					
-				
-					
 
-					
-                       UNIQUE#1
-                    
 				
-
-				NOT NULL
 				
 				</i>
 				
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
-                  
-                
                 </td>
-            	<td>fk_item</td>
-            	<td>integer</td>
+            	<td>xmin_family_history</td>
+            	<td>xid</td>
                 <td><i>
 				
-					
 
-					
-                       UNIQUE#1
-                    
 				
-
-				NOT NULL
 				
 				</i>
-				<br><br>the item this type is linked to,
-	 since PostgreSQL apparently cannot reference a value
-	 inserted from a child table (?) we must simulate
-	 referential integrity checks with a custom trigger,
-	 this, however, does not deal with update/delete
-	 cascading :-(
+				
 				</td>
 			 </tr>
             
@@ -59031,17 +73412,8 @@ order to link structures to codes.
 
         <!-- Inherits -->
 		
-        <p>Table clin.lnk_type2item Inherits
-        
-            
-           <a href="gnumed-entire_schema.html#audit.table.audit-fields">audit_fields</a>, 
-        
-        </p>
-		
 
 		
-		
-		
 
         <!-- Constraint List -->
 		
@@ -59054,6 +73426,85 @@ order to link structures to codes.
 
 	<!-- View Definition -->
 	
+	<pre>
+SELECT c_fh.pk AS pk_family_history
+,
+    cenc.fk_patient AS pk_patient
+,
+    c_fh.soap_cat
+,
+    c_fhrt.description AS relation
+,
+    _
+(c_fhrt.description) AS l10n_relation
+,
+    c_fh.narrative AS condition
+,
+    c_fh.age_noted
+,
+    c_fh.age_of_death
+,
+    c_fh.contributed_to_death
+,
+    c_fh.comment
+,
+    cep.description AS episode
+,
+    c_fh.clin_when AS when_known_to_patient
+,
+    c_fh.name_relative
+,
+    c_fh.dob_relative
+,
+    c_fhrt.is_genetic AS is_genetic_relative
+,
+    c_fh.fk_encounter AS pk_encounter
+,
+    c_fh.fk_episode AS pk_episode
+,
+    cep.fk_health_issue AS pk_health_issue
+,
+    c_fhrt.pk AS pk_fhx_relation_type
+,
+    c_fh.modified_when
+,
+    COALESCE
+(
+     (
+      SELECT array_agg
+           (c_lc2fhx.fk_generic_code) AS array_agg
+           
+        FROM clin.lnk_code2fhx c_lc2fhx
+          
+       WHERE (c_lc2fhx.fk_item = c_fh.pk)
+     )
+     , ARRAY[]::integer[]
+) AS pk_generic_codes
+,
+    c_fh.xmin AS xmin_family_history
+   
+FROM (
+     (
+           (clin.family_history c_fh
+     
+              JOIN clin.encounter cenc 
+                ON (
+                       (c_fh.fk_encounter = cenc.pk)
+                 )
+           )
+     
+        JOIN clin.episode cep 
+          ON (
+                 (c_fh.fk_episode = cep.pk)
+           )
+     )
+     
+LEFT JOIN clin.fhx_relation_type c_fhrt 
+    ON (
+           (c_fh.fk_relation_type = c_fhrt.pk)
+     )
+);</pre>
+	
 
 	<!-- List off permissions -->
 	
@@ -59064,19 +73515,15 @@ order to link structures to codes.
     </p>
 	
         <hr>
-		<h2>Table:
+		<h2>View:
 			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.lnk-vaccination-course2schedule">lnk_vaccination_course2schedule</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-family-history-journal">v_family_history_journal</a>
 		</h2>
         
-         <p>this table links vaccination courses for a single epitope
-	 into schedules defined and recommended by a vaccination
-	 council or similar entity</p>
-        
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.lnk_vaccination_course2schedule Structure</caption>
+                <caption>clin.v_family_history_journal Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -59088,13 +73535,13 @@ order to link structures to codes.
 				<td>
                 
                 </td>
-            	<td>pk_audit</td>
+            	<td>pk_patient</td>
             	<td>integer</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT nextval('audit.audit_fields_pk_audit_seq'::regclass)
+				
+				
 				</i>
 				
 				</td>
@@ -59104,12 +73551,12 @@ order to link structures to codes.
 				<td>
                 
                 </td>
-            	<td>row_version</td>
-            	<td>integer</td>
+            	<td>modified_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
-				NOT NULL
+				
 				
 				</i>
 				
@@ -59120,13 +73567,13 @@ order to link structures to codes.
 				<td>
                 
                 </td>
-            	<td>modified_when</td>
+            	<td>clin_when</td>
             	<td>timestamp with time zone</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT now()
+				
+				
 				</i>
 				
 				</td>
@@ -59137,12 +73584,12 @@ order to link structures to codes.
                 
                 </td>
             	<td>modified_by</td>
-            	<td>name</td>
+            	<td>text</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT "current_user"()
+				
+				
 				</i>
 				
 				</td>
@@ -59151,18 +73598,11 @@ order to link structures to codes.
             <tr class="tr0">
 				<td>
                 
-                  
-                
                 </td>
-            	<td>pk</td>
-            	<td>serial</td>
+            	<td>soap_cat</td>
+            	<td>text</td>
                 <td><i>
 				
-					PRIMARY KEY
-					
-
-					
-				
 
 				
 				
@@ -59174,29 +73614,13 @@ order to link structures to codes.
             <tr class="tr1">
 				<td>
                 
-                  
-                  <a href="gnumed-entire_schema.html#clin.table.vaccination-course">clin.vaccination_course.pk</a>
-                  
-                
-                  
-                
                 </td>
-            	<td>fk_course</td>
-            	<td>integer</td>
+            	<td>narrative</td>
+            	<td>text</td>
                 <td><i>
 				
-					
-
-					
-				
-					
 
-					
-                       UNIQUE
-                    
 				
-
-				NOT NULL
 				
 				</i>
 				
@@ -59206,93 +73630,46 @@ order to link structures to codes.
             <tr class="tr0">
 				<td>
                 
-                  
-                  <a href="gnumed-entire_schema.html#clin.table.vaccination-schedule">clin.vaccination_schedule.pk</a>
-                  
-                
                 </td>
-            	<td>fk_schedule</td>
+            	<td>pk_encounter</td>
             	<td>integer</td>
                 <td><i>
 				
-					
 
-					
 				
-
-				NOT NULL
 				
 				</i>
 				
 				</td>
 			 </tr>
             
-        </table>
-
-        <!-- Inherits -->
-		
-        <p>Table clin.lnk_vaccination_course2schedule Inherits
-        
-            
-           <a href="gnumed-entire_schema.html#audit.table.audit-fields">audit_fields</a>, 
-        
-        </p>
-		
-
-		
-		
-		
-
-        <!-- Constraint List -->
-		
-
-        <!-- Foreign Key Discovery -->
-		
-
-    <!-- Indexes -->
-    
-
-	<!-- View Definition -->
-	
-
-	<!-- List off permissions -->
-	
-
-	<p>
-		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
-    </p>
-	
-        <hr>
-		<h2>Table:
-			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.lnk-vaccine2inds">lnk_vaccine2inds</a>
-		</h2>
-        
-         <p>links vaccines to their indications</p>
-        
-
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>pk_episode</td>
+            	<td>integer</td>
+                <td><i>
+				
 
-        <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.lnk_vaccine2inds Structure</caption>
-                <tr>
-                <th>F-Key</th>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Description</th>
-                </tr>
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
             
             <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>pk_audit</td>
+            	<td>pk_health_issue</td>
             	<td>integer</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT nextval('audit.audit_fields_pk_audit_seq'::regclass)
+				
+				
 				</i>
 				
 				</td>
@@ -59302,12 +73679,12 @@ order to link structures to codes.
 				<td>
                 
                 </td>
-            	<td>row_version</td>
+            	<td>src_pk</td>
             	<td>integer</td>
                 <td><i>
 				
 
-				NOT NULL
+				
 				
 				</i>
 				
@@ -59318,13 +73695,13 @@ order to link structures to codes.
 				<td>
                 
                 </td>
-            	<td>modified_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>src_table</td>
+            	<td>text</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT now()
+				
+				
 				</i>
 				
 				</td>
@@ -59334,13 +73711,13 @@ order to link structures to codes.
 				<td>
                 
                 </td>
-            	<td>modified_by</td>
-            	<td>name</td>
+            	<td>row_version</td>
+            	<td>integer</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT "current_user"()
+				
+				
 				</i>
 				
 				</td>
@@ -59349,18 +73726,11 @@ order to link structures to codes.
             <tr class="tr0">
 				<td>
                 
-                  
-                
                 </td>
-            	<td>id</td>
-            	<td>serial</td>
+            	<td>health_issue</td>
+            	<td>text</td>
                 <td><i>
 				
-					PRIMARY KEY
-					
-
-					
-				
 
 				
 				
@@ -59372,29 +73742,13 @@ order to link structures to codes.
             <tr class="tr1">
 				<td>
                 
-                  
-                  <a href="gnumed-entire_schema.html#clin.table.vaccine">clin.vaccine.pk</a>
-                  
-                
-                  
-                
                 </td>
-            	<td>fk_vaccine</td>
-            	<td>integer</td>
+            	<td>issue_laterality</td>
+            	<td>character varying(2)</td>
                 <td><i>
 				
-					
-
-					
-				
-					
 
-					
-                       UNIQUE#1
-                    
 				
-
-				NOT NULL
 				
 				</i>
 				
@@ -59404,109 +73758,75 @@ order to link structures to codes.
             <tr class="tr0">
 				<td>
                 
-                  
-                  <a href="gnumed-entire_schema.html#clin.table.vacc-indication">clin.vacc_indication.id</a>
-                  
-                
-                  
-                
                 </td>
-            	<td>fk_indication</td>
-            	<td>integer</td>
+            	<td>issue_active</td>
+            	<td>boolean</td>
                 <td><i>
 				
-					
 
-					
 				
-					
-
-					
-                       UNIQUE#1
-                    
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>issue_clinically_relevant</td>
+            	<td>boolean</td>
+                <td><i>
 				
 
-				NOT NULL
+				
 				
 				</i>
 				
 				</td>
 			 </tr>
             
-        </table>
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>issue_confidential</td>
+            	<td>boolean</td>
+                <td><i>
+				
 
-        <!-- Inherits -->
-		
-        <p>Table clin.lnk_vaccine2inds Inherits
-        
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
             
-           <a href="gnumed-entire_schema.html#audit.table.audit-fields">audit_fields</a>, 
-        
-        </p>
-		
-
-		
-		
-		
-
-        <!-- Constraint List -->
-		
-
-        <!-- Foreign Key Discovery -->
-		
-
-    <!-- Indexes -->
-    
-
-	<!-- View Definition -->
-	
-
-	<!-- List off permissions -->
-	
-
-	<p>
-		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
-    </p>
-	
-        <hr>
-		<h2>Table:
-			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.meta-test-type">meta_test_type</a>
-		</h2>
-        
-         <p>this table merges test types from various test orgs
-	 which are intended to measure the same value but have
-	 differing names into one logical test type,
-	 this is not intended to be used for aggregating
-	 semantically different test types into "profiles"</p>
-        
-
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>episode</td>
+            	<td>text</td>
+                <td><i>
+				
 
-        <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.meta_test_type Structure</caption>
-                <tr>
-                <th>F-Key</th>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Description</th>
-                </tr>
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
             
             <tr class="tr0">
 				<td>
                 
-                  
-                
                 </td>
-            	<td>pk</td>
-            	<td>serial</td>
+            	<td>episode_open</td>
+            	<td>boolean</td>
                 <td><i>
 				
-					PRIMARY KEY
-					
-
-					
-				
 
 				
 				
@@ -59518,21 +73838,13 @@ order to link structures to codes.
             <tr class="tr1">
 				<td>
                 
-                  
-                
                 </td>
-            	<td>abbrev</td>
-            	<td>text</td>
+            	<td>encounter_started</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
-					
 
-					
-                       UNIQUE#1
-                    
 				
-
-				NOT NULL
 				
 				</i>
 				
@@ -59542,21 +73854,13 @@ order to link structures to codes.
             <tr class="tr0">
 				<td>
                 
-                  
-                
                 </td>
-            	<td>name</td>
-            	<td>text</td>
+            	<td>encounter_last_affirmed</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
-					
 
-					
-                       UNIQUE#1
-                    
 				
-
-				NOT NULL
 				
 				</i>
 				
@@ -59567,7 +73871,7 @@ order to link structures to codes.
 				<td>
                 
                 </td>
-            	<td>loinc</td>
+            	<td>encounter_type</td>
             	<td>text</td>
                 <td><i>
 				
@@ -59583,7 +73887,7 @@ order to link structures to codes.
 				<td>
                 
                 </td>
-            	<td>comment</td>
+            	<td>encounter_l10n_type</td>
             	<td>text</td>
                 <td><i>
 				
@@ -59601,27 +73905,233 @@ order to link structures to codes.
 		
 
 		
-		
-		
 
         <!-- Constraint List -->
 		
 
         <!-- Foreign Key Discovery -->
 		
-			<p>Tables referencing this one via Foreign Key Constraints:</p>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#clin.table.test-type">clin.test_type</a></li>
-			</ul>
-		
-		
 
     <!-- Indexes -->
     
 
 	<!-- View Definition -->
 	
+	<pre>
+SELECT c_enc.fk_patient AS pk_patient
+,
+    c_fh.modified_when
+,
+    c_fh.clin_when
+,
+    COALESCE
+(
+     (
+      SELECT staff.short_alias
+           
+        FROM dem.staff
+          
+       WHERE (staff.db_user = c_fh.modified_by)
+     )
+     , (
+           ('<'::text || 
+                 (c_fh.modified_by)::text
+           ) || '>'::text
+     )
+) AS modified_by
+,
+    c_fh.soap_cat
+,
+    
+(
+     (
+           (
+                 (
+                       (
+                             (
+                                   (
+                                         (
+                                               (
+                                                     (
+                                                           (
+                                                                 (_
+                                                                       (c_fhrt.description) || COALESCE
+                                                                       (
+                                                                             (' @ '::text || c_fh.age_noted)
+                                                                             ,''::text
+                                                                       )
+                                                                 ) || ': '::text
+                                                           ) || c_fh.narrative
+                                                     ) || '
+'::text
+                                               ) || ' '::text
+                                         ) ||
+        CASE
+            WHEN 
+                                         (c_fh.contributed_to_death IS TRUE) THEN 
+                                         (_
+                                               ('contributed to death'::text) || ' '::text
+                                         )
+            ELSE ''::text
+        END
+                                   ) || COALESCE
+                                   (
+                                         ('@ '::text || 
+                                               (justify_interval
+                                                     (c_fh.age_of_death)
+                                               )::text
+                                         )
+                                         ,''::text
+                                   )
+                             ) || '
+'::text
+                       ) || COALESCE
+                       (
+                             (
+                                   (' '::text || c_fh.name_relative) || 
+                                 ','::text
+                             )
+                             ,''::text
+                       )
+                 ) || COALESCE
+                 (
+                       (' '::text || to_char
+                             (c_fh.dob_relative
+                                   ,'YYYY-MM-DD'::text
+                             )
+                       )
+                       ,''::text
+                 )
+           ) || COALESCE
+           (
+                 ('
+ '::text || c_fh.comment)
+                 ,''::text
+           )
+     ) || COALESCE
+     (
+           (
+                 (';
+'::text || array_to_string
+                       (
+                             (
+                              SELECT array_agg
+                                   (
+                                         (
+                                               (
+                                                     (
+                                                           (
+                                                                 (
+                                                                       (
+                                                                             (
+                                                                                   (r_csr.code || 
+                                                                                      ' ('::text) || r_ds.name_short
+                                                                                   ) || ' - '::text
+                                                                             ) || r_ds.version
+                                                                       ) || ' - '::text
+                                                                 ) || r_ds.lang
+                                                           ) || 
+                                                 '): '::text
+                                               ) || r_csr.term
+                                         )
+                                   ) AS array_agg
+           
+                                FROM (
+                                         (clin.lnk_code2fhx c_lc2fhx
+             
+                                            JOIN ref.coding_system_root r_csr 
+                                              ON (
+                                                     (c_lc2fhx.fk_generic_code = r_csr.pk_coding_system)
+                                               )
+                                         )
+             
+                                      JOIN ref.data_source r_ds 
+                                        ON (
+                                               (r_ds.pk = r_csr.fk_data_source)
+                                         )
+                                   )
+          
+                               WHERE (c_lc2fhx.fk_item = c_fh.pk)
+                             )
+                             ,'; '::text
+                       )
+                 ) || ';'::text
+           )
+           ,''::text
+     )
+) AS narrative
+,
+    c_fh.fk_encounter AS pk_encounter
+,
+    c_fh.fk_episode AS pk_episode
+,
+    c_epi.fk_health_issue AS pk_health_issue
+,
+    c_fh.pk AS src_pk
+,
+    'clin.family_history'::text AS src_table
+,
+    c_fh.row_version
+,
+    c_hi.description AS health_issue
+,
+    c_hi.laterality AS issue_laterality
+,
+    c_hi.is_active AS issue_active
+,
+    c_hi.clinically_relevant AS issue_clinically_relevant
+,
+    c_hi.is_confidential AS issue_confidential
+,
+    c_epi.description AS episode
+,
+    c_epi.is_open AS episode_open
+,
+    c_enc.started AS encounter_started
+,
+    c_enc.last_affirmed AS encounter_last_affirmed
+,
+    c_ety.description AS encounter_type
+,
+    _
+(c_ety.description) AS encounter_l10n_type
+   
+FROM (
+     (
+           (
+                 (
+                       (clin.family_history c_fh
+     
+                          JOIN clin.encounter c_enc 
+                            ON (
+                                   (c_fh.fk_encounter = c_enc.pk)
+                             )
+                       )
+     
+                    JOIN clin.encounter_type c_ety 
+                      ON (
+                             (c_enc.fk_type = c_ety.pk)
+                       )
+                 )
+     
+              JOIN clin.episode c_epi 
+                ON (
+                       (c_fh.fk_episode = c_epi.pk)
+                 )
+           )
+     
+   LEFT JOIN clin.fhx_relation_type c_fhrt 
+          ON (
+                 (c_fh.fk_relation_type = c_fhrt.pk)
+           )
+     )
+     
+LEFT JOIN clin.health_issue c_hi 
+    ON (
+           (c_epi.fk_health_issue = c_hi.pk)
+     )
+);</pre>
+	
 
 	<!-- List off permissions -->
 	
@@ -59632,17 +74142,15 @@ order to link structures to codes.
     </p>
 	
         <hr>
-		<h2>Table:
+		<h2>View:
 			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.patient">patient</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-health-issues">v_health_issues</a>
 		</h2>
         
-         <p>A table to hold unique-per-identity *clinical* items, such as Expected Due Date.</p>
-        
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.patient Structure</caption>
+                <caption>clin.v_health_issues Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -59654,13 +74162,13 @@ order to link structures to codes.
 				<td>
                 
                 </td>
-            	<td>pk_audit</td>
+            	<td>pk_patient</td>
             	<td>integer</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT nextval('audit.audit_fields_pk_audit_seq'::regclass)
+				
+				
 				</i>
 				
 				</td>
@@ -59670,12 +74178,12 @@ order to link structures to codes.
 				<td>
                 
                 </td>
-            	<td>row_version</td>
+            	<td>pk_health_issue</td>
             	<td>integer</td>
                 <td><i>
 				
 
-				NOT NULL
+				
 				
 				</i>
 				
@@ -59686,13 +74194,13 @@ order to link structures to codes.
 				<td>
                 
                 </td>
-            	<td>modified_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>description</td>
+            	<td>text</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT now()
+				
+				
 				</i>
 				
 				</td>
@@ -59702,13 +74210,13 @@ order to link structures to codes.
 				<td>
                 
                 </td>
-            	<td>modified_by</td>
-            	<td>name</td>
+            	<td>summary</td>
+            	<td>text</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT "current_user"()
+				
+				
 				</i>
 				
 				</td>
@@ -59717,18 +74225,11 @@ order to link structures to codes.
             <tr class="tr0">
 				<td>
                 
-                  
-                
                 </td>
-            	<td>pk</td>
-            	<td>serial</td>
+            	<td>laterality</td>
+            	<td>character varying(2)</td>
                 <td><i>
 				
-					PRIMARY KEY
-					
-
-					
-				
 
 				
 				
@@ -59740,32 +74241,16 @@ order to link structures to codes.
             <tr class="tr1">
 				<td>
                 
-                  
-                
-                  
-                  <a href="gnumed-entire_schema.html#dem.table.identity">dem.identity.pk</a>
-                  
-                
                 </td>
-            	<td>fk_identity</td>
-            	<td>integer</td>
+            	<td>age_noted</td>
+            	<td>interval</td>
                 <td><i>
 				
-					
-
-					
-                       UNIQUE
-                    
-				
-					
 
-					
 				
-
-				NOT NULL
 				
 				</i>
-				<br><br>the dem.identity.pk of this patient
+				
 				</td>
 			 </tr>
             
@@ -59773,8 +74258,8 @@ order to link structures to codes.
 				<td>
                 
                 </td>
-            	<td>edc</td>
-            	<td>date</td>
+            	<td>is_active</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -59785,122 +74270,16 @@ order to link structures to codes.
 				</td>
 			 </tr>
             
-        </table>
-
-        <!-- Inherits -->
-		
-        <p>Table clin.patient Inherits
-        
-            
-           <a href="gnumed-entire_schema.html#audit.table.audit-fields">audit_fields</a>, 
-        
-        </p>
-		
-
-		
-		
-		
-
-        <!-- Constraint List -->
-		
-        <p> </p>
-		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>clin.patient Constraints</caption>
-            <tr>
-            	<th>Name</th>
-            	<th>Constraint</th>
-            </tr>
-			
-            <tr class="tr0">
-				<td>clin_patient_sane_edc</td>
-                <td>CHECK (((edc IS NULL) OR ((clin.get_dod(fk_identity) IS NULL) AND ((clin.get_dob(fk_identity) IS NULL) OR (edc > (clin.get_dob(fk_identity) + '5 years'::interval))))))</td>
-            </tr>
-			
-		</table>
-		
-
-        <!-- Foreign Key Discovery -->
-		
-			<p>Tables referencing this one via Foreign Key Constraints:</p>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#clin.table.encounter">clin.encounter</a></li>
-			</ul>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#clin.table.export-item">clin.export_item</a></li>
-			</ul>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#clin.table.incoming-data-unmatched">clin.incoming_data_unmatched</a></li>
-			</ul>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#clin.table.lnk-pat2vaccination-course">clin.lnk_pat2vaccination_course</a></li>
-			</ul>
-		
-		
-
-    <!-- Indexes -->
-    
-
-	<!-- View Definition -->
-	
-
-	<!-- List off permissions -->
-	
-
-	<p>
-		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
-    </p>
-	
-        <hr>
-		<h2>Table:
-			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.procedure">procedure</a>
-		</h2>
-        
-         <p>This table holds procedure/operations performed on the patient
- both in hospital or in community care.</p>
-        
-
-
-        <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.procedure Structure</caption>
-                <tr>
-                <th>F-Key</th>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Description</th>
-                </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>pk_audit</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				NOT NULL
-				DEFAULT nextval('audit.audit_fields_pk_audit_seq'::regclass)
-				</i>
-				
-				</td>
-			 </tr>
-            
             <tr class="tr1">
 				<td>
                 
                 </td>
-            	<td>row_version</td>
-            	<td>integer</td>
+            	<td>clinically_relevant</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
-				NOT NULL
+				
 				
 				</i>
 				
@@ -59911,13 +74290,13 @@ order to link structures to codes.
 				<td>
                 
                 </td>
-            	<td>modified_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>is_confidential</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT now()
+				
+				
 				</i>
 				
 				</td>
@@ -59927,13 +74306,13 @@ order to link structures to codes.
 				<td>
                 
                 </td>
-            	<td>modified_by</td>
-            	<td>name</td>
+            	<td>is_cause_of_death</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT "current_user"()
+				
+				
 				</i>
 				
 				</td>
@@ -59943,13 +74322,13 @@ order to link structures to codes.
 				<td>
                 
                 </td>
-            	<td>pk_item</td>
+            	<td>pk_encounter</td>
             	<td>integer</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT nextval('clin_root_item_pk_item_seq'::regclass)
+				
+				
 				</i>
 				
 				</td>
@@ -59959,13 +74338,13 @@ order to link structures to codes.
 				<td>
                 
                 </td>
-            	<td>clin_when</td>
+            	<td>modified_when</td>
             	<td>timestamp with time zone</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT now()
+				
+				
 				</i>
 				
 				</td>
@@ -59974,21 +74353,13 @@ order to link structures to codes.
             <tr class="tr0">
 				<td>
                 
-                  
-                  <a href="gnumed-entire_schema.html#clin.table.encounter">clin.encounter.pk</a>
-                  
-                
                 </td>
-            	<td>fk_encounter</td>
-            	<td>integer</td>
+            	<td>modified_by</td>
+            	<td>name</td>
                 <td><i>
 				
-					
 
-					
 				
-
-				NOT NULL
 				
 				</i>
 				
@@ -59998,21 +74369,13 @@ order to link structures to codes.
             <tr class="tr1">
 				<td>
                 
-                  
-                  <a href="gnumed-entire_schema.html#clin.table.episode">clin.episode.pk</a>
-                  
-                
                 </td>
-            	<td>fk_episode</td>
+            	<td>row_version</td>
             	<td>integer</td>
                 <td><i>
 				
-					
 
-					
 				
-
-				NOT NULL
 				
 				</i>
 				
@@ -60023,7 +74386,7 @@ order to link structures to codes.
 				<td>
                 
                 </td>
-            	<td>narrative</td>
+            	<td>grouping</td>
             	<td>text</td>
                 <td><i>
 				
@@ -60031,7 +74394,7 @@ order to link structures to codes.
 				
 				
 				</i>
-				<br><br>Which procedure/operation was performed.
+				
 				</td>
 			 </tr>
             
@@ -60039,13 +74402,13 @@ order to link structures to codes.
 				<td>
                 
                 </td>
-            	<td>soap_cat</td>
+            	<td>diagnostic_certainty_classification</td>
             	<td>text</td>
                 <td><i>
 				
 
 				
-				DEFAULT 'p'::text
+				
 				</i>
 				
 				</td>
@@ -60054,18 +74417,11 @@ order to link structures to codes.
             <tr class="tr0">
 				<td>
                 
-                  
-                
                 </td>
-            	<td>pk</td>
-            	<td>serial</td>
+            	<td>has_open_episode</td>
+            	<td>boolean</td>
                 <td><i>
 				
-					PRIMARY KEY
-					
-
-					
-				
 
 				
 				
@@ -60077,83 +74433,32 @@ order to link structures to codes.
             <tr class="tr1">
 				<td>
                 
-                  
-                  <a href="gnumed-entire_schema.html#clin.table.hospital-stay">clin.hospital_stay.pk</a>
-                  
-                
-                </td>
-            	<td>fk_hospital_stay</td>
-            	<td>integer</td>
-                <td><i>
-				
-					
-
-					
-				
-
-				
-				
-				</i>
-				<br><br>At which hospital was the procedure performed,
- unless clin_where is not null,
- if null it was an ambulatory procedure.
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
                 </td>
-            	<td>clin_end</td>
-            	<td>timestamp with time zone</td>
+            	<td>pk_generic_codes</td>
+            	<td>integer[]</td>
                 <td><i>
 				
 
 				
 				
 				</i>
-				<br><br>When did this procedure end/is expected to end.
-- NULL if unknown or .clin_when (=start) is sufficient (eg. insignificant duration)
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>is_ongoing</td>
-            	<td>boolean</td>
-                <td><i>
 				
-
-				NOT NULL
-				DEFAULT false
-				</i>
-				<br><br>Whether this procedure is still going on (such as desensibilisation, chemotherapy, etc).
 				</td>
 			 </tr>
             
             <tr class="tr0">
 				<td>
                 
-                  
-                  <a href="gnumed-entire_schema.html#dem.table.org-unit">dem.org_unit.pk</a>
-                  
-                
                 </td>
-            	<td>fk_org_unit</td>
-            	<td>integer</td>
+            	<td>xmin_health_issue</td>
+            	<td>xid</td>
                 <td><i>
 				
-					
-
-					
-				
 
 				
 				
 				</i>
-				<br><br>links to the or unit the procedure was performed at
+				
 				</td>
 			 </tr>
             
@@ -60161,80 +74466,91 @@ order to link structures to codes.
 
         <!-- Inherits -->
 		
-        <p>Table clin.procedure Inherits
-        
-            
-           <a href="gnumed-entire_schema.html#clin.table.clin-root-item">clin_root_item</a>, 
-        
-        </p>
-		
 
 		
-		
-		
 
         <!-- Constraint List -->
 		
-        <p> </p>
-		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>clin.procedure Constraints</caption>
-            <tr>
-            	<th>Name</th>
-            	<th>Constraint</th>
-            </tr>
-			
-            <tr class="tr0">
-				<td>clin_procedure_lnk_org_or_stay</td>
-                <td>CHECK ((((fk_hospital_stay IS NULL) AND (fk_org_unit IS NOT NULL)) OR ((fk_hospital_stay IS NOT NULL) AND (fk_org_unit IS NULL))))</td>
-            </tr>
-			
-            <tr class="tr1">
-				<td>clin_root_item_sane_soap_cat</td>
-                <td>CHECK (((soap_cat IS NULL) OR (lower(soap_cat) = ANY (ARRAY['s'::text, 'o'::text, 'a'::text, 'p'::text, 'u'::text]))))</td>
-            </tr>
-			
-            <tr class="tr0">
-				<td>procedure_sane_end</td>
-                <td>CHECK (((clin_end IS NULL) OR (clin_end >= clin_when)))</td>
-            </tr>
-			
-            <tr class="tr1">
-				<td>procedure_sane_ongoing</td>
-                <td>CHECK (((is_ongoing IS FALSE) OR ((clin_end IS NULL) OR (clin_end > now()))))</td>
-            </tr>
-			
-            <tr class="tr0">
-				<td>sane_procedure</td>
-                <td>CHECK ((gm.is_null_or_blank_string(narrative) IS FALSE))</td>
-            </tr>
-			
-            <tr class="tr1">
-				<td>sane_soap_cat</td>
-                <td>CHECK ((soap_cat = ANY (ARRAY['a'::text, 'p'::text])))</td>
-            </tr>
-			
-		</table>
-		
 
         <!-- Foreign Key Discovery -->
 		
-			<p>Tables referencing this one via Foreign Key Constraints:</p>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#clin.table.lnk-code2procedure">clin.lnk_code2procedure</a></li>
-			</ul>
-		
-		
 
     <!-- Indexes -->
     
-       idx_clin_procedure_fk_encounter fk_encounter
-    
-       idx_clin_procedure_fk_episode fk_episode
-    
 
 	<!-- View Definition -->
 	
+	<pre>
+SELECT (
+SELECT encounter.fk_patient
+           
+  FROM clin.encounter
+          
+ WHERE (encounter.pk = c_hi.fk_encounter)
+) AS pk_patient
+,
+    c_hi.pk AS pk_health_issue
+,
+    c_hi.description
+,
+    c_hi.summary
+,
+    c_hi.laterality
+,
+    c_hi.age_noted
+,
+    c_hi.is_active
+,
+    c_hi.clinically_relevant
+,
+    c_hi.is_confidential
+,
+    c_hi.is_cause_of_death
+,
+    c_hi.fk_encounter AS pk_encounter
+,
+    c_hi.modified_when
+,
+    c_hi.modified_by
+,
+    c_hi.row_version
+,
+    c_hi.grouping
+,
+    c_hi.diagnostic_certainty_classification
+,
+    
+(EXISTS 
+     (
+      SELECT 1
+           
+        FROM clin.episode c_ep
+          
+       WHERE (
+                 (c_ep.fk_health_issue = c_hi.pk)
+               AND (c_ep.is_open IS TRUE)
+           )
+         LIMIT 1
+     )
+) AS has_open_episode
+,
+    COALESCE
+(
+     (
+      SELECT array_agg
+           (c_lc2h.fk_generic_code) AS array_agg
+           
+        FROM clin.lnk_code2h_issue c_lc2h
+          
+       WHERE (c_lc2h.fk_item = c_hi.pk)
+     )
+     , ARRAY[]::integer[]
+) AS pk_generic_codes
+,
+    c_hi.xmin AS xmin_health_issue
+   
+FROM clin.health_issue c_hi;</pre>
+	
 
 	<!-- List off permissions -->
 	
@@ -60245,18 +74561,15 @@ order to link structures to codes.
     </p>
 	
         <hr>
-		<h2>Table:
+		<h2>View:
 			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.review-root">review_root</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-health-issues-journal">v_health_issues_journal</a>
 		</h2>
         
-         <p>this table tracks whether a particular clinical item
-	 was reviewed by a clinician or not</p>
-        
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.review_root Structure</caption>
+                <caption>clin.v_health_issues_journal Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -60268,35 +74581,19 @@ order to link structures to codes.
 				<td>
                 
                 </td>
-            	<td>pk_audit</td>
+            	<td>pk_patient</td>
             	<td>integer</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT nextval('audit.audit_fields_pk_audit_seq'::regclass)
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>row_version</td>
-            	<td>integer</td>
-                <td><i>
 				
-
-				NOT NULL
 				
 				</i>
 				
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
@@ -60305,45 +74602,6 @@ order to link structures to codes.
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT now()
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>modified_by</td>
-            	<td>name</td>
-                <td><i>
-				
-
-				NOT NULL
-				DEFAULT "current_user"()
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                  
-                
-                </td>
-            	<td>pk</td>
-            	<td>serial</td>
-                <td><i>
-				
-					PRIMARY KEY
-					
-
-					
-				
-
 				
 				
 				</i>
@@ -60351,60 +74609,19 @@ order to link structures to codes.
 				</td>
 			 </tr>
             
-            <tr class="tr1">
-				<td>
-                
-                  
-                
-                </td>
-            	<td>fk_reviewed_row</td>
-            	<td>integer</td>
-                <td><i>
-				
-					
-
-					
-                       UNIQUE#1
-                    
-				
-
-				NOT NULL
-				
-				</i>
-				<br><br>the row the review status is for: to be qualified
-	 as a proper foreign key in child tables
-				</td>
-			 </tr>
-            
             <tr class="tr0">
 				<td>
                 
-                  
-                
-                  
-                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.pk</a>
-                  
-                
                 </td>
-            	<td>fk_reviewer</td>
-            	<td>integer</td>
-                <td><i>
-				
-					
-
-					
-                       UNIQUE#1
-                    
-				
-					
-
-					
+            	<td>clin_when</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
 				
 
-				NOT NULL
+				
 				
 				</i>
-				<br><br>who has reviewed the item
+				
 				</td>
 			 </tr>
             
@@ -60412,17 +74629,15 @@ order to link structures to codes.
 				<td>
                 
                 </td>
-            	<td>is_technically_abnormal</td>
-            	<td>boolean</td>
+            	<td>modified_by</td>
+            	<td>text</td>
                 <td><i>
 				
 
-				NOT NULL
+				
 				
 				</i>
-				<br><br>whether test provider flagged this result as abnormal,
-	 *not* a clinical assessment but rather a technical one
-	 LDT: exist(8422)
+				
 				</td>
 			 </tr>
             
@@ -60430,18 +74645,15 @@ order to link structures to codes.
 				<td>
                 
                 </td>
-            	<td>clinically_relevant</td>
-            	<td>boolean</td>
+            	<td>soap_cat</td>
+            	<td>text</td>
                 <td><i>
 				
 
-				NOT NULL
+				
 				
 				</i>
-				<br><br>whether this result is considered relevant clinically,
-	 need not correspond to the value of "techically_abnormal"
-	 since abnormal values may be irrelevant while normal
-	 ones can be of significance
+				
 				</td>
 			 </tr>
             
@@ -60449,7 +74661,7 @@ order to link structures to codes.
 				<td>
                 
                 </td>
-            	<td>comment</td>
+            	<td>narrative</td>
             	<td>text</td>
                 <td><i>
 				
@@ -60461,72 +74673,17 @@ order to link structures to codes.
 				</td>
 			 </tr>
             
-        </table>
-
-        <!-- Inherits -->
-		
-        <p>Table clin.review_root Inherits
-        
-            
-           <a href="gnumed-entire_schema.html#audit.table.audit-fields">audit_fields</a>, 
-        
-        </p>
-		
-
-		
-		
-		
-
-        <!-- Constraint List -->
-		
-
-        <!-- Foreign Key Discovery -->
-		
-
-    <!-- Indexes -->
-    
-
-	<!-- View Definition -->
-	
-
-	<!-- List off permissions -->
-	
-
-	<p>
-		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
-    </p>
-	
-        <hr>
-		<h2>Table:
-			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.reviewed-test-results">reviewed_test_results</a>
-		</h2>
-        
-         <p>review table for test results</p>
-        
-
-
-        <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.reviewed_test_results Structure</caption>
-                <tr>
-                <th>F-Key</th>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Description</th>
-                </tr>
-            
             <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>pk_audit</td>
+            	<td>pk_encounter</td>
             	<td>integer</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT nextval('audit.audit_fields_pk_audit_seq'::regclass)
+				
+				
 				</i>
 				
 				</td>
@@ -60536,12 +74693,12 @@ order to link structures to codes.
 				<td>
                 
                 </td>
-            	<td>row_version</td>
+            	<td>pk_episode</td>
             	<td>integer</td>
                 <td><i>
 				
 
-				NOT NULL
+				
 				
 				</i>
 				
@@ -60552,13 +74709,13 @@ order to link structures to codes.
 				<td>
                 
                 </td>
-            	<td>modified_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>pk_health_issue</td>
+            	<td>integer</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT now()
+				
+				
 				</i>
 				
 				</td>
@@ -60568,13 +74725,13 @@ order to link structures to codes.
 				<td>
                 
                 </td>
-            	<td>modified_by</td>
-            	<td>name</td>
+            	<td>src_pk</td>
+            	<td>integer</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT "current_user"()
+				
+				
 				</i>
 				
 				</td>
@@ -60583,21 +74740,14 @@ order to link structures to codes.
             <tr class="tr0">
 				<td>
                 
-                  
-                
                 </td>
-            	<td>pk</td>
-            	<td>integer</td>
+            	<td>src_table</td>
+            	<td>text</td>
                 <td><i>
 				
-					PRIMARY KEY
-					
 
-					
 				
-
 				
-				DEFAULT nextval('review_root_pk_seq'::regclass)
 				</i>
 				
 				</td>
@@ -60606,37 +74756,13 @@ order to link structures to codes.
             <tr class="tr1">
 				<td>
                 
-                  
-                  <a href="gnumed-entire_schema.html#clin.table.test-result">clin.test_result.pk</a>
-                  
-                
-                  
-                
-                  
-                
                 </td>
-            	<td>fk_reviewed_row</td>
+            	<td>row_version</td>
             	<td>integer</td>
                 <td><i>
 				
-					
-
-					
-				
-					
-
-					
-                       UNIQUE#1
-                    
-				
-					
 
-					
-                       UNIQUE
-                    
 				
-
-				NOT NULL
 				
 				</i>
 				
@@ -60646,30 +74772,14 @@ order to link structures to codes.
             <tr class="tr0">
 				<td>
                 
-                  
-                
-                  
-                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.pk</a>
-                  
-                
                 </td>
-            	<td>fk_reviewer</td>
-            	<td>integer</td>
+            	<td>health_issue</td>
+            	<td>text</td>
                 <td><i>
 				
-					
 
-					
-                       UNIQUE#1
-                    
 				
-					
-
-					
 				
-
-				NOT NULL
-				DEFAULT f_fk_reviewer_default()
 				</i>
 				
 				</td>
@@ -60679,12 +74789,12 @@ order to link structures to codes.
 				<td>
                 
                 </td>
-            	<td>is_technically_abnormal</td>
-            	<td>boolean</td>
+            	<td>issue_laterality</td>
+            	<td>character varying(2)</td>
                 <td><i>
 				
 
-				NOT NULL
+				
 				
 				</i>
 				
@@ -60695,12 +74805,12 @@ order to link structures to codes.
 				<td>
                 
                 </td>
-            	<td>clinically_relevant</td>
+            	<td>issue_active</td>
             	<td>boolean</td>
                 <td><i>
 				
 
-				NOT NULL
+				
 				
 				</i>
 				
@@ -60711,8 +74821,8 @@ order to link structures to codes.
 				<td>
                 
                 </td>
-            	<td>comment</td>
-            	<td>text</td>
+            	<td>issue_clinically_relevant</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -60723,76 +74833,14 @@ order to link structures to codes.
 				</td>
 			 </tr>
             
-        </table>
-
-        <!-- Inherits -->
-		
-        <p>Table clin.reviewed_test_results Inherits
-        
-            
-           <a href="gnumed-entire_schema.html#clin.table.review-root">review_root</a>, 
-        
-        </p>
-		
-
-		
-		
-		
-
-        <!-- Constraint List -->
-		
-
-        <!-- Foreign Key Discovery -->
-		
-
-    <!-- Indexes -->
-    
-       idx_rtr_fk_reviewer fk_reviewer
-    
-
-	<!-- View Definition -->
-	
-
-	<!-- List off permissions -->
-	
-
-	<p>
-		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
-    </p>
-	
-        <hr>
-		<h2>Table:
-			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.soap-cat-ranks">soap_cat_ranks</a>
-		</h2>
-        
-
-
-        <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.soap_cat_ranks Structure</caption>
-                <tr>
-                <th>F-Key</th>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Description</th>
-                </tr>
-            
             <tr class="tr0">
 				<td>
                 
-                  
-                
                 </td>
-            	<td>pk</td>
-            	<td>serial</td>
+            	<td>issue_confidential</td>
+            	<td>boolean</td>
                 <td><i>
 				
-					PRIMARY KEY
-					
-
-					
-				
 
 				
 				
@@ -60805,12 +74853,12 @@ order to link structures to codes.
 				<td>
                 
                 </td>
-            	<td>rank</td>
-            	<td>integer</td>
+            	<td>episode</td>
+            	<td>text</td>
                 <td><i>
 				
 
-				NOT NULL
+				
 				
 				</i>
 				
@@ -60821,8 +74869,8 @@ order to link structures to codes.
 				<td>
                 
                 </td>
-            	<td>soap_cat</td>
-            	<td>character(1)</td>
+            	<td>episode_open</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -60833,212 +74881,383 @@ order to link structures to codes.
 				</td>
 			 </tr>
             
-        </table>
-
-        <!-- Inherits -->
-		
-
-		
-		
-		
-
-        <!-- Constraint List -->
-		
-        <p> </p>
-		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>clin.soap_cat_ranks Constraints</caption>
-            <tr>
-            	<th>Name</th>
-            	<th>Constraint</th>
-            </tr>
-			
-            <tr class="tr0">
-				<td>clin_soap_cat_ranks_sane_cats</td>
-                <td>CHECK (((soap_cat IS NULL) OR (lower((soap_cat)::text) = ANY (ARRAY['s'::text, 'o'::text, 'a'::text, 'p'::text, 'u'::text]))))</td>
-            </tr>
-			
             <tr class="tr1">
-				<td>clin_soap_cat_ranks_sane_ranks</td>
-                <td>CHECK ((rank = ANY (ARRAY[1, 2, 3, 4, 5, 6])))</td>
-            </tr>
-			
-		</table>
-		
-
-        <!-- Foreign Key Discovery -->
-		
-
-    <!-- Indexes -->
-    
-
-	<!-- View Definition -->
-	
-
-	<!-- List off permissions -->
-	
-
-	<p>
-		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
-    </p>
-	
-        <hr>
-		<h2>Table:
-			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.substance-intake">substance_intake</a>
-		</h2>
-        
-         <p>The substances a patient is actually currently taking.</p>
-        
-
-
-        <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.substance_intake Structure</caption>
-                <tr>
-                <th>F-Key</th>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Description</th>
-                </tr>
-            
-            <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>pk_audit</td>
-            	<td>integer</td>
+            	<td>encounter_started</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT nextval('audit.audit_fields_pk_audit_seq'::regclass)
+				
+				
 				</i>
 				
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>row_version</td>
-            	<td>integer</td>
+            	<td>encounter_last_affirmed</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
-				NOT NULL
+				
 				
 				</i>
 				
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
-            	<td>modified_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>encounter_type</td>
+            	<td>text</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT now()
+				
+				
 				</i>
 				
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>modified_by</td>
-            	<td>name</td>
+            	<td>encounter_l10n_type</td>
+            	<td>text</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT "current_user"()
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>pk_item</td>
-            	<td>integer</td>
-                <td><i>
-				
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+        </table>
+
+        <!-- Inherits -->
+		
+
+		
+
+        <!-- Constraint List -->
+		
+
+        <!-- Foreign Key Discovery -->
+		
+
+    <!-- Indexes -->
+    
+
+	<!-- View Definition -->
+	
+	<pre>
+SELECT c_enc.fk_patient AS pk_patient
+,
+    c_hi.modified_when
+,
+    COALESCE
+(
+     (
+      SELECT (identity.dob + c_hi.age_noted)
+           
+        FROM dem.identity
+          
+       WHERE (identity.pk = 
+                 (
+                  SELECT encounter.fk_patient
+                   
+                    FROM clin.encounter
+                  
+                   WHERE (encounter.pk = c_hi.fk_encounter)
+                 )
+           )
+     )
+     , c_enc.started
+) AS clin_when
+,
+    COALESCE
+(
+     (
+      SELECT staff.short_alias
+           
+        FROM dem.staff
+          
+       WHERE (staff.db_user = c_hi.modified_by)
+     )
+     , (
+           ('<'::text || 
+                 (c_hi.modified_by)::text
+           ) || '>'::text
+     )
+) AS modified_by
+,
+    'a'::text AS soap_cat
+,
+    
+(
+     (
+           (
+                 (
+                       (
+                             (
+                                   (
+                                         (
+                                               (
+                                                     (
+                                                           (
+                                                                 (
+                                                                       (_
+                                                                             ('Health Issue'::text) || 
+                                                                          ' ('::text) ||
+        CASE
+            WHEN c_hi.is_active THEN _
+                                                                             ('active'::text)
+            ELSE _
+                                                                             ('inactive'::text)
+        END
+                                                                       ) || 
+                                                                    ', '::text
+                                                                 ) ||
+        CASE
+            WHEN c_hi.clinically_relevant THEN _
+                                                                 ('clinically relevant'::text)
+            ELSE _
+                                                                 ('clinically not relevant'::text)
+        END
+                                                           ) || COALESCE
+                                                           (
+                                                                 (
+                                                                    ', '::text || c_hi.diagnostic_certainty_classification
+                                                                 )
+                                                                 ,''::text
+                                                           )
+                                                     ) || 
+                                           '): '::text
+                                         ) || c_hi.description
+                                   ) || COALESCE
+                                   (
+                                         (
+                                               (
+                                                     (
+                                                           (';
+'::text || _
+                                                                 ('noted at age'::text)
+                                                           ) || ': '::text
+                                                     ) || 
+                                                     (c_hi.age_noted)::text
+                                               ) || ';
+'::text
+                                         )
+                                         ,';
+'::text
+                                   )
+                             ) || COALESCE
+                             (
+                                   (
+                                         (
+                                               (_
+                                                     ('Laterality'::text) || ': '::text
+                                               ) || 
+                                               (c_hi.laterality)::text
+                                         ) || ' / '::text
+                                   )
+                                   ,''::text
+                             )
+                       ) ||
+        CASE
+            WHEN c_hi.is_confidential THEN 
+                       (_
+                             ('confidential'::text) || ' / '::text
+                       )
+            ELSE ''::text
+        END
+                 ) ||
+        CASE
+            WHEN c_hi.is_cause_of_death THEN _
+                 ('cause of death'::text)
+            ELSE ''::text
+        END
+           ) || COALESCE
+           (
+                 (
+                       (
+                             (';
+'::text || _
+                                   ('Summary'::text)
+                             ) || ':
+'::text
+                       ) || c_hi.summary
+                 )
+                 ,''::text
+           )
+     ) || COALESCE
+     (
+           (
+                 (';
+'::text || array_to_string
+                       (
+                             (
+                              SELECT array_agg
+                                   (
+                                         (
+                                               (
+                                                     (
+                                                           (
+                                                                 (
+                                                                       (
+                                                                             (
+                                                                                   (r_csr.code || 
+                                                                                      ' ('::text) || r_ds.name_short
+                                                                                   ) || ' - '::text
+                                                                             ) || r_ds.version
+                                                                       ) || ' - '::text
+                                                                 ) || r_ds.lang
+                                                           ) || 
+                                                 '): '::text
+                                               ) || r_csr.term
+                                         )
+                                   ) AS array_agg
+           
+                                FROM (
+                                         (clin.lnk_code2h_issue c_lc2h
+             
+                                            JOIN ref.coding_system_root r_csr 
+                                              ON (
+                                                     (c_lc2h.fk_generic_code = r_csr.pk_coding_system)
+                                               )
+                                         )
+             
+                                      JOIN ref.data_source r_ds 
+                                        ON (
+                                               (r_ds.pk = r_csr.fk_data_source)
+                                         )
+                                   )
+          
+                               WHERE (c_lc2h.fk_item = c_hi.pk)
+                             )
+                             ,'; '::text
+                       )
+                 ) || ';'::text
+           )
+           ,''::text
+     )
+) AS narrative
+,
+    c_hi.fk_encounter AS pk_encounter
+,
+    NULL::integer AS pk_episode
+,
+    c_hi.pk AS pk_health_issue
+,
+    c_hi.pk AS src_pk
+,
+    'clin.health_issue'::text AS src_table
+,
+    c_hi.row_version
+,
+    c_hi.description AS health_issue
+,
+    c_hi.laterality AS issue_laterality
+,
+    c_hi.is_active AS issue_active
+,
+    c_hi.clinically_relevant AS issue_clinically_relevant
+,
+    c_hi.is_confidential AS issue_confidential
+,
+    NULL::text AS episode
+,
+    NULL::boolean AS episode_open
+,
+    c_enc.started AS encounter_started
+,
+    c_enc.last_affirmed AS encounter_last_affirmed
+,
+    c_ety.description AS encounter_type
+,
+    _
+(c_ety.description) AS encounter_l10n_type
+   
+FROM (
+     (clin.health_issue c_hi
+     
+        JOIN clin.encounter c_enc 
+          ON (
+                 (c_hi.fk_encounter = c_enc.pk)
+           )
+     )
+     
+  JOIN clin.encounter_type c_ety 
+    ON (
+           (c_enc.fk_type = c_ety.pk)
+     )
+);</pre>
+	
+
+	<!-- List off permissions -->
+	
 
-				NOT NULL
-				DEFAULT nextval('clin_root_item_pk_item_seq'::regclass)
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>clin_when</td>
-            	<td>timestamp with time zone</td>
-                <td><i>
-				
+	<p>
+		<a href="gnumed-entire_schema.html#index">Index</a> -
+		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
+    </p>
+	
+        <hr>
+		<h2>View:
+			
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-hospital-stays">v_hospital_stays</a>
+		</h2>
+        
 
-				NOT NULL
-				DEFAULT now()
-				</i>
-				<br><br>When was this substance started.
-				</td>
-			 </tr>
+
+        <table width="100%" cellspacing="0" cellpadding="3">
+                <caption>clin.v_hospital_stays Structure</caption>
+                <tr>
+                <th>F-Key</th>
+                <th>Name</th>
+                <th>Type</th>
+                <th>Description</th>
+                </tr>
             
             <tr class="tr0">
 				<td>
                 
-                  
-                  <a href="gnumed-entire_schema.html#clin.table.encounter">clin.encounter.pk</a>
-                  
-                
                 </td>
-            	<td>fk_encounter</td>
+            	<td>pk_hospital_stay</td>
             	<td>integer</td>
                 <td><i>
 				
-					
 
-					
 				
-
-				NOT NULL
 				
 				</i>
-				<br><br>The encounter use of this substance was documented under.
+				
 				</td>
 			 </tr>
             
             <tr class="tr1">
 				<td>
                 
-                  
-                  <a href="gnumed-entire_schema.html#clin.table.episode">clin.episode.pk</a>
-                  
-                
                 </td>
-            	<td>fk_episode</td>
+            	<td>pk_patient</td>
             	<td>integer</td>
                 <td><i>
 				
-					
 
-					
 				
-
-				NOT NULL
 				
 				</i>
 				
@@ -61049,7 +75268,7 @@ order to link structures to codes.
 				<td>
                 
                 </td>
-            	<td>narrative</td>
+            	<td>hospital</td>
             	<td>text</td>
                 <td><i>
 				
@@ -61057,7 +75276,7 @@ order to link structures to codes.
 				
 				
 				</i>
-				<br><br>Any notes on this substance use.
+				
 				</td>
 			 </tr>
             
@@ -61065,13 +75284,13 @@ order to link structures to codes.
 				<td>
                 
                 </td>
-            	<td>soap_cat</td>
+            	<td>ward</td>
             	<td>text</td>
                 <td><i>
 				
 
 				
-				DEFAULT 'p'::text
+				
 				</i>
 				
 				</td>
@@ -61080,18 +75299,11 @@ order to link structures to codes.
             <tr class="tr0">
 				<td>
                 
-                  
-                
                 </td>
-            	<td>pk</td>
-            	<td>serial</td>
+            	<td>comment</td>
+            	<td>text</td>
                 <td><i>
 				
-					PRIMARY KEY
-					
-
-					
-				
 
 				
 				
@@ -61103,28 +75315,16 @@ order to link structures to codes.
             <tr class="tr1">
 				<td>
                 
-                  
-                  <a href="gnumed-entire_schema.html#ref.table.consumable-substance">ref.consumable_substance.pk</a>
-                  
-                
                 </td>
-            	<td>fk_substance</td>
-            	<td>integer</td>
+            	<td>admission</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
-					
-
-					
-				
 
 				
 				
 				</i>
-				<br><br>Links to a substance the patient is taking.
-********************************************* 
-DO NOT TRY TO USE THIS TO FIND OUT THE BRAND.
-IT WILL BE WRONG.
-*********************************************
+				
 				</td>
 			 </tr>
             
@@ -61132,15 +75332,15 @@ IT WILL BE WRONG.
 				<td>
                 
                 </td>
-            	<td>preparation</td>
-            	<td>text</td>
+            	<td>discharge</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
 				
 				
 				</i>
-				<br><br>How this substance is delivered, tablet, pill, liquid, cream.
+				
 				</td>
 			 </tr>
             
@@ -61148,7 +75348,7 @@ IT WILL BE WRONG.
 				<td>
                 
                 </td>
-            	<td>schedule</td>
+            	<td>soap_cat</td>
             	<td>text</td>
                 <td><i>
 				
@@ -61156,8 +75356,7 @@ IT WILL BE WRONG.
 				
 				
 				</i>
-				<br><br>The schedule, if any, the substance is to be taken by.
- An XML snippet to be interpreted by the middleware.
+				
 				</td>
 			 </tr>
             
@@ -61165,7 +75364,7 @@ IT WILL BE WRONG.
 				<td>
                 
                 </td>
-            	<td>aim</td>
+            	<td>episode</td>
             	<td>text</td>
                 <td><i>
 				
@@ -61173,39 +75372,7 @@ IT WILL BE WRONG.
 				
 				
 				</i>
-				<br><br>The aim of taking this substance.
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>duration</td>
-            	<td>interval</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				<br><br>How long is this substances intended to be taken.
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>intake_is_approved_of</td>
-            	<td>boolean</td>
-                <td><i>
-				
-
-				NOT NULL
 				
-				</i>
-				<br><br>Whether or not intake of this substance is recommended/approved of by the provider
 				</td>
 			 </tr>
             
@@ -61213,15 +75380,15 @@ IT WILL BE WRONG.
 				<td>
                 
                 </td>
-            	<td>is_long_term</td>
-            	<td>boolean</td>
+            	<td>health_issue</td>
+            	<td>text</td>
                 <td><i>
 				
 
 				
 				
 				</i>
-				<br><br>whether this is expected to be a regular/ongoing/chronic/long-term/repeat/permament/perpetual/life-long substance intake
+				
 				</td>
 			 </tr>
             
@@ -61229,15 +75396,15 @@ IT WILL BE WRONG.
 				<td>
                 
                 </td>
-            	<td>discontinued</td>
-            	<td>timestamp with time zone</td>
+            	<td>pk_encounter</td>
+            	<td>integer</td>
                 <td><i>
 				
 
 				
 				
 				</i>
-				<br><br>When was this intake discontinued ?
+				
 				</td>
 			 </tr>
             
@@ -61245,200 +75412,67 @@ IT WILL BE WRONG.
 				<td>
                 
                 </td>
-            	<td>discontinue_reason</td>
-            	<td>text</td>
+            	<td>pk_episode</td>
+            	<td>integer</td>
                 <td><i>
 				
 
 				
 				
 				</i>
-				<br><br>Why was this intake discontinued ?
+				
 				</td>
 			 </tr>
             
             <tr class="tr0">
 				<td>
                 
-                  
-                  <a href="gnumed-entire_schema.html#ref.table.lnk-substance2brand">ref.lnk_substance2brand.pk</a>
-                  
-                
                 </td>
-            	<td>fk_drug_component</td>
+            	<td>pk_health_issue</td>
             	<td>integer</td>
                 <td><i>
 				
-					
-
-					
-				
 
 				
 				
 				</i>
-				<br><br>Links to the component of a branded drug taken by a patient.
+				
 				</td>
 			 </tr>
             
-        </table>
-
-        <!-- Inherits -->
-		
-        <p>Table clin.substance_intake Inherits
-        
-            
-           <a href="gnumed-entire_schema.html#clin.table.clin-root-item">clin_root_item</a>, 
-        
-        </p>
-		
-
-		
-		
-		
-
-        <!-- Constraint List -->
-		
-        <p> </p>
-		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>clin.substance_intake Constraints</caption>
-            <tr>
-            	<th>Name</th>
-            	<th>Constraint</th>
-            </tr>
-			
-            <tr class="tr0">
-				<td>clin_root_item_sane_soap_cat</td>
-                <td>CHECK (((soap_cat IS NULL) OR (lower(soap_cat) = ANY (ARRAY['s'::text, 'o'::text, 'a'::text, 'p'::text, 'u'::text]))))</td>
-            </tr>
-			
-            <tr class="tr1">
-				<td>clin_subst_intake_either_drug_or_substance</td>
-                <td>CHECK ((((fk_drug_component IS NULL) AND (fk_substance IS NOT NULL)) OR ((fk_drug_component IS NOT NULL) AND (fk_substance IS NULL))))</td>
-            </tr>
-			
-            <tr class="tr0">
-				<td>clin_subst_intake_sane_prep</td>
-                <td>CHECK ((((fk_drug_component IS NULL) AND (preparation IS NOT NULL)) OR ((fk_drug_component IS NOT NULL) AND (preparation IS NULL))))</td>
-            </tr>
-			
-            <tr class="tr1">
-				<td>discontinued_after_started</td>
-                <td>CHECK ((((clin_when IS NULL) OR (discontinued IS NULL)) OR ((discontinued >= clin_when) AND (discontinued <= now()))))</td>
-            </tr>
-			
-            <tr class="tr0">
-				<td>medication_is_plan</td>
-                <td>CHECK ((soap_cat = 'p'::text))</td>
-            </tr>
-			
-            <tr class="tr1">
-				<td>sane_aim</td>
-                <td>CHECK ((gm.is_null_or_non_empty_string(aim) IS TRUE))</td>
-            </tr>
-			
-            <tr class="tr0">
-				<td>sane_discontinue_reason</td>
-                <td>CHECK ((((discontinued IS NULL) AND (discontinue_reason IS NULL)) OR ((discontinued IS NOT NULL) AND (gm.is_null_or_non_empty_string(discontinue_reason) IS TRUE))))</td>
-            </tr>
-			
             <tr class="tr1">
-				<td>sane_fk_episode</td>
-                <td>CHECK (((intake_is_approved_of IS FALSE) OR ((intake_is_approved_of IS TRUE) AND (fk_episode IS NOT NULL))))</td>
-            </tr>
-			
-            <tr class="tr0">
-				<td>sane_schedule</td>
-                <td>CHECK ((gm.is_null_or_non_empty_string(schedule) IS TRUE))</td>
-            </tr>
-			
-		</table>
-		
-
-        <!-- Foreign Key Discovery -->
-		
-			<p>Tables referencing this one via Foreign Key Constraints:</p>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#clin.table.lnk-substance2episode">clin.lnk_substance2episode</a></li>
-			</ul>
-		
-		
-
-    <!-- Indexes -->
-    
-       idx_c_subst_int_fk_drug_comp fk_drug_component
-    
-       idx_clin_substance_intake_fk_encounter fk_encounter
-    
-       idx_clin_substance_intake_fk_episode fk_episode
-    
-       idx_fk_substance_curr_med fk_substance
-    
-
-	<!-- View Definition -->
-	
-
-	<!-- List off permissions -->
-	
-
-	<p>
-		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
-    </p>
-	
-        <hr>
-		<h2>Table:
-			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.suppressed-hint">suppressed_hint</a>
-		</h2>
-        
-         <p>A table to hold hints suppressed per patient</p>
-        
-
-
-        <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.suppressed_hint Structure</caption>
-                <tr>
-                <th>F-Key</th>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Description</th>
-                </tr>
-            
-            <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>pk_audit</td>
+            	<td>pk_org_unit</td>
             	<td>integer</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT nextval('audit.audit_fields_pk_audit_seq'::regclass)
+				
+				
 				</i>
 				
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>row_version</td>
+            	<td>pk_org</td>
             	<td>integer</td>
                 <td><i>
 				
 
-				NOT NULL
+				
 				
 				</i>
 				
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
@@ -61447,24 +75481,8 @@ IT WILL BE WRONG.
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT now()
-				</i>
 				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>modified_by</td>
-            	<td>name</td>
-                <td><i>
 				
-
-				NOT NULL
-				DEFAULT "current_user"()
 				</i>
 				
 				</td>
@@ -61473,18 +75491,11 @@ IT WILL BE WRONG.
             <tr class="tr0">
 				<td>
                 
-                  
-                
                 </td>
-            	<td>pk</td>
-            	<td>serial</td>
+            	<td>modified_by</td>
+            	<td>text</td>
                 <td><i>
 				
-					PRIMARY KEY
-					
-
-					
-				
 
 				
 				
@@ -61496,64 +75507,16 @@ IT WILL BE WRONG.
             <tr class="tr1">
 				<td>
                 
-                  
-                  <a href="gnumed-entire_schema.html#clin.table.encounter">clin.encounter.pk</a>
-                  
-                
-                </td>
-            	<td>fk_encounter</td>
-            	<td>integer</td>
-                <td><i>
-				
-					
-
-					
-				
-
-				NOT NULL
-				
-				</i>
-				<br><br>the encounter during which this hint was first suppressed
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                  
-                  <a href="gnumed-entire_schema.html#ref.table.auto-hint">ref.auto_hint.pk</a>
-                  
-                
                 </td>
-            	<td>fk_hint</td>
+            	<td>row_version</td>
             	<td>integer</td>
                 <td><i>
 				
-					
 
-					
 				
-
-				NOT NULL
 				
 				</i>
-				<br><br>the hint that is suppressed
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>suppressed_by</td>
-            	<td>name</td>
-                <td><i>
 				
-
-				NOT NULL
-				DEFAULT "current_user"()
-				</i>
-				<br><br>who suppressed this hint
 				</td>
 			 </tr>
             
@@ -61561,47 +75524,15 @@ IT WILL BE WRONG.
 				<td>
                 
                 </td>
-            	<td>suppressed_when</td>
-            	<td>timestamp with time zone</td>
-                <td><i>
-				
-
-				NOT NULL
-				DEFAULT statement_timestamp()
-				</i>
-				<br><br>when was this hint suppressed
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>rationale</td>
-            	<td>text</td>
+            	<td>xmin_hospital_stay</td>
+            	<td>xid</td>
                 <td><i>
 				
 
 				
 				
 				</i>
-				<br><br>rationale on why this hint is suppressed in this patient
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>md5_sum</td>
-            	<td>text</td>
-                <td><i>
-				
-
-				
 				
-				</i>
-				<br><br>md5 of relevant fields of this hint
 				</td>
 			 </tr>
             
@@ -61609,58 +75540,109 @@ IT WILL BE WRONG.
 
         <!-- Inherits -->
 		
-        <p>Table clin.suppressed_hint Inherits
-        
-            
-           <a href="gnumed-entire_schema.html#audit.table.audit-fields">audit_fields</a>, 
-        
-        </p>
-		
 
 		
-		
-		
 
         <!-- Constraint List -->
 		
-        <p> </p>
-		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>clin.suppressed_hint Constraints</caption>
-            <tr>
-            	<th>Name</th>
-            	<th>Constraint</th>
-            </tr>
-			
-            <tr class="tr0">
-				<td>clin_suppressed_hint_sane_by</td>
-                <td>CHECK ((length((suppressed_by)::text) > 0))</td>
-            </tr>
-			
-            <tr class="tr1">
-				<td>clin_suppressed_hint_sane_md5</td>
-                <td>CHECK ((gm.is_null_or_blank_string(md5_sum) IS FALSE))</td>
-            </tr>
-			
-            <tr class="tr0">
-				<td>clin_suppressed_hint_sane_rationale</td>
-                <td>CHECK ((gm.is_null_or_blank_string(rationale) IS FALSE))</td>
-            </tr>
-			
-		</table>
-		
 
         <!-- Foreign Key Discovery -->
 		
 
     <!-- Indexes -->
     
-       idx_suppressed_hint_fk_encounter fk_encounter
-    
-       idx_suppressed_hint_fk_hint fk_hint
-    
 
 	<!-- View Definition -->
 	
+	<pre>
+SELECT c_hs.pk AS pk_hospital_stay
+,
+    
+(
+SELECT encounter.fk_patient
+           
+  FROM clin.encounter
+          
+ WHERE (encounter.pk = c_hs.fk_encounter)
+) AS pk_patient
+,
+    d_o.description AS hospital
+,
+    d_ou.description AS ward
+,
+    c_hs.narrative AS comment
+,
+    c_hs.clin_when AS admission
+,
+    c_hs.discharge
+,
+    c_hs.soap_cat
+,
+    c_e.description AS episode
+,
+    c_hi.description AS health_issue
+,
+    c_hs.fk_encounter AS pk_encounter
+,
+    c_hs.fk_episode AS pk_episode
+,
+    c_hi.pk AS pk_health_issue
+,
+    c_hs.fk_org_unit AS pk_org_unit
+,
+    d_o.pk AS pk_org
+,
+    c_hs.modified_when
+,
+    COALESCE
+(
+     (
+      SELECT staff.short_alias
+           
+        FROM dem.staff
+          
+       WHERE (staff.db_user = c_hs.modified_by)
+     )
+     , (
+           ('<'::text || 
+                 (c_hs.modified_by)::text
+           ) || '>'::text
+     )
+) AS modified_by
+,
+    c_hs.row_version
+,
+    c_hs.xmin AS xmin_hospital_stay
+   
+FROM (
+     (
+           (
+                 (clin.hospital_stay c_hs
+     
+               LEFT JOIN clin.episode c_e 
+                      ON (
+                             (c_e.pk = c_hs.fk_episode)
+                       )
+                 )
+     
+         LEFT JOIN clin.health_issue c_hi 
+                ON (
+                       (c_hi.pk = c_e.fk_health_issue)
+                 )
+           )
+     
+   LEFT JOIN dem.org_unit d_ou 
+          ON (
+                 (d_ou.pk = c_hs.fk_org_unit)
+           )
+     )
+     
+LEFT JOIN dem.org d_o 
+    ON (
+           (d_o.pk = d_ou.fk_org)
+     )
+);</pre>
+	
 
 	<!-- List off permissions -->
 	
@@ -61671,17 +75653,15 @@ IT WILL BE WRONG.
     </p>
 	
         <hr>
-		<h2>Table:
+		<h2>View:
 			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.test-org">test_org</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-hospital-stays-journal">v_hospital_stays_journal</a>
 		</h2>
         
-         <p>organisation providing results</p>
-        
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.test_org Structure</caption>
+                <caption>clin.v_hospital_stays_journal Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -61693,13 +75673,13 @@ IT WILL BE WRONG.
 				<td>
                 
                 </td>
-            	<td>pk_audit</td>
+            	<td>pk_patient</td>
             	<td>integer</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT nextval('audit.audit_fields_pk_audit_seq'::regclass)
+				
+				
 				</i>
 				
 				</td>
@@ -61709,12 +75689,12 @@ IT WILL BE WRONG.
 				<td>
                 
                 </td>
-            	<td>row_version</td>
-            	<td>integer</td>
+            	<td>modified_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
-				NOT NULL
+				
 				
 				</i>
 				
@@ -61725,13 +75705,13 @@ IT WILL BE WRONG.
 				<td>
                 
                 </td>
-            	<td>modified_when</td>
+            	<td>clin_when</td>
             	<td>timestamp with time zone</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT now()
+				
+				
 				</i>
 				
 				</td>
@@ -61742,12 +75722,12 @@ IT WILL BE WRONG.
                 
                 </td>
             	<td>modified_by</td>
-            	<td>name</td>
+            	<td>text</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT "current_user"()
+				
+				
 				</i>
 				
 				</td>
@@ -61756,18 +75736,11 @@ IT WILL BE WRONG.
             <tr class="tr0">
 				<td>
                 
-                  
-                
                 </td>
-            	<td>pk</td>
-            	<td>serial</td>
+            	<td>soap_cat</td>
+            	<td>text</td>
                 <td><i>
 				
-					PRIMARY KEY
-					
-
-					
-				
 
 				
 				
@@ -61779,81 +75752,48 @@ IT WILL BE WRONG.
             <tr class="tr1">
 				<td>
                 
-                  
-                
-                  
-                  <a href="gnumed-entire_schema.html#dem.table.org-unit">dem.org_unit.pk</a>
-                  
-                
                 </td>
-            	<td>fk_org_unit</td>
-            	<td>integer</td>
+            	<td>narrative</td>
+            	<td>text</td>
                 <td><i>
 				
-					
-
-					
-                       UNIQUE
-                    
-				
-					
 
-					
 				
-
-				NOT NULL
 				
 				</i>
-				<br><br>link to a unit of an organization more closely defining this lab
+				
 				</td>
 			 </tr>
             
             <tr class="tr0">
 				<td>
                 
-                  
-                  <a href="gnumed-entire_schema.html#dem.table.identity">dem.identity.pk</a>
-                  
-                
                 </td>
-            	<td>fk_adm_contact</td>
+            	<td>pk_encounter</td>
             	<td>integer</td>
                 <td><i>
 				
-					
-
-					
-				
 
 				
 				
 				</i>
-				<br><br>whom to call for admin questions (modem link, etc.)
+				
 				</td>
 			 </tr>
             
             <tr class="tr1">
 				<td>
                 
-                  
-                  <a href="gnumed-entire_schema.html#dem.table.identity">dem.identity.pk</a>
-                  
-                
                 </td>
-            	<td>fk_med_contact</td>
+            	<td>pk_episode</td>
             	<td>integer</td>
                 <td><i>
 				
-					
-
-					
-				
 
 				
 				
 				</i>
-				<br><br>whom to call for medical questions (result verification,
-	 additional test requests)
+				
 				</td>
 			 </tr>
             
@@ -61861,17 +75801,15 @@ IT WILL BE WRONG.
 				<td>
                 
                 </td>
-            	<td>comment</td>
-            	<td>text</td>
+            	<td>pk_health_issue</td>
+            	<td>integer</td>
                 <td><i>
 				
 
 				
 				
 				</i>
-				<br><br>useful for, say, dummy records where you want
-	 to mark up stuff like "pharmacy such-and-such"
-	 if you don't have it in your contacts
+				
 				</td>
 			 </tr>
             
@@ -61879,119 +75817,29 @@ IT WILL BE WRONG.
 				<td>
                 
                 </td>
-            	<td>contact</td>
-            	<td>text</td>
+            	<td>src_pk</td>
+            	<td>integer</td>
                 <td><i>
 				
 
 				
 				
 				</i>
-				<br><br>free-text contact information for this lab
+				
 				</td>
 			 </tr>
             
-        </table>
-
-        <!-- Inherits -->
-		
-        <p>Table clin.test_org Inherits
-        
-            
-           <a href="gnumed-entire_schema.html#audit.table.audit-fields">audit_fields</a>, 
-        
-        </p>
-		
-
-		
-		
-		
-
-        <!-- Constraint List -->
-		
-        <p> </p>
-		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>clin.test_org Constraints</caption>
-            <tr>
-            	<th>Name</th>
-            	<th>Constraint</th>
-            </tr>
-			
-            <tr class="tr0">
-				<td>sane_comment</td>
-                <td>CHECK ((gm.is_null_or_non_empty_string(comment) IS TRUE))</td>
-            </tr>
-			
-            <tr class="tr1">
-				<td>sane_contact</td>
-                <td>CHECK ((gm.is_null_or_non_empty_string(contact) IS TRUE))</td>
-            </tr>
-			
-		</table>
-		
-
-        <!-- Foreign Key Discovery -->
-		
-			<p>Tables referencing this one via Foreign Key Constraints:</p>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#clin.table.lab-request">clin.lab_request</a></li>
-			</ul>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#clin.table.test-type">clin.test_type</a></li>
-			</ul>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#staging.table.lab-request">staging.lab_request</a></li>
-			</ul>
-		
-		
-
-    <!-- Indexes -->
-    
-
-	<!-- View Definition -->
-	
-
-	<!-- List off permissions -->
-	
-
-	<p>
-		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
-    </p>
-	
-        <hr>
-		<h2>Table:
-			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.test-panel">test_panel</a>
-		</h2>
-        
-         <p>Panels of tests. The same test can appear in several panels.</p>
-        
-
-
-        <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.test_panel Structure</caption>
-                <tr>
-                <th>F-Key</th>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Description</th>
-                </tr>
-            
             <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>pk_audit</td>
-            	<td>integer</td>
+            	<td>src_table</td>
+            	<td>text</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT nextval('audit.audit_fields_pk_audit_seq'::regclass)
+				
+				
 				</i>
 				
 				</td>
@@ -62006,7 +75854,7 @@ IT WILL BE WRONG.
                 <td><i>
 				
 
-				NOT NULL
+				
 				
 				</i>
 				
@@ -62017,13 +75865,13 @@ IT WILL BE WRONG.
 				<td>
                 
                 </td>
-            	<td>modified_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>health_issue</td>
+            	<td>text</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT now()
+				
+				
 				</i>
 				
 				</td>
@@ -62033,13 +75881,13 @@ IT WILL BE WRONG.
 				<td>
                 
                 </td>
-            	<td>modified_by</td>
-            	<td>name</td>
+            	<td>issue_laterality</td>
+            	<td>character varying(2)</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT "current_user"()
+				
+				
 				</i>
 				
 				</td>
@@ -62048,18 +75896,11 @@ IT WILL BE WRONG.
             <tr class="tr0">
 				<td>
                 
-                  
-                
                 </td>
-            	<td>pk</td>
-            	<td>serial</td>
+            	<td>issue_active</td>
+            	<td>boolean</td>
                 <td><i>
 				
-					PRIMARY KEY
-					
-
-					
-				
 
 				
 				
@@ -62072,15 +75913,15 @@ IT WILL BE WRONG.
 				<td>
                 
                 </td>
-            	<td>description</td>
-            	<td>text</td>
+            	<td>issue_clinically_relevant</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
 				
 				
 				</i>
-				<br><br>A description/label for this panel.
+				
 				</td>
 			 </tr>
             
@@ -62088,15 +75929,15 @@ IT WILL BE WRONG.
 				<td>
                 
                 </td>
-            	<td>comment</td>
-            	<td>text</td>
+            	<td>issue_confidential</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
 				
 				
 				</i>
-				<br><br>An arbitrary comment on this panel.
+				
 				</td>
 			 </tr>
             
@@ -62104,111 +75945,29 @@ IT WILL BE WRONG.
 				<td>
                 
                 </td>
-            	<td>fk_test_types</td>
-            	<td>integer[]</td>
+            	<td>episode</td>
+            	<td>text</td>
                 <td><i>
 				
 
 				
 				
 				</i>
-				<br><br>Links to test types which belong to this panel.
+				
 				</td>
 			 </tr>
             
-        </table>
-
-        <!-- Inherits -->
-		
-        <p>Table clin.test_panel Inherits
-        
-            
-           <a href="gnumed-entire_schema.html#audit.table.audit-fields">audit_fields</a>, 
-        
-        </p>
-		
-
-		
-		
-		
-
-        <!-- Constraint List -->
-		
-        <p> </p>
-		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>clin.test_panel Constraints</caption>
-            <tr>
-            	<th>Name</th>
-            	<th>Constraint</th>
-            </tr>
-			
-            <tr class="tr0">
-				<td>clin_test_panel_sane_cmt</td>
-                <td>CHECK ((gm.is_null_or_non_empty_string(comment) IS TRUE))</td>
-            </tr>
-			
-            <tr class="tr1">
-				<td>clin_test_panel_sane_desc</td>
-                <td>CHECK ((gm.is_null_or_blank_string(description) IS FALSE))</td>
-            </tr>
-			
-		</table>
-		
-
-        <!-- Foreign Key Discovery -->
-		
-			<p>Tables referencing this one via Foreign Key Constraints:</p>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#clin.table.lnk-code2tst-pnl">clin.lnk_code2tst_pnl</a></li>
-			</ul>
-		
-		
-
-    <!-- Indexes -->
-    
-
-	<!-- View Definition -->
-	
-
-	<!-- List off permissions -->
-	
-
-	<p>
-		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
-    </p>
-	
-        <hr>
-		<h2>Table:
-			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.test-result">test_result</a>
-		</h2>
-        
-         <p>the results of a single measurement</p>
-        
-
-
-        <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.test_result Structure</caption>
-                <tr>
-                <th>F-Key</th>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Description</th>
-                </tr>
-            
             <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>pk_audit</td>
-            	<td>integer</td>
+            	<td>episode_open</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT nextval('audit.audit_fields_pk_audit_seq'::regclass)
+				
+				
 				</i>
 				
 				</td>
@@ -62218,12 +75977,12 @@ IT WILL BE WRONG.
 				<td>
                 
                 </td>
-            	<td>row_version</td>
-            	<td>integer</td>
+            	<td>encounter_started</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
-				NOT NULL
+				
 				
 				</i>
 				
@@ -62234,130 +75993,306 @@ IT WILL BE WRONG.
 				<td>
                 
                 </td>
-            	<td>modified_when</td>
+            	<td>encounter_last_affirmed</td>
             	<td>timestamp with time zone</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT now()
-				</i>
 				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>modified_by</td>
-            	<td>name</td>
-                <td><i>
 				
-
-				NOT NULL
-				DEFAULT "current_user"()
 				</i>
 				
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
-            	<td>pk_item</td>
-            	<td>integer</td>
+            	<td>encounter_type</td>
+            	<td>text</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT nextval('clin_root_item_pk_item_seq'::regclass)
-				</i>
 				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>clin_when</td>
-            	<td>timestamp with time zone</td>
-                <td><i>
 				
-
-				NOT NULL
-				DEFAULT now()
 				</i>
-				<br><br>the time when this result was *actually* obtained,
-	 if this is a lab result this should be between
-	 lab_request.clin_when and lab_request.results_reported_when,
-	 HL7: OBR.observation_date_time
+				
 				</td>
 			 </tr>
             
             <tr class="tr0">
 				<td>
                 
-                  
-                  <a href="gnumed-entire_schema.html#clin.table.encounter">clin.encounter.pk</a>
-                  
-                
                 </td>
-            	<td>fk_encounter</td>
-            	<td>integer</td>
+            	<td>encounter_l10n_type</td>
+            	<td>text</td>
                 <td><i>
 				
-					
 
-					
 				
-
-				NOT NULL
 				
 				</i>
 				
 				</td>
 			 </tr>
             
-            <tr class="tr1">
-				<td>
-                
-                  
-                  <a href="gnumed-entire_schema.html#clin.table.episode">clin.episode.pk</a>
-                  
-                
-                </td>
-            	<td>fk_episode</td>
-            	<td>integer</td>
-                <td><i>
-				
-					
+        </table>
 
-					
-				
+        <!-- Inherits -->
+		
 
-				NOT NULL
-				
-				</i>
-				
-				</td>
-			 </tr>
+		
+
+        <!-- Constraint List -->
+		
+
+        <!-- Foreign Key Discovery -->
+		
+
+    <!-- Indexes -->
+    
+
+	<!-- View Definition -->
+	
+	<pre>
+SELECT v_hospital_stays_journal_no_discharge.pk_patient
+,
+    v_hospital_stays_journal_no_discharge.modified_when
+,
+    v_hospital_stays_journal_no_discharge.clin_when
+,
+    v_hospital_stays_journal_no_discharge.modified_by
+,
+    v_hospital_stays_journal_no_discharge.soap_cat
+,
+    v_hospital_stays_journal_no_discharge.narrative
+,
+    v_hospital_stays_journal_no_discharge.pk_encounter
+,
+    v_hospital_stays_journal_no_discharge.pk_episode
+,
+    v_hospital_stays_journal_no_discharge.pk_health_issue
+,
+    v_hospital_stays_journal_no_discharge.src_pk
+,
+    v_hospital_stays_journal_no_discharge.src_table
+,
+    v_hospital_stays_journal_no_discharge.row_version
+,
+    v_hospital_stays_journal_no_discharge.health_issue
+,
+    v_hospital_stays_journal_no_discharge.issue_laterality
+,
+    v_hospital_stays_journal_no_discharge.issue_active
+,
+    v_hospital_stays_journal_no_discharge.issue_clinically_relevant
+,
+    v_hospital_stays_journal_no_discharge.issue_confidential
+,
+    v_hospital_stays_journal_no_discharge.episode
+,
+    v_hospital_stays_journal_no_discharge.episode_open
+,
+    v_hospital_stays_journal_no_discharge.encounter_started
+,
+    v_hospital_stays_journal_no_discharge.encounter_last_affirmed
+,
+    v_hospital_stays_journal_no_discharge.encounter_type
+,
+    v_hospital_stays_journal_no_discharge.encounter_l10n_type
+   
+FROM clin.v_hospital_stays_journal_no_discharge
+
+UNION ALL
+ 
+SELECT v_hospital_stays_journal_one_day.pk_patient
+,
+    v_hospital_stays_journal_one_day.modified_when
+,
+    v_hospital_stays_journal_one_day.clin_when
+,
+    v_hospital_stays_journal_one_day.modified_by
+,
+    v_hospital_stays_journal_one_day.soap_cat
+,
+    v_hospital_stays_journal_one_day.narrative
+,
+    v_hospital_stays_journal_one_day.pk_encounter
+,
+    v_hospital_stays_journal_one_day.pk_episode
+,
+    v_hospital_stays_journal_one_day.pk_health_issue
+,
+    v_hospital_stays_journal_one_day.src_pk
+,
+    v_hospital_stays_journal_one_day.src_table
+,
+    v_hospital_stays_journal_one_day.row_version
+,
+    v_hospital_stays_journal_one_day.health_issue
+,
+    v_hospital_stays_journal_one_day.issue_laterality
+,
+    v_hospital_stays_journal_one_day.issue_active
+,
+    v_hospital_stays_journal_one_day.issue_clinically_relevant
+,
+    v_hospital_stays_journal_one_day.issue_confidential
+,
+    v_hospital_stays_journal_one_day.episode
+,
+    v_hospital_stays_journal_one_day.episode_open
+,
+    v_hospital_stays_journal_one_day.encounter_started
+,
+    v_hospital_stays_journal_one_day.encounter_last_affirmed
+,
+    v_hospital_stays_journal_one_day.encounter_type
+,
+    v_hospital_stays_journal_one_day.encounter_l10n_type
+   
+FROM clin.v_hospital_stays_journal_one_day
+
+UNION ALL
+ 
+SELECT v_hospital_stays_journal_multi_day_adm.pk_patient
+,
+    v_hospital_stays_journal_multi_day_adm.modified_when
+,
+    v_hospital_stays_journal_multi_day_adm.clin_when
+,
+    v_hospital_stays_journal_multi_day_adm.modified_by
+,
+    v_hospital_stays_journal_multi_day_adm.soap_cat
+,
+    v_hospital_stays_journal_multi_day_adm.narrative
+,
+    v_hospital_stays_journal_multi_day_adm.pk_encounter
+,
+    v_hospital_stays_journal_multi_day_adm.pk_episode
+,
+    v_hospital_stays_journal_multi_day_adm.pk_health_issue
+,
+    v_hospital_stays_journal_multi_day_adm.src_pk
+,
+    v_hospital_stays_journal_multi_day_adm.src_table
+,
+    v_hospital_stays_journal_multi_day_adm.row_version
+,
+    v_hospital_stays_journal_multi_day_adm.health_issue
+,
+    v_hospital_stays_journal_multi_day_adm.issue_laterality
+,
+    v_hospital_stays_journal_multi_day_adm.issue_active
+,
+    v_hospital_stays_journal_multi_day_adm.issue_clinically_relevant
+,
+    v_hospital_stays_journal_multi_day_adm.issue_confidential
+,
+    v_hospital_stays_journal_multi_day_adm.episode
+,
+    v_hospital_stays_journal_multi_day_adm.episode_open
+,
+    v_hospital_stays_journal_multi_day_adm.encounter_started
+,
+    v_hospital_stays_journal_multi_day_adm.encounter_last_affirmed
+,
+    v_hospital_stays_journal_multi_day_adm.encounter_type
+,
+    v_hospital_stays_journal_multi_day_adm.encounter_l10n_type
+   
+FROM clin.v_hospital_stays_journal_multi_day_adm
+
+UNION ALL
+ 
+SELECT v_hospital_stays_journal_multi_day_dis.pk_patient
+,
+    v_hospital_stays_journal_multi_day_dis.modified_when
+,
+    v_hospital_stays_journal_multi_day_dis.clin_when
+,
+    v_hospital_stays_journal_multi_day_dis.modified_by
+,
+    v_hospital_stays_journal_multi_day_dis.soap_cat
+,
+    v_hospital_stays_journal_multi_day_dis.narrative
+,
+    v_hospital_stays_journal_multi_day_dis.pk_encounter
+,
+    v_hospital_stays_journal_multi_day_dis.pk_episode
+,
+    v_hospital_stays_journal_multi_day_dis.pk_health_issue
+,
+    v_hospital_stays_journal_multi_day_dis.src_pk
+,
+    v_hospital_stays_journal_multi_day_dis.src_table
+,
+    v_hospital_stays_journal_multi_day_dis.row_version
+,
+    v_hospital_stays_journal_multi_day_dis.health_issue
+,
+    v_hospital_stays_journal_multi_day_dis.issue_laterality
+,
+    v_hospital_stays_journal_multi_day_dis.issue_active
+,
+    v_hospital_stays_journal_multi_day_dis.issue_clinically_relevant
+,
+    v_hospital_stays_journal_multi_day_dis.issue_confidential
+,
+    v_hospital_stays_journal_multi_day_dis.episode
+,
+    v_hospital_stays_journal_multi_day_dis.episode_open
+,
+    v_hospital_stays_journal_multi_day_dis.encounter_started
+,
+    v_hospital_stays_journal_multi_day_dis.encounter_last_affirmed
+,
+    v_hospital_stays_journal_multi_day_dis.encounter_type
+,
+    v_hospital_stays_journal_multi_day_dis.encounter_l10n_type
+   
+FROM clin.v_hospital_stays_journal_multi_day_dis;</pre>
+	
+
+	<!-- List off permissions -->
+	
+
+	<p>
+		<a href="gnumed-entire_schema.html#index">Index</a> -
+		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
+    </p>
+	
+        <hr>
+		<h2>View:
+			
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-hospital-stays-journal-multi-day-adm">v_hospital_stays_journal_multi_day_adm</a>
+		</h2>
+        
+
+
+        <table width="100%" cellspacing="0" cellpadding="3">
+                <caption>clin.v_hospital_stays_journal_multi_day_adm Structure</caption>
+                <tr>
+                <th>F-Key</th>
+                <th>Name</th>
+                <th>Type</th>
+                <th>Description</th>
+                </tr>
             
             <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>narrative</td>
-            	<td>text</td>
+            	<td>pk_patient</td>
+            	<td>integer</td>
                 <td><i>
 				
 
 				
 				
 				</i>
-				<br><br>clinical comment, progress note
+				
 				</td>
 			 </tr>
             
@@ -62365,13 +76300,13 @@ IT WILL BE WRONG.
 				<td>
                 
                 </td>
-            	<td>soap_cat</td>
-            	<td>text</td>
+            	<td>modified_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
 				
-				DEFAULT 'o'::text
+				
 				</i>
 				
 				</td>
@@ -62380,18 +76315,11 @@ IT WILL BE WRONG.
             <tr class="tr0">
 				<td>
                 
-                  
-                
                 </td>
-            	<td>pk</td>
-            	<td>serial</td>
+            	<td>clin_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
-					PRIMARY KEY
-					
-
-					
-				
 
 				
 				
@@ -62403,24 +76331,16 @@ IT WILL BE WRONG.
             <tr class="tr1">
 				<td>
                 
-                  
-                  <a href="gnumed-entire_schema.html#clin.table.test-type">clin.test_type.pk</a>
-                  
-                
                 </td>
-            	<td>fk_type</td>
-            	<td>integer</td>
+            	<td>modified_by</td>
+            	<td>text</td>
                 <td><i>
 				
-					
 
-					
 				
-
-				NOT NULL
 				
 				</i>
-				<br><br>the type of test this result is from
+				
 				</td>
 			 </tr>
             
@@ -62428,16 +76348,15 @@ IT WILL BE WRONG.
 				<td>
                 
                 </td>
-            	<td>val_num</td>
-            	<td>numeric</td>
+            	<td>soap_cat</td>
+            	<td>text</td>
                 <td><i>
 				
 
 				
 				
 				</i>
-				<br><br>numeric value if any,
-	 HL7: OBX.observation_results if OBX.value_type == NM
+				
 				</td>
 			 </tr>
             
@@ -62445,7 +76364,7 @@ IT WILL BE WRONG.
 				<td>
                 
                 </td>
-            	<td>val_alpha</td>
+            	<td>narrative</td>
             	<td>text</td>
                 <td><i>
 				
@@ -62453,8 +76372,7 @@ IT WILL BE WRONG.
 				
 				
 				</i>
-				<br><br>alphanumeric value if any,
-	 HL7: OBX.observation_results if OBX.value_type == FT
+				
 				</td>
 			 </tr>
             
@@ -62462,16 +76380,15 @@ IT WILL BE WRONG.
 				<td>
                 
                 </td>
-            	<td>val_unit</td>
-            	<td>text</td>
+            	<td>pk_encounter</td>
+            	<td>integer</td>
                 <td><i>
 				
 
 				
 				
 				</i>
-				<br><br>the unit this result came in
-	 HL7: OBX.units
+				
 				</td>
 			 </tr>
             
@@ -62479,16 +76396,15 @@ IT WILL BE WRONG.
 				<td>
                 
                 </td>
-            	<td>val_normal_min</td>
-            	<td>numeric</td>
+            	<td>pk_episode</td>
+            	<td>integer</td>
                 <td><i>
 				
 
 				
 				
 				</i>
-				<br><br>lower bound of normal range if numerical as
-	 defined by provider for this result
+				
 				</td>
 			 </tr>
             
@@ -62496,16 +76412,15 @@ IT WILL BE WRONG.
 				<td>
                 
                 </td>
-            	<td>val_normal_max</td>
-            	<td>numeric</td>
+            	<td>pk_health_issue</td>
+            	<td>integer</td>
                 <td><i>
 				
 
 				
 				
 				</i>
-				<br><br>upper bound of normal range if numerical as
-	 defined by provider for this result
+				
 				</td>
 			 </tr>
             
@@ -62513,18 +76428,15 @@ IT WILL BE WRONG.
 				<td>
                 
                 </td>
-            	<td>val_normal_range</td>
-            	<td>text</td>
+            	<td>src_pk</td>
+            	<td>integer</td>
                 <td><i>
 				
 
 				
 				
 				</i>
-				<br><br>range of normal values if alphanumerical
-	 as defined by provider for this result, eg.
-	 "less than 0.5 but detectable"
-	 HL7: OBX.reference_range
+				
 				</td>
 			 </tr>
             
@@ -62532,16 +76444,15 @@ IT WILL BE WRONG.
 				<td>
                 
                 </td>
-            	<td>val_target_min</td>
-            	<td>numeric</td>
+            	<td>src_table</td>
+            	<td>text</td>
                 <td><i>
 				
 
 				
 				
 				</i>
-				<br><br>lower bound of target range if numerical as
-	 defined by clinician caring this patient
+				
 				</td>
 			 </tr>
             
@@ -62549,16 +76460,15 @@ IT WILL BE WRONG.
 				<td>
                 
                 </td>
-            	<td>val_target_max</td>
-            	<td>numeric</td>
+            	<td>row_version</td>
+            	<td>integer</td>
                 <td><i>
 				
 
 				
 				
 				</i>
-				<br><br>upper bound of target range if numerical as
-	 defined by clinician caring for this patient
+				
 				</td>
 			 </tr>
             
@@ -62566,7 +76476,7 @@ IT WILL BE WRONG.
 				<td>
                 
                 </td>
-            	<td>val_target_range</td>
+            	<td>health_issue</td>
             	<td>text</td>
                 <td><i>
 				
@@ -62574,8 +76484,7 @@ IT WILL BE WRONG.
 				
 				
 				</i>
-				<br><br>range of target values if alphanumerical
-	 as defined by clinician caring for this patient
+				
 				</td>
 			 </tr>
             
@@ -62583,17 +76492,15 @@ IT WILL BE WRONG.
 				<td>
                 
                 </td>
-            	<td>abnormality_indicator</td>
-            	<td>text</td>
+            	<td>issue_laterality</td>
+            	<td>character varying(2)</td>
                 <td><i>
 				
 
 				
 				
 				</i>
-				<br><br>how the test provider flagged this result as abnormal,
-	 *not* a clinical assessment but rather a technical one
-	 LDT: 8422
+				
 				</td>
 			 </tr>
             
@@ -62601,18 +76508,15 @@ IT WILL BE WRONG.
 				<td>
                 
                 </td>
-            	<td>norm_ref_group</td>
-            	<td>text</td>
+            	<td>issue_active</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
 				
 				
 				</i>
-				<br><br>what sample of the population does this normal range
-	 applay to, eg what type of patient was assumed when
-	 interpreting this result,
-	 LDT: 8407
+				
 				</td>
 			 </tr>
             
@@ -62620,15 +76524,15 @@ IT WILL BE WRONG.
 				<td>
                 
                 </td>
-            	<td>note_test_org</td>
-            	<td>text</td>
+            	<td>issue_clinically_relevant</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
 				
 				
 				</i>
-				<br><br>A comment on the test result provided by the tester or testing entity.
+				
 				</td>
 			 </tr>
             
@@ -62636,16 +76540,15 @@ IT WILL BE WRONG.
 				<td>
                 
                 </td>
-            	<td>material</td>
-            	<td>text</td>
+            	<td>issue_confidential</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
 				
 				
 				</i>
-				<br><br>the submitted material, eg. smear, serum, urine, etc.,
-	 LDT: 8430
+				
 				</td>
 			 </tr>
             
@@ -62653,7 +76556,7 @@ IT WILL BE WRONG.
 				<td>
                 
                 </td>
-            	<td>material_detail</td>
+            	<td>episode</td>
             	<td>text</td>
                 <td><i>
 				
@@ -62661,56 +76564,39 @@ IT WILL BE WRONG.
 				
 				
 				</i>
-				<br><br>details re the material, eg. site taken from, etc.
-	 LDT: 8431
+				
 				</td>
 			 </tr>
             
             <tr class="tr0">
 				<td>
                 
-                  
-                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.pk</a>
-                  
-                
                 </td>
-            	<td>fk_intended_reviewer</td>
-            	<td>integer</td>
+            	<td>episode_open</td>
+            	<td>boolean</td>
                 <td><i>
 				
-					
 
-					
 				
-
-				NOT NULL
 				
 				</i>
-				<br><br>who is *supposed* to review this item
+				
 				</td>
 			 </tr>
             
             <tr class="tr1">
 				<td>
                 
-                  
-                  <a href="gnumed-entire_schema.html#clin.table.lab-request">clin.lab_request.pk</a>
-                  
-                
                 </td>
-            	<td>fk_request</td>
-            	<td>integer</td>
+            	<td>encounter_started</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
-					
-
-					
-				
 
 				
 				
 				</i>
-				<br><br>The request this result was ordered under if any.
+				
 				</td>
 			 </tr>
             
@@ -62718,15 +76604,15 @@ IT WILL BE WRONG.
 				<td>
                 
                 </td>
-            	<td>status</td>
-            	<td>text</td>
+            	<td>encounter_last_affirmed</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
 				
 				
 				</i>
-				<br><br>The result status (say, HL7 OBX 11 Observ result status (#00579, table 0085).
+				
 				</td>
 			 </tr>
             
@@ -62734,7 +76620,7 @@ IT WILL BE WRONG.
 				<td>
                 
                 </td>
-            	<td>source_data</td>
+            	<td>encounter_type</td>
             	<td>text</td>
                 <td><i>
 				
@@ -62742,7 +76628,7 @@ IT WILL BE WRONG.
 				
 				
 				</i>
-				<br><br>The source data for this observation (say, HL7 OBX).
+				
 				</td>
 			 </tr>
             
@@ -62750,7 +76636,7 @@ IT WILL BE WRONG.
 				<td>
                 
                 </td>
-            	<td>val_grouping</td>
+            	<td>encounter_l10n_type</td>
             	<td>text</td>
                 <td><i>
 				
@@ -62758,7 +76644,7 @@ IT WILL BE WRONG.
 				
 				
 				</i>
-				<br><br>A grouping for related values (say, HL7 OBX Obs Sub ID, think antibiogram).
+				
 				</td>
 			 </tr>
             
@@ -62766,86 +76652,203 @@ IT WILL BE WRONG.
 
         <!-- Inherits -->
 		
-        <p>Table clin.test_result Inherits
-        
-            
-           <a href="gnumed-entire_schema.html#clin.table.clin-root-item">clin_root_item</a>, 
-        
-        </p>
-		
 
 		
-		
-		
 
         <!-- Constraint List -->
 		
-        <p> </p>
-		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>clin.test_result Constraints</caption>
-            <tr>
-            	<th>Name</th>
-            	<th>Constraint</th>
-            </tr>
-			
-            <tr class="tr0">
-				<td>clin_root_item_sane_soap_cat</td>
-                <td>CHECK (((soap_cat IS NULL) OR (lower(soap_cat) = ANY (ARRAY['s'::text, 'o'::text, 'a'::text, 'p'::text, 'u'::text]))))</td>
-            </tr>
-			
-            <tr class="tr1">
-				<td>clin_test_result_sane_source_data</td>
-                <td>CHECK (gm.is_null_or_non_empty_string(source_data))</td>
-            </tr>
-			
-            <tr class="tr0">
-				<td>clin_test_result_sane_status</td>
-                <td>CHECK (gm.is_null_or_non_empty_string(status))</td>
-            </tr>
-			
-            <tr class="tr1">
-				<td>clin_test_result_sane_val_grouping</td>
-                <td>CHECK (gm.is_null_or_non_empty_string(val_grouping))</td>
-            </tr>
-			
-            <tr class="tr0">
-				<td>numval_needs_unit</td>
-                <td>CHECK ((((val_num IS NOT NULL) AND (btrim(COALESCE(val_unit, ''::text)) <> ''::text)) OR (val_num IS NULL)))</td>
-            </tr>
-			
-            <tr class="tr1">
-				<td>test_result_check</td>
-                <td>CHECK ((((val_num IS NOT NULL) OR (val_alpha IS NOT NULL)) OR (((val_num IS NULL) AND (val_alpha <> ''::text)) AND (val_alpha IS NOT NULL))))</td>
-            </tr>
-			
-		</table>
-		
 
         <!-- Foreign Key Discovery -->
 		
-			<p>Tables referencing this one via Foreign Key Constraints:</p>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#clin.table.reviewed-test-results">clin.reviewed_test_results</a></li>
-			</ul>
-		
-		
 
     <!-- Indexes -->
     
-       idx_clin_test_result_fk_encounter fk_encounter
-    
-       idx_clin_test_result_fk_episode fk_episode
-    
-       idx_test_result_fk_type fk_type
-    
-       idx_test_result_status status
-    
-       idx_test_result_unit val_unit
-    
 
 	<!-- View Definition -->
 	
+	<pre>
+SELECT c_enc.fk_patient AS pk_patient
+,
+    c_hs.modified_when
+,
+    c_hs.clin_when
+,
+    COALESCE
+(
+     (
+      SELECT staff.short_alias
+           
+        FROM dem.staff
+          
+       WHERE (staff.db_user = c_hs.modified_by)
+     )
+     , (
+           ('<'::text || 
+                 (c_hs.modified_by)::text
+           ) || '>'::text
+     )
+) AS modified_by
+,
+    c_hs.soap_cat
+,
+    
+(
+     (
+           (
+                 (
+                       (
+                             (
+                                   (
+                                         (
+                                               (
+                                                     (
+                                                           (
+                                                                 (
+                                                                       (
+                                                                             (
+                                                                                   (
+                                                                                         (
+                                                                                               (
+                                                                                                     (
+                                                                                                           (
+                                                                                                                 (_
+                                                                                                                       ('hospital stay'::text) || '
+'::text
+                                                                                                                 ) || ' '::text
+                                                                                                           ) || _
+                                                                                                           ('admitted'::text)
+                                                                                                     ) || ': '::text
+                                                                                               ) || to_char
+                                                                                               (c_hs.clin_when
+                                                                                                     ,'YYYY-MM-DD'::text
+                                                                                               )
+                                                                                         ) || '
+'::text
+                                                                                   ) || ' '::text
+                                                                             ) || _
+                                                                             ('discharged'::text)
+                                                                       ) || ': '::text
+                                                                 ) || to_char
+                                                                 (c_hs.discharge
+                                                                       ,'YYYY-MM-DD'::text
+                                                                 )
+                                                           ) || '
+'::text
+                                                     ) || ' '::text
+                                               ) || _
+                                               ('hospital'::text)
+                                         ) || ': "'::text
+                                   ) || d_ou.description
+                             ) || ' @ '::text
+                       ) || d_o.description
+                 ) || '"'::text
+           ) || '
+'::text
+     ) || COALESCE
+     (
+           ('
+ '::text || c_hs.narrative)
+           ,''::text
+     )
+) AS narrative
+,
+    c_hs.fk_encounter AS pk_encounter
+,
+    c_hs.fk_episode AS pk_episode
+,
+    
+(
+SELECT episode.fk_health_issue
+           
+  FROM clin.episode
+          
+ WHERE (episode.pk = c_hs.fk_episode)
+) AS pk_health_issue
+,
+    c_hs.pk AS src_pk
+,
+    'clin.hospital_stay'::text AS src_table
+,
+    c_hs.row_version
+,
+    c_hi.description AS health_issue
+,
+    c_hi.laterality AS issue_laterality
+,
+    c_hi.is_active AS issue_active
+,
+    c_hi.clinically_relevant AS issue_clinically_relevant
+,
+    c_hi.is_confidential AS issue_confidential
+,
+    c_epi.description AS episode
+,
+    c_epi.is_open AS episode_open
+,
+    c_enc.started AS encounter_started
+,
+    c_enc.last_affirmed AS encounter_last_affirmed
+,
+    c_ety.description AS encounter_type
+,
+    _
+(c_ety.description) AS encounter_l10n_type
+   
+FROM (
+     (
+           (
+                 (
+                       (
+                             (clin.hospital_stay c_hs
+     
+                                JOIN clin.encounter c_enc 
+                                  ON (
+                                         (c_hs.fk_encounter = c_enc.pk)
+                                   )
+                             )
+     
+                          JOIN clin.encounter_type c_ety 
+                            ON (
+                                   (c_enc.fk_type = c_ety.pk)
+                             )
+                       )
+     
+                    JOIN clin.episode c_epi 
+                      ON (
+                             (c_hs.fk_episode = c_epi.pk)
+                       )
+                 )
+     
+         LEFT JOIN clin.health_issue c_hi 
+                ON (
+                       (c_epi.fk_health_issue = c_hi.pk)
+                 )
+           )
+     
+   LEFT JOIN dem.org_unit d_ou 
+          ON (
+                 (d_ou.pk = c_hs.fk_org_unit)
+           )
+     )
+     
+LEFT JOIN dem.org d_o 
+    ON (
+           (d_o.pk = d_ou.fk_org)
+     )
+)
+  
+WHERE (
+     (c_hs.discharge IS NOT NULL)
+   AND (to_char
+           (c_hs.clin_when
+                 ,'YYYYMMDD'::text
+           ) <> to_char
+           (c_hs.discharge
+                 ,'YYYYMMDD'::text
+           )
+     )
+);</pre>
+	
 
 	<!-- List off permissions -->
 	
@@ -62856,17 +76859,15 @@ IT WILL BE WRONG.
     </p>
 	
         <hr>
-		<h2>Table:
+		<h2>View:
 			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.table.test-type">test_type</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-hospital-stays-journal-multi-day-dis">v_hospital_stays_journal_multi_day_dis</a>
 		</h2>
         
-         <p>measurement type, like a "method" in a lab</p>
-        
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.test_type Structure</caption>
+                <caption>clin.v_hospital_stays_journal_multi_day_dis Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -62878,35 +76879,19 @@ IT WILL BE WRONG.
 				<td>
                 
                 </td>
-            	<td>pk_audit</td>
+            	<td>pk_patient</td>
             	<td>integer</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT nextval('audit.audit_fields_pk_audit_seq'::regclass)
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>row_version</td>
-            	<td>integer</td>
-                <td><i>
 				
-
-				NOT NULL
 				
 				</i>
 				
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
@@ -62915,24 +76900,8 @@ IT WILL BE WRONG.
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT now()
-				</i>
 				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>modified_by</td>
-            	<td>name</td>
-                <td><i>
 				
-
-				NOT NULL
-				DEFAULT "current_user"()
 				</i>
 				
 				</td>
@@ -62941,18 +76910,11 @@ IT WILL BE WRONG.
             <tr class="tr0">
 				<td>
                 
-                  
-                
                 </td>
-            	<td>pk</td>
-            	<td>serial</td>
+            	<td>clin_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
-					PRIMARY KEY
-					
-
-					
-				
 
 				
 				
@@ -62964,82 +76926,16 @@ IT WILL BE WRONG.
             <tr class="tr1">
 				<td>
                 
-                  
-                
-                  
-                
-                  
-                  <a href="gnumed-entire_schema.html#clin.table.test-org">clin.test_org.pk</a>
-                  
-                
-                </td>
-            	<td>fk_test_org</td>
-            	<td>integer</td>
-                <td><i>
-				
-					
-
-					
-                       UNIQUE#2
-                    
-				
-					
-
-					
-                       UNIQUE#1
-                    
-				
-					
-
-					
-				
-
-				NOT NULL
-				
-				</i>
-				<br><br>organisation carrying out this type of measurement, eg. a particular lab
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                  
-                
                 </td>
-            	<td>name</td>
+            	<td>modified_by</td>
             	<td>text</td>
                 <td><i>
 				
-					
 
-					
-                       UNIQUE#1
-                    
 				
-
-				NOT NULL
 				
 				</i>
-				<br><br>descriptive name of this measurement type,
-	 HL7: OBX.observation_identifier
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>comment</td>
-            	<td>text</td>
-                <td><i>
-				
-
-				
 				
-				</i>
-				<br><br>arbitrary comment on this type of measurement/test such
-	 as "outdated" or "only reliable when ..."
 				</td>
 			 </tr>
             
@@ -63047,7 +76943,7 @@ IT WILL BE WRONG.
 				<td>
                 
                 </td>
-            	<td>reference_unit</td>
+            	<td>soap_cat</td>
             	<td>text</td>
                 <td><i>
 				
@@ -63055,7 +76951,7 @@ IT WILL BE WRONG.
 				
 				
 				</i>
-				<br><br>The chosen reference unit for this test type, preferably SI, used for comparing results delivered in differing units. This does not relate to what unit the test provider delivers results in but rather the unit we think those results need to be converted to in order to be comparable to OTHER results.
+				
 				</td>
 			 </tr>
             
@@ -63063,7 +76959,7 @@ IT WILL BE WRONG.
 				<td>
                 
                 </td>
-            	<td>loinc</td>
+            	<td>narrative</td>
             	<td>text</td>
                 <td><i>
 				
@@ -63078,130 +76974,40 @@ IT WILL BE WRONG.
             <tr class="tr0">
 				<td>
                 
-                  
-                
-                </td>
-            	<td>abbrev</td>
-            	<td>text</td>
-                <td><i>
-				
-					
-
-					
-                       UNIQUE#2
-                    
-				
-
-				NOT NULL
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                  
-                  <a href="gnumed-entire_schema.html#clin.table.meta-test-type">clin.meta_test_type.pk</a>
-                  
-                
                 </td>
-            	<td>fk_meta_test_type</td>
+            	<td>pk_encounter</td>
             	<td>integer</td>
-                <td><i>
-				
-					
-
-					
-				
-
-				
-				
-				</i>
-				<br><br>Link to the meta test type (if any) this test type is to be aggregated under.
-				</td>
-			 </tr>
-            
-        </table>
-
-        <!-- Inherits -->
-		
-        <p>Table clin.test_type Inherits
-        
-            
-           <a href="gnumed-entire_schema.html#audit.table.audit-fields">audit_fields</a>, 
-        
-        </p>
-		
-
-		
-		
-		
-
-        <!-- Constraint List -->
-		
-
-        <!-- Foreign Key Discovery -->
-		
-			<p>Tables referencing this one via Foreign Key Constraints:</p>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#clin.table.lnk-tst2norm">clin.lnk_tst2norm</a></li>
-			</ul>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#clin.table.test-result">clin.test_result</a></li>
-			</ul>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#de-de.table.lab-test-gnr">de_de.lab_test_gnr</a></li>
-			</ul>
-		
-		
-
-    <!-- Indexes -->
-    
-       idx_test_type_fk_meta_test_type fk_meta_test_type
-    
-       idx_test_type_fk_test_org fk_test_org
-    
-       idx_test_type_loinc loinc
-    
-
-	<!-- View Definition -->
-	
-
-	<!-- List off permissions -->
-	
-
-	<p>
-		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
-    </p>
-	
-        <hr>
-		<h2>View:
-			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-brand-intakes">v_brand_intakes</a>
-		</h2>
-        
+                <td><i>
+				
 
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>pk_episode</td>
+            	<td>integer</td>
+                <td><i>
+				
 
-        <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.v_brand_intakes Structure</caption>
-                <tr>
-                <th>F-Key</th>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Description</th>
-                </tr>
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
             
             <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>pk_substance_intake</td>
+            	<td>pk_health_issue</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -63217,7 +77023,7 @@ IT WILL BE WRONG.
 				<td>
                 
                 </td>
-            	<td>pk_patient</td>
+            	<td>src_pk</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -63233,7 +77039,7 @@ IT WILL BE WRONG.
 				<td>
                 
                 </td>
-            	<td>soap_cat</td>
+            	<td>src_table</td>
             	<td>text</td>
                 <td><i>
 				
@@ -63249,8 +77055,8 @@ IT WILL BE WRONG.
 				<td>
                 
                 </td>
-            	<td>brand</td>
-            	<td>text</td>
+            	<td>row_version</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -63265,7 +77071,7 @@ IT WILL BE WRONG.
 				<td>
                 
                 </td>
-            	<td>preparation</td>
+            	<td>health_issue</td>
             	<td>text</td>
                 <td><i>
 				
@@ -63281,8 +77087,8 @@ IT WILL BE WRONG.
 				<td>
                 
                 </td>
-            	<td>substance</td>
-            	<td>text</td>
+            	<td>issue_laterality</td>
+            	<td>character varying(2)</td>
                 <td><i>
 				
 
@@ -63297,8 +77103,8 @@ IT WILL BE WRONG.
 				<td>
                 
                 </td>
-            	<td>amount</td>
-            	<td>numeric</td>
+            	<td>issue_active</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -63313,8 +77119,8 @@ IT WILL BE WRONG.
 				<td>
                 
                 </td>
-            	<td>unit</td>
-            	<td>text</td>
+            	<td>issue_clinically_relevant</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -63329,8 +77135,8 @@ IT WILL BE WRONG.
 				<td>
                 
                 </td>
-            	<td>atc_substance</td>
-            	<td>text</td>
+            	<td>issue_confidential</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -63345,7 +77151,7 @@ IT WILL BE WRONG.
 				<td>
                 
                 </td>
-            	<td>atc_brand</td>
+            	<td>episode</td>
             	<td>text</td>
                 <td><i>
 				
@@ -63361,8 +77167,8 @@ IT WILL BE WRONG.
 				<td>
                 
                 </td>
-            	<td>external_code_brand</td>
-            	<td>text</td>
+            	<td>episode_open</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -63377,8 +77183,8 @@ IT WILL BE WRONG.
 				<td>
                 
                 </td>
-            	<td>external_code_type_brand</td>
-            	<td>text</td>
+            	<td>encounter_started</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
@@ -63393,7 +77199,7 @@ IT WILL BE WRONG.
 				<td>
                 
                 </td>
-            	<td>started</td>
+            	<td>encounter_last_affirmed</td>
             	<td>timestamp with time zone</td>
                 <td><i>
 				
@@ -63409,8 +77215,8 @@ IT WILL BE WRONG.
 				<td>
                 
                 </td>
-            	<td>intake_is_approved_of</td>
-            	<td>boolean</td>
+            	<td>encounter_type</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -63425,7 +77231,7 @@ IT WILL BE WRONG.
 				<td>
                 
                 </td>
-            	<td>schedule</td>
+            	<td>encounter_l10n_type</td>
             	<td>text</td>
                 <td><i>
 				
@@ -63437,12 +77243,207 @@ IT WILL BE WRONG.
 				</td>
 			 </tr>
             
+        </table>
+
+        <!-- Inherits -->
+		
+
+		
+
+        <!-- Constraint List -->
+		
+
+        <!-- Foreign Key Discovery -->
+		
+
+    <!-- Indexes -->
+    
+
+	<!-- View Definition -->
+	
+	<pre>
+SELECT c_enc.fk_patient AS pk_patient
+,
+    c_hs.modified_when
+,
+    c_hs.discharge AS clin_when
+,
+    COALESCE
+(
+     (
+      SELECT staff.short_alias
+           
+        FROM dem.staff
+          
+       WHERE (staff.db_user = c_hs.modified_by)
+     )
+     , (
+           ('<'::text || 
+                 (c_hs.modified_by)::text
+           ) || '>'::text
+     )
+) AS modified_by
+,
+    c_hs.soap_cat
+,
+    
+(
+     (
+           (
+                 (
+                       (_
+                             ('discharged from'::text) || ' "'::text
+                       ) || d_ou.description
+                 ) || ' @ '::text
+           ) || d_o.description
+     ) || '"'::text
+) AS narrative
+,
+    c_hs.fk_encounter AS pk_encounter
+,
+    c_hs.fk_episode AS pk_episode
+,
+    
+(
+SELECT episode.fk_health_issue
+           
+  FROM clin.episode
+          
+ WHERE (episode.pk = c_hs.fk_episode)
+) AS pk_health_issue
+,
+    c_hs.pk AS src_pk
+,
+    'clin.hospital_stay'::text AS src_table
+,
+    c_hs.row_version
+,
+    c_hi.description AS health_issue
+,
+    c_hi.laterality AS issue_laterality
+,
+    c_hi.is_active AS issue_active
+,
+    c_hi.clinically_relevant AS issue_clinically_relevant
+,
+    c_hi.is_confidential AS issue_confidential
+,
+    c_epi.description AS episode
+,
+    c_epi.is_open AS episode_open
+,
+    c_enc.started AS encounter_started
+,
+    c_enc.last_affirmed AS encounter_last_affirmed
+,
+    c_ety.description AS encounter_type
+,
+    _
+(c_ety.description) AS encounter_l10n_type
+   
+FROM (
+     (
+           (
+                 (
+                       (
+                             (clin.hospital_stay c_hs
+     
+                                JOIN clin.encounter c_enc 
+                                  ON (
+                                         (c_hs.fk_encounter = c_enc.pk)
+                                   )
+                             )
+     
+                          JOIN clin.encounter_type c_ety 
+                            ON (
+                                   (c_enc.fk_type = c_ety.pk)
+                             )
+                       )
+     
+                    JOIN clin.episode c_epi 
+                      ON (
+                             (c_hs.fk_episode = c_epi.pk)
+                       )
+                 )
+     
+         LEFT JOIN clin.health_issue c_hi 
+                ON (
+                       (c_epi.fk_health_issue = c_hi.pk)
+                 )
+           )
+     
+   LEFT JOIN dem.org_unit d_ou 
+          ON (
+                 (d_ou.pk = c_hs.fk_org_unit)
+           )
+     )
+     
+LEFT JOIN dem.org d_o 
+    ON (
+           (d_o.pk = d_ou.fk_org)
+     )
+)
+  
+WHERE (
+     (c_hs.discharge IS NOT NULL)
+   AND (to_char
+           (c_hs.clin_when
+                 ,'YYYYMMDD'::text
+           ) <> to_char
+           (c_hs.discharge
+                 ,'YYYYMMDD'::text
+           )
+     )
+);</pre>
+	
+
+	<!-- List off permissions -->
+	
+
+	<p>
+		<a href="gnumed-entire_schema.html#index">Index</a> -
+		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
+    </p>
+	
+        <hr>
+		<h2>View:
+			
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-hospital-stays-journal-no-discharge">v_hospital_stays_journal_no_discharge</a>
+		</h2>
+        
+
+
+        <table width="100%" cellspacing="0" cellpadding="3">
+                <caption>clin.v_hospital_stays_journal_no_discharge Structure</caption>
+                <tr>
+                <th>F-Key</th>
+                <th>Name</th>
+                <th>Type</th>
+                <th>Description</th>
+                </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_patient</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
             <tr class="tr1">
 				<td>
                 
                 </td>
-            	<td>duration</td>
-            	<td>interval</td>
+            	<td>modified_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
@@ -63457,7 +77458,7 @@ IT WILL BE WRONG.
 				<td>
                 
                 </td>
-            	<td>discontinued</td>
+            	<td>clin_when</td>
             	<td>timestamp with time zone</td>
                 <td><i>
 				
@@ -63473,7 +77474,7 @@ IT WILL BE WRONG.
 				<td>
                 
                 </td>
-            	<td>discontinue_reason</td>
+            	<td>modified_by</td>
             	<td>text</td>
                 <td><i>
 				
@@ -63489,8 +77490,8 @@ IT WILL BE WRONG.
 				<td>
                 
                 </td>
-            	<td>is_long_term</td>
-            	<td>boolean</td>
+            	<td>soap_cat</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -63505,7 +77506,7 @@ IT WILL BE WRONG.
 				<td>
                 
                 </td>
-            	<td>aim</td>
+            	<td>narrative</td>
             	<td>text</td>
                 <td><i>
 				
@@ -63521,8 +77522,8 @@ IT WILL BE WRONG.
 				<td>
                 
                 </td>
-            	<td>episode</td>
-            	<td>text</td>
+            	<td>pk_encounter</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -63537,8 +77538,8 @@ IT WILL BE WRONG.
 				<td>
                 
                 </td>
-            	<td>health_issue</td>
-            	<td>text</td>
+            	<td>pk_episode</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -63553,8 +77554,8 @@ IT WILL BE WRONG.
 				<td>
                 
                 </td>
-            	<td>notes</td>
-            	<td>text</td>
+            	<td>pk_health_issue</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -63569,8 +77570,8 @@ IT WILL BE WRONG.
 				<td>
                 
                 </td>
-            	<td>fake_brand</td>
-            	<td>boolean</td>
+            	<td>src_pk</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -63585,8 +77586,8 @@ IT WILL BE WRONG.
 				<td>
                 
                 </td>
-            	<td>is_currently_active</td>
-            	<td>boolean</td>
+            	<td>src_table</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -63601,8 +77602,8 @@ IT WILL BE WRONG.
 				<td>
                 
                 </td>
-            	<td>seems_inactive</td>
-            	<td>boolean</td>
+            	<td>row_version</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -63617,8 +77618,8 @@ IT WILL BE WRONG.
 				<td>
                 
                 </td>
-            	<td>pk_brand</td>
-            	<td>integer</td>
+            	<td>health_issue</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -63633,8 +77634,8 @@ IT WILL BE WRONG.
 				<td>
                 
                 </td>
-            	<td>pk_data_source</td>
-            	<td>integer</td>
+            	<td>issue_laterality</td>
+            	<td>character varying(2)</td>
                 <td><i>
 				
 
@@ -63649,8 +77650,8 @@ IT WILL BE WRONG.
 				<td>
                 
                 </td>
-            	<td>pk_substance</td>
-            	<td>integer</td>
+            	<td>issue_active</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -63665,8 +77666,8 @@ IT WILL BE WRONG.
 				<td>
                 
                 </td>
-            	<td>pk_drug_component</td>
-            	<td>integer</td>
+            	<td>issue_clinically_relevant</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -63681,8 +77682,8 @@ IT WILL BE WRONG.
 				<td>
                 
                 </td>
-            	<td>pk_encounter</td>
-            	<td>integer</td>
+            	<td>issue_confidential</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -63697,8 +77698,8 @@ IT WILL BE WRONG.
 				<td>
                 
                 </td>
-            	<td>pk_episode</td>
-            	<td>integer</td>
+            	<td>episode</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -63713,8 +77714,8 @@ IT WILL BE WRONG.
 				<td>
                 
                 </td>
-            	<td>pk_health_issue</td>
-            	<td>integer</td>
+            	<td>episode_open</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -63729,7 +77730,7 @@ IT WILL BE WRONG.
 				<td>
                 
                 </td>
-            	<td>modified_when</td>
+            	<td>encounter_started</td>
             	<td>timestamp with time zone</td>
                 <td><i>
 				
@@ -63745,8 +77746,8 @@ IT WILL BE WRONG.
 				<td>
                 
                 </td>
-            	<td>modified_by</td>
-            	<td>name</td>
+            	<td>encounter_last_affirmed</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
@@ -63761,8 +77762,8 @@ IT WILL BE WRONG.
 				<td>
                 
                 </td>
-            	<td>row_version</td>
-            	<td>integer</td>
+            	<td>encounter_type</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -63777,8 +77778,8 @@ IT WILL BE WRONG.
 				<td>
                 
                 </td>
-            	<td>xmin_substance_intake</td>
-            	<td>xid</td>
+            	<td>encounter_l10n_type</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -63808,99 +77809,159 @@ IT WILL BE WRONG.
 	<!-- View Definition -->
 	
 	<pre>
-SELECT c_si.pk AS pk_substance_intake
-, (
-SELECT encounter.fk_patient 
-  FROM clin.encounter 
- WHERE (encounter.pk = c_si.fk_encounter)
-) AS pk_patient
-, c_si.soap_cat
-, r_bd.description AS brand
-, r_bd.preparation
-, r_cs.description AS substance
-, r_cs.amount
-, r_cs.unit
-, r_cs.atc_code AS atc_substance
-, r_bd.atc_code AS atc_brand
-, r_bd.external_code AS external_code_brand
-, r_bd.external_code_type AS external_code_type_brand
-, c_si.clin_when AS started
-, c_si.intake_is_approved_of
-, c_si.schedule
-, c_si.duration
-, c_si.discontinued
-, c_si.discontinue_reason
-, c_si.is_long_term
-, c_si.aim
-, cep.description AS episode
-, c_hi.description AS health_issue
-, c_si.narrative AS notes
-, r_bd.is_fake AS fake_brand
-, CASE WHEN 
-(c_si.discontinued IS NULL) THEN true ELSE false END AS is_currently_active
-, CASE WHEN 
-(c_si.discontinued IS NOT NULL) THEN true WHEN 
-(c_si.clin_when IS NULL) THEN CASE WHEN 
-(c_si.is_long_term IS TRUE) THEN false ELSE NULL::boolean END WHEN 
-(
-     (c_si.clin_when > now
-           ()
-     ) IS TRUE
-) THEN true WHEN 
+SELECT c_enc.fk_patient AS pk_patient
+,
+    c_hs.modified_when
+,
+    c_hs.clin_when
+,
+    COALESCE
 (
      (
-           (c_si.clin_when + c_si.duration) < now
-           ()
-     ) IS TRUE
-) THEN true WHEN 
+      SELECT staff.short_alias
+           
+        FROM dem.staff
+          
+       WHERE (staff.db_user = c_hs.modified_by)
+     )
+     , (
+           ('<'::text || 
+                 (c_hs.modified_by)::text
+           ) || '>'::text
+     )
+) AS modified_by
+,
+    c_hs.soap_cat
+,
+    
 (
      (
-           (c_si.clin_when + c_si.duration) > now
-           ()
-     ) IS TRUE
-) THEN false ELSE NULL::boolean END AS seems_inactive
-, r_ls2b.fk_brand AS pk_brand
-, r_bd.fk_data_source AS pk_data_source
-, r_ls2b.fk_substance AS pk_substance
-, r_ls2b.pk AS pk_drug_component
-, c_si.fk_encounter AS pk_encounter
-, c_si.fk_episode AS pk_episode
-, cep.fk_health_issue AS pk_health_issue
-, c_si.modified_when
-, c_si.modified_by
-, c_si.row_version
-, c_si.xmin AS xmin_substance_intake 
+           (
+                 (
+                       (
+                             (
+                                   (
+                                         (
+                                               (
+                                                     (
+                                                           (
+                                                                 (
+                                                                       (
+                                                                             (_
+                                                                                   ('hospital stay'::text) || '
+'::text
+                                                                             ) || ' '::text
+                                                                       ) || _
+                                                                       ('admitted'::text)
+                                                                 ) || ': '::text
+                                                           ) || to_char
+                                                           (c_hs.clin_when
+                                                                 ,'YYYY-MM-DD'::text
+                                                           )
+                                                     ) || '
+'::text
+                                               ) || ' '::text
+                                         ) || _
+                                         ('hospital'::text)
+                                   ) || ': "'::text
+                             ) || d_ou.description
+                       ) || ' @ '::text
+                 ) || d_o.description
+           ) || '"'::text
+     ) || COALESCE
+     (
+           ('
+ '::text || c_hs.narrative)
+           ,''::text
+     )
+) AS narrative
+,
+    c_hs.fk_encounter AS pk_encounter
+,
+    c_hs.fk_episode AS pk_episode
+,
+    
+(
+SELECT episode.fk_health_issue
+           
+  FROM clin.episode
+          
+ WHERE (episode.pk = c_hs.fk_episode)
+) AS pk_health_issue
+,
+    c_hs.pk AS src_pk
+,
+    'clin.hospital_stay'::text AS src_table
+,
+    c_hs.row_version
+,
+    c_hi.description AS health_issue
+,
+    c_hi.laterality AS issue_laterality
+,
+    c_hi.is_active AS issue_active
+,
+    c_hi.clinically_relevant AS issue_clinically_relevant
+,
+    c_hi.is_confidential AS issue_confidential
+,
+    c_epi.description AS episode
+,
+    c_epi.is_open AS episode_open
+,
+    c_enc.started AS encounter_started
+,
+    c_enc.last_affirmed AS encounter_last_affirmed
+,
+    c_ety.description AS encounter_type
+,
+    _
+(c_ety.description) AS encounter_l10n_type
+   
 FROM (
      (
            (
                  (
-                       (clin.substance_intake c_si 
-                          JOIN ref.lnk_substance2brand r_ls2b 
+                       (
+                             (clin.hospital_stay c_hs
+     
+                                JOIN clin.encounter c_enc 
+                                  ON (
+                                         (c_hs.fk_encounter = c_enc.pk)
+                                   )
+                             )
+     
+                          JOIN clin.encounter_type c_ety 
                             ON (
-                                   (c_si.fk_drug_component = r_ls2b.pk)
+                                   (c_enc.fk_type = c_ety.pk)
                              )
                        )
-                    JOIN ref.branded_drug r_bd 
+     
+                    JOIN clin.episode c_epi 
                       ON (
-                             (r_ls2b.fk_brand = r_bd.pk)
+                             (c_hs.fk_episode = c_epi.pk)
                        )
                  )
-              JOIN ref.consumable_substance r_cs 
+     
+         LEFT JOIN clin.health_issue c_hi 
                 ON (
-                       (r_ls2b.fk_substance = r_cs.pk)
+                       (c_epi.fk_health_issue = c_hi.pk)
                  )
            )
-   LEFT JOIN clin.episode cep 
+     
+   LEFT JOIN dem.org_unit d_ou 
           ON (
-                 (c_si.fk_episode = cep.pk)
+                 (d_ou.pk = c_hs.fk_org_unit)
            )
      )
-LEFT JOIN clin.health_issue c_hi 
+     
+LEFT JOIN dem.org d_o 
     ON (
-           (c_hi.pk = cep.fk_health_issue)
+           (d_o.pk = d_ou.fk_org)
      )
 )
-WHERE (c_si.fk_drug_component IS NOT NULL);</pre>
+  
+WHERE (c_hs.discharge IS NULL);</pre>
 	
 
 	<!-- List off permissions -->
@@ -63914,18 +77975,13 @@ WHERE (c_si.fk_drug_component IS NOT NULL);</pre>
         <hr>
 		<h2>View:
 			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-emr-journal">v_emr_journal</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-hospital-stays-journal-one-day">v_hospital_stays_journal_one_day</a>
 		</h2>
         
-         <p>Clinical patient data formatted into one string per
-	 clinical entity even if it constains several user-
-	 visible fields. Mainly useful for display as a simple
-	 EMR journal.</p>
-        
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.v_emr_journal Structure</caption>
+                <caption>clin.v_hospital_stays_journal_one_day Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -64113,371 +78169,8 @@ WHERE (c_si.fk_drug_component IS NOT NULL);</pre>
 				<td>
                 
                 </td>
-            	<td>row_version</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-        </table>
-
-        <!-- Inherits -->
-		
-
-		
-
-        <!-- Constraint List -->
-		
-
-        <!-- Foreign Key Discovery -->
-		
-
-    <!-- Indexes -->
-    
-
-	<!-- View Definition -->
-	
-	<pre>
-(
-     (
-           (
-                 (
-                       (
-                             (
-                                   (
-                                         (
-                                               (
-                                                     (
-                                                           (
-                                                                 (
-                                                                       (
-                                                                        SELECT v_pat_narrative_journal.pk_patient
-                                                                             , v_pat_narrative_journal.modified_when
-                                                                             , v_pat_narrative_journal.clin_when
-                                                                             , v_pat_narrative_journal.modified_by
-                                                                             , v_pat_narrative_journal.soap_cat
-                                                                             , v_pat_narrative_journal.narrative
-                                                                             , v_pat_narrative_journal.pk_encounter
-                                                                             , v_pat_narrative_journal.pk_episode
-                                                                             , v_pat_narrative_journal.pk_health_issue
-                                                                             , v_pat_narrative_journal.src_pk
-                                                                             , v_pat_narrative_journal.src_table
-                                                                             , v_pat_narrative_journal.row_version 
-                                                                          FROM clin.v_pat_narrative_journal 
-                                                                     UNION ALLSELECT v_health_issues_journal.pk_patient
-                                                                             , v_health_issues_journal.modified_when
-                                                                             , v_health_issues_journal.clin_when
-                                                                             , v_health_issues_journal.modified_by
-                                                                             , v_health_issues_journal.soap_cat
-                                                                             , v_health_issues_journal.narrative
-                                                                             , v_health_issues_journal.pk_encounter
-                                                                             , v_health_issues_journal.pk_episode
-                                                                             , v_health_issues_journal.pk_health_issue
-                                                                             , v_health_issues_journal.src_pk
-                                                                             , v_health_issues_journal.src_table
-                                                                             , v_health_issues_journal.row_version 
-                                                                          FROM clin.v_health_issues_journal
-                                                                       )
-                                                               UNION ALLSELECT v_pat_encounters_journal.pk_patient
-                                                                       , v_pat_encounters_journal.modified_when
-                                                                       , v_pat_encounters_journal.clin_when
-                                                                       , v_pat_encounters_journal.modified_by
-                                                                       , v_pat_encounters_journal.soap_cat
-                                                                       , v_pat_encounters_journal.narrative
-                                                                       , v_pat_encounters_journal.pk_encounter
-                                                                       , v_pat_encounters_journal.pk_episode
-                                                                       , v_pat_encounters_journal.pk_health_issue
-                                                                       , v_pat_encounters_journal.src_pk
-                                                                       , v_pat_encounters_journal.src_table
-                                                                       , v_pat_encounters_journal.row_version 
-                                                                    FROM clin.v_pat_encounters_journal
-                                                                 )
-                                                         UNION ALLSELECT v_pat_episodes_journal.pk_patient
-                                                                 , v_pat_episodes_journal.modified_when
-                                                                 , v_pat_episodes_journal.clin_when
-                                                                 , v_pat_episodes_journal.modified_by
-                                                                 , v_pat_episodes_journal.soap_cat
-                                                                 , v_pat_episodes_journal.narrative
-                                                                 , v_pat_episodes_journal.pk_encounter
-                                                                 , v_pat_episodes_journal.pk_episode
-                                                                 , v_pat_episodes_journal.pk_health_issue
-                                                                 , v_pat_episodes_journal.src_pk
-                                                                 , v_pat_episodes_journal.src_table
-                                                                 , v_pat_episodes_journal.row_version 
-                                                              FROM clin.v_pat_episodes_journal
-                                                           )
-                                                   UNION ALLSELECT v_family_history_journal.pk_patient
-                                                           , v_family_history_journal.modified_when
-                                                           , v_family_history_journal.clin_when
-                                                           , v_family_history_journal.modified_by
-                                                           , v_family_history_journal.soap_cat
-                                                           , v_family_history_journal.narrative
-                                                           , v_family_history_journal.pk_encounter
-                                                           , v_family_history_journal.pk_episode
-                                                           , v_family_history_journal.pk_health_issue
-                                                           , v_family_history_journal.src_pk
-                                                           , v_family_history_journal.src_table
-                                                           , v_family_history_journal.row_version 
-                                                        FROM clin.v_family_history_journal
-                                                     )
-                                             UNION ALLSELECT v_pat_allergies_journal.pk_patient
-                                                     , v_pat_allergies_journal.modified_when
-                                                     , v_pat_allergies_journal.clin_when
-                                                     , v_pat_allergies_journal.modified_by
-                                                     , v_pat_allergies_journal.soap_cat
-                                                     , v_pat_allergies_journal.narrative
-                                                     , v_pat_allergies_journal.pk_encounter
-                                                     , v_pat_allergies_journal.pk_episode
-                                                     , v_pat_allergies_journal.pk_health_issue
-                                                     , v_pat_allergies_journal.src_pk
-                                                     , v_pat_allergies_journal.src_table
-                                                     , 0 AS row_version 
-                                                  FROM clin.v_pat_allergies_journal
-                                               )
-                                       UNION ALLSELECT v_pat_allergy_state_journal.pk_patient
-                                               , v_pat_allergy_state_journal.modified_when
-                                               , v_pat_allergy_state_journal.clin_when
-                                               , v_pat_allergy_state_journal.modified_by
-                                               , v_pat_allergy_state_journal.soap_cat
-                                               , v_pat_allergy_state_journal.narrative
-                                               , v_pat_allergy_state_journal.pk_encounter
-                                               , v_pat_allergy_state_journal.pk_episode
-                                               , v_pat_allergy_state_journal.pk_health_issue
-                                               , v_pat_allergy_state_journal.src_pk
-                                               , v_pat_allergy_state_journal.src_table
-                                               , v_pat_allergy_state_journal.row_version 
-                                            FROM clin.v_pat_allergy_state_journal
-                                         )
-                                 UNION ALLSELECT v_test_results_journal.pk_patient
-                                         , v_test_results_journal.modified_when
-                                         , v_test_results_journal.clin_when
-                                         , v_test_results_journal.modified_by
-                                         , v_test_results_journal.soap_cat
-                                         , v_test_results_journal.narrative
-                                         , v_test_results_journal.pk_encounter
-                                         , v_test_results_journal.pk_episode
-                                         , v_test_results_journal.pk_health_issue
-                                         , v_test_results_journal.src_pk
-                                         , v_test_results_journal.src_table
-                                         , v_test_results_journal.row_version 
-                                      FROM clin.v_test_results_journal
-                                   )
-                           UNION ALLSELECT v_hospital_stays_journal.pk_patient
-                                   , v_hospital_stays_journal.modified_when
-                                   , v_hospital_stays_journal.clin_when
-                                   , v_hospital_stays_journal.modified_by
-                                   , v_hospital_stays_journal.soap_cat
-                                   , v_hospital_stays_journal.narrative
-                                   , v_hospital_stays_journal.pk_encounter
-                                   , v_hospital_stays_journal.pk_episode
-                                   , v_hospital_stays_journal.pk_health_issue
-                                   , v_hospital_stays_journal.src_pk
-                                   , v_hospital_stays_journal.src_table
-                                   , v_hospital_stays_journal.row_version 
-                                FROM clin.v_hospital_stays_journal
-                             )
-                     UNION ALLSELECT v_doc_med_journal.pk_patient
-                             , v_doc_med_journal.modified_when
-                             , v_doc_med_journal.clin_when
-                             , v_doc_med_journal.modified_by
-                             , v_doc_med_journal.soap_cat
-                             , v_doc_med_journal.narrative
-                             , v_doc_med_journal.pk_encounter
-                             , v_doc_med_journal.pk_episode
-                             , v_doc_med_journal.pk_health_issue
-                             , v_doc_med_journal.src_pk
-                             , v_doc_med_journal.src_table
-                             , 0 AS row_version 
-                          FROM blobs.v_doc_med_journal
-                       )
-               UNION ALLSELECT v_pat_substance_intake_journal.pk_patient
-                       , v_pat_substance_intake_journal.modified_when
-                       , v_pat_substance_intake_journal.clin_when
-                       , v_pat_substance_intake_journal.modified_by
-                       , v_pat_substance_intake_journal.soap_cat
-                       , v_pat_substance_intake_journal.narrative
-                       , v_pat_substance_intake_journal.pk_encounter
-                       , v_pat_substance_intake_journal.pk_episode
-                       , v_pat_substance_intake_journal.pk_health_issue
-                       , v_pat_substance_intake_journal.src_pk
-                       , v_pat_substance_intake_journal.src_table
-                       , v_pat_substance_intake_journal.row_version 
-                    FROM clin.v_pat_substance_intake_journal
-                 )
-         UNION ALLSELECT v_procedures_journal.pk_patient
-                 , v_procedures_journal.modified_when
-                 , v_procedures_journal.clin_when
-                 , v_procedures_journal.modified_by
-                 , v_procedures_journal.soap_cat
-                 , v_procedures_journal.narrative
-                 , v_procedures_journal.pk_encounter
-                 , v_procedures_journal.pk_episode
-                 , v_procedures_journal.pk_health_issue
-                 , v_procedures_journal.src_pk
-                 , v_procedures_journal.src_table
-                 , v_procedures_journal.row_version 
-              FROM clin.v_procedures_journal
-           )
-   UNION ALLSELECT v_pat_vaccinations_journal.pk_patient
-           , v_pat_vaccinations_journal.modified_when
-           , v_pat_vaccinations_journal.clin_when
-           , v_pat_vaccinations_journal.modified_by
-           , v_pat_vaccinations_journal.soap_cat
-           , v_pat_vaccinations_journal.narrative
-           , v_pat_vaccinations_journal.pk_encounter
-           , v_pat_vaccinations_journal.pk_episode
-           , v_pat_vaccinations_journal.pk_health_issue
-           , v_pat_vaccinations_journal.src_pk
-           , v_pat_vaccinations_journal.src_table
-           , v_pat_vaccinations_journal.row_version 
-        FROM clin.v_pat_vaccinations_journal
-     )
-UNION ALLSELECT v_suppressed_hints_journal.pk_identity AS pk_patient
-     , v_suppressed_hints_journal.modified_when
-     , v_suppressed_hints_journal.clin_when
-     , v_suppressed_hints_journal.modified_by
-     , v_suppressed_hints_journal.soap_cat
-     , v_suppressed_hints_journal.narrative
-     , v_suppressed_hints_journal.fk_encounter AS pk_encounter
-     , v_suppressed_hints_journal.pk_episode
-     , v_suppressed_hints_journal.pk_health_issue
-     , v_suppressed_hints_journal.src_pk
-     , v_suppressed_hints_journal.src_table
-     , v_suppressed_hints_journal.row_version 
-  FROM clin.v_suppressed_hints_journal
-)
-UNION ALLSELECT v_external_care_journal.pk_patient
-, v_external_care_journal.modified_when
-, v_external_care_journal.clin_when
-, v_external_care_journal.modified_by
-, v_external_care_journal.soap_cat
-, v_external_care_journal.narrative
-, v_external_care_journal.pk_encounter
-, v_external_care_journal.pk_episode
-, v_external_care_journal.pk_health_issue
-, v_external_care_journal.src_pk
-, v_external_care_journal.src_table
-, v_external_care_journal.row_version 
-FROM clin.v_external_care_journal;</pre>
-	
-
-	<!-- List off permissions -->
-	
-
-	<p>
-		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
-    </p>
-	
-        <hr>
-		<h2>View:
-			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-export-items">v_export_items</a>
-		</h2>
-        
-
-
-        <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.v_export_items Structure</caption>
-                <tr>
-                <th>F-Key</th>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Description</th>
-                </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>pk_export_item</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>pk_identity</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>created_by</td>
-            	<td>text</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>created_when</td>
-            	<td>timestamp with time zone</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>designation</td>
-            	<td>text</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>description</td>
-            	<td>text</td>
+            	<td>row_version</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -64492,8 +78185,8 @@ FROM clin.v_external_care_journal;</pre>
 				<td>
                 
                 </td>
-            	<td>pk_doc_obj</td>
-            	<td>integer</td>
+            	<td>health_issue</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -64508,8 +78201,8 @@ FROM clin.v_external_care_journal;</pre>
 				<td>
                 
                 </td>
-            	<td>md5_sum</td>
-            	<td>text</td>
+            	<td>issue_laterality</td>
+            	<td>character varying(2)</td>
                 <td><i>
 				
 
@@ -64524,8 +78217,8 @@ FROM clin.v_external_care_journal;</pre>
 				<td>
                 
                 </td>
-            	<td>size</td>
-            	<td>integer</td>
+            	<td>issue_active</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -64540,8 +78233,8 @@ FROM clin.v_external_care_journal;</pre>
 				<td>
                 
                 </td>
-            	<td>filename</td>
-            	<td>text</td>
+            	<td>issue_clinically_relevant</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -64556,8 +78249,8 @@ FROM clin.v_external_care_journal;</pre>
 				<td>
                 
                 </td>
-            	<td>xmin_export_item</td>
-            	<td>xid</td>
+            	<td>issue_confidential</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -64572,7 +78265,7 @@ FROM clin.v_external_care_journal;</pre>
 				<td>
                 
                 </td>
-            	<td>title</td>
+            	<td>episode</td>
             	<td>text</td>
                 <td><i>
 				
@@ -64588,8 +78281,8 @@ FROM clin.v_external_care_journal;</pre>
 				<td>
                 
                 </td>
-            	<td>firstnames</td>
-            	<td>text</td>
+            	<td>episode_open</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -64604,8 +78297,8 @@ FROM clin.v_external_care_journal;</pre>
 				<td>
                 
                 </td>
-            	<td>lastnames</td>
-            	<td>text</td>
+            	<td>encounter_started</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
@@ -64620,8 +78313,8 @@ FROM clin.v_external_care_journal;</pre>
 				<td>
                 
                 </td>
-            	<td>preferred</td>
-            	<td>text</td>
+            	<td>encounter_last_affirmed</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
@@ -64636,7 +78329,7 @@ FROM clin.v_external_care_journal;</pre>
 				<td>
                 
                 </td>
-            	<td>gender</td>
+            	<td>encounter_type</td>
             	<td>text</td>
                 <td><i>
 				
@@ -64652,8 +78345,8 @@ FROM clin.v_external_care_journal;</pre>
 				<td>
                 
                 </td>
-            	<td>dob</td>
-            	<td>timestamp with time zone</td>
+            	<td>encounter_l10n_type</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -64683,93 +78376,170 @@ FROM clin.v_external_care_journal;</pre>
 	<!-- View Definition -->
 	
 	<pre>
-SELECT inner_export_items.pk_export_item
-, inner_export_items.pk_identity
-, inner_export_items.created_by
-, inner_export_items.created_when
-, inner_export_items.designation
-, inner_export_items.description
-, inner_export_items.pk_doc_obj
-, inner_export_items.md5_sum
-, inner_export_items.size
-, inner_export_items.filename
-, inner_export_items.xmin_export_item
-, d_vp.title
-, d_vp.firstnames
-, d_vp.lastnames
-, d_vp.preferred
-, d_vp.gender
-, d_vp.dob 
-FROM (
+SELECT c_enc.fk_patient AS pk_patient
+,
+    c_hs.modified_when
+,
+    c_hs.clin_when
+,
+    COALESCE
+(
      (
-      SELECT c_ei.pk AS pk_export_item
-           , COALESCE
-           (c_ei.fk_identity
-                 , (
-                  SELECT encounter.fk_patient 
-                    FROM clin.encounter 
-                   WHERE (encounter.pk = 
+      SELECT staff.short_alias
+           
+        FROM dem.staff
+          
+       WHERE (staff.db_user = c_hs.modified_by)
+     )
+     , (
+           ('<'::text || 
+                 (c_hs.modified_by)::text
+           ) || '>'::text
+     )
+) AS modified_by
+,
+    c_hs.soap_cat
+,
+    
+(
+     (
+           (
+                 (
+                       (
                              (
-                              SELECT doc_med.fk_encounter 
-                                FROM blobs.doc_med 
-                               WHERE (doc_med.pk = 
+                                   (
                                          (
-                                          SELECT doc_obj.fk_doc 
-                                            FROM blobs.doc_obj 
-                                           WHERE (doc_obj.pk = c_ei.fk_doc_obj)
-                                         )
-                                   )
-                             )
-                       )
-                 )
-           ) AS pk_identity
-           , COALESCE
+                                               (
+                                                     (
+                                                           (
+                                                                 (
+                                                                       (
+                                                                             (
+                                                                                   (_
+                                                                                         ('hospital stay'::text) || '
+'::text
+                                                                                   ) || ' '::text
+                                                                             ) || _
+                                                                             ('admitted/discharged'::text)
+                                                                       ) || ': '::text
+                                                                 ) || to_char
+                                                                 (c_hs.clin_when
+                                                                       ,'YYYY-MM-DD'::text
+                                                                 )
+                                                           ) || '
+'::text
+                                                     ) || ' '::text
+                                               ) || _
+                                               ('hospital'::text)
+                                         ) || ': "'::text
+                                   ) || d_ou.description
+                             ) || ' @ '::text
+                       ) || d_o.description
+                 ) || '"'::text
+           ) || '
+'::text
+     ) || COALESCE
+     (
+           ('
+ '::text || c_hs.narrative)
+           ,''::text
+     )
+) AS narrative
+,
+    c_hs.fk_encounter AS pk_encounter
+,
+    c_hs.fk_episode AS pk_episode
+,
+    
+(
+SELECT episode.fk_health_issue
+           
+  FROM clin.episode
+          
+ WHERE (episode.pk = c_hs.fk_episode)
+) AS pk_health_issue
+,
+    c_hs.pk AS src_pk
+,
+    'clin.hospital_stay'::text AS src_table
+,
+    c_hs.row_version
+,
+    c_hi.description AS health_issue
+,
+    c_hi.laterality AS issue_laterality
+,
+    c_hi.is_active AS issue_active
+,
+    c_hi.clinically_relevant AS issue_clinically_relevant
+,
+    c_hi.is_confidential AS issue_confidential
+,
+    c_epi.description AS episode
+,
+    c_epi.is_open AS episode_open
+,
+    c_enc.started AS encounter_started
+,
+    c_enc.last_affirmed AS encounter_last_affirmed
+,
+    c_ety.description AS encounter_type
+,
+    _
+(c_ety.description) AS encounter_l10n_type
+   
+FROM (
+     (
            (
                  (
-                  SELECT staff.short_alias 
-                    FROM dem.staff 
-                   WHERE (staff.db_user = c_ei.created_by)
-                 )
-                 , (c_ei.created_by)::text
-           ) AS created_by
-           , c_ei.created_when
-           , c_ei.designation
-           , c_ei.description
-           , c_ei.fk_doc_obj AS pk_doc_obj
-           , md5
-           (COALESCE
-                 (c_ei.data
-                       , COALESCE
                        (
-                             (
-                              SELECT b_do.data 
-                                FROM blobs.doc_obj b_do 
-                               WHERE (b_do.pk = c_ei.fk_doc_obj)
+                             (clin.hospital_stay c_hs
+     
+                                JOIN clin.encounter c_enc 
+                                  ON (
+                                         (c_hs.fk_encounter = c_enc.pk)
+                                   )
+                             )
+     
+                          JOIN clin.encounter_type c_ety 
+                            ON (
+                                   (c_enc.fk_type = c_ety.pk)
                              )
-                             ,'\x'::bytea
+                       )
+     
+                    JOIN clin.episode c_epi 
+                      ON (
+                             (c_hs.fk_episode = c_epi.pk)
                        )
                  )
-           ) AS md5_sum
-           , octet_length
-           (COALESCE
-                 (c_ei.data
-                       ,'\x'::bytea
-                 )
-           ) AS size
-           , COALESCE
-           (c_ei.filename
-                 , (
-                  SELECT b_do.filename 
-                    FROM blobs.doc_obj b_do 
-                   WHERE (b_do.pk = c_ei.fk_doc_obj)
+     
+         LEFT JOIN clin.health_issue c_hi 
+                ON (
+                       (c_epi.fk_health_issue = c_hi.pk)
                  )
-           ) AS filename
-           , c_ei.xmin AS xmin_export_item 
-        FROM clin.export_item c_ei
-     ) inner_export_items 
-  JOIN dem.v_persons d_vp 
+           )
+     
+   LEFT JOIN dem.org_unit d_ou 
+          ON (
+                 (d_ou.pk = c_hs.fk_org_unit)
+           )
+     )
+     
+LEFT JOIN dem.org d_o 
     ON (
-           (d_vp.pk_identity = inner_export_items.pk_identity)
+           (d_o.pk = d_ou.fk_org)
+     )
+)
+  
+WHERE (
+     (c_hs.discharge IS NOT NULL)
+   AND (to_char
+           (c_hs.clin_when
+                 ,'YYYYMMDD'::text
+           ) = to_char
+           (c_hs.discharge
+                 ,'YYYYMMDD'::text
+           )
      )
 );</pre>
 	
@@ -64785,13 +78555,15 @@ FROM (
         <hr>
 		<h2>View:
 			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-external-care">v_external_care</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-incoming-data-unmatched">v_incoming_data_unmatched</a>
 		</h2>
         
+         <p>Shows incoming data but w/o the data field.</p>
+        
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.v_external_care Structure</caption>
+                <caption>clin.v_incoming_data_unmatched Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -64803,7 +78575,7 @@ FROM (
 				<td>
                 
                 </td>
-            	<td>pk_external_care</td>
+            	<td>pk_incoming_data_unmatched</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -64819,8 +78591,8 @@ FROM (
 				<td>
                 
                 </td>
-            	<td>pk_identity</td>
-            	<td>integer</td>
+            	<td>pk_patient_candidates</td>
+            	<td>integer[]</td>
                 <td><i>
 				
 
@@ -64835,7 +78607,7 @@ FROM (
 				<td>
                 
                 </td>
-            	<td>issue</td>
+            	<td>firstnames</td>
             	<td>text</td>
                 <td><i>
 				
@@ -64851,7 +78623,7 @@ FROM (
 				<td>
                 
                 </td>
-            	<td>provider</td>
+            	<td>lastnames</td>
             	<td>text</td>
                 <td><i>
 				
@@ -64867,8 +78639,8 @@ FROM (
 				<td>
                 
                 </td>
-            	<td>unit</td>
-            	<td>text</td>
+            	<td>dob</td>
+            	<td>date</td>
                 <td><i>
 				
 
@@ -64883,7 +78655,7 @@ FROM (
 				<td>
                 
                 </td>
-            	<td>organization</td>
+            	<td>gender</td>
             	<td>text</td>
                 <td><i>
 				
@@ -64899,7 +78671,7 @@ FROM (
 				<td>
                 
                 </td>
-            	<td>comment</td>
+            	<td>postcode</td>
             	<td>text</td>
                 <td><i>
 				
@@ -64915,8 +78687,8 @@ FROM (
 				<td>
                 
                 </td>
-            	<td>pk_health_issue</td>
-            	<td>integer</td>
+            	<td>other_info</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -64931,8 +78703,8 @@ FROM (
 				<td>
                 
                 </td>
-            	<td>pk_org_unit</td>
-            	<td>integer</td>
+            	<td>request_id</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -64947,8 +78719,8 @@ FROM (
 				<td>
                 
                 </td>
-            	<td>pk_encounter</td>
-            	<td>integer</td>
+            	<td>requestor</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -64963,8 +78735,8 @@ FROM (
 				<td>
                 
                 </td>
-            	<td>xmin_external_care</td>
-            	<td>xid</td>
+            	<td>external_data_id</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -64979,8 +78751,8 @@ FROM (
 				<td>
                 
                 </td>
-            	<td>modified_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>comment</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -64995,8 +78767,8 @@ FROM (
 				<td>
                 
                 </td>
-            	<td>modified_by</td>
-            	<td>name</td>
+            	<td>pk_identity_disambiguated</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -65011,7 +78783,7 @@ FROM (
 				<td>
                 
                 </td>
-            	<td>row_version</td>
+            	<td>pk_provider_disambiguated</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -65023,97 +78795,12 @@ FROM (
 				</td>
 			 </tr>
             
-        </table>
-
-        <!-- Inherits -->
-		
-
-		
-
-        <!-- Constraint List -->
-		
-
-        <!-- Foreign Key Discovery -->
-		
-
-    <!-- Indexes -->
-    
-
-	<!-- View Definition -->
-	
-	<pre>
-SELECT c_ec.pk AS pk_external_care
-, (
-SELECT encounter.fk_patient 
-  FROM clin.encounter 
- WHERE (encounter.pk = c_ec.fk_encounter)
-) AS pk_identity
-, COALESCE
-(c_ec.issue
-     , c_hi.description
-) AS issue
-, c_ec.provider
-, d_ou.description AS unit
-, d_o.description AS organization
-, c_ec.comment
-, c_ec.fk_health_issue AS pk_health_issue
-, c_ec.fk_org_unit AS pk_org_unit
-, c_ec.fk_encounter AS pk_encounter
-, c_ec.xmin AS xmin_external_care
-, c_ec.modified_when
-, c_ec.modified_by
-, c_ec.row_version 
-FROM (
-     (
-           (clin.external_care c_ec 
-         LEFT JOIN clin.health_issue c_hi 
-                ON (
-                       (c_hi.pk = c_ec.fk_health_issue)
-                 )
-           )
-   LEFT JOIN dem.org_unit d_ou 
-          ON (
-                 (c_ec.fk_org_unit = d_ou.pk)
-           )
-     )
-LEFT JOIN dem.org d_o 
-    ON (
-           (d_ou.fk_org = d_o.pk)
-     )
-);</pre>
-	
-
-	<!-- List off permissions -->
-	
-
-	<p>
-		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
-    </p>
-	
-        <hr>
-		<h2>View:
-			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-external-care-journal">v_external_care_journal</a>
-		</h2>
-        
-
-
-        <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.v_external_care_journal Structure</caption>
-                <tr>
-                <th>F-Key</th>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Description</th>
-                </tr>
-            
             <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>pk_patient</td>
-            	<td>integer</td>
+            	<td>data_type</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -65128,8 +78815,8 @@ LEFT JOIN dem.org d_o
 				<td>
                 
                 </td>
-            	<td>modified_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>md5_sum</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -65144,8 +78831,8 @@ LEFT JOIN dem.org d_o
 				<td>
                 
                 </td>
-            	<td>clin_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>data_size</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -65160,8 +78847,8 @@ LEFT JOIN dem.org d_o
 				<td>
                 
                 </td>
-            	<td>modified_by</td>
-            	<td>name</td>
+            	<td>xmin_incoming_data_unmatched</td>
+            	<td>xid</td>
                 <td><i>
 				
 
@@ -65172,75 +78859,98 @@ LEFT JOIN dem.org d_o
 				</td>
 			 </tr>
             
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>soap_cat</td>
-            	<td>text</td>
-                <td><i>
-				
+        </table>
 
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>narrative</td>
-            	<td>text</td>
-                <td><i>
-				
+        <!-- Inherits -->
+		
 
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>pk_encounter</td>
-            	<td>integer</td>
-                <td><i>
-				
+		
 
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>pk_episode</td>
-            	<td>integer</td>
-                <td><i>
-				
+        <!-- Constraint List -->
+		
 
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
+        <!-- Foreign Key Discovery -->
+		
+
+    <!-- Indexes -->
+    
+
+	<!-- View Definition -->
+	
+	<pre>
+SELECT c_idu.pk AS pk_incoming_data_unmatched
+,
+    c_idu.fk_patient_candidates AS pk_patient_candidates
+,
+    c_idu.firstnames
+,
+    c_idu.lastnames
+,
+    c_idu.dob
+,
+    c_idu.gender
+,
+    c_idu.postcode
+,
+    c_idu.other_info
+,
+    c_idu.request_id
+,
+    c_idu.requestor
+,
+    c_idu.external_data_id
+,
+    c_idu.comment
+,
+    c_idu.fk_identity_disambiguated AS pk_identity_disambiguated
+,
+    c_idu.fk_provider_disambiguated AS pk_provider_disambiguated
+,
+    c_idu.type AS data_type
+,
+    md5
+(c_idu.data) AS md5_sum
+,
+    octet_length
+(c_idu.data) AS data_size
+,
+    c_idu.xmin AS xmin_incoming_data_unmatched
+   
+FROM clin.incoming_data_unmatched c_idu;</pre>
+	
+
+	<!-- List off permissions -->
+	
+
+	<p>
+		<a href="gnumed-entire_schema.html#index">Index</a> -
+		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
+    </p>
+	
+        <hr>
+		<h2>View:
+			
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-indications4vaccine">v_indications4vaccine</a>
+		</h2>
+        
+         <p>Denormalizes indications per vaccine.</p>
+        
+
+
+        <table width="100%" cellspacing="0" cellpadding="3">
+                <caption>clin.v_indications4vaccine Structure</caption>
+                <tr>
+                <th>F-Key</th>
+                <th>Name</th>
+                <th>Type</th>
+                <th>Description</th>
+                </tr>
             
             <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>pk_health_issue</td>
+            	<td>pk_vaccine</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -65256,8 +78966,8 @@ LEFT JOIN dem.org d_o
 				<td>
                 
                 </td>
-            	<td>src_pk</td>
-            	<td>integer</td>
+            	<td>vaccine</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -65272,7 +78982,7 @@ LEFT JOIN dem.org d_o
 				<td>
                 
                 </td>
-            	<td>src_table</td>
+            	<td>preparation</td>
             	<td>text</td>
                 <td><i>
 				
@@ -65288,8 +78998,8 @@ LEFT JOIN dem.org d_o
 				<td>
                 
                 </td>
-            	<td>row_version</td>
-            	<td>integer</td>
+            	<td>atc_code</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -65300,121 +79010,12 @@ LEFT JOIN dem.org d_o
 				</td>
 			 </tr>
             
-        </table>
-
-        <!-- Inherits -->
-		
-
-		
-
-        <!-- Constraint List -->
-		
-
-        <!-- Foreign Key Discovery -->
-		
-
-    <!-- Indexes -->
-    
-
-	<!-- View Definition -->
-	
-	<pre>
-SELECT c_vec.pk_identity AS pk_patient
-, c_vec.modified_when
-, c_vec.modified_when AS clin_when
-, c_vec.modified_by
-,'s'::text AS soap_cat
-, (
-     (
-           (
-                 (
-                       (
-                             (
-                                   (
-                                         (
-                                               (
-                                                     (
-                                                           (
-                                                                 (
-                                                                       (_
-                                                                             ('External care'::text) || COALESCE
-                                                                             (
-                                                                                   (
-                                                                                         (
-                                                                                               (' '::text || _
-                                                                                                     ('by'::text)
-                                                                                               ) || ' '::text
-                                                                                         ) || c_vec.provider
-                                                                                   )
-                                                                                   ,''::text
-                                                                             )
-                                                                       ) || ' @ '::text
-                                                                 ) || c_vec.unit
-                                                           ) || ' '::text
-                                                     ) || _
-                                                     ('of'::text)
-                                               ) || ' '::text
-                                         ) || c_vec.organization
-                                   ) || '
-'::text
-                             ) || _
-                             ('Issue:'::text)
-                       ) || ' '::text
-                 ) || c_vec.issue
-           ) || '
-'::text
-     ) || COALESCE
-     (
-           (
-                 (_
-                       ('Comment:'::text) || ' '::text
-                 ) || c_vec.comment
-           )
-           ,''::text
-     )
-) AS narrative
-, c_vec.pk_encounter
-, NULL::integer AS pk_episode
-, c_vec.pk_health_issue
-, c_vec.pk_external_care AS src_pk
-,'clin.v_external_care'::text AS src_table
-, c_vec.row_version 
-FROM clin.v_external_care c_vec;</pre>
-	
-
-	<!-- List off permissions -->
-	
-
-	<p>
-		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
-    </p>
-	
-        <hr>
-		<h2>View:
-			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-family-history">v_family_history</a>
-		</h2>
-        
-         <p>family history denormalized</p>
-        
-
-
-        <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.v_family_history Structure</caption>
-                <tr>
-                <th>F-Key</th>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Description</th>
-                </tr>
-            
             <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>pk_family_history</td>
-            	<td>integer</td>
+            	<td>is_fake_vaccine</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -65429,8 +79030,8 @@ FROM clin.v_external_care c_vec;</pre>
 				<td>
                 
                 </td>
-            	<td>pk_patient</td>
-            	<td>integer</td>
+            	<td>route_abbreviation</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -65445,7 +79046,7 @@ FROM clin.v_external_care c_vec;</pre>
 				<td>
                 
                 </td>
-            	<td>soap_cat</td>
+            	<td>route_description</td>
             	<td>text</td>
                 <td><i>
 				
@@ -65461,8 +79062,8 @@ FROM clin.v_external_care c_vec;</pre>
 				<td>
                 
                 </td>
-            	<td>relation</td>
-            	<td>text</td>
+            	<td>is_live</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -65477,8 +79078,8 @@ FROM clin.v_external_care c_vec;</pre>
 				<td>
                 
                 </td>
-            	<td>l10n_relation</td>
-            	<td>text</td>
+            	<td>min_age</td>
+            	<td>interval</td>
                 <td><i>
 				
 
@@ -65493,8 +79094,8 @@ FROM clin.v_external_care c_vec;</pre>
 				<td>
                 
                 </td>
-            	<td>condition</td>
-            	<td>text</td>
+            	<td>max_age</td>
+            	<td>interval</td>
                 <td><i>
 				
 
@@ -65509,7 +79110,7 @@ FROM clin.v_external_care c_vec;</pre>
 				<td>
                 
                 </td>
-            	<td>age_noted</td>
+            	<td>comment</td>
             	<td>text</td>
                 <td><i>
 				
@@ -65525,8 +79126,8 @@ FROM clin.v_external_care c_vec;</pre>
 				<td>
                 
                 </td>
-            	<td>age_of_death</td>
-            	<td>interval</td>
+            	<td>indication</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -65541,8 +79142,8 @@ FROM clin.v_external_care c_vec;</pre>
 				<td>
                 
                 </td>
-            	<td>contributed_to_death</td>
-            	<td>boolean</td>
+            	<td>l10n_indication</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -65557,8 +79158,8 @@ FROM clin.v_external_care c_vec;</pre>
 				<td>
                 
                 </td>
-            	<td>comment</td>
-            	<td>text</td>
+            	<td>atcs_single_indication</td>
+            	<td>text[]</td>
                 <td><i>
 				
 
@@ -65573,8 +79174,8 @@ FROM clin.v_external_care c_vec;</pre>
 				<td>
                 
                 </td>
-            	<td>episode</td>
-            	<td>text</td>
+            	<td>atcs_combi_indication</td>
+            	<td>text[]</td>
                 <td><i>
 				
 
@@ -65589,8 +79190,8 @@ FROM clin.v_external_care c_vec;</pre>
 				<td>
                 
                 </td>
-            	<td>when_known_to_patient</td>
-            	<td>timestamp with time zone</td>
+            	<td>external_code</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -65605,7 +79206,7 @@ FROM clin.v_external_care c_vec;</pre>
 				<td>
                 
                 </td>
-            	<td>name_relative</td>
+            	<td>external_code_type</td>
             	<td>text</td>
                 <td><i>
 				
@@ -65621,8 +79222,8 @@ FROM clin.v_external_care c_vec;</pre>
 				<td>
                 
                 </td>
-            	<td>dob_relative</td>
-            	<td>timestamp with time zone</td>
+            	<td>indications</td>
+            	<td>text[]</td>
                 <td><i>
 				
 
@@ -65637,8 +79238,8 @@ FROM clin.v_external_care c_vec;</pre>
 				<td>
                 
                 </td>
-            	<td>is_genetic_relative</td>
-            	<td>boolean</td>
+            	<td>l10n_indications</td>
+            	<td>text[]</td>
                 <td><i>
 				
 
@@ -65653,8 +79254,8 @@ FROM clin.v_external_care c_vec;</pre>
 				<td>
                 
                 </td>
-            	<td>pk_encounter</td>
-            	<td>integer</td>
+            	<td>pk_indications</td>
+            	<td>integer[]</td>
                 <td><i>
 				
 
@@ -65669,7 +79270,7 @@ FROM clin.v_external_care c_vec;</pre>
 				<td>
                 
                 </td>
-            	<td>pk_episode</td>
+            	<td>pk_route</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -65685,7 +79286,7 @@ FROM clin.v_external_care c_vec;</pre>
 				<td>
                 
                 </td>
-            	<td>pk_health_issue</td>
+            	<td>pk_brand</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -65701,7 +79302,7 @@ FROM clin.v_external_care c_vec;</pre>
 				<td>
                 
                 </td>
-            	<td>pk_fhx_relation_type</td>
+            	<td>pk_data_source</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -65717,8 +79318,8 @@ FROM clin.v_external_care c_vec;</pre>
 				<td>
                 
                 </td>
-            	<td>modified_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>pk_indication</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -65733,23 +79334,7 @@ FROM clin.v_external_care c_vec;</pre>
 				<td>
                 
                 </td>
-            	<td>pk_generic_codes</td>
-            	<td>integer[]</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>xmin_family_history</td>
+            	<td>xmin_vaccine</td>
             	<td>xid</td>
                 <td><i>
 				
@@ -65780,54 +79365,127 @@ FROM clin.v_external_care c_vec;</pre>
 	<!-- View Definition -->
 	
 	<pre>
-SELECT c_fh.pk AS pk_family_history
-, cenc.fk_patient AS pk_patient
-, c_fh.soap_cat
-, c_fhrt.description AS relation
-, _
-(c_fhrt.description) AS l10n_relation
-, c_fh.narrative AS condition
-, c_fh.age_noted
-, c_fh.age_of_death
-, c_fh.contributed_to_death
-, c_fh.comment
-, cep.description AS episode
-, c_fh.clin_when AS when_known_to_patient
-, c_fh.name_relative
-, c_fh.dob_relative
-, c_fhrt.is_genetic AS is_genetic_relative
-, c_fh.fk_encounter AS pk_encounter
-, c_fh.fk_episode AS pk_episode
-, cep.fk_health_issue AS pk_health_issue
-, c_fhrt.pk AS pk_fhx_relation_type
-, c_fh.modified_when
-, COALESCE
+SELECT cv.pk AS pk_vaccine
+,
+    rbd.description AS vaccine
+,
+    rbd.preparation
+,
+    rbd.atc_code
+,
+    rbd.is_fake AS is_fake_vaccine
+,
+    cvr.abbreviation AS route_abbreviation
+,
+    cvr.description AS route_description
+,
+    cv.is_live
+,
+    cv.min_age
+,
+    cv.max_age
+,
+    cv.comment
+,
+    cvi.description AS indication
+,
+    _
+(cvi.description) AS l10n_indication
+,
+    cvi.atcs_single_indication
+,
+    cvi.atcs_combi_indication
+,
+    rbd.external_code
+,
+    rbd.external_code_type
+,
+    
 (
-     (
-      SELECT array_agg
-           (c_lc2fhx.fk_generic_code) AS array_agg 
-        FROM clin.lnk_code2fhx c_lc2fhx 
-       WHERE (c_lc2fhx.fk_item = c_fh.pk)
+SELECT array_agg
+     (cvi2.description) AS array_agg
+           
+  FROM (clin.lnk_vaccine2inds clv2i_2
+             
+        JOIN clin.vacc_indication cvi2 
+          ON (
+                 (clv2i_2.fk_indication = cvi2.id)
+           )
      )
-     , ARRAY[]::integer[]
-) AS pk_generic_codes
-, c_fh.xmin AS xmin_family_history 
+          
+ WHERE (clv2i_2.fk_vaccine = cv.pk)
+) AS indications
+,
+    
+(
+SELECT array_agg
+     (_
+           (cvi2.description)
+     ) AS array_agg
+           
+  FROM (clin.lnk_vaccine2inds clv2i_2
+             
+        JOIN clin.vacc_indication cvi2 
+          ON (
+                 (clv2i_2.fk_indication = cvi2.id)
+           )
+     )
+          
+ WHERE (clv2i_2.fk_vaccine = cv.pk)
+) AS l10n_indications
+,
+    
+(
+SELECT array_agg
+     (clv2i_2.fk_indication) AS array_agg
+           
+  FROM (clin.lnk_vaccine2inds clv2i_2
+             
+        JOIN clin.vacc_indication cvi2 
+          ON (
+                 (clv2i_2.fk_indication = cvi2.id)
+           )
+     )
+          
+ WHERE (clv2i_2.fk_vaccine = cv.pk)
+) AS pk_indications
+,
+    cv.id_route AS pk_route
+,
+    cv.fk_brand AS pk_brand
+,
+    rbd.fk_data_source AS pk_data_source
+,
+    cvi.id AS pk_indication
+,
+    cv.xmin AS xmin_vaccine
+   
 FROM (
      (
-           (clin.family_history c_fh 
-              JOIN clin.encounter cenc 
+           (
+                 (clin.vaccine cv
+     
+               LEFT JOIN clin.vacc_route cvr 
+                      ON (
+                             (cvr.id = cv.id_route)
+                       )
+                 )
+     
+              JOIN ref.branded_drug rbd 
                 ON (
-                       (c_fh.fk_encounter = cenc.pk)
+                       (rbd.pk = cv.fk_brand)
                  )
            )
-        JOIN clin.episode cep 
+     
+        JOIN clin.lnk_vaccine2inds clv2i 
           ON (
-                 (c_fh.fk_episode = cep.pk)
+                 (clv2i.fk_vaccine = cv.pk)
            )
      )
-LEFT JOIN clin.fhx_relation_type c_fhrt 
+     
+  JOIN clin.vacc_indication cvi 
     ON (
-           (c_fh.fk_relation_type = c_fhrt.pk)
+           (cvi.id = clv2i.fk_indication)
      )
 );</pre>
 	
@@ -65843,13 +79501,15 @@ LEFT JOIN clin.fhx_relation_type c_fhrt
         <hr>
 		<h2>View:
 			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-family-history-journal">v_family_history_journal</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-linked-codes">v_linked_codes</a>
 		</h2>
         
+         <p>Denormalized codes linked to EMR structures.</p>
+        
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.v_family_history_journal Structure</caption>
+                <caption>clin.v_linked_codes Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -65861,7 +79521,7 @@ LEFT JOIN clin.fhx_relation_type c_fhrt
 				<td>
                 
                 </td>
-            	<td>pk_patient</td>
+            	<td>pk_item</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -65877,8 +79537,8 @@ LEFT JOIN clin.fhx_relation_type c_fhrt
 				<td>
                 
                 </td>
-            	<td>modified_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>item_table</td>
+            	<td>regclass</td>
                 <td><i>
 				
 
@@ -65893,8 +79553,8 @@ LEFT JOIN clin.fhx_relation_type c_fhrt
 				<td>
                 
                 </td>
-            	<td>clin_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>code</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -65909,7 +79569,7 @@ LEFT JOIN clin.fhx_relation_type c_fhrt
 				<td>
                 
                 </td>
-            	<td>modified_by</td>
+            	<td>base_code</td>
             	<td>text</td>
                 <td><i>
 				
@@ -65925,7 +79585,7 @@ LEFT JOIN clin.fhx_relation_type c_fhrt
 				<td>
                 
                 </td>
-            	<td>soap_cat</td>
+            	<td>code_modifier</td>
             	<td>text</td>
                 <td><i>
 				
@@ -65941,7 +79601,7 @@ LEFT JOIN clin.fhx_relation_type c_fhrt
 				<td>
                 
                 </td>
-            	<td>narrative</td>
+            	<td>term</td>
             	<td>text</td>
                 <td><i>
 				
@@ -65957,8 +79617,8 @@ LEFT JOIN clin.fhx_relation_type c_fhrt
 				<td>
                 
                 </td>
-            	<td>pk_encounter</td>
-            	<td>integer</td>
+            	<td>name_long</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -65973,8 +79633,8 @@ LEFT JOIN clin.fhx_relation_type c_fhrt
 				<td>
                 
                 </td>
-            	<td>pk_episode</td>
-            	<td>integer</td>
+            	<td>name_short</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -65989,8 +79649,8 @@ LEFT JOIN clin.fhx_relation_type c_fhrt
 				<td>
                 
                 </td>
-            	<td>pk_health_issue</td>
-            	<td>integer</td>
+            	<td>version</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -66005,7 +79665,39 @@ LEFT JOIN clin.fhx_relation_type c_fhrt
 				<td>
                 
                 </td>
-            	<td>src_pk</td>
+            	<td>lang</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>code_table</td>
+            	<td>regclass</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>pk_generic_code</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -66021,8 +79713,8 @@ LEFT JOIN clin.fhx_relation_type c_fhrt
 				<td>
                 
                 </td>
-            	<td>src_table</td>
-            	<td>text</td>
+            	<td>pk_data_source</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -66037,7 +79729,7 @@ LEFT JOIN clin.fhx_relation_type c_fhrt
 				<td>
                 
                 </td>
-            	<td>row_version</td>
+            	<td>pk_lnk_code2item</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -66068,154 +79760,53 @@ LEFT JOIN clin.fhx_relation_type c_fhrt
 	<!-- View Definition -->
 	
 	<pre>
-SELECT cenc.fk_patient AS pk_patient
-, c_fh.modified_when
-, c_fh.clin_when
-, COALESCE
-(
-     (
-      SELECT staff.short_alias 
-        FROM dem.staff 
-       WHERE (staff.db_user = c_fh.modified_by)
-     )
-     , (
-           ('<'::text || 
-                 (c_fh.modified_by)::text
-           ) || '>'::text
-     )
-) AS modified_by
-, c_fh.soap_cat
-, (
-     (
-           (
-                 (
-                       (
-                             (
-                                   (
-                                         (
-                                               (
-                                                     (
-                                                           (
-                                                                 (_
-                                                                       (c_fhrt.description) || COALESCE
-                                                                       (
-                                                                             (' @ '::text || c_fh.age_noted)
-                                                                             ,''::text
-                                                                       )
-                                                                 ) || ': '::text
-                                                           ) || c_fh.narrative
-                                                     ) || '
-'::text
-                                               ) || ' '::text
-                                         ) || CASE WHEN 
-                                         (c_fh.contributed_to_death IS TRUE) THEN 
-                                         (_
-                                               ('contributed to death'::text) || ' '::text
-                                         ) ELSE ''::text END
-                                   ) || COALESCE
-                                   (
-                                         ('@ '::text || 
-                                               (justify_interval
-                                                     (c_fh.age_of_death)
-                                               )::text
-                                         )
-                                         ,''::text
-                                   )
-                             ) || '
-'::text
-                       ) || COALESCE
-                       (
-                             (
-                                   (' '::text || c_fh.name_relative) || 
-                                 ','::text
-                             )
-                             ,''::text
-                       )
-                 ) || COALESCE
-                 (
-                       (' '::text || to_char
-                             (c_fh.dob_relative
-                                   ,'YYYY-MM-DD'::text
-                             )
-                       )
-                       ,''::text
-                 )
-           ) || COALESCE
-           (
-                 ('
- '::text || c_fh.comment)
-                 ,''::text
-           )
-     ) || COALESCE
-     (
-           (
-                 (';
-'::text || array_to_string
-                       (
-                             (
-                              SELECT array_agg
-                                   (
-                                         (
-                                               (
-                                                     (
-                                                           (
-                                                                 (
-                                                                       (
-                                                                             (
-                                                                                   (r_csr.code || 
-                                                                                      ' ('::text) || r_ds.name_short
-                                                                                   ) || ' - '::text
-                                                                             ) || r_ds.version
-                                                                       ) || ' - '::text
-                                                                 ) || r_ds.lang
-                                                           ) || 
-                                                 '): '::text
-                                               ) || r_csr.term
-                                         )
-                                   ) AS array_agg 
-                                FROM (
-                                         (clin.lnk_code2fhx c_lc2fhx 
-                                            JOIN ref.coding_system_root r_csr 
-                                              ON (
-                                                     (c_lc2fhx.fk_generic_code = r_csr.pk_coding_system)
-                                               )
-                                         )
-                                      JOIN ref.data_source r_ds 
-                                        ON (
-                                               (r_ds.pk = r_csr.fk_data_source)
-                                         )
-                                   )
-                               WHERE (c_lc2fhx.fk_item = c_fh.pk)
-                             )
-                             ,'; '::text
-                       )
-                 ) || ';'::text
-           )
+SELECT c_lc2ir.fk_item AS pk_item
+,
+    
+(c_lc2ir.tableoid)::regclass AS item_table
+,
+    
+(r_csr.code || COALESCE
+     (c_lc2ir.code_modifier
            ,''::text
      )
-) AS narrative
-, c_fh.fk_encounter AS pk_encounter
-, c_fh.fk_episode AS pk_episode
-, cep.fk_health_issue AS pk_health_issue
-, c_fh.pk AS src_pk
-,'clin.family_history'::text AS src_table
-, c_fh.row_version 
+) AS code
+,
+    r_csr.code AS base_code
+,
+    c_lc2ir.code_modifier
+,
+    r_csr.term
+,
+    r_ds.name_long
+,
+    r_ds.name_short
+,
+    r_ds.version
+,
+    r_ds.lang
+,
+    
+(r_csr.tableoid)::regclass AS code_table
+,
+    r_csr.pk_coding_system AS pk_generic_code
+,
+    r_csr.fk_data_source AS pk_data_source
+,
+    c_lc2ir.pk_lnk_code2item
+   
 FROM (
-     (
-           (clin.family_history c_fh 
-              JOIN clin.encounter cenc 
-                ON (
-                       (c_fh.fk_encounter = cenc.pk)
-                 )
-           )
-        JOIN clin.episode cep 
+     (clin.lnk_code2item_root c_lc2ir
+     
+        JOIN ref.coding_system_root r_csr 
           ON (
-                 (c_fh.fk_episode = cep.pk)
+                 (r_csr.pk_coding_system = c_lc2ir.fk_generic_code)
            )
      )
-LEFT JOIN clin.fhx_relation_type c_fhrt 
+     
+  JOIN ref.data_source r_ds 
     ON (
-           (c_fh.fk_relation_type = c_fhrt.pk)
+           (r_ds.pk = r_csr.fk_data_source)
      )
 );</pre>
 	
@@ -66231,13 +79822,15 @@ LEFT JOIN clin.fhx_relation_type c_fhrt
         <hr>
 		<h2>View:
 			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-health-issues">v_health_issues</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-lnk-vaccine2inds">v_lnk_vaccine2inds</a>
 		</h2>
         
+         <p>Denormalizes indications per vaccine.</p>
+        
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.v_health_issues Structure</caption>
+                <caption>clin.v_lnk_vaccine2inds Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -66249,7 +79842,7 @@ LEFT JOIN clin.fhx_relation_type c_fhrt
 				<td>
                 
                 </td>
-            	<td>pk_patient</td>
+            	<td>pk_vaccine</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -66265,8 +79858,8 @@ LEFT JOIN clin.fhx_relation_type c_fhrt
 				<td>
                 
                 </td>
-            	<td>pk_health_issue</td>
-            	<td>integer</td>
+            	<td>vaccine</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -66281,7 +79874,7 @@ LEFT JOIN clin.fhx_relation_type c_fhrt
 				<td>
                 
                 </td>
-            	<td>description</td>
+            	<td>preparation</td>
             	<td>text</td>
                 <td><i>
 				
@@ -66297,7 +79890,7 @@ LEFT JOIN clin.fhx_relation_type c_fhrt
 				<td>
                 
                 </td>
-            	<td>summary</td>
+            	<td>atc_code</td>
             	<td>text</td>
                 <td><i>
 				
@@ -66313,8 +79906,8 @@ LEFT JOIN clin.fhx_relation_type c_fhrt
 				<td>
                 
                 </td>
-            	<td>laterality</td>
-            	<td>character varying(2)</td>
+            	<td>is_fake_vaccine</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -66329,8 +79922,8 @@ LEFT JOIN clin.fhx_relation_type c_fhrt
 				<td>
                 
                 </td>
-            	<td>age_noted</td>
-            	<td>interval</td>
+            	<td>route_abbreviation</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -66345,8 +79938,8 @@ LEFT JOIN clin.fhx_relation_type c_fhrt
 				<td>
                 
                 </td>
-            	<td>is_active</td>
-            	<td>boolean</td>
+            	<td>route_description</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -66361,7 +79954,7 @@ LEFT JOIN clin.fhx_relation_type c_fhrt
 				<td>
                 
                 </td>
-            	<td>clinically_relevant</td>
+            	<td>is_live</td>
             	<td>boolean</td>
                 <td><i>
 				
@@ -66377,8 +79970,8 @@ LEFT JOIN clin.fhx_relation_type c_fhrt
 				<td>
                 
                 </td>
-            	<td>is_confidential</td>
-            	<td>boolean</td>
+            	<td>min_age</td>
+            	<td>interval</td>
                 <td><i>
 				
 
@@ -66393,8 +79986,8 @@ LEFT JOIN clin.fhx_relation_type c_fhrt
 				<td>
                 
                 </td>
-            	<td>is_cause_of_death</td>
-            	<td>boolean</td>
+            	<td>max_age</td>
+            	<td>interval</td>
                 <td><i>
 				
 
@@ -66409,8 +80002,8 @@ LEFT JOIN clin.fhx_relation_type c_fhrt
 				<td>
                 
                 </td>
-            	<td>pk_encounter</td>
-            	<td>integer</td>
+            	<td>comment</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -66425,8 +80018,8 @@ LEFT JOIN clin.fhx_relation_type c_fhrt
 				<td>
                 
                 </td>
-            	<td>modified_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>indication</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -66441,8 +80034,8 @@ LEFT JOIN clin.fhx_relation_type c_fhrt
 				<td>
                 
                 </td>
-            	<td>modified_by</td>
-            	<td>name</td>
+            	<td>l10n_indication</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -66457,8 +80050,8 @@ LEFT JOIN clin.fhx_relation_type c_fhrt
 				<td>
                 
                 </td>
-            	<td>row_version</td>
-            	<td>integer</td>
+            	<td>atcs_single_indication</td>
+            	<td>text[]</td>
                 <td><i>
 				
 
@@ -66473,8 +80066,8 @@ LEFT JOIN clin.fhx_relation_type c_fhrt
 				<td>
                 
                 </td>
-            	<td>grouping</td>
-            	<td>text</td>
+            	<td>atcs_combi_indication</td>
+            	<td>text[]</td>
                 <td><i>
 				
 
@@ -66489,7 +80082,7 @@ LEFT JOIN clin.fhx_relation_type c_fhrt
 				<td>
                 
                 </td>
-            	<td>diagnostic_certainty_classification</td>
+            	<td>external_code</td>
             	<td>text</td>
                 <td><i>
 				
@@ -66505,8 +80098,8 @@ LEFT JOIN clin.fhx_relation_type c_fhrt
 				<td>
                 
                 </td>
-            	<td>has_open_episode</td>
-            	<td>boolean</td>
+            	<td>external_code_type</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -66521,8 +80114,8 @@ LEFT JOIN clin.fhx_relation_type c_fhrt
 				<td>
                 
                 </td>
-            	<td>pk_generic_codes</td>
-            	<td>integer[]</td>
+            	<td>pk_route</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -66537,7 +80130,55 @@ LEFT JOIN clin.fhx_relation_type c_fhrt
 				<td>
                 
                 </td>
-            	<td>xmin_health_issue</td>
+            	<td>pk_brand</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>pk_data_source</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_indication</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>xmin_vaccine</td>
             	<td>xid</td>
                 <td><i>
 				
@@ -66568,48 +80209,79 @@ LEFT JOIN clin.fhx_relation_type c_fhrt
 	<!-- View Definition -->
 	
 	<pre>
-SELECT (
-SELECT encounter.fk_patient 
-  FROM clin.encounter 
- WHERE (encounter.pk = c_hi.fk_encounter)
-) AS pk_patient
-, c_hi.pk AS pk_health_issue
-, c_hi.description
-, c_hi.summary
-, c_hi.laterality
-, c_hi.age_noted
-, c_hi.is_active
-, c_hi.clinically_relevant
-, c_hi.is_confidential
-, c_hi.is_cause_of_death
-, c_hi.fk_encounter AS pk_encounter
-, c_hi.modified_when
-, c_hi.modified_by
-, c_hi.row_version
-, c_hi.grouping
-, c_hi.diagnostic_certainty_classification
-, (EXISTS 
+SELECT cv.pk AS pk_vaccine
+,
+    rbd.description AS vaccine
+,
+    rbd.preparation
+,
+    rbd.atc_code
+,
+    rbd.is_fake AS is_fake_vaccine
+,
+    cvr.abbreviation AS route_abbreviation
+,
+    cvr.description AS route_description
+,
+    cv.is_live
+,
+    cv.min_age
+,
+    cv.max_age
+,
+    cv.comment
+,
+    cvi.description AS indication
+,
+    _
+(cvi.description) AS l10n_indication
+,
+    cvi.atcs_single_indication
+,
+    cvi.atcs_combi_indication
+,
+    rbd.external_code
+,
+    rbd.external_code_type
+,
+    cv.id_route AS pk_route
+,
+    cv.fk_brand AS pk_brand
+,
+    rbd.fk_data_source AS pk_data_source
+,
+    cvi.id AS pk_indication
+,
+    cv.xmin AS xmin_vaccine
+   
+FROM (
      (
-      SELECT 1 
-        FROM clin.episode c_ep 
-       WHERE (
-                 (c_ep.fk_health_issue = c_hi.pk)
-               AND (c_ep.is_open IS TRUE)
-           ) LIMIT 1
+           (
+                 (clin.vaccine cv
+     
+               LEFT JOIN clin.vacc_route cvr 
+                      ON (
+                             (cvr.id = cv.id_route)
+                       )
+                 )
+     
+              JOIN ref.branded_drug rbd 
+                ON (
+                       (rbd.pk = cv.fk_brand)
+                 )
+           )
+     
+        JOIN clin.lnk_vaccine2inds clv2i 
+          ON (
+                 (clv2i.fk_vaccine = cv.pk)
+           )
      )
-) AS has_open_episode
-, COALESCE
-(
-     (
-      SELECT array_agg
-           (c_lc2h.fk_generic_code) AS array_agg 
-        FROM clin.lnk_code2h_issue c_lc2h 
-       WHERE (c_lc2h.fk_item = c_hi.pk)
+     
+  JOIN clin.vacc_indication cvi 
+    ON (
+           (cvi.id = clv2i.fk_indication)
      )
-     , ARRAY[]::integer[]
-) AS pk_generic_codes
-, c_hi.xmin AS xmin_health_issue 
-FROM clin.health_issue c_hi;</pre>
+);</pre>
 	
 
 	<!-- List off permissions -->
@@ -66623,58 +80295,32 @@ FROM clin.health_issue c_hi;</pre>
         <hr>
 		<h2>View:
 			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-health-issues-journal">v_health_issues_journal</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-most-recent-encounters">v_most_recent_encounters</a>
 		</h2>
         
+         <p>Lists the most recent encounters per patient. Logic of "most recent" 
+	is: for a patient: 
+	 1) select encounters with latest "last_affirmed",
+	 2) from those select encounters with latest "started"
+	 3) limit those to 1 if there are duplicates (same start and end of encounter!)</p>
+        
 
-
-        <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.v_health_issues_journal Structure</caption>
-                <tr>
-                <th>F-Key</th>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Description</th>
-                </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>pk_patient</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>modified_when</td>
-            	<td>timestamp with time zone</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
+
+        <table width="100%" cellspacing="0" cellpadding="3">
+                <caption>clin.v_most_recent_encounters Structure</caption>
+                <tr>
+                <th>F-Key</th>
+                <th>Name</th>
+                <th>Type</th>
+                <th>Description</th>
+                </tr>
             
             <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>clin_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>pk_encounter</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -66689,8 +80335,8 @@ FROM clin.health_issue c_hi;</pre>
 				<td>
                 
                 </td>
-            	<td>modified_by</td>
-            	<td>text</td>
+            	<td>pk_patient</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -66705,7 +80351,7 @@ FROM clin.health_issue c_hi;</pre>
 				<td>
                 
                 </td>
-            	<td>soap_cat</td>
+            	<td>reason_for_encounter</td>
             	<td>text</td>
                 <td><i>
 				
@@ -66721,7 +80367,7 @@ FROM clin.health_issue c_hi;</pre>
 				<td>
                 
                 </td>
-            	<td>narrative</td>
+            	<td>assessment_of_encounter</td>
             	<td>text</td>
                 <td><i>
 				
@@ -66737,8 +80383,8 @@ FROM clin.health_issue c_hi;</pre>
 				<td>
                 
                 </td>
-            	<td>pk_encounter</td>
-            	<td>integer</td>
+            	<td>type</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -66753,8 +80399,8 @@ FROM clin.health_issue c_hi;</pre>
 				<td>
                 
                 </td>
-            	<td>pk_episode</td>
-            	<td>integer</td>
+            	<td>l10n_type</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -66769,8 +80415,8 @@ FROM clin.health_issue c_hi;</pre>
 				<td>
                 
                 </td>
-            	<td>pk_health_issue</td>
-            	<td>integer</td>
+            	<td>started</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
@@ -66785,8 +80431,8 @@ FROM clin.health_issue c_hi;</pre>
 				<td>
                 
                 </td>
-            	<td>src_pk</td>
-            	<td>integer</td>
+            	<td>last_affirmed</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
@@ -66801,8 +80447,8 @@ FROM clin.health_issue c_hi;</pre>
 				<td>
                 
                 </td>
-            	<td>src_table</td>
-            	<td>text</td>
+            	<td>pk_type</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -66817,7 +80463,7 @@ FROM clin.health_issue c_hi;</pre>
 				<td>
                 
                 </td>
-            	<td>row_version</td>
+            	<td>pk_location</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -66848,175 +80494,52 @@ FROM clin.health_issue c_hi;</pre>
 	<!-- View Definition -->
 	
 	<pre>
-SELECT cenc.fk_patient AS pk_patient
-, chi.modified_when
-, COALESCE
-(
-     (
-      SELECT (identity.dob + chi.age_noted)
-        FROM dem.identity 
-       WHERE (identity.pk = 
-                 (
-                  SELECT encounter.fk_patient 
-                    FROM clin.encounter 
-                   WHERE (encounter.pk = chi.fk_encounter)
-                 )
-           )
-     )
-     , cenc.started
-) AS clin_when
-, COALESCE
-(
-     (
-      SELECT staff.short_alias 
-        FROM dem.staff 
-       WHERE (staff.db_user = chi.modified_by)
-     )
-     , (
-           ('<'::text || 
-                 (chi.modified_by)::text
-           ) || '>'::text
-     )
-) AS modified_by
-,'a'::text AS soap_cat
-, (
-     (
-           (
-                 (
-                       (
-                             (
-                                   (
-                                         (
-                                               (
-                                                     (
-                                                           (
-                                                                 (
-                                                                       (_
-                                                                             ('Health Issue'::text) || 
-                                                                          ' ('::text) || CASE WHEN chi.is_active THEN _
-                                                                             ('active'::text) ELSE _
-                                                                             ('inactive'::text) END
-                                                                       ) || 
-                                                                    ', '::text
-                                                                 ) || CASE WHEN chi.clinically_relevant THEN _
-                                                                 ('clinically relevant'::text) ELSE _
-                                                                 ('clinically not relevant'::text) END
-                                                           ) || COALESCE
-                                                           (
-                                                                 (
-                                                                    ', '::text || chi.diagnostic_certainty_classification
-                                                                 )
-                                                                 ,''::text
-                                                           )
-                                                     ) || 
-                                           '): '::text
-                                         ) || chi.description
-                                   ) || COALESCE
-                                   (
-                                         (
-                                               (
-                                                     (
-                                                           (';
-'::text || _
-                                                                 ('noted at age'::text)
-                                                           ) || ': '::text
-                                                     ) || 
-                                                     (chi.age_noted)::text
-                                               ) || ';
-'::text
-                                         )
-                                         ,';
-'::text
-                                   )
-                             ) || COALESCE
-                             (
-                                   (
-                                         (
-                                               (_
-                                                     ('Laterality'::text) || ': '::text
-                                               ) || 
-                                               (chi.laterality)::text
-                                         ) || ' / '::text
-                                   )
-                                   ,''::text
-                             )
-                       ) || CASE WHEN chi.is_confidential THEN 
-                       (_
-                             ('confidential'::text) || ' / '::text
-                       ) ELSE ''::text END
-                 ) || CASE WHEN chi.is_cause_of_death THEN _
-                 ('cause of death'::text) ELSE ''::text END
-           ) || COALESCE
-           (
-                 (
-                       (
-                             (';
-'::text || _
-                                   ('Summary'::text)
-                             ) || ':
-'::text
-                       ) || chi.summary
-                 )
-                 ,''::text
-           )
-     ) || COALESCE
-     (
+SELECT ce1.pk AS pk_encounter
+,
+    ce1.fk_patient AS pk_patient
+,
+    ce1.reason_for_encounter
+,
+    ce1.assessment_of_encounter
+,
+    et.description AS type
+,
+    _
+(et.description) AS l10n_type
+,
+    ce1.started
+,
+    ce1.last_affirmed
+,
+    ce1.fk_type AS pk_type
+,
+    ce1.fk_location AS pk_location
+   
+FROM clin.encounter ce1
+,
+    clin.encounter_type et
+  
+WHERE (
+     (ce1.fk_type = et.pk)
+   AND (ce1.started = 
            (
-                 (';
-'::text || array_to_string
+            SELECT max
+                 (ce2.started) AS max
+           
+              FROM clin.encounter ce2
+          
+             WHERE (ce2.last_affirmed = 
                        (
-                             (
-                              SELECT array_agg
-                                   (
-                                         (
-                                               (
-                                                     (
-                                                           (
-                                                                 (
-                                                                       (
-                                                                             (
-                                                                                   (r_csr.code || 
-                                                                                      ' ('::text) || r_ds.name_short
-                                                                                   ) || ' - '::text
-                                                                             ) || r_ds.version
-                                                                       ) || ' - '::text
-                                                                 ) || r_ds.lang
-                                                           ) || 
-                                                 '): '::text
-                                               ) || r_csr.term
-                                         )
-                                   ) AS array_agg 
-                                FROM (
-                                         (clin.lnk_code2h_issue c_lc2h 
-                                            JOIN ref.coding_system_root r_csr 
-                                              ON (
-                                                     (c_lc2h.fk_generic_code = r_csr.pk_coding_system)
-                                               )
-                                         )
-                                      JOIN ref.data_source r_ds 
-                                        ON (
-                                               (r_ds.pk = r_csr.fk_data_source)
-                                         )
-                                   )
-                               WHERE (c_lc2h.fk_item = chi.pk)
-                             )
-                             ,'; '::text
+                        SELECT max
+                             (ce3.last_affirmed) AS max
+                   
+                          FROM clin.encounter ce3
+                  
+                         WHERE (ce3.fk_patient = ce1.fk_patient)
                        )
-                 ) || ';'::text
+                 )
+         LIMIT 1
            )
-           ,''::text
-     )
-) AS narrative
-, chi.fk_encounter AS pk_encounter
-, (-1) AS pk_episode
-, chi.pk AS pk_health_issue
-, chi.pk AS src_pk
-,'clin.health_issue'::text AS src_table
-, chi.row_version 
-FROM (clin.health_issue chi 
-  JOIN clin.encounter cenc 
-    ON (
-           (chi.fk_encounter = cenc.pk)
      )
 );</pre>
 	
@@ -67032,13 +80555,15 @@ FROM (clin.health_issue chi
         <hr>
 		<h2>View:
 			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-hospital-stays">v_hospital_stays</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-narrative">v_narrative</a>
 		</h2>
         
+         <p>patient narrative with denormalized context added</p>
+        
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.v_hospital_stays Structure</caption>
+                <caption>clin.v_narrative Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -67050,7 +80575,7 @@ FROM (clin.health_issue chi
 				<td>
                 
                 </td>
-            	<td>pk_hospital_stay</td>
+            	<td>pk_patient</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -67066,8 +80591,8 @@ FROM (clin.health_issue chi
 				<td>
                 
                 </td>
-            	<td>pk_patient</td>
-            	<td>integer</td>
+            	<td>date</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
@@ -67082,7 +80607,7 @@ FROM (clin.health_issue chi
 				<td>
                 
                 </td>
-            	<td>hospital</td>
+            	<td>modified_by</td>
             	<td>text</td>
                 <td><i>
 				
@@ -67098,7 +80623,7 @@ FROM (clin.health_issue chi
 				<td>
                 
                 </td>
-            	<td>ward</td>
+            	<td>soap_cat</td>
             	<td>text</td>
                 <td><i>
 				
@@ -67114,7 +80639,7 @@ FROM (clin.health_issue chi
 				<td>
                 
                 </td>
-            	<td>comment</td>
+            	<td>narrative</td>
             	<td>text</td>
                 <td><i>
 				
@@ -67130,8 +80655,8 @@ FROM (clin.health_issue chi
 				<td>
                 
                 </td>
-            	<td>admission</td>
-            	<td>timestamp with time zone</td>
+            	<td>episode</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -67146,8 +80671,8 @@ FROM (clin.health_issue chi
 				<td>
                 
                 </td>
-            	<td>discharge</td>
-            	<td>timestamp with time zone</td>
+            	<td>health_issue</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -67162,8 +80687,8 @@ FROM (clin.health_issue chi
 				<td>
                 
                 </td>
-            	<td>soap_cat</td>
-            	<td>text</td>
+            	<td>pk_item</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -67178,8 +80703,8 @@ FROM (clin.health_issue chi
 				<td>
                 
                 </td>
-            	<td>episode</td>
-            	<td>text</td>
+            	<td>pk_narrative</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -67194,8 +80719,8 @@ FROM (clin.health_issue chi
 				<td>
                 
                 </td>
-            	<td>health_issue</td>
-            	<td>text</td>
+            	<td>pk_health_issue</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -67210,7 +80735,7 @@ FROM (clin.health_issue chi
 				<td>
                 
                 </td>
-            	<td>pk_encounter</td>
+            	<td>pk_episode</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -67226,7 +80751,7 @@ FROM (clin.health_issue chi
 				<td>
                 
                 </td>
-            	<td>pk_episode</td>
+            	<td>pk_encounter</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -67242,8 +80767,8 @@ FROM (clin.health_issue chi
 				<td>
                 
                 </td>
-            	<td>pk_health_issue</td>
-            	<td>integer</td>
+            	<td>xmin_clin_narrative</td>
+            	<td>xid</td>
                 <td><i>
 				
 
@@ -67258,8 +80783,8 @@ FROM (clin.health_issue chi
 				<td>
                 
                 </td>
-            	<td>pk_org_unit</td>
-            	<td>integer</td>
+            	<td>modified_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
@@ -67274,7 +80799,7 @@ FROM (clin.health_issue chi
 				<td>
                 
                 </td>
-            	<td>pk_org</td>
+            	<td>row_version</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -67290,8 +80815,8 @@ FROM (clin.health_issue chi
 				<td>
                 
                 </td>
-            	<td>modified_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>pk_audit</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -67306,8 +80831,8 @@ FROM (clin.health_issue chi
 				<td>
                 
                 </td>
-            	<td>modified_by</td>
-            	<td>text</td>
+            	<td>modified_by_raw</td>
+            	<td>name</td>
                 <td><i>
 				
 
@@ -67322,24 +80847,8 @@ FROM (clin.health_issue chi
 				<td>
                 
                 </td>
-            	<td>row_version</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>xmin_hospital_stay</td>
-            	<td>xid</td>
+            	<td>pk_generic_codes</td>
+            	<td>integer[]</td>
                 <td><i>
 				
 
@@ -67369,63 +80878,86 @@ FROM (clin.health_issue chi
 	<!-- View Definition -->
 	
 	<pre>
-SELECT c_hs.pk AS pk_hospital_stay
-, (
-SELECT encounter.fk_patient 
-  FROM clin.encounter 
- WHERE (encounter.pk = c_hs.fk_encounter)
-) AS pk_patient
-, d_o.description AS hospital
-, d_ou.description AS ward
-, c_hs.narrative AS comment
-, c_hs.clin_when AS admission
-, c_hs.discharge
-, c_hs.soap_cat
-, c_e.description AS episode
-, c_hi.description AS health_issue
-, c_hs.fk_encounter AS pk_encounter
-, c_hs.fk_episode AS pk_episode
-, c_hi.pk AS pk_health_issue
-, c_hs.fk_org_unit AS pk_org_unit
-, d_o.pk AS pk_org
-, c_hs.modified_when
-, COALESCE
+SELECT c_enc.fk_patient AS pk_patient
+,
+    c_n.clin_when AS date
+,
+    COALESCE
 (
      (
-      SELECT staff.short_alias 
-        FROM dem.staff 
-       WHERE (staff.db_user = c_hs.modified_by)
+      SELECT staff.short_alias
+           
+        FROM dem.staff
+          
+       WHERE (staff.db_user = c_n.modified_by)
      )
      , (
            ('<'::text || 
-                 (c_hs.modified_by)::text
+                 (c_n.modified_by)::text
            ) || '>'::text
      )
 ) AS modified_by
-, c_hs.row_version
-, c_hs.xmin AS xmin_hospital_stay 
+,
+    c_n.soap_cat
+,
+    c_n.narrative
+,
+    c_epi.description AS episode
+,
+    c_hi.description AS health_issue
+,
+    c_n.pk_item
+,
+    c_n.pk AS pk_narrative
+,
+    c_epi.fk_health_issue AS pk_health_issue
+,
+    c_n.fk_episode AS pk_episode
+,
+    c_n.fk_encounter AS pk_encounter
+,
+    c_n.xmin AS xmin_clin_narrative
+,
+    c_n.modified_when
+,
+    c_n.row_version
+,
+    c_n.pk_audit
+,
+    c_n.modified_by AS modified_by_raw
+,
+    COALESCE
+(
+     (
+      SELECT array_agg
+           (c_lc2n.fk_generic_code) AS array_agg
+           
+        FROM clin.lnk_code2narrative c_lc2n
+          
+       WHERE (c_lc2n.fk_item = c_n.pk)
+     )
+     , ARRAY[]::integer[]
+) AS pk_generic_codes
+   
 FROM (
      (
-           (
-                 (clin.hospital_stay c_hs 
-               LEFT JOIN clin.episode c_e 
-                      ON (
-                             (c_e.pk = c_hs.fk_episode)
-                       )
-                 )
-         LEFT JOIN clin.health_issue c_hi 
+           (clin.clin_narrative c_n
+     
+         LEFT JOIN clin.encounter c_enc 
                 ON (
-                       (c_hi.pk = c_e.fk_health_issue)
+                       (c_n.fk_encounter = c_enc.pk)
                  )
            )
-   LEFT JOIN dem.org_unit d_ou 
+     
+   LEFT JOIN clin.episode c_epi 
           ON (
-                 (d_ou.pk = c_hs.fk_org_unit)
+                 (c_n.fk_episode = c_epi.pk)
            )
      )
-LEFT JOIN dem.org d_o 
+     
+LEFT JOIN clin.health_issue c_hi 
     ON (
-           (d_o.pk = d_ou.fk_org)
+           (c_epi.fk_health_issue = c_hi.pk)
      )
 );</pre>
 	
@@ -67441,13 +80973,17 @@ LEFT JOIN dem.org d_o
         <hr>
 		<h2>View:
 			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-hospital-stays-journal">v_hospital_stays_journal</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-narrative4search">v_narrative4search</a>
 		</h2>
         
+         <p>unformatted *complete* narrative for patients
+	 including health issue/episode/encounter descriptions,
+	 mainly for searching the narrative in context</p>
+        
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.v_hospital_stays_journal Structure</caption>
+                <caption>clin.v_narrative4search Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -67475,54 +81011,6 @@ LEFT JOIN dem.org d_o
 				<td>
                 
                 </td>
-            	<td>modified_when</td>
-            	<td>timestamp with time zone</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>clin_when</td>
-            	<td>timestamp with time zone</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>modified_by</td>
-            	<td>text</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
             	<td>soap_cat</td>
             	<td>text</td>
                 <td><i>
@@ -67535,7 +81023,7 @@ LEFT JOIN dem.org d_o
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                 </td>
@@ -67551,7 +81039,7 @@ LEFT JOIN dem.org d_o
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
@@ -67567,7 +81055,7 @@ LEFT JOIN dem.org d_o
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                 </td>
@@ -67583,7 +81071,7 @@ LEFT JOIN dem.org d_o
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
@@ -67599,7 +81087,7 @@ LEFT JOIN dem.org d_o
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                 </td>
@@ -67615,7 +81103,7 @@ LEFT JOIN dem.org d_o
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
@@ -67631,117 +81119,729 @@ LEFT JOIN dem.org d_o
 				</td>
 			 </tr>
             
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>row_version</td>
-            	<td>integer</td>
-                <td><i>
-				
+        </table>
 
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
+        <!-- Inherits -->
+		
+
+		
+
+        <!-- Constraint List -->
+		
+
+        <!-- Foreign Key Discovery -->
+		
+
+    <!-- Indexes -->
+    
+
+	<!-- View Definition -->
+	
+	<pre>
+SELECT union_table.pk_patient
+,
+    union_table.soap_cat
+,
+    union_table.narrative
+,
+    union_table.pk_encounter
+,
+    union_table.pk_episode
+,
+    union_table.pk_health_issue
+,
+    union_table.src_pk
+,
+    union_table.src_table
+   
+FROM (
+SELECT vpi.pk_patient
+     ,
+            vpi.soap_cat
+     ,
+            vpi.narrative
+     ,
+            vpi.pk_encounter
+     ,
+            vpi.pk_episode
+     ,
+            vpi.pk_health_issue
+     ,
+            vpi.pk_item AS src_pk
+     ,
+            vpi.src_table
+           
+  FROM clin.v_pat_items vpi
+          
+ WHERE (vpi.src_table <> ALL 
+           (ARRAY['clin.allergy'::text
+                 ,'clin.test_result'::text
+                 ,'clin.procedure'::text
+                 ,'clin.substance_intake'::text
+                 ,'clin.family_history'::text]
+           )
+     )
+        
+UNION ALL
+         
+SELECT v_subst_intake4narr_search.pk_patient
+     ,
+            v_subst_intake4narr_search.soap_cat
+     ,
+            v_subst_intake4narr_search.narrative
+     ,
+            v_subst_intake4narr_search.pk_encounter
+     ,
+            v_subst_intake4narr_search.pk_episode
+     ,
+            v_subst_intake4narr_search.pk_health_issue
+     ,
+            v_subst_intake4narr_search.src_pk
+     ,
+            v_subst_intake4narr_search.src_table
+           
+  FROM clin.v_subst_intake4narr_search
+          
+ WHERE (gm.is_null_or_blank_string
+           (v_subst_intake4narr_search.narrative) IS FALSE
+     )
+        
+UNION ALL
+         
+SELECT (
+      SELECT encounter.fk_patient
+                   
+        FROM clin.encounter
+                  
+       WHERE (encounter.pk = cpr.fk_encounter)
+     ) AS pk_patient
+     ,
+            cpr.soap_cat
+     ,
+            cpr.narrative
+     ,
+            cpr.fk_encounter AS pk_encounter
+     ,
+            cpr.fk_episode AS pk_episode
+     ,
+            
+     (
+      SELECT episode.fk_health_issue
+                   
+        FROM clin.episode
+                  
+       WHERE (episode.pk = cpr.fk_episode)
+     ) AS pk_health_issue
+     ,
+            cpr.pk AS src_pk
+     ,
+            'clin.procedure'::text AS src_table
+           
+  FROM clin.procedure cpr
+          
+ WHERE (cpr.narrative IS NOT NULL)
+        
+UNION ALL
+         
+SELECT (
+      SELECT encounter.fk_patient
+                   
+        FROM clin.encounter
+                  
+       WHERE (encounter.pk = ctr.fk_encounter)
+     ) AS pk_patient
+     ,
+            ctr.soap_cat
+     ,
+            
+     (
+           (
+                 (
+                       (
+                             (
+                                   (
+                                         (
+                                               (COALESCE
+                                                     (ctr.narrative
+                                                           ,''::text
+                                                     ) || COALESCE
+                                                     (
+                                                           (' '::text || ctr.val_alpha)
+                                                           ,''::text
+                                                     )
+                                               ) || COALESCE
+                                               (
+                                                     (' '::text || ctr.val_unit)
+                                                     ,''::text
+                                               )
+                                         ) || COALESCE
+                                         (
+                                               (' '::text || ctr.val_normal_range)
+                                               ,''::text
+                                         )
+                                   ) || COALESCE
+                                   (
+                                         (' '::text || ctr.val_target_range)
+                                         ,''::text
+                                   )
+                             ) || COALESCE
+                             (
+                                   (' '::text || ctr.norm_ref_group)
+                                   ,''::text
+                             )
+                       ) || COALESCE
+                       (
+                             (' '::text || ctr.note_test_org)
+                             ,''::text
+                       )
+                 ) || COALESCE
+                 (
+                       (' '::text || ctr.material)
+                       ,''::text
+                 )
+           ) || COALESCE
+           (
+                 (' '::text || ctr.material_detail)
+                 ,''::text
+           )
+     ) AS narrative
+     ,
+            ctr.fk_encounter AS pk_encounter
+     ,
+            ctr.fk_episode AS pk_episode
+     ,
+            
+     (
+      SELECT episode.fk_health_issue
+                   
+        FROM clin.episode
+                  
+       WHERE (episode.pk = ctr.fk_episode)
+     ) AS pk_health_issue
+     ,
+            ctr.pk AS src_pk
+     ,
+            'clin.test_result'::text AS src_table
+           
+  FROM clin.test_result ctr
+        
+UNION ALL
+         
+SELECT (
+      SELECT encounter.fk_patient
+                   
+        FROM clin.encounter
+                  
+       WHERE (encounter.pk = 
+                 (
+                  SELECT test_result.fk_encounter
+                           
+                    FROM clin.test_result
+                          
+                   WHERE (test_result.pk = crtr.fk_reviewed_row)
+                 )
+           )
+     ) AS pk_patient
+     ,
+            'o'::text AS soap_cat
+     ,
+            crtr.comment AS narrative
+     ,
+            
+     (
+      SELECT test_result.fk_encounter
+                   
+        FROM clin.test_result
+                  
+       WHERE (test_result.pk = crtr.fk_reviewed_row)
+     ) AS pk_encounter
+     ,
+            
+     (
+      SELECT test_result.fk_episode
+                   
+        FROM clin.test_result
+                  
+       WHERE (test_result.pk = crtr.fk_reviewed_row)
+     ) AS pk_episode
+     ,
+            
+     (
+      SELECT episode.fk_health_issue
+                   
+        FROM clin.episode
+                  
+       WHERE (episode.pk = 
+                 (
+                  SELECT test_result.fk_episode
+                           
+                    FROM clin.test_result
+                          
+                   WHERE (test_result.pk = crtr.fk_reviewed_row)
+                 )
+           )
+     ) AS pk_health_issue
+     ,
+            crtr.pk AS src_pk
+     ,
+            'clin.reviewed_test_results'::text AS src_table
+           
+  FROM clin.reviewed_test_results crtr
+        
+UNION ALL
+         
+SELECT (
+      SELECT encounter.fk_patient
+                   
+        FROM clin.encounter
+                  
+       WHERE (encounter.pk = cas.fk_encounter)
+     ) AS pk_patient
+     ,
+            'o'::text AS soap_cat
+     ,
+            cas.comment AS narrative
+     ,
+            cas.fk_encounter AS pk_encounter
+     ,
+            NULL::integer AS pk_episode
+     ,
+            NULL::integer AS pk_health_issue
+     ,
+            cas.pk AS src_pk
+     ,
+            'clin.allergy_state'::text AS src_table
+           
+  FROM clin.allergy_state cas
+          
+ WHERE (cas.comment IS NOT NULL)
+        
+UNION ALL
+         
+SELECT (
+      SELECT encounter.fk_patient
+                   
+        FROM clin.encounter
+                  
+       WHERE (encounter.pk = ca.fk_encounter)
+     ) AS pk_patient
+     ,
+            ca.soap_cat
+     ,
+            
+     (
+           (
+                 (
+                       (
+                             (COALESCE
+                                   (ca.narrative
+                                         ,''::text
+                                   ) || COALESCE
+                                   (
+                                         (' '::text || ca.substance)
+                                         ,''::text
+                                   )
+                             ) || COALESCE
+                             (
+                                   (' '::text || ca.substance_code)
+                                   ,''::text
+                             )
+                       ) || COALESCE
+                       (
+                             (' '::text || ca.generics)
+                             ,''::text
+                       )
+                 ) || COALESCE
+                 (
+                       (' '::text || ca.allergene)
+                       ,''::text
+                 )
+           ) || COALESCE
+           (
+                 (' '::text || ca.atc_code)
+                 ,''::text
+           )
+     ) AS narrative
+     ,
+            ca.fk_encounter AS pk_encounter
+     ,
+            ca.fk_episode AS pk_episode
+     ,
             
-        </table>
-
-        <!-- Inherits -->
-		
-
-		
-
-        <!-- Constraint List -->
-		
-
-        <!-- Foreign Key Discovery -->
-		
-
-    <!-- Indexes -->
-    
-
-	<!-- View Definition -->
-	
-	<pre>
-SELECT (
-SELECT encounter.fk_patient 
-  FROM clin.encounter 
- WHERE (encounter.pk = c_hs.fk_encounter)
-) AS pk_patient
-, c_hs.modified_when
-, c_hs.clin_when
-, COALESCE
-(
      (
-      SELECT staff.short_alias 
-        FROM dem.staff 
-       WHERE (staff.db_user = c_hs.modified_by)
-     )
-     , (
-           ('<'::text || 
-                 (c_hs.modified_by)::text
-           ) || '>'::text
-     )
-) AS modified_by
-, c_hs.soap_cat
-, (
+      SELECT episode.fk_health_issue
+                   
+        FROM clin.episode
+                  
+       WHERE (episode.pk = ca.fk_episode)
+     ) AS pk_health_issue
+     ,
+            ca.pk AS src_pk
+     ,
+            'clin.allergy'::text AS src_table
+           
+  FROM clin.allergy ca
+        
+UNION ALL
+         
+SELECT (
+      SELECT encounter.fk_patient
+                   
+        FROM clin.encounter
+                  
+       WHERE (encounter.pk = chi.fk_encounter)
+     ) AS pk_patient
+     ,
+            'a'::text AS soap_cat
+     ,
+            
+     (chi.description || COALESCE
+           (
+                 (' '::text || chi.summary)
+                 ,''::text
+           )
+     ) AS narrative
+     ,
+            chi.fk_encounter AS pk_encounter
+     ,
+            NULL::integer AS pk_episode
+     ,
+            chi.pk AS pk_health_issue
+     ,
+            chi.pk AS src_pk
+     ,
+            'clin.health_issue'::text AS src_table
+           
+  FROM clin.health_issue chi
+        
+UNION ALL
+         
+SELECT cenc.fk_patient AS pk_patient
+     ,
+            's'::text AS soap_cat
+     ,
+            
+     (COALESCE
+           (cenc.reason_for_encounter
+                 ,''::text
+           ) || COALESCE
+           (
+                 (' '::text || cenc.assessment_of_encounter)
+                 ,''::text
+           )
+     ) AS narrative
+     ,
+            cenc.pk AS pk_encounter
+     ,
+            NULL::integer AS pk_episode
+     ,
+            NULL::integer AS pk_health_issue
+     ,
+            cenc.pk AS src_pk
+     ,
+            'clin.encounter'::text AS src_table
+           
+  FROM clin.encounter cenc
+        
+UNION ALL
+         
+SELECT (
+      SELECT encounter.fk_patient
+                   
+        FROM clin.encounter
+                  
+       WHERE (encounter.pk = cep.fk_encounter)
+     ) AS pk_patient
+     ,
+            's'::text AS soap_cat
+     ,
+            
+     (cep.description || COALESCE
+           (
+                 (' '::text || cep.summary)
+                 ,''::text
+           )
+     ) AS narrative
+     ,
+            cep.fk_encounter AS pk_encounter
+     ,
+            cep.pk AS pk_episode
+     ,
+            cep.fk_health_issue AS pk_health_issue
+     ,
+            cep.pk AS src_pk
+     ,
+            'clin.episode'::text AS src_table
+           
+  FROM clin.episode cep
+        
+UNION ALL
+         
+SELECT c_vfhx.pk_patient
+     ,
+            c_vfhx.soap_cat
+     ,
+            
      (
            (
                  (
                        (
                              (
-                                   (
-                                         (
-                                               (
-                                                     (_
-                                                           ('hospital stay'::text) || ': '::text
-                                                     ) || to_char
-                                                     (c_hs.clin_when
-                                                           ,'YYYY-MM-DD'::text
-                                                     )
-                                               ) || ' - '::text
-                                         ) || COALESCE
-                                         (to_char
-                                               (c_hs.discharge
-                                                     ,'YYYY-MM-DD'::text
-                                               )
-                                               ,'?'::text
-                                         )
-                                   ) || ' "'::text
-                             ) || d_ou.description
-                       ) || ' @ '::text
-                 ) || d_o.description
-           ) || '"'::text
-     ) || COALESCE
+                                   (c_vfhx.relation || ' / '::text) || c_vfhx.l10n_relation
+                             ) || ' '::text
+                       ) || c_vfhx.name_relative
+                 ) || ': '::text
+           ) || c_vfhx.condition
+     ) AS narrative
+     ,
+            c_vfhx.pk_encounter
+     ,
+            c_vfhx.pk_episode
+     ,
+            c_vfhx.pk_health_issue
+     ,
+            c_vfhx.pk_family_history AS src_pk
+     ,
+            'clin.family_history'::text AS src_table
+           
+  FROM clin.v_family_history c_vfhx
+        
+UNION ALL
+         
+SELECT vdm.pk_patient
+     ,
+            'o'::text AS soap_cat
+     ,
+            
      (
-           (' '::text || c_hs.narrative)
-           ,''::text
+           (
+                 (
+                       (vdm.l10n_type || ' '::text) || COALESCE
+                       (vdm.ext_ref
+                             ,''::text
+                       )
+                 ) || ' '::text
+           ) || COALESCE
+           (vdm.comment
+                 ,''::text
+           )
+     ) AS narrative
+     ,
+            vdm.pk_encounter
+     ,
+            vdm.pk_episode
+     ,
+            vdm.pk_health_issue
+     ,
+            vdm.pk_doc AS src_pk
+     ,
+            'blobs.doc_med'::text AS src_table
+           
+  FROM blobs.v_doc_med vdm
+        
+UNION ALL
+         
+SELECT vo4d.pk_patient
+     ,
+            'o'::text AS soap_cat
+     ,
+            vo4d.obj_comment AS narrative
+     ,
+            vo4d.pk_encounter
+     ,
+            vo4d.pk_episode
+     ,
+            vo4d.pk_health_issue
+     ,
+            vo4d.pk_obj AS src_pk
+     ,
+            'blobs.doc_obj'::text AS src_table
+           
+  FROM blobs.v_obj4doc_no_data vo4d
+        
+UNION ALL
+         
+SELECT vdd.pk_patient
+     ,
+            'o'::text AS soap_cat
+     ,
+            vdd.description AS narrative
+     ,
+            vdd.pk_encounter
+     ,
+            vdd.pk_episode
+     ,
+            vdd.pk_health_issue
+     ,
+            vdd.pk_doc_desc AS src_pk
+     ,
+            'blobs.doc_desc'::text AS src_table
+           
+  FROM blobs.v_doc_desc vdd
+        
+UNION ALL
+         
+SELECT vrdo.pk_patient
+     ,
+            's'::text AS soap_cat
+     ,
+            vrdo.comment AS narrative
+     ,
+            NULL::integer AS pk_encounter
+     ,
+            vrdo.pk_episode
+     ,
+            vrdo.pk_health_issue
+     ,
+            vrdo.pk_review_root AS src_pk
+     ,
+            'blobs.v_reviewed_doc_objects'::text AS src_table
+           
+  FROM blobs.v_reviewed_doc_objects vrdo
+        
+UNION ALL
+         
+SELECT d_vit.pk_identity AS pk_patient
+     ,
+            's'::text AS soap_cat
+     ,
+            
+     (d_vit.l10n_description || COALESCE
+           (
+                 (' '::text || d_vit.comment)
+                 ,''::text
+           )
+     ) AS narrative
+     ,
+            NULL::integer AS pk_encounter
+     ,
+            NULL::integer AS pk_episode
+     ,
+            NULL::integer AS pk_health_issue
+     ,
+            d_vit.pk_identity_tag AS src_pk
+     ,
+            'dem.v_identity_tags'::text AS src_table
+           
+  FROM dem.v_identity_tags d_vit
+        
+UNION ALL
+         
+SELECT c_vec.pk_identity AS pk_patient
+     ,
+            's'::text AS soap_cat
+     ,
+                CASE
+                    WHEN 
+     (c_vec.pk_health_issue IS NULL) THEN 
+     (
+           (COALESCE
+                 (c_vec.issue
+                       ,''::text
+                 ) || COALESCE
+                 (
+                       (' / '::text || c_vec.provider)
+                       ,''::text
+                 )
+           ) || COALESCE
+           (
+                 (' / '::text || c_vec.comment)
+                 ,''::text
+           )
      )
-) AS narrative
-, c_hs.fk_encounter AS pk_encounter
-, c_hs.fk_episode AS pk_episode
-, (
-SELECT episode.fk_health_issue 
-  FROM clin.episode 
- WHERE (episode.pk = c_hs.fk_episode)
-) AS pk_health_issue
-, c_hs.pk AS src_pk
-,'clin.hospital_stay'::text AS src_table
-, c_hs.row_version 
-FROM (
-     (clin.hospital_stay c_hs 
-   LEFT JOIN dem.org_unit d_ou 
-          ON (
-                 (d_ou.pk = c_hs.fk_org_unit)
+                    ELSE 
+     (COALESCE
+           (c_vec.provider
+                 ,''::text
+           ) || COALESCE
+           (
+                 (' / '::text || c_vec.comment)
+                 ,''::text
            )
      )
-LEFT JOIN dem.org d_o 
-    ON (
-           (d_o.pk = d_ou.fk_org)
+                END AS narrative
+     ,
+            c_vec.pk_encounter
+     ,
+            NULL::integer AS pk_episode
+     ,
+            c_vec.pk_health_issue
+     ,
+            c_vec.pk_external_care AS src_pk
+     ,
+            'clin.v_external_care'::text AS src_table
+           
+  FROM clin.v_external_care c_vec
+        
+UNION ALL
+         
+SELECT c_vei.pk_identity AS pk_patient
+     ,
+            's'::text AS soap_cat
+     ,
+                CASE
+                    WHEN 
+     (c_vei.pk_doc_obj IS NULL) THEN 
+     (COALESCE
+           (c_vei.description
+                 ,''::text
+           ) || COALESCE
+           (
+                 (' / '::text || c_vei.filename)
+                 ,''::text
+           )
+     )
+                    ELSE COALESCE
+     (c_vei.description
+           ,''::text
      )
+                END AS narrative
+     ,
+            NULL::integer AS pk_encounter
+     ,
+            NULL::integer AS pk_episode
+     ,
+            NULL::integer AS pk_health_issue
+     ,
+            c_vei.pk_export_item AS src_pk
+     ,
+            'clin.v_export_items'::text AS src_table
+           
+  FROM clin.v_export_items c_vei
+        
+UNION ALL
+         
+SELECT (
+      SELECT encounter.fk_patient
+                   
+        FROM clin.encounter
+                  
+       WHERE (encounter.pk = c_sh.fk_encounter)
+     ) AS pk_patient
+     ,
+            'p'::text AS soap_cat
+     ,
+            c_sh.rationale AS narrative
+     ,
+            c_sh.fk_encounter AS pk_encounter
+     ,
+            NULL::integer AS pk_episode
+     ,
+            NULL::integer AS pk_health_issue
+     ,
+            c_sh.pk AS src_pk
+     ,
+            'clin.suppressed_hint'::text AS src_table
+           
+  FROM clin.suppressed_hint c_sh
+) union_table
+  
+WHERE (btrim
+     (COALESCE
+           (union_table.narrative
+                 ,''::text
+           )
+     ) <> ''::text
 );</pre>
 	
 
@@ -67756,15 +81856,13 @@ LEFT JOIN dem.org d_o
         <hr>
 		<h2>View:
 			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-incoming-data-unmatched">v_incoming_data_unmatched</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-nonbrand-intakes">v_nonbrand_intakes</a>
 		</h2>
         
-         <p>Shows incoming data but w/o the data field.</p>
-        
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.v_incoming_data_unmatched Structure</caption>
+                <caption>clin.v_nonbrand_intakes Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -67776,7 +81874,7 @@ LEFT JOIN dem.org d_o
 				<td>
                 
                 </td>
-            	<td>pk_incoming_data_unmatched</td>
+            	<td>pk_substance_intake</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -67792,8 +81890,8 @@ LEFT JOIN dem.org d_o
 				<td>
                 
                 </td>
-            	<td>pk_patient_candidates</td>
-            	<td>integer[]</td>
+            	<td>pk_patient</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -67808,7 +81906,7 @@ LEFT JOIN dem.org d_o
 				<td>
                 
                 </td>
-            	<td>firstnames</td>
+            	<td>soap_cat</td>
             	<td>text</td>
                 <td><i>
 				
@@ -67824,8 +81922,8 @@ LEFT JOIN dem.org d_o
 				<td>
                 
                 </td>
-            	<td>lastnames</td>
-            	<td>text</td>
+            	<td>brand</td>
+            	<td>unknown</td>
                 <td><i>
 				
 
@@ -67840,8 +81938,8 @@ LEFT JOIN dem.org d_o
 				<td>
                 
                 </td>
-            	<td>dob</td>
-            	<td>date</td>
+            	<td>preparation</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -67856,7 +81954,7 @@ LEFT JOIN dem.org d_o
 				<td>
                 
                 </td>
-            	<td>gender</td>
+            	<td>substance</td>
             	<td>text</td>
                 <td><i>
 				
@@ -67872,8 +81970,8 @@ LEFT JOIN dem.org d_o
 				<td>
                 
                 </td>
-            	<td>postcode</td>
-            	<td>text</td>
+            	<td>amount</td>
+            	<td>numeric</td>
                 <td><i>
 				
 
@@ -67888,7 +81986,7 @@ LEFT JOIN dem.org d_o
 				<td>
                 
                 </td>
-            	<td>other_info</td>
+            	<td>unit</td>
             	<td>text</td>
                 <td><i>
 				
@@ -67904,7 +82002,7 @@ LEFT JOIN dem.org d_o
 				<td>
                 
                 </td>
-            	<td>request_id</td>
+            	<td>atc_substance</td>
             	<td>text</td>
                 <td><i>
 				
@@ -67920,8 +82018,8 @@ LEFT JOIN dem.org d_o
 				<td>
                 
                 </td>
-            	<td>requestor</td>
-            	<td>text</td>
+            	<td>atc_brand</td>
+            	<td>unknown</td>
                 <td><i>
 				
 
@@ -67936,8 +82034,8 @@ LEFT JOIN dem.org d_o
 				<td>
                 
                 </td>
-            	<td>external_data_id</td>
-            	<td>text</td>
+            	<td>external_code_brand</td>
+            	<td>unknown</td>
                 <td><i>
 				
 
@@ -67952,8 +82050,8 @@ LEFT JOIN dem.org d_o
 				<td>
                 
                 </td>
-            	<td>comment</td>
-            	<td>text</td>
+            	<td>external_code_type_brand</td>
+            	<td>unknown</td>
                 <td><i>
 				
 
@@ -67968,8 +82066,8 @@ LEFT JOIN dem.org d_o
 				<td>
                 
                 </td>
-            	<td>pk_identity_disambiguated</td>
-            	<td>integer</td>
+            	<td>started</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
@@ -67984,8 +82082,8 @@ LEFT JOIN dem.org d_o
 				<td>
                 
                 </td>
-            	<td>pk_provider_disambiguated</td>
-            	<td>integer</td>
+            	<td>comment_on_start</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -68000,8 +82098,8 @@ LEFT JOIN dem.org d_o
 				<td>
                 
                 </td>
-            	<td>data_type</td>
-            	<td>text</td>
+            	<td>start_is_unknown</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -68016,8 +82114,8 @@ LEFT JOIN dem.org d_o
 				<td>
                 
                 </td>
-            	<td>md5_sum</td>
-            	<td>text</td>
+            	<td>start_is_approximate</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -68032,8 +82130,8 @@ LEFT JOIN dem.org d_o
 				<td>
                 
                 </td>
-            	<td>data_size</td>
-            	<td>integer</td>
+            	<td>intake_is_approved_of</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -68048,8 +82146,8 @@ LEFT JOIN dem.org d_o
 				<td>
                 
                 </td>
-            	<td>xmin_incoming_data_unmatched</td>
-            	<td>xid</td>
+            	<td>harmful_use_type</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -68060,81 +82158,12 @@ LEFT JOIN dem.org d_o
 				</td>
 			 </tr>
             
-        </table>
-
-        <!-- Inherits -->
-		
-
-		
-
-        <!-- Constraint List -->
-		
-
-        <!-- Foreign Key Discovery -->
-		
-
-    <!-- Indexes -->
-    
-
-	<!-- View Definition -->
-	
-	<pre>
-SELECT c_idu.pk AS pk_incoming_data_unmatched
-, c_idu.fk_patient_candidates AS pk_patient_candidates
-, c_idu.firstnames
-, c_idu.lastnames
-, c_idu.dob
-, c_idu.gender
-, c_idu.postcode
-, c_idu.other_info
-, c_idu.request_id
-, c_idu.requestor
-, c_idu.external_data_id
-, c_idu.comment
-, c_idu.fk_identity_disambiguated AS pk_identity_disambiguated
-, c_idu.fk_provider_disambiguated AS pk_provider_disambiguated
-, c_idu.type AS data_type
-, md5
-(c_idu.data) AS md5_sum
-, octet_length
-(c_idu.data) AS data_size
-, c_idu.xmin AS xmin_incoming_data_unmatched 
-FROM clin.incoming_data_unmatched c_idu;</pre>
-	
-
-	<!-- List off permissions -->
-	
-
-	<p>
-		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
-    </p>
-	
-        <hr>
-		<h2>View:
-			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-indications4vaccine">v_indications4vaccine</a>
-		</h2>
-        
-         <p>Denormalizes indications per vaccine.</p>
-        
-
-
-        <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.v_indications4vaccine Structure</caption>
-                <tr>
-                <th>F-Key</th>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Description</th>
-                </tr>
-            
             <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>pk_vaccine</td>
-            	<td>integer</td>
+            	<td>last_checked_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
@@ -68149,7 +82178,7 @@ FROM clin.incoming_data_unmatched c_idu;</pre>
 				<td>
                 
                 </td>
-            	<td>vaccine</td>
+            	<td>schedule</td>
             	<td>text</td>
                 <td><i>
 				
@@ -68165,8 +82194,8 @@ FROM clin.incoming_data_unmatched c_idu;</pre>
 				<td>
                 
                 </td>
-            	<td>preparation</td>
-            	<td>text</td>
+            	<td>duration</td>
+            	<td>interval</td>
                 <td><i>
 				
 
@@ -68181,8 +82210,8 @@ FROM clin.incoming_data_unmatched c_idu;</pre>
 				<td>
                 
                 </td>
-            	<td>atc_code</td>
-            	<td>text</td>
+            	<td>discontinued</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
@@ -68197,8 +82226,8 @@ FROM clin.incoming_data_unmatched c_idu;</pre>
 				<td>
                 
                 </td>
-            	<td>is_fake_vaccine</td>
-            	<td>boolean</td>
+            	<td>discontinue_reason</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -68213,8 +82242,8 @@ FROM clin.incoming_data_unmatched c_idu;</pre>
 				<td>
                 
                 </td>
-            	<td>route_abbreviation</td>
-            	<td>text</td>
+            	<td>is_long_term</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -68229,7 +82258,7 @@ FROM clin.incoming_data_unmatched c_idu;</pre>
 				<td>
                 
                 </td>
-            	<td>route_description</td>
+            	<td>aim</td>
             	<td>text</td>
                 <td><i>
 				
@@ -68245,8 +82274,8 @@ FROM clin.incoming_data_unmatched c_idu;</pre>
 				<td>
                 
                 </td>
-            	<td>is_live</td>
-            	<td>boolean</td>
+            	<td>episode</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -68261,8 +82290,8 @@ FROM clin.incoming_data_unmatched c_idu;</pre>
 				<td>
                 
                 </td>
-            	<td>min_age</td>
-            	<td>interval</td>
+            	<td>health_issue</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -68277,8 +82306,8 @@ FROM clin.incoming_data_unmatched c_idu;</pre>
 				<td>
                 
                 </td>
-            	<td>max_age</td>
-            	<td>interval</td>
+            	<td>notes</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -68293,8 +82322,8 @@ FROM clin.incoming_data_unmatched c_idu;</pre>
 				<td>
                 
                 </td>
-            	<td>comment</td>
-            	<td>text</td>
+            	<td>fake_brand</td>
+            	<td>unknown</td>
                 <td><i>
 				
 
@@ -68309,8 +82338,8 @@ FROM clin.incoming_data_unmatched c_idu;</pre>
 				<td>
                 
                 </td>
-            	<td>indication</td>
-            	<td>text</td>
+            	<td>is_currently_active</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -68325,8 +82354,8 @@ FROM clin.incoming_data_unmatched c_idu;</pre>
 				<td>
                 
                 </td>
-            	<td>l10n_indication</td>
-            	<td>text</td>
+            	<td>seems_inactive</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -68341,8 +82370,8 @@ FROM clin.incoming_data_unmatched c_idu;</pre>
 				<td>
                 
                 </td>
-            	<td>atcs_single_indication</td>
-            	<td>text[]</td>
+            	<td>pk_brand</td>
+            	<td>unknown</td>
                 <td><i>
 				
 
@@ -68357,8 +82386,8 @@ FROM clin.incoming_data_unmatched c_idu;</pre>
 				<td>
                 
                 </td>
-            	<td>atcs_combi_indication</td>
-            	<td>text[]</td>
+            	<td>pk_data_source</td>
+            	<td>unknown</td>
                 <td><i>
 				
 
@@ -68373,8 +82402,8 @@ FROM clin.incoming_data_unmatched c_idu;</pre>
 				<td>
                 
                 </td>
-            	<td>external_code</td>
-            	<td>text</td>
+            	<td>pk_substance</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -68389,8 +82418,8 @@ FROM clin.incoming_data_unmatched c_idu;</pre>
 				<td>
                 
                 </td>
-            	<td>external_code_type</td>
-            	<td>text</td>
+            	<td>pk_drug_component</td>
+            	<td>unknown</td>
                 <td><i>
 				
 
@@ -68405,8 +82434,8 @@ FROM clin.incoming_data_unmatched c_idu;</pre>
 				<td>
                 
                 </td>
-            	<td>indications</td>
-            	<td>text[]</td>
+            	<td>pk_encounter</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -68421,8 +82450,8 @@ FROM clin.incoming_data_unmatched c_idu;</pre>
 				<td>
                 
                 </td>
-            	<td>l10n_indications</td>
-            	<td>text[]</td>
+            	<td>pk_episode</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -68437,8 +82466,8 @@ FROM clin.incoming_data_unmatched c_idu;</pre>
 				<td>
                 
                 </td>
-            	<td>pk_indications</td>
-            	<td>integer[]</td>
+            	<td>pk_health_issue</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -68453,8 +82482,8 @@ FROM clin.incoming_data_unmatched c_idu;</pre>
 				<td>
                 
                 </td>
-            	<td>pk_route</td>
-            	<td>integer</td>
+            	<td>modified_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
@@ -68469,8 +82498,8 @@ FROM clin.incoming_data_unmatched c_idu;</pre>
 				<td>
                 
                 </td>
-            	<td>pk_brand</td>
-            	<td>integer</td>
+            	<td>modified_by</td>
+            	<td>name</td>
                 <td><i>
 				
 
@@ -68485,7 +82514,7 @@ FROM clin.incoming_data_unmatched c_idu;</pre>
 				<td>
                 
                 </td>
-            	<td>pk_data_source</td>
+            	<td>row_version</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -68501,23 +82530,7 @@ FROM clin.incoming_data_unmatched c_idu;</pre>
 				<td>
                 
                 </td>
-            	<td>pk_indication</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>xmin_vaccine</td>
+            	<td>xmin_substance_intake</td>
             	<td>xid</td>
                 <td><i>
 				
@@ -68548,88 +82561,178 @@ FROM clin.incoming_data_unmatched c_idu;</pre>
 	<!-- View Definition -->
 	
 	<pre>
-SELECT cv.pk AS pk_vaccine
-, rbd.description AS vaccine
-, rbd.preparation
-, rbd.atc_code
-, rbd.is_fake AS is_fake_vaccine
-, cvr.abbreviation AS route_abbreviation
-, cvr.description AS route_description
-, cv.is_live
-, cv.min_age
-, cv.max_age
-, cv.comment
-, cvi.description AS indication
-, _
-(cvi.description) AS l10n_indication
-, cvi.atcs_single_indication
-, cvi.atcs_combi_indication
-, rbd.external_code
-, rbd.external_code_type
-, (
-SELECT array_agg
-     (cvi2.description) AS array_agg 
-  FROM (clin.lnk_vaccine2inds clv2i_2 
-        JOIN clin.vacc_indication cvi2 
-          ON (
-                 (clv2i_2.fk_indication = cvi2.id)
-           )
-     )
- WHERE (clv2i_2.fk_vaccine = cv.pk)
-) AS indications
-, (
-SELECT array_agg
-     (_
-           (cvi2.description)
-     ) AS array_agg 
-  FROM (clin.lnk_vaccine2inds clv2i_2 
-        JOIN clin.vacc_indication cvi2 
-          ON (
-                 (clv2i_2.fk_indication = cvi2.id)
-           )
-     )
- WHERE (clv2i_2.fk_vaccine = cv.pk)
-) AS l10n_indications
-, (
-SELECT array_agg
-     (clv2i_2.fk_indication) AS array_agg 
-  FROM (clin.lnk_vaccine2inds clv2i_2 
-        JOIN clin.vacc_indication cvi2 
-          ON (
-                 (clv2i_2.fk_indication = cvi2.id)
-           )
-     )
- WHERE (clv2i_2.fk_vaccine = cv.pk)
-) AS pk_indications
-, cv.id_route AS pk_route
-, cv.fk_brand AS pk_brand
-, rbd.fk_data_source AS pk_data_source
-, cvi.id AS pk_indication
-, cv.xmin AS xmin_vaccine 
+SELECT c_si.pk AS pk_substance_intake
+,
+    
+(
+SELECT encounter.fk_patient
+           
+  FROM clin.encounter
+          
+ WHERE (encounter.pk = c_si.fk_encounter)
+) AS pk_patient
+,
+    c_si.soap_cat
+,
+    NULL::unknown AS brand
+,
+    c_si.preparation
+,
+    r_cs.description AS substance
+,
+    r_cs.amount
+,
+    r_cs.unit
+,
+    r_cs.atc_code AS atc_substance
+,
+    NULL::unknown AS atc_brand
+,
+    NULL::unknown AS external_code_brand
+,
+    NULL::unknown AS external_code_type_brand
+,
+        CASE
+            WHEN 
+(c_si.comment_on_start = '?'::text) THEN NULL::timestamp with time zone
+            ELSE c_si.clin_when
+        END AS started
+,
+    c_si.comment_on_start
+,
+        CASE
+            WHEN 
+(c_si.comment_on_start = '?'::text) THEN true
+            ELSE false
+        END AS start_is_unknown
+,
+        CASE
+            WHEN 
+(c_si.comment_on_start IS NULL) THEN false
+            ELSE true
+        END AS start_is_approximate
+,
+    c_si.intake_is_approved_of
+,
+    c_si.harmful_use_type
+,
+        CASE
+            WHEN 
+(c_si.harmful_use_type IS NULL) THEN NULL::timestamp with time zone
+            ELSE c_enc.started
+        END AS last_checked_when
+,
+    c_si.schedule
+,
+    c_si.duration
+,
+    c_si.discontinued
+,
+    c_si.discontinue_reason
+,
+    c_si.is_long_term
+,
+    c_si.aim
+,
+    cep.description AS episode
+,
+    c_hi.description AS health_issue
+,
+    c_si.narrative AS notes
+,
+    NULL::unknown AS fake_brand
+,
+        CASE
+            WHEN 
+(c_si.discontinued IS NULL) THEN true
+            ELSE false
+        END AS is_currently_active
+,
+        CASE
+            WHEN 
+(c_si.discontinued IS NOT NULL) THEN true
+            WHEN 
+(c_si.clin_when IS NULL) THEN
+            CASE
+                WHEN 
+(c_si.is_long_term IS TRUE) THEN false
+                ELSE NULL::boolean
+            END
+            WHEN 
+(
+     (c_si.clin_when > now
+           ()
+     ) IS TRUE
+) THEN true
+            WHEN 
+(
+     (
+           (c_si.clin_when + c_si.duration) < now
+           ()
+     ) IS TRUE
+) THEN true
+            WHEN 
+(
+     (
+           (c_si.clin_when + c_si.duration) > now
+           ()
+     ) IS TRUE
+) THEN false
+            ELSE NULL::boolean
+        END AS seems_inactive
+,
+    NULL::unknown AS pk_brand
+,
+    NULL::unknown AS pk_data_source
+,
+    r_cs.pk AS pk_substance
+,
+    NULL::unknown AS pk_drug_component
+,
+    c_si.fk_encounter AS pk_encounter
+,
+    c_si.fk_episode AS pk_episode
+,
+    cep.fk_health_issue AS pk_health_issue
+,
+    c_si.modified_when
+,
+    c_si.modified_by
+,
+    c_si.row_version
+,
+    c_si.xmin AS xmin_substance_intake
+   
 FROM (
      (
            (
-                 (clin.vaccine cv 
-               LEFT JOIN clin.vacc_route cvr 
+                 (clin.substance_intake c_si
+     
+                    JOIN ref.consumable_substance r_cs 
                       ON (
-                             (cvr.id = cv.id_route)
+                             (c_si.fk_substance = r_cs.pk)
                        )
                  )
-              JOIN ref.branded_drug rbd 
+     
+         LEFT JOIN clin.episode cep 
                 ON (
-                       (rbd.pk = cv.fk_brand)
+                       (c_si.fk_episode = cep.pk)
                  )
            )
-        JOIN clin.lnk_vaccine2inds clv2i 
+     
+   LEFT JOIN clin.health_issue c_hi 
           ON (
-                 (clv2i.fk_vaccine = cv.pk)
+                 (c_hi.pk = cep.fk_health_issue)
            )
      )
-  JOIN clin.vacc_indication cvi 
+     
+LEFT JOIN clin.encounter c_enc 
     ON (
-           (cvi.id = clv2i.fk_indication)
+           (c_si.fk_encounter = c_enc.pk)
      )
-);</pre>
+)
+  
+WHERE (c_si.fk_drug_component IS NULL);</pre>
 	
 
 	<!-- List off permissions -->
@@ -68643,15 +82746,15 @@ FROM (
         <hr>
 		<h2>View:
 			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-linked-codes">v_linked_codes</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-pat-allergies">v_pat_allergies</a>
 		</h2>
         
-         <p>Denormalized codes linked to EMR structures.</p>
+         <p>denormalizes clin.allergy</p>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.v_linked_codes Structure</caption>
+                <caption>clin.v_pat_allergies Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -68663,8 +82766,104 @@ FROM (
 				<td>
                 
                 </td>
-            	<td>pk_item</td>
-            	<td>integer</td>
+            	<td>pk_allergy</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>pk_patient</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>soap_cat</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>descriptor</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>allergene</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>substance</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>substance_code</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -68679,8 +82878,8 @@ FROM (
 				<td>
                 
                 </td>
-            	<td>item_table</td>
-            	<td>regclass</td>
+            	<td>generics</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -68695,8 +82894,8 @@ FROM (
 				<td>
                 
                 </td>
-            	<td>code</td>
-            	<td>text</td>
+            	<td>generic_specific</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -68711,7 +82910,7 @@ FROM (
 				<td>
                 
                 </td>
-            	<td>base_code</td>
+            	<td>atc_code</td>
             	<td>text</td>
                 <td><i>
 				
@@ -68727,7 +82926,7 @@ FROM (
 				<td>
                 
                 </td>
-            	<td>code_modifier</td>
+            	<td>type</td>
             	<td>text</td>
                 <td><i>
 				
@@ -68743,7 +82942,7 @@ FROM (
 				<td>
                 
                 </td>
-            	<td>term</td>
+            	<td>l10n_type</td>
             	<td>text</td>
                 <td><i>
 				
@@ -68759,8 +82958,8 @@ FROM (
 				<td>
                 
                 </td>
-            	<td>name_long</td>
-            	<td>text</td>
+            	<td>definite</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -68775,7 +82974,7 @@ FROM (
 				<td>
                 
                 </td>
-            	<td>name_short</td>
+            	<td>reaction</td>
             	<td>text</td>
                 <td><i>
 				
@@ -68791,8 +82990,8 @@ FROM (
 				<td>
                 
                 </td>
-            	<td>version</td>
-            	<td>text</td>
+            	<td>pk_type</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -68807,8 +83006,8 @@ FROM (
 				<td>
                 
                 </td>
-            	<td>lang</td>
-            	<td>text</td>
+            	<td>pk_item</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -68823,8 +83022,8 @@ FROM (
 				<td>
                 
                 </td>
-            	<td>code_table</td>
-            	<td>regclass</td>
+            	<td>date</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
@@ -68839,7 +83038,7 @@ FROM (
 				<td>
                 
                 </td>
-            	<td>pk_generic_code</td>
+            	<td>pk_health_issue</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -68855,7 +83054,7 @@ FROM (
 				<td>
                 
                 </td>
-            	<td>pk_data_source</td>
+            	<td>pk_episode</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -68871,7 +83070,7 @@ FROM (
 				<td>
                 
                 </td>
-            	<td>pk_lnk_code2item</td>
+            	<td>pk_encounter</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -68883,6 +83082,54 @@ FROM (
 				</td>
 			 </tr>
             
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>modified_when</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>modified_by</td>
+            	<td>name</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>xmin_allergy</td>
+            	<td>xid</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
         </table>
 
         <!-- Inherits -->
@@ -68902,36 +83149,81 @@ FROM (
 	<!-- View Definition -->
 	
 	<pre>
-SELECT c_lc2ir.fk_item AS pk_item
-, (c_lc2ir.tableoid)::regclass AS item_table
-, (r_csr.code || COALESCE
-     (c_lc2ir.code_modifier
+SELECT a.pk AS pk_allergy
+,
+    
+(
+SELECT encounter.fk_patient
+           
+  FROM clin.encounter
+          
+ WHERE (encounter.pk = a.fk_encounter)
+) AS pk_patient
+,
+    a.soap_cat
+,
+        CASE
+            WHEN 
+(COALESCE
+     (btrim
+           (a.allergene)
            ,''::text
-     )
-) AS code
-, r_csr.code AS base_code
-, c_lc2ir.code_modifier
-, r_csr.term
-, r_ds.name_long
-, r_ds.name_short
-, r_ds.version
-, r_ds.lang
-, (r_csr.tableoid)::regclass AS code_table
-, r_csr.pk_coding_system AS pk_generic_code
-, r_csr.fk_data_source AS pk_data_source
-, c_lc2ir.pk_lnk_code2item 
-FROM (
-     (clin.lnk_code2item_root c_lc2ir 
-        JOIN ref.coding_system_root r_csr 
-          ON (
-                 (r_csr.pk_coding_system = c_lc2ir.fk_generic_code)
-           )
-     )
-  JOIN ref.data_source r_ds 
-    ON (
-           (r_ds.pk = r_csr.fk_data_source)
-     )
-);</pre>
+     ) = ''::text
+) THEN a.substance
+            ELSE a.allergene
+        END AS descriptor
+,
+    a.allergene
+,
+    a.substance
+,
+    a.substance_code
+,
+    a.generics
+,
+    a.generic_specific
+,
+    a.atc_code
+,
+    at.value AS type
+,
+    _
+(at.value) AS l10n_type
+,
+    a.definite
+,
+    a.narrative AS reaction
+,
+    a.fk_type AS pk_type
+,
+    a.pk_item
+,
+    a.clin_when AS date
+,
+    
+(
+SELECT episode.fk_health_issue
+           
+  FROM clin.episode
+          
+ WHERE (episode.pk = a.fk_episode)
+) AS pk_health_issue
+,
+    a.fk_episode AS pk_episode
+,
+    a.fk_encounter AS pk_encounter
+,
+    a.modified_when
+,
+    a.modified_by
+,
+    a.xmin AS xmin_allergy
+   
+FROM clin.allergy a
+,
+    clin._enum_allergy_type at
+  
+WHERE (at.pk = a.fk_type);</pre>
 	
 
 	<!-- List off permissions -->
@@ -68945,19 +83237,13 @@ FROM (
         <hr>
 		<h2>View:
 			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-most-recent-encounters">v_most_recent_encounters</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-pat-allergies-journal">v_pat_allergies_journal</a>
 		</h2>
         
-         <p>Lists the most recent encounters per patient. Logic of "most recent" 
-	is: for a patient: 
-	 1) select encounters with latest "last_affirmed",
-	 2) from those select encounters with latest "started"
-	 3) limit those to 1 if there are duplicates (same start and end of encounter!)</p>
-        
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.v_most_recent_encounters Structure</caption>
+                <caption>clin.v_pat_allergies_journal Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -68969,7 +83255,7 @@ FROM (
 				<td>
                 
                 </td>
-            	<td>pk_encounter</td>
+            	<td>pk_patient</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -68985,8 +83271,8 @@ FROM (
 				<td>
                 
                 </td>
-            	<td>pk_patient</td>
-            	<td>integer</td>
+            	<td>modified_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
@@ -69001,8 +83287,8 @@ FROM (
 				<td>
                 
                 </td>
-            	<td>reason_for_encounter</td>
-            	<td>text</td>
+            	<td>clin_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
@@ -69017,7 +83303,7 @@ FROM (
 				<td>
                 
                 </td>
-            	<td>assessment_of_encounter</td>
+            	<td>modified_by</td>
             	<td>text</td>
                 <td><i>
 				
@@ -69033,7 +83319,7 @@ FROM (
 				<td>
                 
                 </td>
-            	<td>type</td>
+            	<td>soap_cat</td>
             	<td>text</td>
                 <td><i>
 				
@@ -69049,7 +83335,7 @@ FROM (
 				<td>
                 
                 </td>
-            	<td>l10n_type</td>
+            	<td>narrative</td>
             	<td>text</td>
                 <td><i>
 				
@@ -69065,8 +83351,8 @@ FROM (
 				<td>
                 
                 </td>
-            	<td>started</td>
-            	<td>timestamp with time zone</td>
+            	<td>pk_encounter</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -69081,8 +83367,8 @@ FROM (
 				<td>
                 
                 </td>
-            	<td>last_affirmed</td>
-            	<td>timestamp with time zone</td>
+            	<td>pk_episode</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -69097,7 +83383,7 @@ FROM (
 				<td>
                 
                 </td>
-            	<td>pk_type</td>
+            	<td>pk_health_issue</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -69113,7 +83399,7 @@ FROM (
 				<td>
                 
                 </td>
-            	<td>pk_location</td>
+            	<td>src_pk</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -69125,91 +83411,44 @@ FROM (
 				</td>
 			 </tr>
             
-        </table>
-
-        <!-- Inherits -->
-		
-
-		
-
-        <!-- Constraint List -->
-		
-
-        <!-- Foreign Key Discovery -->
-		
-
-    <!-- Indexes -->
-    
-
-	<!-- View Definition -->
-	
-	<pre>
-SELECT ce1.pk AS pk_encounter
-, ce1.fk_patient AS pk_patient
-, ce1.reason_for_encounter
-, ce1.assessment_of_encounter
-, et.description AS type
-, _
-(et.description) AS l10n_type
-, ce1.started
-, ce1.last_affirmed
-, ce1.fk_type AS pk_type
-, ce1.fk_location AS pk_location 
-FROM clin.encounter ce1
-, clin.encounter_type et 
-WHERE (
-     (ce1.fk_type = et.pk)
-   AND (ce1.started = 
-           (
-            SELECT max
-                 (ce2.started) AS max 
-              FROM clin.encounter ce2 
-             WHERE (ce2.last_affirmed = 
-                       (
-                        SELECT max
-                             (ce3.last_affirmed) AS max 
-                          FROM clin.encounter ce3 
-                         WHERE (ce3.fk_patient = ce1.fk_patient)
-                       )
-                 ) LIMIT 1
-           )
-     )
-);</pre>
-	
-
-	<!-- List off permissions -->
-	
-
-	<p>
-		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
-    </p>
-	
-        <hr>
-		<h2>View:
-			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-narrative">v_narrative</a>
-		</h2>
-        
-         <p>patient narrative with denormalized context added</p>
-        
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>src_table</td>
+            	<td>text</td>
+                <td><i>
+				
 
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>row_version</td>
+            	<td>integer</td>
+                <td><i>
+				
 
-        <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.v_narrative Structure</caption>
-                <tr>
-                <th>F-Key</th>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Description</th>
-                </tr>
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
             
             <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>pk_patient</td>
-            	<td>integer</td>
+            	<td>health_issue</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -69224,8 +83463,8 @@ WHERE (
 				<td>
                 
                 </td>
-            	<td>date</td>
-            	<td>timestamp with time zone</td>
+            	<td>issue_laterality</td>
+            	<td>character varying(2)</td>
                 <td><i>
 				
 
@@ -69240,8 +83479,8 @@ WHERE (
 				<td>
                 
                 </td>
-            	<td>modified_by</td>
-            	<td>text</td>
+            	<td>issue_active</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -69256,8 +83495,8 @@ WHERE (
 				<td>
                 
                 </td>
-            	<td>soap_cat</td>
-            	<td>text</td>
+            	<td>issue_clinically_relevant</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -69272,8 +83511,8 @@ WHERE (
 				<td>
                 
                 </td>
-            	<td>narrative</td>
-            	<td>text</td>
+            	<td>issue_confidential</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -69304,8 +83543,8 @@ WHERE (
 				<td>
                 
                 </td>
-            	<td>health_issue</td>
-            	<td>text</td>
+            	<td>episode_open</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -69320,8 +83559,8 @@ WHERE (
 				<td>
                 
                 </td>
-            	<td>pk_item</td>
-            	<td>integer</td>
+            	<td>encounter_started</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
@@ -69336,8 +83575,8 @@ WHERE (
 				<td>
                 
                 </td>
-            	<td>pk_narrative</td>
-            	<td>integer</td>
+            	<td>encounter_last_affirmed</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
@@ -69352,8 +83591,8 @@ WHERE (
 				<td>
                 
                 </td>
-            	<td>pk_health_issue</td>
-            	<td>integer</td>
+            	<td>encounter_type</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -69368,7 +83607,227 @@ WHERE (
 				<td>
                 
                 </td>
-            	<td>pk_episode</td>
+            	<td>encounter_l10n_type</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+        </table>
+
+        <!-- Inherits -->
+		
+
+		
+
+        <!-- Constraint List -->
+		
+
+        <!-- Foreign Key Discovery -->
+		
+
+    <!-- Indexes -->
+    
+
+	<!-- View Definition -->
+	
+	<pre>
+SELECT c_enc.fk_patient AS pk_patient
+,
+    c_all.modified_when
+,
+    c_all.clin_when
+,
+    COALESCE
+(
+     (
+      SELECT staff.short_alias
+           
+        FROM dem.staff
+          
+       WHERE (staff.db_user = c_all.modified_by)
+     )
+     , (
+           ('<'::text || 
+                 (c_all.modified_by)::text
+           ) || '>'::text
+     )
+) AS modified_by
+,
+    c_all.soap_cat
+,
+    
+(
+     (
+           (
+                 (
+                       (
+                             (
+                                   (
+                                         (
+                                               (
+                                                     (
+                                                           (
+                                                                 (_
+                                                                       ('Allergy'::text) || 
+                                                                    ' ('::text) || _
+                                                                       (c_at.value)
+                                                                 ) || 
+                                                       '): '::text
+                                                     ) || COALESCE
+                                                     (c_all.narrative
+                                                           ,''::text
+                                                     )
+                                               ) || '
+'::text
+                                         ) || _
+                                         ('substance'::text)
+                                   ) || ': '::text
+                             ) || c_all.substance
+                       ) || '; '::text
+                 ) || COALESCE
+                 (
+                       (
+                             (
+                                   (_
+                                         ('allergene'::text) || ': '::text
+                                   ) || c_all.allergene
+                             ) || '; '::text
+                       )
+                       ,''::text
+                 )
+           ) || COALESCE
+           (
+                 (
+                       (
+                             (_
+                                   ('generic'::text) || ': '::text
+                             ) || c_all.generics
+                       ) || '; '::text
+                 )
+                 ,''::text
+           )
+     ) || COALESCE
+     (
+           (
+                 (
+                       (_
+                             ('ATC code'::text) || ': '::text
+                       ) || c_all.atc_code
+                 ) || '; '::text
+           )
+           ,''::text
+     )
+) AS narrative
+,
+    c_all.fk_encounter AS pk_encounter
+,
+    c_all.fk_episode AS pk_episode
+,
+    c_epi.fk_health_issue AS pk_health_issue
+,
+    c_all.pk AS src_pk
+,
+    'clin.allergy'::text AS src_table
+,
+    c_all.row_version
+,
+    c_hi.description AS health_issue
+,
+    c_hi.laterality AS issue_laterality
+,
+    c_hi.is_active AS issue_active
+,
+    c_hi.clinically_relevant AS issue_clinically_relevant
+,
+    c_hi.is_confidential AS issue_confidential
+,
+    c_epi.description AS episode
+,
+    c_epi.is_open AS episode_open
+,
+    c_enc.started AS encounter_started
+,
+    c_enc.last_affirmed AS encounter_last_affirmed
+,
+    c_ety.description AS encounter_type
+,
+    _
+(c_ety.description) AS encounter_l10n_type
+   
+FROM (
+     (
+           (
+                 (
+                       (clin.allergy c_all
+     
+                          JOIN clin._enum_allergy_type c_at 
+                            ON (
+                                   (c_all.fk_type = c_at.pk)
+                             )
+                       )
+     
+                    JOIN clin.encounter c_enc 
+                      ON (
+                             (c_all.fk_encounter = c_enc.pk)
+                       )
+                 )
+     
+              JOIN clin.encounter_type c_ety 
+                ON (
+                       (c_enc.fk_type = c_ety.pk)
+                 )
+           )
+     
+        JOIN clin.episode c_epi 
+          ON (
+                 (c_all.fk_episode = c_epi.pk)
+           )
+     )
+     
+LEFT JOIN clin.health_issue c_hi 
+    ON (
+           (c_epi.fk_health_issue = c_hi.pk)
+     )
+);</pre>
+	
+
+	<!-- List off permissions -->
+	
+
+	<p>
+		<a href="gnumed-entire_schema.html#index">Index</a> -
+		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
+    </p>
+	
+        <hr>
+		<h2>View:
+			
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-pat-allergy-state">v_pat_allergy_state</a>
+		</h2>
+        
+
+
+        <table width="100%" cellspacing="0" cellpadding="3">
+                <caption>clin.v_pat_allergy_state Structure</caption>
+                <tr>
+                <th>F-Key</th>
+                <th>Name</th>
+                <th>Type</th>
+                <th>Description</th>
+                </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_patient</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -69384,8 +83843,8 @@ WHERE (
 				<td>
                 
                 </td>
-            	<td>pk_encounter</td>
-            	<td>integer</td>
+            	<td>modified_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
@@ -69400,8 +83859,8 @@ WHERE (
 				<td>
                 
                 </td>
-            	<td>xmin_clin_narrative</td>
-            	<td>xid</td>
+            	<td>modified_by</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -69416,7 +83875,7 @@ WHERE (
 				<td>
                 
                 </td>
-            	<td>modified_when</td>
+            	<td>last_confirmed</td>
             	<td>timestamp with time zone</td>
                 <td><i>
 				
@@ -69432,7 +83891,7 @@ WHERE (
 				<td>
                 
                 </td>
-            	<td>row_version</td>
+            	<td>has_allergy</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -69448,8 +83907,8 @@ WHERE (
 				<td>
                 
                 </td>
-            	<td>pk_audit</td>
-            	<td>integer</td>
+            	<td>comment</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -69464,8 +83923,8 @@ WHERE (
 				<td>
                 
                 </td>
-            	<td>modified_by_raw</td>
-            	<td>name</td>
+            	<td>pk_encounter</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -69480,8 +83939,24 @@ WHERE (
 				<td>
                 
                 </td>
-            	<td>pk_generic_codes</td>
-            	<td>integer[]</td>
+            	<td>pk_allergy_state</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>xmin_allergy_state</td>
+            	<td>xid</td>
                 <td><i>
 				
 
@@ -69511,63 +83986,45 @@ WHERE (
 	<!-- View Definition -->
 	
 	<pre>
-SELECT c_enc.fk_patient AS pk_patient
-, c_n.clin_when AS date
-, COALESCE
-(
-     (
-      SELECT staff.short_alias 
-        FROM dem.staff 
-       WHERE (staff.db_user = c_n.modified_by)
-     )
-     , (
-           ('<'::text || 
-                 (c_n.modified_by)::text
-           ) || '>'::text
-     )
-) AS modified_by
-, c_n.soap_cat
-, c_n.narrative
-, c_epi.description AS episode
-, c_hi.description AS health_issue
-, c_n.pk_item
-, c_n.pk AS pk_narrative
-, c_epi.fk_health_issue AS pk_health_issue
-, c_n.fk_episode AS pk_episode
-, c_n.fk_encounter AS pk_encounter
-, c_n.xmin AS xmin_clin_narrative
-, c_n.modified_when
-, c_n.row_version
-, c_n.pk_audit
-, c_n.modified_by AS modified_by_raw
-, COALESCE
-(
-     (
-      SELECT array_agg
-           (c_lc2n.fk_generic_code) AS array_agg 
-        FROM clin.lnk_code2narrative c_lc2n 
-       WHERE (c_lc2n.fk_item = c_n.pk)
-     )
-     , ARRAY[]::integer[]
-) AS pk_generic_codes 
-FROM (
-     (
-           (clin.clin_narrative c_n 
-         LEFT JOIN clin.encounter c_enc 
-                ON (
-                       (c_n.fk_encounter = c_enc.pk)
-                 )
-           )
-   LEFT JOIN clin.episode c_epi 
-          ON (
-                 (c_n.fk_episode = c_epi.pk)
-           )
+SELECT (
+SELECT encounter.fk_patient
+           
+  FROM clin.encounter
+          
+ WHERE (encounter.pk = a.fk_encounter)
+) AS pk_patient
+,
+    a.modified_when
+,
+    COALESCE
+(
+     (
+      SELECT staff.short_alias
+           
+        FROM dem.staff
+          
+       WHERE (staff.db_user = a.modified_by)
      )
-LEFT JOIN clin.health_issue c_hi 
-    ON (
-           (c_epi.fk_health_issue = c_hi.pk)
+     , (
+           ('<'::text || 
+                 (a.modified_by)::text
+           ) || '>'::text
      )
-);</pre>
+) AS modified_by
+,
+    a.last_confirmed
+,
+    a.has_allergy
+,
+    a.comment
+,
+    a.fk_encounter AS pk_encounter
+,
+    a.pk AS pk_allergy_state
+,
+    a.xmin AS xmin_allergy_state
+   
+FROM clin.allergy_state a;</pre>
 	
 
 	<!-- List off permissions -->
@@ -69581,17 +84038,13 @@ LEFT JOIN clin.health_issue c_hi
         <hr>
 		<h2>View:
 			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-narrative4search">v_narrative4search</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-pat-allergy-state-journal">v_pat_allergy_state_journal</a>
 		</h2>
         
-         <p>unformatted *complete* narrative for patients
-	 including health issue/episode/encounter descriptions,
-	 mainly for searching the narrative in context</p>
-        
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.v_narrative4search Structure</caption>
+                <caption>clin.v_pat_allergy_state_journal Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -69619,7 +84072,39 @@ LEFT JOIN clin.health_issue c_hi
 				<td>
                 
                 </td>
-            	<td>soap_cat</td>
+            	<td>modified_when</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>clin_when</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>modified_by</td>
             	<td>text</td>
                 <td><i>
 				
@@ -69635,7 +84120,7 @@ LEFT JOIN clin.health_issue c_hi
 				<td>
                 
                 </td>
-            	<td>narrative</td>
+            	<td>soap_cat</td>
             	<td>text</td>
                 <td><i>
 				
@@ -69651,6 +84136,22 @@ LEFT JOIN clin.health_issue c_hi
 				<td>
                 
                 </td>
+            	<td>narrative</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
             	<td>pk_encounter</td>
             	<td>integer</td>
                 <td><i>
@@ -69663,7 +84164,7 @@ LEFT JOIN clin.health_issue c_hi
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
@@ -69679,7 +84180,7 @@ LEFT JOIN clin.health_issue c_hi
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                 </td>
@@ -69695,7 +84196,7 @@ LEFT JOIN clin.health_issue c_hi
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
@@ -69711,7 +84212,7 @@ LEFT JOIN clin.health_issue c_hi
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                 </td>
@@ -69727,551 +84228,28 @@ LEFT JOIN clin.health_issue c_hi
 				</td>
 			 </tr>
             
-        </table>
-
-        <!-- Inherits -->
-		
-
-		
-
-        <!-- Constraint List -->
-		
-
-        <!-- Foreign Key Discovery -->
-		
-
-    <!-- Indexes -->
-    
-
-	<!-- View Definition -->
-	
-	<pre>
-SELECT union_table.pk_patient
-, union_table.soap_cat
-, union_table.narrative
-, union_table.pk_encounter
-, union_table.pk_episode
-, union_table.pk_health_issue
-, union_table.src_pk
-, union_table.src_table 
-FROM (
-     (
-           (
-                 (
-                       (
-                             (
-                                   (
-                                         (
-                                               (
-                                                     (
-                                                           (
-                                                                 (
-                                                                       (
-                                                                             (
-                                                                                   (
-                                                                                         (
-                                                                                               (
-                                                                                                     (
-                                                                                                      SELECT vpi.pk_patient
-                                                                                                           , vpi.soap_cat
-                                                                                                           , vpi.narrative
-                                                                                                           , vpi.pk_encounter
-                                                                                                           , vpi.pk_episode
-                                                                                                           , vpi.pk_health_issue
-                                                                                                           , vpi.pk_item AS src_pk
-                                                                                                           , vpi.src_table 
-                                                                                                        FROM clin.v_pat_items vpi 
-                                                                                                       WHERE (vpi.src_table <> ALL 
-                                                                                                                 (ARRAY['clin.allergy'::text
-                                                                                                                       ,'clin.test_result'::text
-                                                                                                                       ,'clin.procedure'::text
-                                                                                                                       ,'clin.substance_intake'::text
-                                                                                                                       ,'clin.family_history'::text]
-                                                                                                                 )
-                                                                                                           )
-                                                                                                   UNION ALLSELECT (
-                                                                                                            SELECT encounter.fk_patient 
-                                                                                                              FROM clin.encounter 
-                                                                                                             WHERE (encounter.pk = csi.fk_encounter)
-                                                                                                           ) AS pk_patient
-                                                                                                           , csi.soap_cat
-                                                                                                           , (
-                                                                                                                 (
-                                                                                                                       (COALESCE
-                                                                                                                             (csi.narrative
-                                                                                                                                   ,''::text
-                                                                                                                             ) || COALESCE
-                                                                                                                             (
-                                                                                                                                   (' '::text || csi.schedule)
-                                                                                                                                   ,''::text
-                                                                                                                             )
-                                                                                                                       ) || COALESCE
-                                                                                                                       (
-                                                                                                                             (' '::text || csi.aim)
-                                                                                                                             ,''::text
-                                                                                                                       )
-                                                                                                                 ) || COALESCE
-                                                                                                                 (
-                                                                                                                       (' '::text || csi.discontinue_reason)
-                                                                                                                       ,''::text
-                                                                                                                 )
-                                                                                                           ) AS narrative
-                                                                                                           , csi.fk_encounter AS pk_encounter
-                                                                                                           , csi.fk_episode AS pk_episode
-                                                                                                           , (
-                                                                                                            SELECT episode.fk_health_issue 
-                                                                                                              FROM clin.episode 
-                                                                                                             WHERE (episode.pk = csi.fk_episode)
-                                                                                                           ) AS pk_health_issue
-                                                                                                           , csi.pk AS src_pk
-                                                                                                           ,'clin.substance_intake'::text AS src_table 
-                                                                                                        FROM clin.substance_intake csi
-                                                                                                     )
-                                                                                             UNION ALLSELECT (
-                                                                                                      SELECT encounter.fk_patient 
-                                                                                                        FROM clin.encounter 
-                                                                                                       WHERE (encounter.pk = cpr.fk_encounter)
-                                                                                                     ) AS pk_patient
-                                                                                                     , cpr.soap_cat
-                                                                                                     , cpr.narrative
-                                                                                                     , cpr.fk_encounter AS pk_encounter
-                                                                                                     , cpr.fk_episode AS pk_episode
-                                                                                                     , (
-                                                                                                      SELECT episode.fk_health_issue 
-                                                                                                        FROM clin.episode 
-                                                                                                       WHERE (episode.pk = cpr.fk_episode)
-                                                                                                     ) AS pk_health_issue
-                                                                                                     , cpr.pk AS src_pk
-                                                                                                     ,'clin.procedure'::text AS src_table 
-                                                                                                  FROM clin.procedure cpr 
-                                                                                                 WHERE (cpr.narrative IS NOT NULL)
-                                                                                               )
-                                                                                       UNION ALLSELECT (
-                                                                                                SELECT encounter.fk_patient 
-                                                                                                  FROM clin.encounter 
-                                                                                                 WHERE (encounter.pk = ctr.fk_encounter)
-                                                                                               ) AS pk_patient
-                                                                                               , ctr.soap_cat
-                                                                                               , (
-                                                                                                     (
-                                                                                                           (
-                                                                                                                 (
-                                                                                                                       (
-                                                                                                                             (
-                                                                                                                                   (
-                                                                                                                                         (COALESCE
-                                                                                                                                               (ctr.narrative
-                                                                                                                                                     ,''::text
-                                                                                                                                               ) || COALESCE
-                                                                                                                                               (
-                                                                                                                                                     (' '::text || ctr.val_alpha)
-                                                                                                                                                     ,''::text
-                                                                                                                                               )
-                                                                                                                                         ) || COALESCE
-                                                                                                                                         (
-                                                                                                                                               (' '::text || ctr.val_unit)
-                                                                                                                                               ,''::text
-                                                                                                                                         )
-                                                                                                                                   ) || COALESCE
-                                                                                                                                   (
-                                                                                                                                         (' '::text || ctr.val_normal_range)
-                                                                                                                                         ,''::text
-                                                                                                                                   )
-                                                                                                                             ) || COALESCE
-                                                                                                                             (
-                                                                                                                                   (' '::text || ctr.val_target_range)
-                                                                                                                                   ,''::text
-                                                                                                                             )
-                                                                                                                       ) || COALESCE
-                                                                                                                       (
-                                                                                                                             (' '::text || ctr.norm_ref_group)
-                                                                                                                             ,''::text
-                                                                                                                       )
-                                                                                                                 ) || COALESCE
-                                                                                                                 (
-                                                                                                                       (' '::text || ctr.note_test_org)
-                                                                                                                       ,''::text
-                                                                                                                 )
-                                                                                                           ) || COALESCE
-                                                                                                           (
-                                                                                                                 (' '::text || ctr.material)
-                                                                                                                 ,''::text
-                                                                                                           )
-                                                                                                     ) || COALESCE
-                                                                                                     (
-                                                                                                           (' '::text || ctr.material_detail)
-                                                                                                           ,''::text
-                                                                                                     )
-                                                                                               ) AS narrative
-                                                                                               , ctr.fk_encounter AS pk_encounter
-                                                                                               , ctr.fk_episode AS pk_episode
-                                                                                               , (
-                                                                                                SELECT episode.fk_health_issue 
-                                                                                                  FROM clin.episode 
-                                                                                                 WHERE (episode.pk = ctr.fk_episode)
-                                                                                               ) AS pk_health_issue
-                                                                                               , ctr.pk AS src_pk
-                                                                                               ,'clin.test_result'::text AS src_table 
-                                                                                            FROM clin.test_result ctr
-                                                                                         )
-                                                                                 UNION ALLSELECT (
-                                                                                          SELECT encounter.fk_patient 
-                                                                                            FROM clin.encounter 
-                                                                                           WHERE (encounter.pk = 
-                                                                                                     (
-                                                                                                      SELECT test_result.fk_encounter 
-                                                                                                        FROM clin.test_result 
-                                                                                                       WHERE (test_result.pk = crtr.fk_reviewed_row)
-                                                                                                     )
-                                                                                               )
-                                                                                         ) AS pk_patient
-                                                                                         ,'o'::text AS soap_cat
-                                                                                         , crtr.comment AS narrative
-                                                                                         , (
-                                                                                          SELECT test_result.fk_encounter 
-                                                                                            FROM clin.test_result 
-                                                                                           WHERE (test_result.pk = crtr.fk_reviewed_row)
-                                                                                         ) AS pk_encounter
-                                                                                         , (
-                                                                                          SELECT test_result.fk_episode 
-                                                                                            FROM clin.test_result 
-                                                                                           WHERE (test_result.pk = crtr.fk_reviewed_row)
-                                                                                         ) AS pk_episode
-                                                                                         , (
-                                                                                          SELECT episode.fk_health_issue 
-                                                                                            FROM clin.episode 
-                                                                                           WHERE (episode.pk = 
-                                                                                                     (
-                                                                                                      SELECT test_result.fk_episode 
-                                                                                                        FROM clin.test_result 
-                                                                                                       WHERE (test_result.pk = crtr.fk_reviewed_row)
-                                                                                                     )
-                                                                                               )
-                                                                                         ) AS pk_health_issue
-                                                                                         , crtr.pk AS src_pk
-                                                                                         ,'clin.reviewed_test_results'::text AS src_table 
-                                                                                      FROM clin.reviewed_test_results crtr
-                                                                                   )
-                                                                           UNION ALLSELECT (
-                                                                                    SELECT encounter.fk_patient 
-                                                                                      FROM clin.encounter 
-                                                                                     WHERE (encounter.pk = cas.fk_encounter)
-                                                                                   ) AS pk_patient
-                                                                                   ,'o'::text AS soap_cat
-                                                                                   , cas.comment AS narrative
-                                                                                   , cas.fk_encounter AS pk_encounter
-                                                                                   , NULL::integer AS pk_episode
-                                                                                   , NULL::integer AS pk_health_issue
-                                                                                   , cas.pk AS src_pk
-                                                                                   ,'clin.allergy_state'::text AS src_table 
-                                                                                FROM clin.allergy_state cas 
-                                                                               WHERE (cas.comment IS NOT NULL)
-                                                                             )
-                                                                     UNION ALLSELECT (
-                                                                              SELECT encounter.fk_patient 
-                                                                                FROM clin.encounter 
-                                                                               WHERE (encounter.pk = ca.fk_encounter)
-                                                                             ) AS pk_patient
-                                                                             , ca.soap_cat
-                                                                             , (
-                                                                                   (
-                                                                                         (
-                                                                                               (
-                                                                                                     (COALESCE
-                                                                                                           (ca.narrative
-                                                                                                                 ,''::text
-                                                                                                           ) || COALESCE
-                                                                                                           (
-                                                                                                                 (' '::text || ca.substance)
-                                                                                                                 ,''::text
-                                                                                                           )
-                                                                                                     ) || COALESCE
-                                                                                                     (
-                                                                                                           (' '::text || ca.substance_code)
-                                                                                                           ,''::text
-                                                                                                     )
-                                                                                               ) || COALESCE
-                                                                                               (
-                                                                                                     (' '::text || ca.generics)
-                                                                                                     ,''::text
-                                                                                               )
-                                                                                         ) || COALESCE
-                                                                                         (
-                                                                                               (' '::text || ca.allergene)
-                                                                                               ,''::text
-                                                                                         )
-                                                                                   ) || COALESCE
-                                                                                   (
-                                                                                         (' '::text || ca.atc_code)
-                                                                                         ,''::text
-                                                                                   )
-                                                                             ) AS narrative
-                                                                             , ca.fk_encounter AS pk_encounter
-                                                                             , ca.fk_episode AS pk_episode
-                                                                             , (
-                                                                              SELECT episode.fk_health_issue 
-                                                                                FROM clin.episode 
-                                                                               WHERE (episode.pk = ca.fk_episode)
-                                                                             ) AS pk_health_issue
-                                                                             , ca.pk AS src_pk
-                                                                             ,'clin.allergy'::text AS src_table 
-                                                                          FROM clin.allergy ca
-                                                                       )
-                                                               UNION ALLSELECT (
-                                                                        SELECT encounter.fk_patient 
-                                                                          FROM clin.encounter 
-                                                                         WHERE (encounter.pk = chi.fk_encounter)
-                                                                       ) AS pk_patient
-                                                                       ,'a'::text AS soap_cat
-                                                                       , (chi.description || COALESCE
-                                                                             (
-                                                                                   (' '::text || chi.summary)
-                                                                                   ,''::text
-                                                                             )
-                                                                       ) AS narrative
-                                                                       , chi.fk_encounter AS pk_encounter
-                                                                       , NULL::integer AS pk_episode
-                                                                       , chi.pk AS pk_health_issue
-                                                                       , chi.pk AS src_pk
-                                                                       ,'clin.health_issue'::text AS src_table 
-                                                                    FROM clin.health_issue chi
-                                                                 )
-                                                         UNION ALLSELECT cenc.fk_patient AS pk_patient
-                                                                 ,'s'::text AS soap_cat
-                                                                 , (COALESCE
-                                                                       (cenc.reason_for_encounter
-                                                                             ,''::text
-                                                                       ) || COALESCE
-                                                                       (
-                                                                             (' '::text || cenc.assessment_of_encounter)
-                                                                             ,''::text
-                                                                       )
-                                                                 ) AS narrative
-                                                                 , cenc.pk AS pk_encounter
-                                                                 , NULL::integer AS pk_episode
-                                                                 , NULL::integer AS pk_health_issue
-                                                                 , cenc.pk AS src_pk
-                                                                 ,'clin.encounter'::text AS src_table 
-                                                              FROM clin.encounter cenc
-                                                           )
-                                                   UNION ALLSELECT (
-                                                            SELECT encounter.fk_patient 
-                                                              FROM clin.encounter 
-                                                             WHERE (encounter.pk = cep.fk_encounter)
-                                                           ) AS pk_patient
-                                                           ,'s'::text AS soap_cat
-                                                           , (cep.description || COALESCE
-                                                                 (
-                                                                       (' '::text || cep.summary)
-                                                                       ,''::text
-                                                                 )
-                                                           ) AS narrative
-                                                           , cep.fk_encounter AS pk_encounter
-                                                           , cep.pk AS pk_episode
-                                                           , cep.fk_health_issue AS pk_health_issue
-                                                           , cep.pk AS src_pk
-                                                           ,'clin.episode'::text AS src_table 
-                                                        FROM clin.episode cep
-                                                     )
-                                             UNION ALLSELECT c_vfhx.pk_patient
-                                                     , c_vfhx.soap_cat
-                                                     , (
-                                                           (
-                                                                 (
-                                                                       (
-                                                                             (
-                                                                                   (c_vfhx.relation || ' / '::text) || c_vfhx.l10n_relation
-                                                                             ) || ' '::text
-                                                                       ) || c_vfhx.name_relative
-                                                                 ) || ': '::text
-                                                           ) || c_vfhx.condition
-                                                     ) AS narrative
-                                                     , c_vfhx.pk_encounter
-                                                     , c_vfhx.pk_episode
-                                                     , c_vfhx.pk_health_issue
-                                                     , c_vfhx.pk_family_history AS src_pk
-                                                     ,'clin.family_history'::text AS src_table 
-                                                  FROM clin.v_family_history c_vfhx
-                                               )
-                                       UNION ALLSELECT vdm.pk_patient
-                                               ,'o'::text AS soap_cat
-                                               , (
-                                                     (
-                                                           (
-                                                                 (vdm.l10n_type || ' '::text) || COALESCE
-                                                                 (vdm.ext_ref
-                                                                       ,''::text
-                                                                 )
-                                                           ) || ' '::text
-                                                     ) || COALESCE
-                                                     (vdm.comment
-                                                           ,''::text
-                                                     )
-                                               ) AS narrative
-                                               , vdm.pk_encounter
-                                               , vdm.pk_episode
-                                               , vdm.pk_health_issue
-                                               , vdm.pk_doc AS src_pk
-                                               ,'blobs.doc_med'::text AS src_table 
-                                            FROM blobs.v_doc_med vdm
-                                         )
-                                 UNION ALLSELECT vo4d.pk_patient
-                                         ,'o'::text AS soap_cat
-                                         , vo4d.obj_comment AS narrative
-                                         , vo4d.pk_encounter
-                                         , vo4d.pk_episode
-                                         , vo4d.pk_health_issue
-                                         , vo4d.pk_obj AS src_pk
-                                         ,'blobs.doc_obj'::text AS src_table 
-                                      FROM blobs.v_obj4doc_no_data vo4d
-                                   )
-                           UNION ALLSELECT vdd.pk_patient
-                                   ,'o'::text AS soap_cat
-                                   , vdd.description AS narrative
-                                   , vdd.pk_encounter
-                                   , vdd.pk_episode
-                                   , vdd.pk_health_issue
-                                   , vdd.pk_doc_desc AS src_pk
-                                   ,'blobs.doc_desc'::text AS src_table 
-                                FROM blobs.v_doc_desc vdd
-                             )
-                     UNION ALLSELECT vrdo.pk_patient
-                             ,'s'::text AS soap_cat
-                             , vrdo.comment AS narrative
-                             , NULL::integer AS pk_encounter
-                             , vrdo.pk_episode
-                             , vrdo.pk_health_issue
-                             , vrdo.pk_review_root AS src_pk
-                             ,'blobs.v_reviewed_doc_objects'::text AS src_table 
-                          FROM blobs.v_reviewed_doc_objects vrdo
-                       )
-               UNION ALLSELECT d_vit.pk_identity AS pk_patient
-                       ,'s'::text AS soap_cat
-                       , (d_vit.l10n_description || COALESCE
-                             (
-                                   (' '::text || d_vit.comment)
-                                   ,''::text
-                             )
-                       ) AS narrative
-                       , NULL::integer AS pk_encounter
-                       , NULL::integer AS pk_episode
-                       , NULL::integer AS pk_health_issue
-                       , d_vit.pk_identity_tag AS src_pk
-                       ,'dem.v_identity_tags'::text AS src_table 
-                    FROM dem.v_identity_tags d_vit
-                 )
-         UNION ALLSELECT c_vec.pk_identity AS pk_patient
-                 ,'s'::text AS soap_cat
-                 , CASE WHEN 
-                 (c_vec.pk_health_issue IS NULL) THEN 
-                 (
-                       (COALESCE
-                             (c_vec.issue
-                                   ,''::text
-                             ) || COALESCE
-                             (
-                                   (' / '::text || c_vec.provider)
-                                   ,''::text
-                             )
-                       ) || COALESCE
-                       (
-                             (' / '::text || c_vec.comment)
-                             ,''::text
-                       )
-                 ) ELSE 
-                 (COALESCE
-                       (c_vec.provider
-                             ,''::text
-                       ) || COALESCE
-                       (
-                             (' / '::text || c_vec.comment)
-                             ,''::text
-                       )
-                 ) END AS narrative
-                 , c_vec.pk_encounter
-                 , NULL::integer AS pk_episode
-                 , c_vec.pk_health_issue
-                 , c_vec.pk_external_care AS src_pk
-                 ,'clin.v_external_care'::text AS src_table 
-              FROM clin.v_external_care c_vec
-           )
-   UNION ALLSELECT c_vei.pk_identity AS pk_patient
-           ,'s'::text AS soap_cat
-           , CASE WHEN 
-           (c_vei.pk_doc_obj IS NULL) THEN 
-           (COALESCE
-                 (c_vei.description
-                       ,''::text
-                 ) || COALESCE
-                 (
-                       (' / '::text || c_vei.filename)
-                       ,''::text
-                 )
-           ) ELSE COALESCE
-           (c_vei.description
-                 ,''::text
-           ) END AS narrative
-           , NULL::integer AS pk_encounter
-           , NULL::integer AS pk_episode
-           , NULL::integer AS pk_health_issue
-           , c_vei.pk_export_item AS src_pk
-           ,'clin.v_export_items'::text AS src_table 
-        FROM clin.v_export_items c_vei
-     )
-UNION ALLSELECT (
-      SELECT encounter.fk_patient 
-        FROM clin.encounter 
-       WHERE (encounter.pk = c_sh.fk_encounter)
-     ) AS pk_patient
-     ,'p'::text AS soap_cat
-     , c_sh.rationale AS narrative
-     , c_sh.fk_encounter AS pk_encounter
-     , NULL::integer AS pk_episode
-     , NULL::integer AS pk_health_issue
-     , c_sh.pk AS src_pk
-     ,'clin.suppressed_hint'::text AS src_table 
-  FROM clin.suppressed_hint c_sh
-) union_table 
-WHERE (btrim
-     (COALESCE
-           (union_table.narrative
-                 ,''::text
-           )
-     ) <> ''::text
-);</pre>
-	
-
-	<!-- List off permissions -->
-	
-
-	<p>
-		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
-    </p>
-	
-        <hr>
-		<h2>View:
-			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-nonbrand-intakes">v_nonbrand_intakes</a>
-		</h2>
-        
-
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>row_version</td>
+            	<td>integer</td>
+                <td><i>
+				
 
-        <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.v_nonbrand_intakes Structure</caption>
-                <tr>
-                <th>F-Key</th>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Description</th>
-                </tr>
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
             
             <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>pk_substance_intake</td>
-            	<td>integer</td>
+            	<td>health_issue</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -70286,8 +84264,8 @@ WHERE (btrim
 				<td>
                 
                 </td>
-            	<td>pk_patient</td>
-            	<td>integer</td>
+            	<td>issue_laterality</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -70302,8 +84280,8 @@ WHERE (btrim
 				<td>
                 
                 </td>
-            	<td>soap_cat</td>
-            	<td>text</td>
+            	<td>issue_active</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -70318,8 +84296,8 @@ WHERE (btrim
 				<td>
                 
                 </td>
-            	<td>brand</td>
-            	<td>unknown</td>
+            	<td>issue_clinically_relevant</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -70334,8 +84312,8 @@ WHERE (btrim
 				<td>
                 
                 </td>
-            	<td>preparation</td>
-            	<td>text</td>
+            	<td>issue_confidential</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -70350,7 +84328,7 @@ WHERE (btrim
 				<td>
                 
                 </td>
-            	<td>substance</td>
+            	<td>episode</td>
             	<td>text</td>
                 <td><i>
 				
@@ -70366,8 +84344,8 @@ WHERE (btrim
 				<td>
                 
                 </td>
-            	<td>amount</td>
-            	<td>numeric</td>
+            	<td>episode_open</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -70382,8 +84360,8 @@ WHERE (btrim
 				<td>
                 
                 </td>
-            	<td>unit</td>
-            	<td>text</td>
+            	<td>encounter_started</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
@@ -70398,8 +84376,8 @@ WHERE (btrim
 				<td>
                 
                 </td>
-            	<td>atc_substance</td>
-            	<td>text</td>
+            	<td>encounter_last_affirmed</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
@@ -70414,8 +84392,24 @@ WHERE (btrim
 				<td>
                 
                 </td>
-            	<td>atc_brand</td>
-            	<td>unknown</td>
+            	<td>encounter_type</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>encounter_l10n_type</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -70426,12 +84420,350 @@ WHERE (btrim
 				</td>
 			 </tr>
             
+        </table>
+
+        <!-- Inherits -->
+		
+
+		
+
+        <!-- Constraint List -->
+		
+
+        <!-- Foreign Key Discovery -->
+		
+
+    <!-- Indexes -->
+    
+
+	<!-- View Definition -->
+	
+	<pre>
+SELECT c_enc.fk_patient AS pk_patient
+,
+    c_ast.modified_when
+,
+    COALESCE
+(c_ast.last_confirmed
+     , c_ast.modified_when
+) AS clin_when
+,
+    COALESCE
+(
+     (
+      SELECT staff.short_alias
+           
+        FROM dem.staff
+          
+       WHERE (staff.db_user = c_ast.modified_by)
+     )
+     , (
+           ('<'::text || 
+                 (c_ast.modified_by)::text
+           ) || '>'::text
+     )
+) AS modified_by
+,
+    'o'::text AS soap_cat
+,
+    
+(
+     (
+           (
+                 (_
+                       ('Allergy state'::text) || ': '::text
+                 ) ||
+        CASE
+            WHEN 
+                 (c_ast.has_allergy IS NULL) THEN _
+                 (
+      'unknown, unasked'::text
+                 )
+            WHEN 
+                 (c_ast.has_allergy = 0) THEN _
+                 ('no known allergies'::text)
+            WHEN 
+                 (c_ast.has_allergy = 1) THEN _
+                 ('does have allergies'::text)
+            ELSE NULL::text
+        END
+           ) || COALESCE
+           (
+                 (
+                       (
+                             (
+                                ' ('::text || _
+                                         ('last confirmed'::text)
+                                   ) || to_char
+                                   (c_ast.last_confirmed
+                                         ,' YYYY-MM-DD HH24:MI'::text
+                                   )
+                             ) || 
+                     ')'::text
+                 )
+                 ,''::text
+           )
+     ) || COALESCE
+     (
+           ('
+ '::text || c_ast.comment)
+           ,''::text
+     )
+) AS narrative
+,
+    c_ast.fk_encounter AS pk_encounter
+,
+    NULL::integer AS pk_episode
+,
+    NULL::integer AS pk_health_issue
+,
+    c_ast.pk AS src_pk
+,
+    'clin.allergy_state'::text AS src_table
+,
+    c_ast.row_version
+,
+    NULL::text AS health_issue
+,
+    NULL::text AS issue_laterality
+,
+    NULL::boolean AS issue_active
+,
+    NULL::boolean AS issue_clinically_relevant
+,
+    NULL::boolean AS issue_confidential
+,
+    NULL::text AS episode
+,
+    NULL::boolean AS episode_open
+,
+    c_enc.started AS encounter_started
+,
+    c_enc.last_affirmed AS encounter_last_affirmed
+,
+    c_ety.description AS encounter_type
+,
+    _
+(c_ety.description) AS encounter_l10n_type
+   
+FROM (
+     (clin.allergy_state c_ast
+     
+        JOIN clin.encounter c_enc 
+          ON (
+                 (c_ast.fk_encounter = c_enc.pk)
+           )
+     )
+     
+  JOIN clin.encounter_type c_ety 
+    ON (
+           (c_enc.fk_type = c_ety.pk)
+     )
+)
+UNION ALL
+ 
+SELECT c_enc.fk_patient AS pk_patient
+,
+    now
+() AS modified_when
+,
+    now
+() AS clin_when
+,
+    COALESCE
+(
+     (
+      SELECT staff.short_alias
+           
+        FROM dem.staff
+          
+       WHERE (staff.db_user = c_ast.modified_by)
+     )
+     , (
+           ('<'::text || 
+                 (c_ast.modified_by)::text
+           ) || '>'::text
+     )
+) AS modified_by
+,
+    'o'::text AS soap_cat
+,
+    
+(
+     (
+           (
+                 (
+                       (
+                             (
+                                   (
+                                         (
+                                               (_
+                                                     ('Allergy state'::text) || 
+                                                  ' ('::text) || _
+                                                     ('copy'::text)
+                                               ) || 
+                                     '): '::text
+                                   ) ||
+        CASE
+            WHEN 
+                                   (c_ast.has_allergy IS NULL) THEN _
+                                   (
+                        'unknown, unasked'::text
+                                   )
+            WHEN 
+                                   (c_ast.has_allergy = 0) THEN _
+                                   ('no known allergies'::text)
+            WHEN 
+                                   (c_ast.has_allergy = 1) THEN _
+                                   ('does have allergies'::text)
+            ELSE NULL::text
+        END
+                             ) || COALESCE
+                             (
+                                   ('
+ '::text || c_ast.comment)
+                                   ,''::text
+                             )
+                       ) || COALESCE
+                       (
+                             (
+                                   ('
+ '::text || _
+                                         ('last confirmed'::text)
+                                   ) || to_char
+                                   (c_ast.last_confirmed
+                                         ,' YYYY-MM-DD HH24:MI'::text
+                                   )
+                             )
+                             ,''::text
+                       )
+                 ) || COALESCE
+                 (
+                       (
+                             ('
+ '::text || _
+                                   ('entry last modified'::text)
+                             ) || to_char
+                             (c_ast.modified_when
+                                   ,' YYYY-MM-DD HH24:MI'::text
+                             )
+                       )
+                       ,''::text
+                 )
+           ) || COALESCE
+           (
+                 (
+                       ('
+ '::text || _
+                             ('encounter started'::text)
+                       ) || to_char
+                       (c_enc.started
+                             ,' YYYY-MM-DD HH24:MI'::text
+                       )
+                 )
+                 ,''::text
+           )
+     ) || COALESCE
+     (
+           (
+                 ('
+ '::text || _
+                       ('encounter last affirmed'::text)
+                 ) || to_char
+                 (c_enc.last_affirmed
+                       ,' YYYY-MM-DD HH24:MI'::text
+                 )
+           )
+           ,''::text
+     )
+) AS narrative
+,
+    c_ast.fk_encounter AS pk_encounter
+,
+    NULL::integer AS pk_episode
+,
+    NULL::integer AS pk_health_issue
+,
+    c_ast.pk AS src_pk
+,
+    'clin.allergy_state'::text AS src_table
+,
+    c_ast.row_version
+,
+    NULL::text AS health_issue
+,
+    NULL::text AS issue_laterality
+,
+    NULL::boolean AS issue_active
+,
+    NULL::boolean AS issue_clinically_relevant
+,
+    NULL::boolean AS issue_confidential
+,
+    NULL::text AS episode
+,
+    NULL::boolean AS episode_open
+,
+    now
+() AS encounter_started
+,
+    now
+() AS encounter_last_affirmed
+,
+    c_ety.description AS encounter_type
+,
+    _
+(c_ety.description) AS encounter_l10n_type
+   
+FROM (
+     (clin.allergy_state c_ast
+     
+        JOIN clin.encounter c_enc 
+          ON (
+                 (c_ast.fk_encounter = c_enc.pk)
+           )
+     )
+     
+  JOIN clin.encounter_type c_ety 
+    ON (
+           (c_enc.fk_type = c_ety.pk)
+     )
+);</pre>
+	
+
+	<!-- List off permissions -->
+	
+
+	<p>
+		<a href="gnumed-entire_schema.html#index">Index</a> -
+		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
+    </p>
+	
+        <hr>
+		<h2>View:
+			
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-pat-encounters">v_pat_encounters</a>
+		</h2>
+        
+         <p>Details on encounters.</p>
+        
+
+
+        <table width="100%" cellspacing="0" cellpadding="3">
+                <caption>clin.v_pat_encounters Structure</caption>
+                <tr>
+                <th>F-Key</th>
+                <th>Name</th>
+                <th>Type</th>
+                <th>Description</th>
+                </tr>
+            
             <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>external_code_brand</td>
-            	<td>unknown</td>
+            	<td>pk_encounter</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -70446,8 +84778,8 @@ WHERE (btrim
 				<td>
                 
                 </td>
-            	<td>external_code_type_brand</td>
-            	<td>unknown</td>
+            	<td>pk_patient</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -70478,8 +84810,8 @@ WHERE (btrim
 				<td>
                 
                 </td>
-            	<td>intake_is_approved_of</td>
-            	<td>boolean</td>
+            	<td>type</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -70494,7 +84826,7 @@ WHERE (btrim
 				<td>
                 
                 </td>
-            	<td>schedule</td>
+            	<td>l10n_type</td>
             	<td>text</td>
                 <td><i>
 				
@@ -70510,8 +84842,8 @@ WHERE (btrim
 				<td>
                 
                 </td>
-            	<td>duration</td>
-            	<td>interval</td>
+            	<td>reason_for_encounter</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -70526,8 +84858,8 @@ WHERE (btrim
 				<td>
                 
                 </td>
-            	<td>discontinued</td>
-            	<td>timestamp with time zone</td>
+            	<td>assessment_of_encounter</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -70542,8 +84874,8 @@ WHERE (btrim
 				<td>
                 
                 </td>
-            	<td>discontinue_reason</td>
-            	<td>text</td>
+            	<td>last_affirmed</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
@@ -70558,8 +84890,8 @@ WHERE (btrim
 				<td>
                 
                 </td>
-            	<td>is_long_term</td>
-            	<td>boolean</td>
+            	<td>source_time_zone</td>
+            	<td>interval</td>
                 <td><i>
 				
 
@@ -70574,8 +84906,8 @@ WHERE (btrim
 				<td>
                 
                 </td>
-            	<td>aim</td>
-            	<td>text</td>
+            	<td>started_original_tz</td>
+            	<td>timestamp without time zone</td>
                 <td><i>
 				
 
@@ -70590,8 +84922,8 @@ WHERE (btrim
 				<td>
                 
                 </td>
-            	<td>episode</td>
-            	<td>text</td>
+            	<td>last_affirmed_original_tz</td>
+            	<td>timestamp without time zone</td>
                 <td><i>
 				
 
@@ -70606,7 +84938,7 @@ WHERE (btrim
 				<td>
                 
                 </td>
-            	<td>health_issue</td>
+            	<td>praxis_branch</td>
             	<td>text</td>
                 <td><i>
 				
@@ -70622,7 +84954,7 @@ WHERE (btrim
 				<td>
                 
                 </td>
-            	<td>notes</td>
+            	<td>praxis</td>
             	<td>text</td>
                 <td><i>
 				
@@ -70638,8 +84970,8 @@ WHERE (btrim
 				<td>
                 
                 </td>
-            	<td>fake_brand</td>
-            	<td>unknown</td>
+            	<td>pk_org_unit</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -70654,8 +84986,8 @@ WHERE (btrim
 				<td>
                 
                 </td>
-            	<td>is_currently_active</td>
-            	<td>boolean</td>
+            	<td>pk_org</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -70670,8 +85002,8 @@ WHERE (btrim
 				<td>
                 
                 </td>
-            	<td>seems_inactive</td>
-            	<td>boolean</td>
+            	<td>pk_unit_type</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -70686,8 +85018,8 @@ WHERE (btrim
 				<td>
                 
                 </td>
-            	<td>pk_brand</td>
-            	<td>unknown</td>
+            	<td>pk_org_type</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -70702,8 +85034,8 @@ WHERE (btrim
 				<td>
                 
                 </td>
-            	<td>pk_data_source</td>
-            	<td>unknown</td>
+            	<td>pk_type</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -70718,8 +85050,8 @@ WHERE (btrim
 				<td>
                 
                 </td>
-            	<td>pk_substance</td>
-            	<td>integer</td>
+            	<td>pk_generic_codes_rfe</td>
+            	<td>integer[]</td>
                 <td><i>
 				
 
@@ -70734,8 +85066,8 @@ WHERE (btrim
 				<td>
                 
                 </td>
-            	<td>pk_drug_component</td>
-            	<td>unknown</td>
+            	<td>pk_generic_codes_aoe</td>
+            	<td>integer[]</td>
                 <td><i>
 				
 
@@ -70750,8 +85082,8 @@ WHERE (btrim
 				<td>
                 
                 </td>
-            	<td>pk_encounter</td>
-            	<td>integer</td>
+            	<td>xmin_encounter</td>
+            	<td>xid</td>
                 <td><i>
 				
 
@@ -70766,7 +85098,7 @@ WHERE (btrim
 				<td>
                 
                 </td>
-            	<td>pk_episode</td>
+            	<td>row_version</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -70782,7 +85114,7 @@ WHERE (btrim
 				<td>
                 
                 </td>
-            	<td>pk_health_issue</td>
+            	<td>pk_audit</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -70814,7 +85146,7 @@ WHERE (btrim
 				<td>
                 
                 </td>
-            	<td>modified_by</td>
+            	<td>modified_by_raw</td>
             	<td>name</td>
                 <td><i>
 				
@@ -70830,24 +85162,8 @@ WHERE (btrim
 				<td>
                 
                 </td>
-            	<td>row_version</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>xmin_substance_intake</td>
-            	<td>xid</td>
+            	<td>modified_by</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -70877,87 +85193,148 @@ WHERE (btrim
 	<!-- View Definition -->
 	
 	<pre>
-SELECT c_si.pk AS pk_substance_intake
-, (
-SELECT encounter.fk_patient 
-  FROM clin.encounter 
- WHERE (encounter.pk = c_si.fk_encounter)
-) AS pk_patient
-, c_si.soap_cat
-, NULL::unknown AS brand
-, c_si.preparation
-, r_cs.description AS substance
-, r_cs.amount
-, r_cs.unit
-, r_cs.atc_code AS atc_substance
-, NULL::unknown AS atc_brand
-, NULL::unknown AS external_code_brand
-, NULL::unknown AS external_code_type_brand
-, c_si.clin_when AS started
-, c_si.intake_is_approved_of
-, c_si.schedule
-, c_si.duration
-, c_si.discontinued
-, c_si.discontinue_reason
-, c_si.is_long_term
-, c_si.aim
-, cep.description AS episode
-, c_hi.description AS health_issue
-, c_si.narrative AS notes
-, NULL::unknown AS fake_brand
-, CASE WHEN 
-(c_si.discontinued IS NULL) THEN true ELSE false END AS is_currently_active
-, CASE WHEN 
-(c_si.discontinued IS NOT NULL) THEN true WHEN 
-(c_si.clin_when IS NULL) THEN CASE WHEN 
-(c_si.is_long_term IS TRUE) THEN false ELSE NULL::boolean END WHEN 
+SELECT c_enc.pk AS pk_encounter
+,
+    c_enc.fk_patient AS pk_patient
+,
+    c_enc.started
+,
+    c_et.description AS type
+,
+    _
+(c_et.description) AS l10n_type
+,
+    c_enc.reason_for_encounter
+,
+    c_enc.assessment_of_encounter
+,
+    c_enc.last_affirmed
+,
+    c_enc.source_time_zone
+,
+    
 (
-     (c_si.clin_when > now
-           ()
-     ) IS TRUE
-) THEN true WHEN 
+SELECT timezone
+     (
+           (
+            SELECT c_enc1.source_time_zone
+                   
+              FROM clin.encounter c_enc1
+                  
+             WHERE (c_enc1.pk = c_enc.pk)
+           )
+           , c_enc.started
+     ) AS timezone
+) AS started_original_tz
+,
+    
 (
+SELECT timezone
      (
-           (c_si.clin_when + c_si.duration) < now
-           ()
-     ) IS TRUE
-) THEN true WHEN 
+           (
+            SELECT c_enc1.source_time_zone
+                   
+              FROM clin.encounter c_enc1
+                  
+             WHERE (c_enc1.pk = c_enc.pk)
+           )
+           , c_enc.last_affirmed
+     ) AS timezone
+) AS last_affirmed_original_tz
+,
+    COALESCE
+(d_ou.description
+     ,'?'::text
+) AS praxis_branch
+,
+    COALESCE
+(d_o.description
+     ,'?'::text
+) AS praxis
+,
+    c_enc.fk_location AS pk_org_unit
+,
+    d_ou.fk_org AS pk_org
+,
+    d_ou.fk_category AS pk_unit_type
+,
+    d_o.fk_category AS pk_org_type
+,
+    c_enc.fk_type AS pk_type
+,
+    COALESCE
 (
      (
-           (c_si.clin_when + c_si.duration) > now
-           ()
-     ) IS TRUE
-) THEN false ELSE NULL::boolean END AS seems_inactive
-, NULL::unknown AS pk_brand
-, NULL::unknown AS pk_data_source
-, r_cs.pk AS pk_substance
-, NULL::unknown AS pk_drug_component
-, c_si.fk_encounter AS pk_encounter
-, c_si.fk_episode AS pk_episode
-, cep.fk_health_issue AS pk_health_issue
-, c_si.modified_when
-, c_si.modified_by
-, c_si.row_version
-, c_si.xmin AS xmin_substance_intake 
+      SELECT array_agg
+           (c_lc2r.fk_generic_code) AS array_agg
+           
+        FROM clin.lnk_code2rfe c_lc2r
+          
+       WHERE (c_lc2r.fk_item = c_enc.pk)
+     )
+     , ARRAY[]::integer[]
+) AS pk_generic_codes_rfe
+,
+    COALESCE
+(
+     (
+      SELECT array_agg
+           (c_lc2a.fk_generic_code) AS array_agg
+           
+        FROM clin.lnk_code2aoe c_lc2a
+          
+       WHERE (c_lc2a.fk_item = c_enc.pk)
+     )
+     , ARRAY[]::integer[]
+) AS pk_generic_codes_aoe
+,
+    c_enc.xmin AS xmin_encounter
+,
+    c_enc.row_version
+,
+    c_enc.pk_audit
+,
+    c_enc.modified_when
+,
+    c_enc.modified_by AS modified_by_raw
+,
+    COALESCE
+(
+     (
+      SELECT staff.short_alias
+           
+        FROM dem.staff
+          
+       WHERE (staff.db_user = c_enc.modified_by)
+     )
+     , (
+           ('<'::text || 
+                 (c_enc.modified_by)::text
+           ) || '>'::text
+     )
+) AS modified_by
+   
 FROM (
      (
-           (clin.substance_intake c_si 
-              JOIN ref.consumable_substance r_cs 
+           (clin.encounter c_enc
+     
+         LEFT JOIN clin.encounter_type c_et 
                 ON (
-                       (c_si.fk_substance = r_cs.pk)
+                       (c_enc.fk_type = c_et.pk)
                  )
            )
-   LEFT JOIN clin.episode cep 
+     
+   LEFT JOIN dem.org_unit d_ou 
           ON (
-                 (c_si.fk_episode = cep.pk)
+                 (c_enc.fk_location = d_ou.pk)
            )
      )
-LEFT JOIN clin.health_issue c_hi 
+     
+LEFT JOIN dem.org d_o 
     ON (
-           (c_hi.pk = cep.fk_health_issue)
+           (d_ou.fk_org = d_o.pk)
      )
-)
-WHERE (c_si.fk_drug_component IS NULL);</pre>
+);</pre>
 	
 
 	<!-- List off permissions -->
@@ -70971,15 +85348,13 @@ WHERE (c_si.fk_drug_component IS NULL);</pre>
         <hr>
 		<h2>View:
 			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-pat-allergies">v_pat_allergies</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-pat-encounters-journal">v_pat_encounters_journal</a>
 		</h2>
         
-         <p>denormalizes clin.allergy</p>
-        
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.v_pat_allergies Structure</caption>
+                <caption>clin.v_pat_encounters_journal Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -70991,22 +85366,6 @@ WHERE (c_si.fk_drug_component IS NULL);</pre>
 				<td>
                 
                 </td>
-            	<td>pk_allergy</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
             	<td>pk_patient</td>
             	<td>integer</td>
                 <td><i>
@@ -71019,92 +85378,12 @@ WHERE (c_si.fk_drug_component IS NULL);</pre>
 				</td>
 			 </tr>
             
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>soap_cat</td>
-            	<td>text</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>descriptor</td>
-            	<td>text</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>allergene</td>
-            	<td>text</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>substance</td>
-            	<td>text</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>substance_code</td>
-            	<td>text</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
             <tr class="tr1">
 				<td>
                 
                 </td>
-            	<td>generics</td>
-            	<td>text</td>
+            	<td>modified_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
@@ -71119,8 +85398,8 @@ WHERE (c_si.fk_drug_component IS NULL);</pre>
 				<td>
                 
                 </td>
-            	<td>generic_specific</td>
-            	<td>boolean</td>
+            	<td>clin_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
@@ -71135,7 +85414,7 @@ WHERE (c_si.fk_drug_component IS NULL);</pre>
 				<td>
                 
                 </td>
-            	<td>atc_code</td>
+            	<td>modified_by</td>
             	<td>text</td>
                 <td><i>
 				
@@ -71151,23 +85430,7 @@ WHERE (c_si.fk_drug_component IS NULL);</pre>
 				<td>
                 
                 </td>
-            	<td>type</td>
-            	<td>text</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>l10n_type</td>
+            	<td>soap_cat</td>
             	<td>text</td>
                 <td><i>
 				
@@ -71179,27 +85442,11 @@ WHERE (c_si.fk_drug_component IS NULL);</pre>
 				</td>
 			 </tr>
             
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>definite</td>
-            	<td>boolean</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
             <tr class="tr1">
 				<td>
                 
                 </td>
-            	<td>reaction</td>
+            	<td>narrative</td>
             	<td>text</td>
                 <td><i>
 				
@@ -71215,7 +85462,7 @@ WHERE (c_si.fk_drug_component IS NULL);</pre>
 				<td>
                 
                 </td>
-            	<td>pk_type</td>
+            	<td>pk_encounter</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -71231,7 +85478,7 @@ WHERE (c_si.fk_drug_component IS NULL);</pre>
 				<td>
                 
                 </td>
-            	<td>pk_item</td>
+            	<td>pk_episode</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -71247,22 +85494,6 @@ WHERE (c_si.fk_drug_component IS NULL);</pre>
 				<td>
                 
                 </td>
-            	<td>date</td>
-            	<td>timestamp with time zone</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
             	<td>pk_health_issue</td>
             	<td>integer</td>
                 <td><i>
@@ -71275,27 +85506,11 @@ WHERE (c_si.fk_drug_component IS NULL);</pre>
 				</td>
 			 </tr>
             
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>pk_episode</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
             <tr class="tr1">
 				<td>
                 
                 </td>
-            	<td>pk_encounter</td>
+            	<td>src_pk</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -71311,8 +85526,8 @@ WHERE (c_si.fk_drug_component IS NULL);</pre>
 				<td>
                 
                 </td>
-            	<td>modified_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>src_table</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -71327,24 +85542,8 @@ WHERE (c_si.fk_drug_component IS NULL);</pre>
 				<td>
                 
                 </td>
-            	<td>modified_by</td>
-            	<td>name</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>xmin_allergy</td>
-            	<td>xid</td>
+            	<td>row_version</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -71355,99 +85554,12 @@ WHERE (c_si.fk_drug_component IS NULL);</pre>
 				</td>
 			 </tr>
             
-        </table>
-
-        <!-- Inherits -->
-		
-
-		
-
-        <!-- Constraint List -->
-		
-
-        <!-- Foreign Key Discovery -->
-		
-
-    <!-- Indexes -->
-    
-
-	<!-- View Definition -->
-	
-	<pre>
-SELECT a.pk AS pk_allergy
-, (
-SELECT encounter.fk_patient 
-  FROM clin.encounter 
- WHERE (encounter.pk = a.fk_encounter)
-) AS pk_patient
-, a.soap_cat
-, CASE WHEN 
-(COALESCE
-     (btrim
-           (a.allergene)
-           ,''::text
-     ) = ''::text
-) THEN a.substance ELSE a.allergene END AS descriptor
-, a.allergene
-, a.substance
-, a.substance_code
-, a.generics
-, a.generic_specific
-, a.atc_code
-, at.value AS type
-, _
-(at.value) AS l10n_type
-, a.definite
-, a.narrative AS reaction
-, a.fk_type AS pk_type
-, a.pk_item
-, a.clin_when AS date
-, (
-SELECT episode.fk_health_issue 
-  FROM clin.episode 
- WHERE (episode.pk = a.fk_episode)
-) AS pk_health_issue
-, a.fk_episode AS pk_episode
-, a.fk_encounter AS pk_encounter
-, a.modified_when
-, a.modified_by
-, a.xmin AS xmin_allergy 
-FROM clin.allergy a
-, clin._enum_allergy_type at 
-WHERE (at.pk = a.fk_type);</pre>
-	
-
-	<!-- List off permissions -->
-	
-
-	<p>
-		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
-    </p>
-	
-        <hr>
-		<h2>View:
-			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-pat-allergies-journal">v_pat_allergies_journal</a>
-		</h2>
-        
-
-
-        <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.v_pat_allergies_journal Structure</caption>
-                <tr>
-                <th>F-Key</th>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Description</th>
-                </tr>
-            
             <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>pk_patient</td>
-            	<td>integer</td>
+            	<td>health_issue</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -71462,8 +85574,8 @@ WHERE (at.pk = a.fk_type);</pre>
 				<td>
                 
                 </td>
-            	<td>modified_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>issue_laterality</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -71478,8 +85590,8 @@ WHERE (at.pk = a.fk_type);</pre>
 				<td>
                 
                 </td>
-            	<td>clin_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>issue_active</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -71494,8 +85606,8 @@ WHERE (at.pk = a.fk_type);</pre>
 				<td>
                 
                 </td>
-            	<td>modified_by</td>
-            	<td>text</td>
+            	<td>issue_clinically_relevant</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -71510,8 +85622,8 @@ WHERE (at.pk = a.fk_type);</pre>
 				<td>
                 
                 </td>
-            	<td>soap_cat</td>
-            	<td>text</td>
+            	<td>issue_confidential</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -71526,7 +85638,7 @@ WHERE (at.pk = a.fk_type);</pre>
 				<td>
                 
                 </td>
-            	<td>narrative</td>
+            	<td>episode</td>
             	<td>text</td>
                 <td><i>
 				
@@ -71542,8 +85654,8 @@ WHERE (at.pk = a.fk_type);</pre>
 				<td>
                 
                 </td>
-            	<td>pk_encounter</td>
-            	<td>integer</td>
+            	<td>episode_open</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -71558,8 +85670,8 @@ WHERE (at.pk = a.fk_type);</pre>
 				<td>
                 
                 </td>
-            	<td>pk_episode</td>
-            	<td>integer</td>
+            	<td>encounter_started</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
@@ -71574,8 +85686,8 @@ WHERE (at.pk = a.fk_type);</pre>
 				<td>
                 
                 </td>
-            	<td>pk_health_issue</td>
-            	<td>integer</td>
+            	<td>encounter_last_affirmed</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
@@ -71590,8 +85702,8 @@ WHERE (at.pk = a.fk_type);</pre>
 				<td>
                 
                 </td>
-            	<td>src_pk</td>
-            	<td>integer</td>
+            	<td>encounter_type</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -71606,7 +85718,7 @@ WHERE (at.pk = a.fk_type);</pre>
 				<td>
                 
                 </td>
-            	<td>src_table</td>
+            	<td>encounter_l10n_type</td>
             	<td>text</td>
                 <td><i>
 				
@@ -71637,28 +85749,32 @@ WHERE (at.pk = a.fk_type);</pre>
 	<!-- View Definition -->
 	
 	<pre>
-SELECT (
-SELECT encounter.fk_patient 
-  FROM clin.encounter 
- WHERE (encounter.pk = a.fk_encounter)
-) AS pk_patient
-, a.modified_when
-, a.clin_when
-, COALESCE
+SELECT c_enc.fk_patient AS pk_patient
+,
+    c_enc.modified_when
+,
+    c_enc.started AS clin_when
+,
+    COALESCE
 (
      (
-      SELECT staff.short_alias 
-        FROM dem.staff 
-       WHERE (staff.db_user = a.modified_by)
+      SELECT staff.short_alias
+           
+        FROM dem.staff
+          
+       WHERE (staff.db_user = c_enc.modified_by)
      )
      , (
            ('<'::text || 
-                 (a.modified_by)::text
+                 (c_enc.modified_by)::text
            ) || '>'::text
      )
 ) AS modified_by
-, a.soap_cat
-, (
+,
+    NULL::text AS soap_cat
+,
+    
+(
      (
            (
                  (
@@ -71666,34 +85782,108 @@ SELECT encounter.fk_patient
                              (
                                    (
                                          (
+                                               (_
+                                                     ('Encounter'::text) || ': '::text
+                                               ) || 
+                                               (
+                                                SELECT _
+                                                     (encounter_type.description) AS _
+           
+                                                  FROM clin.encounter_type
+          
+                                                 WHERE (encounter_type.pk = c_enc.fk_type)
+                                               )
+                                         ) || to_char
+                                         (c_enc.started
+                                               ,' YYYY-MM-DD HH24:MI'::text
+                                         )
+                                   ) || to_char
+                                   (c_enc.last_affirmed
+                                         ,' - HH24:MI'::text
+                                   )
+                             ) || COALESCE
+                             (
+                                   (
+                                         (
                                                (
                                                      (
                                                            (
-                                                                 (_
-                                                                       ('Allergy'::text) || 
-                                                                    ' ('::text) || _
-                                                                       (at.value)
-                                                                 ) || 
-                                                       '): '::text
-                                                     ) || COALESCE
-                                                     (a.narrative
-                                                           ,''::text
-                                                     )
-                                               ) || '
-'::text
-                                         ) || _
-                                         ('substance'::text)
-                                   ) || ': '::text
-                             ) || a.substance
-                       ) || '; '::text
+                                                                 (
+                                                                       (
+                                                                             ('
+ @ '::text || _
+                                                                                   ('branch'::text)
+                                                                             ) || ' "'::text
+                                                                       ) || d_ou.description
+                                                                 ) || '" '::text
+                                                           ) || _
+                                                           ('of'::text)
+                                                     ) || ' "'::text
+                                               ) || d_o.description
+                                         ) || '"'::text
+                                   )
+                                   ,''::text
+                             )
+                       ) || COALESCE
+                       (
+                             (
+                                   (
+                                         ('
+ '::text || _
+                                               ('RFE'::text)
+                                         ) || ': '::text
+                                   ) || c_enc.reason_for_encounter
+                             )
+                             ,''::text
+                       )
                  ) || COALESCE
                  (
                        (
-                             (
-                                   (_
-                                         ('allergene'::text) || ': '::text
-                                   ) || a.allergene
-                             ) || '; '::text
+                             ('
+'::text || array_to_string
+                                   (
+                                         (
+                                          SELECT array_agg
+                                               (
+                                                     (
+                                                           (
+                                                                 (
+                                                                       (
+                                                                             (
+                                                                                   (
+                                                                                         (
+                                                                                               (r_csr.code || 
+                                                                                                  ' ('::text) || r_ds.name_short
+                                                                                               ) || ' - '::text
+                                                                                         ) || r_ds.version
+                                                                                   ) || ' - '::text
+                                                                             ) || r_ds.lang
+                                                                       ) || 
+                                                             '): '::text
+                                                           ) || r_csr.term
+                                                     )
+                                               ) AS array_agg
+           
+                                            FROM (
+                                                     (clin.lnk_code2rfe c_lc2r
+             
+                                                        JOIN ref.coding_system_root r_csr 
+                                                          ON (
+                                                                 (c_lc2r.fk_generic_code = r_csr.pk_coding_system)
+                                                           )
+                                                     )
+             
+                                                  JOIN ref.data_source r_ds 
+                                                    ON (
+                                                           (r_ds.pk = r_csr.fk_data_source)
+                                                     )
+                                               )
+          
+                                           WHERE (c_lc2r.fk_item = c_enc.pk)
+                                         )
+                                         ,'; '::text
+                                   )
+                             ) || ';'::text
                        )
                        ,''::text
                  )
@@ -71701,37 +85891,123 @@ SELECT encounter.fk_patient
            (
                  (
                        (
-                             (_
-                                   ('generic'::text) || ': '::text
-                             ) || a.generics
-                       ) || '; '::text
+                             ('
+ '::text || _
+                                   ('AOE'::text)
+                             ) || ': '::text
+                       ) || c_enc.assessment_of_encounter
                  )
                  ,''::text
            )
      ) || COALESCE
      (
            (
-                 (
-                       (_
-                             ('ATC code'::text) || ': '::text
-                       ) || a.atc_code
-                 ) || '; '::text
+                 ('
+'::text || array_to_string
+                       (
+                             (
+                              SELECT array_agg
+                                   (
+                                         (
+                                               (
+                                                     (
+                                                           (
+                                                                 (
+                                                                       (
+                                                                             (
+                                                                                   (r_csr.code || 
+                                                                                      ' ('::text) || r_ds.name_short
+                                                                                   ) || ' - '::text
+                                                                             ) || r_ds.version
+                                                                       ) || ' - '::text
+                                                                 ) || r_ds.lang
+                                                           ) || 
+                                                 '): '::text
+                                               ) || r_csr.term
+                                         )
+                                   ) AS array_agg
+           
+                                FROM (
+                                         (clin.lnk_code2aoe c_lc2a
+             
+                                            JOIN ref.coding_system_root r_csr 
+                                              ON (
+                                                     (c_lc2a.fk_generic_code = r_csr.pk_coding_system)
+                                               )
+                                         )
+             
+                                      JOIN ref.data_source r_ds 
+                                        ON (
+                                               (r_ds.pk = r_csr.fk_data_source)
+                                         )
+                                   )
+          
+                               WHERE (c_lc2a.fk_item = c_enc.pk)
+                             )
+                             ,'; '::text
+                       )
+                 ) || ';'::text
            )
            ,''::text
      )
 ) AS narrative
-, a.fk_encounter AS pk_encounter
-, a.fk_episode AS pk_episode
-, (
-SELECT episode.fk_health_issue 
-  FROM clin.episode 
- WHERE (episode.pk = a.fk_episode)
-) AS pk_health_issue
-, a.pk AS src_pk
-,'clin.allergy'::text AS src_table 
-FROM clin.allergy a
-, clin._enum_allergy_type at 
-WHERE (at.pk = a.fk_type);</pre>
+,
+    c_enc.pk AS pk_encounter
+,
+    NULL::integer AS pk_episode
+,
+    NULL::integer AS pk_health_issue
+,
+    c_enc.pk AS src_pk
+,
+    'clin.encounter'::text AS src_table
+,
+    c_enc.row_version
+,
+    NULL::text AS health_issue
+,
+    NULL::text AS issue_laterality
+,
+    NULL::boolean AS issue_active
+,
+    NULL::boolean AS issue_clinically_relevant
+,
+    NULL::boolean AS issue_confidential
+,
+    NULL::text AS episode
+,
+    NULL::boolean AS episode_open
+,
+    c_enc.started AS encounter_started
+,
+    c_enc.last_affirmed AS encounter_last_affirmed
+,
+    c_ety.description AS encounter_type
+,
+    _
+(c_ety.description) AS encounter_l10n_type
+   
+FROM (
+     (
+           (clin.encounter c_enc
+     
+              JOIN clin.encounter_type c_ety 
+                ON (
+                       (c_enc.fk_type = c_ety.pk)
+                 )
+           )
+     
+   LEFT JOIN dem.org_unit d_ou 
+          ON (
+                 (c_enc.fk_location = d_ou.pk)
+           )
+     )
+     
+LEFT JOIN dem.org d_o 
+    ON (
+           (d_ou.fk_org = d_o.pk)
+     )
+);</pre>
 	
 
 	<!-- List off permissions -->
@@ -71745,13 +86021,13 @@ WHERE (at.pk = a.fk_type);</pre>
         <hr>
 		<h2>View:
 			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-pat-allergy-state">v_pat_allergy_state</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-pat-episodes">v_pat_episodes</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.v_pat_allergy_state Structure</caption>
+                <caption>clin.v_pat_episodes Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -71779,8 +86055,8 @@ WHERE (at.pk = a.fk_type);</pre>
 				<td>
                 
                 </td>
-            	<td>modified_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>description</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -71795,7 +86071,7 @@ WHERE (at.pk = a.fk_type);</pre>
 				<td>
                 
                 </td>
-            	<td>modified_by</td>
+            	<td>summary</td>
             	<td>text</td>
                 <td><i>
 				
@@ -71811,8 +86087,8 @@ WHERE (at.pk = a.fk_type);</pre>
 				<td>
                 
                 </td>
-            	<td>last_confirmed</td>
-            	<td>timestamp with time zone</td>
+            	<td>episode_open</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -71827,8 +86103,8 @@ WHERE (at.pk = a.fk_type);</pre>
 				<td>
                 
                 </td>
-            	<td>has_allergy</td>
-            	<td>integer</td>
+            	<td>health_issue</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -71843,8 +86119,8 @@ WHERE (at.pk = a.fk_type);</pre>
 				<td>
                 
                 </td>
-            	<td>comment</td>
-            	<td>text</td>
+            	<td>issue_active</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -71859,8 +86135,8 @@ WHERE (at.pk = a.fk_type);</pre>
 				<td>
                 
                 </td>
-            	<td>pk_encounter</td>
-            	<td>integer</td>
+            	<td>issue_clinically_relevant</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -71875,24 +86151,8 @@ WHERE (at.pk = a.fk_type);</pre>
 				<td>
                 
                 </td>
-            	<td>pk_allergy_state</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>xmin_allergy_state</td>
-            	<td>xid</td>
+            	<td>started_first</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
@@ -71903,84 +86163,12 @@ WHERE (at.pk = a.fk_type);</pre>
 				</td>
 			 </tr>
             
-        </table>
-
-        <!-- Inherits -->
-		
-
-		
-
-        <!-- Constraint List -->
-		
-
-        <!-- Foreign Key Discovery -->
-		
-
-    <!-- Indexes -->
-    
-
-	<!-- View Definition -->
-	
-	<pre>
-SELECT (
-SELECT encounter.fk_patient 
-  FROM clin.encounter 
- WHERE (encounter.pk = a.fk_encounter)
-) AS pk_patient
-, a.modified_when
-, COALESCE
-(
-     (
-      SELECT staff.short_alias 
-        FROM dem.staff 
-       WHERE (staff.db_user = a.modified_by)
-     )
-     , (
-           ('<'::text || 
-                 (a.modified_by)::text
-           ) || '>'::text
-     )
-) AS modified_by
-, a.last_confirmed
-, a.has_allergy
-, a.comment
-, a.fk_encounter AS pk_encounter
-, a.pk AS pk_allergy_state
-, a.xmin AS xmin_allergy_state 
-FROM clin.allergy_state a;</pre>
-	
-
-	<!-- List off permissions -->
-	
-
-	<p>
-		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
-    </p>
-	
-        <hr>
-		<h2>View:
-			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-pat-allergy-state-journal">v_pat_allergy_state_journal</a>
-		</h2>
-        
-
-
-        <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.v_pat_allergy_state_journal Structure</caption>
-                <tr>
-                <th>F-Key</th>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Description</th>
-                </tr>
-            
             <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>pk_patient</td>
-            	<td>integer</td>
+            	<td>started_last</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
@@ -71995,7 +86183,7 @@ FROM clin.allergy_state a;</pre>
 				<td>
                 
                 </td>
-            	<td>modified_when</td>
+            	<td>last_affirmed</td>
             	<td>timestamp with time zone</td>
                 <td><i>
 				
@@ -72011,8 +86199,8 @@ FROM clin.allergy_state a;</pre>
 				<td>
                 
                 </td>
-            	<td>clin_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>pk_episode</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -72027,8 +86215,8 @@ FROM clin.allergy_state a;</pre>
 				<td>
                 
                 </td>
-            	<td>modified_by</td>
-            	<td>text</td>
+            	<td>pk_encounter</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -72043,8 +86231,8 @@ FROM clin.allergy_state a;</pre>
 				<td>
                 
                 </td>
-            	<td>soap_cat</td>
-            	<td>text</td>
+            	<td>pk_health_issue</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -72059,8 +86247,8 @@ FROM clin.allergy_state a;</pre>
 				<td>
                 
                 </td>
-            	<td>narrative</td>
-            	<td>text</td>
+            	<td>episode_modified_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
@@ -72075,8 +86263,8 @@ FROM clin.allergy_state a;</pre>
 				<td>
                 
                 </td>
-            	<td>pk_encounter</td>
-            	<td>integer</td>
+            	<td>episode_modified_by</td>
+            	<td>name</td>
                 <td><i>
 				
 
@@ -72091,8 +86279,8 @@ FROM clin.allergy_state a;</pre>
 				<td>
                 
                 </td>
-            	<td>pk_episode</td>
-            	<td>integer</td>
+            	<td>diagnostic_certainty_classification</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -72107,8 +86295,8 @@ FROM clin.allergy_state a;</pre>
 				<td>
                 
                 </td>
-            	<td>pk_health_issue</td>
-            	<td>integer</td>
+            	<td>diagnostic_certainty_classification_issue</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -72123,8 +86311,8 @@ FROM clin.allergy_state a;</pre>
 				<td>
                 
                 </td>
-            	<td>src_pk</td>
-            	<td>integer</td>
+            	<td>pk_generic_codes</td>
+            	<td>integer[]</td>
                 <td><i>
 				
 
@@ -72139,24 +86327,8 @@ FROM clin.allergy_state a;</pre>
 				<td>
                 
                 </td>
-            	<td>src_table</td>
-            	<td>text</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>row_version</td>
-            	<td>integer</td>
+            	<td>xmin_episode</td>
+            	<td>xid</td>
                 <td><i>
 				
 
@@ -72186,74 +86358,183 @@ FROM clin.allergy_state a;</pre>
 	<!-- View Definition -->
 	
 	<pre>
-SELECT (
-SELECT encounter.fk_patient 
-  FROM clin.encounter 
- WHERE (encounter.pk = a.fk_encounter)
-) AS pk_patient
-, a.modified_when
-, COALESCE
-(a.last_confirmed
-     , a.modified_when
-) AS clin_when
-, COALESCE
+SELECT cenc.fk_patient AS pk_patient
+,
+    cep.description
+,
+    cep.summary
+,
+    cep.is_open AS episode_open
+,
+    NULL::text AS health_issue
+,
+    NULL::boolean AS issue_active
+,
+    NULL::boolean AS issue_clinically_relevant
+,
+    
+(
+SELECT min
+     (cle.started) AS min
+           
+  FROM clin.encounter cle
+          
+ WHERE (cle.pk = cep.fk_encounter)
+         LIMIT 1
+) AS started_first
+,
+    
+(
+SELECT max
+     (cle.started) AS max
+           
+  FROM clin.encounter cle
+          
+ WHERE (cle.pk = cep.fk_encounter)
+         LIMIT 1
+) AS started_last
+,
+    
+(
+SELECT max
+     (cle.last_affirmed) AS max
+           
+  FROM clin.encounter cle
+          
+ WHERE (cle.pk = cep.fk_encounter)
+         LIMIT 1
+) AS last_affirmed
+,
+    cep.pk AS pk_episode
+,
+    cep.fk_encounter AS pk_encounter
+,
+    NULL::integer AS pk_health_issue
+,
+    cep.modified_when AS episode_modified_when
+,
+    cep.modified_by AS episode_modified_by
+,
+    cep.diagnostic_certainty_classification
+,
+    NULL::text AS diagnostic_certainty_classification_issue
+,
+    COALESCE
 (
      (
-      SELECT staff.short_alias 
-        FROM dem.staff 
-       WHERE (staff.db_user = a.modified_by)
+      SELECT array_agg
+           (c_lc2e.fk_generic_code) AS array_agg
+           
+        FROM clin.lnk_code2episode c_lc2e
+          
+       WHERE (c_lc2e.fk_item = cep.pk)
      )
-     , (
-           ('<'::text || 
-                 (a.modified_by)::text
-           ) || '>'::text
+     , ARRAY[]::integer[]
+) AS pk_generic_codes
+,
+    cep.xmin AS xmin_episode
+   
+FROM (clin.episode cep
+     
+  JOIN clin.encounter cenc 
+    ON (
+           (cep.fk_encounter = cenc.pk)
      )
-) AS modified_by
-,'o'::text AS soap_cat
-, (
+)
+  
+WHERE (cep.fk_health_issue IS NULL)
+UNION ALL
+ 
+SELECT cenc.fk_patient AS pk_patient
+,
+    cep.description
+,
+    cep.summary
+,
+    cep.is_open AS episode_open
+,
+    chi.description AS health_issue
+,
+    chi.is_active AS issue_active
+,
+    chi.clinically_relevant AS issue_clinically_relevant
+,
+    
+(
+SELECT min
+     (cle.started) AS min
+           
+  FROM clin.encounter cle
+          
+ WHERE (cle.pk = cep.fk_encounter)
+         LIMIT 1
+) AS started_first
+,
+    
+(
+SELECT max
+     (cle.started) AS max
+           
+  FROM clin.encounter cle
+          
+ WHERE (cle.pk = cep.fk_encounter)
+         LIMIT 1
+) AS started_last
+,
+    
+(
+SELECT max
+     (cle.last_affirmed) AS max
+           
+  FROM clin.encounter cle
+          
+ WHERE (cle.pk = cep.fk_encounter)
+         LIMIT 1
+) AS last_affirmed
+,
+    cep.pk AS pk_episode
+,
+    cep.fk_encounter AS pk_encounter
+,
+    cep.fk_health_issue AS pk_health_issue
+,
+    cep.modified_when AS episode_modified_when
+,
+    cep.modified_by AS episode_modified_by
+,
+    cep.diagnostic_certainty_classification
+,
+    chi.diagnostic_certainty_classification AS diagnostic_certainty_classification_issue
+,
+    COALESCE
+(
      (
-           (
-                 (_
-                       ('Allergy state'::text) || ': '::text
-                 ) || CASE WHEN 
-                 (a.has_allergy IS NULL) THEN _
-                 (
-      'unknown, unasked'::text
-                 ) WHEN 
-                 (a.has_allergy = 0) THEN _
-                 ('no known allergies'::text) WHEN 
-                 (a.has_allergy = 1) THEN _
-                 ('does have allergies'::text) ELSE NULL::text END
-           ) || COALESCE
-           (
-                 (
-                       (
-                             (
-                                ' ('::text || _
-                                         ('last confirmed'::text)
-                                   ) || to_char
-                                   (a.last_confirmed
-                                         ,' YYYY-MM-DD HH24:MI'::text
-                                   )
-                             ) || 
-                     ')'::text
-                 )
-                 ,''::text
+      SELECT array_agg
+           (c_lc2e.fk_generic_code) AS array_agg
+           
+        FROM clin.lnk_code2episode c_lc2e
+          
+       WHERE (c_lc2e.fk_item = cep.pk)
+     )
+     , ARRAY[]::integer[]
+) AS pk_generic_codes
+,
+    cep.xmin AS xmin_episode
+   
+FROM (
+     (clin.episode cep
+     
+        JOIN clin.encounter cenc 
+          ON (
+                 (cep.fk_encounter = cenc.pk)
            )
-     ) || COALESCE
-     (
-           ('
- '::text || a.comment)
-           ,''::text
      )
-) AS narrative
-, a.fk_encounter AS pk_encounter
-, NULL::integer AS pk_episode
-, NULL::integer AS pk_health_issue
-, a.pk AS src_pk
-,'clin.allergy_state'::text AS src_table
-, 0 AS row_version 
-FROM clin.allergy_state a;</pre>
+     
+  JOIN clin.health_issue chi 
+    ON (
+           (cep.fk_health_issue = chi.pk)
+     )
+);</pre>
 	
 
 	<!-- List off permissions -->
@@ -72267,15 +86548,13 @@ FROM clin.allergy_state a;</pre>
         <hr>
 		<h2>View:
 			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-pat-encounters">v_pat_encounters</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-pat-episodes-journal">v_pat_episodes_journal</a>
 		</h2>
         
-         <p>Details on encounters.</p>
-        
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.v_pat_encounters Structure</caption>
+                <caption>clin.v_pat_episodes_journal Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -72287,7 +86566,7 @@ FROM clin.allergy_state a;</pre>
 				<td>
                 
                 </td>
-            	<td>pk_encounter</td>
+            	<td>pk_patient</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -72303,8 +86582,8 @@ FROM clin.allergy_state a;</pre>
 				<td>
                 
                 </td>
-            	<td>pk_patient</td>
-            	<td>integer</td>
+            	<td>modified_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
@@ -72319,7 +86598,7 @@ FROM clin.allergy_state a;</pre>
 				<td>
                 
                 </td>
-            	<td>started</td>
+            	<td>clin_when</td>
             	<td>timestamp with time zone</td>
                 <td><i>
 				
@@ -72335,7 +86614,7 @@ FROM clin.allergy_state a;</pre>
 				<td>
                 
                 </td>
-            	<td>type</td>
+            	<td>modified_by</td>
             	<td>text</td>
                 <td><i>
 				
@@ -72351,7 +86630,7 @@ FROM clin.allergy_state a;</pre>
 				<td>
                 
                 </td>
-            	<td>l10n_type</td>
+            	<td>soap_cat</td>
             	<td>text</td>
                 <td><i>
 				
@@ -72367,23 +86646,7 @@ FROM clin.allergy_state a;</pre>
 				<td>
                 
                 </td>
-            	<td>reason_for_encounter</td>
-            	<td>text</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>assessment_of_encounter</td>
+            	<td>narrative</td>
             	<td>text</td>
                 <td><i>
 				
@@ -72395,28 +86658,12 @@ FROM clin.allergy_state a;</pre>
 				</td>
 			 </tr>
             
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>last_affirmed</td>
-            	<td>timestamp with time zone</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
             <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>source_time_zone</td>
-            	<td>interval</td>
+            	<td>pk_encounter</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -72431,8 +86678,8 @@ FROM clin.allergy_state a;</pre>
 				<td>
                 
                 </td>
-            	<td>started_original_tz</td>
-            	<td>timestamp without time zone</td>
+            	<td>pk_episode</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -72447,8 +86694,8 @@ FROM clin.allergy_state a;</pre>
 				<td>
                 
                 </td>
-            	<td>last_affirmed_original_tz</td>
-            	<td>timestamp without time zone</td>
+            	<td>pk_health_issue</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -72463,8 +86710,8 @@ FROM clin.allergy_state a;</pre>
 				<td>
                 
                 </td>
-            	<td>praxis_branch</td>
-            	<td>text</td>
+            	<td>src_pk</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -72479,7 +86726,7 @@ FROM clin.allergy_state a;</pre>
 				<td>
                 
                 </td>
-            	<td>praxis</td>
+            	<td>src_table</td>
             	<td>text</td>
                 <td><i>
 				
@@ -72495,7 +86742,7 @@ FROM clin.allergy_state a;</pre>
 				<td>
                 
                 </td>
-            	<td>pk_org_unit</td>
+            	<td>row_version</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -72511,8 +86758,8 @@ FROM clin.allergy_state a;</pre>
 				<td>
                 
                 </td>
-            	<td>pk_org</td>
-            	<td>integer</td>
+            	<td>health_issue</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -72527,8 +86774,8 @@ FROM clin.allergy_state a;</pre>
 				<td>
                 
                 </td>
-            	<td>pk_unit_type</td>
-            	<td>integer</td>
+            	<td>issue_laterality</td>
+            	<td>character varying(2)</td>
                 <td><i>
 				
 
@@ -72543,8 +86790,8 @@ FROM clin.allergy_state a;</pre>
 				<td>
                 
                 </td>
-            	<td>pk_org_type</td>
-            	<td>integer</td>
+            	<td>issue_active</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -72559,8 +86806,8 @@ FROM clin.allergy_state a;</pre>
 				<td>
                 
                 </td>
-            	<td>pk_type</td>
-            	<td>integer</td>
+            	<td>issue_clinically_relevant</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -72575,8 +86822,8 @@ FROM clin.allergy_state a;</pre>
 				<td>
                 
                 </td>
-            	<td>pk_generic_codes_rfe</td>
-            	<td>integer[]</td>
+            	<td>issue_confidential</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -72591,24 +86838,8 @@ FROM clin.allergy_state a;</pre>
 				<td>
                 
                 </td>
-            	<td>pk_generic_codes_aoe</td>
-            	<td>integer[]</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>xmin_encounter</td>
-            	<td>xid</td>
+            	<td>episode</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -72619,12 +86850,12 @@ FROM clin.allergy_state a;</pre>
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>row_version</td>
-            	<td>integer</td>
+            	<td>episode_open</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -72635,12 +86866,12 @@ FROM clin.allergy_state a;</pre>
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
-            	<td>pk_audit</td>
-            	<td>integer</td>
+            	<td>encounter_started</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
@@ -72651,11 +86882,11 @@ FROM clin.allergy_state a;</pre>
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>modified_when</td>
+            	<td>encounter_last_affirmed</td>
             	<td>timestamp with time zone</td>
                 <td><i>
 				
@@ -72667,12 +86898,12 @@ FROM clin.allergy_state a;</pre>
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
-            	<td>modified_by_raw</td>
-            	<td>name</td>
+            	<td>encounter_type</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -72683,11 +86914,11 @@ FROM clin.allergy_state a;</pre>
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>modified_by</td>
+            	<td>encounter_l10n_type</td>
             	<td>text</td>
                 <td><i>
 				
@@ -72718,105 +86949,179 @@ FROM clin.allergy_state a;</pre>
 	<!-- View Definition -->
 	
 	<pre>
-SELECT c_enc.pk AS pk_encounter
-, c_enc.fk_patient AS pk_patient
-, c_enc.started
-, c_et.description AS type
-, _
-(c_et.description) AS l10n_type
-, c_enc.reason_for_encounter
-, c_enc.assessment_of_encounter
-, c_enc.last_affirmed
-, c_enc.source_time_zone
-, (
-SELECT timezone
-     (
-           (
-            SELECT c_enc1.source_time_zone 
-              FROM clin.encounter c_enc1 
-             WHERE (c_enc1.pk = c_enc.pk)
-           )
-           , c_enc.started
-     ) AS timezone
-) AS started_original_tz
-, (
-SELECT timezone
-     (
-           (
-            SELECT c_enc1.source_time_zone 
-              FROM clin.encounter c_enc1 
-             WHERE (c_enc1.pk = c_enc.pk)
-           )
-           , c_enc.last_affirmed
-     ) AS timezone
-) AS last_affirmed_original_tz
-, COALESCE
-(d_ou.description
-     ,'?'::text
-) AS praxis_branch
-, COALESCE
-(d_o.description
-     ,'?'::text
-) AS praxis
-, c_enc.fk_location AS pk_org_unit
-, d_ou.fk_org AS pk_org
-, d_ou.fk_category AS pk_unit_type
-, d_o.fk_category AS pk_org_type
-, c_enc.fk_type AS pk_type
-, COALESCE
-(
-     (
-      SELECT array_agg
-           (c_lc2r.fk_generic_code) AS array_agg 
-        FROM clin.lnk_code2rfe c_lc2r 
-       WHERE (c_lc2r.fk_item = c_enc.pk)
-     )
-     , ARRAY[]::integer[]
-) AS pk_generic_codes_rfe
-, COALESCE
-(
-     (
-      SELECT array_agg
-           (c_lc2a.fk_generic_code) AS array_agg 
-        FROM clin.lnk_code2aoe c_lc2a 
-       WHERE (c_lc2a.fk_item = c_enc.pk)
-     )
-     , ARRAY[]::integer[]
-) AS pk_generic_codes_aoe
-, c_enc.xmin AS xmin_encounter
-, c_enc.row_version
-, c_enc.pk_audit
-, c_enc.modified_when
-, c_enc.modified_by AS modified_by_raw
-, COALESCE
+SELECT c_enc.fk_patient AS pk_patient
+,
+    c_epi.modified_when
+,
+    c_enc.started AS clin_when
+,
+    COALESCE
 (
      (
-      SELECT staff.short_alias 
-        FROM dem.staff 
-       WHERE (staff.db_user = c_enc.modified_by)
+      SELECT staff.short_alias
+           
+        FROM dem.staff
+          
+       WHERE (staff.db_user = c_epi.modified_by)
      )
      , (
            ('<'::text || 
-                 (c_enc.modified_by)::text
+                 (c_epi.modified_by)::text
            ) || '>'::text
      )
-) AS modified_by 
+) AS modified_by
+,
+    'a'::text AS soap_cat
+,
+    
+(
+     (
+           (
+                 (
+                       (
+                             (
+                                   (
+                                         (_
+                                               ('Episode'::text) || 
+                                            ' ('::text) ||
+        CASE
+            WHEN c_epi.is_open THEN _
+                                               ('open'::text)
+            ELSE _
+                                               ('closed'::text)
+        END
+                                         ) || COALESCE
+                                         (
+                                               (
+                                                  ', '::text || c_epi.diagnostic_certainty_classification
+                                               )
+                                               ,''::text
+                                         )
+                                   ) || 
+                         '): '::text
+                       ) || c_epi.description
+                 ) || ';'::text
+           ) || COALESCE
+           (
+                 (
+                       (
+                             (
+                                   ('
+ '::text || _
+                                         ('Synopsis'::text)
+                                   ) || ': '::text
+                             ) || c_epi.summary
+                       ) || ';'::text
+                 )
+                 ,''::text
+           )
+     ) || COALESCE
+     (
+           (
+                 ('
+'::text || array_to_string
+                       (
+                             (
+                              SELECT array_agg
+                                   (
+                                         (
+                                               (
+                                                     (
+                                                           (
+                                                                 (
+                                                                       (
+                                                                             (
+                                                                                   (r_csr.code || 
+                                                                                      ' ('::text) || r_ds.name_short
+                                                                                   ) || ' - '::text
+                                                                             ) || r_ds.version
+                                                                       ) || ' - '::text
+                                                                 ) || r_ds.lang
+                                                           ) || 
+                                                 '): '::text
+                                               ) || r_csr.term
+                                         )
+                                   ) AS array_agg
+           
+                                FROM (
+                                         (clin.lnk_code2episode c_lc2e
+             
+                                            JOIN ref.coding_system_root r_csr 
+                                              ON (
+                                                     (c_lc2e.fk_generic_code = r_csr.pk_coding_system)
+                                               )
+                                         )
+             
+                                      JOIN ref.data_source r_ds 
+                                        ON (
+                                               (r_ds.pk = r_csr.fk_data_source)
+                                         )
+                                   )
+          
+                               WHERE (c_lc2e.fk_item = c_epi.pk)
+                             )
+                             ,'; '::text
+                       )
+                 ) || ';'::text
+           )
+           ,''::text
+     )
+) AS narrative
+,
+    c_epi.fk_encounter AS pk_encounter
+,
+    c_epi.pk AS pk_episode
+,
+    c_epi.fk_health_issue AS pk_health_issue
+,
+    c_epi.pk AS src_pk
+,
+    'clin.episode'::text AS src_table
+,
+    c_epi.row_version
+,
+    c_hi.description AS health_issue
+,
+    c_hi.laterality AS issue_laterality
+,
+    c_hi.is_active AS issue_active
+,
+    c_hi.clinically_relevant AS issue_clinically_relevant
+,
+    c_hi.is_confidential AS issue_confidential
+,
+    c_epi.description AS episode
+,
+    c_epi.is_open AS episode_open
+,
+    c_enc.started AS encounter_started
+,
+    c_enc.last_affirmed AS encounter_last_affirmed
+,
+    c_ety.description AS encounter_type
+,
+    _
+(c_ety.description) AS encounter_l10n_type
+   
 FROM (
      (
-           (clin.encounter c_enc 
-         LEFT JOIN clin.encounter_type c_et 
+           (clin.episode c_epi
+     
+              JOIN clin.encounter c_enc 
                 ON (
-                       (c_enc.fk_type = c_et.pk)
+                       (c_epi.fk_encounter = c_enc.pk)
                  )
            )
-   LEFT JOIN dem.org_unit d_ou 
+     
+        JOIN clin.encounter_type c_ety 
           ON (
-                 (c_enc.fk_location = d_ou.pk)
+                 (c_enc.fk_type = c_ety.pk)
            )
      )
-LEFT JOIN dem.org d_o 
+     
+LEFT JOIN clin.health_issue c_hi 
     ON (
-           (d_ou.fk_org = d_o.pk)
+           (c_epi.fk_health_issue = c_hi.pk)
      )
 );</pre>
 	
@@ -72832,13 +87137,13 @@ LEFT JOIN dem.org d_o
         <hr>
 		<h2>View:
 			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-pat-encounters-journal">v_pat_encounters_journal</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-pat-items">v_pat_items</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.v_pat_encounters_journal Structure</caption>
+                <caption>clin.v_pat_items Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -72850,8 +87155,8 @@ LEFT JOIN dem.org d_o
 				<td>
                 
                 </td>
-            	<td>pk_patient</td>
-            	<td>integer</td>
+            	<td>modified_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
@@ -72866,8 +87171,8 @@ LEFT JOIN dem.org d_o
 				<td>
                 
                 </td>
-            	<td>modified_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>modified_by</td>
+            	<td>name</td>
                 <td><i>
 				
 
@@ -72898,8 +87203,8 @@ LEFT JOIN dem.org d_o
 				<td>
                 
                 </td>
-            	<td>modified_by</td>
-            	<td>text</td>
+            	<td>is_modified</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -72914,8 +87219,8 @@ LEFT JOIN dem.org d_o
 				<td>
                 
                 </td>
-            	<td>soap_cat</td>
-            	<td>text</td>
+            	<td>pk_patient</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -72930,8 +87235,8 @@ LEFT JOIN dem.org d_o
 				<td>
                 
                 </td>
-            	<td>narrative</td>
-            	<td>text</td>
+            	<td>pk_item</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -72994,8 +87299,8 @@ LEFT JOIN dem.org d_o
 				<td>
                 
                 </td>
-            	<td>src_pk</td>
-            	<td>integer</td>
+            	<td>soap_cat</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -73010,7 +87315,7 @@ LEFT JOIN dem.org d_o
 				<td>
                 
                 </td>
-            	<td>src_table</td>
+            	<td>narrative</td>
             	<td>text</td>
                 <td><i>
 				
@@ -73026,8 +87331,8 @@ LEFT JOIN dem.org d_o
 				<td>
                 
                 </td>
-            	<td>row_version</td>
-            	<td>integer</td>
+            	<td>src_table</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -73057,207 +87362,60 @@ LEFT JOIN dem.org d_o
 	<!-- View Definition -->
 	
 	<pre>
-SELECT c_enc.fk_patient AS pk_patient
-, c_enc.modified_when
-, c_enc.started AS clin_when
-, COALESCE
+SELECT cri.modified_when
+,
+    cri.modified_by
+,
+    cri.clin_when
+,
+        CASE cri.row_version
+            WHEN 0 THEN false
+            ELSE true
+        END AS is_modified
+,
+    cenc.fk_patient AS pk_patient
+,
+    cri.pk_item
+,
+    cri.fk_encounter AS pk_encounter
+,
+    cri.fk_episode AS pk_episode
+,
+    cepi.fk_health_issue AS pk_health_issue
+,
+    cri.soap_cat
+,
+    cri.narrative
+,
+    
 (
      (
-      SELECT staff.short_alias 
-        FROM dem.staff 
-       WHERE (staff.db_user = c_enc.modified_by)
-     )
-     , (
-           ('<'::text || 
-                 (c_enc.modified_by)::text
-           ) || '>'::text
+           (pgn.nspname)::text || '.'::text
+     ) || 
+     (pgc.relname)::text
+) AS src_table
+   
+FROM clin.clin_root_item cri
+,
+    clin.encounter cenc
+,
+    clin.episode cepi
+,
+    
+(pg_class pgc
+     
+LEFT JOIN pg_namespace pgn 
+    ON (
+           (pgc.relnamespace = pgn.oid)
      )
-) AS modified_by
-, NULL::text AS soap_cat
-, (
-     (
-           (
-                 (
-                       (
-                             (
-                                   (
-                                         (
-                                               (_
-                                                     ('Encounter'::text) || ': '::text
-                                               ) || 
-                                               (
-                                                SELECT _
-                                                     (encounter_type.description) AS _ 
-                                                  FROM clin.encounter_type 
-                                                 WHERE (encounter_type.pk = c_enc.fk_type)
-                                               )
-                                         ) || to_char
-                                         (c_enc.started
-                                               ,' YYYY-MM-DD HH24:MI'::text
-                                         )
-                                   ) || to_char
-                                   (c_enc.last_affirmed
-                                         ,' - HH24:MI'::text
-                                   )
-                             ) || COALESCE
-                             (
-                                   (
-                                         (
-                                               (
-                                                     (
-                                                           (
-                                                                 (
-                                                                       (
-                                                                             ('
- @ '::text || _
-                                                                                   ('branch'::text)
-                                                                             ) || ' "'::text
-                                                                       ) || d_ou.description
-                                                                 ) || '" '::text
-                                                           ) || _
-                                                           ('of'::text)
-                                                     ) || ' "'::text
-                                               ) || d_o.description
-                                         ) || '"'::text
-                                   )
-                                   ,''::text
-                             )
-                       ) || COALESCE
-                       (
-                             (
-                                   (
-                                         ('
- '::text || _
-                                               ('RFE'::text)
-                                         ) || ': '::text
-                                   ) || c_enc.reason_for_encounter
-                             )
-                             ,''::text
-                       )
-                 ) || COALESCE
-                 (
-                       (
-                             ('
-'::text || array_to_string
-                                   (
-                                         (
-                                          SELECT array_agg
-                                               (
-                                                     (
-                                                           (
-                                                                 (
-                                                                       (
-                                                                             (
-                                                                                   (
-                                                                                         (
-                                                                                               (r_csr.code || 
-                                                                                                  ' ('::text) || r_ds.name_short
-                                                                                               ) || ' - '::text
-                                                                                         ) || r_ds.version
-                                                                                   ) || ' - '::text
-                                                                             ) || r_ds.lang
-                                                                       ) || 
-                                                             '): '::text
-                                                           ) || r_csr.term
-                                                     )
-                                               ) AS array_agg 
-                                            FROM (
-                                                     (clin.lnk_code2rfe c_lc2r 
-                                                        JOIN ref.coding_system_root r_csr 
-                                                          ON (
-                                                                 (c_lc2r.fk_generic_code = r_csr.pk_coding_system)
-                                                           )
-                                                     )
-                                                  JOIN ref.data_source r_ds 
-                                                    ON (
-                                                           (r_ds.pk = r_csr.fk_data_source)
-                                                     )
-                                               )
-                                           WHERE (c_lc2r.fk_item = c_enc.pk)
-                                         )
-                                         ,'; '::text
-                                   )
-                             ) || ';'::text
-                       )
-                       ,''::text
-                 )
-           ) || COALESCE
-           (
-                 (
-                       (
-                             ('
- '::text || _
-                                   ('AOE'::text)
-                             ) || ': '::text
-                       ) || c_enc.assessment_of_encounter
-                 )
-                 ,''::text
-           )
-     ) || COALESCE
+)
+  
+WHERE (
      (
-           (
-                 ('
-'::text || array_to_string
-                       (
-                             (
-                              SELECT array_agg
-                                   (
-                                         (
-                                               (
-                                                     (
-                                                           (
-                                                                 (
-                                                                       (
-                                                                             (
-                                                                                   (r_csr.code || 
-                                                                                      ' ('::text) || r_ds.name_short
-                                                                                   ) || ' - '::text
-                                                                             ) || r_ds.version
-                                                                       ) || ' - '::text
-                                                                 ) || r_ds.lang
-                                                           ) || 
-                                                 '): '::text
-                                               ) || r_csr.term
-                                         )
-                                   ) AS array_agg 
-                                FROM (
-                                         (clin.lnk_code2aoe c_lc2a 
-                                            JOIN ref.coding_system_root r_csr 
-                                              ON (
-                                                     (c_lc2a.fk_generic_code = r_csr.pk_coding_system)
-                                               )
-                                         )
-                                      JOIN ref.data_source r_ds 
-                                        ON (
-                                               (r_ds.pk = r_csr.fk_data_source)
-                                         )
-                                   )
-                               WHERE (c_lc2a.fk_item = c_enc.pk)
-                             )
-                             ,'; '::text
-                       )
-                 ) || ';'::text
-           )
-           ,''::text
-     )
-) AS narrative
-, c_enc.pk AS pk_encounter
-, (-1) AS pk_episode
-, (-1) AS pk_health_issue
-, c_enc.pk AS src_pk
-,'clin.encounter'::text AS src_table
-, c_enc.row_version 
-FROM (
-     (clin.encounter c_enc 
-   LEFT JOIN dem.org_unit d_ou 
-          ON (
-                 (c_enc.fk_location = d_ou.pk)
-           )
-     )
-LEFT JOIN dem.org d_o 
-    ON (
-           (d_ou.fk_org = d_o.pk)
+           (cri.fk_encounter = cenc.pk)
+         AND (cri.fk_episode = cepi.pk)
      )
+   AND (cri.tableoid = pgc.oid)
 );</pre>
 	
 
@@ -73272,13 +87430,15 @@ LEFT JOIN dem.org d_o
         <hr>
 		<h2>View:
 			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-pat-episodes">v_pat_episodes</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-pat-last-vacc4indication">v_pat_last_vacc4indication</a>
 		</h2>
         
+         <p>Lists *latest* vaccinations with total count per indication.</p>
+        
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.v_pat_episodes Structure</caption>
+                <caption>clin.v_pat_last_vacc4indication Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -73306,7 +87466,39 @@ LEFT JOIN dem.org d_o
 				<td>
                 
                 </td>
-            	<td>description</td>
+            	<td>pk_vaccination</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>date_given</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>vaccine</td>
             	<td>text</td>
                 <td><i>
 				
@@ -73322,7 +87514,7 @@ LEFT JOIN dem.org d_o
 				<td>
                 
                 </td>
-            	<td>summary</td>
+            	<td>indication</td>
             	<td>text</td>
                 <td><i>
 				
@@ -73338,8 +87530,8 @@ LEFT JOIN dem.org d_o
 				<td>
                 
                 </td>
-            	<td>episode_open</td>
-            	<td>boolean</td>
+            	<td>l10n_indication</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -73354,7 +87546,7 @@ LEFT JOIN dem.org d_o
 				<td>
                 
                 </td>
-            	<td>health_issue</td>
+            	<td>site</td>
             	<td>text</td>
                 <td><i>
 				
@@ -73370,8 +87562,8 @@ LEFT JOIN dem.org d_o
 				<td>
                 
                 </td>
-            	<td>issue_active</td>
-            	<td>boolean</td>
+            	<td>batch_no</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -73386,8 +87578,8 @@ LEFT JOIN dem.org d_o
 				<td>
                 
                 </td>
-            	<td>issue_clinically_relevant</td>
-            	<td>boolean</td>
+            	<td>reaction</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -73402,8 +87594,8 @@ LEFT JOIN dem.org d_o
 				<td>
                 
                 </td>
-            	<td>started_first</td>
-            	<td>timestamp with time zone</td>
+            	<td>comment</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -73418,8 +87610,8 @@ LEFT JOIN dem.org d_o
 				<td>
                 
                 </td>
-            	<td>started_last</td>
-            	<td>timestamp with time zone</td>
+            	<td>soap_cat</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -73434,7 +87626,7 @@ LEFT JOIN dem.org d_o
 				<td>
                 
                 </td>
-            	<td>last_affirmed</td>
+            	<td>modified_when</td>
             	<td>timestamp with time zone</td>
                 <td><i>
 				
@@ -73450,8 +87642,8 @@ LEFT JOIN dem.org d_o
 				<td>
                 
                 </td>
-            	<td>pk_episode</td>
-            	<td>integer</td>
+            	<td>modified_by</td>
+            	<td>name</td>
                 <td><i>
 				
 
@@ -73466,7 +87658,7 @@ LEFT JOIN dem.org d_o
 				<td>
                 
                 </td>
-            	<td>pk_encounter</td>
+            	<td>row_version</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -73482,7 +87674,7 @@ LEFT JOIN dem.org d_o
 				<td>
                 
                 </td>
-            	<td>pk_health_issue</td>
+            	<td>pk_vaccine</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -73498,8 +87690,8 @@ LEFT JOIN dem.org d_o
 				<td>
                 
                 </td>
-            	<td>episode_modified_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>pk_indication</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -73514,8 +87706,8 @@ LEFT JOIN dem.org d_o
 				<td>
                 
                 </td>
-            	<td>episode_modified_by</td>
-            	<td>name</td>
+            	<td>pk_provider</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -73530,8 +87722,8 @@ LEFT JOIN dem.org d_o
 				<td>
                 
                 </td>
-            	<td>diagnostic_certainty_classification</td>
-            	<td>text</td>
+            	<td>pk_encounter</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -73546,8 +87738,8 @@ LEFT JOIN dem.org d_o
 				<td>
                 
                 </td>
-            	<td>diagnostic_certainty_classification_issue</td>
-            	<td>text</td>
+            	<td>pk_episode</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -73562,8 +87754,8 @@ LEFT JOIN dem.org d_o
 				<td>
                 
                 </td>
-            	<td>pk_generic_codes</td>
-            	<td>integer[]</td>
+            	<td>xmin_vaccination</td>
+            	<td>xid</td>
                 <td><i>
 				
 
@@ -73578,8 +87770,8 @@ LEFT JOIN dem.org d_o
 				<td>
                 
                 </td>
-            	<td>xmin_episode</td>
-            	<td>xid</td>
+            	<td>no_of_shots</td>
+            	<td>bigint</td>
                 <td><i>
 				
 
@@ -73609,109 +87801,82 @@ LEFT JOIN dem.org d_o
 	<!-- View Definition -->
 	
 	<pre>
-SELECT cenc.fk_patient AS pk_patient
-, cep.description
-, cep.summary
-, cep.is_open AS episode_open
-, NULL::text AS health_issue
-, NULL::boolean AS issue_active
-, NULL::boolean AS issue_clinically_relevant
-, (
-SELECT min
-     (cle.started) AS min 
-  FROM clin.encounter cle 
- WHERE (cle.pk = cep.fk_encounter) LIMIT 1
-) AS started_first
-, (
-SELECT max
-     (cle.started) AS max 
-  FROM clin.encounter cle 
- WHERE (cle.pk = cep.fk_encounter) LIMIT 1
-) AS started_last
-, (
-SELECT max
-     (cle.last_affirmed) AS max 
-  FROM clin.encounter cle 
- WHERE (cle.pk = cep.fk_encounter) LIMIT 1
-) AS last_affirmed
-, cep.pk AS pk_episode
-, cep.fk_encounter AS pk_encounter
-, NULL::integer AS pk_health_issue
-, cep.modified_when AS episode_modified_when
-, cep.modified_by AS episode_modified_by
-, cep.diagnostic_certainty_classification
-, NULL::text AS diagnostic_certainty_classification_issue
-, COALESCE
-(
-     (
-      SELECT array_agg
-           (c_lc2e.fk_generic_code) AS array_agg 
-        FROM clin.lnk_code2episode c_lc2e 
-       WHERE (c_lc2e.fk_item = cep.pk)
-     )
-     , ARRAY[]::integer[]
-) AS pk_generic_codes
-, cep.xmin AS xmin_episode 
-FROM (clin.episode cep 
-  JOIN clin.encounter cenc 
-    ON (
-           (cep.fk_encounter = cenc.pk)
-     )
-)
-WHERE (cep.fk_health_issue IS NULL)
-UNION ALLSELECT cenc.fk_patient AS pk_patient
-, cep.description
-, cep.summary
-, cep.is_open AS episode_open
-, chi.description AS health_issue
-, chi.is_active AS issue_active
-, chi.clinically_relevant AS issue_clinically_relevant
-, (
-SELECT min
-     (cle.started) AS min 
-  FROM clin.encounter cle 
- WHERE (cle.pk = cep.fk_encounter) LIMIT 1
-) AS started_first
-, (
-SELECT max
-     (cle.started) AS max 
-  FROM clin.encounter cle 
- WHERE (cle.pk = cep.fk_encounter) LIMIT 1
-) AS started_last
-, (
-SELECT max
-     (cle.last_affirmed) AS max 
-  FROM clin.encounter cle 
- WHERE (cle.pk = cep.fk_encounter) LIMIT 1
-) AS last_affirmed
-, cep.pk AS pk_episode
-, cep.fk_encounter AS pk_encounter
-, cep.fk_health_issue AS pk_health_issue
-, cep.modified_when AS episode_modified_when
-, cep.modified_by AS episode_modified_by
-, cep.diagnostic_certainty_classification
-, chi.diagnostic_certainty_classification AS diagnostic_certainty_classification_issue
-, COALESCE
-(
-     (
-      SELECT array_agg
-           (c_lc2e.fk_generic_code) AS array_agg 
-        FROM clin.lnk_code2episode c_lc2e 
-       WHERE (c_lc2e.fk_item = cep.pk)
-     )
-     , ARRAY[]::integer[]
-) AS pk_generic_codes
-, cep.xmin AS xmin_episode 
-FROM (
-     (clin.episode cep 
-        JOIN clin.encounter cenc 
-          ON (
-                 (cep.fk_encounter = cenc.pk)
+SELECT c_vpv4i.pk_patient
+,
+    c_vpv4i.pk_vaccination
+,
+    c_vpv4i.date_given
+,
+    c_vpv4i.vaccine
+,
+    c_vpv4i.indication
+,
+    c_vpv4i.l10n_indication
+,
+    c_vpv4i.site
+,
+    c_vpv4i.batch_no
+,
+    c_vpv4i.reaction
+,
+    c_vpv4i.comment
+,
+    c_vpv4i.soap_cat
+,
+    c_vpv4i.modified_when
+,
+    c_vpv4i.modified_by
+,
+    c_vpv4i.row_version
+,
+    c_vpv4i.pk_vaccine
+,
+    c_vpv4i.pk_indication
+,
+    c_vpv4i.pk_provider
+,
+    c_vpv4i.pk_encounter
+,
+    c_vpv4i.pk_episode
+,
+    c_vpv4i.xmin_vaccination
+,
+    shots_per_ind.no_of_shots
+   
+FROM (clin.v_pat_vaccs4indication c_vpv4i
+     
+  JOIN (
+      SELECT count
+           (1) AS no_of_shots
+           ,
+            v_pat_vaccs4indication.pk_patient
+           ,
+            v_pat_vaccs4indication.pk_indication
+           
+        FROM clin.v_pat_vaccs4indication
+          
+    GROUP BY v_pat_vaccs4indication.pk_patient
+           , v_pat_vaccs4indication.pk_indication
+     ) shots_per_ind 
+    ON (
+           (
+                 (c_vpv4i.pk_patient = shots_per_ind.pk_patient)
+               AND (c_vpv4i.pk_indication = shots_per_ind.pk_indication)
            )
      )
-  JOIN clin.health_issue chi 
-    ON (
-           (cep.fk_health_issue = chi.pk)
+)
+  
+WHERE (c_vpv4i.date_given = 
+     (
+      SELECT max
+           (c_vpv4i_2.date_given) AS max
+           
+        FROM clin.v_pat_vaccs4indication c_vpv4i_2
+          
+       WHERE (
+                 (c_vpv4i.pk_patient = c_vpv4i_2.pk_patient)
+               AND (c_vpv4i.pk_indication = c_vpv4i_2.pk_indication)
+           )
      )
 );</pre>
 	
@@ -73727,13 +87892,13 @@ FROM (
         <hr>
 		<h2>View:
 			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-pat-episodes-journal">v_pat_episodes_journal</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-pat-narrative-journal">v_pat_narrative_journal</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.v_pat_episodes_journal Structure</caption>
+                <caption>clin.v_pat_narrative_journal Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -73933,172 +88098,12 @@ FROM (
 				</td>
 			 </tr>
             
-        </table>
-
-        <!-- Inherits -->
-		
-
-		
-
-        <!-- Constraint List -->
-		
-
-        <!-- Foreign Key Discovery -->
-		
-
-    <!-- Indexes -->
-    
-
-	<!-- View Definition -->
-	
-	<pre>
-SELECT cenc.fk_patient AS pk_patient
-, cep.modified_when
-, cenc.started AS clin_when
-, COALESCE
-(
-     (
-      SELECT staff.short_alias 
-        FROM dem.staff 
-       WHERE (staff.db_user = cep.modified_by)
-     )
-     , (
-           ('<'::text || 
-                 (cep.modified_by)::text
-           ) || '>'::text
-     )
-) AS modified_by
-,'a'::text AS soap_cat
-, (
-     (
-           (
-                 (
-                       (
-                             (
-                                   (
-                                         (_
-                                               ('Episode'::text) || 
-                                            ' ('::text) || CASE WHEN cep.is_open THEN _
-                                               ('open'::text) ELSE _
-                                               ('closed'::text) END
-                                         ) || COALESCE
-                                         (
-                                               (
-                                                  ', '::text || cep.diagnostic_certainty_classification
-                                               )
-                                               ,''::text
-                                         )
-                                   ) || 
-                         '): '::text
-                       ) || cep.description
-                 ) || ';'::text
-           ) || COALESCE
-           (
-                 (
-                       (
-                             (
-                                   ('
- '::text || _
-                                         ('Synopsis'::text)
-                                   ) || ': '::text
-                             ) || cep.summary
-                       ) || ';'::text
-                 )
-                 ,''::text
-           )
-     ) || COALESCE
-     (
-           (
-                 ('
-'::text || array_to_string
-                       (
-                             (
-                              SELECT array_agg
-                                   (
-                                         (
-                                               (
-                                                     (
-                                                           (
-                                                                 (
-                                                                       (
-                                                                             (
-                                                                                   (r_csr.code || 
-                                                                                      ' ('::text) || r_ds.name_short
-                                                                                   ) || ' - '::text
-                                                                             ) || r_ds.version
-                                                                       ) || ' - '::text
-                                                                 ) || r_ds.lang
-                                                           ) || 
-                                                 '): '::text
-                                               ) || r_csr.term
-                                         )
-                                   ) AS array_agg 
-                                FROM (
-                                         (clin.lnk_code2episode c_lc2e 
-                                            JOIN ref.coding_system_root r_csr 
-                                              ON (
-                                                     (c_lc2e.fk_generic_code = r_csr.pk_coding_system)
-                                               )
-                                         )
-                                      JOIN ref.data_source r_ds 
-                                        ON (
-                                               (r_ds.pk = r_csr.fk_data_source)
-                                         )
-                                   )
-                               WHERE (c_lc2e.fk_item = cep.pk)
-                             )
-                             ,'; '::text
-                       )
-                 ) || ';'::text
-           )
-           ,''::text
-     )
-) AS narrative
-, cep.fk_encounter AS pk_encounter
-, cep.pk AS pk_episode
-, cep.fk_health_issue AS pk_health_issue
-, cep.pk AS src_pk
-,'clin.episode'::text AS src_table
-, cep.row_version 
-FROM (clin.episode cep 
-  JOIN clin.encounter cenc 
-    ON (
-           (cep.fk_encounter = cenc.pk)
-     )
-);</pre>
-	
-
-	<!-- List off permissions -->
-	
-
-	<p>
-		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
-    </p>
-	
-        <hr>
-		<h2>View:
-			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-pat-items">v_pat_items</a>
-		</h2>
-        
-
-
-        <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.v_pat_items Structure</caption>
-                <tr>
-                <th>F-Key</th>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Description</th>
-                </tr>
-            
             <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>modified_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>health_issue</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -74113,8 +88118,8 @@ FROM (clin.episode cep
 				<td>
                 
                 </td>
-            	<td>modified_by</td>
-            	<td>name</td>
+            	<td>issue_laterality</td>
+            	<td>character varying(2)</td>
                 <td><i>
 				
 
@@ -74129,8 +88134,8 @@ FROM (clin.episode cep
 				<td>
                 
                 </td>
-            	<td>clin_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>issue_active</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -74145,7 +88150,7 @@ FROM (clin.episode cep
 				<td>
                 
                 </td>
-            	<td>is_modified</td>
+            	<td>issue_clinically_relevant</td>
             	<td>boolean</td>
                 <td><i>
 				
@@ -74161,8 +88166,8 @@ FROM (clin.episode cep
 				<td>
                 
                 </td>
-            	<td>pk_patient</td>
-            	<td>integer</td>
+            	<td>issue_confidential</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -74177,8 +88182,8 @@ FROM (clin.episode cep
 				<td>
                 
                 </td>
-            	<td>pk_item</td>
-            	<td>integer</td>
+            	<td>episode</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -74193,8 +88198,8 @@ FROM (clin.episode cep
 				<td>
                 
                 </td>
-            	<td>pk_encounter</td>
-            	<td>integer</td>
+            	<td>episode_open</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -74209,8 +88214,8 @@ FROM (clin.episode cep
 				<td>
                 
                 </td>
-            	<td>pk_episode</td>
-            	<td>integer</td>
+            	<td>encounter_started</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
@@ -74225,8 +88230,8 @@ FROM (clin.episode cep
 				<td>
                 
                 </td>
-            	<td>pk_health_issue</td>
-            	<td>integer</td>
+            	<td>encounter_last_affirmed</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
@@ -74241,7 +88246,7 @@ FROM (clin.episode cep
 				<td>
                 
                 </td>
-            	<td>soap_cat</td>
+            	<td>encounter_type</td>
             	<td>text</td>
                 <td><i>
 				
@@ -74257,23 +88262,7 @@ FROM (clin.episode cep
 				<td>
                 
                 </td>
-            	<td>narrative</td>
-            	<td>text</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>src_table</td>
+            	<td>encounter_l10n_type</td>
             	<td>text</td>
                 <td><i>
 				
@@ -74304,38 +88293,111 @@ FROM (clin.episode cep
 	<!-- View Definition -->
 	
 	<pre>
-SELECT cri.modified_when
-, cri.modified_by
-, cri.clin_when
-, CASE cri.row_version WHEN 0 THEN false ELSE true END AS is_modified
-, cenc.fk_patient AS pk_patient
-, cri.pk_item
-, cri.fk_encounter AS pk_encounter
-, cri.fk_episode AS pk_episode
-, cepi.fk_health_issue AS pk_health_issue
-, cri.soap_cat
-, cri.narrative
-, (
+SELECT c_enc.fk_patient AS pk_patient
+,
+    c_n.modified_when
+,
+        CASE
+            WHEN 
+(c_n.soap_cat = ANY 
+     (ARRAY['s'::text
+           ,'o'::text
+           ,'u'::text]
+     )
+) THEN c_enc.started
+            WHEN 
+(c_n.soap_cat IS NULL) THEN c_enc.last_affirmed
+            WHEN 
+(c_n.soap_cat = ANY 
+     (ARRAY['a'::text
+           ,'p'::text]
+     )
+) THEN c_enc.last_affirmed
+            ELSE NULL::timestamp with time zone
+        END AS clin_when
+,
+    COALESCE
+(
      (
-           (pgn.nspname)::text || '.'::text
-     ) || 
-     (pgc.relname)::text
-) AS src_table 
-FROM clin.clin_root_item cri
-, clin.encounter cenc
-, clin.episode cepi
-, (pg_class pgc 
-LEFT JOIN pg_namespace pgn 
-    ON (
-           (pgc.relnamespace = pgn.oid)
+      SELECT staff.short_alias
+           
+        FROM dem.staff
+          
+       WHERE (staff.db_user = c_n.modified_by)
      )
-)
-WHERE (
+     , (
+           ('<'::text || 
+                 (c_n.modified_by)::text
+           ) || '>'::text
+     )
+) AS modified_by
+,
+    c_n.soap_cat
+,
+    c_n.narrative
+,
+    c_n.fk_encounter AS pk_encounter
+,
+    c_n.fk_episode AS pk_episode
+,
+    c_epi.fk_health_issue AS pk_health_issue
+,
+    c_n.pk AS src_pk
+,
+    'clin.clin_narrative'::text AS src_table
+,
+    c_n.row_version
+,
+    c_hi.description AS health_issue
+,
+    c_hi.laterality AS issue_laterality
+,
+    c_hi.is_active AS issue_active
+,
+    c_hi.clinically_relevant AS issue_clinically_relevant
+,
+    c_hi.is_confidential AS issue_confidential
+,
+    c_epi.description AS episode
+,
+    c_epi.is_open AS episode_open
+,
+    c_enc.started AS encounter_started
+,
+    c_enc.last_affirmed AS encounter_last_affirmed
+,
+    c_ety.description AS encounter_type
+,
+    _
+(c_ety.description) AS encounter_l10n_type
+   
+FROM (
      (
-           (cri.fk_encounter = cenc.pk)
-         AND (cri.fk_episode = cepi.pk)
+           (
+                 (clin.clin_narrative c_n
+     
+                    JOIN clin.encounter c_enc 
+                      ON (
+                             (c_n.fk_encounter = c_enc.pk)
+                       )
+                 )
+     
+              JOIN clin.encounter_type c_ety 
+                ON (
+                       (c_enc.fk_type = c_ety.pk)
+                 )
+           )
+     
+        JOIN clin.episode c_epi 
+          ON (
+                 (c_n.fk_episode = c_epi.pk)
+           )
+     )
+     
+LEFT JOIN clin.health_issue c_hi 
+    ON (
+           (c_epi.fk_health_issue = c_hi.pk)
      )
-   AND (cri.tableoid = pgc.oid)
 );</pre>
 	
 
@@ -74350,15 +88412,15 @@ WHERE (
         <hr>
 		<h2>View:
 			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-pat-last-vacc4indication">v_pat_last_vacc4indication</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-pat-vaccinations">v_pat_vaccinations</a>
 		</h2>
         
-         <p>Lists *latest* vaccinations with total count per indication.</p>
+         <p>Lists vaccinations for patients</p>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.v_pat_last_vacc4indication Structure</caption>
+                <caption>clin.v_pat_vaccinations Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -74418,8 +88480,8 @@ WHERE (
 				<td>
                 
                 </td>
-            	<td>vaccine</td>
-            	<td>text</td>
+            	<td>interval_since_given</td>
+            	<td>interval</td>
                 <td><i>
 				
 
@@ -74434,7 +88496,7 @@ WHERE (
 				<td>
                 
                 </td>
-            	<td>indication</td>
+            	<td>vaccine</td>
             	<td>text</td>
                 <td><i>
 				
@@ -74450,8 +88512,8 @@ WHERE (
 				<td>
                 
                 </td>
-            	<td>l10n_indication</td>
-            	<td>text</td>
+            	<td>indications</td>
+            	<td>text[]</td>
                 <td><i>
 				
 
@@ -74466,6 +88528,22 @@ WHERE (
 				<td>
                 
                 </td>
+            	<td>l10n_indications</td>
+            	<td>text[]</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
             	<td>site</td>
             	<td>text</td>
                 <td><i>
@@ -74478,7 +88556,7 @@ WHERE (
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                 </td>
@@ -74494,7 +88572,7 @@ WHERE (
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
@@ -74510,7 +88588,7 @@ WHERE (
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                 </td>
@@ -74526,7 +88604,7 @@ WHERE (
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
@@ -74542,7 +88620,7 @@ WHERE (
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                 </td>
@@ -74551,19 +88629,305 @@ WHERE (
                 <td><i>
 				
 
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>modified_by</td>
+            	<td>name</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>row_version</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>pk_indications</td>
+            	<td>integer[]</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_vaccine</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>pk_provider</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_encounter</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>pk_episode</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>xmin_vaccination</td>
+            	<td>xid</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+        </table>
+
+        <!-- Inherits -->
+		
+
+		
+
+        <!-- Constraint List -->
+		
+
+        <!-- Foreign Key Discovery -->
+		
+
+    <!-- Indexes -->
+    
+
+	<!-- View Definition -->
+	
+	<pre>
+SELECT cenc.fk_patient AS pk_patient
+,
+    clv.pk AS pk_vaccination
+,
+    clv.clin_when AS date_given
+,
+    
+(now
+     () - clv.clin_when
+) AS interval_since_given
+,
+    rbd.description AS vaccine
+,
+    
+(
+SELECT array_agg
+     (cvi.description) AS array_agg
+           
+  FROM (clin.lnk_vaccine2inds clvi
+             
+        JOIN clin.vacc_indication cvi 
+          ON (
+                 (clvi.fk_indication = cvi.id)
+           )
+     )
+          
+ WHERE (clvi.fk_vaccine = clv.fk_vaccine)
+) AS indications
+,
+    
+(
+SELECT array_agg
+     (_
+           (cvi.description)
+     ) AS array_agg
+           
+  FROM (clin.lnk_vaccine2inds clvi
+             
+        JOIN clin.vacc_indication cvi 
+          ON (
+                 (clvi.fk_indication = cvi.id)
+           )
+     )
+          
+ WHERE (clvi.fk_vaccine = clv.fk_vaccine)
+) AS l10n_indications
+,
+    clv.site
+,
+    clv.batch_no
+,
+    clv.reaction
+,
+    clv.narrative AS comment
+,
+    clv.soap_cat
+,
+    clv.modified_when
+,
+    clv.modified_by
+,
+    clv.row_version
+,
+    
+(
+SELECT array_agg
+     (clvi.fk_indication) AS array_agg
+           
+  FROM (clin.lnk_vaccine2inds clvi
+             
+        JOIN clin.vacc_indication cvi 
+          ON (
+                 (clvi.fk_indication = cvi.id)
+           )
+     )
+          
+ WHERE (clvi.fk_vaccine = clv.pk)
+) AS pk_indications
+,
+    clv.fk_vaccine AS pk_vaccine
+,
+    clv.fk_provider AS pk_provider
+,
+    clv.fk_encounter AS pk_encounter
+,
+    clv.fk_episode AS pk_episode
+,
+    clv.xmin AS xmin_vaccination
+   
+FROM (
+     (
+           (clin.vaccination clv
+     
+              JOIN clin.encounter cenc 
+                ON (
+                       (cenc.pk = clv.fk_encounter)
+                 )
+           )
+     
+        JOIN clin.vaccine 
+          ON (
+                 (vaccine.pk = clv.fk_vaccine)
+           )
+     )
+     
+  JOIN ref.branded_drug rbd 
+    ON (
+           (vaccine.fk_brand = rbd.pk)
+     )
+);</pre>
+	
+
+	<!-- List off permissions -->
+	
+
+	<p>
+		<a href="gnumed-entire_schema.html#index">Index</a> -
+		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
+    </p>
+	
+        <hr>
+		<h2>View:
+			
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-pat-vaccs4indication">v_pat_vaccs4indication</a>
+		</h2>
+        
+         <p>Lists vaccinations per indication for patients</p>
+        
+
+
+        <table width="100%" cellspacing="0" cellpadding="3">
+                <caption>clin.v_pat_vaccs4indication Structure</caption>
+                <tr>
+                <th>F-Key</th>
+                <th>Name</th>
+                <th>Type</th>
+                <th>Description</th>
+                </tr>
             
             <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>modified_by</td>
-            	<td>name</td>
+            	<td>pk_patient</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -74578,7 +88942,7 @@ WHERE (
 				<td>
                 
                 </td>
-            	<td>row_version</td>
+            	<td>pk_vaccination</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -74594,8 +88958,8 @@ WHERE (
 				<td>
                 
                 </td>
-            	<td>pk_vaccine</td>
-            	<td>integer</td>
+            	<td>date_given</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
@@ -74610,8 +88974,8 @@ WHERE (
 				<td>
                 
                 </td>
-            	<td>pk_indication</td>
-            	<td>integer</td>
+            	<td>vaccine</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -74626,8 +88990,8 @@ WHERE (
 				<td>
                 
                 </td>
-            	<td>pk_provider</td>
-            	<td>integer</td>
+            	<td>indication</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -74642,8 +89006,8 @@ WHERE (
 				<td>
                 
                 </td>
-            	<td>pk_encounter</td>
-            	<td>integer</td>
+            	<td>l10n_indication</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -74658,8 +89022,8 @@ WHERE (
 				<td>
                 
                 </td>
-            	<td>pk_episode</td>
-            	<td>integer</td>
+            	<td>site</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -74674,24 +89038,8 @@ WHERE (
 				<td>
                 
                 </td>
-            	<td>xmin_vaccination</td>
-            	<td>xid</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>indication_count</td>
-            	<td>bigint</td>
+            	<td>batch_no</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -74702,107 +89050,12 @@ WHERE (
 				</td>
 			 </tr>
             
-        </table>
-
-        <!-- Inherits -->
-		
-
-		
-
-        <!-- Constraint List -->
-		
-
-        <!-- Foreign Key Discovery -->
-		
-
-    <!-- Indexes -->
-    
-
-	<!-- View Definition -->
-	
-	<pre>
-SELECT cvpv4i1.pk_patient
-, cvpv4i1.pk_vaccination
-, cvpv4i1.date_given
-, cvpv4i1.vaccine
-, cvpv4i1.indication
-, cvpv4i1.l10n_indication
-, cvpv4i1.site
-, cvpv4i1.batch_no
-, cvpv4i1.reaction
-, cvpv4i1.comment
-, cvpv4i1.soap_cat
-, cvpv4i1.modified_when
-, cvpv4i1.modified_by
-, cvpv4i1.row_version
-, cvpv4i1.pk_vaccine
-, cvpv4i1.pk_indication
-, cvpv4i1.pk_provider
-, cvpv4i1.pk_encounter
-, cvpv4i1.pk_episode
-, cvpv4i1.xmin_vaccination
-, cpi.indication_count 
-FROM (clin.v_pat_vaccs4indication cvpv4i1 
-  JOIN (
-      SELECT count
-           (1) AS indication_count
-           , v_pat_vaccs4indication.pk_patient
-           , v_pat_vaccs4indication.pk_indication 
-        FROM clin.v_pat_vaccs4indication 
-    GROUP BY v_pat_vaccs4indication.pk_patient
-           , v_pat_vaccs4indication.pk_indication
-     ) cpi 
-    ON (
-           (
-                 (cvpv4i1.pk_patient = cpi.pk_patient)
-               AND (cvpv4i1.pk_indication = cpi.pk_indication)
-           )
-     )
-)
-WHERE (cvpv4i1.date_given = 
-     (
-      SELECT max
-           (cvpv4i2.date_given) AS max 
-        FROM clin.v_pat_vaccs4indication cvpv4i2 
-       WHERE (
-                 (cvpv4i1.pk_patient = cvpv4i2.pk_patient)
-               AND (cvpv4i1.pk_indication = cvpv4i2.pk_indication)
-           )
-     )
-);</pre>
-	
-
-	<!-- List off permissions -->
-	
-
-	<p>
-		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
-    </p>
-	
-        <hr>
-		<h2>View:
-			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-pat-narrative-journal">v_pat_narrative_journal</a>
-		</h2>
-        
-
-
-        <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.v_pat_narrative_journal Structure</caption>
-                <tr>
-                <th>F-Key</th>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Description</th>
-                </tr>
-            
             <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>pk_patient</td>
-            	<td>integer</td>
+            	<td>reaction</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -74817,8 +89070,8 @@ WHERE (cvpv4i1.date_given =
 				<td>
                 
                 </td>
-            	<td>modified_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>comment</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -74833,8 +89086,8 @@ WHERE (cvpv4i1.date_given =
 				<td>
                 
                 </td>
-            	<td>clin_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>soap_cat</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -74849,8 +89102,8 @@ WHERE (cvpv4i1.date_given =
 				<td>
                 
                 </td>
-            	<td>modified_by</td>
-            	<td>text</td>
+            	<td>modified_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
@@ -74865,8 +89118,8 @@ WHERE (cvpv4i1.date_given =
 				<td>
                 
                 </td>
-            	<td>soap_cat</td>
-            	<td>text</td>
+            	<td>modified_by</td>
+            	<td>name</td>
                 <td><i>
 				
 
@@ -74881,8 +89134,8 @@ WHERE (cvpv4i1.date_given =
 				<td>
                 
                 </td>
-            	<td>narrative</td>
-            	<td>text</td>
+            	<td>row_version</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -74897,7 +89150,7 @@ WHERE (cvpv4i1.date_given =
 				<td>
                 
                 </td>
-            	<td>pk_encounter</td>
+            	<td>pk_vaccine</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -74913,7 +89166,7 @@ WHERE (cvpv4i1.date_given =
 				<td>
                 
                 </td>
-            	<td>pk_episode</td>
+            	<td>pk_indication</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -74929,7 +89182,7 @@ WHERE (cvpv4i1.date_given =
 				<td>
                 
                 </td>
-            	<td>pk_health_issue</td>
+            	<td>pk_provider</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -74945,7 +89198,7 @@ WHERE (cvpv4i1.date_given =
 				<td>
                 
                 </td>
-            	<td>src_pk</td>
+            	<td>pk_encounter</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -74961,8 +89214,8 @@ WHERE (cvpv4i1.date_given =
 				<td>
                 
                 </td>
-            	<td>src_table</td>
-            	<td>text</td>
+            	<td>pk_episode</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -74977,8 +89230,8 @@ WHERE (cvpv4i1.date_given =
 				<td>
                 
                 </td>
-            	<td>row_version</td>
-            	<td>integer</td>
+            	<td>xmin_vaccination</td>
+            	<td>xid</td>
                 <td><i>
 				
 
@@ -75008,50 +89261,58 @@ WHERE (cvpv4i1.date_given =
 	<!-- View Definition -->
 	
 	<pre>
-SELECT cenc.fk_patient AS pk_patient
-, cn.modified_when
-, CASE WHEN 
-(cn.soap_cat = ANY 
-     (ARRAY['s'::text
-           ,'o'::text
-           ,'u'::text]
-     )
-) THEN cenc.started WHEN 
-(cn.soap_cat IS NULL) THEN cenc.last_affirmed WHEN 
-(cn.soap_cat = ANY 
-     (ARRAY['a'::text
-           ,'p'::text]
-     )
-) THEN cenc.last_affirmed ELSE NULL::timestamp with time zone END AS clin_when
-, COALESCE
-(
-     (
-      SELECT staff.short_alias 
-        FROM dem.staff 
-       WHERE (staff.db_user = cn.modified_by)
-     )
-     , (
-           ('<'::text || 
-                 (cn.modified_by)::text
-           ) || '>'::text
+SELECT c_enc.fk_patient AS pk_patient
+,
+    c_shot.pk AS pk_vaccination
+,
+    c_shot.clin_when AS date_given
+,
+    c_vlv2i.vaccine
+,
+    c_vlv2i.indication
+,
+    c_vlv2i.l10n_indication
+,
+    c_shot.site
+,
+    c_shot.batch_no
+,
+    c_shot.reaction
+,
+    c_shot.narrative AS comment
+,
+    c_shot.soap_cat
+,
+    c_shot.modified_when
+,
+    c_shot.modified_by
+,
+    c_shot.row_version
+,
+    c_shot.fk_vaccine AS pk_vaccine
+,
+    c_vlv2i.pk_indication
+,
+    c_shot.fk_provider AS pk_provider
+,
+    c_shot.fk_encounter AS pk_encounter
+,
+    c_shot.fk_episode AS pk_episode
+,
+    c_shot.xmin AS xmin_vaccination
+   
+FROM (
+     (clin.vaccination c_shot
+     
+        JOIN clin.encounter c_enc 
+          ON (
+                 (c_enc.pk = c_shot.fk_encounter)
+           )
      )
-) AS modified_by
-, cn.soap_cat
-, cn.narrative
-, cn.fk_encounter AS pk_encounter
-, cn.fk_episode AS pk_episode
-, (
-SELECT episode.fk_health_issue 
-  FROM clin.episode 
- WHERE (episode.pk = cn.fk_episode)
-) AS pk_health_issue
-, cn.pk AS src_pk
-,'clin.clin_narrative'::text AS src_table
-, cn.row_version 
-FROM (clin.clin_narrative cn 
-  JOIN clin.encounter cenc 
+     
+  JOIN clin.v_lnk_vaccine2inds c_vlv2i 
     ON (
-           (cn.fk_encounter = cenc.pk)
+           (c_vlv2i.pk_vaccine = c_shot.fk_vaccine)
      )
 );</pre>
 	
@@ -75067,13 +89328,13 @@ FROM (clin.clin_narrative cn
         <hr>
 		<h2>View:
 			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-pat-substance-intake-journal">v_pat_substance_intake_journal</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-potential-problem-list">v_potential_problem_list</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.v_pat_substance_intake_journal Structure</caption>
+                <caption>clin.v_potential_problem_list Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -75101,8 +89362,8 @@ FROM (clin.clin_narrative cn
 				<td>
                 
                 </td>
-            	<td>modified_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>problem</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -75117,8 +89378,8 @@ FROM (clin.clin_narrative cn
 				<td>
                 
                 </td>
-            	<td>clin_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>summary</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -75133,7 +89394,7 @@ FROM (clin.clin_narrative cn
 				<td>
                 
                 </td>
-            	<td>modified_by</td>
+            	<td>type</td>
             	<td>text</td>
                 <td><i>
 				
@@ -75149,7 +89410,7 @@ FROM (clin.clin_narrative cn
 				<td>
                 
                 </td>
-            	<td>soap_cat</td>
+            	<td>l10n_type</td>
             	<td>text</td>
                 <td><i>
 				
@@ -75165,8 +89426,8 @@ FROM (clin.clin_narrative cn
 				<td>
                 
                 </td>
-            	<td>narrative</td>
-            	<td>text</td>
+            	<td>problem_active</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -75181,8 +89442,8 @@ FROM (clin.clin_narrative cn
 				<td>
                 
                 </td>
-            	<td>pk_encounter</td>
-            	<td>integer</td>
+            	<td>clinically_relevant</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -75214,437 +89475,154 @@ FROM (clin.clin_narrative cn
                 
                 </td>
             	<td>pk_health_issue</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>src_pk</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>src_table</td>
-            	<td>text</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>row_version</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-        </table>
-
-        <!-- Inherits -->
-		
-
-		
-
-        <!-- Constraint List -->
-		
-
-        <!-- Foreign Key Discovery -->
-		
-
-    <!-- Indexes -->
-    
-
-	<!-- View Definition -->
-	
-	<pre>
-SELECT (
-SELECT encounter.fk_patient 
-  FROM clin.encounter 
- WHERE (encounter.pk = c_si.fk_encounter)
-) AS pk_patient
-, c_si.modified_when
-, c_si.clin_when
-, COALESCE
-(
-     (
-      SELECT staff.short_alias 
-        FROM dem.staff 
-       WHERE (staff.db_user = c_si.modified_by)
-     )
-     , (
-           ('<'::text || 
-                 (c_si.modified_by)::text
-           ) || '>'::text
-     )
-) AS modified_by
-, c_si.soap_cat
-, (
-     (
-           (
-                 (
-                       (
-                             (
-                                   (
-                                         (
-                                               (
-                                                     (
-                                                           (
-                                                                 (
-                                                                       (
-                                                                             (
-                                                                                   (
-                                                                                         (
-                                                                                               (
-                                                                                                     (
-                                                                                                           (CASE WHEN 
-                                                                                                                 (c_si.is_long_term IS TRUE) THEN 
-                                                                                                                 (_
-                                                                                                                       ('long-term'::text) || ' '::text
-                                                                                                                 ) ELSE ''::text END || _
-                                                                                                                 ('substance intake'::text)
-                                                                                                           ) || ' '::text
-                                                                                                     ) || CASE WHEN 
-                                                                                                     (c_si.intake_is_approved_of IS TRUE) THEN _
-                                                                                                     ('(approved of)'::text
-                                                                                               ) WHEN 
-                                                                                               (c_si.intake_is_approved_of IS FALSE) THEN _
-                                                                                               ('(not approved of)'::text
-                                                                                         ) ELSE _
-                                                                                         ('(of unknown approval)'::text
-                                                                                   ) END
-                                                                             ) || ':
-'::text
-                                                                       ) || ' '::text
-                                                                 ) || r_cs.description
-                                                           ) || COALESCE
-                                                           (
-                                                                 (
-                                                                       (' ['::text || r_cs.atc_code) || '] '::text
-                                                                 )
-                                                                 ,' '::text
-                                                           )
-                                                     ) || 
-                                                     (r_cs.amount)::text
-                                               ) || r_cs.unit
-                                         ) || ' '::text
-                                   ) || r_bd.preparation
-                             ) || COALESCE
-                             (
-                                   (' '::text || c_si.schedule)
-                                   ,''::text
-                             )
-                       ) || 
-                    ', '::text
-                 ) || to_char
-                 (c_si.clin_when
-                       ,'YYYY-MM-DD'::text
-                 )
-           ) || COALESCE
-           (
-                 (' -> '::text || c_si.duration)
-                 ,''::text
-           )
-     ) || '
-'::text
-) || COALESCE
-(
-     (
-           (
-                 (
-                       (' '::text || _
-                             ('discontinued'::text)
-                       ) || to_char
-                       (c_si.discontinued
-                             ,': YYYY-MM-DD'::text
-                       )
-                 ) || COALESCE
-                 (
-                       (
-                             (
-                                 '('::text || c_si.discontinue_reason) || 
-                           ')'::text
-                       )
-                       ,''::text
-                 )
-           ) || '
-'::text
-     )
-     ,''::text
-)
-)      || COALESCE
-(     NULLIF
-(
-     (
-           (COALESCE
-                 (
-                       (' '::text || c_si.aim)
-                       ,''::text
-                 ) || COALESCE
-                 (
-                       (
-                             (
-                                ' ('::text || c_si.narrative) || 
-                           ')'::text
-                       )
-                       ,''::text
-                 )
-           ) || '
-'::text
-     )
-     ,'
-'::text
-)
-,''::text
-)     
-)            || COALESCE
-(           
-(     
-(
-     (
-           (' "'::text || r_bd.description) || '"'::text
-     ) || COALESCE
-     (
-           (
-                 (' ['::text || r_bd.atc_code) || ']'::text
-           )
-           ,''::text
-     )
-) || COALESCE
-(
-     (
-           (
-                 (
-                       (
-                          ' ('::text || r_bd.external_code_type) || ': '::text
-                       ) || r_bd.external_code
-                 ) || 
-         ')'::text
-     )
-     ,''::text
-)
-)     
-,     ''::text
-)           
-)                  AS narrative
-,                  c_si.fk_encounter AS pk_encounter
-,                  c_si.fk_episode AS pk_episode
-,                  (
-SELECT       episode.fk_health_issue 
-FROM         clin.episode 
-WHERE        (episode.pk = c_si.fk_episode)
-)                  AS pk_health_issue
-,                  c_si.pk AS src_pk
-,                 'clin.substance_intake'::text AS src_table
-,                  c_si.row_version 
-FROM               (
-(           
-(     clin.substance_intake c_si 
-JOIN ref.lnk_substance2brand r_ls2b 
-ON (
-     (c_si.fk_drug_component = r_ls2b.pk)
-)
-)     
-JOIN   ref.branded_drug r_bd 
-ON     (
-(r_bd.pk = r_ls2b.fk_brand)
-)     
-)           
-JOIN         ref.consumable_substance r_cs 
-ON           (
-(     r_cs.pk = r_ls2b.fk_substance)
-)           
-)                 
-WHERE              (c_si.fk_drug_component IS NOT NULL)
-UNION ALL         SELECT (
-SELECT       encounter.fk_patient 
-FROM         clin.encounter 
-WHERE        (encounter.pk = c_si.fk_encounter)
-)                  AS pk_patient
-,                  c_si.modified_when
-,                  c_si.clin_when
-,                  COALESCE
-(                 
-(           
-SELECT staff.short_alias 
-FROM   dem.staff 
-WHERE  (staff.db_user = c_si.modified_by)
-)           
-,            (
-(     '<'::text || 
-(c_si.modified_by)::text
-)      || '>'::text
-)           
-)                  AS modified_by
-,                  c_si.soap_cat
-,                  (
-(           
-(     
-(
-     (
-           (
-                 (
-                       (
-                             (
-                                   (
-                                         (
-                                               (
-                                                     (
-                                                           (
-                                                                 (
-                                                                       (
-                                                                             (
-                                                                                   (CASE WHEN 
-                                                                                         (c_si.is_long_term IS TRUE) THEN 
-                                                                                         (_
-                                                                                               ('long-term'::text) || ' '::text
-                                                                                         ) ELSE ''::text END || _
-                                                                                         ('substance intake'::text)
-                                                                                   ) || ' '::text
-                                                                             ) || CASE WHEN 
-                                                                             (c_si.intake_is_approved_of IS TRUE) THEN _
-                                                                             ('(approved of)'::text
-                                                                       ) WHEN 
-                                                                       (c_si.intake_is_approved_of IS FALSE) THEN _
-                                                                       ('(not approved of)'::text
-                                                                 ) ELSE _
-                                                                 ('(of unknown approval)'::text
-                                                           ) END
-                                                     ) || ':
-'::text
-                                               ) || ' '::text
-                                         ) || r_cs.description
-                                   ) || COALESCE
-                                   (
-                                         (
-                                               (' ['::text || r_cs.atc_code) || '] '::text
-                                         )
-                                         ,' '::text
-                                   )
-                             ) || r_cs.amount
-                       ) || r_cs.unit
-                 ) || ' '::text
-           ) || c_si.preparation
-     ) || COALESCE
-     (
-           (' '::text || c_si.schedule)
-           ,''::text
-     )
-) || 
-', '::text
-)      || to_char
-(     c_si.clin_when
-,'YYYY-MM-DD'::text
-)     
-)            || COALESCE
-(           
-(     ' -> '::text || c_si.duration)
-,     ''::text
-)           
-)                  || '
-'::text
-)                        || COALESCE
-(                       
-(                 
-(           
-(     
-(' '::text || _
-     ('discontinued'::text)
-) || to_char
-(c_si.discontinued
-     ,': YYYY-MM-DD'::text
-)
-)      || COALESCE
-(     
-(
-     (
-         '('::text || c_si.discontinue_reason) || 
-   ')'::text
-)
-,''::text
-)     
-)            || '
-'::text
-)                 
-,                 ''::text
-)                       
-)                              || COALESCE
-(                             NULLIF
-(                       
-(                 
-(           COALESCE
-(     
-(' '::text || c_si.aim)
-,''::text
-)      || COALESCE
-(     
-(
-     (
-        ' ('::text || c_si.narrative) || 
-   ')'::text
-)
-,''::text
-)     
-)            || '
-'::text
-)                 
-,                 '
-'::text
-)                       
-,                       ''::text
-)                             
-)                                    AS narrative
-,                                    c_si.fk_encounter AS pk_encounter
-,                                    c_si.fk_episode AS pk_episode
-,                                    (
-SELECT                         episode.fk_health_issue 
-FROM                           clin.episode 
-WHERE                          (episode.pk = c_si.fk_episode)
-)                                    AS pk_health_issue
-,                                    c_si.pk AS src_pk
-,                                   'clin.substance_intake'::text AS src_table
-,                                    c_si.row_version 
-FROM                                 (clin.substance_intake c_si 
-JOIN                           ref.consumable_substance r_cs 
-ON                             (
-(                       r_cs.pk = c_si.fk_substance)
-)                             
-)                                   
-WHERE                                (c_si.fk_drug_component IS NULL);</pre>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>diagnostic_certainty_classification</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_encounter</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>modified_when</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+        </table>
+
+        <!-- Inherits -->
+		
+
+		
+
+        <!-- Constraint List -->
+		
+
+        <!-- Foreign Key Discovery -->
+		
+
+    <!-- Indexes -->
+    
+
+	<!-- View Definition -->
+	
+	<pre>
+SELECT (
+SELECT encounter.fk_patient
+           
+  FROM clin.encounter
+          
+ WHERE (encounter.pk = cep.fk_encounter)
+) AS pk_patient
+,
+    cep.description AS problem
+,
+    cep.summary
+,
+    'episode'::text AS type
+,
+    _
+('episode'::text) AS l10n_type
+,
+    false AS problem_active
+,
+    false AS clinically_relevant
+,
+    cep.pk AS pk_episode
+,
+    cep.fk_health_issue AS pk_health_issue
+,
+    cep.diagnostic_certainty_classification
+,
+    cep.fk_encounter AS pk_encounter
+,
+    cep.modified_when
+   
+FROM clin.episode cep
+  
+WHERE (cep.is_open IS FALSE)
+UNION
+ 
+SELECT (
+SELECT encounter.fk_patient
+           
+  FROM clin.encounter
+          
+ WHERE (encounter.pk = chi.fk_encounter)
+) AS pk_patient
+,
+    chi.description AS problem
+,
+    chi.summary
+,
+    'issue'::text AS type
+,
+    _
+('health issue'::text) AS l10n_type
+,
+    chi.is_active AS problem_active
+,
+    false AS clinically_relevant
+,
+    NULL::integer AS pk_episode
+,
+    chi.pk AS pk_health_issue
+,
+    chi.diagnostic_certainty_classification
+,
+    chi.fk_encounter AS pk_encounter
+,
+    chi.modified_when
+   
+FROM clin.health_issue chi
+  
+WHERE (chi.clinically_relevant IS FALSE);</pre>
 	
 
 	<!-- List off permissions -->
@@ -75658,15 +89636,13 @@ WHERE                                (c_si.fk_drug_component IS NULL);</pre>
         <hr>
 		<h2>View:
 			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-pat-vaccinations">v_pat_vaccinations</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-problem-list">v_problem_list</a>
 		</h2>
         
-         <p>Lists vaccinations for patients</p>
-        
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.v_pat_vaccinations Structure</caption>
+                <caption>clin.v_problem_list Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -75694,8 +89670,8 @@ WHERE                                (c_si.fk_drug_component IS NULL);</pre>
 				<td>
                 
                 </td>
-            	<td>pk_vaccination</td>
-            	<td>integer</td>
+            	<td>problem</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -75710,8 +89686,8 @@ WHERE                                (c_si.fk_drug_component IS NULL);</pre>
 				<td>
                 
                 </td>
-            	<td>date_given</td>
-            	<td>timestamp with time zone</td>
+            	<td>summary</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -75726,8 +89702,8 @@ WHERE                                (c_si.fk_drug_component IS NULL);</pre>
 				<td>
                 
                 </td>
-            	<td>interval_since_given</td>
-            	<td>interval</td>
+            	<td>type</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -75742,7 +89718,7 @@ WHERE                                (c_si.fk_drug_component IS NULL);</pre>
 				<td>
                 
                 </td>
-            	<td>vaccine</td>
+            	<td>l10n_type</td>
             	<td>text</td>
                 <td><i>
 				
@@ -75758,8 +89734,8 @@ WHERE                                (c_si.fk_drug_component IS NULL);</pre>
 				<td>
                 
                 </td>
-            	<td>indications</td>
-            	<td>text[]</td>
+            	<td>problem_active</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -75774,8 +89750,8 @@ WHERE                                (c_si.fk_drug_component IS NULL);</pre>
 				<td>
                 
                 </td>
-            	<td>l10n_indications</td>
-            	<td>text[]</td>
+            	<td>clinically_relevant</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -75790,8 +89766,8 @@ WHERE                                (c_si.fk_drug_component IS NULL);</pre>
 				<td>
                 
                 </td>
-            	<td>site</td>
-            	<td>text</td>
+            	<td>pk_episode</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -75806,8 +89782,8 @@ WHERE                                (c_si.fk_drug_component IS NULL);</pre>
 				<td>
                 
                 </td>
-            	<td>batch_no</td>
-            	<td>text</td>
+            	<td>pk_health_issue</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -75822,7 +89798,7 @@ WHERE                                (c_si.fk_drug_component IS NULL);</pre>
 				<td>
                 
                 </td>
-            	<td>reaction</td>
+            	<td>diagnostic_certainty_classification</td>
             	<td>text</td>
                 <td><i>
 				
@@ -75838,8 +89814,8 @@ WHERE                                (c_si.fk_drug_component IS NULL);</pre>
 				<td>
                 
                 </td>
-            	<td>comment</td>
-            	<td>text</td>
+            	<td>pk_encounter</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -75854,8 +89830,8 @@ WHERE                                (c_si.fk_drug_component IS NULL);</pre>
 				<td>
                 
                 </td>
-            	<td>soap_cat</td>
-            	<td>text</td>
+            	<td>modified_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
@@ -75866,12 +89842,128 @@ WHERE                                (c_si.fk_drug_component IS NULL);</pre>
 				</td>
 			 </tr>
             
+        </table>
+
+        <!-- Inherits -->
+		
+
+		
+
+        <!-- Constraint List -->
+		
+
+        <!-- Foreign Key Discovery -->
+		
+
+    <!-- Indexes -->
+    
+
+	<!-- View Definition -->
+	
+	<pre>
+SELECT (
+SELECT encounter.fk_patient
+           
+  FROM clin.encounter
+          
+ WHERE (encounter.pk = cep.fk_encounter)
+) AS pk_patient
+,
+    cep.description AS problem
+,
+    cep.summary
+,
+    'episode'::text AS type
+,
+    _
+('episode'::text) AS l10n_type
+,
+    true AS problem_active
+,
+    true AS clinically_relevant
+,
+    cep.pk AS pk_episode
+,
+    cep.fk_health_issue AS pk_health_issue
+,
+    cep.diagnostic_certainty_classification
+,
+    cep.fk_encounter AS pk_encounter
+,
+    cep.modified_when
+   
+FROM clin.episode cep
+  
+WHERE (cep.is_open IS TRUE)
+UNION
+ 
+SELECT (
+SELECT encounter.fk_patient
+           
+  FROM clin.encounter
+          
+ WHERE (encounter.pk = chi.fk_encounter)
+) AS pk_patient
+,
+    chi.description AS problem
+,
+    chi.summary
+,
+    'issue'::text AS type
+,
+    _
+('health issue'::text) AS l10n_type
+,
+    chi.is_active AS problem_active
+,
+    true AS clinically_relevant
+,
+    NULL::integer AS pk_episode
+,
+    chi.pk AS pk_health_issue
+,
+    chi.diagnostic_certainty_classification
+,
+    chi.fk_encounter AS pk_encounter
+,
+    chi.modified_when
+   
+FROM clin.health_issue chi
+  
+WHERE (chi.clinically_relevant IS TRUE);</pre>
+	
+
+	<!-- List off permissions -->
+	
+
+	<p>
+		<a href="gnumed-entire_schema.html#index">Index</a> -
+		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
+    </p>
+	
+        <hr>
+		<h2>View:
+			
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-procedures">v_procedures</a>
+		</h2>
+        
+
+
+        <table width="100%" cellspacing="0" cellpadding="3">
+                <caption>clin.v_procedures Structure</caption>
+                <tr>
+                <th>F-Key</th>
+                <th>Name</th>
+                <th>Type</th>
+                <th>Description</th>
+                </tr>
+            
             <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>modified_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>pk_procedure</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -75886,8 +89978,8 @@ WHERE                                (c_si.fk_drug_component IS NULL);</pre>
 				<td>
                 
                 </td>
-            	<td>modified_by</td>
-            	<td>name</td>
+            	<td>pk_patient</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -75902,8 +89994,8 @@ WHERE                                (c_si.fk_drug_component IS NULL);</pre>
 				<td>
                 
                 </td>
-            	<td>row_version</td>
-            	<td>integer</td>
+            	<td>soap_cat</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -75918,8 +90010,8 @@ WHERE                                (c_si.fk_drug_component IS NULL);</pre>
 				<td>
                 
                 </td>
-            	<td>pk_indications</td>
-            	<td>integer[]</td>
+            	<td>clin_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
@@ -75934,8 +90026,8 @@ WHERE                                (c_si.fk_drug_component IS NULL);</pre>
 				<td>
                 
                 </td>
-            	<td>pk_vaccine</td>
-            	<td>integer</td>
+            	<td>clin_end</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
@@ -75950,8 +90042,8 @@ WHERE                                (c_si.fk_drug_component IS NULL);</pre>
 				<td>
                 
                 </td>
-            	<td>pk_provider</td>
-            	<td>integer</td>
+            	<td>is_ongoing</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -75966,8 +90058,8 @@ WHERE                                (c_si.fk_drug_component IS NULL);</pre>
 				<td>
                 
                 </td>
-            	<td>pk_encounter</td>
-            	<td>integer</td>
+            	<td>performed_procedure</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -75982,8 +90074,8 @@ WHERE                                (c_si.fk_drug_component IS NULL);</pre>
 				<td>
                 
                 </td>
-            	<td>pk_episode</td>
-            	<td>integer</td>
+            	<td>unit</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -75998,8 +90090,8 @@ WHERE                                (c_si.fk_drug_component IS NULL);</pre>
 				<td>
                 
                 </td>
-            	<td>xmin_vaccination</td>
-            	<td>xid</td>
+            	<td>organization</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -76010,133 +90102,28 @@ WHERE                                (c_si.fk_drug_component IS NULL);</pre>
 				</td>
 			 </tr>
             
-        </table>
-
-        <!-- Inherits -->
-		
-
-		
-
-        <!-- Constraint List -->
-		
-
-        <!-- Foreign Key Discovery -->
-		
-
-    <!-- Indexes -->
-    
-
-	<!-- View Definition -->
-	
-	<pre>
-SELECT cenc.fk_patient AS pk_patient
-, clv.pk AS pk_vaccination
-, clv.clin_when AS date_given
-, (now
-     () - clv.clin_when
-) AS interval_since_given
-, rbd.description AS vaccine
-, (
-SELECT array_agg
-     (cvi.description) AS array_agg 
-  FROM (clin.lnk_vaccine2inds clvi 
-        JOIN clin.vacc_indication cvi 
-          ON (
-                 (clvi.fk_indication = cvi.id)
-           )
-     )
- WHERE (clvi.fk_vaccine = clv.fk_vaccine)
-) AS indications
-, (
-SELECT array_agg
-     (_
-           (cvi.description)
-     ) AS array_agg 
-  FROM (clin.lnk_vaccine2inds clvi 
-        JOIN clin.vacc_indication cvi 
-          ON (
-                 (clvi.fk_indication = cvi.id)
-           )
-     )
- WHERE (clvi.fk_vaccine = clv.fk_vaccine)
-) AS l10n_indications
-, clv.site
-, clv.batch_no
-, clv.reaction
-, clv.narrative AS comment
-, clv.soap_cat
-, clv.modified_when
-, clv.modified_by
-, clv.row_version
-, (
-SELECT array_agg
-     (clvi.fk_indication) AS array_agg 
-  FROM (clin.lnk_vaccine2inds clvi 
-        JOIN clin.vacc_indication cvi 
-          ON (
-                 (clvi.fk_indication = cvi.id)
-           )
-     )
- WHERE (clvi.fk_vaccine = clv.pk)
-) AS pk_indications
-, clv.fk_vaccine AS pk_vaccine
-, clv.fk_provider AS pk_provider
-, clv.fk_encounter AS pk_encounter
-, clv.fk_episode AS pk_episode
-, clv.xmin AS xmin_vaccination 
-FROM (
-     (
-           (clin.vaccination clv 
-              JOIN clin.encounter cenc 
-                ON (
-                       (cenc.pk = clv.fk_encounter)
-                 )
-           )
-        JOIN clin.vaccine 
-          ON (
-                 (vaccine.pk = clv.fk_vaccine)
-           )
-     )
-  JOIN ref.branded_drug rbd 
-    ON (
-           (vaccine.fk_brand = rbd.pk)
-     )
-);</pre>
-	
-
-	<!-- List off permissions -->
-	
-
-	<p>
-		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
-    </p>
-	
-        <hr>
-		<h2>View:
-			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-pat-vaccinations-journal">v_pat_vaccinations_journal</a>
-		</h2>
-        
-         <p>Vaccination data denormalized for the EMR journal.</p>
-        
-
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>episode</td>
+            	<td>text</td>
+                <td><i>
+				
 
-        <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.v_pat_vaccinations_journal Structure</caption>
-                <tr>
-                <th>F-Key</th>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Description</th>
-                </tr>
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
             
             <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>pk_patient</td>
-            	<td>integer</td>
+            	<td>health_issue</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -76167,8 +90154,8 @@ FROM (
 				<td>
                 
                 </td>
-            	<td>clin_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>modified_by</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -76183,8 +90170,8 @@ FROM (
 				<td>
                 
                 </td>
-            	<td>modified_by</td>
-            	<td>text</td>
+            	<td>row_version</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -76199,8 +90186,8 @@ FROM (
 				<td>
                 
                 </td>
-            	<td>soap_cat</td>
-            	<td>text</td>
+            	<td>pk_encounter</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -76215,8 +90202,8 @@ FROM (
 				<td>
                 
                 </td>
-            	<td>narrative</td>
-            	<td>text</td>
+            	<td>pk_episode</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -76231,7 +90218,7 @@ FROM (
 				<td>
                 
                 </td>
-            	<td>pk_encounter</td>
+            	<td>pk_hospital_stay</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -76247,7 +90234,7 @@ FROM (
 				<td>
                 
                 </td>
-            	<td>pk_episode</td>
+            	<td>pk_health_issue</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -76263,7 +90250,7 @@ FROM (
 				<td>
                 
                 </td>
-            	<td>pk_health_issue</td>
+            	<td>pk_org</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -76279,7 +90266,7 @@ FROM (
 				<td>
                 
                 </td>
-            	<td>src_pk</td>
+            	<td>pk_org_unit</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -76295,8 +90282,8 @@ FROM (
 				<td>
                 
                 </td>
-            	<td>src_table</td>
-            	<td>text</td>
+            	<td>pk_generic_codes</td>
+            	<td>integer[]</td>
                 <td><i>
 				
 
@@ -76311,8 +90298,8 @@ FROM (
 				<td>
                 
                 </td>
-            	<td>row_version</td>
-            	<td>integer</td>
+            	<td>xmin_procedure</td>
+            	<td>xid</td>
                 <td><i>
 				
 
@@ -76342,129 +90329,99 @@ FROM (
 	<!-- View Definition -->
 	
 	<pre>
-SELECT cenc.fk_patient AS pk_patient
-, cv.modified_when
-, cv.clin_when
-, COALESCE
-(
-     (
-      SELECT staff.short_alias 
-        FROM dem.staff 
-       WHERE (staff.db_user = cv.modified_by)
-     )
-     , (
-           ('<'::text || 
-                 (cv.modified_by)::text
-           ) || '>'::text
-     )
-) AS modified_by
-, cv.soap_cat
-, (
-     (
-           (
-                 (
-                       (
-                             (
-                                   (
-                                         (
-                                               (
-                                                     (_
-                                                           ('Vaccination'::text) || ': '::text
-                                                     ) || rbd.description
-                                               ) || ' '::text
-                                         ) || '['::text
-                                   ) || cv.batch_no
-                             ) || ']'::text
-                       ) || COALESCE
-                       (
-                             (
-                                   (
-                                      ' ('::text || cv.site) || 
-                                 ')'::text
-                             )
-                             ,''::text
-                       )
-                 ) || COALESCE
-                 (
-                       (
-                             (
-                                   ('
-'::text || _
-                                         ('Reaction'::text)
-                                   ) || ': '::text
-                             ) || cv.reaction
-                       )
-                       ,''::text
-                 )
-           ) || COALESCE
-           (
-                 (
-                       (
-                             ('
-'::text || _
-                                   ('Comment'::text)
-                             ) || ': '::text
-                       ) || cv.narrative
-                 )
-                 ,''::text
-           )
-     ) || COALESCE
-     (
-           (
-                 (
-                       ('
-'::text || _
-                             ('Indications'::text)
-                       ) || ': '::text
-                 ) || array_to_string
-                 (
-                       (
-                        SELECT array_agg
-                             (_
-                                   (cvi.description)
-                             ) AS array_agg 
-                          FROM (clin.lnk_vaccine2inds clvi 
-                                JOIN clin.vacc_indication cvi 
-                                  ON (
-                                         (clvi.fk_indication = cvi.id)
-                                   )
-                             )
-                         WHERE (clvi.fk_vaccine = cv.fk_vaccine)
-                       )
-                       ,' / '::text
-                 )
-           )
-           ,''::text
-     )
-) AS narrative
-, cv.fk_encounter AS pk_encounter
-, cv.fk_episode AS pk_episode
-, (
-SELECT episode.fk_health_issue 
-  FROM clin.episode 
- WHERE (episode.pk = cv.fk_episode)
-) AS pk_health_issue
-, cv.pk AS src_pk
-,'clin.vaccination'::text AS src_table
-, cv.row_version 
-FROM (
-     (
-           (clin.vaccination cv 
-              JOIN clin.encounter cenc 
-                ON (
-                       (cenc.pk = cv.fk_encounter)
-                 )
-           )
-        JOIN clin.vaccine 
-          ON (
-                 (vaccine.pk = cv.fk_vaccine)
-           )
-     )
-  JOIN ref.branded_drug rbd 
-    ON (
-           (vaccine.fk_brand = rbd.pk)
-     )
-);</pre>
+SELECT v_procedures_at_hospital.pk_procedure
+,
+    v_procedures_at_hospital.pk_patient
+,
+    v_procedures_at_hospital.soap_cat
+,
+    v_procedures_at_hospital.clin_when
+,
+    v_procedures_at_hospital.clin_end
+,
+    v_procedures_at_hospital.is_ongoing
+,
+    v_procedures_at_hospital.performed_procedure
+,
+    v_procedures_at_hospital.unit
+,
+    v_procedures_at_hospital.organization
+,
+    v_procedures_at_hospital.episode
+,
+    v_procedures_at_hospital.health_issue
+,
+    v_procedures_at_hospital.modified_when
+,
+    v_procedures_at_hospital.modified_by
+,
+    v_procedures_at_hospital.row_version
+,
+    v_procedures_at_hospital.pk_encounter
+,
+    v_procedures_at_hospital.pk_episode
+,
+    v_procedures_at_hospital.pk_hospital_stay
+,
+    v_procedures_at_hospital.pk_health_issue
+,
+    v_procedures_at_hospital.pk_org
+,
+    v_procedures_at_hospital.pk_org_unit
+,
+    v_procedures_at_hospital.pk_generic_codes
+,
+    v_procedures_at_hospital.xmin_procedure
+   
+FROM clin.v_procedures_at_hospital
+
+UNION ALL
+ 
+SELECT v_procedures_not_at_hospital.pk_procedure
+,
+    v_procedures_not_at_hospital.pk_patient
+,
+    v_procedures_not_at_hospital.soap_cat
+,
+    v_procedures_not_at_hospital.clin_when
+,
+    v_procedures_not_at_hospital.clin_end
+,
+    v_procedures_not_at_hospital.is_ongoing
+,
+    v_procedures_not_at_hospital.performed_procedure
+,
+    v_procedures_not_at_hospital.unit
+,
+    v_procedures_not_at_hospital.organization
+,
+    v_procedures_not_at_hospital.episode
+,
+    v_procedures_not_at_hospital.health_issue
+,
+    v_procedures_not_at_hospital.modified_when
+,
+    v_procedures_not_at_hospital.modified_by
+,
+    v_procedures_not_at_hospital.row_version
+,
+    v_procedures_not_at_hospital.pk_encounter
+,
+    v_procedures_not_at_hospital.pk_episode
+,
+    v_procedures_not_at_hospital.pk_hospital_stay
+,
+    v_procedures_not_at_hospital.pk_health_issue
+,
+    v_procedures_not_at_hospital.pk_org
+,
+    v_procedures_not_at_hospital.pk_org_unit
+,
+    v_procedures_not_at_hospital.pk_generic_codes
+,
+    v_procedures_not_at_hospital.xmin_procedure
+   
+FROM clin.v_procedures_not_at_hospital;</pre>
 	
 
 	<!-- List off permissions -->
@@ -76478,15 +90435,13 @@ FROM (
         <hr>
 		<h2>View:
 			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-pat-vaccs4indication">v_pat_vaccs4indication</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-procedures-at-hospital">v_procedures_at_hospital</a>
 		</h2>
         
-         <p>Lists vaccinations per indication for patients</p>
-        
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.v_pat_vaccs4indication Structure</caption>
+                <caption>clin.v_procedures_at_hospital Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -76498,7 +90453,7 @@ FROM (
 				<td>
                 
                 </td>
-            	<td>pk_patient</td>
+            	<td>pk_procedure</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -76514,7 +90469,7 @@ FROM (
 				<td>
                 
                 </td>
-            	<td>pk_vaccination</td>
+            	<td>pk_patient</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -76530,7 +90485,39 @@ FROM (
 				<td>
                 
                 </td>
-            	<td>date_given</td>
+            	<td>soap_cat</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>clin_when</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>clin_end</td>
             	<td>timestamp with time zone</td>
                 <td><i>
 				
@@ -76546,8 +90533,8 @@ FROM (
 				<td>
                 
                 </td>
-            	<td>vaccine</td>
-            	<td>text</td>
+            	<td>is_ongoing</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -76562,7 +90549,7 @@ FROM (
 				<td>
                 
                 </td>
-            	<td>indication</td>
+            	<td>performed_procedure</td>
             	<td>text</td>
                 <td><i>
 				
@@ -76578,7 +90565,7 @@ FROM (
 				<td>
                 
                 </td>
-            	<td>l10n_indication</td>
+            	<td>unit</td>
             	<td>text</td>
                 <td><i>
 				
@@ -76594,7 +90581,7 @@ FROM (
 				<td>
                 
                 </td>
-            	<td>site</td>
+            	<td>organization</td>
             	<td>text</td>
                 <td><i>
 				
@@ -76610,7 +90597,7 @@ FROM (
 				<td>
                 
                 </td>
-            	<td>batch_no</td>
+            	<td>episode</td>
             	<td>text</td>
                 <td><i>
 				
@@ -76626,7 +90613,7 @@ FROM (
 				<td>
                 
                 </td>
-            	<td>reaction</td>
+            	<td>health_issue</td>
             	<td>text</td>
                 <td><i>
 				
@@ -76642,8 +90629,8 @@ FROM (
 				<td>
                 
                 </td>
-            	<td>comment</td>
-            	<td>text</td>
+            	<td>modified_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
@@ -76658,7 +90645,7 @@ FROM (
 				<td>
                 
                 </td>
-            	<td>soap_cat</td>
+            	<td>modified_by</td>
             	<td>text</td>
                 <td><i>
 				
@@ -76674,8 +90661,8 @@ FROM (
 				<td>
                 
                 </td>
-            	<td>modified_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>row_version</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -76690,8 +90677,8 @@ FROM (
 				<td>
                 
                 </td>
-            	<td>modified_by</td>
-            	<td>name</td>
+            	<td>pk_encounter</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -76706,7 +90693,7 @@ FROM (
 				<td>
                 
                 </td>
-            	<td>row_version</td>
+            	<td>pk_episode</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -76722,7 +90709,7 @@ FROM (
 				<td>
                 
                 </td>
-            	<td>pk_vaccine</td>
+            	<td>pk_hospital_stay</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -76738,7 +90725,7 @@ FROM (
 				<td>
                 
                 </td>
-            	<td>pk_indication</td>
+            	<td>pk_health_issue</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -76754,7 +90741,7 @@ FROM (
 				<td>
                 
                 </td>
-            	<td>pk_provider</td>
+            	<td>pk_org</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -76770,7 +90757,7 @@ FROM (
 				<td>
                 
                 </td>
-            	<td>pk_encounter</td>
+            	<td>pk_org_unit</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -76786,8 +90773,8 @@ FROM (
 				<td>
                 
                 </td>
-            	<td>pk_episode</td>
-            	<td>integer</td>
+            	<td>pk_generic_codes</td>
+            	<td>integer[]</td>
                 <td><i>
 				
 
@@ -76802,7 +90789,7 @@ FROM (
 				<td>
                 
                 </td>
-            	<td>xmin_vaccination</td>
+            	<td>xmin_procedure</td>
             	<td>xid</td>
                 <td><i>
 				
@@ -76833,38 +90820,105 @@ FROM (
 	<!-- View Definition -->
 	
 	<pre>
-SELECT cenc.fk_patient AS pk_patient
-, cv.pk AS pk_vaccination
-, cv.clin_when AS date_given
-, cvi4v.vaccine
-, cvi4v.indication
-, cvi4v.l10n_indication
-, cv.site
-, cv.batch_no
-, cv.reaction
-, cv.narrative AS comment
-, cv.soap_cat
-, cv.modified_when
-, cv.modified_by
-, cv.row_version
-, cv.fk_vaccine AS pk_vaccine
-, cvi4v.pk_indication
-, cv.fk_provider AS pk_provider
-, cv.fk_encounter AS pk_encounter
-, cv.fk_episode AS pk_episode
-, cv.xmin AS xmin_vaccination 
+SELECT c_pr.pk AS pk_procedure
+,
+    c_enc.fk_patient AS pk_patient
+,
+    c_pr.soap_cat
+,
+    c_pr.clin_when
+,
+    c_pr.clin_end
+,
+    c_pr.is_ongoing
+,
+    c_pr.narrative AS performed_procedure
+,
+    c_vhs.ward AS unit
+,
+    c_vhs.hospital AS organization
+,
+    c_ep.description AS episode
+,
+    c_hi.description AS health_issue
+,
+    c_pr.modified_when
+,
+    COALESCE
+(
+     (
+      SELECT staff.short_alias
+           
+        FROM dem.staff
+          
+       WHERE (staff.db_user = c_pr.modified_by)
+     )
+     , (
+           ('<'::text || 
+                 (c_pr.modified_by)::text
+           ) || '>'::text
+     )
+) AS modified_by
+,
+    c_pr.row_version
+,
+    c_pr.fk_encounter AS pk_encounter
+,
+    c_pr.fk_episode AS pk_episode
+,
+    c_pr.fk_hospital_stay AS pk_hospital_stay
+,
+    c_ep.fk_health_issue AS pk_health_issue
+,
+    c_vhs.pk_org
+,
+    c_vhs.pk_org_unit
+,
+    COALESCE
+(
+     (
+      SELECT array_agg
+           (c_lc2p.fk_generic_code) AS array_agg
+           
+        FROM clin.lnk_code2procedure c_lc2p
+          
+       WHERE (c_lc2p.fk_item = c_pr.pk)
+     )
+     , ARRAY[]::integer[]
+) AS pk_generic_codes
+,
+    c_pr.xmin AS xmin_procedure
+   
 FROM (
-     (clin.vaccination cv 
-        JOIN clin.encounter cenc 
+     (
+           (
+                 (clin.procedure c_pr
+     
+                    JOIN clin.encounter c_enc 
+                      ON (
+                             (c_pr.fk_encounter = c_enc.pk)
+                       )
+                 )
+     
+              JOIN clin.episode c_ep 
+                ON (
+                       (c_pr.fk_episode = c_ep.pk)
+                 )
+           )
+     
+   LEFT JOIN clin.health_issue c_hi 
           ON (
-                 (cenc.pk = cv.fk_encounter)
+                 (c_ep.fk_health_issue = c_hi.pk)
            )
      )
-  JOIN clin.v_indications4vaccine cvi4v 
+     
+LEFT JOIN clin.v_hospital_stays c_vhs 
     ON (
-           (cvi4v.pk_vaccine = cv.fk_vaccine)
+           (c_pr.fk_hospital_stay = c_vhs.pk_hospital_stay)
      )
-);</pre>
+)
+  
+WHERE (c_pr.fk_hospital_stay IS NOT NULL);</pre>
 	
 
 	<!-- List off permissions -->
@@ -76878,13 +90932,13 @@ FROM (
         <hr>
 		<h2>View:
 			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-potential-problem-list">v_potential_problem_list</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-procedures-at-hospital-journal">v_procedures_at_hospital_journal</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.v_potential_problem_list Structure</caption>
+                <caption>clin.v_procedures_at_hospital_journal Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -76912,8 +90966,8 @@ FROM (
 				<td>
                 
                 </td>
-            	<td>problem</td>
-            	<td>text</td>
+            	<td>modified_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
@@ -76928,8 +90982,8 @@ FROM (
 				<td>
                 
                 </td>
-            	<td>summary</td>
-            	<td>text</td>
+            	<td>clin_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
@@ -76944,7 +90998,7 @@ FROM (
 				<td>
                 
                 </td>
-            	<td>type</td>
+            	<td>modified_by</td>
             	<td>text</td>
                 <td><i>
 				
@@ -76960,7 +91014,7 @@ FROM (
 				<td>
                 
                 </td>
-            	<td>l10n_type</td>
+            	<td>soap_cat</td>
             	<td>text</td>
                 <td><i>
 				
@@ -76976,8 +91030,8 @@ FROM (
 				<td>
                 
                 </td>
-            	<td>problem_active</td>
-            	<td>boolean</td>
+            	<td>narrative</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -76992,8 +91046,8 @@ FROM (
 				<td>
                 
                 </td>
-            	<td>clinically_relevant</td>
-            	<td>boolean</td>
+            	<td>pk_encounter</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -77040,8 +91094,8 @@ FROM (
 				<td>
                 
                 </td>
-            	<td>diagnostic_certainty_classification</td>
-            	<td>text</td>
+            	<td>src_pk</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -77056,8 +91110,8 @@ FROM (
 				<td>
                 
                 </td>
-            	<td>pk_encounter</td>
-            	<td>integer</td>
+            	<td>src_table</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -77072,8 +91126,8 @@ FROM (
 				<td>
                 
                 </td>
-            	<td>modified_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>row_version</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -77084,96 +91138,12 @@ FROM (
 				</td>
 			 </tr>
             
-        </table>
-
-        <!-- Inherits -->
-		
-
-		
-
-        <!-- Constraint List -->
-		
-
-        <!-- Foreign Key Discovery -->
-		
-
-    <!-- Indexes -->
-    
-
-	<!-- View Definition -->
-	
-	<pre>
-SELECT (
-SELECT encounter.fk_patient 
-  FROM clin.encounter 
- WHERE (encounter.pk = cep.fk_encounter)
-) AS pk_patient
-, cep.description AS problem
-, cep.summary
-,'episode'::text AS type
-, _
-('episode'::text) AS l10n_type
-, false AS problem_active
-, false AS clinically_relevant
-, cep.pk AS pk_episode
-, cep.fk_health_issue AS pk_health_issue
-, cep.diagnostic_certainty_classification
-, cep.fk_encounter AS pk_encounter
-, cep.modified_when 
-FROM clin.episode cep 
-WHERE (cep.is_open IS FALSE)
-UNIONSELECT (
-SELECT encounter.fk_patient 
-  FROM clin.encounter 
- WHERE (encounter.pk = chi.fk_encounter)
-) AS pk_patient
-, chi.description AS problem
-, chi.summary
-,'issue'::text AS type
-, _
-('health issue'::text) AS l10n_type
-, chi.is_active AS problem_active
-, false AS clinically_relevant
-, NULL::integer AS pk_episode
-, chi.pk AS pk_health_issue
-, chi.diagnostic_certainty_classification
-, chi.fk_encounter AS pk_encounter
-, chi.modified_when 
-FROM clin.health_issue chi 
-WHERE (chi.clinically_relevant IS FALSE);</pre>
-	
-
-	<!-- List off permissions -->
-	
-
-	<p>
-		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
-    </p>
-	
-        <hr>
-		<h2>View:
-			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-problem-list">v_problem_list</a>
-		</h2>
-        
-
-
-        <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.v_problem_list Structure</caption>
-                <tr>
-                <th>F-Key</th>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Description</th>
-                </tr>
-            
             <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>pk_patient</td>
-            	<td>integer</td>
+            	<td>health_issue</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -77188,8 +91158,8 @@ WHERE (chi.clinically_relevant IS FALSE);</pre>
 				<td>
                 
                 </td>
-            	<td>problem</td>
-            	<td>text</td>
+            	<td>issue_laterality</td>
+            	<td>character varying(2)</td>
                 <td><i>
 				
 
@@ -77204,8 +91174,8 @@ WHERE (chi.clinically_relevant IS FALSE);</pre>
 				<td>
                 
                 </td>
-            	<td>summary</td>
-            	<td>text</td>
+            	<td>issue_active</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -77220,8 +91190,8 @@ WHERE (chi.clinically_relevant IS FALSE);</pre>
 				<td>
                 
                 </td>
-            	<td>type</td>
-            	<td>text</td>
+            	<td>issue_clinically_relevant</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -77236,8 +91206,8 @@ WHERE (chi.clinically_relevant IS FALSE);</pre>
 				<td>
                 
                 </td>
-            	<td>l10n_type</td>
-            	<td>text</td>
+            	<td>issue_confidential</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -77252,8 +91222,8 @@ WHERE (chi.clinically_relevant IS FALSE);</pre>
 				<td>
                 
                 </td>
-            	<td>problem_active</td>
-            	<td>boolean</td>
+            	<td>episode</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -77268,7 +91238,7 @@ WHERE (chi.clinically_relevant IS FALSE);</pre>
 				<td>
                 
                 </td>
-            	<td>clinically_relevant</td>
+            	<td>episode_open</td>
             	<td>boolean</td>
                 <td><i>
 				
@@ -77284,8 +91254,8 @@ WHERE (chi.clinically_relevant IS FALSE);</pre>
 				<td>
                 
                 </td>
-            	<td>pk_episode</td>
-            	<td>integer</td>
+            	<td>encounter_started</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
@@ -77300,8 +91270,8 @@ WHERE (chi.clinically_relevant IS FALSE);</pre>
 				<td>
                 
                 </td>
-            	<td>pk_health_issue</td>
-            	<td>integer</td>
+            	<td>encounter_last_affirmed</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
@@ -77316,7 +91286,7 @@ WHERE (chi.clinically_relevant IS FALSE);</pre>
 				<td>
                 
                 </td>
-            	<td>diagnostic_certainty_classification</td>
+            	<td>encounter_type</td>
             	<td>text</td>
                 <td><i>
 				
@@ -77332,24 +91302,8 @@ WHERE (chi.clinically_relevant IS FALSE);</pre>
 				<td>
                 
                 </td>
-            	<td>pk_encounter</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>modified_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>encounter_l10n_type</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -77379,44 +91333,213 @@ WHERE (chi.clinically_relevant IS FALSE);</pre>
 	<!-- View Definition -->
 	
 	<pre>
-SELECT (
-SELECT encounter.fk_patient 
-  FROM clin.encounter 
- WHERE (encounter.pk = cep.fk_encounter)
-) AS pk_patient
-, cep.description AS problem
-, cep.summary
-,'episode'::text AS type
-, _
-('episode'::text) AS l10n_type
-, true AS problem_active
-, true AS clinically_relevant
-, cep.pk AS pk_episode
-, cep.fk_health_issue AS pk_health_issue
-, cep.diagnostic_certainty_classification
-, cep.fk_encounter AS pk_encounter
-, cep.modified_when 
-FROM clin.episode cep 
-WHERE (cep.is_open IS TRUE)
-UNIONSELECT (
-SELECT encounter.fk_patient 
-  FROM clin.encounter 
- WHERE (encounter.pk = chi.fk_encounter)
-) AS pk_patient
-, chi.description AS problem
-, chi.summary
-,'issue'::text AS type
-, _
-('health issue'::text) AS l10n_type
-, chi.is_active AS problem_active
-, true AS clinically_relevant
-, NULL::integer AS pk_episode
-, chi.pk AS pk_health_issue
-, chi.diagnostic_certainty_classification
-, chi.fk_encounter AS pk_encounter
-, chi.modified_when 
-FROM clin.health_issue chi 
-WHERE (chi.clinically_relevant IS TRUE);</pre>
+SELECT c_enc.fk_patient AS pk_patient
+,
+    c_pr.modified_when
+,
+    c_pr.clin_when
+,
+    COALESCE
+(
+     (
+      SELECT staff.short_alias
+           
+        FROM dem.staff
+          
+       WHERE (staff.db_user = c_pr.modified_by)
+     )
+     , (
+           ('<'::text || 
+                 (c_pr.modified_by)::text
+           ) || '>'::text
+     )
+) AS modified_by
+,
+    c_pr.soap_cat
+,
+    
+(
+     (
+           (
+                 (
+                       (
+                             (
+                                   (
+                                         (
+                                               (
+                                                     (_
+                                                           ('Procedure'::text) || ' "'::text
+                                                     ) || c_pr.narrative
+                                               ) || '"'::text
+                                         ) || 
+                                      ' ('::text) || d_ou.description
+                                   ) || ' @ '::text
+                             ) || d_o.description
+                       ) || COALESCE
+                       (
+                             (
+                                   (
+                                         (
+                                            ', '::text || _
+                                               ('until'::text)
+                                         ) || ' '::text
+                                   ) || to_char
+                                   (c_pr.clin_end
+                                         ,'YYYY Mon DD'::text
+                                   )
+                             )
+                             ,
+        CASE
+            WHEN 
+                             (c_pr.is_ongoing IS TRUE) THEN 
+                             (
+                                ', '::text || _
+                                   ('ongoing'::text)
+                             )
+            ELSE ''::text
+        END
+                       )
+                 ) || 
+         ')'::text
+     ) || COALESCE
+     (
+           (
+                 ('
+'::text || array_to_string
+                       (
+                             (
+                              SELECT array_agg
+                                   (
+                                         (
+                                               (
+                                                     (
+                                                           (
+                                                                 (
+                                                                       (
+                                                                             (
+                                                                                   (r_csr.code || 
+                                                                                      ' ('::text) || r_ds.name_short
+                                                                                   ) || ' - '::text
+                                                                             ) || r_ds.version
+                                                                       ) || ' - '::text
+                                                                 ) || r_ds.lang
+                                                           ) || 
+                                                 '): '::text
+                                               ) || r_csr.term
+                                         )
+                                   ) AS array_agg
+           
+                                FROM (
+                                         (clin.lnk_code2procedure c_lc2p
+             
+                                            JOIN ref.coding_system_root r_csr 
+                                              ON (
+                                                     (c_lc2p.fk_generic_code = r_csr.pk_coding_system)
+                                               )
+                                         )
+             
+                                      JOIN ref.data_source r_ds 
+                                        ON (
+                                               (r_ds.pk = r_csr.fk_data_source)
+                                         )
+                                   )
+          
+                               WHERE (c_lc2p.fk_item = c_pr.pk)
+                             )
+                             ,'; '::text
+                       )
+                 ) || ';'::text
+           )
+           ,''::text
+     )
+) AS narrative
+,
+    c_pr.fk_encounter AS pk_encounter
+,
+    c_pr.fk_episode AS pk_episode
+,
+    c_epi.fk_health_issue AS pk_health_issue
+,
+    c_pr.pk AS src_pk
+,
+    'clin.procedure'::text AS src_table
+,
+    c_pr.row_version
+,
+    c_hi.description AS health_issue
+,
+    c_hi.laterality AS issue_laterality
+,
+    c_hi.is_active AS issue_active
+,
+    c_hi.clinically_relevant AS issue_clinically_relevant
+,
+    c_hi.is_confidential AS issue_confidential
+,
+    c_epi.description AS episode
+,
+    c_epi.is_open AS episode_open
+,
+    c_enc.started AS encounter_started
+,
+    c_enc.last_affirmed AS encounter_last_affirmed
+,
+    c_ety.description AS encounter_type
+,
+    _
+(c_ety.description) AS encounter_l10n_type
+   
+FROM (
+     (
+           (
+                 (
+                       (
+                             (
+                                   (clin.procedure c_pr
+     
+                                      JOIN clin.encounter c_enc 
+                                        ON (
+                                               (c_pr.fk_encounter = c_enc.pk)
+                                         )
+                                   )
+     
+                                JOIN clin.encounter_type c_ety 
+                                  ON (
+                                         (c_enc.fk_type = c_ety.pk)
+                                   )
+                             )
+     
+                          JOIN clin.episode c_epi 
+                            ON (
+                                   (c_pr.fk_episode = c_epi.pk)
+                             )
+                       )
+     
+               LEFT JOIN clin.health_issue c_hi 
+                      ON (
+                             (c_epi.fk_health_issue = c_hi.pk)
+                       )
+                 )
+     
+         LEFT JOIN clin.hospital_stay c_hs 
+                ON (
+                       (c_pr.fk_hospital_stay = c_hs.pk)
+                 )
+           )
+     
+   LEFT JOIN dem.org_unit d_ou 
+          ON (
+                 (c_hs.fk_org_unit = d_ou.pk)
+           )
+     )
+     
+LEFT JOIN dem.org d_o 
+    ON (
+           (d_ou.fk_org = d_o.pk)
+     )
+)
+  
+WHERE (c_pr.fk_hospital_stay IS NOT NULL);</pre>
 	
 
 	<!-- List off permissions -->
@@ -77430,13 +91553,13 @@ WHERE (chi.clinically_relevant IS TRUE);</pre>
         <hr>
 		<h2>View:
 			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-procedures">v_procedures</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-procedures-journal">v_procedures_journal</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.v_procedures Structure</caption>
+                <caption>clin.v_procedures_journal Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -77448,7 +91571,7 @@ WHERE (chi.clinically_relevant IS TRUE);</pre>
 				<td>
                 
                 </td>
-            	<td>pk_procedure</td>
+            	<td>pk_patient</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -77464,8 +91587,40 @@ WHERE (chi.clinically_relevant IS TRUE);</pre>
 				<td>
                 
                 </td>
-            	<td>pk_patient</td>
-            	<td>integer</td>
+            	<td>modified_when</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>clin_when</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>modified_by</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -77496,8 +91651,8 @@ WHERE (chi.clinically_relevant IS TRUE);</pre>
 				<td>
                 
                 </td>
-            	<td>clin_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>narrative</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -77512,8 +91667,8 @@ WHERE (chi.clinically_relevant IS TRUE);</pre>
 				<td>
                 
                 </td>
-            	<td>clin_end</td>
-            	<td>timestamp with time zone</td>
+            	<td>pk_encounter</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -77528,8 +91683,8 @@ WHERE (chi.clinically_relevant IS TRUE);</pre>
 				<td>
                 
                 </td>
-            	<td>is_ongoing</td>
-            	<td>boolean</td>
+            	<td>pk_episode</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -77544,8 +91699,8 @@ WHERE (chi.clinically_relevant IS TRUE);</pre>
 				<td>
                 
                 </td>
-            	<td>performed_procedure</td>
-            	<td>text</td>
+            	<td>pk_health_issue</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -77560,7 +91715,23 @@ WHERE (chi.clinically_relevant IS TRUE);</pre>
 				<td>
                 
                 </td>
-            	<td>unit</td>
+            	<td>src_pk</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>src_table</td>
             	<td>text</td>
                 <td><i>
 				
@@ -77572,11 +91743,27 @@ WHERE (chi.clinically_relevant IS TRUE);</pre>
 				</td>
 			 </tr>
             
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>row_version</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
             <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>organization</td>
+            	<td>health_issue</td>
             	<td>text</td>
                 <td><i>
 				
@@ -77592,6 +91779,70 @@ WHERE (chi.clinically_relevant IS TRUE);</pre>
 				<td>
                 
                 </td>
+            	<td>issue_laterality</td>
+            	<td>character varying(2)</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>issue_active</td>
+            	<td>boolean</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>issue_clinically_relevant</td>
+            	<td>boolean</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>issue_confidential</td>
+            	<td>boolean</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
             	<td>episode</td>
             	<td>text</td>
                 <td><i>
@@ -77608,8 +91859,8 @@ WHERE (chi.clinically_relevant IS TRUE);</pre>
 				<td>
                 
                 </td>
-            	<td>health_issue</td>
-            	<td>text</td>
+            	<td>episode_open</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -77624,7 +91875,7 @@ WHERE (chi.clinically_relevant IS TRUE);</pre>
 				<td>
                 
                 </td>
-            	<td>modified_when</td>
+            	<td>encounter_started</td>
             	<td>timestamp with time zone</td>
                 <td><i>
 				
@@ -77640,104 +91891,8 @@ WHERE (chi.clinically_relevant IS TRUE);</pre>
 				<td>
                 
                 </td>
-            	<td>modified_by</td>
-            	<td>text</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>row_version</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>pk_encounter</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>pk_episode</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>pk_hospital_stay</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>pk_health_issue</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>pk_org</td>
-            	<td>integer</td>
+            	<td>encounter_last_affirmed</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
@@ -77752,8 +91907,8 @@ WHERE (chi.clinically_relevant IS TRUE);</pre>
 				<td>
                 
                 </td>
-            	<td>pk_org_unit</td>
-            	<td>integer</td>
+            	<td>encounter_type</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -77768,24 +91923,8 @@ WHERE (chi.clinically_relevant IS TRUE);</pre>
 				<td>
                 
                 </td>
-            	<td>pk_generic_codes</td>
-            	<td>integer[]</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>xmin_procedure</td>
-            	<td>xid</td>
+            	<td>encounter_l10n_type</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -77815,52 +91954,103 @@ WHERE (chi.clinically_relevant IS TRUE);</pre>
 	<!-- View Definition -->
 	
 	<pre>
-SELECT v_procedures_at_hospital.pk_procedure
-, v_procedures_at_hospital.pk_patient
-, v_procedures_at_hospital.soap_cat
-, v_procedures_at_hospital.clin_when
-, v_procedures_at_hospital.clin_end
-, v_procedures_at_hospital.is_ongoing
-, v_procedures_at_hospital.performed_procedure
-, v_procedures_at_hospital.unit
-, v_procedures_at_hospital.organization
-, v_procedures_at_hospital.episode
-, v_procedures_at_hospital.health_issue
-, v_procedures_at_hospital.modified_when
-, v_procedures_at_hospital.modified_by
-, v_procedures_at_hospital.row_version
-, v_procedures_at_hospital.pk_encounter
-, v_procedures_at_hospital.pk_episode
-, v_procedures_at_hospital.pk_hospital_stay
-, v_procedures_at_hospital.pk_health_issue
-, v_procedures_at_hospital.pk_org
-, v_procedures_at_hospital.pk_org_unit
-, v_procedures_at_hospital.pk_generic_codes
-, v_procedures_at_hospital.xmin_procedure 
-FROM clin.v_procedures_at_hospital 
-UNION ALLSELECT v_procedures_not_at_hospital.pk_procedure
-, v_procedures_not_at_hospital.pk_patient
-, v_procedures_not_at_hospital.soap_cat
-, v_procedures_not_at_hospital.clin_when
-, v_procedures_not_at_hospital.clin_end
-, v_procedures_not_at_hospital.is_ongoing
-, v_procedures_not_at_hospital.performed_procedure
-, v_procedures_not_at_hospital.unit
-, v_procedures_not_at_hospital.organization
-, v_procedures_not_at_hospital.episode
-, v_procedures_not_at_hospital.health_issue
-, v_procedures_not_at_hospital.modified_when
-, v_procedures_not_at_hospital.modified_by
-, v_procedures_not_at_hospital.row_version
-, v_procedures_not_at_hospital.pk_encounter
-, v_procedures_not_at_hospital.pk_episode
-, v_procedures_not_at_hospital.pk_hospital_stay
-, v_procedures_not_at_hospital.pk_health_issue
-, v_procedures_not_at_hospital.pk_org
-, v_procedures_not_at_hospital.pk_org_unit
-, v_procedures_not_at_hospital.pk_generic_codes
-, v_procedures_not_at_hospital.xmin_procedure 
-FROM clin.v_procedures_not_at_hospital;</pre>
+SELECT v_procedures_at_hospital_journal.pk_patient
+,
+    v_procedures_at_hospital_journal.modified_when
+,
+    v_procedures_at_hospital_journal.clin_when
+,
+    v_procedures_at_hospital_journal.modified_by
+,
+    v_procedures_at_hospital_journal.soap_cat
+,
+    v_procedures_at_hospital_journal.narrative
+,
+    v_procedures_at_hospital_journal.pk_encounter
+,
+    v_procedures_at_hospital_journal.pk_episode
+,
+    v_procedures_at_hospital_journal.pk_health_issue
+,
+    v_procedures_at_hospital_journal.src_pk
+,
+    v_procedures_at_hospital_journal.src_table
+,
+    v_procedures_at_hospital_journal.row_version
+,
+    v_procedures_at_hospital_journal.health_issue
+,
+    v_procedures_at_hospital_journal.issue_laterality
+,
+    v_procedures_at_hospital_journal.issue_active
+,
+    v_procedures_at_hospital_journal.issue_clinically_relevant
+,
+    v_procedures_at_hospital_journal.issue_confidential
+,
+    v_procedures_at_hospital_journal.episode
+,
+    v_procedures_at_hospital_journal.episode_open
+,
+    v_procedures_at_hospital_journal.encounter_started
+,
+    v_procedures_at_hospital_journal.encounter_last_affirmed
+,
+    v_procedures_at_hospital_journal.encounter_type
+,
+    v_procedures_at_hospital_journal.encounter_l10n_type
+   
+FROM clin.v_procedures_at_hospital_journal
+
+UNION ALL
+ 
+SELECT v_procedures_not_at_hospital_journal.pk_patient
+,
+    v_procedures_not_at_hospital_journal.modified_when
+,
+    v_procedures_not_at_hospital_journal.clin_when
+,
+    v_procedures_not_at_hospital_journal.modified_by
+,
+    v_procedures_not_at_hospital_journal.soap_cat
+,
+    v_procedures_not_at_hospital_journal.narrative
+,
+    v_procedures_not_at_hospital_journal.pk_encounter
+,
+    v_procedures_not_at_hospital_journal.pk_episode
+,
+    v_procedures_not_at_hospital_journal.pk_health_issue
+,
+    v_procedures_not_at_hospital_journal.src_pk
+,
+    v_procedures_not_at_hospital_journal.src_table
+,
+    v_procedures_not_at_hospital_journal.row_version
+,
+    v_procedures_not_at_hospital_journal.health_issue
+,
+    v_procedures_not_at_hospital_journal.issue_laterality
+,
+    v_procedures_not_at_hospital_journal.issue_active
+,
+    v_procedures_not_at_hospital_journal.issue_clinically_relevant
+,
+    v_procedures_not_at_hospital_journal.issue_confidential
+,
+    v_procedures_not_at_hospital_journal.episode
+,
+    v_procedures_not_at_hospital_journal.episode_open
+,
+    v_procedures_not_at_hospital_journal.encounter_started
+,
+    v_procedures_not_at_hospital_journal.encounter_last_affirmed
+,
+    v_procedures_not_at_hospital_journal.encounter_type
+,
+    v_procedures_not_at_hospital_journal.encounter_l10n_type
+   
+FROM clin.v_procedures_not_at_hospital_journal;</pre>
 	
 
 	<!-- List off permissions -->
@@ -77874,13 +92064,13 @@ FROM clin.v_procedures_not_at_hospital;</pre>
         <hr>
 		<h2>View:
 			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-procedures-at-hospital">v_procedures_at_hospital</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-procedures-not-at-hospital">v_procedures_not_at_hospital</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.v_procedures_at_hospital Structure</caption>
+                <caption>clin.v_procedures_not_at_hospital Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -78260,22 +92450,36 @@ FROM clin.v_procedures_not_at_hospital;</pre>
 	
 	<pre>
 SELECT c_pr.pk AS pk_procedure
-, c_enc.fk_patient AS pk_patient
-, c_pr.soap_cat
-, c_pr.clin_when
-, c_pr.clin_end
-, c_pr.is_ongoing
-, c_pr.narrative AS performed_procedure
-, c_vhs.ward AS unit
-, c_vhs.hospital AS organization
-, c_ep.description AS episode
-, c_hi.description AS health_issue
-, c_pr.modified_when
-, COALESCE
+,
+    c_enc.fk_patient AS pk_patient
+,
+    c_pr.soap_cat
+,
+    c_pr.clin_when
+,
+    c_pr.clin_end
+,
+    c_pr.is_ongoing
+,
+    c_pr.narrative AS performed_procedure
+,
+    d_ou.description AS unit
+,
+    d_o.description AS organization
+,
+    c_ep.description AS episode
+,
+    c_hi.description AS health_issue
+,
+    c_pr.modified_when
+,
+    COALESCE
 (
      (
-      SELECT staff.short_alias 
-        FROM dem.staff 
+      SELECT staff.short_alias
+           
+        FROM dem.staff
+          
        WHERE (staff.db_user = c_pr.modified_by)
      )
      , (
@@ -78284,49 +92488,73 @@ SELECT c_pr.pk AS pk_procedure
            ) || '>'::text
      )
 ) AS modified_by
-, c_pr.row_version
-, c_pr.fk_encounter AS pk_encounter
-, c_pr.fk_episode AS pk_episode
-, c_pr.fk_hospital_stay AS pk_hospital_stay
-, c_ep.fk_health_issue AS pk_health_issue
-, c_vhs.pk_org
-, c_vhs.pk_org_unit
-, COALESCE
+,
+    c_pr.row_version
+,
+    c_pr.fk_encounter AS pk_encounter
+,
+    c_pr.fk_episode AS pk_episode
+,
+    c_pr.fk_hospital_stay AS pk_hospital_stay
+,
+    c_ep.fk_health_issue AS pk_health_issue
+,
+    d_o.pk AS pk_org
+,
+    d_ou.pk AS pk_org_unit
+,
+    COALESCE
 (
      (
       SELECT array_agg
-           (c_lc2p.fk_generic_code) AS array_agg 
-        FROM clin.lnk_code2procedure c_lc2p 
+           (c_lc2p.fk_generic_code) AS array_agg
+           
+        FROM clin.lnk_code2procedure c_lc2p
+          
        WHERE (c_lc2p.fk_item = c_pr.pk)
      )
      , ARRAY[]::integer[]
 ) AS pk_generic_codes
-, c_pr.xmin AS xmin_procedure 
+,
+    c_pr.xmin AS xmin_procedure
+   
 FROM (
      (
            (
-                 (clin.procedure c_pr 
-                    JOIN clin.encounter c_enc 
+                 (
+                       (clin.procedure c_pr
+     
+                          JOIN clin.encounter c_enc 
+                            ON (
+                                   (c_pr.fk_encounter = c_enc.pk)
+                             )
+                       )
+     
+                    JOIN clin.episode c_ep 
                       ON (
-                             (c_pr.fk_encounter = c_enc.pk)
+                             (c_pr.fk_episode = c_ep.pk)
                        )
                  )
-              JOIN clin.episode c_ep 
+     
+         LEFT JOIN clin.health_issue c_hi 
                 ON (
-                       (c_pr.fk_episode = c_ep.pk)
+                       (c_ep.fk_health_issue = c_hi.pk)
                  )
            )
-   LEFT JOIN clin.health_issue c_hi 
+     
+   LEFT JOIN dem.org_unit d_ou 
           ON (
-                 (c_ep.fk_health_issue = c_hi.pk)
+                 (d_ou.pk = c_pr.fk_org_unit)
            )
      )
-LEFT JOIN clin.v_hospital_stays c_vhs 
+     
+LEFT JOIN dem.org d_o 
     ON (
-           (c_pr.fk_hospital_stay = c_vhs.pk_hospital_stay)
+           (d_o.pk = d_ou.fk_org)
      )
 )
-WHERE (c_pr.fk_hospital_stay IS NOT NULL);</pre>
+  
+WHERE (c_pr.fk_hospital_stay IS NULL);</pre>
 	
 
 	<!-- List off permissions -->
@@ -78340,13 +92568,13 @@ WHERE (c_pr.fk_hospital_stay IS NOT NULL);</pre>
         <hr>
 		<h2>View:
 			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-procedures-at-hospital-journal">v_procedures_at_hospital_journal</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-procedures-not-at-hospital-journal">v_procedures_not_at_hospital_journal</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.v_procedures_at_hospital_journal Structure</caption>
+                <caption>clin.v_procedures_not_at_hospital_journal Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -78358,7 +92586,135 @@ WHERE (c_pr.fk_hospital_stay IS NOT NULL);</pre>
 				<td>
                 
                 </td>
-            	<td>pk_patient</td>
+            	<td>pk_patient</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>modified_when</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>clin_when</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>modified_by</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>soap_cat</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>narrative</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_encounter</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>pk_episode</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_health_issue</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -78374,8 +92730,8 @@ WHERE (c_pr.fk_hospital_stay IS NOT NULL);</pre>
 				<td>
                 
                 </td>
-            	<td>modified_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>src_pk</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -78390,8 +92746,8 @@ WHERE (c_pr.fk_hospital_stay IS NOT NULL);</pre>
 				<td>
                 
                 </td>
-            	<td>clin_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>src_table</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -78406,8 +92762,8 @@ WHERE (c_pr.fk_hospital_stay IS NOT NULL);</pre>
 				<td>
                 
                 </td>
-            	<td>modified_by</td>
-            	<td>text</td>
+            	<td>row_version</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -78422,7 +92778,7 @@ WHERE (c_pr.fk_hospital_stay IS NOT NULL);</pre>
 				<td>
                 
                 </td>
-            	<td>soap_cat</td>
+            	<td>health_issue</td>
             	<td>text</td>
                 <td><i>
 				
@@ -78438,8 +92794,8 @@ WHERE (c_pr.fk_hospital_stay IS NOT NULL);</pre>
 				<td>
                 
                 </td>
-            	<td>narrative</td>
-            	<td>text</td>
+            	<td>issue_laterality</td>
+            	<td>character varying(2)</td>
                 <td><i>
 				
 
@@ -78454,8 +92810,8 @@ WHERE (c_pr.fk_hospital_stay IS NOT NULL);</pre>
 				<td>
                 
                 </td>
-            	<td>pk_encounter</td>
-            	<td>integer</td>
+            	<td>issue_active</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -78470,8 +92826,8 @@ WHERE (c_pr.fk_hospital_stay IS NOT NULL);</pre>
 				<td>
                 
                 </td>
-            	<td>pk_episode</td>
-            	<td>integer</td>
+            	<td>issue_clinically_relevant</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -78486,8 +92842,8 @@ WHERE (c_pr.fk_hospital_stay IS NOT NULL);</pre>
 				<td>
                 
                 </td>
-            	<td>pk_health_issue</td>
-            	<td>integer</td>
+            	<td>issue_confidential</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -78502,8 +92858,8 @@ WHERE (c_pr.fk_hospital_stay IS NOT NULL);</pre>
 				<td>
                 
                 </td>
-            	<td>src_pk</td>
-            	<td>integer</td>
+            	<td>episode</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -78518,8 +92874,8 @@ WHERE (c_pr.fk_hospital_stay IS NOT NULL);</pre>
 				<td>
                 
                 </td>
-            	<td>src_table</td>
-            	<td>text</td>
+            	<td>episode_open</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -78534,8 +92890,56 @@ WHERE (c_pr.fk_hospital_stay IS NOT NULL);</pre>
 				<td>
                 
                 </td>
-            	<td>row_version</td>
-            	<td>integer</td>
+            	<td>encounter_started</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>encounter_last_affirmed</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>encounter_type</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>encounter_l10n_type</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -78566,13 +92970,18 @@ WHERE (c_pr.fk_hospital_stay IS NOT NULL);</pre>
 	
 	<pre>
 SELECT c_enc.fk_patient AS pk_patient
-, c_pr.modified_when
-, c_pr.clin_when
-, COALESCE
+,
+    c_pr.modified_when
+,
+    c_pr.clin_when
+,
+    COALESCE
 (
      (
-      SELECT staff.short_alias 
-        FROM dem.staff 
+      SELECT staff.short_alias
+           
+        FROM dem.staff
+          
        WHERE (staff.db_user = c_pr.modified_by)
      )
      , (
@@ -78581,8 +92990,11 @@ SELECT c_enc.fk_patient AS pk_patient
            ) || '>'::text
      )
 ) AS modified_by
-, c_pr.soap_cat
-, (
+,
+    c_pr.soap_cat
+,
+    
+(
      (
            (
                  (
@@ -78612,12 +93024,16 @@ SELECT c_enc.fk_patient AS pk_patient
                                          ,'YYYY Mon DD'::text
                                    )
                              )
-                             , CASE WHEN 
+                             ,
+        CASE
+            WHEN 
                              (c_pr.is_ongoing IS TRUE) THEN 
                              (
                                 ', '::text || _
                                    ('ongoing'::text)
-                             ) ELSE ''::text END
+                             )
+            ELSE ''::text
+        END
                        )
                  ) || 
          ')'::text
@@ -78647,19 +93063,23 @@ SELECT c_enc.fk_patient AS pk_patient
                                                  '): '::text
                                                ) || r_csr.term
                                          )
-                                   ) AS array_agg 
+                                   ) AS array_agg
+           
                                 FROM (
-                                         (clin.lnk_code2procedure c_lc2p 
+                                         (clin.lnk_code2procedure c_lc2p
+             
                                             JOIN ref.coding_system_root r_csr 
                                               ON (
                                                      (c_lc2p.fk_generic_code = r_csr.pk_coding_system)
                                                )
                                          )
+             
                                       JOIN ref.data_source r_ds 
                                         ON (
                                                (r_ds.pk = r_csr.fk_data_source)
                                          )
                                    )
+          
                                WHERE (c_lc2p.fk_item = c_pr.pk)
                              )
                              ,'; '::text
@@ -78669,43 +93089,86 @@ SELECT c_enc.fk_patient AS pk_patient
            ,''::text
      )
 ) AS narrative
-, c_pr.fk_encounter AS pk_encounter
-, c_pr.fk_episode AS pk_episode
-, cep.fk_health_issue AS pk_health_issue
-, c_pr.pk AS src_pk
-,'clin.procedure'::text AS src_table
-, c_pr.row_version 
+,
+    c_pr.fk_encounter AS pk_encounter
+,
+    c_pr.fk_episode AS pk_episode
+,
+    c_epi.fk_health_issue AS pk_health_issue
+,
+    c_pr.pk AS src_pk
+,
+    'clin.procedure'::text AS src_table
+,
+    c_pr.row_version
+,
+    c_hi.description AS health_issue
+,
+    c_hi.laterality AS issue_laterality
+,
+    c_hi.is_active AS issue_active
+,
+    c_hi.clinically_relevant AS issue_clinically_relevant
+,
+    c_hi.is_confidential AS issue_confidential
+,
+    c_epi.description AS episode
+,
+    c_epi.is_open AS episode_open
+,
+    c_enc.started AS encounter_started
+,
+    c_enc.last_affirmed AS encounter_last_affirmed
+,
+    c_ety.description AS encounter_type
+,
+    _
+(c_ety.description) AS encounter_l10n_type
+   
 FROM (
      (
            (
                  (
-                       (clin.procedure c_pr 
-                          JOIN clin.encounter c_enc 
+                       (
+                             (clin.procedure c_pr
+     
+                                JOIN clin.encounter c_enc 
+                                  ON (
+                                         (c_pr.fk_encounter = c_enc.pk)
+                                   )
+                             )
+     
+                          JOIN clin.encounter_type c_ety 
                             ON (
-                                   (c_pr.fk_encounter = c_enc.pk)
+                                   (c_enc.fk_type = c_ety.pk)
                              )
                        )
-                    JOIN clin.episode cep 
+     
+                    JOIN clin.episode c_epi 
                       ON (
-                             (c_pr.fk_episode = cep.pk)
+                             (c_pr.fk_episode = c_epi.pk)
                        )
                  )
-         LEFT JOIN clin.hospital_stay c_hs 
+     
+         LEFT JOIN clin.health_issue c_hi 
                 ON (
-                       (c_pr.fk_hospital_stay = c_hs.pk)
+                       (c_epi.fk_health_issue = c_hi.pk)
                  )
            )
+     
    LEFT JOIN dem.org_unit d_ou 
           ON (
-                 (c_hs.fk_org_unit = d_ou.pk)
+                 (c_pr.fk_org_unit = d_ou.pk)
            )
      )
+     
 LEFT JOIN dem.org d_o 
     ON (
            (d_ou.fk_org = d_o.pk)
      )
 )
-WHERE (c_pr.fk_hospital_stay IS NOT NULL);</pre>
+  
+WHERE (c_pr.fk_hospital_stay IS NULL);</pre>
 	
 
 	<!-- List off permissions -->
@@ -78719,13 +93182,13 @@ WHERE (c_pr.fk_hospital_stay IS NOT NULL);</pre>
         <hr>
 		<h2>View:
 			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-procedures-journal">v_procedures_journal</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-reminders-journal">v_reminders_journal</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.v_procedures_journal Structure</caption>
+                <caption>clin.v_reminders_journal Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -78925,6 +93388,182 @@ WHERE (c_pr.fk_hospital_stay IS NOT NULL);</pre>
 				</td>
 			 </tr>
             
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>health_issue</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>issue_laterality</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>issue_active</td>
+            	<td>boolean</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>issue_clinically_relevant</td>
+            	<td>boolean</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>issue_confidential</td>
+            	<td>boolean</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>episode</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>episode_open</td>
+            	<td>boolean</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>encounter_started</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>encounter_last_affirmed</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>encounter_type</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>encounter_l10n_type</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
         </table>
 
         <!-- Inherits -->
@@ -78940,36 +93579,675 @@ WHERE (c_pr.fk_hospital_stay IS NOT NULL);</pre>
 
     <!-- Indexes -->
     
-
-	<!-- View Definition -->
-	
-	<pre>
-SELECT v_procedures_at_hospital_journal.pk_patient
-, v_procedures_at_hospital_journal.modified_when
-, v_procedures_at_hospital_journal.clin_when
-, v_procedures_at_hospital_journal.modified_by
-, v_procedures_at_hospital_journal.soap_cat
-, v_procedures_at_hospital_journal.narrative
-, v_procedures_at_hospital_journal.pk_encounter
-, v_procedures_at_hospital_journal.pk_episode
-, v_procedures_at_hospital_journal.pk_health_issue
-, v_procedures_at_hospital_journal.src_pk
-, v_procedures_at_hospital_journal.src_table
-, v_procedures_at_hospital_journal.row_version 
-FROM clin.v_procedures_at_hospital_journal 
-UNION ALLSELECT v_procedures_not_at_hospital_journal.pk_patient
-, v_procedures_not_at_hospital_journal.modified_when
-, v_procedures_not_at_hospital_journal.clin_when
-, v_procedures_not_at_hospital_journal.modified_by
-, v_procedures_not_at_hospital_journal.soap_cat
-, v_procedures_not_at_hospital_journal.narrative
-, v_procedures_not_at_hospital_journal.pk_encounter
-, v_procedures_not_at_hospital_journal.pk_episode
-, v_procedures_not_at_hospital_journal.pk_health_issue
-, v_procedures_not_at_hospital_journal.src_pk
-, v_procedures_not_at_hospital_journal.src_table
-, v_procedures_not_at_hospital_journal.row_version 
-FROM clin.v_procedures_not_at_hospital_journal;</pre>
+
+	<!-- View Definition -->
+	
+	<pre>
+SELECT d_mi.fk_patient AS pk_patient
+,
+    d_mi.modified_when
+,
+    d_mi.due_date AS clin_when
+,
+    COALESCE
+(
+     (
+      SELECT staff.short_alias
+           
+        FROM dem.staff
+          
+       WHERE (staff.db_user = d_mi.modified_by)
+     )
+     , (
+           ('<'::text || 
+                 (d_mi.modified_by)::text
+           ) || '>'::text
+     )
+) AS modified_by
+,
+    NULL::text AS soap_cat
+,
+    
+(
+     (
+           (
+                 (
+                       (
+                             (
+                                   (
+                                         (
+                                               (
+                                                     (
+                                                           (
+                                                                 (
+                                                                       (
+                                                                             (
+                                                                                   (
+                                                                                         (_
+                                                                                               ('Due today'::text) || 
+                                                                                            ' ('::text) || d_vit.l10n_category
+                                                                                         ) || ' - '::text
+                                                                                   ) || d_vit.l10n_type
+                                                                             ) || 
+                                                                     ')'::text
+                                                                 ) || '
+'::text
+                                                           ) || COALESCE
+                                                           (
+                                                                 (
+                                                                       (' '::text || d_mi.comment) || '
+'::text
+                                                                 )
+                                                                 ,''::text
+                                                           )
+                                                     ) || COALESCE
+                                                     (
+                                                           (
+                                                                 (
+                                                                       (
+                                                                             (' '::text || _
+                                                                                   ('Will expire:'::text)
+                                                                             ) || ' '::text
+                                                                       ) || to_char
+                                                                       (
+                                                                             (d_mi.expiry_date)::timestamp with time zone
+                                                                             ,'YYYY-MM-DD'::text
+                                                                       )
+                                                                 ) || '
+'::text
+                                                           )
+                                                           ,''::text
+                                                     )
+                                               ) || ' '::text
+                                         ) || _
+                                         ('Importance:'::text)
+                                   ) || ' '::text
+                             ) || d_mi.importance
+                       ) || '
+'::text
+                 ) || COALESCE
+                 (
+                       (
+                             (
+                                   (
+                                         (' '::text || _
+                                               ('Context:'::text)
+                                         ) || ' '::text
+                                   ) || array_to_string
+                                   (d_mi.ufk_context
+                                         ,','::text
+                                         ,'?'::text
+                                   )
+                             ) || '
+'::text
+                       )
+                       ,''::text
+                 )
+           ) || COALESCE
+           (
+                 (
+                       (
+                             (
+                                   (' '::text || _
+                                         ('Data:'::text)
+                                   ) || ' '::text
+                             ) || d_mi.data
+                       ) || '
+'::text
+                 )
+                 ,''::text
+           )
+     ) || COALESCE
+     (
+           (
+                 (
+                       (' '::text || _
+                             ('Provider:'::text)
+                       ) || ' '::text
+                 ) || d_st.short_alias
+           )
+           ,''::text
+     )
+) AS narrative
+,
+    
+(
+SELECT c_e.pk
+           
+  FROM clin.encounter c_e
+          
+ WHERE (c_e.fk_patient = d_mi.fk_patient)
+          
+ORDER BY c_e.started DESC
+         LIMIT 1
+) AS pk_encounter
+,
+    NULL::integer AS pk_episode
+,
+    NULL::integer AS pk_health_issue
+,
+    d_mi.pk AS src_pk
+,
+    'dem.message_inbox'::text AS src_table
+,
+    d_mi.row_version
+,
+    NULL::text AS health_issue
+,
+    NULL::text AS issue_laterality
+,
+    NULL::boolean AS issue_active
+,
+    NULL::boolean AS issue_clinically_relevant
+,
+    NULL::boolean AS issue_confidential
+,
+    NULL::text AS episode
+,
+    NULL::boolean AS episode_open
+,
+    
+(
+SELECT c_e.started
+           
+  FROM clin.encounter c_e
+          
+ WHERE (c_e.fk_patient = d_mi.fk_patient)
+          
+ORDER BY c_e.started DESC
+         LIMIT 1
+) AS encounter_started
+,
+    
+(
+SELECT c_e.last_affirmed
+           
+  FROM clin.encounter c_e
+          
+ WHERE (c_e.fk_patient = d_mi.fk_patient)
+          
+ORDER BY c_e.started DESC
+         LIMIT 1
+) AS encounter_last_affirmed
+,
+    NULL::text AS encounter_type
+,
+    NULL::text AS encounter_l10n_type
+   
+FROM (
+     (dem.message_inbox d_mi
+     
+        JOIN dem.v_inbox_item_type d_vit 
+          ON (
+                 (d_mi.fk_inbox_item_type = d_vit.pk_type)
+           )
+     )
+     
+LEFT JOIN dem.staff d_st 
+    ON (
+           (d_mi.fk_staff = d_st.pk)
+     )
+)
+  
+WHERE (
+     (
+           (d_mi.fk_patient IS NOT NULL)
+         AND (d_vit.category = 'clinical'::text)
+     )
+   AND (d_mi.due_date IS NOT NULL)
+)
+UNION
+ 
+SELECT d_mi.fk_patient AS pk_patient
+,
+    d_mi.modified_when
+,
+    d_mi.expiry_date AS clin_when
+,
+    COALESCE
+(
+     (
+      SELECT staff.short_alias
+           
+        FROM dem.staff
+          
+       WHERE (staff.db_user = d_mi.modified_by)
+     )
+     , (
+           ('<'::text || 
+                 (d_mi.modified_by)::text
+           ) || '>'::text
+     )
+) AS modified_by
+,
+    NULL::text AS soap_cat
+,
+    
+(
+     (
+           (
+                 (
+                       (
+                             (
+                                   (
+                                         (
+                                               (
+                                                     (
+                                                           (
+                                                                 (
+                                                                       (
+                                                                             (
+                                                                                   (
+                                                                                         (_
+                                                                                               ('Epires today'::text) || 
+                                                                                            ' ('::text) || d_vit.l10n_category
+                                                                                         ) || ' - '::text
+                                                                                   ) || d_vit.l10n_type
+                                                                             ) || 
+                                                                     ')'::text
+                                                                 ) || '
+'::text
+                                                           ) || COALESCE
+                                                           (
+                                                                 (
+                                                                       (' '::text || d_mi.comment) || '
+'::text
+                                                                 )
+                                                                 ,''::text
+                                                           )
+                                                     ) || COALESCE
+                                                     (
+                                                           (
+                                                                 (
+                                                                       (
+                                                                             (' '::text || _
+                                                                                   ('Was due:'::text)
+                                                                             ) || ' '::text
+                                                                       ) || to_char
+                                                                       (
+                                                                             (d_mi.due_date)::timestamp with time zone
+                                                                             ,'YYYY-MM-DD'::text
+                                                                       )
+                                                                 ) || '
+'::text
+                                                           )
+                                                           ,''::text
+                                                     )
+                                               ) || ' '::text
+                                         ) || _
+                                         ('Importance:'::text)
+                                   ) || ' '::text
+                             ) || d_mi.importance
+                       ) || '
+'::text
+                 ) || COALESCE
+                 (
+                       (
+                             (
+                                   (
+                                         (' '::text || _
+                                               ('Context:'::text)
+                                         ) || ' '::text
+                                   ) || array_to_string
+                                   (d_mi.ufk_context
+                                         ,','::text
+                                         ,'?'::text
+                                   )
+                             ) || '
+'::text
+                       )
+                       ,''::text
+                 )
+           ) || COALESCE
+           (
+                 (
+                       (
+                             (
+                                   (' '::text || _
+                                         ('Data:'::text)
+                                   ) || ' '::text
+                             ) || d_mi.data
+                       ) || '
+'::text
+                 )
+                 ,''::text
+           )
+     ) || COALESCE
+     (
+           (
+                 (
+                       (' '::text || _
+                             ('Provider:'::text)
+                       ) || ' '::text
+                 ) || d_st.short_alias
+           )
+           ,''::text
+     )
+) AS narrative
+,
+    
+(
+SELECT c_e.pk
+           
+  FROM clin.encounter c_e
+          
+ WHERE (c_e.fk_patient = d_mi.fk_patient)
+          
+ORDER BY c_e.started DESC
+         LIMIT 1
+) AS pk_encounter
+,
+    NULL::integer AS pk_episode
+,
+    NULL::integer AS pk_health_issue
+,
+    d_mi.pk AS src_pk
+,
+    'dem.message_inbox'::text AS src_table
+,
+    d_mi.row_version
+,
+    NULL::text AS health_issue
+,
+    NULL::text AS issue_laterality
+,
+    NULL::boolean AS issue_active
+,
+    NULL::boolean AS issue_clinically_relevant
+,
+    NULL::boolean AS issue_confidential
+,
+    NULL::text AS episode
+,
+    NULL::boolean AS episode_open
+,
+    
+(
+SELECT c_e.started
+           
+  FROM clin.encounter c_e
+          
+ WHERE (c_e.fk_patient = d_mi.fk_patient)
+          
+ORDER BY c_e.started DESC
+         LIMIT 1
+) AS encounter_started
+,
+    
+(
+SELECT c_e.last_affirmed
+           
+  FROM clin.encounter c_e
+          
+ WHERE (c_e.fk_patient = d_mi.fk_patient)
+          
+ORDER BY c_e.started DESC
+         LIMIT 1
+) AS encounter_last_affirmed
+,
+    NULL::text AS encounter_type
+,
+    NULL::text AS encounter_l10n_type
+   
+FROM (
+     (dem.message_inbox d_mi
+     
+        JOIN dem.v_inbox_item_type d_vit 
+          ON (
+                 (d_mi.fk_inbox_item_type = d_vit.pk_type)
+           )
+     )
+     
+LEFT JOIN dem.staff d_st 
+    ON (
+           (d_mi.fk_staff = d_st.pk)
+     )
+)
+  
+WHERE (
+     (
+           (d_mi.fk_patient IS NOT NULL)
+         AND (d_vit.category = 'clinical'::text)
+     )
+   AND (d_mi.expiry_date IS NOT NULL)
+)
+UNION
+ 
+SELECT d_mi.fk_patient AS pk_patient
+,
+    d_mi.modified_when
+,
+    d_mi.modified_when AS clin_when
+,
+    COALESCE
+(
+     (
+      SELECT staff.short_alias
+           
+        FROM dem.staff
+          
+       WHERE (staff.db_user = d_mi.modified_by)
+     )
+     , (
+           ('<'::text || 
+                 (d_mi.modified_by)::text
+           ) || '>'::text
+     )
+) AS modified_by
+,
+    NULL::text AS soap_cat
+,
+    
+(
+     (
+           (
+                 (
+                       (
+                             (
+                                   (
+                                         (
+                                               (
+                                                     (
+                                                           (
+                                                                 (
+                                                                       (
+                                                                             (
+                                                                                   (
+                                                                                         (
+                                                                                               (_
+                                                                                                     ('Clinical reminder'::text) || 
+                                                                                                  ' ('::text) || d_vit.l10n_category
+                                                                                               ) || ' - '::text
+                                                                                         ) || d_vit.l10n_type
+                                                                                   ) || 
+                                                                           ')'::text
+                                                                       ) || '
+'::text
+                                                                 ) || COALESCE
+                                                                 (
+                                                                       (
+                                                                             (' '::text || d_mi.comment) || '
+'::text
+                                                                       )
+                                                                       ,''::text
+                                                                 )
+                                                           ) || COALESCE
+                                                           (
+                                                                 (
+                                                                       (
+                                                                             (
+                                                                                   (' '::text || _
+                                                                                         ('Due:'::text)
+                                                                                   ) || ' '::text
+                                                                             ) || to_char
+                                                                             (
+                                                                                   (d_mi.due_date)::timestamp with time zone
+                                                                                   ,'YYYY-MM-DD'::text
+                                                                             )
+                                                                       ) || '
+'::text
+                                                                 )
+                                                                 ,''::text
+                                                           )
+                                                     ) || COALESCE
+                                                     (
+                                                           (
+                                                                 (
+                                                                       (
+                                                                             (' '::text || _
+                                                                                   ('Expires:'::text)
+                                                                             ) || ' '::text
+                                                                       ) || to_char
+                                                                       (
+                                                                             (d_mi.expiry_date)::timestamp with time zone
+                                                                             ,'YYYY-MM-DD'::text
+                                                                       )
+                                                                 ) || '
+'::text
+                                                           )
+                                                           ,''::text
+                                                     )
+                                               ) || ' '::text
+                                         ) || _
+                                         ('Importance:'::text)
+                                   ) || ' '::text
+                             ) || d_mi.importance
+                       ) || '
+'::text
+                 ) || COALESCE
+                 (
+                       (
+                             (
+                                   (
+                                         (' '::text || _
+                                               ('Context:'::text)
+                                         ) || ' '::text
+                                   ) || array_to_string
+                                   (d_mi.ufk_context
+                                         ,','::text
+                                         ,'?'::text
+                                   )
+                             ) || '
+'::text
+                       )
+                       ,''::text
+                 )
+           ) || COALESCE
+           (
+                 (
+                       (
+                             (
+                                   (' '::text || _
+                                         ('Data:'::text)
+                                   ) || ' '::text
+                             ) || d_mi.data
+                       ) || '
+'::text
+                 )
+                 ,''::text
+           )
+     ) || COALESCE
+     (
+           (
+                 (
+                       (' '::text || _
+                             ('Provider:'::text)
+                       ) || ' '::text
+                 ) || d_st.short_alias
+           )
+           ,''::text
+     )
+) AS narrative
+,
+    
+(
+SELECT c_e.pk
+           
+  FROM clin.encounter c_e
+          
+ WHERE (c_e.fk_patient = d_mi.fk_patient)
+          
+ORDER BY c_e.started DESC
+         LIMIT 1
+) AS pk_encounter
+,
+    NULL::integer AS pk_episode
+,
+    NULL::integer AS pk_health_issue
+,
+    d_mi.pk AS src_pk
+,
+    'dem.message_inbox'::text AS src_table
+,
+    d_mi.row_version
+,
+    NULL::text AS health_issue
+,
+    NULL::text AS issue_laterality
+,
+    NULL::boolean AS issue_active
+,
+    NULL::boolean AS issue_clinically_relevant
+,
+    NULL::boolean AS issue_confidential
+,
+    NULL::text AS episode
+,
+    NULL::boolean AS episode_open
+,
+    
+(
+SELECT c_e.started
+           
+  FROM clin.encounter c_e
+          
+ WHERE (c_e.fk_patient = d_mi.fk_patient)
+          
+ORDER BY c_e.started DESC
+         LIMIT 1
+) AS encounter_started
+,
+    
+(
+SELECT c_e.last_affirmed
+           
+  FROM clin.encounter c_e
+          
+ WHERE (c_e.fk_patient = d_mi.fk_patient)
+          
+ORDER BY c_e.started DESC
+         LIMIT 1
+) AS encounter_last_affirmed
+,
+    NULL::text AS encounter_type
+,
+    NULL::text AS encounter_l10n_type
+   
+FROM (
+     (dem.message_inbox d_mi
+     
+        JOIN dem.v_inbox_item_type d_vit 
+          ON (
+                 (d_mi.fk_inbox_item_type = d_vit.pk_type)
+           )
+     )
+     
+LEFT JOIN dem.staff d_st 
+    ON (
+           (d_mi.fk_staff = d_st.pk)
+     )
+)
+  
+WHERE (
+     (
+           (d_mi.fk_patient IS NOT NULL)
+         AND (d_vit.category = 'clinical'::text)
+     )
+   AND (
+           (d_mi.due_date IS NOT NULL)
+          OR (d_mi.expiry_date IS NOT NULL)
+     )
+);</pre>
 	
 
 	<!-- List off permissions -->
@@ -78983,13 +94261,15 @@ FROM clin.v_procedures_not_at_hospital_journal;</pre>
         <hr>
 		<h2>View:
 			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-procedures-not-at-hospital">v_procedures_not_at_hospital</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-reviewed-items">v_reviewed_items</a>
 		</h2>
         
+         <p>denormalization of parent table of reviewed items</p>
+        
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.v_procedures_not_at_hospital Structure</caption>
+                <caption>clin.v_reviewed_items Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -79001,40 +94281,8 @@ FROM clin.v_procedures_not_at_hospital_journal;</pre>
 				<td>
                 
                 </td>
-            	<td>pk_procedure</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>pk_patient</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>soap_cat</td>
-            	<td>text</td>
+            	<td>src_schema</td>
+            	<td>oid</td>
                 <td><i>
 				
 
@@ -79049,8 +94297,8 @@ FROM clin.v_procedures_not_at_hospital_journal;</pre>
 				<td>
                 
                 </td>
-            	<td>clin_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>src_table</td>
+            	<td>name</td>
                 <td><i>
 				
 
@@ -79065,8 +94313,8 @@ FROM clin.v_procedures_not_at_hospital_journal;</pre>
 				<td>
                 
                 </td>
-            	<td>clin_end</td>
-            	<td>timestamp with time zone</td>
+            	<td>pk_reviewed_row</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -79081,7 +94329,7 @@ FROM clin.v_procedures_not_at_hospital_journal;</pre>
 				<td>
                 
                 </td>
-            	<td>is_ongoing</td>
+            	<td>is_technically_abnormal</td>
             	<td>boolean</td>
                 <td><i>
 				
@@ -79097,8 +94345,8 @@ FROM clin.v_procedures_not_at_hospital_journal;</pre>
 				<td>
                 
                 </td>
-            	<td>performed_procedure</td>
-            	<td>text</td>
+            	<td>clinically_relevant</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -79113,7 +94361,7 @@ FROM clin.v_procedures_not_at_hospital_journal;</pre>
 				<td>
                 
                 </td>
-            	<td>unit</td>
+            	<td>reviewer</td>
             	<td>text</td>
                 <td><i>
 				
@@ -79129,7 +94377,7 @@ FROM clin.v_procedures_not_at_hospital_journal;</pre>
 				<td>
                 
                 </td>
-            	<td>organization</td>
+            	<td>comment</td>
             	<td>text</td>
                 <td><i>
 				
@@ -79145,8 +94393,8 @@ FROM clin.v_procedures_not_at_hospital_journal;</pre>
 				<td>
                 
                 </td>
-            	<td>episode</td>
-            	<td>text</td>
+            	<td>pk_review_root</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -79161,8 +94409,8 @@ FROM clin.v_procedures_not_at_hospital_journal;</pre>
 				<td>
                 
                 </td>
-            	<td>health_issue</td>
-            	<td>text</td>
+            	<td>pk_reviewer</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -79173,59 +94421,96 @@ FROM clin.v_procedures_not_at_hospital_journal;</pre>
 				</td>
 			 </tr>
             
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>modified_when</td>
-            	<td>timestamp with time zone</td>
-                <td><i>
-				
+        </table>
 
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>modified_by</td>
-            	<td>text</td>
-                <td><i>
-				
+        <!-- Inherits -->
+		
 
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>row_version</td>
-            	<td>integer</td>
-                <td><i>
-				
+		
 
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
+        <!-- Constraint List -->
+		
+
+        <!-- Foreign Key Discovery -->
+		
+
+    <!-- Indexes -->
+    
+
+	<!-- View Definition -->
+	
+	<pre>
+SELECT (
+SELECT pg_class.relnamespace
+           
+  FROM pg_class
+          
+ WHERE (pg_class.oid = rr.tableoid)
+) AS src_schema
+,
+    
+(
+SELECT pg_class.relname
+           
+  FROM pg_class
+          
+ WHERE (pg_class.oid = rr.tableoid)
+) AS src_table
+,
+    rr.fk_reviewed_row AS pk_reviewed_row
+,
+    rr.is_technically_abnormal
+,
+    rr.clinically_relevant
+,
+    
+(
+SELECT staff.short_alias
+           
+  FROM dem.staff
+          
+ WHERE (staff.pk = rr.fk_reviewer)
+) AS reviewer
+,
+    rr.comment
+,
+    rr.pk AS pk_review_root
+,
+    rr.fk_reviewer AS pk_reviewer
+   
+FROM clin.review_root rr;</pre>
+	
+
+	<!-- List off permissions -->
+	
+
+	<p>
+		<a href="gnumed-entire_schema.html#index">Index</a> -
+		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
+    </p>
+	
+        <hr>
+		<h2>View:
+			
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-subst-intake4narr-search">v_subst_intake4narr_search</a>
+		</h2>
+        
+
+
+        <table width="100%" cellspacing="0" cellpadding="3">
+                <caption>clin.v_subst_intake4narr_search Structure</caption>
+                <tr>
+                <th>F-Key</th>
+                <th>Name</th>
+                <th>Type</th>
+                <th>Description</th>
+                </tr>
             
             <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>pk_encounter</td>
+            	<td>pk_patient</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -79241,8 +94526,8 @@ FROM clin.v_procedures_not_at_hospital_journal;</pre>
 				<td>
                 
                 </td>
-            	<td>pk_episode</td>
-            	<td>integer</td>
+            	<td>soap_cat</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -79257,8 +94542,8 @@ FROM clin.v_procedures_not_at_hospital_journal;</pre>
 				<td>
                 
                 </td>
-            	<td>pk_hospital_stay</td>
-            	<td>integer</td>
+            	<td>narrative</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -79273,7 +94558,7 @@ FROM clin.v_procedures_not_at_hospital_journal;</pre>
 				<td>
                 
                 </td>
-            	<td>pk_health_issue</td>
+            	<td>pk_encounter</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -79289,7 +94574,7 @@ FROM clin.v_procedures_not_at_hospital_journal;</pre>
 				<td>
                 
                 </td>
-            	<td>pk_org</td>
+            	<td>pk_episode</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -79305,7 +94590,7 @@ FROM clin.v_procedures_not_at_hospital_journal;</pre>
 				<td>
                 
                 </td>
-            	<td>pk_org_unit</td>
+            	<td>pk_health_issue</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -79321,8 +94606,8 @@ FROM clin.v_procedures_not_at_hospital_journal;</pre>
 				<td>
                 
                 </td>
-            	<td>pk_generic_codes</td>
-            	<td>integer[]</td>
+            	<td>src_pk</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -79337,8 +94622,8 @@ FROM clin.v_procedures_not_at_hospital_journal;</pre>
 				<td>
                 
                 </td>
-            	<td>xmin_procedure</td>
-            	<td>xid</td>
+            	<td>src_table</td>
+            	<td>unknown</td>
                 <td><i>
 				
 
@@ -79368,80 +94653,63 @@ FROM clin.v_procedures_not_at_hospital_journal;</pre>
 	<!-- View Definition -->
 	
 	<pre>
-SELECT c_pr.pk AS pk_procedure
-, c_enc.fk_patient AS pk_patient
-, c_pr.soap_cat
-, c_pr.clin_when
-, c_pr.clin_end
-, c_pr.is_ongoing
-, c_pr.narrative AS performed_procedure
-, d_ou.description AS unit
-, d_o.description AS organization
-, c_ep.description AS episode
-, c_hi.description AS health_issue
-, c_pr.modified_when
-, COALESCE
-(
-     (
-      SELECT staff.short_alias 
-        FROM dem.staff 
-       WHERE (staff.db_user = c_pr.modified_by)
-     )
-     , (
-           ('<'::text || 
-                 (c_pr.modified_by)::text
-           ) || '>'::text
-     )
-) AS modified_by
-, c_pr.row_version
-, c_pr.fk_encounter AS pk_encounter
-, c_pr.fk_episode AS pk_episode
-, c_pr.fk_hospital_stay AS pk_hospital_stay
-, c_ep.fk_health_issue AS pk_health_issue
-, d_o.pk AS pk_org
-, d_ou.pk AS pk_org_unit
-, COALESCE
+SELECT c_enc.fk_patient AS pk_patient
+,
+    c_si.soap_cat
+,
+    
 (
      (
-      SELECT array_agg
-           (c_lc2p.fk_generic_code) AS array_agg 
-        FROM clin.lnk_code2procedure c_lc2p 
-       WHERE (c_lc2p.fk_item = c_pr.pk)
-     )
-     , ARRAY[]::integer[]
-) AS pk_generic_codes
-, c_pr.xmin AS xmin_procedure 
-FROM (
-     (
            (
-                 (
-                       (clin.procedure c_pr 
-                          JOIN clin.encounter c_enc 
-                            ON (
-                                   (c_pr.fk_encounter = c_enc.pk)
-                             )
-                       )
-                    JOIN clin.episode c_ep 
-                      ON (
-                             (c_pr.fk_episode = c_ep.pk)
+                 (COALESCE
+                       (c_si.narrative
+                             ,''::text
+                       ) || COALESCE
+                       (
+                             (' / '::text || c_si.comment_on_start)
+                             ,''::text
                        )
+                 ) || COALESCE
+                 (
+                       (' / '::text || c_si.schedule)
+                       ,''::text
                  )
-         LEFT JOIN clin.health_issue c_hi 
-                ON (
-                       (c_ep.fk_health_issue = c_hi.pk)
-                 )
+           ) || COALESCE
+           (
+                 (' / '::text || c_si.aim)
+                 ,''::text
            )
-   LEFT JOIN dem.org_unit d_ou 
+     ) || COALESCE
+     (
+           (' / '::text || c_si.discontinue_reason)
+           ,''::text
+     )
+) AS narrative
+,
+    c_si.fk_encounter AS pk_encounter
+,
+    c_si.fk_episode AS pk_episode
+,
+    c_epi.fk_health_issue AS pk_health_issue
+,
+    c_si.pk AS src_pk
+,
+    'clin.substance_intake' AS src_table
+   
+FROM (
+     (clin.substance_intake c_si
+     
+        JOIN clin.encounter c_enc 
           ON (
-                 (d_ou.pk = c_pr.fk_org_unit)
+                 (c_si.fk_encounter = c_enc.pk)
            )
      )
-LEFT JOIN dem.org d_o 
+     
+  JOIN clin.episode c_epi 
     ON (
-           (d_o.pk = d_ou.fk_org)
+           (c_si.fk_episode = c_epi.pk)
      )
-)
-WHERE (c_pr.fk_hospital_stay IS NULL);</pre>
+);</pre>
 	
 
 	<!-- List off permissions -->
@@ -79455,13 +94723,13 @@ WHERE (c_pr.fk_hospital_stay IS NULL);</pre>
         <hr>
 		<h2>View:
 			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-procedures-not-at-hospital-journal">v_procedures_not_at_hospital_journal</a>
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-substance-intake-journal">v_substance_intake_journal</a>
 		</h2>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.v_procedures_not_at_hospital_journal Structure</caption>
+                <caption>clin.v_substance_intake_journal Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -79647,209 +94915,26 @@ WHERE (c_pr.fk_hospital_stay IS NULL);</pre>
             
             <tr class="tr1">
 				<td>
-                
-                </td>
-            	<td>row_version</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-        </table>
-
-        <!-- Inherits -->
-		
-
-		
-
-        <!-- Constraint List -->
-		
-
-        <!-- Foreign Key Discovery -->
-		
-
-    <!-- Indexes -->
-    
-
-	<!-- View Definition -->
-	
-	<pre>
-SELECT c_enc.fk_patient AS pk_patient
-, c_pr.modified_when
-, c_pr.clin_when
-, COALESCE
-(
-     (
-      SELECT staff.short_alias 
-        FROM dem.staff 
-       WHERE (staff.db_user = c_pr.modified_by)
-     )
-     , (
-           ('<'::text || 
-                 (c_pr.modified_by)::text
-           ) || '>'::text
-     )
-) AS modified_by
-, c_pr.soap_cat
-, (
-     (
-           (
-                 (
-                       (
-                             (
-                                   (
-                                         (
-                                               (
-                                                     (_
-                                                           ('Procedure'::text) || ' "'::text
-                                                     ) || c_pr.narrative
-                                               ) || '"'::text
-                                         ) || 
-                                      ' ('::text) || d_ou.description
-                                   ) || ' @ '::text
-                             ) || d_o.description
-                       ) || COALESCE
-                       (
-                             (
-                                   (
-                                         (
-                                            ', '::text || _
-                                               ('until'::text)
-                                         ) || ' '::text
-                                   ) || to_char
-                                   (c_pr.clin_end
-                                         ,'YYYY Mon DD'::text
-                                   )
-                             )
-                             , CASE WHEN 
-                             (c_pr.is_ongoing IS TRUE) THEN 
-                             (
-                                ', '::text || _
-                                   ('ongoing'::text)
-                             ) ELSE ''::text END
-                       )
-                 ) || 
-         ')'::text
-     ) || COALESCE
-     (
-           (
-                 ('
-'::text || array_to_string
-                       (
-                             (
-                              SELECT array_agg
-                                   (
-                                         (
-                                               (
-                                                     (
-                                                           (
-                                                                 (
-                                                                       (
-                                                                             (
-                                                                                   (r_csr.code || 
-                                                                                      ' ('::text) || r_ds.name_short
-                                                                                   ) || ' - '::text
-                                                                             ) || r_ds.version
-                                                                       ) || ' - '::text
-                                                                 ) || r_ds.lang
-                                                           ) || 
-                                                 '): '::text
-                                               ) || r_csr.term
-                                         )
-                                   ) AS array_agg 
-                                FROM (
-                                         (clin.lnk_code2procedure c_lc2p 
-                                            JOIN ref.coding_system_root r_csr 
-                                              ON (
-                                                     (c_lc2p.fk_generic_code = r_csr.pk_coding_system)
-                                               )
-                                         )
-                                      JOIN ref.data_source r_ds 
-                                        ON (
-                                               (r_ds.pk = r_csr.fk_data_source)
-                                         )
-                                   )
-                               WHERE (c_lc2p.fk_item = c_pr.pk)
-                             )
-                             ,'; '::text
-                       )
-                 ) || ';'::text
-           )
-           ,''::text
-     )
-) AS narrative
-, c_pr.fk_encounter AS pk_encounter
-, c_pr.fk_episode AS pk_episode
-, cep.fk_health_issue AS pk_health_issue
-, c_pr.pk AS src_pk
-,'clin.procedure'::text AS src_table
-, c_pr.row_version 
-FROM (
-     (
-           (
-                 (clin.procedure c_pr 
-                    JOIN clin.encounter c_enc 
-                      ON (
-                             (c_pr.fk_encounter = c_enc.pk)
-                       )
-                 )
-              JOIN clin.episode cep 
-                ON (
-                       (c_pr.fk_episode = cep.pk)
-                 )
-           )
-   LEFT JOIN dem.org_unit d_ou 
-          ON (
-                 (c_pr.fk_org_unit = d_ou.pk)
-           )
-     )
-LEFT JOIN dem.org d_o 
-    ON (
-           (d_ou.fk_org = d_o.pk)
-     )
-)
-WHERE (c_pr.fk_hospital_stay IS NULL);</pre>
-	
-
-	<!-- List off permissions -->
-	
-
-	<p>
-		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
-    </p>
-	
-        <hr>
-		<h2>View:
-			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-reviewed-items">v_reviewed_items</a>
-		</h2>
-        
-         <p>denormalization of parent table of reviewed items</p>
-        
-
+                
+                </td>
+            	<td>row_version</td>
+            	<td>integer</td>
+                <td><i>
+				
 
-        <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.v_reviewed_items Structure</caption>
-                <tr>
-                <th>F-Key</th>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Description</th>
-                </tr>
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
             
             <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>src_schema</td>
-            	<td>oid</td>
+            	<td>health_issue</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -79864,8 +94949,8 @@ WHERE (c_pr.fk_hospital_stay IS NULL);</pre>
 				<td>
                 
                 </td>
-            	<td>src_table</td>
-            	<td>name</td>
+            	<td>issue_laterality</td>
+            	<td>character varying(2)</td>
                 <td><i>
 				
 
@@ -79880,8 +94965,8 @@ WHERE (c_pr.fk_hospital_stay IS NULL);</pre>
 				<td>
                 
                 </td>
-            	<td>pk_reviewed_row</td>
-            	<td>integer</td>
+            	<td>issue_active</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -79896,7 +94981,7 @@ WHERE (c_pr.fk_hospital_stay IS NULL);</pre>
 				<td>
                 
                 </td>
-            	<td>is_technically_abnormal</td>
+            	<td>issue_clinically_relevant</td>
             	<td>boolean</td>
                 <td><i>
 				
@@ -79912,7 +94997,7 @@ WHERE (c_pr.fk_hospital_stay IS NULL);</pre>
 				<td>
                 
                 </td>
-            	<td>clinically_relevant</td>
+            	<td>issue_confidential</td>
             	<td>boolean</td>
                 <td><i>
 				
@@ -79928,7 +95013,7 @@ WHERE (c_pr.fk_hospital_stay IS NULL);</pre>
 				<td>
                 
                 </td>
-            	<td>reviewer</td>
+            	<td>episode</td>
             	<td>text</td>
                 <td><i>
 				
@@ -79944,8 +95029,8 @@ WHERE (c_pr.fk_hospital_stay IS NULL);</pre>
 				<td>
                 
                 </td>
-            	<td>comment</td>
-            	<td>text</td>
+            	<td>episode_open</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -79960,8 +95045,8 @@ WHERE (c_pr.fk_hospital_stay IS NULL);</pre>
 				<td>
                 
                 </td>
-            	<td>pk_review_root</td>
-            	<td>integer</td>
+            	<td>encounter_started</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
@@ -79976,8 +95061,40 @@ WHERE (c_pr.fk_hospital_stay IS NULL);</pre>
 				<td>
                 
                 </td>
-            	<td>pk_reviewer</td>
-            	<td>integer</td>
+            	<td>encounter_last_affirmed</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>encounter_type</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>encounter_l10n_type</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -80007,28 +95124,651 @@ WHERE (c_pr.fk_hospital_stay IS NULL);</pre>
 	<!-- View Definition -->
 	
 	<pre>
-SELECT (
-SELECT pg_class.relnamespace 
-  FROM pg_class 
- WHERE (pg_class.oid = rr.tableoid)
-) AS src_schema
-, (
-SELECT pg_class.relname 
-  FROM pg_class 
- WHERE (pg_class.oid = rr.tableoid)
-) AS src_table
-, rr.fk_reviewed_row AS pk_reviewed_row
-, rr.is_technically_abnormal
-, rr.clinically_relevant
-, (
-SELECT staff.short_alias 
-  FROM dem.staff 
- WHERE (staff.pk = rr.fk_reviewer)
-) AS reviewer
-, rr.comment
-, rr.pk AS pk_review_root
-, rr.fk_reviewer AS pk_reviewer 
-FROM clin.review_root rr;</pre>
+SELECT c_enc.fk_patient AS pk_patient
+,
+    c_si.modified_when
+,
+    c_si.clin_when
+,
+    COALESCE
+(
+     (
+      SELECT staff.short_alias
+           
+        FROM dem.staff
+          
+       WHERE (staff.db_user = c_si.modified_by)
+     )
+     , (
+           ('<'::text || 
+                 (c_si.modified_by)::text
+           ) || '>'::text
+     )
+) AS modified_by
+,
+    c_si.soap_cat
+,
+    
+(
+     (
+           (
+                 (
+                       (
+                             (
+                                   (
+                                         (
+                                               (
+                                                     (
+                                                           (
+                                                                 (
+                                                                       (
+                                                                             (
+                                                                                   (
+                                                                                         (
+                                                                                               (
+                                                                                                     (
+                                                                                                           (
+                                                                                                                 (
+                                                                                                                       (
+        CASE
+            WHEN 
+                                                                                                                             (c_si.is_long_term IS TRUE) THEN 
+                                                                                                                             (_
+                                                                                                                                   ('long-term'::text) || ' '::text
+                                                                                                                             )
+            ELSE ''::text
+        END || _
+                                                                                                                             ('substance intake'::text)
+                                                                                                                       ) || ' '::text
+                                                                                                                 ) ||
+        CASE
+            WHEN 
+                                                                                                                 (c_si.intake_is_approved_of IS TRUE) THEN _
+                                                                                                                 ('(approved of)'::text
+                                                                                                           )
+            WHEN 
+                                                                                                           (c_si.intake_is_approved_of IS FALSE) THEN _
+                                                                                                           ('(not approved of)'::text
+                                                                                                     )
+            ELSE _
+                                                                                                     ('(of unknown approval)'::text
+                                                                                               )
+        END
+                                                                                         ) ||
+        CASE
+            WHEN 
+                                                                                         (c_si.harmful_use_type IS NULL) THEN ''::text
+            WHEN 
+                                                                                         (c_si.harmful_use_type = 0) THEN _
+                                                                                         ('no harmful use'::text)
+            WHEN 
+                                                                                         (c_si.harmful_use_type = 1) THEN _
+                                                                                         ('harmful use'::text)
+            WHEN 
+                                                                                         (c_si.harmful_use_type = 2) THEN _
+                                                                                         ('addiction'::text)
+            WHEN 
+                                                                                         (c_si.harmful_use_type = 3) THEN _
+                                                                                         ('previous addiction'::text)
+            ELSE NULL::text
+        END
+                                                                                   ) || ':
+'::text
+                                                                             ) || ' '::text
+                                                                       ) || r_cs.description
+                                                                 ) || COALESCE
+                                                                 (
+                                                                       (
+                                                                             (' ['::text || r_cs.atc_code) || '] '::text
+                                                                       )
+                                                                       ,' '::text
+                                                                 )
+                                                           ) || 
+                                                           (r_cs.amount)::text
+                                                     ) || r_cs.unit
+                                               ) || ' '::text
+                                         ) || r_bd.preparation
+                                   ) || COALESCE
+                                   (
+                                         (' '::text || c_si.schedule)
+                                         ,''::text
+                                   )
+                             ) || 
+                          ', '::text
+                       ) ||
+        CASE
+            WHEN 
+                       (c_si.comment_on_start = '?'::text) THEN '?'::text
+            WHEN 
+                       (c_si.comment_on_start IS NULL) THEN to_char
+                       (c_si.clin_when
+                             ,'YYYY-MM-DD'::text
+                       )
+            ELSE 
+                       (
+                             (
+                                   (
+                                         ('~'::text || to_char
+                                               (c_si.clin_when
+                                                     ,'YYYY-MM-DD'::text
+                                               )
+                                         ) || 
+                                      ' ('::text) || c_si.comment_on_start
+                                   ) || 
+                           ')'::text
+                       )
+        END
+                 ) || COALESCE
+                 (
+                       (' -> '::text || c_si.duration)
+                       ,''::text
+                 )
+           ) || '
+'::text
+     ) || COALESCE
+     (
+           (
+                 (
+                       (
+                             (' '::text || _
+                                   ('Discontinued'::text)
+                             ) || to_char
+                             (c_si.discontinued
+                                   ,': YYYY-MM-DD'::text
+                             )
+                       ) || COALESCE
+                       (
+                             (
+                                   (
+                                      ' ('::text || c_si.discontinue_reason) || 
+                                 ')'::text
+                             )
+                             ,''::text
+                       )
+                 ) || '
+'::text
+           )
+           ,''::text
+     )
+) || COALESCE
+(
+     (
+           (
+                 ('
+ '::text || _
+                       ('Aim'::text)
+                 ) || ': '::text
+           ) || c_si.aim
+     )
+     ,''::text
+)
+)      || COALESCE
+(     
+(
+     (
+           ('
+ '::text || _
+                 ('Notes'::text)
+           ) || ': '::text
+     ) || c_si.narrative
+)
+,''::text
+)     
+)            || COALESCE
+(           
+(     
+(
+     (
+           (' "'::text || r_bd.description) || '"'::text
+     ) || COALESCE
+     (
+           (
+                 (' ['::text || r_bd.atc_code) || ']'::text
+           )
+           ,''::text
+     )
+) || COALESCE
+(
+     (
+           (
+                 (
+                       (
+                          ' ('::text || r_bd.external_code_type) || ': '::text
+                       ) || r_bd.external_code
+                 ) || 
+         ')'::text
+     )
+     ,''::text
+)
+)     
+,     ''::text
+)           
+)                  AS narrative
+,                 
+    c_si.fk_encounter AS pk_encounter
+,                 
+    c_si.fk_episode AS pk_episode
+,                 
+    
+(                 
+SELECT       episode.fk_health_issue
+           
+FROM         clin.episode
+          
+WHERE        (episode.pk = c_si.fk_episode)
+)                  AS pk_health_issue
+,                 
+    c_si.pk AS src_pk
+,                 
+    'clin.substance_intake'::text AS src_table
+,                 
+    c_si.row_version
+,                 
+    c_hi.description AS health_issue
+,                 
+    c_hi.laterality AS issue_laterality
+,                 
+    c_hi.is_active AS issue_active
+,                 
+    c_hi.clinically_relevant AS issue_clinically_relevant
+,                 
+    c_hi.is_confidential AS issue_confidential
+,                 
+    c_epi.description AS episode
+,                 
+    c_epi.is_open AS episode_open
+,                 
+    c_enc.started AS encounter_started
+,                 
+    c_enc.last_affirmed AS encounter_last_affirmed
+,                 
+    c_ety.description AS encounter_type
+,                 
+    _
+(                 c_ety.description) AS encounter_l10n_type
+   
+FROM               (
+(           
+(     
+(
+     (
+           (
+                 (clin.substance_intake c_si
+     
+                    JOIN ref.lnk_substance2brand r_ls2b 
+                      ON (
+                             (c_si.fk_drug_component = r_ls2b.pk)
+                       )
+                 )
+     
+              JOIN ref.branded_drug r_bd 
+                ON (
+                       (r_bd.pk = r_ls2b.fk_brand)
+                 )
+           )
+     
+        JOIN ref.consumable_substance r_cs 
+          ON (
+                 (r_cs.pk = r_ls2b.fk_substance)
+           )
+     )
+     
+  JOIN clin.encounter c_enc 
+    ON (
+           (c_si.fk_encounter = c_enc.pk)
+     )
+)
+     
+JOIN clin.encounter_type c_ety 
+ON (
+     (c_enc.fk_type = c_ety.pk)
+)
+)     
+     
+JOIN   clin.episode c_epi 
+ON     (
+(c_si.fk_episode = c_epi.pk)
+)     
+)           
+     
+LEFT JOIN    clin.health_issue c_hi 
+ON           (
+(     c_epi.fk_health_issue = c_hi.pk)
+)           
+)                 
+  
+WHERE              (c_si.fk_drug_component IS NOT NULL)
+UNION ALL         
+ 
+SELECT             c_enc.fk_patient AS pk_patient
+,                 
+    c_si.modified_when
+,                 
+    c_si.clin_when
+,                 
+    COALESCE
+(                 
+(           
+SELECT staff.short_alias
+           
+FROM   dem.staff
+          
+WHERE  (staff.db_user = c_si.modified_by)
+)           
+,            (
+(     '<'::text || 
+(c_si.modified_by)::text
+)      || '>'::text
+)           
+)                  AS modified_by
+,                 
+    c_si.soap_cat
+,                 
+    
+(                 
+(           
+(     
+(
+     (
+           (
+                 (
+                       (
+                             (
+                                   (
+                                         (
+                                               (
+                                                     (
+                                                           (
+                                                                 (
+                                                                       (
+                                                                             (
+                                                                                   (
+                                                                                         (
+        CASE
+            WHEN 
+                                                                                               (c_si.is_long_term IS TRUE) THEN 
+                                                                                               (_
+                                                                                                     ('long-term'::text) || ' '::text
+                                                                                               )
+            ELSE ''::text
+        END ||
+        CASE
+            WHEN 
+                                                                                               (c_si.harmful_use_type IS NULL) THEN 
+                                                                                               (_
+                                                                                                     ('Substance intake'::text) || ' '::text
+                                                                                               )
+            ELSE 
+                                                                                               (_
+                                                                                                     ('Substance abuse'::text) || ' '::text
+                                                                                               )
+        END
+                                                                                         ) ||
+        CASE
+            WHEN 
+                                                                                         (c_si.intake_is_approved_of IS TRUE) THEN _
+                                                                                         ('(approved of)'::text
+                                                                                   )
+            WHEN 
+                                                                                   (c_si.intake_is_approved_of IS FALSE) THEN _
+                                                                                   ('(not approved of)'::text
+                                                                             )
+            ELSE _
+                                                                             ('(of unknown approval)'::text
+                                                                       )
+        END
+                                                                 ) ||
+        CASE
+            WHEN 
+                                                                 (c_si.harmful_use_type IS NULL) THEN ''::text
+            WHEN 
+                                                                 (c_si.harmful_use_type = 0) THEN 
+                                                                 (
+                                                                       (
+                                                                             (
+                                                                                   (
+                                                                                      ', '::text || _
+                                                                                         ('no harmful use'::text)
+                                                                                   ) || 
+                                                                                ' ('::text) || to_char
+                                                                                   (c_enc.started
+                                                                                         ,'YYYY-MM-DD'::text
+                                                                                   )
+                                                                             ) || 
+                                                                     ')'::text
+                                                                 )
+            WHEN 
+                                                                 (c_si.harmful_use_type = 1) THEN 
+                                                                 (
+                                                                       (
+                                                                             (
+                                                                                   (
+                                                                                      ', '::text || _
+                                                                                         ('harmful use'::text)
+                                                                                   ) || 
+                                                                                ' ('::text) || to_char
+                                                                                   (c_enc.started
+                                                                                         ,'YYYY-MM-DD'::text
+                                                                                   )
+                                                                             ) || 
+                                                                     ')'::text
+                                                                 )
+            WHEN 
+                                                                 (c_si.harmful_use_type = 2) THEN 
+                                                                 (
+                                                                       (
+                                                                             (
+                                                                                   (
+                                                                                      ', '::text || _
+                                                                                         ('addiction'::text)
+                                                                                   ) || 
+                                                                                ' ('::text) || to_char
+                                                                                   (c_enc.started
+                                                                                         ,'YYYY-MM-DD'::text
+                                                                                   )
+                                                                             ) || 
+                                                                     ')'::text
+                                                                 )
+            WHEN 
+                                                                 (c_si.harmful_use_type = 3) THEN 
+                                                                 (
+                                                                       (
+                                                                             (
+                                                                                   (
+                                                                                      ', '::text || _
+                                                                                         ('previous addiction'::text)
+                                                                                   ) || 
+                                                                                ' ('::text) || to_char
+                                                                                   (c_enc.started
+                                                                                         ,'YYYY-MM-DD'::text
+                                                                                   )
+                                                                             ) || 
+                                                                     ')'::text
+                                                                 )
+            ELSE NULL::text
+        END
+                                                           ) || ':
+'::text
+                                                     ) || ' '::text
+                                               ) || r_cs.description
+                                         ) || COALESCE
+                                         (
+                                               (
+                                                     (' ['::text || r_cs.atc_code) || '] '::text
+                                               )
+                                               ,' '::text
+                                         )
+                                   ) || r_cs.amount
+                             ) || r_cs.unit
+                       ) || ' '::text
+                 ) || c_si.preparation
+           ) || COALESCE
+           (
+                 (' '::text || c_si.schedule)
+                 ,''::text
+           )
+     ) || 
+  ', '::text
+) ||
+        CASE
+            WHEN 
+(c_si.comment_on_start = '?'::text) THEN '?'::text
+            WHEN 
+(c_si.comment_on_start IS NULL) THEN to_char
+(c_si.clin_when
+     ,'YYYY-MM-DD'::text
+)
+            ELSE 
+(
+     (
+           (
+                 ('~'::text || to_char
+                       (c_si.clin_when
+                             ,'YYYY-MM-DD'::text
+                       )
+                 ) || 
+              ' ('::text) || c_si.comment_on_start
+           ) || 
+   ')'::text
+)
+        END
+)      || COALESCE
+(     
+(' -> '::text || c_si.duration)
+,''::text
+)     
+)            || '
+'::text
+)                  || COALESCE
+(                 
+(           
+(     
+(
+     (' '::text || _
+           ('Discontinued'::text)
+     ) || to_char
+     (c_si.discontinued
+           ,': YYYY-MM-DD'::text
+     )
+) || COALESCE
+(
+     (
+           (
+              ' ('::text || c_si.discontinue_reason) || 
+         ')'::text
+     )
+     ,''::text
+)
+)      || '
+'::text
+)           
+,           ''::text
+)                 
+)                        || COALESCE
+(                       
+(                 
+(           
+(     '
+ '::text || _
+('Aim'::text)
+)      || ': '::text
+)            || c_si.aim
+)                 
+,                 ''::text
+)                       
+)                              || COALESCE
+(                             
+(                       
+(                 
+(           '
+ '::text || _
+(     'Notes'::text)
+)            || ': '::text
+)                  || c_si.narrative
+)                       
+,                       ''::text
+)                             
+)                                    AS narrative
+,                                   
+    c_si.fk_encounter AS pk_encounter
+,                                   
+    c_si.fk_episode AS pk_episode
+,                                   
+    
+(                                   
+SELECT                         episode.fk_health_issue
+           
+FROM                           clin.episode
+          
+WHERE                          (episode.pk = c_si.fk_episode)
+)                                    AS pk_health_issue
+,                                   
+    c_si.pk AS src_pk
+,                                   
+    'clin.substance_intake'::text AS src_table
+,                                   
+    c_si.row_version
+,                                   
+    c_hi.description AS health_issue
+,                                   
+    c_hi.laterality AS issue_laterality
+,                                   
+    c_hi.is_active AS issue_active
+,                                   
+    c_hi.clinically_relevant AS issue_clinically_relevant
+,                                   
+    c_hi.is_confidential AS issue_confidential
+,                                   
+    c_epi.description AS episode
+,                                   
+    c_epi.is_open AS episode_open
+,                                   
+    c_enc.started AS encounter_started
+,                                   
+    c_enc.last_affirmed AS encounter_last_affirmed
+,                                   
+    c_ety.description AS encounter_type
+,                                   
+    _
+(                                   c_ety.description) AS encounter_l10n_type
+   
+FROM                                 (
+(                             
+(                       
+(                 
+(           clin.substance_intake c_si
+     
+JOIN   ref.consumable_substance r_cs 
+ON     (
+(r_cs.pk = c_si.fk_substance)
+)     
+)           
+     
+JOIN         clin.encounter c_enc 
+ON           (
+(     c_si.fk_encounter = c_enc.pk)
+)           
+)                 
+     
+JOIN               clin.encounter_type c_ety 
+ON                 (
+(           c_enc.fk_type = c_ety.pk)
+)                 
+)                       
+     
+JOIN                     clin.episode c_epi 
+ON                       (
+(                 c_si.fk_episode = c_epi.pk)
+)                       
+)                             
+     
+LEFT JOIN                      clin.health_issue c_hi 
+ON                             (
+(                       c_epi.fk_health_issue = c_hi.pk)
+)                             
+)                                   
+  
+WHERE                                (c_si.fk_drug_component IS NULL);</pre>
 	
 
 	<!-- List off permissions -->
@@ -80268,6 +96008,54 @@ FROM clin.review_root rr;</pre>
 				<td>
                 
                 </td>
+            	<td>comment_on_start</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>start_is_unknown</td>
+            	<td>boolean</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>start_is_approximate</td>
+            	<td>boolean</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
             	<td>intake_is_approved_of</td>
             	<td>boolean</td>
                 <td><i>
@@ -80280,10 +96068,42 @@ FROM clin.review_root rr;</pre>
 				</td>
 			 </tr>
             
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>harmful_use_type</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
             <tr class="tr0">
 				<td>
                 
                 </td>
+            	<td>last_checked_when</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
             	<td>schedule</td>
             	<td>text</td>
                 <td><i>
@@ -80296,7 +96116,7 @@ FROM clin.review_root rr;</pre>
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                 </td>
@@ -80312,7 +96132,7 @@ FROM clin.review_root rr;</pre>
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
@@ -80328,7 +96148,7 @@ FROM clin.review_root rr;</pre>
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                 </td>
@@ -80344,7 +96164,7 @@ FROM clin.review_root rr;</pre>
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
@@ -80360,7 +96180,7 @@ FROM clin.review_root rr;</pre>
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                 </td>
@@ -80376,7 +96196,7 @@ FROM clin.review_root rr;</pre>
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
@@ -80392,7 +96212,7 @@ FROM clin.review_root rr;</pre>
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                 </td>
@@ -80408,7 +96228,7 @@ FROM clin.review_root rr;</pre>
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
@@ -80424,7 +96244,7 @@ FROM clin.review_root rr;</pre>
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                 </td>
@@ -80440,7 +96260,7 @@ FROM clin.review_root rr;</pre>
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
@@ -80456,7 +96276,7 @@ FROM clin.review_root rr;</pre>
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                 </td>
@@ -80472,7 +96292,7 @@ FROM clin.review_root rr;</pre>
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
@@ -80488,7 +96308,7 @@ FROM clin.review_root rr;</pre>
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                 </td>
@@ -80504,7 +96324,7 @@ FROM clin.review_root rr;</pre>
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
@@ -80520,7 +96340,7 @@ FROM clin.review_root rr;</pre>
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                 </td>
@@ -80536,7 +96356,7 @@ FROM clin.review_root rr;</pre>
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
@@ -80552,7 +96372,7 @@ FROM clin.review_root rr;</pre>
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                 </td>
@@ -80568,7 +96388,7 @@ FROM clin.review_root rr;</pre>
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
@@ -80584,7 +96404,7 @@ FROM clin.review_root rr;</pre>
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                 </td>
@@ -80600,7 +96420,7 @@ FROM clin.review_root rr;</pre>
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
@@ -80616,7 +96436,7 @@ FROM clin.review_root rr;</pre>
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                 </td>
@@ -80632,7 +96452,7 @@ FROM clin.review_root rr;</pre>
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
@@ -80668,80 +96488,177 @@ FROM clin.review_root rr;</pre>
 	
 	<pre>
 SELECT v_brand_intakes.pk_substance_intake
-, v_brand_intakes.pk_patient
-, v_brand_intakes.soap_cat
-, v_brand_intakes.brand
-, v_brand_intakes.preparation
-, v_brand_intakes.substance
-, v_brand_intakes.amount
-, v_brand_intakes.unit
-, v_brand_intakes.atc_substance
-, v_brand_intakes.atc_brand
-, v_brand_intakes.external_code_brand
-, v_brand_intakes.external_code_type_brand
-, v_brand_intakes.started
-, v_brand_intakes.intake_is_approved_of
-, v_brand_intakes.schedule
-, v_brand_intakes.duration
-, v_brand_intakes.discontinued
-, v_brand_intakes.discontinue_reason
-, v_brand_intakes.is_long_term
-, v_brand_intakes.aim
-, v_brand_intakes.episode
-, v_brand_intakes.health_issue
-, v_brand_intakes.notes
-, v_brand_intakes.fake_brand
-, v_brand_intakes.is_currently_active
-, v_brand_intakes.seems_inactive
-, v_brand_intakes.pk_brand
-, v_brand_intakes.pk_data_source
-, v_brand_intakes.pk_substance
-, v_brand_intakes.pk_drug_component
-, v_brand_intakes.pk_encounter
-, v_brand_intakes.pk_episode
-, v_brand_intakes.pk_health_issue
-, v_brand_intakes.modified_when
-, v_brand_intakes.modified_by
-, v_brand_intakes.row_version
-, v_brand_intakes.xmin_substance_intake 
-FROM clin.v_brand_intakes 
-UNION ALLSELECT v_nonbrand_intakes.pk_substance_intake
-, v_nonbrand_intakes.pk_patient
-, v_nonbrand_intakes.soap_cat
-, v_nonbrand_intakes.brand
-, v_nonbrand_intakes.preparation
-, v_nonbrand_intakes.substance
-, v_nonbrand_intakes.amount
-, v_nonbrand_intakes.unit
-, v_nonbrand_intakes.atc_substance
-, v_nonbrand_intakes.atc_brand
-, v_nonbrand_intakes.external_code_brand
-, v_nonbrand_intakes.external_code_type_brand
-, v_nonbrand_intakes.started
-, v_nonbrand_intakes.intake_is_approved_of
-, v_nonbrand_intakes.schedule
-, v_nonbrand_intakes.duration
-, v_nonbrand_intakes.discontinued
-, v_nonbrand_intakes.discontinue_reason
-, v_nonbrand_intakes.is_long_term
-, v_nonbrand_intakes.aim
-, v_nonbrand_intakes.episode
-, v_nonbrand_intakes.health_issue
-, v_nonbrand_intakes.notes
-, v_nonbrand_intakes.fake_brand
-, v_nonbrand_intakes.is_currently_active
-, v_nonbrand_intakes.seems_inactive
-, v_nonbrand_intakes.pk_brand
-, v_nonbrand_intakes.pk_data_source
-, v_nonbrand_intakes.pk_substance
-, v_nonbrand_intakes.pk_drug_component
-, v_nonbrand_intakes.pk_encounter
-, v_nonbrand_intakes.pk_episode
-, v_nonbrand_intakes.pk_health_issue
-, v_nonbrand_intakes.modified_when
-, v_nonbrand_intakes.modified_by
-, v_nonbrand_intakes.row_version
-, v_nonbrand_intakes.xmin_substance_intake 
+,
+    v_brand_intakes.pk_patient
+,
+    v_brand_intakes.soap_cat
+,
+    v_brand_intakes.brand
+,
+    v_brand_intakes.preparation
+,
+    v_brand_intakes.substance
+,
+    v_brand_intakes.amount
+,
+    v_brand_intakes.unit
+,
+    v_brand_intakes.atc_substance
+,
+    v_brand_intakes.atc_brand
+,
+    v_brand_intakes.external_code_brand
+,
+    v_brand_intakes.external_code_type_brand
+,
+    v_brand_intakes.started
+,
+    v_brand_intakes.comment_on_start
+,
+    v_brand_intakes.start_is_unknown
+,
+    v_brand_intakes.start_is_approximate
+,
+    v_brand_intakes.intake_is_approved_of
+,
+    v_brand_intakes.harmful_use_type
+,
+    v_brand_intakes.last_checked_when
+,
+    v_brand_intakes.schedule
+,
+    v_brand_intakes.duration
+,
+    v_brand_intakes.discontinued
+,
+    v_brand_intakes.discontinue_reason
+,
+    v_brand_intakes.is_long_term
+,
+    v_brand_intakes.aim
+,
+    v_brand_intakes.episode
+,
+    v_brand_intakes.health_issue
+,
+    v_brand_intakes.notes
+,
+    v_brand_intakes.fake_brand
+,
+    v_brand_intakes.is_currently_active
+,
+    v_brand_intakes.seems_inactive
+,
+    v_brand_intakes.pk_brand
+,
+    v_brand_intakes.pk_data_source
+,
+    v_brand_intakes.pk_substance
+,
+    v_brand_intakes.pk_drug_component
+,
+    v_brand_intakes.pk_encounter
+,
+    v_brand_intakes.pk_episode
+,
+    v_brand_intakes.pk_health_issue
+,
+    v_brand_intakes.modified_when
+,
+    v_brand_intakes.modified_by
+,
+    v_brand_intakes.row_version
+,
+    v_brand_intakes.xmin_substance_intake
+   
+FROM clin.v_brand_intakes
+
+UNION ALL
+ 
+SELECT v_nonbrand_intakes.pk_substance_intake
+,
+    v_nonbrand_intakes.pk_patient
+,
+    v_nonbrand_intakes.soap_cat
+,
+    v_nonbrand_intakes.brand
+,
+    v_nonbrand_intakes.preparation
+,
+    v_nonbrand_intakes.substance
+,
+    v_nonbrand_intakes.amount
+,
+    v_nonbrand_intakes.unit
+,
+    v_nonbrand_intakes.atc_substance
+,
+    v_nonbrand_intakes.atc_brand
+,
+    v_nonbrand_intakes.external_code_brand
+,
+    v_nonbrand_intakes.external_code_type_brand
+,
+    v_nonbrand_intakes.started
+,
+    v_nonbrand_intakes.comment_on_start
+,
+    v_nonbrand_intakes.start_is_unknown
+,
+    v_nonbrand_intakes.start_is_approximate
+,
+    v_nonbrand_intakes.intake_is_approved_of
+,
+    v_nonbrand_intakes.harmful_use_type
+,
+    v_nonbrand_intakes.last_checked_when
+,
+    v_nonbrand_intakes.schedule
+,
+    v_nonbrand_intakes.duration
+,
+    v_nonbrand_intakes.discontinued
+,
+    v_nonbrand_intakes.discontinue_reason
+,
+    v_nonbrand_intakes.is_long_term
+,
+    v_nonbrand_intakes.aim
+,
+    v_nonbrand_intakes.episode
+,
+    v_nonbrand_intakes.health_issue
+,
+    v_nonbrand_intakes.notes
+,
+    v_nonbrand_intakes.fake_brand
+,
+    v_nonbrand_intakes.is_currently_active
+,
+    v_nonbrand_intakes.seems_inactive
+,
+    v_nonbrand_intakes.pk_brand
+,
+    v_nonbrand_intakes.pk_data_source
+,
+    v_nonbrand_intakes.pk_substance
+,
+    v_nonbrand_intakes.pk_drug_component
+,
+    v_nonbrand_intakes.pk_encounter
+,
+    v_nonbrand_intakes.pk_episode
+,
+    v_nonbrand_intakes.pk_health_issue
+,
+    v_nonbrand_intakes.modified_when
+,
+    v_nonbrand_intakes.modified_by
+,
+    v_nonbrand_intakes.row_version
+,
+    v_nonbrand_intakes.xmin_substance_intake
+   
 FROM clin.v_nonbrand_intakes;</pre>
 	
 
@@ -80854,7 +96771,7 @@ FROM clin.v_nonbrand_intakes;</pre>
 				<td>
                 
                 </td>
-            	<td>url</td>
+            	<td>recommendation</td>
             	<td>text</td>
                 <td><i>
 				
@@ -80870,6 +96787,22 @@ FROM clin.v_nonbrand_intakes;</pre>
 				<td>
                 
                 </td>
+            	<td>url</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
             	<td>is_active</td>
             	<td>boolean</td>
                 <td><i>
@@ -80882,7 +96815,7 @@ FROM clin.v_nonbrand_intakes;</pre>
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                 </td>
@@ -80898,7 +96831,7 @@ FROM clin.v_nonbrand_intakes;</pre>
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
@@ -80914,7 +96847,7 @@ FROM clin.v_nonbrand_intakes;</pre>
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                 </td>
@@ -80930,7 +96863,7 @@ FROM clin.v_nonbrand_intakes;</pre>
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
@@ -80946,7 +96879,7 @@ FROM clin.v_nonbrand_intakes;</pre>
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                 </td>
@@ -80962,7 +96895,7 @@ FROM clin.v_nonbrand_intakes;</pre>
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
@@ -80978,7 +96911,7 @@ FROM clin.v_nonbrand_intakes;</pre>
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                 </td>
@@ -80994,7 +96927,7 @@ FROM clin.v_nonbrand_intakes;</pre>
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
@@ -81010,7 +96943,7 @@ FROM clin.v_nonbrand_intakes;</pre>
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                 </td>
@@ -81046,26 +96979,47 @@ FROM clin.v_nonbrand_intakes;</pre>
 	
 	<pre>
 SELECT (
-SELECT encounter.fk_patient 
-  FROM clin.encounter 
+SELECT encounter.fk_patient
+           
+  FROM clin.encounter
+          
  WHERE (encounter.pk = c_sh.fk_encounter)
 ) AS pk_identity
-, c_sh.pk AS pk_suppressed_hint
-, c_sh.fk_hint AS pk_hint
-, r_vah.title
-, r_vah.hint
-, r_vah.url
-, r_vah.is_active
-, r_vah.source
-, r_vah.query
-, r_vah.lang
-, c_sh.rationale
-, c_sh.md5_sum AS md5_suppressed
-, r_vah.md5_sum AS md5_hint
-, c_sh.suppressed_by
-, c_sh.suppressed_when
-, c_sh.fk_encounter AS pk_encounter 
-FROM (clin.suppressed_hint c_sh 
+,
+    c_sh.pk AS pk_suppressed_hint
+,
+    c_sh.fk_hint AS pk_hint
+,
+    r_vah.title
+,
+    r_vah.hint
+,
+    r_vah.recommendation
+,
+    r_vah.url
+,
+    r_vah.is_active
+,
+    r_vah.source
+,
+    r_vah.query
+,
+    r_vah.lang
+,
+    c_sh.rationale
+,
+    c_sh.md5_sum AS md5_suppressed
+,
+    r_vah.md5_sum AS md5_hint
+,
+    c_sh.suppressed_by
+,
+    c_sh.suppressed_when
+,
+    c_sh.fk_encounter AS pk_encounter
+   
+FROM (clin.suppressed_hint c_sh
+     
   JOIN ref.v_auto_hints r_vah 
     ON (
            (c_sh.fk_hint = r_vah.pk_auto_hint)
@@ -81102,7 +97056,7 @@ FROM (clin.suppressed_hint c_sh
 				<td>
                 
                 </td>
-            	<td>pk_identity</td>
+            	<td>pk_patient</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -81290,6 +97244,182 @@ FROM (clin.suppressed_hint c_sh
 				</td>
 			 </tr>
             
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>health_issue</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>issue_laterality</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>issue_active</td>
+            	<td>boolean</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>issue_clinically_relevant</td>
+            	<td>boolean</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>issue_confidential</td>
+            	<td>boolean</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>episode</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>episode_open</td>
+            	<td>boolean</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>encounter_started</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>encounter_last_affirmed</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>encounter_type</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>encounter_l10n_type</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
         </table>
 
         <!-- Inherits -->
@@ -81309,16 +97439,18 @@ FROM (clin.suppressed_hint c_sh
 	<!-- View Definition -->
 	
 	<pre>
-SELECT (
-SELECT encounter.fk_patient 
-  FROM clin.encounter 
- WHERE (encounter.pk = c_sh.fk_encounter)
-) AS pk_identity
-, c_sh.modified_when
-, c_sh.suppressed_when AS clin_when
-, c_sh.modified_by
-,'p'::text AS soap_cat
-, (
+SELECT c_enc.fk_patient AS pk_patient
+,
+    c_sh.modified_when
+,
+    c_sh.suppressed_when AS clin_when
+,
+    c_sh.modified_by
+,
+    'p'::text AS soap_cat
+,
+    
+(
      (
            (
                  (
@@ -81330,24 +97462,39 @@ SELECT encounter.fk_patient
                                                      (
                                                            (
                                                                  (
-                                                                       (CASE WHEN 
-                                                                             (r_vah.is_active IS TRUE) THEN _
-                                                                             ('Active hint'::text) ELSE _
-                                                                             ('Inactive hint'::text) END || ' #'::text
-                                                                       ) || c_sh.fk_hint
-                                                                 ) || ' '::text
-                                                           ) || _
-                                                           ('suppressed by'::text)
-                                                     ) || ' '::text
-                                               ) || 
-                                               (c_sh.suppressed_by)::text
-                                         ) || '
+                                                                       (
+                                                                             (
+        CASE
+            WHEN 
+                                                                                   (r_vah.is_active IS TRUE) THEN _
+                                                                                   ('Active hint'::text)
+            ELSE _
+                                                                                   ('Inactive hint'::text)
+        END || ' #'::text
+                                                                             ) || c_sh.fk_hint
+                                                                       ) || ' '::text
+                                                                 ) || _
+                                                                 ('suppressed by'::text)
+                                                           ) || ' '::text
+                                                     ) || 
+                                                     (c_sh.suppressed_by)::text
+                                               ) || '
+'::text
+                                         ) || COALESCE
+                                         (
+                                               (
+                                                     (_
+                                                           ('Title: '::text) || r_vah.title
+                                                     ) || '
 '::text
+                                               )
+                                               ,''::text
+                                         )
                                    ) || COALESCE
                                    (
                                          (
                                                (_
-                                                     ('Title: '::text) || r_vah.title
+                                                     ('URL: '::text) || r_vah.url
                                                ) || '
 '::text
                                          )
@@ -81357,7 +97504,7 @@ SELECT encounter.fk_patient
                              (
                                    (
                                          (_
-                                               ('URL: '::text) || r_vah.url
+                                               ('Source: '::text) || r_vah.source
                                          ) || '
 '::text
                                    )
@@ -81367,43 +97514,92 @@ SELECT encounter.fk_patient
                        (
                              (
                                    (_
-                                         ('Source: '::text) || r_vah.source
+                                         ('Rationale: '::text) || c_sh.rationale
                                    ) || '
 '::text
                              )
                              ,''::text
                        )
-                 ) || COALESCE
-                 (
-                       (
-                             (_
-                                   ('Rationale: '::text) || c_sh.rationale
-                             ) || '
+                 ) ||
+        CASE
+            WHEN 
+                 (c_sh.md5_sum <> r_vah.md5_sum) THEN 
+                 (_
+                       ('Hint definition has been modified since suppression. Rationale for suppression may no longer apply.'::text) || '
 '::text
-                       )
-                       ,''::text
                  )
-           ) || CASE WHEN 
-           (c_sh.md5_sum <> r_vah.md5_sum) THEN 
-           (_
-                 ('Hint definition has been modified since suppression. Rationale for suppression may no longer apply.'::text) || '
+            ELSE ''::text
+        END
+           ) || COALESCE
+           (
+                 (
+                       (_
+                             ('Hint: '::text) || r_vah.hint
+                       ) || '
 '::text
-           ) ELSE ''::text END
+                 )
+                 ,''::text
+           )
      ) || COALESCE
      (
            (_
-                 ('Hint: '::text) || r_vah.hint
+                 ('Recommendation: '::text) || r_vah.recommendation
            )
            ,''::text
      )
 ) AS narrative
-, c_sh.fk_encounter
-, NULL::integer AS pk_episode
-, NULL::integer AS pk_health_issue
-, c_sh.pk AS src_pk
-,'clin.suppressed_hint'::text AS src_table
-, c_sh.row_version 
-FROM (clin.suppressed_hint c_sh 
+,
+    c_sh.fk_encounter
+,
+    NULL::integer AS pk_episode
+,
+    NULL::integer AS pk_health_issue
+,
+    c_sh.pk AS src_pk
+,
+    'clin.suppressed_hint'::text AS src_table
+,
+    c_sh.row_version
+,
+    NULL::text AS health_issue
+,
+    NULL::text AS issue_laterality
+,
+    NULL::boolean AS issue_active
+,
+    NULL::boolean AS issue_clinically_relevant
+,
+    NULL::boolean AS issue_confidential
+,
+    NULL::text AS episode
+,
+    NULL::boolean AS episode_open
+,
+    c_enc.started AS encounter_started
+,
+    c_enc.last_affirmed AS encounter_last_affirmed
+,
+    c_ety.description AS encounter_type
+,
+    _
+(c_ety.description) AS encounter_l10n_type
+   
+FROM (
+     (
+           (clin.suppressed_hint c_sh
+     
+              JOIN clin.encounter c_enc 
+                ON (
+                       (c_sh.fk_encounter = c_enc.pk)
+                 )
+           )
+     
+        JOIN clin.encounter_type c_ety 
+          ON (
+                 (c_enc.fk_type = c_ety.pk)
+           )
+     )
+     
   JOIN ref.v_auto_hints r_vah 
     ON (
            (c_sh.fk_hint = r_vah.pk_auto_hint)
@@ -81664,25 +97860,40 @@ FROM (clin.suppressed_hint c_sh
 	
 	<pre>
 SELECT c_to.pk AS pk_test_org
-, d_o.description AS organization
-, d_ou.description AS unit
-, c_to.comment
-, c_to.contact AS test_org_contact
-, c_to.fk_adm_contact AS pk_adm_contact
-, c_to.fk_med_contact AS pk_med_contact
-, d_o.pk AS pk_org
-, d_o.fk_category AS category_org
-, d_ou.pk AS pk_org_unit
-, d_ou.fk_category AS category_unit
-, d_ou.fk_address AS pk_address_unit
-, c_to.xmin AS xmin_test_org 
+,
+    d_o.description AS organization
+,
+    d_ou.description AS unit
+,
+    c_to.comment
+,
+    c_to.contact AS test_org_contact
+,
+    c_to.fk_adm_contact AS pk_adm_contact
+,
+    c_to.fk_med_contact AS pk_med_contact
+,
+    d_o.pk AS pk_org
+,
+    d_o.fk_category AS category_org
+,
+    d_ou.pk AS pk_org_unit
+,
+    d_ou.fk_category AS category_unit
+,
+    d_ou.fk_address AS pk_address_unit
+,
+    c_to.xmin AS xmin_test_org
+   
 FROM (
-     (clin.test_org c_to 
+     (clin.test_org c_to
+     
    LEFT JOIN dem.org_unit d_ou 
           ON (
                  (c_to.fk_org_unit = d_ou.pk)
            )
      )
+     
 LEFT JOIN dem.org d_o 
     ON (
            (d_ou.fk_org = d_o.pk)
@@ -81879,23 +98090,34 @@ LEFT JOIN dem.org d_o
 	
 	<pre>
 SELECT c_tp.pk AS pk_test_panel
-, c_tp.description
-, c_tp.comment
-, c_tp.fk_test_types AS pk_test_types
-, c_tp.modified_when
-, c_tp.modified_by
-, COALESCE
+,
+    c_tp.description
+,
+    c_tp.comment
+,
+    c_tp.fk_test_types AS pk_test_types
+,
+    c_tp.modified_when
+,
+    c_tp.modified_by
+,
+    COALESCE
 (
      (
       SELECT array_agg
-           (c_lc2tp.fk_generic_code) AS array_agg 
-        FROM clin.lnk_code2tst_pnl c_lc2tp 
+           (c_lc2tp.fk_generic_code) AS array_agg
+           
+        FROM clin.lnk_code2tst_pnl c_lc2tp
+          
        WHERE (c_lc2tp.fk_item = c_tp.pk)
      )
      , ARRAY[]::integer[]
 ) AS pk_generic_codes
-, c_tp.row_version
-, c_tp.xmin AS xmin_test_panel 
+,
+    c_tp.row_version
+,
+    c_tp.xmin AS xmin_test_panel
+   
 FROM clin.test_panel c_tp;</pre>
 	
 
@@ -82827,8 +99049,555 @@ FROM clin.test_panel c_tp;</pre>
 				<td>
                 
                 </td>
-            	<td>row_version</td>
-            	<td>integer</td>
+            	<td>row_version</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>pk_item</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_encounter</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>pk_episode</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_test_type</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>pk_intended_reviewer</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_request</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>xmin_test_result</td>
+            	<td>xid</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_test_org</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>pk_meta_test_type</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_health_issue</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>pk_last_reviewer</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+        </table>
+
+        <!-- Inherits -->
+		
+
+		
+
+        <!-- Constraint List -->
+		
+
+        <!-- Foreign Key Discovery -->
+		
+
+    <!-- Indexes -->
+    
+
+	<!-- View Definition -->
+	
+	<pre>
+SELECT cenc.fk_patient AS pk_patient
+,
+    tr.pk AS pk_test_result
+,
+    tr.clin_when
+,
+    c_vtt.unified_abbrev
+,
+    c_vtt.unified_name
+,
+    c_vtt.unified_loinc
+,
+        CASE
+            WHEN 
+(COALESCE
+     (btrim
+           (tr.val_alpha)
+           ,''::text
+     ) = ''::text
+) THEN 
+(tr.val_num)::text
+            ELSE
+            CASE
+                WHEN 
+(tr.val_num IS NULL) THEN tr.val_alpha
+                ELSE 
+(
+     (
+           (
+                 (tr.val_num)::text || 
+              ' ('::text) || tr.val_alpha
+           ) || 
+   ')'::text
+)
+            END
+        END AS unified_val
+,
+    COALESCE
+(tr.val_target_min
+     , tr.val_normal_min
+) AS unified_target_min
+,
+    COALESCE
+(tr.val_target_max
+     , tr.val_normal_max
+) AS unified_target_max
+,
+    COALESCE
+(tr.val_target_range
+     , tr.val_normal_range
+) AS unified_target_range
+,
+    tr.status
+,
+    tr.soap_cat
+,
+    tr.narrative AS comment
+,
+    tr.val_num
+,
+    tr.val_alpha
+,
+    tr.val_unit
+,
+    c_vtt.reference_unit
+,
+    tr.val_normal_min
+,
+    tr.val_normal_max
+,
+    tr.val_normal_range
+,
+    tr.val_target_min
+,
+    tr.val_target_max
+,
+    tr.val_target_range
+,
+    tr.abnormality_indicator
+,
+    tr.norm_ref_group
+,
+    tr.note_test_org
+,
+    tr.material
+,
+    tr.material_detail
+,
+    c_vtt.abbrev AS abbrev_tt
+,
+    c_vtt.name AS name_tt
+,
+    c_vtt.loinc AS loinc_tt
+,
+    c_vtt.comment_type AS comment_tt
+,
+    c_vtt.name_org AS name_test_org
+,
+    c_vtt.contact_org AS contact_test_org
+,
+    c_vtt.comment_org AS comment_test_org
+,
+    c_vtt.is_fake_meta_type
+,
+    c_vtt.abbrev_meta
+,
+    c_vtt.name_meta
+,
+    c_vtt.loinc_meta
+,
+    c_vtt.comment_meta
+,
+    epi.description AS episode
+,
+    chi.description AS health_issue
+,
+    
+(COALESCE
+     (rtr.fk_reviewed_row
+           , 0
+     )
+)::boolean AS reviewed
+,
+    rtr.is_technically_abnormal
+,
+    rtr.clinically_relevant AS is_clinically_relevant
+,
+    rtr.comment AS review_comment
+,
+    
+(
+SELECT staff.short_alias
+           
+  FROM dem.staff
+          
+ WHERE (staff.pk = rtr.fk_reviewer)
+) AS last_reviewer
+,
+    rtr.modified_when AS last_reviewed
+,
+    COALESCE
+(
+     (rtr.fk_reviewer = 
+           (
+            SELECT staff.pk
+           
+              FROM dem.staff
+          
+             WHERE (staff.db_user = "current_user"
+                       ()
+                 )
+           )
+     )
+     , false
+) AS review_by_you
+,
+    COALESCE
+(
+     (tr.fk_intended_reviewer = rtr.fk_reviewer)
+     , false
+) AS review_by_responsible_reviewer
+,
+    
+(
+SELECT staff.short_alias
+           
+  FROM dem.staff
+          
+ WHERE (staff.pk = tr.fk_intended_reviewer)
+) AS responsible_reviewer
+,
+    COALESCE
+(
+     (tr.fk_intended_reviewer = 
+           (
+            SELECT staff.pk
+           
+              FROM dem.staff
+          
+             WHERE (staff.db_user = "current_user"
+                       ()
+                 )
+           )
+     )
+     , false
+) AS you_are_responsible
+,
+        CASE
+            WHEN 
+(
+     (
+      SELECT 1
+               
+        FROM dem.staff
+              
+       WHERE (staff.db_user = tr.modified_by)
+     ) IS NULL
+) THEN 
+(
+     ('<'::text || 
+           (tr.modified_by)::text
+     ) || '>'::text
+)
+            ELSE 
+(
+SELECT staff.short_alias
+               
+  FROM dem.staff
+              
+ WHERE (staff.db_user = tr.modified_by)
+)
+        END AS modified_by
+,
+    tr.val_grouping
+,
+    tr.source_data
+,
+    tr.modified_when
+,
+    tr.row_version
+,
+    tr.pk_item
+,
+    tr.fk_encounter AS pk_encounter
+,
+    tr.fk_episode AS pk_episode
+,
+    tr.fk_type AS pk_test_type
+,
+    tr.fk_intended_reviewer AS pk_intended_reviewer
+,
+    tr.fk_request AS pk_request
+,
+    tr.xmin AS xmin_test_result
+,
+    c_vtt.pk_test_org
+,
+    c_vtt.pk_meta_test_type
+,
+    epi.fk_health_issue AS pk_health_issue
+,
+    rtr.fk_reviewer AS pk_last_reviewer
+   
+FROM (
+     (
+           (
+                 (clin.test_result tr
+     
+               LEFT JOIN clin.encounter cenc 
+                      ON (
+                             (tr.fk_encounter = cenc.pk)
+                       )
+                 )
+     
+         LEFT JOIN clin.episode epi 
+                ON (
+                       (tr.fk_episode = epi.pk)
+                 )
+           )
+     
+   LEFT JOIN clin.reviewed_test_results rtr 
+          ON (
+                 (tr.pk = rtr.fk_reviewed_row)
+           )
+     )
+     
+LEFT JOIN clin.health_issue chi 
+    ON (
+           (epi.fk_health_issue = chi.pk)
+     )
+)
+,
+    clin.v_test_types c_vtt
+  
+WHERE (tr.fk_type = c_vtt.pk_test_type);</pre>
+	
+
+	<!-- List off permissions -->
+	
+
+	<p>
+		<a href="gnumed-entire_schema.html#index">Index</a> -
+		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
+    </p>
+	
+        <hr>
+		<h2>View:
+			
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-test-results-journal">v_test_results_journal</a>
+		</h2>
+        
+         <p>formatting of v_test_results for inclusion in v_emr_journal</p>
+        
+
+
+        <table width="100%" cellspacing="0" cellpadding="3">
+                <caption>clin.v_test_results_journal Structure</caption>
+                <tr>
+                <th>F-Key</th>
+                <th>Name</th>
+                <th>Type</th>
+                <th>Description</th>
+                </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_patient</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>modified_when</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>clin_when</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
@@ -82843,8 +99612,8 @@ FROM clin.test_panel c_tp;</pre>
 				<td>
                 
                 </td>
-            	<td>pk_item</td>
-            	<td>integer</td>
+            	<td>modified_by</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -82859,8 +99628,8 @@ FROM clin.test_panel c_tp;</pre>
 				<td>
                 
                 </td>
-            	<td>pk_encounter</td>
-            	<td>integer</td>
+            	<td>soap_cat</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -82875,8 +99644,8 @@ FROM clin.test_panel c_tp;</pre>
 				<td>
                 
                 </td>
-            	<td>pk_episode</td>
-            	<td>integer</td>
+            	<td>narrative</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -82891,7 +99660,7 @@ FROM clin.test_panel c_tp;</pre>
 				<td>
                 
                 </td>
-            	<td>pk_test_type</td>
+            	<td>pk_encounter</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -82907,23 +99676,7 @@ FROM clin.test_panel c_tp;</pre>
 				<td>
                 
                 </td>
-            	<td>pk_intended_reviewer</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>pk_request</td>
+            	<td>pk_episode</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -82935,27 +99688,11 @@ FROM clin.test_panel c_tp;</pre>
 				</td>
 			 </tr>
             
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>xmin_test_result</td>
-            	<td>xid</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
             <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>pk_test_org</td>
+            	<td>pk_health_issue</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -82971,7 +99708,7 @@ FROM clin.test_panel c_tp;</pre>
 				<td>
                 
                 </td>
-            	<td>pk_meta_test_type</td>
+            	<td>src_pk</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -82987,8 +99724,8 @@ FROM clin.test_panel c_tp;</pre>
 				<td>
                 
                 </td>
-            	<td>pk_health_issue</td>
-            	<td>integer</td>
+            	<td>src_table</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -83003,7 +99740,7 @@ FROM clin.test_panel c_tp;</pre>
 				<td>
                 
                 </td>
-            	<td>pk_last_reviewer</td>
+            	<td>row_version</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -83015,236 +99752,12 @@ FROM clin.test_panel c_tp;</pre>
 				</td>
 			 </tr>
             
-        </table>
-
-        <!-- Inherits -->
-		
-
-		
-
-        <!-- Constraint List -->
-		
-
-        <!-- Foreign Key Discovery -->
-		
-
-    <!-- Indexes -->
-    
-
-	<!-- View Definition -->
-	
-	<pre>
-SELECT cenc.fk_patient AS pk_patient
-, tr.pk AS pk_test_result
-, tr.clin_when
-, c_vtt.unified_abbrev
-, c_vtt.unified_name
-, c_vtt.unified_loinc
-, CASE WHEN 
-(COALESCE
-     (btrim
-           (tr.val_alpha)
-           ,''::text
-     ) = ''::text
-) THEN 
-(tr.val_num)::text ELSE CASE WHEN 
-(tr.val_num IS NULL) THEN tr.val_alpha ELSE 
-(
-     (
-           (
-                 (tr.val_num)::text || 
-              ' ('::text) || tr.val_alpha
-           ) || 
-   ')'::text
-) END END AS unified_val
-, COALESCE
-(tr.val_target_min
-     , tr.val_normal_min
-) AS unified_target_min
-, COALESCE
-(tr.val_target_max
-     , tr.val_normal_max
-) AS unified_target_max
-, COALESCE
-(tr.val_target_range
-     , tr.val_normal_range
-) AS unified_target_range
-, tr.status
-, tr.soap_cat
-, tr.narrative AS comment
-, tr.val_num
-, tr.val_alpha
-, tr.val_unit
-, c_vtt.reference_unit
-, tr.val_normal_min
-, tr.val_normal_max
-, tr.val_normal_range
-, tr.val_target_min
-, tr.val_target_max
-, tr.val_target_range
-, tr.abnormality_indicator
-, tr.norm_ref_group
-, tr.note_test_org
-, tr.material
-, tr.material_detail
-, c_vtt.abbrev AS abbrev_tt
-, c_vtt.name AS name_tt
-, c_vtt.loinc AS loinc_tt
-, c_vtt.comment_type AS comment_tt
-, c_vtt.name_org AS name_test_org
-, c_vtt.contact_org AS contact_test_org
-, c_vtt.comment_org AS comment_test_org
-, c_vtt.is_fake_meta_type
-, c_vtt.abbrev_meta
-, c_vtt.name_meta
-, c_vtt.loinc_meta
-, c_vtt.comment_meta
-, epi.description AS episode
-, chi.description AS health_issue
-, (COALESCE
-     (rtr.fk_reviewed_row
-           , 0
-     )
-)::boolean AS reviewed
-, rtr.is_technically_abnormal
-, rtr.clinically_relevant AS is_clinically_relevant
-, rtr.comment AS review_comment
-, (
-SELECT staff.short_alias 
-  FROM dem.staff 
- WHERE (staff.pk = rtr.fk_reviewer)
-) AS last_reviewer
-, rtr.modified_when AS last_reviewed
-, COALESCE
-(
-     (rtr.fk_reviewer = 
-           (
-            SELECT staff.pk 
-              FROM dem.staff 
-             WHERE (staff.db_user = "current_user"
-                       ()
-                 )
-           )
-     )
-     , false
-) AS review_by_you
-, COALESCE
-(
-     (tr.fk_intended_reviewer = rtr.fk_reviewer)
-     , false
-) AS review_by_responsible_reviewer
-, (
-SELECT staff.short_alias 
-  FROM dem.staff 
- WHERE (staff.pk = tr.fk_intended_reviewer)
-) AS responsible_reviewer
-, COALESCE
-(
-     (tr.fk_intended_reviewer = 
-           (
-            SELECT staff.pk 
-              FROM dem.staff 
-             WHERE (staff.db_user = "current_user"
-                       ()
-                 )
-           )
-     )
-     , false
-) AS you_are_responsible
-, CASE WHEN 
-(
-     (
-      SELECT 1 
-        FROM dem.staff 
-       WHERE (staff.db_user = tr.modified_by)
-     ) IS NULL
-) THEN 
-(
-     ('<'::text || 
-           (tr.modified_by)::text
-     ) || '>'::text
-) ELSE 
-(
-SELECT staff.short_alias 
-  FROM dem.staff 
- WHERE (staff.db_user = tr.modified_by)
-) END AS modified_by
-, tr.val_grouping
-, tr.source_data
-, tr.modified_when
-, tr.row_version
-, tr.pk_item
-, tr.fk_encounter AS pk_encounter
-, tr.fk_episode AS pk_episode
-, tr.fk_type AS pk_test_type
-, tr.fk_intended_reviewer AS pk_intended_reviewer
-, tr.fk_request AS pk_request
-, tr.xmin AS xmin_test_result
-, c_vtt.pk_test_org
-, c_vtt.pk_meta_test_type
-, epi.fk_health_issue AS pk_health_issue
-, rtr.fk_reviewer AS pk_last_reviewer 
-FROM (
-     (
-           (
-                 (clin.test_result tr 
-               LEFT JOIN clin.encounter cenc 
-                      ON (
-                             (tr.fk_encounter = cenc.pk)
-                       )
-                 )
-         LEFT JOIN clin.episode epi 
-                ON (
-                       (tr.fk_episode = epi.pk)
-                 )
-           )
-   LEFT JOIN clin.reviewed_test_results rtr 
-          ON (
-                 (tr.pk = rtr.fk_reviewed_row)
-           )
-     )
-LEFT JOIN clin.health_issue chi 
-    ON (
-           (epi.fk_health_issue = chi.pk)
-     )
-)
-, clin.v_test_types c_vtt 
-WHERE (tr.fk_type = c_vtt.pk_test_type);</pre>
-	
-
-	<!-- List off permissions -->
-	
-
-	<p>
-		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
-    </p>
-	
-        <hr>
-		<h2>View:
-			
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-test-results-journal">v_test_results_journal</a>
-		</h2>
-        
-         <p>formatting of v_test_results for inclusion in v_emr_journal</p>
-        
-
-
-        <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>clin.v_test_results_journal Structure</caption>
-                <tr>
-                <th>F-Key</th>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Description</th>
-                </tr>
-            
             <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>pk_patient</td>
-            	<td>integer</td>
+            	<td>health_issue</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -83259,8 +99772,8 @@ WHERE (tr.fk_type = c_vtt.pk_test_type);</pre>
 				<td>
                 
                 </td>
-            	<td>modified_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>issue_laterality</td>
+            	<td>character varying(2)</td>
                 <td><i>
 				
 
@@ -83275,8 +99788,8 @@ WHERE (tr.fk_type = c_vtt.pk_test_type);</pre>
 				<td>
                 
                 </td>
-            	<td>clin_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>issue_active</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -83291,8 +99804,8 @@ WHERE (tr.fk_type = c_vtt.pk_test_type);</pre>
 				<td>
                 
                 </td>
-            	<td>modified_by</td>
-            	<td>text</td>
+            	<td>issue_clinically_relevant</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -83307,8 +99820,8 @@ WHERE (tr.fk_type = c_vtt.pk_test_type);</pre>
 				<td>
                 
                 </td>
-            	<td>soap_cat</td>
-            	<td>text</td>
+            	<td>issue_confidential</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -83323,7 +99836,7 @@ WHERE (tr.fk_type = c_vtt.pk_test_type);</pre>
 				<td>
                 
                 </td>
-            	<td>narrative</td>
+            	<td>episode</td>
             	<td>text</td>
                 <td><i>
 				
@@ -83339,8 +99852,8 @@ WHERE (tr.fk_type = c_vtt.pk_test_type);</pre>
 				<td>
                 
                 </td>
-            	<td>pk_encounter</td>
-            	<td>integer</td>
+            	<td>episode_open</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -83355,8 +99868,8 @@ WHERE (tr.fk_type = c_vtt.pk_test_type);</pre>
 				<td>
                 
                 </td>
-            	<td>pk_episode</td>
-            	<td>integer</td>
+            	<td>encounter_started</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
@@ -83371,8 +99884,8 @@ WHERE (tr.fk_type = c_vtt.pk_test_type);</pre>
 				<td>
                 
                 </td>
-            	<td>pk_health_issue</td>
-            	<td>integer</td>
+            	<td>encounter_last_affirmed</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
@@ -83387,8 +99900,8 @@ WHERE (tr.fk_type = c_vtt.pk_test_type);</pre>
 				<td>
                 
                 </td>
-            	<td>src_pk</td>
-            	<td>integer</td>
+            	<td>encounter_type</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -83403,7 +99916,7 @@ WHERE (tr.fk_type = c_vtt.pk_test_type);</pre>
 				<td>
                 
                 </td>
-            	<td>src_table</td>
+            	<td>encounter_l10n_type</td>
             	<td>text</td>
                 <td><i>
 				
@@ -83415,22 +99928,6 @@ WHERE (tr.fk_type = c_vtt.pk_test_type);</pre>
 				</td>
 			 </tr>
             
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>row_version</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
         </table>
 
         <!-- Inherits -->
@@ -83451,11 +99948,16 @@ WHERE (tr.fk_type = c_vtt.pk_test_type);</pre>
 	
 	<pre>
 SELECT c_vtr.pk_patient
-, c_vtr.modified_when
-, c_vtr.clin_when
-, c_vtr.modified_by
-, c_vtr.soap_cat
-, COALESCE
+,
+    c_vtr.modified_when
+,
+    c_vtr.clin_when
+,
+    c_vtr.modified_by
+,
+    c_vtr.soap_cat
+,
+    COALESCE
 (
      (
            (
@@ -83596,15 +100098,23 @@ SELECT c_vtr.pk_patient
                                                                        ,'YYYY-MM-DD HH24:MI'::text
                                                                  )
                                                            ) || ': '::text
-                                                     ) || CASE WHEN c_vtr.is_technically_abnormal THEN 
+                                                     ) ||
+        CASE
+            WHEN c_vtr.is_technically_abnormal THEN 
                                                      (_
                                                            ('abnormal'::text) || 
                                                         ', '::text
-                                                     ) ELSE ''::text END
-                                               ) || CASE WHEN c_vtr.is_clinically_relevant THEN 
+                                                     )
+            ELSE ''::text
+        END
+                                               ) ||
+        CASE
+            WHEN c_vtr.is_clinically_relevant THEN 
                                                (_
                                                      ('relevant'::text) || ' '::text
-                                               ) ELSE ''::text END
+                                               )
+            ELSE ''::text
+        END
                                          ) || COALESCE
                                          (
                                                (
@@ -83638,13 +100148,70 @@ SELECT c_vtr.pk_patient
      )
      ,'faulty clin.v_test_results_journal definition'::text
 ) AS narrative
-, c_vtr.pk_encounter
-, c_vtr.pk_episode
-, c_vtr.pk_health_issue
-, c_vtr.pk_test_result AS src_pk
-,'clin.test_result'::text AS src_table
-, c_vtr.row_version 
-FROM clin.v_test_results c_vtr;</pre>
+,
+    c_vtr.pk_encounter
+,
+    c_vtr.pk_episode
+,
+    c_vtr.pk_health_issue
+,
+    c_vtr.pk_test_result AS src_pk
+,
+    'clin.test_result'::text AS src_table
+,
+    c_vtr.row_version
+,
+    c_vtr.health_issue
+,
+    c_hi.laterality AS issue_laterality
+,
+    c_hi.is_active AS issue_active
+,
+    c_hi.clinically_relevant AS issue_clinically_relevant
+,
+    c_hi.is_confidential AS issue_confidential
+,
+    c_vtr.episode
+,
+    c_epi.is_open AS episode_open
+,
+    c_enc.started AS encounter_started
+,
+    c_enc.last_affirmed AS encounter_last_affirmed
+,
+    c_ety.description AS encounter_type
+,
+    _
+(c_ety.description) AS encounter_l10n_type
+   
+FROM (
+     (
+           (
+                 (clin.v_test_results c_vtr
+     
+                    JOIN clin.encounter c_enc 
+                      ON (
+                             (c_vtr.pk_encounter = c_enc.pk)
+                       )
+                 )
+     
+              JOIN clin.encounter_type c_ety 
+                ON (
+                       (c_enc.fk_type = c_ety.pk)
+                 )
+           )
+     
+        JOIN clin.episode c_epi 
+          ON (
+                 (c_vtr.pk_episode = c_epi.pk)
+           )
+     )
+     
+LEFT JOIN clin.health_issue c_hi 
+    ON (
+           (c_epi.fk_health_issue = c_hi.pk)
+     )
+);</pre>
 	
 
 	<!-- List off permissions -->
@@ -84078,58 +100645,89 @@ FROM clin.v_test_results c_vtr;</pre>
 	
 	<pre>
 SELECT c_tt.pk AS pk_test_type
-, c_tt.abbrev
-, c_tt.name
-, c_tt.loinc
-, c_tt.reference_unit
-, c_tt.comment AS comment_type
-, d_ou.description AS name_org
-, c_to.comment AS comment_org
-, c_to.contact AS contact_org
-, COALESCE
+,
+    c_tt.abbrev
+,
+    c_tt.name
+,
+    c_tt.loinc
+,
+    c_tt.reference_unit
+,
+    c_tt.comment AS comment_type
+,
+    d_ou.description AS name_org
+,
+    c_to.comment AS comment_org
+,
+    c_to.contact AS contact_org
+,
+    COALESCE
 (c_mtt.abbrev
      , c_tt.abbrev
 ) AS unified_abbrev
-, COALESCE
+,
+    COALESCE
 (c_mtt.name
      , c_tt.name
 ) AS unified_name
-, COALESCE
+,
+    COALESCE
 (c_mtt.loinc
      , c_tt.loinc
 ) AS unified_loinc
-, (c_tt.fk_meta_test_type IS NULL) AS is_fake_meta_type
-, c_mtt.abbrev AS abbrev_meta
-, c_mtt.name AS name_meta
-, c_mtt.loinc AS loinc_meta
-, c_mtt.comment AS comment_meta
-, (
+,
+    
+(c_tt.fk_meta_test_type IS NULL) AS is_fake_meta_type
+,
+    c_mtt.abbrev AS abbrev_meta
+,
+    c_mtt.name AS name_meta
+,
+    c_mtt.loinc AS loinc_meta
+,
+    c_mtt.comment AS comment_meta
+,
+    
+(
 SELECT array_agg
-     (c_tp.pk) AS array_agg 
-  FROM clin.test_panel c_tp 
+     (c_tp.pk) AS array_agg
+           
+  FROM clin.test_panel c_tp
+          
  WHERE (c_tt.pk = ANY 
            (c_tp.fk_test_types)
      )
 ) AS pk_test_panels
-, c_tt.fk_test_org AS pk_test_org
-, c_tt.fk_meta_test_type AS pk_meta_test_type
-, c_to.fk_org_unit AS pk_org_unit
-, c_to.fk_adm_contact AS pk_adm_contact_org
-, c_to.fk_med_contact AS pk_med_contact_org
-, c_tt.xmin AS xmin_test_type 
+,
+    c_tt.fk_test_org AS pk_test_org
+,
+    c_tt.fk_meta_test_type AS pk_meta_test_type
+,
+    c_to.fk_org_unit AS pk_org_unit
+,
+    c_to.fk_adm_contact AS pk_adm_contact_org
+,
+    c_to.fk_med_contact AS pk_med_contact_org
+,
+    c_tt.xmin AS xmin_test_type
+   
 FROM (
      (
-           (clin.test_type c_tt 
+           (clin.test_type c_tt
+     
          LEFT JOIN clin.test_org c_to 
                 ON (
                        (c_to.pk = c_tt.fk_test_org)
                  )
            )
+     
    LEFT JOIN dem.org_unit d_ou 
           ON (
                  (c_to.fk_org_unit = d_ou.pk)
            )
      )
+     
 LEFT JOIN clin.meta_test_type c_mtt 
     ON (
            (c_tt.fk_meta_test_type = c_mtt.pk)
@@ -84310,16 +100908,27 @@ LEFT JOIN clin.meta_test_type c_mtt
 	
 	<pre>
 SELECT cvs.name AS vaccination_schedule
-, cvc.is_active
-, cvc.fk_recommended_by AS pk_recommended_by
-, cvc.comment AS comment_course
-, cvs.comment AS comment_schedule
-, cvc.pk AS pk_vaccination_course
-, cvc.fk_indication AS pk_indication
-, cvs.pk AS pk_vaccination_schedule 
+,
+    cvc.is_active
+,
+    cvc.fk_recommended_by AS pk_recommended_by
+,
+    cvc.comment AS comment_course
+,
+    cvs.comment AS comment_schedule
+,
+    cvc.pk AS pk_vaccination_course
+,
+    cvc.fk_indication AS pk_indication
+,
+    cvs.pk AS pk_vaccination_schedule
+   
 FROM clin.vaccination_course cvc
-, clin.vaccination_schedule cvs
-, clin.lnk_vaccination_course2schedule clvc2s 
+,
+    clin.vaccination_schedule cvs
+,
+    clin.lnk_vaccination_course2schedule clvc2s
+  
 WHERE (
      (clvc2s.fk_course = cvc.pk)
    AND (clvc2s.fk_schedule = cvs.pk)
@@ -84596,36 +101205,661 @@ WHERE (
 	<!-- View Definition -->
 	
 	<pre>
-SELECT vcourse.pk AS pk_course
-, vind.description AS indication
-, _
-(vind.description) AS l10n_indication
-, COALESCE
-(vcourse.comment
-     ,''::text
-) AS course_comment
-, vcourse.is_active
-, vdef.id AS pk_vaccination_definition
-, vdef.is_booster
-, vdef.seq_no AS vacc_seq_no
-, vdef.min_age_due AS age_due_min
-, vdef.max_age_due AS age_due_max
-, vdef.min_interval
-, COALESCE
-(vdef.comment
-     ,''::text
-) AS vacc_comment
-, vind.id AS pk_indication
-, vcourse.fk_recommended_by AS pk_recommended_by 
-FROM clin.vaccination_course vcourse
-, clin.vacc_indication vind
-, clin.vaccination_definition vdef 
-WHERE (
-     (vcourse.pk = vdef.fk_course)
-   AND (vcourse.fk_indication = vind.id)
-)
-ORDER BY vind.description
-, vdef.seq_no;</pre>
+SELECT vcourse.pk AS pk_course
+,
+    vind.description AS indication
+,
+    _
+(vind.description) AS l10n_indication
+,
+    COALESCE
+(vcourse.comment
+     ,''::text
+) AS course_comment
+,
+    vcourse.is_active
+,
+    vdef.id AS pk_vaccination_definition
+,
+    vdef.is_booster
+,
+    vdef.seq_no AS vacc_seq_no
+,
+    vdef.min_age_due AS age_due_min
+,
+    vdef.max_age_due AS age_due_max
+,
+    vdef.min_interval
+,
+    COALESCE
+(vdef.comment
+     ,''::text
+) AS vacc_comment
+,
+    vind.id AS pk_indication
+,
+    vcourse.fk_recommended_by AS pk_recommended_by
+   
+FROM clin.vaccination_course vcourse
+,
+    clin.vacc_indication vind
+,
+    clin.vaccination_definition vdef
+  
+WHERE (
+     (vcourse.pk = vdef.fk_course)
+   AND (vcourse.fk_indication = vind.id)
+)
+  
+ORDER BY vind.description
+, vdef.seq_no;</pre>
+	
+
+	<!-- List off permissions -->
+	
+
+	<p>
+		<a href="gnumed-entire_schema.html#index">Index</a> -
+		<a href="gnumed-entire_schema.html#clin.schema">Schema clin</a>
+    </p>
+	
+        <hr>
+		<h2>View:
+			
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.view.v-vaccinations-journal">v_vaccinations_journal</a>
+		</h2>
+        
+         <p>Vaccination data denormalized for the EMR journal.</p>
+        
+
+
+        <table width="100%" cellspacing="0" cellpadding="3">
+                <caption>clin.v_vaccinations_journal Structure</caption>
+                <tr>
+                <th>F-Key</th>
+                <th>Name</th>
+                <th>Type</th>
+                <th>Description</th>
+                </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_patient</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>modified_when</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>clin_when</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>modified_by</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>soap_cat</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>narrative</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_encounter</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>pk_episode</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_health_issue</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>src_pk</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>src_table</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>row_version</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>health_issue</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>issue_laterality</td>
+            	<td>character varying(2)</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>issue_active</td>
+            	<td>boolean</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>issue_clinically_relevant</td>
+            	<td>boolean</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>issue_confidential</td>
+            	<td>boolean</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>episode</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>episode_open</td>
+            	<td>boolean</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>encounter_started</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>encounter_last_affirmed</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>encounter_type</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>encounter_l10n_type</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+        </table>
+
+        <!-- Inherits -->
+		
+
+		
+
+        <!-- Constraint List -->
+		
+
+        <!-- Foreign Key Discovery -->
+		
+
+    <!-- Indexes -->
+    
+
+	<!-- View Definition -->
+	
+	<pre>
+SELECT c_enc.fk_patient AS pk_patient
+,
+    c_vacc.modified_when
+,
+    c_vacc.clin_when
+,
+    COALESCE
+(
+     (
+      SELECT staff.short_alias
+           
+        FROM dem.staff
+          
+       WHERE (staff.db_user = c_vacc.modified_by)
+     )
+     , (
+           ('<'::text || 
+                 (c_vacc.modified_by)::text
+           ) || '>'::text
+     )
+) AS modified_by
+,
+    c_vacc.soap_cat
+,
+    
+(
+     (
+           (
+                 (
+                       (
+                             (
+                                   (
+                                         (
+                                               (
+                                                     (_
+                                                           ('Vaccination'::text) || ': '::text
+                                                     ) || r_bd.description
+                                               ) || ' '::text
+                                         ) || '['::text
+                                   ) || c_vacc.batch_no
+                             ) || ']'::text
+                       ) || COALESCE
+                       (
+                             (
+                                   (
+                                      ' ('::text || c_vacc.site) || 
+                                 ')'::text
+                             )
+                             ,''::text
+                       )
+                 ) || COALESCE
+                 (
+                       (
+                             (
+                                   ('
+'::text || _
+                                         ('Reaction'::text)
+                                   ) || ': '::text
+                             ) || c_vacc.reaction
+                       )
+                       ,''::text
+                 )
+           ) || COALESCE
+           (
+                 (
+                       (
+                             ('
+'::text || _
+                                   ('Comment'::text)
+                             ) || ': '::text
+                       ) || c_vacc.narrative
+                 )
+                 ,''::text
+           )
+     ) || COALESCE
+     (
+           (
+                 (
+                       ('
+'::text || _
+                             ('Indications'::text)
+                       ) || ': '::text
+                 ) || array_to_string
+                 (
+                       (
+                        SELECT array_agg
+                             (_
+                                   (cvi.description)
+                             ) AS array_agg
+           
+                          FROM (clin.lnk_vaccine2inds c_lv2i
+             
+                                JOIN clin.vacc_indication cvi 
+                                  ON (
+                                         (c_lv2i.fk_indication = cvi.id)
+                                   )
+                             )
+          
+                         WHERE (c_lv2i.fk_vaccine = c_vacc.fk_vaccine)
+                       )
+                       ,' / '::text
+                 )
+           )
+           ,''::text
+     )
+) AS narrative
+,
+    c_vacc.fk_encounter AS pk_encounter
+,
+    c_vacc.fk_episode AS pk_episode
+,
+    
+(
+SELECT episode.fk_health_issue
+           
+  FROM clin.episode
+          
+ WHERE (episode.pk = c_vacc.fk_episode)
+) AS pk_health_issue
+,
+    c_vacc.pk AS src_pk
+,
+    'clin.vaccination'::text AS src_table
+,
+    c_vacc.row_version
+,
+    c_hi.description AS health_issue
+,
+    c_hi.laterality AS issue_laterality
+,
+    c_hi.is_active AS issue_active
+,
+    c_hi.clinically_relevant AS issue_clinically_relevant
+,
+    c_hi.is_confidential AS issue_confidential
+,
+    c_epi.description AS episode
+,
+    c_epi.is_open AS episode_open
+,
+    c_enc.started AS encounter_started
+,
+    c_enc.last_affirmed AS encounter_last_affirmed
+,
+    c_ety.description AS encounter_type
+,
+    _
+(c_ety.description) AS encounter_l10n_type
+   
+FROM (
+     (
+           (
+                 (
+                       (
+                             (clin.vaccination c_vacc
+     
+                                JOIN clin.encounter c_enc 
+                                  ON (
+                                         (c_enc.pk = c_vacc.fk_encounter)
+                                   )
+                             )
+     
+                          JOIN clin.encounter_type c_ety 
+                            ON (
+                                   (c_enc.fk_type = c_ety.pk)
+                             )
+                       )
+     
+                    JOIN clin.episode c_epi 
+                      ON (
+                             (c_vacc.fk_episode = c_epi.pk)
+                       )
+                 )
+     
+         LEFT JOIN clin.health_issue c_hi 
+                ON (
+                       (c_epi.fk_health_issue = c_hi.pk)
+                 )
+           )
+     
+        JOIN clin.vaccine 
+          ON (
+                 (vaccine.pk = c_vacc.fk_vaccine)
+           )
+     )
+     
+  JOIN ref.branded_drug r_bd 
+    ON (
+           (vaccine.fk_brand = r_bd.pk)
+     )
+);</pre>
 	
 
 	<!-- List off permissions -->
@@ -84995,64 +102229,98 @@ ORDER BY vind.description
 	
 	<pre>
 SELECT cv.pk AS pk_vaccine
-, rbd.description AS vaccine
-, rbd.preparation
-, rbd.atc_code
-, rbd.is_fake AS is_fake_vaccine
-, cvr.abbreviation AS route_abbreviation
-, cvr.description AS route_description
-, cv.is_live
-, cv.min_age
-, cv.max_age
-, cv.comment
-, (
+,
+    rbd.description AS vaccine
+,
+    rbd.preparation
+,
+    rbd.atc_code
+,
+    rbd.is_fake AS is_fake_vaccine
+,
+    cvr.abbreviation AS route_abbreviation
+,
+    cvr.description AS route_description
+,
+    cv.is_live
+,
+    cv.min_age
+,
+    cv.max_age
+,
+    cv.comment
+,
+    
+(
 SELECT array_agg
-     (cvi.description) AS array_agg 
-  FROM (clin.lnk_vaccine2inds clvi 
+     (cvi.description) AS array_agg
+           
+  FROM (clin.lnk_vaccine2inds clvi
+             
         JOIN clin.vacc_indication cvi 
           ON (
                  (clvi.fk_indication = cvi.id)
            )
      )
+          
  WHERE (clvi.fk_vaccine = cv.pk)
 ) AS indications
-, (
+,
+    
+(
 SELECT array_agg
      (_
            (cvi.description)
-     ) AS array_agg 
-  FROM (clin.lnk_vaccine2inds clvi 
+     ) AS array_agg
+           
+  FROM (clin.lnk_vaccine2inds clvi
+             
         JOIN clin.vacc_indication cvi 
           ON (
                  (clvi.fk_indication = cvi.id)
            )
      )
+          
  WHERE (clvi.fk_vaccine = cv.pk)
 ) AS l10n_indications
-, rbd.external_code
-, rbd.external_code_type
-, (
+,
+    rbd.external_code
+,
+    rbd.external_code_type
+,
+    
+(
 SELECT array_agg
-     (clvi.fk_indication) AS array_agg 
-  FROM (clin.lnk_vaccine2inds clvi 
+     (clvi.fk_indication) AS array_agg
+           
+  FROM (clin.lnk_vaccine2inds clvi
+             
         JOIN clin.vacc_indication cvi 
           ON (
                  (clvi.fk_indication = cvi.id)
            )
      )
+          
  WHERE (clvi.fk_vaccine = cv.pk)
 ) AS pk_indications
-, cv.id_route AS pk_route
-, cv.fk_brand AS pk_brand
-, rbd.fk_data_source AS pk_data_source
-, cv.xmin AS xmin_vaccine 
+,
+    cv.id_route AS pk_route
+,
+    cv.fk_brand AS pk_brand
+,
+    rbd.fk_data_source AS pk_data_source
+,
+    cv.xmin AS xmin_vaccine
+   
 FROM (
-     (clin.vaccine cv 
+     (clin.vaccine cv
+     
         JOIN ref.branded_drug rbd 
           ON (
                  (cv.fk_brand = rbd.pk)
            )
      )
+     
 LEFT JOIN clin.vacc_route cvr 
     ON (
            (cv.id_route = cvr.id)
@@ -85249,8 +102517,8 @@ LEFT JOIN clin.vacc_route cvr
 				<td>
                 
                 </td>
-            	<td>registered</td>
-            	<td>timestamp with time zone</td>
+            	<td>comment_identity</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -85265,8 +102533,8 @@ LEFT JOIN clin.vacc_route cvr
 				<td>
                 
                 </td>
-            	<td>waiting_time</td>
-            	<td>interval</td>
+            	<td>registered</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
@@ -85281,8 +102549,8 @@ LEFT JOIN clin.vacc_route cvr
 				<td>
                 
                 </td>
-            	<td>waiting_time_formatted</td>
-            	<td>text</td>
+            	<td>waiting_time</td>
+            	<td>interval</td>
                 <td><i>
 				
 
@@ -85297,7 +102565,7 @@ LEFT JOIN clin.vacc_route cvr
 				<td>
                 
                 </td>
-            	<td>comment</td>
+            	<td>waiting_time_formatted</td>
             	<td>text</td>
                 <td><i>
 				
@@ -85313,8 +102581,8 @@ LEFT JOIN clin.vacc_route cvr
 				<td>
                 
                 </td>
-            	<td>pk_identity</td>
-            	<td>integer</td>
+            	<td>comment</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -85329,7 +102597,7 @@ LEFT JOIN clin.vacc_route cvr
 				<td>
                 
                 </td>
-            	<td>pk_name</td>
+            	<td>pk_identity</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -85345,8 +102613,8 @@ LEFT JOIN clin.vacc_route cvr
 				<td>
                 
                 </td>
-            	<td>pupic</td>
-            	<td>character(24)</td>
+            	<td>pk_name</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -85392,50 +102660,73 @@ LEFT JOIN clin.vacc_route cvr
 	<!-- View Definition -->
 	
 	<pre>
-SELECT wl.list_position
-, wl.area AS waiting_zone
-, wl.urgency
-, i.title
-, n.firstnames
-, n.lastnames
-, n.preferred AS preferred_name
-, i.dob
-, i.gender
-, _
-(i.gender) AS l10n_gender
-, wl.registered
-, (
+SELECT c_wl.list_position
+,
+    c_wl.area AS waiting_zone
+,
+    c_wl.urgency
+,
+    d_i.title
+,
+    d_n.firstnames
+,
+    d_n.lastnames
+,
+    d_n.preferred AS preferred_name
+,
+    d_i.dob
+,
+    d_i.gender
+,
+    _
+(d_i.gender) AS l10n_gender
+,
+    d_i.comment AS comment_identity
+,
+    c_wl.registered
+,
+    
+(
 SELECT (now
-           () - wl.registered
+           () - c_wl.registered
      )
 ) AS waiting_time
-, (
+,
+    
+(
 SELECT to_char
      (age
            (now
                  ()
-                 , wl.registered
+                 , c_wl.registered
            )
            ,'DDD HH24:MI'::text
      ) AS to_char
 ) AS waiting_time_formatted
-, wl.comment
-, i.pk AS pk_identity
-, n.id AS pk_name
-, i.pupic
-, wl.pk AS pk_waiting_list 
-FROM clin.waiting_list wl
-, dem.identity i
-, dem.names n 
+,
+    c_wl.comment
+,
+    d_i.pk AS pk_identity
+,
+    d_n.id AS pk_name
+,
+    c_wl.pk AS pk_waiting_list
+   
+FROM clin.waiting_list c_wl
+,
+    dem.identity d_i
+,
+    dem.names d_n
+  
 WHERE (
      (
            (
-                 (wl.fk_patient = i.pk)
-               AND (wl.fk_patient = n.id_identity)
+                 (c_wl.fk_patient = d_i.pk)
+               AND (c_wl.fk_patient = d_n.id_identity)
            )
-         AND (i.deceased IS NULL)
+         AND (d_i.deceased IS NULL)
      )
-   AND (n.active IS TRUE)
+   AND (d_n.active IS TRUE)
 );</pre>
 	
 
@@ -85517,11 +102808,19 @@ WHERE (
             <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
+                
                 </td>
             	<td>modified_by</td>
             	<td>name</td>
                 <td><i>
 				
+					
+
+					
+				
 
 				NOT NULL
 				DEFAULT "current_user"()
@@ -85640,11 +102939,16 @@ WHERE (
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>vacc_indication_sane_combi_atcs</td>
                 <td>CHECK (((atcs_combi_indication IS NULL) OR (array_upper(atcs_combi_indication, 1) > 0)))</td>
             </tr>
 			
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>vacc_indication_sane_single_atcs</td>
                 <td>CHECK (((atcs_single_indication IS NULL) OR (array_upper(atcs_single_indication, 1) > 0)))</td>
             </tr>
@@ -85753,11 +103057,19 @@ WHERE (
             <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
+                
                 </td>
             	<td>modified_by</td>
             	<td>name</td>
                 <td><i>
 				
+					
+
+					
+				
 
 				NOT NULL
 				DEFAULT "current_user"()
@@ -85855,6 +103167,21 @@ WHERE (
 
         <!-- Constraint List -->
 		
+        <p> </p>
+		<table width="100%" cellspacing="0" cellpadding="3">
+            <caption>clin.vacc_route Constraints</caption>
+            <tr>
+            	<th>Name</th>
+            	<th>Constraint</th>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+		</table>
+		
 
         <!-- Foreign Key Discovery -->
 		
@@ -85950,11 +103277,19 @@ WHERE (
             <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
+                
                 </td>
             	<td>modified_by</td>
             	<td>name</td>
                 <td><i>
 				
+					
+
+					
+				
 
 				NOT NULL
 				DEFAULT "current_user"()
@@ -86221,21 +103556,26 @@ WHERE (
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>clin_root_item_sane_soap_cat</td>
                 <td>CHECK (((soap_cat IS NULL) OR (lower(soap_cat) = ANY (ARRAY['s'::text, 'o'::text, 'a'::text, 'p'::text, 'u'::text]))))</td>
             </tr>
 			
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>vaccination_sane_narrative</td>
                 <td>CHECK ((gm.is_null_or_non_empty_string(narrative) IS TRUE))</td>
             </tr>
 			
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>vaccination_sane_reaction</td>
                 <td>CHECK ((gm.is_null_or_non_empty_string(reaction) IS TRUE))</td>
             </tr>
 			
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>vaccination_sane_site</td>
                 <td>CHECK ((gm.is_null_or_non_empty_string(site) IS TRUE))</td>
             </tr>
@@ -86248,10 +103588,16 @@ WHERE (
 
     <!-- Indexes -->
     
+       idx_clin_vaccination_clin_when clin_when
+    
        idx_clin_vaccination_fk_encounter fk_encounter
     
        idx_clin_vaccination_fk_episode fk_episode
     
+       idx_clin_vaccination_fk_provider fk_provider
+    
+       idx_clin_vaccination_fk_vaccine fk_vaccine
+    
 
 	<!-- View Definition -->
 	
@@ -86340,11 +103686,19 @@ WHERE (
             <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
+                
                 </td>
             	<td>modified_by</td>
             	<td>name</td>
                 <td><i>
 				
+					
+
+					
+				
 
 				NOT NULL
 				DEFAULT "current_user"()
@@ -86469,6 +103823,21 @@ WHERE (
 
         <!-- Constraint List -->
 		
+        <p> </p>
+		<table width="100%" cellspacing="0" cellpadding="3">
+            <caption>clin.vaccination_course Constraints</caption>
+            <tr>
+            	<th>Name</th>
+            	<th>Constraint</th>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+		</table>
+		
 
         <!-- Foreign Key Discovery -->
 		
@@ -86576,11 +103945,19 @@ WHERE (
             <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
+                
                 </td>
             	<td>modified_by</td>
             	<td>name</td>
                 <td><i>
 				
+					
+
+					
+				
 
 				NOT NULL
 				DEFAULT "current_user"()
@@ -86654,6 +104031,21 @@ WHERE (
 
         <!-- Constraint List -->
 		
+        <p> </p>
+		<table width="100%" cellspacing="0" cellpadding="3">
+            <caption>clin.vaccination_course_constraint Constraints</caption>
+            <tr>
+            	<th>Name</th>
+            	<th>Constraint</th>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+		</table>
+		
 
         <!-- Foreign Key Discovery -->
 		
@@ -86749,11 +104141,19 @@ WHERE (
             <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
+                
                 </td>
             	<td>modified_by</td>
             	<td>name</td>
                 <td><i>
 				
+					
+
+					
+				
 
 				NOT NULL
 				DEFAULT "current_user"()
@@ -86957,21 +104357,26 @@ WHERE (
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>numbered_shot_xor_booster</td>
                 <td>CHECK ((((is_booster IS TRUE) AND (seq_no IS NULL)) OR ((is_booster IS FALSE) AND (seq_no > 0))))</td>
             </tr>
 			
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>sensible_min_interval</td>
                 <td>CHECK (((((min_interval IS NULL) AND (seq_no = 1)) OR (((min_interval IS NOT NULL) AND (min_interval > '00:00:00'::interval)) AND (is_booster IS TRUE))) OR (((min_interval IS NOT NULL) AND (min_interval > '00:00:00'::interval)) AND (seq_no > 1))))</td>
             </tr>
 			
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>vaccination_definition_check</td>
                 <td>CHECK ((((max_age_due >= min_age_due) AND (max_age_due <= '150 years'::interval)) OR (max_age_due = '01:32:35'::interval)))</td>
             </tr>
 			
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>vaccination_definition_min_age_due_check</td>
                 <td>CHECK (((min_age_due >= '00:00:01'::interval) AND (min_age_due <= '150 years'::interval)))</td>
             </tr>
@@ -87071,11 +104476,19 @@ WHERE (
             <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
+                
                 </td>
             	<td>modified_by</td>
             	<td>name</td>
                 <td><i>
 				
+					
+
+					
+				
 
 				NOT NULL
 				DEFAULT "current_user"()
@@ -87165,6 +104578,21 @@ WHERE (
 
         <!-- Constraint List -->
 		
+        <p> </p>
+		<table width="100%" cellspacing="0" cellpadding="3">
+            <caption>clin.vaccination_schedule Constraints</caption>
+            <tr>
+            	<th>Name</th>
+            	<th>Constraint</th>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+		</table>
+		
 
         <!-- Foreign Key Discovery -->
 		
@@ -87260,11 +104688,19 @@ WHERE (
             <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
+                
                 </td>
             	<td>modified_by</td>
             	<td>name</td>
                 <td><i>
 				
+					
+
+					
+				
 
 				NOT NULL
 				DEFAULT "current_user"()
@@ -87444,11 +104880,16 @@ WHERE (
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>vaccine_sane_max_age</td>
                 <td>CHECK (((max_age IS NULL) OR (max_age < '150 years'::interval)))</td>
             </tr>
 			
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>vaccine_sane_min_age</td>
                 <td>CHECK (((min_age IS NULL) OR (((max_age IS NULL) AND (min_age < '150 years'::interval)) OR ((max_age IS NOT NULL) AND (min_age <= max_age)))))</td>
             </tr>
@@ -87558,11 +104999,19 @@ WHERE (
             <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
+                
                 </td>
             	<td>modified_by</td>
             	<td>name</td>
                 <td><i>
 				
+					
+
+					
+				
 
 				NOT NULL
 				DEFAULT "current_user"()
@@ -87661,6 +105110,21 @@ WHERE (
 
         <!-- Constraint List -->
 		
+        <p> </p>
+		<table width="100%" cellspacing="0" cellpadding="3">
+            <caption>clin.vaccine_batches Constraints</caption>
+            <tr>
+            	<th>Name</th>
+            	<th>Constraint</th>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+		</table>
+		
 
         <!-- Foreign Key Discovery -->
 		
@@ -87749,11 +105213,19 @@ WHERE (
             <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
+                
                 </td>
             	<td>modified_by</td>
             	<td>name</td>
                 <td><i>
 				
+					
+
+					
+				
 
 				NOT NULL
 				DEFAULT "current_user"()
@@ -87929,11 +105401,16 @@ WHERE (
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>non_empty_area</td>
                 <td>CHECK ((btrim(area) <> ''::text))</td>
             </tr>
 			
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>waiting_list_list_position_check</td>
                 <td>CHECK ((list_position > 0))</td>
             </tr>
@@ -87963,6 +105440,50 @@ WHERE (
 	
 		<hr>
 		<h2>Function:
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.function.-get-recommendation-for-patient-hint-text-integer">_get_recommendation_for_patient_hint(text, integer)</a>
+		</h2>
+<h3>Returns: text</h3>
+<h3>Language: PLPGSQL</h3>
+        
+        <pre>
+DECLARE
+	_raw_query ALIAS FOR $1;
+	_pk_identity ALIAS FOR $2;
+	_query text;
+	_recommendation text;
+BEGIN
+	IF _raw_query IS NULL THEN
+		RETURN NULL::text;
+	END IF;
+	_query := replace(_raw_query, 'ID_ACTIVE_PATIENT', _pk_identity::text);
+	BEGIN
+		EXECUTE _query INTO STRICT _recommendation;
+	EXCEPTION
+		--WHEN insufficient_privilege THEN RAISE WARNING 'auto hint recommendation query failed: %', _query;
+		WHEN others THEN
+			RAISE WARNING 'auto hint recommendation query failed: %', _query;
+			-- only available starting with PG 9.2:
+			--GET STACKED DIAGNOSTICS
+			--	_exc_state = RETURNED_SQLSTATE,
+			--	_exc_msg = MESSAGE_TEXT,
+			--	_exc_detail = PG_EXCEPTION_DETAIL,
+			--	_exc_hint = PG_EXCEPTION_HINT,
+			--	_exc_context = PG_EXCEPTION_CONTEXT;
+			--RAISE WARNING 'SQL STATE: %', _exc_state;
+			--RAISE WARNING 'MESSAGE: %', _exc_msg;
+			--RAISE WARNING 'DETAIL: %', _exc_detail;
+			--RAISE WARNING 'HINT: %', _exc_hint;
+			--RAISE WARNING 'CONTEXT: %', _exc_context;
+			-- workaround for 9.1:
+			RAISE WARNING 'SQL STATE: %', SQLSTATE;
+			RAISE WARNING 'MESSAGE: %', SQLERRM;
+			_recommendation := 'ERROR running hint recommendation query [' || _query || ']';
+	END;
+	RETURN _recommendation;
+END;</pre>
+	
+		<hr>
+		<h2>Function:
 			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.function.add-coded-phrase-text-text-text">add_coded_phrase(text, text, text)</a>
 		</h2>
 <h3>Returns: boolean</h3>
@@ -88135,17 +105656,21 @@ DECLARE
 	_rationale4suppression text;
 	_suppression_exists boolean;		-- does not mean that the suppression applies
 	_hint_currently_applies boolean;	-- regardless of whether suppressed or not
+	_hint_recommendation text;
 --	_exc_state text;
 --	_exc_msg text;
 --	_exc_detail text;
 --	_exc_hint text;
 --	_exc_context text;
 BEGIN
+	-- loop over all defined hints
 	FOR _hint IN SELECT * FROM ref.v_auto_hints WHERE is_active LOOP
 		-- is the hint suppressed ?
 		SELECT
 			md5_sum,
-			rationale INTO _md5_suppressed,
+			rationale
+				INTO
+			_md5_suppressed,
 			_rationale4suppression
 		FROM clin.suppressed_hint WHERE
 			fk_hint = _hint.pk_auto_hint
@@ -88208,10 +105733,11 @@ BEGIN
 				-- however - since it does not currently apply it - it will
 				-- still not be returned until it applies again ...
 				--
-				-- UNFORTUNATELY, this is currently not _possible_ because we
-				-- are running inside a READONLY transaction (due to inherent
-				-- security risks when running arbitrary user queries [=the hint
-				-- SQL]	-- against the database) and we cannot execute a
+				-- -----------------------------------------------------------------------
+				-- UNFORTUNATELY, the following is currently not _possible_ because
+				-- we are running inside a READONLY transaction (due to inherent
+				-- security risks when running arbitrary user queries [IOW the hint
+				-- SQL] against the database) and we cannot execute a
 				-- sub-transaction as READWRITE :-/
 				--
 				--UPDATE clin.suppressed_hint
@@ -88222,12 +105748,13 @@ BEGIN
 				--	)
 				--		AND
 				--	fk_hint = _hint.pk_auto_hint;
+				-- -----------------------------------------------------------------------
 				--
 				-- hence our our workaround is to, indeed, return the hint but
 				-- tag it with a magic rationale, by means of which the client
-				-- can detect it to be in need of invalidation
+				-- can detect it to be in need of invalidation:
 				_hint.title := 'HINT DOES NOT APPLY BUT NEEDS INVALIDATION OF EXISTING SUPPRESSION [' || _hint.title || '].';
-				_hint.rationale4suppression := 'please_invalidate_suppression';
+				_hint.rationale4suppression := 'magic_tag::please_invalidate_suppression';
 				RETURN NEXT _hint;
 				CONTINUE;
 			END IF;
@@ -88237,6 +105764,9 @@ BEGIN
 				-- yes: ignore the suppression but provide previous
 				-- rationale for suppression to the user
 				_hint.rationale4suppression := _rationale4suppression;
+				-- retrieve recommendation
+				SELECT clin._get_recommendation_for_patient_hint(_hint.recommendation_query, _pk_identity) INTO STRICT _hint_recommendation;
+				_hint.recommendation := _hint_recommendation;
 				RETURN NEXT _hint;
 				CONTINUE;
 			END IF;
@@ -88250,7 +105780,9 @@ BEGIN
 		-- hint is not suppressed
 		-- does the hint currently apply ?
 		IF _hint_currently_applies THEN
-			-- yes: return it
+			-- yes: retrieve recommendation
+			SELECT clin._get_recommendation_for_patient_hint(_hint.recommendation_query, _pk_identity) INTO STRICT _hint_recommendation;
+			_hint.recommendation := _hint_recommendation;
 			RETURN NEXT _hint;
 		END IF;
 		-- no: ignore it and process next hint in LOOP
@@ -88496,7 +106028,7 @@ BEGIN
 	select
 		* into _row
 	from
-		clin.v_pat_substance_intake_journal
+		clin.v_substance_intake_journal
 	where
 		src_pk = OLD.pk;
 	_pk_episode := _row.pk_episode;
@@ -88669,6 +106201,26 @@ end;</pre>
 	
 		<hr>
 		<h2>Function:
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.function.trf-ins-intake-set-substance-from-component">trf_ins_intake_set_substance_from_component()</a>
+		</h2>
+<h3>Returns: trigger</h3>
+<h3>Language: PLPGSQL</h3>
+        <p>On INSERT of a substance intake set fk_substance from fk_drug_component if the latter is NOT NULL.</p>
+        <pre>
+BEGIN
+	-- load fk_substance from drug_component table
+	select
+		r_ls2b.fk_substance into strict NEW.fk_substance
+	from
+		ref.lnk_substance2brand r_ls2b
+	where
+		r_ls2b.pk = NEW.fk_drug_component
+	;
+	return NEW;
+END;</pre>
+	
+		<hr>
+		<h2>Function:
 			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.function.trf-ins-lc2sth-fk-generic-code">trf_ins_lc2sth_fk_generic_code()</a>
 		</h2>
 <h3>Returns: trigger</h3>
@@ -88692,6 +106244,47 @@ END;</pre>
 	
 		<hr>
 		<h2>Function:
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.function.trf-ins-upd-intake-prevent-duplicate-substance-links">trf_ins_upd_intake_prevent_duplicate_substance_links()</a>
+		</h2>
+<h3>Returns: trigger</h3>
+<h3>Language: PLPGSQL</h3>
+        <p>Prevent patient from being put on a particular substance more than once.</p>
+        <pre>
+DECLARE
+	_pk_patient integer;
+	_link_count integer;
+	_msg text;
+BEGIN
+	-- which patient ?
+	select fk_patient into _pk_patient
+	from clin.encounter
+	where pk = NEW.fk_encounter;
+	-- more than one link ?
+	select count(1) into _link_count
+	from clin.substance_intake
+	where
+		-- for this substance
+		fk_substance = NEW.fk_substance
+			and
+		-- either already linked as component OR
+		-- already linked as substance
+		fk_drug_component IS NOT DISTINCT FROM NEW.fk_drug_component
+			and
+		-- in this one patient
+		fk_encounter in (
+			select pk from clin.encounter where fk_patient = _pk_patient
+		)
+	;
+	if _link_count > 1 then
+		_msg := '[clin.trf_ins_upd_intake_prevent_duplicate_substance_links]: substance ref.consumable_substance.pk=(' || NEW.fk_substance || ') '
+			|| 'already linked to patient=(' || _pk_patient || ') ';
+		raise exception unique_violation using message = _msg;
+	end if;
+	return NEW;
+END;</pre>
+	
+		<hr>
+		<h2>Function:
 			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.function.trf-ins-upd-validate-test-type-pks">trf_ins_upd_validate_test_type_pks()</a>
 		</h2>
 <h3>Returns: trigger</h3>
@@ -88857,47 +106450,6 @@ END;</pre>
 	
 		<hr>
 		<h2>Function:
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.function.trf-insert-update-intake-prevent-duplicate-substance-links">trf_insert_update_intake_prevent_duplicate_substance_links()</a>
-		</h2>
-<h3>Returns: trigger</h3>
-<h3>Language: PLPGSQL</h3>
-        <p>Prevent patient from being put on a particular substance more than once.</p>
-        <pre>
-DECLARE
-	_pk_patient integer;
-	_link_count integer;
-	_msg text;
-BEGIN
-	-- any substance at all (rather than drug component) ?
-	if NEW.fk_substance is NULL then
-		return NEW;
-	end if;
-	-- which patient ?
-	select fk_patient into _pk_patient
-	from clin.encounter
-	where pk = NEW.fk_encounter;
-	-- more than one link ?
-	select count(1) into _link_count
-	from clin.substance_intake
-	where
-		-- for this substance
-		fk_substance = NEW.fk_substance
-			and
-		-- in this one patient
-		fk_encounter in (
-			select pk from clin.encounter where fk_patient = _pk_patient
-		)
-	;
-	if _link_count > 1 then
-		_msg := '[clin.trf_insert_update_intake_prevent_duplicate_substance_links]: substance ref.consumable_substance.pk=(' || NEW.fk_substance || ') '
-			|| 'already linked to patient=(' || _pk_patient || ') ';
-		raise exception unique_violation using message = _msg;
-	end if;
-	return NEW;
-END;</pre>
-	
-		<hr>
-		<h2>Function:
 			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.function.trf-invalidate-review-on-result-change">trf_invalidate_review_on_result_change()</a>
 		</h2>
 <h3>Returns: trigger</h3>
@@ -88939,9 +106491,6 @@ END;</pre>
         
         <pre>
 BEGIN
-	if NEW.clin_end is NULL then
-		return NEW;
-	end if;
 	if NEW.clin_end > clock_timestamp() then
 		NEW.is_ongoing := TRUE;
 	else
@@ -89022,6 +106571,69 @@ end;</pre>
 	
 		<hr>
 		<h2>Function:
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.function.trf-sane-identity-comment">trf_sane_identity_comment()</a>
+		</h2>
+<h3>Returns: trigger</h3>
+<h3>Language: PLPGSQL</h3>
+        <p>Ensures unique(identity.dob, names.firstnames, names.lastnames, identity.comment)</p>
+        <pre>
+DECLARE
+	_identity_row record;
+	_names_row record;
+BEGIN
+	if TG_TABLE_NAME = 'identity' then
+		if TG_OP = 'UPDATE' then
+			if NEW.comment IS NOT DISTINCT FROM OLD.comment then
+				return NEW;
+			end if;
+		end if;
+		_identity_row := NEW;
+		select * into _names_row from dem.names where id_identity = NEW.pk;
+	else
+		select * into _identity_row from dem.identity where pk = NEW.id_identity;
+		_names_row := NEW;
+	end if;
+	-- any row with
+	PERFORM 1 FROM
+		dem.v_all_persons
+	WHERE
+		-- same firstname
+		firstnames = _names_row.firstnames
+			and
+		-- same lastname
+		lastnames = _names_row.lastnames
+			and
+		-- same gender
+		gender is not distinct from _identity_row.gender
+			and
+		-- same dob (day)
+		dob_only is not distinct from _identity_row.dob
+			and
+		-- same discriminator
+		comment is not distinct from _identity_row.comment
+			and
+		-- but not the currently updated or inserted row
+		pk_identity != _identity_row.pk
+	;
+	if FOUND then
+		RAISE EXCEPTION
+			'% on %.%: More than one person with (firstnames=%), (lastnames=%), (dob=%), (comment=%)',
+				TG_OP,
+				TG_TABLE_SCHEMA,
+				TG_TABLE_NAME,
+				_names_row.firstnames,
+				_names_row.lastnames,
+				_identity_row.dob,
+				_identity_row.comment
+			USING ERRCODE = 'unique_violation'
+		;
+		RETURN NULL;
+	end if;
+	return NEW;
+END;</pre>
+	
+		<hr>
+		<h2>Function:
 			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.function.trf-sanity-check-enc-epi-ins-upd">trf_sanity_check_enc_epi_ins_upd()</a>
 		</h2>
 <h3>Returns: trigger</h3>
@@ -89162,49 +106774,6 @@ END;</pre>
 	
 		<hr>
 		<h2>Function:
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.function.trf-sanity-check-substance-episode">trf_sanity_check_substance_episode()</a>
-		</h2>
-<h3>Returns: trigger</h3>
-<h3>Language: PLPGSQL</h3>
-        
-        <pre>
-declare
-	_identity_from_encounter integer;
-	_identity_from_episode integer;
-begin
-	-- episode can only be NULL if intake is not approved of,
-	-- IOW, if clinician approves of intake she better know why
-	if NEW.intake_is_approved_of is True then
-		if NEW.fk_episode is NULL then
-			raise exception 'clin.trf_sanity_check_substance_episode(): substance intake is approved of but .fk_episode is NULL';
-			return NULL;
-		end if;
-	end if;
-	-- .fk_episode can be NULL (except in the above case)
-	if NEW.fk_episode is NULL then
-		return NEW;
-	end if;
-	-- .fk_episode must belong to the same patient as .fk_encounter
-	select fk_patient into _identity_from_encounter from clin.encounter where pk = NEW.fk_encounter;
-	select fk_patient into _identity_from_episode from clin.encounter where pk = (
-		select fk_encounter from clin.episode where pk = NEW.fk_episode
-	);
-	if _identity_from_encounter <> _identity_from_episode then
-		raise exception 'INSERT/UPDATE into %.%: Sanity check failed. Encounter % patient = %. Episode % patient = %.',
-			TG_TABLE_SCHEMA,
-			TG_TABLE_NAME,
-			NEW.fk_encounter,
-			_identity_from_encounter,
-			NEW.fk_episode,
-			_identity_from_episode
-		;
-		return NULL;
-	end if;
-	return NEW;
-end;</pre>
-	
-		<hr>
-		<h2>Function:
 			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.function.trf-sanity-check-uniq-hint-per-pat-ins-upd">trf_sanity_check_uniq_hint_per_pat_ins_upd()</a>
 		</h2>
 <h3>Returns: trigger</h3>
@@ -89347,6 +106916,101 @@ END;</pre>
 	
 		<hr>
 		<h2>Function:
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.function.trf-upd-intake-set-substance-from-component">trf_upd_intake_set_substance_from_component()</a>
+		</h2>
+<h3>Returns: trigger</h3>
+<h3>Language: PLPGSQL</h3>
+        <p>On UPDATE of a substance intake set fk_substance from fk_drug_component if the latter changes.</p>
+        <pre>
+BEGIN
+	-- load fk_substance from drug_component table
+	select
+		r_ls2b.fk_substance into strict NEW.fk_substance
+	from
+		ref.lnk_substance2brand r_ls2b
+	where
+		r_ls2b.pk = NEW.fk_drug_component
+	;
+	return NEW;
+END;</pre>
+	
+		<hr>
+		<h2>Function:
+			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.function.trf-upd-intake-updates-all-drug-components">trf_upd_intake_updates_all_drug_components()</a>
+		</h2>
+<h3>Returns: trigger</h3>
+<h3>Language: PLPGSQL</h3>
+        <p>If a drug component substance intake is updated all sibling components must receive some values thereof.</p>
+        <pre>
+DECLARE
+	_pk_brand integer;
+	_component_count integer;
+	_pk_patient integer;
+BEGIN
+	-- which drug ?
+	select fk_brand into _pk_brand
+	from ref.lnk_substance2brand
+	where pk = NEW.fk_drug_component;
+	-- how many components therein ?
+	select count(1) into _component_count
+	from ref.lnk_substance2brand
+	where fk_brand = _pk_brand;
+	-- only one component ?
+	if _component_count = 1 then
+		return NEW;
+	end if;
+	-- which patient ?
+	select fk_patient into _pk_patient
+	from clin.encounter
+	where pk = NEW.fk_encounter;
+	-- update all substance instake fields shared by drug components ...
+	update clin.substance_intake set
+		clin_when = NEW.clin_when,				-- started
+		fk_encounter = NEW.fk_encounter,
+		soap_cat = NEW.soap_cat,
+		schedule = NEW.schedule,
+		duration = NEW.duration,
+		intake_is_approved_of = NEW.intake_is_approved_of,
+		is_long_term = NEW.is_long_term,
+		discontinued = NEW.discontinued
+	where
+		-- ... which belong to this drug ...
+		fk_drug_component in (
+			select pk from ref.lnk_substance2brand where fk_brand = _pk_brand
+		)
+			AND
+		-- ... but are not THIS component ...
+		fk_drug_component != NEW.fk_drug_component
+			AND
+		-- ... this patient ...
+		fk_encounter in (
+			select pk from clin.encounter where fk_patient = _pk_patient
+		)
+			AND
+		-- ... are different in value (this will stop recursion as soon as all are equal)
+		(
+			clin_when is distinct from NEW.clin_when
+				OR
+			fk_encounter is distinct from NEW.fk_encounter
+				OR
+			soap_cat is distinct from NEW.soap_cat
+				OR
+			schedule is distinct from NEW.schedule
+				OR
+			duration is distinct from NEW.duration
+				OR
+			intake_is_approved_of is distinct from NEW.intake_is_approved_of
+				OR
+			is_long_term is distinct from NEW.is_long_term
+				OR
+			discontinued is distinct from NEW.discontinued
+		)
+	;
+	return NEW;
+END;</pre>
+	
+		<hr>
+		<h2>Function:
 			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.function.trf-upd-lc2sth-fk-generic-code">trf_upd_lc2sth_fk_generic_code()</a>
 		</h2>
 <h3>Returns: trigger</h3>
@@ -89457,85 +107121,6 @@ END;</pre>
 	
 		<hr>
 		<h2>Function:
-			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.function.trf-update-intake-updates-all-drug-components">trf_update_intake_updates_all_drug_components()</a>
-		</h2>
-<h3>Returns: trigger</h3>
-<h3>Language: PLPGSQL</h3>
-        <p>If a drug component substance intake is updated all sibling components must receive some values thereof.</p>
-        <pre>
-DECLARE
-	_pk_brand integer;
-	_component_count integer;
-	_pk_patient integer;
-BEGIN
-	-- does it at all relate to a drug (rather than substance) ?
-	if NEW.fk_drug_component is null then
-		return NEW;
-	end if;
-	-- which drug ?
-	select fk_brand into _pk_brand
-	from ref.lnk_substance2brand
-	where pk = NEW.fk_drug_component;
-	-- how many components therein ?
-	select count(1) into _component_count
-	from ref.lnk_substance2brand
-	where fk_brand = _pk_brand;
-	-- only one component ?
-	if _component_count = 1 then
-		return NEW;
-	end if;
-	-- which patient ?
-	select fk_patient into _pk_patient
-	from clin.encounter
-	where pk = NEW.fk_encounter;
-	-- update all substance instakes ...
-	update clin.substance_intake set
-		clin_when = NEW.clin_when,				-- started
-		fk_encounter = NEW.fk_encounter,
-		soap_cat = NEW.soap_cat,
-		schedule = NEW.schedule,
-		duration = NEW.duration,
-		intake_is_approved_of = NEW.intake_is_approved_of,
-		is_long_term = NEW.is_long_term,
-		discontinued = NEW.discontinued
-	where
-		-- ... which belong to this drug ...
-		fk_drug_component in (
-			select pk from ref.lnk_substance2brand where fk_brand = _pk_brand
-		)
-			AND
-		-- ... but are not THIS component ...
-		fk_drug_component != NEW.fk_drug_component
-			AND
-		-- ... this patient ...
-		fk_encounter in (
-			select pk from clin.encounter where fk_patient = _pk_patient
-		)
-			AND
-		-- ... are different in value (this will stop recursion as soon as all are equal)
-		(
-			clin_when is distinct from NEW.clin_when
-				OR
-			fk_encounter is distinct from NEW.fk_encounter
-				OR
-			soap_cat is distinct from NEW.soap_cat
-				OR
-			schedule is distinct from NEW.schedule
-				OR
-			duration is distinct from NEW.duration
-				OR
-			intake_is_approved_of is distinct from NEW.intake_is_approved_of
-				OR
-			is_long_term is distinct from NEW.is_long_term
-				OR
-			discontinued is distinct from NEW.discontinued
-		)
-	;
-	return NEW;
-END;</pre>
-	
-		<hr>
-		<h2>Function:
 			<a href="gnumed-entire_schema.html#clin.schema">clin</a>.<a name="clin.function.trf-warn-on-duplicate-vaccinations">trf_warn_on_duplicate_vaccinations()</a>
 		</h2>
 <h3>Returns: trigger</h3>
@@ -89721,11 +107306,19 @@ END;</pre>
             <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
+                
                 </td>
             	<td>modified_by</td>
             	<td>name</td>
                 <td><i>
 				
+					
+
+					
+				
 
 				NOT NULL
 				DEFAULT "current_user"()
@@ -89847,172 +107440,24 @@ END;</pre>
 
         <!-- Constraint List -->
 		
-
-        <!-- Foreign Key Discovery -->
-		
-			<p>Tables referencing this one via Foreign Key Constraints:</p>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#de-de.table.behandlungsfall">de_de.behandlungsfall</a></li>
-			</ul>
-		
-		
-
-    <!-- Indexes -->
-    
-
-	<!-- View Definition -->
-	
-
-	<!-- List off permissions -->
-	
-
-	<p>
-		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#de-de.schema">Schema de_de</a>
-    </p>
-	
-        <hr>
-		<h2>Table:
+        <p> </p>
+		<table width="100%" cellspacing="0" cellpadding="3">
+            <caption>de_de.beh_fall_typ Constraints</caption>
+            <tr>
+            	<th>Name</th>
+            	<th>Constraint</th>
+            </tr>
 			
-			<a href="gnumed-entire_schema.html#de-de.schema">de_de</a>.<a name="de-de.table.behandlungsfall">behandlungsfall</a>
-		</h2>
-        
-
-
-        <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>de_de.behandlungsfall Structure</caption>
-                <tr>
-                <th>F-Key</th>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Description</th>
-                </tr>
-            
             <tr class="tr0">
-				<td>
-                
-                  
-                
-                </td>
-            	<td>pk</td>
-            	<td>serial</td>
-                <td><i>
-				
-					PRIMARY KEY
-					
-
-					
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                  
-                  <a href="gnumed-entire_schema.html#dem.table.identity">dem.identity.pk</a>
-                  
-                
-                </td>
-            	<td>fk_patient</td>
-            	<td>integer</td>
-                <td><i>
-				
-					
-
-					
-				
-
-				NOT NULL
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                  
-                  <a href="gnumed-entire_schema.html#de-de.table.beh-fall-typ">de_de.beh_fall_typ.pk</a>
-                  
-                
-                </td>
-            	<td>fk_falltyp</td>
-            	<td>integer</td>
-                <td><i>
-				
-					
-
-					
-				
-
-				NOT NULL
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>started</td>
-            	<td>date</td>
-                <td><i>
-				
-
-				NOT NULL
-				DEFAULT ('now'::text)::date
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>must_pay_prax_geb</td>
-            	<td>boolean</td>
-                <td><i>
-				
-
-				NOT NULL
-				DEFAULT true
-				</i>
-				
-				</td>
-			 </tr>
-            
-        </table>
-
-        <!-- Inherits -->
-		
-
-		
-		
-		
-
-        <!-- Constraint List -->
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+		</table>
 		
 
         <!-- Foreign Key Discovery -->
 		
-			<p>Tables referencing this one via Foreign Key Constraints:</p>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#de-de.table.prax-geb-paid">de_de.prax_geb_paid</a></li>
-			</ul>
-		
-		
 
     <!-- Indexes -->
     
@@ -90537,11 +107982,19 @@ END;</pre>
             <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
+                
                 </td>
             	<td>modified_by</td>
             	<td>name</td>
                 <td><i>
 				
+					
+
+					
+				
 
 				NOT NULL
 				DEFAULT "current_user"()
@@ -90615,6 +108068,21 @@ END;</pre>
 
         <!-- Constraint List -->
 		
+        <p> </p>
+		<table width="100%" cellspacing="0" cellpadding="3">
+            <caption>de_de.lab_test_gnr Constraints</caption>
+            <tr>
+            	<th>Name</th>
+            	<th>Constraint</th>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+		</table>
+		
 
         <!-- Foreign Key Discovery -->
 		
@@ -90801,11 +108269,19 @@ END;</pre>
             <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
+                
                 </td>
             	<td>modified_by</td>
             	<td>name</td>
                 <td><i>
 				
+					
+
+					
+				
 
 				NOT NULL
 				DEFAULT "current_user"()
@@ -90840,19 +108316,11 @@ END;</pre>
             <tr class="tr1">
 				<td>
                 
-                  
-                  <a href="gnumed-entire_schema.html#de-de.table.behandlungsfall">de_de.behandlungsfall.pk</a>
-                  
-                
                 </td>
             	<td>fk_fall</td>
             	<td>integer</td>
                 <td><i>
 				
-					
-
-					
-				
 
 				NOT NULL
 				
@@ -90935,6 +108403,21 @@ END;</pre>
 
         <!-- Constraint List -->
 		
+        <p> </p>
+		<table width="100%" cellspacing="0" cellpadding="3">
+            <caption>de_de.prax_geb_paid Constraints</caption>
+            <tr>
+            	<th>Name</th>
+            	<th>Constraint</th>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+		</table>
+		
 
         <!-- Foreign Key Discovery -->
 		
@@ -91193,11 +108676,19 @@ END;</pre>
             <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
+                
                 </td>
             	<td>modified_by</td>
             	<td>name</td>
                 <td><i>
 				
+					
+
+					
+				
 
 				NOT NULL
 				DEFAULT "current_user"()
@@ -91399,6 +108890,21 @@ END;</pre>
 
         <!-- Constraint List -->
 		
+        <p> </p>
+		<table width="100%" cellspacing="0" cellpadding="3">
+            <caption>dem.address Constraints</caption>
+            <tr>
+            	<th>Name</th>
+            	<th>Constraint</th>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+		</table>
+		
 
         <!-- Foreign Key Discovery -->
 		
@@ -91673,7 +109179,7 @@ END;</pre>
 			<p>Tables referencing this one via Foreign Key Constraints:</p>
 		
 			<ul>
-				<li><a href="gnumed-entire_schema.html#dem.table.state">dem.state</a></li>
+				<li><a href="gnumed-entire_schema.html#dem.table.region">dem.region</a></li>
 			</ul>
 		
 		
@@ -91997,254 +109503,275 @@ END;</pre>
             <tr class="tr1">
 				<td>
                 
-                </td>
-            	<td>modified_by</td>
-            	<td>name</td>
-                <td><i>
-				
-
-				NOT NULL
-				DEFAULT "current_user"()
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                  
-                
-                </td>
-            	<td>pk</td>
-            	<td>serial</td>
-                <td><i>
-				
-					PRIMARY KEY
-					
-
-					
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
                   
-                
-                </td>
-            	<td>tag</td>
-            	<td>text</td>
-                <td><i>
-				
-					
-
-					
-                       UNIQUE
-                    
-				
-
-				NOT NULL
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
+                
+                </td>
+            	<td>modified_by</td>
+            	<td>name</td>
+                <td><i>
+				
+					
+
+					
+				
+
+				NOT NULL
+				DEFAULT "current_user"()
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                  
+                
+                </td>
+            	<td>pk</td>
+            	<td>serial</td>
+                <td><i>
+				
+					PRIMARY KEY
+					
+
+					
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                  
+                
+                </td>
+            	<td>tag</td>
+            	<td>text</td>
+                <td><i>
+				
+					
+
+					
+                       UNIQUE
+                    
+				
+
+				NOT NULL
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                  
+                
+                </td>
+            	<td>label</td>
+            	<td>text</td>
+                <td><i>
+				
+					
+
+					
+                       UNIQUE
+                    
+				
+
+				NOT NULL
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>sort_weight</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				NOT NULL
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>comment</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				NOT NULL
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+        </table>
+
+        <!-- Inherits -->
+		
+        <p>Table dem.gender_label Inherits
+        
+            
+           <a href="gnumed-entire_schema.html#audit.table.audit-fields">audit_fields</a>, 
+        
+        </p>
+		
+
+		
+		
+		
+
+        <!-- Constraint List -->
+		
+        <p> </p>
+		<table width="100%" cellspacing="0" cellpadding="3">
+            <caption>dem.gender_label Constraints</caption>
+            <tr>
+            	<th>Name</th>
+            	<th>Constraint</th>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>gender_label_tag_check</td>
+                <td>CHECK ((tag = ANY (ARRAY['m'::text, 'f'::text, 'h'::text, 'tm'::text, 'tf'::text])))</td>
+            </tr>
+			
+		</table>
+		
+
+        <!-- Foreign Key Discovery -->
+		
+			<p>Tables referencing this one via Foreign Key Constraints:</p>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#dem.table.identity">dem.identity</a></li>
+			</ul>
+		
+		
+
+    <!-- Indexes -->
+    
+
+	<!-- View Definition -->
+	
+
+	<!-- List off permissions -->
+	
+
+	<p>
+		<a href="gnumed-entire_schema.html#index">Index</a> -
+		<a href="gnumed-entire_schema.html#dem.schema">Schema dem</a>
+    </p>
+	
+        <hr>
+		<h2>Table:
+			
+			<a href="gnumed-entire_schema.html#dem.schema">dem</a>.<a name="dem.table.identity">identity</a>
+		</h2>
+        
+         <p>represents the unique identity of a person</p>
+        
+
+
+        <table width="100%" cellspacing="0" cellpadding="3">
+                <caption>dem.identity Structure</caption>
+                <tr>
+                <th>F-Key</th>
+                <th>Name</th>
+                <th>Type</th>
+                <th>Description</th>
+                </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_audit</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				NOT NULL
+				DEFAULT nextval('audit.audit_fields_pk_audit_seq'::regclass)
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>row_version</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				NOT NULL
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>modified_when</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				NOT NULL
+				DEFAULT now()
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
                   
                 
                 </td>
-            	<td>label</td>
-            	<td>text</td>
+            	<td>modified_by</td>
+            	<td>name</td>
                 <td><i>
 				
 					
 
 					
-                       UNIQUE
-                    
-				
-
-				NOT NULL
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>sort_weight</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				NOT NULL
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>comment</td>
-            	<td>text</td>
-                <td><i>
-				
-
-				NOT NULL
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-        </table>
-
-        <!-- Inherits -->
-		
-        <p>Table dem.gender_label Inherits
-        
-            
-           <a href="gnumed-entire_schema.html#audit.table.audit-fields">audit_fields</a>, 
-        
-        </p>
-		
-
-		
-		
-		
-
-        <!-- Constraint List -->
-		
-        <p> </p>
-		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>dem.gender_label Constraints</caption>
-            <tr>
-            	<th>Name</th>
-            	<th>Constraint</th>
-            </tr>
-			
-            <tr class="tr0">
-				<td>gender_label_tag_check</td>
-                <td>CHECK ((tag = ANY (ARRAY['m'::text, 'f'::text, 'h'::text, 'tm'::text, 'tf'::text])))</td>
-            </tr>
-			
-		</table>
-		
-
-        <!-- Foreign Key Discovery -->
-		
-			<p>Tables referencing this one via Foreign Key Constraints:</p>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#dem.table.identity">dem.identity</a></li>
-			</ul>
-		
-		
-
-    <!-- Indexes -->
-    
-
-	<!-- View Definition -->
-	
-
-	<!-- List off permissions -->
-	
-
-	<p>
-		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#dem.schema">Schema dem</a>
-    </p>
-	
-        <hr>
-		<h2>Table:
-			
-			<a href="gnumed-entire_schema.html#dem.schema">dem</a>.<a name="dem.table.identity">identity</a>
-		</h2>
-        
-         <p>represents the unique identity of a person</p>
-        
-
-
-        <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>dem.identity Structure</caption>
-                <tr>
-                <th>F-Key</th>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Description</th>
-                </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>pk_audit</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				NOT NULL
-				DEFAULT nextval('audit.audit_fields_pk_audit_seq'::regclass)
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>row_version</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				NOT NULL
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>modified_when</td>
-            	<td>timestamp with time zone</td>
-                <td><i>
-				
-
-				NOT NULL
-				DEFAULT now()
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>modified_by</td>
-            	<td>name</td>
-                <td><i>
 				
 
 				NOT NULL
@@ -92296,22 +109823,6 @@ END;</pre>
             <tr class="tr0">
 				<td>
                 
-                </td>
-            	<td>pupic</td>
-            	<td>character(24)</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				<br><br>Portable Unique Person Identification Code as per gnumed white papers
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
                   
                   <a href="gnumed-entire_schema.html#dem.table.gender-label">dem.gender_label.tag</a>
                   
@@ -92333,7 +109844,7 @@ END;</pre>
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
@@ -92349,7 +109860,7 @@ END;</pre>
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                   
@@ -92373,7 +109884,7 @@ END;</pre>
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
@@ -92389,7 +109900,7 @@ END;</pre>
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                 </td>
@@ -92405,7 +109916,7 @@ END;</pre>
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
@@ -92422,7 +109933,7 @@ END;</pre>
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                 </td>
@@ -92438,7 +109949,7 @@ END;</pre>
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
@@ -92454,7 +109965,7 @@ END;</pre>
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                   
@@ -92478,7 +109989,7 @@ END;</pre>
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
@@ -92490,11 +110001,26 @@ END;</pre>
 				
 				
 				</i>
-				<br><br>A free-text comment on this identity.
+				<br><br>A free-text comment on this identity.\n
+\n
+Can be used to to discriminate patients which are otherwise\n
+identical regarding name and date of birth.\n
+Should be something non-ephemereal and unique to the person\n
+itself across time, place and database instance.\n
+Good: place of birth\n
+Good: maiden name of mother\n
+Good: mother of <name>\n
+Good: hash of DNA\n
+Good (?): hair color of first pet\n
+Bad: current address (will change)\n
+Bad: primary provider in this praxis (can change, invalid in another GNUmed instance)\n
+Bad: nickname (will change, can dupe as well)\n
+Bad: favourite food\n
+not-quite-so-bad: occupation
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                   
@@ -92518,7 +110044,7 @@ END;</pre>
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
@@ -92561,26 +110087,31 @@ END;</pre>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>dem_identity_sane_dob</td>
                 <td>CHECK (((dob IS NULL) OR (dob <= now())))</td>
             </tr>
 			
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>dem_identity_sane_dod</td>
                 <td>CHECK ((((deceased IS NULL) OR (dob IS NULL)) OR (deceased >= dob)))</td>
             </tr>
 			
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>identity_title_check</td>
                 <td>CHECK ((btrim(COALESCE(title, 'NULL'::text)) <> ''::text))</td>
             </tr>
 			
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>sane_comment</td>
                 <td>CHECK ((gm.is_null_or_non_empty_string(comment) IS TRUE))</td>
             </tr>
 			
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>sane_emergency_contact</td>
                 <td>CHECK ((gm.is_null_or_non_empty_string(emergency_contact) IS TRUE))</td>
             </tr>
@@ -92617,10 +110148,6 @@ END;</pre>
 			</ul>
 		
 			<ul>
-				<li><a href="gnumed-entire_schema.html#de-de.table.behandlungsfall">de_de.behandlungsfall</a></li>
-			</ul>
-		
-			<ul>
 				<li><a href="gnumed-entire_schema.html#de-de.table.kvk">de_de.kvk</a></li>
 			</ul>
 		
@@ -92756,11 +110283,19 @@ END;</pre>
             <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
+                
                 </td>
             	<td>modified_by</td>
             	<td>name</td>
                 <td><i>
 				
+					
+
+					
+				
 
 				NOT NULL
 				DEFAULT "current_user"()
@@ -92899,6 +110434,11 @@ END;</pre>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>dem_identity_tag_sane_comment</td>
                 <td>CHECK ((gm.is_null_or_non_empty_string(comment) IS TRUE))</td>
             </tr>
@@ -92994,11 +110534,19 @@ END;</pre>
             <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
+                
                 </td>
             	<td>modified_by</td>
             	<td>name</td>
                 <td><i>
 				
+					
+
+					
+				
 
 				NOT NULL
 				DEFAULT "current_user"()
@@ -93105,6 +110653,11 @@ END;</pre>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>inbox_item_category_description_check</td>
                 <td>CHECK ((btrim(COALESCE(description, 'xxxDEFAULTxxx'::text)) <> ''::text))</td>
             </tr>
@@ -93207,11 +110760,19 @@ END;</pre>
             <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
+                
                 </td>
             	<td>modified_by</td>
             	<td>name</td>
                 <td><i>
 				
+					
+
+					
+				
 
 				NOT NULL
 				DEFAULT "current_user"()
@@ -93343,6 +110904,11 @@ END;</pre>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>inbox_item_type_description_check</td>
                 <td>CHECK ((btrim(COALESCE(description, 'xxxDEFAULTxxx'::text)) <> ''::text))</td>
             </tr>
@@ -93669,11 +111235,19 @@ END;</pre>
             <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
+                
                 </td>
             	<td>modified_by</td>
             	<td>name</td>
                 <td><i>
 				
+					
+
+					
+				
 
 				NOT NULL
 				DEFAULT "current_user"()
@@ -93829,6 +111403,21 @@ END;</pre>
 
         <!-- Constraint List -->
 		
+        <p> </p>
+		<table width="100%" cellspacing="0" cellpadding="3">
+            <caption>dem.lnk_identity2ext_id Constraints</caption>
+            <tr>
+            	<th>Name</th>
+            	<th>Constraint</th>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+		</table>
+		
 
         <!-- Foreign Key Discovery -->
 		
@@ -93917,234 +111506,265 @@ END;</pre>
             <tr class="tr1">
 				<td>
                 
-                </td>
-            	<td>modified_by</td>
-            	<td>name</td>
-                <td><i>
-				
-
-				NOT NULL
-				DEFAULT "current_user"()
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                  
-                
-                </td>
-            	<td>pk</td>
-            	<td>serial</td>
-                <td><i>
-				
-					PRIMARY KEY
-					
-
-					
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                  
-                  <a href="gnumed-entire_schema.html#dem.table.identity">dem.identity.pk</a>
-                  
-                
-                  
-                
-                </td>
-            	<td>fk_identity</td>
-            	<td>integer</td>
-                <td><i>
-				
-					
-
-					
-				
-					
-
-					
-                       UNIQUE#1
-                    
-				
-
-				NOT NULL
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
                   
-                  <a href="gnumed-entire_schema.html#dem.table.occupation">dem.occupation.id</a>
-                  
-                
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
+                
+                </td>
+            	<td>modified_by</td>
+            	<td>name</td>
+                <td><i>
+				
+					
+
+					
+				
+
+				NOT NULL
+				DEFAULT "current_user"()
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                  
+                
+                </td>
+            	<td>pk</td>
+            	<td>serial</td>
+                <td><i>
+				
+					PRIMARY KEY
+					
+
+					
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.identity">dem.identity.pk</a>
+                  
+                
+                  
+                
+                </td>
+            	<td>fk_identity</td>
+            	<td>integer</td>
+                <td><i>
+				
+					
+
+					
+				
+					
+
+					
+                       UNIQUE#1
+                    
+				
+
+				NOT NULL
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.occupation">dem.occupation.id</a>
+                  
+                
+                  
+                
+                </td>
+            	<td>fk_occupation</td>
+            	<td>integer</td>
+                <td><i>
+				
+					
+
+					
+				
+					
+
+					
+                       UNIQUE#1
+                    
+				
+
+				NOT NULL
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>activities</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				<br><br>describes activities the person is usually
+	 carrying out when working at this job
+				</td>
+			 </tr>
+            
+        </table>
+
+        <!-- Inherits -->
+		
+        <p>Table dem.lnk_job2person Inherits
+        
+            
+           <a href="gnumed-entire_schema.html#audit.table.audit-fields">audit_fields</a>, 
+        
+        </p>
+		
+
+		
+		
+		
+
+        <!-- Constraint List -->
+		
+        <p> </p>
+		<table width="100%" cellspacing="0" cellpadding="3">
+            <caption>dem.lnk_job2person Constraints</caption>
+            <tr>
+            	<th>Name</th>
+            	<th>Constraint</th>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+		</table>
+		
+
+        <!-- Foreign Key Discovery -->
+		
+
+    <!-- Indexes -->
+    
+
+	<!-- View Definition -->
+	
+
+	<!-- List off permissions -->
+	
+
+	<p>
+		<a href="gnumed-entire_schema.html#index">Index</a> -
+		<a href="gnumed-entire_schema.html#dem.schema">Schema dem</a>
+    </p>
+	
+        <hr>
+		<h2>Table:
+			
+			<a href="gnumed-entire_schema.html#dem.schema">dem</a>.<a name="dem.table.lnk-org-unit2comm">lnk_org_unit2comm</a>
+		</h2>
+        
+         <p>Comm channels per org unit.</p>
+        
+
+
+        <table width="100%" cellspacing="0" cellpadding="3">
+                <caption>dem.lnk_org_unit2comm Structure</caption>
+                <tr>
+                <th>F-Key</th>
+                <th>Name</th>
+                <th>Type</th>
+                <th>Description</th>
+                </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_audit</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				NOT NULL
+				DEFAULT nextval('audit.audit_fields_pk_audit_seq'::regclass)
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>row_version</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				NOT NULL
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>modified_when</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				NOT NULL
+				DEFAULT now()
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
                   
                 
                 </td>
-            	<td>fk_occupation</td>
-            	<td>integer</td>
+            	<td>modified_by</td>
+            	<td>name</td>
                 <td><i>
 				
 					
 
 					
 				
-					
-
-					
-                       UNIQUE#1
-                    
-				
-
-				NOT NULL
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>activities</td>
-            	<td>text</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				<br><br>describes activities the person is usually
-	 carrying out when working at this job
-				</td>
-			 </tr>
-            
-        </table>
-
-        <!-- Inherits -->
-		
-        <p>Table dem.lnk_job2person Inherits
-        
-            
-           <a href="gnumed-entire_schema.html#audit.table.audit-fields">audit_fields</a>, 
-        
-        </p>
-		
-
-		
-		
-		
-
-        <!-- Constraint List -->
-		
-
-        <!-- Foreign Key Discovery -->
-		
-
-    <!-- Indexes -->
-    
-
-	<!-- View Definition -->
-	
-
-	<!-- List off permissions -->
-	
-
-	<p>
-		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#dem.schema">Schema dem</a>
-    </p>
-	
-        <hr>
-		<h2>Table:
-			
-			<a href="gnumed-entire_schema.html#dem.schema">dem</a>.<a name="dem.table.lnk-org-unit2comm">lnk_org_unit2comm</a>
-		</h2>
-        
-         <p>Comm channels per org unit.</p>
-        
-
-
-        <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>dem.lnk_org_unit2comm Structure</caption>
-                <tr>
-                <th>F-Key</th>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Description</th>
-                </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>pk_audit</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				NOT NULL
-				DEFAULT nextval('audit.audit_fields_pk_audit_seq'::regclass)
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>row_version</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				NOT NULL
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>modified_when</td>
-            	<td>timestamp with time zone</td>
-                <td><i>
-				
-
-				NOT NULL
-				DEFAULT now()
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>modified_by</td>
-            	<td>name</td>
-                <td><i>
-				
 
 				NOT NULL
 				DEFAULT "current_user"()
@@ -94323,11 +111943,16 @@ END;</pre>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>dem_lnk_unit2comm_sane_comment</td>
                 <td>CHECK ((gm.is_null_or_non_empty_string(comment) IS TRUE))</td>
             </tr>
 			
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>lnk_org_unit2comm_sane_url</td>
                 <td>CHECK ((gm.is_null_or_blank_string(url) IS FALSE))</td>
             </tr>
@@ -94422,11 +112047,19 @@ END;</pre>
             <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
+                
                 </td>
             	<td>modified_by</td>
             	<td>name</td>
                 <td><i>
 				
+					
+
+					
+				
 
 				NOT NULL
 				DEFAULT "current_user"()
@@ -94589,11 +112222,16 @@ END;</pre>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>lnk_org_unit2ext_id_sane_comment</td>
                 <td>CHECK ((gm.is_null_or_non_empty_string(comment) IS TRUE))</td>
             </tr>
 			
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>lnk_org_unit2ext_id_sane_id</td>
                 <td>CHECK ((gm.is_null_or_blank_string(external_id) IS FALSE))</td>
             </tr>
@@ -94703,8 +112341,11 @@ END;</pre>
 	
 	<pre>
 SELECT lnk_person_org_address.id_identity
-, lnk_person_org_address.id_address
-, lnk_person_org_address.id_type 
+,
+    lnk_person_org_address.id_address
+,
+    lnk_person_org_address.id_type
+   
 FROM dem.lnk_person_org_address;</pre>
 	
 
@@ -94786,11 +112427,19 @@ FROM dem.lnk_person_org_address;</pre>
             <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
+                
                 </td>
             	<td>modified_by</td>
             	<td>name</td>
                 <td><i>
 				
+					
+
+					
+				
 
 				NOT NULL
 				DEFAULT "current_user"()
@@ -94947,6 +112596,21 @@ FROM dem.lnk_person_org_address;</pre>
 
         <!-- Constraint List -->
 		
+        <p> </p>
+		<table width="100%" cellspacing="0" cellpadding="3">
+            <caption>dem.lnk_person2relative Constraints</caption>
+            <tr>
+            	<th>Name</th>
+            	<th>Constraint</th>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+		</table>
+		
 
         <!-- Foreign Key Discovery -->
 		
@@ -95354,11 +113018,19 @@ FROM dem.lnk_person_org_address;</pre>
             <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
+                
                 </td>
             	<td>modified_by</td>
             	<td>name</td>
                 <td><i>
 				
+					
+
+					
+				
 
 				NOT NULL
 				DEFAULT "current_user"()
@@ -95595,21 +113267,26 @@ FROM dem.lnk_person_org_address;</pre>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>dem_inbox_sane_expiry_date</td>
                 <td>CHECK ((((expiry_date IS NULL) OR (due_date IS NULL)) OR (expiry_date > due_date)))</td>
             </tr>
 			
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>message_must_have_recipient</td>
                 <td>CHECK ((((fk_staff IS NULL) AND (fk_patient IS NULL)) IS FALSE))</td>
             </tr>
 			
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>provider_inbox_comment_check</td>
                 <td>CHECK ((btrim(COALESCE(comment, 'xxxDEFAULTxxx'::text)) <> ''::text))</td>
             </tr>
 			
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>provider_inbox_importance_check</td>
                 <td>CHECK ((((importance = (-1)) OR (importance = 0)) OR (importance = 1)))</td>
             </tr>
@@ -96053,11 +113730,19 @@ FROM dem.lnk_person_org_address;</pre>
             <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
+                
                 </td>
             	<td>modified_by</td>
             	<td>name</td>
                 <td><i>
 				
+					
+
+					
+				
 
 				NOT NULL
 				DEFAULT "current_user"()
@@ -96132,6 +113817,11 @@ FROM dem.lnk_person_org_address;</pre>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>occupation_name_check</td>
                 <td>CHECK ((btrim(name) <> ''::text))</td>
             </tr>
@@ -96233,11 +113923,368 @@ FROM dem.lnk_person_org_address;</pre>
             <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
+                
+                </td>
+            	<td>modified_by</td>
+            	<td>name</td>
+                <td><i>
+				
+					
+
+					
+				
+
+				NOT NULL
+				DEFAULT "current_user"()
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                  
+                
+                </td>
+            	<td>pk</td>
+            	<td>serial</td>
+                <td><i>
+				
+					PRIMARY KEY
+					
+
+					
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                  
+                
+                </td>
+            	<td>description</td>
+            	<td>text</td>
+                <td><i>
+				
+					
+
+					
+                       UNIQUE
+                    
+				
+
+				
+				
+				</i>
+				<br><br>High-level, conceptual description (= name) of organization, such as "University of Manchester".
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.org-category">dem.org_category.pk</a>
+                  
+                
+                </td>
+            	<td>fk_category</td>
+            	<td>integer</td>
+                <td><i>
+				
+					
+
+					
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                  
+                  <a href="gnumed-entire_schema.html#ref.table.data-source">ref.data_source.pk</a>
+                  
+                
+                </td>
+            	<td>fk_data_source</td>
+            	<td>integer</td>
+                <td><i>
+				
+					
+
+					
+				
+
+				
+				
+				</i>
+				<br><br>Source of the organization data.
+				</td>
+			 </tr>
+            
+        </table>
+
+        <!-- Inherits -->
+		
+        <p>Table dem.org Inherits
+        
+            
+           <a href="gnumed-entire_schema.html#audit.table.audit-fields">audit_fields</a>, 
+        
+        </p>
+		
+
+		
+		
+		
+
+        <!-- Constraint List -->
+		
+        <p> </p>
+		<table width="100%" cellspacing="0" cellpadding="3">
+            <caption>dem.org Constraints</caption>
+            <tr>
+            	<th>Name</th>
+            	<th>Constraint</th>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>org_sane_description</td>
+                <td>CHECK ((gm.is_null_or_blank_string(description) IS FALSE))</td>
+            </tr>
+			
+		</table>
+		
+
+        <!-- Foreign Key Discovery -->
+		
+			<p>Tables referencing this one via Foreign Key Constraints:</p>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#dem.table.org-unit">dem.org_unit</a></li>
+			</ul>
+		
+		
+
+    <!-- Indexes -->
+    
+       idx_dem_org_fk_category fk_category
+    
+       idx_trgm_dem_org_desc description pgtrgm.gin_trgm_ops
+    
+
+	<!-- View Definition -->
+	
+
+	<!-- List off permissions -->
+	
+
+	<p>
+		<a href="gnumed-entire_schema.html#index">Index</a> -
+		<a href="gnumed-entire_schema.html#dem.schema">Schema dem</a>
+    </p>
+	
+        <hr>
+		<h2>Table:
+			
+			<a href="gnumed-entire_schema.html#dem.schema">dem</a>.<a name="dem.table.org-category">org_category</a>
+		</h2>
+        
+
+
+        <table width="100%" cellspacing="0" cellpadding="3">
+                <caption>dem.org_category Structure</caption>
+                <tr>
+                <th>F-Key</th>
+                <th>Name</th>
+                <th>Type</th>
+                <th>Description</th>
+                </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                  
+                
+                </td>
+            	<td>pk</td>
+            	<td>serial</td>
+                <td><i>
+				
+					PRIMARY KEY
+					
+
+					
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>description</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				NOT NULL
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+        </table>
+
+        <!-- Inherits -->
+		
+
+		
+		
+		
+
+        <!-- Constraint List -->
+		
+
+        <!-- Foreign Key Discovery -->
+		
+			<p>Tables referencing this one via Foreign Key Constraints:</p>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#dem.table.org">dem.org</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#dem.table.org-unit">dem.org_unit</a></li>
+			</ul>
+		
+		
+
+    <!-- Indexes -->
+    
+
+	<!-- View Definition -->
+	
+
+	<!-- List off permissions -->
+	
+
+	<p>
+		<a href="gnumed-entire_schema.html#index">Index</a> -
+		<a href="gnumed-entire_schema.html#dem.schema">Schema dem</a>
+    </p>
+	
+        <hr>
+		<h2>Table:
+			
+			<a href="gnumed-entire_schema.html#dem.schema">dem</a>.<a name="dem.table.org-unit">org_unit</a>
+		</h2>
+        
+         <p>Actual branches/departments/offices/... of organizations.</p>
+        
+
+
+        <table width="100%" cellspacing="0" cellpadding="3">
+                <caption>dem.org_unit Structure</caption>
+                <tr>
+                <th>F-Key</th>
+                <th>Name</th>
+                <th>Type</th>
+                <th>Description</th>
+                </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_audit</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				NOT NULL
+				DEFAULT nextval('audit.audit_fields_pk_audit_seq'::regclass)
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>row_version</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				NOT NULL
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>modified_when</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				NOT NULL
+				DEFAULT now()
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
+                
                 </td>
             	<td>modified_by</td>
             	<td>name</td>
                 <td><i>
 				
+					
+
+					
+				
 
 				NOT NULL
 				DEFAULT "current_user"()
@@ -96282,14 +114329,14 @@ FROM dem.lnk_person_org_address;</pre>
 					
 
 					
-                       UNIQUE
+                       UNIQUE#1
                     
 				
 
 				
 				
 				</i>
-				<br><br>High-level, conceptual description (= name) of organization, such as "University of Manchester".
+				<br><br>Description (= name) of branch of organization, such as "Elms Street office of Jim Busser Praxis".
 				</td>
 			 </tr>
             
@@ -96297,11 +114344,13 @@ FROM dem.lnk_person_org_address;</pre>
 				<td>
                 
                   
-                  <a href="gnumed-entire_schema.html#dem.table.org-category">dem.org_category.pk</a>
+                  <a href="gnumed-entire_schema.html#dem.table.org">dem.org.pk</a>
+                  
+                
                   
                 
                 </td>
-            	<td>fk_category</td>
+            	<td>fk_org</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -96309,8 +114358,14 @@ FROM dem.lnk_person_org_address;</pre>
 
 					
 				
+					
 
+					
+                       UNIQUE#1
+                    
 				
+
+				NOT NULL
 				
 				</i>
 				
@@ -96321,11 +114376,11 @@ FROM dem.lnk_person_org_address;</pre>
 				<td>
                 
                   
-                  <a href="gnumed-entire_schema.html#ref.table.data-source">ref.data_source.pk</a>
+                  <a href="gnumed-entire_schema.html#dem.table.address">dem.address.id</a>
                   
                 
                 </td>
-            	<td>fk_data_source</td>
+            	<td>fk_address</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -96337,7 +114392,31 @@ FROM dem.lnk_person_org_address;</pre>
 				
 				
 				</i>
-				<br><br>Source of the organization data.
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.org-category">dem.org_category.pk</a>
+                  
+                
+                </td>
+            	<td>fk_category</td>
+            	<td>integer</td>
+                <td><i>
+				
+					
+
+					
+				
+
+				
+				
+				</i>
+				
 				</td>
 			 </tr>
             
@@ -96345,7 +114424,7 @@ FROM dem.lnk_person_org_address;</pre>
 
         <!-- Inherits -->
 		
-        <p>Table dem.org Inherits
+        <p>Table dem.org_unit Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-fields">audit_fields</a>, 
@@ -96361,14 +114440,19 @@ FROM dem.lnk_person_org_address;</pre>
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>dem.org Constraints</caption>
+            <caption>dem.org_unit Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
-				<td>org_sane_description</td>
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>org_unit_sane_description</td>
                 <td>CHECK ((gm.is_null_or_blank_string(description) IS FALSE))</td>
             </tr>
 			
@@ -96380,16 +114464,46 @@ FROM dem.lnk_person_org_address;</pre>
 			<p>Tables referencing this one via Foreign Key Constraints:</p>
 		
 			<ul>
-				<li><a href="gnumed-entire_schema.html#dem.table.org-unit">dem.org_unit</a></li>
+				<li><a href="gnumed-entire_schema.html#blobs.table.doc-med">blobs.doc_med</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.encounter">clin.encounter</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.external-care">clin.external_care</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.hospital-stay">clin.hospital_stay</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.procedure">clin.procedure</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.test-org">clin.test_org</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#dem.table.lnk-org-unit2comm">dem.lnk_org_unit2comm</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#dem.table.lnk-org-unit2ext-id">dem.lnk_org_unit2ext_id</a></li>
 			</ul>
 		
 		
 
     <!-- Indexes -->
     
-       idx_dem_org_fk_category fk_category
+       idx_dem_org_unit_fk_address fk_address
     
-       idx_trgm_dem_org_desc description gin_trgm_ops
+       idx_dem_org_unit_fk_category fk_category
+    
+       idx_trgm_dem_org_unit_desc description pgtrgm.gin_trgm_ops
     
 
 	<!-- View Definition -->
@@ -96406,13 +114520,15 @@ FROM dem.lnk_person_org_address;</pre>
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#dem.schema">dem</a>.<a name="dem.table.org-category">org_category</a>
+			<a href="gnumed-entire_schema.html#dem.schema">dem</a>.<a name="dem.table.praxis-branch">praxis_branch</a>
 		</h2>
         
+         <p>Defines one branch of a praxis (which itself is a dem.org)</p>
+        
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>dem.org_category Structure</caption>
+                <caption>dem.praxis_branch Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -96423,6 +114539,78 @@ FROM dem.lnk_person_org_address;</pre>
             <tr class="tr0">
 				<td>
                 
+                </td>
+            	<td>pk_audit</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				NOT NULL
+				DEFAULT nextval('audit.audit_fields_pk_audit_seq'::regclass)
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>row_version</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				NOT NULL
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>modified_when</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				NOT NULL
+				DEFAULT now()
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
+                
+                </td>
+            	<td>modified_by</td>
+            	<td>name</td>
+                <td><i>
+				
+					
+
+					
+				
+
+				NOT NULL
+				DEFAULT "current_user"()
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
                   
                 
                 </td>
@@ -96446,11 +114634,19 @@ FROM dem.lnk_person_org_address;</pre>
             <tr class="tr1">
 				<td>
                 
+                  
+                
                 </td>
-            	<td>description</td>
-            	<td>text</td>
+            	<td>fk_org_unit</td>
+            	<td>integer</td>
                 <td><i>
 				
+					
+
+					
+                       UNIQUE
+                    
+				
 
 				NOT NULL
 				
@@ -96463,6 +114659,13 @@ FROM dem.lnk_person_org_address;</pre>
 
         <!-- Inherits -->
 		
+        <p>Table dem.praxis_branch Inherits
+        
+            
+           <a href="gnumed-entire_schema.html#audit.table.audit-fields">audit_fields</a>, 
+        
+        </p>
+		
 
 		
 		
@@ -96470,20 +114673,24 @@ FROM dem.lnk_person_org_address;</pre>
 
         <!-- Constraint List -->
 		
+        <p> </p>
+		<table width="100%" cellspacing="0" cellpadding="3">
+            <caption>dem.praxis_branch Constraints</caption>
+            <tr>
+            	<th>Name</th>
+            	<th>Constraint</th>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+		</table>
+		
 
         <!-- Foreign Key Discovery -->
 		
-			<p>Tables referencing this one via Foreign Key Constraints:</p>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#dem.table.org">dem.org</a></li>
-			</ul>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#dem.table.org-unit">dem.org_unit</a></li>
-			</ul>
-		
-		
 
     <!-- Indexes -->
     
@@ -96502,15 +114709,17 @@ FROM dem.lnk_person_org_address;</pre>
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#dem.schema">dem</a>.<a name="dem.table.org-unit">org_unit</a>
+			<a href="gnumed-entire_schema.html#dem.schema">dem</a>.<a name="dem.table.region">region</a>
 		</h2>
         
-         <p>Actual branches/departments/offices/... of organizations.</p>
+         <p>region codes (country specific);
+	 Richard agreed we should require pre-existence,
+	 allow user to mail details for adding a state to developers</p>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>dem.org_unit Structure</caption>
+                <caption>dem.region Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -96569,11 +114778,19 @@ FROM dem.lnk_person_org_address;</pre>
             <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
+                
                 </td>
             	<td>modified_by</td>
             	<td>name</td>
                 <td><i>
 				
+					
+
+					
+				
 
 				NOT NULL
 				DEFAULT "current_user"()
@@ -96611,7 +114828,7 @@ FROM dem.lnk_person_org_address;</pre>
                   
                 
                 </td>
-            	<td>description</td>
+            	<td>code</td>
             	<td>text</td>
                 <td><i>
 				
@@ -96622,10 +114839,10 @@ FROM dem.lnk_person_org_address;</pre>
                     
 				
 
-				
+				NOT NULL
 				
 				</i>
-				<br><br>Description (= name) of branch of organization, such as "Elms Street office of Jim Busser Praxis".
+				<br><br>region code
 				</td>
 			 </tr>
             
@@ -96633,76 +114850,44 @@ FROM dem.lnk_person_org_address;</pre>
 				<td>
                 
                   
-                  <a href="gnumed-entire_schema.html#dem.table.org">dem.org.pk</a>
-                  
                 
                   
+                  <a href="gnumed-entire_schema.html#dem.table.country">dem.country.code</a>
+                  
                 
                 </td>
-            	<td>fk_org</td>
-            	<td>integer</td>
+            	<td>country</td>
+            	<td>character(2)</td>
                 <td><i>
 				
 					
 
 					
-				
-					
-
-					
                        UNIQUE#1
                     
 				
-
-				NOT NULL
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                  
-                  <a href="gnumed-entire_schema.html#dem.table.address">dem.address.id</a>
-                  
-                
-                </td>
-            	<td>fk_address</td>
-            	<td>integer</td>
-                <td><i>
-				
 					
 
 					
 				
 
-				
+				NOT NULL
 				
 				</i>
-				
+				<br><br>2 character ISO 3166-1 country code
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
-                  
-                  <a href="gnumed-entire_schema.html#dem.table.org-category">dem.org_category.pk</a>
-                  
-                
                 </td>
-            	<td>fk_category</td>
-            	<td>integer</td>
+            	<td>name</td>
+            	<td>text</td>
                 <td><i>
 				
-					
 
-					
-				
-
-				
+				NOT NULL
 				
 				</i>
 				
@@ -96713,7 +114898,7 @@ FROM dem.lnk_person_org_address;</pre>
 
         <!-- Inherits -->
 		
-        <p>Table dem.org_unit Inherits
+        <p>Table dem.region Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-fields">audit_fields</a>, 
@@ -96729,15 +114914,21 @@ FROM dem.lnk_person_org_address;</pre>
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>dem.org_unit Constraints</caption>
+            <caption>dem.region Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
-				<td>org_unit_sane_description</td>
-                <td>CHECK ((gm.is_null_or_blank_string(description) IS FALSE))</td>
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>no_linebreaks</td>
+                <td>CHECK ((((("position"(((COALESCE(code, ''::text) || (COALESCE(country, ''::bpchar))::text) || COALESCE(name, ''::text)), '
'::text) = 0) AND ("position"(((COALESCE(code, ''::text) || (COALESCE(country, ''::bpchar))::text) || COALESCE(name, ''::text)), '
+'::text) = 0)) AND ("position"(((COALESCE(code, ''::text) || (COALESCE(country, ''::bpchar))::text) || COALESCE(name, ''::text)), '
'::text) = 0)) AND ("position"(((COALESCE(code, ''::text) || (COALESCE(country, ''::bpchar))::text) || COALESCE(name, ''::text)), '
'::text) = 0)))</td>
             </tr>
 			
 		</table>
@@ -96748,42 +114939,16 @@ FROM dem.lnk_person_org_address;</pre>
 			<p>Tables referencing this one via Foreign Key Constraints:</p>
 		
 			<ul>
-				<li><a href="gnumed-entire_schema.html#clin.table.encounter">clin.encounter</a></li>
-			</ul>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#clin.table.external-care">clin.external_care</a></li>
-			</ul>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#clin.table.hospital-stay">clin.hospital_stay</a></li>
-			</ul>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#clin.table.procedure">clin.procedure</a></li>
-			</ul>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#clin.table.test-org">clin.test_org</a></li>
-			</ul>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#dem.table.lnk-org-unit2comm">dem.lnk_org_unit2comm</a></li>
-			</ul>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#dem.table.lnk-org-unit2ext-id">dem.lnk_org_unit2ext_id</a></li>
+				<li><a href="gnumed-entire_schema.html#dem.table.urb">dem.urb</a></li>
 			</ul>
 		
 		
 
     <!-- Indexes -->
     
-       idx_dem_org_unit_fk_address fk_address
-    
-       idx_dem_org_unit_fk_category fk_category
+       idx_dem_state_country_code country
     
-       idx_trgm_dem_org_unit_desc description gin_trgm_ops
+       idx_state_names name
     
 
 	<!-- View Definition -->
@@ -96800,15 +114965,15 @@ FROM dem.lnk_person_org_address;</pre>
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#dem.schema">dem</a>.<a name="dem.table.praxis-branch">praxis_branch</a>
+			<a href="gnumed-entire_schema.html#dem.schema">dem</a>.<a name="dem.table.relation-types">relation_types</a>
 		</h2>
         
-         <p>Defines one branch of a praxis (which itself is a dem.org)</p>
+         <p>types of biological/social relationships between identities</p>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>dem.praxis_branch Structure</caption>
+                <caption>dem.relation_types Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -96867,11 +115032,19 @@ FROM dem.lnk_person_org_address;</pre>
             <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
+                
                 </td>
             	<td>modified_by</td>
             	<td>name</td>
                 <td><i>
 				
+					
+
+					
+				
 
 				NOT NULL
 				DEFAULT "current_user"()
@@ -96886,7 +115059,7 @@ FROM dem.lnk_person_org_address;</pre>
                   
                 
                 </td>
-            	<td>pk</td>
+            	<td>id</td>
             	<td>serial</td>
                 <td><i>
 				
@@ -96907,23 +115080,72 @@ FROM dem.lnk_person_org_address;</pre>
 				<td>
                 
                   
+                  <a href="gnumed-entire_schema.html#dem.table.relation-types">dem.relation_types.id</a>
+                  
                 
                 </td>
-            	<td>fk_org_unit</td>
+            	<td>inverse</td>
             	<td>integer</td>
                 <td><i>
 				
 					
 
 					
-                       UNIQUE
-                    
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>biological</td>
+            	<td>boolean</td>
+                <td><i>
 				
 
 				NOT NULL
 				
 				</i>
+				<br><br>true if relationship is biological (proven or
+	 reasonable assumption), else false
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>biol_verified</td>
+            	<td>boolean</td>
+                <td><i>
+				
+
+				
+				DEFAULT false
+				</i>
+				<br><br>ONLY true if there is genetic proof for this relationship
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>description</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
 				
+				</i>
+				<br><br>plain text description of relationship
 				</td>
 			 </tr>
             
@@ -96931,7 +115153,7 @@ FROM dem.lnk_person_org_address;</pre>
 
         <!-- Inherits -->
 		
-        <p>Table dem.praxis_branch Inherits
+        <p>Table dem.relation_types Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-fields">audit_fields</a>, 
@@ -96945,9 +115167,35 @@ FROM dem.lnk_person_org_address;</pre>
 
         <!-- Constraint List -->
 		
+        <p> </p>
+		<table width="100%" cellspacing="0" cellpadding="3">
+            <caption>dem.relation_types Constraints</caption>
+            <tr>
+            	<th>Name</th>
+            	<th>Constraint</th>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+		</table>
+		
 
         <!-- Foreign Key Discovery -->
 		
+			<p>Tables referencing this one via Foreign Key Constraints:</p>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#dem.table.lnk-person2relative">dem.lnk_person2relative</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#dem.table.relation-types">dem.relation_types</a></li>
+			</ul>
+		
+		
 
     <!-- Indexes -->
     
@@ -96966,15 +115214,16 @@ FROM dem.lnk_person_org_address;</pre>
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#dem.schema">dem</a>.<a name="dem.table.relation-types">relation_types</a>
+			<a href="gnumed-entire_schema.html#dem.schema">dem</a>.<a name="dem.table.staff">staff</a>
 		</h2>
         
-         <p>types of biological/social relationships between identities</p>
+         <p>one-to-one mapping of database user accounts
+	 (db_user) to staff identities (fk_identity)</p>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>dem.relation_types Structure</caption>
+                <caption>dem.staff Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -97052,7 +115301,7 @@ FROM dem.lnk_person_org_address;</pre>
                   
                 
                 </td>
-            	<td>id</td>
+            	<td>pk</td>
             	<td>serial</td>
                 <td><i>
 				
@@ -97073,11 +115322,11 @@ FROM dem.lnk_person_org_address;</pre>
 				<td>
                 
                   
-                  <a href="gnumed-entire_schema.html#dem.table.relation-types">dem.relation_types.id</a>
+                  <a href="gnumed-entire_schema.html#dem.table.identity">dem.identity.pk</a>
                   
                 
                 </td>
-            	<td>inverse</td>
+            	<td>fk_identity</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -97086,7 +115335,7 @@ FROM dem.lnk_person_org_address;</pre>
 					
 				
 
-				
+				NOT NULL
 				
 				</i>
 				
@@ -97096,33 +115345,50 @@ FROM dem.lnk_person_org_address;</pre>
             <tr class="tr0">
 				<td>
                 
+                  
+                
                 </td>
-            	<td>biological</td>
-            	<td>boolean</td>
+            	<td>db_user</td>
+            	<td>name</td>
                 <td><i>
 				
+					
 
-				NOT NULL
+					
+                       UNIQUE
+                    
 				
+
+				NOT NULL
+				DEFAULT "current_user"()
 				</i>
-				<br><br>true if relationship is biological (proven or
-	 reasonable assumption), else false
+				
 				</td>
 			 </tr>
             
             <tr class="tr1">
 				<td>
                 
+                  
+                
                 </td>
-            	<td>biol_verified</td>
-            	<td>boolean</td>
+            	<td>short_alias</td>
+            	<td>text</td>
                 <td><i>
 				
+					
 
+					
+                       UNIQUE
+                    
+				
+
+				NOT NULL
 				
-				DEFAULT false
 				</i>
-				<br><br>ONLY true if there is genetic proof for this relationship
+				<br><br>a short signature unique to this staff member
+	 to be used in the GUI, actually this is somewhat
+	 redundant with ext_person_id...
 				</td>
 			 </tr>
             
@@ -97130,7 +115396,7 @@ FROM dem.lnk_person_org_address;</pre>
 				<td>
                 
                 </td>
-            	<td>description</td>
+            	<td>comment</td>
             	<td>text</td>
                 <td><i>
 				
@@ -97138,7 +115404,23 @@ FROM dem.lnk_person_org_address;</pre>
 				
 				
 				</i>
-				<br><br>plain text description of relationship
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>is_active</td>
+            	<td>boolean</td>
+                <td><i>
+				
+
+				NOT NULL
+				DEFAULT true
+				</i>
+				
 				</td>
 			 </tr>
             
@@ -97146,7 +115428,7 @@ FROM dem.lnk_person_org_address;</pre>
 
         <!-- Inherits -->
 		
-        <p>Table dem.relation_types Inherits
+        <p>Table dem.staff Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-fields">audit_fields</a>, 
@@ -97160,19 +115442,390 @@ FROM dem.lnk_person_org_address;</pre>
 
         <!-- Constraint List -->
 		
+        <p> </p>
+		<table width="100%" cellspacing="0" cellpadding="3">
+            <caption>dem.staff Constraints</caption>
+            <tr>
+            	<th>Name</th>
+            	<th>Constraint</th>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+		</table>
+		
 
         <!-- Foreign Key Discovery -->
 		
 			<p>Tables referencing this one via Foreign Key Constraints:</p>
 		
 			<ul>
+				<li><a href="gnumed-entire_schema.html#au.table.referral">au.referral</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#bill.table.bill">bill.bill</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#bill.table.bill-item">bill.bill_item</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#blobs.table.doc-desc">blobs.doc_desc</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#blobs.table.doc-med">blobs.doc_med</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#blobs.table.doc-obj">blobs.doc_obj</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#cfg.table.report-query">cfg.report_query</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.allergy">clin.allergy</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.allergy-state">clin.allergy_state</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.clin-aux-note">clin.clin_aux_note</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.clin-diag">clin.clin_diag</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.clin-item-type">clin.clin_item_type</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.clin-narrative">clin.clin_narrative</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.encounter">clin.encounter</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.episode">clin.episode</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.external-care">clin.external_care</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.family-history">clin.family_history</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.fhx-relation-type">clin.fhx_relation_type</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.form-data">clin.form_data</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.form-instances">clin.form_instances</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.health-issue">clin.health_issue</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.hospital-stay">clin.hospital_stay</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.incoming-data-unmatchable">clin.incoming_data_unmatchable</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.incoming-data-unmatched">clin.incoming_data_unmatched</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.lab-request">clin.lab_request</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.lnk-code2aoe">clin.lnk_code2aoe</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.lnk-code2episode">clin.lnk_code2episode</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.lnk-code2fhx">clin.lnk_code2fhx</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.lnk-code2h-issue">clin.lnk_code2h_issue</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.lnk-code2narrative">clin.lnk_code2narrative</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.lnk-code2procedure">clin.lnk_code2procedure</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.lnk-code2rfe">clin.lnk_code2rfe</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.lnk-code2tst-pnl">clin.lnk_code2tst_pnl</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.lnk-constraint2vacc-course">clin.lnk_constraint2vacc_course</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.lnk-pat2vaccination-course">clin.lnk_pat2vaccination_course</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.lnk-tst2norm">clin.lnk_tst2norm</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.lnk-type2item">clin.lnk_type2item</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.lnk-vaccination-course2schedule">clin.lnk_vaccination_course2schedule</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.lnk-vaccine2inds">clin.lnk_vaccine2inds</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.patient">clin.patient</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.procedure">clin.procedure</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.review-root">clin.review_root</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.reviewed-test-results">clin.reviewed_test_results</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.substance-intake">clin.substance_intake</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.suppressed-hint">clin.suppressed_hint</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.test-org">clin.test_org</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.test-panel">clin.test_panel</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.test-result">clin.test_result</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.test-type">clin.test_type</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.vacc-indication">clin.vacc_indication</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.vacc-route">clin.vacc_route</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.vaccination">clin.vaccination</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.vaccination-course">clin.vaccination_course</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.vaccination-course-constraint">clin.vaccination_course_constraint</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.vaccination-definition">clin.vaccination_definition</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.vaccination-schedule">clin.vaccination_schedule</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.vaccine">clin.vaccine</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.vaccine-batches">clin.vaccine_batches</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#clin.table.waiting-list">clin.waiting_list</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#de-de.table.beh-fall-typ">de_de.beh_fall_typ</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#de-de.table.lab-test-gnr">de_de.lab_test_gnr</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#de-de.table.prax-geb-paid">de_de.prax_geb_paid</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#dem.table.address">dem.address</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#dem.table.gender-label">dem.gender_label</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#dem.table.identity">dem.identity</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#dem.table.identity-tag">dem.identity_tag</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#dem.table.inbox-item-category">dem.inbox_item_category</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#dem.table.inbox-item-type">dem.inbox_item_type</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#dem.table.lnk-identity2ext-id">dem.lnk_identity2ext_id</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#dem.table.lnk-job2person">dem.lnk_job2person</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#dem.table.lnk-org-unit2comm">dem.lnk_org_unit2comm</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#dem.table.lnk-org-unit2ext-id">dem.lnk_org_unit2ext_id</a></li>
+			</ul>
+		
+			<ul>
 				<li><a href="gnumed-entire_schema.html#dem.table.lnk-person2relative">dem.lnk_person2relative</a></li>
 			</ul>
 		
 			<ul>
+				<li><a href="gnumed-entire_schema.html#dem.table.message-inbox">dem.message_inbox</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#dem.table.occupation">dem.occupation</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#dem.table.org">dem.org</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#dem.table.org-unit">dem.org_unit</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#dem.table.praxis-branch">dem.praxis_branch</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#dem.table.region">dem.region</a></li>
+			</ul>
+		
+			<ul>
 				<li><a href="gnumed-entire_schema.html#dem.table.relation-types">dem.relation_types</a></li>
 			</ul>
 		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#dem.table.street">dem.street</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#dem.table.urb">dem.urb</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#gm.table.access-log">gm.access_log</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#ref.table.auto-hint">ref.auto_hint</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#ref.table.branded-drug">ref.branded_drug</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#ref.table.consumable-substance">ref.consumable_substance</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#ref.table.data-source">ref.data_source</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#ref.table.keyword-expansion">ref.keyword_expansion</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#ref.table.lnk-substance2brand">ref.lnk_substance2brand</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#ref.table.paperwork-templates">ref.paperwork_templates</a></li>
+			</ul>
+		
+			<ul>
+				<li><a href="gnumed-entire_schema.html#ref.table.tag-image">ref.tag_image</a></li>
+			</ul>
+		
 		
 
     <!-- Indexes -->
@@ -97192,16 +115845,15 @@ FROM dem.lnk_person_org_address;</pre>
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#dem.schema">dem</a>.<a name="dem.table.staff">staff</a>
+			<a href="gnumed-entire_schema.html#dem.schema">dem</a>.<a name="dem.table.street">street</a>
 		</h2>
         
-         <p>one-to-one mapping of database user accounts
-	 (db_user) to staff identities (fk_identity)</p>
+         <p>street names, specific for distinct "urbs"</p>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>dem.staff Structure</caption>
+                <caption>dem.street Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -97260,11 +115912,19 @@ FROM dem.lnk_person_org_address;</pre>
             <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
+                
                 </td>
             	<td>modified_by</td>
             	<td>name</td>
                 <td><i>
 				
+					
+
+					
+				
 
 				NOT NULL
 				DEFAULT "current_user"()
@@ -97279,7 +115939,7 @@ FROM dem.lnk_person_org_address;</pre>
                   
                 
                 </td>
-            	<td>pk</td>
+            	<td>id</td>
             	<td>serial</td>
                 <td><i>
 				
@@ -97300,11 +115960,13 @@ FROM dem.lnk_person_org_address;</pre>
 				<td>
                 
                   
-                  <a href="gnumed-entire_schema.html#dem.table.identity">dem.identity.pk</a>
+                  <a href="gnumed-entire_schema.html#dem.table.urb">dem.urb.id</a>
+                  
+                
                   
                 
                 </td>
-            	<td>fk_identity</td>
+            	<td>id_urb</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -97312,11 +115974,17 @@ FROM dem.lnk_person_org_address;</pre>
 
 					
 				
+					
+
+					
+                       UNIQUE#1
+                    
+				
 
 				NOT NULL
 				
 				</i>
-				
+				<br><br>reference to information postcode, city, country and region
 				</td>
 			 </tr>
             
@@ -97326,21 +115994,21 @@ FROM dem.lnk_person_org_address;</pre>
                   
                 
                 </td>
-            	<td>db_user</td>
             	<td>name</td>
+            	<td>text</td>
                 <td><i>
 				
 					
 
 					
-                       UNIQUE
+                       UNIQUE#1
                     
 				
 
 				NOT NULL
-				DEFAULT "current_user"()
-				</i>
 				
+				</i>
+				<br><br>name of this street
 				</td>
 			 </tr>
             
@@ -97350,23 +116018,21 @@ FROM dem.lnk_person_org_address;</pre>
                   
                 
                 </td>
-            	<td>short_alias</td>
+            	<td>postcode</td>
             	<td>text</td>
                 <td><i>
 				
 					
 
 					
-                       UNIQUE
+                       UNIQUE#1
                     
 				
 
-				NOT NULL
+				
 				
 				</i>
-				<br><br>a short signature unique to this staff member
-	 to be used in the GUI, actually this is somewhat
-	 redundant with ext_person_id...
+				<br><br>postcode for systems (such as UK Royal Mail) which specify the street
 				</td>
 			 </tr>
             
@@ -97374,7 +116040,7 @@ FROM dem.lnk_person_org_address;</pre>
 				<td>
                 
                 </td>
-            	<td>comment</td>
+            	<td>suburb</td>
             	<td>text</td>
                 <td><i>
 				
@@ -97382,7 +116048,7 @@ FROM dem.lnk_person_org_address;</pre>
 				
 				
 				</i>
-				
+				<br><br>the suburb this street is in (if any)
 				</td>
 			 </tr>
             
@@ -97390,15 +116056,15 @@ FROM dem.lnk_person_org_address;</pre>
 				<td>
                 
                 </td>
-            	<td>is_active</td>
-            	<td>boolean</td>
+            	<td>lat_lon</td>
+            	<td>point</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT true
-				</i>
 				
+				
+				</i>
+				<br><br>the approximate location of the street, as lat/long co-ordinates
 				</td>
 			 </tr>
             
@@ -97406,7 +116072,7 @@ FROM dem.lnk_person_org_address;</pre>
 
         <!-- Inherits -->
 		
-        <p>Table dem.staff Inherits
+        <p>Table dem.street Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-fields">audit_fields</a>, 
@@ -97420,55 +116086,46 @@ FROM dem.lnk_person_org_address;</pre>
 
         <!-- Constraint List -->
 		
+        <p> </p>
+		<table width="100%" cellspacing="0" cellpadding="3">
+            <caption>dem.street Constraints</caption>
+            <tr>
+            	<th>Name</th>
+            	<th>Constraint</th>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
+				<td>no_linebreaks</td>
+                <td>CHECK ((((("position"(((COALESCE(postcode, ''::text) || COALESCE(suburb, ''::text)) || COALESCE(name, ''::text)), '
'::text) = 0) AND ("position"(((COALESCE(postcode, ''::text) || COALESCE(suburb, ''::text)) || COALESCE(name, ''::text)), '
+'::text) = 0)) AND ("position"(((COALESCE(postcode, ''::text) || COALESCE(suburb, ''::text)) || COALESCE(name, ''::text)), '
'::text) = 0)) AND ("position"(((COALESCE(postcode, ''::text) || COALESCE(suburb, ''::text)) || COALESCE(name, ''::text)), '
'::text) = 0)))</td>
+            </tr>
+			
+		</table>
+		
 
         <!-- Foreign Key Discovery -->
 		
 			<p>Tables referencing this one via Foreign Key Constraints:</p>
 		
 			<ul>
-				<li><a href="gnumed-entire_schema.html#bill.table.bill-item">bill.bill_item</a></li>
-			</ul>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#blobs.table.doc-obj">blobs.doc_obj</a></li>
-			</ul>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#clin.table.incoming-data-unmatched">clin.incoming_data_unmatched</a></li>
-			</ul>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#clin.table.review-root">clin.review_root</a></li>
-			</ul>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#clin.table.reviewed-test-results">clin.reviewed_test_results</a></li>
-			</ul>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#clin.table.test-result">clin.test_result</a></li>
-			</ul>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#clin.table.vaccination">clin.vaccination</a></li>
-			</ul>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#dem.table.identity">dem.identity</a></li>
-			</ul>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#dem.table.message-inbox">dem.message_inbox</a></li>
-			</ul>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#ref.table.keyword-expansion">ref.keyword_expansion</a></li>
+				<li><a href="gnumed-entire_schema.html#dem.table.address">dem.address</a></li>
 			</ul>
 		
 		
 
     <!-- Indexes -->
     
+       idx_dem_street_id_urb id_urb
+    
+       idx_street_names name
+    
+       idx_street_zips postcode
+    
 
 	<!-- View Definition -->
 	
@@ -97484,17 +116141,15 @@ FROM dem.lnk_person_org_address;</pre>
         <hr>
 		<h2>Table:
 			
-			<a href="gnumed-entire_schema.html#dem.schema">dem</a>.<a name="dem.table.state">state</a>
+			<a href="gnumed-entire_schema.html#dem.schema">dem</a>.<a name="dem.table.urb">urb</a>
 		</h2>
         
-         <p>state codes (country specific);
-	 Richard agreed we should require pre-existence,
-	 allow user to mail details for adding a state to developers</p>
+         <p>cities, towns, dwellings ..., eg. "official" places of residence</p>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>dem.state Structure</caption>
+                <caption>dem.urb Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -97553,11 +116208,19 @@ FROM dem.lnk_person_org_address;</pre>
             <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
+                
                 </td>
             	<td>modified_by</td>
             	<td>name</td>
                 <td><i>
 				
+					
+
+					
+				
 
 				NOT NULL
 				DEFAULT "current_user"()
@@ -97593,15 +116256,23 @@ FROM dem.lnk_person_org_address;</pre>
 				<td>
                 
                   
+                  <a href="gnumed-entire_schema.html#dem.table.region">dem.region.pk</a>
+                  
+                
+                  
                 
                 </td>
-            	<td>code</td>
-            	<td>text</td>
+            	<td>fk_region</td>
+            	<td>integer</td>
                 <td><i>
 				
 					
 
 					
+				
+					
+
+					
                        UNIQUE#1
                     
 				
@@ -97609,7 +116280,7 @@ FROM dem.lnk_person_org_address;</pre>
 				NOT NULL
 				
 				</i>
-				<br><br>state code
+				<br><br>reference to information about country and region
 				</td>
 			 </tr>
             
@@ -97618,13 +116289,9 @@ FROM dem.lnk_person_org_address;</pre>
                 
                   
                 
-                  
-                  <a href="gnumed-entire_schema.html#dem.table.country">dem.country.code</a>
-                  
-                
                 </td>
-            	<td>country</td>
-            	<td>character(2)</td>
+            	<td>postcode</td>
+            	<td>text</td>
                 <td><i>
 				
 					
@@ -97633,15 +116300,13 @@ FROM dem.lnk_person_org_address;</pre>
                        UNIQUE#1
                     
 				
-					
-
-					
-				
 
 				NOT NULL
 				
 				</i>
-				<br><br>2 character ISO 3166-1 country code
+				<br><br>default postcode for urb.name,
+	 useful for all the smaller urbs that only have one postcode,
+	 also useful as a default when adding new streets to an urb
 				</td>
 			 </tr>
             
@@ -97649,15 +116314,39 @@ FROM dem.lnk_person_org_address;</pre>
 				<td>
                 
                 </td>
+            	<td>lat_lon</td>
+            	<td>point</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				<br><br>the location of the urb, as lat/long co-ordinates. Ideally this would be NOT NULL
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                  
+                
+                </td>
             	<td>name</td>
             	<td>text</td>
                 <td><i>
 				
+					
+
+					
+                       UNIQUE#1
+                    
+				
 
 				NOT NULL
 				
 				</i>
-				
+				<br><br>the name of the city/town/dwelling
 				</td>
 			 </tr>
             
@@ -97665,7 +116354,7 @@ FROM dem.lnk_person_org_address;</pre>
 
         <!-- Inherits -->
 		
-        <p>Table dem.state Inherits
+        <p>Table dem.urb Inherits
         
             
            <a href="gnumed-entire_schema.html#audit.table.audit-fields">audit_fields</a>, 
@@ -97681,16 +116370,21 @@ FROM dem.lnk_person_org_address;</pre>
 		
         <p> </p>
 		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>dem.state Constraints</caption>
+            <caption>dem.urb Constraints</caption>
             <tr>
             	<th>Name</th>
             	<th>Constraint</th>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>no_linebreaks</td>
-                <td>CHECK ((((("position"(((COALESCE(code, ''::text) || (COALESCE(country, ''::bpchar))::text) || COALESCE(name, ''::text)), '
'::text) = 0) AND ("position"(((COALESCE(code, ''::text) || (COALESCE(country, ''::bpchar))::text) || COALESCE(name, ''::text)), '
-'::text) = 0)) AND ("position"(((COALESCE(code, ''::text) || (COALESCE(country, ''::bpchar))::text) || COALESCE(name, ''::text)), '
'::text) = 0)) AND ("position"(((COALESCE(code, ''::text) || (COALESCE(country, ''::bpchar))::text) || COALESCE(name, ''::text)), '
'::text) = 0)))</td>
+                <td>CHECK ((((("position"((COALESCE(postcode, ''::text) || COALESCE(name, ''::text)), '
'::text) = 0) AND ("position"((COALESCE(postcode, ''::text) || COALESCE(name, ''::text)), '
+'::text) = 0)) AND ("position"((COALESCE(postcode, ''::text) || COALESCE(name, ''::text)), '
'::text) = 0)) AND ("position"((COALESCE(postcode, ''::text) || COALESCE(name, ''::text)), '
'::text) = 0)))</td>
             </tr>
 			
 		</table>
@@ -97701,16 +116395,18 @@ FROM dem.lnk_person_org_address;</pre>
 			<p>Tables referencing this one via Foreign Key Constraints:</p>
 		
 			<ul>
-				<li><a href="gnumed-entire_schema.html#dem.table.urb">dem.urb</a></li>
+				<li><a href="gnumed-entire_schema.html#dem.table.street">dem.street</a></li>
 			</ul>
 		
 		
 
     <!-- Indexes -->
     
-       idx_dem_state_country_code country
+       idx_dem_urb_id_state fk_region
     
-       idx_state_names name
+       idx_urb_names name
+    
+       idx_urb_zips postcode
     
 
 	<!-- View Definition -->
@@ -97725,17 +116421,17 @@ FROM dem.lnk_person_org_address;</pre>
     </p>
 	
         <hr>
-		<h2>Table:
+		<h2>View:
 			
-			<a href="gnumed-entire_schema.html#dem.schema">dem</a>.<a name="dem.table.street">street</a>
+			<a href="gnumed-entire_schema.html#dem.schema">dem</a>.<a name="dem.view.v-active-persons">v_active_persons</a>
 		</h2>
         
-         <p>street names, specific for distinct "urbs"</p>
+         <p>This view denormalizes non-deleted persons with their active name.</p>
         
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>dem.street Structure</caption>
+                <caption>dem.v_active_persons Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -97747,13 +116443,13 @@ FROM dem.lnk_person_org_address;</pre>
 				<td>
                 
                 </td>
-            	<td>pk_audit</td>
+            	<td>pk_identity</td>
             	<td>integer</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT nextval('audit.audit_fields_pk_audit_seq'::regclass)
+				
+				
 				</i>
 				
 				</td>
@@ -97763,12 +116459,12 @@ FROM dem.lnk_person_org_address;</pre>
 				<td>
                 
                 </td>
-            	<td>row_version</td>
-            	<td>integer</td>
+            	<td>title</td>
+            	<td>text</td>
                 <td><i>
 				
 
-				NOT NULL
+				
 				
 				</i>
 				
@@ -97779,13 +116475,77 @@ FROM dem.lnk_person_org_address;</pre>
 				<td>
                 
                 </td>
-            	<td>modified_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>firstnames</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>preferred</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>lastnames</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>gender</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>l10n_gender</td>
+            	<td>text</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT now()
+				
+				
 				</i>
 				
 				</td>
@@ -97795,13 +116555,13 @@ FROM dem.lnk_person_org_address;</pre>
 				<td>
                 
                 </td>
-            	<td>modified_by</td>
-            	<td>name</td>
+            	<td>dob_only</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT "current_user"()
+				
+				
 				</i>
 				
 				</td>
@@ -97810,18 +116570,11 @@ FROM dem.lnk_person_org_address;</pre>
             <tr class="tr0">
 				<td>
                 
-                  
-                
                 </td>
-            	<td>id</td>
-            	<td>serial</td>
+            	<td>dob</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
-					PRIMARY KEY
-					
-
-					
-				
 
 				
 				
@@ -97833,80 +116586,48 @@ FROM dem.lnk_person_org_address;</pre>
             <tr class="tr1">
 				<td>
                 
-                  
-                  <a href="gnumed-entire_schema.html#dem.table.urb">dem.urb.id</a>
-                  
-                
-                  
-                
                 </td>
-            	<td>id_urb</td>
-            	<td>integer</td>
+            	<td>tob</td>
+            	<td>time without time zone</td>
                 <td><i>
 				
-					
-
-					
-				
-					
 
-					
-                       UNIQUE#1
-                    
 				
-
-				NOT NULL
 				
 				</i>
-				<br><br>reference to information postcode, city, country and state
+				
 				</td>
 			 </tr>
             
             <tr class="tr0">
 				<td>
                 
-                  
-                
                 </td>
-            	<td>name</td>
-            	<td>text</td>
+            	<td>deceased</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
-					
 
-					
-                       UNIQUE#1
-                    
 				
-
-				NOT NULL
 				
 				</i>
-				<br><br>name of this street
+				
 				</td>
 			 </tr>
             
             <tr class="tr1">
 				<td>
                 
-                  
-                
                 </td>
-            	<td>postcode</td>
+            	<td>marital_status</td>
             	<td>text</td>
                 <td><i>
 				
-					
-
-					
-                       UNIQUE#1
-                    
-				
 
 				
 				
 				</i>
-				<br><br>postcode for systems (such as UK Royal Mail) which specify the street
+				
 				</td>
 			 </tr>
             
@@ -97914,7 +116635,7 @@ FROM dem.lnk_person_org_address;</pre>
 				<td>
                 
                 </td>
-            	<td>suburb</td>
+            	<td>l10n_marital_status</td>
             	<td>text</td>
                 <td><i>
 				
@@ -97922,7 +116643,7 @@ FROM dem.lnk_person_org_address;</pre>
 				
 				
 				</i>
-				<br><br>the suburb this street is in (if any)
+				
 				</td>
 			 </tr>
             
@@ -97930,113 +116651,29 @@ FROM dem.lnk_person_org_address;</pre>
 				<td>
                 
                 </td>
-            	<td>lat_lon</td>
-            	<td>point</td>
+            	<td>emergency_contact</td>
+            	<td>text</td>
                 <td><i>
 				
 
 				
 				
 				</i>
-				<br><br>the approximate location of the street, as lat/long co-ordinates
+				
 				</td>
 			 </tr>
             
-        </table>
-
-        <!-- Inherits -->
-		
-        <p>Table dem.street Inherits
-        
-            
-           <a href="gnumed-entire_schema.html#audit.table.audit-fields">audit_fields</a>, 
-        
-        </p>
-		
-
-		
-		
-		
-
-        <!-- Constraint List -->
-		
-        <p> </p>
-		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>dem.street Constraints</caption>
-            <tr>
-            	<th>Name</th>
-            	<th>Constraint</th>
-            </tr>
-			
-            <tr class="tr0">
-				<td>no_linebreaks</td>
-                <td>CHECK ((((("position"(((COALESCE(postcode, ''::text) || COALESCE(suburb, ''::text)) || COALESCE(name, ''::text)), '
'::text) = 0) AND ("position"(((COALESCE(postcode, ''::text) || COALESCE(suburb, ''::text)) || COALESCE(name, ''::text)), '
-'::text) = 0)) AND ("position"(((COALESCE(postcode, ''::text) || COALESCE(suburb, ''::text)) || COALESCE(name, ''::text)), '
'::text) = 0)) AND ("position"(((COALESCE(postcode, ''::text) || COALESCE(suburb, ''::text)) || COALESCE(name, ''::text)), '
'::text) = 0)))</td>
-            </tr>
-			
-		</table>
-		
-
-        <!-- Foreign Key Discovery -->
-		
-			<p>Tables referencing this one via Foreign Key Constraints:</p>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#dem.table.address">dem.address</a></li>
-			</ul>
-		
-		
-
-    <!-- Indexes -->
-    
-       idx_dem_street_id_urb id_urb
-    
-       idx_street_names name
-    
-       idx_street_zips postcode
-    
-
-	<!-- View Definition -->
-	
-
-	<!-- List off permissions -->
-	
-
-	<p>
-		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#dem.schema">Schema dem</a>
-    </p>
-	
-        <hr>
-		<h2>Table:
-			
-			<a href="gnumed-entire_schema.html#dem.schema">dem</a>.<a name="dem.table.urb">urb</a>
-		</h2>
-        
-         <p>cities, towns, dwellings ..., eg. "official" places of residence</p>
-        
-
-
-        <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>dem.urb Structure</caption>
-                <tr>
-                <th>F-Key</th>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Description</th>
-                </tr>
-            
             <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>pk_audit</td>
-            	<td>integer</td>
+            	<td>comment</td>
+            	<td>text</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT nextval('audit.audit_fields_pk_audit_seq'::regclass)
+				
+				
 				</i>
 				
 				</td>
@@ -98046,12 +116683,12 @@ FROM dem.lnk_person_org_address;</pre>
 				<td>
                 
                 </td>
-            	<td>row_version</td>
-            	<td>integer</td>
+            	<td>is_deleted</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
-				NOT NULL
+				
 				
 				</i>
 				
@@ -98062,13 +116699,13 @@ FROM dem.lnk_person_org_address;</pre>
 				<td>
                 
                 </td>
-            	<td>modified_when</td>
-            	<td>timestamp with time zone</td>
+            	<td>pk_marital_status</td>
+            	<td>integer</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT now()
+				
+				
 				</i>
 				
 				</td>
@@ -98078,13 +116715,13 @@ FROM dem.lnk_person_org_address;</pre>
 				<td>
                 
                 </td>
-            	<td>modified_by</td>
-            	<td>name</td>
+            	<td>pk_active_name</td>
+            	<td>integer</td>
                 <td><i>
 				
 
-				NOT NULL
-				DEFAULT "current_user"()
+				
+				
 				</i>
 				
 				</td>
@@ -98093,18 +116730,11 @@ FROM dem.lnk_person_org_address;</pre>
             <tr class="tr0">
 				<td>
                 
-                  
-                
                 </td>
-            	<td>id</td>
-            	<td>serial</td>
+            	<td>pk_emergency_contact</td>
+            	<td>integer</td>
                 <td><i>
 				
-					PRIMARY KEY
-					
-
-					
-				
 
 				
 				
@@ -98116,58 +116746,32 @@ FROM dem.lnk_person_org_address;</pre>
             <tr class="tr1">
 				<td>
                 
-                  
-                  <a href="gnumed-entire_schema.html#dem.table.state">dem.state.id</a>
-                  
-                
-                  
-                
                 </td>
-            	<td>id_state</td>
+            	<td>pk_primary_provider</td>
             	<td>integer</td>
                 <td><i>
 				
-					
-
-					
-				
-					
 
-					
-                       UNIQUE#1
-                    
 				
-
-				NOT NULL
 				
 				</i>
-				<br><br>reference to information about country and state
+				
 				</td>
 			 </tr>
             
             <tr class="tr0">
 				<td>
                 
-                  
-                
                 </td>
-            	<td>postcode</td>
-            	<td>text</td>
+            	<td>xmin_identity</td>
+            	<td>xid</td>
                 <td><i>
 				
-					
 
-					
-                       UNIQUE#1
-                    
 				
-
-				NOT NULL
 				
 				</i>
-				<br><br>default postcode for urb.name,
-	 useful for all the smaller urbs that only have one postcode,
-	 also useful as a default when adding new streets to an urb
+				
 				</td>
 			 </tr>
             
@@ -98175,39 +116779,15 @@ FROM dem.lnk_person_org_address;</pre>
 				<td>
                 
                 </td>
-            	<td>lat_lon</td>
-            	<td>point</td>
+            	<td>dob_is_estimated</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
 				
 				
 				</i>
-				<br><br>the location of the urb, as lat/long co-ordinates. Ideally this would be NOT NULL
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                  
-                
-                </td>
-            	<td>name</td>
-            	<td>text</td>
-                <td><i>
 				
-					
-
-					
-                       UNIQUE#1
-                    
-				
-
-				NOT NULL
-				
-				</i>
-				<br><br>the name of the city/town/dwelling
 				</td>
 			 </tr>
             
@@ -98215,58 +116795,69 @@ FROM dem.lnk_person_org_address;</pre>
 
         <!-- Inherits -->
 		
-        <p>Table dem.urb Inherits
-        
-            
-           <a href="gnumed-entire_schema.html#audit.table.audit-fields">audit_fields</a>, 
-        
-        </p>
-		
 
 		
-		
-		
 
         <!-- Constraint List -->
 		
-        <p> </p>
-		<table width="100%" cellspacing="0" cellpadding="3">
-            <caption>dem.urb Constraints</caption>
-            <tr>
-            	<th>Name</th>
-            	<th>Constraint</th>
-            </tr>
-			
-            <tr class="tr0">
-				<td>no_linebreaks</td>
-                <td>CHECK ((((("position"((COALESCE(postcode, ''::text) || COALESCE(name, ''::text)), '
'::text) = 0) AND ("position"((COALESCE(postcode, ''::text) || COALESCE(name, ''::text)), '
-'::text) = 0)) AND ("position"((COALESCE(postcode, ''::text) || COALESCE(name, ''::text)), '
'::text) = 0)) AND ("position"((COALESCE(postcode, ''::text) || COALESCE(name, ''::text)), '
'::text) = 0)))</td>
-            </tr>
-			
-		</table>
-		
 
         <!-- Foreign Key Discovery -->
 		
-			<p>Tables referencing this one via Foreign Key Constraints:</p>
-		
-			<ul>
-				<li><a href="gnumed-entire_schema.html#dem.table.street">dem.street</a></li>
-			</ul>
-		
-		
 
     <!-- Indexes -->
     
-       idx_dem_urb_id_state id_state
-    
-       idx_urb_names name
-    
-       idx_urb_zips postcode
-    
 
 	<!-- View Definition -->
 	
+	<pre>
+SELECT d_vp.pk_identity
+,
+    d_vp.title
+,
+    d_vp.firstnames
+,
+    d_vp.preferred
+,
+    d_vp.lastnames
+,
+    d_vp.gender
+,
+    d_vp.l10n_gender
+,
+    d_vp.dob_only
+,
+    d_vp.dob
+,
+    d_vp.tob
+,
+    d_vp.deceased
+,
+    d_vp.marital_status
+,
+    d_vp.l10n_marital_status
+,
+    d_vp.emergency_contact
+,
+    d_vp.comment
+,
+    d_vp.is_deleted
+,
+    d_vp.pk_marital_status
+,
+    d_vp.pk_active_name
+,
+    d_vp.pk_emergency_contact
+,
+    d_vp.pk_primary_provider
+,
+    d_vp.xmin_identity
+,
+    d_vp.dob_is_estimated
+   
+FROM dem.v_all_persons d_vp
+  
+WHERE (d_vp.is_deleted IS FALSE);</pre>
+	
 
 	<!-- List off permissions -->
 	
@@ -98523,7 +117114,7 @@ FROM dem.lnk_person_org_address;</pre>
 				<td>
                 
                 </td>
-            	<td>code_state</td>
+            	<td>code_region</td>
             	<td>text</td>
                 <td><i>
 				
@@ -98539,7 +117130,7 @@ FROM dem.lnk_person_org_address;</pre>
 				<td>
                 
                 </td>
-            	<td>state</td>
+            	<td>region</td>
             	<td>text</td>
                 <td><i>
 				
@@ -98555,7 +117146,7 @@ FROM dem.lnk_person_org_address;</pre>
 				<td>
                 
                 </td>
-            	<td>l10n_state</td>
+            	<td>l10n_region</td>
             	<td>text</td>
                 <td><i>
 				
@@ -98667,7 +117258,7 @@ FROM dem.lnk_person_org_address;</pre>
 				<td>
                 
                 </td>
-            	<td>pk_state</td>
+            	<td>pk_region</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -98714,58 +117305,87 @@ FROM dem.lnk_person_org_address;</pre>
 	<!-- View Definition -->
 	
 	<pre>
-SELECT adr.id AS pk_address
-, str.name AS street
-, COALESCE
-(str.postcode
-     , u.postcode
+SELECT d_adr.id AS pk_address
+,
+    d_str.name AS street
+,
+    COALESCE
+(d_str.postcode
+     , d_u.postcode
 ) AS postcode
-, adr.aux_street AS notes_street
-, adr.number
-, adr.subunit
-, adr.addendum AS notes_subunit
-, adr.lat_lon AS lat_lon_address
-, str.postcode AS postcode_street
-, str.lat_lon AS lat_lon_street
-, str.suburb
-, u.name AS urb
-, u.postcode AS postcode_urb
-, u.lat_lon AS lat_lon_urb
-, dst.code AS code_state
-, dst.name AS state
-, _
-(dst.name) AS l10n_state
-, dst.country AS code_country
-, c.name AS country
-, _
-(c.name) AS l10n_country
-, c.deprecated AS country_deprecated
-, adr.id_street AS pk_street
-, u.id AS pk_urb
-, dst.id AS pk_state
-, adr.xmin AS xmin_address 
+,
+    d_adr.aux_street AS notes_street
+,
+    d_adr.number
+,
+    d_adr.subunit
+,
+    d_adr.addendum AS notes_subunit
+,
+    d_adr.lat_lon AS lat_lon_address
+,
+    d_str.postcode AS postcode_street
+,
+    d_str.lat_lon AS lat_lon_street
+,
+    d_str.suburb
+,
+    d_u.name AS urb
+,
+    d_u.postcode AS postcode_urb
+,
+    d_u.lat_lon AS lat_lon_urb
+,
+    d_r.code AS code_region
+,
+    d_r.name AS region
+,
+    _
+(d_r.name) AS l10n_region
+,
+    d_r.country AS code_country
+,
+    d_c.name AS country
+,
+    _
+(d_c.name) AS l10n_country
+,
+    d_c.deprecated AS country_deprecated
+,
+    d_adr.id_street AS pk_street
+,
+    d_u.id AS pk_urb
+,
+    d_r.pk AS pk_region
+,
+    d_adr.xmin AS xmin_address
+   
 FROM (
      (
            (
-                 (dem.address adr 
-               LEFT JOIN dem.street str 
+                 (dem.address d_adr
+     
+               LEFT JOIN dem.street d_str 
                       ON (
-                             (adr.id_street = str.id)
+                             (d_adr.id_street = d_str.id)
                        )
                  )
-         LEFT JOIN dem.urb u 
+     
+         LEFT JOIN dem.urb d_u 
                 ON (
-                       (str.id_urb = u.id)
+                       (d_str.id_urb = d_u.id)
                  )
            )
-   LEFT JOIN dem.state dst 
+     
+   LEFT JOIN dem.region d_r 
           ON (
-                 (u.id_state = dst.id)
+                 (d_u.fk_region = d_r.pk)
            )
      )
-LEFT JOIN dem.country c 
+     
+LEFT JOIN dem.country d_c 
     ON (
-           (c.code = dst.country)
+           (d_c.code = d_r.country)
      )
 );</pre>
 	
@@ -98781,13 +117401,15 @@ LEFT JOIN dem.country c
         <hr>
 		<h2>View:
 			
-			<a href="gnumed-entire_schema.html#dem.schema">dem</a>.<a name="dem.view.v-basic-address">v_basic_address</a>
+			<a href="gnumed-entire_schema.html#dem.schema">dem</a>.<a name="dem.view.v-all-persons">v_all_persons</a>
 		</h2>
         
+         <p>This view denormalizes persons with their active name.</p>
+        
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>dem.v_basic_address Structure</caption>
+                <caption>dem.v_all_persons Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -98799,7 +117421,7 @@ LEFT JOIN dem.country c
 				<td>
                 
                 </td>
-            	<td>id</td>
+            	<td>pk_identity</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -98815,8 +117437,8 @@ LEFT JOIN dem.country c
 				<td>
                 
                 </td>
-            	<td>country_code</td>
-            	<td>character(2)</td>
+            	<td>title</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -98831,7 +117453,7 @@ LEFT JOIN dem.country c
 				<td>
                 
                 </td>
-            	<td>state_code</td>
+            	<td>firstnames</td>
             	<td>text</td>
                 <td><i>
 				
@@ -98847,7 +117469,7 @@ LEFT JOIN dem.country c
 				<td>
                 
                 </td>
-            	<td>state</td>
+            	<td>preferred</td>
             	<td>text</td>
                 <td><i>
 				
@@ -98863,7 +117485,7 @@ LEFT JOIN dem.country c
 				<td>
                 
                 </td>
-            	<td>country</td>
+            	<td>lastnames</td>
             	<td>text</td>
                 <td><i>
 				
@@ -98879,7 +117501,7 @@ LEFT JOIN dem.country c
 				<td>
                 
                 </td>
-            	<td>postcode</td>
+            	<td>gender</td>
             	<td>text</td>
                 <td><i>
 				
@@ -98895,7 +117517,7 @@ LEFT JOIN dem.country c
 				<td>
                 
                 </td>
-            	<td>urb</td>
+            	<td>l10n_gender</td>
             	<td>text</td>
                 <td><i>
 				
@@ -98911,7 +117533,71 @@ LEFT JOIN dem.country c
 				<td>
                 
                 </td>
-            	<td>number</td>
+            	<td>dob_only</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>dob</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>tob</td>
+            	<td>time without time zone</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>deceased</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>marital_status</td>
             	<td>text</td>
                 <td><i>
 				
@@ -98927,7 +117613,7 @@ LEFT JOIN dem.country c
 				<td>
                 
                 </td>
-            	<td>street</td>
+            	<td>l10n_marital_status</td>
             	<td>text</td>
                 <td><i>
 				
@@ -98943,7 +117629,7 @@ LEFT JOIN dem.country c
 				<td>
                 
                 </td>
-            	<td>addendum</td>
+            	<td>emergency_contact</td>
             	<td>text</td>
                 <td><i>
 				
@@ -98959,8 +117645,120 @@ LEFT JOIN dem.country c
 				<td>
                 
                 </td>
-            	<td>lat_lon</td>
-            	<td>point</td>
+            	<td>comment</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>is_deleted</td>
+            	<td>boolean</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_marital_status</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>pk_active_name</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_emergency_contact</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>pk_primary_provider</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>xmin_identity</td>
+            	<td>xid</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>dob_is_estimated</td>
+            	<td>boolean</td>
                 <td><i>
 				
 
@@ -98990,38 +117788,85 @@ LEFT JOIN dem.country c
 	<!-- View Definition -->
 	
 	<pre>
-SELECT adr.id
-, s.country AS country_code
-, s.code AS state_code
-, s.name AS state
-, c.name AS country
-, COALESCE
-(str.postcode
-     , urb.postcode
-) AS postcode
-, urb.name AS urb
-, adr.number
-, str.name AS street
-, adr.addendum
-, COALESCE
-(adr.lat_lon
-     , str.lat_lon
-     , urb.lat_lon
-) AS lat_lon 
-FROM dem.address adr
-, dem.state s
-, dem.country c
-, dem.urb
-, dem.street str 
-WHERE (
-     (
-           (
-                 (s.country = c.code)
-               AND (adr.id_street = str.id)
+SELECT d_i.pk AS pk_identity
+,
+    d_i.title
+,
+    d_n.firstnames
+,
+    d_n.preferred
+,
+    d_n.lastnames
+,
+    d_i.gender
+,
+    _
+(d_i.gender) AS l10n_gender
+,
+    d_i.dob AS dob_only
+,
+    
+(date_trunc
+     ('day'::text
+           , d_i.dob
+     ) + 
+     (COALESCE
+           (d_i.tob
+                 , (d_i.dob)::time without time zone
            )
-         AND (str.id_urb = urb.id)
+     )::interval
+) AS dob
+,
+    d_i.tob
+,
+    d_i.deceased
+,
+    COALESCE
+(d_ms.name
+     ,'unknown'::text
+) AS marital_status
+,
+    _
+(COALESCE
+     (d_ms.name
+           ,'unknown'::text
+     )
+) AS l10n_marital_status
+,
+    d_i.emergency_contact
+,
+    d_i.comment
+,
+    d_i.deleted AS is_deleted
+,
+    d_i.fk_marital_status AS pk_marital_status
+,
+    d_n.id AS pk_active_name
+,
+    d_i.fk_emergency_contact AS pk_emergency_contact
+,
+    d_i.fk_primary_provider AS pk_primary_provider
+,
+    d_i.xmin AS xmin_identity
+,
+    d_i.dob_is_estimated
+   
+FROM (
+     (dem.identity d_i
+     
+        JOIN dem.names d_n 
+          ON (
+                 (
+                       (d_n.id_identity = d_i.pk)
+                     AND (d_n.active IS TRUE)
+                 )
+           )
+     )
+     
+LEFT JOIN dem.marital_status d_ms 
+    ON (
+           (d_i.fk_marital_status = d_ms.pk)
      )
-   AND (urb.id_state = s.id)
 );</pre>
 	
 
@@ -99036,15 +117881,13 @@ WHERE (
         <hr>
 		<h2>View:
 			
-			<a href="gnumed-entire_schema.html#dem.schema">dem</a>.<a name="dem.view.v-basic-person">v_basic_person</a>
+			<a href="gnumed-entire_schema.html#dem.schema">dem</a>.<a name="dem.view.v-basic-address">v_basic_address</a>
 		</h2>
         
-         <p>This view denormalizes non-deleted persons with their active name.</p>
-        
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>dem.v_basic_person Structure</caption>
+                <caption>dem.v_basic_address Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -99056,7 +117899,7 @@ WHERE (
 				<td>
                 
                 </td>
-            	<td>pk_identity</td>
+            	<td>id</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -99072,7 +117915,39 @@ WHERE (
 				<td>
                 
                 </td>
-            	<td>title</td>
+            	<td>country_code</td>
+            	<td>character(2)</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>region_code</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>region</td>
             	<td>text</td>
                 <td><i>
 				
@@ -99088,7 +117963,7 @@ WHERE (
 				<td>
                 
                 </td>
-            	<td>firstnames</td>
+            	<td>country</td>
             	<td>text</td>
                 <td><i>
 				
@@ -99104,7 +117979,7 @@ WHERE (
 				<td>
                 
                 </td>
-            	<td>preferred</td>
+            	<td>postcode</td>
             	<td>text</td>
                 <td><i>
 				
@@ -99120,7 +117995,7 @@ WHERE (
 				<td>
                 
                 </td>
-            	<td>lastnames</td>
+            	<td>urb</td>
             	<td>text</td>
                 <td><i>
 				
@@ -99136,7 +118011,7 @@ WHERE (
 				<td>
                 
                 </td>
-            	<td>gender</td>
+            	<td>number</td>
             	<td>text</td>
                 <td><i>
 				
@@ -99152,7 +118027,7 @@ WHERE (
 				<td>
                 
                 </td>
-            	<td>l10n_gender</td>
+            	<td>street</td>
             	<td>text</td>
                 <td><i>
 				
@@ -99168,8 +118043,8 @@ WHERE (
 				<td>
                 
                 </td>
-            	<td>dob_only</td>
-            	<td>timestamp with time zone</td>
+            	<td>addendum</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -99184,8 +118059,121 @@ WHERE (
 				<td>
                 
                 </td>
-            	<td>dob</td>
-            	<td>timestamp with time zone</td>
+            	<td>lat_lon</td>
+            	<td>point</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+        </table>
+
+        <!-- Inherits -->
+		
+
+		
+
+        <!-- Constraint List -->
+		
+
+        <!-- Foreign Key Discovery -->
+		
+
+    <!-- Indexes -->
+    
+
+	<!-- View Definition -->
+	
+	<pre>
+SELECT d_adr.id
+,
+    d_r.country AS country_code
+,
+    d_r.code AS region_code
+,
+    d_r.name AS region
+,
+    d_c.name AS country
+,
+    COALESCE
+(d_str.postcode
+     , d_u.postcode
+) AS postcode
+,
+    d_u.name AS urb
+,
+    d_adr.number
+,
+    d_str.name AS street
+,
+    d_adr.addendum
+,
+    COALESCE
+(d_adr.lat_lon
+     , d_str.lat_lon
+     , d_u.lat_lon
+) AS lat_lon
+   
+FROM dem.address d_adr
+,
+    dem.region d_r
+,
+    dem.country d_c
+,
+    dem.urb d_u
+,
+    dem.street d_str
+  
+WHERE (
+     (
+           (
+                 (d_r.country = d_c.code)
+               AND (d_adr.id_street = d_str.id)
+           )
+         AND (d_str.id_urb = d_u.id)
+     )
+   AND (d_u.fk_region = d_r.pk)
+);</pre>
+	
+
+	<!-- List off permissions -->
+	
+
+	<p>
+		<a href="gnumed-entire_schema.html#index">Index</a> -
+		<a href="gnumed-entire_schema.html#dem.schema">Schema dem</a>
+    </p>
+	
+        <hr>
+		<h2>View:
+			
+			<a href="gnumed-entire_schema.html#dem.schema">dem</a>.<a name="dem.view.v-deleted-persons">v_deleted_persons</a>
+		</h2>
+        
+         <p>This view denormalizes "deleted" persons with their active name.</p>
+        
+
+
+        <table width="100%" cellspacing="0" cellpadding="3">
+                <caption>dem.v_deleted_persons Structure</caption>
+                <tr>
+                <th>F-Key</th>
+                <th>Name</th>
+                <th>Type</th>
+                <th>Description</th>
+                </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_identity</td>
+            	<td>integer</td>
                 <td><i>
 				
 
@@ -99200,8 +118188,8 @@ WHERE (
 				<td>
                 
                 </td>
-            	<td>tob</td>
-            	<td>time without time zone</td>
+            	<td>title</td>
+            	<td>text</td>
                 <td><i>
 				
 
@@ -99216,7 +118204,103 @@ WHERE (
 				<td>
                 
                 </td>
-            	<td>deceased</td>
+            	<td>firstnames</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>preferred</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>lastnames</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>gender</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>l10n_gender</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>dob_only</td>
+            	<td>timestamp with time zone</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>dob</td>
             	<td>timestamp with time zone</td>
                 <td><i>
 				
@@ -99232,8 +118316,8 @@ WHERE (
 				<td>
                 
                 </td>
-            	<td>cob</td>
-            	<td>character(2)</td>
+            	<td>tob</td>
+            	<td>time without time zone</td>
                 <td><i>
 				
 
@@ -99248,8 +118332,8 @@ WHERE (
 				<td>
                 
                 </td>
-            	<td>pupic</td>
-            	<td>character(24)</td>
+            	<td>deceased</td>
+            	<td>timestamp with time zone</td>
                 <td><i>
 				
 
@@ -99328,6 +118412,22 @@ WHERE (
 				<td>
                 
                 </td>
+            	<td>is_deleted</td>
+            	<td>boolean</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
             	<td>pk_marital_status</td>
             	<td>integer</td>
                 <td><i>
@@ -99340,7 +118440,7 @@ WHERE (
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
@@ -99356,7 +118456,7 @@ WHERE (
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                 </td>
@@ -99372,7 +118472,7 @@ WHERE (
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
@@ -99388,7 +118488,7 @@ WHERE (
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                 </td>
@@ -99404,7 +118504,7 @@ WHERE (
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
@@ -99439,70 +118539,53 @@ WHERE (
 	<!-- View Definition -->
 	
 	<pre>
-SELECT i.pk AS pk_identity
-, i.title
-, n.firstnames
-, n.preferred
-, n.lastnames
-, i.gender
-, _
-(i.gender) AS l10n_gender
-, i.dob AS dob_only
-, (date_trunc
-     ('day'::text
-           , i.dob
-     ) + 
-     (COALESCE
-           (i.tob
-                 , (i.dob)::time without time zone
-           )
-     )::interval
-) AS dob
-, i.tob
-, i.deceased
-, i.cob
-, i.pupic
-, CASE WHEN 
-(i.fk_marital_status IS NULL) THEN 'unknown'::text ELSE 
-(
-SELECT ms.name 
-  FROM dem.marital_status ms
-     , dem.identity i1 
- WHERE (
-           (ms.pk = i.fk_marital_status)
-         AND (i1.pk = i.pk)
-     )
-) END AS marital_status
-, CASE WHEN 
-(i.fk_marital_status IS NULL) THEN _
-('unknown'::text) ELSE 
-(
-SELECT _
-     (ms1.name) AS _ 
-  FROM dem.marital_status ms1
-     , dem.identity i1 
- WHERE (
-           (ms1.pk = i.fk_marital_status)
-         AND (i1.pk = i.pk)
-     )
-) END AS l10n_marital_status
-, i.emergency_contact
-, i.comment
-, i.fk_marital_status AS pk_marital_status
-, n.id AS pk_active_name
-, i.fk_emergency_contact AS pk_emergency_contact
-, i.fk_primary_provider AS pk_primary_provider
-, i.xmin AS xmin_identity
-, i.dob_is_estimated 
-FROM dem.identity i
-, dem.names n 
-WHERE (
-     (
-           (i.deleted IS FALSE)
-         AND (n.active IS TRUE)
-     )
-   AND (n.id_identity = i.pk)
-);</pre>
+SELECT d_vp.pk_identity
+,
+    d_vp.title
+,
+    d_vp.firstnames
+,
+    d_vp.preferred
+,
+    d_vp.lastnames
+,
+    d_vp.gender
+,
+    d_vp.l10n_gender
+,
+    d_vp.dob_only
+,
+    d_vp.dob
+,
+    d_vp.tob
+,
+    d_vp.deceased
+,
+    d_vp.marital_status
+,
+    d_vp.l10n_marital_status
+,
+    d_vp.emergency_contact
+,
+    d_vp.comment
+,
+    d_vp.is_deleted
+,
+    d_vp.pk_marital_status
+,
+    d_vp.pk_active_name
+,
+    d_vp.pk_emergency_contact
+,
+    d_vp.pk_primary_provider
+,
+    d_vp.xmin_identity
+,
+    d_vp.dob_is_estimated
+   
+FROM dem.v_all_persons d_vp
+  
+WHERE (d_vp.is_deleted IS TRUE);</pre>
 	
 
 	<!-- List off permissions -->
@@ -99662,14 +118745,23 @@ WHERE (
 	
 	<pre>
 SELECT li2ei.id_identity AS pk_identity
-, li2ei.id AS pk_id
-, eit.name
-, li2ei.external_id AS value
-, eit.issuer
-, li2ei.comment
-, li2ei.fk_origin AS pk_type 
+,
+    li2ei.id AS pk_id
+,
+    eit.name
+,
+    li2ei.external_id AS value
+,
+    eit.issuer
+,
+    li2ei.comment
+,
+    li2ei.fk_origin AS pk_type
+   
 FROM dem.lnk_identity2ext_id li2ei
-, dem.enum_ext_id_types eit 
+,
+    dem.enum_ext_id_types eit
+  
 WHERE (li2ei.fk_origin = eit.pk);</pre>
 	
 
@@ -99830,13 +118922,21 @@ WHERE (li2ei.fk_origin = eit.pk);</pre>
 	
 	<pre>
 SELECT d_lou2ei.fk_org_unit AS pk_org_unit
-, d_lou2ei.pk AS pk_id
-, d_eit.name
-, d_lou2ei.external_id AS value
-, d_eit.issuer
-, d_lou2ei.comment
-, d_lou2ei.fk_type AS pk_type 
-FROM (dem.lnk_org_unit2ext_id d_lou2ei 
+,
+    d_lou2ei.pk AS pk_id
+,
+    d_eit.name
+,
+    d_lou2ei.external_id AS value
+,
+    d_eit.issuer
+,
+    d_lou2ei.comment
+,
+    d_lou2ei.fk_type AS pk_type
+   
+FROM (dem.lnk_org_unit2ext_id d_lou2ei
+     
   JOIN dem.enum_ext_id_types d_eit 
     ON (
            (d_lou2ei.fk_type = d_eit.pk)
@@ -100001,14 +119101,21 @@ FROM (dem.lnk_org_unit2ext_id d_lou2ei
 	
 	<pre>
 SELECT gl.tag
-, _
+,
+    _
 (gl.tag) AS l10n_tag
-, gl.label
-, _
+,
+    gl.label
+,
+    _
 (gl.label) AS l10n_label
-, gl.comment
-, gl.sort_weight
-, gl.pk AS pk_gender_label 
+,
+    gl.comment
+,
+    gl.sort_weight
+,
+    gl.pk AS pk_gender_label
+   
 FROM dem.gender_label gl;</pre>
 	
 
@@ -100201,21 +119308,31 @@ FROM dem.gender_label gl;</pre>
 	
 	<pre>
 SELECT dit.fk_identity AS pk_identity
-, rti.description
-, _
+,
+    rti.description
+,
+    _
 (rti.description) AS l10n_description
-, dit.comment
-, rti.filename
-, octet_length
+,
+    dit.comment
+,
+    rti.filename
+,
+    octet_length
 (COALESCE
      (rti.image
            ,'\x'::bytea
      )
 ) AS image_size
-, dit.pk AS pk_identity_tag
-, rti.pk AS pk_tag_image
-, dit.xmin AS xmin_identity_tag 
-FROM (dem.identity_tag dit 
+,
+    dit.pk AS pk_identity_tag
+,
+    rti.pk AS pk_tag_image
+,
+    dit.xmin AS xmin_identity_tag
+   
+FROM (dem.identity_tag dit
+     
 LEFT JOIN ref.tag_image rti 
     ON (
            (dit.fk_tag = rti.pk)
@@ -100396,17 +119513,27 @@ LEFT JOIN ref.tag_image rti
 	
 	<pre>
 SELECT it.description AS type
-, _
+,
+    _
 (it.description) AS l10n_type
-, ic.description AS category
-, _
+,
+    ic.description AS category
+,
+    _
 (ic.description) AS l10n_category
-, it.is_user AS is_user_type
-, ic.is_user AS is_user_category
-, it.pk AS pk_type
-, it.fk_inbox_item_category AS pk_category 
+,
+    it.is_user AS is_user_type
+,
+    ic.is_user AS is_user_category
+,
+    it.pk AS pk_type
+,
+    it.fk_inbox_item_category AS pk_category
+   
 FROM dem.inbox_item_type it
-, dem.inbox_item_category ic 
+,
+    dem.inbox_item_category ic
+  
 WHERE (it.fk_inbox_item_category = ic.pk);</pre>
 	
 
@@ -100826,186 +119953,309 @@ Using UNION makes sure we get the right level of uniqueness.</p>
 	
 	<pre>
 (
+         
+SELECT mi.modified_when AS received_when
+     ,
+            COALESCE
      (
-      SELECT mi.modified_when AS received_when
-           , COALESCE
            (
-                 (
-                  SELECT staff.short_alias 
-                    FROM dem.staff 
-                   WHERE (staff.db_user = mi.modified_by)
-                 )
-                 , (
-                       ('<'::text || 
-                             (mi.modified_by)::text
-                       ) || '>'::text
-                 )
-           ) AS modified_by
+            SELECT staff.short_alias
+                   
+              FROM dem.staff
+                  
+             WHERE (staff.db_user = mi.modified_by)
+           )
            , (
-            SELECT staff.short_alias 
-              FROM dem.staff 
-             WHERE (staff.pk = mi.fk_staff)
-           ) AS provider
-           , mi.importance
-           , vit.category
-           , vit.l10n_category
-           , vit.type
-           , vit.l10n_type
-           , mi.comment
-           , mi.ufk_context AS pk_context
-           , mi.data
-           , mi.pk AS pk_inbox_message
-           , mi.fk_staff AS pk_staff
-           , vit.pk_category
-           , mi.fk_inbox_item_type AS pk_type
-           , mi.fk_patient AS pk_patient
-           , false AS is_virtual
-           , mi.due_date
-           , mi.expiry_date
-           , CASE WHEN 
-           (mi.due_date IS NULL) THEN false WHEN 
-           (mi.due_date > now
-                 ()
-           ) THEN false WHEN 
-           (mi.expiry_date IS NULL) THEN true WHEN 
-           (mi.expiry_date < now
-                 ()
-           ) THEN false ELSE true END AS is_overdue
-           , CASE WHEN 
-           (mi.expiry_date IS NULL) THEN false WHEN 
-           (mi.expiry_date > now
-                 ()
-           ) THEN false ELSE true END AS is_expired
-           , CASE WHEN 
-           (mi.due_date IS NULL) THEN NULL::interval WHEN 
-           (mi.due_date > now
-                 ()
-           ) THEN 
-           (
-                 (mi.due_date)::timestamp with time zone - now
-                 ()
-           ) ELSE 
-           (now
-                 () - 
-                 (mi.due_date)::timestamp with time zone
-           ) END AS interval_due
-           , gm.xid2int
-           (mi.xmin) AS xmin_message_inbox 
-        FROM dem.message_inbox mi
-           , dem.v_inbox_item_type vit 
-       WHERE (mi.fk_inbox_item_type = vit.pk_type)
-   UNION ALLSELECT v_unreviewed_docs_inbox.received_when
-           , v_unreviewed_docs_inbox.modified_by
-           , v_unreviewed_docs_inbox.provider
-           , v_unreviewed_docs_inbox.importance
-           , v_unreviewed_docs_inbox.category
-           , v_unreviewed_docs_inbox.l10n_category
-           , v_unreviewed_docs_inbox.type
-           , v_unreviewed_docs_inbox.l10n_type
-           , v_unreviewed_docs_inbox.comment
-           , v_unreviewed_docs_inbox.pk_context
-           , v_unreviewed_docs_inbox.data
-           , v_unreviewed_docs_inbox.pk_inbox_message
-           , v_unreviewed_docs_inbox.pk_staff
-           , v_unreviewed_docs_inbox.pk_category
-           , v_unreviewed_docs_inbox.pk_type
-           , v_unreviewed_docs_inbox.pk_patient
-           , v_unreviewed_docs_inbox.is_virtual
-           , v_unreviewed_docs_inbox.due_date
-           , v_unreviewed_docs_inbox.expiry_date
-           , v_unreviewed_docs_inbox.is_overdue
-           , v_unreviewed_docs_inbox.is_expired
-           , v_unreviewed_docs_inbox.interval_due
-           , v_unreviewed_docs_inbox.xmin_message_inbox 
-        FROM blobs.v_unreviewed_docs_inbox
-     )
- UNIONSELECT now
-     () AS received_when
-     , vtr.modified_by
-     , (
-      SELECT staff.short_alias 
-        FROM dem.staff 
-       WHERE (staff.pk = vtr.pk_intended_reviewer)
+                 ('<'::text || 
+                       (mi.modified_by)::text
+                 ) || '>'::text
+           )
+     ) AS modified_by
+     ,
+            
+     (
+      SELECT staff.short_alias
+                   
+        FROM dem.staff
+                  
+       WHERE (staff.pk = mi.fk_staff)
      ) AS provider
-     , 0 AS importance
-     ,'clinical'::text AS category
-     , _
-     ('clinical'::text) AS l10n_category
-     ,'review results'::text AS type
-     , _
-     ('review results'::text) AS l10n_type
-     , (
-      SELECT (
-                 (
-                       (
-                             (
-                                   (_
-                                         ('unreviewed (normal) results for patient'::text
-                                   ) || ' ['::text
-                             ) || dn.lastnames
-                       ) || 
-                    ', '::text
-                 ) || dn.firstnames
-           ) || ']'::text
+     ,
+            mi.importance
+     ,
+            vit.category
+     ,
+            vit.l10n_category
+     ,
+            vit.type
+     ,
+            vit.l10n_type
+     ,
+            mi.comment
+     ,
+            mi.ufk_context AS pk_context
+     ,
+            mi.data
+     ,
+            mi.pk AS pk_inbox_message
+     ,
+            mi.fk_staff AS pk_staff
+     ,
+            vit.pk_category
+     ,
+            mi.fk_inbox_item_type AS pk_type
+     ,
+            mi.fk_patient AS pk_patient
+     ,
+            false AS is_virtual
+     ,
+            mi.due_date
+     ,
+            mi.expiry_date
+     ,
+                CASE
+                    WHEN 
+     (mi.due_date IS NULL) THEN false
+                    WHEN 
+     (mi.due_date > now
+           ()
+     ) THEN false
+                    WHEN 
+     (mi.expiry_date IS NULL) THEN true
+                    WHEN 
+     (mi.expiry_date < now
+           ()
+     ) THEN false
+                    ELSE true
+                END AS is_overdue
+     ,
+                CASE
+                    WHEN 
+     (mi.expiry_date IS NULL) THEN false
+                    WHEN 
+     (mi.expiry_date > now
+           ()
+     ) THEN false
+                    ELSE true
+                END AS is_expired
+     ,
+                CASE
+                    WHEN 
+     (mi.due_date IS NULL) THEN NULL::interval
+                    WHEN 
+     (mi.due_date > now
+           ()
+     ) THEN 
+     (
+           (mi.due_date)::timestamp with time zone - now
+           ()
      )
-  FROM dem.names dn 
- WHERE (
-           (dn.id_identity = vtr.pk_patient)
-         AND (dn.active IS TRUE)
+                    ELSE 
+     (now
+           () - 
+           (mi.due_date)::timestamp with time zone
      )
-) AS comment
-, NULL::integer[] AS pk_context
-, NULL::text AS data
-, NULL::integer AS pk_inbox_message
-, vtr.pk_intended_reviewer AS pk_staff
-, (
-SELECT v_inbox_item_type.pk_category 
-  FROM dem.v_inbox_item_type 
- WHERE (v_inbox_item_type.type = 'review results'::text)
-) AS pk_category
-, (
-SELECT v_inbox_item_type.pk_type 
-  FROM dem.v_inbox_item_type 
- WHERE (v_inbox_item_type.type = 'review results'::text)
-) AS pk_type
-, vtr.pk_patient
-, true AS is_virtual
-, (now
-     () - '01:00:00'::interval
-) AS due_date
-, NULL::timestamp with time zone AS expiry_date
-, true AS is_overdue
-, false AS is_expired
-,'01:00:00'::interval AS interval_due
-, NULL::integer AS xmin_message_inbox 
-FROM clin.v_test_results vtr 
+                END AS interval_due
+     ,
+            gm.xid2int
+     (mi.xmin) AS xmin_message_inbox
+           
+  FROM dem.message_inbox mi
+     ,
+            dem.v_inbox_item_type vit
+          
+ WHERE (mi.fk_inbox_item_type = vit.pk_type)
+        
+UNION ALL
+         
+SELECT v_unreviewed_docs_inbox.received_when
+     ,
+            v_unreviewed_docs_inbox.modified_by
+     ,
+            v_unreviewed_docs_inbox.provider
+     ,
+            v_unreviewed_docs_inbox.importance
+     ,
+            v_unreviewed_docs_inbox.category
+     ,
+            v_unreviewed_docs_inbox.l10n_category
+     ,
+            v_unreviewed_docs_inbox.type
+     ,
+            v_unreviewed_docs_inbox.l10n_type
+     ,
+            v_unreviewed_docs_inbox.comment
+     ,
+            v_unreviewed_docs_inbox.pk_context
+     ,
+            v_unreviewed_docs_inbox.data
+     ,
+            v_unreviewed_docs_inbox.pk_inbox_message
+     ,
+            v_unreviewed_docs_inbox.pk_staff
+     ,
+            v_unreviewed_docs_inbox.pk_category
+     ,
+            v_unreviewed_docs_inbox.pk_type
+     ,
+            v_unreviewed_docs_inbox.pk_patient
+     ,
+            v_unreviewed_docs_inbox.is_virtual
+     ,
+            v_unreviewed_docs_inbox.due_date
+     ,
+            v_unreviewed_docs_inbox.expiry_date
+     ,
+            v_unreviewed_docs_inbox.is_overdue
+     ,
+            v_unreviewed_docs_inbox.is_expired
+     ,
+            v_unreviewed_docs_inbox.interval_due
+     ,
+            v_unreviewed_docs_inbox.xmin_message_inbox
+           
+  FROM blobs.v_unreviewed_docs_inbox
+
+)
+UNION
+ 
+SELECT now
+() AS received_when
+,
+    vtr.modified_by
+,
+    
+(
+SELECT staff.short_alias
+           
+  FROM dem.staff
+          
+ WHERE (staff.pk = vtr.pk_intended_reviewer)
+) AS provider
+,
+    0 AS importance
+,
+    'clinical'::text AS category
+,
+    _
+('clinical'::text) AS l10n_category
+,
+    'review results'::text AS type
+,
+    _
+('review results'::text) AS l10n_type
+,
+    
+(
+SELECT (
+           (
+                 (
+                       (
+                             (_
+                                   ('unreviewed (normal) results for patient'::text
+                             ) || ' ['::text
+                       ) || dn.lastnames
+                 ) || 
+              ', '::text
+           ) || dn.firstnames
+     ) || ']'::text
+)
+           
+FROM dem.names dn
+          
 WHERE (
-     (vtr.reviewed IS FALSE)
-   AND (
-           (vtr.is_technically_abnormal IS FALSE)
-          OR (
-                 (vtr.is_technically_abnormal IS NULL)
-               AND (vtr.abnormality_indicator IS NULL)
-           )
+     (dn.id_identity = vtr.pk_patient)
+   AND (dn.active IS TRUE)
+)
+)      AS comment
+,     
+    NULL::integer[] AS pk_context
+,     
+    NULL::text AS data
+,     
+    NULL::integer AS pk_inbox_message
+,     
+    vtr.pk_intended_reviewer AS pk_staff
+,     
+    
+(     
+SELECT v_inbox_item_type.pk_category
+           
+FROM dem.v_inbox_item_type
+          
+WHERE (v_inbox_item_type.type = 'review results'::text)
+)      AS pk_category
+,     
+    
+(     
+SELECT v_inbox_item_type.pk_type
+           
+FROM dem.v_inbox_item_type
+          
+WHERE (v_inbox_item_type.type = 'review results'::text)
+)      AS pk_type
+,     
+    vtr.pk_patient
+,     
+    true AS is_virtual
+,     
+    
+(     now
+() - '01:00:00'::interval
+)      AS due_date
+,     
+    NULL::timestamp with time zone AS expiry_date
+,     
+    true AS is_overdue
+,     
+    false AS is_expired
+,     
+    '01:00:00'::interval AS interval_due
+,     
+    NULL::integer AS xmin_message_inbox
+   
+FROM   clin.v_test_results vtr
+  
+WHERE  (
+(vtr.reviewed IS FALSE)
+AND (
+     (vtr.is_technically_abnormal IS FALSE)
+    OR (
+           (vtr.is_technically_abnormal IS NULL)
+         AND (vtr.abnormality_indicator IS NULL)
      )
 )
 )     
-UNION SELECT now
+UNION 
+ 
+SELECT now
 (     ) AS received_when
-,      vtr.modified_by
-,      (
-SELECT staff.short_alias 
-FROM dem.staff 
+,     
+    vtr.modified_by
+,     
+    
+(     
+SELECT staff.short_alias
+           
+FROM dem.staff
+          
 WHERE (staff.pk = vtr.pk_intended_reviewer)
 )      AS provider
-,      1 AS importance
-,     'clinical'::text AS category
-,      _
+,     
+    1 AS importance
+,     
+    'clinical'::text AS category
+,     
+    _
 (     'clinical'::text) AS l10n_category
-,     'review results'::text AS type
-,      _
+,     
+    'review results'::text AS type
+,     
+    _
 (     'review results'::text) AS l10n_type
-,      (
+,     
+    
+(     
 SELECT (
      (
            (
@@ -101019,37 +120269,62 @@ SELECT (
      ) || dn.firstnames
 ) || ']'::text
 )     
-FROM   dem.names dn 
+           
+FROM   dem.names dn
+          
 WHERE  (
 (dn.id_identity = vtr.pk_patient)
 AND (dn.active IS TRUE)
 )     
 )            AS comment
-,            NULL::integer[] AS pk_context
-,            NULL::text AS data
-,            NULL::integer AS pk_inbox_message
-,            vtr.pk_intended_reviewer AS pk_staff
-,            (
-SELECT v_inbox_item_type.pk_category 
-FROM   dem.v_inbox_item_type 
+,           
+    NULL::integer[] AS pk_context
+,           
+    NULL::text AS data
+,           
+    NULL::integer AS pk_inbox_message
+,           
+    vtr.pk_intended_reviewer AS pk_staff
+,           
+    
+(           
+SELECT v_inbox_item_type.pk_category
+           
+FROM   dem.v_inbox_item_type
+          
 WHERE  (v_inbox_item_type.type = 'review results'::text)
 )            AS pk_category
-,            (
-SELECT v_inbox_item_type.pk_type 
-FROM   dem.v_inbox_item_type 
+,           
+    
+(           
+SELECT v_inbox_item_type.pk_type
+           
+FROM   dem.v_inbox_item_type
+          
 WHERE  (v_inbox_item_type.type = 'review results'::text)
 )            AS pk_type
-,            vtr.pk_patient
-,            true AS is_virtual
-,            (now
+,           
+    vtr.pk_patient
+,           
+    true AS is_virtual
+,           
+    
+(           now
 (     ) - '01:00:00'::interval
 )            AS due_date
-,            NULL::timestamp with time zone AS expiry_date
-,            true AS is_overdue
-,            false AS is_expired
-,           '01:00:00'::interval AS interval_due
-,            NULL::integer AS xmin_message_inbox 
-FROM         clin.v_test_results vtr 
+,           
+    NULL::timestamp with time zone AS expiry_date
+,           
+    true AS is_overdue
+,           
+    false AS is_expired
+,           
+    '01:00:00'::interval AS interval_due
+,           
+    NULL::integer AS xmin_message_inbox
+   
+FROM         clin.v_test_results vtr
+  
 WHERE        (
 (     vtr.reviewed IS FALSE)
 AND    (
@@ -101253,16 +120528,26 @@ OR (
 	
 	<pre>
 SELECT d_lo2c.fk_org_unit AS pk_org_unit
-, ect.description AS comm_type
-, _
+,
+    ect.description AS comm_type
+,
+    _
 (ect.description) AS l10n_comm_type
-, d_lo2c.url
-, d_lo2c.comment
-, d_lo2c.is_confidential
-, d_lo2c.pk AS pk_lnk_org_unit2comm
-, d_lo2c.fk_type AS pk_type
-, d_lo2c.xmin AS xmin_lnk_org_unit2comm 
-FROM (dem.lnk_org_unit2comm d_lo2c 
+,
+    d_lo2c.url
+,
+    d_lo2c.comment
+,
+    d_lo2c.is_confidential
+,
+    d_lo2c.pk AS pk_lnk_org_unit2comm
+,
+    d_lo2c.fk_type AS pk_type
+,
+    d_lo2c.xmin AS xmin_lnk_org_unit2comm
+   
+FROM (dem.lnk_org_unit2comm d_lo2c
+     
   JOIN dem.enum_comm_types ect 
     ON (
            (d_lo2c.fk_type = ect.pk)
@@ -101523,39 +120808,58 @@ FROM (dem.lnk_org_unit2comm d_lo2c
 	
 	<pre>
 SELECT d_ou.pk AS pk_org_unit
-, d_o.description AS organization
-, d_ou.description AS unit
-, d_oc_o.description AS organization_category
-, _
+,
+    d_o.description AS organization
+,
+    d_ou.description AS unit
+,
+    d_oc_o.description AS organization_category
+,
+    _
 (d_oc_o.description) AS l10n_organization_category
-, d_oc_u.description AS unit_category
-, _
+,
+    d_oc_u.description AS unit_category
+,
+    _
 (d_oc_u.description) AS l10n_unit_category
-, (EXISTS 
+,
+    
+(EXISTS 
      (
-      SELECT 1 
-        FROM dem.praxis_branch d_pb 
+      SELECT 1
+           
+        FROM dem.praxis_branch d_pb
+          
        WHERE (d_pb.fk_org_unit = d_ou.pk)
      )
 ) AS is_praxis_branch
-, d_o.pk AS pk_org
-, d_o.fk_category AS pk_category_org
-, d_ou.fk_category AS pk_category_unit
-, d_ou.fk_address AS pk_address
-, d_ou.xmin AS xmin_org_unit 
+,
+    d_o.pk AS pk_org
+,
+    d_o.fk_category AS pk_category_org
+,
+    d_ou.fk_category AS pk_category_unit
+,
+    d_ou.fk_address AS pk_address
+,
+    d_ou.xmin AS xmin_org_unit
+   
 FROM (
      (
-           (dem.org_unit d_ou 
+           (dem.org_unit d_ou
+     
               JOIN dem.org d_o 
                 ON (
                        (d_o.pk = d_ou.fk_org)
                  )
            )
+     
    LEFT JOIN dem.org_category d_oc_u 
           ON (
                  (d_ou.fk_category = d_oc_u.pk)
            )
      )
+     
 LEFT JOIN dem.org_category d_oc_o 
     ON (
            (d_o.fk_category = d_oc_o.pk)
@@ -101800,32 +121104,47 @@ LEFT JOIN dem.org_category d_oc_o
 	
 	<pre>
 SELECT d_ou.pk AS pk_org_unit
-, d_o.description AS organization
-, d_ou.description AS unit
-, d_oc_o.description AS organization_category
-, _
+,
+    d_o.description AS organization
+,
+    d_ou.description AS unit
+,
+    d_oc_o.description AS organization_category
+,
+    _
 (d_oc_o.description) AS l10n_organization_category
-, d_oc_u.description AS unit_category
-, _
+,
+    d_oc_u.description AS unit_category
+,
+    _
 (d_oc_u.description) AS l10n_unit_category
-, d_o.pk AS pk_org
-, d_o.fk_category AS pk_category_org
-, d_ou.fk_category AS pk_category_unit
-, d_ou.fk_address AS pk_address
-, d_ou.xmin AS xmin_org_unit 
+,
+    d_o.pk AS pk_org
+,
+    d_o.fk_category AS pk_category_org
+,
+    d_ou.fk_category AS pk_category_unit
+,
+    d_ou.fk_address AS pk_address
+,
+    d_ou.xmin AS xmin_org_unit
+   
 FROM (
      (
-           (dem.org_unit d_ou 
+           (dem.org_unit d_ou
+     
               JOIN dem.org d_o 
                 ON (
                        (d_o.pk = d_ou.fk_org)
                  )
            )
+     
    LEFT JOIN dem.org_category d_oc_u 
           ON (
                  (d_ou.fk_category = d_oc_u.pk)
            )
      )
+     
 LEFT JOIN dem.org_category d_oc_o 
     ON (
            (d_o.fk_category = d_oc_o.pk)
@@ -101990,26 +121309,39 @@ LEFT JOIN dem.org_category d_oc_o
 	
 	<pre>
 SELECT d_o.pk AS pk_org
-, d_o.description AS organization
-, d_oc.description AS category
-, _
+,
+    d_o.description AS organization
+,
+    d_oc.description AS category
+,
+    _
 (d_oc.description) AS l10n_category
-, (EXISTS 
+,
+    
+(EXISTS 
      (
-      SELECT 1 
-        FROM dem.praxis_branch d_pb 
+      SELECT 1
+           
+        FROM dem.praxis_branch d_pb
+          
        WHERE (d_pb.fk_org_unit IN 
                  (
-                  SELECT d_ou.pk 
-                    FROM dem.org_unit d_ou 
+                  SELECT d_ou.pk
+                   
+                    FROM dem.org_unit d_ou
+                  
                    WHERE (d_ou.fk_org = d_o.pk)
                  )
            )
      )
 ) AS is_praxis
-, d_o.fk_category AS pk_category_org
-, d_o.xmin AS xmin_org 
-FROM (dem.org d_o 
+,
+    d_o.fk_category AS pk_category_org
+,
+    d_o.xmin AS xmin_org
+   
+FROM (dem.org d_o
+     
 LEFT JOIN dem.org_category d_oc 
     ON (
            (d_o.fk_category = d_oc.pk)
@@ -102031,7 +121363,7 @@ LEFT JOIN dem.org_category d_oc
 			<a href="gnumed-entire_schema.html#dem.schema">dem</a>.<a name="dem.view.v-pat-addresses">v_pat_addresses</a>
 		</h2>
         
-         <p>denormalized addresses per patient</p>
+         <p>denormalized addresses per person</p>
         
 
 
@@ -102176,22 +121508,6 @@ LEFT JOIN dem.org_category d_oc
 				<td>
                 
                 </td>
-            	<td>cob</td>
-            	<td>character(2)</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
             	<td>gender</td>
             	<td>text</td>
                 <td><i>
@@ -102204,7 +121520,7 @@ LEFT JOIN dem.org_category d_oc
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
@@ -102220,7 +121536,7 @@ LEFT JOIN dem.org_category d_oc
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                 </td>
@@ -102236,7 +121552,7 @@ LEFT JOIN dem.org_category d_oc
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
@@ -102252,7 +121568,7 @@ LEFT JOIN dem.org_category d_oc
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                 </td>
@@ -102268,7 +121584,7 @@ LEFT JOIN dem.org_category d_oc
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
@@ -102284,7 +121600,7 @@ LEFT JOIN dem.org_category d_oc
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                 </td>
@@ -102300,7 +121616,7 @@ LEFT JOIN dem.org_category d_oc
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
@@ -102316,7 +121632,7 @@ LEFT JOIN dem.org_category d_oc
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                 </td>
@@ -102332,7 +121648,7 @@ LEFT JOIN dem.org_category d_oc
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
@@ -102348,7 +121664,7 @@ LEFT JOIN dem.org_category d_oc
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                 </td>
@@ -102364,7 +121680,7 @@ LEFT JOIN dem.org_category d_oc
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
@@ -102380,7 +121696,7 @@ LEFT JOIN dem.org_category d_oc
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                 </td>
@@ -102396,7 +121712,7 @@ LEFT JOIN dem.org_category d_oc
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
@@ -102412,7 +121728,7 @@ LEFT JOIN dem.org_category d_oc
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                 </td>
@@ -102428,7 +121744,7 @@ LEFT JOIN dem.org_category d_oc
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
@@ -102444,11 +121760,11 @@ LEFT JOIN dem.org_category d_oc
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>code_state</td>
+            	<td>code_region</td>
             	<td>text</td>
                 <td><i>
 				
@@ -102460,11 +121776,11 @@ LEFT JOIN dem.org_category d_oc
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
-            	<td>state</td>
+            	<td>region</td>
             	<td>text</td>
                 <td><i>
 				
@@ -102476,11 +121792,11 @@ LEFT JOIN dem.org_category d_oc
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                 </td>
-            	<td>l10n_state</td>
+            	<td>l10n_region</td>
             	<td>text</td>
                 <td><i>
 				
@@ -102492,7 +121808,7 @@ LEFT JOIN dem.org_category d_oc
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
@@ -102508,7 +121824,7 @@ LEFT JOIN dem.org_category d_oc
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                 </td>
@@ -102524,7 +121840,7 @@ LEFT JOIN dem.org_category d_oc
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
@@ -102540,7 +121856,7 @@ LEFT JOIN dem.org_category d_oc
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                 </td>
@@ -102556,7 +121872,7 @@ LEFT JOIN dem.org_category d_oc
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
@@ -102572,7 +121888,7 @@ LEFT JOIN dem.org_category d_oc
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                 </td>
@@ -102588,11 +121904,11 @@ LEFT JOIN dem.org_category d_oc
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
-            	<td>pk_state</td>
+            	<td>pk_region</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -102604,7 +121920,7 @@ LEFT JOIN dem.org_category d_oc
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                 </td>
@@ -102620,7 +121936,7 @@ LEFT JOIN dem.org_category d_oc
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
@@ -102636,7 +121952,7 @@ LEFT JOIN dem.org_category d_oc
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                 </td>
@@ -102671,55 +121987,95 @@ LEFT JOIN dem.org_category d_oc
 	<!-- View Definition -->
 	
 	<pre>
-SELECT vbp.pk_identity
-, va.pk_address
-, at.name AS address_type
-, _
-(at.name) AS l10n_address_type
-, vbp.title
-, vbp.firstnames
-, vbp.lastnames
-, vbp.dob
-, vbp.cob
-, vbp.gender
-, vbp.l10n_gender
-, vbp.preferred
-, va.street
-, va.postcode
-, va.notes_street
-, va.number
-, va.subunit
-, va.notes_subunit
-, va.lat_lon_address
-, va.postcode_street
-, va.lat_lon_street
-, va.suburb
-, va.urb
-, va.postcode_urb
-, va.lat_lon_urb
-, va.code_state
-, va.state
-, va.l10n_state
-, va.code_country
-, va.country
-, va.l10n_country
-, va.country_deprecated
-, va.pk_street
-, va.pk_urb
-, va.pk_state
-, lpoa.id AS pk_lnk_person_org_address
-, lpoa.id_type AS pk_address_type
-, lpoa.xmin AS xmin_lnk_person_org_address 
-FROM dem.v_address va
-, dem.lnk_person_org_address lpoa
-, dem.v_basic_person vbp
-, dem.address_type at 
+SELECT d_vp.pk_identity
+,
+    d_va.pk_address
+,
+    d_at.name AS address_type
+,
+    _
+(d_at.name) AS l10n_address_type
+,
+    d_vp.title
+,
+    d_vp.firstnames
+,
+    d_vp.lastnames
+,
+    d_vp.dob
+,
+    d_vp.gender
+,
+    d_vp.l10n_gender
+,
+    d_vp.preferred
+,
+    d_va.street
+,
+    d_va.postcode
+,
+    d_va.notes_street
+,
+    d_va.number
+,
+    d_va.subunit
+,
+    d_va.notes_subunit
+,
+    d_va.lat_lon_address
+,
+    d_va.postcode_street
+,
+    d_va.lat_lon_street
+,
+    d_va.suburb
+,
+    d_va.urb
+,
+    d_va.postcode_urb
+,
+    d_va.lat_lon_urb
+,
+    d_va.code_region
+,
+    d_va.region
+,
+    d_va.l10n_region
+,
+    d_va.code_country
+,
+    d_va.country
+,
+    d_va.l10n_country
+,
+    d_va.country_deprecated
+,
+    d_va.pk_street
+,
+    d_va.pk_urb
+,
+    d_va.pk_region
+,
+    d_lpoa.id AS pk_lnk_person_org_address
+,
+    d_lpoa.id_type AS pk_address_type
+,
+    d_lpoa.xmin AS xmin_lnk_person_org_address
+   
+FROM dem.v_address d_va
+,
+    dem.lnk_person_org_address d_lpoa
+,
+    dem.v_all_persons d_vp
+,
+    dem.address_type d_at
+  
 WHERE (
      (
-           (lpoa.id_identity = vbp.pk_identity)
-         AND (lpoa.id_address = va.pk_address)
+           (d_lpoa.id_identity = d_vp.pk_identity)
+         AND (d_lpoa.id_address = d_va.pk_address)
      )
-   AND (lpoa.id_type = at.id)
+   AND (d_lpoa.id_type = d_at.id)
 );</pre>
 	
 
@@ -102930,18 +122286,30 @@ WHERE (
 	
 	<pre>
 SELECT li2c.fk_identity AS pk_identity
-, ect.description AS comm_type
-, _
+,
+    ect.description AS comm_type
+,
+    _
 (ect.description) AS l10n_comm_type
-, li2c.url
-, li2c.is_confidential
-, li2c.comment
-, li2c.pk AS pk_lnk_identity2comm
-, li2c.fk_address AS pk_address
-, li2c.fk_type AS pk_type
-, li2c.xmin AS xmin_lnk_identity2comm 
+,
+    li2c.url
+,
+    li2c.is_confidential
+,
+    li2c.comment
+,
+    li2c.pk AS pk_lnk_identity2comm
+,
+    li2c.fk_address AS pk_address
+,
+    li2c.fk_type AS pk_type
+,
+    li2c.xmin AS xmin_lnk_identity2comm
+   
 FROM dem.lnk_identity2comm li2c
-, dem.enum_comm_types ect 
+,
+    dem.enum_comm_types ect
+  
 WHERE (li2c.fk_type = ect.pk);</pre>
 	
 
@@ -103120,15 +122488,24 @@ WHERE (li2c.fk_type = ect.pk);</pre>
 	
 	<pre>
 SELECT lj2p.fk_identity AS pk_identity
-, o.name AS occupation
-, _
+,
+    o.name AS occupation
+,
+    _
 (o.name) AS l10n_occupation
-, lj2p.activities
-, lj2p.modified_when
-, lj2p.fk_occupation AS pk_occupation
-, lj2p.pk AS pk_lnk_job2person
-, lj2p.xmin AS xmin_lnk_job2person 
-FROM (dem.lnk_job2person lj2p 
+,
+    lj2p.activities
+,
+    lj2p.modified_when
+,
+    lj2p.fk_occupation AS pk_occupation
+,
+    lj2p.pk AS pk_lnk_job2person
+,
+    lj2p.xmin AS xmin_lnk_job2person
+   
+FROM (dem.lnk_job2person lj2p
+     
   JOIN dem.occupation o 
     ON (
            (lj2p.fk_occupation = o.id)
@@ -103421,22 +122798,40 @@ FROM (dem.lnk_job2person lj2p
 	
 	<pre>
 SELECT dn.id_identity AS pk_identity
-, dn.active AS active_name
-, di.title
-, dn.firstnames
-, dn.lastnames
-, dn.preferred
-, dn.comment
-, di.gender
-, di.dob
-, di.tob
-, di.deceased AS dod
-, di.deleted AS identity_deleted
-, (di.deceased IS NOT NULL) AS deceased
-, dn.id AS pk_name
-, dn.xmin AS xmin_name 
+,
+    dn.active AS active_name
+,
+    di.title
+,
+    dn.firstnames
+,
+    dn.lastnames
+,
+    dn.preferred
+,
+    dn.comment
+,
+    di.gender
+,
+    di.dob
+,
+    di.tob
+,
+    di.deceased AS dod
+,
+    di.deleted AS identity_deleted
+,
+    
+(di.deceased IS NOT NULL) AS deceased
+,
+    dn.id AS pk_name
+,
+    dn.xmin AS xmin_name
+   
 FROM dem.names dn
-, dem.identity di 
+,
+    dem.identity di
+  
 WHERE (di.pk = dn.id_identity);</pre>
 	
 
@@ -103839,15 +123234,24 @@ WHERE (di.pk = dn.id_identity);</pre>
 	
 	<pre>
 SELECT i.pk AS pk_identity
-, i.title
-, n.firstnames
-, n.preferred
-, n.lastnames
-, i.gender
-, _
+,
+    i.title
+,
+    n.firstnames
+,
+    n.preferred
+,
+    n.lastnames
+,
+    i.gender
+,
+    _
 (i.gender) AS l10n_gender
-, i.dob AS dob_only
-, (date_trunc
+,
+    i.dob AS dob_only
+,
+    
+(date_trunc
      ('day'::text
            , i.dob
      ) + 
@@ -103857,43 +123261,71 @@ SELECT i.pk AS pk_identity
            )
      )::interval
 ) AS dob
-, i.tob
-, i.deceased
-, CASE WHEN 
-(i.fk_marital_status IS NULL) THEN 'unknown'::text ELSE 
+,
+    i.tob
+,
+    i.deceased
+,
+        CASE
+            WHEN 
+(i.fk_marital_status IS NULL) THEN 'unknown'::text
+            ELSE 
 (
-SELECT ms.name 
+SELECT ms.name
+               
   FROM dem.marital_status ms
-     , dem.identity i1 
+     ,
+                dem.identity i1
+              
  WHERE (
            (ms.pk = i.fk_marital_status)
          AND (i1.pk = i.pk)
      )
-) END AS marital_status
-, CASE WHEN 
+)
+        END AS marital_status
+,
+        CASE
+            WHEN 
 (i.fk_marital_status IS NULL) THEN _
-('unknown'::text) ELSE 
+('unknown'::text)
+            ELSE 
 (
 SELECT _
-     (ms1.name) AS _ 
+     (ms1.name) AS _
+               
   FROM dem.marital_status ms1
-     , dem.identity i1 
+     ,
+                dem.identity i1
+              
  WHERE (
            (ms1.pk = i.fk_marital_status)
          AND (i1.pk = i.pk)
      )
-) END AS l10n_marital_status
-, i.emergency_contact
-, i.comment
-, i.deleted AS is_deleted
-, i.fk_marital_status AS pk_marital_status
-, n.id AS pk_active_name
-, i.fk_emergency_contact AS pk_emergency_contact
-, i.fk_primary_provider AS pk_primary_provider
-, i.xmin AS xmin_identity
-, i.dob_is_estimated 
+)
+        END AS l10n_marital_status
+,
+    i.emergency_contact
+,
+    i.comment
+,
+    i.deleted AS is_deleted
+,
+    i.fk_marital_status AS pk_marital_status
+,
+    n.id AS pk_active_name
+,
+    i.fk_emergency_contact AS pk_emergency_contact
+,
+    i.fk_primary_provider AS pk_primary_provider
+,
+    i.xmin AS xmin_identity
+,
+    i.dob_is_estimated
+   
 FROM dem.identity i
-, dem.names n 
+,
+    dem.names n
+  
 WHERE (
      (n.active IS TRUE)
    AND (n.id_identity = i.pk)
@@ -104171,62 +123603,98 @@ WHERE (
 	
 	<pre>
 SELECT branches_w_orgs.pk_praxis_branch
-, branches_w_orgs.branch
-, branches_w_orgs.pk_org_unit
-, branches_w_orgs.pk_category_unit
-, branches_w_orgs.pk_address
-, branches_w_orgs.pk_org
-, branches_w_orgs.xmin_praxis_branch
-, branches_w_orgs.xmin_org_unit
-, branches_w_orgs.praxis
-, branches_w_orgs.pk_category_org
-, d_ocat.description AS organization_category
-, _
+,
+    branches_w_orgs.branch
+,
+    branches_w_orgs.pk_org_unit
+,
+    branches_w_orgs.pk_category_unit
+,
+    branches_w_orgs.pk_address
+,
+    branches_w_orgs.pk_org
+,
+    branches_w_orgs.xmin_praxis_branch
+,
+    branches_w_orgs.xmin_org_unit
+,
+    branches_w_orgs.praxis
+,
+    branches_w_orgs.pk_category_org
+,
+    d_ocat.description AS organization_category
+,
+    _
 (d_ocat.description) AS l10n_organization_category
-, d_ucat.description AS unit_category
-, _
-(d_ucat.description) AS l10n_unit_category 
+,
+    d_ucat.description AS unit_category
+,
+    _
+(d_ucat.description) AS l10n_unit_category
+   
 FROM (
      (
            (
             SELECT branches_w_units.pk_praxis_branch
-                 , branches_w_units.branch
-                 , branches_w_units.pk_org_unit
-                 , branches_w_units.pk_category_unit
-                 , branches_w_units.pk_address
-                 , branches_w_units.pk_org
-                 , branches_w_units.xmin_praxis_branch
-                 , branches_w_units.xmin_org_unit
-                 , d_o.description AS praxis
-                 , d_o.fk_category AS pk_category_org 
+                 ,
+            branches_w_units.branch
+                 ,
+            branches_w_units.pk_org_unit
+                 ,
+            branches_w_units.pk_category_unit
+                 ,
+            branches_w_units.pk_address
+                 ,
+            branches_w_units.pk_org
+                 ,
+            branches_w_units.xmin_praxis_branch
+                 ,
+            branches_w_units.xmin_org_unit
+                 ,
+            d_o.description AS praxis
+                 ,
+            d_o.fk_category AS pk_category_org
+           
               FROM (
                        (
                         SELECT d_pb.pk AS pk_praxis_branch
-                             , d_ou.description AS branch
-                             , d_pb.fk_org_unit AS pk_org_unit
-                             , d_ou.fk_category AS pk_category_unit
-                             , d_ou.fk_address AS pk_address
-                             , d_ou.fk_org AS pk_org
-                             , d_pb.xmin AS xmin_praxis_branch
-                             , d_ou.xmin AS xmin_org_unit 
-                          FROM (dem.praxis_branch d_pb 
+                             ,
+                    d_ou.description AS branch
+                             ,
+                    d_pb.fk_org_unit AS pk_org_unit
+                             ,
+                    d_ou.fk_category AS pk_category_unit
+                             ,
+                    d_ou.fk_address AS pk_address
+                             ,
+                    d_ou.fk_org AS pk_org
+                             ,
+                    d_pb.xmin AS xmin_praxis_branch
+                             ,
+                    d_ou.xmin AS xmin_org_unit
+                   
+                          FROM (dem.praxis_branch d_pb
+                     
                                 JOIN dem.org_unit d_ou 
                                   ON (
                                          (d_pb.fk_org_unit = d_ou.pk)
                                    )
                              )
-                       ) branches_w_units 
+                       ) branches_w_units
+             
                     JOIN dem.org d_o 
                       ON (
                              (d_o.pk = branches_w_units.pk_org)
                        )
                  )
-           ) branches_w_orgs 
+           ) branches_w_orgs
+     
    LEFT JOIN dem.org_category d_ucat 
           ON (
                  (branches_w_orgs.pk_category_unit = d_ucat.pk)
            )
      )
+     
 LEFT JOIN dem.org_category d_ocat 
     ON (
            (branches_w_orgs.pk_category_org = d_ocat.pk)
@@ -104245,6 +123713,225 @@ LEFT JOIN dem.org_category d_ocat
         <hr>
 		<h2>View:
 			
+			<a href="gnumed-entire_schema.html#dem.schema">dem</a>.<a name="dem.view.v-region">v_region</a>
+		</h2>
+        
+         <p>denormalizes region information</p>
+        
+
+
+        <table width="100%" cellspacing="0" cellpadding="3">
+                <caption>dem.v_region Structure</caption>
+                <tr>
+                <th>F-Key</th>
+                <th>Name</th>
+                <th>Type</th>
+                <th>Description</th>
+                </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_region</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>code_region</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>region</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>l10n_region</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>code_country</td>
+            	<td>character(2)</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>country</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>l10n_country</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>country_deprecated</td>
+            	<td>date</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>xmin_region</td>
+            	<td>xid</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+        </table>
+
+        <!-- Inherits -->
+		
+
+		
+
+        <!-- Constraint List -->
+		
+
+        <!-- Foreign Key Discovery -->
+		
+
+    <!-- Indexes -->
+    
+
+	<!-- View Definition -->
+	
+	<pre>
+SELECT d_r.pk AS pk_region
+,
+    d_r.code AS code_region
+,
+    d_r.name AS region
+,
+    _
+(d_r.name) AS l10n_region
+,
+    d_r.country AS code_country
+,
+    c.name AS country
+,
+    _
+(c.name) AS l10n_country
+,
+    c.deprecated AS country_deprecated
+,
+    d_r.xmin AS xmin_region
+   
+FROM (dem.region d_r
+     
+LEFT JOIN dem.country c 
+    ON (
+           (d_r.country = c.code)
+     )
+);</pre>
+	
+
+	<!-- List off permissions -->
+	
+
+	<p>
+		<a href="gnumed-entire_schema.html#index">Index</a> -
+		<a href="gnumed-entire_schema.html#dem.schema">Schema dem</a>
+    </p>
+	
+        <hr>
+		<h2>View:
+			
 			<a href="gnumed-entire_schema.html#dem.schema">dem</a>.<a name="dem.view.v-staff">v_staff</a>
 		</h2>
         
@@ -104457,7 +124144,7 @@ LEFT JOIN dem.org_category d_ocat
 				<td>
                 
                 </td>
-            	<td>can_login</td>
+            	<td>person_is_deleted</td>
             	<td>boolean</td>
                 <td><i>
 				
@@ -104473,6 +124160,22 @@ LEFT JOIN dem.org_category d_ocat
 				<td>
                 
                 </td>
+            	<td>can_login</td>
+            	<td>boolean</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
             	<td>xmin_staff</td>
             	<td>xid</td>
                 <td><i>
@@ -104504,107 +124207,148 @@ LEFT JOIN dem.org_category d_ocat
 	<!-- View Definition -->
 	
 	<pre>
-SELECT vbp.pk_identity
-, s.pk AS pk_staff
-, vbp.title
-, vbp.firstnames
-, vbp.lastnames
-, s.short_alias
-, CASE WHEN 
+SELECT d_vp.pk_identity
+,
+    d_s.pk AS pk_staff
+,
+    d_vp.title
+,
+    d_vp.firstnames
+,
+    d_vp.lastnames
+,
+    d_s.short_alias
+,
+        CASE
+            WHEN 
 (
 SELECT (EXISTS 
            (
-            SELECT 1 
-              FROM pg_group 
+            SELECT 1
+                       
+              FROM pg_group
+                      
              WHERE (
                        (pg_group.groname = 'gm-doctors'::name)
                      AND (
                              (
-                              SELECT pg_user.usesysid 
-                                FROM pg_user 
-                               WHERE (pg_user.usename = s.db_user)
+                              SELECT pg_user.usesysid
+                               
+                                FROM pg_user
+                              
+                               WHERE (pg_user.usename = d_s.db_user)
                              ) = ANY 
                              (pg_group.grolist)
                        )
                  )
            )
-     )
-) THEN 'full clinical access'::text WHEN 
+     ) AS "exists"
+) THEN 'full clinical access'::text
+            WHEN 
 (
 SELECT (EXISTS 
            (
-            SELECT 1 
-              FROM pg_group 
+            SELECT 1
+                       
+              FROM pg_group
+                      
              WHERE (
                        (pg_group.groname = 'gm-nurses'::name)
                      AND (
                              (
-                              SELECT pg_user.usesysid 
-                                FROM pg_user 
-                               WHERE (pg_user.usename = s.db_user)
+                              SELECT pg_user.usesysid
+                               
+                                FROM pg_user
+                              
+                               WHERE (pg_user.usename = d_s.db_user)
                              ) = ANY 
                              (pg_group.grolist)
                        )
                  )
            )
-     )
-) THEN 'limited clinical access'::text WHEN 
+     ) AS "exists"
+) THEN 'limited clinical access'::text
+            WHEN 
 (
 SELECT (EXISTS 
            (
-            SELECT 1 
-              FROM pg_group 
+            SELECT 1
+                       
+              FROM pg_group
+                      
              WHERE (
                        (pg_group.groname = 'gm-staff'::name)
                      AND (
                              (
-                              SELECT pg_user.usesysid 
-                                FROM pg_user 
-                               WHERE (pg_user.usename = s.db_user)
+                              SELECT pg_user.usesysid
+                               
+                                FROM pg_user
+                              
+                               WHERE (pg_user.usename = d_s.db_user)
                              ) = ANY 
                              (pg_group.grolist)
                        )
                  )
            )
-     )
-) THEN 'non-clinical access'::text WHEN 
+     ) AS "exists"
+) THEN 'non-clinical access'::text
+            WHEN 
 (
 SELECT (EXISTS 
            (
-            SELECT 1 
-              FROM pg_group 
+            SELECT 1
+                       
+              FROM pg_group
+                      
              WHERE (
                        (pg_group.groname = 'gm-public'::name)
                      AND (
                              (
-                              SELECT pg_user.usesysid 
-                                FROM pg_user 
-                               WHERE (pg_user.usename = s.db_user)
+                              SELECT pg_user.usesysid
+                               
+                                FROM pg_user
+                              
+                               WHERE (pg_user.usename = d_s.db_user)
                              ) = ANY 
                              (pg_group.grolist)
                        )
                  )
            )
-     )
-) THEN 'public access'::text ELSE NULL::text END AS role
-, vbp.dob
-, vbp.gender
-, s.db_user
-, s.comment
-, s.is_active
-, (
+     ) AS "exists"
+) THEN 'public access'::text
+            ELSE NULL::text
+        END AS role
+,
+    d_vp.dob
+,
+    d_vp.gender
+,
+    d_s.db_user
+,
+    d_s.comment
+,
+    d_s.is_active
+,
+    d_vp.is_deleted AS person_is_deleted
+,
+    
+(
 SELECT (
            (
             SELECT (EXISTS 
                        (
-                        SELECT 1 
-                          FROM pg_group 
+                        SELECT 1
+                           
+                          FROM pg_group
+                          
                          WHERE (
                                    (
                                          (
-                                          SELECT pg_user.usesysid 
-                                            FROM pg_user 
-                                           WHERE (pg_user.usename = s.db_user)
+                                          SELECT pg_user.usesysid
+                                   
+                                            FROM pg_user
+                                  
+                                           WHERE (pg_user.usename = d_s.db_user)
                                          ) = ANY 
                                          (pg_group.grolist)
                                    )
@@ -104613,243 +124357,41 @@ SELECT (
                                    )
                              )
                        )
-                 )
+                 ) AS "exists"
            )
          AND (
             SELECT (EXISTS 
                        (
-                        SELECT 1 
-                          FROM pg_group 
+                        SELECT 1
+                           
+                          FROM pg_group
+                          
                          WHERE (
                                    (
                                          (
-                                          SELECT pg_user.usesysid 
-                                            FROM pg_user 
-                                           WHERE (pg_user.usename = s.db_user)
+                                          SELECT pg_user.usesysid
+                                   
+                                            FROM pg_user
+                                  
+                                           WHERE (pg_user.usename = d_s.db_user)
                                          ) = ANY 
                                          (pg_group.grolist)
                                    )
                                  AND (pg_group.groname = 'gm-logins'::name)
                              )
                        )
-                 )
+                 ) AS "exists"
            )
      )
 ) AS can_login
-, s.xmin AS xmin_staff 
-FROM (dem.staff s 
-  JOIN dem.v_basic_person vbp 
+,
+    d_s.xmin AS xmin_staff
+   
+FROM (dem.staff d_s
+     
+  JOIN dem.v_all_persons d_vp 
     ON (
-           (s.fk_identity = vbp.pk_identity)
-     )
-);</pre>
-	
-
-	<!-- List off permissions -->
-	
-
-	<p>
-		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#dem.schema">Schema dem</a>
-    </p>
-	
-        <hr>
-		<h2>View:
-			
-			<a href="gnumed-entire_schema.html#dem.schema">dem</a>.<a name="dem.view.v-state">v_state</a>
-		</h2>
-        
-         <p>denormalizes state information</p>
-        
-
-
-        <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>dem.v_state Structure</caption>
-                <tr>
-                <th>F-Key</th>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Description</th>
-                </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>pk_state</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>code_state</td>
-            	<td>text</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>state</td>
-            	<td>text</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>l10n_state</td>
-            	<td>text</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>code_country</td>
-            	<td>character(2)</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>country</td>
-            	<td>text</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>l10n_country</td>
-            	<td>text</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>country_deprecated</td>
-            	<td>date</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>xmin_state</td>
-            	<td>xid</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-        </table>
-
-        <!-- Inherits -->
-		
-
-		
-
-        <!-- Constraint List -->
-		
-
-        <!-- Foreign Key Discovery -->
-		
-
-    <!-- Indexes -->
-    
-
-	<!-- View Definition -->
-	
-	<pre>
-SELECT s.id AS pk_state
-, s.code AS code_state
-, s.name AS state
-, _
-(s.name) AS l10n_state
-, s.country AS code_country
-, c.name AS country
-, _
-(c.name) AS l10n_country
-, c.deprecated AS country_deprecated
-, s.xmin AS xmin_state 
-FROM (dem.state s 
-LEFT JOIN dem.country c 
-    ON (
-           (s.country = c.code)
+           (d_s.fk_identity = d_vp.pk_identity)
      )
 );</pre>
 	
@@ -105029,7 +124571,7 @@ LEFT JOIN dem.country c
 				<td>
                 
                 </td>
-            	<td>code_state</td>
+            	<td>code_region</td>
             	<td>text</td>
                 <td><i>
 				
@@ -105045,7 +124587,7 @@ LEFT JOIN dem.country c
 				<td>
                 
                 </td>
-            	<td>state</td>
+            	<td>region</td>
             	<td>text</td>
                 <td><i>
 				
@@ -105061,7 +124603,7 @@ LEFT JOIN dem.country c
 				<td>
                 
                 </td>
-            	<td>l10n_state</td>
+            	<td>l10n_region</td>
             	<td>text</td>
                 <td><i>
 				
@@ -105157,7 +124699,7 @@ LEFT JOIN dem.country c
 				<td>
                 
                 </td>
-            	<td>pk_state</td>
+            	<td>pk_region</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -105204,32 +124746,52 @@ LEFT JOIN dem.country c
 	<!-- View Definition -->
 	
 	<pre>
-SELECT st.id AS pk_street
-, st.name AS street
-, COALESCE
-(st.postcode
-     , vu.postcode_urb
+SELECT d_st.id AS pk_street
+,
+    d_st.name AS street
+,
+    COALESCE
+(d_st.postcode
+     , d_vu.postcode_urb
 ) AS postcode
-, st.postcode AS postcode_street
-, st.lat_lon AS lat_lon_street
-, st.suburb
-, vu.urb
-, vu.postcode_urb
-, vu.lat_lon_urb
-, vu.code_state
-, vu.state
-, vu.l10n_state
-, vu.code_country
-, vu.country
-, vu.l10n_country
-, vu.country_deprecated
-, st.id_urb AS pk_urb
-, vu.pk_state
-, st.xmin AS xmin_street 
-FROM (dem.street st 
-LEFT JOIN dem.v_urb vu 
+,
+    d_st.postcode AS postcode_street
+,
+    d_st.lat_lon AS lat_lon_street
+,
+    d_st.suburb
+,
+    d_vu.urb
+,
+    d_vu.postcode_urb
+,
+    d_vu.lat_lon_urb
+,
+    d_vu.code_region
+,
+    d_vu.region
+,
+    d_vu.l10n_region
+,
+    d_vu.code_country
+,
+    d_vu.country
+,
+    d_vu.l10n_country
+,
+    d_vu.country_deprecated
+,
+    d_st.id_urb AS pk_urb
+,
+    d_vu.pk_region
+,
+    d_st.xmin AS xmin_street
+   
+FROM (dem.street d_st
+     
+LEFT JOIN dem.v_urb d_vu 
     ON (
-           (st.id_urb = vu.pk_urb)
+           (d_st.id_urb = d_vu.pk_urb)
      )
 );</pre>
 	
@@ -105299,7 +124861,7 @@ LEFT JOIN dem.v_urb vu
 				<td>
                 
                 </td>
-            	<td>state</td>
+            	<td>region</td>
             	<td>text</td>
                 <td><i>
 				
@@ -105315,7 +124877,7 @@ LEFT JOIN dem.v_urb vu
 				<td>
                 
                 </td>
-            	<td>code_state</td>
+            	<td>code_region</td>
             	<td>text</td>
                 <td><i>
 				
@@ -105394,38 +124956,49 @@ LEFT JOIN dem.v_urb vu
 	<!-- View Definition -->
 	
 	<pre>
-SELECT urb.postcode
-, urb.name
-, stt.name AS state
-, stt.code AS code_state
-, c.name AS country
-, _
-(c.name) AS l10n_country
-, stt.country AS code_country 
-FROM dem.urb
-, dem.state stt
-, dem.country c 
+SELECT d_u.postcode
+,
+    d_u.name
+,
+    d_r.name AS region
+,
+    d_r.code AS code_region
+,
+    d_c.name AS country
+,
+    _
+(d_c.name) AS l10n_country
+,
+    d_r.country AS code_country
+   
+FROM dem.urb d_u
+,
+    dem.region d_r
+,
+    dem.country d_c
+  
 WHERE (
      (
            (
-                 (urb.postcode IS NOT NULL)
+                 (d_u.postcode IS NOT NULL)
                AND (NOT 
                        (EXISTS 
                              (
-                              SELECT 1 
-                                FROM dem.v_zip2street vz2str
-                                   , dem.urb 
+                              SELECT 1
+           
+                                FROM dem.v_zip2street d_vz2str
+          
                                WHERE (
-                                         (vz2str.postcode = urb.postcode)
-                                       AND (vz2str.urb = urb.name)
+                                         (d_vz2str.postcode = d_u.postcode)
+                                       AND (d_vz2str.urb = d_u.name)
                                    )
                              )
                        )
                  )
            )
-         AND (urb.id_state = stt.id)
+         AND (d_u.fk_region = d_r.pk)
      )
-   AND (stt.country = c.code)
+   AND (d_r.country = d_c.code)
 );</pre>
 	
 
@@ -105524,7 +125097,7 @@ WHERE (
 				<td>
                 
                 </td>
-            	<td>code_state</td>
+            	<td>code_region</td>
             	<td>text</td>
                 <td><i>
 				
@@ -105540,7 +125113,7 @@ WHERE (
 				<td>
                 
                 </td>
-            	<td>state</td>
+            	<td>region</td>
             	<td>text</td>
                 <td><i>
 				
@@ -105556,7 +125129,7 @@ WHERE (
 				<td>
                 
                 </td>
-            	<td>l10n_state</td>
+            	<td>l10n_region</td>
             	<td>text</td>
                 <td><i>
 				
@@ -105636,7 +125209,7 @@ WHERE (
 				<td>
                 
                 </td>
-            	<td>pk_state</td>
+            	<td>pk_region</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -105683,23 +125256,37 @@ WHERE (
 	<!-- View Definition -->
 	
 	<pre>
-SELECT u.id AS pk_urb
-, u.name AS urb
-, u.postcode AS postcode_urb
-, u.lat_lon AS lat_lon_urb
-, vs.code_state
-, vs.state
-, vs.l10n_state
-, vs.code_country
-, vs.country
-, vs.l10n_country
-, vs.country_deprecated
-, u.id_state AS pk_state
-, u.xmin AS xmin_urb 
-FROM (dem.urb u 
-LEFT JOIN dem.v_state vs 
+SELECT d_u.id AS pk_urb
+,
+    d_u.name AS urb
+,
+    d_u.postcode AS postcode_urb
+,
+    d_u.lat_lon AS lat_lon_urb
+,
+    d_vr.code_region
+,
+    d_vr.region
+,
+    d_vr.l10n_region
+,
+    d_vr.code_country
+,
+    d_vr.country
+,
+    d_vr.l10n_country
+,
+    d_vr.country_deprecated
+,
+    d_u.fk_region AS pk_region
+,
+    d_u.xmin AS xmin_urb
+   
+FROM (dem.urb d_u
+     
+LEFT JOIN dem.v_region d_vr 
     ON (
-           (vs.pk_state = u.id_state)
+           (d_vr.pk_region = d_u.fk_region)
      )
 );</pre>
 	
@@ -105799,7 +125386,7 @@ LEFT JOIN dem.v_state vs
 				<td>
                 
                 </td>
-            	<td>state</td>
+            	<td>region</td>
             	<td>text</td>
                 <td><i>
 				
@@ -105815,7 +125402,7 @@ LEFT JOIN dem.v_state vs
 				<td>
                 
                 </td>
-            	<td>code_state</td>
+            	<td>code_region</td>
             	<td>text</td>
                 <td><i>
 				
@@ -105894,26 +125481,47 @@ LEFT JOIN dem.v_state vs
 	<!-- View Definition -->
 	
 	<pre>
-SELECT vz2s.postcode AS zip
-, vz2s.street
-, vz2s.suburb
-, vz2s.urb
-, vz2s.state
-, vz2s.code_state
-, vz2s.country
-, vz2s.l10n_country
-, vz2s.code_country 
-FROM dem.v_zip2street vz2s 
-UNIONSELECT vuzu.postcode AS zip
-, NULL::text AS street
-, NULL::text AS suburb
-, vuzu.name AS urb
-, vuzu.state
-, vuzu.code_state
-, vuzu.country
-, vuzu.l10n_country
-, vuzu.code_country 
-FROM dem.v_uniq_zipped_urbs vuzu;</pre>
+SELECT d_vz2s.postcode AS zip
+,
+    d_vz2s.street
+,
+    d_vz2s.suburb
+,
+    d_vz2s.urb
+,
+    d_vz2s.region
+,
+    d_vz2s.code_region
+,
+    d_vz2s.country
+,
+    d_vz2s.l10n_country
+,
+    d_vz2s.code_country
+   
+FROM dem.v_zip2street d_vz2s
+
+UNION
+ 
+SELECT d_vuzu.postcode AS zip
+,
+    NULL::text AS street
+,
+    NULL::text AS suburb
+,
+    d_vuzu.name AS urb
+,
+    d_vuzu.region
+,
+    d_vuzu.code_region
+,
+    d_vuzu.country
+,
+    d_vuzu.l10n_country
+,
+    d_vuzu.code_country
+   
+FROM dem.v_uniq_zipped_urbs d_vuzu;</pre>
 	
 
 	<!-- List off permissions -->
@@ -105995,7 +125603,7 @@ FROM dem.v_uniq_zipped_urbs vuzu;</pre>
 				<td>
                 
                 </td>
-            	<td>state</td>
+            	<td>region</td>
             	<td>text</td>
                 <td><i>
 				
@@ -106011,7 +125619,7 @@ FROM dem.v_uniq_zipped_urbs vuzu;</pre>
 				<td>
                 
                 </td>
-            	<td>code_state</td>
+            	<td>code_region</td>
             	<td>text</td>
                 <td><i>
 				
@@ -106107,31 +125715,44 @@ FROM dem.v_uniq_zipped_urbs vuzu;</pre>
 	
 	<pre>
 SELECT COALESCE
-(str.postcode
-     , urb.postcode
+(d_str.postcode
+     , d_u.postcode
 ) AS postcode
-, str.name AS street
-, str.suburb
-, stt.name AS state
-, stt.code AS code_state
-, urb.name AS urb
-, c.name AS country
-, _
-(c.name) AS l10n_country
-, stt.country AS code_country 
-FROM dem.street str
-, dem.urb
-, dem.state stt
-, dem.country c 
+,
+    d_str.name AS street
+,
+    d_str.suburb
+,
+    d_r.name AS region
+,
+    d_r.code AS code_region
+,
+    d_u.name AS urb
+,
+    d_c.name AS country
+,
+    _
+(d_c.name) AS l10n_country
+,
+    d_r.country AS code_country
+   
+FROM dem.street d_str
+,
+    dem.urb d_u
+,
+    dem.region d_r
+,
+    dem.country d_c
+  
 WHERE (
      (
            (
-                 (str.postcode IS NOT NULL)
-               AND (str.id_urb = urb.id)
+                 (d_str.postcode IS NOT NULL)
+               AND (d_str.id_urb = d_u.id)
            )
-         AND (urb.id_state = stt.id)
+         AND (d_u.fk_region = d_r.pk)
      )
-   AND (stt.country = c.code)
+   AND (d_r.country = d_c.code)
 );</pre>
 	
 
@@ -106198,7 +125819,7 @@ WHERE (
 				<td>
                 
                 </td>
-            	<td>state</td>
+            	<td>region</td>
             	<td>text</td>
                 <td><i>
 				
@@ -106214,7 +125835,7 @@ WHERE (
 				<td>
                 
                 </td>
-            	<td>code_state</td>
+            	<td>code_region</td>
             	<td>text</td>
                 <td><i>
 				
@@ -106277,22 +125898,31 @@ WHERE (
 	<!-- View Definition -->
 	
 	<pre>
-SELECT urb.postcode
-, urb.name AS urb
-, stt.name AS state
-, stt.code AS code_state
-, _
-(c.name) AS country
-, stt.country AS code_country 
-FROM dem.urb
-, dem.state stt
-, dem.country c 
+SELECT d_u.postcode
+,
+    d_u.name AS urb
+,
+    d_r.name AS region
+,
+    d_r.code AS code_region
+,
+    _
+(d_c.name) AS country
+,
+    d_r.country AS code_country
+   
+FROM dem.urb d_u
+,
+    dem.region d_r
+,
+    dem.country d_c
+  
 WHERE (
      (
-           (urb.postcode IS NOT NULL)
-         AND (urb.id_state = stt.id)
+           (d_u.postcode IS NOT NULL)
+         AND (d_u.fk_region = d_r.pk)
      )
-   AND (stt.country = c.code)
+   AND (d_r.country = d_c.code)
 );</pre>
 	
 
@@ -106373,7 +126003,7 @@ END;</pre>
 the database and returns the primary key if found.
 It takes the following parameters:
 	country code,
-	state code,
+	region code,
 	urb (location),
 	postcode,
 	street,
@@ -106383,7 +126013,7 @@ It takes the following parameters:
         <pre>
 DECLARE
 	_code_country alias for $1;
-	_code_state alias for $2;
+	_code_region alias for $2;
 	_urb alias for $3;
 	_postcode alias for $4;
 	_street alias for $5;
@@ -106393,10 +126023,10 @@ DECLARE
 	_pk_address integer;
 	msg text;
 BEGIN
-	if (_code_country || _code_state || _urb || _postcode || _street || _number) is NULL then
+	if (_code_country || _code_region || _urb || _postcode || _street || _number) is NULL then
 		msg := '[dem.address_exists]: insufficient or invalid address definition: '
 			|| 'country code <' || coalesce(_code_country, 'NULL') || '>, '
-			|| 'state code <' || coalesce(_code_state, 'NULL') || '>, '
+			|| 'region code <' || coalesce(_code_region, 'NULL') || '>, '
 			|| 'urb <' || coalesce(_urb, 'NULL') || '>, '
 			|| 'zip <' || coalesce(_postcode, 'NULL') || '>, '
 			|| 'street <' || coalesce(_street, 'NULL') || '>, '
@@ -106413,7 +126043,7 @@ BEGIN
 		where
 			code_country = trim(_code_country)
 				and
-			code_state = trim(_code_state)
+			code_region = trim(_code_region)
 				and
 			urb = trim(_urb)
 				and
@@ -106432,7 +126062,7 @@ BEGIN
 		where
 			code_country = trim(_code_country)
 				and
-			code_state = trim(_code_state)
+			code_region = trim(_code_region)
 				and
 			urb = trim(_urb)
 				and
@@ -106460,10 +126090,10 @@ It takes the following parameters:
 	street,
 	postcode,
 	urb (location),
-	state code,
+	region code,
 	country code,
 	subunit (can be NULL)
-If the country or the state do not exist
+If the country or the region do not exist
 in the database, the function fails.
 </p>
         <pre>
@@ -106472,7 +126102,7 @@ DECLARE
 	_street ALIAS FOR $2;
 	_postcode ALIAS FOR $3;
 	_urb ALIAS FOR $4;
-	_state_code ALIAS FOR $5;
+	_region_code ALIAS FOR $5;
 	_country_code ALIAS FOR $6;
 	_subunit alias for $7;
 	_street_id integer;
@@ -106482,7 +126112,7 @@ DECLARE
 BEGIN
 	select into _pk_address dem.address_exists (
 		_country_code,
-		_state_code,
+		_region_code,
 		_urb,
 		_postcode,
 		_street,
@@ -106493,8 +126123,8 @@ BEGIN
 		return _pk_address;
 	end if;
 	-- this either creates dem.street and possible dem.urb rows or
-	-- or else it fails (because state and/or country do not exist)
-	select into _street_id dem.create_street(_street, _postcode, _urb, _state_code, _country_code);
+	-- or else it fails (because region and/or country do not exist)
+	select into _street_id dem.create_street(_street, _postcode, _urb, _region_code, _country_code);
 	-- create address
 	__subunit := nullif(trim(_subunit), '');
 	insert into dem.address (
@@ -106607,48 +126237,41 @@ END;</pre>
 		</h2>
 <h3>Returns: integer</h3>
 <h3>Language: PLPGSQL</h3>
-        <p>This function takes a parameters the name of the urb,
-
-	the postcode of the urb, the name of the state and the
-
-	name of the country.
-
-	If the country or the state does not exists in the tables,
-
-	the function fails.
-
-	At first, the urb is tried to be retrieved according to the
-
-	supplied information. If the fields do not match exactly an
-
+        <p>This function takes a parameters the name of the urb,\n
+	the postcode of the urb, the name of the region and the\n
+	name of the country.\n
+	If the country or the region does not exists in the tables,\n
+	the function fails.\n
+	At first, the urb is tried to be retrieved according to the\n
+	supplied information. If the fields do not match exactly an\n
 	existing row, a new urb is created and returned.</p>
         <pre>
 DECLARE
 	_urb ALIAS FOR $1;
 	_urb_postcode ALIAS FOR $2;	
-	_state_code ALIAS FOR $3;
+	_region_code ALIAS FOR $3;
 	_country_code ALIAS FOR $4;
- 	_state_id integer;
+ 	_region_pk integer;
 	_urb_id integer;
 	msg text;
 BEGIN
- 	-- get state
- 	SELECT INTO _state_id s.id from dem.state s WHERE s.code = _state_code and s.country = _country_code;
+ 	-- get region
+ 	SELECT INTO _region_pk d_r.pk from dem.region d_r WHERE d_r.code = _region_code and d_r.country = _country_code;
  	IF NOT FOUND THEN
-		msg := 'combination of state + country not registered ['
+		msg := 'combination of region + country not registered ['
 			||   'country:' || coalesce(_country_code, 'NULL')
-			||   ', state:' || coalesce(_state_code, 'NULL')
+			||  ', region:' || coalesce(_region_code, 'NULL')
 			||     ', urb:' || coalesce(_urb, 'NULL')
 			|| ', urb_zip:' || coalesce(_urb_postcode, 'NULL')
 			|| ']';
 		RAISE EXCEPTION '=> %', msg;
  	END IF;
 	-- get/create and return urb
-	SELECT INTO _urb_id u.id from dem.urb u WHERE u.name ILIKE _urb AND u.id_state = _state_id;
+	SELECT INTO _urb_id u.id from dem.urb u WHERE u.name ILIKE _urb AND u.fk_region = _region_pk;
 	IF FOUND THEN
 		RETURN _urb_id;
 	END IF;
-	INSERT INTO dem.urb (name, postcode, id_state) VALUES (_urb, _urb_postcode, _state_id);
+	INSERT INTO dem.urb (name, postcode, fk_region) VALUES (_urb, _urb_postcode, _region_pk);
 	RETURN currval('dem.urb_id_seq');
 END;</pre>
 	
@@ -106733,31 +126356,31 @@ END;</pre>
 	
 		<hr>
 		<h2>Function:
-			<a href="gnumed-entire_schema.html#dem.schema">dem</a>.<a name="dem.function.gm-upd-default-states">gm_upd_default_states()</a>
+			<a href="gnumed-entire_schema.html#dem.schema">dem</a>.<a name="dem.function.gm-upd-default-regions">gm_upd_default_regions()</a>
 		</h2>
 <h3>Returns: boolean</h3>
 <h3>Language: PLPGSQL</h3>
         
         <pre>
 declare
-	_state_code text;
-	_state_name text;
+	_region_code text;
+	_region_name text;
 	_country_row record;
 begin
-	_state_code := '??';
-	_state_name := 'state/territory/province/region not available';
-	-- add default state to countries needing one
+	_region_code := '??';
+	_region_name := 'state/territory/province/region not available';
+	-- add default region to countries needing one
 	for _country_row in
 		select distinct code from dem.country
 		where code not in (
-			select country from dem.state where code = _state_code
+			select country from dem.region where code = _region_code
 		)
 	loop
-		raise notice 'adding default state for [%]', _country_row.code;
-		execute 'insert into dem.state (code, country, name) values ('
-				|| quote_literal(_state_code) || ', '
+		raise notice 'adding default region for [%]', _country_row.code;
+		execute 'insert into dem.region (code, country, name) values ('
+				|| quote_literal(_region_code) || ', '
 				|| quote_literal(_country_row.code) || ', '
-				|| quote_literal(_state_name) || ');';
+				|| quote_literal(_region_name) || ');';
 	end loop;
 	return true;
 end;
@@ -106765,20 +126388,6 @@ end;
 	
 		<hr>
 		<h2>Function:
-			<a href="gnumed-entire_schema.html#dem.schema">dem</a>.<a name="dem.function.new-pupic">new_pupic()</a>
-		</h2>
-<h3>Returns: bpchar</h3>
-<h3>Language: PLPGSQL</h3>
-        
-        <pre>
-DECLARE
-BEGIN
-   -- how does this work? How do we get new 'unique' numbers?
-   RETURN '0000000000';
-END;</pre>
-	
-		<hr>
-		<h2>Function:
 			<a href="gnumed-entire_schema.html#dem.schema">dem</a>.<a name="dem.function.remove-person-integer">remove_person(integer)</a>
 		</h2>
 <h3>Returns: boolean</h3>
@@ -106928,6 +126537,37 @@ end;</pre>
 	
 		<hr>
 		<h2>Function:
+			<a href="gnumed-entire_schema.html#dem.schema">dem</a>.<a name="dem.function.trf-prevent-deletion-of-in-use-staff">trf_prevent_deletion_of_in_use_staff()</a>
+		</h2>
+<h3>Returns: trigger</h3>
+<h3>Language: PLPGSQL</h3>
+        <p>this function is used to prevent DELETEs of staff members which had been used to store data</p>
+        <pre>
+BEGIN
+	-- does any audited table contain the dem.staff.db_user we are about to delete ?
+	PERFORM 1 FROM audit.audit_fields WHERE modified_by = OLD.db_user LIMIT 1;
+	IF FOUND THEN
+		RAISE EXCEPTION
+			'DELETE from dem.staff: Sanity check failed. User <%> is referenced from <.modified_by> of at least one audited table.', OLD.db_user
+			USING ERRCODE = 'foreign_key_violation'
+		;
+		RETURN NULL;
+	END IF;
+	-- does any audit table contain the dem.staff.db_user we are about to delete ?
+	PERFORM 1 FROM audit.audit_trail WHERE orig_by = OLD.db_user OR audit_by = OLD.db_user LIMIT 1;
+	IF FOUND THEN
+		RAISE EXCEPTION
+			'DELETE from dem.staff: Sanity check failed. User <%> is referenced from <.orig_by> or <.audit_by> of at least one audit table.', OLD.db_user
+			USING ERRCODE = 'foreign_key_violation'
+		;
+		RETURN NULL;
+	END IF;
+	RETURN OLD;
+END;
+</pre>
+	
+		<hr>
+		<h2>Function:
 			<a href="gnumed-entire_schema.html#dem.schema">dem</a>.<a name="dem.function.trf-prevent-multiple-praxi">trf_prevent_multiple_praxi()</a>
 		</h2>
 <h3>Returns: trigger</h3>
@@ -107086,11 +126726,19 @@ END;</pre>
             <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
+                
                 </td>
             	<td>modified_by</td>
             	<td>name</td>
                 <td><i>
 				
+					
+
+					
+				
 
 				NOT NULL
 				DEFAULT "current_user"()
@@ -107165,6 +126813,11 @@ END;</pre>
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>non_empty_user_action</td>
                 <td>CHECK ((gm.is_null_or_blank_string(user_action) IS FALSE))</td>
             </tr>
@@ -107438,6 +127091,45 @@ END;</pre>
 	
 		<hr>
 		<h2>Function:
+			<a href="gnumed-entire_schema.html#gm.schema">gm</a>.<a name="gm.function.account-is-dbowner-or-staff-account-name">account_is_dbowner_or_staff(_account name)</a>
+		</h2>
+<h3>Returns: boolean</h3>
+<h3>Language: PLPGSQL</h3>
+        
+        <pre>
+DECLARE
+	_is_owner boolean;
+BEGIN
+	-- is _account member of current db group ?
+--	PERFORM 1 FROM pg_auth_members
+--	WHERE
+--		roleid = (SELECT oid FROM pg_roles WHERE rolname = current_database())
+--			AND
+--		member = (SELECT oid FROM pg_roles WHERE rolname = _account)
+--	;
+--	IF FOUND THEN
+--		-- should catch people on staff, gm-dbo, and postgres
+--		RETURN TRUE;
+--	END IF;
+	-- postgres
+	IF _account = 'postgres' THEN
+		RETURN TRUE;
+	END IF;
+	-- on staff list
+	PERFORM 1 FROM dem.staff WHERE db_user = _account;
+	IF FOUND THEN
+		RETURN TRUE;
+	END IF;
+	-- owner
+	SELECT pg_catalog.pg_get_userbyid(datdba) = _account INTO STRICT _is_owner FROM pg_catalog.pg_database WHERE datname = current_database();
+	IF _is_owner IS TRUE THEN
+		RETURN TRUE;
+	END IF;
+	RETURN FALSE;
+END;</pre>
+	
+		<hr>
+		<h2>Function:
 			<a href="gnumed-entire_schema.html#gm.schema">gm</a>.<a name="gm.function.add-missing-array-bits">add_missing_array_bits()</a>
 		</h2>
 <h3>Returns: boolean</h3>
@@ -108222,7 +127914,7 @@ BEGIN
 		raise exception undefined_table;
 		return false;
 	end if;
-	-- verify points to clin.encounter.pk
+	-- verify that it points to clin.encounter.pk
 	if not exists (
 		select 1
 		from
@@ -108250,11 +127942,13 @@ BEGIN
 					col_tbl.attrelid = _qualified_table2check::regclass
 			)
 	) then
-		raise warning 'gm.create_enc_epi_sanity_check_trigger(): <%.%> does not point to clin.encounter.pk', _qualified_table2check, _fk_encounter_col;
-		raise exception invalid_foreign_key;
+		raise exception
+			'gm.create_enc_epi_sanity_check_trigger(): <%.%> does not point to clin.encounter.pk', _qualified_table2check, _fk_encounter_col
+			USING ERRCODE = 'invalid_foreign_key'
+		;
 		return false;
 	end if;
-	-- verify points to clin.episode.pk
+	-- verify that it points to clin.episode.pk
 	if not exists (
 		select 1
 		from
@@ -108282,13 +127976,12 @@ BEGIN
 					col_tbl.attrelid = _qualified_table2check::regclass
 			)
 	) then
-		raise warning 'gm.create_enc_epi_sanity_check_trigger(): <%.%> does not point to clin.episode.pk', _qualified_table2check, _fk_episode_col;
-		raise exception invalid_foreign_key;
+		raise exception
+			'gm.create_enc_epi_sanity_check_trigger(): <%.%> does not point to clin.episode.pk', _qualified_table2check, _fk_episode_col
+			USING ERRCODE = 'invalid_foreign_key'
+		;
 		return false;
 	end if;
-	-- drop old trigger (remove in v21)
-	_cmd := 'drop trigger if exists tr_sanity_check_enc_epi_insert on ' || _qualified_table2check || ' cascade';
-	execute _cmd;
 	-- re-create trigger
 	_cmd := 'drop trigger if exists tr_sanity_check_enc_epi_ins_upd on ' || _qualified_table2check || ' cascade';
 	execute _cmd;
@@ -108805,6 +128498,47 @@ input is not NULL and not empty -> FALSE</p>
 	
 		<hr>
 		<h2>Function:
+			<a href="gnumed-entire_schema.html#gm.schema">gm</a>.<a name="gm.function.lo-chunked-md5-oid-integer">lo_chunked_md5(oid, integer)</a>
+		</h2>
+<h3>Returns: text</h3>
+<h3>Language: PLPGSQL</h3>
+        <p>Function to create a chunked md5 sum on arbitrarily large LARGE OBJECTs.</p>
+        <pre>
+DECLARE
+	lo_id alias for $1;
+	chunk_size alias for $2;
+	_lo_fd integer;
+	_lo_size integer;
+	_chunk_count integer;
+	_remainder integer;
+	_md5_concat text;
+	INV_READ constant integer := x'40000'::integer;
+	SEEK_SET constant integer := 0;
+	SEEK_END constant integer := 2;
+BEGIN
+	-- check for existence of lo_id ?
+	_lo_fd := lo_open(lo_id, INV_READ);
+	-- get size
+	_lo_size := lo_lseek(_lo_fd, 0, SEEK_END);
+	PERFORM lo_close(_lo_fd);						-- move further down if loread() proves faster
+	-- calculate chunks and remainder
+	_chunk_count := _lo_size / chunk_size;
+	_remainder := _lo_size % chunk_size;
+	-- loop over chunks
+	_md5_concat := '';
+	FOR _chunk_id in 1.._chunk_count LOOP
+		_md5_concat := _md5_concat || md5(lo_get(lo_id, (_chunk_id - 1) * chunk_size, chunk_size));
+		-- using loread() may be faster (as it directly accesses the
+		-- existing lo_fd and thusly does not need to re-open the LO
+		-- each round)
+	END LOOP;
+	-- add remainder
+	_md5_concat := _md5_concat || md5(lo_get(lo_id, _chunk_count * chunk_size, _remainder));
+	return md5(_md5_concat);
+END;</pre>
+	
+		<hr>
+		<h2>Function:
 			<a href="gnumed-entire_schema.html#gm.schema">gm</a>.<a name="gm.function.log-access2emr-text">log_access2emr(text)</a>
 		</h2>
 <h3>Returns: void</h3>
@@ -109554,17 +129288,23 @@ END;</pre>
 	
 	<pre>
 SELECT icl.lang
-, ik.orig 
+,
+    ik.orig
+   
 FROM (
 SELECT DISTINCT 
-    ON (curr_lang.lang) curr_lang.lang 
+    ON (curr_lang.lang) curr_lang.lang
+           
   FROM i18n.curr_lang
 ) icl
-, i18n.keys ik 
+,
+    i18n.keys ik
+  
 WHERE (NOT 
      (ik.orig IN 
            (
-            SELECT translations.orig 
+            SELECT translations.orig
+           
               FROM i18n.translations
            )
      )
@@ -109862,6 +129602,190 @@ begin
 end;</pre>
 	
 
+<!-- pgtrgmpgtrgm -->
+
+		
+		<hr>
+		<h1>Schema pgtrgm</h1>
+		
+
+		
+		
+
+	<!-- We've gone through the table structure, now lets take a look at user functions -->
+	
+		<hr>
+		<h2>Function:
+			<a href="gnumed-entire_schema.html#pgtrgm.schema">pgtrgm</a>.<a name="pgtrgm.function.gin-extract-query-trgm-text-internal-smallint-internal-internal-internal-internal">gin_extract_query_trgm(text, internal, smallint, internal, internal, internal, internal)</a>
+		</h2>
+<h3>Returns: internal</h3>
+<h3>Language: C</h3>
+        
+        <pre>gin_extract_query_trgm</pre>
+	
+		<hr>
+		<h2>Function:
+			<a href="gnumed-entire_schema.html#pgtrgm.schema">pgtrgm</a>.<a name="pgtrgm.function.gin-extract-value-trgm-text-internal">gin_extract_value_trgm(text, internal)</a>
+		</h2>
+<h3>Returns: internal</h3>
+<h3>Language: C</h3>
+        
+        <pre>gin_extract_value_trgm</pre>
+	
+		<hr>
+		<h2>Function:
+			<a href="gnumed-entire_schema.html#pgtrgm.schema">pgtrgm</a>.<a name="pgtrgm.function.gin-trgm-consistent-internal-smallint-text-integer-internal-internal-internal-internal">gin_trgm_consistent(internal, smallint, text, integer, internal, internal, internal, internal)</a>
+		</h2>
+<h3>Returns: boolean</h3>
+<h3>Language: C</h3>
+        
+        <pre>gin_trgm_consistent</pre>
+	
+		<hr>
+		<h2>Function:
+			<a href="gnumed-entire_schema.html#pgtrgm.schema">pgtrgm</a>.<a name="pgtrgm.function.gtrgm-compress-internal">gtrgm_compress(internal)</a>
+		</h2>
+<h3>Returns: internal</h3>
+<h3>Language: C</h3>
+        
+        <pre>gtrgm_compress</pre>
+	
+		<hr>
+		<h2>Function:
+			<a href="gnumed-entire_schema.html#pgtrgm.schema">pgtrgm</a>.<a name="pgtrgm.function.gtrgm-consistent-internal-text-integer-oid-internal">gtrgm_consistent(internal, text, integer, oid, internal)</a>
+		</h2>
+<h3>Returns: boolean</h3>
+<h3>Language: C</h3>
+        
+        <pre>gtrgm_consistent</pre>
+	
+		<hr>
+		<h2>Function:
+			<a href="gnumed-entire_schema.html#pgtrgm.schema">pgtrgm</a>.<a name="pgtrgm.function.gtrgm-decompress-internal">gtrgm_decompress(internal)</a>
+		</h2>
+<h3>Returns: internal</h3>
+<h3>Language: C</h3>
+        
+        <pre>gtrgm_decompress</pre>
+	
+		<hr>
+		<h2>Function:
+			<a href="gnumed-entire_schema.html#pgtrgm.schema">pgtrgm</a>.<a name="pgtrgm.function.gtrgm-distance-internal-text-integer-oid">gtrgm_distance(internal, text, integer, oid)</a>
+		</h2>
+<h3>Returns: double precision</h3>
+<h3>Language: C</h3>
+        
+        <pre>gtrgm_distance</pre>
+	
+		<hr>
+		<h2>Function:
+			<a href="gnumed-entire_schema.html#pgtrgm.schema">pgtrgm</a>.<a name="pgtrgm.function.gtrgm-in-cstring">gtrgm_in(cstring)</a>
+		</h2>
+<h3>Returns: gtrgm</h3>
+<h3>Language: C</h3>
+        
+        <pre>gtrgm_in</pre>
+	
+		<hr>
+		<h2>Function:
+			<a href="gnumed-entire_schema.html#pgtrgm.schema">pgtrgm</a>.<a name="pgtrgm.function.gtrgm-out-pgtrgm.gtrgm">gtrgm_out(pgtrgm.gtrgm)</a>
+		</h2>
+<h3>Returns: cstring</h3>
+<h3>Language: C</h3>
+        
+        <pre>gtrgm_out</pre>
+	
+		<hr>
+		<h2>Function:
+			<a href="gnumed-entire_schema.html#pgtrgm.schema">pgtrgm</a>.<a name="pgtrgm.function.gtrgm-penalty-internal-internal-internal">gtrgm_penalty(internal, internal, internal)</a>
+		</h2>
+<h3>Returns: internal</h3>
+<h3>Language: C</h3>
+        
+        <pre>gtrgm_penalty</pre>
+	
+		<hr>
+		<h2>Function:
+			<a href="gnumed-entire_schema.html#pgtrgm.schema">pgtrgm</a>.<a name="pgtrgm.function.gtrgm-picksplit-internal-internal">gtrgm_picksplit(internal, internal)</a>
+		</h2>
+<h3>Returns: internal</h3>
+<h3>Language: C</h3>
+        
+        <pre>gtrgm_picksplit</pre>
+	
+		<hr>
+		<h2>Function:
+			<a href="gnumed-entire_schema.html#pgtrgm.schema">pgtrgm</a>.<a name="pgtrgm.function.gtrgm-same-pgtrgm.gtrgm-pgtrgm.gtrgm-internal">gtrgm_same(pgtrgm.gtrgm, pgtrgm.gtrgm, internal)</a>
+		</h2>
+<h3>Returns: internal</h3>
+<h3>Language: C</h3>
+        
+        <pre>gtrgm_same</pre>
+	
+		<hr>
+		<h2>Function:
+			<a href="gnumed-entire_schema.html#pgtrgm.schema">pgtrgm</a>.<a name="pgtrgm.function.gtrgm-union-bytea-internal">gtrgm_union(bytea, internal)</a>
+		</h2>
+<h3>Returns: integer[]</h3>
+<h3>Language: C</h3>
+        
+        <pre>gtrgm_union</pre>
+	
+		<hr>
+		<h2>Function:
+			<a href="gnumed-entire_schema.html#pgtrgm.schema">pgtrgm</a>.<a name="pgtrgm.function.set-limit-real">set_limit(real)</a>
+		</h2>
+<h3>Returns: real</h3>
+<h3>Language: C</h3>
+        
+        <pre>set_limit</pre>
+	
+		<hr>
+		<h2>Function:
+			<a href="gnumed-entire_schema.html#pgtrgm.schema">pgtrgm</a>.<a name="pgtrgm.function.show-limit">show_limit()</a>
+		</h2>
+<h3>Returns: real</h3>
+<h3>Language: C</h3>
+        
+        <pre>show_limit</pre>
+	
+		<hr>
+		<h2>Function:
+			<a href="gnumed-entire_schema.html#pgtrgm.schema">pgtrgm</a>.<a name="pgtrgm.function.show-trgm-text">show_trgm(text)</a>
+		</h2>
+<h3>Returns: text[]</h3>
+<h3>Language: C</h3>
+        
+        <pre>show_trgm</pre>
+	
+		<hr>
+		<h2>Function:
+			<a href="gnumed-entire_schema.html#pgtrgm.schema">pgtrgm</a>.<a name="pgtrgm.function.similarity-text-text">similarity(text, text)</a>
+		</h2>
+<h3>Returns: real</h3>
+<h3>Language: C</h3>
+        
+        <pre>similarity</pre>
+	
+		<hr>
+		<h2>Function:
+			<a href="gnumed-entire_schema.html#pgtrgm.schema">pgtrgm</a>.<a name="pgtrgm.function.similarity-dist-text-text">similarity_dist(text, text)</a>
+		</h2>
+<h3>Returns: real</h3>
+<h3>Language: C</h3>
+        
+        <pre>similarity_dist</pre>
+	
+		<hr>
+		<h2>Function:
+			<a href="gnumed-entire_schema.html#pgtrgm.schema">pgtrgm</a>.<a name="pgtrgm.function.similarity-op-text-text">similarity_op(text, text)</a>
+		</h2>
+<h3>Returns: boolean</h3>
+<h3>Language: C</h3>
+        
+        <pre>similarity_op</pre>
+	
+
 <!-- publicpublic -->
 
 		
@@ -112066,11 +131990,19 @@ end;
             <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
+                
                 </td>
             	<td>modified_by</td>
             	<td>name</td>
                 <td><i>
 				
+					
+
+					
+				
 
 				NOT NULL
 				DEFAULT "current_user"()
@@ -112230,6 +132162,22 @@ end;
 				</td>
 			 </tr>
             
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>recommendation_query</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
         </table>
 
         <!-- Inherits -->
@@ -112257,20 +132205,30 @@ end;
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>ref_auto_hint_sane_hint</td>
                 <td>CHECK ((gm.is_null_or_blank_string(hint) IS FALSE))</td>
             </tr>
 			
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>ref_auto_hint_sane_lang</td>
                 <td>CHECK ((gm.is_null_or_blank_string(lang) IS FALSE))</td>
             </tr>
 			
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>ref_auto_hint_sane_query</td>
                 <td>CHECK ((gm.is_null_or_blank_string(query) IS FALSE))</td>
             </tr>
 			
+            <tr class="tr0">
+				<td>ref_auto_hint_sane_rec_query</td>
+                <td>CHECK (gm.is_null_or_non_empty_string(recommendation_query))</td>
+            </tr>
+			
             <tr class="tr1">
 				<td>ref_auto_hint_sane_source</td>
                 <td>CHECK ((gm.is_null_or_blank_string(source) IS FALSE))</td>
@@ -112669,11 +132627,19 @@ end;
             <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
+                
                 </td>
             	<td>modified_by</td>
             	<td>name</td>
                 <td><i>
 				
+					
+
+					
+				
 
 				NOT NULL
 				DEFAULT "current_user"()
@@ -112855,26 +132821,31 @@ end;
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>desc_not_empty</td>
                 <td>CHECK ((gm.is_null_or_blank_string(description) IS FALSE))</td>
             </tr>
 			
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>drug_sane_external_code</td>
                 <td>CHECK ((gm.is_null_or_non_empty_string(external_code) IS TRUE))</td>
             </tr>
 			
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>drug_sane_external_code_type</td>
                 <td>CHECK ((((external_code IS NULL) AND (external_code_type IS NULL)) OR ((external_code IS NOT NULL) AND (external_code_type IS NOT NULL))))</td>
             </tr>
 			
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>prep_not_empty</td>
                 <td>CHECK ((gm.is_null_or_blank_string(preparation) IS FALSE))</td>
             </tr>
 			
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>sane_atc</td>
                 <td>CHECK ((gm.is_null_or_non_empty_string(atc_code) IS TRUE))</td>
             </tr>
@@ -113480,11 +133451,19 @@ end;
             <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
+                
                 </td>
             	<td>modified_by</td>
             	<td>name</td>
                 <td><i>
 				
+					
+
+					
+				
 
 				NOT NULL
 				DEFAULT "current_user"()
@@ -113636,21 +133615,26 @@ not the use/application formulation thereof.
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>ref_consumable_sane_amount</td>
                 <td>CHECK ((amount >= (0)::numeric))</td>
             </tr>
 			
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>ref_consumable_sane_unit</td>
                 <td>CHECK ((gm.is_null_or_blank_string(unit) IS FALSE))</td>
             </tr>
 			
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>ref_subst_sane_atc</td>
                 <td>CHECK ((gm.is_null_or_non_empty_string(atc_code) IS TRUE))</td>
             </tr>
 			
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>ref_subst_sane_desc</td>
                 <td>CHECK ((gm.is_null_or_blank_string(description) IS FALSE))</td>
             </tr>
@@ -113756,11 +133740,19 @@ not the use/application formulation thereof.
             <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
+                
                 </td>
             	<td>modified_by</td>
             	<td>name</td>
                 <td><i>
 				
+					
+
+					
+				
 
 				NOT NULL
 				DEFAULT "current_user"()
@@ -113939,6 +133931,21 @@ not the use/application formulation thereof.
 
         <!-- Constraint List -->
 		
+        <p> </p>
+		<table width="100%" cellspacing="0" cellpadding="3">
+            <caption>ref.data_source Constraints</caption>
+            <tr>
+            	<th>Name</th>
+            	<th>Constraint</th>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+		</table>
+		
 
         <!-- Foreign Key Discovery -->
 		
@@ -115761,11 +135768,19 @@ If NULL: applies to all providers.
             <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
+                
                 </td>
             	<td>modified_by</td>
             	<td>name</td>
                 <td><i>
 				
+					
+
+					
+				
 
 				NOT NULL
 				DEFAULT "current_user"()
@@ -115879,6 +135894,21 @@ If NULL: applies to all providers.
 
         <!-- Constraint List -->
 		
+        <p> </p>
+		<table width="100%" cellspacing="0" cellpadding="3">
+            <caption>ref.lnk_substance2brand Constraints</caption>
+            <tr>
+            	<th>Name</th>
+            	<th>Constraint</th>
+            </tr>
+			
+            <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+		</table>
+		
 
         <!-- Foreign Key Discovery -->
 		
@@ -117334,11 +137364,19 @@ If NULL: applies to all providers.
             <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
+                
                 </td>
             	<td>modified_by</td>
             	<td>name</td>
                 <td><i>
 				
+					
+
+					
+				
 
 				NOT NULL
 				DEFAULT "current_user"()
@@ -117641,6 +137679,11 @@ If NULL: applies to all providers.
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>ref_templates_engine_range</td>
                 <td>CHECK ((engine = ANY (ARRAY['T'::text, 'L'::text, 'H'::text, 'O'::text, 'I'::text, 'G'::text, 'P'::text, 'A'::text, 'X'::text, 'S'::text])))</td>
             </tr>
@@ -117746,11 +137789,19 @@ If NULL: applies to all providers.
             <tr class="tr1">
 				<td>
                 
+                  
+                  <a href="gnumed-entire_schema.html#dem.table.staff">dem.staff.db_user</a>
+                  
+                
                 </td>
             	<td>modified_by</td>
             	<td>name</td>
                 <td><i>
 				
+					
+
+					
+				
 
 				NOT NULL
 				DEFAULT "current_user"()
@@ -117865,11 +137916,16 @@ If NULL: applies to all providers.
             </tr>
 			
             <tr class="tr0">
+				<td>audit_audit_fields_sane_modified_when</td>
+                <td>CHECK (((modified_when <= clock_timestamp()) IS TRUE))</td>
+            </tr>
+			
+            <tr class="tr1">
 				<td>ref_tag_image_sane_desc</td>
                 <td>CHECK ((gm.is_null_or_blank_string(description) IS FALSE))</td>
             </tr>
 			
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>ref_tag_image_sane_filename</td>
                 <td>CHECK ((gm.is_null_or_non_empty_string(filename) IS TRUE))</td>
             </tr>
@@ -118146,26 +138202,42 @@ If NULL: applies to all providers.
 	
 	<pre>
 SELECT a.pk AS pk_atc
-, a.code AS atc
-, a.term
-, a.administration_route
-, a.comment
-, (octet_length
+,
+    a.code AS atc
+,
+    a.term
+,
+    a.administration_route
+,
+    a.comment
+,
+    
+(octet_length
      (a.code) < 7
 ) AS is_group_code
-, (octet_length
+,
+    
+(octet_length
      (a.code) - 
      (octet_length
            (a.code) / 3
      )
 ) AS atc_level
-, rds.name_long
-, rds.name_short
-, rds.version
-, rds.lang
-, a.pk_coding_system
-, a.fk_data_source AS pk_data_source 
-FROM (ref.atc a 
+,
+    rds.name_long
+,
+    rds.name_short
+,
+    rds.version
+,
+    rds.lang
+,
+    a.pk_coding_system
+,
+    a.fk_data_source AS pk_data_source
+   
+FROM (ref.atc a
+     
   JOIN ref.data_source rds 
     ON (
            (rds.pk = a.fk_data_source)
@@ -118234,7 +138306,7 @@ FROM (ref.atc a
 				<td>
                 
                 </td>
-            	<td>title</td>
+            	<td>recommendation_query</td>
             	<td>text</td>
                 <td><i>
 				
@@ -118250,7 +138322,7 @@ FROM (ref.atc a
 				<td>
                 
                 </td>
-            	<td>hint</td>
+            	<td>title</td>
             	<td>text</td>
                 <td><i>
 				
@@ -118266,7 +138338,7 @@ FROM (ref.atc a
 				<td>
                 
                 </td>
-            	<td>url</td>
+            	<td>hint</td>
             	<td>text</td>
                 <td><i>
 				
@@ -118282,6 +138354,22 @@ FROM (ref.atc a
 				<td>
                 
                 </td>
+            	<td>url</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
             	<td>is_active</td>
             	<td>boolean</td>
                 <td><i>
@@ -118294,7 +138382,7 @@ FROM (ref.atc a
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
@@ -118310,7 +138398,7 @@ FROM (ref.atc a
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                 </td>
@@ -118326,7 +138414,7 @@ FROM (ref.atc a
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
@@ -118342,6 +138430,22 @@ FROM (ref.atc a
 				</td>
 			 </tr>
             
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>recommendation</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
             <tr class="tr1">
 				<td>
                 
@@ -118394,21 +138498,39 @@ FROM (ref.atc a
 	
 	<pre>
 SELECT auto_hint.pk AS pk_auto_hint
-, auto_hint.query
-, auto_hint.title
-, auto_hint.hint
-, auto_hint.url
-, auto_hint.is_active
-, auto_hint.source
-, auto_hint.lang
-, NULL::text AS rationale4suppression
-, md5
+,
+    auto_hint.query
+,
+    auto_hint.recommendation_query
+,
+    auto_hint.title
+,
+    auto_hint.hint
+,
+    auto_hint.url
+,
+    auto_hint.is_active
+,
+    auto_hint.source
+,
+    auto_hint.lang
+,
+    NULL::text AS rationale4suppression
+,
+    NULL::text AS recommendation
+,
+    md5
 (
      (
            (
-                 (COALESCE
-                       (auto_hint.query
-                             ,''::text
+                 (
+                       (COALESCE
+                             (auto_hint.query
+                                   ,''::text
+                             ) || COALESCE
+                             (auto_hint.recommendation_query
+                                   ,''::text
+                             )
                        ) || COALESCE
                        (auto_hint.title
                              ,''::text
@@ -118423,7 +138545,9 @@ SELECT auto_hint.pk AS pk_auto_hint
            )
      )
 ) AS md5_sum
-, auto_hint.xmin AS xmin_auto_hint 
+,
+    auto_hint.xmin AS xmin_auto_hint
+   
 FROM ref.auto_hint;</pre>
 	
 
@@ -118744,25 +138868,44 @@ FROM ref.auto_hint;</pre>
 	
 	<pre>
 SELECT r_b.pk AS pk_billable
-, r_b.code AS billable_code
-, r_b.term AS billable_description
-, r_b.amount AS raw_amount
-, (r_b.amount + 
+,
+    r_b.code AS billable_code
+,
+    r_b.term AS billable_description
+,
+    r_b.amount AS raw_amount
+,
+    
+(r_b.amount + 
      (r_b.amount * r_b.vat_multiplier)
 ) AS amount_with_vat
-, r_b.currency
-, r_b.comment
-, r_b.vat_multiplier
-, r_b.active
-, r_b.discountable
-, r_ds.name_long AS catalog_long
-, r_ds.name_short AS catalog_short
-, r_ds.version AS catalog_version
-, r_ds.lang AS catalog_language
-, r_b.fk_data_source AS pk_data_source
-, r_b.pk_coding_system AS pk_coding_system_root
-, r_b.xmin AS xmin_billable 
-FROM (ref.billable r_b 
+,
+    r_b.currency
+,
+    r_b.comment
+,
+    r_b.vat_multiplier
+,
+    r_b.active
+,
+    r_b.discountable
+,
+    r_ds.name_long AS catalog_long
+,
+    r_ds.name_short AS catalog_short
+,
+    r_ds.version AS catalog_version
+,
+    r_ds.lang AS catalog_language
+,
+    r_b.fk_data_source AS pk_data_source
+,
+    r_b.pk_coding_system AS pk_coding_system_root
+,
+    r_b.xmin AS xmin_billable
+   
+FROM (ref.billable r_b
+     
 LEFT JOIN ref.data_source r_ds 
     ON (
            (r_b.fk_data_source = r_ds.pk)
@@ -119007,13 +139150,21 @@ LEFT JOIN ref.data_source r_ds
 	
 	<pre>
 SELECT r_bd.pk AS pk_brand
-, r_bd.description AS brand
-, r_bd.preparation
-, r_bd.atc_code AS atc
-, r_bd.external_code
-, r_bd.external_code_type
-, r_bd.is_fake AS is_fake_brand
-, (
+,
+    r_bd.description AS brand
+,
+    r_bd.preparation
+,
+    r_bd.atc_code AS atc
+,
+    r_bd.external_code
+,
+    r_bd.external_code_type
+,
+    r_bd.is_fake AS is_fake_brand
+,
+    
+(
 SELECT array_agg
      (
            (
@@ -119030,29 +139181,43 @@ SELECT array_agg
                        ,''::text
                  )
            )
-     ) AS array_agg 
-  FROM (ref.lnk_substance2brand r_ls2b 
+     ) AS array_agg
+           
+  FROM (ref.lnk_substance2brand r_ls2b
+             
         JOIN ref.consumable_substance r_cs 
           ON (
                  (r_ls2b.fk_substance = r_cs.pk)
            )
      )
+          
  WHERE (r_ls2b.fk_brand = r_bd.pk)
 ) AS components
-, (
+,
+    
+(
 SELECT array_agg
-     (r_ls2b.pk) AS array_agg 
-  FROM ref.lnk_substance2brand r_ls2b 
+     (r_ls2b.pk) AS array_agg
+           
+  FROM ref.lnk_substance2brand r_ls2b
+          
  WHERE (r_ls2b.fk_brand = r_bd.pk)
 ) AS pk_components
-, (
+,
+    
+(
 SELECT array_agg
-     (r_ls2b.fk_substance) AS array_agg 
-  FROM ref.lnk_substance2brand r_ls2b 
+     (r_ls2b.fk_substance) AS array_agg
+           
+  FROM ref.lnk_substance2brand r_ls2b
+          
  WHERE (r_ls2b.fk_brand = r_bd.pk)
 ) AS pk_substances
-, r_bd.fk_data_source AS pk_data_source
-, r_bd.xmin AS xmin_branded_drug 
+,
+    r_bd.fk_data_source AS pk_data_source
+,
+    r_bd.xmin AS xmin_branded_drug
+   
 FROM ref.branded_drug r_bd;</pre>
 	
 
@@ -119215,32 +139380,51 @@ FROM ref.branded_drug r_bd;</pre>
 	
 	<pre>
 SELECT r_csr.code
-, r_csr.term
-, r_ds.name_short AS coding_system
-, r_ds.name_long AS coding_system_long
-, r_ds.version
-, r_ds.lang
-, r_csr.pk_coding_system AS pk_generic_code 
-FROM (ref.coding_system_root r_csr 
+,
+    r_csr.term
+,
+    r_ds.name_short AS coding_system
+,
+    r_ds.name_long AS coding_system_long
+,
+    r_ds.version
+,
+    r_ds.lang
+,
+    r_csr.pk_coding_system AS pk_generic_code
+   
+FROM (ref.coding_system_root r_csr
+     
   JOIN ref.data_source r_ds 
     ON (
            (r_csr.fk_data_source = r_ds.pk)
      )
 )
-UNIONSELECT ri.code
-, r_it.synonym AS term
-, r_ds.name_short AS coding_system
-, r_ds.name_long AS coding_system_long
-, r_ds.version
-, r_ds.lang
-, r_it.fk_code AS pk_generic_code 
+UNION
+ 
+SELECT ri.code
+,
+    r_it.synonym AS term
+,
+    r_ds.name_short AS coding_system
+,
+    r_ds.name_long AS coding_system_long
+,
+    r_ds.version
+,
+    r_ds.lang
+,
+    r_it.fk_code AS pk_generic_code
+   
 FROM (
-     (ref.icpc_thesaurus r_it 
+     (ref.icpc_thesaurus r_it
+     
    LEFT JOIN ref.icpc ri 
           ON (
                  (r_it.fk_code = ri.pk_coding_system)
            )
      )
+     
 LEFT JOIN ref.data_source r_ds 
     ON (
            (ri.fk_data_source = r_ds.pk)
@@ -119549,34 +139733,56 @@ LEFT JOIN ref.data_source r_ds
 	
 	<pre>
 SELECT r_ls2b.pk AS pk_component
-, r_bd.description AS brand
-, r_cs.description AS substance
-, r_cs.amount
-, r_cs.unit
-, r_bd.preparation
-, r_cs.atc_code AS atc_substance
-, r_bd.atc_code AS atc_brand
-, r_bd.external_code AS external_code_brand
-, r_bd.external_code_type AS external_code_type_brand
-, r_bd.is_fake AS is_fake_brand
-, (EXISTS 
+,
+    r_bd.description AS brand
+,
+    r_cs.description AS substance
+,
+    r_cs.amount
+,
+    r_cs.unit
+,
+    r_bd.preparation
+,
+    r_cs.atc_code AS atc_substance
+,
+    r_bd.atc_code AS atc_brand
+,
+    r_bd.external_code AS external_code_brand
+,
+    r_bd.external_code_type AS external_code_type_brand
+,
+    r_bd.is_fake AS is_fake_brand
+,
+    
+(EXISTS 
      (
-      SELECT 1 
-        FROM clin.substance_intake c_si 
-       WHERE (c_si.fk_drug_component = r_ls2b.pk) LIMIT 1
+      SELECT 1
+           
+        FROM clin.substance_intake c_si
+          
+       WHERE (c_si.fk_drug_component = r_ls2b.pk)
+         LIMIT 1
      )
 ) AS is_in_use
-, r_ls2b.fk_brand AS pk_brand
-, r_cs.pk AS pk_consumable_substance
-, r_bd.fk_data_source AS pk_data_source
-, r_ls2b.xmin AS xmin_lnk_substance2brand 
+,
+    r_ls2b.fk_brand AS pk_brand
+,
+    r_cs.pk AS pk_consumable_substance
+,
+    r_bd.fk_data_source AS pk_data_source
+,
+    r_ls2b.xmin AS xmin_lnk_substance2brand
+   
 FROM (
-     (ref.consumable_substance r_cs 
+     (ref.consumable_substance r_cs
+     
         JOIN ref.lnk_substance2brand r_ls2b 
           ON (
                  (r_cs.pk = r_ls2b.fk_substance)
            )
      )
+     
 LEFT JOIN ref.branded_drug r_bd 
     ON (
            (r_ls2b.fk_brand = r_bd.pk)
@@ -119775,15 +139981,26 @@ LEFT JOIN ref.branded_drug r_bd
 	
 	<pre>
 SELECT r_csr.pk_coding_system AS pk_generic_code
-, r_csr.code
-, r_csr.term
-, r_ds.name_long
-, r_ds.name_short
-, r_ds.version
-, r_ds.lang
-, (r_csr.tableoid)::regclass AS code_table
-, r_csr.fk_data_source AS pk_data_source 
-FROM (ref.coding_system_root r_csr 
+,
+    r_csr.code
+,
+    r_csr.term
+,
+    r_ds.name_long
+,
+    r_ds.name_short
+,
+    r_ds.version
+,
+    r_ds.lang
+,
+    
+(r_csr.tableoid)::regclass AS code_table
+,
+    r_csr.fk_data_source AS pk_data_source
+   
+FROM (ref.coding_system_root r_csr
+     
   JOIN ref.data_source r_ds 
     ON (
            (r_ds.pk = r_csr.fk_data_source)
@@ -120222,48 +140439,76 @@ FROM (ref.coding_system_root r_csr
 	
 	<pre>
 SELECT ri.code
-, ri.code_extension
-, (ri.code || COALESCE
+,
+    ri.code_extension
+,
+    
+(ri.code || COALESCE
      (ri.code_extension
            ,''::text
      )
 ) AS extended_code
-, ri.term
-, ri.short_description
-, ri.fk_chapter AS code_chapter
-, rich.description AS chapter
-, _
+,
+    ri.term
+,
+    ri.short_description
+,
+    ri.fk_chapter AS code_chapter
+,
+    rich.description AS chapter
+,
+    _
 (rich.description) AS l10n_chapter
-, ri.fk_component AS code_component
-, rico.description AS component
-, _
+,
+    ri.fk_component AS code_component
+,
+    rico.description AS component
+,
+    _
 (rico.description) AS l10n_component
-, rico.typical_soap_cat
-, ri.icd10
-, ri.criteria
-, ri.inclusions
-, ri.exclusions
-, ri.see_also
-, ri.comment
-, rds.name_short
-, rds.name_long
-, rds.version
-, rds.lang
-, ri.pk AS pk_icpc
-, ri.fk_data_source AS pk_data_source 
+,
+    rico.typical_soap_cat
+,
+    ri.icd10
+,
+    ri.criteria
+,
+    ri.inclusions
+,
+    ri.exclusions
+,
+    ri.see_also
+,
+    ri.comment
+,
+    rds.name_short
+,
+    rds.name_long
+,
+    rds.version
+,
+    rds.lang
+,
+    ri.pk AS pk_icpc
+,
+    ri.fk_data_source AS pk_data_source
+   
 FROM (
      (
-           (ref.icpc ri 
+           (ref.icpc ri
+     
               JOIN ref.data_source rds 
                 ON (
                        (ri.fk_data_source = rds.pk)
                  )
            )
+     
         JOIN ref.icpc_chapter rich 
           ON (
                  (ri.fk_chapter = rich.chapter)
            )
      )
+     
   JOIN ref.icpc_component rico 
     ON (
            (ri.fk_component = rico.component)
@@ -120429,19 +140674,278 @@ FROM (
 	<!-- View Definition -->
 	
 	<pre>
-SELECT rit.pk AS pk_icpc_thesaurus
-, ri.code
-, ri.term
-, rit.synonym
-, rit.pk_thesaurus
-, rit.fk_code AS pk_coding_system
-, ri.pk AS pk_icpc 
-FROM (ref.icpc_thesaurus rit 
-  JOIN ref.icpc ri 
-    ON (
-           (rit.fk_code = ri.pk_coding_system)
-     )
-);</pre>
+SELECT rit.pk AS pk_icpc_thesaurus
+,
+    ri.code
+,
+    ri.term
+,
+    rit.synonym
+,
+    rit.pk_thesaurus
+,
+    rit.fk_code AS pk_coding_system
+,
+    ri.pk AS pk_icpc
+   
+FROM (ref.icpc_thesaurus rit
+     
+  JOIN ref.icpc ri 
+    ON (
+           (rit.fk_code = ri.pk_coding_system)
+     )
+);</pre>
+	
+
+	<!-- List off permissions -->
+	
+
+	<p>
+		<a href="gnumed-entire_schema.html#index">Index</a> -
+		<a href="gnumed-entire_schema.html#ref.schema">Schema ref</a>
+    </p>
+	
+        <hr>
+		<h2>View:
+			
+			<a href="gnumed-entire_schema.html#ref.schema">ref</a>.<a name="ref.view.v-keyword-expansions">v_keyword_expansions</a>
+		</h2>
+        
+         <p>Just a slightly more convenient view over expansions.</p>
+        
+
+
+        <table width="100%" cellspacing="0" cellpadding="3">
+                <caption>ref.v_keyword_expansions Structure</caption>
+                <tr>
+                <th>F-Key</th>
+                <th>Name</th>
+                <th>Type</th>
+                <th>Description</th>
+                </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>pk_expansion</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>pk_staff</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>keyword</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>expansion</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>is_encrypted</td>
+            	<td>boolean</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>is_textual</td>
+            	<td>boolean</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>data_size</td>
+            	<td>integer</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>public_expansion</td>
+            	<td>boolean</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>private_expansion</td>
+            	<td>boolean</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr1">
+				<td>
+                
+                </td>
+            	<td>owner</td>
+            	<td>text</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+            <tr class="tr0">
+				<td>
+                
+                </td>
+            	<td>xmin_expansion</td>
+            	<td>xid</td>
+                <td><i>
+				
+
+				
+				
+				</i>
+				
+				</td>
+			 </tr>
+            
+        </table>
+
+        <!-- Inherits -->
+		
+
+		
+
+        <!-- Constraint List -->
+		
+
+        <!-- Foreign Key Discovery -->
+		
+
+    <!-- Indexes -->
+    
+
+	<!-- View Definition -->
+	
+	<pre>
+SELECT r_ke.pk AS pk_expansion
+,
+    r_ke.fk_staff AS pk_staff
+,
+    r_ke.keyword
+,
+    r_ke.textual_data AS expansion
+,
+    r_ke.encrypted AS is_encrypted
+,
+    
+(r_ke.binary_data IS NULL) AS is_textual
+,
+    octet_length
+(r_ke.binary_data) AS data_size
+,
+    
+(r_ke.fk_staff IS NULL) AS public_expansion
+,
+    
+(r_ke.fk_staff IS NOT NULL) AS private_expansion
+,
+    r_ke.owner
+,
+    r_ke.xmin AS xmin_expansion
+   
+FROM ref.keyword_expansion r_ke;</pre>
 	
 
 	<!-- List off permissions -->
@@ -120455,15 +140959,13 @@ FROM (ref.icpc_thesaurus rit
         <hr>
 		<h2>View:
 			
-			<a href="gnumed-entire_schema.html#ref.schema">ref</a>.<a name="ref.view.v-keyword-expansions">v_keyword_expansions</a>
+			<a href="gnumed-entire_schema.html#ref.schema">ref</a>.<a name="ref.view.v-paperwork-templates">v_paperwork_templates</a>
 		</h2>
         
-         <p>Just a slightly more convenient view over expansions.</p>
-        
 
 
         <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>ref.v_keyword_expansions Structure</caption>
+                <caption>ref.v_paperwork_templates Structure</caption>
                 <tr>
                 <th>F-Key</th>
                 <th>Name</th>
@@ -120475,23 +140977,7 @@ FROM (ref.icpc_thesaurus rit
 				<td>
                 
                 </td>
-            	<td>pk_expansion</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>pk_staff</td>
+            	<td>pk_paperwork_template</td>
             	<td>integer</td>
                 <td><i>
 				
@@ -120503,27 +140989,11 @@ FROM (ref.icpc_thesaurus rit
 				</td>
 			 </tr>
             
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>keyword</td>
-            	<td>text</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
             <tr class="tr1">
 				<td>
                 
                 </td>
-            	<td>expansion</td>
+            	<td>name_short</td>
             	<td>text</td>
                 <td><i>
 				
@@ -120539,87 +141009,7 @@ FROM (ref.icpc_thesaurus rit
 				<td>
                 
                 </td>
-            	<td>is_encrypted</td>
-            	<td>boolean</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>is_textual</td>
-            	<td>boolean</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>data_size</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>public_expansion</td>
-            	<td>boolean</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>private_expansion</td>
-            	<td>boolean</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr1">
-				<td>
-                
-                </td>
-            	<td>owner</td>
+            	<td>name_long</td>
             	<td>text</td>
                 <td><i>
 				
@@ -120631,102 +141021,11 @@ FROM (ref.icpc_thesaurus rit
 				</td>
 			 </tr>
             
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>xmin_expansion</td>
-            	<td>xid</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-        </table>
-
-        <!-- Inherits -->
-		
-
-		
-
-        <!-- Constraint List -->
-		
-
-        <!-- Foreign Key Discovery -->
-		
-
-    <!-- Indexes -->
-    
-
-	<!-- View Definition -->
-	
-	<pre>
-SELECT r_ke.pk AS pk_expansion
-, r_ke.fk_staff AS pk_staff
-, r_ke.keyword
-, r_ke.textual_data AS expansion
-, r_ke.encrypted AS is_encrypted
-, (r_ke.binary_data IS NULL) AS is_textual
-, octet_length
-(r_ke.binary_data) AS data_size
-, (r_ke.fk_staff IS NULL) AS public_expansion
-, (r_ke.fk_staff IS NOT NULL) AS private_expansion
-, r_ke.owner
-, r_ke.xmin AS xmin_expansion 
-FROM ref.keyword_expansion r_ke;</pre>
-	
-
-	<!-- List off permissions -->
-	
-
-	<p>
-		<a href="gnumed-entire_schema.html#index">Index</a> -
-		<a href="gnumed-entire_schema.html#ref.schema">Schema ref</a>
-    </p>
-	
-        <hr>
-		<h2>View:
-			
-			<a href="gnumed-entire_schema.html#ref.schema">ref</a>.<a name="ref.view.v-paperwork-templates">v_paperwork_templates</a>
-		</h2>
-        
-
-
-        <table width="100%" cellspacing="0" cellpadding="3">
-                <caption>ref.v_paperwork_templates Structure</caption>
-                <tr>
-                <th>F-Key</th>
-                <th>Name</th>
-                <th>Type</th>
-                <th>Description</th>
-                </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
-            	<td>pk_paperwork_template</td>
-            	<td>integer</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
             <tr class="tr1">
 				<td>
                 
                 </td>
-            	<td>name_short</td>
+            	<td>external_version</td>
             	<td>text</td>
                 <td><i>
 				
@@ -120742,8 +141041,8 @@ FROM ref.keyword_expansion r_ke;</pre>
 				<td>
                 
                 </td>
-            	<td>name_long</td>
-            	<td>text</td>
+            	<td>gnumed_revision</td>
+            	<td>double precision</td>
                 <td><i>
 				
 
@@ -120758,22 +141057,6 @@ FROM ref.keyword_expansion r_ke;</pre>
 				<td>
                 
                 </td>
-            	<td>external_version</td>
-            	<td>text</td>
-                <td><i>
-				
-
-				
-				
-				</i>
-				
-				</td>
-			 </tr>
-            
-            <tr class="tr0">
-				<td>
-                
-                </td>
             	<td>template_type</td>
             	<td>text</td>
                 <td><i>
@@ -120786,7 +141069,7 @@ FROM ref.keyword_expansion r_ke;</pre>
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                 </td>
@@ -120802,7 +141085,7 @@ FROM ref.keyword_expansion r_ke;</pre>
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
@@ -120818,7 +141101,7 @@ FROM ref.keyword_expansion r_ke;</pre>
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                 </td>
@@ -120834,7 +141117,7 @@ FROM ref.keyword_expansion r_ke;</pre>
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
@@ -120850,7 +141133,7 @@ FROM ref.keyword_expansion r_ke;</pre>
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                 </td>
@@ -120866,7 +141149,7 @@ FROM ref.keyword_expansion r_ke;</pre>
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
@@ -120882,7 +141165,7 @@ FROM ref.keyword_expansion r_ke;</pre>
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                 </td>
@@ -120898,7 +141181,7 @@ FROM ref.keyword_expansion r_ke;</pre>
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
@@ -120914,7 +141197,7 @@ FROM ref.keyword_expansion r_ke;</pre>
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                 </td>
@@ -120930,7 +141213,7 @@ FROM ref.keyword_expansion r_ke;</pre>
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
@@ -120946,7 +141229,7 @@ FROM ref.keyword_expansion r_ke;</pre>
 				</td>
 			 </tr>
             
-            <tr class="tr1">
+            <tr class="tr0">
 				<td>
                 
                 </td>
@@ -120962,7 +141245,7 @@ FROM ref.keyword_expansion r_ke;</pre>
 				</td>
 			 </tr>
             
-            <tr class="tr0">
+            <tr class="tr1">
 				<td>
                 
                 </td>
@@ -120998,51 +141281,82 @@ FROM ref.keyword_expansion r_ke;</pre>
 	
 	<pre>
 SELECT r_pt.pk AS pk_paperwork_template
-, r_pt.name_short
-, r_pt.name_long
-, r_pt.external_version
-, (
-SELECT form_types.name 
-  FROM ref.form_types 
- WHERE (form_types.pk = r_pt.fk_template_type)
+,
+    r_pt.name_short
+,
+    r_pt.name_long
+,
+    r_pt.external_version
+,
+    r_pt.gnumed_revision
+,
+    
+(
+SELECT r_ft.name
+           
+  FROM ref.form_types r_ft
+          
+ WHERE (r_ft.pk = r_pt.fk_template_type)
 ) AS template_type
-, (
+,
+    
+(
 SELECT _
-     (form_types.name) AS _ 
-  FROM ref.form_types 
- WHERE (form_types.pk = r_pt.fk_template_type)
+     (r_ft.name) AS _
+           
+  FROM ref.form_types r_ft
+          
+ WHERE (r_ft.pk = r_pt.fk_template_type)
 ) AS l10n_template_type
-, COALESCE
+,
+    COALESCE
 (r_pt.instance_type
      , (
-      SELECT form_types.name 
-        FROM ref.form_types 
-       WHERE (form_types.pk = r_pt.fk_template_type)
+      SELECT r_ft.name
+           
+        FROM ref.form_types r_ft
+          
+       WHERE (r_ft.pk = r_pt.fk_template_type)
      )
 ) AS instance_type
-, COALESCE
+,
+    COALESCE
 (_
      (r_pt.instance_type)
      , (
       SELECT _
-           (form_types.name) AS _ 
-        FROM ref.form_types 
-       WHERE (form_types.pk = r_pt.fk_template_type)
+           (r_ft.name) AS _
+           
+        FROM ref.form_types r_ft
+          
+       WHERE (r_ft.pk = r_pt.fk_template_type)
      )
 ) AS l10n_instance_type
-, r_pt.engine
-, r_pt.in_use
-, r_pt.edit_after_substitution
-, r_pt.filename
-, CASE WHEN 
-(r_pt.data IS NOT NULL) THEN true ELSE false END AS has_template_data
-, r_pt.modified_when AS last_modified
-, COALESCE
+,
+    r_pt.engine
+,
+    r_pt.in_use
+,
+    r_pt.edit_after_substitution
+,
+    r_pt.filename
+,
+        CASE
+            WHEN 
+(r_pt.data IS NOT NULL) THEN true
+            ELSE false
+        END AS has_template_data
+,
+    r_pt.modified_when AS last_modified
+,
+    COALESCE
 (
      (
-      SELECT staff.short_alias 
-        FROM dem.staff 
-       WHERE (staff.db_user = r_pt.modified_by)
+      SELECT d_s.short_alias
+           
+        FROM dem.staff d_s
+          
+       WHERE (d_s.db_user = r_pt.modified_by)
      )
      , (
            ('<'::text || 
@@ -121050,8 +141364,11 @@ SELECT _
            ) || '>'::text
      )
 ) AS modified_by
-, r_pt.fk_template_type AS pk_template_type
-, r_pt.xmin AS xmin_paperwork_template 
+,
+    r_pt.fk_template_type AS pk_template_type
+,
+    r_pt.xmin AS xmin_paperwork_template
+   
 FROM ref.paperwork_templates r_pt;</pre>
 	
 
@@ -121212,24 +141529,35 @@ FROM ref.paperwork_templates r_pt;</pre>
 	
 	<pre>
 SELECT rti.pk AS pk_tag_image
-, rti.description
-, _
+,
+    rti.description
+,
+    _
 (rti.description) AS l10n_description
-, rti.filename
-, octet_length
+,
+    rti.filename
+,
+    octet_length
 (COALESCE
      (rti.image
            ,'\x'::bytea
      )
 ) AS size
-, (EXISTS 
+,
+    
+(EXISTS 
      (
-      SELECT 1 
-        FROM dem.identity_tag dit 
-       WHERE (dit.fk_tag = rti.pk) LIMIT 1
+      SELECT 1
+           
+        FROM dem.identity_tag dit
+          
+       WHERE (dit.fk_tag = rti.pk)
+         LIMIT 1
      )
 ) AS is_in_use
-, rti.xmin AS xmin_tag_image 
+,
+    rti.xmin AS xmin_tag_image
+   
 FROM ref.tag_image rti;</pre>
 	
 
@@ -121459,53 +141787,96 @@ public expansion of the same keyword.</p>
 	<pre>
 SELECT DISTINCT 
 ON (union_result.keyword) union_result.pk_expansion
-, union_result.pk_staff
-, union_result.keyword
-, union_result.expansion
-, union_result.is_encrypted
-, union_result.is_textual
-, union_result.data_size
-, union_result.public_expansion
-, union_result.private_expansion
-, union_result.owner
-, union_result.xmin_expansion 
+,
+    union_result.pk_staff
+,
+    union_result.keyword
+,
+    union_result.expansion
+,
+    union_result.is_encrypted
+,
+    union_result.is_textual
+,
+    union_result.data_size
+,
+    union_result.public_expansion
+,
+    union_result.private_expansion
+,
+    union_result.owner
+,
+    union_result.xmin_expansion
+   
 FROM (
 SELECT r_ke.pk AS pk_expansion
-     , r_ke.fk_staff AS pk_staff
-     , r_ke.keyword
-     , r_ke.textual_data AS expansion
-     , r_ke.encrypted AS is_encrypted
-     , (r_ke.binary_data IS NULL) AS is_textual
-     , octet_length
+     ,
+            r_ke.fk_staff AS pk_staff
+     ,
+            r_ke.keyword
+     ,
+            r_ke.textual_data AS expansion
+     ,
+            r_ke.encrypted AS is_encrypted
+     ,
+            
+     (r_ke.binary_data IS NULL) AS is_textual
+     ,
+            octet_length
      (r_ke.binary_data) AS data_size
-     , false AS public_expansion
-     , true AS private_expansion
-     , r_ke.owner
-     , r_ke.xmin AS xmin_expansion 
-  FROM ref.keyword_expansion r_ke 
+     ,
+            false AS public_expansion
+     ,
+            true AS private_expansion
+     ,
+            r_ke.owner
+     ,
+            r_ke.xmin AS xmin_expansion
+           
+  FROM ref.keyword_expansion r_ke
+          
  WHERE (r_ke.fk_staff = 
            (
-            SELECT staff.pk 
-              FROM dem.staff 
+            SELECT staff.pk
+                   
+              FROM dem.staff
+                  
              WHERE (staff.db_user = "current_user"
                        ()
                  )
            )
      )
-UNION ALLSELECT r_ke.pk AS pk_expansion
-     , r_ke.fk_staff AS pk_staff
-     , r_ke.keyword
-     , r_ke.textual_data AS expansion
-     , r_ke.encrypted AS is_encrypted
-     , (r_ke.binary_data IS NULL) AS is_textual
-     , octet_length
+        
+UNION ALL
+         
+SELECT r_ke.pk AS pk_expansion
+     ,
+            r_ke.fk_staff AS pk_staff
+     ,
+            r_ke.keyword
+     ,
+            r_ke.textual_data AS expansion
+     ,
+            r_ke.encrypted AS is_encrypted
+     ,
+            
+     (r_ke.binary_data IS NULL) AS is_textual
+     ,
+            octet_length
      (r_ke.binary_data) AS data_size
-     , true AS public_expansion
-     , false AS private_expansion
-     , r_ke.owner
-     , r_ke.xmin AS xmin_expansion 
-  FROM ref.keyword_expansion r_ke 
+     ,
+            true AS public_expansion
+     ,
+            false AS private_expansion
+     ,
+            r_ke.owner
+     ,
+            r_ke.xmin AS xmin_expansion
+           
+  FROM ref.keyword_expansion r_ke
+          
  WHERE (r_ke.fk_staff IS NULL)
+  
 ORDER BY 9 DESC
 ) union_result;</pre>
 	
diff --git a/client/etc/gnumed/gnumed-client.conf.example b/client/etc/gnumed/gnumed-client.conf.example
index 4993098..47806f8 100644
--- a/client/etc/gnumed/gnumed-client.conf.example
+++ b/client/etc/gnumed/gnumed-client.conf.example
@@ -20,7 +20,7 @@
 
 # -------------------------------------------------------------
 [preferences]
-profile = GNUmed database at publicdb.gnumed.de (PUBLIC) (gnumed_v20 at publicdb.gnumed.de)
+profile = GNUmed database on this machine ("local": Linux/Mac) (gnumed_v21@)
 login = any-doc
 
 
@@ -69,7 +69,7 @@ $profiles$
 
 host = 
 port = 5432
-database = gnumed_v20
+database = gnumed_v21
 public/open access = 0
 help desk = Your own IT support <needs configuration>
 last known workplaces = $last known workplaces$
@@ -85,7 +85,7 @@ $last known workplaces$
 
 host = 127.0.0.1
 port = 5432
-database = gnumed_v20
+database = gnumed_v21
 public/open access = 0
 help desk = Your own IT support <needs configuration>
 
@@ -102,7 +102,7 @@ host = publicdb.gnumed.de
 # there are several PostgreSQL instances running
 # on a database server
 port = 5432
-database = gnumed_v20
+database = gnumed_v21
 # public/open access controls exception message and log handling
 # 0 --> message by default goes to public list if no receiver given
 # 0 (1) --> log is (not) included by default, which user can override
diff --git a/client/exporters/gmPatientExporter.py b/client/exporters/gmPatientExporter.py
index 2d8a43e..2db8ded 100644
--- a/client/exporters/gmPatientExporter.py
+++ b/client/exporters/gmPatientExporter.py
@@ -1,35 +1,37 @@
-"""GNUmed simple ASCII EMR export tool.
+__doc__ = """GNUmed simple ASCII EMR export tool.
 
 TODO:
-- GUI mode:
-  - post-0.1 !
-  - allow user to select patient
-  - allow user to pick episodes/encounters/etc from list
 - output modes:
   - HTML - post-0.1 !
 """
 #============================================================
-__author__ = "Carlos Moro"
-__license__ = 'GPL'
+__author__ = "Carlos Moro, Karsten Hilbert"
+__license__ = 'GPL v2 or later'
 
-import os.path, sys, types, time, codecs, datetime as pyDT, logging, shutil
-
-
-import mx.DateTime.Parser as mxParser
-import mx.DateTime as mxDT
+import os.path
+import sys
+import types
+import time
+import io
+import logging
+import shutil
 
 
 if __name__ == '__main__':
 	sys.path.insert(0, '../../')
-
 from Gnumed.pycommon import gmI18N
-
 if __name__ == '__main__':
 	gmI18N.activate_locale()
 	gmI18N.install_domain()
+from Gnumed.pycommon import gmExceptions
+from Gnumed.pycommon import gmPG2
+from Gnumed.pycommon import gmTools
+from Gnumed.pycommon import gmDateTime
 
-from Gnumed.pycommon import gmExceptions, gmNull, gmPG2, gmTools, gmDateTime
-from Gnumed.business import gmClinicalRecord, gmPerson, gmAllergy, gmDemographicRecord, gmClinNarrative, gmPersonSearch
+from Gnumed.business import gmClinicalRecord
+from Gnumed.business import gmAllergy
+from Gnumed.business import gmDemographicRecord
+from Gnumed.business import gmSoapDefs
 
 
 _log = logging.getLogger('gm.export')
@@ -244,16 +246,16 @@ class cEmrExport:
                 if len(vaccinations[indication]) > vacc_regimes[cont]['shots']: # boosters given
                     all_vreg_boosters[cont] = vaccinations[indication][len(vaccinations[indication])-1]['date'].strftime('%Y-%m-%d') # show last given booster date
                     scheduled_booster = vaccinations4regimes[indication][len(vaccinations4regimes[indication])-1]
-                    booster_date = vaccinations[indication][len(vaccinations[indication])-1]['date'] + scheduled_booster['min_interval']                                        
-                    if booster_date < mxDT.today():
+                    booster_date = vaccinations[indication][len(vaccinations[indication])-1]['date'] + scheduled_booster['min_interval']
+                    if booster_date < gmDateTime.pydt_now_here():
                         all_next_boosters[cont] = '<(' + booster_date.strftime('%Y-%m-%d') + ')>' # next booster is due
                     else:
                         all_next_boosters[cont] = booster_date.strftime('%Y-%m-%d')
                 elif len(vaccinations[indication]) == vacc_regimes[cont]['shots']: # just finished vaccinations, begin boosters
                     all_vreg_boosters[cont] = column_widths[cont+1] * ' '
                     scheduled_booster = vaccinations4regimes[indication][len(vaccinations4regimes[indication])-1]
-                    booster_date = vaccinations[indication][len(vaccinations[indication])-1]['date'] + scheduled_booster['min_interval']                    
-                    if booster_date < mxDT.today():
+                    booster_date = vaccinations[indication][len(vaccinations[indication])-1]['date'] + scheduled_booster['min_interval']
+                    if booster_date < gmDateTime.pydt_now_here():
                         all_next_boosters[cont] = '<(' + booster_date.strftime('%Y-%m-%d') + ')>' # next booster is due
                     else:
                         all_next_boosters[cont] = booster_date.strftime('%Y-%m-%d')
@@ -761,10 +763,10 @@ class cEmrExport:
         if len(unlinked_episodes) > 0:
             h_issues.insert(0, {'description':_('Unattributed episodes'), 'pk_health_issue':None})        
         for a_health_issue in h_issues:
-            self.__target.write('\n' + 3*' ' + 'Health Issue: ' + a_health_issue['description'] + '\n')
+            self.__target.write(u'\n' + 3*' ' + 'Health Issue: ' + a_health_issue['description'] + '\n')
             episodes = emr.get_episodes(id_list=self.__constraints['episodes'], issues = [a_health_issue['pk_health_issue']])
             for an_episode in episodes:
-               self.__target.write('\n' + 6*' ' + 'Episode: ' + an_episode['description'] + '\n')
+               self.__target.write(u'\n' + 6*' ' + 'Episode: ' + an_episode['description'] + '\n')
                if a_health_issue['pk_health_issue'] is None:
                   issues = None
                else:
@@ -803,14 +805,14 @@ class cEmrExport:
                 'Please check the log file for details.'
             ))
             return None
-        self.__target.write('\nOverview\n')
-        self.__target.write('--------\n')
-        self.__target.write("1) Allergy status (for details, see below):\n\n")
+        self.__target.write(u'\nOverview\n')
+        self.__target.write(u'--------\n')
+        self.__target.write(u"1) Allergy status (for details, see below):\n\n")
         for allergy in       emr.get_allergies():
-            self.__target.write("    " + allergy['descriptor'] + "\n\n")
-        self.__target.write("2) Vaccination status (* indicates booster):\n")
+            self.__target.write(u"    " + allergy['descriptor'] + "\n\n")
+        self.__target.write(u"2) Vaccination status (* indicates booster):\n")
 #        self.get_vacc_table()
-        self.__target.write("\n3) Historical:\n\n")
+        self.__target.write(u"\n3) Historical:\n\n")
         self.dump_historical_tree()
 
         try:
@@ -825,23 +827,23 @@ class cEmrExport:
         """
         doc_folder = self.__patient.get_document_folder()
 
-        self.__target.write('\n4) Medical documents: (date) reference - type "comment"\n')
-        self.__target.write('                          object - comment')
+        self.__target.write(u'\n4) Medical documents: (date) reference - type "comment"\n')
+        self.__target.write(u'                          object - comment')
 
         docs = doc_folder.get_documents()
         for doc in docs:
-            self.__target.write('\n\n    (%s) %s - %s "%s"' % (
+            self.__target.write(u'\n\n    (%s) %s - %s "%s"' % (
                 doc['clin_when'].strftime('%Y-%m-%d'),
                 doc['ext_ref'],
                 doc['l10n_type'],
                 doc['comment'])
             )
             for part in doc.parts:
-                self.__target.write('\n         %s - %s' % (
+                self.__target.write(u'\n         %s - %s' % (
                     part['seq_idx'],
                     part['obj_comment'])
                 )
-        self.__target.write('\n\n')
+        self.__target.write(u'\n\n')
     #--------------------------------------------------------     
     def dump_demographic_record(self, all = False):
         """
@@ -855,20 +857,20 @@ class cEmrExport:
             ))
             return None
 
-        self.__target.write('\n\n\nDemographics')
-        self.__target.write('\n------------\n')
-        self.__target.write('    Id: %s \n' % self.__patient['pk_identity'])
+        self.__target.write(u'\n\n\nDemographics')
+        self.__target.write(u'\n------------\n')
+        self.__target.write(u'    Id: %s \n' % self.__patient['pk_identity'])
         cont = 0
         for name in self.__patient.get_names():
             if cont == 0:
-                self.__target.write('    Name (Active): %s, %s\n' % (name['firstnames'], name['lastnames']) )
+                self.__target.write(u'    Name (Active): %s, %s\n' % (name['firstnames'], name['lastnames']) )
             else:
-                self.__target.write('    Name %s: %s, %s\n' % (cont, name['firstnames'], name['lastnames']))
+                self.__target.write(u'    Name %s: %s, %s\n' % (cont, name['firstnames'], name['lastnames']))
             cont += 1
-        self.__target.write('    Gender: %s\n' % self.__patient['gender'])
-        self.__target.write('    Title: %s\n' % self.__patient['title'])
-        self.__target.write('    Dob: %s\n' % self.__patient.get_formatted_dob(format = '%Y-%m-%d'))
-        self.__target.write('    Medical age: %s\n' % self.__patient.get_medical_age())
+        self.__target.write(u'    Gender: %s\n' % self.__patient['gender'])
+        self.__target.write(u'    Title: %s\n' % self.__patient['title'])
+        self.__target.write(u'    Dob: %s\n' % self.__patient.get_formatted_dob(format = '%Y-%m-%d'))
+        self.__target.write(u'    Medical age: %s\n' % self.__patient.get_medical_age())
     #--------------------------------------------------------
     def dump_constraints(self):
         """
@@ -877,27 +879,27 @@ class cEmrExport:
         self.__first_constraint = True
         if not self.__constraints['since'] is None:
             self.dump_constraints_header()
-            self.__target.write('\nSince: %s' % self.__constraints['since'].strftime('%Y-%m-%d'))
+            self.__target.write(u'\nSince: %s' % self.__constraints['since'].strftime('%Y-%m-%d'))
 
         if not self.__constraints['until'] is None:
             self.dump_constraints_header()
-            self.__target.write('\nUntil: %s' % self.__constraints['until'].strftime('%Y-%m-%d'))
+            self.__target.write(u'\nUntil: %s' % self.__constraints['until'].strftime('%Y-%m-%d'))
 
         if not self.__constraints['encounters'] is None:
             self.dump_constraints_header()
-            self.__target.write('\nEncounters: ')
+            self.__target.write(u'\nEncounters: ')
             for enc in self.__constraints['encounters']:
                 self.__target.write(str(enc) + ' ')
 
         if not self.__constraints['episodes'] is None:
             self.dump_constraints_header()
-            self.__target.write('\nEpisodes: ')
+            self.__target.write(u'\nEpisodes: ')
             for epi in self.__constraints['episodes']:
                 self.__target.write(str(epi) + ' ')
 
         if not self.__constraints['issues'] is None:
             self.dump_constraints_header()
-            self.__target.write('\nIssues: ')
+            self.__target.write(u'\nIssues: ')
             for iss in self.__constraints['issues']:
                 self.__target.write(str(iss) + ' ')
     #--------------------------------------------------------
@@ -906,38 +908,36 @@ class cEmrExport:
             Dumps constraints header
         """
         if self.__first_constraint == True:
-            self.__target.write('\nClinical items dump constraints\n')
-            self.__target.write('-'*(len(head_txt)-2))
+            self.__target.write(u'\nClinical items dump constraints\n')
+            self.__target.write(u'-'*(len(head_txt)-2))
             self.__first_constraint = False
+
 #============================================================
 class cEMRJournalExporter:
 	"""Exports patient EMR into a simple chronological journal.
-
-	Note that this export will emit u'' strings only.
 	"""
 	def __init__(self):
-		self.__part_len = 72
+		self.__narrative_wrap_len = 72
+
 	#--------------------------------------------------------
 	# external API
 	#--------------------------------------------------------
 	def export_to_file_by_mod_time(self, filename=None, patient=None):
 		if patient is None:
-			patient = gmPerson.gmCurrentPatient()
-			if not patient.connected:
-				raise ValueError('[%s].export_to_file(): no active patient' % self.__class__.__name__)
+			raise ValueError('[%s].export_to_file_by_mod_time(): no patient' % self.__class__.__name__)
 
 		if filename is None:
 			filename = gmTools.get_unique_filename(prefix = 'gm-emr_by_mod_time-', suffix = '.txt')
 
-		f = codecs.open(filename = filename, mode = 'w+b', encoding = 'utf8', errors = 'replace')
+		f = io.open(filename, mode = 'w+t', encoding = 'utf8', errors = 'replace')
 
-		self.__part_len = 80
+		self.__narrative_wrap_len = 80
 
 		# write header
 		txt = _('EMR Journal sorted by last modification time\n')
 		f.write(txt)
 		f.write(u'=' * (len(txt)-1))
-		f.write('\n')
+		f.write(u'\n')
 		f.write(_('Patient: %s (%s), No: %s\n') % (patient['description'], patient['gender'], patient['pk_identity']))
 		f.write(_('Born   : %s, age: %s\n\n') % (
 			patient.get_formatted_dob(format = '%Y %b %d', encoding = gmI18N.get_encoding()),
@@ -955,73 +955,73 @@ class cEMRJournalExporter:
 		"""
 		rows, idx = gmPG2.run_ro_queries(queries = [{'cmd': cmd, 'args': {'pat': patient['pk_identity']}}])
 
-		f.write ((u'-' * 100) + u'\n')
-		f.write (u'%16.16s | %9.9s | %1.1s | %s \n' % (_('Last modified'), _('By'), u' ', _('Entry')))
-		f.write ((u'-' * 100) + u'\n')
+		f.write ((gmTools.u_box_horiz_single * 100) + u'\n')
+		f.write (u'%16.16s %s %9.9s %s %1.1s %s %s \n' % (
+			_('Last modified'),
+			gmTools.u_box_vert_light,
+			_('By'),
+			gmTools.u_box_vert_light,
+			u' ',
+			gmTools.u_box_vert_light,
+			_('Entry')
+		))
+		f.write ((gmTools.u_box_horiz_single * 100) + u'\n')
 
 		for r in rows:
-			txt = u'%16.16s | %9.9s | %1.1s | %s \n' % (
+			txt = u'%16.16s %s %9.9s %s %1.1s %s %s \n' % (
 				r['date_modified'],
+				gmTools.u_box_vert_light,
 				r['modified_by'],
-				gmClinNarrative.soap_cat2l10n[r['soap_cat']],
+				gmTools.u_box_vert_light,
+				gmSoapDefs.soap_cat2l10n[r['soap_cat']],
+				gmTools.u_box_vert_light,
 				gmTools.wrap (
 					text = r['narrative'].replace(u'\r', u'') + u' (%s: %s)' % (_('When'), gmDateTime.pydt_strftime(r['clin_when'], '%Y %b %d %H:%M')),
-					width = self.__part_len,
-					subsequent_indent = u'%31.31s%1.1s | ' % (u' ', gmClinNarrative.soap_cat2l10n[r['soap_cat']])
+					width = self.__narrative_wrap_len,
+					subsequent_indent = u'%31.31s%1.1s %s ' % (u' ', gmSoapDefs.soap_cat2l10n[r['soap_cat']], gmTools.u_box_vert_light)
 				)
 			)
 			f.write(txt)
 
-		f.write((u'-' * 100) + u'\n\n')
+		f.write ((gmTools.u_box_horiz_single * 100) + u'\n')
 		f.write(_('Exported: %s\n') % gmDateTime.pydt_strftime(gmDateTime.pydt_now_here(), '%Y %b %d  %H:%M:%S'))
 
 		f.close()
 		return filename
+
 	#--------------------------------------------------------
-	def export_to_file(self, filename=None, patient=None):
+	def export_to_file_by_encounter(self, filename=None, patient=None):
 		"""Export medical record into a file.
 
 		@type filename: None (creates filename by itself) or string
-		@type patient: None (use currently active patient) or <gmPerson.cIdentity> instance
+		@type patient: <cPerson> instance
 		"""
 		if patient is None:
-			patient = gmPerson.gmCurrentPatient()
-			if not patient.connected:
-				raise ValueError('[%s].export_to_file(): no active patient' % self.__class__.__name__)
+			raise ValueError('[%s].export_to_file_by_encounter(): no patient' % self.__class__.__name__)
 
 		if filename is None:
-			filename = u'%s-%s-%s-%s.txt' % (
-				_('emr-journal'),
-				patient['lastnames'].replace(u' ', u'_'),
-				patient['firstnames'].replace(u' ', u'_'),
-				patient.get_formatted_dob(format = '%Y-%m-%d')
-			)
-			path = os.path.expanduser(os.path.join('~', 'gnumed', patient['dirname'], filename))
+			filename = gmTools.get_unique_filename(prefix = 'gm-emr_journal-', suffix = '.txt')
 
-		f = codecs.open(filename = filename, mode = 'w+b', encoding = 'utf8', errors = 'replace')
-		self.export(target = f, patient = patient)
+		f = io.open(filename, mode = 'w+t', encoding = 'utf8', errors = 'replace')
+		self.__export_by_encounter(target = f, patient = patient)
 		f.close()
 		return filename
+
 	#--------------------------------------------------------
 	# internal API
 	#--------------------------------------------------------
-	def export(self, target=None, patient=None):
+	def __export_by_encounter(self, target=None, patient=None):
 		"""
 		Export medical record into a Python object.
 
 		@type target: a python object supporting the write() API
-		@type patient: None (use currently active patient) or <gmPerson.cIdentity> instance
+		@type patient: <cPerson> instance
 		"""
-		if patient is None:
-			patient = gmPerson.gmCurrentPatient()
-			if not patient.connected:
-				raise ValueError('[%s].export(): no active patient' % self.__class__.__name__)
-
-		# write header
 		txt = _('Chronological EMR Journal\n')
 		target.write(txt)
 		target.write(u'=' * (len(txt)-1))
-		target.write('\n')
+		target.write(u'\n')
+		# demographics
 		target.write(_('Patient: %s (%s), No: %s\n') % (patient['description'], patient['gender'], patient['pk_identity']))
 		target.write(_('Born   : %s, age: %s\n\n') % (
 			patient.get_formatted_dob(format = '%Y %b %d', encoding = gmI18N.get_encoding()),
@@ -1031,10 +1031,36 @@ class cEMRJournalExporter:
 			target.write(u'%s: %s (@%s)\n' % (ext_id['name'], ext_id['value'], ext_id['issuer']))
 		for ch in patient.comm_channels:
 			target.write(u'%s: %s\n' % (ch['l10n_comm_type'], ch['url']))
-		target.write(u'.-%10.10s---%9.9s-------%72.72s\n' % (u'-' * 10, u'-' * 9, u'-' * self.__part_len))
-		target.write(u'| %10.10s | %9.9s |     | %s\n' % (_('Encounter'), _('Doc'), _('Narrative')))
-		target.write(u'|-%10.10s---%9.9s-------%72.72s\n' % (u'-' * 10, u'-' * 9, u'-' * self.__part_len))
-
+		# table header
+		target.write(u'%s%12.12s%s%11.11s%s%s%s%72.72s\n' % (
+			gmTools.u_box_top_left_arc,
+			gmTools.u_box_horiz_single * 12,
+			gmTools.u_box_T_down,
+			gmTools.u_box_horiz_single * 11,
+			gmTools.u_box_T_down,
+			gmTools.u_box_horiz_single * 5,
+			gmTools.u_box_T_down,
+			gmTools.u_box_horiz_single * self.__narrative_wrap_len
+		))
+		target.write(u'%s %10.10s %s %9.9s %s     %s %s\n' % (
+			gmTools.u_box_vert_light,
+			_('Encounter'),
+			gmTools.u_box_vert_light,
+			_('Doc'),
+			gmTools.u_box_vert_light,
+			gmTools.u_box_vert_light,
+			_('Narrative')
+		))
+		target.write(u'%s%12.12s%s%11.11s%s%s%s%72.72s\n' % (
+			gmTools.u_box_T_right,
+			gmTools.u_box_horiz_single * 12,
+			gmTools.u_box_plus,
+			gmTools.u_box_horiz_single * 11,
+			gmTools.u_box_plus,
+			gmTools.u_box_horiz_single * 5,
+			gmTools.u_box_plus,
+			gmTools.u_box_horiz_single * self.__narrative_wrap_len
+		))
 		# get data
 		cmd = u"""
 			SELECT
@@ -1059,7 +1085,7 @@ class cEMRJournalExporter:
 
 			txt = gmTools.wrap (
 				text = row['narrative'].replace(u'\r', u'') + (u' (%s)' % row['date_modified']),
-				width = self.__part_len
+				width = self.__narrative_wrap_len
 			).split('\n')
 
 			# same provider ?
@@ -1086,10 +1112,14 @@ class cEMRJournalExporter:
 				curr_date = u''
 
 			# display first part
-			target.write(u'| %10.10s | %9.9s | %3.3s | %s\n' % (
+			target.write(u'%s %10.10s %s %9.9s %s %3.3s %s %s\n' % (
+				gmTools.u_box_vert_light,
 				curr_date,
+				gmTools.u_box_vert_light,
 				curr_doc,
-				gmClinNarrative.soap_cat2l10n[curr_soap],
+				gmTools.u_box_vert_light,
+				gmSoapDefs.soap_cat2l10n[curr_soap],
+				gmTools.u_box_vert_light,
 				txt[0]
 			))
 
@@ -1097,26 +1127,45 @@ class cEMRJournalExporter:
 			if len(txt) == 1:
 				continue
 
-			template = u'| %10.10s | %9.9s | %3.3s | %s\n'
+			template = u'%s %10.10s %s %9.9s %s %3.3s %s %s\n'
 			for part in txt[1:]:
-				line = template % (u'', u'', u' ', part)
+				line = template % (
+					gmTools.u_box_vert_light,
+					u'',
+					gmTools.u_box_vert_light,
+					u'',
+					gmTools.u_box_vert_light,
+					u' ',
+					gmTools.u_box_vert_light,
+					part
+				)
 				target.write(line)
 
 		# write footer
-		target.write(u'`-%10.10s---%9.9s-------%72.72s\n\n' % (u'-' * 10, u'-' * 9, u'-' * self.__part_len))
-		target.write(_('Exported: %s\n') % gmDateTime.pydt_strftime(pyDT.datetime.now(), '%Y %b %d  %H:%M:%S'))
+		target.write(u'%s%12.12s%s%11.11s%s%5.5s%s%72.72s\n\n' % (
+			gmTools.u_box_bottom_left_arc,
+			gmTools.u_box_horiz_single * 12,
+			gmTools.u_box_T_up,
+			gmTools.u_box_horiz_single * 11,
+			gmTools.u_box_T_up,
+			gmTools.u_box_horiz_single * 5,
+			gmTools.u_box_T_up,
+			gmTools.u_box_horiz_single * self.__narrative_wrap_len
+		))
+
+		target.write(_('Exported: %s\n') % gmDateTime.pydt_strftime(gmDateTime.pydt_now_here(), format = '%Y %b %d  %H:%M:%S'))
 
 		return
+
 #============================================================
 class cMedistarSOAPExporter:
 	"""Export SOAP data per encounter into Medistar import format."""
+
 	def __init__(self, patient=None):
 		if patient is None:
-			self.__pat = gmPerson.gmCurrentPatient()
-		else:
-			if not isinstance(patient, gmPerson.cIdentity):
-				raise gmExceptions.ConstructorError, '<patient> argument must be instance of <cIdentity>, but is: %s' % type(patient)
-			self.__pat = patient
+			raise gmExceptions.ConstructorError, '<patient> argument must be instance of <cPerson>, but is: %s' % type(patient)
+		self.__pat = patient
+
 	#--------------------------------------------------------
 	# external API
 	#--------------------------------------------------------
@@ -1134,7 +1183,7 @@ class cMedistarSOAPExporter:
 				self.__pat.get_formatted_dob(format = '%Y-%m-%d')
 			)
 
-		f = codecs.open(filename = filename, mode = 'w+b', encoding = 'cp437', errors='replace')
+		f = io.open(filename, mode = 'w+t', encoding = 'cp437', errors='replace')
 		status = self.__export(target = f, encounter = encounter, soap_cats = soap_cats)
 		f.close()
 
@@ -1169,17 +1218,18 @@ class cMedistarSOAPExporter:
 		cmd = u"select narrative from clin.v_emr_journal where pk_patient=%s and pk_encounter=%s and soap_cat=%s"
 		for soap_cat in soap_cats:
 			rows, idx = gmPG2.run_ro_queries(queries = [{'cmd': cmd, 'args': (self.__pat['pk_identity'], encounter['pk_encounter'], soap_cat)}])
-			target.write('*MD%s*\r\n' % gmClinNarrative.soap_cat2l10n[soap_cat])
+			target.write(u'*MD%s*\r\n' % gmSoapDefs.soap_cat2l10n[soap_cat])
 			for row in rows:
 				text = row[0]
 				if text is None:
 					continue
-				target.write('%s\r\n' % gmTools.wrap (
+				target.write(u'%s\r\n' % gmTools.wrap (
 					text = text,
 					width = 64,
 					eol = u'\r\n'
 				))
 		return True
+
 #============================================================
 # main
 #------------------------------------------------------------
@@ -1206,7 +1256,6 @@ def run():
         if patient is None:
             break
         # FIXME: needed ?
-#        gmPerson.set_active_patient(patient=patient)
         exporter = cEMRJournalExporter()
         exporter.export_to_file(patient=patient)
 #        export_tool.set_patient(patient)
@@ -1224,12 +1273,13 @@ def run():
             patient.cleanup()
         except:
             print "error cleaning up patient"
+
 #============================================================
 # main
 #------------------------------------------------------------
 if __name__ == "__main__":
-	gmI18N.activate_locale()
-	gmI18N.install_domain()
+
+	from Gnumed.business import gmPersonSearch
 
 	#--------------------------------------------------------
 	def export_journal():
@@ -1242,7 +1292,7 @@ if __name__ == "__main__":
 				break
 
 			exporter = cEMRJournalExporter()
-			print "exported into file:", exporter.export_to_file(patient=patient)
+			print "exported into file:", exporter.export_to_file_by_encounter(patient = patient)
 
 			if patient is not None:
 				try:
diff --git a/client/exporters/timeline.py b/client/exporters/timeline.py
index b5cad42..5348bf6 100644
--- a/client/exporters/timeline.py
+++ b/client/exporters/timeline.py
@@ -9,7 +9,7 @@ __license__ = 'GPL v2 or later (details at http://www.gnu.org)'
 
 import sys
 import logging
-import codecs
+import io
 import os
 
 
@@ -382,7 +382,7 @@ def __format_intake_as_timeline_xml(intake):
 		gmTools.xml_escape_string(intake['substance']),
 		_('Substances'),
 		gmTools.xml_escape_string(intake.format (
-			one_line = False,
+			single_line = False,
 			show_all_brand_components = False
 		))
 	)
@@ -401,7 +401,7 @@ def create_timeline_file(patient=None, filename=None):
 	else:
 		timeline_fname = filename
 	_log.debug('exporting EMR as timeline into [%s]', timeline_fname)
-	timeline = codecs.open(timeline_fname, mode = 'wb', encoding = 'utf8', errors = 'xmlcharrefreplace')
+	timeline = io.open(timeline_fname, mode = 'wt', encoding = 'utf8', errors = 'xmlcharrefreplace')
 	timeline.write(xml_start % (
 		_('Health issues'),
 		_('Episodes'),
@@ -467,7 +467,7 @@ def create_timeline_file(patient=None, filename=None):
 		timeline.write(__format_vaccination_as_timeline_xml(vacc))
 
 	timeline.write(u'\n<!--\n========================================\n Substance intakes\n======================================== -->')
-	for intake in emr.get_current_substance_intakes(include_inactive = True, include_unapproved = False):
+	for intake in emr.get_current_medications(include_inactive = True, include_unapproved = False):
 		timeline.write(__format_intake_as_timeline_xml(intake))
 
 	timeline.write(u'\n<!--\n========================================\n Documents\n======================================== -->')
@@ -547,7 +547,7 @@ def create_fake_timeline_file(patient=None, filename=None):
 		timeline_fname = filename
 
 	_log.debug('creating dummy timeline in [%s]', timeline_fname)
-	timeline = codecs.open(timeline_fname, mode = 'wb', encoding = 'utf8', errors = 'xmlcharrefreplace')
+	timeline = io.open(timeline_fname, mode = 'wt', encoding = 'utf8', errors = 'xmlcharrefreplace')
 
 	timeline.write(__fake_timeline_start)
 
diff --git a/client/gm-from-vcs.conf b/client/gm-from-vcs.conf
index 4993098..47806f8 100644
--- a/client/gm-from-vcs.conf
+++ b/client/gm-from-vcs.conf
@@ -20,7 +20,7 @@
 
 # -------------------------------------------------------------
 [preferences]
-profile = GNUmed database at publicdb.gnumed.de (PUBLIC) (gnumed_v20 at publicdb.gnumed.de)
+profile = GNUmed database on this machine ("local": Linux/Mac) (gnumed_v21@)
 login = any-doc
 
 
@@ -69,7 +69,7 @@ $profiles$
 
 host = 
 port = 5432
-database = gnumed_v20
+database = gnumed_v21
 public/open access = 0
 help desk = Your own IT support <needs configuration>
 last known workplaces = $last known workplaces$
@@ -85,7 +85,7 @@ $last known workplaces$
 
 host = 127.0.0.1
 port = 5432
-database = gnumed_v20
+database = gnumed_v21
 public/open access = 0
 help desk = Your own IT support <needs configuration>
 
@@ -102,7 +102,7 @@ host = publicdb.gnumed.de
 # there are several PostgreSQL instances running
 # on a database server
 port = 5432
-database = gnumed_v20
+database = gnumed_v21
 # public/open access controls exception message and log handling
 # 0 --> message by default goes to public list if no receiver given
 # 0 (1) --> log is (not) included by default, which user can override
diff --git a/client/gm-from-vcs.sh b/client/gm-from-vcs.sh
index 4e366a2..a33d8ca 100755
--- a/client/gm-from-vcs.sh
+++ b/client/gm-from-vcs.sh
@@ -29,12 +29,11 @@ fi
 
 
 # standard options
-TS=`date +%m_%d-%H%M%S`
-LOG="--log-file=gm-vcs-${TS}-$$.log"
 CONF="--conf-file=gm-from-vcs.conf"
 
 # options useful for development and debugging:
-DEV_OPTS="--override-schema-check --skip-update-check --local-import --debug"
+TS=`date +%m_%d-%H_%M_%S`
+DEV_OPTS="--log-file=gm-vcs-${TS}-$$.log --override-schema-check --skip-update-check --local-import --debug"
 # --profile=gm-from-vcs.prof
 
 # options for running from released tarballs:
@@ -49,16 +48,21 @@ TARBALL_OPTS="--local-import --debug"
 echo "-------------------------------------------------"
 echo "Running from Git branch: "`git branch | grep \*`
 echo "-------------------------------------------------"
-#python gnumed.py ${LOG} ${CONF} ${DEV_OPTS} $@
+echo "config file: ${CONF}"
+echo "options: ${DEV_OPTS}"
+##python -Q warn -3 gnumed.py ${CONF} ${DEV_OPTS} $@
+##python -Q warn -3 gnumed.py ${CONF} ${DEV_OPTS} $@ 2> >(grep -v wx > gm-vcs-py2to3_warnings.log) # 1>&2)
+#python -Q warn -3 gnumed.py ${CONF} ${DEV_OPTS} $@ |& tee gm-vcs-py2to3_warnings.log
 
-# - released tarball version:
-python gnumed.py ${LOG} ${CONF} ${TARBALL_OPTS} $@
 
-# - production version:
-#python gnumed.py ${LOG} ${CONF} $@
+# - *released* tarball version:
+python gnumed.py ${CONF} ${TARBALL_OPTS} $@
 
-# - production version with HIPAA support:
-#python gnumed.py ${LOG} ${CONF} --hipaa $@
+# - production version (does not use tarball files !):
+#python gnumed.py $@
+
+# - production version with HIPAA support (does not use tarball files !):
+#python gnumed.py --hipaa $@
 
 
 # source systemwide shutdown extension shell script if it exists
diff --git a/client/gnumed.py b/client/gnumed.py
index 5050126..4bea2ca 100644
--- a/client/gnumed.py
+++ b/client/gnumed.py
@@ -1,5 +1,7 @@
 #!/usr/bin/env python
 
+from __future__ import print_function
+
 __doc__ = """GNUmed client launcher.
 
 This is the launcher for the GNUmed GUI client. It takes
@@ -62,32 +64,32 @@ import signal
 import os.path
 import shutil
 import stat
-import codecs
+import io
 
 
 # do not run as module
 if __name__ != "__main__":
-	print "GNUmed startup: This is not intended to be imported as a module !"
-	print "-----------------------------------------------------------------"
-	print __doc__
+	print("GNUmed startup: This is not intended to be imported as a module !")
+	print("-----------------------------------------------------------------")
+	print(__doc__)
 	sys.exit(1)
 
 
 # do not run as root
 if os.name in ['posix'] and os.geteuid() == 0:
-	print """
+	print("""
 GNUmed startup: GNUmed should not be run as root.
 -------------------------------------------------
 
 Running GNUmed as <root> can potentially put all
 your medical data at risk. It is strongly advised
 against. Please run GNUmed as a non-root user.
-"""
+""")
 	sys.exit(1)
 
 #----------------------------------------------------------
-current_client_version = u'1.5.10'
-current_client_branch = u'1.5'
+current_client_version = u'1.6.0'
+current_client_branch = u'1.6'
 
 _log = None
 _pre_log_buffer = []
@@ -192,7 +194,7 @@ def setup_python_path():
 	local_python_import_dir = os.path.dirname (
 		os.path.abspath(os.path.join(sys.argv[0], '..'))
 	)
-	print "Running from local source tree (%s) ..." % local_python_import_dir
+	print("Running from local source tree (%s) ..." % local_python_import_dir)
 	_pre_log_buffer.append("running from local source tree: %s" % local_python_import_dir)
 
 	# does the path exist at all, physically ?
@@ -202,9 +204,9 @@ def setup_python_path():
 		_pre_log_buffer.append('local module import dir symlink exists: %s' % link_name)
 	else:
 		real_dir = os.path.join(local_python_import_dir, 'client')
-		print "Creating local module import symlink ..."
-		print ' real dir:', real_dir
-		print '     link:', link_name
+		print('Creating local module import symlink ...')
+		print(' real dir:', real_dir)
+		print('     link:', link_name)
 		try:
 			os.symlink(real_dir, link_name)
 		except AttributeError:
@@ -213,7 +215,7 @@ def setup_python_path():
 			_pre_log_buffer.append('ctypes.windll.kernel32.CreateSymbolicLinkW() exit code: %s', result)
 		_pre_log_buffer.append('created local module import dir symlink: link [%s] => dir [%s]' % (link_name, real_dir))
 
-	print "Adjusting PYTHONPATH ..."
+	print("Adjusting PYTHONPATH ...")
 	sys.path.insert(0, local_python_import_dir)
 	_pre_log_buffer.append('sys.path with local module import base dir prepended: %s' % sys.path)
 
@@ -269,7 +271,7 @@ def setup_local_repo_path():
 			_log.error('insecure repo: permissions not 0600')
 			return
 
-	print "Activating local wxGlade widgets repository (%s) ..." % local_wxGladeWidgets_path
+	print("Activating local wxGlade widgets repository (%s) ..." % local_wxGladeWidgets_path)
 	sys.path.insert(0, local_repo_path)
 	_log.debug('sys.path with repo:')
 	_log.debug(sys.path)
@@ -279,7 +281,7 @@ def setup_fault_handler(target=None):
 	try:
 		import faulthandler
 	except ImportError:
-		print "Faulthandler not available ..."
+		print("Faulthandler not available ...")
 		_pre_log_buffer.append('<faulthandler> not available')
 		return
 	if target is None:
@@ -296,7 +298,7 @@ def setup_logging():
 	except ImportError:
 		sys.exit(import_error_sermon % '\n '.join(sys.path))
 
-	print "Log file: %s" % _gmLog2._logfile.name
+	print("Log file:", _gmLog2._logfile.name)
 	setup_fault_handler(target = _gmLog2._logfile)
 
 	global gmLog2
@@ -326,7 +328,8 @@ def log_startup_info():
 	for key, val in os.environ.items():
 		_log.info(u' %s: %s' % (
 			(u'${%s}' % key).rjust(30),
-			unicode(val, encoding = sys.getfilesystemencoding(), errors = 'replace')
+			# this won't work in Python3 because that'll be a byte sequence, not a string and thus will need .ENcode
+			val.decode(encoding = sys.getfilesystemencoding(), errors = 'replace')
 		))
 
 #==========================================================
@@ -400,9 +403,9 @@ def setup_cli():
 def handle_sig_term(signum, frame):
 	_log.critical('SIGTERM (SIG%s) received, shutting down ...' % signum)
 	gmLog2.flush()
-	print 'GNUmed: SIGTERM (SIG%s) received, shutting down ...' % signum
+	print('GNUmed: SIGTERM (SIG%s) received, shutting down ...' % signum)
 	if frame is not None:
-		print '%s::%s@%s' % (frame.f_code.co_filename, frame.f_code.co_name, frame.f_lineno)
+		print('%s::%s@%s' % (frame.f_code.co_filename, frame.f_code.co_name, frame.f_lineno))
 
 	# FIXME: need to do something useful here
 
@@ -438,11 +441,11 @@ def handle_help_request():
 	)
 
 	if help_requested:
-		print _(
+		print(_(
 			'Help requested\n'
 			'--------------'
-		)
-		print __doc__
+		))
+		print(__doc__)
 		sys.exit(0)
 #==========================================================
 def handle_version_request():
@@ -457,11 +460,11 @@ def handle_version_request():
 
 		from Gnumed.pycommon.gmPG2 import map_client_branch2required_db_version, known_schema_hashes
 
-		print 'GNUmed version information'
-		print '--------------------------'
-		print 'client     : %s on branch [%s]' % (current_client_version, current_client_branch)
-		print 'database   : %s' % map_client_branch2required_db_version[current_client_branch]
-		print 'schema hash: %s' % known_schema_hashes[map_client_branch2required_db_version[current_client_branch]]
+		print('GNUmed version information')
+		print('--------------------------')
+		print('client     : %s on branch [%s]' % (current_client_version, current_client_branch))
+		print('database   : %s' % map_client_branch2required_db_version[current_client_branch])
+		print('schema hash: %s' % known_schema_hashes[map_client_branch2required_db_version[current_client_branch]])
 		sys.exit(0)
 
 #==========================================================
@@ -495,13 +498,13 @@ the hidden directory "%s/".""" % (
 	gmTools.mkdir(os.path.expanduser(os.path.join('~', '.gnumed', 'error_logs')))
 	gmTools.mkdir(os.path.expanduser(os.path.join('~', 'gnumed')))
 
-	README = codecs.open(os.path.expanduser(os.path.join('~', 'gnumed', '00_README')), 'wb', 'utf8')
+	README = io.open(os.path.expanduser(os.path.join('~', 'gnumed', '00_README')), mode = 'wt', encoding = 'utf8')
 	README.write(gnumed_DIR_README_TEXT)
 	README.close()
 
 	paths = gmTools.gmPaths(app_name = u'gnumed')
 
-	open(os.path.expanduser(os.path.join('~', '.gnumed', 'gnumed.conf')), 'a+').close()
+	io.open(os.path.expanduser(os.path.join('~', '.gnumed', 'gnumed.conf')), mode = 'a+t').close()
 #==========================================================
 def setup_date_time():
 	gmDateTime.init()
@@ -582,7 +585,7 @@ def setup_ui_type():
 	if ui_type not in _known_ui_types:
 		_log.error('unknown UI type: %s', ui_type)
 		_log.debug('known UI types: %s', str(_known_ui_types))
-		print "GNUmed startup: Unknown UI type (%s). Defaulting to wxPython client." % ui_type
+		print("GNUmed startup: Unknown UI type (%s). Defaulting to wxPython client." % ui_type)
 		ui_type = 'wxp'
 
 	_log.debug('UI type: %s', ui_type)
@@ -633,10 +636,10 @@ def shutdown_logging():
 #			pairs.reverse()
 #			return pairs
 
-#		rcfile = open('./gm-refcount.lst', 'wb')
+#		rcfile = io.open('./gm-refcount.lst', 'wt', encoding = 'utf8')
 #		for refcount, class_ in get_refcounts():
 #			if not class_.__name__.startswith('wx'):
-#				rcfile.write('%10d %s\n' % (refcount, class_.__name__))
+#				rcfile.write(u'%10d %s\n' % (refcount, class_.__name__))
 #		rcfile.close()
 
 	# do not choke on Windows
@@ -690,13 +693,13 @@ if ui_type == u'wxp':
 		profile.run('gmGuiMain.main()', profile_file)
 	else:
 		gmGuiMain.main()
-elif ui_type == u'web':
-	from Gnumed.proxiedpyjamas import gmWebGuiServer
-	gmWebGuiServer.main()
+#elif ui_type == u'web':
+#	from Gnumed.proxiedpyjamas import gmWebGuiServer
+#	gmWebGuiServer.main()
 
-elif ui_type == u'chweb':
-	from Gnumed.CherryPy import gmGuiWeb
-	gmGuiWeb.main()
+#elif ui_type == u'chweb':
+#	from Gnumed.CherryPy import gmGuiWeb
+#	gmGuiWeb.main()
 
 gmHooks.run_hook_script(hook = u'shutdown-post-GUI')
 
diff --git a/client/po/ar-gnumed.mo b/client/po/ar-gnumed.mo
index 5d2ebf7..32eaca7 100644
Binary files a/client/po/ar-gnumed.mo and b/client/po/ar-gnumed.mo differ
diff --git a/client/po/ar.po b/client/po/ar.po
index 09e3e6e..0555322 100644
--- a/client/po/ar.po
+++ b/client/po/ar.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: GNUmed\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-12-26 20:28+0100\n"
+"POT-Creation-Date: 2016-03-17 16:27+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <LL at li.org>\n"
@@ -1409,10 +1409,22 @@ msgid ""
 msgstr ""
 
 #, python-format
+msgid "Revision #%s"
+msgstr ""
+
+#, python-format
 msgid "[%s:%s]: row not updated (nothing returned), row in use ?"
 msgstr ""
 
 #, python-format
+msgid "<%s(.bat)> not found"
+msgstr ""
+
+#, python-format
+msgid "problem with <%s>"
+msgstr ""
+
+#, python-format
 msgid "[%s] is not a readable file"
 msgstr ""
 
@@ -1440,21 +1452,7 @@ msgstr ""
 msgid "%s Bytes"
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot connect to configuration database with:\n"
-"\n"
-"[%s]"
-msgstr ""
-
-#, python-format
-msgid ""
-"Cannot connect to database with:\n"
-"\n"
-"[%s]"
-msgstr ""
-
-msgid "No product information available."
+msgid "<type>"
 msgstr ""
 
 #, python-format
@@ -1790,99 +1788,6 @@ msgstr ""
 msgid "  risk: %s"
 msgstr ""
 
-#, fuzzy, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Are you sure you have got a local database installed ?\n"
-"\n"
-"Please retry with proper credentials or cancel.\n"
-"\n"
-"You may also need to check the PostgreSQL client\n"
-"authentication configuration in pg_hba.conf. For\n"
-"details see:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-msgstr ""
-"غير قادر على الاتصال بقاعدة البيانات:\n"
-"\n"
-"s%\n"
-"\n"
-"هل انت متأكد انك تمتلك قاعدة بيانات مثبتة محليا \n"
-"\n"
-"يمكنك ايضا ان تفحص عميل PostgreSQL\n"
-"تكوين التخويل في pg_hba.conf.  ل\n"
-"التفاصيل انظر:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Please retry with proper credentials or cancel.\n"
-"\n"
-"You may also need to check the PostgreSQL client\n"
-"authentication configuration in pg_hba.conf. For\n"
-"details see:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-msgstr ""
-"لايمكن اﻻتصال بقاعدة البيانات:\n"
-"\n"
-"%s\n"
-"\n"
-"الرجاء اعادة المحاولة مع معلومات دخول مناسبة او اﻻلغاء.\n"
-"\n"
-"يمكنك ايضا ان تحتاج لفحص عميل PostgreSQL\n"
-"تكوين التخويل في pg_hba.conf. ل\n"
-"التفاصيل انظر:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-
-msgid "Connecting to backend"
-msgstr "اﻻتصال بالنهاية الخلفية"
-
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Please retry another backend / user / password combination !\n"
-msgstr ""
-
-msgid "programmer forgot to specify error message"
-msgstr "المبرمج نسي ان يحدد رسالة خطأ"
-
-msgid ""
-"\n"
-"\n"
-"Please consult the error log for all the gory details !"
-msgstr ""
-"\n"
-"\n"
-"الرجاء اﻻستعانة بسجل الخطأ لجميع التفاصيل الدموية!"
-
-msgid "generic error message"
-msgstr "رسالة خطأ عام"
-
-msgid "programmer forgot to specify info message"
-msgstr "نسي المبرمج تحديد معلومات الرسالة"
-
-msgid "generic info message"
-msgstr "رسالة معلومات عامة"
-
-msgid "programmer forgot to specify warning"
-msgstr "نسي المبرمج تحديد التحذير"
-
-msgid "generic warning message"
-msgstr "رسالة تحذير عامة"
-
 msgid "no hook specified, please report bug"
 msgstr ""
 
@@ -2199,6 +2104,30 @@ msgstr ""
 msgid "Include:"
 msgstr ""
 
+msgid "&Search"
+msgstr ""
+
+msgid "Suggest"
+msgstr ""
+
+msgid "Set"
+msgstr ""
+
+msgid "dialog_1"
+msgstr ""
+
+msgid "Search patients in Orthanc DICOM store."
+msgstr ""
+
+msgid "Suggest a patient ID based on the active patient."
+msgstr ""
+
+msgid "Search term:"
+msgstr ""
+
+msgid "New patient ID:"
+msgstr ""
+
 msgid "Your review"
 msgstr ""
 
@@ -2500,6 +2429,89 @@ msgstr ""
 msgid "Amount"
 msgstr ""
 
+msgid "&Connect"
+msgstr ""
+
+msgid "&Browse"
+msgstr ""
+
+msgid "<not connected>"
+msgstr ""
+
+msgid "Browse all"
+msgstr ""
+
+msgid "Export all"
+msgstr ""
+
+msgid "Browse"
+msgstr ""
+
+msgid "Export"
+msgstr ""
+
+msgid "Upload"
+msgstr ""
+
+msgid "Enter the PACS host address."
+msgstr ""
+
+msgid "Enter the PACS port."
+msgstr ""
+
+msgid "Enter the PACS user."
+msgstr ""
+
+msgid "Enter the PACS password. It will not be shown."
+msgstr ""
+
+msgid "Connect to PACS."
+msgstr ""
+
+msgid "Browse PACS at top level."
+msgstr ""
+
+msgid "Modify some of Orthanc content (such as patient IDs)."
+msgstr ""
+
+msgid "Browse overview of studies for this patient."
+msgstr ""
+
+msgid "Copy all studies into export area."
+msgstr ""
+
+msgid "Browse topmost selected study."
+msgstr ""
+
+msgid "Copy selected studies into export area."
+msgstr ""
+
+msgid "Save selected studies to disk."
+msgstr ""
+
+msgid ""
+"Upload DICOM files from a directory, recursively, into the Orthanc PACS\n"
+"\n"
+"The currently active patient does not matter. Orthanc will associate "
+"uploaded files with the patient found within the DICOM metadata. It will "
+"create new patients as needed."
+msgstr ""
+
+msgid "Host:"
+msgstr ""
+
+msgid "Port:"
+msgstr ""
+
+msgid "User:"
+msgstr ""
+
+msgid "Password"
+msgstr ""
+
+msgid "Selected studies:"
+msgstr ""
+
 msgid "Fake brand"
 msgstr ""
 
@@ -2816,9 +2828,6 @@ msgstr ""
 msgid "&Load"
 msgstr ""
 
-msgid "Export"
-msgstr ""
-
 msgid "A long, descriptive name for this form template."
 msgstr ""
 
@@ -2906,15 +2915,12 @@ msgstr ""
 msgid "Document Properties"
 msgstr ""
 
-msgid "Show part"
+msgid "Show"
 msgstr ""
 
 msgid "Remove part"
 msgstr ""
 
-msgid "Parts"
-msgstr ""
-
 msgid "Discard"
 msgstr ""
 
@@ -2942,6 +2948,9 @@ msgstr ""
 msgid "Required: The primary episode this document is to be listed under."
 msgstr ""
 
+msgid "Optional: The organization (unit) this document originated from."
+msgstr ""
+
 msgid ""
 "Optional: A short comment identifying the document. Good comments give an "
 "idea of the content and source of the document."
@@ -2966,6 +2975,9 @@ msgid ""
 "normal and abnormal resuslts can be relevant."
 msgstr ""
 
+msgid "Optional: A free-text document description."
+msgstr ""
+
 msgid "This field lists the parts belonging to the current document."
 msgstr ""
 
@@ -2977,9 +2989,6 @@ msgid ""
 "deletion from disk."
 msgstr ""
 
-msgid "Optional: A free-text document description."
-msgstr ""
-
 msgid "Save finished document."
 msgstr ""
 
@@ -2995,6 +3004,9 @@ msgstr ""
 msgid "Associate to episode:"
 msgstr ""
 
+msgid "Document source:"
+msgstr ""
+
 msgid "Comment / Identification:"
 msgstr ""
 
@@ -3175,7 +3187,7 @@ msgstr ""
 msgid "Messages:"
 msgstr ""
 
-msgid "Only:"
+msgid "Limit to:"
 msgstr ""
 
 msgid "&Myself … or:"
@@ -3285,10 +3297,10 @@ msgstr ""
 msgid "Purpose"
 msgstr ""
 
-msgid "Details"
+msgid "Please supply your email address here !"
 msgstr ""
 
-msgid "<Please supply your email address here !>"
+msgid "Details"
 msgstr ""
 
 msgid "Keep running"
@@ -3312,9 +3324,11 @@ msgid ""
 msgstr ""
 
 msgid ""
-"Please enter your email address so we can provide feedback directly to you. "
-"Otherwise, feedback will be given on the GNUmed mailing list (http://lists."
-"gnu.org/mailman/listinfo/gnumed-bugs)."
+"Please enter your email address so we can provide help to you directly.\n"
+"\n"
+"Otherwise, feedback can be given on the GNUmed mailing list (http://lists."
+"gnu.org/mailman/listinfo/gnumed-bugs) ONLY to which you will then have to "
+"subscribe."
 msgstr ""
 
 msgid "Find help on http://wiki.gnumed.de, too."
@@ -3429,9 +3443,6 @@ msgstr ""
 msgid "Account"
 msgstr ""
 
-msgid "Password"
-msgstr ""
-
 msgid "Password, again"
 msgstr ""
 
@@ -3917,7 +3928,7 @@ msgstr ""
 msgid "Acquire images from image source (scanner, ...)."
 msgstr ""
 
-msgid "Acquire images or text from the clipboard."
+msgid "Acquire file or text from the clipboard."
 msgstr ""
 
 msgid "Remove the selected documents."
@@ -4060,7 +4071,7 @@ msgid ""
 "- the result list will be artificially limited to the first 1000 rows\n"
 "- you can include a column named \"pk_patient\" to make the result rows "
 "activate the corresponding patient on double-clicking\n"
-"- by inserting $<ID_active_patient>$ you can access the patient ID of the "
+"- by inserting $<ID_ACTIVE_PATIENT>$ you can access the patient ID of the "
 "patient active at the time of running the query"
 msgstr ""
 
@@ -4219,9 +4230,6 @@ msgstr ""
 msgid "Link &new"
 msgstr ""
 
-msgid "Browse"
-msgstr ""
-
 msgid ""
 "Search for matches among existing addresses and [Link] a selection, or [Link "
 "(a) new] address."
@@ -4270,25 +4278,16 @@ msgid ""
 "left."
 msgstr ""
 
-msgid "label_1"
-msgstr ""
-
-msgid "→"
-msgstr ""
-
-msgid "←"
-msgstr ""
-
-msgid "Extra"
+msgid "Subjective"
 msgstr ""
 
-msgid "Move selected items from left to right."
+msgid "Objective"
 msgstr ""
 
-msgid "Move selected items from right to left."
+msgid "Assessment"
 msgstr ""
 
-msgid "Cancel picking items."
+msgid "Plan"
 msgstr ""
 
 msgid "Episode synopsis"
@@ -4324,19 +4323,28 @@ msgid ""
 "narrative belongs to."
 msgstr ""
 
-msgid "Subjective"
+msgid "Codes:"
 msgstr ""
 
-msgid "Codes:"
+msgid "label_1"
 msgstr ""
 
-msgid "Objective"
+msgid "→"
 msgstr ""
 
-msgid "Assessment"
+msgid "←"
 msgstr ""
 
-msgid "Plan"
+msgid "Extra"
+msgstr ""
+
+msgid "Move selected items from left to right."
+msgstr ""
+
+msgid "Move selected items from right to left."
+msgstr ""
+
+msgid "Cancel picking items."
 msgstr ""
 
 msgid "1"
@@ -4505,42 +4513,118 @@ msgstr ""
 msgid "Age range"
 msgstr ""
 
-msgid "Closed episodes"
+msgid "&Nicotine"
 msgstr ""
 
-msgid "Non-relevant issues"
+msgid "&Alcohol"
 msgstr ""
 
-msgid "Active problems"
+msgid "&Other:"
 msgstr ""
 
-msgid "Notes only"
+msgid "&Non-harmful use"
 msgstr ""
 
-msgid "Everything"
+msgid "&Harmful use"
 msgstr ""
 
-msgid ""
-"In this area GNUmed will place the notes of the\n"
-"previous encounter as well as notes by other\n"
-"staff for the current encounter.\n"
-"\n"
-"Note that this may change depending on which\n"
-"active problem is selected in the editor below."
+msgid "Presently &addicted"
 msgstr ""
 
-msgid "Most recent info on above problem"
+msgid "Previously &addicted"
 msgstr ""
 
-msgid "Show closed episodes as pseudo-problems ?"
+msgid "&Reconfirm as of today"
 msgstr ""
 
-msgid "Show issues marked clinically NOT relevant."
+msgid "Select for documenting smoking status."
 msgstr ""
 
-msgid ""
-"This shows the list of active problems, They include open episodes as well "
-"as active health issues."
+msgid "Select for documenting alcohol use status."
+msgstr ""
+
+msgid ""
+"Select for documenting use of substances other than nicotine or alcohol."
+msgstr ""
+
+msgid "Select the abused substance."
+msgstr ""
+
+msgid ""
+"Select if the substance use is not considered harmful (say, no use or non-"
+"harmful use)."
+msgstr ""
+
+msgid "Select if substance is use considered harmful."
+msgstr ""
+
+msgid "Select if the patient is presently addicted to this substance."
+msgstr ""
+
+msgid "Select if the patient was previously addicted to this substance."
+msgstr ""
+
+msgid ""
+"A comment on this substance use:\n"
+"- type of product used\n"
+"- frequency\n"
+"- amount\n"
+"- when started\n"
+"- attempts to quit\n"
+"..."
+msgstr ""
+
+msgid ""
+"When did the patient quit?\n"
+"\n"
+"You can also set a target quit date here."
+msgstr ""
+
+msgid "Check here to confirm for today."
+msgstr ""
+
+msgid "Quit date"
+msgstr ""
+
+msgid "Last confirmed"
+msgstr ""
+
+msgid "Closed episodes"
+msgstr ""
+
+msgid "Non-relevant issues"
+msgstr ""
+
+msgid "Active problems"
+msgstr ""
+
+msgid "Notes only"
+msgstr ""
+
+msgid "Everything"
+msgstr ""
+
+msgid ""
+"In this area GNUmed will place the notes of the\n"
+"previous encounter as well as notes by other\n"
+"staff for the current encounter.\n"
+"\n"
+"Note that this may change depending on which\n"
+"active problem is selected in the editor below."
+msgstr ""
+
+msgid "Most recent info on above problem"
+msgstr ""
+
+msgid "Show closed episodes as pseudo-problems ?"
+msgstr ""
+
+msgid "Show issues marked clinically NOT relevant."
+msgstr ""
+
+msgid ""
+"This shows the list of active problems, They include open episodes as well "
+"as active health issues."
 msgstr ""
 
 msgid "Show notes only (regarding the above problem)"
@@ -4841,19 +4925,16 @@ msgstr ""
 msgid "Show:"
 msgstr ""
 
-msgid "Brand by component"
+msgid "Kidneys"
 msgstr ""
 
 msgid "Brands"
 msgstr ""
 
-msgid "Kidneys"
-msgstr ""
-
-msgid "Unbranded substance"
+msgid "Substances"
 msgstr ""
 
-msgid "Manage"
+msgid "&Unknown or date:"
 msgstr ""
 
 msgid "Approved of"
@@ -4869,22 +4950,18 @@ msgid "... Reason"
 msgstr ""
 
 msgid ""
-"A component of a drug brand the patient is taking.\n"
+"A drug the patient is taking.\n"
 "\n"
-"Lookup, and select, a single- (or multi-) component drug brand, by active "
-"ingredient name. All components of multi-component drugs will be displayed "
-"and automatically added to the patient's list."
-msgstr ""
-
-msgid ""
-"Manage drug brands.\n"
+"Lookup and select an intake by either of\n"
+"- a generic substance name\n"
+"- a drug brand name\n"
+"- an active ingredient of a drug\n"
 "\n"
-"Note that this will not select a component for you. What it does is to let "
-"you manage (add/edit/delete) the drug products/brands known to GNUmed from "
-"which you can select a component."
+"Note that all components of multi-component drugs will be displayed and "
+"automatically added to the patient's list."
 msgstr ""
 
-msgid "The active ingredients of this brand."
+msgid "Details on the selected drug."
 msgstr ""
 
 msgid "Show cardiac information relevant to substance selection."
@@ -4894,8 +4971,11 @@ msgid "Show renal insufficiency information related to substance selection."
 msgstr ""
 
 msgid ""
-"The non-branded medication or non-medication substance, with optional "
-"strength."
+"Manage drug brands.\n"
+"\n"
+"Note that this will not select a component for you. What it does is to let "
+"you manage (add/edit/delete) the drug products/brands known to GNUmed from "
+"which you can select a component."
 msgstr ""
 
 msgid ""
@@ -4908,11 +4988,19 @@ msgstr ""
 msgid "The preparation or form of the substance."
 msgstr ""
 
+msgid "Check here if the start date simply isn't known."
+msgstr ""
+
 msgid ""
 "When was this substance started to be consumed or - if not known - the "
 "earliest it is known to have been be consumed."
 msgstr ""
 
+msgid ""
+"A coment on the certainty of the start date, such as \"+/- 3 weeks\", "
+"\"spring of 2002\", \"shortly after Easter 1996\", ...."
+msgstr ""
+
 msgid "Whether this substance is taken by advice."
 msgstr ""
 
@@ -4946,6 +5034,15 @@ msgstr ""
 msgid "Reason for discontinuation."
 msgstr ""
 
+msgid "Drug"
+msgstr ""
+
+msgid "Research:"
+msgstr ""
+
+msgid "Certainty:"
+msgstr ""
+
 msgid "Schedule"
 msgstr ""
 
@@ -5097,6 +5194,30 @@ msgstr ""
 msgid "Channel"
 msgstr ""
 
+msgid "&Last modification time"
+msgstr ""
+
+msgid "&Entry time"
+msgstr ""
+
+msgid "Show journal ordered by encounter."
+msgstr ""
+
+msgid "Show journal ordered by time of last modification."
+msgstr ""
+
+msgid "Show journal ordered by actual clinical time of each entry."
+msgstr ""
+
+msgid "Edit the selected chart entry."
+msgstr ""
+
+msgid "Delete selected chart entry."
+msgstr ""
+
+msgid "Order by:"
+msgstr ""
+
 msgid "Chec&k"
 msgstr ""
 
@@ -5639,10 +5760,13 @@ msgstr ""
 msgid "Documents:"
 msgstr ""
 
+msgid "&L"
+msgstr ""
+
 msgid "&N"
 msgstr ""
 
-msgid "&L"
+msgid "List all encounters."
 msgstr ""
 
 msgid "The encounter."
@@ -5651,9 +5775,6 @@ msgstr ""
 msgid "Start a new encounter for the active patient."
 msgstr ""
 
-msgid "List all encounters."
-msgstr ""
-
 msgid "Clinically relevant"
 msgstr ""
 
@@ -5902,7 +6023,8 @@ msgstr ""
 
 msgid ""
 "Rationale for\n"
-"suppression"
+"suppression\n"
+"for this patient"
 msgstr ""
 
 msgid "Save &under"
@@ -5958,6 +6080,12 @@ msgstr ""
 msgid "Encounter:"
 msgstr ""
 
+msgid "Manage"
+msgstr ""
+
+msgid "&Panel:"
+msgstr ""
+
 msgid "&Pick"
 msgstr ""
 
@@ -6000,6 +6128,9 @@ msgid ""
 "To disable that popup leave the message empty."
 msgstr ""
 
+msgid "Show search dialog."
+msgstr ""
+
 msgid "THIS IS NOT A VERIFIED MEASUREMENT. DO NOT USE FOR ACTUAL CARE."
 msgstr ""
 
@@ -6280,6 +6411,47 @@ msgstr ""
 msgid "ERROR: unknown allergy state [%s]"
 msgstr ""
 
+msgid "definite"
+msgstr ""
+
+msgid "indefinite"
+msgstr ""
+
+#, fuzzy
+msgid "Reaction:"
+msgstr "الت"
+
+msgid "Noted:"
+msgstr ""
+
+msgid "Allergene:"
+msgstr ""
+
+msgid "Substance:"
+msgstr ""
+
+msgid "Code:"
+msgstr ""
+
+msgid "ATC:"
+msgstr ""
+
+msgid "Specific to:"
+msgstr ""
+
+msgid "this substance only"
+msgstr ""
+
+msgid "drug class"
+msgstr ""
+
+msgid "unknown"
+msgstr ""
+
+#, fuzzy
+msgid "Generics:"
+msgstr "رسالة معلومات عامة"
+
 msgid "Medication history"
 msgstr ""
 
@@ -6291,9 +6463,15 @@ msgstr "وصفة"
 msgid "prescription data"
 msgstr "وصفة"
 
+msgid "Consumable substance"
+msgstr ""
+
 msgid "in use"
 msgstr ""
 
+msgid "w/"
+msgstr ""
+
 msgid "long-term"
 msgstr ""
 
@@ -6313,6 +6491,35 @@ msgid "?ongoing"
 msgstr ""
 
 #, python-format
+msgid ""
+"Substance abuse entry                                              [#%s]\n"
+msgstr ""
+
+#, python-format
+msgid "Substance: %s [#%s]%s\n"
+msgstr ""
+
+#, python-format
+msgid "Use type: %s\n"
+msgstr ""
+
+#, python-format
+msgid "Last checked: %s\n"
+msgstr ""
+
+#, python-format
+msgid " Discontinued %s\n"
+msgstr ""
+
+#, python-format
+msgid " Notes: %s\n"
+msgstr ""
+
+#, python-format
+msgid "Revision: #%(row_ver)s, %(mod_when)s by %(mod_by)s."
+msgstr ""
+
+#, python-format
 msgid "Substance intake entry (%s, %s)   [#%s]                     \n"
 msgstr ""
 
@@ -6328,9 +6535,6 @@ msgstr ""
 msgid "unapproved"
 msgstr ""
 
-msgid "definite"
-msgstr ""
-
 msgid "suspected"
 msgstr ""
 
@@ -6377,10 +6581,6 @@ msgid " (short-term)"
 msgstr ""
 
 #, python-format
-msgid " Discontinued %s\n"
-msgstr ""
-
-#, python-format
 msgid " Reason: %s\n"
 msgstr ""
 
@@ -6400,16 +6600,59 @@ msgstr ""
 msgid " Advice: %s\n"
 msgstr ""
 
+msgid "medication, not abuse"
+msgstr ""
+
+msgid "no or non-harmful use"
+msgstr ""
+
+msgid "presently harmful use"
+msgstr ""
+
+msgid "presently addicted"
+msgstr ""
+
+msgid "previously addicted"
+msgstr ""
+
 #, python-format
-msgid "Revision: #%(row_ver)s, %(mod_when)s by %(mod_by)s."
+msgid "%s%s: %s ago%s"
+msgstr ""
+
+#, python-format
+msgid "%s%s: %s ago (%s)"
+msgstr ""
+
+#, python-format
+msgid "%s%s%s (%s ago)"
+msgstr ""
+
+#, python-format
+msgid "%s%s%s (%s ago, %s)"
+msgstr ""
+
+#, python-format
+msgid "%s ago"
+msgstr ""
+
+#, python-format
+msgid "in %s"
+msgstr ""
+
+#, python-format
+msgid ", until %s (%s)"
+msgstr ""
+
+#, python-format
+msgid " (planned for %s%s)"
 msgstr ""
 
 #, python-format
-msgid "%s: %s ago"
+msgid ", planned for %s%s"
 msgstr ""
 
 #, python-format
-msgid "%s: %s ago (%s)"
+msgid "%s ago (for %s: %s %s %s)"
 msgstr ""
 
 msgid "Additional notes"
@@ -6424,10 +6667,31 @@ msgstr ""
 msgid "ordered by brand"
 msgstr ""
 
-msgid "Drug"
+msgid "Regimen / Advice"
 msgstr ""
 
-msgid "Regimen / Advice"
+#, python-format
+msgid "Component of %s (%s)"
+msgstr ""
+
+#, python-format
+msgid "ATC (substance): %s"
+msgstr ""
+
+#, python-format
+msgid "ATC (brand): %s"
+msgstr ""
+
+msgid "this is a component of a fake brand"
+msgstr ""
+
+msgid "Components:"
+msgstr ""
+
+msgid "this is a fake brand"
+msgstr ""
+
+msgid "this is a vaccine"
 msgstr ""
 
 msgid "units"
@@ -6462,62 +6726,28 @@ msgstr ""
 msgid "Expires: %s\n"
 msgstr ""
 
-msgid "Active clinical hint"
+msgid "HL7 Source"
 msgstr ""
 
-msgid "Inactive clinical hint"
+msgid "HL7 data size"
 msgstr ""
 
 #, python-format
-msgid "Source: %s\n"
+msgid "%s bytes"
 msgstr ""
 
-#, python-format
-msgid "Language: %s\n"
+msgid "HL7 Message"
 msgstr ""
 
-msgid "Suppressed active dynamic hint"
+#, python-format
+msgid " %s segments (lines)%s"
 msgstr ""
 
-msgid "Suppressed inactive dynamic hint"
+msgid ", skipping empty fields"
 msgstr ""
 
 #, python-format
-msgid "Suppressed by: %s\n"
-msgstr ""
-
-#, python-format
-msgid "Suppressed at: %s\n"
-msgstr ""
-
-#, python-format
-msgid "Hint #: %s\n"
-msgstr ""
-
-#, python-format
-msgid "Patient #: %s\n"
-msgstr ""
-
-#, python-format
-msgid "MD5 (currently): %s\n"
-msgstr ""
-
-#, python-format
-msgid "MD5 (at suppression): %s\n"
-msgstr ""
-
-msgid "HL7 Message"
-msgstr ""
-
-#, python-format
-msgid " %s segments (lines)%s"
-msgstr ""
-
-msgid ", skipping empty fields"
-msgstr ""
-
-#, python-format
-msgid "Segment #%s <%s>"
+msgid "Segment #%s <%s>"
 msgstr ""
 
 #, python-format
@@ -6559,13 +6789,6 @@ msgstr ""
 msgid "doc: %s"
 msgstr ""
 
-msgid "no patient photograph available"
-msgstr ""
-
-#, python-format
-msgid "patient photograph from %s"
-msgstr ""
-
 msgid "Patient data for"
 msgstr ""
 
@@ -6575,6 +6798,9 @@ msgstr ""
 msgid "Patient data export"
 msgstr ""
 
+msgid "no patient photograph available"
+msgstr ""
+
 msgid "Documents"
 msgstr ""
 
@@ -6585,6 +6811,10 @@ msgstr ""
 msgid "browse documents area"
 msgstr "وصفة"
 
+#, python-format
+msgid "patient photograph from %s"
+msgstr ""
+
 #, fuzzy
 msgid "Browse patient data"
 msgstr "وصفة"
@@ -6620,24 +6850,24 @@ msgstr ""
 #, python-format
 msgid ""
 "%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s %(suburb)s, "
-"%(code_state)s, %(code_country)s"
+"%(code_region)s, %(code_country)s"
 msgstr ""
 
 #, python-format
 msgid ""
 "%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s %(suburb)s, "
-"%(code_state)s, %(code_country)s"
+"%(code_region)s, %(code_country)s"
 msgstr ""
 
 #, python-format
 msgid ""
-"%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_state)s, "
-"%(code_country)s"
+"%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, "
+"%(code_region)s, %(code_country)s"
 msgstr ""
 
 #, python-format
 msgid ""
-"%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_state)s, "
+"%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_region)s, "
 "%(code_country)s"
 msgstr ""
 
@@ -6647,7 +6877,7 @@ msgid ""
 " Street: %(street)s%(notes_street)s\n"
 " Number/Unit: %(number)s%(subunit)s%(notes_subunit)s\n"
 " Location: %(zip)s %(urb)s%(suburb)s\n"
-" Region: %(l10n_state)s, %(code_state)s\n"
+" Region: %(l10n_region)s, %(code_region)s\n"
 " Country: %(l10n_country)s, %(code_country)s"
 msgstr ""
 
@@ -6657,7 +6887,7 @@ msgid ""
 " Street: %(street)s%(notes_street)s\n"
 " Number/Unit: %(number)s%(subunit)s%(notes_subunit)s\n"
 " Location: %(zip)s %(urb)s%(suburb)s\n"
-" Region: %(l10n_state)s, %(code_state)s\n"
+" Region: %(l10n_region)s, %(code_region)s\n"
 " Country: %(l10n_country)s, %(code_country)s"
 msgstr ""
 
@@ -6726,6 +6956,83 @@ msgstr ""
 msgid "missing, reported later"
 msgstr ""
 
+msgid "Health issue"
+msgstr ""
+
+msgid "External care"
+msgstr ""
+
+msgid "Vaccination"
+msgstr ""
+
+msgid "Clinical narrative"
+msgstr ""
+
+msgid "Test result"
+msgstr ""
+
+msgid "Substance intake"
+msgstr ""
+
+msgid "Hospital stay"
+msgstr ""
+
+msgid "Performed procedure"
+msgstr ""
+
+msgid "Family history"
+msgstr ""
+
+msgid "Document"
+msgstr ""
+
+#, python-format
+msgid "unmapped entry type from table [%s]"
+msgstr ""
+
+#, python-format
+msgid "cannot instantiate clinical root item <%s(%s)>"
+msgstr ""
+
+msgid "True"
+msgstr ""
+
+msgid "False"
+msgstr ""
+
+msgid "unknown smoking status"
+msgstr ""
+
+msgid "non-smoker"
+msgstr ""
+
+msgid "current smoker"
+msgstr ""
+
+msgid "ex-smoker"
+msgstr ""
+
+msgid "tobacco addiction"
+msgstr ""
+
+msgid "no or non-harmful alcohol use"
+msgstr ""
+
+msgid "harmful alcohol use"
+msgstr ""
+
+msgid "unknown alcohol use"
+msgstr ""
+
+msgid "no or non-harmful drug use"
+msgstr ""
+
+msgid "harmful drug use"
+msgstr ""
+
+msgid "unknown drug use"
+msgstr ""
+
 msgid "original entry"
 msgstr ""
 
@@ -6817,13 +7124,6 @@ msgstr ""
 msgid "Vaccinations"
 msgstr ""
 
-#, python-format
-msgid "%s ago"
-msgstr ""
-
-msgid "External care"
-msgstr ""
-
 msgid "Allergies/Intolerances"
 msgstr ""
 
@@ -6897,76 +7197,126 @@ msgid ""
 "The account was deactivated instead."
 msgstr ""
 
+msgid "SOAP_char_S=S"
+msgstr ""
+
+msgid "SOAP_char_O=O"
+msgstr ""
+
+msgid "SOAP_char_A=A"
+msgstr ""
+
+msgid "SOAP_char_P=P"
+msgstr ""
+
+msgid "SOAP_char_U=U"
+msgstr ""
+
+msgid "SOAP_string_Subjective=Subjective"
+msgstr ""
+
+msgid "SOAP_string_Objective=Objective"
+msgstr ""
+
+msgid "SOAP_string_Assessment=Assessment"
+msgstr ""
+
+msgid "SOAP_string_Plan=Plan"
+msgstr ""
+
+msgid "SOAP_string_Unspecified=Unspecified"
+msgstr ""
+
+msgid "SOAP_string_Administrative=Administrative"
+msgstr ""
+
+msgid "Active clinical hint"
+msgstr ""
+
+msgid "Inactive clinical hint"
+msgstr ""
+
 #, python-format
-msgid "Device(%s):"
+msgid "Source: %s\n"
 msgstr ""
 
-msgid "Battery:"
+#, python-format
+msgid "Language: %s\n"
 msgstr ""
 
-msgid "Implanted:"
+msgid "Suppressed active dynamic hint"
 msgstr ""
 
-msgid "last check:"
+msgid "Suppressed inactive dynamic hint"
 msgstr ""
 
-msgid "Sensing:"
+#, python-format
+msgid "Suppressed by: %s\n"
 msgstr ""
 
-msgid "Threshold"
+#, python-format
+msgid "Suppressed at: %s\n"
 msgstr ""
 
-msgid "Impedance:"
+#, python-format
+msgid "Hint #: %s\n"
 msgstr ""
 
 #, python-format
-msgid "Praxis branch                   #%s\n"
+msgid "Patient #: %s\n"
 msgstr ""
 
-msgid "Privacy notice"
+#, python-format
+msgid "MD5 (currently): %s\n"
 msgstr ""
 
 #, python-format
-msgid ""
-"%s: Your chart has been accessed by %s (without user interaction, probably "
-"by a script)."
+msgid "MD5 (at suppression): %s\n"
 msgstr ""
 
 #, python-format
-msgid "%s: Staff member %s has been notified of your chart access."
+msgid "Device(%s):"
 msgstr ""
 
-msgid "soap_S"
+msgid "Battery:"
 msgstr ""
 
-msgid "soap_O"
+msgid "Implanted:"
 msgstr ""
 
-msgid "soap_A"
+msgid "last check:"
 msgstr ""
 
-msgid "soap_P"
+msgid "Sensing:"
 msgstr ""
 
-msgid "soap_U"
+msgid "Threshold"
 msgstr ""
 
-msgid "soap_Subjective"
+msgid "Impedance:"
 msgstr ""
 
-msgid "soap_Objective"
+#, python-format
+msgid "Praxis branch                   #%s\n"
 msgstr ""
 
-msgid "soap_Assessment"
+#, python-format
+msgid ""
+"FN:%(l10n_unit_category)s %(branch)s of %(l10n_organization_category)s "
+"%(praxis)s"
 msgstr ""
 
-msgid "soap_Plan"
+msgid "Privacy notice"
 msgstr ""
 
-msgid "soap_Unspecified"
+#, python-format
+msgid ""
+"%s: Your chart has been accessed by %s (without user interaction, probably "
+"by a script)."
 msgstr ""
 
-msgid "soap_Administrative"
+#, python-format
+msgid "%s: Staff member %s has been notified of your chart access."
 msgstr ""
 
 #, python-format
@@ -7033,9 +7383,17 @@ msgid "%(last)s,%(title)s %(first)s%(nick)s (%(sex)s)"
 msgstr ""
 
 #, python-format
+msgid "%(last)s,%(title)s %(first)s (%(sex)s)"
+msgstr ""
+
+#, python-format
 msgid "%(last)s,%(title)s %(first)s%(nick)s"
 msgstr ""
 
+#, python-format
+msgid "%(last)s,%(title)s %(first)s"
+msgstr ""
+
 msgid "Cannot merge active patient into another patient."
 msgstr ""
 
@@ -7045,9 +7403,6 @@ msgstr ""
 msgid "merged"
 msgstr ""
 
-msgid "preferred name/call name/..."
-msgstr ""
-
 msgid "invalid age: DOB in the future"
 msgstr ""
 
@@ -7060,9 +7415,6 @@ msgstr ""
 msgid "Mrs"
 msgstr ""
 
-msgid "unknown"
-msgstr ""
-
 msgid "empty status"
 msgstr ""
 
@@ -7393,7 +7745,7 @@ msgid " Part %s: %s %s(%s Bytes)\n"
 msgstr ""
 
 #, python-format
-msgid " Filename: %s\n"
+msgid " Filename: %s%s\n"
 msgstr ""
 
 msgid "no parts"
@@ -7407,18 +7759,25 @@ msgid "%s parts"
 msgstr ""
 
 #, python-format
+msgid "%s of %s"
+msgstr ""
+
+#, python-format
 msgid ""
 "%s (%s)   #%s\n"
-"\n"
 " Created: %s\n"
 " Episode: %s\n"
-"%s%s%s"
+"%s%s%s%s"
 msgstr ""
 
 #, python-format
 msgid " External reference: %s\n"
 msgstr ""
 
+#, python-format
+msgid " Organization: %%s @ %s\n"
+msgstr ""
+
 msgid "Cannot run [arriba] !"
 msgstr ""
 
@@ -7764,23 +8123,7 @@ msgid "External care:"
 msgstr ""
 
 #, python-format
-msgid ""
-"health issue: %s%s%s\n"
-"\n"
-msgstr ""
-
-msgid ""
-"\n"
-"current values:\n"
-msgstr ""
-
-msgid "no previous versions of this record"
-msgstr ""
-
-msgid ""
-"\n"
-"all values with <audit_action>, <audit_when>, <audit_by> fields (current "
-"value first):\n"
+msgid "Health issue: %s%s%s"
 msgstr ""
 
 msgid "Unattributed episodes"
@@ -7804,9 +8147,6 @@ msgstr ""
 msgid "finished"
 msgstr ""
 
-msgid "Health issue"
-msgstr ""
-
 msgid "none associated"
 msgstr ""
 
@@ -7842,9 +8182,7 @@ msgid "Measurements and Results:"
 msgstr ""
 
 #, python-format
-msgid ""
-"episode: %s%s%s\n"
-"\n"
+msgid "Episode: %s%s%s"
 msgstr ""
 
 #, python-format
@@ -7872,9 +8210,7 @@ msgid "%s other episodes touched upon during this encounter:"
 msgstr ""
 
 #, python-format
-msgid ""
-"encounter: %s%s%s\n"
-"\n"
+msgid "Encounter: %s%s%s"
 msgstr ""
 
 msgid " (ongoing)"
@@ -7895,9 +8231,6 @@ msgstr ""
 msgid "Procedures"
 msgstr ""
 
-msgid "Substances"
-msgstr ""
-
 msgid "Life events"
 msgstr ""
 
@@ -7919,9 +8252,6 @@ msgstr ""
 msgid "Cannot display timeline."
 msgstr ""
 
-msgid "Vaccination"
-msgstr ""
-
 msgid "Lab result"
 msgstr ""
 
@@ -7989,9 +8319,6 @@ msgstr ""
 msgid "Exported: %s\n"
 msgstr ""
 
-msgid "emr-journal"
-msgstr ""
-
 msgid "Chronological EMR Journal\n"
 msgstr ""
 
@@ -8259,16 +8586,7 @@ msgstr ""
 msgid "Select one or more codes that apply."
 msgstr ""
 
-msgid "Cannot move progress notes. No active patient."
-msgstr ""
-
-msgid "Moving progress notes between encounters ..."
-msgstr ""
-
-msgid ""
-"\n"
-" Select the progress notes to move from the list !\n"
-"\n"
+msgid "Select the narrative you are interested in ..."
 msgstr ""
 
 msgid "when"
@@ -8280,20 +8598,148 @@ msgstr ""
 msgid "entry"
 msgstr ""
 
-msgid "Cannot edit progress notes. No active patient."
+msgid "There is no narrative for this episode in this encounter."
 msgstr ""
 
-msgid "Deleting progress note"
+msgid "Must select episode to move narrative to first."
 msgstr ""
 
-msgid ""
-"Are you positively sure you want to delete this\n"
-"progress note from the medical record ?\n"
-"\n"
-"Note that even if you chose to delete the entry it will\n"
-"still be (invisibly) kept in the audit trail to protect\n"
-"you from litigation because physical deletion is known\n"
-"to be unlawful in some jurisdictions.\n"
+msgid "Last"
+msgstr ""
+
+msgid "In health issue"
+msgstr ""
+
+msgid "Most recent notes on selected problem"
+msgstr ""
+
+#, python-format
+msgid "%s (active+potential) problems"
+msgstr ""
+
+#, python-format
+msgid "%s active problems"
+msgstr ""
+
+msgid "Current encounter:"
+msgstr ""
+
+msgid "Cumulative summary"
+msgstr ""
+
+#, python-format
+msgid "Most recent info on %s%s%s"
+msgstr ""
+
+#, python-format
+msgid ""
+"Cannot open progress note editor for\n"
+"\n"
+"[%s].\n"
+"\n"
+msgstr ""
+
+msgid "opening progress note editor"
+msgstr ""
+
+msgid "Cannot save all editors. Some were kept open."
+msgstr ""
+
+msgid "new problem"
+msgstr ""
+
+msgid ""
+"Are you sure you really want to\n"
+"discard this progress note ?\n"
+msgstr ""
+
+msgid "Discarding progress note"
+msgstr ""
+
+msgid "There are unsaved progress notes !\n"
+msgstr ""
+
+msgid "Unsaved progress notes"
+msgstr ""
+
+msgid "Problem list"
+msgstr ""
+
+msgid "Saving SOAP note"
+msgstr ""
+
+msgid "Do you want to save the SOAP note ?"
+msgstr ""
+
+#, python-format
+msgid "&Filter by problem %s%s%s"
+msgstr ""
+
+msgid "Cannot save SimpleNotes SOAP note."
+msgstr ""
+
+#, python-format
+msgid "Progress note: %s%s"
+msgstr ""
+
+msgid "Please enter a name for the new problem:"
+msgstr ""
+
+msgid "Adding a problem"
+msgstr ""
+
+msgid "Cannot delete problem. There is still clinical data recorded for it."
+msgstr ""
+
+#, python-format
+msgid "GNUmed: configuring [%s] (%s plugins)"
+msgstr ""
+
+msgid "loading list of plugins                               "
+msgstr ""
+
+msgid "failed"
+msgstr ""
+
+msgid "success"
+msgstr ""
+
+#, python-format
+msgid ""
+"previous: %s (%s)\n"
+"current (%s/%s): %s"
+msgstr ""
+
+#, python-format
+msgid "Cannot switch to [%s]: no patient selected"
+msgstr ""
+
+msgid "Cannot move progress notes. No active patient."
+msgstr ""
+
+msgid "Moving progress notes between encounters ..."
+msgstr ""
+
+msgid ""
+"\n"
+" Select the progress notes to move from the list !\n"
+"\n"
+msgstr ""
+
+msgid "Cannot edit progress notes. No active patient."
+msgstr ""
+
+msgid "Deleting progress note"
+msgstr ""
+
+msgid ""
+"Are you positively sure you want to delete this\n"
+"progress note from the medical record ?\n"
+"\n"
+"Note that even if you chose to delete the entry it will\n"
+"still be (invisibly) kept in the audit trail to protect\n"
+"you from litigation because physical deletion is known\n"
+"to be unlawful in some jurisdictions.\n"
 msgstr ""
 
 msgid "Yes, delete the progress note."
@@ -8479,965 +8925,884 @@ msgid ""
 " Now, mark the entries you want to include in your report.\n"
 msgstr ""
 
-msgid "Select the narrative you are interested in ..."
+msgid "Pick a date ..."
 msgstr ""
 
-msgid "There is no narrative for this episode in this encounter."
+msgid "<ALT-C/K>: pick from (c/k)alendar"
 msgstr ""
 
-msgid "Must select episode to move narrative to first."
+msgid "Cannot interpret input as timestamp."
 msgstr ""
 
-msgid "Last"
+msgid "No vaccines were chosen"
 msgstr ""
 
-msgid "In health issue"
+#, python-format
+msgid "Combination of indications , %s , not found in any vaccine"
 msgstr ""
 
-msgid "Most recent notes on selected problem"
+msgid "Sequence"
 msgstr ""
 
-#, python-format
-msgid "%s (active+potential) problems"
+msgid "Batch"
 msgstr ""
 
-#, python-format
-msgid "%s active problems"
+msgid "Vaccinator"
 msgstr ""
 
-msgid "Current encounter:"
+msgid ""
+"Vaccinations by Recommender (X = patient on regime, O = patient not on "
+"regime) "
 msgstr ""
 
-msgid "Cumulative summary"
+msgid "enrolled regime vaccinations not yet given"
 msgstr ""
 
-#, python-format
-msgid "Most recent info on %s%s%s"
+msgid "Proceed with "
 msgstr ""
 
 #, python-format
-msgid ""
-"Cannot open progress note editor for\n"
-"\n"
-"[%s].\n"
-"\n"
+msgid "Failed to enrol patient in %s"
 msgstr ""
 
-msgid "opening progress note editor"
+#, python-format
+msgid "Failed to  delist patient from %s"
 msgstr ""
 
-msgid "Cannot save all editors. Some were kept open."
+msgid "Missing GNUmed module"
 msgstr ""
 
-msgid "new problem"
+#, python-format
+msgid ""
+"GNUmed detected that parts of it are not\n"
+"properly installed. The following message\n"
+"names the missing part:\n"
+"\n"
+" \"%s\"\n"
+"\n"
+"Please make sure to get the missing\n"
+"parts installed. Otherwise some of the\n"
+"functionality will not be accessible."
 msgstr ""
 
+#, python-format
 msgid ""
-"Are you sure you really want to\n"
-"discard this progress note ?\n"
+"\n"
+" Source: %s"
 msgstr ""
 
-msgid "Discarding progress note"
+#, python-format
+msgid ""
+"\n"
+" Code: %s"
 msgstr ""
 
-msgid "There are unsaved progress notes !\n"
+#, python-format
+msgid ""
+"\n"
+" Details (first 250 characters):\n"
+"%s\n"
+"%s\n"
+"%s"
 msgstr ""
 
-msgid "Unsaved progress notes"
+msgid "Access violation"
 msgstr ""
 
 #, python-format
-msgid "Synopsis (%s)"
+msgid ""
+"You do not have access to this part of GNUmed.\n"
+"\n"
+"%s"
 msgstr ""
 
-msgid ""
-"Enter a short working name for this new problem\n"
-"(which will become a new, unassociated episode):\n"
+msgid "Lost connection"
 msgstr ""
 
-#, python-format
 msgid ""
-"Enter a short working name for this new\n"
-"episode under the existing health issue\n"
+"Since you were last working in GNUmed,\n"
+"your database connection timed out.\n"
 "\n"
-"\"%s\":\n"
+"This GNUmed session is now expired.\n"
+"\n"
+"You will have to close this client and\n"
+"restart a new GNUmed session."
 msgstr ""
 
-msgid "Creating problem (episode) to save notelet under ..."
+msgid ""
+"Please enter a short note on what you\n"
+"were about to do in GNUmed:"
 msgstr ""
 
-msgid "Cannot save a new problem without a name."
+msgid "Sending bug report"
 msgstr ""
 
-msgid "saving progress note"
+msgid ""
+"Edit the list of email addresses to send the\n"
+"bug report to (separate addresses by spaces).\n"
+"\n"
+"Note that <gnumed-bugs at gnu.org> refers to\n"
+"the public (!) GNUmed bugs mailing list."
 msgstr ""
 
 #, python-format
 msgid ""
-"The new episode:\n"
+"Your bug report will be sent to:\n"
 "\n"
-" \"%s\"\n"
+"%s\n"
 "\n"
-"will remain unassociated despite the editor\n"
-"having been invoked from the health issue:\n"
+"Make sure you have reviewed the log file for potentially\n"
+"sensitive information before sending out the bug report.\n"
 "\n"
-" \"%s\""
+"Note that emailing the report may take a while depending\n"
+"on the speed of your internet connection.\n"
 msgstr ""
 
-msgid "You need to actually set an editor."
+msgid "Yes, send the bug report."
 msgstr ""
 
-#, python-format
-msgid "The command [%s] is not found."
+msgid "No, do not send the bug report."
 msgstr ""
 
-#, python-format
-msgid ""
-"Enter the shell command with which to start\n"
-"the image editor for visual progress notes.\n"
-"\n"
-"Any \"%(img)s\" included with the arguments\n"
-"will be replaced by the file name of the\n"
-"note template."
+msgid "include log file in bug report"
 msgstr ""
 
-msgid "Choose file to use as template for new visual progress note"
+msgid ""
+"The database you are connected to is marked as\n"
+"\"in-production with controlled access\".\n"
+"\n"
+"You indicated that you want to include the log\n"
+"file in your bug report. While this is often\n"
+"useful for debugging the log file might contain\n"
+"bits of patient data which must not be sent out\n"
+"without de-identification.\n"
+"\n"
+"Please confirm that you want to include the log !"
 msgstr ""
 
-msgid "Visual progress note source"
+msgid "<not supplied>"
 msgstr ""
 
-msgid "From which source do you want to pick the image template ?"
+msgid "Bug report has been emailed."
 msgstr ""
 
-msgid "Database"
+msgid "Bug report COULD NOT be emailed."
 msgstr ""
 
-msgid "List of templates in the database."
+msgid "Underweight"
 msgstr ""
 
-msgid "Files in the filesystem."
+msgid "63< Normal >79"
 msgstr ""
 
-msgid "Device"
+msgid "63 - Normal - 79"
 msgstr ""
 
-msgid "Image capture devices (scanners, cameras, etc)"
+msgid "Overweight"
 msgstr ""
 
-#, python-format
-msgid "Cannot export visual progress note template for [%s]."
+msgid "Obese"
 msgstr ""
 
-msgid "Cannot export visual progress note to file."
+msgid "Current height/mass"
 msgstr ""
 
-msgid "Editor for visual progress note not configured."
+msgid "Height (cm)"
 msgstr ""
 
-#, python-format
-msgid ""
-"There was a problem with running the editor\n"
-"for visual progress notes.\n"
-"\n"
-" [%s]\n"
-"\n"
+msgid "Mass (kg)"
 msgstr ""
 
-msgid "Editing visual progress note"
+msgid "Adjusted Values"
 msgstr ""
 
-#, python-format
-msgid ""
-"There was a problem reading the visual\n"
-"progress note from the file:\n"
-"\n"
-" [%s]\n"
-"\n"
+msgid "Goal mass"
 msgstr ""
 
-msgid "Saving visual progress note"
+msgid "kg to lose"
 msgstr ""
 
-msgid ""
-"You either created a visual progress note from a template\n"
-"in the database (rather than from a file on disk) or you\n"
-"edited an existing visual progress note.\n"
-"\n"
-"The template/original was not modified at all, however.\n"
-"\n"
-"Do you still want to save the unmodified image as a\n"
-"visual progress note into the EMR of the patient ?\n"
+msgid "BMI Calculator"
 msgstr ""
 
-msgid "visual progress notes"
+msgid "&Reset"
 msgstr ""
 
-#, python-format
-msgid "Created: %s"
+msgid "Select a healthcare provider."
 msgstr ""
 
-msgid "Problem list"
+msgid "Public (no clinical or demographic access)"
 msgstr ""
 
-msgid "Saving SOAP note"
+msgid "Staff (demographic access only)"
 msgstr ""
 
-msgid "Do you want to save the SOAP note ?"
+msgid "staff (clerical)"
 msgstr ""
 
-#, python-format
-msgid "&Filter by problem %s%s%s"
+msgid "full clinical access"
 msgstr ""
 
-msgid "Cannot save SimpleNotes SOAP note."
+msgid "DB account"
 msgstr ""
 
-#, python-format
-msgid "Progress note: %s%s"
+msgid "can login"
 msgstr ""
 
-msgid "Please enter a name for the new problem:"
+msgid "can not login"
 msgstr ""
 
-msgid "Adding a problem"
+msgid "Activating GNUmed user."
 msgstr ""
 
-msgid "Cannot delete problem. There is still clinical data recorded for it."
+msgid "Deactivating GNUmed user."
 msgstr ""
 
-#, python-format
-msgid "GNUmed: configuring [%s] (%s plugins)"
+msgid "Removing GNUmed user."
 msgstr ""
 
-msgid "loading list of plugins                               "
+msgid "Removing GNUmed user"
 msgstr ""
 
-msgid "failed"
+msgid "Modifying GNUmed user."
 msgstr ""
 
-msgid "success"
+msgid "Failed to save changes to GNUmed database user."
 msgstr ""
 
-#, python-format
-msgid ""
-"previous: %s (%s)\n"
-"current (%s/%s): %s"
+msgid "Modifying GNUmed user"
 msgstr ""
 
 #, python-format
-msgid "Cannot switch to [%s]: no patient selected"
+msgid "Failed to set role [%s] for GNUmed database user."
 msgstr ""
 
-msgid "Pick a date ..."
+#, python-format
+msgid ""
+"\n"
+"  %s \"%s\" %s\n"
+"  born: %s"
 msgstr ""
 
-msgid "<ALT-C/K>: pick from (c/k)alendar"
+msgid ""
+"Password entries do not match. Please type in the passwords again to rule "
+"out typos."
 msgstr ""
 
-msgid "Cannot interpret input as timestamp."
+msgid "Adding GNUmed user"
 msgstr ""
 
-msgid "No vaccines were chosen"
+msgid ""
+"Are you positively sure you want to create\n"
+"a user with an empty password ?\n"
+"\n"
+"Think about the record access implications !"
 msgstr ""
 
-#, python-format
-msgid "Combination of indications , %s , not found in any vaccine"
+msgid "Enlisting person as user."
 msgstr ""
 
-msgid "Sequence"
+msgid "Encrypt"
 msgstr ""
 
-msgid "Batch"
+msgid "Decrypt"
 msgstr ""
 
-msgid "Vaccinator"
+msgid "Set pass phrase"
 msgstr ""
 
-msgid ""
-"Vaccinations by Recommender (X = patient on regime, O = patient not on "
-"regime) "
+msgid "This is not correctly encrypted text!"
 msgstr ""
 
-msgid "enrolled regime vaccinations not yet given"
+msgid "Please enter your pass phrase:"
 msgstr ""
 
-msgid "Proceed with "
+msgid "Pass phrase expired"
 msgstr ""
 
-#, python-format
-msgid "Failed to enrol patient in %s"
+msgid ""
+"\n"
+"Conditions preventable by vaccination as currently known to GNUmed.\n"
 msgstr ""
 
-#, python-format
-msgid "Failed to  delist patient from %s"
+msgid "Showing vaccination preventable conditions."
 msgstr ""
 
-msgid "Missing GNUmed module"
+msgid "ATCs: single-condition vaccines"
 msgstr ""
 
-#, python-format
-msgid ""
-"GNUmed detected that parts of it are not\n"
-"properly installed. The following message\n"
-"names the missing part:\n"
-"\n"
-" \"%s\"\n"
-"\n"
-"Please make sure to get the missing\n"
-"parts installed. Otherwise some of the\n"
-"functionality will not be accessible."
+msgid "ATCs: multi-condition vaccines"
 msgstr ""
 
-#, python-format
-msgid ""
-"\n"
-" Source: %s"
+msgid "Pick the relevant indications."
 msgstr ""
 
-#, python-format
-msgid ""
-"\n"
-" Code: %s"
+msgid "Known indications"
 msgstr ""
 
-#, python-format
-msgid ""
-"\n"
-" Details (first 250 characters):\n"
-"%s\n"
-"%s\n"
-"%s"
+msgid "Adding new vaccine"
 msgstr ""
 
-msgid "Access violation"
+msgid "Editing vaccine"
 msgstr ""
 
 #, python-format
 msgid ""
-"You do not have access to this part of GNUmed.\n"
+"Cannot delete vaccine\n"
 "\n"
-"%s"
+" %s - %s (#%s)\n"
+"\n"
+"It is probably documented in a vaccination."
 msgstr ""
 
-msgid "Lost connection"
+msgid "Deleting vaccine"
+msgstr ""
+
+msgid "fake"
 msgstr ""
 
 msgid ""
-"Since you were last working in GNUmed,\n"
-"your database connection timed out.\n"
 "\n"
-"This GNUmed session is now expired.\n"
-"\n"
-"You will have to close this client and\n"
-"restart a new GNUmed session."
+"The vaccines currently known to GNUmed.\n"
 msgstr ""
 
-msgid ""
-"Please enter a short note on what you\n"
-"were about to do in GNUmed:"
+msgid "Showing vaccines."
 msgstr ""
 
-msgid "Sending bug report"
+msgid "Enter or select the batch/lot number of the vaccine used."
 msgstr ""
 
-msgid ""
-"Edit the list of email addresses to send the\n"
-"bug report to (separate addresses by spaces).\n"
-"\n"
-"Note that <gnumed-bugs at gnu.org> refers to\n"
-"the public (!) GNUmed bugs mailing list."
+msgid "Saving vaccine"
 msgstr ""
 
 #, python-format
 msgid ""
-"Your bug report will be sent to:\n"
+"This vaccine is already in use:\n"
 "\n"
-"%s\n"
+" \"%s\"\n"
+" (%s)\n"
 "\n"
-"Make sure you have reviewed the log file for potentially\n"
-"sensitive information before sending out the bug report.\n"
+"Are you absolutely positively sure that\n"
+"you really want to edit this vaccine ?\n"
 "\n"
-"Note that emailing the report may take a while depending\n"
-"on the speed of your internet connection.\n"
+"This will change the vaccine name and/or target\n"
+"conditions in each patient this vaccine was\n"
+"used in to document a vaccination with.\n"
 msgstr ""
 
-msgid "Yes, send the bug report."
+msgid "You must select at least one indication."
 msgstr ""
 
-msgid "No, do not send the bug report."
+msgid "Pick the diseases this vaccine protects against."
 msgstr ""
 
-msgid "include log file in bug report"
+msgid "This vaccine"
 msgstr ""
 
-msgid ""
-"The database you are connected to is marked as\n"
-"\"in-production with controlled access\".\n"
-"\n"
-"You indicated that you want to include the log\n"
-"file in your bug report. While this is often\n"
-"useful for debugging the log file might contain\n"
-"bits of patient data which must not be sent out\n"
-"without de-identification.\n"
-"\n"
-"Please confirm that you want to include the log !"
+msgid "Adding new vaccinations"
 msgstr ""
 
-msgid "<not supplied>"
+msgid "Editing vaccination"
 msgstr ""
 
-msgid "Bug report has been emailed."
+msgid "vaccination recall"
 msgstr ""
 
-msgid "Bug report COULD NOT be emailed."
-msgstr ""
-
-msgid "Underweight"
-msgstr ""
-
-msgid "63< Normal >79"
-msgstr ""
-
-msgid "63 - Normal - 79"
+#, python-format
+msgid "vaccination recall (%s)"
 msgstr ""
 
-msgid "Overweight"
+#, python-format
+msgid ""
+"Existing vaccination:\n"
+"\n"
+"%s"
 msgstr ""
 
-msgid "Obese"
+msgid ""
+"\n"
+"Complete vaccination history for this patient.\n"
 msgstr ""
 
-msgid "Current height/mass"
+msgid "Showing vaccinations."
 msgstr ""
 
-msgid "Height (cm)"
+msgid "Intended to protect from"
 msgstr ""
 
-msgid "Mass (kg)"
+msgid "Print vaccinations or recalls."
 msgstr ""
 
-msgid "Adjusted Values"
+msgid "Recall"
 msgstr ""
 
-msgid "Goal mass"
+msgid "Add a recall for a vaccination"
 msgstr ""
 
-msgid "kg to lose"
+msgid "Vx schedules"
 msgstr ""
 
-msgid "BMI Calculator"
+msgid "Open a browser showing vaccination schedules."
 msgstr ""
 
-msgid "&Reset"
+msgid "prevention"
 msgstr ""
 
-msgid "Select a healthcare provider."
+msgid "Saving vaccination"
 msgstr ""
 
-msgid "Public (no clinical or demographic access)"
+msgid "Pick the diseases this vaccination was given against."
 msgstr ""
 
-msgid "Staff (demographic access only)"
+msgid "  IMMUNISATIONS  "
 msgstr ""
 
-msgid "staff (clerical)"
+msgid "Indications"
 msgstr ""
 
-msgid "full clinical access"
+msgid "Active Schedules"
 msgstr ""
 
-msgid "DB account"
+msgid "Missing Immunisations"
 msgstr ""
 
-msgid "can login"
+msgid "  Alerts  "
 msgstr ""
 
-msgid "can not login"
+msgid "ERROR: cannot retrieve active vaccination schedules"
 msgstr ""
 
-msgid "Activating GNUmed user."
+msgid "no active vaccination schedules"
 msgstr ""
 
-msgid "Deactivating GNUmed user."
+#, python-format
+msgid "%s for %s (%s shots): %s"
 msgstr ""
 
-msgid "Removing GNUmed user."
+msgid "ERROR: cannot retrieve due/overdue vaccinations"
 msgstr ""
 
-msgid "Removing GNUmed user"
+#, python-format
+msgid "%.0d weeks left: shot %s for %s in %s, due %s (%s)"
 msgstr ""
 
-msgid "Modifying GNUmed user."
+#, python-format
+msgid "overdue %.0dyrs %.0dwks: shot %s for %s in schedule \"%s\" (%s)"
 msgstr ""
 
-msgid "Failed to save changes to GNUmed database user."
+#, python-format
+msgid "due now: booster for %s in schedule \"%s\" (%s)"
 msgstr ""
 
-msgid "Modifying GNUmed user"
+#, python-format
+msgid "Synopsis (%s)"
 msgstr ""
 
-#, python-format
-msgid "Failed to set role [%s] for GNUmed database user."
+msgid ""
+"Enter a short working name for this new problem\n"
+"(which will become a new, unassociated episode):\n"
 msgstr ""
 
 #, python-format
 msgid ""
+"Enter a short working name for this new\n"
+"episode under the existing health issue\n"
 "\n"
-"  %s \"%s\" %s\n"
-"  born: %s"
+"\"%s\":\n"
 msgstr ""
 
-msgid ""
-"Password entries do not match. Please type in the passwords again to rule "
-"out typos."
+msgid "Creating problem (episode) to save notelet under ..."
 msgstr ""
 
-msgid "Adding GNUmed user"
+msgid "Cannot save a new problem without a name."
+msgstr ""
+
+msgid "saving progress note"
 msgstr ""
 
+#, python-format
 msgid ""
-"Are you positively sure you want to create\n"
-"a user with an empty password ?\n"
+"The new episode:\n"
 "\n"
-"Think about the record access implications !"
+" \"%s\"\n"
+"\n"
+"will remain unassociated despite the editor\n"
+"having been invoked from the health issue:\n"
+"\n"
+" \"%s\""
 msgstr ""
 
-msgid "Enlisting person as user."
+msgid "Adding substance abuse"
 msgstr ""
 
-msgid "Encrypt"
+msgid "Editing substance abuse"
 msgstr ""
 
-msgid "Decrypt"
+msgid "Substances abused by the patient:"
 msgstr ""
 
-msgid "Set pass phrase"
+msgid "Showing abused substances."
 msgstr ""
 
-msgid "This is not correctly encrypted text!"
+msgid "Intake"
 msgstr ""
 
-msgid "Please enter your pass phrase:"
+msgid "nicotine"
 msgstr ""
 
-msgid "Pass phrase expired"
+msgid "unit"
 msgstr ""
 
-msgid ""
-"\n"
-"Conditions preventable by vaccination as currently known to GNUmed.\n"
+#, python-format
+msgid "Latest: %s ago (%s %s%s%s%s)"
 msgstr ""
 
-msgid "Showing vaccination preventable conditions."
+#, python-format
+msgid "%s %s%s%s (%s ago, %s)"
 msgstr ""
 
-msgid "ATCs: single-condition vaccines"
+#, python-format
+msgid "overdue %s: %s"
 msgstr ""
 
-msgid "ATCs: multi-condition vaccines"
+#, python-format
+msgid "due in %s%s"
 msgstr ""
 
-msgid "Pick the relevant indications."
+msgid "suppr'd:"
 msgstr ""
 
-msgid "Known indications"
+msgid "Suppressed hints:\n"
 msgstr ""
 
-msgid "Adding new vaccine"
+msgid ""
+"Do you really want to\n"
+"delete this inbox message ?"
 msgstr ""
 
-msgid "Editing vaccine"
+msgid "Deleting inbox message"
+msgstr ""
+
+msgid "Export area: 1 item"
 msgstr ""
 
 #, python-format
-msgid ""
-"Cannot delete vaccine\n"
-"\n"
-" %s - %s (#%s)\n"
-"\n"
-"It is probably documented in a vaccination."
+msgid "Export area: %s items"
 msgstr ""
 
-msgid "Deleting vaccine"
+#, python-format
+msgid "%s %s more not shown %s"
 msgstr ""
 
-msgid "fake"
+#, python-format
+msgid "Currently %s entries in waiting list"
 msgstr ""
 
-msgid ""
-"\n"
-"The vaccines currently known to GNUmed.\n"
+#, python-format
+msgid "first (in GMd): %s, %s"
 msgstr ""
 
-msgid "Showing vaccines."
+#, python-format
+msgid "last: %s, %s"
 msgstr ""
 
-msgid "Enter or select the batch/lot number of the vaccine used."
+#, python-format
+msgid "Last %s:"
 msgstr ""
 
-msgid "Saving vaccine"
+msgid "Statistics cover period"
 msgstr ""
 
 #, python-format
+msgid "EDC (!?!): %s"
+msgstr ""
+
 msgid ""
-"This vaccine is already in use:\n"
-"\n"
-" \"%s\"\n"
-" (%s)\n"
-"\n"
-"Are you absolutely positively sure that\n"
-"you really want to edit this vaccine ?\n"
+"The Expected Date of Confinement is rather questionable.\n"
 "\n"
-"This will change the vaccine name and/or target\n"
-"conditions in each patient this vaccine was\n"
-"used in to document a vaccination with.\n"
+"Please check patient age, patient gender, time until/since EDC."
 msgstr ""
 
-msgid "You must select at least one indication."
+#, python-format
+msgid "%s Vacc: %s (latest of %s)"
 msgstr ""
 
-msgid "Pick the diseases this vaccine protects against."
+#, python-format
+msgid "Hx of addiction: %s"
 msgstr ""
 
-msgid "This vaccine"
+msgid "active substance abuse"
 msgstr ""
 
-msgid "Adding new vaccinations"
+#, python-format
+msgid "%s %s %s%s"
 msgstr ""
 
-msgid "Editing vaccination"
+#, python-format
+msgid "%s %s%s"
 msgstr ""
 
-msgid "vaccination recall"
+#, python-format
+msgid "** Currently hospitalized: %s **"
 msgstr ""
 
 #, python-format
-msgid "vaccination recall (%s)"
+msgid "emergency: %s"
 msgstr ""
 
 #, python-format
-msgid ""
-"Existing vaccination:\n"
-"\n"
-"%s"
+msgid "in-praxis: %s"
 msgstr ""
 
-msgid ""
-"\n"
-"Complete vaccination history for this patient.\n"
+#, python-format
+msgid "care: %s%s@%s"
 msgstr ""
 
-msgid "Showing vaccinations."
+msgid "*** CONFIDENTIAL ***"
 msgstr ""
 
-msgid "Intended to protect from"
+msgid " (confidential !)"
 msgstr ""
 
-msgid "Print vaccinations or recalls."
+#, python-format
+msgid "extrnl: %s (%s@%s)"
 msgstr ""
 
-msgid "Recall"
+#, python-format
+msgid "aka: %(last)s, %(first)s%(nick)s"
 msgstr ""
 
-msgid "Add a recall for a vaccination"
+#, python-format
+msgid "job: %s (%s)"
 msgstr ""
 
-msgid "Vx schedules"
+#, python-format
+msgid "issued by: %s%s"
 msgstr ""
 
-msgid "Open a browser showing vaccination schedules."
+#, python-format
+msgid "Last modified: %s"
 msgstr ""
 
-msgid "prevention"
+#, python-format
+msgid ""
+"Activities:\n"
+"\n"
+"%s"
 msgstr ""
 
-msgid "Saving vaccination"
+msgid "Cloning name"
 msgstr ""
 
-msgid "Pick the diseases this vaccination was given against."
+msgid "Editing external ID"
 msgstr ""
 
-msgid "  IMMUNISATIONS  "
+msgid "Adding new translation"
 msgstr ""
 
-msgid "Indications"
+msgid "Editing translation"
 msgstr ""
 
-msgid "Active Schedules"
+msgid "Selecting language for translation"
 msgstr ""
 
-msgid "Missing Immunisations"
+msgid ""
+"Please select the language the translations for which you want to work on."
 msgstr ""
 
-msgid "  Alerts  "
+#, python-format
+msgid ""
+"Are you sure you want to delete the translation of:\n"
+"\n"
+"%s\n"
+"\n"
+"into [%s] as:\n"
+"\n"
+"%s\n"
+"\n"
+"?  (Note that you must know the database administrator password !)\n"
 msgstr ""
 
-msgid "ERROR: cannot retrieve active vaccination schedules"
+msgid "Deleting translation from database"
 msgstr ""
 
-msgid "no active vaccination schedules"
+msgid "deleting a translation"
 msgstr ""
 
-#, python-format
-msgid "%s for %s (%s shots): %s"
+msgid "Contributing translations"
 msgstr ""
 
-msgid "ERROR: cannot retrieve due/overdue vaccinations"
-msgstr ""
-
-#, python-format
-msgid "%.0d weeks left: shot %s for %s in %s, due %s (%s)"
-msgstr ""
-
-#, python-format
-msgid "overdue %.0dyrs %.0dwks: shot %s for %s in schedule \"%s\" (%s)"
+msgid "Do you want to contribute your translations to the GNUmed project ?"
 msgstr ""
 
-#, python-format
-msgid "due now: booster for %s in schedule \"%s\" (%s)"
+msgid ""
+"Unable to send mail. Cannot contribute translations to GNUmed community."
 msgstr ""
 
-#, python-format
-msgid "Latest: %s ago (%s %s %s %s%s)"
+msgid "Thank you for your contribution to the GNUmed community!"
 msgstr ""
 
-#, python-format
-msgid "%s %s %s %s (%s ago, %s)"
+msgid "Showing translatable database strings for all languages."
 msgstr ""
 
 #, python-format
-msgid "overdue %s: %s"
+msgid "Showing translatable database strings for target language [%s]."
 msgstr ""
 
-#, python-format
-msgid "due in %s%s"
+msgid "Contribute translations to GNUmed community by email."
 msgstr ""
 
 msgid ""
-"Do you really want to\n"
-"delete this inbox message ?"
-msgstr ""
-
-msgid "Deleting inbox message"
-msgstr ""
-
-msgid "Export area: 1 item"
+"Before creating a new person review the encounter details\n"
+"of the patient you just worked on:\n"
 msgstr ""
 
-#, python-format
-msgid "Export area: %s items"
+msgid "Edit the current encounter of the patient you are ABOUT TO LEAVE:"
 msgstr ""
 
-#, python-format
-msgid "%s %s more not shown %s"
+msgid "Adding new person"
 msgstr ""
 
-#, python-format
-msgid "Currently %s entries in waiting list"
+msgid "ID exists !"
 msgstr ""
 
 #, python-format
-msgid "first (in GMd): %s, %s"
+msgid "One \"%s, %s (%s)\" already exists !"
 msgstr ""
 
 #, python-format
-msgid "last: %s, %s"
+msgid "%s \"%s, %s (%s)\" already exist !"
 msgstr ""
 
-#, python-format
-msgid "Last %s:"
+msgid "Must enter lastname."
 msgstr ""
 
-msgid "Statistics cover period"
+msgid "Must enter first name."
 msgstr ""
 
-#, python-format
-msgid "EDC (!?!): %s"
+msgid "Must select gender."
 msgstr ""
 
 msgid ""
-"The Expected Date of Confinement is rather questionable.\n"
-"\n"
-"Please check patient age, patient gender, time until/since EDC."
+"To properly create an address, all the related fields must be filled in."
 msgstr ""
 
-#, python-format
-msgid "%s Vacc: %s"
+msgid "Required fields"
 msgstr ""
 
-#, python-format
-msgid "%s %s %s%s"
+msgid "This field must contain an item selected from the dropdown list."
 msgstr ""
 
-#, python-format
-msgid "%s %s%s"
+msgid "Saving address"
 msgstr ""
 
-#, python-format
-msgid "** Currently hospitalized: %s **"
+msgid ""
+"Cannot save this address.\n"
+"\n"
+"You will have to add it via the Demographics plugin.\n"
 msgstr ""
 
-#, python-format
-msgid "emergency: %s"
+msgid ""
+"Address not saved.\n"
+"\n"
+"You will have to add it via the Demographics plugin.\n"
 msgstr ""
 
-#, python-format
-msgid "in-praxis: %s"
+msgid "You need to actually set an editor."
 msgstr ""
 
 #, python-format
-msgid "care: %s%s@%s"
-msgstr ""
-
-msgid "*** CONFIDENTIAL ***"
-msgstr ""
-
-msgid " (confidential !)"
+msgid "The command [%s] is not found."
 msgstr ""
 
 #, python-format
-msgid "extrnl: %s (%s@%s)"
+msgid ""
+"Enter the shell command with which to start\n"
+"the image editor for visual progress notes.\n"
+"\n"
+"Any \"%(img)s\" included with the arguments\n"
+"will be replaced by the file name of the\n"
+"note template."
 msgstr ""
 
-#, python-format
-msgid "aka: %(last)s, %(first)s%(nick)s"
+msgid "Choose file to use as template for new visual progress note"
 msgstr ""
 
-#, python-format
-msgid "job: %s (%s)"
+msgid "Visual progress note source"
 msgstr ""
 
-#, python-format
-msgid "issued by: %s%s"
+msgid "From which source do you want to pick the image template ?"
 msgstr ""
 
-#, python-format
-msgid "Last modified: %s"
+msgid "Database"
 msgstr ""
 
-#, python-format
-msgid ""
-"Activities:\n"
-"\n"
-"%s"
+msgid "List of templates in the database."
 msgstr ""
 
-msgid "Cloning name"
+msgid "Files in the filesystem."
 msgstr ""
 
-msgid "Editing external ID"
+msgid "Device"
 msgstr ""
 
-msgid "Adding new translation"
+msgid "Image capture devices (scanners, cameras, etc)"
 msgstr ""
 
-msgid "Editing translation"
+#, python-format
+msgid "Cannot export visual progress note template for [%s]."
 msgstr ""
 
-msgid "Selecting language for translation"
+msgid "Cannot export visual progress note to file."
 msgstr ""
 
-msgid ""
-"Please select the language the translations for which you want to work on."
+msgid "Editor for visual progress note not configured."
 msgstr ""
 
 #, python-format
 msgid ""
-"Are you sure you want to delete the translation of:\n"
-"\n"
-"%s\n"
-"\n"
-"into [%s] as:\n"
+"There was a problem with running the editor\n"
+"for visual progress notes.\n"
 "\n"
-"%s\n"
+" [%s]\n"
 "\n"
-"?  (Note that you must know the database administrator password !)\n"
-msgstr ""
-
-msgid "Deleting translation from database"
-msgstr ""
-
-msgid "deleting a translation"
-msgstr ""
-
-msgid "Contributing translations"
-msgstr ""
-
-msgid "Do you want to contribute your translations to the GNUmed project ?"
-msgstr ""
-
-msgid ""
-"Unable to send mail. Cannot contribute translations to GNUmed community."
-msgstr ""
-
-msgid "Thank you for your contribution to the GNUmed community!"
 msgstr ""
 
-msgid "Showing translatable database strings for all languages."
+msgid "Editing visual progress note"
 msgstr ""
 
 #, python-format
-msgid "Showing translatable database strings for target language [%s]."
-msgstr ""
-
-msgid "Contribute translations to GNUmed community by email."
-msgstr ""
-
 msgid ""
-"Before creating a new person review the encounter details\n"
-"of the patient you just worked on:\n"
+"There was a problem reading the visual\n"
+"progress note from the file:\n"
+"\n"
+" [%s]\n"
+"\n"
 msgstr ""
 
-msgid "Edit the current encounter of the patient you are ABOUT TO LEAVE:"
+msgid "Saving visual progress note"
 msgstr ""
 
-msgid "Adding new person"
+msgid ""
+"You either created a visual progress note from a template\n"
+"in the database (rather than from a file on disk) or you\n"
+"edited an existing visual progress note.\n"
+"\n"
+"The template/original was not modified at all, however.\n"
+"\n"
+"Do you still want to save the unmodified image as a\n"
+"visual progress note into the EMR of the patient ?\n"
 msgstr ""
 
-msgid "ID exists !"
+msgid "visual progress notes"
 msgstr ""
 
 #, python-format
-msgid "One \"%s, %s (%s)\" already exists !"
+msgid " [part 1 of %s]"
 msgstr ""
 
 #, python-format
-msgid "%s \"%s, %s (%s)\" already exist !"
-msgstr ""
-
-msgid "Must enter lastname."
-msgstr ""
-
-msgid "Must enter first name."
-msgstr ""
-
-msgid "Must select gender."
-msgstr ""
-
-msgid ""
-"To properly create an address, all the related fields must be filled in."
-msgstr ""
-
-msgid "Required fields"
-msgstr ""
-
-msgid "This field must contain an item selected from the dropdown list."
-msgstr ""
-
-msgid "Saving address"
-msgstr ""
-
-msgid ""
-"Cannot save this address.\n"
-"\n"
-"You will have to add it via the Demographics plugin.\n"
-msgstr ""
-
-msgid ""
-"Address not saved.\n"
-"\n"
-"You will have to add it via the Demographics plugin.\n"
+msgid "Created: %s%s"
 msgstr ""
 
 msgid "You must select a value from the picklist or type an exact match."
@@ -9520,7 +9885,8 @@ msgstr ""
 
 #, python-format
 msgid ""
-"%(street)s %(number)s, %(postcode)s %(urb)s, %(l10n_state)s, %(l10n_country)s"
+"%(street)s %(number)s, %(postcode)s %(urb)s, %(l10n_region)s, "
+"%(l10n_country)s"
 msgstr ""
 
 #, python-format
@@ -10107,7 +10473,7 @@ msgstr ""
 msgid ""
 "Cannot save address.\n"
 "\n"
-"Does the state [%s]\n"
+"Does the region [%s]\n"
 "exist in country [%s] ?"
 msgstr ""
 
@@ -10530,7 +10896,7 @@ msgstr ""
 msgid "Reminders for the current patient"
 msgstr ""
 
-msgid "Sent"
+msgid "Generated"
 msgstr ""
 
 msgid "Category - Type"
@@ -10578,9 +10944,6 @@ msgid ""
 "Data: %s"
 msgstr ""
 
-msgid "Inbox Message Actions:"
-msgstr ""
-
 msgid "Activate patient"
 msgstr ""
 
@@ -11269,7 +11632,7 @@ msgid ""
 msgstr ""
 
 #, python-format
-msgid "Select branch (of praxis [%s]) which you are logging in from.\n"
+msgid "Select the branch of praxis [%s] which you are logging in from.\n"
 msgstr ""
 
 msgid "Praxis branch selection ..."
@@ -11576,6 +11939,12 @@ msgstr ""
 msgid "List of addresses related to this person."
 msgstr ""
 
+msgid "Map"
+msgstr ""
+
+msgid "Show selected address on map"
+msgstr ""
+
 msgid "Adding new address"
 msgstr ""
 
@@ -11756,23 +12125,102 @@ msgstr ""
 msgid "generic multi choice dialog"
 msgstr ""
 
-msgid "Search in list"
+#, fuzzy
+msgid "Deleting list items"
+msgstr "حزف جميع العناصر"
+
+#, python-format
+msgid ""
+"You have selected %s list items.\n"
+"\n"
+"Really delete all %s items ?"
 msgstr ""
 
-msgid "Monty the Serpent && the FSF Present"
+msgid ""
+"Select the items you want to work on.\n"
+"\n"
+"A discontinuous selection may depend on your holding down a platform-"
+"dependent modifier key (<CTRL>, <ALT>, etc) or key combination (eg. <CTRL-"
+"SHIFT> or <CTRL-ALT>) while clicking."
 msgstr ""
 
-msgid "Free eMedicine"
+#, fuzzy
+msgid "List Item Actions:"
+msgstr "الت"
+
+msgid "Add (<INS>)"
+msgstr ""
+
+msgid "Delete (<DEL>)"
+msgstr ""
+
+msgid "Find (<CTRL-F>)"
 msgstr ""
 
 #, python-format
-msgid "Version %s%s brought to you by"
+msgid "Find next [%s] (<CTRL-N>)"
 msgstr ""
 
-msgid "debug"
+msgid "Row tooltip"
 msgstr ""
 
-msgid "Please visit http://www.gnumed.org"
+msgid "Row data (formatted as text)"
+msgstr ""
+
+msgid "Row content (as one line)"
+msgstr ""
+
+msgid "Row content (one line per column)"
+msgstr ""
+
+#, python-format
+msgid "Column &%s: \"%s\" [#%s]"
+msgstr ""
+
+#, python-format
+msgid "Column &%s: %s"
+msgstr ""
+
+msgid "&Copy to clipboard..."
+msgstr ""
+
+msgid "Append (&+) to clipboard..."
+msgstr ""
+
+#, python-format
+msgid ""
+"%s list items are selected.\n"
+"\n"
+"Really delete all %s items ?"
+msgstr ""
+
+msgid "Enter the search term:"
+msgstr ""
+
+msgid "List search"
+msgstr ""
+
+#, python-format
+msgid ""
+"Current search term: [[%s]]\n"
+"\n"
+"%s"
+msgstr ""
+
+msgid "Monty the Serpent && the FSF Present"
+msgstr ""
+
+msgid "Free eMedicine"
+msgstr ""
+
+#, python-format
+msgid "Version %s%s brought to you by"
+msgstr ""
+
+msgid "debug"
+msgstr ""
+
+msgid "Please visit http://www.gnumed.org"
 msgstr ""
 
 #, python-format
@@ -11906,6 +12354,9 @@ msgstr ""
 msgid "Unknown: ?"
 msgstr ""
 
+msgid "The text has been copied into the clipboard."
+msgstr ""
+
 msgid "file2clipboard"
 msgstr ""
 
@@ -11913,6 +12364,43 @@ msgstr ""
 msgid "The file [%s] has been copied into the clipboard."
 msgstr ""
 
+msgid "programmer forgot to specify error message"
+msgstr "المبرمج نسي ان يحدد رسالة خطأ"
+
+msgid ""
+"\n"
+"\n"
+"Please consult the error log for all the gory details !"
+msgstr ""
+"\n"
+"\n"
+"الرجاء اﻻستعانة بسجل الخطأ لجميع التفاصيل الدموية!"
+
+msgid "generic error message"
+msgstr "رسالة خطأ عام"
+
+msgid "programmer forgot to specify info message"
+msgstr "نسي المبرمج تحديد معلومات الرسالة"
+
+msgid "generic info message"
+msgstr "رسالة معلومات عامة"
+
+msgid "programmer forgot to specify warning"
+msgstr "نسي المبرمج تحديد التحذير"
+
+msgid "generic warning message"
+msgstr "رسالة تحذير عامة"
+
+msgid "Editing EDC"
+msgstr ""
+
+#, python-format
+msgid ""
+"Really delete the EDC documented previously ?\n"
+"\n"
+" EDC: %s"
+msgstr ""
+
 #, python-format
 msgid ""
 "Algorithm: %s\n"
@@ -12020,15 +12508,15 @@ msgstr ""
 msgid "Firstname"
 msgstr ""
 
-msgid "Nickname"
-msgstr ""
-
 msgid "DOB"
 msgstr ""
 
 msgid "last visit"
 msgstr ""
 
+msgid "Nickname / Comment"
+msgstr ""
+
 msgid "found via"
 msgstr ""
 
@@ -12206,442 +12694,196 @@ msgstr ""
 msgid "In case of emergency contact:"
 msgstr ""
 
-msgid ""
-"\n"
-"Please select the default drug data source from the list below.\n"
-"\n"
-"Note that to actually use it you need to have the database installed, too."
-msgstr ""
-
-msgid "Drug data source"
+msgid "The preparation (form) of the substance or brand."
 msgstr ""
 
-msgid "Configuring default drug data source"
+msgid "A substance with optional strength or a brand."
 msgstr ""
 
-msgid "No default drug database configured."
+msgid "The medical aim for consuming this substance."
 msgstr ""
 
-msgid "There is no default drug database configured."
+msgid "not tolerated:"
 msgstr ""
 
-msgid "Jumping to drug database"
+msgid "discontinued due to allergy or intolerance"
 msgstr ""
 
-#, python-format
-msgid "Cannot call IFAP via [%s]."
+msgid "Documented an allergy"
 msgstr ""
 
 #, python-format
-msgid "Cannot create IFAP <-> GNUmed transfer file [%s]."
-msgstr ""
-
-msgid "Current medication"
-msgstr ""
-
 msgid ""
+"An allergy was documented against the substance:\n"
 "\n"
-"The ATC codes as known to GNUmed.\n"
-msgstr ""
-
-msgid "Showing ATC codes."
+"  [%s]\n"
+"\n"
+"This substance was taken with the multi-component brand:\n"
+"\n"
+"  [%s (%s)]\n"
+"\n"
+"Note that ALL components of this brand were discontinued."
 msgstr ""
 
-msgid "Choose an ATC import config file"
+msgid "disapproved"
 msgstr ""
 
-msgid "config files"
+msgid "Substances consumed by the patient:"
 msgstr ""
 
-msgid "importing ATC reference data"
+msgid "Showing consumable substances."
 msgstr ""
 
-msgid "Successfully imported ATC reference data."
+msgid "Application"
 msgstr ""
 
-msgid "Importing ATC reference data failed."
+msgid "never"
 msgstr ""
 
-msgid "Select an ATC (Anatomical-Therapeutic-Chemical) code."
+#, python-format
+msgid "%s, last confirmed %s\n"
 msgstr ""
 
-msgid "Cannot delete this substance. It is in use."
+#, python-format
+msgid "Comment (%s): %%s\n"
 msgstr ""
 
-msgid ""
-"\n"
-"These are the consumable substances registered with GNUmed.\n"
+msgid "reaction not recorded"
 msgstr ""
 
-msgid "Showing consumable substances."
+msgid "GFR: unknown"
 msgstr ""
 
-msgid "Import"
+msgid "GFR reported by path lab"
 msgstr ""
 
-msgid "Import consumable substances from a drug database."
+msgid "<no components>"
 msgstr ""
 
-msgid "Cannot edit this substance. It is in use."
+msgid "Adding substance intake entry"
 msgstr ""
 
-msgid "Adding new consumable substance"
+#, python-format
+msgid ""
+"The patient is already taking\n"
+"\n"
+" %s\n"
+"\n"
+"You will want to adjust the schedule\n"
+"rather than document the intake twice."
 msgstr ""
 
-msgid "Editing consumable substance"
+msgid "Input incomplete/invalid for saving as substance intake."
 msgstr ""
 
-msgid "Cannot save consumable substance. Missing essential input."
+#, python-format
+msgid "Discontinued (%s) in the future (now: %s)!"
 msgstr ""
 
 #, python-format
-msgid "Cannot save consumable substance. %s"
+msgid "Discontinued (%s) before started (%s) !"
 msgstr ""
 
-msgid "Cannot remove this component from the drug. It is in use."
+msgid "Cannot add duplicate of (maybe inactive) substance intake."
 msgstr ""
 
+#, python-format
 msgid ""
 "\n"
-"These are the components in the drug brands known to GNUmed.\n"
+"[%s]\n"
+"\n"
+"It may be prudent to edit (before deletion) the details\n"
+"of this substance intake entry so as to leave behind\n"
+"some indication of why it was deleted.\n"
 msgstr ""
 
-msgid "Showing drug brand components."
+msgid "Deleting medication / substance intake"
 msgstr ""
 
-msgid "Adding new drug component"
+msgid "Allow editing of substance intake entry before deletion."
 msgstr ""
 
-msgid "Editing drug component"
+msgid "Delete immediately without editing first."
 msgstr ""
 
-msgid "Cannot edit drug component. It is in use."
+msgid "&Cancel"
 msgstr ""
 
-msgid "Cannot save drug component. Invalid or missing essential input."
+msgid "Abort. Do not delete or edit substance intake entry."
 msgstr ""
 
-msgid "A drug component with optional strength."
+msgid "Now delete substance intake entry ?"
 msgstr ""
 
-msgid "The preparation (form) of the substance or brand."
+msgid "Adding medication/non-medication substance intake"
 msgstr ""
 
-msgid "The substance with optional strength."
+msgid "Editing medication/non-medication substance intake"
 msgstr ""
 
-msgid "Managing components of a drug"
+msgid "Document an allergy against this substance."
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot manage the components of the branded drug product\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is currently taken by patients.\n"
+msgid "No medication list template configured."
 msgstr ""
 
-msgid "Pick the substances which are components of this drug."
+msgid "There is no medication list template configured."
 msgstr ""
 
-msgid "Components of drug"
+msgid "Problem loading medication list template."
 msgstr ""
 
 #, python-format
-msgid ""
-"Adjust the components of \"%s\"\n"
-"\n"
-"The drug must contain at least one component. Any given\n"
-"substance can only be included once per drug."
+msgid "Cannot load medication list template [%s - %s]"
 msgstr ""
 
-msgid "Managing components of a drug ..."
+msgid "generated medication list document"
 msgstr ""
 
-msgid "not in use"
+msgid "Select the default prescription template:"
 msgstr ""
 
-#, python-format
-msgid "ATC: %s\n"
+msgid "No prescription template configured."
 msgstr ""
 
-msgid "Editing medication"
+msgid "There is no prescription template configured."
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot edit the medication\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is a vaccine. Please edit it\n"
-"from the vaccine management section !\n"
+msgid "Printing prescription"
 msgstr ""
 
-msgid "Deleting medication"
+msgid "Problem loading prescription template."
 msgstr ""
 
 #, python-format
-msgid ""
-"Cannot delete the medication\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is a vaccine. Please delete it\n"
-"from the vaccine management section !\n"
+msgid "Cannot load prescription template [%s - %s]"
 msgstr ""
 
+#, fuzzy
+msgid "generated prescription"
+msgstr "وصفة"
+
 msgid ""
+"These brands have been prescribed but are not listed\n"
+"in the current medication list of this patient.\n"
 "\n"
-"These are the drug brands known to GNUmed.\n"
+"Please select those you want added to the medication list."
 msgstr ""
 
-msgid "Showing branded drugs."
+msgid "Newly prescribed drugs"
 msgstr ""
 
-msgid "Import substances and brands from a drug database."
+msgid "Add to medication list"
 msgstr ""
 
-msgid "Editing drug"
+msgid "Timeframe"
 msgstr ""
 
 #, python-format
-msgid ""
-"Cannot edit the branded drug product\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is currently taken by patients.\n"
+msgid "%s <fake>"
 msgstr ""
 
-msgid "Adding new drug brand"
-msgstr ""
-
-msgid "Editing drug brand"
-msgstr ""
-
-msgid "Manage consumable substances"
-msgstr ""
-
-msgid "Cannot edit drug brand. It is in use."
-msgstr ""
-
-msgid "Checking brand data"
-msgstr ""
-
-#, python-format
-msgid ""
-"The brand information you entered:\n"
-"\n"
-" [%s %s]\n"
-"\n"
-"already exists as a drug product."
-msgstr ""
-
-msgid ""
-"You have not selected any substances\n"
-"as drug components.\n"
-"\n"
-"Without components you will not be able to\n"
-"use this drug for documenting patient care.\n"
-"\n"
-"Are you sure you want to save\n"
-"it without components ?"
-msgstr ""
-
-msgid "Cannot save branded drug. Invalid or missing essential input."
-msgstr ""
-
-msgid ""
-"The brand name of the drug.\n"
-"\n"
-"Note: a brand name will need to be linked to\n"
-"one or more components before it can be used,\n"
-"except in the case of fake (generic) vaccines."
-msgstr ""
-
-msgid "The medical aim for consuming this substance."
-msgstr ""
-
-msgid "not tolerated:"
-msgstr ""
-
-msgid "discontinued due to allergy or intolerance"
-msgstr ""
-
-msgid "Documented an allergy"
-msgstr ""
-
-#, python-format
-msgid ""
-"An allergy was documented against the substance:\n"
-"\n"
-"  [%s]\n"
-"\n"
-"This substance was taken with the multi-component brand:\n"
-"\n"
-"  [%s (%s)]\n"
-"\n"
-"Note that ALL components of this brand were discontinued."
-msgstr ""
-
-msgid "disapproved"
-msgstr ""
-
-msgid "Substances consumed by the patient:"
-msgstr ""
-
-msgid "Intake"
-msgstr ""
-
-msgid "Application"
-msgstr ""
-
-msgid "never"
-msgstr ""
-
-#, python-format
-msgid "%s, last confirmed %s\n"
-msgstr ""
-
-#, python-format
-msgid "Comment (%s): %%s\n"
-msgstr ""
-
-msgid "reaction not recorded"
-msgstr ""
-
-msgid "GFR: unknown"
-msgstr ""
-
-msgid "GFR reported by path lab"
-msgstr ""
-
-#, python-format
-msgid ""
-"The patient is already taking\n"
-"\n"
-" %s\n"
-"\n"
-"You will want to adjust the schedule\n"
-"rather than document the intake twice."
-msgstr ""
-
-msgid "Adding substance intake entry"
-msgstr ""
-
-msgid "Input incomplete/invalid for saving as substance intake."
-msgstr ""
-
-#, python-format
-msgid "Discontinued (%s) in the future (now: %s)!"
-msgstr ""
-
-#, python-format
-msgid "Discontinued (%s) before started (%s) !"
-msgstr ""
-
-msgid "Cannot add duplicate of (maybe inactive) substance intake."
-msgstr ""
-
-#, python-format
-msgid ""
-"\n"
-"[%s]\n"
-"\n"
-"It may be prudent to edit (before deletion) the details\n"
-"of this substance intake entry so as to leave behind\n"
-"some indication of why it was deleted.\n"
-msgstr ""
-
-msgid "Deleting medication / substance intake"
-msgstr ""
-
-msgid "Allow editing of substance intake entry before deletion."
-msgstr ""
-
-msgid "Delete immediately without editing first."
-msgstr ""
-
-msgid "&Cancel"
-msgstr ""
-
-msgid "Abort. Do not delete or edit substance intake entry."
-msgstr ""
-
-msgid "Now delete substance intake entry ?"
-msgstr ""
-
-msgid "Adding medication/non-medication substance intake"
-msgstr ""
-
-msgid "Editing medication/non-medication substance intake"
-msgstr ""
-
-msgid "Document an allergy against this substance."
-msgstr ""
-
-msgid "No medication list template configured."
-msgstr ""
-
-msgid "There is no medication list template configured."
-msgstr ""
-
-msgid "Problem loading medication list template."
-msgstr ""
-
-#, python-format
-msgid "Cannot load medication list template [%s - %s]"
-msgstr ""
-
-msgid "generated medication list document"
-msgstr ""
-
-msgid "Select the default prescription template:"
-msgstr ""
-
-msgid "No prescription template configured."
-msgstr ""
-
-msgid "There is no prescription template configured."
-msgstr ""
-
-msgid "Printing prescription"
-msgstr ""
-
-msgid "Problem loading prescription template."
-msgstr ""
-
-#, python-format
-msgid "Cannot load prescription template [%s - %s]"
-msgstr ""
-
-#, fuzzy
-msgid "generated prescription"
-msgstr "وصفة"
-
-msgid ""
-"These brands have been prescribed but are not listed\n"
-"in the current medication list of this patient.\n"
-"\n"
-"Please select those you want added to the medication list."
-msgstr ""
-
-msgid "Newly prescribed drugs"
-msgstr ""
-
-msgid "Add to medication list"
-msgstr ""
-
-msgid "Duration / Until"
-msgstr ""
-
-#, python-format
-msgid "%s <fake>"
-msgstr ""
-
-msgid "Cannot edit more than one substance at once."
+msgid "Cannot edit more than one substance at once."
 msgstr ""
 
 msgid "Cannot delete more than one substance at once."
@@ -12675,10 +12917,6 @@ msgid "eGFR:"
 msgstr ""
 
 #, python-format
-msgid "%s%s%s (%s ago)"
-msgstr ""
-
-#, python-format
 msgid "eGFR: %.1f (%s)"
 msgstr ""
 
@@ -12840,14 +13078,21 @@ msgid ""
 "\n"
 " [%s]\n"
 "\n"
-"is not empty. Do you want to use it for saving the\n"
-"export area documents into, nevertheless ?\n"
+"already contains files. Do you still want to save the\n"
+"selected export area documents into that directory ?\n"
 "\n"
-"(this can be useful for including external documents)\n"
+"(this is useful for including the external documents\n"
+" already stored in or below this directory)\n"
 "\n"
 "[NO] will create a subdirectory for you and use that."
 msgstr ""
 
+msgid ""
+"Create descriptive metadata files\n"
+"and save them alongside the\n"
+"selected export area documents ?"
+msgstr ""
+
 #, python-format
 msgid ""
 "Saved to [%s]:\n"
@@ -13049,9 +13294,6 @@ msgstr ""
 msgid "This praxis"
 msgstr ""
 
-msgid "Hospital stay"
-msgstr ""
-
 msgid "Bill receiver"
 msgstr ""
 
@@ -13087,33 +13329,75 @@ msgstr ""
 msgid "Select the episode under which to file the document ..."
 msgstr ""
 
-#, python-format
-msgid "Imported new document from %s."
-msgstr ""
-
-msgid "Enter a comment on the document."
+msgid "Cannot create new document."
 msgstr ""
 
-msgid "User defined"
+msgid "saving document"
 msgstr ""
 
-msgid "In use"
+#, python-format
+msgid "Imported new document from %s."
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot delete document type\n"
-" [%s]\n"
-"because it is currently in use."
+msgid "Successfully saved new document."
 msgstr ""
 
-msgid "deleting document type"
+msgid "Successfully saved the new document."
 msgstr ""
 
 #, python-format
 msgid ""
-"From the list below select the document type you want\n"
-"all documents currently classified as:\n"
+"The reference ID for the new document is:\n"
+"\n"
+" <%s>\n"
+"\n"
+"You probably want to write it down on the\n"
+"original documents.\n"
+"\n"
+"If you don't care about the ID you can switch\n"
+"off this message in the GNUmed configuration.\n"
+msgstr ""
+
+msgid "Saving document"
+msgstr ""
+
+#, python-format
+msgid ""
+"Successfully imported files as document.\n"
+"\n"
+"Do you want to delete imported files from the filesystem ?\n"
+"\n"
+" %s\n"
+"\n"
+"Note that temporary files will be deleted anyway."
+msgstr ""
+
+msgid "Removing files"
+msgstr ""
+
+msgid "Enter a comment on the document."
+msgstr ""
+
+msgid "User defined"
+msgstr ""
+
+msgid "In use"
+msgstr ""
+
+#, python-format
+msgid ""
+"Cannot delete document type\n"
+" [%s]\n"
+"because it is currently in use."
+msgstr ""
+
+msgid "deleting document type"
+msgstr ""
+
+#, python-format
+msgid ""
+"From the list below select the document type you want\n"
+"all documents currently classified as:\n"
 "\n"
 " \"%s\"\n"
 "\n"
@@ -13208,14 +13492,16 @@ msgstr ""
 msgid "Acquiring images"
 msgstr ""
 
-msgid "other documents"
+msgid "directory dropped on client"
 msgstr ""
 
-#, python-format
-msgid "part %s: %s"
+msgid "file dropped on client"
 msgstr ""
 
-msgid "saving document"
+msgid "other documents"
+msgstr ""
+
+msgid "path"
 msgstr ""
 
 msgid "No parts to save. Really save an empty document as a reference ?"
@@ -13260,62 +13546,34 @@ msgstr ""
 msgid "acquiring page"
 msgstr ""
 
-msgid "Choose a file"
-msgstr ""
-
-msgid "all files (Win)"
-msgstr ""
-
-msgid "You must select a part before you can view it."
-msgstr ""
-
-msgid "displaying part"
+msgid "captured by imaging device"
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot display document part:\n"
-"%s"
+msgid "Choose a file"
 msgstr ""
 
-msgid "You must select a part before you can delete it."
+msgid "all files (Win)"
 msgstr ""
 
-msgid "deleting part"
+msgid "picked from storage media"
 msgstr ""
 
-#, python-format
-msgid ""
-"The part has successfully been removed from the document.\n"
-"\n"
-"Do you also want to permanently delete the file\n"
-"\n"
-" [%s]\n"
-"\n"
-"from which this document part was loaded ?\n"
-"\n"
-"If it is a temporary file for a page you just scanned\n"
-"this makes a lot of sense. In other cases you may not\n"
-"want to lose the file.\n"
-"\n"
-"Pressing [YES] will permanently remove the file\n"
-"from your computer.\n"
+msgid "pasted from clipboard"
 msgstr ""
 
-msgid "Removing document part"
+msgid "No part selected for viewing."
 msgstr ""
 
 #, python-format
 msgid ""
-"Cannot delete part in file [%s].\n"
-"\n"
-"You may not have write access to it."
+"Cannot display document part:\n"
+"%s"
 msgstr ""
 
-msgid "Cannot create new document."
+msgid "displaying part"
 msgstr ""
 
-msgid "Cannot update document metadata."
+msgid "No part selected for removal."
 msgstr ""
 
 msgid "Cannot add document description."
@@ -13324,26 +13582,12 @@ msgstr ""
 msgid "Error setting \"reviewed\" status of new document."
 msgstr ""
 
-msgid "Successfully saved the new document."
-msgstr ""
-
 #, python-format
 msgid ""
-"The reference ID for the new document is:\n"
-"\n"
-" <%s>\n"
-"\n"
-"You probably want to write it down on the\n"
-"original documents.\n"
+"Source: %s\n"
+"File: %s\n"
 "\n"
-"If you don't care about the ID you can switch\n"
-"off this message in the GNUmed configuration."
-msgstr ""
-
-msgid "Saving document"
-msgstr ""
-
-msgid "Successfully saved new document."
+"%s"
 msgstr ""
 
 msgid "Document part does not seem to exist in database !"
@@ -13358,9 +13602,6 @@ msgstr ""
 msgid "Showing documents."
 msgstr ""
 
-msgid "Generated"
-msgstr ""
-
 msgid "Ref #"
 msgstr ""
 
@@ -13612,6 +13853,142 @@ msgstr ""
 msgid "Deleting document"
 msgstr ""
 
+msgid "Study date"
+msgstr ""
+
+msgid "Study time"
+msgstr ""
+
+msgid "Method"
+msgstr ""
+
+msgid "Body part"
+msgstr ""
+
+msgid "Time"
+msgstr ""
+
+msgid "Cannot connect without port (try 8042)."
+msgstr ""
+
+#, python-format
+msgid "Connect to [%s] @ port %s as \"%s\"."
+msgstr ""
+
+msgid "Cannot connect to PACS."
+msgstr ""
+
+#, python-format
+msgid "PACS: Orthanc \"%s\" (AET \"%s\", Version %s, DB v%s)"
+msgstr ""
+
+#, python-format
+msgid "GNUmed patient: %s (generic PACS ID)"
+msgstr ""
+
+#, python-format
+msgid "GNUmed patient: \"%(value)s\" @ [%(issuer)s] (stored PACS ID)"
+msgstr ""
+
+msgid "PACS: no patients with matching IDs found"
+msgstr ""
+
+msgid ""
+"PACS: more than one patient with matching IDs found, carefully check studies"
+msgstr ""
+
+#, python-format
+msgid "%s series"
+msgstr ""
+
+#, python-format
+msgid "%%s (%s series)"
+msgstr ""
+
+msgid "no studies"
+msgstr ""
+
+#, python-format
+msgid "%s studies"
+msgstr ""
+
+msgid "Exporting DICOM studies"
+msgstr ""
+
+msgid "Unable to export selected studies."
+msgstr ""
+
+#, python-format
+msgid ""
+"The DICOM studies are %s in compressed size.\n"
+"\n"
+"Really copy to export area ?"
+msgstr ""
+
+#, python-format
+msgid "DICOM studies of [%s] from Orthanc PACS \"%s\" (AET \"%s\")"
+msgstr ""
+
+msgid "Select the directory into which to save the DICOM studies."
+msgstr ""
+
+msgid "Saving DICOM studies"
+msgstr ""
+
+msgid "Unable to save selected studies."
+msgstr ""
+
+msgid "Unable to export studies."
+msgstr ""
+
+#, python-format
+msgid "All DICOM studies of [%s] from Orthanc PACS \"%s\" (AET \"%s\")"
+msgstr ""
+
+#, python-format
+msgid "%s%s images"
+msgstr ""
+
+msgid "Select the directory from which to recursively upload DICOM files."
+msgstr ""
+
+msgid "Delete the uploaded DICOM files now ?"
+msgstr ""
+
+msgid ""
+"Some files have not been uploaded.\n"
+"\n"
+"Do you want to delete those DICOM files which have been sent to the PACS "
+"successfully ?"
+msgstr ""
+
+msgid "Uploading DICOM files"
+msgstr ""
+
+msgid "Editing Orthanc content"
+msgstr ""
+
+msgid "Patient ID"
+msgstr ""
+
+msgid "Birth date"
+msgstr ""
+
+msgid "Orthanc"
+msgstr ""
+
+msgid "Modifying patient ID"
+msgstr ""
+
+#, python-format
+msgid ""
+"Really modify %s patient(s) to have the new patient ID\n"
+"\n"
+" [%s]\n"
+"\n"
+"stored in the Orthanc DICOM server ?"
+msgstr ""
+
 #, python-format
 msgid "You are logged in as %s%s.%s (%s). DB account <%s>."
 msgstr ""
@@ -13670,6 +14047,12 @@ msgstr ""
 msgid "Select the measurements panel to show in the medications plugin."
 msgstr ""
 
+msgid "General measurements"
+msgstr ""
+
+msgid "Select the measurements panel to show in the top pane."
+msgstr ""
+
 msgid "Review dialog"
 msgstr ""
 
@@ -13760,6 +14143,12 @@ msgstr ""
 msgid "Configure auto-opening editors for recent problems."
 msgstr ""
 
+msgid "SOAP fields"
+msgstr ""
+
+msgid "Configure SOAP editor - individual SOAP fields vs text editor like"
+msgstr ""
+
 msgid "Progress notes handling ..."
 msgstr ""
 
@@ -13781,6 +14170,9 @@ msgstr ""
 msgid "URL for measurements encyclopedia."
 msgstr ""
 
+msgid "Drug data source"
+msgstr ""
+
 msgid "Select the drug data source."
 msgstr ""
 
@@ -14144,6 +14536,12 @@ msgstr ""
 msgid "Manage dynamic hints suppressed in this patient."
 msgstr ""
 
+msgid "Substance abuse"
+msgstr ""
+
+msgid "Manage substance abuse documentation of this patient."
+msgstr ""
+
 msgid "&Add / Edit ..."
 msgstr ""
 
@@ -14165,26 +14563,49 @@ msgstr ""
 msgid "Show a high-level statistic summary of the EMR."
 msgstr ""
 
-msgid "Text document"
+msgid "Journal (encounters) to file"
 msgstr ""
 
-msgid "Export the EMR of the active patient into a text file"
+msgid ""
+"Save the EMR of the active patient as a chronological journal into a text "
+"file"
 msgstr ""
 
-msgid "Journal"
+msgid "Journal (encounters) to export area"
 msgstr ""
 
 msgid ""
-"Export the EMR of the active patient as a chronological journal into a text "
-"file"
+"Copy EMR of the active patient as a chronological journal into export area"
+msgstr ""
+
+msgid "Journal (mod time) to file"
+msgstr ""
+
+msgid ""
+"Save the EMR of the active patient as journal by last modification time into "
+"a text file"
+msgstr ""
+
+msgid "Journal (mod time) to export area"
+msgstr ""
+
+msgid ""
+"Copy EMR of the active patient as journal by last modification time into "
+"export area"
+msgstr ""
+
+msgid "Text document"
+msgstr ""
+
+msgid "Save the EMR of the active patient into a text file"
 msgstr ""
 
 msgid "MEDISTAR import format"
 msgstr ""
 
 msgid ""
-"GNUmed -> MEDISTAR. Export progress notes of active patient's active "
-"encounter into a text file."
+"GNUmed -> MEDISTAR. Save progress notes of active patient's active encounter "
+"into a text file."
 msgstr ""
 
 msgid "Export as ..."
@@ -14354,19 +14775,42 @@ msgstr ""
 msgid "Show log file"
 msgstr ""
 
-msgid "Show the log file in text viewer."
+msgid "Show log file in text viewer."
 msgstr ""
 
 msgid "Backup log file"
 msgstr ""
 
-msgid "Backup the content of the log to another file."
+msgid "Backup content of the log to another file."
 msgstr ""
 
 msgid "Email log file"
 msgstr ""
 
-msgid "Send the log file to the authors for help."
+msgid "Send log file to the authors for help."
+msgstr ""
+
+#, fuzzy
+msgid "Browse tmp dir"
+msgstr "وصفة"
+
+#, python-format
+msgid "Browse temporary directory [%s]."
+msgstr ""
+
+#, fuzzy
+msgid "Browse work dir"
+msgstr "وصفة"
+
+#, python-format
+msgid "Browse user working directory [%s]."
+msgstr ""
+
+msgid "Browse internal work dir"
+msgstr ""
+
+#, python-format
+msgid "Browse internal working directory [%s]."
 msgstr ""
 
 msgid "Bug tracker"
@@ -14709,6 +15153,20 @@ msgid "No, only auto-open one editor for a new, unassociated problem."
 msgstr ""
 
 msgid ""
+"When editing progress notes, do you want GNUmed to\n"
+"show individual fields for each of the SOAP categories\n"
+"or do you want to use a text-editor like field for\n"
+"all SOAP categories which can then be set per line\n"
+"of input ?"
+msgstr ""
+
+msgid "Yes, show a dedicated field per SOAP category."
+msgstr ""
+
+msgid "No, use one field for all SOAP categories."
+msgstr ""
+
+msgid ""
 "When a patient is activated GNUmed can\n"
 "be told to switch to a specific plugin.\n"
 "\n"
@@ -14972,538 +15430,940 @@ msgstr ""
 msgid "Patient tags"
 msgstr ""
 
-msgid "Provinces (counties, territories, states, regions, ...)"
+msgid "Provinces (counties, territories, states, regions, ...)"
+msgstr ""
+
+msgid "String translations in the database"
+msgstr ""
+
+msgid "Test/measurement types"
+msgstr ""
+
+msgid "Vaccination targets (conditions known to be preventable by vaccination)"
+msgstr ""
+
+msgid "Vaccines"
+msgstr ""
+
+msgid "Workplace profiles (which plugins to load)"
+msgstr ""
+
+msgid "Consumable substances"
+msgstr ""
+
+msgid "Billable items"
+msgstr ""
+
+msgid "Reference data sources"
+msgstr ""
+
+msgid "Test/measurement panels/profiles"
+msgstr ""
+
+msgid "Master data management"
+msgstr ""
+
+msgid "Select the list you want to manage:"
+msgstr ""
+
+msgid "No DICOM viewer found."
+msgstr ""
+
+msgid "risk assessment"
+msgstr ""
+
+msgid "cardiovascular risk assessment"
+msgstr ""
+
+#, python-format
+msgid "[arriba] XML result not found in [%s]"
+msgstr ""
+
+msgid "ACS risk assessment calculator not configured."
+msgstr ""
+
+#, python-format
+msgid "Cannot run [%s] !"
+msgstr ""
+
+#, python-format
+msgid "There was a problem accessing the [arriba] result in [%s] !"
+msgstr ""
+
+msgid "[-9999]: <access violation test error>"
+msgstr ""
+
+msgid ""
+"This is a deliberate AccessDenied exception thrown to test the handling of "
+"access violations by means of a decorator."
+msgstr ""
+
+msgid "testing access check for non-existant <admin> role"
+msgstr ""
+
+msgid ""
+"This is a deliberate AccessDenied exception. You should not see this message "
+"because the role is checked in a decorator."
+msgstr ""
+
+msgid "pgAdmin III not found."
+msgstr ""
+
+msgid "Error reloading hook script."
+msgstr ""
+
+msgid "Save current log as..."
+msgstr ""
+
+msgid "log files"
+msgstr ""
+
+#, python-format
+msgid "Log file backed up as [%s]."
+msgstr ""
+
+msgid "Cannot start new encounter. No active patient."
+msgstr ""
+
+msgid "Cannot add health issue. No active patient."
+msgstr ""
+
+msgid "Cannot add episode. No active patient."
+msgstr ""
+
+msgid "Cannot add medication. No active patient."
+msgstr ""
+
+msgid "Cannot add allergy. No active patient."
+msgstr ""
+
+msgid "Cannot manage performed procedures. No active patient."
+msgstr ""
+
+msgid "Cannot manage hospitalizations. No active patient."
+msgstr ""
+
+msgid "Cannot manage external care. No active patient."
+msgstr ""
+
+msgid "Cannot edit occupation. No active patient."
+msgstr ""
+
+msgid "manage vaccinations"
+msgstr ""
+
+msgid "Cannot add vaccinations. No active patient."
+msgstr ""
+
+msgid "manage family history"
+msgstr ""
+
+msgid "Cannot manage family history. No active patient."
+msgstr ""
+
+msgid "Cannot manage measurements. No active patient."
+msgstr ""
+
+msgid "calculate EDC"
+msgstr ""
+
+msgid "manage suppressed hints"
+msgstr ""
+
+msgid "Cannot manage suppressed hints. No active patient."
+msgstr ""
+
+msgid "Cannot manage smoking status. No active patient."
+msgstr ""
+
+msgid "Cannot show EMR summary. No active patient."
+msgstr ""
+
+msgid "EMR Summary"
+msgstr ""
+
+msgid "Cannot export EMR journal by last modification time. No active patient."
+msgstr ""
+
+msgid "journal_by_last_mod_time"
+msgstr ""
+
+msgid "Save patient's EMR journal as..."
+msgstr ""
+
+msgid "Error exporting patient EMR as journal by last modification time."
+msgstr ""
+
+msgid "EMR journal export"
+msgstr ""
+
+#, python-format
+msgid ""
+"Successfully exported EMR as journal by last modification time into file "
+"[%s]."
+msgstr ""
+
+msgid "Cannot export EMR journal. No active patient."
+msgstr ""
+
+msgid "emr-journal"
+msgstr ""
+
+msgid "Error exporting patient EMR as chronological journal."
+msgstr ""
+
+#, python-format
+msgid "Successfully exported EMR as chronological journal into file [%s]."
+msgstr ""
+
+msgid "EMR journal by last modification time"
+msgstr ""
+
+msgid "EMR journal by encounter"
+msgstr ""
+
+msgid "Cannot add tag to person. No active patient."
+msgstr ""
+
+#, python-format
+msgid "Edit the comment on tag [%s]"
+msgstr ""
+
+msgid "Editing tag comment"
+msgstr ""
+
+msgid "Cannot export patient as GDT. No active patient."
+msgstr ""
+
+msgid "Exported demographics as GDT to clipboard."
+msgstr ""
+
+msgid "Cannot export patient as VCARD. No active patient."
+msgstr ""
+
+msgid "Exported demographics as VCARD to clipboard."
+msgstr ""
+
+msgid "Cannot export patient as XML (LinuxMedNews). No active patient."
+msgstr ""
+
+#, python-format
+msgid "Exported demographics to XML file [%s]."
+msgstr ""
+
+#, python-format
+msgid "Exported demographics to GDT file [%s]."
+msgstr ""
+
+#, python-format
+msgid "Exported demographics to VCARD file [%s]."
+msgstr ""
+
+msgid "Cannot add staff member. No active patient."
+msgstr ""
+
+msgid "Cannot delete patient. No patient active."
+msgstr ""
+
+msgid ""
+"You have to manually close this window to finalize shutting down GNUmed."
+msgstr ""
+
+msgid "This is so that you can inspect the console output at your leisure."
+msgstr ""
+
+msgid "no patient"
+msgstr ""
+
+#, python-format
+msgid "Saved screenshot to file [%s]."
+msgstr ""
+
+msgid "Python version check"
+msgstr ""
+
+#, python-format
+msgid ""
+"You are running Python version\n"
+" %s\n"
+"\n"
+"However, GNUmed wants Python 2.7 to\n"
+"facilitate migration to Python 3.\n"
+"\n"
+"Please upgrade your Python interpreter !"
+msgstr ""
+
+msgid "GNUmed client"
+msgstr ""
+
+msgid "GNUmed stdout/stderr window"
+msgstr ""
+
+msgid "redirecting STDOUT/STDERR to this log window"
+msgstr ""
+
+#, python-format
+msgid ""
+"The database account [%s] cannot be used as a\n"
+"staff member login for GNUmed. There was an\n"
+"error retrieving staff details for it.\n"
+"\n"
+"Please ask your administrator for help.\n"
+msgstr ""
+
+msgid "Checking access permissions"
+msgstr ""
+
+#, python-format
+msgid "Database <%s> on <%s>"
+msgstr ""
+
+#, python-format
+msgid "Branch \"%s\" of praxis \"%s\"\n"
+msgstr ""
+
+msgid "Verifying database"
+msgstr ""
+
+msgid "Connect"
+msgstr ""
+
+msgid "Yes, connect to this database."
+msgstr ""
+
+msgid "Disconnect"
+msgstr ""
+
+msgid "No, do not connect to this database."
+msgstr ""
+
+#, python-format
+msgid ""
+"Cannot find configuration file in any of:\n"
+"\n"
+" %s\n"
+"You may need to use the comand line option\n"
+"\n"
+"\t--conf-file=<FILE>"
+msgstr ""
+
+msgid "Checking configuration files"
+msgstr ""
+
+msgid "GNUmed startup"
+msgstr ""
+
+#, python-format
+msgid ""
+"The currently selected database language ('%s') does\n"
+"not match the current system language ('%s').\n"
+"\n"
+"Do you want to set the database language to '%s' ?\n"
+msgstr ""
+
+msgid "Checking database language settings"
+msgstr ""
+
+#, python-format
+msgid "Set your database language to [%s]."
+msgstr ""
+
+msgid "Don't set"
+msgstr ""
+
+msgid "Do not set your database language now."
+msgstr ""
+
+msgid "Remember to ignore language mismatch"
+msgstr ""
+
+#, python-format
+msgid ""
+"Checking this will make GNUmed remember your decision\n"
+"until the system language is changed.\n"
+"\n"
+"You can also reactivate this inquiry by removing the\n"
+"corresponding \"ignore\" option from the configuration file\n"
+"\n"
+" [%s]"
+msgstr ""
+
+msgid "generic activity"
+msgstr ""
+
+msgid "Access denied"
+msgstr ""
+
+#, python-format
+msgid ""
+"Your account is not set up to access this part of GNUmed:\n"
+"\n"
+"  [%s]"
+msgstr ""
+
+msgid "Save timeline as SVG image under..."
 msgstr ""
 
-msgid "String translations in the database"
+msgid "timeline image"
 msgstr ""
 
-msgid "Test/measurement types"
+msgid "timeline data"
 msgstr ""
 
-msgid "Vaccination targets (conditions known to be preventable by vaccination)"
+msgid "Cannot change notebook tabs. No active patient."
 msgstr ""
 
-msgid "Vaccines"
+msgid "add plugin ..."
 msgstr ""
 
-msgid "Workplace profiles (which plugins to load)"
+msgid "Cannot activate Allergy Manager. No active patient."
 msgstr ""
 
-msgid "Consumable substances"
+msgid "RR ?"
 msgstr ""
 
-msgid "Billable items"
+#, python-format
+msgid "BMI %s"
 msgstr ""
 
-msgid "Reference data sources"
+msgid "BMI ?"
 msgstr ""
 
-msgid "Test/measurement panels/profiles"
+msgid "GFR ?"
 msgstr ""
 
-msgid "Master data management"
+#, python-format
+msgid "GFR %s"
 msgstr ""
 
-msgid "Select the list you want to manage:"
+#, python-format
+msgid "?EDC %s"
 msgstr ""
 
-msgid "No DICOM viewer found."
+#, python-format
+msgid "EDC %s"
 msgstr ""
 
-msgid "risk assessment"
+msgid "<Age>"
 msgstr ""
 
-msgid "cardiovascular risk assessment"
+msgid "no patient selected"
 msgstr ""
 
 #, python-format
-msgid "[arriba] XML result not found in [%s]"
-msgstr ""
-
-msgid "ACS risk assessment calculator not configured."
+msgid "Gender: %s (%s) - %s\n"
 msgstr ""
 
 #, python-format
-msgid "Cannot run [%s] !"
+msgid "Born: %s\n"
 msgstr ""
 
 #, python-format
-msgid "There was a problem accessing the [arriba] result in [%s] !"
+msgid "Died: %s\n"
 msgstr ""
 
-msgid "[-9999]: <access violation test error>"
+#, python-format
+msgid "At age: %s\n"
 msgstr ""
 
-msgid ""
-"This is a deliberate AcessDenied exception thrown to test the handling of "
-"access violations by means of a decorator."
+msgid " (date of birth and age are estimated)\n"
 msgstr ""
 
-msgid "testing access check for non-existant <admin> role"
+#, python-format
+msgid "%(sex)s  %(dob)s (%(age)s today !)"
 msgstr ""
 
 msgid ""
-"This is a deliberate AcessDenied exception. You should not see this message "
-"because the role is checked in a decorator."
+"\n"
+"Today is the patient's birthday !\n"
+"\n"
 msgstr ""
 
-msgid "pgAdmin III not found."
+#, python-format
+msgid "Birthday: %s ago\n"
 msgstr ""
 
-msgid "Error reloading hook script."
+#, python-format
+msgid "Birthday: in %s\n"
 msgstr ""
 
-msgid "Save current log as..."
+#, python-format
+msgid "Age: %s\n"
 msgstr ""
 
-msgid "log files"
+#, python-format
+msgid "last confirmed %s\n"
 msgstr ""
 
 #, python-format
-msgid "Log file backed up as [%s]."
+msgid "Comment (%s): %%s"
 msgstr ""
 
-msgid "Cannot start new encounter. No active patient."
+#, python-format
+msgid " - expires %s"
 msgstr ""
 
-msgid "Cannot add health issue. No active patient."
+#, python-format
+msgid ""
+"Due for %s (since %s%s):\n"
+"%s%s\n"
+"Patient: %s\n"
+"Reminder by: %s"
 msgstr ""
 
-msgid "Cannot add episode. No active patient."
+msgid "Clinical reminder"
 msgstr ""
 
-msgid "Cannot add medication. No active patient."
+msgid "Adding automatic dynamic hint"
 msgstr ""
 
-msgid "Cannot add allergy. No active patient."
+msgid "Editing automatic dynamic hint"
 msgstr ""
 
-msgid "Cannot manage performed procedures. No active patient."
+msgid "Deleting automatic dynamic hint"
 msgstr ""
 
-msgid "Cannot manage hospitalizations. No active patient."
+#, python-format
+msgid ""
+"Really delete this dynamic hint ?\n"
+"\n"
+" [%s]"
 msgstr ""
 
-msgid "Cannot manage external care. No active patient."
+msgid "deleting a dynamic hint"
 msgstr ""
 
-msgid "Cannot edit occupation. No active patient."
+msgid ""
+"\n"
+"Dynamic hints registered with GNUmed.\n"
 msgstr ""
 
-msgid "manage vaccinations"
+msgid "Showing dynamic hints."
 msgstr ""
 
-msgid "Cannot add vaccinations. No active patient."
+msgid "Hint"
 msgstr ""
 
-msgid "Cannot manage family history. No active patient."
+msgid "Browse and install automatic dynamic hints data packs"
 msgstr ""
 
-msgid "Cannot manage measurements. No active patient."
+#, python-format
+msgid "By: %s"
 msgstr ""
 
-msgid "calculate EDC"
+msgid "No entry in field <Source>."
 msgstr ""
 
-msgid "manage suppressed hints"
+msgid "No entry in field <Conditions>."
 msgstr ""
 
-msgid "Cannot manage suppressed hints. No active patient."
-msgstr ""
+#, fuzzy
+msgid "No entry in field <Description>."
+msgstr "وصفة"
 
-msgid "Cannot show EMR summary. No active patient."
+msgid "No entry in field <Title>."
 msgstr ""
 
-msgid "EMR Summary"
+msgid "creating a new dynamic hint"
 msgstr ""
 
-msgid "Cannot export EMR journal. No active patient."
+msgid "updating an existing dynamic hint"
 msgstr ""
 
-msgid "Save patient's EMR journal as..."
+msgid "Deleting suppressed dynamic hint"
 msgstr ""
 
-msgid "Error exporting patient EMR as chronological journal."
+#, python-format
+msgid ""
+"Really delete the suppression of this dynamic hint ?\n"
+"\n"
+" [%s]"
 msgstr ""
 
-msgid "EMR journal export"
+msgid ""
+"\n"
+"Dynamic hints suppressed in this patient.\n"
 msgstr ""
 
-#, python-format
-msgid "Successfully exported EMR as chronological journal into file [%s]."
+msgid "Showing suppressed dynamic hints."
 msgstr ""
 
-msgid "Cannot add tag to person. No active patient."
+msgid "Rationale"
 msgstr ""
 
-#, python-format
-msgid "Edit the comment on tag [%s]"
+msgid "Manage hints"
 msgstr ""
 
-msgid "Editing tag comment"
+msgid "Manage automatic dynamic hints"
 msgstr ""
 
-msgid "Cannot export patient as GDT. No active patient."
+msgid "Cannot delete family history item."
 msgstr ""
 
-msgid "Exported demographics as GDT to clipboard."
+msgid "Family history of this patient."
 msgstr ""
 
-msgid "Cannot export patient as VCARD. No active patient."
+msgid "Showing family history."
 msgstr ""
 
-msgid "Exported demographics as VCARD to clipboard."
+msgid "Fatal"
 msgstr ""
 
-msgid "Cannot export patient as XML (LinuxMedNews). No active patient."
+msgid "Noted"
 msgstr ""
 
-#, python-format
-msgid "Exported demographics to XML file [%s]."
+msgid "Died"
 msgstr ""
 
-#, python-format
-msgid "Exported demographics to GDT file [%s]."
+msgid "Adding family history"
 msgstr ""
 
-#, python-format
-msgid "Exported demographics to VCARD file [%s]."
+msgid "Editing family history"
 msgstr ""
 
-msgid "Cannot add staff member. No active patient."
+msgid ""
+"\n"
+"Please select the default drug data source from the list below.\n"
+"\n"
+"Note that to actually use it you need to have the database installed, too."
 msgstr ""
 
-msgid "Cannot delete patient. No patient active."
+msgid "Configuring default drug data source"
 msgstr ""
 
-msgid ""
-"You have to manually close this window to finalize shutting down GNUmed."
+msgid "No default drug database configured."
 msgstr ""
 
-msgid "This is so that you can inspect the console output at your leisure."
+msgid "There is no default drug database configured."
 msgstr ""
 
-msgid "no patient"
+msgid "Jumping to drug database"
 msgstr ""
 
-#, python-format
-msgid "Saved screenshot to file [%s]."
+msgid "Cannot import drugs from IFAP into chart without chart."
 msgstr ""
 
-msgid "GNUmed client"
+#, python-format
+msgid "Cannot call IFAP via [%s]."
 msgstr ""
 
-msgid "GNUmed stdout/stderr window"
+#, python-format
+msgid "Cannot create IFAP <-> GNUmed transfer file [%s]."
 msgstr ""
 
-msgid "redirecting STDOUT/STDERR to this log window"
+msgid "Current medication"
 msgstr ""
 
-#, python-format
 msgid ""
-"The database account [%s] cannot be used as a\n"
-"staff member login for GNUmed. There was an\n"
-"error retrieving staff details for it.\n"
 "\n"
-"Please ask your administrator for help.\n"
+"The ATC codes as known to GNUmed.\n"
 msgstr ""
 
-msgid "Checking access permissions"
+msgid "Showing ATC codes."
 msgstr ""
 
-#, python-format
-msgid "Database <%s> on <%s>"
+msgid "Choose an ATC import config file"
 msgstr ""
 
-#, python-format
-msgid "Branch \"%s\" of praxis \"%s\"\n"
+msgid "config files"
 msgstr ""
 
-msgid "Verifying database"
+msgid "importing ATC reference data"
 msgstr ""
 
-msgid "Connect"
+msgid "Successfully imported ATC reference data."
 msgstr ""
 
-msgid "Yes, connect to this database."
+msgid "Importing ATC reference data failed."
 msgstr ""
 
-msgid "Disconnect"
+msgid "Select an ATC (Anatomical-Therapeutic-Chemical) code."
 msgstr ""
 
-msgid "No, do not connect to this database."
+msgid "Cannot edit this substance. It is in use."
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot find configuration file in any of:\n"
-"\n"
-" %s\n"
-"You may need to use the comand line option\n"
-"\n"
-"\t--conf-file=<FILE>"
+msgid "Adding new consumable substance"
 msgstr ""
 
-msgid "Checking configuration files"
+msgid "Editing consumable substance"
 msgstr ""
 
-msgid "GNUmed startup"
+msgid "Cannot delete this substance. It is in use."
 msgstr ""
 
-#, python-format
 msgid ""
-"The currently selected database language ('%s') does\n"
-"not match the current system language ('%s').\n"
 "\n"
-"Do you want to set the database language to '%s' ?\n"
+"These are the consumable substances registered with GNUmed.\n"
 msgstr ""
 
-msgid "Checking database language settings"
+msgid "Import"
 msgstr ""
 
-msgid "Set"
+msgid "Import consumable substances from a drug database."
 msgstr ""
 
-#, python-format
-msgid "Set your database language to [%s]."
+msgid "Cannot save consumable substance. Missing essential input."
 msgstr ""
 
-msgid "Don't set"
+#, python-format
+msgid "Cannot save consumable substance. %s"
 msgstr ""
 
-msgid "Do not set your database language now."
+msgid "The substance with optional strength."
 msgstr ""
 
-msgid "Remember to ignore language mismatch"
+msgid "Cannot remove this component from the drug. It is in use."
 msgstr ""
 
-#, python-format
 msgid ""
-"Checking this will make GNUmed remember your decision\n"
-"until the system language is changed.\n"
-"\n"
-"You can also reactivate this inquiry by removing the\n"
-"corresponding \"ignore\" option from the configuration file\n"
 "\n"
-" [%s]"
+"These are the components in the drug brands known to GNUmed.\n"
 msgstr ""
 
-msgid "generic activity"
+msgid "Showing drug brand components."
 msgstr ""
 
-msgid "Access denied"
+msgid "Adding new drug component"
 msgstr ""
 
-#, python-format
-msgid ""
-"Your account is not set up to access this part of GNUmed:\n"
-"\n"
-"  [%s]"
+msgid "Editing drug component"
 msgstr ""
 
-msgid "Save timeline as SVG image under..."
+msgid "Cannot edit drug component. It is in use."
 msgstr ""
 
-msgid "timeline image"
+msgid "Cannot save drug component. Invalid or missing essential input."
 msgstr ""
 
-msgid "timeline data"
+msgid "A drug component with optional strength."
 msgstr ""
 
-msgid "Cannot change notebook tabs. No active patient."
+msgid "Editing drug"
 msgstr ""
 
-msgid "add plugin ..."
+#, python-format
+msgid ""
+"Cannot edit the branded drug product\n"
+"\n"
+" \"%s\" (%s)\n"
+"\n"
+"because it is currently taken by patients.\n"
 msgstr ""
 
-msgid "Cannot activate Allergy Manager. No active patient."
+msgid "Adding new drug brand"
 msgstr ""
 
-msgid "<Age>"
+msgid "Editing drug brand"
 msgstr ""
 
-msgid "no patient selected"
+msgid "Manage consumable substances"
 msgstr ""
 
-#, python-format
-msgid "Gender: %s (%s) - %s\n"
+msgid "not in use"
 msgstr ""
 
 #, python-format
-msgid "Born: %s\n"
+msgid "ATC: %s\n"
 msgstr ""
 
-#, python-format
-msgid "Died: %s\n"
+msgid "Editing medication"
 msgstr ""
 
 #, python-format
-msgid "At age: %s\n"
+msgid ""
+"Cannot edit the medication\n"
+"\n"
+" \"%s\" (%s)\n"
+"\n"
+"because it is a vaccine. Please edit it\n"
+"from the vaccine management section !\n"
 msgstr ""
 
-msgid " (date of birth and age are estimated)\n"
+msgid "Deleting medication"
 msgstr ""
 
 #, python-format
-msgid "%(sex)s  %(dob)s (%(age)s today !)"
+msgid ""
+"Cannot delete the medication\n"
+"\n"
+" \"%s\" (%s)\n"
+"\n"
+"because it is a vaccine. Please delete it\n"
+"from the vaccine management section !\n"
 msgstr ""
 
 msgid ""
 "\n"
-"Today is the patient's birthday !\n"
-"\n"
+"These are the drug brands known to GNUmed.\n"
 msgstr ""
 
-#, python-format
-msgid "Birthday: %s ago\n"
+msgid "Showing branded drugs."
 msgstr ""
 
-#, python-format
-msgid "Birthday: in %s\n"
+msgid "Import substances and brands from a drug database."
 msgstr ""
 
-#, python-format
-msgid "Age: %s\n"
+msgid "Managing components of a drug"
 msgstr ""
 
 #, python-format
-msgid "last confirmed %s\n"
+msgid ""
+"Cannot manage the components of the branded drug product\n"
+"\n"
+" \"%s\" (%s)\n"
+"\n"
+"because it is currently taken by patients.\n"
 msgstr ""
 
-#, python-format
-msgid "Comment (%s): %%s"
+msgid "Pick the substances which are components of this drug."
 msgstr ""
 
-#, python-format
-msgid " - expires %s"
+msgid "Components of drug"
 msgstr ""
 
 #, python-format
 msgid ""
-"Due for %s (since %s%s):\n"
-"%s%s\n"
-"Patient: %s\n"
-"Reminder by: %s"
+"Adjust the components of \"%s\"\n"
+"\n"
+"The drug must contain at least one component. Any given\n"
+"substance can only be included once per drug."
 msgstr ""
 
-msgid "Clinical reminder"
+msgid "Managing components of a drug ..."
 msgstr ""
 
-msgid "Adding automatic dynamic hint"
+msgid "Cannot edit drug brand. It is in use."
 msgstr ""
 
-msgid "Editing automatic dynamic hint"
+msgid "Checking brand data"
 msgstr ""
 
-msgid "Deleting automatic dynamic hint"
+#, python-format
+msgid ""
+"The brand information you entered:\n"
+"\n"
+" [%s %s]\n"
+"\n"
+"already exists as a drug product."
 msgstr ""
 
-#, python-format
 msgid ""
-"Really delete this dynamic hint ?\n"
+"You have not selected any substances\n"
+"as drug components.\n"
 "\n"
-" [%s]"
+"Without components you will not be able to\n"
+"use this drug for documenting patient care.\n"
+"\n"
+"Are you sure you want to save\n"
+"it without components ?"
 msgstr ""
 
-msgid "deleting a dynamic hint"
+msgid "Cannot save branded drug. Invalid or missing essential input."
 msgstr ""
 
 msgid ""
+"The brand name of the drug.\n"
 "\n"
-"Dynamic hints registered with GNUmed.\n"
+"Note: a brand name will need to be linked to\n"
+"one or more components before it can be used,\n"
+"except in the case of fake (generic) vaccines."
 msgstr ""
 
-msgid "Showing dynamic hints."
+msgid "No EMR data loaded."
 msgstr ""
 
-msgid "Hint"
+msgid "EMR text dump"
 msgstr ""
 
-msgid "Browse and install automatic dynamic hints data packs"
+msgid "Currently there is no active patient. Cannot retrieve EMR text."
 msgstr ""
 
-#, python-format
-msgid "By: %s"
+msgid "SOAP Editor Actions:"
 msgstr ""
 
-msgid "No entry in field <Source>."
+msgid "&Sort lines"
 msgstr ""
 
-msgid "No entry in field <Conditions>."
+msgid "Sort lines by SOAP category"
 msgstr ""
 
-#, fuzzy
-msgid "No entry in field <Description>."
-msgstr "وصفة"
+msgid "e&Xpand keyword"
+msgstr ""
 
-msgid "No entry in field <Title>."
+msgid "Expand keyword / macro"
 msgstr ""
 
-msgid "creating a new dynamic hint"
+#, fuzzy
+msgid "as &Subjective"
+msgstr "خامل"
+
+msgid "Set line to category \"Subjective\""
 msgstr ""
 
-msgid "updating an existing dynamic hint"
+#, fuzzy
+msgid "as &Objective"
+msgstr "خامل"
+
+msgid "Set line to category \"Objective\""
 msgstr ""
 
-msgid "Deleting suppressed dynamic hint"
+msgid "as &Assessment"
 msgstr ""
 
-#, python-format
-msgid ""
-"Really delete the suppression of this dynamic hint ?\n"
-"\n"
-" [%s]"
+msgid "Set line to category \"Assessment\""
 msgstr ""
 
-msgid ""
-"\n"
-"Dynamic hints suppressed in this patient.\n"
+msgid "as &Plan"
 msgstr ""
 
-msgid "Showing suppressed dynamic hints."
+msgid "Set line to category \"Plan\""
 msgstr ""
 
-msgid "Rationale"
+msgid "as &Unspecified"
 msgstr ""
 
-msgid "Manage hints"
+msgid "Set line to category \"unspecified\""
 msgstr ""
 
-msgid "Manage automatic dynamic hints"
+#, fuzzy
+msgid "as ad&Ministrative"
+msgstr "خامل"
+
+msgid "Set line to category \"administrative\""
 msgstr ""
 
-msgid "Cannot delete family history item."
+msgid "→ &Clipboard"
 msgstr ""
 
-msgid "Family history of this patient."
+msgid "Copy line to clipboard"
 msgstr ""
 
-msgid "Showing family history."
+msgid "→ +Clipboard+"
 msgstr ""
 
-msgid "Fatal"
+msgid "Add line to clipboard"
 msgstr ""
 
-msgid "Noted"
+msgid "Copy content to clipboard"
 msgstr ""
 
-msgid "Died"
+msgid "Add content to clipboard"
 msgstr ""
 
-msgid "Adding family history"
+msgid "Copy selection to clipboard"
 msgstr ""
 
-msgid "Editing family history"
+msgid "Add selection to clipboard"
 msgstr ""
 
-msgid "No EMR data loaded."
+msgid "&Line ..."
 msgstr ""
 
-msgid "EMR text dump"
+msgid "&Text ..."
 msgstr ""
 
-msgid "Currently there is no active patient. Cannot retrieve EMR text."
+msgid "&Region ..."
 msgstr ""
 
 msgid "Show HL7 file:"
@@ -15515,6 +16375,10 @@ msgstr ""
 msgid "Extracting HL7 from XML file"
 msgstr ""
 
+#, python-format
+msgid "Unwrapped HL7 into [%s] from [%s]."
+msgstr ""
+
 msgid "Select HL7 file for staging:"
 msgstr ""
 
@@ -15539,6 +16403,10 @@ msgid ""
 " %s"
 msgstr ""
 
+#, python-format
+msgid "Staged HL7 from [%s]."
+msgstr ""
+
 msgid "Importing HL7 data"
 msgstr ""
 
@@ -15582,9 +16450,6 @@ msgstr ""
 msgid "Identification"
 msgstr "الت"
 
-msgid "Show"
-msgstr ""
-
 msgid "Show formatted HL7"
 msgstr ""
 
@@ -15630,6 +16495,17 @@ msgstr ""
 msgid "Plot current selection"
 msgstr ""
 
+msgid ""
+"Select the measurements panel to show in the top pane for continuous "
+"monitoring."
+msgstr ""
+
+msgid "Lab panel"
+msgstr ""
+
+msgid "Configuring continuous monitoring measurements panel"
+msgstr ""
+
 msgid "No default Gnuplot script template selected."
 msgstr ""
 
@@ -15652,10 +16528,25 @@ msgstr ""
 msgid "Cannot plot without a plot script."
 msgstr ""
 
-msgid "Time"
+msgid "Result"
 msgstr ""
 
-msgid "Result"
+msgid "Perform on selected results:"
+msgstr ""
+
+msgid "Review and &sign"
+msgstr ""
+
+msgid "Export to &file"
+msgstr ""
+
+msgid "Export to &clipboard"
+msgstr ""
+
+msgid "Panels"
+msgstr ""
+
+msgid "List"
 msgstr ""
 
 msgid ""
@@ -15732,18 +16623,6 @@ msgstr ""
 msgid "All: by &Day"
 msgstr ""
 
-msgid "Perform on selected results:"
-msgstr ""
-
-msgid "Review and &sign"
-msgstr ""
-
-msgid "Export to &file"
-msgstr ""
-
-msgid "Export to &clipboard"
-msgstr ""
-
 #, python-format
 msgid "%s results selected. Too many to list individually."
 msgstr ""
@@ -15917,6 +16796,10 @@ msgstr ""
 msgid "EMR Actions:"
 msgstr ""
 
+#, fuzzy
+msgid "Print EMR"
+msgstr "أطبع هذا البند"
+
 msgid "Create health issue"
 msgstr ""
 
@@ -16065,11 +16948,40 @@ msgstr ""
 msgid "&New notes %s"
 msgstr ""
 
+msgid "Find text in EMR Journal"
+msgstr ""
+
+msgid "Modified"
+msgstr ""
+
+msgid "Clinical time"
+msgstr ""
+
+msgid "Who / When"
+msgstr ""
+
+#, python-format
 msgid ""
-"An error occurred while retrieving the EMR\n"
-"in journal form for the active patient.\n"
+"Chart entry: %s       [#%s in %s]\n"
+" Modified: %s by %s (%s rev %s)\n"
 "\n"
-"Please check the log file for details."
+"Health issue: %s%s\n"
+"Episode: %s%s\n"
+"Encounter: %s%s"
+msgstr ""
+
+#, python-format
+msgid ""
+"%s\n"
+"\n"
+"                        rev %s (%s) by %s in <%s>"
+msgstr ""
+
+#, python-format
+msgid ""
+"%s\n"
+"%s\n"
+"%s"
 msgstr ""
 
 msgid "Editing tag"
@@ -16196,18 +17108,15 @@ msgid ""
 "%s\n"
 msgstr ""
 
-msgid "This patient DID receive care."
+msgid "This patient DID receive care here."
 msgstr ""
 
-msgid "This person did NOT receive care."
+msgid "This person did NOT receive care here."
 msgstr ""
 
 msgid "Disabling person"
 msgstr ""
 
-msgid "Disabling patient"
-msgstr ""
-
 msgid "Type or select a last name (family name/surname)."
 msgstr ""
 
@@ -16450,6 +17359,9 @@ msgid ""
 "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
 msgstr ""
 
+msgid "Connecting to backend"
+msgstr "اﻻتصال بالنهاية الخلفية"
+
 #, python-format
 msgid ""
 "Unable to connect to database:\n"
@@ -16658,9 +17570,6 @@ msgstr ""
 msgid "Office"
 msgstr ""
 
-msgid "State"
-msgstr ""
-
 msgid "Zip"
 msgstr ""
 
@@ -16716,7 +17625,7 @@ msgstr ""
 msgid "EMR Timeline"
 msgstr ""
 
-msgid "Show &Timeline"
+msgid "EMR &Timeline"
 msgstr ""
 
 msgid "Overview"
@@ -16743,10 +17652,10 @@ msgstr ""
 msgid "&SimpleNotes"
 msgstr ""
 
-msgid "EMR tree"
+msgid "EMR Tree"
 msgstr ""
 
-msgid "EMR &Tree (topical)"
+msgid "EMR &Tree"
 msgstr ""
 
 #, fuzzy
@@ -16756,6 +17665,12 @@ msgstr "أطبع هذا البند"
 msgid "&Print Manager"
 msgstr ""
 
+msgid "EMR Journal"
+msgstr ""
+
+msgid "EMR &Journal (list)"
+msgstr ""
+
 msgid "Appointments"
 msgstr ""
 
@@ -16768,6 +17683,12 @@ msgstr ""
 msgid "Show &lab journal"
 msgstr ""
 
+msgid "PACS"
+msgstr ""
+
+msgid "&PACS"
+msgstr ""
+
 msgid "Cardiac Devices"
 msgstr ""
 
@@ -16840,10 +17761,7 @@ msgstr ""
 msgid "User &manual (local)"
 msgstr ""
 
-msgid "EMR journal"
-msgstr ""
-
-msgid "EMR &Journal (chronological)"
+msgid "EMR &Journal (text)"
 msgstr ""
 
 msgid "Demographics"
@@ -17004,6 +17922,10 @@ msgstr ""
 msgid "Show &ExamplePlugin"
 msgstr ""
 
+#, fuzzy
+msgid "Find text"
+msgstr "اطبع الكل"
+
 msgid "gm_ctl_client: starting slave GNUmed client"
 msgstr ""
 
@@ -17029,3 +17951,56 @@ msgstr ""
 
 msgid "Abort and do NOT connect to GNUmed."
 msgstr ""
+
+#, fuzzy
+#~ msgid ""
+#~ "Unable to connect to database:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Are you sure you have got a local database installed ?\n"
+#~ "\n"
+#~ "Please retry with proper credentials or cancel.\n"
+#~ "\n"
+#~ "You may also need to check the PostgreSQL client\n"
+#~ "authentication configuration in pg_hba.conf. For\n"
+#~ "details see:\n"
+#~ "\n"
+#~ "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
+#~ msgstr ""
+#~ "غير قادر على الاتصال بقاعدة البيانات:\n"
+#~ "\n"
+#~ "s%\n"
+#~ "\n"
+#~ "هل انت متأكد انك تمتلك قاعدة بيانات مثبتة محليا \n"
+#~ "\n"
+#~ "يمكنك ايضا ان تفحص عميل PostgreSQL\n"
+#~ "تكوين التخويل في pg_hba.conf.  ل\n"
+#~ "التفاصيل انظر:\n"
+#~ "\n"
+#~ "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
+
+#~ msgid ""
+#~ "Unable to connect to database:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Please retry with proper credentials or cancel.\n"
+#~ "\n"
+#~ "You may also need to check the PostgreSQL client\n"
+#~ "authentication configuration in pg_hba.conf. For\n"
+#~ "details see:\n"
+#~ "\n"
+#~ "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
+#~ msgstr ""
+#~ "لايمكن اﻻتصال بقاعدة البيانات:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "الرجاء اعادة المحاولة مع معلومات دخول مناسبة او اﻻلغاء.\n"
+#~ "\n"
+#~ "يمكنك ايضا ان تحتاج لفحص عميل PostgreSQL\n"
+#~ "تكوين التخويل في pg_hba.conf. ل\n"
+#~ "التفاصيل انظر:\n"
+#~ "\n"
+#~ "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
diff --git a/client/po/bg-gnumed.mo b/client/po/bg-gnumed.mo
index 96ea7d5..9a14cb8 100644
Binary files a/client/po/bg-gnumed.mo and b/client/po/bg-gnumed.mo differ
diff --git a/client/po/bg.po b/client/po/bg.po
index 77e3123..dfe2bcd 100644
--- a/client/po/bg.po
+++ b/client/po/bg.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: GNUmed\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-12-26 20:28+0100\n"
+"POT-Creation-Date: 2016-03-17 16:27+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <LL at li.org>\n"
@@ -1406,10 +1406,22 @@ msgid ""
 msgstr ""
 
 #, python-format
+msgid "Revision #%s"
+msgstr ""
+
+#, python-format
 msgid "[%s:%s]: row not updated (nothing returned), row in use ?"
 msgstr ""
 
 #, python-format
+msgid "<%s(.bat)> not found"
+msgstr ""
+
+#, python-format
+msgid "problem with <%s>"
+msgstr ""
+
+#, python-format
 msgid "[%s] is not a readable file"
 msgstr ""
 
@@ -1437,21 +1449,7 @@ msgstr ""
 msgid "%s Bytes"
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot connect to configuration database with:\n"
-"\n"
-"[%s]"
-msgstr ""
-
-#, python-format
-msgid ""
-"Cannot connect to database with:\n"
-"\n"
-"[%s]"
-msgstr ""
-
-msgid "No product information available."
+msgid "<type>"
 msgstr ""
 
 #, python-format
@@ -1787,74 +1785,6 @@ msgstr ""
 msgid "  risk: %s"
 msgstr ""
 
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Are you sure you have got a local database installed ?\n"
-"\n"
-"Please retry with proper credentials or cancel.\n"
-"\n"
-"You may also need to check the PostgreSQL client\n"
-"authentication configuration in pg_hba.conf. For\n"
-"details see:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-msgstr ""
-
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Please retry with proper credentials or cancel.\n"
-"\n"
-"You may also need to check the PostgreSQL client\n"
-"authentication configuration in pg_hba.conf. For\n"
-"details see:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-msgstr ""
-
-msgid "Connecting to backend"
-msgstr ""
-
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Please retry another backend / user / password combination !\n"
-msgstr ""
-
-msgid "programmer forgot to specify error message"
-msgstr ""
-
-msgid ""
-"\n"
-"\n"
-"Please consult the error log for all the gory details !"
-msgstr ""
-
-msgid "generic error message"
-msgstr ""
-
-msgid "programmer forgot to specify info message"
-msgstr ""
-
-msgid "generic info message"
-msgstr ""
-
-msgid "programmer forgot to specify warning"
-msgstr ""
-
-msgid "generic warning message"
-msgstr ""
-
 msgid "no hook specified, please report bug"
 msgstr ""
 
@@ -2171,6 +2101,30 @@ msgstr ""
 msgid "Include:"
 msgstr ""
 
+msgid "&Search"
+msgstr ""
+
+msgid "Suggest"
+msgstr ""
+
+msgid "Set"
+msgstr ""
+
+msgid "dialog_1"
+msgstr ""
+
+msgid "Search patients in Orthanc DICOM store."
+msgstr ""
+
+msgid "Suggest a patient ID based on the active patient."
+msgstr ""
+
+msgid "Search term:"
+msgstr ""
+
+msgid "New patient ID:"
+msgstr ""
+
 msgid "Your review"
 msgstr ""
 
@@ -2472,6 +2426,89 @@ msgstr ""
 msgid "Amount"
 msgstr ""
 
+msgid "&Connect"
+msgstr ""
+
+msgid "&Browse"
+msgstr ""
+
+msgid "<not connected>"
+msgstr ""
+
+msgid "Browse all"
+msgstr ""
+
+msgid "Export all"
+msgstr ""
+
+msgid "Browse"
+msgstr ""
+
+msgid "Export"
+msgstr ""
+
+msgid "Upload"
+msgstr ""
+
+msgid "Enter the PACS host address."
+msgstr ""
+
+msgid "Enter the PACS port."
+msgstr ""
+
+msgid "Enter the PACS user."
+msgstr ""
+
+msgid "Enter the PACS password. It will not be shown."
+msgstr ""
+
+msgid "Connect to PACS."
+msgstr ""
+
+msgid "Browse PACS at top level."
+msgstr ""
+
+msgid "Modify some of Orthanc content (such as patient IDs)."
+msgstr ""
+
+msgid "Browse overview of studies for this patient."
+msgstr ""
+
+msgid "Copy all studies into export area."
+msgstr ""
+
+msgid "Browse topmost selected study."
+msgstr ""
+
+msgid "Copy selected studies into export area."
+msgstr ""
+
+msgid "Save selected studies to disk."
+msgstr ""
+
+msgid ""
+"Upload DICOM files from a directory, recursively, into the Orthanc PACS\n"
+"\n"
+"The currently active patient does not matter. Orthanc will associate "
+"uploaded files with the patient found within the DICOM metadata. It will "
+"create new patients as needed."
+msgstr ""
+
+msgid "Host:"
+msgstr ""
+
+msgid "Port:"
+msgstr ""
+
+msgid "User:"
+msgstr ""
+
+msgid "Password"
+msgstr ""
+
+msgid "Selected studies:"
+msgstr ""
+
 msgid "Fake brand"
 msgstr ""
 
@@ -2789,9 +2826,6 @@ msgstr ""
 msgid "&Load"
 msgstr ""
 
-msgid "Export"
-msgstr ""
-
 msgid "A long, descriptive name for this form template."
 msgstr ""
 
@@ -2879,15 +2913,12 @@ msgstr ""
 msgid "Document Properties"
 msgstr ""
 
-msgid "Show part"
+msgid "Show"
 msgstr ""
 
 msgid "Remove part"
 msgstr ""
 
-msgid "Parts"
-msgstr ""
-
 msgid "Discard"
 msgstr ""
 
@@ -2915,6 +2946,9 @@ msgstr ""
 msgid "Required: The primary episode this document is to be listed under."
 msgstr ""
 
+msgid "Optional: The organization (unit) this document originated from."
+msgstr ""
+
 msgid ""
 "Optional: A short comment identifying the document. Good comments give an "
 "idea of the content and source of the document."
@@ -2939,6 +2973,9 @@ msgid ""
 "normal and abnormal resuslts can be relevant."
 msgstr ""
 
+msgid "Optional: A free-text document description."
+msgstr ""
+
 msgid "This field lists the parts belonging to the current document."
 msgstr ""
 
@@ -2950,9 +2987,6 @@ msgid ""
 "deletion from disk."
 msgstr ""
 
-msgid "Optional: A free-text document description."
-msgstr ""
-
 msgid "Save finished document."
 msgstr ""
 
@@ -2968,6 +3002,9 @@ msgstr ""
 msgid "Associate to episode:"
 msgstr ""
 
+msgid "Document source:"
+msgstr ""
+
 msgid "Comment / Identification:"
 msgstr ""
 
@@ -3148,7 +3185,7 @@ msgstr ""
 msgid "Messages:"
 msgstr ""
 
-msgid "Only:"
+msgid "Limit to:"
 msgstr ""
 
 msgid "&Myself … or:"
@@ -3258,10 +3295,10 @@ msgstr ""
 msgid "Purpose"
 msgstr ""
 
-msgid "Details"
+msgid "Please supply your email address here !"
 msgstr ""
 
-msgid "<Please supply your email address here !>"
+msgid "Details"
 msgstr ""
 
 msgid "Keep running"
@@ -3285,9 +3322,11 @@ msgid ""
 msgstr ""
 
 msgid ""
-"Please enter your email address so we can provide feedback directly to you. "
-"Otherwise, feedback will be given on the GNUmed mailing list (http://lists."
-"gnu.org/mailman/listinfo/gnumed-bugs)."
+"Please enter your email address so we can provide help to you directly.\n"
+"\n"
+"Otherwise, feedback can be given on the GNUmed mailing list (http://lists."
+"gnu.org/mailman/listinfo/gnumed-bugs) ONLY to which you will then have to "
+"subscribe."
 msgstr ""
 
 msgid "Find help on http://wiki.gnumed.de, too."
@@ -3402,9 +3441,6 @@ msgstr ""
 msgid "Account"
 msgstr ""
 
-msgid "Password"
-msgstr ""
-
 msgid "Password, again"
 msgstr ""
 
@@ -3890,7 +3926,7 @@ msgstr ""
 msgid "Acquire images from image source (scanner, ...)."
 msgstr ""
 
-msgid "Acquire images or text from the clipboard."
+msgid "Acquire file or text from the clipboard."
 msgstr ""
 
 msgid "Remove the selected documents."
@@ -4035,7 +4071,7 @@ msgid ""
 "- the result list will be artificially limited to the first 1000 rows\n"
 "- you can include a column named \"pk_patient\" to make the result rows "
 "activate the corresponding patient on double-clicking\n"
-"- by inserting $<ID_active_patient>$ you can access the patient ID of the "
+"- by inserting $<ID_ACTIVE_PATIENT>$ you can access the patient ID of the "
 "patient active at the time of running the query"
 msgstr ""
 
@@ -4194,9 +4230,6 @@ msgstr ""
 msgid "Link &new"
 msgstr ""
 
-msgid "Browse"
-msgstr ""
-
 msgid ""
 "Search for matches among existing addresses and [Link] a selection, or [Link "
 "(a) new] address."
@@ -4245,25 +4278,16 @@ msgid ""
 "left."
 msgstr ""
 
-msgid "label_1"
-msgstr ""
-
-msgid "→"
-msgstr ""
-
-msgid "←"
-msgstr ""
-
-msgid "Extra"
+msgid "Subjective"
 msgstr ""
 
-msgid "Move selected items from left to right."
+msgid "Objective"
 msgstr ""
 
-msgid "Move selected items from right to left."
+msgid "Assessment"
 msgstr ""
 
-msgid "Cancel picking items."
+msgid "Plan"
 msgstr ""
 
 msgid "Episode synopsis"
@@ -4299,19 +4323,28 @@ msgid ""
 "narrative belongs to."
 msgstr ""
 
-msgid "Subjective"
+msgid "Codes:"
 msgstr ""
 
-msgid "Codes:"
+msgid "label_1"
 msgstr ""
 
-msgid "Objective"
+msgid "→"
 msgstr ""
 
-msgid "Assessment"
+msgid "←"
 msgstr ""
 
-msgid "Plan"
+msgid "Extra"
+msgstr ""
+
+msgid "Move selected items from left to right."
+msgstr ""
+
+msgid "Move selected items from right to left."
+msgstr ""
+
+msgid "Cancel picking items."
 msgstr ""
 
 msgid "1"
@@ -4480,69 +4513,145 @@ msgstr ""
 msgid "Age range"
 msgstr ""
 
-msgid "Closed episodes"
+msgid "&Nicotine"
 msgstr ""
 
-msgid "Non-relevant issues"
+msgid "&Alcohol"
 msgstr ""
 
-msgid "Active problems"
+msgid "&Other:"
 msgstr ""
 
-msgid "Notes only"
+msgid "&Non-harmful use"
 msgstr ""
 
-msgid "Everything"
+msgid "&Harmful use"
 msgstr ""
 
-msgid ""
-"In this area GNUmed will place the notes of the\n"
-"previous encounter as well as notes by other\n"
-"staff for the current encounter.\n"
-"\n"
-"Note that this may change depending on which\n"
-"active problem is selected in the editor below."
+msgid "Presently &addicted"
 msgstr ""
 
-msgid "Most recent info on above problem"
+msgid "Previously &addicted"
 msgstr ""
 
-msgid "Show closed episodes as pseudo-problems ?"
+msgid "&Reconfirm as of today"
 msgstr ""
 
-msgid "Show issues marked clinically NOT relevant."
+msgid "Select for documenting smoking status."
+msgstr ""
+
+msgid "Select for documenting alcohol use status."
 msgstr ""
 
 msgid ""
-"This shows the list of active problems, They include open episodes as well "
-"as active health issues."
+"Select for documenting use of substances other than nicotine or alcohol."
 msgstr ""
 
-msgid "Show notes only (regarding the above problem)"
+msgid "Select the abused substance."
 msgstr ""
 
-msgid "Show full information (regarding above problem)"
+msgid ""
+"Select if the substance use is not considered harmful (say, no use or non-"
+"harmful use)."
 msgstr ""
 
-msgid "Schock index"
+msgid "Select if substance is use considered harmful."
 msgstr ""
 
-msgid "<SI>"
+msgid "Select if the patient is presently addicted to this substance."
 msgstr ""
 
-msgid "rhythmic"
+msgid "Select if the patient was previously addicted to this substance."
 msgstr ""
 
-msgid "arrhythmic"
+msgid ""
+"A comment on this substance use:\n"
+"- type of product used\n"
+"- frequency\n"
+"- amount\n"
+"- when started\n"
+"- attempts to quit\n"
+"..."
 msgstr ""
 
-msgid "°C"
+msgid ""
+"When did the patient quit?\n"
+"\n"
+"You can also set a target quit date here."
 msgstr ""
 
-msgid "°F"
+msgid "Check here to confirm for today."
 msgstr ""
 
-msgid "<last height>"
+msgid "Quit date"
+msgstr ""
+
+msgid "Last confirmed"
+msgstr ""
+
+msgid "Closed episodes"
+msgstr ""
+
+msgid "Non-relevant issues"
+msgstr ""
+
+msgid "Active problems"
+msgstr ""
+
+msgid "Notes only"
+msgstr ""
+
+msgid "Everything"
+msgstr ""
+
+msgid ""
+"In this area GNUmed will place the notes of the\n"
+"previous encounter as well as notes by other\n"
+"staff for the current encounter.\n"
+"\n"
+"Note that this may change depending on which\n"
+"active problem is selected in the editor below."
+msgstr ""
+
+msgid "Most recent info on above problem"
+msgstr ""
+
+msgid "Show closed episodes as pseudo-problems ?"
+msgstr ""
+
+msgid "Show issues marked clinically NOT relevant."
+msgstr ""
+
+msgid ""
+"This shows the list of active problems, They include open episodes as well "
+"as active health issues."
+msgstr ""
+
+msgid "Show notes only (regarding the above problem)"
+msgstr ""
+
+msgid "Show full information (regarding above problem)"
+msgstr ""
+
+msgid "Schock index"
+msgstr ""
+
+msgid "<SI>"
+msgstr ""
+
+msgid "rhythmic"
+msgstr ""
+
+msgid "arrhythmic"
+msgstr ""
+
+msgid "°C"
+msgstr ""
+
+msgid "°F"
+msgstr ""
+
+msgid "<last height>"
 msgstr ""
 
 msgid "BMI"
@@ -4816,20 +4925,18 @@ msgstr ""
 msgid "Show:"
 msgstr ""
 
-msgid "Brand by component"
+msgid "Kidneys"
 msgstr ""
 
 msgid "Brands"
 msgstr ""
 
-msgid "Kidneys"
-msgstr ""
-
-msgid "Unbranded substance"
+msgid "Substances"
 msgstr ""
 
-msgid "Manage"
-msgstr ""
+#, fuzzy
+msgid "&Unknown or date:"
+msgstr "неизвестна реакция"
 
 msgid "Approved of"
 msgstr ""
@@ -4844,22 +4951,18 @@ msgid "... Reason"
 msgstr ""
 
 msgid ""
-"A component of a drug brand the patient is taking.\n"
+"A drug the patient is taking.\n"
 "\n"
-"Lookup, and select, a single- (or multi-) component drug brand, by active "
-"ingredient name. All components of multi-component drugs will be displayed "
-"and automatically added to the patient's list."
-msgstr ""
-
-msgid ""
-"Manage drug brands.\n"
+"Lookup and select an intake by either of\n"
+"- a generic substance name\n"
+"- a drug brand name\n"
+"- an active ingredient of a drug\n"
 "\n"
-"Note that this will not select a component for you. What it does is to let "
-"you manage (add/edit/delete) the drug products/brands known to GNUmed from "
-"which you can select a component."
+"Note that all components of multi-component drugs will be displayed and "
+"automatically added to the patient's list."
 msgstr ""
 
-msgid "The active ingredients of this brand."
+msgid "Details on the selected drug."
 msgstr ""
 
 msgid "Show cardiac information relevant to substance selection."
@@ -4869,8 +4972,11 @@ msgid "Show renal insufficiency information related to substance selection."
 msgstr ""
 
 msgid ""
-"The non-branded medication or non-medication substance, with optional "
-"strength."
+"Manage drug brands.\n"
+"\n"
+"Note that this will not select a component for you. What it does is to let "
+"you manage (add/edit/delete) the drug products/brands known to GNUmed from "
+"which you can select a component."
 msgstr ""
 
 msgid ""
@@ -4883,11 +4989,19 @@ msgstr ""
 msgid "The preparation or form of the substance."
 msgstr ""
 
+msgid "Check here if the start date simply isn't known."
+msgstr ""
+
 msgid ""
 "When was this substance started to be consumed or - if not known - the "
 "earliest it is known to have been be consumed."
 msgstr ""
 
+msgid ""
+"A coment on the certainty of the start date, such as \"+/- 3 weeks\", "
+"\"spring of 2002\", \"shortly after Easter 1996\", ...."
+msgstr ""
+
 msgid "Whether this substance is taken by advice."
 msgstr ""
 
@@ -4921,6 +5035,15 @@ msgstr ""
 msgid "Reason for discontinuation."
 msgstr ""
 
+msgid "Drug"
+msgstr ""
+
+msgid "Research:"
+msgstr ""
+
+msgid "Certainty:"
+msgstr ""
+
 msgid "Schedule"
 msgstr ""
 
@@ -5072,6 +5195,30 @@ msgstr ""
 msgid "Channel"
 msgstr ""
 
+msgid "&Last modification time"
+msgstr ""
+
+msgid "&Entry time"
+msgstr ""
+
+msgid "Show journal ordered by encounter."
+msgstr ""
+
+msgid "Show journal ordered by time of last modification."
+msgstr ""
+
+msgid "Show journal ordered by actual clinical time of each entry."
+msgstr ""
+
+msgid "Edit the selected chart entry."
+msgstr ""
+
+msgid "Delete selected chart entry."
+msgstr ""
+
+msgid "Order by:"
+msgstr ""
+
 msgid "Chec&k"
 msgstr ""
 
@@ -5614,10 +5761,13 @@ msgstr ""
 msgid "Documents:"
 msgstr ""
 
+msgid "&L"
+msgstr ""
+
 msgid "&N"
 msgstr ""
 
-msgid "&L"
+msgid "List all encounters."
 msgstr ""
 
 msgid "The encounter."
@@ -5626,9 +5776,6 @@ msgstr ""
 msgid "Start a new encounter for the active patient."
 msgstr ""
 
-msgid "List all encounters."
-msgstr ""
-
 msgid "Clinically relevant"
 msgstr ""
 
@@ -5877,7 +6024,8 @@ msgstr ""
 
 msgid ""
 "Rationale for\n"
-"suppression"
+"suppression\n"
+"for this patient"
 msgstr ""
 
 msgid "Save &under"
@@ -5933,6 +6081,12 @@ msgstr ""
 msgid "Encounter:"
 msgstr ""
 
+msgid "Manage"
+msgstr ""
+
+msgid "&Panel:"
+msgstr ""
+
 msgid "&Pick"
 msgstr ""
 
@@ -5975,6 +6129,9 @@ msgid ""
 "To disable that popup leave the message empty."
 msgstr ""
 
+msgid "Show search dialog."
+msgstr ""
+
 msgid "THIS IS NOT A VERIFIED MEASUREMENT. DO NOT USE FOR ACTUAL CARE."
 msgstr ""
 
@@ -6255,6 +6412,45 @@ msgstr ""
 msgid "ERROR: unknown allergy state [%s]"
 msgstr ""
 
+msgid "definite"
+msgstr ""
+
+msgid "indefinite"
+msgstr ""
+
+msgid "Reaction:"
+msgstr ""
+
+msgid "Noted:"
+msgstr ""
+
+msgid "Allergene:"
+msgstr ""
+
+msgid "Substance:"
+msgstr ""
+
+msgid "Code:"
+msgstr ""
+
+msgid "ATC:"
+msgstr ""
+
+msgid "Specific to:"
+msgstr ""
+
+msgid "this substance only"
+msgstr ""
+
+msgid "drug class"
+msgstr ""
+
+msgid "unknown"
+msgstr ""
+
+msgid "Generics:"
+msgstr ""
+
 msgid "Medication history"
 msgstr ""
 
@@ -6264,9 +6460,15 @@ msgstr ""
 msgid "prescription data"
 msgstr ""
 
+msgid "Consumable substance"
+msgstr ""
+
 msgid "in use"
 msgstr ""
 
+msgid "w/"
+msgstr ""
+
 msgid "long-term"
 msgstr ""
 
@@ -6286,6 +6488,35 @@ msgid "?ongoing"
 msgstr ""
 
 #, python-format
+msgid ""
+"Substance abuse entry                                              [#%s]\n"
+msgstr ""
+
+#, python-format
+msgid "Substance: %s [#%s]%s\n"
+msgstr ""
+
+#, python-format
+msgid "Use type: %s\n"
+msgstr ""
+
+#, python-format
+msgid "Last checked: %s\n"
+msgstr ""
+
+#, python-format
+msgid " Discontinued %s\n"
+msgstr ""
+
+#, fuzzy, python-format
+msgid " Notes: %s\n"
+msgstr " Забелязано на възраст: %s"
+
+#, python-format
+msgid "Revision: #%(row_ver)s, %(mod_when)s by %(mod_by)s."
+msgstr ""
+
+#, python-format
 msgid "Substance intake entry (%s, %s)   [#%s]                     \n"
 msgstr ""
 
@@ -6301,9 +6532,6 @@ msgstr ""
 msgid "unapproved"
 msgstr ""
 
-msgid "definite"
-msgstr ""
-
 msgid "suspected"
 msgstr ""
 
@@ -6350,10 +6578,6 @@ msgid " (short-term)"
 msgstr ""
 
 #, python-format
-msgid " Discontinued %s\n"
-msgstr ""
-
-#, python-format
 msgid " Reason: %s\n"
 msgstr ""
 
@@ -6373,16 +6597,59 @@ msgstr ""
 msgid " Advice: %s\n"
 msgstr ""
 
+msgid "medication, not abuse"
+msgstr ""
+
+msgid "no or non-harmful use"
+msgstr ""
+
+msgid "presently harmful use"
+msgstr ""
+
+msgid "presently addicted"
+msgstr ""
+
+msgid "previously addicted"
+msgstr ""
+
 #, python-format
-msgid "Revision: #%(row_ver)s, %(mod_when)s by %(mod_by)s."
+msgid "%s%s: %s ago%s"
+msgstr ""
+
+#, python-format
+msgid "%s%s: %s ago (%s)"
+msgstr ""
+
+#, python-format
+msgid "%s%s%s (%s ago)"
+msgstr ""
+
+#, python-format
+msgid "%s%s%s (%s ago, %s)"
+msgstr ""
+
+#, python-format
+msgid "%s ago"
+msgstr ""
+
+#, python-format
+msgid "in %s"
+msgstr ""
+
+#, python-format
+msgid ", until %s (%s)"
+msgstr ""
+
+#, python-format
+msgid " (planned for %s%s)"
 msgstr ""
 
 #, python-format
-msgid "%s: %s ago"
+msgid ", planned for %s%s"
 msgstr ""
 
 #, python-format
-msgid "%s: %s ago (%s)"
+msgid "%s ago (for %s: %s %s %s)"
 msgstr ""
 
 msgid "Additional notes"
@@ -6397,10 +6664,31 @@ msgstr ""
 msgid "ordered by brand"
 msgstr ""
 
-msgid "Drug"
+msgid "Regimen / Advice"
 msgstr ""
 
-msgid "Regimen / Advice"
+#, python-format
+msgid "Component of %s (%s)"
+msgstr ""
+
+#, python-format
+msgid "ATC (substance): %s"
+msgstr ""
+
+#, python-format
+msgid "ATC (brand): %s"
+msgstr ""
+
+msgid "this is a component of a fake brand"
+msgstr ""
+
+msgid "Components:"
+msgstr ""
+
+msgid "this is a fake brand"
+msgstr ""
+
+msgid "this is a vaccine"
 msgstr ""
 
 msgid "units"
@@ -6435,58 +6723,24 @@ msgstr ""
 msgid "Expires: %s\n"
 msgstr ""
 
-msgid "Active clinical hint"
+msgid "HL7 Source"
 msgstr ""
 
-msgid "Inactive clinical hint"
+msgid "HL7 data size"
 msgstr ""
 
 #, python-format
-msgid "Source: %s\n"
+msgid "%s bytes"
+msgstr ""
+
+msgid "HL7 Message"
 msgstr ""
 
 #, python-format
-msgid "Language: %s\n"
+msgid " %s segments (lines)%s"
 msgstr ""
 
-msgid "Suppressed active dynamic hint"
-msgstr ""
-
-msgid "Suppressed inactive dynamic hint"
-msgstr ""
-
-#, python-format
-msgid "Suppressed by: %s\n"
-msgstr ""
-
-#, python-format
-msgid "Suppressed at: %s\n"
-msgstr ""
-
-#, python-format
-msgid "Hint #: %s\n"
-msgstr ""
-
-#, python-format
-msgid "Patient #: %s\n"
-msgstr ""
-
-#, python-format
-msgid "MD5 (currently): %s\n"
-msgstr ""
-
-#, python-format
-msgid "MD5 (at suppression): %s\n"
-msgstr ""
-
-msgid "HL7 Message"
-msgstr ""
-
-#, python-format
-msgid " %s segments (lines)%s"
-msgstr ""
-
-msgid ", skipping empty fields"
+msgid ", skipping empty fields"
 msgstr ""
 
 #, python-format
@@ -6532,13 +6786,6 @@ msgstr ""
 msgid "doc: %s"
 msgstr ""
 
-msgid "no patient photograph available"
-msgstr ""
-
-#, python-format
-msgid "patient photograph from %s"
-msgstr ""
-
 msgid "Patient data for"
 msgstr ""
 
@@ -6548,6 +6795,9 @@ msgstr ""
 msgid "Patient data export"
 msgstr ""
 
+msgid "no patient photograph available"
+msgstr ""
+
 msgid "Documents"
 msgstr ""
 
@@ -6558,6 +6808,10 @@ msgstr ""
 msgid "browse documents area"
 msgstr " %s документи\n"
 
+#, python-format
+msgid "patient photograph from %s"
+msgstr ""
+
 msgid "Browse patient data"
 msgstr ""
 
@@ -6592,24 +6846,24 @@ msgstr ""
 #, python-format
 msgid ""
 "%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s %(suburb)s, "
-"%(code_state)s, %(code_country)s"
+"%(code_region)s, %(code_country)s"
 msgstr ""
 
 #, python-format
 msgid ""
 "%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s %(suburb)s, "
-"%(code_state)s, %(code_country)s"
+"%(code_region)s, %(code_country)s"
 msgstr ""
 
 #, python-format
 msgid ""
-"%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_state)s, "
-"%(code_country)s"
+"%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, "
+"%(code_region)s, %(code_country)s"
 msgstr ""
 
 #, python-format
 msgid ""
-"%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_state)s, "
+"%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_region)s, "
 "%(code_country)s"
 msgstr ""
 
@@ -6619,7 +6873,7 @@ msgid ""
 " Street: %(street)s%(notes_street)s\n"
 " Number/Unit: %(number)s%(subunit)s%(notes_subunit)s\n"
 " Location: %(zip)s %(urb)s%(suburb)s\n"
-" Region: %(l10n_state)s, %(code_state)s\n"
+" Region: %(l10n_region)s, %(code_region)s\n"
 " Country: %(l10n_country)s, %(code_country)s"
 msgstr ""
 
@@ -6629,7 +6883,7 @@ msgid ""
 " Street: %(street)s%(notes_street)s\n"
 " Number/Unit: %(number)s%(subunit)s%(notes_subunit)s\n"
 " Location: %(zip)s %(urb)s%(suburb)s\n"
-" Region: %(l10n_state)s, %(code_state)s\n"
+" Region: %(l10n_region)s, %(code_region)s\n"
 " Country: %(l10n_country)s, %(code_country)s"
 msgstr ""
 
@@ -6698,6 +6952,86 @@ msgstr ""
 msgid "missing, reported later"
 msgstr ""
 
+msgid "Health issue"
+msgstr ""
+
+msgid "External care"
+msgstr ""
+
+msgid "Vaccination"
+msgstr ""
+
+msgid "Clinical narrative"
+msgstr ""
+
+msgid "Test result"
+msgstr ""
+
+msgid "Substance intake"
+msgstr ""
+
+msgid "Hospital stay"
+msgstr ""
+
+msgid "Performed procedure"
+msgstr ""
+
+msgid "Family history"
+msgstr ""
+
+#, fuzzy
+msgid "Document"
+msgstr " %s документи\n"
+
+#, python-format
+msgid "unmapped entry type from table [%s]"
+msgstr ""
+
+#, python-format
+msgid "cannot instantiate clinical root item <%s(%s)>"
+msgstr ""
+
+msgid "True"
+msgstr ""
+
+msgid "False"
+msgstr ""
+
+msgid "unknown smoking status"
+msgstr ""
+
+msgid "non-smoker"
+msgstr ""
+
+msgid "current smoker"
+msgstr ""
+
+msgid "ex-smoker"
+msgstr ""
+
+msgid "tobacco addiction"
+msgstr ""
+
+msgid "no or non-harmful alcohol use"
+msgstr ""
+
+msgid "harmful alcohol use"
+msgstr ""
+
+#, fuzzy
+msgid "unknown alcohol use"
+msgstr "неизвестна реакция"
+
+msgid "no or non-harmful drug use"
+msgstr ""
+
+msgid "harmful drug use"
+msgstr ""
+
+#, fuzzy
+msgid "unknown drug use"
+msgstr "неизвестна реакция"
+
 msgid "original entry"
 msgstr "оригинален запис"
 
@@ -6789,13 +7123,6 @@ msgstr ""
 msgid "Vaccinations"
 msgstr ""
 
-#, python-format
-msgid "%s ago"
-msgstr ""
-
-msgid "External care"
-msgstr ""
-
 msgid "Allergies/Intolerances"
 msgstr ""
 
@@ -6869,76 +7196,126 @@ msgid ""
 "The account was deactivated instead."
 msgstr ""
 
+msgid "SOAP_char_S=S"
+msgstr ""
+
+msgid "SOAP_char_O=O"
+msgstr ""
+
+msgid "SOAP_char_A=A"
+msgstr ""
+
+msgid "SOAP_char_P=P"
+msgstr ""
+
+msgid "SOAP_char_U=U"
+msgstr ""
+
+msgid "SOAP_string_Subjective=Subjective"
+msgstr ""
+
+msgid "SOAP_string_Objective=Objective"
+msgstr ""
+
+msgid "SOAP_string_Assessment=Assessment"
+msgstr ""
+
+msgid "SOAP_string_Plan=Plan"
+msgstr ""
+
+msgid "SOAP_string_Unspecified=Unspecified"
+msgstr ""
+
+msgid "SOAP_string_Administrative=Administrative"
+msgstr ""
+
+msgid "Active clinical hint"
+msgstr ""
+
+msgid "Inactive clinical hint"
+msgstr ""
+
 #, python-format
-msgid "Device(%s):"
+msgid "Source: %s\n"
 msgstr ""
 
-msgid "Battery:"
+#, python-format
+msgid "Language: %s\n"
 msgstr ""
 
-msgid "Implanted:"
+msgid "Suppressed active dynamic hint"
 msgstr ""
 
-msgid "last check:"
+msgid "Suppressed inactive dynamic hint"
 msgstr ""
 
-msgid "Sensing:"
+#, python-format
+msgid "Suppressed by: %s\n"
 msgstr ""
 
-msgid "Threshold"
+#, python-format
+msgid "Suppressed at: %s\n"
 msgstr ""
 
-msgid "Impedance:"
+#, python-format
+msgid "Hint #: %s\n"
 msgstr ""
 
 #, python-format
-msgid "Praxis branch                   #%s\n"
+msgid "Patient #: %s\n"
 msgstr ""
 
-msgid "Privacy notice"
+#, python-format
+msgid "MD5 (currently): %s\n"
 msgstr ""
 
 #, python-format
-msgid ""
-"%s: Your chart has been accessed by %s (without user interaction, probably "
-"by a script)."
+msgid "MD5 (at suppression): %s\n"
 msgstr ""
 
 #, python-format
-msgid "%s: Staff member %s has been notified of your chart access."
+msgid "Device(%s):"
 msgstr ""
 
-msgid "soap_S"
+msgid "Battery:"
 msgstr ""
 
-msgid "soap_O"
+msgid "Implanted:"
 msgstr ""
 
-msgid "soap_A"
+msgid "last check:"
 msgstr ""
 
-msgid "soap_P"
+msgid "Sensing:"
 msgstr ""
 
-msgid "soap_U"
+msgid "Threshold"
 msgstr ""
 
-msgid "soap_Subjective"
+msgid "Impedance:"
 msgstr ""
 
-msgid "soap_Objective"
+#, python-format
+msgid "Praxis branch                   #%s\n"
 msgstr ""
 
-msgid "soap_Assessment"
+#, python-format
+msgid ""
+"FN:%(l10n_unit_category)s %(branch)s of %(l10n_organization_category)s "
+"%(praxis)s"
 msgstr ""
 
-msgid "soap_Plan"
+msgid "Privacy notice"
 msgstr ""
 
-msgid "soap_Unspecified"
+#, python-format
+msgid ""
+"%s: Your chart has been accessed by %s (without user interaction, probably "
+"by a script)."
 msgstr ""
 
-msgid "soap_Administrative"
+#, python-format
+msgid "%s: Staff member %s has been notified of your chart access."
 msgstr ""
 
 #, python-format
@@ -7005,9 +7382,17 @@ msgid "%(last)s,%(title)s %(first)s%(nick)s (%(sex)s)"
 msgstr ""
 
 #, python-format
+msgid "%(last)s,%(title)s %(first)s (%(sex)s)"
+msgstr ""
+
+#, python-format
 msgid "%(last)s,%(title)s %(first)s%(nick)s"
 msgstr ""
 
+#, python-format
+msgid "%(last)s,%(title)s %(first)s"
+msgstr ""
+
 msgid "Cannot merge active patient into another patient."
 msgstr ""
 
@@ -7017,9 +7402,6 @@ msgstr ""
 msgid "merged"
 msgstr ""
 
-msgid "preferred name/call name/..."
-msgstr ""
-
 msgid "invalid age: DOB in the future"
 msgstr ""
 
@@ -7032,9 +7414,6 @@ msgstr ""
 msgid "Mrs"
 msgstr ""
 
-msgid "unknown"
-msgstr ""
-
 msgid "empty status"
 msgstr ""
 
@@ -7365,7 +7744,7 @@ msgid " Part %s: %s %s(%s Bytes)\n"
 msgstr ""
 
 #, python-format
-msgid " Filename: %s\n"
+msgid " Filename: %s%s\n"
 msgstr ""
 
 msgid "no parts"
@@ -7379,18 +7758,25 @@ msgid "%s parts"
 msgstr ""
 
 #, python-format
+msgid "%s of %s"
+msgstr ""
+
+#, python-format
 msgid ""
 "%s (%s)   #%s\n"
-"\n"
 " Created: %s\n"
 " Episode: %s\n"
-"%s%s%s"
+"%s%s%s%s"
 msgstr ""
 
 #, python-format
 msgid " External reference: %s\n"
 msgstr ""
 
+#, python-format
+msgid " Organization: %%s @ %s\n"
+msgstr ""
+
 msgid "Cannot run [arriba] !"
 msgstr ""
 
@@ -7735,25 +8121,9 @@ msgid "External care:"
 msgstr ""
 
 #, fuzzy, python-format
-msgid ""
-"health issue: %s%s%s\n"
-"\n"
+msgid "Health issue: %s%s%s"
 msgstr "здравословен проблем: %s"
 
-msgid ""
-"\n"
-"current values:\n"
-msgstr ""
-
-msgid "no previous versions of this record"
-msgstr ""
-
-msgid ""
-"\n"
-"all values with <audit_action>, <audit_when>, <audit_by> fields (current "
-"value first):\n"
-msgstr ""
-
 msgid "Unattributed episodes"
 msgstr ""
 
@@ -7775,9 +8145,6 @@ msgstr ""
 msgid "finished"
 msgstr ""
 
-msgid "Health issue"
-msgstr ""
-
 msgid "none associated"
 msgstr ""
 
@@ -7813,9 +8180,7 @@ msgid "Measurements and Results:"
 msgstr ""
 
 #, fuzzy, python-format
-msgid ""
-"episode: %s%s%s\n"
-"\n"
+msgid "Episode: %s%s%s"
 msgstr "епизод     : %s"
 
 #, python-format
@@ -7842,11 +8207,9 @@ msgstr ""
 msgid "%s other episodes touched upon during this encounter:"
 msgstr ""
 
-#, python-format
-msgid ""
-"encounter: %s%s%s\n"
-"\n"
-msgstr ""
+#, fuzzy, python-format
+msgid "Encounter: %s%s%s"
+msgstr "епизод     : %s"
 
 msgid " (ongoing)"
 msgstr ""
@@ -7866,9 +8229,6 @@ msgstr ""
 msgid "Procedures"
 msgstr ""
 
-msgid "Substances"
-msgstr ""
-
 msgid "Life events"
 msgstr ""
 
@@ -7890,9 +8250,6 @@ msgstr ""
 msgid "Cannot display timeline."
 msgstr ""
 
-msgid "Vaccination"
-msgstr ""
-
 msgid "Lab result"
 msgstr ""
 
@@ -7960,9 +8317,6 @@ msgstr ""
 msgid "Exported: %s\n"
 msgstr ""
 
-msgid "emr-journal"
-msgstr ""
-
 msgid "Chronological EMR Journal\n"
 msgstr ""
 
@@ -8231,16 +8585,7 @@ msgstr ""
 msgid "Select one or more codes that apply."
 msgstr ""
 
-msgid "Cannot move progress notes. No active patient."
-msgstr ""
-
-msgid "Moving progress notes between encounters ..."
-msgstr ""
-
-msgid ""
-"\n"
-" Select the progress notes to move from the list !\n"
-"\n"
+msgid "Select the narrative you are interested in ..."
 msgstr ""
 
 msgid "when"
@@ -8252,10 +8597,138 @@ msgstr ""
 msgid "entry"
 msgstr ""
 
-msgid "Cannot edit progress notes. No active patient."
+msgid "There is no narrative for this episode in this encounter."
 msgstr ""
 
-msgid "Deleting progress note"
+msgid "Must select episode to move narrative to first."
+msgstr ""
+
+msgid "Last"
+msgstr ""
+
+msgid "In health issue"
+msgstr ""
+
+msgid "Most recent notes on selected problem"
+msgstr ""
+
+#, python-format
+msgid "%s (active+potential) problems"
+msgstr ""
+
+#, python-format
+msgid "%s active problems"
+msgstr ""
+
+msgid "Current encounter:"
+msgstr ""
+
+msgid "Cumulative summary"
+msgstr ""
+
+#, python-format
+msgid "Most recent info on %s%s%s"
+msgstr ""
+
+#, python-format
+msgid ""
+"Cannot open progress note editor for\n"
+"\n"
+"[%s].\n"
+"\n"
+msgstr ""
+
+msgid "opening progress note editor"
+msgstr ""
+
+msgid "Cannot save all editors. Some were kept open."
+msgstr ""
+
+msgid "new problem"
+msgstr ""
+
+msgid ""
+"Are you sure you really want to\n"
+"discard this progress note ?\n"
+msgstr ""
+
+msgid "Discarding progress note"
+msgstr ""
+
+msgid "There are unsaved progress notes !\n"
+msgstr ""
+
+msgid "Unsaved progress notes"
+msgstr ""
+
+msgid "Problem list"
+msgstr ""
+
+msgid "Saving SOAP note"
+msgstr ""
+
+msgid "Do you want to save the SOAP note ?"
+msgstr ""
+
+#, python-format
+msgid "&Filter by problem %s%s%s"
+msgstr ""
+
+msgid "Cannot save SimpleNotes SOAP note."
+msgstr ""
+
+#, python-format
+msgid "Progress note: %s%s"
+msgstr ""
+
+msgid "Please enter a name for the new problem:"
+msgstr ""
+
+msgid "Adding a problem"
+msgstr ""
+
+msgid "Cannot delete problem. There is still clinical data recorded for it."
+msgstr ""
+
+#, python-format
+msgid "GNUmed: configuring [%s] (%s plugins)"
+msgstr ""
+
+msgid "loading list of plugins                               "
+msgstr ""
+
+msgid "failed"
+msgstr ""
+
+msgid "success"
+msgstr ""
+
+#, python-format
+msgid ""
+"previous: %s (%s)\n"
+"current (%s/%s): %s"
+msgstr ""
+
+#, python-format
+msgid "Cannot switch to [%s]: no patient selected"
+msgstr ""
+
+msgid "Cannot move progress notes. No active patient."
+msgstr ""
+
+msgid "Moving progress notes between encounters ..."
+msgstr ""
+
+msgid ""
+"\n"
+" Select the progress notes to move from the list !\n"
+"\n"
+msgstr ""
+
+msgid "Cannot edit progress notes. No active patient."
+msgstr ""
+
+msgid "Deleting progress note"
 msgstr ""
 
 msgid ""
@@ -8451,966 +8924,885 @@ msgid ""
 " Now, mark the entries you want to include in your report.\n"
 msgstr ""
 
-msgid "Select the narrative you are interested in ..."
+msgid "Pick a date ..."
 msgstr ""
 
-msgid "There is no narrative for this episode in this encounter."
+msgid "<ALT-C/K>: pick from (c/k)alendar"
 msgstr ""
 
-msgid "Must select episode to move narrative to first."
+msgid "Cannot interpret input as timestamp."
 msgstr ""
 
-msgid "Last"
+msgid "No vaccines were chosen"
 msgstr ""
 
-msgid "In health issue"
+#, python-format
+msgid "Combination of indications , %s , not found in any vaccine"
 msgstr ""
 
-msgid "Most recent notes on selected problem"
+msgid "Sequence"
 msgstr ""
 
-#, python-format
-msgid "%s (active+potential) problems"
+msgid "Batch"
 msgstr ""
 
-#, python-format
-msgid "%s active problems"
+msgid "Vaccinator"
 msgstr ""
 
-msgid "Current encounter:"
+msgid ""
+"Vaccinations by Recommender (X = patient on regime, O = patient not on "
+"regime) "
 msgstr ""
 
-msgid "Cumulative summary"
+msgid "enrolled regime vaccinations not yet given"
 msgstr ""
 
-#, python-format
-msgid "Most recent info on %s%s%s"
+msgid "Proceed with "
 msgstr ""
 
 #, python-format
-msgid ""
-"Cannot open progress note editor for\n"
-"\n"
-"[%s].\n"
-"\n"
+msgid "Failed to enrol patient in %s"
 msgstr ""
 
-msgid "opening progress note editor"
+#, python-format
+msgid "Failed to  delist patient from %s"
 msgstr ""
 
-msgid "Cannot save all editors. Some were kept open."
+msgid "Missing GNUmed module"
 msgstr ""
 
-msgid "new problem"
+#, python-format
+msgid ""
+"GNUmed detected that parts of it are not\n"
+"properly installed. The following message\n"
+"names the missing part:\n"
+"\n"
+" \"%s\"\n"
+"\n"
+"Please make sure to get the missing\n"
+"parts installed. Otherwise some of the\n"
+"functionality will not be accessible."
 msgstr ""
 
+#, python-format
 msgid ""
-"Are you sure you really want to\n"
-"discard this progress note ?\n"
+"\n"
+" Source: %s"
 msgstr ""
 
-msgid "Discarding progress note"
+#, python-format
+msgid ""
+"\n"
+" Code: %s"
 msgstr ""
 
-msgid "There are unsaved progress notes !\n"
+#, python-format
+msgid ""
+"\n"
+" Details (first 250 characters):\n"
+"%s\n"
+"%s\n"
+"%s"
 msgstr ""
 
-msgid "Unsaved progress notes"
+msgid "Access violation"
 msgstr ""
 
 #, python-format
-msgid "Synopsis (%s)"
+msgid ""
+"You do not have access to this part of GNUmed.\n"
+"\n"
+"%s"
 msgstr ""
 
-msgid ""
-"Enter a short working name for this new problem\n"
-"(which will become a new, unassociated episode):\n"
+msgid "Lost connection"
 msgstr ""
 
-#, python-format
 msgid ""
-"Enter a short working name for this new\n"
-"episode under the existing health issue\n"
+"Since you were last working in GNUmed,\n"
+"your database connection timed out.\n"
 "\n"
-"\"%s\":\n"
+"This GNUmed session is now expired.\n"
+"\n"
+"You will have to close this client and\n"
+"restart a new GNUmed session."
 msgstr ""
 
-msgid "Creating problem (episode) to save notelet under ..."
+msgid ""
+"Please enter a short note on what you\n"
+"were about to do in GNUmed:"
 msgstr ""
 
-msgid "Cannot save a new problem without a name."
+msgid "Sending bug report"
 msgstr ""
 
-msgid "saving progress note"
+msgid ""
+"Edit the list of email addresses to send the\n"
+"bug report to (separate addresses by spaces).\n"
+"\n"
+"Note that <gnumed-bugs at gnu.org> refers to\n"
+"the public (!) GNUmed bugs mailing list."
 msgstr ""
 
 #, python-format
 msgid ""
-"The new episode:\n"
+"Your bug report will be sent to:\n"
 "\n"
-" \"%s\"\n"
+"%s\n"
 "\n"
-"will remain unassociated despite the editor\n"
-"having been invoked from the health issue:\n"
+"Make sure you have reviewed the log file for potentially\n"
+"sensitive information before sending out the bug report.\n"
 "\n"
-" \"%s\""
+"Note that emailing the report may take a while depending\n"
+"on the speed of your internet connection.\n"
 msgstr ""
 
-msgid "You need to actually set an editor."
+msgid "Yes, send the bug report."
 msgstr ""
 
-#, python-format
-msgid "The command [%s] is not found."
+msgid "No, do not send the bug report."
+msgstr ""
+
+msgid "include log file in bug report"
 msgstr ""
 
-#, python-format
 msgid ""
-"Enter the shell command with which to start\n"
-"the image editor for visual progress notes.\n"
+"The database you are connected to is marked as\n"
+"\"in-production with controlled access\".\n"
 "\n"
-"Any \"%(img)s\" included with the arguments\n"
-"will be replaced by the file name of the\n"
-"note template."
+"You indicated that you want to include the log\n"
+"file in your bug report. While this is often\n"
+"useful for debugging the log file might contain\n"
+"bits of patient data which must not be sent out\n"
+"without de-identification.\n"
+"\n"
+"Please confirm that you want to include the log !"
 msgstr ""
 
-msgid "Choose file to use as template for new visual progress note"
+msgid "<not supplied>"
 msgstr ""
 
-msgid "Visual progress note source"
+msgid "Bug report has been emailed."
 msgstr ""
 
-msgid "From which source do you want to pick the image template ?"
+msgid "Bug report COULD NOT be emailed."
 msgstr ""
 
-msgid "Database"
+msgid "Underweight"
 msgstr ""
 
-msgid "List of templates in the database."
+msgid "63< Normal >79"
 msgstr ""
 
-msgid "Files in the filesystem."
+msgid "63 - Normal - 79"
 msgstr ""
 
-msgid "Device"
+msgid "Overweight"
 msgstr ""
 
-msgid "Image capture devices (scanners, cameras, etc)"
+msgid "Obese"
 msgstr ""
 
-#, python-format
-msgid "Cannot export visual progress note template for [%s]."
+msgid "Current height/mass"
 msgstr ""
 
-msgid "Cannot export visual progress note to file."
+msgid "Height (cm)"
 msgstr ""
 
-msgid "Editor for visual progress note not configured."
+msgid "Mass (kg)"
 msgstr ""
 
-#, python-format
-msgid ""
-"There was a problem with running the editor\n"
-"for visual progress notes.\n"
-"\n"
-" [%s]\n"
-"\n"
+msgid "Adjusted Values"
 msgstr ""
 
-msgid "Editing visual progress note"
+msgid "Goal mass"
 msgstr ""
 
-#, python-format
-msgid ""
-"There was a problem reading the visual\n"
-"progress note from the file:\n"
-"\n"
-" [%s]\n"
-"\n"
+msgid "kg to lose"
 msgstr ""
 
-msgid "Saving visual progress note"
+msgid "BMI Calculator"
 msgstr ""
 
-msgid ""
-"You either created a visual progress note from a template\n"
-"in the database (rather than from a file on disk) or you\n"
-"edited an existing visual progress note.\n"
-"\n"
-"The template/original was not modified at all, however.\n"
-"\n"
-"Do you still want to save the unmodified image as a\n"
-"visual progress note into the EMR of the patient ?\n"
+msgid "&Reset"
 msgstr ""
 
-msgid "visual progress notes"
+msgid "Select a healthcare provider."
 msgstr ""
 
-#, python-format
-msgid "Created: %s"
+msgid "Public (no clinical or demographic access)"
 msgstr ""
 
-msgid "Problem list"
+msgid "Staff (demographic access only)"
 msgstr ""
 
-msgid "Saving SOAP note"
+msgid "staff (clerical)"
 msgstr ""
 
-msgid "Do you want to save the SOAP note ?"
+msgid "full clinical access"
 msgstr ""
 
-#, python-format
-msgid "&Filter by problem %s%s%s"
+msgid "DB account"
 msgstr ""
 
-msgid "Cannot save SimpleNotes SOAP note."
+msgid "can login"
 msgstr ""
 
-#, python-format
-msgid "Progress note: %s%s"
+msgid "can not login"
 msgstr ""
 
-msgid "Please enter a name for the new problem:"
+msgid "Activating GNUmed user."
 msgstr ""
 
-msgid "Adding a problem"
+msgid "Deactivating GNUmed user."
 msgstr ""
 
-msgid "Cannot delete problem. There is still clinical data recorded for it."
+msgid "Removing GNUmed user."
 msgstr ""
 
-#, python-format
-msgid "GNUmed: configuring [%s] (%s plugins)"
+msgid "Removing GNUmed user"
 msgstr ""
 
-msgid "loading list of plugins                               "
+msgid "Modifying GNUmed user."
 msgstr ""
 
-msgid "failed"
+msgid "Failed to save changes to GNUmed database user."
 msgstr ""
 
-msgid "success"
+msgid "Modifying GNUmed user"
 msgstr ""
 
 #, python-format
-msgid ""
-"previous: %s (%s)\n"
-"current (%s/%s): %s"
+msgid "Failed to set role [%s] for GNUmed database user."
 msgstr ""
 
 #, python-format
-msgid "Cannot switch to [%s]: no patient selected"
-msgstr ""
-
-msgid "Pick a date ..."
+msgid ""
+"\n"
+"  %s \"%s\" %s\n"
+"  born: %s"
 msgstr ""
 
-msgid "<ALT-C/K>: pick from (c/k)alendar"
+msgid ""
+"Password entries do not match. Please type in the passwords again to rule "
+"out typos."
 msgstr ""
 
-msgid "Cannot interpret input as timestamp."
+msgid "Adding GNUmed user"
 msgstr ""
 
-msgid "No vaccines were chosen"
+msgid ""
+"Are you positively sure you want to create\n"
+"a user with an empty password ?\n"
+"\n"
+"Think about the record access implications !"
 msgstr ""
 
-#, python-format
-msgid "Combination of indications , %s , not found in any vaccine"
+msgid "Enlisting person as user."
 msgstr ""
 
-msgid "Sequence"
+msgid "Encrypt"
 msgstr ""
 
-msgid "Batch"
+msgid "Decrypt"
 msgstr ""
 
-msgid "Vaccinator"
+msgid "Set pass phrase"
 msgstr ""
 
-msgid ""
-"Vaccinations by Recommender (X = patient on regime, O = patient not on "
-"regime) "
+msgid "This is not correctly encrypted text!"
 msgstr ""
 
-msgid "enrolled regime vaccinations not yet given"
+msgid "Please enter your pass phrase:"
 msgstr ""
 
-msgid "Proceed with "
+msgid "Pass phrase expired"
 msgstr ""
 
-#, python-format
-msgid "Failed to enrol patient in %s"
+msgid ""
+"\n"
+"Conditions preventable by vaccination as currently known to GNUmed.\n"
 msgstr ""
 
-#, python-format
-msgid "Failed to  delist patient from %s"
+msgid "Showing vaccination preventable conditions."
 msgstr ""
 
-msgid "Missing GNUmed module"
+msgid "ATCs: single-condition vaccines"
 msgstr ""
 
-#, python-format
-msgid ""
-"GNUmed detected that parts of it are not\n"
-"properly installed. The following message\n"
-"names the missing part:\n"
-"\n"
-" \"%s\"\n"
-"\n"
-"Please make sure to get the missing\n"
-"parts installed. Otherwise some of the\n"
-"functionality will not be accessible."
+msgid "ATCs: multi-condition vaccines"
 msgstr ""
 
-#, python-format
-msgid ""
-"\n"
-" Source: %s"
+msgid "Pick the relevant indications."
 msgstr ""
 
-#, python-format
-msgid ""
-"\n"
-" Code: %s"
+msgid "Known indications"
 msgstr ""
 
-#, python-format
-msgid ""
-"\n"
-" Details (first 250 characters):\n"
-"%s\n"
-"%s\n"
-"%s"
+msgid "Adding new vaccine"
 msgstr ""
 
-msgid "Access violation"
+msgid "Editing vaccine"
 msgstr ""
 
 #, python-format
 msgid ""
-"You do not have access to this part of GNUmed.\n"
+"Cannot delete vaccine\n"
 "\n"
-"%s"
+" %s - %s (#%s)\n"
+"\n"
+"It is probably documented in a vaccination."
 msgstr ""
 
-msgid "Lost connection"
+msgid "Deleting vaccine"
+msgstr ""
+
+msgid "fake"
 msgstr ""
 
 msgid ""
-"Since you were last working in GNUmed,\n"
-"your database connection timed out.\n"
 "\n"
-"This GNUmed session is now expired.\n"
-"\n"
-"You will have to close this client and\n"
-"restart a new GNUmed session."
+"The vaccines currently known to GNUmed.\n"
 msgstr ""
 
-msgid ""
-"Please enter a short note on what you\n"
-"were about to do in GNUmed:"
+msgid "Showing vaccines."
 msgstr ""
 
-msgid "Sending bug report"
+msgid "Enter or select the batch/lot number of the vaccine used."
 msgstr ""
 
-msgid ""
-"Edit the list of email addresses to send the\n"
-"bug report to (separate addresses by spaces).\n"
-"\n"
-"Note that <gnumed-bugs at gnu.org> refers to\n"
-"the public (!) GNUmed bugs mailing list."
+msgid "Saving vaccine"
 msgstr ""
 
 #, python-format
 msgid ""
-"Your bug report will be sent to:\n"
+"This vaccine is already in use:\n"
 "\n"
-"%s\n"
+" \"%s\"\n"
+" (%s)\n"
 "\n"
-"Make sure you have reviewed the log file for potentially\n"
-"sensitive information before sending out the bug report.\n"
+"Are you absolutely positively sure that\n"
+"you really want to edit this vaccine ?\n"
 "\n"
-"Note that emailing the report may take a while depending\n"
-"on the speed of your internet connection.\n"
+"This will change the vaccine name and/or target\n"
+"conditions in each patient this vaccine was\n"
+"used in to document a vaccination with.\n"
 msgstr ""
 
-msgid "Yes, send the bug report."
+msgid "You must select at least one indication."
 msgstr ""
 
-msgid "No, do not send the bug report."
+msgid "Pick the diseases this vaccine protects against."
 msgstr ""
 
-msgid "include log file in bug report"
+msgid "This vaccine"
 msgstr ""
 
-msgid ""
-"The database you are connected to is marked as\n"
-"\"in-production with controlled access\".\n"
-"\n"
-"You indicated that you want to include the log\n"
-"file in your bug report. While this is often\n"
-"useful for debugging the log file might contain\n"
-"bits of patient data which must not be sent out\n"
-"without de-identification.\n"
-"\n"
-"Please confirm that you want to include the log !"
+msgid "Adding new vaccinations"
 msgstr ""
 
-msgid "<not supplied>"
+msgid "Editing vaccination"
 msgstr ""
 
-msgid "Bug report has been emailed."
+msgid "vaccination recall"
 msgstr ""
 
-msgid "Bug report COULD NOT be emailed."
+#, python-format
+msgid "vaccination recall (%s)"
 msgstr ""
 
-msgid "Underweight"
+#, python-format
+msgid ""
+"Existing vaccination:\n"
+"\n"
+"%s"
 msgstr ""
 
-msgid "63< Normal >79"
+msgid ""
+"\n"
+"Complete vaccination history for this patient.\n"
 msgstr ""
 
-msgid "63 - Normal - 79"
+msgid "Showing vaccinations."
 msgstr ""
 
-msgid "Overweight"
+msgid "Intended to protect from"
 msgstr ""
 
-msgid "Obese"
+msgid "Print vaccinations or recalls."
 msgstr ""
 
-msgid "Current height/mass"
+msgid "Recall"
 msgstr ""
 
-msgid "Height (cm)"
+msgid "Add a recall for a vaccination"
 msgstr ""
 
-msgid "Mass (kg)"
+msgid "Vx schedules"
 msgstr ""
 
-msgid "Adjusted Values"
+msgid "Open a browser showing vaccination schedules."
 msgstr ""
 
-msgid "Goal mass"
+msgid "prevention"
 msgstr ""
 
-msgid "kg to lose"
+msgid "Saving vaccination"
 msgstr ""
 
-msgid "BMI Calculator"
+msgid "Pick the diseases this vaccination was given against."
 msgstr ""
 
-msgid "&Reset"
+msgid "  IMMUNISATIONS  "
 msgstr ""
 
-msgid "Select a healthcare provider."
+msgid "Indications"
 msgstr ""
 
-msgid "Public (no clinical or demographic access)"
+msgid "Active Schedules"
 msgstr ""
 
-msgid "Staff (demographic access only)"
+msgid "Missing Immunisations"
 msgstr ""
 
-msgid "staff (clerical)"
+msgid "  Alerts  "
 msgstr ""
 
-msgid "full clinical access"
+msgid "ERROR: cannot retrieve active vaccination schedules"
 msgstr ""
 
-msgid "DB account"
+msgid "no active vaccination schedules"
 msgstr ""
 
-msgid "can login"
+#, python-format
+msgid "%s for %s (%s shots): %s"
 msgstr ""
 
-msgid "can not login"
+msgid "ERROR: cannot retrieve due/overdue vaccinations"
 msgstr ""
 
-msgid "Activating GNUmed user."
+#, python-format
+msgid "%.0d weeks left: shot %s for %s in %s, due %s (%s)"
 msgstr ""
 
-msgid "Deactivating GNUmed user."
+#, python-format
+msgid "overdue %.0dyrs %.0dwks: shot %s for %s in schedule \"%s\" (%s)"
 msgstr ""
 
-msgid "Removing GNUmed user."
+#, python-format
+msgid "due now: booster for %s in schedule \"%s\" (%s)"
 msgstr ""
 
-msgid "Removing GNUmed user"
+#, python-format
+msgid "Synopsis (%s)"
 msgstr ""
 
-msgid "Modifying GNUmed user."
+msgid ""
+"Enter a short working name for this new problem\n"
+"(which will become a new, unassociated episode):\n"
 msgstr ""
 
-msgid "Failed to save changes to GNUmed database user."
+#, python-format
+msgid ""
+"Enter a short working name for this new\n"
+"episode under the existing health issue\n"
+"\n"
+"\"%s\":\n"
 msgstr ""
 
-msgid "Modifying GNUmed user"
+msgid "Creating problem (episode) to save notelet under ..."
 msgstr ""
 
-#, python-format
-msgid "Failed to set role [%s] for GNUmed database user."
+msgid "Cannot save a new problem without a name."
+msgstr ""
+
+msgid "saving progress note"
 msgstr ""
 
 #, python-format
 msgid ""
+"The new episode:\n"
 "\n"
-"  %s \"%s\" %s\n"
-"  born: %s"
+" \"%s\"\n"
+"\n"
+"will remain unassociated despite the editor\n"
+"having been invoked from the health issue:\n"
+"\n"
+" \"%s\""
 msgstr ""
 
-msgid ""
-"Password entries do not match. Please type in the passwords again to rule "
-"out typos."
+msgid "Adding substance abuse"
 msgstr ""
 
-msgid "Adding GNUmed user"
+msgid "Editing substance abuse"
 msgstr ""
 
-msgid ""
-"Are you positively sure you want to create\n"
-"a user with an empty password ?\n"
-"\n"
-"Think about the record access implications !"
+msgid "Substances abused by the patient:"
 msgstr ""
 
-msgid "Enlisting person as user."
+msgid "Showing abused substances."
 msgstr ""
 
-msgid "Encrypt"
+msgid "Intake"
 msgstr ""
 
-msgid "Decrypt"
+msgid "nicotine"
 msgstr ""
 
-msgid "Set pass phrase"
+msgid "unit"
 msgstr ""
 
-msgid "This is not correctly encrypted text!"
+#, python-format
+msgid "Latest: %s ago (%s %s%s%s%s)"
 msgstr ""
 
-msgid "Please enter your pass phrase:"
+#, python-format
+msgid "%s %s%s%s (%s ago, %s)"
 msgstr ""
 
-msgid "Pass phrase expired"
+#, python-format
+msgid "overdue %s: %s"
+msgstr ""
+
+#, python-format
+msgid "due in %s%s"
+msgstr ""
+
+msgid "suppr'd:"
+msgstr ""
+
+msgid "Suppressed hints:\n"
 msgstr ""
 
 msgid ""
-"\n"
-"Conditions preventable by vaccination as currently known to GNUmed.\n"
+"Do you really want to\n"
+"delete this inbox message ?"
 msgstr ""
 
-msgid "Showing vaccination preventable conditions."
+msgid "Deleting inbox message"
 msgstr ""
 
-msgid "ATCs: single-condition vaccines"
+msgid "Export area: 1 item"
 msgstr ""
 
-msgid "ATCs: multi-condition vaccines"
+#, python-format
+msgid "Export area: %s items"
 msgstr ""
 
-msgid "Pick the relevant indications."
+#, python-format
+msgid "%s %s more not shown %s"
 msgstr ""
 
-msgid "Known indications"
+#, python-format
+msgid "Currently %s entries in waiting list"
 msgstr ""
 
-msgid "Adding new vaccine"
+#, python-format
+msgid "first (in GMd): %s, %s"
 msgstr ""
 
-msgid "Editing vaccine"
+#, python-format
+msgid "last: %s, %s"
 msgstr ""
 
 #, python-format
-msgid ""
-"Cannot delete vaccine\n"
-"\n"
-" %s - %s (#%s)\n"
-"\n"
-"It is probably documented in a vaccination."
+msgid "Last %s:"
 msgstr ""
 
-msgid "Deleting vaccine"
+msgid "Statistics cover period"
 msgstr ""
 
-msgid "fake"
+#, python-format
+msgid "EDC (!?!): %s"
 msgstr ""
 
 msgid ""
+"The Expected Date of Confinement is rather questionable.\n"
 "\n"
-"The vaccines currently known to GNUmed.\n"
+"Please check patient age, patient gender, time until/since EDC."
 msgstr ""
 
-msgid "Showing vaccines."
+#, python-format
+msgid "%s Vacc: %s (latest of %s)"
 msgstr ""
 
-msgid "Enter or select the batch/lot number of the vaccine used."
+#, python-format
+msgid "Hx of addiction: %s"
 msgstr ""
 
-msgid "Saving vaccine"
+msgid "active substance abuse"
 msgstr ""
 
 #, python-format
-msgid ""
-"This vaccine is already in use:\n"
-"\n"
-" \"%s\"\n"
-" (%s)\n"
-"\n"
-"Are you absolutely positively sure that\n"
-"you really want to edit this vaccine ?\n"
-"\n"
-"This will change the vaccine name and/or target\n"
-"conditions in each patient this vaccine was\n"
-"used in to document a vaccination with.\n"
+msgid "%s %s %s%s"
 msgstr ""
 
-msgid "You must select at least one indication."
+#, python-format
+msgid "%s %s%s"
 msgstr ""
 
-msgid "Pick the diseases this vaccine protects against."
+#, python-format
+msgid "** Currently hospitalized: %s **"
 msgstr ""
 
-msgid "This vaccine"
+#, python-format
+msgid "emergency: %s"
 msgstr ""
 
-msgid "Adding new vaccinations"
+#, python-format
+msgid "in-praxis: %s"
 msgstr ""
 
-msgid "Editing vaccination"
+#, fuzzy, python-format
+msgid "care: %s%s@%s"
+msgstr "епизод     : %s"
+
+msgid "*** CONFIDENTIAL ***"
 msgstr ""
 
-msgid "vaccination recall"
+msgid " (confidential !)"
 msgstr ""
 
 #, python-format
-msgid "vaccination recall (%s)"
+msgid "extrnl: %s (%s@%s)"
 msgstr ""
 
 #, python-format
-msgid ""
-"Existing vaccination:\n"
-"\n"
-"%s"
+msgid "aka: %(last)s, %(first)s%(nick)s"
 msgstr ""
 
-msgid ""
-"\n"
-"Complete vaccination history for this patient.\n"
+#, python-format
+msgid "job: %s (%s)"
 msgstr ""
 
-msgid "Showing vaccinations."
+#, python-format
+msgid "issued by: %s%s"
 msgstr ""
 
-msgid "Intended to protect from"
+#, python-format
+msgid "Last modified: %s"
 msgstr ""
 
-msgid "Print vaccinations or recalls."
+#, python-format
+msgid ""
+"Activities:\n"
+"\n"
+"%s"
 msgstr ""
 
-msgid "Recall"
+msgid "Cloning name"
 msgstr ""
 
-msgid "Add a recall for a vaccination"
+msgid "Editing external ID"
 msgstr ""
 
-msgid "Vx schedules"
+msgid "Adding new translation"
 msgstr ""
 
-msgid "Open a browser showing vaccination schedules."
+msgid "Editing translation"
 msgstr ""
 
-msgid "prevention"
+msgid "Selecting language for translation"
 msgstr ""
 
-msgid "Saving vaccination"
+msgid ""
+"Please select the language the translations for which you want to work on."
 msgstr ""
 
-msgid "Pick the diseases this vaccination was given against."
+#, python-format
+msgid ""
+"Are you sure you want to delete the translation of:\n"
+"\n"
+"%s\n"
+"\n"
+"into [%s] as:\n"
+"\n"
+"%s\n"
+"\n"
+"?  (Note that you must know the database administrator password !)\n"
 msgstr ""
 
-msgid "  IMMUNISATIONS  "
+msgid "Deleting translation from database"
 msgstr ""
 
-msgid "Indications"
+msgid "deleting a translation"
 msgstr ""
 
-msgid "Active Schedules"
+msgid "Contributing translations"
 msgstr ""
 
-msgid "Missing Immunisations"
+msgid "Do you want to contribute your translations to the GNUmed project ?"
 msgstr ""
 
-msgid "  Alerts  "
+msgid ""
+"Unable to send mail. Cannot contribute translations to GNUmed community."
 msgstr ""
 
-msgid "ERROR: cannot retrieve active vaccination schedules"
+msgid "Thank you for your contribution to the GNUmed community!"
 msgstr ""
 
-msgid "no active vaccination schedules"
+msgid "Showing translatable database strings for all languages."
 msgstr ""
 
 #, python-format
-msgid "%s for %s (%s shots): %s"
+msgid "Showing translatable database strings for target language [%s]."
 msgstr ""
 
-msgid "ERROR: cannot retrieve due/overdue vaccinations"
+msgid "Contribute translations to GNUmed community by email."
 msgstr ""
 
-#, python-format
-msgid "%.0d weeks left: shot %s for %s in %s, due %s (%s)"
-msgstr ""
-
-#, python-format
-msgid "overdue %.0dyrs %.0dwks: shot %s for %s in schedule \"%s\" (%s)"
+msgid ""
+"Before creating a new person review the encounter details\n"
+"of the patient you just worked on:\n"
 msgstr ""
 
-#, python-format
-msgid "due now: booster for %s in schedule \"%s\" (%s)"
+msgid "Edit the current encounter of the patient you are ABOUT TO LEAVE:"
 msgstr ""
 
-#, python-format
-msgid "Latest: %s ago (%s %s %s %s%s)"
+msgid "Adding new person"
 msgstr ""
 
-#, python-format
-msgid "%s %s %s %s (%s ago, %s)"
+msgid "ID exists !"
 msgstr ""
 
 #, python-format
-msgid "overdue %s: %s"
+msgid "One \"%s, %s (%s)\" already exists !"
 msgstr ""
 
 #, python-format
-msgid "due in %s%s"
-msgstr ""
-
-msgid ""
-"Do you really want to\n"
-"delete this inbox message ?"
-msgstr ""
-
-msgid "Deleting inbox message"
-msgstr ""
-
-msgid "Export area: 1 item"
+msgid "%s \"%s, %s (%s)\" already exist !"
 msgstr ""
 
-#, python-format
-msgid "Export area: %s items"
+msgid "Must enter lastname."
 msgstr ""
 
-#, python-format
-msgid "%s %s more not shown %s"
+msgid "Must enter first name."
 msgstr ""
 
-#, python-format
-msgid "Currently %s entries in waiting list"
+msgid "Must select gender."
 msgstr ""
 
-#, python-format
-msgid "first (in GMd): %s, %s"
+msgid ""
+"To properly create an address, all the related fields must be filled in."
 msgstr ""
 
-#, python-format
-msgid "last: %s, %s"
+msgid "Required fields"
 msgstr ""
 
-#, python-format
-msgid "Last %s:"
+msgid "This field must contain an item selected from the dropdown list."
 msgstr ""
 
-msgid "Statistics cover period"
+msgid "Saving address"
 msgstr ""
 
-#, python-format
-msgid "EDC (!?!): %s"
+msgid ""
+"Cannot save this address.\n"
+"\n"
+"You will have to add it via the Demographics plugin.\n"
 msgstr ""
 
 msgid ""
-"The Expected Date of Confinement is rather questionable.\n"
+"Address not saved.\n"
 "\n"
-"Please check patient age, patient gender, time until/since EDC."
+"You will have to add it via the Demographics plugin.\n"
 msgstr ""
 
-#, python-format
-msgid "%s Vacc: %s"
+msgid "You need to actually set an editor."
 msgstr ""
 
 #, python-format
-msgid "%s %s %s%s"
+msgid "The command [%s] is not found."
 msgstr ""
 
 #, python-format
-msgid "%s %s%s"
+msgid ""
+"Enter the shell command with which to start\n"
+"the image editor for visual progress notes.\n"
+"\n"
+"Any \"%(img)s\" included with the arguments\n"
+"will be replaced by the file name of the\n"
+"note template."
 msgstr ""
 
-#, python-format
-msgid "** Currently hospitalized: %s **"
+msgid "Choose file to use as template for new visual progress note"
 msgstr ""
 
-#, python-format
-msgid "emergency: %s"
+msgid "Visual progress note source"
 msgstr ""
 
-#, python-format
-msgid "in-praxis: %s"
+msgid "From which source do you want to pick the image template ?"
 msgstr ""
 
-#, fuzzy, python-format
-msgid "care: %s%s@%s"
-msgstr "епизод     : %s"
+msgid "Database"
+msgstr ""
 
-msgid "*** CONFIDENTIAL ***"
+msgid "List of templates in the database."
 msgstr ""
 
-msgid " (confidential !)"
+msgid "Files in the filesystem."
 msgstr ""
 
-#, python-format
-msgid "extrnl: %s (%s@%s)"
+msgid "Device"
 msgstr ""
 
-#, python-format
-msgid "aka: %(last)s, %(first)s%(nick)s"
+msgid "Image capture devices (scanners, cameras, etc)"
 msgstr ""
 
 #, python-format
-msgid "job: %s (%s)"
+msgid "Cannot export visual progress note template for [%s]."
 msgstr ""
 
-#, python-format
-msgid "issued by: %s%s"
+msgid "Cannot export visual progress note to file."
 msgstr ""
 
-#, python-format
-msgid "Last modified: %s"
+msgid "Editor for visual progress note not configured."
 msgstr ""
 
 #, python-format
 msgid ""
-"Activities:\n"
+"There was a problem with running the editor\n"
+"for visual progress notes.\n"
+"\n"
+" [%s]\n"
 "\n"
-"%s"
-msgstr ""
-
-msgid "Cloning name"
-msgstr ""
-
-msgid "Editing external ID"
-msgstr ""
-
-msgid "Adding new translation"
-msgstr ""
-
-msgid "Editing translation"
-msgstr ""
-
-msgid "Selecting language for translation"
 msgstr ""
 
-msgid ""
-"Please select the language the translations for which you want to work on."
+msgid "Editing visual progress note"
 msgstr ""
 
 #, python-format
 msgid ""
-"Are you sure you want to delete the translation of:\n"
-"\n"
-"%s\n"
-"\n"
-"into [%s] as:\n"
+"There was a problem reading the visual\n"
+"progress note from the file:\n"
 "\n"
-"%s\n"
+" [%s]\n"
 "\n"
-"?  (Note that you must know the database administrator password !)\n"
-msgstr ""
-
-msgid "Deleting translation from database"
-msgstr ""
-
-msgid "deleting a translation"
-msgstr ""
-
-msgid "Contributing translations"
-msgstr ""
-
-msgid "Do you want to contribute your translations to the GNUmed project ?"
-msgstr ""
-
-msgid ""
-"Unable to send mail. Cannot contribute translations to GNUmed community."
-msgstr ""
-
-msgid "Thank you for your contribution to the GNUmed community!"
-msgstr ""
-
-msgid "Showing translatable database strings for all languages."
-msgstr ""
-
-#, python-format
-msgid "Showing translatable database strings for target language [%s]."
 msgstr ""
 
-msgid "Contribute translations to GNUmed community by email."
+msgid "Saving visual progress note"
 msgstr ""
 
 msgid ""
-"Before creating a new person review the encounter details\n"
-"of the patient you just worked on:\n"
-msgstr ""
-
-msgid "Edit the current encounter of the patient you are ABOUT TO LEAVE:"
-msgstr ""
-
-msgid "Adding new person"
-msgstr ""
-
-msgid "ID exists !"
+"You either created a visual progress note from a template\n"
+"in the database (rather than from a file on disk) or you\n"
+"edited an existing visual progress note.\n"
+"\n"
+"The template/original was not modified at all, however.\n"
+"\n"
+"Do you still want to save the unmodified image as a\n"
+"visual progress note into the EMR of the patient ?\n"
 msgstr ""
 
-#, python-format
-msgid "One \"%s, %s (%s)\" already exists !"
+msgid "visual progress notes"
 msgstr ""
 
 #, python-format
-msgid "%s \"%s, %s (%s)\" already exist !"
-msgstr ""
-
-msgid "Must enter lastname."
-msgstr ""
-
-msgid "Must enter first name."
-msgstr ""
-
-msgid "Must select gender."
-msgstr ""
-
-msgid ""
-"To properly create an address, all the related fields must be filled in."
-msgstr ""
-
-msgid "Required fields"
-msgstr ""
-
-msgid "This field must contain an item selected from the dropdown list."
-msgstr ""
-
-msgid "Saving address"
-msgstr ""
-
-msgid ""
-"Cannot save this address.\n"
-"\n"
-"You will have to add it via the Demographics plugin.\n"
+msgid " [part 1 of %s]"
 msgstr ""
 
-msgid ""
-"Address not saved.\n"
-"\n"
-"You will have to add it via the Demographics plugin.\n"
-msgstr ""
+#, fuzzy, python-format
+msgid "Created: %s%s"
+msgstr "епизод     : %s"
 
 msgid "You must select a value from the picklist or type an exact match."
 msgstr ""
@@ -9492,7 +9884,8 @@ msgstr ""
 
 #, python-format
 msgid ""
-"%(street)s %(number)s, %(postcode)s %(urb)s, %(l10n_state)s, %(l10n_country)s"
+"%(street)s %(number)s, %(postcode)s %(urb)s, %(l10n_region)s, "
+"%(l10n_country)s"
 msgstr ""
 
 #, python-format
@@ -10079,7 +10472,7 @@ msgstr ""
 msgid ""
 "Cannot save address.\n"
 "\n"
-"Does the state [%s]\n"
+"Does the region [%s]\n"
 "exist in country [%s] ?"
 msgstr ""
 
@@ -10502,7 +10895,7 @@ msgstr ""
 msgid "Reminders for the current patient"
 msgstr ""
 
-msgid "Sent"
+msgid "Generated"
 msgstr ""
 
 msgid "Category - Type"
@@ -10550,9 +10943,6 @@ msgid ""
 "Data: %s"
 msgstr ""
 
-msgid "Inbox Message Actions:"
-msgstr ""
-
 msgid "Activate patient"
 msgstr ""
 
@@ -11240,7 +11630,7 @@ msgid ""
 msgstr ""
 
 #, python-format
-msgid "Select branch (of praxis [%s]) which you are logging in from.\n"
+msgid "Select the branch of praxis [%s] which you are logging in from.\n"
 msgstr ""
 
 msgid "Praxis branch selection ..."
@@ -11547,6 +11937,12 @@ msgstr ""
 msgid "List of addresses related to this person."
 msgstr ""
 
+msgid "Map"
+msgstr ""
+
+msgid "Show selected address on map"
+msgstr ""
+
 msgid "Adding new address"
 msgstr ""
 
@@ -11727,23 +12123,100 @@ msgstr ""
 msgid "generic multi choice dialog"
 msgstr ""
 
-msgid "Search in list"
+msgid "Deleting list items"
 msgstr ""
 
-msgid "Monty the Serpent && the FSF Present"
+#, python-format
+msgid ""
+"You have selected %s list items.\n"
+"\n"
+"Really delete all %s items ?"
 msgstr ""
 
-msgid "Free eMedicine"
+msgid ""
+"Select the items you want to work on.\n"
+"\n"
+"A discontinuous selection may depend on your holding down a platform-"
+"dependent modifier key (<CTRL>, <ALT>, etc) or key combination (eg. <CTRL-"
+"SHIFT> or <CTRL-ALT>) while clicking."
+msgstr ""
+
+msgid "List Item Actions:"
+msgstr ""
+
+msgid "Add (<INS>)"
+msgstr ""
+
+msgid "Delete (<DEL>)"
+msgstr ""
+
+msgid "Find (<CTRL-F>)"
 msgstr ""
 
 #, python-format
-msgid "Version %s%s brought to you by"
+msgid "Find next [%s] (<CTRL-N>)"
 msgstr ""
 
-msgid "debug"
+msgid "Row tooltip"
 msgstr ""
 
-msgid "Please visit http://www.gnumed.org"
+msgid "Row data (formatted as text)"
+msgstr ""
+
+msgid "Row content (as one line)"
+msgstr ""
+
+msgid "Row content (one line per column)"
+msgstr ""
+
+#, python-format
+msgid "Column &%s: \"%s\" [#%s]"
+msgstr ""
+
+#, python-format
+msgid "Column &%s: %s"
+msgstr ""
+
+msgid "&Copy to clipboard..."
+msgstr ""
+
+msgid "Append (&+) to clipboard..."
+msgstr ""
+
+#, python-format
+msgid ""
+"%s list items are selected.\n"
+"\n"
+"Really delete all %s items ?"
+msgstr ""
+
+msgid "Enter the search term:"
+msgstr ""
+
+msgid "List search"
+msgstr ""
+
+#, python-format
+msgid ""
+"Current search term: [[%s]]\n"
+"\n"
+"%s"
+msgstr ""
+
+msgid "Monty the Serpent && the FSF Present"
+msgstr ""
+
+msgid "Free eMedicine"
+msgstr ""
+
+#, python-format
+msgid "Version %s%s brought to you by"
+msgstr ""
+
+msgid "debug"
+msgstr ""
+
+msgid "Please visit http://www.gnumed.org"
 msgstr ""
 
 #, python-format
@@ -11877,6 +12350,9 @@ msgstr ""
 msgid "Unknown: ?"
 msgstr ""
 
+msgid "The text has been copied into the clipboard."
+msgstr ""
+
 msgid "file2clipboard"
 msgstr ""
 
@@ -11884,6 +12360,40 @@ msgstr ""
 msgid "The file [%s] has been copied into the clipboard."
 msgstr ""
 
+msgid "programmer forgot to specify error message"
+msgstr ""
+
+msgid ""
+"\n"
+"\n"
+"Please consult the error log for all the gory details !"
+msgstr ""
+
+msgid "generic error message"
+msgstr ""
+
+msgid "programmer forgot to specify info message"
+msgstr ""
+
+msgid "generic info message"
+msgstr ""
+
+msgid "programmer forgot to specify warning"
+msgstr ""
+
+msgid "generic warning message"
+msgstr ""
+
+msgid "Editing EDC"
+msgstr ""
+
+#, python-format
+msgid ""
+"Really delete the EDC documented previously ?\n"
+"\n"
+" EDC: %s"
+msgstr ""
+
 #, python-format
 msgid ""
 "Algorithm: %s\n"
@@ -11991,15 +12501,15 @@ msgstr ""
 msgid "Firstname"
 msgstr ""
 
-msgid "Nickname"
-msgstr ""
-
 msgid "DOB"
 msgstr ""
 
 msgid "last visit"
 msgstr ""
 
+msgid "Nickname / Comment"
+msgstr ""
+
 msgid "found via"
 msgstr ""
 
@@ -12177,734 +12687,491 @@ msgstr ""
 msgid "In case of emergency contact:"
 msgstr ""
 
+msgid "The preparation (form) of the substance or brand."
+msgstr ""
+
+msgid "A substance with optional strength or a brand."
+msgstr ""
+
+msgid "The medical aim for consuming this substance."
+msgstr ""
+
+msgid "not tolerated:"
+msgstr ""
+
+msgid "discontinued due to allergy or intolerance"
+msgstr ""
+
+msgid "Documented an allergy"
+msgstr ""
+
+#, python-format
 msgid ""
+"An allergy was documented against the substance:\n"
 "\n"
-"Please select the default drug data source from the list below.\n"
+"  [%s]\n"
 "\n"
-"Note that to actually use it you need to have the database installed, too."
+"This substance was taken with the multi-component brand:\n"
+"\n"
+"  [%s (%s)]\n"
+"\n"
+"Note that ALL components of this brand were discontinued."
 msgstr ""
 
-msgid "Drug data source"
+msgid "disapproved"
 msgstr ""
 
-msgid "Configuring default drug data source"
+msgid "Substances consumed by the patient:"
 msgstr ""
 
-msgid "No default drug database configured."
+msgid "Showing consumable substances."
 msgstr ""
 
-msgid "There is no default drug database configured."
+msgid "Application"
 msgstr ""
 
-msgid "Jumping to drug database"
+msgid "never"
 msgstr ""
 
 #, python-format
-msgid "Cannot call IFAP via [%s]."
+msgid "%s, last confirmed %s\n"
 msgstr ""
 
 #, python-format
-msgid "Cannot create IFAP <-> GNUmed transfer file [%s]."
+msgid "Comment (%s): %%s\n"
 msgstr ""
 
-msgid "Current medication"
+msgid "reaction not recorded"
 msgstr ""
 
-msgid ""
-"\n"
-"The ATC codes as known to GNUmed.\n"
+msgid "GFR: unknown"
 msgstr ""
 
-msgid "Showing ATC codes."
+msgid "GFR reported by path lab"
 msgstr ""
 
-msgid "Choose an ATC import config file"
+msgid "<no components>"
 msgstr ""
 
-msgid "config files"
+msgid "Adding substance intake entry"
 msgstr ""
 
-msgid "importing ATC reference data"
+#, python-format
+msgid ""
+"The patient is already taking\n"
+"\n"
+" %s\n"
+"\n"
+"You will want to adjust the schedule\n"
+"rather than document the intake twice."
 msgstr ""
 
-msgid "Successfully imported ATC reference data."
+msgid "Input incomplete/invalid for saving as substance intake."
 msgstr ""
 
-msgid "Importing ATC reference data failed."
+#, python-format
+msgid "Discontinued (%s) in the future (now: %s)!"
 msgstr ""
 
-msgid "Select an ATC (Anatomical-Therapeutic-Chemical) code."
+#, python-format
+msgid "Discontinued (%s) before started (%s) !"
 msgstr ""
 
-msgid "Cannot delete this substance. It is in use."
+msgid "Cannot add duplicate of (maybe inactive) substance intake."
 msgstr ""
 
+#, python-format
 msgid ""
 "\n"
-"These are the consumable substances registered with GNUmed.\n"
+"[%s]\n"
+"\n"
+"It may be prudent to edit (before deletion) the details\n"
+"of this substance intake entry so as to leave behind\n"
+"some indication of why it was deleted.\n"
 msgstr ""
 
-msgid "Showing consumable substances."
+msgid "Deleting medication / substance intake"
 msgstr ""
 
-msgid "Import"
+msgid "Allow editing of substance intake entry before deletion."
 msgstr ""
 
-msgid "Import consumable substances from a drug database."
+msgid "Delete immediately without editing first."
 msgstr ""
 
-msgid "Cannot edit this substance. It is in use."
+msgid "&Cancel"
 msgstr ""
 
-msgid "Adding new consumable substance"
+msgid "Abort. Do not delete or edit substance intake entry."
 msgstr ""
 
-msgid "Editing consumable substance"
+msgid "Now delete substance intake entry ?"
 msgstr ""
 
-msgid "Cannot save consumable substance. Missing essential input."
+msgid "Adding medication/non-medication substance intake"
 msgstr ""
 
-#, python-format
-msgid "Cannot save consumable substance. %s"
+msgid "Editing medication/non-medication substance intake"
 msgstr ""
 
-msgid "Cannot remove this component from the drug. It is in use."
+msgid "Document an allergy against this substance."
 msgstr ""
 
-msgid ""
-"\n"
-"These are the components in the drug brands known to GNUmed.\n"
+msgid "No medication list template configured."
 msgstr ""
 
-msgid "Showing drug brand components."
+msgid "There is no medication list template configured."
 msgstr ""
 
-msgid "Adding new drug component"
+msgid "Problem loading medication list template."
 msgstr ""
 
-msgid "Editing drug component"
+#, python-format
+msgid "Cannot load medication list template [%s - %s]"
 msgstr ""
 
-msgid "Cannot edit drug component. It is in use."
+msgid "generated medication list document"
 msgstr ""
 
-msgid "Cannot save drug component. Invalid or missing essential input."
+msgid "Select the default prescription template:"
 msgstr ""
 
-msgid "A drug component with optional strength."
+msgid "No prescription template configured."
 msgstr ""
 
-msgid "The preparation (form) of the substance or brand."
+msgid "There is no prescription template configured."
 msgstr ""
 
-msgid "The substance with optional strength."
+msgid "Printing prescription"
 msgstr ""
 
-msgid "Managing components of a drug"
+msgid "Problem loading prescription template."
 msgstr ""
 
 #, python-format
-msgid ""
-"Cannot manage the components of the branded drug product\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is currently taken by patients.\n"
-msgstr ""
-
-msgid "Pick the substances which are components of this drug."
+msgid "Cannot load prescription template [%s - %s]"
 msgstr ""
 
-msgid "Components of drug"
+msgid "generated prescription"
 msgstr ""
 
-#, python-format
 msgid ""
-"Adjust the components of \"%s\"\n"
+"These brands have been prescribed but are not listed\n"
+"in the current medication list of this patient.\n"
 "\n"
-"The drug must contain at least one component. Any given\n"
-"substance can only be included once per drug."
+"Please select those you want added to the medication list."
 msgstr ""
 
-msgid "Managing components of a drug ..."
+msgid "Newly prescribed drugs"
 msgstr ""
 
-msgid "not in use"
+msgid "Add to medication list"
+msgstr ""
+
+msgid "Timeframe"
 msgstr ""
 
 #, python-format
-msgid "ATC: %s\n"
+msgid "%s <fake>"
 msgstr ""
 
-msgid "Editing medication"
+msgid "Cannot edit more than one substance at once."
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot edit the medication\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is a vaccine. Please edit it\n"
-"from the vaccine management section !\n"
+msgid "Cannot delete more than one substance at once."
 msgstr ""
 
-msgid "Deleting medication"
+msgid "Cannot create allergy from more than one substance at once."
 msgstr ""
 
-#, python-format
 msgid ""
-"Cannot delete the medication\n"
 "\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is a vaccine. Please delete it\n"
-"from the vaccine management section !\n"
+"Select the measurements panel to show in the medications plugin.\n"
 msgstr ""
 
-msgid ""
-"\n"
-"These are the drug brands known to GNUmed.\n"
+msgid "Measurements panel"
 msgstr ""
 
-msgid "Showing branded drugs."
+msgid "Configuring medications plugin measurements panel"
 msgstr ""
 
-msgid "Import substances and brands from a drug database."
+msgid "EDC (!?!):"
 msgstr ""
 
-msgid "Editing drug"
+msgid "EDC:"
 msgstr ""
 
 #, python-format
-msgid ""
-"Cannot edit the branded drug product\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is currently taken by patients.\n"
-msgstr ""
-
-msgid "Adding new drug brand"
+msgid "%.1f (%s ago)"
 msgstr ""
 
-msgid "Editing drug brand"
+msgid "eGFR:"
 msgstr ""
 
-msgid "Manage consumable substances"
+#, python-format
+msgid "eGFR: %.1f (%s)"
 msgstr ""
 
-msgid "Cannot edit drug brand. It is in use."
+msgid "Enter vaccination given"
 msgstr ""
 
-msgid "Checking brand data"
+msgid "Unsaved progress note"
 msgstr ""
 
-#, python-format
 msgid ""
-"The brand information you entered:\n"
+"This progress note has not been saved yet.\n"
 "\n"
-" [%s %s]\n"
+"Do you want to save it or discard it ?\n"
 "\n"
-"already exists as a drug product."
 msgstr ""
 
-msgid ""
-"You have not selected any substances\n"
-"as drug components.\n"
-"\n"
-"Without components you will not be able to\n"
-"use this drug for documenting patient care.\n"
-"\n"
-"Are you sure you want to save\n"
-"it without components ?"
+msgid "Save this progress note"
 msgstr ""
 
-msgid "Cannot save branded drug. Invalid or missing essential input."
+msgid "Discard this progress note"
 msgstr ""
 
-msgid ""
-"The brand name of the drug.\n"
-"\n"
-"Note: a brand name will need to be linked to\n"
-"one or more components before it can be used,\n"
-"except in the case of fake (generic) vaccines."
+msgid "Save all remaining unsaved progress notes"
 msgstr ""
 
-msgid "The medical aim for consuming this substance."
+msgid ""
+"Add editor for a new unassociated progress note.\n"
+"\n"
+"There is a configuration option whether or not to\n"
+"allow several new unassociated progress notes at once."
 msgstr ""
 
-msgid "not tolerated:"
+msgid "Save progress note into medical record and close this editor."
 msgstr ""
 
-msgid "discontinued due to allergy or intolerance"
+msgid "Clear this progress note editor."
 msgstr ""
 
-msgid "Documented an allergy"
+msgid ""
+"Discard progress note and close this editor. You will loose any data already "
+"typed into this editor !"
 msgstr ""
 
-#, python-format
-msgid ""
-"An allergy was documented against the substance:\n"
-"\n"
-"  [%s]\n"
-"\n"
-"This substance was taken with the multi-component brand:\n"
-"\n"
-"  [%s (%s)]\n"
-"\n"
-"Note that ALL components of this brand were discontinued."
+msgid "Problem saving progress note: duplicate information ?"
 msgstr ""
 
-msgid "disapproved"
+msgid "label missing"
 msgstr ""
 
-msgid "Substances consumed by the patient:"
+msgid "soap cat missing"
 msgstr ""
 
-msgid "Intake"
+msgid "Enter a descriptive name for this new problem:"
 msgstr ""
 
-msgid "Application"
+msgid "Creating a problem (episode) to save the notelet under ..."
 msgstr ""
 
-msgid "never"
+msgid "Error saving progress note."
 msgstr ""
 
-#, python-format
-msgid "%s, last confirmed %s\n"
+msgid "Error saving embedded data."
 msgstr ""
 
-#, python-format
-msgid "Comment (%s): %%s\n"
+msgid "Visit Purpose"
 msgstr ""
 
-msgid "reaction not recorded"
+msgid "History Taken"
 msgstr ""
 
-msgid "GFR: unknown"
+msgid "Findings"
 msgstr ""
 
-msgid "GFR reported by path lab"
+msgid "save"
 msgstr ""
 
-#, python-format
-msgid ""
-"The patient is already taking\n"
-"\n"
-" %s\n"
-"\n"
-"You will want to adjust the schedule\n"
-"rather than document the intake twice."
+msgid "save clinical note in EMR"
 msgstr ""
 
-msgid "Adding substance intake entry"
+msgid "discard"
 msgstr ""
 
-msgid "Input incomplete/invalid for saving as substance intake."
+msgid "discard clinical note"
 msgstr ""
 
-#, python-format
-msgid "Discontinued (%s) in the future (now: %s)!"
+msgid "clinical progress note"
 msgstr ""
 
-#, python-format
-msgid "Discontinued (%s) before started (%s) !"
+msgid "Select files to add to the export area"
 msgstr ""
 
-msgid "Cannot add duplicate of (maybe inactive) substance intake."
+msgid "Adding files to export area"
 msgstr ""
 
 #, python-format
 msgid ""
-"\n"
-"[%s]\n"
-"\n"
-"It may be prudent to edit (before deletion) the details\n"
-"of this substance intake entry so as to leave behind\n"
-"some indication of why it was deleted.\n"
-msgstr ""
-
-msgid "Deleting medication / substance intake"
-msgstr ""
-
-msgid "Allow editing of substance intake entry before deletion."
+"Cannot add (some of) the following files to the export area:\n"
+"%s "
 msgstr ""
 
-msgid "Delete immediately without editing first."
+msgid "Select the documents to be put into the export area:"
 msgstr ""
 
-msgid "&Cancel"
+msgid "clipboard"
 msgstr ""
 
-msgid "Abort. Do not delete or edit substance intake entry."
+msgid "Loading clipboard item (saved to file) into export area"
 msgstr ""
 
-msgid "Now delete substance intake entry ?"
+#, python-format
+msgid ""
+"Cannot add the following clip to the export area:\n"
+"%s "
 msgstr ""
 
-msgid "Adding medication/non-medication substance intake"
+msgid "scan"
 msgstr ""
 
-msgid "Editing medication/non-medication substance intake"
+msgid "Scanning files into export area"
 msgstr ""
 
-msgid "Document an allergy against this substance."
+#, python-format
+msgid ""
+"Cannot add (some of) the following scans to the export area:\n"
+"%s "
 msgstr ""
 
-msgid "No medication list template configured."
+msgid "Deleting document from export area."
 msgstr ""
 
-msgid "There is no medication list template configured."
+#, python-format
+msgid ""
+"Really remove %s selected document(s)\n"
+"from the patient export area ?"
 msgstr ""
 
-msgid "Problem loading medication list template."
+msgid "Error printing documents."
 msgstr ""
 
 #, python-format
-msgid "Cannot load medication list template [%s - %s]"
-msgstr ""
-
-msgid "generated medication list document"
+msgid "Printing [%s]"
 msgstr ""
 
-msgid "Select the default prescription template:"
+#, python-format
+msgid ""
+"Printed:\n"
+" - %s"
 msgstr ""
 
-msgid "No prescription template configured."
+msgid "Select the directory into which to export the documents."
 msgstr ""
 
-msgid "There is no prescription template configured."
-msgstr ""
+#, fuzzy
+msgid "Saving export area documents"
+msgstr " %s документи\n"
 
-msgid "Printing prescription"
+#, python-format
+msgid ""
+"The chosen export directory\n"
+"\n"
+" [%s]\n"
+"\n"
+"already contains files. Do you still want to save the\n"
+"selected export area documents into that directory ?\n"
+"\n"
+"(this is useful for including the external documents\n"
+" already stored in or below this directory)\n"
+"\n"
+"[NO] will create a subdirectory for you and use that."
 msgstr ""
 
-msgid "Problem loading prescription template."
+msgid ""
+"Create descriptive metadata files\n"
+"and save them alongside the\n"
+"selected export area documents ?"
 msgstr ""
 
 #, python-format
-msgid "Cannot load prescription template [%s - %s]"
-msgstr ""
-
-msgid "generated prescription"
+msgid ""
+"Saved to [%s]:\n"
+" - %s"
 msgstr ""
 
+#, python-format
 msgid ""
-"These brands have been prescribed but are not listed\n"
-"in the current medication list of this patient.\n"
+"Saved documents into directory:\n"
 "\n"
-"Please select those you want added to the medication list."
+" %s"
 msgstr ""
 
-msgid "Newly prescribed drugs"
+msgid "If you wish to include an existing directory select it here:"
 msgstr ""
 
-msgid "Add to medication list"
+msgid "Error burning documents to CD/DVD."
 msgstr ""
 
-msgid "Duration / Until"
-msgstr ""
+#, fuzzy
+msgid "Burning documents"
+msgstr " %s документи\n"
 
 #, python-format
-msgid "%s <fake>"
+msgid ""
+"Burned onto CD/DVD:\n"
+" - %s"
 msgstr ""
 
-msgid "Cannot edit more than one substance at once."
+msgid "Error mailing documents."
 msgstr ""
 
-msgid "Cannot delete more than one substance at once."
-msgstr ""
+#, fuzzy
+msgid "Mailing documents"
+msgstr " %s документи\n"
 
-msgid "Cannot create allergy from more than one substance at once."
+#, python-format
+msgid ""
+"Mailed:\n"
+" - %s"
 msgstr ""
 
 msgid ""
+"Please enter the fax number here !\n"
 "\n"
-"Select the measurements panel to show in the medications plugin.\n"
+"It can be left empty if the external\n"
+"fax software knows how to get the number."
 msgstr ""
 
-msgid "Measurements panel"
+#, fuzzy
+msgid "Faxing documents"
+msgstr " %s документи\n"
+
+#, python-format
+msgid ""
+"Error faxing documents to\n"
+"\n"
+"  %s"
 msgstr ""
 
-msgid "Configuring medications plugin measurements panel"
+#, python-format
+msgid ""
+"Faxed to [%s]:\n"
+" - %s"
 msgstr ""
 
-msgid "EDC (!?!):"
+msgid "<gm-mail_doc(.bat) not found>"
 msgstr ""
 
-msgid "EDC:"
+msgid "<gm-fax_doc(.bat) not found>"
 msgstr ""
 
-#, python-format
-msgid "%.1f (%s ago)"
+msgid "<gm-burn_doc(.bat) not found>"
 msgstr ""
 
-msgid "eGFR:"
+msgid "Cannot accept new documents. No active patient."
 msgstr ""
 
 #, python-format
-msgid "%s%s%s (%s ago)"
+msgid "Extracting files from folder [%s] ..."
 msgstr ""
 
-#, python-format
-msgid "eGFR: %.1f (%s)"
+msgid "Drag&Drop"
 msgstr ""
 
-msgid "Enter vaccination given"
-msgstr ""
-
-msgid "Unsaved progress note"
-msgstr ""
-
-msgid ""
-"This progress note has not been saved yet.\n"
-"\n"
-"Do you want to save it or discard it ?\n"
-"\n"
-msgstr ""
-
-msgid "Save this progress note"
-msgstr ""
-
-msgid "Discard this progress note"
-msgstr ""
-
-msgid "Save all remaining unsaved progress notes"
-msgstr ""
-
-msgid ""
-"Add editor for a new unassociated progress note.\n"
-"\n"
-"There is a configuration option whether or not to\n"
-"allow several new unassociated progress notes at once."
-msgstr ""
-
-msgid "Save progress note into medical record and close this editor."
-msgstr ""
-
-msgid "Clear this progress note editor."
-msgstr ""
-
-msgid ""
-"Discard progress note and close this editor. You will loose any data already "
-"typed into this editor !"
-msgstr ""
-
-msgid "Problem saving progress note: duplicate information ?"
-msgstr ""
-
-msgid "label missing"
-msgstr ""
-
-msgid "soap cat missing"
-msgstr ""
-
-msgid "Enter a descriptive name for this new problem:"
-msgstr ""
-
-msgid "Creating a problem (episode) to save the notelet under ..."
-msgstr ""
-
-msgid "Error saving progress note."
-msgstr ""
-
-msgid "Error saving embedded data."
-msgstr ""
-
-msgid "Visit Purpose"
-msgstr ""
-
-msgid "History Taken"
-msgstr ""
-
-msgid "Findings"
-msgstr ""
-
-msgid "save"
-msgstr ""
-
-msgid "save clinical note in EMR"
-msgstr ""
-
-msgid "discard"
-msgstr ""
-
-msgid "discard clinical note"
-msgstr ""
-
-msgid "clinical progress note"
-msgstr ""
-
-msgid "Select files to add to the export area"
-msgstr ""
-
-msgid "Adding files to export area"
-msgstr ""
-
-#, python-format
-msgid ""
-"Cannot add (some of) the following files to the export area:\n"
-"%s "
-msgstr ""
-
-msgid "Select the documents to be put into the export area:"
-msgstr ""
-
-msgid "clipboard"
-msgstr ""
-
-msgid "Loading clipboard item (saved to file) into export area"
-msgstr ""
-
-#, python-format
-msgid ""
-"Cannot add the following clip to the export area:\n"
-"%s "
-msgstr ""
-
-msgid "scan"
-msgstr ""
-
-msgid "Scanning files into export area"
-msgstr ""
-
-#, python-format
-msgid ""
-"Cannot add (some of) the following scans to the export area:\n"
-"%s "
-msgstr ""
-
-msgid "Deleting document from export area."
-msgstr ""
-
-#, python-format
-msgid ""
-"Really remove %s selected document(s)\n"
-"from the patient export area ?"
-msgstr ""
-
-msgid "Error printing documents."
-msgstr ""
-
-#, python-format
-msgid "Printing [%s]"
-msgstr ""
-
-#, python-format
-msgid ""
-"Printed:\n"
-" - %s"
-msgstr ""
-
-msgid "Select the directory into which to export the documents."
-msgstr ""
-
-#, fuzzy
-msgid "Saving export area documents"
-msgstr " %s документи\n"
-
-#, python-format
-msgid ""
-"The chosen export directory\n"
-"\n"
-" [%s]\n"
-"\n"
-"is not empty. Do you want to use it for saving the\n"
-"export area documents into, nevertheless ?\n"
-"\n"
-"(this can be useful for including external documents)\n"
-"\n"
-"[NO] will create a subdirectory for you and use that."
-msgstr ""
-
-#, python-format
-msgid ""
-"Saved to [%s]:\n"
-" - %s"
-msgstr ""
-
-#, python-format
-msgid ""
-"Saved documents into directory:\n"
-"\n"
-" %s"
-msgstr ""
-
-msgid "If you wish to include an existing directory select it here:"
-msgstr ""
-
-msgid "Error burning documents to CD/DVD."
-msgstr ""
-
-#, fuzzy
-msgid "Burning documents"
-msgstr " %s документи\n"
-
-#, python-format
-msgid ""
-"Burned onto CD/DVD:\n"
-" - %s"
-msgstr ""
-
-msgid "Error mailing documents."
-msgstr ""
-
-#, fuzzy
-msgid "Mailing documents"
-msgstr " %s документи\n"
-
-#, python-format
-msgid ""
-"Mailed:\n"
-" - %s"
-msgstr ""
-
-msgid ""
-"Please enter the fax number here !\n"
-"\n"
-"It can be left empty if the external\n"
-"fax software knows how to get the number."
-msgstr ""
-
-#, fuzzy
-msgid "Faxing documents"
-msgstr " %s документи\n"
-
-#, python-format
-msgid ""
-"Error faxing documents to\n"
-"\n"
-"  %s"
-msgstr ""
-
-#, python-format
-msgid ""
-"Faxed to [%s]:\n"
-" - %s"
-msgstr ""
-
-msgid "<gm-mail_doc(.bat) not found>"
-msgstr ""
-
-msgid "<gm-fax_doc(.bat) not found>"
-msgstr ""
-
-msgid "<gm-burn_doc(.bat) not found>"
-msgstr ""
-
-msgid "Cannot accept new documents. No active patient."
-msgstr ""
-
-#, python-format
-msgid "Extracting files from folder [%s] ..."
-msgstr ""
-
-msgid "Drag&Drop"
-msgstr ""
-
-msgid "Created"
+msgid "Created"
 msgstr ""
 
 #, python-format
@@ -13023,9 +13290,6 @@ msgstr ""
 msgid "This praxis"
 msgstr ""
 
-msgid "Hospital stay"
-msgstr ""
-
 msgid "Bill receiver"
 msgstr ""
 
@@ -13061,11 +13325,53 @@ msgstr ""
 msgid "Select the episode under which to file the document ..."
 msgstr ""
 
-#, python-format
-msgid "Imported new document from %s."
+msgid "Cannot create new document."
 msgstr ""
 
-msgid "Enter a comment on the document."
+msgid "saving document"
+msgstr ""
+
+#, python-format
+msgid "Imported new document from %s."
+msgstr ""
+
+msgid "Successfully saved new document."
+msgstr ""
+
+msgid "Successfully saved the new document."
+msgstr ""
+
+#, python-format
+msgid ""
+"The reference ID for the new document is:\n"
+"\n"
+" <%s>\n"
+"\n"
+"You probably want to write it down on the\n"
+"original documents.\n"
+"\n"
+"If you don't care about the ID you can switch\n"
+"off this message in the GNUmed configuration.\n"
+msgstr ""
+
+msgid "Saving document"
+msgstr ""
+
+#, python-format
+msgid ""
+"Successfully imported files as document.\n"
+"\n"
+"Do you want to delete imported files from the filesystem ?\n"
+"\n"
+" %s\n"
+"\n"
+"Note that temporary files will be deleted anyway."
+msgstr ""
+
+msgid "Removing files"
+msgstr ""
+
+msgid "Enter a comment on the document."
 msgstr ""
 
 msgid "User defined"
@@ -13182,14 +13488,16 @@ msgstr ""
 msgid "Acquiring images"
 msgstr ""
 
-msgid "other documents"
+msgid "directory dropped on client"
 msgstr ""
 
-#, python-format
-msgid "part %s: %s"
+msgid "file dropped on client"
 msgstr ""
 
-msgid "saving document"
+msgid "other documents"
+msgstr ""
+
+msgid "path"
 msgstr ""
 
 msgid "No parts to save. Really save an empty document as a reference ?"
@@ -13234,62 +13542,34 @@ msgstr ""
 msgid "acquiring page"
 msgstr ""
 
-msgid "Choose a file"
-msgstr ""
-
-msgid "all files (Win)"
-msgstr ""
-
-msgid "You must select a part before you can view it."
-msgstr ""
-
-msgid "displaying part"
+msgid "captured by imaging device"
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot display document part:\n"
-"%s"
+msgid "Choose a file"
 msgstr ""
 
-msgid "You must select a part before you can delete it."
+msgid "all files (Win)"
 msgstr ""
 
-msgid "deleting part"
+msgid "picked from storage media"
 msgstr ""
 
-#, python-format
-msgid ""
-"The part has successfully been removed from the document.\n"
-"\n"
-"Do you also want to permanently delete the file\n"
-"\n"
-" [%s]\n"
-"\n"
-"from which this document part was loaded ?\n"
-"\n"
-"If it is a temporary file for a page you just scanned\n"
-"this makes a lot of sense. In other cases you may not\n"
-"want to lose the file.\n"
-"\n"
-"Pressing [YES] will permanently remove the file\n"
-"from your computer.\n"
+msgid "pasted from clipboard"
 msgstr ""
 
-msgid "Removing document part"
+msgid "No part selected for viewing."
 msgstr ""
 
 #, python-format
 msgid ""
-"Cannot delete part in file [%s].\n"
-"\n"
-"You may not have write access to it."
+"Cannot display document part:\n"
+"%s"
 msgstr ""
 
-msgid "Cannot create new document."
+msgid "displaying part"
 msgstr ""
 
-msgid "Cannot update document metadata."
+msgid "No part selected for removal."
 msgstr ""
 
 msgid "Cannot add document description."
@@ -13298,26 +13578,12 @@ msgstr ""
 msgid "Error setting \"reviewed\" status of new document."
 msgstr ""
 
-msgid "Successfully saved the new document."
-msgstr ""
-
 #, python-format
 msgid ""
-"The reference ID for the new document is:\n"
-"\n"
-" <%s>\n"
-"\n"
-"You probably want to write it down on the\n"
-"original documents.\n"
+"Source: %s\n"
+"File: %s\n"
 "\n"
-"If you don't care about the ID you can switch\n"
-"off this message in the GNUmed configuration."
-msgstr ""
-
-msgid "Saving document"
-msgstr ""
-
-msgid "Successfully saved new document."
+"%s"
 msgstr ""
 
 msgid "Document part does not seem to exist in database !"
@@ -13332,9 +13598,6 @@ msgstr ""
 msgid "Showing documents."
 msgstr ""
 
-msgid "Generated"
-msgstr ""
-
 msgid "Ref #"
 msgstr ""
 
@@ -13587,6 +13850,142 @@ msgstr ""
 msgid "Deleting document"
 msgstr ""
 
+msgid "Study date"
+msgstr ""
+
+msgid "Study time"
+msgstr ""
+
+msgid "Method"
+msgstr ""
+
+msgid "Body part"
+msgstr ""
+
+msgid "Time"
+msgstr ""
+
+msgid "Cannot connect without port (try 8042)."
+msgstr ""
+
+#, python-format
+msgid "Connect to [%s] @ port %s as \"%s\"."
+msgstr ""
+
+msgid "Cannot connect to PACS."
+msgstr ""
+
+#, python-format
+msgid "PACS: Orthanc \"%s\" (AET \"%s\", Version %s, DB v%s)"
+msgstr ""
+
+#, python-format
+msgid "GNUmed patient: %s (generic PACS ID)"
+msgstr ""
+
+#, python-format
+msgid "GNUmed patient: \"%(value)s\" @ [%(issuer)s] (stored PACS ID)"
+msgstr ""
+
+msgid "PACS: no patients with matching IDs found"
+msgstr ""
+
+msgid ""
+"PACS: more than one patient with matching IDs found, carefully check studies"
+msgstr ""
+
+#, python-format
+msgid "%s series"
+msgstr ""
+
+#, python-format
+msgid "%%s (%s series)"
+msgstr ""
+
+msgid "no studies"
+msgstr ""
+
+#, python-format
+msgid "%s studies"
+msgstr ""
+
+msgid "Exporting DICOM studies"
+msgstr ""
+
+msgid "Unable to export selected studies."
+msgstr ""
+
+#, python-format
+msgid ""
+"The DICOM studies are %s in compressed size.\n"
+"\n"
+"Really copy to export area ?"
+msgstr ""
+
+#, python-format
+msgid "DICOM studies of [%s] from Orthanc PACS \"%s\" (AET \"%s\")"
+msgstr ""
+
+msgid "Select the directory into which to save the DICOM studies."
+msgstr ""
+
+msgid "Saving DICOM studies"
+msgstr ""
+
+msgid "Unable to save selected studies."
+msgstr ""
+
+msgid "Unable to export studies."
+msgstr ""
+
+#, python-format
+msgid "All DICOM studies of [%s] from Orthanc PACS \"%s\" (AET \"%s\")"
+msgstr ""
+
+#, python-format
+msgid "%s%s images"
+msgstr ""
+
+msgid "Select the directory from which to recursively upload DICOM files."
+msgstr ""
+
+msgid "Delete the uploaded DICOM files now ?"
+msgstr ""
+
+msgid ""
+"Some files have not been uploaded.\n"
+"\n"
+"Do you want to delete those DICOM files which have been sent to the PACS "
+"successfully ?"
+msgstr ""
+
+msgid "Uploading DICOM files"
+msgstr ""
+
+msgid "Editing Orthanc content"
+msgstr ""
+
+msgid "Patient ID"
+msgstr ""
+
+msgid "Birth date"
+msgstr ""
+
+msgid "Orthanc"
+msgstr ""
+
+msgid "Modifying patient ID"
+msgstr ""
+
+#, python-format
+msgid ""
+"Really modify %s patient(s) to have the new patient ID\n"
+"\n"
+" [%s]\n"
+"\n"
+"stored in the Orthanc DICOM server ?"
+msgstr ""
+
 #, python-format
 msgid "You are logged in as %s%s.%s (%s). DB account <%s>."
 msgstr ""
@@ -13645,6 +14044,12 @@ msgstr ""
 msgid "Select the measurements panel to show in the medications plugin."
 msgstr ""
 
+msgid "General measurements"
+msgstr ""
+
+msgid "Select the measurements panel to show in the top pane."
+msgstr ""
+
 msgid "Review dialog"
 msgstr ""
 
@@ -13735,6 +14140,12 @@ msgstr ""
 msgid "Configure auto-opening editors for recent problems."
 msgstr ""
 
+msgid "SOAP fields"
+msgstr ""
+
+msgid "Configure SOAP editor - individual SOAP fields vs text editor like"
+msgstr ""
+
 msgid "Progress notes handling ..."
 msgstr ""
 
@@ -13756,6 +14167,9 @@ msgstr ""
 msgid "URL for measurements encyclopedia."
 msgstr ""
 
+msgid "Drug data source"
+msgstr ""
+
 msgid "Select the drug data source."
 msgstr ""
 
@@ -14119,6 +14533,12 @@ msgstr ""
 msgid "Manage dynamic hints suppressed in this patient."
 msgstr ""
 
+msgid "Substance abuse"
+msgstr ""
+
+msgid "Manage substance abuse documentation of this patient."
+msgstr ""
+
 msgid "&Add / Edit ..."
 msgstr ""
 
@@ -14140,26 +14560,49 @@ msgstr ""
 msgid "Show a high-level statistic summary of the EMR."
 msgstr ""
 
-msgid "Text document"
+msgid "Journal (encounters) to file"
 msgstr ""
 
-msgid "Export the EMR of the active patient into a text file"
+msgid ""
+"Save the EMR of the active patient as a chronological journal into a text "
+"file"
 msgstr ""
 
-msgid "Journal"
+msgid "Journal (encounters) to export area"
 msgstr ""
 
 msgid ""
-"Export the EMR of the active patient as a chronological journal into a text "
-"file"
+"Copy EMR of the active patient as a chronological journal into export area"
+msgstr ""
+
+msgid "Journal (mod time) to file"
+msgstr ""
+
+msgid ""
+"Save the EMR of the active patient as journal by last modification time into "
+"a text file"
+msgstr ""
+
+msgid "Journal (mod time) to export area"
+msgstr ""
+
+msgid ""
+"Copy EMR of the active patient as journal by last modification time into "
+"export area"
+msgstr ""
+
+msgid "Text document"
+msgstr ""
+
+msgid "Save the EMR of the active patient into a text file"
 msgstr ""
 
 msgid "MEDISTAR import format"
 msgstr ""
 
 msgid ""
-"GNUmed -> MEDISTAR. Export progress notes of active patient's active "
-"encounter into a text file."
+"GNUmed -> MEDISTAR. Save progress notes of active patient's active encounter "
+"into a text file."
 msgstr ""
 
 msgid "Export as ..."
@@ -14328,19 +14771,40 @@ msgstr ""
 msgid "Show log file"
 msgstr ""
 
-msgid "Show the log file in text viewer."
+msgid "Show log file in text viewer."
 msgstr ""
 
 msgid "Backup log file"
 msgstr ""
 
-msgid "Backup the content of the log to another file."
+msgid "Backup content of the log to another file."
 msgstr ""
 
 msgid "Email log file"
 msgstr ""
 
-msgid "Send the log file to the authors for help."
+msgid "Send log file to the authors for help."
+msgstr ""
+
+msgid "Browse tmp dir"
+msgstr ""
+
+#, python-format
+msgid "Browse temporary directory [%s]."
+msgstr ""
+
+msgid "Browse work dir"
+msgstr ""
+
+#, python-format
+msgid "Browse user working directory [%s]."
+msgstr ""
+
+msgid "Browse internal work dir"
+msgstr ""
+
+#, python-format
+msgid "Browse internal working directory [%s]."
 msgstr ""
 
 msgid "Bug tracker"
@@ -14683,6 +15147,20 @@ msgid "No, only auto-open one editor for a new, unassociated problem."
 msgstr ""
 
 msgid ""
+"When editing progress notes, do you want GNUmed to\n"
+"show individual fields for each of the SOAP categories\n"
+"or do you want to use a text-editor like field for\n"
+"all SOAP categories which can then be set per line\n"
+"of input ?"
+msgstr ""
+
+msgid "Yes, show a dedicated field per SOAP category."
+msgstr ""
+
+msgid "No, use one field for all SOAP categories."
+msgstr ""
+
+msgid ""
 "When a patient is activated GNUmed can\n"
 "be told to switch to a specific plugin.\n"
 "\n"
@@ -14949,535 +15427,937 @@ msgstr ""
 msgid "Provinces (counties, territories, states, regions, ...)"
 msgstr ""
 
-msgid "String translations in the database"
+msgid "String translations in the database"
+msgstr ""
+
+msgid "Test/measurement types"
+msgstr ""
+
+msgid "Vaccination targets (conditions known to be preventable by vaccination)"
+msgstr ""
+
+msgid "Vaccines"
+msgstr ""
+
+msgid "Workplace profiles (which plugins to load)"
+msgstr ""
+
+msgid "Consumable substances"
+msgstr ""
+
+msgid "Billable items"
+msgstr ""
+
+msgid "Reference data sources"
+msgstr ""
+
+msgid "Test/measurement panels/profiles"
+msgstr ""
+
+msgid "Master data management"
+msgstr ""
+
+msgid "Select the list you want to manage:"
+msgstr ""
+
+msgid "No DICOM viewer found."
+msgstr ""
+
+msgid "risk assessment"
+msgstr ""
+
+msgid "cardiovascular risk assessment"
+msgstr ""
+
+#, python-format
+msgid "[arriba] XML result not found in [%s]"
+msgstr ""
+
+msgid "ACS risk assessment calculator not configured."
+msgstr ""
+
+#, python-format
+msgid "Cannot run [%s] !"
+msgstr ""
+
+#, python-format
+msgid "There was a problem accessing the [arriba] result in [%s] !"
+msgstr ""
+
+msgid "[-9999]: <access violation test error>"
+msgstr ""
+
+msgid ""
+"This is a deliberate AccessDenied exception thrown to test the handling of "
+"access violations by means of a decorator."
+msgstr ""
+
+msgid "testing access check for non-existant <admin> role"
+msgstr ""
+
+msgid ""
+"This is a deliberate AccessDenied exception. You should not see this message "
+"because the role is checked in a decorator."
+msgstr ""
+
+msgid "pgAdmin III not found."
+msgstr ""
+
+msgid "Error reloading hook script."
+msgstr ""
+
+msgid "Save current log as..."
+msgstr ""
+
+msgid "log files"
+msgstr ""
+
+#, python-format
+msgid "Log file backed up as [%s]."
+msgstr ""
+
+msgid "Cannot start new encounter. No active patient."
+msgstr ""
+
+msgid "Cannot add health issue. No active patient."
+msgstr ""
+
+msgid "Cannot add episode. No active patient."
+msgstr ""
+
+msgid "Cannot add medication. No active patient."
+msgstr ""
+
+msgid "Cannot add allergy. No active patient."
+msgstr ""
+
+msgid "Cannot manage performed procedures. No active patient."
+msgstr ""
+
+msgid "Cannot manage hospitalizations. No active patient."
+msgstr ""
+
+msgid "Cannot manage external care. No active patient."
+msgstr ""
+
+msgid "Cannot edit occupation. No active patient."
+msgstr ""
+
+msgid "manage vaccinations"
+msgstr ""
+
+msgid "Cannot add vaccinations. No active patient."
+msgstr ""
+
+msgid "manage family history"
+msgstr ""
+
+msgid "Cannot manage family history. No active patient."
+msgstr ""
+
+msgid "Cannot manage measurements. No active patient."
+msgstr ""
+
+msgid "calculate EDC"
+msgstr ""
+
+msgid "manage suppressed hints"
+msgstr ""
+
+msgid "Cannot manage suppressed hints. No active patient."
+msgstr ""
+
+msgid "Cannot manage smoking status. No active patient."
+msgstr ""
+
+msgid "Cannot show EMR summary. No active patient."
+msgstr ""
+
+msgid "EMR Summary"
+msgstr ""
+
+msgid "Cannot export EMR journal by last modification time. No active patient."
+msgstr ""
+
+msgid "journal_by_last_mod_time"
+msgstr ""
+
+msgid "Save patient's EMR journal as..."
+msgstr ""
+
+msgid "Error exporting patient EMR as journal by last modification time."
+msgstr ""
+
+msgid "EMR journal export"
+msgstr ""
+
+#, python-format
+msgid ""
+"Successfully exported EMR as journal by last modification time into file "
+"[%s]."
+msgstr ""
+
+msgid "Cannot export EMR journal. No active patient."
+msgstr ""
+
+msgid "emr-journal"
+msgstr ""
+
+msgid "Error exporting patient EMR as chronological journal."
+msgstr ""
+
+#, python-format
+msgid "Successfully exported EMR as chronological journal into file [%s]."
+msgstr ""
+
+msgid "EMR journal by last modification time"
+msgstr ""
+
+msgid "EMR journal by encounter"
+msgstr ""
+
+msgid "Cannot add tag to person. No active patient."
+msgstr ""
+
+#, python-format
+msgid "Edit the comment on tag [%s]"
+msgstr ""
+
+msgid "Editing tag comment"
+msgstr ""
+
+msgid "Cannot export patient as GDT. No active patient."
+msgstr ""
+
+msgid "Exported demographics as GDT to clipboard."
+msgstr ""
+
+msgid "Cannot export patient as VCARD. No active patient."
+msgstr ""
+
+msgid "Exported demographics as VCARD to clipboard."
+msgstr ""
+
+msgid "Cannot export patient as XML (LinuxMedNews). No active patient."
+msgstr ""
+
+#, python-format
+msgid "Exported demographics to XML file [%s]."
+msgstr ""
+
+#, python-format
+msgid "Exported demographics to GDT file [%s]."
+msgstr ""
+
+#, python-format
+msgid "Exported demographics to VCARD file [%s]."
+msgstr ""
+
+msgid "Cannot add staff member. No active patient."
+msgstr ""
+
+msgid "Cannot delete patient. No patient active."
+msgstr ""
+
+msgid ""
+"You have to manually close this window to finalize shutting down GNUmed."
+msgstr ""
+
+msgid "This is so that you can inspect the console output at your leisure."
+msgstr ""
+
+msgid "no patient"
+msgstr ""
+
+#, python-format
+msgid "Saved screenshot to file [%s]."
+msgstr ""
+
+msgid "Python version check"
+msgstr ""
+
+#, python-format
+msgid ""
+"You are running Python version\n"
+" %s\n"
+"\n"
+"However, GNUmed wants Python 2.7 to\n"
+"facilitate migration to Python 3.\n"
+"\n"
+"Please upgrade your Python interpreter !"
+msgstr ""
+
+msgid "GNUmed client"
+msgstr ""
+
+msgid "GNUmed stdout/stderr window"
+msgstr ""
+
+msgid "redirecting STDOUT/STDERR to this log window"
+msgstr ""
+
+#, python-format
+msgid ""
+"The database account [%s] cannot be used as a\n"
+"staff member login for GNUmed. There was an\n"
+"error retrieving staff details for it.\n"
+"\n"
+"Please ask your administrator for help.\n"
+msgstr ""
+
+msgid "Checking access permissions"
+msgstr ""
+
+#, python-format
+msgid "Database <%s> on <%s>"
+msgstr ""
+
+#, python-format
+msgid "Branch \"%s\" of praxis \"%s\"\n"
+msgstr ""
+
+msgid "Verifying database"
+msgstr ""
+
+msgid "Connect"
+msgstr ""
+
+msgid "Yes, connect to this database."
+msgstr ""
+
+msgid "Disconnect"
+msgstr ""
+
+msgid "No, do not connect to this database."
+msgstr ""
+
+#, python-format
+msgid ""
+"Cannot find configuration file in any of:\n"
+"\n"
+" %s\n"
+"You may need to use the comand line option\n"
+"\n"
+"\t--conf-file=<FILE>"
+msgstr ""
+
+msgid "Checking configuration files"
+msgstr ""
+
+msgid "GNUmed startup"
+msgstr ""
+
+#, python-format
+msgid ""
+"The currently selected database language ('%s') does\n"
+"not match the current system language ('%s').\n"
+"\n"
+"Do you want to set the database language to '%s' ?\n"
+msgstr ""
+
+msgid "Checking database language settings"
+msgstr ""
+
+#, python-format
+msgid "Set your database language to [%s]."
+msgstr ""
+
+msgid "Don't set"
+msgstr ""
+
+msgid "Do not set your database language now."
+msgstr ""
+
+msgid "Remember to ignore language mismatch"
+msgstr ""
+
+#, python-format
+msgid ""
+"Checking this will make GNUmed remember your decision\n"
+"until the system language is changed.\n"
+"\n"
+"You can also reactivate this inquiry by removing the\n"
+"corresponding \"ignore\" option from the configuration file\n"
+"\n"
+" [%s]"
+msgstr ""
+
+msgid "generic activity"
+msgstr ""
+
+msgid "Access denied"
+msgstr ""
+
+#, python-format
+msgid ""
+"Your account is not set up to access this part of GNUmed:\n"
+"\n"
+"  [%s]"
+msgstr ""
+
+msgid "Save timeline as SVG image under..."
 msgstr ""
 
-msgid "Test/measurement types"
+msgid "timeline image"
 msgstr ""
 
-msgid "Vaccination targets (conditions known to be preventable by vaccination)"
+msgid "timeline data"
 msgstr ""
 
-msgid "Vaccines"
+msgid "Cannot change notebook tabs. No active patient."
 msgstr ""
 
-msgid "Workplace profiles (which plugins to load)"
+msgid "add plugin ..."
 msgstr ""
 
-msgid "Consumable substances"
+msgid "Cannot activate Allergy Manager. No active patient."
 msgstr ""
 
-msgid "Billable items"
+msgid "RR ?"
 msgstr ""
 
-msgid "Reference data sources"
+#, python-format
+msgid "BMI %s"
 msgstr ""
 
-msgid "Test/measurement panels/profiles"
+msgid "BMI ?"
 msgstr ""
 
-msgid "Master data management"
+msgid "GFR ?"
 msgstr ""
 
-msgid "Select the list you want to manage:"
+#, python-format
+msgid "GFR %s"
 msgstr ""
 
-msgid "No DICOM viewer found."
+#, python-format
+msgid "?EDC %s"
 msgstr ""
 
-msgid "risk assessment"
+#, python-format
+msgid "EDC %s"
 msgstr ""
 
-msgid "cardiovascular risk assessment"
+msgid "<Age>"
 msgstr ""
 
-#, python-format
-msgid "[arriba] XML result not found in [%s]"
+msgid "no patient selected"
 msgstr ""
 
-msgid "ACS risk assessment calculator not configured."
+#, python-format
+msgid "Gender: %s (%s) - %s\n"
 msgstr ""
 
 #, python-format
-msgid "Cannot run [%s] !"
+msgid "Born: %s\n"
 msgstr ""
 
 #, python-format
-msgid "There was a problem accessing the [arriba] result in [%s] !"
+msgid "Died: %s\n"
 msgstr ""
 
-msgid "[-9999]: <access violation test error>"
+#, python-format
+msgid "At age: %s\n"
 msgstr ""
 
-msgid ""
-"This is a deliberate AcessDenied exception thrown to test the handling of "
-"access violations by means of a decorator."
+msgid " (date of birth and age are estimated)\n"
 msgstr ""
 
-msgid "testing access check for non-existant <admin> role"
+#, python-format
+msgid "%(sex)s  %(dob)s (%(age)s today !)"
 msgstr ""
 
 msgid ""
-"This is a deliberate AcessDenied exception. You should not see this message "
-"because the role is checked in a decorator."
+"\n"
+"Today is the patient's birthday !\n"
+"\n"
 msgstr ""
 
-msgid "pgAdmin III not found."
+#, python-format
+msgid "Birthday: %s ago\n"
 msgstr ""
 
-msgid "Error reloading hook script."
+#, python-format
+msgid "Birthday: in %s\n"
 msgstr ""
 
-msgid "Save current log as..."
+#, python-format
+msgid "Age: %s\n"
 msgstr ""
 
-msgid "log files"
+#, python-format
+msgid "last confirmed %s\n"
 msgstr ""
 
 #, python-format
-msgid "Log file backed up as [%s]."
+msgid "Comment (%s): %%s"
 msgstr ""
 
-msgid "Cannot start new encounter. No active patient."
+#, python-format
+msgid " - expires %s"
 msgstr ""
 
-msgid "Cannot add health issue. No active patient."
+#, python-format
+msgid ""
+"Due for %s (since %s%s):\n"
+"%s%s\n"
+"Patient: %s\n"
+"Reminder by: %s"
 msgstr ""
 
-msgid "Cannot add episode. No active patient."
+msgid "Clinical reminder"
 msgstr ""
 
-msgid "Cannot add medication. No active patient."
+msgid "Adding automatic dynamic hint"
 msgstr ""
 
-msgid "Cannot add allergy. No active patient."
+msgid "Editing automatic dynamic hint"
 msgstr ""
 
-msgid "Cannot manage performed procedures. No active patient."
+msgid "Deleting automatic dynamic hint"
 msgstr ""
 
-msgid "Cannot manage hospitalizations. No active patient."
+#, python-format
+msgid ""
+"Really delete this dynamic hint ?\n"
+"\n"
+" [%s]"
 msgstr ""
 
-msgid "Cannot manage external care. No active patient."
+msgid "deleting a dynamic hint"
 msgstr ""
 
-msgid "Cannot edit occupation. No active patient."
+msgid ""
+"\n"
+"Dynamic hints registered with GNUmed.\n"
 msgstr ""
 
-msgid "manage vaccinations"
+msgid "Showing dynamic hints."
 msgstr ""
 
-msgid "Cannot add vaccinations. No active patient."
+msgid "Hint"
 msgstr ""
 
-msgid "Cannot manage family history. No active patient."
+msgid "Browse and install automatic dynamic hints data packs"
 msgstr ""
 
-msgid "Cannot manage measurements. No active patient."
+#, python-format
+msgid "By: %s"
 msgstr ""
 
-msgid "calculate EDC"
+msgid "No entry in field <Source>."
 msgstr ""
 
-msgid "manage suppressed hints"
+msgid "No entry in field <Conditions>."
 msgstr ""
 
-msgid "Cannot manage suppressed hints. No active patient."
+msgid "No entry in field <Description>."
 msgstr ""
 
-msgid "Cannot show EMR summary. No active patient."
+msgid "No entry in field <Title>."
 msgstr ""
 
-msgid "EMR Summary"
+msgid "creating a new dynamic hint"
 msgstr ""
 
-msgid "Cannot export EMR journal. No active patient."
+msgid "updating an existing dynamic hint"
 msgstr ""
 
-msgid "Save patient's EMR journal as..."
+msgid "Deleting suppressed dynamic hint"
 msgstr ""
 
-msgid "Error exporting patient EMR as chronological journal."
+#, python-format
+msgid ""
+"Really delete the suppression of this dynamic hint ?\n"
+"\n"
+" [%s]"
 msgstr ""
 
-msgid "EMR journal export"
+msgid ""
+"\n"
+"Dynamic hints suppressed in this patient.\n"
 msgstr ""
 
-#, python-format
-msgid "Successfully exported EMR as chronological journal into file [%s]."
+msgid "Showing suppressed dynamic hints."
 msgstr ""
 
-msgid "Cannot add tag to person. No active patient."
+msgid "Rationale"
 msgstr ""
 
-#, python-format
-msgid "Edit the comment on tag [%s]"
-msgstr ""
+#, fuzzy
+msgid "Manage hints"
+msgstr "здравословен проблем: %s"
 
-msgid "Editing tag comment"
+msgid "Manage automatic dynamic hints"
 msgstr ""
 
-msgid "Cannot export patient as GDT. No active patient."
+msgid "Cannot delete family history item."
 msgstr ""
 
-msgid "Exported demographics as GDT to clipboard."
+msgid "Family history of this patient."
 msgstr ""
 
-msgid "Cannot export patient as VCARD. No active patient."
+msgid "Showing family history."
 msgstr ""
 
-msgid "Exported demographics as VCARD to clipboard."
+msgid "Fatal"
 msgstr ""
 
-msgid "Cannot export patient as XML (LinuxMedNews). No active patient."
+msgid "Noted"
 msgstr ""
 
-#, python-format
-msgid "Exported demographics to XML file [%s]."
+msgid "Died"
 msgstr ""
 
-#, python-format
-msgid "Exported demographics to GDT file [%s]."
+msgid "Adding family history"
 msgstr ""
 
-#, python-format
-msgid "Exported demographics to VCARD file [%s]."
+msgid "Editing family history"
 msgstr ""
 
-msgid "Cannot add staff member. No active patient."
+msgid ""
+"\n"
+"Please select the default drug data source from the list below.\n"
+"\n"
+"Note that to actually use it you need to have the database installed, too."
 msgstr ""
 
-msgid "Cannot delete patient. No patient active."
+msgid "Configuring default drug data source"
 msgstr ""
 
-msgid ""
-"You have to manually close this window to finalize shutting down GNUmed."
+msgid "No default drug database configured."
 msgstr ""
 
-msgid "This is so that you can inspect the console output at your leisure."
+msgid "There is no default drug database configured."
 msgstr ""
 
-msgid "no patient"
+msgid "Jumping to drug database"
 msgstr ""
 
-#, python-format
-msgid "Saved screenshot to file [%s]."
+msgid "Cannot import drugs from IFAP into chart without chart."
 msgstr ""
 
-msgid "GNUmed client"
+#, python-format
+msgid "Cannot call IFAP via [%s]."
 msgstr ""
 
-msgid "GNUmed stdout/stderr window"
+#, python-format
+msgid "Cannot create IFAP <-> GNUmed transfer file [%s]."
 msgstr ""
 
-msgid "redirecting STDOUT/STDERR to this log window"
+msgid "Current medication"
 msgstr ""
 
-#, python-format
 msgid ""
-"The database account [%s] cannot be used as a\n"
-"staff member login for GNUmed. There was an\n"
-"error retrieving staff details for it.\n"
 "\n"
-"Please ask your administrator for help.\n"
+"The ATC codes as known to GNUmed.\n"
 msgstr ""
 
-msgid "Checking access permissions"
+msgid "Showing ATC codes."
 msgstr ""
 
-#, python-format
-msgid "Database <%s> on <%s>"
+msgid "Choose an ATC import config file"
 msgstr ""
 
-#, python-format
-msgid "Branch \"%s\" of praxis \"%s\"\n"
+msgid "config files"
 msgstr ""
 
-msgid "Verifying database"
+msgid "importing ATC reference data"
 msgstr ""
 
-msgid "Connect"
+msgid "Successfully imported ATC reference data."
 msgstr ""
 
-msgid "Yes, connect to this database."
+msgid "Importing ATC reference data failed."
 msgstr ""
 
-msgid "Disconnect"
+msgid "Select an ATC (Anatomical-Therapeutic-Chemical) code."
 msgstr ""
 
-msgid "No, do not connect to this database."
+msgid "Cannot edit this substance. It is in use."
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot find configuration file in any of:\n"
-"\n"
-" %s\n"
-"You may need to use the comand line option\n"
-"\n"
-"\t--conf-file=<FILE>"
+msgid "Adding new consumable substance"
 msgstr ""
 
-msgid "Checking configuration files"
+msgid "Editing consumable substance"
 msgstr ""
 
-msgid "GNUmed startup"
+msgid "Cannot delete this substance. It is in use."
 msgstr ""
 
-#, python-format
 msgid ""
-"The currently selected database language ('%s') does\n"
-"not match the current system language ('%s').\n"
 "\n"
-"Do you want to set the database language to '%s' ?\n"
+"These are the consumable substances registered with GNUmed.\n"
 msgstr ""
 
-msgid "Checking database language settings"
+msgid "Import"
 msgstr ""
 
-msgid "Set"
+msgid "Import consumable substances from a drug database."
 msgstr ""
 
-#, python-format
-msgid "Set your database language to [%s]."
+msgid "Cannot save consumable substance. Missing essential input."
 msgstr ""
 
-msgid "Don't set"
+#, python-format
+msgid "Cannot save consumable substance. %s"
 msgstr ""
 
-msgid "Do not set your database language now."
+msgid "The substance with optional strength."
 msgstr ""
 
-msgid "Remember to ignore language mismatch"
+msgid "Cannot remove this component from the drug. It is in use."
 msgstr ""
 
-#, python-format
 msgid ""
-"Checking this will make GNUmed remember your decision\n"
-"until the system language is changed.\n"
-"\n"
-"You can also reactivate this inquiry by removing the\n"
-"corresponding \"ignore\" option from the configuration file\n"
 "\n"
-" [%s]"
+"These are the components in the drug brands known to GNUmed.\n"
 msgstr ""
 
-msgid "generic activity"
+msgid "Showing drug brand components."
 msgstr ""
 
-msgid "Access denied"
+msgid "Adding new drug component"
 msgstr ""
-
-#, python-format
-msgid ""
-"Your account is not set up to access this part of GNUmed:\n"
-"\n"
-"  [%s]"
+
+msgid "Editing drug component"
 msgstr ""
 
-msgid "Save timeline as SVG image under..."
+msgid "Cannot edit drug component. It is in use."
 msgstr ""
 
-msgid "timeline image"
+msgid "Cannot save drug component. Invalid or missing essential input."
 msgstr ""
 
-msgid "timeline data"
+msgid "A drug component with optional strength."
 msgstr ""
 
-msgid "Cannot change notebook tabs. No active patient."
+msgid "Editing drug"
 msgstr ""
 
-msgid "add plugin ..."
+#, python-format
+msgid ""
+"Cannot edit the branded drug product\n"
+"\n"
+" \"%s\" (%s)\n"
+"\n"
+"because it is currently taken by patients.\n"
 msgstr ""
 
-msgid "Cannot activate Allergy Manager. No active patient."
+msgid "Adding new drug brand"
 msgstr ""
 
-msgid "<Age>"
+msgid "Editing drug brand"
 msgstr ""
 
-msgid "no patient selected"
+msgid "Manage consumable substances"
 msgstr ""
 
-#, python-format
-msgid "Gender: %s (%s) - %s\n"
+msgid "not in use"
 msgstr ""
 
 #, python-format
-msgid "Born: %s\n"
+msgid "ATC: %s\n"
 msgstr ""
 
-#, python-format
-msgid "Died: %s\n"
+msgid "Editing medication"
 msgstr ""
 
 #, python-format
-msgid "At age: %s\n"
+msgid ""
+"Cannot edit the medication\n"
+"\n"
+" \"%s\" (%s)\n"
+"\n"
+"because it is a vaccine. Please edit it\n"
+"from the vaccine management section !\n"
 msgstr ""
 
-msgid " (date of birth and age are estimated)\n"
+msgid "Deleting medication"
 msgstr ""
 
 #, python-format
-msgid "%(sex)s  %(dob)s (%(age)s today !)"
+msgid ""
+"Cannot delete the medication\n"
+"\n"
+" \"%s\" (%s)\n"
+"\n"
+"because it is a vaccine. Please delete it\n"
+"from the vaccine management section !\n"
 msgstr ""
 
 msgid ""
 "\n"
-"Today is the patient's birthday !\n"
-"\n"
+"These are the drug brands known to GNUmed.\n"
 msgstr ""
 
-#, python-format
-msgid "Birthday: %s ago\n"
+msgid "Showing branded drugs."
 msgstr ""
 
-#, python-format
-msgid "Birthday: in %s\n"
+msgid "Import substances and brands from a drug database."
 msgstr ""
 
-#, python-format
-msgid "Age: %s\n"
+msgid "Managing components of a drug"
 msgstr ""
 
 #, python-format
-msgid "last confirmed %s\n"
+msgid ""
+"Cannot manage the components of the branded drug product\n"
+"\n"
+" \"%s\" (%s)\n"
+"\n"
+"because it is currently taken by patients.\n"
 msgstr ""
 
-#, python-format
-msgid "Comment (%s): %%s"
+msgid "Pick the substances which are components of this drug."
 msgstr ""
 
-#, python-format
-msgid " - expires %s"
+msgid "Components of drug"
 msgstr ""
 
 #, python-format
 msgid ""
-"Due for %s (since %s%s):\n"
-"%s%s\n"
-"Patient: %s\n"
-"Reminder by: %s"
+"Adjust the components of \"%s\"\n"
+"\n"
+"The drug must contain at least one component. Any given\n"
+"substance can only be included once per drug."
 msgstr ""
 
-msgid "Clinical reminder"
+msgid "Managing components of a drug ..."
 msgstr ""
 
-msgid "Adding automatic dynamic hint"
+msgid "Cannot edit drug brand. It is in use."
 msgstr ""
 
-msgid "Editing automatic dynamic hint"
+msgid "Checking brand data"
 msgstr ""
 
-msgid "Deleting automatic dynamic hint"
+#, python-format
+msgid ""
+"The brand information you entered:\n"
+"\n"
+" [%s %s]\n"
+"\n"
+"already exists as a drug product."
 msgstr ""
 
-#, python-format
 msgid ""
-"Really delete this dynamic hint ?\n"
+"You have not selected any substances\n"
+"as drug components.\n"
 "\n"
-" [%s]"
+"Without components you will not be able to\n"
+"use this drug for documenting patient care.\n"
+"\n"
+"Are you sure you want to save\n"
+"it without components ?"
 msgstr ""
 
-msgid "deleting a dynamic hint"
+msgid "Cannot save branded drug. Invalid or missing essential input."
 msgstr ""
 
 msgid ""
+"The brand name of the drug.\n"
 "\n"
-"Dynamic hints registered with GNUmed.\n"
+"Note: a brand name will need to be linked to\n"
+"one or more components before it can be used,\n"
+"except in the case of fake (generic) vaccines."
 msgstr ""
 
-msgid "Showing dynamic hints."
+msgid "No EMR data loaded."
 msgstr ""
 
-msgid "Hint"
+msgid "EMR text dump"
 msgstr ""
 
-msgid "Browse and install automatic dynamic hints data packs"
+msgid "Currently there is no active patient. Cannot retrieve EMR text."
 msgstr ""
 
-#, python-format
-msgid "By: %s"
+msgid "SOAP Editor Actions:"
 msgstr ""
 
-msgid "No entry in field <Source>."
+msgid "&Sort lines"
 msgstr ""
 
-msgid "No entry in field <Conditions>."
+msgid "Sort lines by SOAP category"
 msgstr ""
 
-msgid "No entry in field <Description>."
+msgid "e&Xpand keyword"
 msgstr ""
 
-msgid "No entry in field <Title>."
+msgid "Expand keyword / macro"
 msgstr ""
 
-msgid "creating a new dynamic hint"
+#, fuzzy
+msgid "as &Subjective"
+msgstr "активен"
+
+msgid "Set line to category \"Subjective\""
 msgstr ""
 
-msgid "updating an existing dynamic hint"
+#, fuzzy
+msgid "as &Objective"
+msgstr "активен"
+
+msgid "Set line to category \"Objective\""
 msgstr ""
 
-msgid "Deleting suppressed dynamic hint"
+msgid "as &Assessment"
 msgstr ""
 
-#, python-format
-msgid ""
-"Really delete the suppression of this dynamic hint ?\n"
-"\n"
-" [%s]"
+msgid "Set line to category \"Assessment\""
 msgstr ""
 
-msgid ""
-"\n"
-"Dynamic hints suppressed in this patient.\n"
+msgid "as &Plan"
 msgstr ""
 
-msgid "Showing suppressed dynamic hints."
+msgid "Set line to category \"Plan\""
 msgstr ""
 
-msgid "Rationale"
+msgid "as &Unspecified"
+msgstr ""
+
+msgid "Set line to category \"unspecified\""
 msgstr ""
 
 #, fuzzy
-msgid "Manage hints"
-msgstr "здравословен проблем: %s"
+msgid "as ad&Ministrative"
+msgstr "неактивен"
 
-msgid "Manage automatic dynamic hints"
+msgid "Set line to category \"administrative\""
 msgstr ""
 
-msgid "Cannot delete family history item."
+msgid "→ &Clipboard"
 msgstr ""
 
-msgid "Family history of this patient."
+msgid "Copy line to clipboard"
 msgstr ""
 
-msgid "Showing family history."
+msgid "→ +Clipboard+"
 msgstr ""
 
-msgid "Fatal"
+msgid "Add line to clipboard"
 msgstr ""
 
-msgid "Noted"
+msgid "Copy content to clipboard"
 msgstr ""
 
-msgid "Died"
+msgid "Add content to clipboard"
 msgstr ""
 
-msgid "Adding family history"
+msgid "Copy selection to clipboard"
 msgstr ""
 
-msgid "Editing family history"
+msgid "Add selection to clipboard"
 msgstr ""
 
-msgid "No EMR data loaded."
+msgid "&Line ..."
 msgstr ""
 
-msgid "EMR text dump"
+msgid "&Text ..."
 msgstr ""
 
-msgid "Currently there is no active patient. Cannot retrieve EMR text."
+msgid "&Region ..."
 msgstr ""
 
 msgid "Show HL7 file:"
@@ -15489,6 +16369,10 @@ msgstr ""
 msgid "Extracting HL7 from XML file"
 msgstr ""
 
+#, python-format
+msgid "Unwrapped HL7 into [%s] from [%s]."
+msgstr ""
+
 msgid "Select HL7 file for staging:"
 msgstr ""
 
@@ -15512,6 +16396,10 @@ msgid ""
 " %s"
 msgstr ""
 
+#, python-format
+msgid "Staged HL7 from [%s]."
+msgstr ""
+
 msgid "Importing HL7 data"
 msgstr ""
 
@@ -15554,9 +16442,6 @@ msgstr ""
 msgid "Identification"
 msgstr ""
 
-msgid "Show"
-msgstr ""
-
 msgid "Show formatted HL7"
 msgstr ""
 
@@ -15602,6 +16487,17 @@ msgstr ""
 msgid "Plot current selection"
 msgstr ""
 
+msgid ""
+"Select the measurements panel to show in the top pane for continuous "
+"monitoring."
+msgstr ""
+
+msgid "Lab panel"
+msgstr ""
+
+msgid "Configuring continuous monitoring measurements panel"
+msgstr ""
+
 msgid "No default Gnuplot script template selected."
 msgstr ""
 
@@ -15624,10 +16520,25 @@ msgstr ""
 msgid "Cannot plot without a plot script."
 msgstr ""
 
-msgid "Time"
+msgid "Result"
 msgstr ""
 
-msgid "Result"
+msgid "Perform on selected results:"
+msgstr ""
+
+msgid "Review and &sign"
+msgstr ""
+
+msgid "Export to &file"
+msgstr ""
+
+msgid "Export to &clipboard"
+msgstr ""
+
+msgid "Panels"
+msgstr ""
+
+msgid "List"
 msgstr ""
 
 msgid ""
@@ -15704,18 +16615,6 @@ msgstr ""
 msgid "All: by &Day"
 msgstr ""
 
-msgid "Perform on selected results:"
-msgstr ""
-
-msgid "Review and &sign"
-msgstr ""
-
-msgid "Export to &file"
-msgstr ""
-
-msgid "Export to &clipboard"
-msgstr ""
-
 #, python-format
 msgid "%s results selected. Too many to list individually."
 msgstr ""
@@ -15889,6 +16788,9 @@ msgstr ""
 msgid "EMR Actions:"
 msgstr ""
 
+msgid "Print EMR"
+msgstr ""
+
 msgid "Create health issue"
 msgstr ""
 
@@ -16037,11 +16939,41 @@ msgstr ""
 msgid "&New notes %s"
 msgstr ""
 
+msgid "Find text in EMR Journal"
+msgstr ""
+
+#, fuzzy
+msgid "Modified"
+msgstr "променен запис"
+
+msgid "Clinical time"
+msgstr ""
+
+msgid "Who / When"
+msgstr ""
+
+#, python-format
 msgid ""
-"An error occurred while retrieving the EMR\n"
-"in journal form for the active patient.\n"
+"Chart entry: %s       [#%s in %s]\n"
+" Modified: %s by %s (%s rev %s)\n"
 "\n"
-"Please check the log file for details."
+"Health issue: %s%s\n"
+"Episode: %s%s\n"
+"Encounter: %s%s"
+msgstr ""
+
+#, python-format
+msgid ""
+"%s\n"
+"\n"
+"                        rev %s (%s) by %s in <%s>"
+msgstr ""
+
+#, python-format
+msgid ""
+"%s\n"
+"%s\n"
+"%s"
 msgstr ""
 
 msgid "Editing tag"
@@ -16168,18 +17100,15 @@ msgid ""
 "%s\n"
 msgstr ""
 
-msgid "This patient DID receive care."
+msgid "This patient DID receive care here."
 msgstr ""
 
-msgid "This person did NOT receive care."
+msgid "This person did NOT receive care here."
 msgstr ""
 
 msgid "Disabling person"
 msgstr ""
 
-msgid "Disabling patient"
-msgstr ""
-
 msgid "Type or select a last name (family name/surname)."
 msgstr ""
 
@@ -16422,6 +17351,9 @@ msgid ""
 "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
 msgstr ""
 
+msgid "Connecting to backend"
+msgstr ""
+
 #, python-format
 msgid ""
 "Unable to connect to database:\n"
@@ -16630,9 +17562,6 @@ msgstr ""
 msgid "Office"
 msgstr ""
 
-msgid "State"
-msgstr ""
-
 msgid "Zip"
 msgstr ""
 
@@ -16688,7 +17617,7 @@ msgstr ""
 msgid "EMR Timeline"
 msgstr ""
 
-msgid "Show &Timeline"
+msgid "EMR &Timeline"
 msgstr ""
 
 msgid "Overview"
@@ -16715,10 +17644,10 @@ msgstr ""
 msgid "&SimpleNotes"
 msgstr ""
 
-msgid "EMR tree"
+msgid "EMR Tree"
 msgstr ""
 
-msgid "EMR &Tree (topical)"
+msgid "EMR &Tree"
 msgstr ""
 
 msgid "Print Manager"
@@ -16727,6 +17656,12 @@ msgstr ""
 msgid "&Print Manager"
 msgstr ""
 
+msgid "EMR Journal"
+msgstr ""
+
+msgid "EMR &Journal (list)"
+msgstr ""
+
 msgid "Appointments"
 msgstr ""
 
@@ -16739,6 +17674,12 @@ msgstr ""
 msgid "Show &lab journal"
 msgstr ""
 
+msgid "PACS"
+msgstr ""
+
+msgid "&PACS"
+msgstr ""
+
 msgid "Cardiac Devices"
 msgstr ""
 
@@ -16811,10 +17752,7 @@ msgstr ""
 msgid "User &manual (local)"
 msgstr ""
 
-msgid "EMR journal"
-msgstr ""
-
-msgid "EMR &Journal (chronological)"
+msgid "EMR &Journal (text)"
 msgstr ""
 
 msgid "Demographics"
@@ -16975,6 +17913,9 @@ msgstr ""
 msgid "Show &ExamplePlugin"
 msgstr ""
 
+msgid "Find text"
+msgstr ""
+
 msgid "gm_ctl_client: starting slave GNUmed client"
 msgstr ""
 
@@ -17000,3 +17941,13 @@ msgstr ""
 
 msgid "Abort and do NOT connect to GNUmed."
 msgstr ""
+
+#, fuzzy
+#~ msgid ""
+#~ "Health issue: %s%s%s (%s versions)\n"
+#~ "\n"
+#~ msgstr "здравословен проблем: %s"
+
+#, fuzzy
+#~ msgid "&Unknown"
+#~ msgstr "неизвестна реакция"
diff --git a/client/po/ca-gnumed.mo b/client/po/ca-gnumed.mo
index 0ba4c70..09e9498 100644
Binary files a/client/po/ca-gnumed.mo and b/client/po/ca-gnumed.mo differ
diff --git a/client/po/ca.po b/client/po/ca.po
index dd65715..3ac8d37 100644
--- a/client/po/ca.po
+++ b/client/po/ca.po
@@ -2,7 +2,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gnumed\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-12-26 20:28+0100\n"
+"POT-Creation-Date: 2016-03-17 16:27+0100\n"
 "PO-Revision-Date: 2012-06-01 01:20+0000\n"
 "Last-Translator: ncq <Unknown>\n"
 "Language-Team: Catalan <ca at li.org>\n"
@@ -1506,10 +1506,22 @@ msgid ""
 "--------------"
 msgstr ""
 
+#, fuzzy, python-format
+msgid "Revision #%s"
+msgstr " Nova versió: \"%s\""
+
 #, python-format
 msgid "[%s:%s]: row not updated (nothing returned), row in use ?"
 msgstr ""
 
+#, fuzzy, python-format
+msgid "<%s(.bat)> not found"
+msgstr "No s'ha trobat la pàgina"
+
+#, fuzzy, python-format
+msgid "problem with <%s>"
+msgstr "Processat per:"
+
 #, python-format
 msgid "[%s] is not a readable file"
 msgstr ""
@@ -1538,23 +1550,9 @@ msgstr "1 Byte"
 msgid "%s Bytes"
 msgstr "Bytes"
 
-#, python-format
-msgid ""
-"Cannot connect to configuration database with:\n"
-"\n"
-"[%s]"
-msgstr ""
-
-#, python-format
-msgid ""
-"Cannot connect to database with:\n"
-"\n"
-"[%s]"
+msgid "<type>"
 msgstr ""
 
-msgid "No product information available."
-msgstr "Informació del producte no disponible."
-
 #, python-format
 msgid ""
 "Cannot retrieve version information from:\n"
@@ -1898,74 +1896,6 @@ msgstr " opció [%s]: %s"
 msgid "  risk: %s"
 msgstr "  risc: %s"
 
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Are you sure you have got a local database installed ?\n"
-"\n"
-"Please retry with proper credentials or cancel.\n"
-"\n"
-"You may also need to check the PostgreSQL client\n"
-"authentication configuration in pg_hba.conf. For\n"
-"details see:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-msgstr ""
-
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Please retry with proper credentials or cancel.\n"
-"\n"
-"You may also need to check the PostgreSQL client\n"
-"authentication configuration in pg_hba.conf. For\n"
-"details see:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-msgstr ""
-
-msgid "Connecting to backend"
-msgstr ""
-
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Please retry another backend / user / password combination !\n"
-msgstr ""
-
-msgid "programmer forgot to specify error message"
-msgstr "missatge d'error no especificat pel programador"
-
-msgid ""
-"\n"
-"\n"
-"Please consult the error log for all the gory details !"
-msgstr ""
-
-msgid "generic error message"
-msgstr "missatge d'error genèric"
-
-msgid "programmer forgot to specify info message"
-msgstr "el programador no va especificar el missatge d'informació"
-
-msgid "generic info message"
-msgstr "missatge d'inforamció genèric"
-
-msgid "programmer forgot to specify warning"
-msgstr "el programador no va especificar el missatge d'alerta"
-
-msgid "generic warning message"
-msgstr "missatge d'alerta genèric"
-
 msgid "no hook specified, please report bug"
 msgstr ""
 
@@ -2286,6 +2216,32 @@ msgstr ""
 msgid "Include:"
 msgstr ""
 
+msgid "&Search"
+msgstr ""
+
+msgid "Suggest"
+msgstr ""
+
+msgid "Set"
+msgstr ""
+
+msgid "dialog_1"
+msgstr ""
+
+msgid "Search patients in Orthanc DICOM store."
+msgstr ""
+
+#, fuzzy
+msgid "Suggest a patient ID based on the active patient."
+msgstr "No hi ha entrades per aquest episodi"
+
+msgid "Search term:"
+msgstr ""
+
+#, fuzzy
+msgid "New patient ID:"
+msgstr "Identificació pacient intern"
+
 msgid "Your review"
 msgstr "La teva revisió"
 
@@ -2589,6 +2545,103 @@ msgstr "Substància"
 msgid "Amount"
 msgstr "Compte"
 
+#, fuzzy
+msgid "&Connect"
+msgstr "Documents"
+
+msgid "&Browse"
+msgstr ""
+
+#, fuzzy
+msgid "<not connected>"
+msgstr "Vacunació"
+
+msgid "Browse all"
+msgstr ""
+
+#, fuzzy
+msgid "Export all"
+msgstr "Informe"
+
+msgid "Browse"
+msgstr ""
+
+#, fuzzy
+msgid "Export"
+msgstr "Informe"
+
+msgid "Upload"
+msgstr ""
+
+#, fuzzy
+msgid "Enter the PACS host address."
+msgstr "Entri el número de la casa."
+
+msgid "Enter the PACS port."
+msgstr ""
+
+msgid "Enter the PACS user."
+msgstr ""
+
+#, fuzzy
+msgid "Enter the PACS password. It will not be shown."
+msgstr ""
+"La contrasenya pel nou compte a la base de dades. L'entrada no s'ensenyarà."
+
+#, fuzzy
+msgid "Connect to PACS."
+msgstr "Connectat a GNUmed"
+
+msgid "Browse PACS at top level."
+msgstr ""
+
+msgid "Modify some of Orthanc content (such as patient IDs)."
+msgstr ""
+
+#, fuzzy
+msgid "Browse overview of studies for this patient."
+msgstr "No hi ha episodis per aquest assumpte mèdic."
+
+#, fuzzy
+msgid "Copy all studies into export area."
+msgstr "Llistat de vacunes buit"
+
+#, fuzzy
+msgid "Browse topmost selected study."
+msgstr "Edita l'entrada seleccionada."
+
+#, fuzzy
+msgid "Copy selected studies into export area."
+msgstr "Llistat de vacunes buit"
+
+#, fuzzy
+msgid "Save selected studies to disk."
+msgstr "Esborra les entrades seleccionades de la llista."
+
+msgid ""
+"Upload DICOM files from a directory, recursively, into the Orthanc PACS\n"
+"\n"
+"The currently active patient does not matter. Orthanc will associate "
+"uploaded files with the patient found within the DICOM metadata. It will "
+"create new patients as needed."
+msgstr ""
+
+msgid "Host:"
+msgstr ""
+
+msgid "Port:"
+msgstr ""
+
+msgid "User:"
+msgstr ""
+
+msgid "Password"
+msgstr "Contrasenya"
+
+#, fuzzy
+msgid "Selected studies:"
+msgstr "Selecciona"
+
 msgid "Fake brand"
 msgstr ""
 
@@ -2930,10 +2983,6 @@ msgstr "missatge d'error genèric"
 msgid "&Load"
 msgstr ""
 
-#, fuzzy
-msgid "Export"
-msgstr "Informe"
-
 msgid "A long, descriptive name for this form template."
 msgstr "Un nom llarg i descriptiu per aquesta plantilla."
 
@@ -3023,15 +3072,13 @@ msgstr ""
 msgid "Document Properties"
 msgstr ""
 
-msgid "Show part"
-msgstr ""
+#, fuzzy
+msgid "Show"
+msgstr "Mostra l'hora"
 
 msgid "Remove part"
 msgstr ""
 
-msgid "Parts"
-msgstr ""
-
 msgid "Discard"
 msgstr ""
 
@@ -3060,6 +3107,9 @@ msgstr ""
 msgid "Required: The primary episode this document is to be listed under."
 msgstr ""
 
+msgid "Optional: The organization (unit) this document originated from."
+msgstr ""
+
 msgid ""
 "Optional: A short comment identifying the document. Good comments give an "
 "idea of the content and source of the document."
@@ -3084,6 +3134,9 @@ msgid ""
 "normal and abnormal resuslts can be relevant."
 msgstr ""
 
+msgid "Optional: A free-text document description."
+msgstr "Opcional: una descripció en un document de text lliure."
+
 msgid "This field lists the parts belonging to the current document."
 msgstr ""
 
@@ -3095,9 +3148,6 @@ msgid ""
 "deletion from disk."
 msgstr ""
 
-msgid "Optional: A free-text document description."
-msgstr "Opcional: una descripció en un document de text lliure."
-
 msgid "Save finished document."
 msgstr "Guarda el document finalitzat."
 
@@ -3115,6 +3165,10 @@ msgstr "Data de creació:"
 msgid "Associate to episode:"
 msgstr "Associa a l'episodi:"
 
+#, fuzzy
+msgid "Document source:"
+msgstr "Documents"
+
 msgid "Comment / Identification:"
 msgstr ""
 
@@ -3302,7 +3356,7 @@ msgstr ""
 msgid "Messages:"
 msgstr ""
 
-msgid "Only:"
+msgid "Limit to:"
 msgstr ""
 
 msgid "&Myself … or:"
@@ -3414,10 +3468,10 @@ msgstr "Acabat"
 msgid "Purpose"
 msgstr ""
 
-msgid "Details"
+msgid "Please supply your email address here !"
 msgstr ""
 
-msgid "<Please supply your email address here !>"
+msgid "Details"
 msgstr ""
 
 msgid "Keep running"
@@ -3441,9 +3495,11 @@ msgid ""
 msgstr ""
 
 msgid ""
-"Please enter your email address so we can provide feedback directly to you. "
-"Otherwise, feedback will be given on the GNUmed mailing list (http://lists."
-"gnu.org/mailman/listinfo/gnumed-bugs)."
+"Please enter your email address so we can provide help to you directly.\n"
+"\n"
+"Otherwise, feedback can be given on the GNUmed mailing list (http://lists."
+"gnu.org/mailman/listinfo/gnumed-bugs) ONLY to which you will then have to "
+"subscribe."
 msgstr ""
 
 msgid "Find help on http://wiki.gnumed.de, too."
@@ -3561,9 +3617,6 @@ msgstr ""
 msgid "Account"
 msgstr "Compte"
 
-msgid "Password"
-msgstr "Contrasenya"
-
 msgid "Password, again"
 msgstr "Contrasenya, altre cop"
 
@@ -4076,8 +4129,9 @@ msgstr "Edita les propietats del document"
 msgid "Acquire images from image source (scanner, ...)."
 msgstr ""
 
-msgid "Acquire images or text from the clipboard."
-msgstr ""
+#, fuzzy
+msgid "Acquire file or text from the clipboard."
+msgstr "Esborra les entrades seleccionades de la llista."
 
 #, fuzzy
 msgid "Remove the selected documents."
@@ -4233,7 +4287,7 @@ msgid ""
 "- the result list will be artificially limited to the first 1000 rows\n"
 "- you can include a column named \"pk_patient\" to make the result rows "
 "activate the corresponding patient on double-clicking\n"
-"- by inserting $<ID_active_patient>$ you can access the patient ID of the "
+"- by inserting $<ID_ACTIVE_PATIENT>$ you can access the patient ID of the "
 "patient active at the time of running the query"
 msgstr ""
 
@@ -4394,9 +4448,6 @@ msgstr ""
 msgid "Link &new"
 msgstr ""
 
-msgid "Browse"
-msgstr ""
-
 msgid ""
 "Search for matches among existing addresses and [Link] a selection, or [Link "
 "(a) new] address."
@@ -4448,28 +4499,17 @@ msgid ""
 "left."
 msgstr ""
 
-msgid "label_1"
-msgstr ""
-
-msgid "→"
-msgstr ""
-
-msgid "←"
-msgstr ""
-
-msgid "Extra"
-msgstr ""
+msgid "Subjective"
+msgstr "Subjectiu"
 
-#, fuzzy
-msgid "Move selected items from left to right."
-msgstr "Esborra les entrades seleccionades de la llista."
+msgid "Objective"
+msgstr "Objectiu"
 
-#, fuzzy
-msgid "Move selected items from right to left."
-msgstr "Esborra les entrades seleccionades de la llista."
+msgid "Assessment"
+msgstr "Avaluació"
 
-msgid "Cancel picking items."
-msgstr ""
+msgid "Plan"
+msgstr "Pla"
 
 #, fuzzy
 msgid "Episode synopsis"
@@ -4510,28 +4550,39 @@ msgid ""
 "narrative belongs to."
 msgstr ""
 
-msgid "Subjective"
-msgstr "Subjectiu"
-
 msgid "Codes:"
 msgstr ""
 
-msgid "Objective"
-msgstr "Objectiu"
-
-msgid "Assessment"
-msgstr "Avaluació"
-
-msgid "Plan"
-msgstr "Pla"
-
-msgid "1"
+msgid "label_1"
 msgstr ""
 
-msgid "2"
+msgid "→"
 msgstr ""
 
-msgid "3"
+msgid "←"
+msgstr ""
+
+msgid "Extra"
+msgstr ""
+
+#, fuzzy
+msgid "Move selected items from left to right."
+msgstr "Esborra les entrades seleccionades de la llista."
+
+#, fuzzy
+msgid "Move selected items from right to left."
+msgstr "Esborra les entrades seleccionades de la llista."
+
+msgid "Cancel picking items."
+msgstr ""
+
+msgid "1"
+msgstr ""
+
+msgid "2"
+msgstr ""
+
+msgid "3"
 msgstr ""
 
 msgid ""
@@ -4699,6 +4750,88 @@ msgstr ""
 msgid "Age range"
 msgstr ""
 
+msgid "&Nicotine"
+msgstr ""
+
+msgid "&Alcohol"
+msgstr ""
+
+msgid "&Other:"
+msgstr ""
+
+msgid "&Non-harmful use"
+msgstr ""
+
+msgid "&Harmful use"
+msgstr ""
+
+msgid "Presently &addicted"
+msgstr ""
+
+msgid "Previously &addicted"
+msgstr ""
+
+msgid "&Reconfirm as of today"
+msgstr ""
+
+#, fuzzy
+msgid "Select for documenting smoking status."
+msgstr "Vacunació"
+
+msgid "Select for documenting alcohol use status."
+msgstr ""
+
+msgid ""
+"Select for documenting use of substances other than nicotine or alcohol."
+msgstr ""
+
+#, fuzzy
+msgid "Select the abused substance."
+msgstr "Sisuplau, seleccioni un assumpte mèdic."
+
+msgid ""
+"Select if the substance use is not considered harmful (say, no use or non-"
+"harmful use)."
+msgstr ""
+
+msgid "Select if substance is use considered harmful."
+msgstr ""
+
+#, fuzzy
+msgid "Select if the patient is presently addicted to this substance."
+msgstr "Selecciona-ho si el pacient no té al·lèrgies"
+
+#, fuzzy
+msgid "Select if the patient was previously addicted to this substance."
+msgstr "Selecciona-ho si el pacient no té al·lèrgies"
+
+msgid ""
+"A comment on this substance use:\n"
+"- type of product used\n"
+"- frequency\n"
+"- amount\n"
+"- when started\n"
+"- attempts to quit\n"
+"..."
+msgstr ""
+
+msgid ""
+"When did the patient quit?\n"
+"\n"
+"You can also set a target quit date here."
+msgstr ""
+
+#, fuzzy
+msgid "Check here to confirm for today."
+msgstr "Configuració d'imprssió"
+
+msgid "Quit date"
+msgstr ""
+
+#, fuzzy
+msgid "Last confirmed"
+msgstr "Confirmat per última:"
+
 msgid "Closed episodes"
 msgstr ""
 
@@ -5038,20 +5171,19 @@ msgstr ""
 msgid "Show:"
 msgstr ""
 
-msgid "Brand by component"
+msgid "Kidneys"
 msgstr ""
 
 msgid "Brands"
 msgstr ""
 
-msgid "Kidneys"
-msgstr ""
-
-msgid "Unbranded substance"
-msgstr ""
+#, fuzzy
+msgid "Substances"
+msgstr "Substància"
 
-msgid "Manage"
-msgstr ""
+#, fuzzy
+msgid "&Unknown or date:"
+msgstr "reacció desconeguda"
 
 msgid "Approved of"
 msgstr ""
@@ -5066,23 +5198,20 @@ msgid "... Reason"
 msgstr ""
 
 msgid ""
-"A component of a drug brand the patient is taking.\n"
+"A drug the patient is taking.\n"
 "\n"
-"Lookup, and select, a single- (or multi-) component drug brand, by active "
-"ingredient name. All components of multi-component drugs will be displayed "
-"and automatically added to the patient's list."
-msgstr ""
-
-msgid ""
-"Manage drug brands.\n"
+"Lookup and select an intake by either of\n"
+"- a generic substance name\n"
+"- a drug brand name\n"
+"- an active ingredient of a drug\n"
 "\n"
-"Note that this will not select a component for you. What it does is to let "
-"you manage (add/edit/delete) the drug products/brands known to GNUmed from "
-"which you can select a component."
+"Note that all components of multi-component drugs will be displayed and "
+"automatically added to the patient's list."
 msgstr ""
 
-msgid "The active ingredients of this brand."
-msgstr ""
+#, fuzzy
+msgid "Details on the selected drug."
+msgstr "Edita l'entrada seleccionada."
 
 msgid "Show cardiac information relevant to substance selection."
 msgstr ""
@@ -5091,8 +5220,11 @@ msgid "Show renal insufficiency information related to substance selection."
 msgstr ""
 
 msgid ""
-"The non-branded medication or non-medication substance, with optional "
-"strength."
+"Manage drug brands.\n"
+"\n"
+"Note that this will not select a component for you. What it does is to let "
+"you manage (add/edit/delete) the drug products/brands known to GNUmed from "
+"which you can select a component."
 msgstr ""
 
 msgid ""
@@ -5105,11 +5237,20 @@ msgstr ""
 msgid "The preparation or form of the substance."
 msgstr ""
 
+#, fuzzy
+msgid "Check here if the start date simply isn't known."
+msgstr "Comprova si és un problema clínicament rellevant."
+
 msgid ""
 "When was this substance started to be consumed or - if not known - the "
 "earliest it is known to have been be consumed."
 msgstr ""
 
+msgid ""
+"A coment on the certainty of the start date, such as \"+/- 3 weeks\", "
+"\"spring of 2002\", \"shortly after Easter 1996\", ...."
+msgstr ""
+
 msgid "Whether this substance is taken by advice."
 msgstr ""
 
@@ -5143,6 +5284,15 @@ msgstr ""
 msgid "Reason for discontinuation."
 msgstr ""
 
+msgid "Drug"
+msgstr ""
+
+msgid "Research:"
+msgstr ""
+
+msgid "Certainty:"
+msgstr ""
+
 msgid "Schedule"
 msgstr ""
 
@@ -5297,6 +5447,34 @@ msgstr ""
 msgid "Channel"
 msgstr "Canal"
 
+#, fuzzy
+msgid "&Last modification time"
+msgstr "Darrera modificació:"
+
+#, fuzzy
+msgid "&Entry time"
+msgstr "Mostra l'hora"
+
+msgid "Show journal ordered by encounter."
+msgstr ""
+
+msgid "Show journal ordered by time of last modification."
+msgstr ""
+
+msgid "Show journal ordered by actual clinical time of each entry."
+msgstr ""
+
+#, fuzzy
+msgid "Edit the selected chart entry."
+msgstr "Edita l'entrada seleccionada."
+
+#, fuzzy
+msgid "Delete selected chart entry."
+msgstr "Edita les propietats del document"
+
+msgid "Order by:"
+msgstr ""
+
 msgid "Chec&k"
 msgstr ""
 
@@ -5861,10 +6039,13 @@ msgstr "Detalls de la mesura"
 msgid "Documents:"
 msgstr "Documents"
 
+msgid "&L"
+msgstr ""
+
 msgid "&N"
 msgstr ""
 
-msgid "&L"
+msgid "List all encounters."
 msgstr ""
 
 #, fuzzy
@@ -5875,9 +6056,6 @@ msgstr "Visita"
 msgid "Start a new encounter for the active patient."
 msgstr "No hi ha entrades per aquest episodi"
 
-msgid "List all encounters."
-msgstr ""
-
 msgid "Clinically relevant"
 msgstr "Cínicament rellevant."
 
@@ -6132,10 +6310,12 @@ msgstr ""
 msgid "Manage dynamic hints."
 msgstr "Guarda el document finalitzat."
 
+#, fuzzy
 msgid ""
 "Rationale for\n"
-"suppression"
-msgstr ""
+"suppression\n"
+"for this patient"
+msgstr "Identificació pacient extern"
 
 msgid "Save &under"
 msgstr ""
@@ -6191,6 +6371,12 @@ msgstr ""
 msgid "Encounter:"
 msgstr ""
 
+msgid "Manage"
+msgstr ""
+
+msgid "&Panel:"
+msgstr ""
+
 msgid "&Pick"
 msgstr ""
 
@@ -6235,6 +6421,9 @@ msgid ""
 "To disable that popup leave the message empty."
 msgstr ""
 
+msgid "Show search dialog."
+msgstr ""
+
 msgid "THIS IS NOT A VERIFIED MEASUREMENT. DO NOT USE FOR ACTUAL CARE."
 msgstr ""
 
@@ -6522,6 +6711,53 @@ msgstr ""
 msgid "ERROR: unknown allergy state [%s]"
 msgstr ""
 
+msgid "definite"
+msgstr ""
+
+msgid "indefinite"
+msgstr ""
+
+#, fuzzy
+msgid "Reaction:"
+msgstr "Reacció"
+
+msgid "Noted:"
+msgstr ""
+
+#, fuzzy
+msgid "Allergene:"
+msgstr "Al·lèrgia"
+
+#, fuzzy
+msgid "Substance:"
+msgstr "Substància"
+
+#, fuzzy
+msgid "Code:"
+msgstr "Pacient"
+
+msgid "ATC:"
+msgstr ""
+
+msgid "Specific to:"
+msgstr ""
+
+#, fuzzy
+msgid "this substance only"
+msgstr "Vacunació"
+
+#, fuzzy
+msgid "drug class"
+msgstr "Tipus de fàrmac."
+
+#, fuzzy
+msgid "unknown"
+msgstr "Es desconeix"
+
+#, fuzzy
+msgid "Generics:"
+msgstr "Genèrics"
+
 msgid "Medication history"
 msgstr ""
 
@@ -6533,9 +6769,15 @@ msgstr "Descripció"
 msgid "prescription data"
 msgstr "Descripció"
 
+msgid "Consumable substance"
+msgstr ""
+
 msgid "in use"
 msgstr ""
 
+msgid "w/"
+msgstr ""
+
 msgid "long-term"
 msgstr "llarg-termini"
 
@@ -6555,6 +6797,35 @@ msgid "?ongoing"
 msgstr "?encurs"
 
 #, python-format
+msgid ""
+"Substance abuse entry                                              [#%s]\n"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "Substance: %s [#%s]%s\n"
+msgstr "Substància"
+
+#, fuzzy, python-format
+msgid "Use type: %s\n"
+msgstr "Pacient"
+
+#, fuzzy, python-format
+msgid "Last checked: %s\n"
+msgstr "última comprovació:"
+
+#, python-format
+msgid " Discontinued %s\n"
+msgstr ""
+
+#, fuzzy, python-format
+msgid " Notes: %s\n"
+msgstr "Pacient"
+
+#, python-format
+msgid "Revision: #%(row_ver)s, %(mod_when)s by %(mod_by)s."
+msgstr ""
+
+#, python-format
 msgid "Substance intake entry (%s, %s)   [#%s]                     \n"
 msgstr ""
 
@@ -6570,9 +6841,6 @@ msgstr ""
 msgid "unapproved"
 msgstr ""
 
-msgid "definite"
-msgstr ""
-
 msgid "suspected"
 msgstr ""
 
@@ -6619,10 +6887,6 @@ msgid " (short-term)"
 msgstr ""
 
 #, python-format
-msgid " Discontinued %s\n"
-msgstr ""
-
-#, python-format
 msgid " Reason: %s\n"
 msgstr ""
 
@@ -6642,37 +6906,104 @@ msgstr "Assumpte mèdic:"
 msgid " Advice: %s\n"
 msgstr ""
 
-#, python-format
-msgid "Revision: #%(row_ver)s, %(mod_when)s by %(mod_by)s."
+#, fuzzy
+msgid "medication, not abuse"
+msgstr "Preguntes més freqüents"
+
+msgid "no or non-harmful use"
+msgstr ""
+
+msgid "presently harmful use"
+msgstr ""
+
+msgid "presently addicted"
+msgstr ""
+
+msgid "previously addicted"
 msgstr ""
 
 #, fuzzy, python-format
-msgid "%s: %s ago"
+msgid "%s%s: %s ago%s"
 msgstr "Documents: %s"
 
 #, fuzzy, python-format
-msgid "%s: %s ago (%s)"
+msgid "%s%s: %s ago (%s)"
 msgstr "%s la setmana passada (%s of %s)"
 
-msgid "Additional notes"
-msgstr "Annotacions adicionals"
+#, fuzzy, python-format
+msgid "%s%s%s (%s ago)"
+msgstr "%s la setmana passada (%s of %s)"
 
-msgid "Strength"
-msgstr ""
+#, fuzzy, python-format
+msgid "%s%s%s (%s ago, %s)"
+msgstr "%s la setmana passada (%s of %s)"
 
-msgid "Medication list"
+#, python-format
+msgid "%s ago"
 msgstr ""
 
-msgid "ordered by brand"
-msgstr ""
+#, fuzzy, python-format
+msgid "in %s"
+msgstr "  risc: %s"
 
-msgid "Drug"
+#, fuzzy, python-format
+msgid ", until %s (%s)"
+msgstr "Pacient"
+
+#, python-format
+msgid " (planned for %s%s)"
+msgstr ""
+
+#, python-format
+msgid ", planned for %s%s"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "%s ago (for %s: %s %s %s)"
+msgstr "Pacient:  , No:\n"
+
+msgid "Additional notes"
+msgstr "Annotacions adicionals"
+
+msgid "Strength"
+msgstr ""
+
+msgid "Medication list"
+msgstr ""
+
+msgid "ordered by brand"
 msgstr ""
 
 #, fuzzy
 msgid "Regimen / Advice"
 msgstr "Règim"
 
+#, fuzzy, python-format
+msgid "Component of %s (%s)"
+msgstr "Documents"
+
+#, fuzzy, python-format
+msgid "ATC (substance): %s"
+msgstr "Substància"
+
+#, python-format
+msgid "ATC (brand): %s"
+msgstr ""
+
+msgid "this is a component of a fake brand"
+msgstr ""
+
+#, fuzzy
+msgid "Components:"
+msgstr "Documents"
+
+msgid "this is a fake brand"
+msgstr ""
+
+#, fuzzy
+msgid "this is a vaccine"
+msgstr "vacuna"
+
 msgid "units"
 msgstr "unitats"
 
@@ -6706,52 +7037,15 @@ msgid "Expires: %s\n"
 msgstr "Pacient"
 
 #, fuzzy
-msgid "Active clinical hint"
-msgstr "clinicament no rellevant"
-
-#, fuzzy
-msgid "Inactive clinical hint"
-msgstr "clinicament no rellevant"
-
-#, python-format
-msgid "Source: %s\n"
-msgstr ""
-
-#, fuzzy, python-format
-msgid "Language: %s\n"
-msgstr "Pacient"
-
-#, fuzzy
-msgid "Suppressed active dynamic hint"
-msgstr "Guarda el document finalitzat."
-
-#, fuzzy
-msgid "Suppressed inactive dynamic hint"
-msgstr "Guarda el document finalitzat."
-
-#, fuzzy, python-format
-msgid "Suppressed by: %s\n"
-msgstr "Pacient"
-
-#, fuzzy, python-format
-msgid "Suppressed at: %s\n"
-msgstr "Pacient"
-
-#, fuzzy, python-format
-msgid "Hint #: %s\n"
+msgid "HL7 Source"
 msgstr "Pacient"
 
-#, fuzzy, python-format
-msgid "Patient #: %s\n"
-msgstr "Pacient"
+msgid "HL7 data size"
+msgstr ""
 
 #, fuzzy, python-format
-msgid "MD5 (currently): %s\n"
-msgstr "Documents: %s"
-
-#, python-format
-msgid "MD5 (at suppression): %s\n"
-msgstr ""
+msgid "%s bytes"
+msgstr "Bytes"
 
 msgid "HL7 Message"
 msgstr ""
@@ -6806,13 +7100,6 @@ msgstr ""
 msgid "doc: %s"
 msgstr "   Doc: %s"
 
-msgid "no patient photograph available"
-msgstr ""
-
-#, python-format
-msgid "patient photograph from %s"
-msgstr ""
-
 #, fuzzy
 msgid "Patient data for"
 msgstr "Pacient"
@@ -6824,6 +7111,9 @@ msgstr ""
 msgid "Patient data export"
 msgstr "Pacient"
 
+msgid "no patient photograph available"
+msgstr ""
+
 msgid "Documents"
 msgstr ""
 
@@ -6834,6 +7124,10 @@ msgstr ""
 msgid "browse documents area"
 msgstr " %s documents\n"
 
+#, python-format
+msgid "patient photograph from %s"
+msgstr ""
+
 #, fuzzy
 msgid "Browse patient data"
 msgstr "Pacient"
@@ -6871,24 +7165,24 @@ msgstr ""
 #, python-format
 msgid ""
 "%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s %(suburb)s, "
-"%(code_state)s, %(code_country)s"
+"%(code_region)s, %(code_country)s"
 msgstr ""
 
 #, python-format
 msgid ""
 "%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s %(suburb)s, "
-"%(code_state)s, %(code_country)s"
+"%(code_region)s, %(code_country)s"
 msgstr ""
 
 #, python-format
 msgid ""
-"%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_state)s, "
-"%(code_country)s"
+"%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, "
+"%(code_region)s, %(code_country)s"
 msgstr ""
 
 #, python-format
 msgid ""
-"%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_state)s, "
+"%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_region)s, "
 "%(code_country)s"
 msgstr ""
 
@@ -6898,7 +7192,7 @@ msgid ""
 " Street: %(street)s%(notes_street)s\n"
 " Number/Unit: %(number)s%(subunit)s%(notes_subunit)s\n"
 " Location: %(zip)s %(urb)s%(suburb)s\n"
-" Region: %(l10n_state)s, %(code_state)s\n"
+" Region: %(l10n_region)s, %(code_region)s\n"
 " Country: %(l10n_country)s, %(code_country)s"
 msgstr ""
 
@@ -6908,7 +7202,7 @@ msgid ""
 " Street: %(street)s%(notes_street)s\n"
 " Number/Unit: %(number)s%(subunit)s%(notes_subunit)s\n"
 " Location: %(zip)s %(urb)s%(suburb)s\n"
-" Region: %(l10n_state)s, %(code_state)s\n"
+" Region: %(l10n_region)s, %(code_region)s\n"
 " Country: %(l10n_country)s, %(code_country)s"
 msgstr ""
 
@@ -6977,6 +7271,93 @@ msgstr "resultat corretgit"
 msgid "missing, reported later"
 msgstr ""
 
+msgid "Health issue"
+msgstr ""
+
+#, fuzzy
+msgid "External care"
+msgstr "Identificació pacient extern"
+
+msgid "Vaccination"
+msgstr "Vacunació"
+
+#, fuzzy
+msgid "Clinical narrative"
+msgstr "Annotacions clíniques"
+
+#, fuzzy
+msgid "Test result"
+msgstr "Resultats de les proves"
+
+#, fuzzy
+msgid "Substance intake"
+msgstr "Substància"
+
+#, fuzzy
+msgid "Hospital stay"
+msgstr "Estades hospitalàries"
+
+msgid "Performed procedure"
+msgstr ""
+
+#, fuzzy
+msgid "Family history"
+msgstr "Guarda el document finalitzat."
+
+#, fuzzy
+msgid "Document"
+msgstr "Documents"
+
+#, python-format
+msgid "unmapped entry type from table [%s]"
+msgstr ""
+
+#, python-format
+msgid "cannot instantiate clinical root item <%s(%s)>"
+msgstr ""
+
+msgid "True"
+msgstr ""
+
+msgid "False"
+msgstr ""
+
+#, fuzzy
+msgid "unknown smoking status"
+msgstr "Vacunació"
+
+msgid "non-smoker"
+msgstr ""
+
+msgid "current smoker"
+msgstr ""
+
+msgid "ex-smoker"
+msgstr ""
+
+msgid "tobacco addiction"
+msgstr ""
+
+msgid "no or non-harmful alcohol use"
+msgstr ""
+
+msgid "harmful alcohol use"
+msgstr ""
+
+#, fuzzy
+msgid "unknown alcohol use"
+msgstr "reacció desconeguda"
+
+msgid "no or non-harmful drug use"
+msgstr ""
+
+msgid "harmful drug use"
+msgstr ""
+
+#, fuzzy
+msgid "unknown drug use"
+msgstr "gènere desconegut"
+
 msgid "original entry"
 msgstr "entrada original"
 
@@ -7073,14 +7454,6 @@ msgstr "Opcions"
 msgid "Vaccinations"
 msgstr "Vacunacions"
 
-#, python-format
-msgid "%s ago"
-msgstr ""
-
-#, fuzzy
-msgid "External care"
-msgstr "Identificació pacient extern"
-
 #, fuzzy
 msgid "Allergies/Intolerances"
 msgstr "al·lèrgies/intoleràncies"
@@ -7157,6 +7530,87 @@ msgid ""
 "The account was deactivated instead."
 msgstr ""
 
+msgid "SOAP_char_S=S"
+msgstr ""
+
+msgid "SOAP_char_O=O"
+msgstr ""
+
+msgid "SOAP_char_A=A"
+msgstr ""
+
+msgid "SOAP_char_P=P"
+msgstr ""
+
+msgid "SOAP_char_U=U"
+msgstr ""
+
+msgid "SOAP_string_Subjective=Subjective"
+msgstr ""
+
+msgid "SOAP_string_Objective=Objective"
+msgstr ""
+
+msgid "SOAP_string_Assessment=Assessment"
+msgstr ""
+
+msgid "SOAP_string_Plan=Plan"
+msgstr ""
+
+msgid "SOAP_string_Unspecified=Unspecified"
+msgstr ""
+
+msgid "SOAP_string_Administrative=Administrative"
+msgstr ""
+
+#, fuzzy
+msgid "Active clinical hint"
+msgstr "clinicament no rellevant"
+
+#, fuzzy
+msgid "Inactive clinical hint"
+msgstr "clinicament no rellevant"
+
+#, python-format
+msgid "Source: %s\n"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "Language: %s\n"
+msgstr "Pacient"
+
+#, fuzzy
+msgid "Suppressed active dynamic hint"
+msgstr "Guarda el document finalitzat."
+
+#, fuzzy
+msgid "Suppressed inactive dynamic hint"
+msgstr "Guarda el document finalitzat."
+
+#, fuzzy, python-format
+msgid "Suppressed by: %s\n"
+msgstr "Pacient"
+
+#, fuzzy, python-format
+msgid "Suppressed at: %s\n"
+msgstr "Pacient"
+
+#, fuzzy, python-format
+msgid "Hint #: %s\n"
+msgstr "Pacient"
+
+#, fuzzy, python-format
+msgid "Patient #: %s\n"
+msgstr "Pacient"
+
+#, fuzzy, python-format
+msgid "MD5 (currently): %s\n"
+msgstr "Documents: %s"
+
+#, python-format
+msgid "MD5 (at suppression): %s\n"
+msgstr ""
+
 #, fuzzy, python-format
 msgid "Device(%s):"
 msgstr "Dispostiu:"
@@ -7183,6 +7637,12 @@ msgstr "Impedància"
 msgid "Praxis branch                   #%s\n"
 msgstr ""
 
+#, python-format
+msgid ""
+"FN:%(l10n_unit_category)s %(branch)s of %(l10n_organization_category)s "
+"%(praxis)s"
+msgstr ""
+
 msgid "Privacy notice"
 msgstr ""
 
@@ -7196,52 +7656,19 @@ msgstr ""
 msgid "%s: Staff member %s has been notified of your chart access."
 msgstr ""
 
-msgid "soap_S"
-msgstr ""
-
-msgid "soap_O"
+#, python-format
+msgid ""
+"%s: %s by %.8s (v%s)\n"
+"%s"
 msgstr ""
 
-msgid "soap_A"
+#, python-format
+msgid "External care               #%s"
 msgstr ""
 
-msgid "soap_P"
-msgstr ""
-
-msgid "soap_U"
-msgstr ""
-
-msgid "soap_Subjective"
-msgstr ""
-
-msgid "soap_Objective"
-msgstr ""
-
-msgid "soap_Assessment"
-msgstr ""
-
-msgid "soap_Plan"
-msgstr ""
-
-msgid "soap_Unspecified"
-msgstr ""
-
-msgid "soap_Administrative"
-msgstr ""
-
-#, python-format
-msgid ""
-"%s: %s by %.8s (v%s)\n"
-"%s"
-msgstr ""
-
-#, python-format
-msgid "External care               #%s"
-msgstr ""
-
-#, fuzzy, python-format
-msgid "Issue: %s"
-msgstr "Assumpte mèdic:"
+#, fuzzy, python-format
+msgid "Issue: %s"
+msgstr "Assumpte mèdic:"
 
 #, fuzzy, python-format
 msgid "Health issue: %s"
@@ -7294,9 +7721,17 @@ msgid "%(last)s,%(title)s %(first)s%(nick)s (%(sex)s)"
 msgstr ""
 
 #, python-format
+msgid "%(last)s,%(title)s %(first)s (%(sex)s)"
+msgstr ""
+
+#, python-format
 msgid "%(last)s,%(title)s %(first)s%(nick)s"
 msgstr ""
 
+#, python-format
+msgid "%(last)s,%(title)s %(first)s"
+msgstr ""
+
 msgid "Cannot merge active patient into another patient."
 msgstr ""
 
@@ -7306,9 +7741,6 @@ msgstr ""
 msgid "merged"
 msgstr ""
 
-msgid "preferred name/call name/..."
-msgstr ""
-
 msgid "invalid age: DOB in the future"
 msgstr ""
 
@@ -7321,10 +7753,6 @@ msgstr "Sr"
 msgid "Mrs"
 msgstr "Sra"
 
-#, fuzzy
-msgid "unknown"
-msgstr "Es desconeix"
-
 msgid "empty status"
 msgstr ""
 
@@ -7662,7 +8090,7 @@ msgid " Part %s: %s %s(%s Bytes)\n"
 msgstr "%s la setmana passada (%s of %s)"
 
 #, fuzzy, python-format
-msgid " Filename: %s\n"
+msgid " Filename: %s%s\n"
 msgstr "Nom del fitxer"
 
 #, fuzzy
@@ -7677,19 +8105,26 @@ msgstr "part"
 msgid "%s parts"
 msgstr "part"
 
+#, fuzzy, python-format
+msgid "%s of %s"
+msgstr " %s documents\n"
+
 #, python-format
 msgid ""
 "%s (%s)   #%s\n"
-"\n"
 " Created: %s\n"
 " Episode: %s\n"
-"%s%s%s"
+"%s%s%s%s"
 msgstr ""
 
 #, python-format
 msgid " External reference: %s\n"
 msgstr ""
 
+#, fuzzy, python-format
+msgid " Organization: %%s @ %s\n"
+msgstr "Vacunació"
+
 msgid "Cannot run [arriba] !"
 msgstr ""
 
@@ -8043,25 +8478,9 @@ msgid "External care:"
 msgstr "Identificació pacient extern"
 
 #, fuzzy, python-format
-msgid ""
-"health issue: %s%s%s\n"
-"\n"
+msgid "Health issue: %s%s%s"
 msgstr "Assumpte mèdic:"
 
-msgid ""
-"\n"
-"current values:\n"
-msgstr ""
-
-msgid "no previous versions of this record"
-msgstr ""
-
-msgid ""
-"\n"
-"all values with <audit_action>, <audit_when>, <audit_by> fields (current "
-"value first):\n"
-msgstr ""
-
 msgid "Unattributed episodes"
 msgstr "Episodis no atribuïts"
 
@@ -8084,9 +8503,6 @@ msgstr "Pacient:  , No:\n"
 msgid "finished"
 msgstr "finalitzat"
 
-msgid "Health issue"
-msgstr ""
-
 msgid "none associated"
 msgstr ""
 
@@ -8123,9 +8539,7 @@ msgid "Measurements and Results:"
 msgstr "Medicions i Resultats:"
 
 #, fuzzy, python-format
-msgid ""
-"episode: %s%s%s\n"
-"\n"
+msgid "Episode: %s%s%s"
 msgstr "episodi : %s"
 
 #, python-format
@@ -8154,9 +8568,7 @@ msgid "%s other episodes touched upon during this encounter:"
 msgstr ""
 
 #, fuzzy, python-format
-msgid ""
-"encounter: %s%s%s\n"
-"\n"
+msgid "Encounter: %s%s%s"
 msgstr "Visites: %s (%s - %s):"
 
 #, fuzzy
@@ -8181,10 +8593,6 @@ msgstr ""
 msgid "Procedures"
 msgstr ""
 
-#, fuzzy
-msgid "Substances"
-msgstr "Substància"
-
 msgid "Life events"
 msgstr ""
 
@@ -8208,9 +8616,6 @@ msgstr ""
 msgid "Cannot display timeline."
 msgstr "Crea una nova linia de temps"
 
-msgid "Vaccination"
-msgstr "Vacunació"
-
 msgid "Lab result"
 msgstr "Restultats de laboratori"
 
@@ -8282,9 +8687,6 @@ msgstr ""
 msgid "Exported: %s\n"
 msgstr ""
 
-msgid "emr-journal"
-msgstr ""
-
 msgid "Chronological EMR Journal\n"
 msgstr ""
 
@@ -8567,25 +8969,145 @@ msgstr ""
 msgid "Select one or more codes that apply."
 msgstr ""
 
-msgid "Cannot move progress notes. No active patient."
+msgid "Select the narrative you are interested in ..."
 msgstr ""
 
-msgid "Moving progress notes between encounters ..."
+msgid "when"
+msgstr ""
+
+msgid "who"
+msgstr ""
+
+msgid "entry"
+msgstr ""
+
+msgid "There is no narrative for this episode in this encounter."
+msgstr ""
+
+msgid "Must select episode to move narrative to first."
+msgstr ""
+
+msgid "Last"
+msgstr ""
+
+#, fuzzy
+msgid "In health issue"
+msgstr "Sisuplau, seleccioni un assumpte mèdic."
+
+msgid "Most recent notes on selected problem"
+msgstr ""
+
+#, python-format
+msgid "%s (active+potential) problems"
+msgstr ""
+
+#, python-format
+msgid "%s active problems"
+msgstr ""
+
+msgid "Current encounter:"
+msgstr ""
+
+msgid "Cumulative summary"
 msgstr ""
 
+#, fuzzy, python-format
+msgid "Most recent info on %s%s%s"
+msgstr " Més recent: %s - %s"
+
+#, python-format
 msgid ""
+"Cannot open progress note editor for\n"
 "\n"
-" Select the progress notes to move from the list !\n"
+"[%s].\n"
 "\n"
 msgstr ""
 
-msgid "when"
+msgid "opening progress note editor"
 msgstr ""
 
-msgid "who"
+msgid "Cannot save all editors. Some were kept open."
 msgstr ""
 
-msgid "entry"
+msgid "new problem"
+msgstr ""
+
+msgid ""
+"Are you sure you really want to\n"
+"discard this progress note ?\n"
+msgstr ""
+
+msgid "Discarding progress note"
+msgstr ""
+
+msgid "There are unsaved progress notes !\n"
+msgstr ""
+
+msgid "Unsaved progress notes"
+msgstr ""
+
+msgid "Problem list"
+msgstr ""
+
+msgid "Saving SOAP note"
+msgstr ""
+
+msgid "Do you want to save the SOAP note ?"
+msgstr ""
+
+#, python-format
+msgid "&Filter by problem %s%s%s"
+msgstr ""
+
+msgid "Cannot save SimpleNotes SOAP note."
+msgstr ""
+
+#, fuzzy, python-format
+msgid "Progress note: %s%s"
+msgstr "No hi ha entrades per aquest episodi"
+
+msgid "Please enter a name for the new problem:"
+msgstr ""
+
+msgid "Adding a problem"
+msgstr ""
+
+msgid "Cannot delete problem. There is still clinical data recorded for it."
+msgstr ""
+
+#, python-format
+msgid "GNUmed: configuring [%s] (%s plugins)"
+msgstr ""
+
+msgid "loading list of plugins                               "
+msgstr ""
+
+msgid "failed"
+msgstr ""
+
+msgid "success"
+msgstr ""
+
+#, python-format
+msgid ""
+"previous: %s (%s)\n"
+"current (%s/%s): %s"
+msgstr ""
+
+#, python-format
+msgid "Cannot switch to [%s]: no patient selected"
+msgstr ""
+
+msgid "Cannot move progress notes. No active patient."
+msgstr ""
+
+msgid "Moving progress notes between encounters ..."
+msgstr ""
+
+msgid ""
+"\n"
+" Select the progress notes to move from the list !\n"
+"\n"
 msgstr ""
 
 msgid "Cannot edit progress notes. No active patient."
@@ -8789,305 +9311,52 @@ msgid ""
 " Now, mark the entries you want to include in your report.\n"
 msgstr ""
 
-msgid "Select the narrative you are interested in ..."
+msgid "Pick a date ..."
 msgstr ""
 
-msgid "There is no narrative for this episode in this encounter."
+msgid "<ALT-C/K>: pick from (c/k)alendar"
 msgstr ""
 
-msgid "Must select episode to move narrative to first."
+msgid "Cannot interpret input as timestamp."
 msgstr ""
 
-msgid "Last"
+msgid "No vaccines were chosen"
 msgstr ""
 
-#, fuzzy
-msgid "In health issue"
-msgstr "Sisuplau, seleccioni un assumpte mèdic."
+#, python-format
+msgid "Combination of indications , %s , not found in any vaccine"
+msgstr ""
 
-msgid "Most recent notes on selected problem"
+msgid "Sequence"
 msgstr ""
 
-#, python-format
-msgid "%s (active+potential) problems"
+msgid "Batch"
 msgstr ""
 
-#, python-format
-msgid "%s active problems"
+msgid "Vaccinator"
 msgstr ""
 
-msgid "Current encounter:"
+msgid ""
+"Vaccinations by Recommender (X = patient on regime, O = patient not on "
+"regime) "
 msgstr ""
 
-msgid "Cumulative summary"
+msgid "enrolled regime vaccinations not yet given"
 msgstr ""
 
-#, fuzzy, python-format
-msgid "Most recent info on %s%s%s"
-msgstr " Més recent: %s - %s"
+#, fuzzy
+msgid "Proceed with "
+msgstr "Processat per:"
 
 #, python-format
-msgid ""
-"Cannot open progress note editor for\n"
-"\n"
-"[%s].\n"
-"\n"
-msgstr ""
-
-msgid "opening progress note editor"
+msgid "Failed to enrol patient in %s"
 msgstr ""
 
-msgid "Cannot save all editors. Some were kept open."
+#, python-format
+msgid "Failed to  delist patient from %s"
 msgstr ""
 
-msgid "new problem"
-msgstr ""
-
-msgid ""
-"Are you sure you really want to\n"
-"discard this progress note ?\n"
-msgstr ""
-
-msgid "Discarding progress note"
-msgstr ""
-
-msgid "There are unsaved progress notes !\n"
-msgstr ""
-
-msgid "Unsaved progress notes"
-msgstr ""
-
-#, python-format
-msgid "Synopsis (%s)"
-msgstr ""
-
-msgid ""
-"Enter a short working name for this new problem\n"
-"(which will become a new, unassociated episode):\n"
-msgstr ""
-
-#, python-format
-msgid ""
-"Enter a short working name for this new\n"
-"episode under the existing health issue\n"
-"\n"
-"\"%s\":\n"
-msgstr ""
-
-msgid "Creating problem (episode) to save notelet under ..."
-msgstr ""
-
-msgid "Cannot save a new problem without a name."
-msgstr ""
-
-msgid "saving progress note"
-msgstr ""
-
-#, python-format
-msgid ""
-"The new episode:\n"
-"\n"
-" \"%s\"\n"
-"\n"
-"will remain unassociated despite the editor\n"
-"having been invoked from the health issue:\n"
-"\n"
-" \"%s\""
-msgstr ""
-
-msgid "You need to actually set an editor."
-msgstr ""
-
-#, python-format
-msgid "The command [%s] is not found."
-msgstr ""
-
-#, python-format
-msgid ""
-"Enter the shell command with which to start\n"
-"the image editor for visual progress notes.\n"
-"\n"
-"Any \"%(img)s\" included with the arguments\n"
-"will be replaced by the file name of the\n"
-"note template."
-msgstr ""
-
-msgid "Choose file to use as template for new visual progress note"
-msgstr ""
-
-#, fuzzy
-msgid "Visual progress note source"
-msgstr "No hi ha entrades per aquest episodi"
-
-msgid "From which source do you want to pick the image template ?"
-msgstr ""
-
-msgid "Database"
-msgstr ""
-
-#, fuzzy
-msgid "List of templates in the database."
-msgstr "Guardi les al·lèrgies/intoleràncies a la base de dades."
-
-msgid "Files in the filesystem."
-msgstr ""
-
-msgid "Device"
-msgstr ""
-
-msgid "Image capture devices (scanners, cameras, etc)"
-msgstr ""
-
-#, python-format
-msgid "Cannot export visual progress note template for [%s]."
-msgstr ""
-
-msgid "Cannot export visual progress note to file."
-msgstr ""
-
-msgid "Editor for visual progress note not configured."
-msgstr ""
-
-#, python-format
-msgid ""
-"There was a problem with running the editor\n"
-"for visual progress notes.\n"
-"\n"
-" [%s]\n"
-"\n"
-msgstr ""
-
-msgid "Editing visual progress note"
-msgstr ""
-
-#, python-format
-msgid ""
-"There was a problem reading the visual\n"
-"progress note from the file:\n"
-"\n"
-" [%s]\n"
-"\n"
-msgstr ""
-
-msgid "Saving visual progress note"
-msgstr ""
-
-msgid ""
-"You either created a visual progress note from a template\n"
-"in the database (rather than from a file on disk) or you\n"
-"edited an existing visual progress note.\n"
-"\n"
-"The template/original was not modified at all, however.\n"
-"\n"
-"Do you still want to save the unmodified image as a\n"
-"visual progress note into the EMR of the patient ?\n"
-msgstr ""
-
-msgid "visual progress notes"
-msgstr ""
-
-#, python-format
-msgid "Created: %s"
-msgstr ""
-
-msgid "Problem list"
-msgstr ""
-
-msgid "Saving SOAP note"
-msgstr ""
-
-msgid "Do you want to save the SOAP note ?"
-msgstr ""
-
-#, python-format
-msgid "&Filter by problem %s%s%s"
-msgstr ""
-
-msgid "Cannot save SimpleNotes SOAP note."
-msgstr ""
-
-#, fuzzy, python-format
-msgid "Progress note: %s%s"
-msgstr "No hi ha entrades per aquest episodi"
-
-msgid "Please enter a name for the new problem:"
-msgstr ""
-
-msgid "Adding a problem"
-msgstr ""
-
-msgid "Cannot delete problem. There is still clinical data recorded for it."
-msgstr ""
-
-#, python-format
-msgid "GNUmed: configuring [%s] (%s plugins)"
-msgstr ""
-
-msgid "loading list of plugins                               "
-msgstr ""
-
-msgid "failed"
-msgstr ""
-
-msgid "success"
-msgstr ""
-
-#, python-format
-msgid ""
-"previous: %s (%s)\n"
-"current (%s/%s): %s"
-msgstr ""
-
-#, python-format
-msgid "Cannot switch to [%s]: no patient selected"
-msgstr ""
-
-msgid "Pick a date ..."
-msgstr ""
-
-msgid "<ALT-C/K>: pick from (c/k)alendar"
-msgstr ""
-
-msgid "Cannot interpret input as timestamp."
-msgstr ""
-
-msgid "No vaccines were chosen"
-msgstr ""
-
-#, python-format
-msgid "Combination of indications , %s , not found in any vaccine"
-msgstr ""
-
-msgid "Sequence"
-msgstr ""
-
-msgid "Batch"
-msgstr ""
-
-msgid "Vaccinator"
-msgstr ""
-
-msgid ""
-"Vaccinations by Recommender (X = patient on regime, O = patient not on "
-"regime) "
-msgstr ""
-
-msgid "enrolled regime vaccinations not yet given"
-msgstr ""
-
-#, fuzzy
-msgid "Proceed with "
-msgstr "Processat per:"
-
-#, python-format
-msgid "Failed to enrol patient in %s"
-msgstr ""
-
-#, python-format
-msgid "Failed to  delist patient from %s"
-msgstr ""
-
-msgid "Missing GNUmed module"
+msgid "Missing GNUmed module"
 msgstr ""
 
 #, python-format
@@ -9525,21 +9794,91 @@ msgid "due now: booster for %s in schedule \"%s\" (%s)"
 msgstr ""
 
 #, python-format
-msgid "Latest: %s ago (%s %s %s %s%s)"
+msgid "Synopsis (%s)"
 msgstr ""
 
-#, fuzzy, python-format
-msgid "%s %s %s %s (%s ago, %s)"
-msgstr "%s la setmana passada (%s of %s)"
+msgid ""
+"Enter a short working name for this new problem\n"
+"(which will become a new, unassociated episode):\n"
+msgstr ""
 
-#, fuzzy, python-format
-msgid "overdue %s: %s"
-msgstr "  risc: %s"
+#, python-format
+msgid ""
+"Enter a short working name for this new\n"
+"episode under the existing health issue\n"
+"\n"
+"\"%s\":\n"
+msgstr ""
+
+msgid "Creating problem (episode) to save notelet under ..."
+msgstr ""
+
+msgid "Cannot save a new problem without a name."
+msgstr ""
+
+msgid "saving progress note"
+msgstr ""
+
+#, python-format
+msgid ""
+"The new episode:\n"
+"\n"
+" \"%s\"\n"
+"\n"
+"will remain unassociated despite the editor\n"
+"having been invoked from the health issue:\n"
+"\n"
+" \"%s\""
+msgstr ""
+
+#, fuzzy
+msgid "Adding substance abuse"
+msgstr "Substància"
+
+#, fuzzy
+msgid "Editing substance abuse"
+msgstr "Vacunació"
+
+msgid "Substances abused by the patient:"
+msgstr ""
+
+#, fuzzy
+msgid "Showing abused substances."
+msgstr "Vacunació"
+
+msgid "Intake"
+msgstr ""
+
+msgid "nicotine"
+msgstr ""
+
+#, fuzzy
+msgid "unit"
+msgstr "unitats"
+
+#, fuzzy, python-format
+msgid "Latest: %s ago (%s %s%s%s%s)"
+msgstr "Pacient:  , No:\n"
+
+#, fuzzy, python-format
+msgid "%s %s%s%s (%s ago, %s)"
+msgstr "%s la setmana passada (%s of %s)"
+
+#, fuzzy, python-format
+msgid "overdue %s: %s"
+msgstr "  risc: %s"
 
 #, fuzzy, python-format
 msgid "due in %s%s"
 msgstr "  risc: %s"
 
+msgid "suppr'd:"
+msgstr ""
+
+#, fuzzy
+msgid "Suppressed hints:\n"
+msgstr "Pacient"
+
 msgid ""
 "Do you really want to\n"
 "delete this inbox message ?"
@@ -9591,9 +9930,16 @@ msgid ""
 msgstr ""
 
 #, fuzzy, python-format
-msgid "%s Vacc: %s"
+msgid "%s Vacc: %s (latest of %s)"
 msgstr "  risc: %s"
 
+#, fuzzy, python-format
+msgid "Hx of addiction: %s"
+msgstr "Estades hospitalàries"
+
+msgid "active substance abuse"
+msgstr ""
+
 #, python-format
 msgid "%s %s %s%s"
 msgstr ""
@@ -9770,6 +10116,105 @@ msgid ""
 "You will have to add it via the Demographics plugin.\n"
 msgstr ""
 
+msgid "You need to actually set an editor."
+msgstr ""
+
+#, python-format
+msgid "The command [%s] is not found."
+msgstr ""
+
+#, python-format
+msgid ""
+"Enter the shell command with which to start\n"
+"the image editor for visual progress notes.\n"
+"\n"
+"Any \"%(img)s\" included with the arguments\n"
+"will be replaced by the file name of the\n"
+"note template."
+msgstr ""
+
+msgid "Choose file to use as template for new visual progress note"
+msgstr ""
+
+#, fuzzy
+msgid "Visual progress note source"
+msgstr "No hi ha entrades per aquest episodi"
+
+msgid "From which source do you want to pick the image template ?"
+msgstr ""
+
+msgid "Database"
+msgstr ""
+
+#, fuzzy
+msgid "List of templates in the database."
+msgstr "Guardi les al·lèrgies/intoleràncies a la base de dades."
+
+msgid "Files in the filesystem."
+msgstr ""
+
+msgid "Device"
+msgstr ""
+
+msgid "Image capture devices (scanners, cameras, etc)"
+msgstr ""
+
+#, python-format
+msgid "Cannot export visual progress note template for [%s]."
+msgstr ""
+
+msgid "Cannot export visual progress note to file."
+msgstr ""
+
+msgid "Editor for visual progress note not configured."
+msgstr ""
+
+#, python-format
+msgid ""
+"There was a problem with running the editor\n"
+"for visual progress notes.\n"
+"\n"
+" [%s]\n"
+"\n"
+msgstr ""
+
+msgid "Editing visual progress note"
+msgstr ""
+
+#, python-format
+msgid ""
+"There was a problem reading the visual\n"
+"progress note from the file:\n"
+"\n"
+" [%s]\n"
+"\n"
+msgstr ""
+
+msgid "Saving visual progress note"
+msgstr ""
+
+msgid ""
+"You either created a visual progress note from a template\n"
+"in the database (rather than from a file on disk) or you\n"
+"edited an existing visual progress note.\n"
+"\n"
+"The template/original was not modified at all, however.\n"
+"\n"
+"Do you still want to save the unmodified image as a\n"
+"visual progress note into the EMR of the patient ?\n"
+msgstr ""
+
+msgid "visual progress notes"
+msgstr ""
+
+#, python-format
+msgid " [part 1 of %s]"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "Created: %s%s"
+msgstr "Sisuplau, seleccioni un assumpte mèdic."
+
 msgid "You must select a value from the picklist or type an exact match."
 msgstr ""
 
@@ -9850,7 +10295,8 @@ msgstr ""
 
 #, python-format
 msgid ""
-"%(street)s %(number)s, %(postcode)s %(urb)s, %(l10n_state)s, %(l10n_country)s"
+"%(street)s %(number)s, %(postcode)s %(urb)s, %(l10n_region)s, "
+"%(l10n_country)s"
 msgstr ""
 
 #, python-format
@@ -10454,7 +10900,7 @@ msgstr ""
 msgid ""
 "Cannot save address.\n"
 "\n"
-"Does the state [%s]\n"
+"Does the region [%s]\n"
 "exist in country [%s] ?"
 msgstr ""
 
@@ -10882,7 +11328,7 @@ msgstr "  risc: %s"
 msgid "Reminders for the current patient"
 msgstr "No hi ha entrades per aquest episodi"
 
-msgid "Sent"
+msgid "Generated"
 msgstr ""
 
 #, fuzzy
@@ -10931,9 +11377,6 @@ msgid ""
 "Data: %s"
 msgstr ""
 
-msgid "Inbox Message Actions:"
-msgstr ""
-
 msgid "Activate patient"
 msgstr ""
 
@@ -11644,7 +12087,7 @@ msgid ""
 msgstr ""
 
 #, python-format
-msgid "Select branch (of praxis [%s]) which you are logging in from.\n"
+msgid "Select the branch of praxis [%s] which you are logging in from.\n"
 msgstr ""
 
 msgid "Praxis branch selection ..."
@@ -11960,6 +12403,14 @@ msgstr ""
 msgid "List of addresses related to this person."
 msgstr "No hi ha entrades per aquest episodi"
 
+#, fuzzy
+msgid "Map"
+msgstr "Sr"
+
+#, fuzzy
+msgid "Show selected address on map"
+msgstr "Edita l'entrada seleccionada."
+
 msgid "Adding new address"
 msgstr ""
 
@@ -12152,7 +12603,90 @@ msgstr "Identificació pacient extern"
 msgid "generic multi choice dialog"
 msgstr ""
 
-msgid "Search in list"
+#, fuzzy
+msgid "Deleting list items"
+msgstr "Descripció"
+
+#, python-format
+msgid ""
+"You have selected %s list items.\n"
+"\n"
+"Really delete all %s items ?"
+msgstr ""
+
+msgid ""
+"Select the items you want to work on.\n"
+"\n"
+"A discontinuous selection may depend on your holding down a platform-"
+"dependent modifier key (<CTRL>, <ALT>, etc) or key combination (eg. <CTRL-"
+"SHIFT> or <CTRL-ALT>) while clicking."
+msgstr ""
+
+#, fuzzy
+msgid "List Item Actions:"
+msgstr "Direccions"
+
+msgid "Add (<INS>)"
+msgstr ""
+
+#, fuzzy
+msgid "Delete (<DEL>)"
+msgstr "Suprimeix"
+
+msgid "Find (<CTRL-F>)"
+msgstr ""
+
+#, python-format
+msgid "Find next [%s] (<CTRL-N>)"
+msgstr ""
+
+msgid "Row tooltip"
+msgstr ""
+
+msgid "Row data (formatted as text)"
+msgstr ""
+
+msgid "Row content (as one line)"
+msgstr ""
+
+msgid "Row content (one line per column)"
+msgstr ""
+
+#, python-format
+msgid "Column &%s: \"%s\" [#%s]"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "Column &%s: %s"
+msgstr "Documents: %s"
+
+#, fuzzy
+msgid "&Copy to clipboard..."
+msgstr "Llistat de vacunes buit"
+
+#, fuzzy
+msgid "Append (&+) to clipboard..."
+msgstr "Esborra les entrades seleccionades de la llista."
+
+#, python-format
+msgid ""
+"%s list items are selected.\n"
+"\n"
+"Really delete all %s items ?"
+msgstr ""
+
+#, fuzzy
+msgid "Enter the search term:"
+msgstr "Edita l'entrada seleccionada."
+
+msgid "List search"
+msgstr ""
+
+#, python-format
+msgid ""
+"Current search term: [[%s]]\n"
+"\n"
+"%s"
 msgstr ""
 
 msgid "Monty the Serpent && the FSF Present"
@@ -12309,6 +12843,10 @@ msgstr ""
 msgid "Unknown: ?"
 msgstr "Es desconeix"
 
+#, fuzzy
+msgid "The text has been copied into the clipboard."
+msgstr "Esborra les entrades seleccionades de la llista."
+
 msgid "file2clipboard"
 msgstr ""
 
@@ -12316,25 +12854,60 @@ msgstr ""
 msgid "The file [%s] has been copied into the clipboard."
 msgstr ""
 
-#, python-format
-msgid ""
-"Algorithm: %s\n"
-"\n"
-"Source: %s"
-msgstr ""
+msgid "programmer forgot to specify error message"
+msgstr "missatge d'error no especificat pel programador"
 
-#, python-format
 msgid ""
-"Current age of pregnancy (%s):\n"
-" day %s = %s weeks %s days = week %s = month %s\n"
 "\n"
+"\n"
+"Please consult the error log for all the gory details !"
 msgstr ""
 
-msgid "Pregnancy Calculator"
-msgstr ""
+msgid "generic error message"
+msgstr "missatge d'error genèric"
 
-msgid "LMP"
-msgstr ""
+msgid "programmer forgot to specify info message"
+msgstr "el programador no va especificar el missatge d'informació"
+
+msgid "generic info message"
+msgstr "missatge d'inforamció genèric"
+
+msgid "programmer forgot to specify warning"
+msgstr "el programador no va especificar el missatge d'alerta"
+
+msgid "generic warning message"
+msgstr "missatge d'alerta genèric"
+
+#, fuzzy
+msgid "Editing EDC"
+msgstr "Descripció"
+
+#, python-format
+msgid ""
+"Really delete the EDC documented previously ?\n"
+"\n"
+" EDC: %s"
+msgstr ""
+
+#, python-format
+msgid ""
+"Algorithm: %s\n"
+"\n"
+"Source: %s"
+msgstr ""
+
+#, python-format
+msgid ""
+"Current age of pregnancy (%s):\n"
+" day %s = %s weeks %s days = week %s = month %s\n"
+"\n"
+msgstr ""
+
+msgid "Pregnancy Calculator"
+msgstr ""
+
+msgid "LMP"
+msgstr ""
 
 msgid "Click on calendar to enter the last menstrual period date"
 msgstr ""
@@ -12426,15 +12999,15 @@ msgstr ""
 msgid "Firstname"
 msgstr ""
 
-msgid "Nickname"
-msgstr ""
-
 msgid "DOB"
 msgstr ""
 
 msgid "last visit"
 msgstr ""
 
+msgid "Nickname / Comment"
+msgstr ""
+
 msgid "found via"
 msgstr ""
 
@@ -12614,467 +13187,222 @@ msgstr ""
 msgid "In case of emergency contact:"
 msgstr ""
 
-msgid ""
-"\n"
-"Please select the default drug data source from the list below.\n"
-"\n"
-"Note that to actually use it you need to have the database installed, too."
-msgstr ""
-
-msgid "Drug data source"
+msgid "The preparation (form) of the substance or brand."
 msgstr ""
 
-msgid "Configuring default drug data source"
+msgid "A substance with optional strength or a brand."
 msgstr ""
 
-msgid "No default drug database configured."
+msgid "The medical aim for consuming this substance."
 msgstr ""
 
-msgid "There is no default drug database configured."
+msgid "not tolerated:"
 msgstr ""
 
-msgid "Jumping to drug database"
+msgid "discontinued due to allergy or intolerance"
 msgstr ""
 
-#, python-format
-msgid "Cannot call IFAP via [%s]."
+msgid "Documented an allergy"
 msgstr ""
 
 #, python-format
-msgid "Cannot create IFAP <-> GNUmed transfer file [%s]."
-msgstr ""
-
-msgid "Current medication"
-msgstr ""
-
 msgid ""
+"An allergy was documented against the substance:\n"
 "\n"
-"The ATC codes as known to GNUmed.\n"
+"  [%s]\n"
+"\n"
+"This substance was taken with the multi-component brand:\n"
+"\n"
+"  [%s (%s)]\n"
+"\n"
+"Note that ALL components of this brand were discontinued."
 msgstr ""
 
-msgid "Showing ATC codes."
+msgid "disapproved"
 msgstr ""
 
-msgid "Choose an ATC import config file"
+msgid "Substances consumed by the patient:"
 msgstr ""
 
-msgid "config files"
+msgid "Showing consumable substances."
 msgstr ""
 
-msgid "importing ATC reference data"
+msgid "Application"
 msgstr ""
 
-msgid "Successfully imported ATC reference data."
+msgid "never"
 msgstr ""
 
-msgid "Importing ATC reference data failed."
+#, python-format
+msgid "%s, last confirmed %s\n"
 msgstr ""
 
-msgid "Select an ATC (Anatomical-Therapeutic-Chemical) code."
+#, python-format
+msgid "Comment (%s): %%s\n"
 msgstr ""
 
-msgid "Cannot delete this substance. It is in use."
+msgid "reaction not recorded"
 msgstr ""
 
-msgid ""
-"\n"
-"These are the consumable substances registered with GNUmed.\n"
-msgstr ""
+#, fuzzy
+msgid "GFR: unknown"
+msgstr "Es desconeix"
 
-msgid "Showing consumable substances."
+msgid "GFR reported by path lab"
 msgstr ""
 
 #, fuzzy
-msgid "Import"
-msgstr "Informe"
-
-msgid "Import consumable substances from a drug database."
-msgstr ""
+msgid "<no components>"
+msgstr "Documents"
 
-msgid "Cannot edit this substance. It is in use."
+msgid "Adding substance intake entry"
 msgstr ""
 
-msgid "Adding new consumable substance"
+#, python-format
+msgid ""
+"The patient is already taking\n"
+"\n"
+" %s\n"
+"\n"
+"You will want to adjust the schedule\n"
+"rather than document the intake twice."
 msgstr ""
 
-msgid "Editing consumable substance"
+msgid "Input incomplete/invalid for saving as substance intake."
 msgstr ""
 
-msgid "Cannot save consumable substance. Missing essential input."
+#, python-format
+msgid "Discontinued (%s) in the future (now: %s)!"
 msgstr ""
 
 #, python-format
-msgid "Cannot save consumable substance. %s"
+msgid "Discontinued (%s) before started (%s) !"
 msgstr ""
 
-msgid "Cannot remove this component from the drug. It is in use."
+msgid "Cannot add duplicate of (maybe inactive) substance intake."
 msgstr ""
 
+#, python-format
 msgid ""
 "\n"
-"These are the components in the drug brands known to GNUmed.\n"
+"[%s]\n"
+"\n"
+"It may be prudent to edit (before deletion) the details\n"
+"of this substance intake entry so as to leave behind\n"
+"some indication of why it was deleted.\n"
 msgstr ""
 
-msgid "Showing drug brand components."
+msgid "Deleting medication / substance intake"
 msgstr ""
 
-msgid "Adding new drug component"
+msgid "Allow editing of substance intake entry before deletion."
 msgstr ""
 
-msgid "Editing drug component"
+msgid "Delete immediately without editing first."
 msgstr ""
 
-msgid "Cannot edit drug component. It is in use."
+msgid "&Cancel"
 msgstr ""
 
-msgid "Cannot save drug component. Invalid or missing essential input."
+msgid "Abort. Do not delete or edit substance intake entry."
 msgstr ""
 
-msgid "A drug component with optional strength."
+msgid "Now delete substance intake entry ?"
 msgstr ""
 
-msgid "The preparation (form) of the substance or brand."
+msgid "Adding medication/non-medication substance intake"
 msgstr ""
 
-msgid "The substance with optional strength."
+msgid "Editing medication/non-medication substance intake"
 msgstr ""
 
-msgid "Managing components of a drug"
+msgid "Document an allergy against this substance."
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot manage the components of the branded drug product\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is currently taken by patients.\n"
+msgid "No medication list template configured."
 msgstr ""
 
-msgid "Pick the substances which are components of this drug."
+msgid "There is no medication list template configured."
 msgstr ""
 
-msgid "Components of drug"
+msgid "Problem loading medication list template."
 msgstr ""
 
 #, python-format
-msgid ""
-"Adjust the components of \"%s\"\n"
-"\n"
-"The drug must contain at least one component. Any given\n"
-"substance can only be included once per drug."
+msgid "Cannot load medication list template [%s - %s]"
 msgstr ""
 
-msgid "Managing components of a drug ..."
+msgid "generated medication list document"
 msgstr ""
 
-msgid "not in use"
+msgid "Select the default prescription template:"
 msgstr ""
 
-#, python-format
-msgid "ATC: %s\n"
+msgid "No prescription template configured."
 msgstr ""
 
-msgid "Editing medication"
+msgid "There is no prescription template configured."
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot edit the medication\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is a vaccine. Please edit it\n"
-"from the vaccine management section !\n"
-msgstr ""
+#, fuzzy
+msgid "Printing prescription"
+msgstr "Descripció"
 
-msgid "Deleting medication"
+msgid "Problem loading prescription template."
 msgstr ""
 
 #, python-format
-msgid ""
-"Cannot delete the medication\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is a vaccine. Please delete it\n"
-"from the vaccine management section !\n"
+msgid "Cannot load prescription template [%s - %s]"
 msgstr ""
 
+#, fuzzy
+msgid "generated prescription"
+msgstr "Descripció"
+
 msgid ""
+"These brands have been prescribed but are not listed\n"
+"in the current medication list of this patient.\n"
 "\n"
-"These are the drug brands known to GNUmed.\n"
+"Please select those you want added to the medication list."
 msgstr ""
 
-msgid "Showing branded drugs."
-msgstr ""
+#, fuzzy
+msgid "Newly prescribed drugs"
+msgstr "Receptat per"
 
-msgid "Import substances and brands from a drug database."
+msgid "Add to medication list"
 msgstr ""
 
-msgid "Editing drug"
-msgstr ""
+#, fuzzy
+msgid "Timeframe"
+msgstr "Línia de temps"
 
 #, python-format
-msgid ""
-"Cannot edit the branded drug product\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is currently taken by patients.\n"
+msgid "%s <fake>"
 msgstr ""
 
-msgid "Adding new drug brand"
+msgid "Cannot edit more than one substance at once."
 msgstr ""
 
-msgid "Editing drug brand"
+msgid "Cannot delete more than one substance at once."
 msgstr ""
 
-msgid "Manage consumable substances"
+msgid "Cannot create allergy from more than one substance at once."
 msgstr ""
 
-msgid "Cannot edit drug brand. It is in use."
+msgid ""
+"\n"
+"Select the measurements panel to show in the medications plugin.\n"
 msgstr ""
 
-msgid "Checking brand data"
+#, fuzzy
+msgid "Measurements panel"
+msgstr "Medicions i Resultats:"
+
+msgid "Configuring medications plugin measurements panel"
 msgstr ""
 
-#, python-format
-msgid ""
-"The brand information you entered:\n"
-"\n"
-" [%s %s]\n"
-"\n"
-"already exists as a drug product."
-msgstr ""
-
-msgid ""
-"You have not selected any substances\n"
-"as drug components.\n"
-"\n"
-"Without components you will not be able to\n"
-"use this drug for documenting patient care.\n"
-"\n"
-"Are you sure you want to save\n"
-"it without components ?"
-msgstr ""
-
-msgid "Cannot save branded drug. Invalid or missing essential input."
-msgstr ""
-
-msgid ""
-"The brand name of the drug.\n"
-"\n"
-"Note: a brand name will need to be linked to\n"
-"one or more components before it can be used,\n"
-"except in the case of fake (generic) vaccines."
-msgstr ""
-
-msgid "The medical aim for consuming this substance."
-msgstr ""
-
-msgid "not tolerated:"
-msgstr ""
-
-msgid "discontinued due to allergy or intolerance"
-msgstr ""
-
-msgid "Documented an allergy"
-msgstr ""
-
-#, python-format
-msgid ""
-"An allergy was documented against the substance:\n"
-"\n"
-"  [%s]\n"
-"\n"
-"This substance was taken with the multi-component brand:\n"
-"\n"
-"  [%s (%s)]\n"
-"\n"
-"Note that ALL components of this brand were discontinued."
-msgstr ""
-
-msgid "disapproved"
-msgstr ""
-
-msgid "Substances consumed by the patient:"
-msgstr ""
-
-msgid "Intake"
-msgstr ""
-
-msgid "Application"
-msgstr ""
-
-msgid "never"
-msgstr ""
-
-#, python-format
-msgid "%s, last confirmed %s\n"
-msgstr ""
-
-#, python-format
-msgid "Comment (%s): %%s\n"
-msgstr ""
-
-msgid "reaction not recorded"
-msgstr ""
-
-#, fuzzy
-msgid "GFR: unknown"
-msgstr "Es desconeix"
-
-msgid "GFR reported by path lab"
-msgstr ""
-
-#, python-format
-msgid ""
-"The patient is already taking\n"
-"\n"
-" %s\n"
-"\n"
-"You will want to adjust the schedule\n"
-"rather than document the intake twice."
-msgstr ""
-
-msgid "Adding substance intake entry"
-msgstr ""
-
-msgid "Input incomplete/invalid for saving as substance intake."
-msgstr ""
-
-#, python-format
-msgid "Discontinued (%s) in the future (now: %s)!"
-msgstr ""
-
-#, python-format
-msgid "Discontinued (%s) before started (%s) !"
-msgstr ""
-
-msgid "Cannot add duplicate of (maybe inactive) substance intake."
-msgstr ""
-
-#, python-format
-msgid ""
-"\n"
-"[%s]\n"
-"\n"
-"It may be prudent to edit (before deletion) the details\n"
-"of this substance intake entry so as to leave behind\n"
-"some indication of why it was deleted.\n"
-msgstr ""
-
-msgid "Deleting medication / substance intake"
-msgstr ""
-
-msgid "Allow editing of substance intake entry before deletion."
-msgstr ""
-
-msgid "Delete immediately without editing first."
-msgstr ""
-
-msgid "&Cancel"
-msgstr ""
-
-msgid "Abort. Do not delete or edit substance intake entry."
-msgstr ""
-
-msgid "Now delete substance intake entry ?"
-msgstr ""
-
-msgid "Adding medication/non-medication substance intake"
-msgstr ""
-
-msgid "Editing medication/non-medication substance intake"
-msgstr ""
-
-msgid "Document an allergy against this substance."
-msgstr ""
-
-msgid "No medication list template configured."
-msgstr ""
-
-msgid "There is no medication list template configured."
-msgstr ""
-
-msgid "Problem loading medication list template."
-msgstr ""
-
-#, python-format
-msgid "Cannot load medication list template [%s - %s]"
-msgstr ""
-
-msgid "generated medication list document"
-msgstr ""
-
-msgid "Select the default prescription template:"
-msgstr ""
-
-msgid "No prescription template configured."
-msgstr ""
-
-msgid "There is no prescription template configured."
-msgstr ""
-
-#, fuzzy
-msgid "Printing prescription"
-msgstr "Descripció"
-
-msgid "Problem loading prescription template."
-msgstr ""
-
-#, python-format
-msgid "Cannot load prescription template [%s - %s]"
-msgstr ""
-
-#, fuzzy
-msgid "generated prescription"
-msgstr "Descripció"
-
-msgid ""
-"These brands have been prescribed but are not listed\n"
-"in the current medication list of this patient.\n"
-"\n"
-"Please select those you want added to the medication list."
-msgstr ""
-
-#, fuzzy
-msgid "Newly prescribed drugs"
-msgstr "Receptat per"
-
-msgid "Add to medication list"
-msgstr ""
-
-msgid "Duration / Until"
-msgstr ""
-
-#, python-format
-msgid "%s <fake>"
-msgstr ""
-
-msgid "Cannot edit more than one substance at once."
-msgstr ""
-
-msgid "Cannot delete more than one substance at once."
-msgstr ""
-
-msgid "Cannot create allergy from more than one substance at once."
-msgstr ""
-
-msgid ""
-"\n"
-"Select the measurements panel to show in the medications plugin.\n"
-msgstr ""
-
-#, fuzzy
-msgid "Measurements panel"
-msgstr "Medicions i Resultats:"
-
-msgid "Configuring medications plugin measurements panel"
-msgstr ""
-
-msgid "EDC (!?!):"
+msgid "EDC (!?!):"
 msgstr ""
 
 #, fuzzy
@@ -13088,10 +13416,6 @@ msgstr "Documents: %s"
 msgid "eGFR:"
 msgstr ""
 
-#, fuzzy, python-format
-msgid "%s%s%s (%s ago)"
-msgstr "%s la setmana passada (%s of %s)"
-
 #, python-format
 msgid "eGFR: %.1f (%s)"
 msgstr ""
@@ -13259,14 +13583,21 @@ msgid ""
 "\n"
 " [%s]\n"
 "\n"
-"is not empty. Do you want to use it for saving the\n"
-"export area documents into, nevertheless ?\n"
+"already contains files. Do you still want to save the\n"
+"selected export area documents into that directory ?\n"
 "\n"
-"(this can be useful for including external documents)\n"
+"(this is useful for including the external documents\n"
+" already stored in or below this directory)\n"
 "\n"
 "[NO] will create a subdirectory for you and use that."
 msgstr ""
 
+msgid ""
+"Create descriptive metadata files\n"
+"and save them alongside the\n"
+"selected export area documents ?"
+msgstr ""
+
 #, fuzzy, python-format
 msgid ""
 "Saved to [%s]:\n"
@@ -13485,10 +13816,6 @@ msgid "This praxis"
 msgstr "La teva revisió"
 
 #, fuzzy
-msgid "Hospital stay"
-msgstr "Estades hospitalàries"
-
-#, fuzzy
 msgid "Bill receiver"
 msgstr "Selecciona"
 
@@ -13525,27 +13852,71 @@ msgstr ""
 msgid "Select the episode under which to file the document ..."
 msgstr ""
 
-#, python-format
-msgid "Imported new document from %s."
-msgstr ""
-
-msgid "Enter a comment on the document."
+msgid "Cannot create new document."
 msgstr ""
 
-msgid "User defined"
+msgid "saving document"
 msgstr ""
 
-msgid "In use"
+#, python-format
+msgid "Imported new document from %s."
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot delete document type\n"
-" [%s]\n"
-"because it is currently in use."
+msgid "Successfully saved new document."
 msgstr ""
 
-msgid "deleting document type"
+msgid "Successfully saved the new document."
+msgstr ""
+
+#, python-format
+msgid ""
+"The reference ID for the new document is:\n"
+"\n"
+" <%s>\n"
+"\n"
+"You probably want to write it down on the\n"
+"original documents.\n"
+"\n"
+"If you don't care about the ID you can switch\n"
+"off this message in the GNUmed configuration.\n"
+msgstr ""
+
+#, fuzzy
+msgid "Saving document"
+msgstr "Guarda el document finalitzat."
+
+#, python-format
+msgid ""
+"Successfully imported files as document.\n"
+"\n"
+"Do you want to delete imported files from the filesystem ?\n"
+"\n"
+" %s\n"
+"\n"
+"Note that temporary files will be deleted anyway."
+msgstr ""
+
+#, fuzzy
+msgid "Removing files"
+msgstr "Ennlista la persona com a usuari/a de GNUmed"
+
+msgid "Enter a comment on the document."
+msgstr ""
+
+msgid "User defined"
+msgstr ""
+
+msgid "In use"
+msgstr ""
+
+#, python-format
+msgid ""
+"Cannot delete document type\n"
+" [%s]\n"
+"because it is currently in use."
+msgstr ""
+
+msgid "deleting document type"
 msgstr ""
 
 #, python-format
@@ -13648,15 +14019,17 @@ msgstr ""
 msgid "Acquiring images"
 msgstr ""
 
+msgid "directory dropped on client"
+msgstr ""
+
+msgid "file dropped on client"
+msgstr ""
+
 #, fuzzy
 msgid "other documents"
 msgstr " %s documents\n"
 
-#, python-format
-msgid "part %s: %s"
-msgstr ""
-
-msgid "saving document"
+msgid "path"
 msgstr ""
 
 msgid "No parts to save. Really save an empty document as a reference ?"
@@ -13701,17 +14074,25 @@ msgstr ""
 msgid "acquiring page"
 msgstr ""
 
+msgid "captured by imaging device"
+msgstr ""
+
 msgid "Choose a file"
 msgstr ""
 
 msgid "all files (Win)"
 msgstr ""
 
-msgid "You must select a part before you can view it."
+msgid "picked from storage media"
 msgstr ""
 
-msgid "displaying part"
-msgstr ""
+#, fuzzy
+msgid "pasted from clipboard"
+msgstr "Esborra les entrades seleccionades de la llista."
+
+#, fuzzy
+msgid "No part selected for viewing."
+msgstr "Esborra les entrades seleccionades de la llista."
 
 #, python-format
 msgid ""
@@ -13719,45 +14100,12 @@ msgid ""
 "%s"
 msgstr ""
 
-msgid "You must select a part before you can delete it."
-msgstr ""
-
-msgid "deleting part"
-msgstr ""
-
-#, python-format
-msgid ""
-"The part has successfully been removed from the document.\n"
-"\n"
-"Do you also want to permanently delete the file\n"
-"\n"
-" [%s]\n"
-"\n"
-"from which this document part was loaded ?\n"
-"\n"
-"If it is a temporary file for a page you just scanned\n"
-"this makes a lot of sense. In other cases you may not\n"
-"want to lose the file.\n"
-"\n"
-"Pressing [YES] will permanently remove the file\n"
-"from your computer.\n"
-msgstr ""
-
-msgid "Removing document part"
-msgstr ""
-
-#, python-format
-msgid ""
-"Cannot delete part in file [%s].\n"
-"\n"
-"You may not have write access to it."
-msgstr ""
-
-msgid "Cannot create new document."
+msgid "displaying part"
 msgstr ""
 
-msgid "Cannot update document metadata."
-msgstr ""
+#, fuzzy
+msgid "No part selected for removal."
+msgstr "Esborra les entrades seleccionades de la llista."
 
 msgid "Cannot add document description."
 msgstr ""
@@ -13765,27 +14113,12 @@ msgstr ""
 msgid "Error setting \"reviewed\" status of new document."
 msgstr ""
 
-msgid "Successfully saved the new document."
-msgstr ""
-
 #, python-format
 msgid ""
-"The reference ID for the new document is:\n"
-"\n"
-" <%s>\n"
-"\n"
-"You probably want to write it down on the\n"
-"original documents.\n"
+"Source: %s\n"
+"File: %s\n"
 "\n"
-"If you don't care about the ID you can switch\n"
-"off this message in the GNUmed configuration."
-msgstr ""
-
-#, fuzzy
-msgid "Saving document"
-msgstr "Guarda el document finalitzat."
-
-msgid "Successfully saved new document."
+"%s"
 msgstr ""
 
 msgid "Document part does not seem to exist in database !"
@@ -13801,9 +14134,6 @@ msgstr ""
 msgid "Showing documents."
 msgstr "Guarda el document finalitzat."
 
-msgid "Generated"
-msgstr ""
-
 msgid "Ref #"
 msgstr ""
 
@@ -14065,6 +14395,152 @@ msgstr ""
 msgid "Deleting document"
 msgstr ""
 
+msgid "Study date"
+msgstr ""
+
+#, fuzzy
+msgid "Study time"
+msgstr "Mostra l'hora"
+
+msgid "Method"
+msgstr ""
+
+#, fuzzy
+msgid "Body part"
+msgstr "part"
+
+#, fuzzy
+msgid "Time"
+msgstr "Línia de temps"
+
+msgid "Cannot connect without port (try 8042)."
+msgstr ""
+
+#, python-format
+msgid "Connect to [%s] @ port %s as \"%s\"."
+msgstr ""
+
+#, fuzzy
+msgid "Cannot connect to PACS."
+msgstr "no es pot connectar al servei [%s]"
+
+#, python-format
+msgid "PACS: Orthanc \"%s\" (AET \"%s\", Version %s, DB v%s)"
+msgstr ""
+
+#, python-format
+msgid "GNUmed patient: %s (generic PACS ID)"
+msgstr ""
+
+#, python-format
+msgid "GNUmed patient: \"%(value)s\" @ [%(issuer)s] (stored PACS ID)"
+msgstr ""
+
+msgid "PACS: no patients with matching IDs found"
+msgstr ""
+
+msgid ""
+"PACS: more than one patient with matching IDs found, carefully check studies"
+msgstr ""
+
+#, python-format
+msgid "%s series"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "%%s (%s series)"
+msgstr "%s la setmana passada (%s of %s)"
+
+msgid "no studies"
+msgstr ""
+
+#, python-format
+msgid "%s studies"
+msgstr ""
+
+msgid "Exporting DICOM studies"
+msgstr ""
+
+#, fuzzy
+msgid "Unable to export selected studies."
+msgstr "Edita l'entrada seleccionada."
+
+#, python-format
+msgid ""
+"The DICOM studies are %s in compressed size.\n"
+"\n"
+"Really copy to export area ?"
+msgstr ""
+
+#, python-format
+msgid "DICOM studies of [%s] from Orthanc PACS \"%s\" (AET \"%s\")"
+msgstr ""
+
+msgid "Select the directory into which to save the DICOM studies."
+msgstr ""
+
+msgid "Saving DICOM studies"
+msgstr ""
+
+#, fuzzy
+msgid "Unable to save selected studies."
+msgstr "Edita l'entrada seleccionada."
+
+#, fuzzy
+msgid "Unable to export studies."
+msgstr "No es pot obrir la línia de temps '%s'."
+
+#, python-format
+msgid "All DICOM studies of [%s] from Orthanc PACS \"%s\" (AET \"%s\")"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "%s%s images"
+msgstr "Documents: %s"
+
+msgid "Select the directory from which to recursively upload DICOM files."
+msgstr ""
+
+msgid "Delete the uploaded DICOM files now ?"
+msgstr ""
+
+msgid ""
+"Some files have not been uploaded.\n"
+"\n"
+"Do you want to delete those DICOM files which have been sent to the PACS "
+"successfully ?"
+msgstr ""
+
+msgid "Uploading DICOM files"
+msgstr ""
+
+#, fuzzy
+msgid "Editing Orthanc content"
+msgstr "Vacunació"
+
+#, fuzzy
+msgid "Patient ID"
+msgstr "Pacient"
+
+msgid "Birth date"
+msgstr ""
+
+msgid "Orthanc"
+msgstr ""
+
+#, fuzzy
+msgid "Modifying patient ID"
+msgstr "Identificació pacient intern"
+
+#, python-format
+msgid ""
+"Really modify %s patient(s) to have the new patient ID\n"
+"\n"
+" [%s]\n"
+"\n"
+"stored in the Orthanc DICOM server ?"
+msgstr ""
+
 #, python-format
 msgid "You are logged in as %s%s.%s (%s). DB account <%s>."
 msgstr ""
@@ -14126,6 +14602,14 @@ msgstr "Detalls de la mesura"
 msgid "Select the measurements panel to show in the medications plugin."
 msgstr ""
 
+#, fuzzy
+msgid "General measurements"
+msgstr "Detalls de la mesura"
+
+#, fuzzy
+msgid "Select the measurements panel to show in the top pane."
+msgstr "Comprava-ho si vols editar la teva revisió."
+
 msgid "Review dialog"
 msgstr ""
 
@@ -14216,6 +14700,12 @@ msgstr ""
 msgid "Configure auto-opening editors for recent problems."
 msgstr ""
 
+msgid "SOAP fields"
+msgstr ""
+
+msgid "Configure SOAP editor - individual SOAP fields vs text editor like"
+msgstr ""
+
 msgid "Progress notes handling ..."
 msgstr ""
 
@@ -14237,6 +14727,9 @@ msgstr ""
 msgid "URL for measurements encyclopedia."
 msgstr ""
 
+msgid "Drug data source"
+msgstr ""
+
 msgid "Select the drug data source."
 msgstr ""
 
@@ -14612,6 +15105,14 @@ msgstr ""
 msgid "Manage dynamic hints suppressed in this patient."
 msgstr ""
 
+#, fuzzy
+msgid "Substance abuse"
+msgstr "Substància"
+
+#, fuzzy
+msgid "Manage substance abuse documentation of this patient."
+msgstr "No hi ha entrades per aquest episodi"
+
 msgid "&Add / Edit ..."
 msgstr ""
 
@@ -14633,26 +15134,51 @@ msgstr ""
 msgid "Show a high-level statistic summary of the EMR."
 msgstr ""
 
-msgid "Text document"
+msgid "Journal (encounters) to file"
+msgstr ""
+
+msgid ""
+"Save the EMR of the active patient as a chronological journal into a text "
+"file"
+msgstr ""
+
+#, fuzzy
+msgid "Journal (encounters) to export area"
+msgstr "Llistat de vacunes buit"
+
+msgid ""
+"Copy EMR of the active patient as a chronological journal into export area"
 msgstr ""
 
-msgid "Export the EMR of the active patient into a text file"
+msgid "Journal (mod time) to file"
 msgstr ""
 
-msgid "Journal"
+msgid ""
+"Save the EMR of the active patient as journal by last modification time into "
+"a text file"
 msgstr ""
 
+#, fuzzy
+msgid "Journal (mod time) to export area"
+msgstr "Llistat de vacunes buit"
+
 msgid ""
-"Export the EMR of the active patient as a chronological journal into a text "
-"file"
+"Copy EMR of the active patient as journal by last modification time into "
+"export area"
+msgstr ""
+
+msgid "Text document"
+msgstr ""
+
+msgid "Save the EMR of the active patient into a text file"
 msgstr ""
 
 msgid "MEDISTAR import format"
 msgstr ""
 
 msgid ""
-"GNUmed -> MEDISTAR. Export progress notes of active patient's active "
-"encounter into a text file."
+"GNUmed -> MEDISTAR. Save progress notes of active patient's active encounter "
+"into a text file."
 msgstr ""
 
 msgid "Export as ..."
@@ -14828,22 +15354,45 @@ msgstr ""
 msgid "Show log file"
 msgstr ""
 
-msgid "Show the log file in text viewer."
+msgid "Show log file in text viewer."
 msgstr ""
 
 msgid "Backup log file"
 msgstr ""
 
-msgid "Backup the content of the log to another file."
+msgid "Backup content of the log to another file."
 msgstr ""
 
 msgid "Email log file"
 msgstr ""
 
-msgid "Send the log file to the authors for help."
+msgid "Send log file to the authors for help."
 msgstr ""
 
-msgid "Bug tracker"
+#, fuzzy
+msgid "Browse tmp dir"
+msgstr "Pacient"
+
+#, python-format
+msgid "Browse temporary directory [%s]."
+msgstr ""
+
+#, fuzzy
+msgid "Browse work dir"
+msgstr "Pacient"
+
+#, python-format
+msgid "Browse user working directory [%s]."
+msgstr ""
+
+msgid "Browse internal work dir"
+msgstr ""
+
+#, python-format
+msgid "Browse internal working directory [%s]."
+msgstr ""
+
+msgid "Bug tracker"
 msgstr ""
 
 msgid "Go to the GNUmed bug tracker on the web."
@@ -15184,6 +15733,20 @@ msgid "No, only auto-open one editor for a new, unassociated problem."
 msgstr ""
 
 msgid ""
+"When editing progress notes, do you want GNUmed to\n"
+"show individual fields for each of the SOAP categories\n"
+"or do you want to use a text-editor like field for\n"
+"all SOAP categories which can then be set per line\n"
+"of input ?"
+msgstr ""
+
+msgid "Yes, show a dedicated field per SOAP category."
+msgstr ""
+
+msgid "No, use one field for all SOAP categories."
+msgstr ""
+
+msgid ""
 "When a patient is activated GNUmed can\n"
 "be told to switch to a specific plugin.\n"
 "\n"
@@ -15521,7 +16084,7 @@ msgid "[-9999]: <access violation test error>"
 msgstr ""
 
 msgid ""
-"This is a deliberate AcessDenied exception thrown to test the handling of "
+"This is a deliberate AccessDenied exception thrown to test the handling of "
 "access violations by means of a decorator."
 msgstr ""
 
@@ -15529,7 +16092,7 @@ msgid "testing access check for non-existant <admin> role"
 msgstr ""
 
 msgid ""
-"This is a deliberate AcessDenied exception. You should not see this message "
+"This is a deliberate AccessDenied exception. You should not see this message "
 "because the role is checked in a decorator."
 msgstr ""
 
@@ -15584,6 +16147,10 @@ msgstr "Vacunació"
 msgid "Cannot add vaccinations. No active patient."
 msgstr ""
 
+#, fuzzy
+msgid "manage family history"
+msgstr "Guarda el document finalitzat."
+
 msgid "Cannot manage family history. No active patient."
 msgstr ""
 
@@ -15602,28 +16169,57 @@ msgstr "Vacunació"
 msgid "Cannot manage suppressed hints. No active patient."
 msgstr "No hi ha entrades per aquest episodi"
 
+#, fuzzy
+msgid "Cannot manage smoking status. No active patient."
+msgstr "No hi ha entrades per aquest episodi"
+
 msgid "Cannot show EMR summary. No active patient."
 msgstr ""
 
 msgid "EMR Summary"
 msgstr ""
 
-msgid "Cannot export EMR journal. No active patient."
+#, fuzzy
+msgid "Cannot export EMR journal by last modification time. No active patient."
+msgstr "No hi ha entrades per aquest episodi"
+
+msgid "journal_by_last_mod_time"
 msgstr ""
 
 msgid "Save patient's EMR journal as..."
 msgstr ""
 
-msgid "Error exporting patient EMR as chronological journal."
+msgid "Error exporting patient EMR as journal by last modification time."
 msgstr ""
 
 msgid "EMR journal export"
 msgstr ""
 
 #, python-format
+msgid ""
+"Successfully exported EMR as journal by last modification time into file "
+"[%s]."
+msgstr ""
+
+msgid "Cannot export EMR journal. No active patient."
+msgstr ""
+
+msgid "emr-journal"
+msgstr ""
+
+msgid "Error exporting patient EMR as chronological journal."
+msgstr ""
+
+#, python-format
 msgid "Successfully exported EMR as chronological journal into file [%s]."
 msgstr ""
 
+msgid "EMR journal by last modification time"
+msgstr ""
+
+msgid "EMR journal by encounter"
+msgstr ""
+
 msgid "Cannot add tag to person. No active patient."
 msgstr ""
 
@@ -15683,6 +16279,20 @@ msgstr ""
 msgid "Saved screenshot to file [%s]."
 msgstr ""
 
+msgid "Python version check"
+msgstr ""
+
+#, python-format
+msgid ""
+"You are running Python version\n"
+" %s\n"
+"\n"
+"However, GNUmed wants Python 2.7 to\n"
+"facilitate migration to Python 3.\n"
+"\n"
+"Please upgrade your Python interpreter !"
+msgstr ""
+
 msgid "GNUmed client"
 msgstr ""
 
@@ -15754,9 +16364,6 @@ msgstr ""
 msgid "Checking database language settings"
 msgstr ""
 
-msgid "Set"
-msgstr ""
-
 #, python-format
 msgid "Set your database language to [%s]."
 msgstr ""
@@ -15815,6 +16422,31 @@ msgstr ""
 msgid "Cannot activate Allergy Manager. No active patient."
 msgstr ""
 
+msgid "RR ?"
+msgstr ""
+
+#, python-format
+msgid "BMI %s"
+msgstr ""
+
+msgid "BMI ?"
+msgstr ""
+
+msgid "GFR ?"
+msgstr ""
+
+#, python-format
+msgid "GFR %s"
+msgstr ""
+
+#, python-format
+msgid "?EDC %s"
+msgstr ""
+
+#, python-format
+msgid "EDC %s"
+msgstr ""
+
 msgid "<Age>"
 msgstr ""
 
@@ -15895,127 +16527,472 @@ msgstr "Guarda el document finalitzat."
 msgid "Editing automatic dynamic hint"
 msgstr "Guarda el document finalitzat."
 
-#, fuzzy
-msgid "Deleting automatic dynamic hint"
-msgstr "Guarda el document finalitzat."
+#, fuzzy
+msgid "Deleting automatic dynamic hint"
+msgstr "Guarda el document finalitzat."
+
+#, python-format
+msgid ""
+"Really delete this dynamic hint ?\n"
+"\n"
+" [%s]"
+msgstr ""
+
+#, fuzzy
+msgid "deleting a dynamic hint"
+msgstr "Guarda el document finalitzat."
+
+msgid ""
+"\n"
+"Dynamic hints registered with GNUmed.\n"
+msgstr ""
+
+#, fuzzy
+msgid "Showing dynamic hints."
+msgstr "Guarda el document finalitzat."
+
+msgid "Hint"
+msgstr ""
+
+msgid "Browse and install automatic dynamic hints data packs"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "By: %s"
+msgstr "Pacient"
+
+msgid "No entry in field <Source>."
+msgstr ""
+
+msgid "No entry in field <Conditions>."
+msgstr ""
+
+#, fuzzy
+msgid "No entry in field <Description>."
+msgstr "Descripció"
+
+msgid "No entry in field <Title>."
+msgstr ""
+
+#, fuzzy
+msgid "creating a new dynamic hint"
+msgstr "Guarda el document finalitzat."
+
+#, fuzzy
+msgid "updating an existing dynamic hint"
+msgstr "Obre una línia de temps existent"
+
+#, fuzzy
+msgid "Deleting suppressed dynamic hint"
+msgstr "Guarda el document finalitzat."
+
+#, python-format
+msgid ""
+"Really delete the suppression of this dynamic hint ?\n"
+"\n"
+" [%s]"
+msgstr ""
+
+msgid ""
+"\n"
+"Dynamic hints suppressed in this patient.\n"
+msgstr ""
+
+#, fuzzy
+msgid "Showing suppressed dynamic hints."
+msgstr "Guarda el document finalitzat."
+
+#, fuzzy
+msgid "Rationale"
+msgstr "Reacció"
+
+#, fuzzy
+msgid "Manage hints"
+msgstr "Vacunació"
+
+#, fuzzy
+msgid "Manage automatic dynamic hints"
+msgstr "Guarda el document finalitzat."
+
+msgid "Cannot delete family history item."
+msgstr ""
+
+msgid "Family history of this patient."
+msgstr ""
+
+msgid "Showing family history."
+msgstr ""
+
+msgid "Fatal"
+msgstr ""
+
+msgid "Noted"
+msgstr ""
+
+msgid "Died"
+msgstr ""
+
+msgid "Adding family history"
+msgstr ""
+
+msgid "Editing family history"
+msgstr ""
+
+msgid ""
+"\n"
+"Please select the default drug data source from the list below.\n"
+"\n"
+"Note that to actually use it you need to have the database installed, too."
+msgstr ""
+
+msgid "Configuring default drug data source"
+msgstr ""
+
+msgid "No default drug database configured."
+msgstr ""
+
+msgid "There is no default drug database configured."
+msgstr ""
+
+msgid "Jumping to drug database"
+msgstr ""
+
+msgid "Cannot import drugs from IFAP into chart without chart."
+msgstr ""
+
+#, python-format
+msgid "Cannot call IFAP via [%s]."
+msgstr ""
+
+#, python-format
+msgid "Cannot create IFAP <-> GNUmed transfer file [%s]."
+msgstr ""
+
+msgid "Current medication"
+msgstr ""
+
+msgid ""
+"\n"
+"The ATC codes as known to GNUmed.\n"
+msgstr ""
+
+msgid "Showing ATC codes."
+msgstr ""
+
+msgid "Choose an ATC import config file"
+msgstr ""
+
+msgid "config files"
+msgstr ""
+
+msgid "importing ATC reference data"
+msgstr ""
+
+msgid "Successfully imported ATC reference data."
+msgstr ""
+
+msgid "Importing ATC reference data failed."
+msgstr ""
+
+msgid "Select an ATC (Anatomical-Therapeutic-Chemical) code."
+msgstr ""
+
+msgid "Cannot edit this substance. It is in use."
+msgstr ""
+
+msgid "Adding new consumable substance"
+msgstr ""
+
+msgid "Editing consumable substance"
+msgstr ""
+
+msgid "Cannot delete this substance. It is in use."
+msgstr ""
+
+msgid ""
+"\n"
+"These are the consumable substances registered with GNUmed.\n"
+msgstr ""
+
+#, fuzzy
+msgid "Import"
+msgstr "Informe"
+
+msgid "Import consumable substances from a drug database."
+msgstr ""
+
+msgid "Cannot save consumable substance. Missing essential input."
+msgstr ""
+
+#, python-format
+msgid "Cannot save consumable substance. %s"
+msgstr ""
+
+msgid "The substance with optional strength."
+msgstr ""
+
+msgid "Cannot remove this component from the drug. It is in use."
+msgstr ""
+
+msgid ""
+"\n"
+"These are the components in the drug brands known to GNUmed.\n"
+msgstr ""
+
+msgid "Showing drug brand components."
+msgstr ""
+
+msgid "Adding new drug component"
+msgstr ""
+
+msgid "Editing drug component"
+msgstr ""
+
+msgid "Cannot edit drug component. It is in use."
+msgstr ""
+
+msgid "Cannot save drug component. Invalid or missing essential input."
+msgstr ""
+
+msgid "A drug component with optional strength."
+msgstr ""
+
+msgid "Editing drug"
+msgstr ""
+
+#, python-format
+msgid ""
+"Cannot edit the branded drug product\n"
+"\n"
+" \"%s\" (%s)\n"
+"\n"
+"because it is currently taken by patients.\n"
+msgstr ""
+
+msgid "Adding new drug brand"
+msgstr ""
+
+msgid "Editing drug brand"
+msgstr ""
+
+msgid "Manage consumable substances"
+msgstr ""
+
+msgid "not in use"
+msgstr ""
+
+#, python-format
+msgid "ATC: %s\n"
+msgstr ""
+
+msgid "Editing medication"
+msgstr ""
+
+#, python-format
+msgid ""
+"Cannot edit the medication\n"
+"\n"
+" \"%s\" (%s)\n"
+"\n"
+"because it is a vaccine. Please edit it\n"
+"from the vaccine management section !\n"
+msgstr ""
+
+msgid "Deleting medication"
+msgstr ""
+
+#, python-format
+msgid ""
+"Cannot delete the medication\n"
+"\n"
+" \"%s\" (%s)\n"
+"\n"
+"because it is a vaccine. Please delete it\n"
+"from the vaccine management section !\n"
+msgstr ""
+
+msgid ""
+"\n"
+"These are the drug brands known to GNUmed.\n"
+msgstr ""
+
+msgid "Showing branded drugs."
+msgstr ""
+
+msgid "Import substances and brands from a drug database."
+msgstr ""
+
+msgid "Managing components of a drug"
+msgstr ""
+
+#, python-format
+msgid ""
+"Cannot manage the components of the branded drug product\n"
+"\n"
+" \"%s\" (%s)\n"
+"\n"
+"because it is currently taken by patients.\n"
+msgstr ""
+
+msgid "Pick the substances which are components of this drug."
+msgstr ""
+
+msgid "Components of drug"
+msgstr ""
 
 #, python-format
 msgid ""
-"Really delete this dynamic hint ?\n"
+"Adjust the components of \"%s\"\n"
 "\n"
-" [%s]"
+"The drug must contain at least one component. Any given\n"
+"substance can only be included once per drug."
 msgstr ""
 
-#, fuzzy
-msgid "deleting a dynamic hint"
-msgstr "Guarda el document finalitzat."
+msgid "Managing components of a drug ..."
+msgstr ""
 
-msgid ""
-"\n"
-"Dynamic hints registered with GNUmed.\n"
+msgid "Cannot edit drug brand. It is in use."
 msgstr ""
 
-#, fuzzy
-msgid "Showing dynamic hints."
-msgstr "Guarda el document finalitzat."
+msgid "Checking brand data"
+msgstr ""
 
-msgid "Hint"
+#, python-format
+msgid ""
+"The brand information you entered:\n"
+"\n"
+" [%s %s]\n"
+"\n"
+"already exists as a drug product."
 msgstr ""
 
-msgid "Browse and install automatic dynamic hints data packs"
+msgid ""
+"You have not selected any substances\n"
+"as drug components.\n"
+"\n"
+"Without components you will not be able to\n"
+"use this drug for documenting patient care.\n"
+"\n"
+"Are you sure you want to save\n"
+"it without components ?"
 msgstr ""
 
-#, fuzzy, python-format
-msgid "By: %s"
-msgstr "Pacient"
+msgid "Cannot save branded drug. Invalid or missing essential input."
+msgstr ""
 
-msgid "No entry in field <Source>."
+msgid ""
+"The brand name of the drug.\n"
+"\n"
+"Note: a brand name will need to be linked to\n"
+"one or more components before it can be used,\n"
+"except in the case of fake (generic) vaccines."
 msgstr ""
 
-msgid "No entry in field <Conditions>."
+msgid "No EMR data loaded."
 msgstr ""
 
-#, fuzzy
-msgid "No entry in field <Description>."
-msgstr "Descripció"
+msgid "EMR text dump"
+msgstr ""
 
-msgid "No entry in field <Title>."
+msgid "Currently there is no active patient. Cannot retrieve EMR text."
 msgstr ""
 
 #, fuzzy
-msgid "creating a new dynamic hint"
-msgstr "Guarda el document finalitzat."
+msgid "SOAP Editor Actions:"
+msgstr "Vacunació"
 
 #, fuzzy
-msgid "updating an existing dynamic hint"
-msgstr "Obre una línia de temps existent"
+msgid "&Sort lines"
+msgstr "No s'ha establert cap línia de temps"
 
-#, fuzzy
-msgid "Deleting suppressed dynamic hint"
-msgstr "Guarda el document finalitzat."
+msgid "Sort lines by SOAP category"
+msgstr ""
 
-#, python-format
-msgid ""
-"Really delete the suppression of this dynamic hint ?\n"
-"\n"
-" [%s]"
+msgid "e&Xpand keyword"
 msgstr ""
 
-msgid ""
-"\n"
-"Dynamic hints suppressed in this patient.\n"
+msgid "Expand keyword / macro"
 msgstr ""
 
 #, fuzzy
-msgid "Showing suppressed dynamic hints."
-msgstr "Guarda el document finalitzat."
+msgid "as &Subjective"
+msgstr "Subjectiu"
+
+msgid "Set line to category \"Subjective\""
+msgstr ""
 
 #, fuzzy
-msgid "Rationale"
-msgstr "Reacció"
+msgid "as &Objective"
+msgstr "Objectiu"
+
+msgid "Set line to category \"Objective\""
+msgstr ""
 
 #, fuzzy
-msgid "Manage hints"
-msgstr "Vacunació"
+msgid "as &Assessment"
+msgstr "Avaluació"
+
+msgid "Set line to category \"Assessment\""
+msgstr ""
 
 #, fuzzy
-msgid "Manage automatic dynamic hints"
-msgstr "Guarda el document finalitzat."
+msgid "as &Plan"
+msgstr "Pla"
 
-msgid "Cannot delete family history item."
+msgid "Set line to category \"Plan\""
 msgstr ""
 
-msgid "Family history of this patient."
+msgid "as &Unspecified"
 msgstr ""
 
-msgid "Showing family history."
+msgid "Set line to category \"unspecified\""
 msgstr ""
 
-msgid "Fatal"
+#, fuzzy
+msgid "as ad&Ministrative"
+msgstr "Administratiu"
+
+msgid "Set line to category \"administrative\""
 msgstr ""
 
-msgid "Noted"
+msgid "→ &Clipboard"
 msgstr ""
 
-msgid "Died"
+msgid "Copy line to clipboard"
 msgstr ""
 
-msgid "Adding family history"
+msgid "→ +Clipboard+"
 msgstr ""
 
-msgid "Editing family history"
+msgid "Add line to clipboard"
 msgstr ""
 
-msgid "No EMR data loaded."
+msgid "Copy content to clipboard"
 msgstr ""
 
-msgid "EMR text dump"
+msgid "Add content to clipboard"
 msgstr ""
 
-msgid "Currently there is no active patient. Cannot retrieve EMR text."
+#, fuzzy
+msgid "Copy selection to clipboard"
+msgstr "Llistat de vacunes buit"
+
+#, fuzzy
+msgid "Add selection to clipboard"
+msgstr "Documents"
+
+msgid "&Line ..."
 msgstr ""
 
 #, fuzzy
+msgid "&Text ..."
+msgstr "Text"
+
+#, fuzzy
+msgid "&Region ..."
+msgstr "Vacunació"
+
+#, fuzzy
 msgid "Show HL7 file:"
 msgstr "Mostra l'hora"
 
@@ -16025,6 +17002,10 @@ msgstr ""
 msgid "Extracting HL7 from XML file"
 msgstr ""
 
+#, python-format
+msgid "Unwrapped HL7 into [%s] from [%s]."
+msgstr ""
+
 msgid "Select HL7 file for staging:"
 msgstr ""
 
@@ -16049,6 +17030,10 @@ msgid ""
 " %s"
 msgstr ""
 
+#, fuzzy, python-format
+msgid "Staged HL7 from [%s]."
+msgstr "Carrega l'informació de la plantilla des d'un fitxer."
+
 msgid "Importing HL7 data"
 msgstr ""
 
@@ -16094,10 +17079,6 @@ msgstr ""
 msgid "Identification"
 msgstr "Instruccions"
 
-#, fuzzy
-msgid "Show"
-msgstr "Mostra l'hora"
-
 msgid "Show formatted HL7"
 msgstr ""
 
@@ -16146,6 +17127,20 @@ msgstr "L'actual pacient seleccionat és:"
 msgid "Plot current selection"
 msgstr "Documents"
 
+#, fuzzy
+msgid ""
+"Select the measurements panel to show in the top pane for continuous "
+"monitoring."
+msgstr "Comprava-ho si vols editar la teva revisió."
+
+#, fuzzy
+msgid "Lab panel"
+msgstr "Vacunació"
+
+#, fuzzy
+msgid "Configuring continuous monitoring measurements panel"
+msgstr "Medicions i Resultats:"
+
 msgid "No default Gnuplot script template selected."
 msgstr ""
 
@@ -16168,11 +17163,26 @@ msgstr ""
 msgid "Cannot plot without a plot script."
 msgstr ""
 
+msgid "Result"
+msgstr ""
+
 #, fuzzy
-msgid "Time"
-msgstr "Línia de temps"
+msgid "Perform on selected results:"
+msgstr "resultat corretgit"
 
-msgid "Result"
+msgid "Review and &sign"
+msgstr ""
+
+msgid "Export to &file"
+msgstr ""
+
+msgid "Export to &clipboard"
+msgstr ""
+
+msgid "Panels"
+msgstr ""
+
+msgid "List"
 msgstr ""
 
 msgid ""
@@ -16250,19 +17260,6 @@ msgstr ""
 msgid "All: by &Day"
 msgstr ""
 
-#, fuzzy
-msgid "Perform on selected results:"
-msgstr "resultat corretgit"
-
-msgid "Review and &sign"
-msgstr ""
-
-msgid "Export to &file"
-msgstr ""
-
-msgid "Export to &clipboard"
-msgstr ""
-
 #, python-format
 msgid "%s results selected. Too many to list individually."
 msgstr ""
@@ -16449,6 +17446,10 @@ msgid "EMR Actions:"
 msgstr "Reacció"
 
 #, fuzzy
+msgid "Print EMR"
+msgstr "Imprimeix"
+
+#, fuzzy
 msgid "Create health issue"
 msgstr "Sisuplau, seleccioni un assumpte mèdic."
 
@@ -16602,11 +17603,42 @@ msgstr ""
 msgid "&New notes %s"
 msgstr ""
 
+msgid "Find text in EMR Journal"
+msgstr ""
+
+#, fuzzy
+msgid "Modified"
+msgstr "entrada modificada"
+
+#, fuzzy
+msgid "Clinical time"
+msgstr "Annotacions clíniques"
+
+msgid "Who / When"
+msgstr ""
+
+#, python-format
 msgid ""
-"An error occurred while retrieving the EMR\n"
-"in journal form for the active patient.\n"
+"Chart entry: %s       [#%s in %s]\n"
+" Modified: %s by %s (%s rev %s)\n"
 "\n"
-"Please check the log file for details."
+"Health issue: %s%s\n"
+"Episode: %s%s\n"
+"Encounter: %s%s"
+msgstr ""
+
+#, python-format
+msgid ""
+"%s\n"
+"\n"
+"                        rev %s (%s) by %s in <%s>"
+msgstr ""
+
+#, python-format
+msgid ""
+"%s\n"
+"%s\n"
+"%s"
 msgstr ""
 
 msgid "Editing tag"
@@ -16737,18 +17769,15 @@ msgid ""
 "%s\n"
 msgstr ""
 
-msgid "This patient DID receive care."
+msgid "This patient DID receive care here."
 msgstr ""
 
-msgid "This person did NOT receive care."
+msgid "This person did NOT receive care here."
 msgstr ""
 
 msgid "Disabling person"
 msgstr ""
 
-msgid "Disabling patient"
-msgstr ""
-
 msgid "Type or select a last name (family name/surname)."
 msgstr ""
 
@@ -16995,6 +18024,9 @@ msgid ""
 "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
 msgstr ""
 
+msgid "Connecting to backend"
+msgstr ""
+
 #, python-format
 msgid ""
 "Unable to connect to database:\n"
@@ -17203,9 +18235,6 @@ msgstr ""
 msgid "Office"
 msgstr ""
 
-msgid "State"
-msgstr "Província/Vagueria"
-
 msgid "Zip"
 msgstr ""
 
@@ -17262,8 +18291,9 @@ msgstr ""
 msgid "EMR Timeline"
 msgstr ""
 
-msgid "Show &Timeline"
-msgstr ""
+#, fuzzy
+msgid "EMR &Timeline"
+msgstr "Línia de &temps"
 
 msgid "Overview"
 msgstr ""
@@ -17289,10 +18319,10 @@ msgstr ""
 msgid "&SimpleNotes"
 msgstr ""
 
-msgid "EMR tree"
+msgid "EMR Tree"
 msgstr ""
 
-msgid "EMR &Tree (topical)"
+msgid "EMR &Tree"
 msgstr ""
 
 #, fuzzy
@@ -17303,6 +18333,12 @@ msgstr "Imprimeix"
 msgid "&Print Manager"
 msgstr "Imprimeix"
 
+msgid "EMR Journal"
+msgstr ""
+
+msgid "EMR &Journal (list)"
+msgstr ""
+
 msgid "Appointments"
 msgstr ""
 
@@ -17315,6 +18351,12 @@ msgstr ""
 msgid "Show &lab journal"
 msgstr ""
 
+msgid "PACS"
+msgstr ""
+
+msgid "&PACS"
+msgstr ""
+
 msgid "Cardiac Devices"
 msgstr ""
 
@@ -17387,10 +18429,7 @@ msgstr ""
 msgid "User &manual (local)"
 msgstr ""
 
-msgid "EMR journal"
-msgstr ""
-
-msgid "EMR &Journal (chronological)"
+msgid "EMR &Journal (text)"
 msgstr ""
 
 msgid "Demographics"
@@ -17553,6 +18592,10 @@ msgstr "&Plantilla"
 msgid "Show &ExamplePlugin"
 msgstr ""
 
+#, fuzzy
+msgid "Find text"
+msgstr "Cognom"
+
 msgid "gm_ctl_client: starting slave GNUmed client"
 msgstr ""
 
@@ -17580,28 +18623,54 @@ msgid "Abort and do NOT connect to GNUmed."
 msgstr "Interromput  i no connectat a GNUmed"
 
 #, fuzzy
-#~ msgid "%s: %s%s%s (%s ago)"
-#~ msgstr "%s la setmana passada (%s of %s)"
+#~ msgid ""
+#~ "Health issue: %s%s%s (%s versions)\n"
+#~ "\n"
+#~ msgstr "Assumpte mèdic:"
 
 #, fuzzy
-#~ msgid "Clinical hint"
-#~ msgstr "Annotacions clíniques"
+#~ msgid ""
+#~ "Episode: %s%s%s (%s versions)\n"
+#~ "\n"
+#~ msgstr "episodi : %s"
 
 #, fuzzy
-#~ msgid "Go to [%s]"
-#~ msgstr " opció [%s]: %s"
+#~ msgid ""
+#~ "Encounter: %s%s%s (%s versions)\n"
+#~ "\n"
+#~ msgstr "Visites: %s (%s - %s):"
 
 #, fuzzy
-#~ msgid "Check here for printing."
-#~ msgstr "Configuració d'imprssió"
+#~ msgid "&Unknown"
+#~ msgstr "Es desconeix"
 
 #, fuzzy
-#~ msgid "Enter a fax number here."
-#~ msgstr "Introdueixi la pregunta aquí."
+#~ msgid "Last confirmed: %s%s"
+#~ msgstr "Confirmat per última:"
+
+#~ msgid "State"
+#~ msgstr "Província/Vagueria"
+
+#~ msgid "No product information available."
+#~ msgstr "Informació del producte no disponible."
 
 #, fuzzy
-#~ msgid "file: %s (%s/)"
-#~ msgstr "Pacient"
+#~ msgid ""
+#~ "\n"
+#~ "Select the measurements panel to show in the top pane.\n"
+#~ msgstr "Comprava-ho si vols editar la teva revisió."
+
+#, fuzzy
+#~ msgid "%s: %s%s%s (%s ago)"
+#~ msgstr "%s la setmana passada (%s of %s)"
+
+#, fuzzy
+#~ msgid "Go to [%s]"
+#~ msgstr " opció [%s]: %s"
+
+#, fuzzy
+#~ msgid "Enter a fax number here."
+#~ msgstr "Introdueixi la pregunta aquí."
 
 #, fuzzy
 #~ msgid "Switching clinical hint activation"
@@ -17649,9 +18718,6 @@ msgstr "Interromput  i no connectat a GNUmed"
 #~ msgid "SQL: %s"
 #~ msgstr "SQL: %s"
 
-#~ msgid "cannot connect to service [%s]"
-#~ msgstr "no es pot connectar al servei [%s]"
-
 #~ msgid "Visualize"
 #~ msgstr "Visualitza"
 
diff --git a/client/po/cs-gnumed.mo b/client/po/cs-gnumed.mo
index 44a528b..82c02d7 100644
Binary files a/client/po/cs-gnumed.mo and b/client/po/cs-gnumed.mo differ
diff --git a/client/po/cs.po b/client/po/cs.po
index 97c72a8..da3e81d 100644
--- a/client/po/cs.po
+++ b/client/po/cs.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: GNUmed\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-12-26 20:28+0100\n"
+"POT-Creation-Date: 2016-03-17 16:27+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <LL at li.org>\n"
@@ -1544,9 +1544,21 @@ msgid ""
 msgstr ""
 
 #, python-format
+msgid "Revision #%s"
+msgstr ""
+
+#, python-format
 msgid "[%s:%s]: row not updated (nothing returned), row in use ?"
 msgstr ""
 
+#, fuzzy, python-format
+msgid "<%s(.bat)> not found"
+msgstr "Stránka nenalezena"
+
+#, python-format
+msgid "problem with <%s>"
+msgstr ""
+
 #, python-format
 msgid "[%s] is not a readable file"
 msgstr ""
@@ -1575,21 +1587,7 @@ msgstr ""
 msgid "%s Bytes"
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot connect to configuration database with:\n"
-"\n"
-"[%s]"
-msgstr ""
-
-#, python-format
-msgid ""
-"Cannot connect to database with:\n"
-"\n"
-"[%s]"
-msgstr ""
-
-msgid "No product information available."
+msgid "<type>"
 msgstr ""
 
 #, python-format
@@ -1927,90 +1925,6 @@ msgstr ""
 msgid "  risk: %s"
 msgstr ""
 
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Are you sure you have got a local database installed ?\n"
-"\n"
-"Please retry with proper credentials or cancel.\n"
-"\n"
-"You may also need to check the PostgreSQL client\n"
-"authentication configuration in pg_hba.conf. For\n"
-"details see:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-msgstr ""
-"Nelze se spojit s databází:\n"
-"\n"
-"%s\n"
-"\n"
-"Jste si jisti, že máte nainstalovanou lokální databázi ?\n"
-"\n"
-"Zkuste to prosím znovu s řádným pověřením nebo akci zrušte.\n"
-"\n"
-"Můžete třeba také zkontrolovat konfiguraci ověřování klienta\n"
-"PostgreSQL v pg_hba.conf. Pro\n"
-"detaily viz:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Please retry with proper credentials or cancel.\n"
-"\n"
-"You may also need to check the PostgreSQL client\n"
-"authentication configuration in pg_hba.conf. For\n"
-"details see:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-msgstr ""
-
-msgid "Connecting to backend"
-msgstr ""
-
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Please retry another backend / user / password combination !\n"
-msgstr ""
-
-msgid "programmer forgot to specify error message"
-msgstr "programátor zapoměl zadat chybovou hlášku"
-
-msgid ""
-"\n"
-"\n"
-"Please consult the error log for all the gory details !"
-msgstr ""
-"\n"
-"\n"
-"Prosím, přečtěte si protokol chyb pro všechny podrobnosti!"
-
-msgid "generic error message"
-msgstr "obecná chybová zpráva"
-
-msgid "programmer forgot to specify info message"
-msgstr "programátor zapoměl zadat informační hlášku"
-
-msgid "generic info message"
-msgstr "obecná informační hláška"
-
-msgid "programmer forgot to specify warning"
-msgstr "programátor zapomněl zadat upozornění"
-
-msgid "generic warning message"
-msgstr ""
-
 msgid "no hook specified, please report bug"
 msgstr ""
 
@@ -2327,6 +2241,30 @@ msgstr ""
 msgid "Include:"
 msgstr ""
 
+msgid "&Search"
+msgstr ""
+
+msgid "Suggest"
+msgstr ""
+
+msgid "Set"
+msgstr ""
+
+msgid "dialog_1"
+msgstr ""
+
+msgid "Search patients in Orthanc DICOM store."
+msgstr ""
+
+msgid "Suggest a patient ID based on the active patient."
+msgstr ""
+
+msgid "Search term:"
+msgstr ""
+
+msgid "New patient ID:"
+msgstr ""
+
 msgid "Your review"
 msgstr ""
 
@@ -2628,6 +2566,91 @@ msgstr ""
 msgid "Amount"
 msgstr ""
 
+msgid "&Connect"
+msgstr ""
+
+msgid "&Browse"
+msgstr ""
+
+msgid "<not connected>"
+msgstr ""
+
+msgid "Browse all"
+msgstr ""
+
+#, fuzzy
+msgid "Export all"
+msgstr "Export do SVG"
+
+msgid "Browse"
+msgstr ""
+
+msgid "Export"
+msgstr ""
+
+msgid "Upload"
+msgstr ""
+
+msgid "Enter the PACS host address."
+msgstr ""
+
+msgid "Enter the PACS port."
+msgstr ""
+
+msgid "Enter the PACS user."
+msgstr ""
+
+msgid "Enter the PACS password. It will not be shown."
+msgstr ""
+
+msgid "Connect to PACS."
+msgstr ""
+
+msgid "Browse PACS at top level."
+msgstr ""
+
+msgid "Modify some of Orthanc content (such as patient IDs)."
+msgstr ""
+
+msgid "Browse overview of studies for this patient."
+msgstr ""
+
+msgid "Copy all studies into export area."
+msgstr ""
+
+msgid "Browse topmost selected study."
+msgstr ""
+
+msgid "Copy selected studies into export area."
+msgstr ""
+
+msgid "Save selected studies to disk."
+msgstr ""
+
+msgid ""
+"Upload DICOM files from a directory, recursively, into the Orthanc PACS\n"
+"\n"
+"The currently active patient does not matter. Orthanc will associate "
+"uploaded files with the patient found within the DICOM metadata. It will "
+"create new patients as needed."
+msgstr ""
+
+msgid "Host:"
+msgstr ""
+
+msgid "Port:"
+msgstr ""
+
+msgid "User:"
+msgstr ""
+
+msgid "Password"
+msgstr ""
+
+#, fuzzy
+msgid "Selected studies:"
+msgstr "Vybrat událost."
+
 msgid "Fake brand"
 msgstr ""
 
@@ -2951,9 +2974,6 @@ msgstr ""
 msgid "&Load"
 msgstr ""
 
-msgid "Export"
-msgstr ""
-
 msgid "A long, descriptive name for this form template."
 msgstr ""
 
@@ -3041,15 +3061,13 @@ msgstr ""
 msgid "Document Properties"
 msgstr ""
 
-msgid "Show part"
-msgstr ""
+#, fuzzy
+msgid "Show"
+msgstr "Zobrazit čas"
 
 msgid "Remove part"
 msgstr ""
 
-msgid "Parts"
-msgstr ""
-
 msgid "Discard"
 msgstr ""
 
@@ -3077,6 +3095,9 @@ msgstr ""
 msgid "Required: The primary episode this document is to be listed under."
 msgstr ""
 
+msgid "Optional: The organization (unit) this document originated from."
+msgstr ""
+
 msgid ""
 "Optional: A short comment identifying the document. Good comments give an "
 "idea of the content and source of the document."
@@ -3101,6 +3122,9 @@ msgid ""
 "normal and abnormal resuslts can be relevant."
 msgstr ""
 
+msgid "Optional: A free-text document description."
+msgstr ""
+
 msgid "This field lists the parts belonging to the current document."
 msgstr ""
 
@@ -3112,9 +3136,6 @@ msgid ""
 "deletion from disk."
 msgstr ""
 
-msgid "Optional: A free-text document description."
-msgstr ""
-
 msgid "Save finished document."
 msgstr ""
 
@@ -3130,6 +3151,10 @@ msgstr ""
 msgid "Associate to episode:"
 msgstr ""
 
+#, fuzzy
+msgid "Document source:"
+msgstr "Dokumenty:"
+
 msgid "Comment / Identification:"
 msgstr ""
 
@@ -3310,7 +3335,7 @@ msgstr ""
 msgid "Messages:"
 msgstr ""
 
-msgid "Only:"
+msgid "Limit to:"
 msgstr ""
 
 msgid "&Myself … or:"
@@ -3420,10 +3445,10 @@ msgstr ""
 msgid "Purpose"
 msgstr ""
 
-msgid "Details"
+msgid "Please supply your email address here !"
 msgstr ""
 
-msgid "<Please supply your email address here !>"
+msgid "Details"
 msgstr ""
 
 msgid "Keep running"
@@ -3447,9 +3472,11 @@ msgid ""
 msgstr ""
 
 msgid ""
-"Please enter your email address so we can provide feedback directly to you. "
-"Otherwise, feedback will be given on the GNUmed mailing list (http://lists."
-"gnu.org/mailman/listinfo/gnumed-bugs)."
+"Please enter your email address so we can provide help to you directly.\n"
+"\n"
+"Otherwise, feedback can be given on the GNUmed mailing list (http://lists."
+"gnu.org/mailman/listinfo/gnumed-bugs) ONLY to which you will then have to "
+"subscribe."
 msgstr ""
 
 msgid "Find help on http://wiki.gnumed.de, too."
@@ -3564,9 +3591,6 @@ msgstr ""
 msgid "Account"
 msgstr ""
 
-msgid "Password"
-msgstr ""
-
 msgid "Password, again"
 msgstr ""
 
@@ -4058,7 +4082,7 @@ msgstr ""
 msgid "Acquire images from image source (scanner, ...)."
 msgstr ""
 
-msgid "Acquire images or text from the clipboard."
+msgid "Acquire file or text from the clipboard."
 msgstr ""
 
 msgid "Remove the selected documents."
@@ -4205,7 +4229,7 @@ msgid ""
 "- the result list will be artificially limited to the first 1000 rows\n"
 "- you can include a column named \"pk_patient\" to make the result rows "
 "activate the corresponding patient on double-clicking\n"
-"- by inserting $<ID_active_patient>$ you can access the patient ID of the "
+"- by inserting $<ID_ACTIVE_PATIENT>$ you can access the patient ID of the "
 "patient active at the time of running the query"
 msgstr ""
 
@@ -4364,9 +4388,6 @@ msgstr ""
 msgid "Link &new"
 msgstr ""
 
-msgid "Browse"
-msgstr ""
-
 msgid ""
 "Search for matches among existing addresses and [Link] a selection, or [Link "
 "(a) new] address."
@@ -4415,25 +4436,16 @@ msgid ""
 "left."
 msgstr ""
 
-msgid "label_1"
-msgstr ""
-
-msgid "→"
-msgstr ""
-
-msgid "←"
-msgstr ""
-
-msgid "Extra"
+msgid "Subjective"
 msgstr ""
 
-msgid "Move selected items from left to right."
+msgid "Objective"
 msgstr ""
 
-msgid "Move selected items from right to left."
+msgid "Assessment"
 msgstr ""
 
-msgid "Cancel picking items."
+msgid "Plan"
 msgstr ""
 
 msgid "Episode synopsis"
@@ -4469,19 +4481,28 @@ msgid ""
 "narrative belongs to."
 msgstr ""
 
-msgid "Subjective"
+msgid "Codes:"
 msgstr ""
 
-msgid "Codes:"
+msgid "label_1"
 msgstr ""
 
-msgid "Objective"
+msgid "→"
 msgstr ""
 
-msgid "Assessment"
+msgid "←"
 msgstr ""
 
-msgid "Plan"
+msgid "Extra"
+msgstr ""
+
+msgid "Move selected items from left to right."
+msgstr ""
+
+msgid "Move selected items from right to left."
+msgstr ""
+
+msgid "Cancel picking items."
 msgstr ""
 
 msgid "1"
@@ -4650,40 +4671,118 @@ msgstr ""
 msgid "Age range"
 msgstr ""
 
-msgid "Closed episodes"
+msgid "&Nicotine"
 msgstr ""
 
-msgid "Non-relevant issues"
+msgid "&Alcohol"
 msgstr ""
 
-msgid "Active problems"
+msgid "&Other:"
 msgstr ""
 
-msgid "Notes only"
+msgid "&Non-harmful use"
 msgstr ""
 
-msgid "Everything"
+msgid "&Harmful use"
 msgstr ""
 
-msgid ""
-"In this area GNUmed will place the notes of the\n"
-"previous encounter as well as notes by other\n"
-"staff for the current encounter.\n"
-"\n"
-"Note that this may change depending on which\n"
-"active problem is selected in the editor below."
+msgid "Presently &addicted"
 msgstr ""
 
-msgid "Most recent info on above problem"
+msgid "Previously &addicted"
 msgstr ""
 
-msgid "Show closed episodes as pseudo-problems ?"
+msgid "&Reconfirm as of today"
 msgstr ""
 
-msgid "Show issues marked clinically NOT relevant."
+msgid "Select for documenting smoking status."
 msgstr ""
 
-msgid ""
+msgid "Select for documenting alcohol use status."
+msgstr ""
+
+msgid ""
+"Select for documenting use of substances other than nicotine or alcohol."
+msgstr ""
+
+msgid "Select the abused substance."
+msgstr ""
+
+msgid ""
+"Select if the substance use is not considered harmful (say, no use or non-"
+"harmful use)."
+msgstr ""
+
+msgid "Select if substance is use considered harmful."
+msgstr ""
+
+msgid "Select if the patient is presently addicted to this substance."
+msgstr ""
+
+msgid "Select if the patient was previously addicted to this substance."
+msgstr ""
+
+msgid ""
+"A comment on this substance use:\n"
+"- type of product used\n"
+"- frequency\n"
+"- amount\n"
+"- when started\n"
+"- attempts to quit\n"
+"..."
+msgstr ""
+
+msgid ""
+"When did the patient quit?\n"
+"\n"
+"You can also set a target quit date here."
+msgstr ""
+
+#, fuzzy
+msgid "Check here to confirm for today."
+msgstr "Nastavení stránky pro tisk"
+
+msgid "Quit date"
+msgstr ""
+
+#, fuzzy
+msgid "Last confirmed"
+msgstr " (poslední potvrzená %s)"
+
+msgid "Closed episodes"
+msgstr ""
+
+msgid "Non-relevant issues"
+msgstr ""
+
+msgid "Active problems"
+msgstr ""
+
+msgid "Notes only"
+msgstr ""
+
+msgid "Everything"
+msgstr ""
+
+msgid ""
+"In this area GNUmed will place the notes of the\n"
+"previous encounter as well as notes by other\n"
+"staff for the current encounter.\n"
+"\n"
+"Note that this may change depending on which\n"
+"active problem is selected in the editor below."
+msgstr ""
+
+msgid "Most recent info on above problem"
+msgstr ""
+
+msgid "Show closed episodes as pseudo-problems ?"
+msgstr ""
+
+msgid "Show issues marked clinically NOT relevant."
+msgstr ""
+
+msgid ""
 "This shows the list of active problems, They include open episodes as well "
 "as active health issues."
 msgstr ""
@@ -4986,20 +5085,18 @@ msgstr ""
 msgid "Show:"
 msgstr ""
 
-msgid "Brand by component"
+msgid "Kidneys"
 msgstr ""
 
 msgid "Brands"
 msgstr ""
 
-msgid "Kidneys"
-msgstr ""
-
-msgid "Unbranded substance"
+msgid "Substances"
 msgstr ""
 
-msgid "Manage"
-msgstr ""
+#, fuzzy
+msgid "&Unknown or date:"
+msgstr "Neznámý formát."
 
 msgid "Approved of"
 msgstr ""
@@ -5014,23 +5111,20 @@ msgid "... Reason"
 msgstr ""
 
 msgid ""
-"A component of a drug brand the patient is taking.\n"
+"A drug the patient is taking.\n"
 "\n"
-"Lookup, and select, a single- (or multi-) component drug brand, by active "
-"ingredient name. All components of multi-component drugs will be displayed "
-"and automatically added to the patient's list."
-msgstr ""
-
-msgid ""
-"Manage drug brands.\n"
+"Lookup and select an intake by either of\n"
+"- a generic substance name\n"
+"- a drug brand name\n"
+"- an active ingredient of a drug\n"
 "\n"
-"Note that this will not select a component for you. What it does is to let "
-"you manage (add/edit/delete) the drug products/brands known to GNUmed from "
-"which you can select a component."
+"Note that all components of multi-component drugs will be displayed and "
+"automatically added to the patient's list."
 msgstr ""
 
-msgid "The active ingredients of this brand."
-msgstr ""
+#, fuzzy
+msgid "Details on the selected drug."
+msgstr "Duplikovat vybranou událost"
 
 msgid "Show cardiac information relevant to substance selection."
 msgstr ""
@@ -5039,8 +5133,11 @@ msgid "Show renal insufficiency information related to substance selection."
 msgstr ""
 
 msgid ""
-"The non-branded medication or non-medication substance, with optional "
-"strength."
+"Manage drug brands.\n"
+"\n"
+"Note that this will not select a component for you. What it does is to let "
+"you manage (add/edit/delete) the drug products/brands known to GNUmed from "
+"which you can select a component."
 msgstr ""
 
 msgid ""
@@ -5053,11 +5150,19 @@ msgstr ""
 msgid "The preparation or form of the substance."
 msgstr ""
 
+msgid "Check here if the start date simply isn't known."
+msgstr ""
+
 msgid ""
 "When was this substance started to be consumed or - if not known - the "
 "earliest it is known to have been be consumed."
 msgstr ""
 
+msgid ""
+"A coment on the certainty of the start date, such as \"+/- 3 weeks\", "
+"\"spring of 2002\", \"shortly after Easter 1996\", ...."
+msgstr ""
+
 msgid "Whether this substance is taken by advice."
 msgstr ""
 
@@ -5091,6 +5196,16 @@ msgstr ""
 msgid "Reason for discontinuation."
 msgstr ""
 
+msgid "Drug"
+msgstr ""
+
+msgid "Research:"
+msgstr ""
+
+#, fuzzy
+msgid "Certainty:"
+msgstr "Kontejner:"
+
 msgid "Schedule"
 msgstr ""
 
@@ -5242,6 +5357,33 @@ msgstr ""
 msgid "Channel"
 msgstr ""
 
+msgid "&Last modification time"
+msgstr ""
+
+#, fuzzy
+msgid "&Entry time"
+msgstr "Koncový čas "
+
+msgid "Show journal ordered by encounter."
+msgstr ""
+
+msgid "Show journal ordered by time of last modification."
+msgstr ""
+
+msgid "Show journal ordered by actual clinical time of each entry."
+msgstr ""
+
+#, fuzzy
+msgid "Edit the selected chart entry."
+msgstr "&Duplikovat vybranou událost..."
+
+#, fuzzy
+msgid "Delete selected chart entry."
+msgstr "Výběr událostí"
+
+msgid "Order by:"
+msgstr ""
+
 msgid "Chec&k"
 msgstr ""
 
@@ -5784,10 +5926,13 @@ msgstr ""
 msgid "Documents:"
 msgstr "Dokumenty:"
 
+msgid "&L"
+msgstr ""
+
 msgid "&N"
 msgstr ""
 
-msgid "&L"
+msgid "List all encounters."
 msgstr ""
 
 msgid "The encounter."
@@ -5796,9 +5941,6 @@ msgstr ""
 msgid "Start a new encounter for the active patient."
 msgstr ""
 
-msgid "List all encounters."
-msgstr ""
-
 msgid "Clinically relevant"
 msgstr ""
 
@@ -6049,7 +6191,8 @@ msgstr "Otevřít existující časovou osu"
 
 msgid ""
 "Rationale for\n"
-"suppression"
+"suppression\n"
+"for this patient"
 msgstr ""
 
 msgid "Save &under"
@@ -6105,6 +6248,12 @@ msgstr ""
 msgid "Encounter:"
 msgstr ""
 
+msgid "Manage"
+msgstr ""
+
+msgid "&Panel:"
+msgstr ""
+
 msgid "&Pick"
 msgstr ""
 
@@ -6147,6 +6296,9 @@ msgid ""
 "To disable that popup leave the message empty."
 msgstr ""
 
+msgid "Show search dialog."
+msgstr ""
+
 msgid "THIS IS NOT A VERIFIED MEASUREMENT. DO NOT USE FOR ACTUAL CARE."
 msgstr "TOTO NENÍ OVĚŘENÉ MĚŘENÍ. NEVYUŽÍVEJTE V MOMENTÁLNÍ LÉČBĚ."
 
@@ -6442,6 +6594,49 @@ msgstr "*má*  alergie"
 msgid "ERROR: unknown allergy state [%s]"
 msgstr "ERROR: neznámý stav na alergie[%s]"
 
+msgid "definite"
+msgstr ""
+
+msgid "indefinite"
+msgstr ""
+
+#, fuzzy
+msgid "Reaction:"
+msgstr "Směr"
+
+msgid "Noted:"
+msgstr ""
+
+msgid "Allergene:"
+msgstr ""
+
+#, fuzzy
+msgid "Substance:"
+msgstr " Jméno souboru: %s\n"
+
+msgid "Code:"
+msgstr ""
+
+msgid "ATC:"
+msgstr ""
+
+msgid "Specific to:"
+msgstr ""
+
+#, fuzzy
+msgid "this substance only"
+msgstr "Aktívní zúčtovatelná položka"
+
+msgid "drug class"
+msgstr ""
+
+msgid "unknown"
+msgstr ""
+
+#, fuzzy
+msgid "Generics:"
+msgstr "obecná informační hláška"
+
 msgid "Medication history"
 msgstr ""
 
@@ -6453,9 +6648,15 @@ msgstr "Popis"
 msgid "prescription data"
 msgstr "Popis"
 
+msgid "Consumable substance"
+msgstr ""
+
 msgid "in use"
 msgstr ""
 
+msgid "w/"
+msgstr ""
+
 msgid "long-term"
 msgstr ""
 
@@ -6475,6 +6676,35 @@ msgid "?ongoing"
 msgstr ""
 
 #, python-format
+msgid ""
+"Substance abuse entry                                              [#%s]\n"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "Substance: %s [#%s]%s\n"
+msgstr " Jméno souboru: %s\n"
+
+#, python-format
+msgid "Use type: %s\n"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "Last checked: %s\n"
+msgstr "Naposledy zpracováno: %s\n"
+
+#, python-format
+msgid " Discontinued %s\n"
+msgstr ""
+
+#, fuzzy, python-format
+msgid " Notes: %s\n"
+msgstr " Detaily: %s\n"
+
+#, python-format
+msgid "Revision: #%(row_ver)s, %(mod_when)s by %(mod_by)s."
+msgstr ""
+
+#, python-format
 msgid "Substance intake entry (%s, %s)   [#%s]                     \n"
 msgstr ""
 
@@ -6490,9 +6720,6 @@ msgstr ""
 msgid "unapproved"
 msgstr ""
 
-msgid "definite"
-msgstr ""
-
 msgid "suspected"
 msgstr ""
 
@@ -6539,10 +6766,6 @@ msgid " (short-term)"
 msgstr ""
 
 #, python-format
-msgid " Discontinued %s\n"
-msgstr ""
-
-#, python-format
 msgid " Reason: %s\n"
 msgstr ""
 
@@ -6562,18 +6785,62 @@ msgstr " Zdravotní problém: %s\n"
 msgid " Advice: %s\n"
 msgstr ""
 
+#, fuzzy
+msgid "medication, not abuse"
+msgstr "Otázky a odpovědi"
+
+msgid "no or non-harmful use"
+msgstr ""
+
+msgid "presently harmful use"
+msgstr ""
+
+msgid "presently addicted"
+msgstr ""
+
+msgid "previously addicted"
+msgstr ""
+
 #, python-format
-msgid "Revision: #%(row_ver)s, %(mod_when)s by %(mod_by)s."
+msgid "%s%s: %s ago%s"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "%s%s: %s ago (%s)"
+msgstr " Jméno souboru: %s\n"
+
+#, python-format
+msgid "%s%s%s (%s ago)"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "%s%s%s (%s ago, %s)"
+msgstr " Trvání: %s (%s - %s)"
+
+#, python-format
+msgid "%s ago"
 msgstr ""
 
 #, python-format
-msgid "%s: %s ago"
+msgid "in %s"
+msgstr ""
+
+#, fuzzy, python-format
+msgid ", until %s (%s)"
+msgstr " Jméno souboru: %s\n"
+
+#, python-format
+msgid " (planned for %s%s)"
 msgstr ""
 
 #, python-format
-msgid "%s: %s ago (%s)"
+msgid ", planned for %s%s"
 msgstr ""
 
+#, fuzzy, python-format
+msgid "%s ago (for %s: %s %s %s)"
+msgstr " Trvání: %s (%s - %s)"
+
 msgid "Additional notes"
 msgstr ""
 
@@ -6586,10 +6853,32 @@ msgstr ""
 msgid "ordered by brand"
 msgstr ""
 
-msgid "Drug"
+msgid "Regimen / Advice"
 msgstr ""
 
-msgid "Regimen / Advice"
+#, fuzzy, python-format
+msgid "Component of %s (%s)"
+msgstr " Jméno souboru: %s\n"
+
+#, python-format
+msgid "ATC (substance): %s"
+msgstr ""
+
+#, python-format
+msgid "ATC (brand): %s"
+msgstr ""
+
+msgid "this is a component of a fake brand"
+msgstr ""
+
+#, fuzzy
+msgid "Components:"
+msgstr "Kontejner:"
+
+msgid "this is a fake brand"
+msgstr ""
+
+msgid "this is a vaccine"
 msgstr ""
 
 msgid "units"
@@ -6624,50 +6913,15 @@ msgstr ""
 msgid "Expires: %s\n"
 msgstr ""
 
-msgid "Active clinical hint"
-msgstr ""
-
-msgid "Inactive clinical hint"
-msgstr ""
-
-#, python-format
-msgid "Source: %s\n"
-msgstr ""
-
-#, python-format
-msgid "Language: %s\n"
-msgstr ""
-
-#, fuzzy
-msgid "Suppressed active dynamic hint"
-msgstr "Otevřít existující časovou osu"
-
 #, fuzzy
-msgid "Suppressed inactive dynamic hint"
-msgstr "Otevřít existující časovou osu"
-
-#, python-format
-msgid "Suppressed by: %s\n"
-msgstr ""
+msgid "HL7 Source"
+msgstr "Zdroj:"
 
-#, python-format
-msgid "Suppressed at: %s\n"
+msgid "HL7 data size"
 msgstr ""
 
-#, fuzzy, python-format
-msgid "Hint #: %s\n"
-msgstr "Tisk"
-
-#, fuzzy, python-format
-msgid "Patient #: %s\n"
-msgstr " Pacient: #%s\n"
-
-#, fuzzy, python-format
-msgid "MD5 (currently): %s\n"
-msgstr "Dokumenty: %s"
-
 #, python-format
-msgid "MD5 (at suppression): %s\n"
+msgid "%s bytes"
 msgstr ""
 
 msgid "HL7 Message"
@@ -6724,13 +6978,6 @@ msgstr "SVG soubory"
 msgid "doc: %s"
 msgstr " Faktura: %s\n"
 
-msgid "no patient photograph available"
-msgstr ""
-
-#, python-format
-msgid "patient photograph from %s"
-msgstr ""
-
 msgid "Patient data for"
 msgstr ""
 
@@ -6740,6 +6987,9 @@ msgstr ""
 msgid "Patient data export"
 msgstr ""
 
+msgid "no patient photograph available"
+msgstr ""
+
 msgid "Documents"
 msgstr ""
 
@@ -6750,6 +7000,10 @@ msgstr ""
 msgid "browse documents area"
 msgstr " % dokumentů\n"
 
+#, python-format
+msgid "patient photograph from %s"
+msgstr ""
+
 #, fuzzy
 msgid "Browse patient data"
 msgstr "Popis"
@@ -6785,24 +7039,24 @@ msgstr ""
 #, python-format
 msgid ""
 "%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s %(suburb)s, "
-"%(code_state)s, %(code_country)s"
+"%(code_region)s, %(code_country)s"
 msgstr ""
 
 #, python-format
 msgid ""
 "%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s %(suburb)s, "
-"%(code_state)s, %(code_country)s"
+"%(code_region)s, %(code_country)s"
 msgstr ""
 
 #, python-format
 msgid ""
-"%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_state)s, "
-"%(code_country)s"
+"%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, "
+"%(code_region)s, %(code_country)s"
 msgstr ""
 
 #, python-format
 msgid ""
-"%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_state)s, "
+"%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_region)s, "
 "%(code_country)s"
 msgstr ""
 
@@ -6812,7 +7066,7 @@ msgid ""
 " Street: %(street)s%(notes_street)s\n"
 " Number/Unit: %(number)s%(subunit)s%(notes_subunit)s\n"
 " Location: %(zip)s %(urb)s%(suburb)s\n"
-" Region: %(l10n_state)s, %(code_state)s\n"
+" Region: %(l10n_region)s, %(code_region)s\n"
 " Country: %(l10n_country)s, %(code_country)s"
 msgstr ""
 
@@ -6822,7 +7076,7 @@ msgid ""
 " Street: %(street)s%(notes_street)s\n"
 " Number/Unit: %(number)s%(subunit)s%(notes_subunit)s\n"
 " Location: %(zip)s %(urb)s%(suburb)s\n"
-" Region: %(l10n_state)s, %(code_state)s\n"
+" Region: %(l10n_region)s, %(code_region)s\n"
 " Country: %(l10n_country)s, %(code_country)s"
 msgstr ""
 
@@ -6891,6 +7145,91 @@ msgstr ""
 msgid "missing, reported later"
 msgstr ""
 
+msgid "Health issue"
+msgstr "Zdravotní problém"
+
+msgid "External care"
+msgstr ""
+
+msgid "Vaccination"
+msgstr ""
+
+msgid "Clinical narrative"
+msgstr ""
+
+#, fuzzy
+msgid "Test result"
+msgstr " % výsledků testů\n"
+
+msgid "Substance intake"
+msgstr ""
+
+#, fuzzy
+msgid "Hospital stay"
+msgstr "Hospitalizace: %s"
+
+#, fuzzy
+msgid "Performed procedure"
+msgstr " % prodělaných procedur"
+
+#, fuzzy
+msgid "Family history"
+msgstr "Rodinná anamnéza"
+
+#, fuzzy
+msgid "Document"
+msgstr "Dokumenty:"
+
+#, python-format
+msgid "unmapped entry type from table [%s]"
+msgstr ""
+
+#, python-format
+msgid "cannot instantiate clinical root item <%s(%s)>"
+msgstr ""
+
+msgid "True"
+msgstr ""
+
+msgid "False"
+msgstr ""
+
+#, fuzzy
+msgid "unknown smoking status"
+msgstr "Stav"
+
+msgid "non-smoker"
+msgstr ""
+
+msgid "current smoker"
+msgstr ""
+
+msgid "ex-smoker"
+msgstr ""
+
+msgid "tobacco addiction"
+msgstr ""
+
+msgid "no or non-harmful alcohol use"
+msgstr ""
+
+msgid "harmful alcohol use"
+msgstr ""
+
+#, fuzzy
+msgid "unknown alcohol use"
+msgstr "neznámý stav na alergie"
+
+msgid "no or non-harmful drug use"
+msgstr ""
+
+msgid "harmful drug use"
+msgstr ""
+
+#, fuzzy
+msgid "unknown drug use"
+msgstr "neznámý stav na alergie"
+
 msgid "original entry"
 msgstr "původní položka"
 
@@ -6985,13 +7324,6 @@ msgstr "Zaměstnání"
 msgid "Vaccinations"
 msgstr "Očkování"
 
-#, python-format
-msgid "%s ago"
-msgstr ""
-
-msgid "External care"
-msgstr ""
-
 msgid "Allergies/Intolerances"
 msgstr "Alergie/nesnášenlivost"
 
@@ -7066,6 +7398,85 @@ msgid ""
 "The account was deactivated instead."
 msgstr ""
 
+msgid "SOAP_char_S=S"
+msgstr ""
+
+msgid "SOAP_char_O=O"
+msgstr ""
+
+msgid "SOAP_char_A=A"
+msgstr ""
+
+msgid "SOAP_char_P=P"
+msgstr ""
+
+msgid "SOAP_char_U=U"
+msgstr ""
+
+msgid "SOAP_string_Subjective=Subjective"
+msgstr ""
+
+msgid "SOAP_string_Objective=Objective"
+msgstr ""
+
+msgid "SOAP_string_Assessment=Assessment"
+msgstr ""
+
+msgid "SOAP_string_Plan=Plan"
+msgstr ""
+
+msgid "SOAP_string_Unspecified=Unspecified"
+msgstr ""
+
+msgid "SOAP_string_Administrative=Administrative"
+msgstr ""
+
+msgid "Active clinical hint"
+msgstr ""
+
+msgid "Inactive clinical hint"
+msgstr ""
+
+#, python-format
+msgid "Source: %s\n"
+msgstr ""
+
+#, python-format
+msgid "Language: %s\n"
+msgstr ""
+
+#, fuzzy
+msgid "Suppressed active dynamic hint"
+msgstr "Otevřít existující časovou osu"
+
+#, fuzzy
+msgid "Suppressed inactive dynamic hint"
+msgstr "Otevřít existující časovou osu"
+
+#, python-format
+msgid "Suppressed by: %s\n"
+msgstr ""
+
+#, python-format
+msgid "Suppressed at: %s\n"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "Hint #: %s\n"
+msgstr "Tisk"
+
+#, fuzzy, python-format
+msgid "Patient #: %s\n"
+msgstr " Pacient: #%s\n"
+
+#, fuzzy, python-format
+msgid "MD5 (currently): %s\n"
+msgstr "Dokumenty: %s"
+
+#, python-format
+msgid "MD5 (at suppression): %s\n"
+msgstr ""
+
 #, python-format
 msgid "Device(%s):"
 msgstr "Zařízení(%s):"
@@ -7092,6 +7503,12 @@ msgstr ""
 msgid "Praxis branch                   #%s\n"
 msgstr "%s část dokumentu [#%s]\n"
 
+#, python-format
+msgid ""
+"FN:%(l10n_unit_category)s %(branch)s of %(l10n_organization_category)s "
+"%(praxis)s"
+msgstr ""
+
 msgid "Privacy notice"
 msgstr ""
 
@@ -7105,39 +7522,6 @@ msgstr ""
 msgid "%s: Staff member %s has been notified of your chart access."
 msgstr ""
 
-msgid "soap_S"
-msgstr ""
-
-msgid "soap_O"
-msgstr ""
-
-msgid "soap_A"
-msgstr ""
-
-msgid "soap_P"
-msgstr ""
-
-msgid "soap_U"
-msgstr ""
-
-msgid "soap_Subjective"
-msgstr ""
-
-msgid "soap_Objective"
-msgstr ""
-
-msgid "soap_Assessment"
-msgstr ""
-
-msgid "soap_Plan"
-msgstr ""
-
-msgid "soap_Unspecified"
-msgstr ""
-
-msgid "soap_Administrative"
-msgstr ""
-
 #, python-format
 msgid ""
 "%s: %s by %.8s (v%s)\n"
@@ -7202,9 +7586,17 @@ msgid "%(last)s,%(title)s %(first)s%(nick)s (%(sex)s)"
 msgstr ""
 
 #, python-format
+msgid "%(last)s,%(title)s %(first)s (%(sex)s)"
+msgstr ""
+
+#, python-format
 msgid "%(last)s,%(title)s %(first)s%(nick)s"
 msgstr ""
 
+#, python-format
+msgid "%(last)s,%(title)s %(first)s"
+msgstr ""
+
 msgid "Cannot merge active patient into another patient."
 msgstr ""
 
@@ -7214,9 +7606,6 @@ msgstr ""
 msgid "merged"
 msgstr ""
 
-msgid "preferred name/call name/..."
-msgstr ""
-
 msgid "invalid age: DOB in the future"
 msgstr ""
 
@@ -7229,9 +7618,6 @@ msgstr ""
 msgid "Mrs"
 msgstr ""
 
-msgid "unknown"
-msgstr ""
-
 msgid "empty status"
 msgstr ""
 
@@ -7563,8 +7949,8 @@ msgstr "Nepřezkoumáno"
 msgid " Part %s: %s %s(%s Bytes)\n"
 msgstr ""
 
-#, python-format
-msgid " Filename: %s\n"
+#, fuzzy, python-format
+msgid " Filename: %s%s\n"
 msgstr " Jméno souboru: %s\n"
 
 msgid "no parts"
@@ -7577,13 +7963,16 @@ msgstr "1 část"
 msgid "%s parts"
 msgstr "%s části"
 
-#, python-format
+#, fuzzy, python-format
+msgid "%s of %s"
+msgstr " %s jednotek: %s\n"
+
+#, fuzzy, python-format
 msgid ""
 "%s (%s)   #%s\n"
-"\n"
 " Created: %s\n"
 " Episode: %s\n"
-"%s%s%s"
+"%s%s%s%s"
 msgstr ""
 "%s (%s) #%s\n"
 "\n"
@@ -7595,6 +7984,10 @@ msgstr ""
 msgid " External reference: %s\n"
 msgstr " External reference: %s\n"
 
+#, fuzzy, python-format
+msgid " Organization: %%s @ %s\n"
+msgstr "Hospitalizace: %s"
+
 msgid "Cannot run [arriba] !"
 msgstr ""
 
@@ -7942,30 +8335,14 @@ msgid "External care:"
 msgstr " External reference: %s\n"
 
 #, fuzzy, python-format
-msgid ""
-"health issue: %s%s%s\n"
-"\n"
-msgstr "zdravotní problém: %s"
+msgid "Health issue: %s%s%s"
+msgstr " Zdravotní problém: %s\n"
 
-msgid ""
-"\n"
-"current values:\n"
-msgstr ""
+msgid "Unattributed episodes"
+msgstr "Nepřiřazené případy"
 
-msgid "no previous versions of this record"
-msgstr ""
-
-msgid ""
-"\n"
-"all values with <audit_action>, <audit_when>, <audit_by> fields (current "
-"value first):\n"
-msgstr ""
-
-msgid "Unattributed episodes"
-msgstr "Nepřiřazené případy"
-
-msgid "Clinical data generated during encounters within this episode:"
-msgstr "Klinické údaje získané v průběhu setkání v rámci tohoto případu:"
+msgid "Clinical data generated during encounters within this episode:"
+msgstr "Klinické údaje získané v průběhu setkání v rámci tohoto případu:"
 
 #, python-format
 msgid "Episode %s%s%s   [#%s]"
@@ -7982,9 +8359,6 @@ msgstr " Trvání: %s (%s - %s)"
 msgid "finished"
 msgstr "dokončeno"
 
-msgid "Health issue"
-msgstr "Zdravotní problém"
-
 msgid "none associated"
 msgstr ""
 
@@ -8020,9 +8394,7 @@ msgid "Measurements and Results:"
 msgstr ""
 
 #, fuzzy, python-format
-msgid ""
-"episode: %s%s%s\n"
-"\n"
+msgid "Episode: %s%s%s"
 msgstr ""
 "\n"
 "Případ %s%s%s%s:"
@@ -8054,9 +8426,7 @@ msgid "%s other episodes touched upon during this encounter:"
 msgstr ""
 
 #, fuzzy, python-format
-msgid ""
-"encounter: %s%s%s\n"
-"\n"
+msgid "Encounter: %s%s%s"
 msgstr "Návštěvy: %s (%s - %s):"
 
 msgid " (ongoing)"
@@ -8077,9 +8447,6 @@ msgstr ""
 msgid "Procedures"
 msgstr ""
 
-msgid "Substances"
-msgstr ""
-
 msgid "Life events"
 msgstr ""
 
@@ -8102,9 +8469,6 @@ msgstr ""
 msgid "Cannot display timeline."
 msgstr "Vytvořit novou časovou osu"
 
-msgid "Vaccination"
-msgstr ""
-
 msgid "Lab result"
 msgstr ""
 
@@ -8172,9 +8536,6 @@ msgstr ""
 msgid "Exported: %s\n"
 msgstr ""
 
-msgid "emr-journal"
-msgstr ""
-
 msgid "Chronological EMR Journal\n"
 msgstr ""
 
@@ -8444,25 +8805,144 @@ msgstr ""
 msgid "Select one or more codes that apply."
 msgstr ""
 
-msgid "Cannot move progress notes. No active patient."
+msgid "Select the narrative you are interested in ..."
 msgstr ""
 
-msgid "Moving progress notes between encounters ..."
+msgid "when"
+msgstr ""
+
+msgid "who"
+msgstr ""
+
+msgid "entry"
+msgstr ""
+
+msgid "There is no narrative for this episode in this encounter."
+msgstr ""
+
+msgid "Must select episode to move narrative to first."
+msgstr ""
+
+msgid "Last"
+msgstr ""
+
+msgid "In health issue"
+msgstr ""
+
+msgid "Most recent notes on selected problem"
+msgstr ""
+
+#, python-format
+msgid "%s (active+potential) problems"
+msgstr ""
+
+#, python-format
+msgid "%s active problems"
+msgstr ""
+
+msgid "Current encounter:"
+msgstr ""
+
+msgid "Cumulative summary"
 msgstr ""
 
+#, python-format
+msgid "Most recent info on %s%s%s"
+msgstr ""
+
+#, python-format
 msgid ""
+"Cannot open progress note editor for\n"
 "\n"
-" Select the progress notes to move from the list !\n"
+"[%s].\n"
 "\n"
 msgstr ""
 
-msgid "when"
+msgid "opening progress note editor"
 msgstr ""
 
-msgid "who"
+msgid "Cannot save all editors. Some were kept open."
 msgstr ""
 
-msgid "entry"
+msgid "new problem"
+msgstr ""
+
+msgid ""
+"Are you sure you really want to\n"
+"discard this progress note ?\n"
+msgstr ""
+
+msgid "Discarding progress note"
+msgstr ""
+
+msgid "There are unsaved progress notes !\n"
+msgstr ""
+
+msgid "Unsaved progress notes"
+msgstr ""
+
+msgid "Problem list"
+msgstr ""
+
+msgid "Saving SOAP note"
+msgstr ""
+
+msgid "Do you want to save the SOAP note ?"
+msgstr ""
+
+#, python-format
+msgid "&Filter by problem %s%s%s"
+msgstr ""
+
+msgid "Cannot save SimpleNotes SOAP note."
+msgstr ""
+
+#, python-format
+msgid "Progress note: %s%s"
+msgstr ""
+
+msgid "Please enter a name for the new problem:"
+msgstr ""
+
+msgid "Adding a problem"
+msgstr ""
+
+msgid "Cannot delete problem. There is still clinical data recorded for it."
+msgstr ""
+
+#, python-format
+msgid "GNUmed: configuring [%s] (%s plugins)"
+msgstr ""
+
+msgid "loading list of plugins                               "
+msgstr ""
+
+msgid "failed"
+msgstr ""
+
+msgid "success"
+msgstr ""
+
+#, python-format
+msgid ""
+"previous: %s (%s)\n"
+"current (%s/%s): %s"
+msgstr ""
+
+#, python-format
+msgid "Cannot switch to [%s]: no patient selected"
+msgstr ""
+
+msgid "Cannot move progress notes. No active patient."
+msgstr ""
+
+msgid "Moving progress notes between encounters ..."
+msgstr ""
+
+msgid ""
+"\n"
+" Select the progress notes to move from the list !\n"
+"\n"
 msgstr ""
 
 msgid "Cannot edit progress notes. No active patient."
@@ -8664,829 +9144,654 @@ msgid ""
 " Now, mark the entries you want to include in your report.\n"
 msgstr ""
 
-msgid "Select the narrative you are interested in ..."
+msgid "Pick a date ..."
 msgstr ""
 
-msgid "There is no narrative for this episode in this encounter."
+msgid "<ALT-C/K>: pick from (c/k)alendar"
 msgstr ""
 
-msgid "Must select episode to move narrative to first."
+msgid "Cannot interpret input as timestamp."
 msgstr ""
 
-msgid "Last"
+msgid "No vaccines were chosen"
 msgstr ""
 
-msgid "In health issue"
+#, python-format
+msgid "Combination of indications , %s , not found in any vaccine"
 msgstr ""
 
-msgid "Most recent notes on selected problem"
+msgid "Sequence"
 msgstr ""
 
-#, python-format
-msgid "%s (active+potential) problems"
+msgid "Batch"
 msgstr ""
 
-#, python-format
-msgid "%s active problems"
+msgid "Vaccinator"
 msgstr ""
 
-msgid "Current encounter:"
+msgid ""
+"Vaccinations by Recommender (X = patient on regime, O = patient not on "
+"regime) "
 msgstr ""
 
-msgid "Cumulative summary"
+msgid "enrolled regime vaccinations not yet given"
 msgstr ""
 
-#, python-format
-msgid "Most recent info on %s%s%s"
+msgid "Proceed with "
 msgstr ""
 
 #, python-format
-msgid ""
-"Cannot open progress note editor for\n"
-"\n"
-"[%s].\n"
-"\n"
+msgid "Failed to enrol patient in %s"
 msgstr ""
 
-msgid "opening progress note editor"
+#, python-format
+msgid "Failed to  delist patient from %s"
 msgstr ""
 
-msgid "Cannot save all editors. Some were kept open."
+msgid "Missing GNUmed module"
 msgstr ""
 
-msgid "new problem"
+#, python-format
+msgid ""
+"GNUmed detected that parts of it are not\n"
+"properly installed. The following message\n"
+"names the missing part:\n"
+"\n"
+" \"%s\"\n"
+"\n"
+"Please make sure to get the missing\n"
+"parts installed. Otherwise some of the\n"
+"functionality will not be accessible."
 msgstr ""
 
+#, python-format
 msgid ""
-"Are you sure you really want to\n"
-"discard this progress note ?\n"
+"\n"
+" Source: %s"
 msgstr ""
 
-msgid "Discarding progress note"
+#, python-format
+msgid ""
+"\n"
+" Code: %s"
 msgstr ""
 
-msgid "There are unsaved progress notes !\n"
+#, python-format
+msgid ""
+"\n"
+" Details (first 250 characters):\n"
+"%s\n"
+"%s\n"
+"%s"
 msgstr ""
 
-msgid "Unsaved progress notes"
+msgid "Access violation"
 msgstr ""
 
 #, python-format
-msgid "Synopsis (%s)"
+msgid ""
+"You do not have access to this part of GNUmed.\n"
+"\n"
+"%s"
 msgstr ""
 
-msgid ""
-"Enter a short working name for this new problem\n"
-"(which will become a new, unassociated episode):\n"
+msgid "Lost connection"
 msgstr ""
 
-#, python-format
 msgid ""
-"Enter a short working name for this new\n"
-"episode under the existing health issue\n"
+"Since you were last working in GNUmed,\n"
+"your database connection timed out.\n"
 "\n"
-"\"%s\":\n"
-msgstr ""
-
-msgid "Creating problem (episode) to save notelet under ..."
+"This GNUmed session is now expired.\n"
+"\n"
+"You will have to close this client and\n"
+"restart a new GNUmed session."
 msgstr ""
 
-msgid "Cannot save a new problem without a name."
+msgid ""
+"Please enter a short note on what you\n"
+"were about to do in GNUmed:"
 msgstr ""
 
-msgid "saving progress note"
+msgid "Sending bug report"
 msgstr ""
 
-#, python-format
 msgid ""
-"The new episode:\n"
+"Edit the list of email addresses to send the\n"
+"bug report to (separate addresses by spaces).\n"
 "\n"
-" \"%s\"\n"
+"Note that <gnumed-bugs at gnu.org> refers to\n"
+"the public (!) GNUmed bugs mailing list."
+msgstr ""
+
+#, python-format
+msgid ""
+"Your bug report will be sent to:\n"
 "\n"
-"will remain unassociated despite the editor\n"
-"having been invoked from the health issue:\n"
+"%s\n"
 "\n"
-" \"%s\""
+"Make sure you have reviewed the log file for potentially\n"
+"sensitive information before sending out the bug report.\n"
+"\n"
+"Note that emailing the report may take a while depending\n"
+"on the speed of your internet connection.\n"
 msgstr ""
 
-msgid "You need to actually set an editor."
+msgid "Yes, send the bug report."
 msgstr ""
 
-#, python-format
-msgid "The command [%s] is not found."
+msgid "No, do not send the bug report."
+msgstr ""
+
+msgid "include log file in bug report"
 msgstr ""
 
-#, python-format
 msgid ""
-"Enter the shell command with which to start\n"
-"the image editor for visual progress notes.\n"
+"The database you are connected to is marked as\n"
+"\"in-production with controlled access\".\n"
 "\n"
-"Any \"%(img)s\" included with the arguments\n"
-"will be replaced by the file name of the\n"
-"note template."
+"You indicated that you want to include the log\n"
+"file in your bug report. While this is often\n"
+"useful for debugging the log file might contain\n"
+"bits of patient data which must not be sent out\n"
+"without de-identification.\n"
+"\n"
+"Please confirm that you want to include the log !"
 msgstr ""
 
-msgid "Choose file to use as template for new visual progress note"
+msgid "<not supplied>"
 msgstr ""
 
-msgid "Visual progress note source"
+msgid "Bug report has been emailed."
 msgstr ""
 
-msgid "From which source do you want to pick the image template ?"
+msgid "Bug report COULD NOT be emailed."
 msgstr ""
 
-msgid "Database"
+msgid "Underweight"
 msgstr ""
 
-msgid "List of templates in the database."
+msgid "63< Normal >79"
 msgstr ""
 
-msgid "Files in the filesystem."
+msgid "63 - Normal - 79"
 msgstr ""
 
-msgid "Device"
+msgid "Overweight"
 msgstr ""
 
-msgid "Image capture devices (scanners, cameras, etc)"
+msgid "Obese"
 msgstr ""
 
-#, python-format
-msgid "Cannot export visual progress note template for [%s]."
+msgid "Current height/mass"
 msgstr ""
 
-msgid "Cannot export visual progress note to file."
+msgid "Height (cm)"
 msgstr ""
 
-msgid "Editor for visual progress note not configured."
+msgid "Mass (kg)"
 msgstr ""
 
-#, python-format
-msgid ""
-"There was a problem with running the editor\n"
-"for visual progress notes.\n"
-"\n"
-" [%s]\n"
-"\n"
+msgid "Adjusted Values"
 msgstr ""
 
-msgid "Editing visual progress note"
+msgid "Goal mass"
 msgstr ""
 
-#, python-format
-msgid ""
-"There was a problem reading the visual\n"
-"progress note from the file:\n"
-"\n"
-" [%s]\n"
-"\n"
+msgid "kg to lose"
 msgstr ""
 
-msgid "Saving visual progress note"
+msgid "BMI Calculator"
 msgstr ""
 
-msgid ""
-"You either created a visual progress note from a template\n"
-"in the database (rather than from a file on disk) or you\n"
-"edited an existing visual progress note.\n"
-"\n"
-"The template/original was not modified at all, however.\n"
-"\n"
-"Do you still want to save the unmodified image as a\n"
-"visual progress note into the EMR of the patient ?\n"
+msgid "&Reset"
 msgstr ""
 
-msgid "visual progress notes"
+msgid "Select a healthcare provider."
 msgstr ""
 
-#, python-format
-msgid "Created: %s"
+msgid "Public (no clinical or demographic access)"
 msgstr ""
 
-msgid "Problem list"
+msgid "Staff (demographic access only)"
 msgstr ""
 
-msgid "Saving SOAP note"
+msgid "staff (clerical)"
 msgstr ""
 
-msgid "Do you want to save the SOAP note ?"
+msgid "full clinical access"
 msgstr ""
 
-#, python-format
-msgid "&Filter by problem %s%s%s"
+msgid "DB account"
 msgstr ""
 
-msgid "Cannot save SimpleNotes SOAP note."
+msgid "can login"
 msgstr ""
 
-#, python-format
-msgid "Progress note: %s%s"
+msgid "can not login"
 msgstr ""
 
-msgid "Please enter a name for the new problem:"
+msgid "Activating GNUmed user."
 msgstr ""
 
-msgid "Adding a problem"
+msgid "Deactivating GNUmed user."
 msgstr ""
 
-msgid "Cannot delete problem. There is still clinical data recorded for it."
+msgid "Removing GNUmed user."
 msgstr ""
 
-#, python-format
-msgid "GNUmed: configuring [%s] (%s plugins)"
+msgid "Removing GNUmed user"
 msgstr ""
 
-msgid "loading list of plugins                               "
+msgid "Modifying GNUmed user."
 msgstr ""
 
-msgid "failed"
+msgid "Failed to save changes to GNUmed database user."
 msgstr ""
 
-msgid "success"
+msgid "Modifying GNUmed user"
 msgstr ""
 
 #, python-format
-msgid ""
-"previous: %s (%s)\n"
-"current (%s/%s): %s"
+msgid "Failed to set role [%s] for GNUmed database user."
 msgstr ""
 
 #, python-format
-msgid "Cannot switch to [%s]: no patient selected"
+msgid ""
+"\n"
+"  %s \"%s\" %s\n"
+"  born: %s"
 msgstr ""
 
-msgid "Pick a date ..."
+msgid ""
+"Password entries do not match. Please type in the passwords again to rule "
+"out typos."
 msgstr ""
 
-msgid "<ALT-C/K>: pick from (c/k)alendar"
+msgid "Adding GNUmed user"
 msgstr ""
 
-msgid "Cannot interpret input as timestamp."
+msgid ""
+"Are you positively sure you want to create\n"
+"a user with an empty password ?\n"
+"\n"
+"Think about the record access implications !"
 msgstr ""
 
-msgid "No vaccines were chosen"
+msgid "Enlisting person as user."
 msgstr ""
 
-#, python-format
-msgid "Combination of indications , %s , not found in any vaccine"
+msgid "Encrypt"
 msgstr ""
 
-msgid "Sequence"
+msgid "Decrypt"
 msgstr ""
 
-msgid "Batch"
+msgid "Set pass phrase"
 msgstr ""
 
-msgid "Vaccinator"
+msgid "This is not correctly encrypted text!"
+msgstr ""
+
+msgid "Please enter your pass phrase:"
+msgstr ""
+
+msgid "Pass phrase expired"
 msgstr ""
 
 msgid ""
-"Vaccinations by Recommender (X = patient on regime, O = patient not on "
-"regime) "
+"\n"
+"Conditions preventable by vaccination as currently known to GNUmed.\n"
 msgstr ""
 
-msgid "enrolled regime vaccinations not yet given"
+msgid "Showing vaccination preventable conditions."
 msgstr ""
 
-msgid "Proceed with "
+msgid "ATCs: single-condition vaccines"
 msgstr ""
 
-#, python-format
-msgid "Failed to enrol patient in %s"
+msgid "ATCs: multi-condition vaccines"
 msgstr ""
 
-#, python-format
-msgid "Failed to  delist patient from %s"
+msgid "Pick the relevant indications."
 msgstr ""
 
-msgid "Missing GNUmed module"
+msgid "Known indications"
+msgstr ""
+
+msgid "Adding new vaccine"
+msgstr ""
+
+msgid "Editing vaccine"
 msgstr ""
 
 #, python-format
 msgid ""
-"GNUmed detected that parts of it are not\n"
-"properly installed. The following message\n"
-"names the missing part:\n"
+"Cannot delete vaccine\n"
 "\n"
-" \"%s\"\n"
+" %s - %s (#%s)\n"
 "\n"
-"Please make sure to get the missing\n"
-"parts installed. Otherwise some of the\n"
-"functionality will not be accessible."
+"It is probably documented in a vaccination."
 msgstr ""
 
-#, python-format
-msgid ""
-"\n"
-" Source: %s"
+msgid "Deleting vaccine"
 msgstr ""
 
-#, python-format
-msgid ""
-"\n"
-" Code: %s"
+msgid "fake"
 msgstr ""
 
-#, python-format
 msgid ""
 "\n"
-" Details (first 250 characters):\n"
-"%s\n"
-"%s\n"
-"%s"
+"The vaccines currently known to GNUmed.\n"
 msgstr ""
 
-msgid "Access violation"
+msgid "Showing vaccines."
 msgstr ""
 
-#, python-format
-msgid ""
-"You do not have access to this part of GNUmed.\n"
-"\n"
-"%s"
+msgid "Enter or select the batch/lot number of the vaccine used."
 msgstr ""
 
-msgid "Lost connection"
+msgid "Saving vaccine"
 msgstr ""
 
+#, python-format
 msgid ""
-"Since you were last working in GNUmed,\n"
-"your database connection timed out.\n"
+"This vaccine is already in use:\n"
 "\n"
-"This GNUmed session is now expired.\n"
+" \"%s\"\n"
+" (%s)\n"
 "\n"
-"You will have to close this client and\n"
-"restart a new GNUmed session."
+"Are you absolutely positively sure that\n"
+"you really want to edit this vaccine ?\n"
+"\n"
+"This will change the vaccine name and/or target\n"
+"conditions in each patient this vaccine was\n"
+"used in to document a vaccination with.\n"
 msgstr ""
 
-msgid ""
-"Please enter a short note on what you\n"
-"were about to do in GNUmed:"
+msgid "You must select at least one indication."
 msgstr ""
 
-msgid "Sending bug report"
+msgid "Pick the diseases this vaccine protects against."
 msgstr ""
 
-msgid ""
-"Edit the list of email addresses to send the\n"
-"bug report to (separate addresses by spaces).\n"
-"\n"
-"Note that <gnumed-bugs at gnu.org> refers to\n"
-"the public (!) GNUmed bugs mailing list."
+msgid "This vaccine"
 msgstr ""
 
-#, python-format
-msgid ""
-"Your bug report will be sent to:\n"
-"\n"
-"%s\n"
-"\n"
-"Make sure you have reviewed the log file for potentially\n"
-"sensitive information before sending out the bug report.\n"
-"\n"
-"Note that emailing the report may take a while depending\n"
-"on the speed of your internet connection.\n"
+msgid "Adding new vaccinations"
 msgstr ""
 
-msgid "Yes, send the bug report."
+msgid "Editing vaccination"
 msgstr ""
 
-msgid "No, do not send the bug report."
-msgstr ""
+#, fuzzy
+msgid "vaccination recall"
+msgstr "Očkování"
 
-msgid "include log file in bug report"
-msgstr ""
+#, fuzzy, python-format
+msgid "vaccination recall (%s)"
+msgstr "Očkování"
 
+#, python-format
 msgid ""
-"The database you are connected to is marked as\n"
-"\"in-production with controlled access\".\n"
-"\n"
-"You indicated that you want to include the log\n"
-"file in your bug report. While this is often\n"
-"useful for debugging the log file might contain\n"
-"bits of patient data which must not be sent out\n"
-"without de-identification.\n"
+"Existing vaccination:\n"
 "\n"
-"Please confirm that you want to include the log !"
-msgstr ""
-
-msgid "<not supplied>"
-msgstr ""
-
-msgid "Bug report has been emailed."
-msgstr ""
-
-msgid "Bug report COULD NOT be emailed."
+"%s"
 msgstr ""
 
-msgid "Underweight"
+msgid ""
+"\n"
+"Complete vaccination history for this patient.\n"
 msgstr ""
 
-msgid "63< Normal >79"
+msgid "Showing vaccinations."
 msgstr ""
 
-msgid "63 - Normal - 79"
+msgid "Intended to protect from"
 msgstr ""
 
-msgid "Overweight"
-msgstr ""
+#, fuzzy
+msgid "Print vaccinations or recalls."
+msgstr "Očkování"
 
-msgid "Obese"
+msgid "Recall"
 msgstr ""
 
-msgid "Current height/mass"
+msgid "Add a recall for a vaccination"
 msgstr ""
 
-msgid "Height (cm)"
+msgid "Vx schedules"
 msgstr ""
 
-msgid "Mass (kg)"
+msgid "Open a browser showing vaccination schedules."
 msgstr ""
 
-msgid "Adjusted Values"
+msgid "prevention"
 msgstr ""
 
-msgid "Goal mass"
+msgid "Saving vaccination"
 msgstr ""
 
-msgid "kg to lose"
+msgid "Pick the diseases this vaccination was given against."
 msgstr ""
 
-msgid "BMI Calculator"
+msgid "  IMMUNISATIONS  "
 msgstr ""
 
-msgid "&Reset"
+msgid "Indications"
 msgstr ""
 
-msgid "Select a healthcare provider."
+msgid "Active Schedules"
 msgstr ""
 
-msgid "Public (no clinical or demographic access)"
+msgid "Missing Immunisations"
 msgstr ""
 
-msgid "Staff (demographic access only)"
+msgid "  Alerts  "
 msgstr ""
 
-msgid "staff (clerical)"
+msgid "ERROR: cannot retrieve active vaccination schedules"
 msgstr ""
 
-msgid "full clinical access"
+msgid "no active vaccination schedules"
 msgstr ""
 
-msgid "DB account"
+#, python-format
+msgid "%s for %s (%s shots): %s"
 msgstr ""
 
-msgid "can login"
+msgid "ERROR: cannot retrieve due/overdue vaccinations"
 msgstr ""
 
-msgid "can not login"
+#, python-format
+msgid "%.0d weeks left: shot %s for %s in %s, due %s (%s)"
 msgstr ""
 
-msgid "Activating GNUmed user."
+#, python-format
+msgid "overdue %.0dyrs %.0dwks: shot %s for %s in schedule \"%s\" (%s)"
 msgstr ""
 
-msgid "Deactivating GNUmed user."
+#, python-format
+msgid "due now: booster for %s in schedule \"%s\" (%s)"
 msgstr ""
 
-msgid "Removing GNUmed user."
+#, python-format
+msgid "Synopsis (%s)"
 msgstr ""
 
-msgid "Removing GNUmed user"
+msgid ""
+"Enter a short working name for this new problem\n"
+"(which will become a new, unassociated episode):\n"
 msgstr ""
 
-msgid "Modifying GNUmed user."
+#, python-format
+msgid ""
+"Enter a short working name for this new\n"
+"episode under the existing health issue\n"
+"\n"
+"\"%s\":\n"
 msgstr ""
 
-msgid "Failed to save changes to GNUmed database user."
+msgid "Creating problem (episode) to save notelet under ..."
 msgstr ""
 
-msgid "Modifying GNUmed user"
+msgid "Cannot save a new problem without a name."
 msgstr ""
 
-#, python-format
-msgid "Failed to set role [%s] for GNUmed database user."
+msgid "saving progress note"
 msgstr ""
 
 #, python-format
 msgid ""
+"The new episode:\n"
 "\n"
-"  %s \"%s\" %s\n"
-"  born: %s"
+" \"%s\"\n"
+"\n"
+"will remain unassociated despite the editor\n"
+"having been invoked from the health issue:\n"
+"\n"
+" \"%s\""
 msgstr ""
 
-msgid ""
-"Password entries do not match. Please type in the passwords again to rule "
-"out typos."
-msgstr ""
+#, fuzzy
+msgid "Adding substance abuse"
+msgstr "Aktívní zúčtovatelná položka"
 
-msgid "Adding GNUmed user"
-msgstr ""
+#, fuzzy
+msgid "Editing substance abuse"
+msgstr "Aktívní zúčtovatelná položka"
 
-msgid ""
-"Are you positively sure you want to create\n"
-"a user with an empty password ?\n"
-"\n"
-"Think about the record access implications !"
+msgid "Substances abused by the patient:"
 msgstr ""
 
-msgid "Enlisting person as user."
+msgid "Showing abused substances."
 msgstr ""
 
-msgid "Encrypt"
+msgid "Intake"
 msgstr ""
 
-msgid "Decrypt"
+msgid "nicotine"
 msgstr ""
 
-msgid "Set pass phrase"
+msgid "unit"
 msgstr ""
 
-msgid "This is not correctly encrypted text!"
+#, fuzzy, python-format
+msgid "Latest: %s ago (%s %s%s%s%s)"
+msgstr " Trvání: %s (%s - %s)"
+
+#, fuzzy, python-format
+msgid "%s %s%s%s (%s ago, %s)"
+msgstr " Trvání: %s (%s - %s)"
+
+#, python-format
+msgid "overdue %s: %s"
 msgstr ""
 
-msgid "Please enter your pass phrase:"
+#, python-format
+msgid "due in %s%s"
 msgstr ""
 
-msgid "Pass phrase expired"
+msgid "suppr'd:"
 msgstr ""
 
+#, fuzzy
+msgid "Suppressed hints:\n"
+msgstr "Otevřít existující časovou osu"
+
 msgid ""
-"\n"
-"Conditions preventable by vaccination as currently known to GNUmed.\n"
+"Do you really want to\n"
+"delete this inbox message ?"
 msgstr ""
 
-msgid "Showing vaccination preventable conditions."
+msgid "Deleting inbox message"
 msgstr ""
 
-msgid "ATCs: single-condition vaccines"
-msgstr ""
+#, fuzzy
+msgid "Export area: 1 item"
+msgstr "Export do SVG"
 
-msgid "ATCs: multi-condition vaccines"
-msgstr ""
+#, fuzzy, python-format
+msgid "Export area: %s items"
+msgstr "Export do SVG"
 
-msgid "Pick the relevant indications."
+#, python-format
+msgid "%s %s more not shown %s"
 msgstr ""
 
-msgid "Known indications"
+#, python-format
+msgid "Currently %s entries in waiting list"
 msgstr ""
 
-msgid "Adding new vaccine"
+#, python-format
+msgid "first (in GMd): %s, %s"
 msgstr ""
 
-msgid "Editing vaccine"
+#, python-format
+msgid "last: %s, %s"
 msgstr ""
 
 #, python-format
-msgid ""
-"Cannot delete vaccine\n"
-"\n"
-" %s - %s (#%s)\n"
-"\n"
-"It is probably documented in a vaccination."
+msgid "Last %s:"
 msgstr ""
 
-msgid "Deleting vaccine"
+msgid "Statistics cover period"
 msgstr ""
 
-msgid "fake"
+#, python-format
+msgid "EDC (!?!): %s"
 msgstr ""
 
 msgid ""
+"The Expected Date of Confinement is rather questionable.\n"
 "\n"
-"The vaccines currently known to GNUmed.\n"
+"Please check patient age, patient gender, time until/since EDC."
 msgstr ""
 
-msgid "Showing vaccines."
-msgstr ""
+#, fuzzy, python-format
+msgid "%s Vacc: %s (latest of %s)"
+msgstr " Jméno souboru: %s\n"
 
-msgid "Enter or select the batch/lot number of the vaccine used."
-msgstr ""
+#, fuzzy, python-format
+msgid "Hx of addiction: %s"
+msgstr "Hospitalizace: %s"
 
-msgid "Saving vaccine"
+msgid "active substance abuse"
 msgstr ""
 
 #, python-format
-msgid ""
-"This vaccine is already in use:\n"
-"\n"
-" \"%s\"\n"
-" (%s)\n"
-"\n"
-"Are you absolutely positively sure that\n"
-"you really want to edit this vaccine ?\n"
-"\n"
-"This will change the vaccine name and/or target\n"
-"conditions in each patient this vaccine was\n"
-"used in to document a vaccination with.\n"
+msgid "%s %s %s%s"
 msgstr ""
 
-msgid "You must select at least one indication."
+#, python-format
+msgid "%s %s%s"
 msgstr ""
 
-msgid "Pick the diseases this vaccine protects against."
+#, python-format
+msgid "** Currently hospitalized: %s **"
 msgstr ""
 
-msgid "This vaccine"
+#, python-format
+msgid "emergency: %s"
 msgstr ""
 
-msgid "Adding new vaccinations"
+#, python-format
+msgid "in-praxis: %s"
 msgstr ""
 
-msgid "Editing vaccination"
+#, fuzzy, python-format
+msgid "care: %s%s@%s"
+msgstr "Návštěvy: %s (%s - %s):"
+
+msgid "*** CONFIDENTIAL ***"
 msgstr ""
 
-#, fuzzy
-msgid "vaccination recall"
-msgstr "Očkování"
+msgid " (confidential !)"
+msgstr ""
 
 #, fuzzy, python-format
-msgid "vaccination recall (%s)"
-msgstr "Očkování"
-
-#, python-format
-msgid ""
-"Existing vaccination:\n"
-"\n"
-"%s"
-msgstr ""
-
-msgid ""
-"\n"
-"Complete vaccination history for this patient.\n"
-msgstr ""
-
-msgid "Showing vaccinations."
-msgstr ""
-
-msgid "Intended to protect from"
-msgstr ""
-
-#, fuzzy
-msgid "Print vaccinations or recalls."
-msgstr "Očkování"
-
-msgid "Recall"
-msgstr ""
-
-msgid "Add a recall for a vaccination"
-msgstr ""
-
-msgid "Vx schedules"
-msgstr ""
-
-msgid "Open a browser showing vaccination schedules."
-msgstr ""
-
-msgid "prevention"
-msgstr ""
-
-msgid "Saving vaccination"
-msgstr ""
-
-msgid "Pick the diseases this vaccination was given against."
-msgstr ""
-
-msgid "  IMMUNISATIONS  "
-msgstr ""
-
-msgid "Indications"
-msgstr ""
-
-msgid "Active Schedules"
-msgstr ""
-
-msgid "Missing Immunisations"
-msgstr ""
-
-msgid "  Alerts  "
-msgstr ""
-
-msgid "ERROR: cannot retrieve active vaccination schedules"
-msgstr ""
-
-msgid "no active vaccination schedules"
-msgstr ""
-
-#, python-format
-msgid "%s for %s (%s shots): %s"
-msgstr ""
-
-msgid "ERROR: cannot retrieve due/overdue vaccinations"
-msgstr ""
-
-#, python-format
-msgid "%.0d weeks left: shot %s for %s in %s, due %s (%s)"
-msgstr ""
-
-#, python-format
-msgid "overdue %.0dyrs %.0dwks: shot %s for %s in schedule \"%s\" (%s)"
-msgstr ""
-
-#, python-format
-msgid "due now: booster for %s in schedule \"%s\" (%s)"
-msgstr ""
-
-#, python-format
-msgid "Latest: %s ago (%s %s %s %s%s)"
-msgstr ""
-
-#, python-format
-msgid "%s %s %s %s (%s ago, %s)"
-msgstr ""
-
-#, python-format
-msgid "overdue %s: %s"
-msgstr ""
-
-#, python-format
-msgid "due in %s%s"
-msgstr ""
-
-msgid ""
-"Do you really want to\n"
-"delete this inbox message ?"
-msgstr ""
-
-msgid "Deleting inbox message"
-msgstr ""
-
-#, fuzzy
-msgid "Export area: 1 item"
-msgstr "Export do SVG"
-
-#, fuzzy, python-format
-msgid "Export area: %s items"
-msgstr "Export do SVG"
-
-#, python-format
-msgid "%s %s more not shown %s"
-msgstr ""
-
-#, python-format
-msgid "Currently %s entries in waiting list"
-msgstr ""
-
-#, python-format
-msgid "first (in GMd): %s, %s"
-msgstr ""
-
-#, python-format
-msgid "last: %s, %s"
-msgstr ""
-
-#, python-format
-msgid "Last %s:"
-msgstr ""
-
-msgid "Statistics cover period"
-msgstr ""
-
-#, python-format
-msgid "EDC (!?!): %s"
-msgstr ""
-
-msgid ""
-"The Expected Date of Confinement is rather questionable.\n"
-"\n"
-"Please check patient age, patient gender, time until/since EDC."
-msgstr ""
-
-#, python-format
-msgid "%s Vacc: %s"
-msgstr ""
-
-#, python-format
-msgid "%s %s %s%s"
-msgstr ""
-
-#, python-format
-msgid "%s %s%s"
-msgstr ""
-
-#, python-format
-msgid "** Currently hospitalized: %s **"
-msgstr ""
-
-#, python-format
-msgid "emergency: %s"
-msgstr ""
-
-#, python-format
-msgid "in-praxis: %s"
-msgstr ""
-
-#, fuzzy, python-format
-msgid "care: %s%s@%s"
-msgstr "Návštěvy: %s (%s - %s):"
-
-msgid "*** CONFIDENTIAL ***"
-msgstr ""
-
-msgid " (confidential !)"
-msgstr ""
-
-#, fuzzy, python-format
-msgid "extrnl: %s (%s@%s)"
-msgstr " Jméno souboru: %s\n"
+msgid "extrnl: %s (%s@%s)"
+msgstr " Jméno souboru: %s\n"
 
 #, python-format
 msgid "aka: %(last)s, %(first)s%(nick)s"
@@ -9628,76 +9933,173 @@ msgid ""
 "You will have to add it via the Demographics plugin.\n"
 msgstr ""
 
-msgid "You must select a value from the picklist or type an exact match."
+msgid "You need to actually set an editor."
 msgstr ""
 
 #, python-format
-msgid ""
-"The content is invalid. It must match the regular expression: [%%s]. <%s>"
+msgid "The command [%s] is not found."
 msgstr ""
 
-msgid "Latin"
+#, python-format
+msgid ""
+"Enter the shell command with which to start\n"
+"the image editor for visual progress notes.\n"
+"\n"
+"Any \"%(img)s\" included with the arguments\n"
+"will be replaced by the file name of the\n"
+"note template."
 msgstr ""
 
-msgid "Greek"
+msgid "Choose file to use as template for new visual progress note"
 msgstr ""
 
-msgid "Cyrillic"
+msgid "Visual progress note source"
 msgstr ""
 
-msgid "Four Es"
+msgid "From which source do you want to pick the image template ?"
 msgstr ""
 
-msgid "Symbol"
+msgid "Database"
 msgstr ""
 
-msgid "Snellen Chart"
+msgid "List of templates in the database."
 msgstr ""
 
-msgid "Snellen Chart Setup"
+msgid "Files in the filesystem."
 msgstr ""
 
-msgid "Screen Height (cm): "
+msgid "Device"
 msgstr ""
 
-msgid "Screen Width (cm): "
+msgid "Image capture devices (scanners, cameras, etc)"
 msgstr ""
 
-msgid "Alphabet: "
+#, python-format
+msgid "Cannot export visual progress note template for [%s]."
 msgstr ""
 
-msgid "Mirror"
+msgid "Cannot export visual progress note to file."
 msgstr ""
 
-msgid ""
-"Control Snellen chart using mouse:\n"
-"left-click increases text\n"
-"right-click decreases text\n"
-"double-click ends"
+msgid "Editor for visual progress note not configured."
 msgstr ""
 
-msgid " OK "
+#, python-format
+msgid ""
+"There was a problem with running the editor\n"
+"for visual progress notes.\n"
+"\n"
+" [%s]\n"
+"\n"
 msgstr ""
 
-msgid " Cancel "
+msgid "Editing visual progress note"
 msgstr ""
 
 #, python-format
-msgid "invalid placeholder >>>>>%s<<<<<"
+msgid ""
+"There was a problem reading the visual\n"
+"progress note from the file:\n"
+"\n"
+" [%s]\n"
+"\n"
 msgstr ""
 
-#, python-format
-msgid "due %(due_date)s: %(comment)s (%(interval_due)s)"
+msgid "Saving visual progress note"
 msgstr ""
 
-msgid "Select the patient documents to reference from the new document."
+msgid ""
+"You either created a visual progress note from a template\n"
+"in the database (rather than from a file on disk) or you\n"
+"edited an existing visual progress note.\n"
+"\n"
+"The template/original was not modified at all, however.\n"
+"\n"
+"Do you still want to save the unmodified image as a\n"
+"visual progress note into the EMR of the patient ?\n"
 msgstr ""
 
-msgid "template is missing"
+msgid "visual progress notes"
 msgstr ""
 
 #, python-format
-msgid "invalid gender mapping layout: [%s]"
+msgid " [part 1 of %s]"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "Created: %s%s"
+msgstr "Vytvořit událost."
+
+msgid "You must select a value from the picklist or type an exact match."
+msgstr ""
+
+#, python-format
+msgid ""
+"The content is invalid. It must match the regular expression: [%%s]. <%s>"
+msgstr ""
+
+msgid "Latin"
+msgstr ""
+
+msgid "Greek"
+msgstr ""
+
+msgid "Cyrillic"
+msgstr ""
+
+msgid "Four Es"
+msgstr ""
+
+msgid "Symbol"
+msgstr ""
+
+msgid "Snellen Chart"
+msgstr ""
+
+msgid "Snellen Chart Setup"
+msgstr ""
+
+msgid "Screen Height (cm): "
+msgstr ""
+
+msgid "Screen Width (cm): "
+msgstr ""
+
+msgid "Alphabet: "
+msgstr ""
+
+msgid "Mirror"
+msgstr ""
+
+msgid ""
+"Control Snellen chart using mouse:\n"
+"left-click increases text\n"
+"right-click decreases text\n"
+"double-click ends"
+msgstr ""
+
+msgid " OK "
+msgstr ""
+
+msgid " Cancel "
+msgstr ""
+
+#, python-format
+msgid "invalid placeholder >>>>>%s<<<<<"
+msgstr ""
+
+#, python-format
+msgid "due %(due_date)s: %(comment)s (%(interval_due)s)"
+msgstr ""
+
+msgid "Select the patient documents to reference from the new document."
+msgstr ""
+
+msgid "template is missing"
+msgstr ""
+
+#, python-format
+msgid "invalid gender mapping layout: [%s]"
 msgstr ""
 
 msgid "Select the address you want to use !"
@@ -9708,7 +10110,8 @@ msgstr ""
 
 #, python-format
 msgid ""
-"%(street)s %(number)s, %(postcode)s %(urb)s, %(l10n_state)s, %(l10n_country)s"
+"%(street)s %(number)s, %(postcode)s %(urb)s, %(l10n_region)s, "
+"%(l10n_country)s"
 msgstr ""
 
 #, python-format
@@ -10300,7 +10703,7 @@ msgstr ""
 msgid ""
 "Cannot save address.\n"
 "\n"
-"Does the state [%s]\n"
+"Does the region [%s]\n"
 "exist in country [%s] ?"
 msgstr ""
 
@@ -10726,7 +11129,7 @@ msgstr ""
 msgid "Reminders for the current patient"
 msgstr ""
 
-msgid "Sent"
+msgid "Generated"
 msgstr ""
 
 msgid "Category - Type"
@@ -10774,9 +11177,6 @@ msgid ""
 "Data: %s"
 msgstr ""
 
-msgid "Inbox Message Actions:"
-msgstr ""
-
 msgid "Activate patient"
 msgstr ""
 
@@ -11469,7 +11869,7 @@ msgid ""
 msgstr ""
 
 #, python-format
-msgid "Select branch (of praxis [%s]) which you are logging in from.\n"
+msgid "Select the branch of praxis [%s] which you are logging in from.\n"
 msgstr ""
 
 msgid "Praxis branch selection ..."
@@ -11776,6 +12176,13 @@ msgstr ""
 msgid "List of addresses related to this person."
 msgstr ""
 
+#, fuzzy
+msgid "Map"
+msgstr "Bře"
+
+msgid "Show selected address on map"
+msgstr ""
+
 msgid "Adding new address"
 msgstr ""
 
@@ -11956,7 +12363,87 @@ msgstr ""
 msgid "generic multi choice dialog"
 msgstr ""
 
-msgid "Search in list"
+msgid "Deleting list items"
+msgstr ""
+
+#, python-format
+msgid ""
+"You have selected %s list items.\n"
+"\n"
+"Really delete all %s items ?"
+msgstr ""
+
+msgid ""
+"Select the items you want to work on.\n"
+"\n"
+"A discontinuous selection may depend on your holding down a platform-"
+"dependent modifier key (<CTRL>, <ALT>, etc) or key combination (eg. <CTRL-"
+"SHIFT> or <CTRL-ALT>) while clicking."
+msgstr ""
+
+msgid "List Item Actions:"
+msgstr ""
+
+msgid "Add (<INS>)"
+msgstr ""
+
+#, fuzzy
+msgid "Delete (<DEL>)"
+msgstr "Smazat"
+
+msgid "Find (<CTRL-F>)"
+msgstr ""
+
+#, python-format
+msgid "Find next [%s] (<CTRL-N>)"
+msgstr ""
+
+msgid "Row tooltip"
+msgstr ""
+
+msgid "Row data (formatted as text)"
+msgstr ""
+
+msgid "Row content (as one line)"
+msgstr ""
+
+msgid "Row content (one line per column)"
+msgstr ""
+
+#, python-format
+msgid "Column &%s: \"%s\" [#%s]"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "Column &%s: %s"
+msgstr "Dokumenty: %s"
+
+#, fuzzy
+msgid "&Copy to clipboard..."
+msgstr "Nelze kopírovat do schránky."
+
+#, fuzzy
+msgid "Append (&+) to clipboard..."
+msgstr "Nelze kopírovat do schránky."
+
+#, python-format
+msgid ""
+"%s list items are selected.\n"
+"\n"
+"Really delete all %s items ?"
+msgstr ""
+
+msgid "Enter the search term:"
+msgstr ""
+
+msgid "List search"
+msgstr ""
+
+#, python-format
+msgid ""
+"Current search term: [[%s]]\n"
+"\n"
+"%s"
 msgstr ""
 
 msgid "Monty the Serpent && the FSF Present"
@@ -12107,6 +12594,9 @@ msgstr ""
 msgid "Unknown: ?"
 msgstr ""
 
+msgid "The text has been copied into the clipboard."
+msgstr ""
+
 msgid "file2clipboard"
 msgstr ""
 
@@ -12114,6 +12604,44 @@ msgstr ""
 msgid "The file [%s] has been copied into the clipboard."
 msgstr ""
 
+msgid "programmer forgot to specify error message"
+msgstr "programátor zapoměl zadat chybovou hlášku"
+
+msgid ""
+"\n"
+"\n"
+"Please consult the error log for all the gory details !"
+msgstr ""
+"\n"
+"\n"
+"Prosím, přečtěte si protokol chyb pro všechny podrobnosti!"
+
+msgid "generic error message"
+msgstr "obecná chybová zpráva"
+
+msgid "programmer forgot to specify info message"
+msgstr "programátor zapoměl zadat informační hlášku"
+
+msgid "generic info message"
+msgstr "obecná informační hláška"
+
+msgid "programmer forgot to specify warning"
+msgstr "programátor zapomněl zadat upozornění"
+
+msgid "generic warning message"
+msgstr ""
+
+#, fuzzy
+msgid "Editing EDC"
+msgstr "Aktívní zúčtovatelná položka"
+
+#, python-format
+msgid ""
+"Really delete the EDC documented previously ?\n"
+"\n"
+" EDC: %s"
+msgstr ""
+
 #, python-format
 msgid ""
 "Algorithm: %s\n"
@@ -12222,15 +12750,15 @@ msgstr ""
 msgid "Firstname"
 msgstr ""
 
-msgid "Nickname"
-msgstr ""
-
 msgid "DOB"
 msgstr ""
 
 msgid "last visit"
 msgstr ""
 
+msgid "Nickname / Comment"
+msgstr ""
+
 msgid "found via"
 msgstr ""
 
@@ -12410,599 +12938,351 @@ msgstr ""
 msgid "In case of emergency contact:"
 msgstr ""
 
-msgid ""
-"\n"
-"Please select the default drug data source from the list below.\n"
-"\n"
-"Note that to actually use it you need to have the database installed, too."
+msgid "The preparation (form) of the substance or brand."
 msgstr ""
 
-msgid "Drug data source"
+msgid "A substance with optional strength or a brand."
 msgstr ""
 
-msgid "Configuring default drug data source"
+msgid "The medical aim for consuming this substance."
 msgstr ""
 
-msgid "No default drug database configured."
+msgid "not tolerated:"
 msgstr ""
 
-msgid "There is no default drug database configured."
+msgid "discontinued due to allergy or intolerance"
 msgstr ""
 
-msgid "Jumping to drug database"
+msgid "Documented an allergy"
 msgstr ""
 
 #, python-format
-msgid "Cannot call IFAP via [%s]."
+msgid ""
+"An allergy was documented against the substance:\n"
+"\n"
+"  [%s]\n"
+"\n"
+"This substance was taken with the multi-component brand:\n"
+"\n"
+"  [%s (%s)]\n"
+"\n"
+"Note that ALL components of this brand were discontinued."
 msgstr ""
 
-#, python-format
-msgid "Cannot create IFAP <-> GNUmed transfer file [%s]."
+msgid "disapproved"
 msgstr ""
 
-msgid "Current medication"
+msgid "Substances consumed by the patient:"
 msgstr ""
 
-msgid ""
-"\n"
-"The ATC codes as known to GNUmed.\n"
+msgid "Showing consumable substances."
 msgstr ""
 
-msgid "Showing ATC codes."
+msgid "Application"
 msgstr ""
 
-msgid "Choose an ATC import config file"
+msgid "never"
 msgstr ""
 
-msgid "config files"
+#, python-format
+msgid "%s, last confirmed %s\n"
 msgstr ""
 
-msgid "importing ATC reference data"
+#, python-format
+msgid "Comment (%s): %%s\n"
 msgstr ""
 
-msgid "Successfully imported ATC reference data."
+msgid "reaction not recorded"
 msgstr ""
 
-msgid "Importing ATC reference data failed."
+msgid "GFR: unknown"
 msgstr ""
 
-msgid "Select an ATC (Anatomical-Therapeutic-Chemical) code."
+msgid "GFR reported by path lab"
 msgstr ""
 
-msgid "Cannot delete this substance. It is in use."
+#, fuzzy
+msgid "<no components>"
+msgstr "Kontejner:"
+
+msgid "Adding substance intake entry"
 msgstr ""
 
+#, python-format
 msgid ""
+"The patient is already taking\n"
 "\n"
-"These are the consumable substances registered with GNUmed.\n"
+" %s\n"
+"\n"
+"You will want to adjust the schedule\n"
+"rather than document the intake twice."
 msgstr ""
 
-msgid "Showing consumable substances."
+msgid "Input incomplete/invalid for saving as substance intake."
 msgstr ""
 
-msgid "Import"
+#, python-format
+msgid "Discontinued (%s) in the future (now: %s)!"
 msgstr ""
 
-msgid "Import consumable substances from a drug database."
+#, python-format
+msgid "Discontinued (%s) before started (%s) !"
 msgstr ""
 
-msgid "Cannot edit this substance. It is in use."
+msgid "Cannot add duplicate of (maybe inactive) substance intake."
 msgstr ""
 
-msgid "Adding new consumable substance"
-msgstr ""
-
-msgid "Editing consumable substance"
+#, python-format
+msgid ""
+"\n"
+"[%s]\n"
+"\n"
+"It may be prudent to edit (before deletion) the details\n"
+"of this substance intake entry so as to leave behind\n"
+"some indication of why it was deleted.\n"
 msgstr ""
 
-msgid "Cannot save consumable substance. Missing essential input."
+msgid "Deleting medication / substance intake"
 msgstr ""
 
-#, python-format
-msgid "Cannot save consumable substance. %s"
+msgid "Allow editing of substance intake entry before deletion."
 msgstr ""
 
-msgid "Cannot remove this component from the drug. It is in use."
+msgid "Delete immediately without editing first."
 msgstr ""
 
-msgid ""
-"\n"
-"These are the components in the drug brands known to GNUmed.\n"
+msgid "&Cancel"
 msgstr ""
 
-msgid "Showing drug brand components."
+msgid "Abort. Do not delete or edit substance intake entry."
 msgstr ""
 
-msgid "Adding new drug component"
+msgid "Now delete substance intake entry ?"
 msgstr ""
 
-msgid "Editing drug component"
+msgid "Adding medication/non-medication substance intake"
 msgstr ""
 
-msgid "Cannot edit drug component. It is in use."
+msgid "Editing medication/non-medication substance intake"
 msgstr ""
 
-msgid "Cannot save drug component. Invalid or missing essential input."
+msgid "Document an allergy against this substance."
 msgstr ""
 
-msgid "A drug component with optional strength."
+msgid "No medication list template configured."
 msgstr ""
 
-msgid "The preparation (form) of the substance or brand."
+msgid "There is no medication list template configured."
 msgstr ""
 
-msgid "The substance with optional strength."
+msgid "Problem loading medication list template."
 msgstr ""
 
-msgid "Managing components of a drug"
+#, python-format
+msgid "Cannot load medication list template [%s - %s]"
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot manage the components of the branded drug product\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is currently taken by patients.\n"
+msgid "generated medication list document"
 msgstr ""
 
-msgid "Pick the substances which are components of this drug."
+msgid "Select the default prescription template:"
 msgstr ""
 
-msgid "Components of drug"
+msgid "No prescription template configured."
 msgstr ""
 
-#, python-format
-msgid ""
-"Adjust the components of \"%s\"\n"
-"\n"
-"The drug must contain at least one component. Any given\n"
-"substance can only be included once per drug."
+msgid "There is no prescription template configured."
 msgstr ""
 
-msgid "Managing components of a drug ..."
+msgid "Printing prescription"
 msgstr ""
 
-msgid "not in use"
+msgid "Problem loading prescription template."
 msgstr ""
 
 #, python-format
-msgid "ATC: %s\n"
+msgid "Cannot load prescription template [%s - %s]"
 msgstr ""
 
-msgid "Editing medication"
-msgstr ""
+#, fuzzy
+msgid "generated prescription"
+msgstr "Popis"
 
-#, python-format
 msgid ""
-"Cannot edit the medication\n"
-"\n"
-" \"%s\" (%s)\n"
+"These brands have been prescribed but are not listed\n"
+"in the current medication list of this patient.\n"
 "\n"
-"because it is a vaccine. Please edit it\n"
-"from the vaccine management section !\n"
+"Please select those you want added to the medication list."
 msgstr ""
 
-msgid "Deleting medication"
+msgid "Newly prescribed drugs"
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot delete the medication\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is a vaccine. Please delete it\n"
-"from the vaccine management section !\n"
+msgid "Add to medication list"
 msgstr ""
 
-msgid ""
-"\n"
-"These are the drug brands known to GNUmed.\n"
+#, fuzzy
+msgid "Timeframe"
+msgstr "Časová osa"
+
+#, python-format
+msgid "%s <fake>"
 msgstr ""
 
-msgid "Showing branded drugs."
+msgid "Cannot edit more than one substance at once."
 msgstr ""
 
-msgid "Import substances and brands from a drug database."
+msgid "Cannot delete more than one substance at once."
 msgstr ""
 
-msgid "Editing drug"
+msgid "Cannot create allergy from more than one substance at once."
 msgstr ""
 
-#, python-format
 msgid ""
-"Cannot edit the branded drug product\n"
-"\n"
-" \"%s\" (%s)\n"
 "\n"
-"because it is currently taken by patients.\n"
+"Select the measurements panel to show in the medications plugin.\n"
 msgstr ""
 
-msgid "Adding new drug brand"
+#, fuzzy
+msgid "Measurements panel"
+msgstr "Měření a Výsledky: %s"
+
+msgid "Configuring medications plugin measurements panel"
 msgstr ""
 
-msgid "Editing drug brand"
+msgid "EDC (!?!):"
 msgstr ""
 
-msgid "Manage consumable substances"
+msgid "EDC:"
 msgstr ""
 
-msgid "Cannot edit drug brand. It is in use."
+#, python-format
+msgid "%.1f (%s ago)"
 msgstr ""
 
-msgid "Checking brand data"
+msgid "eGFR:"
 msgstr ""
 
 #, python-format
-msgid ""
-"The brand information you entered:\n"
-"\n"
-" [%s %s]\n"
-"\n"
-"already exists as a drug product."
+msgid "eGFR: %.1f (%s)"
 msgstr ""
 
-msgid ""
-"You have not selected any substances\n"
-"as drug components.\n"
-"\n"
-"Without components you will not be able to\n"
-"use this drug for documenting patient care.\n"
-"\n"
-"Are you sure you want to save\n"
-"it without components ?"
+msgid "Enter vaccination given"
 msgstr ""
 
-msgid "Cannot save branded drug. Invalid or missing essential input."
+msgid "Unsaved progress note"
 msgstr ""
 
 msgid ""
-"The brand name of the drug.\n"
+"This progress note has not been saved yet.\n"
+"\n"
+"Do you want to save it or discard it ?\n"
 "\n"
-"Note: a brand name will need to be linked to\n"
-"one or more components before it can be used,\n"
-"except in the case of fake (generic) vaccines."
-msgstr ""
-
-msgid "The medical aim for consuming this substance."
 msgstr ""
 
-msgid "not tolerated:"
+msgid "Save this progress note"
 msgstr ""
 
-msgid "discontinued due to allergy or intolerance"
+msgid "Discard this progress note"
 msgstr ""
 
-msgid "Documented an allergy"
+msgid "Save all remaining unsaved progress notes"
 msgstr ""
 
-#, python-format
 msgid ""
-"An allergy was documented against the substance:\n"
-"\n"
-"  [%s]\n"
-"\n"
-"This substance was taken with the multi-component brand:\n"
-"\n"
-"  [%s (%s)]\n"
+"Add editor for a new unassociated progress note.\n"
 "\n"
-"Note that ALL components of this brand were discontinued."
-msgstr ""
-
-msgid "disapproved"
+"There is a configuration option whether or not to\n"
+"allow several new unassociated progress notes at once."
 msgstr ""
 
-msgid "Substances consumed by the patient:"
+msgid "Save progress note into medical record and close this editor."
 msgstr ""
 
-msgid "Intake"
+msgid "Clear this progress note editor."
 msgstr ""
 
-msgid "Application"
+msgid ""
+"Discard progress note and close this editor. You will loose any data already "
+"typed into this editor !"
 msgstr ""
 
-msgid "never"
+msgid "Problem saving progress note: duplicate information ?"
 msgstr ""
 
-#, python-format
-msgid "%s, last confirmed %s\n"
+msgid "label missing"
 msgstr ""
 
-#, python-format
-msgid "Comment (%s): %%s\n"
+msgid "soap cat missing"
 msgstr ""
 
-msgid "reaction not recorded"
+msgid "Enter a descriptive name for this new problem:"
 msgstr ""
 
-msgid "GFR: unknown"
+msgid "Creating a problem (episode) to save the notelet under ..."
 msgstr ""
 
-msgid "GFR reported by path lab"
+msgid "Error saving progress note."
 msgstr ""
 
-#, python-format
-msgid ""
-"The patient is already taking\n"
-"\n"
-" %s\n"
-"\n"
-"You will want to adjust the schedule\n"
-"rather than document the intake twice."
+msgid "Error saving embedded data."
 msgstr ""
 
-msgid "Adding substance intake entry"
+msgid "Visit Purpose"
 msgstr ""
 
-msgid "Input incomplete/invalid for saving as substance intake."
+msgid "History Taken"
 msgstr ""
 
-#, python-format
-msgid "Discontinued (%s) in the future (now: %s)!"
+msgid "Findings"
 msgstr ""
 
-#, python-format
-msgid "Discontinued (%s) before started (%s) !"
+msgid "save"
 msgstr ""
 
-msgid "Cannot add duplicate of (maybe inactive) substance intake."
+msgid "save clinical note in EMR"
 msgstr ""
 
-#, python-format
-msgid ""
-"\n"
-"[%s]\n"
-"\n"
-"It may be prudent to edit (before deletion) the details\n"
-"of this substance intake entry so as to leave behind\n"
-"some indication of why it was deleted.\n"
+msgid "discard"
 msgstr ""
 
-msgid "Deleting medication / substance intake"
+msgid "discard clinical note"
 msgstr ""
 
-msgid "Allow editing of substance intake entry before deletion."
+msgid "clinical progress note"
 msgstr ""
 
-msgid "Delete immediately without editing first."
+msgid "Select files to add to the export area"
 msgstr ""
 
-msgid "&Cancel"
+msgid "Adding files to export area"
 msgstr ""
 
-msgid "Abort. Do not delete or edit substance intake entry."
+#, python-format
+msgid ""
+"Cannot add (some of) the following files to the export area:\n"
+"%s "
 msgstr ""
 
-msgid "Now delete substance intake entry ?"
+msgid "Select the documents to be put into the export area:"
 msgstr ""
 
-msgid "Adding medication/non-medication substance intake"
+msgid "clipboard"
 msgstr ""
 
-msgid "Editing medication/non-medication substance intake"
+msgid "Loading clipboard item (saved to file) into export area"
 msgstr ""
 
-msgid "Document an allergy against this substance."
+#, python-format
+msgid ""
+"Cannot add the following clip to the export area:\n"
+"%s "
 msgstr ""
 
-msgid "No medication list template configured."
+msgid "scan"
 msgstr ""
 
-msgid "There is no medication list template configured."
-msgstr ""
-
-msgid "Problem loading medication list template."
-msgstr ""
-
-#, python-format
-msgid "Cannot load medication list template [%s - %s]"
-msgstr ""
-
-msgid "generated medication list document"
-msgstr ""
-
-msgid "Select the default prescription template:"
-msgstr ""
-
-msgid "No prescription template configured."
-msgstr ""
-
-msgid "There is no prescription template configured."
-msgstr ""
-
-msgid "Printing prescription"
-msgstr ""
-
-msgid "Problem loading prescription template."
-msgstr ""
-
-#, python-format
-msgid "Cannot load prescription template [%s - %s]"
-msgstr ""
-
-#, fuzzy
-msgid "generated prescription"
-msgstr "Popis"
-
-msgid ""
-"These brands have been prescribed but are not listed\n"
-"in the current medication list of this patient.\n"
-"\n"
-"Please select those you want added to the medication list."
-msgstr ""
-
-msgid "Newly prescribed drugs"
-msgstr ""
-
-msgid "Add to medication list"
-msgstr ""
-
-msgid "Duration / Until"
-msgstr ""
-
-#, python-format
-msgid "%s <fake>"
-msgstr ""
-
-msgid "Cannot edit more than one substance at once."
-msgstr ""
-
-msgid "Cannot delete more than one substance at once."
-msgstr ""
-
-msgid "Cannot create allergy from more than one substance at once."
-msgstr ""
-
-msgid ""
-"\n"
-"Select the measurements panel to show in the medications plugin.\n"
-msgstr ""
-
-#, fuzzy
-msgid "Measurements panel"
-msgstr "Měření a Výsledky: %s"
-
-msgid "Configuring medications plugin measurements panel"
-msgstr ""
-
-msgid "EDC (!?!):"
-msgstr ""
-
-msgid "EDC:"
-msgstr ""
-
-#, python-format
-msgid "%.1f (%s ago)"
-msgstr ""
-
-msgid "eGFR:"
-msgstr ""
-
-#, python-format
-msgid "%s%s%s (%s ago)"
-msgstr ""
-
-#, python-format
-msgid "eGFR: %.1f (%s)"
-msgstr ""
-
-msgid "Enter vaccination given"
-msgstr ""
-
-msgid "Unsaved progress note"
-msgstr ""
-
-msgid ""
-"This progress note has not been saved yet.\n"
-"\n"
-"Do you want to save it or discard it ?\n"
-"\n"
-msgstr ""
-
-msgid "Save this progress note"
-msgstr ""
-
-msgid "Discard this progress note"
-msgstr ""
-
-msgid "Save all remaining unsaved progress notes"
-msgstr ""
-
-msgid ""
-"Add editor for a new unassociated progress note.\n"
-"\n"
-"There is a configuration option whether or not to\n"
-"allow several new unassociated progress notes at once."
-msgstr ""
-
-msgid "Save progress note into medical record and close this editor."
-msgstr ""
-
-msgid "Clear this progress note editor."
-msgstr ""
-
-msgid ""
-"Discard progress note and close this editor. You will loose any data already "
-"typed into this editor !"
-msgstr ""
-
-msgid "Problem saving progress note: duplicate information ?"
-msgstr ""
-
-msgid "label missing"
-msgstr ""
-
-msgid "soap cat missing"
-msgstr ""
-
-msgid "Enter a descriptive name for this new problem:"
-msgstr ""
-
-msgid "Creating a problem (episode) to save the notelet under ..."
-msgstr ""
-
-msgid "Error saving progress note."
-msgstr ""
-
-msgid "Error saving embedded data."
-msgstr ""
-
-msgid "Visit Purpose"
-msgstr ""
-
-msgid "History Taken"
-msgstr ""
-
-msgid "Findings"
-msgstr ""
-
-msgid "save"
-msgstr ""
-
-msgid "save clinical note in EMR"
-msgstr ""
-
-msgid "discard"
-msgstr ""
-
-msgid "discard clinical note"
-msgstr ""
-
-msgid "clinical progress note"
-msgstr ""
-
-msgid "Select files to add to the export area"
-msgstr ""
-
-msgid "Adding files to export area"
-msgstr ""
-
-#, python-format
-msgid ""
-"Cannot add (some of) the following files to the export area:\n"
-"%s "
-msgstr ""
-
-msgid "Select the documents to be put into the export area:"
-msgstr ""
-
-msgid "clipboard"
-msgstr ""
-
-msgid "Loading clipboard item (saved to file) into export area"
-msgstr ""
-
-#, python-format
-msgid ""
-"Cannot add the following clip to the export area:\n"
-"%s "
-msgstr ""
-
-msgid "scan"
-msgstr ""
-
-msgid "Scanning files into export area"
+msgid "Scanning files into export area"
 msgstr ""
 
 #, python-format
@@ -13046,14 +13326,21 @@ msgid ""
 "\n"
 " [%s]\n"
 "\n"
-"is not empty. Do you want to use it for saving the\n"
-"export area documents into, nevertheless ?\n"
+"already contains files. Do you still want to save the\n"
+"selected export area documents into that directory ?\n"
 "\n"
-"(this can be useful for including external documents)\n"
+"(this is useful for including the external documents\n"
+" already stored in or below this directory)\n"
 "\n"
 "[NO] will create a subdirectory for you and use that."
 msgstr ""
 
+msgid ""
+"Create descriptive metadata files\n"
+"and save them alongside the\n"
+"selected export area documents ?"
+msgstr ""
+
 #, python-format
 msgid ""
 "Saved to [%s]:\n"
@@ -13260,10 +13547,6 @@ msgid "This praxis"
 msgstr ""
 
 #, fuzzy
-msgid "Hospital stay"
-msgstr "Hospitalizace: %s"
-
-#, fuzzy
 msgid "Bill receiver"
 msgstr "Vybrat událost."
 
@@ -13300,46 +13583,89 @@ msgstr ""
 msgid "Select the episode under which to file the document ..."
 msgstr ""
 
-#, python-format
-msgid "Imported new document from %s."
+msgid "Cannot create new document."
 msgstr ""
 
-msgid "Enter a comment on the document."
+msgid "saving document"
 msgstr ""
 
-msgid "User defined"
+#, python-format
+msgid "Imported new document from %s."
 msgstr ""
 
-msgid "In use"
+msgid "Successfully saved new document."
+msgstr ""
+
+msgid "Successfully saved the new document."
 msgstr ""
 
 #, python-format
 msgid ""
-"Cannot delete document type\n"
-" [%s]\n"
-"because it is currently in use."
+"The reference ID for the new document is:\n"
+"\n"
+" <%s>\n"
+"\n"
+"You probably want to write it down on the\n"
+"original documents.\n"
+"\n"
+"If you don't care about the ID you can switch\n"
+"off this message in the GNUmed configuration.\n"
 msgstr ""
 
-msgid "deleting document type"
+msgid "Saving document"
 msgstr ""
 
 #, python-format
 msgid ""
-"From the list below select the document type you want\n"
-"all documents currently classified as:\n"
-"\n"
-" \"%s\"\n"
+"Successfully imported files as document.\n"
 "\n"
-"to be changed to.\n"
+"Do you want to delete imported files from the filesystem ?\n"
 "\n"
-"Be aware that this change will be applied to ALL such documents. If there\n"
-"are many documents to change it can take quite a while.\n"
+" %s\n"
 "\n"
-"Make sure this is what you want to happen !\n"
+"Note that temporary files will be deleted anyway."
 msgstr ""
 
-msgid "Reassigning document type"
-msgstr ""
+#, fuzzy
+msgid "Removing files"
+msgstr "Soubory Timeline"
+
+msgid "Enter a comment on the document."
+msgstr ""
+
+msgid "User defined"
+msgstr ""
+
+msgid "In use"
+msgstr ""
+
+#, python-format
+msgid ""
+"Cannot delete document type\n"
+" [%s]\n"
+"because it is currently in use."
+msgstr ""
+
+msgid "deleting document type"
+msgstr ""
+
+#, python-format
+msgid ""
+"From the list below select the document type you want\n"
+"all documents currently classified as:\n"
+"\n"
+" \"%s\"\n"
+"\n"
+"to be changed to.\n"
+"\n"
+"Be aware that this change will be applied to ALL such documents. If there\n"
+"are many documents to change it can take quite a while.\n"
+"\n"
+"Make sure this is what you want to happen !\n"
+msgstr ""
+
+msgid "Reassigning document type"
+msgstr ""
 
 msgid "Select the document type."
 msgstr ""
@@ -13421,14 +13747,16 @@ msgstr ""
 msgid "Acquiring images"
 msgstr ""
 
-msgid "other documents"
+msgid "directory dropped on client"
 msgstr ""
 
-#, python-format
-msgid "part %s: %s"
+msgid "file dropped on client"
 msgstr ""
 
-msgid "saving document"
+msgid "other documents"
+msgstr ""
+
+msgid "path"
 msgstr ""
 
 msgid "No parts to save. Really save an empty document as a reference ?"
@@ -13473,17 +13801,25 @@ msgstr ""
 msgid "acquiring page"
 msgstr ""
 
+msgid "captured by imaging device"
+msgstr ""
+
 msgid "Choose a file"
 msgstr ""
 
 msgid "all files (Win)"
 msgstr ""
 
-msgid "You must select a part before you can view it."
+msgid "picked from storage media"
 msgstr ""
 
-msgid "displaying part"
-msgstr ""
+#, fuzzy
+msgid "pasted from clipboard"
+msgstr "Nelze kopírovat do schránky."
+
+#, fuzzy
+msgid "No part selected for viewing."
+msgstr "Nelze rolovat více vpravo"
 
 #, python-format
 msgid ""
@@ -13491,45 +13827,12 @@ msgid ""
 "%s"
 msgstr ""
 
-msgid "You must select a part before you can delete it."
-msgstr ""
-
-msgid "deleting part"
-msgstr ""
-
-#, python-format
-msgid ""
-"The part has successfully been removed from the document.\n"
-"\n"
-"Do you also want to permanently delete the file\n"
-"\n"
-" [%s]\n"
-"\n"
-"from which this document part was loaded ?\n"
-"\n"
-"If it is a temporary file for a page you just scanned\n"
-"this makes a lot of sense. In other cases you may not\n"
-"want to lose the file.\n"
-"\n"
-"Pressing [YES] will permanently remove the file\n"
-"from your computer.\n"
-msgstr ""
-
-msgid "Removing document part"
-msgstr ""
-
-#, python-format
-msgid ""
-"Cannot delete part in file [%s].\n"
-"\n"
-"You may not have write access to it."
-msgstr ""
-
-msgid "Cannot create new document."
+msgid "displaying part"
 msgstr ""
 
-msgid "Cannot update document metadata."
-msgstr ""
+#, fuzzy
+msgid "No part selected for removal."
+msgstr "Nelze rolovat více vpravo"
 
 msgid "Cannot add document description."
 msgstr ""
@@ -13537,26 +13840,12 @@ msgstr ""
 msgid "Error setting \"reviewed\" status of new document."
 msgstr ""
 
-msgid "Successfully saved the new document."
-msgstr ""
-
 #, python-format
 msgid ""
-"The reference ID for the new document is:\n"
-"\n"
-" <%s>\n"
-"\n"
-"You probably want to write it down on the\n"
-"original documents.\n"
+"Source: %s\n"
+"File: %s\n"
 "\n"
-"If you don't care about the ID you can switch\n"
-"off this message in the GNUmed configuration."
-msgstr ""
-
-msgid "Saving document"
-msgstr ""
-
-msgid "Successfully saved new document."
+"%s"
 msgstr ""
 
 msgid "Document part does not seem to exist in database !"
@@ -13571,9 +13860,6 @@ msgstr ""
 msgid "Showing documents."
 msgstr ""
 
-msgid "Generated"
-msgstr ""
-
 msgid "Ref #"
 msgstr ""
 
@@ -13828,6 +14114,149 @@ msgstr ""
 msgid "Deleting document"
 msgstr ""
 
+msgid "Study date"
+msgstr ""
+
+#, fuzzy
+msgid "Study time"
+msgstr "Počáteční čas "
+
+msgid "Method"
+msgstr ""
+
+#, fuzzy
+msgid "Body part"
+msgstr "žádné části"
+
+#, fuzzy
+msgid "Time"
+msgstr "Časová osa"
+
+msgid "Cannot connect without port (try 8042)."
+msgstr ""
+
+#, python-format
+msgid "Connect to [%s] @ port %s as \"%s\"."
+msgstr ""
+
+msgid "Cannot connect to PACS."
+msgstr ""
+
+#, python-format
+msgid "PACS: Orthanc \"%s\" (AET \"%s\", Version %s, DB v%s)"
+msgstr ""
+
+#, python-format
+msgid "GNUmed patient: %s (generic PACS ID)"
+msgstr ""
+
+#, python-format
+msgid "GNUmed patient: \"%(value)s\" @ [%(issuer)s] (stored PACS ID)"
+msgstr ""
+
+msgid "PACS: no patients with matching IDs found"
+msgstr ""
+
+msgid ""
+"PACS: more than one patient with matching IDs found, carefully check studies"
+msgstr ""
+
+#, python-format
+msgid "%s series"
+msgstr ""
+
+#, python-format
+msgid "%%s (%s series)"
+msgstr ""
+
+msgid "no studies"
+msgstr ""
+
+#, python-format
+msgid "%s studies"
+msgstr ""
+
+msgid "Exporting DICOM studies"
+msgstr ""
+
+#, fuzzy
+msgid "Unable to export selected studies."
+msgstr "Nelze vymazat soubor zálohy '%s'."
+
+#, python-format
+msgid ""
+"The DICOM studies are %s in compressed size.\n"
+"\n"
+"Really copy to export area ?"
+msgstr ""
+
+#, python-format
+msgid "DICOM studies of [%s] from Orthanc PACS \"%s\" (AET \"%s\")"
+msgstr ""
+
+msgid "Select the directory into which to save the DICOM studies."
+msgstr ""
+
+msgid "Saving DICOM studies"
+msgstr ""
+
+#, fuzzy
+msgid "Unable to save selected studies."
+msgstr "Nelze vymazat soubor zálohy '%s'."
+
+#, fuzzy
+msgid "Unable to export studies."
+msgstr "Nemohu otevřít časovou osu '%s'."
+
+#, python-format
+msgid "All DICOM studies of [%s] from Orthanc PACS \"%s\" (AET \"%s\")"
+msgstr ""
+
+#, python-format
+msgid "%s%s images"
+msgstr ""
+
+msgid "Select the directory from which to recursively upload DICOM files."
+msgstr ""
+
+msgid "Delete the uploaded DICOM files now ?"
+msgstr ""
+
+msgid ""
+"Some files have not been uploaded.\n"
+"\n"
+"Do you want to delete those DICOM files which have been sent to the PACS "
+"successfully ?"
+msgstr ""
+
+msgid "Uploading DICOM files"
+msgstr ""
+
+msgid "Editing Orthanc content"
+msgstr ""
+
+#, fuzzy
+msgid "Patient ID"
+msgstr " Pacient: #%s\n"
+
+msgid "Birth date"
+msgstr ""
+
+msgid "Orthanc"
+msgstr ""
+
+msgid "Modifying patient ID"
+msgstr ""
+
+#, python-format
+msgid ""
+"Really modify %s patient(s) to have the new patient ID\n"
+"\n"
+" [%s]\n"
+"\n"
+"stored in the Orthanc DICOM server ?"
+msgstr ""
+
 #, python-format
 msgid "You are logged in as %s%s.%s (%s). DB account <%s>."
 msgstr ""
@@ -13886,6 +14315,12 @@ msgstr ""
 msgid "Select the measurements panel to show in the medications plugin."
 msgstr ""
 
+msgid "General measurements"
+msgstr ""
+
+msgid "Select the measurements panel to show in the top pane."
+msgstr ""
+
 msgid "Review dialog"
 msgstr ""
 
@@ -13976,6 +14411,12 @@ msgstr ""
 msgid "Configure auto-opening editors for recent problems."
 msgstr ""
 
+msgid "SOAP fields"
+msgstr ""
+
+msgid "Configure SOAP editor - individual SOAP fields vs text editor like"
+msgstr ""
+
 msgid "Progress notes handling ..."
 msgstr ""
 
@@ -13997,6 +14438,9 @@ msgstr ""
 msgid "URL for measurements encyclopedia."
 msgstr ""
 
+msgid "Drug data source"
+msgstr ""
+
 msgid "Select the drug data source."
 msgstr ""
 
@@ -14361,6 +14805,12 @@ msgstr ""
 msgid "Manage dynamic hints suppressed in this patient."
 msgstr ""
 
+msgid "Substance abuse"
+msgstr ""
+
+msgid "Manage substance abuse documentation of this patient."
+msgstr ""
+
 msgid "&Add / Edit ..."
 msgstr ""
 
@@ -14382,26 +14832,49 @@ msgstr ""
 msgid "Show a high-level statistic summary of the EMR."
 msgstr ""
 
-msgid "Text document"
+msgid "Journal (encounters) to file"
 msgstr ""
 
-msgid "Export the EMR of the active patient into a text file"
+msgid ""
+"Save the EMR of the active patient as a chronological journal into a text "
+"file"
 msgstr ""
 
-msgid "Journal"
+msgid "Journal (encounters) to export area"
 msgstr ""
 
 msgid ""
-"Export the EMR of the active patient as a chronological journal into a text "
-"file"
+"Copy EMR of the active patient as a chronological journal into export area"
+msgstr ""
+
+msgid "Journal (mod time) to file"
+msgstr ""
+
+msgid ""
+"Save the EMR of the active patient as journal by last modification time into "
+"a text file"
+msgstr ""
+
+msgid "Journal (mod time) to export area"
+msgstr ""
+
+msgid ""
+"Copy EMR of the active patient as journal by last modification time into "
+"export area"
+msgstr ""
+
+msgid "Text document"
+msgstr ""
+
+msgid "Save the EMR of the active patient into a text file"
 msgstr ""
 
 msgid "MEDISTAR import format"
 msgstr ""
 
 msgid ""
-"GNUmed -> MEDISTAR. Export progress notes of active patient's active "
-"encounter into a text file."
+"GNUmed -> MEDISTAR. Save progress notes of active patient's active encounter "
+"into a text file."
 msgstr ""
 
 msgid "Export as ..."
@@ -14574,19 +15047,42 @@ msgstr ""
 msgid "Show log file"
 msgstr ""
 
-msgid "Show the log file in text viewer."
+msgid "Show log file in text viewer."
 msgstr ""
 
 msgid "Backup log file"
 msgstr ""
 
-msgid "Backup the content of the log to another file."
+msgid "Backup content of the log to another file."
 msgstr ""
 
 msgid "Email log file"
 msgstr ""
 
-msgid "Send the log file to the authors for help."
+msgid "Send log file to the authors for help."
+msgstr ""
+
+#, fuzzy
+msgid "Browse tmp dir"
+msgstr "Popis"
+
+#, python-format
+msgid "Browse temporary directory [%s]."
+msgstr ""
+
+#, fuzzy
+msgid "Browse work dir"
+msgstr "Popis"
+
+#, python-format
+msgid "Browse user working directory [%s]."
+msgstr ""
+
+msgid "Browse internal work dir"
+msgstr ""
+
+#, python-format
+msgid "Browse internal working directory [%s]."
 msgstr ""
 
 msgid "Bug tracker"
@@ -14929,8 +15425,22 @@ msgid "No, only auto-open one editor for a new, unassociated problem."
 msgstr ""
 
 msgid ""
-"When a patient is activated GNUmed can\n"
-"be told to switch to a specific plugin.\n"
+"When editing progress notes, do you want GNUmed to\n"
+"show individual fields for each of the SOAP categories\n"
+"or do you want to use a text-editor like field for\n"
+"all SOAP categories which can then be set per line\n"
+"of input ?"
+msgstr ""
+
+msgid "Yes, show a dedicated field per SOAP category."
+msgstr ""
+
+msgid "No, use one field for all SOAP categories."
+msgstr ""
+
+msgid ""
+"When a patient is activated GNUmed can\n"
+"be told to switch to a specific plugin.\n"
 "\n"
 "Select the desired plugin below:"
 msgstr ""
@@ -15256,7 +15766,7 @@ msgid "[-9999]: <access violation test error>"
 msgstr ""
 
 msgid ""
-"This is a deliberate AcessDenied exception thrown to test the handling of "
+"This is a deliberate AccessDenied exception thrown to test the handling of "
 "access violations by means of a decorator."
 msgstr ""
 
@@ -15264,7 +15774,7 @@ msgid "testing access check for non-existant <admin> role"
 msgstr ""
 
 msgid ""
-"This is a deliberate AcessDenied exception. You should not see this message "
+"This is a deliberate AccessDenied exception. You should not see this message "
 "because the role is checked in a decorator."
 msgstr ""
 
@@ -15296,441 +15806,851 @@ msgstr ""
 msgid "Cannot add medication. No active patient."
 msgstr ""
 
-msgid "Cannot add allergy. No active patient."
+msgid "Cannot add allergy. No active patient."
+msgstr ""
+
+msgid "Cannot manage performed procedures. No active patient."
+msgstr ""
+
+msgid "Cannot manage hospitalizations. No active patient."
+msgstr ""
+
+msgid "Cannot manage external care. No active patient."
+msgstr ""
+
+msgid "Cannot edit occupation. No active patient."
+msgstr ""
+
+msgid "manage vaccinations"
+msgstr ""
+
+msgid "Cannot add vaccinations. No active patient."
+msgstr ""
+
+#, fuzzy
+msgid "manage family history"
+msgstr "Rodinná anamnéza"
+
+msgid "Cannot manage family history. No active patient."
+msgstr ""
+
+msgid "Cannot manage measurements. No active patient."
+msgstr ""
+
+msgid "calculate EDC"
+msgstr ""
+
+msgid "manage suppressed hints"
+msgstr ""
+
+msgid "Cannot manage suppressed hints. No active patient."
+msgstr ""
+
+msgid "Cannot manage smoking status. No active patient."
+msgstr ""
+
+msgid "Cannot show EMR summary. No active patient."
+msgstr ""
+
+msgid "EMR Summary"
+msgstr ""
+
+msgid "Cannot export EMR journal by last modification time. No active patient."
+msgstr ""
+
+msgid "journal_by_last_mod_time"
+msgstr ""
+
+msgid "Save patient's EMR journal as..."
+msgstr ""
+
+msgid "Error exporting patient EMR as journal by last modification time."
+msgstr ""
+
+msgid "EMR journal export"
+msgstr ""
+
+#, python-format
+msgid ""
+"Successfully exported EMR as journal by last modification time into file "
+"[%s]."
+msgstr ""
+
+msgid "Cannot export EMR journal. No active patient."
+msgstr ""
+
+msgid "emr-journal"
+msgstr ""
+
+msgid "Error exporting patient EMR as chronological journal."
+msgstr ""
+
+#, python-format
+msgid "Successfully exported EMR as chronological journal into file [%s]."
+msgstr ""
+
+msgid "EMR journal by last modification time"
+msgstr ""
+
+msgid "EMR journal by encounter"
+msgstr ""
+
+msgid "Cannot add tag to person. No active patient."
+msgstr ""
+
+#, python-format
+msgid "Edit the comment on tag [%s]"
+msgstr ""
+
+msgid "Editing tag comment"
+msgstr ""
+
+msgid "Cannot export patient as GDT. No active patient."
+msgstr ""
+
+msgid "Exported demographics as GDT to clipboard."
+msgstr ""
+
+msgid "Cannot export patient as VCARD. No active patient."
+msgstr ""
+
+msgid "Exported demographics as VCARD to clipboard."
+msgstr ""
+
+msgid "Cannot export patient as XML (LinuxMedNews). No active patient."
+msgstr ""
+
+#, python-format
+msgid "Exported demographics to XML file [%s]."
+msgstr ""
+
+#, python-format
+msgid "Exported demographics to GDT file [%s]."
+msgstr ""
+
+#, python-format
+msgid "Exported demographics to VCARD file [%s]."
+msgstr ""
+
+msgid "Cannot add staff member. No active patient."
+msgstr ""
+
+msgid "Cannot delete patient. No patient active."
+msgstr ""
+
+msgid ""
+"You have to manually close this window to finalize shutting down GNUmed."
+msgstr ""
+
+msgid "This is so that you can inspect the console output at your leisure."
+msgstr ""
+
+msgid "no patient"
+msgstr ""
+
+#, python-format
+msgid "Saved screenshot to file [%s]."
+msgstr ""
+
+msgid "Python version check"
+msgstr ""
+
+#, python-format
+msgid ""
+"You are running Python version\n"
+" %s\n"
+"\n"
+"However, GNUmed wants Python 2.7 to\n"
+"facilitate migration to Python 3.\n"
+"\n"
+"Please upgrade your Python interpreter !"
+msgstr ""
+
+msgid "GNUmed client"
+msgstr ""
+
+msgid "GNUmed stdout/stderr window"
+msgstr ""
+
+msgid "redirecting STDOUT/STDERR to this log window"
+msgstr ""
+
+#, python-format
+msgid ""
+"The database account [%s] cannot be used as a\n"
+"staff member login for GNUmed. There was an\n"
+"error retrieving staff details for it.\n"
+"\n"
+"Please ask your administrator for help.\n"
+msgstr ""
+
+msgid "Checking access permissions"
+msgstr ""
+
+#, python-format
+msgid "Database <%s> on <%s>"
+msgstr ""
+
+#, python-format
+msgid "Branch \"%s\" of praxis \"%s\"\n"
+msgstr ""
+
+msgid "Verifying database"
+msgstr ""
+
+msgid "Connect"
+msgstr ""
+
+msgid "Yes, connect to this database."
+msgstr ""
+
+msgid "Disconnect"
+msgstr ""
+
+msgid "No, do not connect to this database."
+msgstr ""
+
+#, python-format
+msgid ""
+"Cannot find configuration file in any of:\n"
+"\n"
+" %s\n"
+"You may need to use the comand line option\n"
+"\n"
+"\t--conf-file=<FILE>"
+msgstr ""
+
+msgid "Checking configuration files"
+msgstr ""
+
+msgid "GNUmed startup"
+msgstr ""
+
+#, python-format
+msgid ""
+"The currently selected database language ('%s') does\n"
+"not match the current system language ('%s').\n"
+"\n"
+"Do you want to set the database language to '%s' ?\n"
+msgstr ""
+
+msgid "Checking database language settings"
+msgstr ""
+
+#, python-format
+msgid "Set your database language to [%s]."
+msgstr ""
+
+msgid "Don't set"
+msgstr ""
+
+msgid "Do not set your database language now."
+msgstr ""
+
+msgid "Remember to ignore language mismatch"
+msgstr ""
+
+#, python-format
+msgid ""
+"Checking this will make GNUmed remember your decision\n"
+"until the system language is changed.\n"
+"\n"
+"You can also reactivate this inquiry by removing the\n"
+"corresponding \"ignore\" option from the configuration file\n"
+"\n"
+" [%s]"
+msgstr ""
+
+msgid "generic activity"
+msgstr ""
+
+msgid "Access denied"
+msgstr ""
+
+#, python-format
+msgid ""
+"Your account is not set up to access this part of GNUmed:\n"
+"\n"
+"  [%s]"
+msgstr ""
+
+msgid "Save timeline as SVG image under..."
+msgstr ""
+
+#, fuzzy
+msgid "timeline image"
+msgstr "Soubory Timeline"
+
+#, fuzzy
+msgid "timeline data"
+msgstr "Není stanovena časová osa"
+
+msgid "Cannot change notebook tabs. No active patient."
+msgstr ""
+
+msgid "add plugin ..."
+msgstr ""
+
+msgid "Cannot activate Allergy Manager. No active patient."
+msgstr ""
+
+msgid "RR ?"
+msgstr ""
+
+#, python-format
+msgid "BMI %s"
+msgstr ""
+
+msgid "BMI ?"
+msgstr ""
+
+msgid "GFR ?"
+msgstr ""
+
+#, python-format
+msgid "GFR %s"
+msgstr ""
+
+#, python-format
+msgid "?EDC %s"
+msgstr ""
+
+#, python-format
+msgid "EDC %s"
+msgstr ""
+
+msgid "<Age>"
+msgstr ""
+
+#, fuzzy
+msgid "no patient selected"
+msgstr "Začátek návštev pacienta"
+
+#, python-format
+msgid "Gender: %s (%s) - %s\n"
+msgstr ""
+
+#, python-format
+msgid "Born: %s\n"
+msgstr ""
+
+#, python-format
+msgid "Died: %s\n"
+msgstr ""
+
+#, python-format
+msgid "At age: %s\n"
+msgstr ""
+
+msgid " (date of birth and age are estimated)\n"
+msgstr ""
+
+#, python-format
+msgid "%(sex)s  %(dob)s (%(age)s today !)"
+msgstr ""
+
+msgid ""
+"\n"
+"Today is the patient's birthday !\n"
+"\n"
+msgstr ""
+
+#, python-format
+msgid "Birthday: %s ago\n"
+msgstr ""
+
+#, python-format
+msgid "Birthday: in %s\n"
+msgstr ""
+
+#, python-format
+msgid "Age: %s\n"
+msgstr ""
+
+#, python-format
+msgid "last confirmed %s\n"
+msgstr ""
+
+#, python-format
+msgid "Comment (%s): %%s"
+msgstr ""
+
+#, python-format
+msgid " - expires %s"
+msgstr ""
+
+#, python-format
+msgid ""
+"Due for %s (since %s%s):\n"
+"%s%s\n"
+"Patient: %s\n"
+"Reminder by: %s"
+msgstr ""
+
+msgid "Clinical reminder"
 msgstr ""
 
-msgid "Cannot manage performed procedures. No active patient."
+msgid "Adding automatic dynamic hint"
 msgstr ""
 
-msgid "Cannot manage hospitalizations. No active patient."
+msgid "Editing automatic dynamic hint"
 msgstr ""
 
-msgid "Cannot manage external care. No active patient."
+msgid "Deleting automatic dynamic hint"
 msgstr ""
 
-msgid "Cannot edit occupation. No active patient."
+#, python-format
+msgid ""
+"Really delete this dynamic hint ?\n"
+"\n"
+" [%s]"
 msgstr ""
 
-msgid "manage vaccinations"
+msgid "deleting a dynamic hint"
 msgstr ""
 
-msgid "Cannot add vaccinations. No active patient."
+msgid ""
+"\n"
+"Dynamic hints registered with GNUmed.\n"
 msgstr ""
 
-msgid "Cannot manage family history. No active patient."
+msgid "Showing dynamic hints."
 msgstr ""
 
-msgid "Cannot manage measurements. No active patient."
+msgid "Hint"
 msgstr ""
 
-msgid "calculate EDC"
+msgid "Browse and install automatic dynamic hints data packs"
 msgstr ""
 
-msgid "manage suppressed hints"
-msgstr ""
+#, fuzzy, python-format
+msgid "By: %s"
+msgstr " Faktura: %s\n"
 
-msgid "Cannot manage suppressed hints. No active patient."
+msgid "No entry in field <Source>."
 msgstr ""
 
-msgid "Cannot show EMR summary. No active patient."
+msgid "No entry in field <Conditions>."
 msgstr ""
 
-msgid "EMR Summary"
-msgstr ""
+#, fuzzy
+msgid "No entry in field <Description>."
+msgstr "Popis"
 
-msgid "Cannot export EMR journal. No active patient."
+msgid "No entry in field <Title>."
 msgstr ""
 
-msgid "Save patient's EMR journal as..."
+msgid "creating a new dynamic hint"
 msgstr ""
 
-msgid "Error exporting patient EMR as chronological journal."
-msgstr ""
+#, fuzzy
+msgid "updating an existing dynamic hint"
+msgstr "Otevřít existující časovou osu"
 
-msgid "EMR journal export"
-msgstr ""
+#, fuzzy
+msgid "Deleting suppressed dynamic hint"
+msgstr "Otevřít existující časovou osu"
 
 #, python-format
-msgid "Successfully exported EMR as chronological journal into file [%s]."
+msgid ""
+"Really delete the suppression of this dynamic hint ?\n"
+"\n"
+" [%s]"
 msgstr ""
 
-msgid "Cannot add tag to person. No active patient."
+msgid ""
+"\n"
+"Dynamic hints suppressed in this patient.\n"
 msgstr ""
 
-#, python-format
-msgid "Edit the comment on tag [%s]"
+msgid "Showing suppressed dynamic hints."
 msgstr ""
 
-msgid "Editing tag comment"
+msgid "Rationale"
 msgstr ""
 
-msgid "Cannot export patient as GDT. No active patient."
-msgstr ""
+#, fuzzy
+msgid "Manage hints"
+msgstr "zdravotní problém: %s"
 
-msgid "Exported demographics as GDT to clipboard."
-msgstr ""
+#, fuzzy
+msgid "Manage automatic dynamic hints"
+msgstr "Otevřít existující časovou osu"
 
-msgid "Cannot export patient as VCARD. No active patient."
+msgid "Cannot delete family history item."
 msgstr ""
 
-msgid "Exported demographics as VCARD to clipboard."
+msgid "Family history of this patient."
 msgstr ""
 
-msgid "Cannot export patient as XML (LinuxMedNews). No active patient."
+msgid "Showing family history."
 msgstr ""
 
-#, python-format
-msgid "Exported demographics to XML file [%s]."
+msgid "Fatal"
 msgstr ""
 
-#, python-format
-msgid "Exported demographics to GDT file [%s]."
+msgid "Noted"
 msgstr ""
 
-#, python-format
-msgid "Exported demographics to VCARD file [%s]."
+msgid "Died"
 msgstr ""
 
-msgid "Cannot add staff member. No active patient."
+msgid "Adding family history"
 msgstr ""
 
-msgid "Cannot delete patient. No patient active."
+msgid "Editing family history"
 msgstr ""
 
 msgid ""
-"You have to manually close this window to finalize shutting down GNUmed."
+"\n"
+"Please select the default drug data source from the list below.\n"
+"\n"
+"Note that to actually use it you need to have the database installed, too."
 msgstr ""
 
-msgid "This is so that you can inspect the console output at your leisure."
+msgid "Configuring default drug data source"
 msgstr ""
 
-msgid "no patient"
+msgid "No default drug database configured."
 msgstr ""
 
-#, python-format
-msgid "Saved screenshot to file [%s]."
+msgid "There is no default drug database configured."
 msgstr ""
 
-msgid "GNUmed client"
+msgid "Jumping to drug database"
 msgstr ""
 
-msgid "GNUmed stdout/stderr window"
+msgid "Cannot import drugs from IFAP into chart without chart."
 msgstr ""
 
-msgid "redirecting STDOUT/STDERR to this log window"
+#, python-format
+msgid "Cannot call IFAP via [%s]."
 msgstr ""
 
 #, python-format
+msgid "Cannot create IFAP <-> GNUmed transfer file [%s]."
+msgstr ""
+
+msgid "Current medication"
+msgstr ""
+
 msgid ""
-"The database account [%s] cannot be used as a\n"
-"staff member login for GNUmed. There was an\n"
-"error retrieving staff details for it.\n"
 "\n"
-"Please ask your administrator for help.\n"
+"The ATC codes as known to GNUmed.\n"
 msgstr ""
 
-msgid "Checking access permissions"
+msgid "Showing ATC codes."
 msgstr ""
 
-#, python-format
-msgid "Database <%s> on <%s>"
+msgid "Choose an ATC import config file"
 msgstr ""
 
-#, python-format
-msgid "Branch \"%s\" of praxis \"%s\"\n"
+msgid "config files"
 msgstr ""
 
-msgid "Verifying database"
+msgid "importing ATC reference data"
 msgstr ""
 
-msgid "Connect"
+msgid "Successfully imported ATC reference data."
 msgstr ""
 
-msgid "Yes, connect to this database."
+msgid "Importing ATC reference data failed."
 msgstr ""
 
-msgid "Disconnect"
+msgid "Select an ATC (Anatomical-Therapeutic-Chemical) code."
 msgstr ""
 
-msgid "No, do not connect to this database."
+msgid "Cannot edit this substance. It is in use."
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot find configuration file in any of:\n"
-"\n"
-" %s\n"
-"You may need to use the comand line option\n"
-"\n"
-"\t--conf-file=<FILE>"
+msgid "Adding new consumable substance"
 msgstr ""
 
-msgid "Checking configuration files"
+msgid "Editing consumable substance"
 msgstr ""
 
-msgid "GNUmed startup"
+msgid "Cannot delete this substance. It is in use."
 msgstr ""
 
-#, python-format
 msgid ""
-"The currently selected database language ('%s') does\n"
-"not match the current system language ('%s').\n"
 "\n"
-"Do you want to set the database language to '%s' ?\n"
+"These are the consumable substances registered with GNUmed.\n"
 msgstr ""
 
-msgid "Checking database language settings"
+msgid "Import"
 msgstr ""
 
-msgid "Set"
+msgid "Import consumable substances from a drug database."
 msgstr ""
 
-#, python-format
-msgid "Set your database language to [%s]."
+msgid "Cannot save consumable substance. Missing essential input."
 msgstr ""
 
-msgid "Don't set"
+#, python-format
+msgid "Cannot save consumable substance. %s"
 msgstr ""
 
-msgid "Do not set your database language now."
+msgid "The substance with optional strength."
 msgstr ""
 
-msgid "Remember to ignore language mismatch"
+msgid "Cannot remove this component from the drug. It is in use."
 msgstr ""
 
-#, python-format
 msgid ""
-"Checking this will make GNUmed remember your decision\n"
-"until the system language is changed.\n"
-"\n"
-"You can also reactivate this inquiry by removing the\n"
-"corresponding \"ignore\" option from the configuration file\n"
 "\n"
-" [%s]"
+"These are the components in the drug brands known to GNUmed.\n"
 msgstr ""
 
-msgid "generic activity"
+msgid "Showing drug brand components."
 msgstr ""
 
-msgid "Access denied"
+msgid "Adding new drug component"
 msgstr ""
 
-#, python-format
-msgid ""
-"Your account is not set up to access this part of GNUmed:\n"
-"\n"
-"  [%s]"
+msgid "Editing drug component"
 msgstr ""
 
-msgid "Save timeline as SVG image under..."
+msgid "Cannot edit drug component. It is in use."
 msgstr ""
 
-#, fuzzy
-msgid "timeline image"
-msgstr "Soubory Timeline"
+msgid "Cannot save drug component. Invalid or missing essential input."
+msgstr ""
 
-#, fuzzy
-msgid "timeline data"
-msgstr "Není stanovena časová osa"
+msgid "A drug component with optional strength."
+msgstr ""
 
-msgid "Cannot change notebook tabs. No active patient."
+msgid "Editing drug"
 msgstr ""
 
-msgid "add plugin ..."
+#, python-format
+msgid ""
+"Cannot edit the branded drug product\n"
+"\n"
+" \"%s\" (%s)\n"
+"\n"
+"because it is currently taken by patients.\n"
 msgstr ""
 
-msgid "Cannot activate Allergy Manager. No active patient."
+msgid "Adding new drug brand"
 msgstr ""
 
-msgid "<Age>"
+msgid "Editing drug brand"
 msgstr ""
 
-#, fuzzy
-msgid "no patient selected"
-msgstr "Začátek návštev pacienta"
+msgid "Manage consumable substances"
+msgstr ""
 
-#, python-format
-msgid "Gender: %s (%s) - %s\n"
+msgid "not in use"
 msgstr ""
 
 #, python-format
-msgid "Born: %s\n"
+msgid "ATC: %s\n"
 msgstr ""
 
-#, python-format
-msgid "Died: %s\n"
+msgid "Editing medication"
 msgstr ""
 
 #, python-format
-msgid "At age: %s\n"
+msgid ""
+"Cannot edit the medication\n"
+"\n"
+" \"%s\" (%s)\n"
+"\n"
+"because it is a vaccine. Please edit it\n"
+"from the vaccine management section !\n"
 msgstr ""
 
-msgid " (date of birth and age are estimated)\n"
+msgid "Deleting medication"
 msgstr ""
 
 #, python-format
-msgid "%(sex)s  %(dob)s (%(age)s today !)"
+msgid ""
+"Cannot delete the medication\n"
+"\n"
+" \"%s\" (%s)\n"
+"\n"
+"because it is a vaccine. Please delete it\n"
+"from the vaccine management section !\n"
 msgstr ""
 
 msgid ""
 "\n"
-"Today is the patient's birthday !\n"
-"\n"
+"These are the drug brands known to GNUmed.\n"
 msgstr ""
 
-#, python-format
-msgid "Birthday: %s ago\n"
+msgid "Showing branded drugs."
 msgstr ""
 
-#, python-format
-msgid "Birthday: in %s\n"
+msgid "Import substances and brands from a drug database."
 msgstr ""
 
-#, python-format
-msgid "Age: %s\n"
+msgid "Managing components of a drug"
 msgstr ""
 
 #, python-format
-msgid "last confirmed %s\n"
+msgid ""
+"Cannot manage the components of the branded drug product\n"
+"\n"
+" \"%s\" (%s)\n"
+"\n"
+"because it is currently taken by patients.\n"
 msgstr ""
 
-#, python-format
-msgid "Comment (%s): %%s"
+msgid "Pick the substances which are components of this drug."
 msgstr ""
 
-#, python-format
-msgid " - expires %s"
+msgid "Components of drug"
 msgstr ""
 
 #, python-format
 msgid ""
-"Due for %s (since %s%s):\n"
-"%s%s\n"
-"Patient: %s\n"
-"Reminder by: %s"
-msgstr ""
-
-msgid "Clinical reminder"
+"Adjust the components of \"%s\"\n"
+"\n"
+"The drug must contain at least one component. Any given\n"
+"substance can only be included once per drug."
 msgstr ""
 
-msgid "Adding automatic dynamic hint"
+msgid "Managing components of a drug ..."
 msgstr ""
 
-msgid "Editing automatic dynamic hint"
+msgid "Cannot edit drug brand. It is in use."
 msgstr ""
 
-msgid "Deleting automatic dynamic hint"
+msgid "Checking brand data"
 msgstr ""
 
 #, python-format
 msgid ""
-"Really delete this dynamic hint ?\n"
+"The brand information you entered:\n"
 "\n"
-" [%s]"
-msgstr ""
-
-msgid "deleting a dynamic hint"
+" [%s %s]\n"
+"\n"
+"already exists as a drug product."
 msgstr ""
 
 msgid ""
+"You have not selected any substances\n"
+"as drug components.\n"
 "\n"
-"Dynamic hints registered with GNUmed.\n"
+"Without components you will not be able to\n"
+"use this drug for documenting patient care.\n"
+"\n"
+"Are you sure you want to save\n"
+"it without components ?"
 msgstr ""
 
-msgid "Showing dynamic hints."
+msgid "Cannot save branded drug. Invalid or missing essential input."
 msgstr ""
 
-msgid "Hint"
+msgid ""
+"The brand name of the drug.\n"
+"\n"
+"Note: a brand name will need to be linked to\n"
+"one or more components before it can be used,\n"
+"except in the case of fake (generic) vaccines."
 msgstr ""
 
-msgid "Browse and install automatic dynamic hints data packs"
+msgid "No EMR data loaded."
 msgstr ""
 
-#, fuzzy, python-format
-msgid "By: %s"
-msgstr " Faktura: %s\n"
+msgid "EMR text dump"
+msgstr ""
 
-msgid "No entry in field <Source>."
+msgid "Currently there is no active patient. Cannot retrieve EMR text."
 msgstr ""
 
-msgid "No entry in field <Conditions>."
+msgid "SOAP Editor Actions:"
 msgstr ""
 
 #, fuzzy
-msgid "No entry in field <Description>."
-msgstr "Popis"
+msgid "&Sort lines"
+msgstr "Není stanovena časová osa"
 
-msgid "No entry in field <Title>."
+msgid "Sort lines by SOAP category"
 msgstr ""
 
-msgid "creating a new dynamic hint"
+msgid "e&Xpand keyword"
 msgstr ""
 
-#, fuzzy
-msgid "updating an existing dynamic hint"
-msgstr "Otevřít existující časovou osu"
+msgid "Expand keyword / macro"
+msgstr ""
 
 #, fuzzy
-msgid "Deleting suppressed dynamic hint"
-msgstr "Otevřít existující časovou osu"
+msgid "as &Subjective"
+msgstr "Vybrat ikonu"
 
-#, python-format
-msgid ""
-"Really delete the suppression of this dynamic hint ?\n"
-"\n"
-" [%s]"
+msgid "Set line to category \"Subjective\""
 msgstr ""
 
-msgid ""
-"\n"
-"Dynamic hints suppressed in this patient.\n"
-msgstr ""
+#, fuzzy
+msgid "as &Objective"
+msgstr "Vybrat ikonu"
 
-msgid "Showing suppressed dynamic hints."
+msgid "Set line to category \"Objective\""
 msgstr ""
 
-msgid "Rationale"
+msgid "as &Assessment"
 msgstr ""
 
-#, fuzzy
-msgid "Manage hints"
-msgstr "zdravotní problém: %s"
-
-#, fuzzy
-msgid "Manage automatic dynamic hints"
-msgstr "Otevřít existující časovou osu"
-
-msgid "Cannot delete family history item."
+msgid "Set line to category \"Assessment\""
 msgstr ""
 
-msgid "Family history of this patient."
+msgid "as &Plan"
 msgstr ""
 
-msgid "Showing family history."
+msgid "Set line to category \"Plan\""
 msgstr ""
 
-msgid "Fatal"
+msgid "as &Unspecified"
 msgstr ""
 
-msgid "Noted"
+msgid "Set line to category \"unspecified\""
 msgstr ""
 
-msgid "Died"
+msgid "as ad&Ministrative"
 msgstr ""
 
-msgid "Adding family history"
+msgid "Set line to category \"administrative\""
 msgstr ""
 
-msgid "Editing family history"
+msgid "→ &Clipboard"
 msgstr ""
 
-msgid "No EMR data loaded."
+#, fuzzy
+msgid "Copy line to clipboard"
+msgstr "Nelze kopírovat do schránky."
+
+msgid "→ +Clipboard+"
 msgstr ""
 
-msgid "EMR text dump"
+#, fuzzy
+msgid "Add line to clipboard"
+msgstr "Nelze kopírovat do schránky."
+
+#, fuzzy
+msgid "Copy content to clipboard"
+msgstr "Nelze kopírovat do schránky."
+
+#, fuzzy
+msgid "Add content to clipboard"
+msgstr "Nelze kopírovat do schránky."
+
+#, fuzzy
+msgid "Copy selection to clipboard"
+msgstr "Nelze kopírovat do schránky."
+
+#, fuzzy
+msgid "Add selection to clipboard"
+msgstr "Nelze kopírovat do schránky."
+
+msgid "&Line ..."
 msgstr ""
 
-msgid "Currently there is no active patient. Cannot retrieve EMR text."
+#, fuzzy
+msgid "&Text ..."
+msgstr "Text"
+
+msgid "&Region ..."
 msgstr ""
 
 #, fuzzy
@@ -15743,6 +16663,10 @@ msgstr ""
 msgid "Extracting HL7 from XML file"
 msgstr ""
 
+#, python-format
+msgid "Unwrapped HL7 into [%s] from [%s]."
+msgstr ""
+
 msgid "Select HL7 file for staging:"
 msgstr ""
 
@@ -15767,6 +16691,10 @@ msgid ""
 " %s"
 msgstr ""
 
+#, python-format
+msgid "Staged HL7 from [%s]."
+msgstr ""
+
 msgid "Importing HL7 data"
 msgstr ""
 
@@ -15811,10 +16739,6 @@ msgstr ""
 msgid "Identification"
 msgstr "Informace"
 
-#, fuzzy
-msgid "Show"
-msgstr "Zobrazit čas"
-
 msgid "Show formatted HL7"
 msgstr ""
 
@@ -15860,6 +16784,18 @@ msgstr ""
 msgid "Plot current selection"
 msgstr ""
 
+msgid ""
+"Select the measurements panel to show in the top pane for continuous "
+"monitoring."
+msgstr ""
+
+msgid "Lab panel"
+msgstr ""
+
+#, fuzzy
+msgid "Configuring continuous monitoring measurements panel"
+msgstr "Měření a Výsledky: %s"
+
 msgid "No default Gnuplot script template selected."
 msgstr ""
 
@@ -15882,13 +16818,27 @@ msgstr ""
 msgid "Cannot plot without a plot script."
 msgstr ""
 
-#, fuzzy
-msgid "Time"
-msgstr "Časová osa"
-
 msgid "Result"
 msgstr ""
 
+msgid "Perform on selected results:"
+msgstr ""
+
+msgid "Review and &sign"
+msgstr ""
+
+msgid "Export to &file"
+msgstr ""
+
+msgid "Export to &clipboard"
+msgstr ""
+
+msgid "Panels"
+msgstr ""
+
+msgid "List"
+msgstr ""
+
 msgid ""
 "lab_grid_date_format::%Y\n"
 "%b %d"
@@ -15963,18 +16913,6 @@ msgstr ""
 msgid "All: by &Day"
 msgstr ""
 
-msgid "Perform on selected results:"
-msgstr ""
-
-msgid "Review and &sign"
-msgstr ""
-
-msgid "Export to &file"
-msgstr ""
-
-msgid "Export to &clipboard"
-msgstr ""
-
 #, python-format
 msgid "%s results selected. Too many to list individually."
 msgstr ""
@@ -16149,6 +17087,10 @@ msgstr ""
 msgid "EMR Actions:"
 msgstr ""
 
+#, fuzzy
+msgid "Print EMR"
+msgstr "Tisk"
+
 msgid "Create health issue"
 msgstr ""
 
@@ -16297,11 +17239,41 @@ msgstr ""
 msgid "&New notes %s"
 msgstr ""
 
+msgid "Find text in EMR Journal"
+msgstr ""
+
+#, fuzzy
+msgid "Modified"
+msgstr "změněná položka"
+
+msgid "Clinical time"
+msgstr ""
+
+msgid "Who / When"
+msgstr ""
+
+#, python-format
 msgid ""
-"An error occurred while retrieving the EMR\n"
-"in journal form for the active patient.\n"
+"Chart entry: %s       [#%s in %s]\n"
+" Modified: %s by %s (%s rev %s)\n"
 "\n"
-"Please check the log file for details."
+"Health issue: %s%s\n"
+"Episode: %s%s\n"
+"Encounter: %s%s"
+msgstr ""
+
+#, python-format
+msgid ""
+"%s\n"
+"\n"
+"                        rev %s (%s) by %s in <%s>"
+msgstr ""
+
+#, python-format
+msgid ""
+"%s\n"
+"%s\n"
+"%s"
 msgstr ""
 
 msgid "Editing tag"
@@ -16428,18 +17400,15 @@ msgid ""
 "%s\n"
 msgstr ""
 
-msgid "This patient DID receive care."
+msgid "This patient DID receive care here."
 msgstr ""
 
-msgid "This person did NOT receive care."
+msgid "This person did NOT receive care here."
 msgstr ""
 
 msgid "Disabling person"
 msgstr ""
 
-msgid "Disabling patient"
-msgstr ""
-
 msgid "Type or select a last name (family name/surname)."
 msgstr ""
 
@@ -16682,6 +17651,9 @@ msgid ""
 "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
 msgstr ""
 
+msgid "Connecting to backend"
+msgstr ""
+
 #, python-format
 msgid ""
 "Unable to connect to database:\n"
@@ -16890,9 +17862,6 @@ msgstr ""
 msgid "Office"
 msgstr ""
 
-msgid "State"
-msgstr ""
-
 msgid "Zip"
 msgstr ""
 
@@ -16949,8 +17918,9 @@ msgstr ""
 msgid "EMR Timeline"
 msgstr ""
 
-msgid "Show &Timeline"
-msgstr ""
+#, fuzzy
+msgid "EMR &Timeline"
+msgstr "&Časová osa"
 
 msgid "Overview"
 msgstr ""
@@ -16976,10 +17946,10 @@ msgstr ""
 msgid "&SimpleNotes"
 msgstr ""
 
-msgid "EMR tree"
+msgid "EMR Tree"
 msgstr ""
 
-msgid "EMR &Tree (topical)"
+msgid "EMR &Tree"
 msgstr ""
 
 #, fuzzy
@@ -16990,6 +17960,12 @@ msgstr "Tisk"
 msgid "&Print Manager"
 msgstr "Tisk"
 
+msgid "EMR Journal"
+msgstr ""
+
+msgid "EMR &Journal (list)"
+msgstr ""
+
 msgid "Appointments"
 msgstr ""
 
@@ -17002,6 +17978,12 @@ msgstr ""
 msgid "Show &lab journal"
 msgstr ""
 
+msgid "PACS"
+msgstr ""
+
+msgid "&PACS"
+msgstr ""
+
 msgid "Cardiac Devices"
 msgstr ""
 
@@ -17074,10 +18056,7 @@ msgstr ""
 msgid "User &manual (local)"
 msgstr ""
 
-msgid "EMR journal"
-msgstr ""
-
-msgid "EMR &Journal (chronological)"
+msgid "EMR &Journal (text)"
 msgstr ""
 
 msgid "Demographics"
@@ -17238,6 +18217,10 @@ msgstr ""
 msgid "Show &ExamplePlugin"
 msgstr ""
 
+#, fuzzy
+msgid "Find text"
+msgstr "Najít Poslední Událost"
+
 msgid "gm_ctl_client: starting slave GNUmed client"
 msgstr ""
 
@@ -17265,16 +18248,65 @@ msgid "Abort and do NOT connect to GNUmed."
 msgstr ""
 
 #, fuzzy
-#~ msgid "to file(s)"
-#~ msgstr "SVG soubory"
+#~ msgid ""
+#~ "Health issue: %s%s%s (%s versions)\n"
+#~ "\n"
+#~ msgstr "zdravotní problém: %s"
 
 #, fuzzy
-#~ msgid "Check here for printing."
-#~ msgstr "Nastavení stránky pro tisk"
+#~ msgid ""
+#~ "Episode: %s%s%s (%s versions)\n"
+#~ "\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Případ %s%s%s%s:"
+
+#, fuzzy
+#~ msgid ""
+#~ "Encounter: %s%s%s (%s versions)\n"
+#~ "\n"
+#~ msgstr "Návštěvy: %s (%s - %s):"
+
+#, fuzzy
+#~ msgid "&Unknown"
+#~ msgstr "Neznámý formát."
+
+#, fuzzy
+#~ msgid "Last confirmed: %s%s"
+#~ msgstr " (poslední potvrzená %s)"
+
+#~ msgid ""
+#~ "Unable to connect to database:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Are you sure you have got a local database installed ?\n"
+#~ "\n"
+#~ "Please retry with proper credentials or cancel.\n"
+#~ "\n"
+#~ "You may also need to check the PostgreSQL client\n"
+#~ "authentication configuration in pg_hba.conf. For\n"
+#~ "details see:\n"
+#~ "\n"
+#~ "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
+#~ msgstr ""
+#~ "Nelze se spojit s databází:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Jste si jisti, že máte nainstalovanou lokální databázi ?\n"
+#~ "\n"
+#~ "Zkuste to prosím znovu s řádným pověřením nebo akci zrušte.\n"
+#~ "\n"
+#~ "Můžete třeba také zkontrolovat konfiguraci ověřování klienta\n"
+#~ "PostgreSQL v pg_hba.conf. Pro\n"
+#~ "detaily viz:\n"
+#~ "\n"
+#~ "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
 
 #, fuzzy
-#~ msgid "file: %s (%s/)"
-#~ msgstr " Jméno souboru: %s\n"
+#~ msgid "to file(s)"
+#~ msgstr "SVG soubory"
 
 #~ msgid ""
 #~ "There was a problem printing.\n"
diff --git a/client/po/da-gnumed.mo b/client/po/da-gnumed.mo
index 65937c9..c547e22 100644
Binary files a/client/po/da-gnumed.mo and b/client/po/da-gnumed.mo differ
diff --git a/client/po/da.po b/client/po/da.po
index f158b59..a4512dc 100644
--- a/client/po/da.po
+++ b/client/po/da.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: GNUmed\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-12-26 20:28+0100\n"
+"POT-Creation-Date: 2016-03-17 16:27+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <LL at li.org>\n"
@@ -1406,10 +1406,22 @@ msgid ""
 msgstr ""
 
 #, python-format
+msgid "Revision #%s"
+msgstr ""
+
+#, python-format
 msgid "[%s:%s]: row not updated (nothing returned), row in use ?"
 msgstr ""
 
 #, python-format
+msgid "<%s(.bat)> not found"
+msgstr ""
+
+#, python-format
+msgid "problem with <%s>"
+msgstr ""
+
+#, python-format
 msgid "[%s] is not a readable file"
 msgstr ""
 
@@ -1437,21 +1449,7 @@ msgstr ""
 msgid "%s Bytes"
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot connect to configuration database with:\n"
-"\n"
-"[%s]"
-msgstr ""
-
-#, python-format
-msgid ""
-"Cannot connect to database with:\n"
-"\n"
-"[%s]"
-msgstr ""
-
-msgid "No product information available."
+msgid "<type>"
 msgstr ""
 
 #, python-format
@@ -1787,74 +1785,6 @@ msgstr ""
 msgid "  risk: %s"
 msgstr ""
 
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Are you sure you have got a local database installed ?\n"
-"\n"
-"Please retry with proper credentials or cancel.\n"
-"\n"
-"You may also need to check the PostgreSQL client\n"
-"authentication configuration in pg_hba.conf. For\n"
-"details see:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-msgstr ""
-
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Please retry with proper credentials or cancel.\n"
-"\n"
-"You may also need to check the PostgreSQL client\n"
-"authentication configuration in pg_hba.conf. For\n"
-"details see:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-msgstr ""
-
-msgid "Connecting to backend"
-msgstr ""
-
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Please retry another backend / user / password combination !\n"
-msgstr ""
-
-msgid "programmer forgot to specify error message"
-msgstr ""
-
-msgid ""
-"\n"
-"\n"
-"Please consult the error log for all the gory details !"
-msgstr ""
-
-msgid "generic error message"
-msgstr ""
-
-msgid "programmer forgot to specify info message"
-msgstr ""
-
-msgid "generic info message"
-msgstr ""
-
-msgid "programmer forgot to specify warning"
-msgstr ""
-
-msgid "generic warning message"
-msgstr "generisk advarselsbesked"
-
 msgid "no hook specified, please report bug"
 msgstr ""
 
@@ -2171,6 +2101,31 @@ msgstr ""
 msgid "Include:"
 msgstr ""
 
+msgid "&Search"
+msgstr ""
+
+msgid "Suggest"
+msgstr ""
+
+msgid "Set"
+msgstr ""
+
+msgid "dialog_1"
+msgstr ""
+
+msgid "Search patients in Orthanc DICOM store."
+msgstr ""
+
+msgid "Suggest a patient ID based on the active patient."
+msgstr ""
+
+msgid "Search term:"
+msgstr ""
+
+#, fuzzy
+msgid "New patient ID:"
+msgstr "Internt patient ID"
+
 msgid "Your review"
 msgstr ""
 
@@ -2472,6 +2427,90 @@ msgstr ""
 msgid "Amount"
 msgstr ""
 
+msgid "&Connect"
+msgstr ""
+
+msgid "&Browse"
+msgstr ""
+
+msgid "<not connected>"
+msgstr ""
+
+msgid "Browse all"
+msgstr ""
+
+msgid "Export all"
+msgstr ""
+
+msgid "Browse"
+msgstr ""
+
+msgid "Export"
+msgstr ""
+
+msgid "Upload"
+msgstr ""
+
+msgid "Enter the PACS host address."
+msgstr ""
+
+msgid "Enter the PACS port."
+msgstr ""
+
+msgid "Enter the PACS user."
+msgstr ""
+
+msgid "Enter the PACS password. It will not be shown."
+msgstr ""
+
+msgid "Connect to PACS."
+msgstr ""
+
+msgid "Browse PACS at top level."
+msgstr ""
+
+msgid "Modify some of Orthanc content (such as patient IDs)."
+msgstr ""
+
+#, fuzzy
+msgid "Browse overview of studies for this patient."
+msgstr "Ekstern patient ID"
+
+msgid "Copy all studies into export area."
+msgstr ""
+
+msgid "Browse topmost selected study."
+msgstr ""
+
+msgid "Copy selected studies into export area."
+msgstr ""
+
+msgid "Save selected studies to disk."
+msgstr ""
+
+msgid ""
+"Upload DICOM files from a directory, recursively, into the Orthanc PACS\n"
+"\n"
+"The currently active patient does not matter. Orthanc will associate "
+"uploaded files with the patient found within the DICOM metadata. It will "
+"create new patients as needed."
+msgstr ""
+
+msgid "Host:"
+msgstr ""
+
+msgid "Port:"
+msgstr ""
+
+msgid "User:"
+msgstr ""
+
+msgid "Password"
+msgstr ""
+
+msgid "Selected studies:"
+msgstr ""
+
 msgid "Fake brand"
 msgstr ""
 
@@ -2789,9 +2828,6 @@ msgstr ""
 msgid "&Load"
 msgstr ""
 
-msgid "Export"
-msgstr ""
-
 msgid "A long, descriptive name for this form template."
 msgstr ""
 
@@ -2879,15 +2915,12 @@ msgstr ""
 msgid "Document Properties"
 msgstr ""
 
-msgid "Show part"
+msgid "Show"
 msgstr ""
 
 msgid "Remove part"
 msgstr ""
 
-msgid "Parts"
-msgstr ""
-
 msgid "Discard"
 msgstr ""
 
@@ -2915,6 +2948,9 @@ msgstr ""
 msgid "Required: The primary episode this document is to be listed under."
 msgstr ""
 
+msgid "Optional: The organization (unit) this document originated from."
+msgstr ""
+
 msgid ""
 "Optional: A short comment identifying the document. Good comments give an "
 "idea of the content and source of the document."
@@ -2939,6 +2975,9 @@ msgid ""
 "normal and abnormal resuslts can be relevant."
 msgstr ""
 
+msgid "Optional: A free-text document description."
+msgstr ""
+
 msgid "This field lists the parts belonging to the current document."
 msgstr ""
 
@@ -2950,9 +2989,6 @@ msgid ""
 "deletion from disk."
 msgstr ""
 
-msgid "Optional: A free-text document description."
-msgstr ""
-
 msgid "Save finished document."
 msgstr ""
 
@@ -2968,6 +3004,10 @@ msgstr ""
 msgid "Associate to episode:"
 msgstr ""
 
+#, fuzzy
+msgid "Document source:"
+msgstr "Dokumenter:"
+
 msgid "Comment / Identification:"
 msgstr ""
 
@@ -3148,7 +3188,7 @@ msgstr ""
 msgid "Messages:"
 msgstr ""
 
-msgid "Only:"
+msgid "Limit to:"
 msgstr ""
 
 msgid "&Myself … or:"
@@ -3258,10 +3298,10 @@ msgstr ""
 msgid "Purpose"
 msgstr ""
 
-msgid "Details"
+msgid "Please supply your email address here !"
 msgstr ""
 
-msgid "<Please supply your email address here !>"
+msgid "Details"
 msgstr ""
 
 msgid "Keep running"
@@ -3285,9 +3325,11 @@ msgid ""
 msgstr ""
 
 msgid ""
-"Please enter your email address so we can provide feedback directly to you. "
-"Otherwise, feedback will be given on the GNUmed mailing list (http://lists."
-"gnu.org/mailman/listinfo/gnumed-bugs)."
+"Please enter your email address so we can provide help to you directly.\n"
+"\n"
+"Otherwise, feedback can be given on the GNUmed mailing list (http://lists."
+"gnu.org/mailman/listinfo/gnumed-bugs) ONLY to which you will then have to "
+"subscribe."
 msgstr ""
 
 msgid "Find help on http://wiki.gnumed.de, too."
@@ -3402,9 +3444,6 @@ msgstr ""
 msgid "Account"
 msgstr ""
 
-msgid "Password"
-msgstr ""
-
 msgid "Password, again"
 msgstr ""
 
@@ -3890,7 +3929,7 @@ msgstr ""
 msgid "Acquire images from image source (scanner, ...)."
 msgstr ""
 
-msgid "Acquire images or text from the clipboard."
+msgid "Acquire file or text from the clipboard."
 msgstr ""
 
 msgid "Remove the selected documents."
@@ -4036,7 +4075,7 @@ msgid ""
 "- the result list will be artificially limited to the first 1000 rows\n"
 "- you can include a column named \"pk_patient\" to make the result rows "
 "activate the corresponding patient on double-clicking\n"
-"- by inserting $<ID_active_patient>$ you can access the patient ID of the "
+"- by inserting $<ID_ACTIVE_PATIENT>$ you can access the patient ID of the "
 "patient active at the time of running the query"
 msgstr ""
 
@@ -4196,9 +4235,6 @@ msgstr ""
 msgid "Link &new"
 msgstr ""
 
-msgid "Browse"
-msgstr ""
-
 msgid ""
 "Search for matches among existing addresses and [Link] a selection, or [Link "
 "(a) new] address."
@@ -4247,25 +4283,16 @@ msgid ""
 "left."
 msgstr ""
 
-msgid "label_1"
-msgstr ""
-
-msgid "→"
-msgstr ""
-
-msgid "←"
-msgstr ""
-
-msgid "Extra"
+msgid "Subjective"
 msgstr ""
 
-msgid "Move selected items from left to right."
+msgid "Objective"
 msgstr ""
 
-msgid "Move selected items from right to left."
+msgid "Assessment"
 msgstr ""
 
-msgid "Cancel picking items."
+msgid "Plan"
 msgstr ""
 
 msgid "Episode synopsis"
@@ -4301,19 +4328,28 @@ msgid ""
 "narrative belongs to."
 msgstr ""
 
-msgid "Subjective"
+msgid "Codes:"
 msgstr ""
 
-msgid "Codes:"
+msgid "label_1"
 msgstr ""
 
-msgid "Objective"
+msgid "→"
 msgstr ""
 
-msgid "Assessment"
+msgid "←"
 msgstr ""
 
-msgid "Plan"
+msgid "Extra"
+msgstr ""
+
+msgid "Move selected items from left to right."
+msgstr ""
+
+msgid "Move selected items from right to left."
+msgstr ""
+
+msgid "Cancel picking items."
 msgstr ""
 
 msgid "1"
@@ -4482,66 +4518,143 @@ msgstr ""
 msgid "Age range"
 msgstr ""
 
-msgid "Closed episodes"
+msgid "&Nicotine"
 msgstr ""
 
-msgid "Non-relevant issues"
+msgid "&Alcohol"
 msgstr ""
 
-msgid "Active problems"
+msgid "&Other:"
 msgstr ""
 
-msgid "Notes only"
+msgid "&Non-harmful use"
 msgstr ""
 
-msgid "Everything"
+msgid "&Harmful use"
 msgstr ""
 
-msgid ""
-"In this area GNUmed will place the notes of the\n"
-"previous encounter as well as notes by other\n"
-"staff for the current encounter.\n"
-"\n"
-"Note that this may change depending on which\n"
-"active problem is selected in the editor below."
+msgid "Presently &addicted"
 msgstr ""
 
-msgid "Most recent info on above problem"
+msgid "Previously &addicted"
 msgstr ""
 
-msgid "Show closed episodes as pseudo-problems ?"
+msgid "&Reconfirm as of today"
 msgstr ""
 
-msgid "Show issues marked clinically NOT relevant."
+msgid "Select for documenting smoking status."
 msgstr ""
 
-msgid ""
-"This shows the list of active problems, They include open episodes as well "
-"as active health issues."
+msgid "Select for documenting alcohol use status."
 msgstr ""
 
-msgid "Show notes only (regarding the above problem)"
+msgid ""
+"Select for documenting use of substances other than nicotine or alcohol."
 msgstr ""
 
-msgid "Show full information (regarding above problem)"
+msgid "Select the abused substance."
 msgstr ""
 
-msgid "Schock index"
+msgid ""
+"Select if the substance use is not considered harmful (say, no use or non-"
+"harmful use)."
 msgstr ""
 
-msgid "<SI>"
+msgid "Select if substance is use considered harmful."
 msgstr ""
 
-msgid "rhythmic"
+msgid "Select if the patient is presently addicted to this substance."
 msgstr ""
 
-msgid "arrhythmic"
+msgid "Select if the patient was previously addicted to this substance."
 msgstr ""
 
-msgid "°C"
+msgid ""
+"A comment on this substance use:\n"
+"- type of product used\n"
+"- frequency\n"
+"- amount\n"
+"- when started\n"
+"- attempts to quit\n"
+"..."
 msgstr ""
 
-msgid "°F"
+msgid ""
+"When did the patient quit?\n"
+"\n"
+"You can also set a target quit date here."
+msgstr ""
+
+msgid "Check here to confirm for today."
+msgstr ""
+
+msgid "Quit date"
+msgstr ""
+
+#, fuzzy
+msgid "Last confirmed"
+msgstr " (sidst bekræftet %s)"
+
+msgid "Closed episodes"
+msgstr ""
+
+msgid "Non-relevant issues"
+msgstr ""
+
+msgid "Active problems"
+msgstr ""
+
+msgid "Notes only"
+msgstr ""
+
+msgid "Everything"
+msgstr ""
+
+msgid ""
+"In this area GNUmed will place the notes of the\n"
+"previous encounter as well as notes by other\n"
+"staff for the current encounter.\n"
+"\n"
+"Note that this may change depending on which\n"
+"active problem is selected in the editor below."
+msgstr ""
+
+msgid "Most recent info on above problem"
+msgstr ""
+
+msgid "Show closed episodes as pseudo-problems ?"
+msgstr ""
+
+msgid "Show issues marked clinically NOT relevant."
+msgstr ""
+
+msgid ""
+"This shows the list of active problems, They include open episodes as well "
+"as active health issues."
+msgstr ""
+
+msgid "Show notes only (regarding the above problem)"
+msgstr ""
+
+msgid "Show full information (regarding above problem)"
+msgstr ""
+
+msgid "Schock index"
+msgstr ""
+
+msgid "<SI>"
+msgstr ""
+
+msgid "rhythmic"
+msgstr ""
+
+msgid "arrhythmic"
+msgstr ""
+
+msgid "°C"
+msgstr ""
+
+msgid "°F"
 msgstr ""
 
 msgid "<last height>"
@@ -4818,20 +4931,18 @@ msgstr ""
 msgid "Show:"
 msgstr ""
 
-msgid "Brand by component"
+msgid "Kidneys"
 msgstr ""
 
 msgid "Brands"
 msgstr ""
 
-msgid "Kidneys"
-msgstr ""
-
-msgid "Unbranded substance"
+msgid "Substances"
 msgstr ""
 
-msgid "Manage"
-msgstr ""
+#, fuzzy
+msgid "&Unknown or date:"
+msgstr "Ukendt reaktion"
 
 msgid "Approved of"
 msgstr ""
@@ -4846,22 +4957,18 @@ msgid "... Reason"
 msgstr ""
 
 msgid ""
-"A component of a drug brand the patient is taking.\n"
+"A drug the patient is taking.\n"
 "\n"
-"Lookup, and select, a single- (or multi-) component drug brand, by active "
-"ingredient name. All components of multi-component drugs will be displayed "
-"and automatically added to the patient's list."
-msgstr ""
-
-msgid ""
-"Manage drug brands.\n"
+"Lookup and select an intake by either of\n"
+"- a generic substance name\n"
+"- a drug brand name\n"
+"- an active ingredient of a drug\n"
 "\n"
-"Note that this will not select a component for you. What it does is to let "
-"you manage (add/edit/delete) the drug products/brands known to GNUmed from "
-"which you can select a component."
+"Note that all components of multi-component drugs will be displayed and "
+"automatically added to the patient's list."
 msgstr ""
 
-msgid "The active ingredients of this brand."
+msgid "Details on the selected drug."
 msgstr ""
 
 msgid "Show cardiac information relevant to substance selection."
@@ -4871,8 +4978,11 @@ msgid "Show renal insufficiency information related to substance selection."
 msgstr ""
 
 msgid ""
-"The non-branded medication or non-medication substance, with optional "
-"strength."
+"Manage drug brands.\n"
+"\n"
+"Note that this will not select a component for you. What it does is to let "
+"you manage (add/edit/delete) the drug products/brands known to GNUmed from "
+"which you can select a component."
 msgstr ""
 
 msgid ""
@@ -4885,11 +4995,19 @@ msgstr ""
 msgid "The preparation or form of the substance."
 msgstr ""
 
+msgid "Check here if the start date simply isn't known."
+msgstr ""
+
 msgid ""
 "When was this substance started to be consumed or - if not known - the "
 "earliest it is known to have been be consumed."
 msgstr ""
 
+msgid ""
+"A coment on the certainty of the start date, such as \"+/- 3 weeks\", "
+"\"spring of 2002\", \"shortly after Easter 1996\", ...."
+msgstr ""
+
 msgid "Whether this substance is taken by advice."
 msgstr ""
 
@@ -4923,6 +5041,15 @@ msgstr ""
 msgid "Reason for discontinuation."
 msgstr ""
 
+msgid "Drug"
+msgstr ""
+
+msgid "Research:"
+msgstr ""
+
+msgid "Certainty:"
+msgstr ""
+
 msgid "Schedule"
 msgstr ""
 
@@ -5074,6 +5201,30 @@ msgstr ""
 msgid "Channel"
 msgstr ""
 
+msgid "&Last modification time"
+msgstr ""
+
+msgid "&Entry time"
+msgstr ""
+
+msgid "Show journal ordered by encounter."
+msgstr ""
+
+msgid "Show journal ordered by time of last modification."
+msgstr ""
+
+msgid "Show journal ordered by actual clinical time of each entry."
+msgstr ""
+
+msgid "Edit the selected chart entry."
+msgstr ""
+
+msgid "Delete selected chart entry."
+msgstr ""
+
+msgid "Order by:"
+msgstr ""
+
 msgid "Chec&k"
 msgstr ""
 
@@ -5617,10 +5768,13 @@ msgstr ""
 msgid "Documents:"
 msgstr "Dokumenter:"
 
+msgid "&L"
+msgstr ""
+
 msgid "&N"
 msgstr ""
 
-msgid "&L"
+msgid "List all encounters."
 msgstr ""
 
 msgid "The encounter."
@@ -5629,9 +5783,6 @@ msgstr ""
 msgid "Start a new encounter for the active patient."
 msgstr ""
 
-msgid "List all encounters."
-msgstr ""
-
 msgid "Clinically relevant"
 msgstr ""
 
@@ -5878,10 +6029,12 @@ msgstr ""
 msgid "Manage dynamic hints."
 msgstr ""
 
+#, fuzzy
 msgid ""
 "Rationale for\n"
-"suppression"
-msgstr ""
+"suppression\n"
+"for this patient"
+msgstr "Ekstern patient ID"
 
 msgid "Save &under"
 msgstr ""
@@ -5936,6 +6089,12 @@ msgstr ""
 msgid "Encounter:"
 msgstr ""
 
+msgid "Manage"
+msgstr ""
+
+msgid "&Panel:"
+msgstr ""
+
 msgid "&Pick"
 msgstr ""
 
@@ -5978,6 +6137,9 @@ msgid ""
 "To disable that popup leave the message empty."
 msgstr ""
 
+msgid "Show search dialog."
+msgstr ""
+
 msgid "THIS IS NOT A VERIFIED MEASUREMENT. DO NOT USE FOR ACTUAL CARE."
 msgstr ""
 
@@ -6258,6 +6420,47 @@ msgstr ""
 msgid "ERROR: unknown allergy state [%s]"
 msgstr ""
 
+msgid "definite"
+msgstr ""
+
+msgid "indefinite"
+msgstr ""
+
+#, fuzzy
+msgid "Reaction:"
+msgstr "Vaccinationer:"
+
+msgid "Noted:"
+msgstr ""
+
+msgid "Allergene:"
+msgstr ""
+
+#, fuzzy
+msgid "Substance:"
+msgstr "%s: tilfælde (%s)"
+
+msgid "Code:"
+msgstr ""
+
+msgid "ATC:"
+msgstr ""
+
+msgid "Specific to:"
+msgstr ""
+
+msgid "this substance only"
+msgstr ""
+
+msgid "drug class"
+msgstr ""
+
+msgid "unknown"
+msgstr ""
+
+msgid "Generics:"
+msgstr ""
+
 msgid "Medication history"
 msgstr ""
 
@@ -6267,9 +6470,15 @@ msgstr ""
 msgid "prescription data"
 msgstr ""
 
+msgid "Consumable substance"
+msgstr ""
+
 msgid "in use"
 msgstr ""
 
+msgid "w/"
+msgstr ""
+
 msgid "long-term"
 msgstr ""
 
@@ -6289,6 +6498,35 @@ msgid "?ongoing"
 msgstr ""
 
 #, python-format
+msgid ""
+"Substance abuse entry                                              [#%s]\n"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "Substance: %s [#%s]%s\n"
+msgstr "%s: tilfælde (%s)"
+
+#, python-format
+msgid "Use type: %s\n"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "Last checked: %s\n"
+msgstr "sidste tjek:"
+
+#, python-format
+msgid " Discontinued %s\n"
+msgstr ""
+
+#, fuzzy, python-format
+msgid " Notes: %s\n"
+msgstr " Bemærket ved alderen: %s"
+
+#, python-format
+msgid "Revision: #%(row_ver)s, %(mod_when)s by %(mod_by)s."
+msgstr ""
+
+#, python-format
 msgid "Substance intake entry (%s, %s)   [#%s]                     \n"
 msgstr ""
 
@@ -6304,9 +6542,6 @@ msgstr ""
 msgid "unapproved"
 msgstr ""
 
-msgid "definite"
-msgstr ""
-
 msgid "suspected"
 msgstr ""
 
@@ -6353,10 +6588,6 @@ msgid " (short-term)"
 msgstr ""
 
 #, python-format
-msgid " Discontinued %s\n"
-msgstr ""
-
-#, python-format
 msgid " Reason: %s\n"
 msgstr ""
 
@@ -6376,16 +6607,59 @@ msgstr ""
 msgid " Advice: %s\n"
 msgstr ""
 
+msgid "medication, not abuse"
+msgstr ""
+
+msgid "no or non-harmful use"
+msgstr ""
+
+msgid "presently harmful use"
+msgstr ""
+
+msgid "presently addicted"
+msgstr ""
+
+msgid "previously addicted"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "%s%s: %s ago%s"
+msgstr "%s: tilfælde (%s)"
+
+#, fuzzy, python-format
+msgid "%s%s: %s ago (%s)"
+msgstr "%s: tilfælde (%s)"
+
+#, fuzzy, python-format
+msgid "%s%s%s (%s ago)"
+msgstr "%s: tilfælde (%s)"
+
+#, fuzzy, python-format
+msgid "%s%s%s (%s ago, %s)"
+msgstr "%s: tilfælde (%s)"
+
+#, python-format
+msgid "%s ago"
+msgstr ""
+
 #, python-format
-msgid "Revision: #%(row_ver)s, %(mod_when)s by %(mod_by)s."
+msgid "in %s"
+msgstr ""
+
+#, fuzzy, python-format
+msgid ", until %s (%s)"
+msgstr "Vaccinationer"
+
+#, python-format
+msgid " (planned for %s%s)"
 msgstr ""
 
 #, python-format
-msgid "%s: %s ago"
+msgid ", planned for %s%s"
 msgstr ""
 
 #, fuzzy, python-format
-msgid "%s: %s ago (%s)"
+msgid "%s ago (for %s: %s %s %s)"
 msgstr "%s: tilfælde (%s)"
 
 msgid "Additional notes"
@@ -6400,10 +6674,32 @@ msgstr ""
 msgid "ordered by brand"
 msgstr ""
 
-msgid "Drug"
+msgid "Regimen / Advice"
 msgstr ""
 
-msgid "Regimen / Advice"
+#, fuzzy, python-format
+msgid "Component of %s (%s)"
+msgstr "%s: tilfælde (%s)"
+
+#, python-format
+msgid "ATC (substance): %s"
+msgstr ""
+
+#, python-format
+msgid "ATC (brand): %s"
+msgstr ""
+
+msgid "this is a component of a fake brand"
+msgstr ""
+
+#, fuzzy
+msgid "Components:"
+msgstr "Dokumenter:"
+
+msgid "this is a fake brand"
+msgstr ""
+
+msgid "this is a vaccine"
 msgstr ""
 
 msgid "units"
@@ -6438,48 +6734,14 @@ msgstr ""
 msgid "Expires: %s\n"
 msgstr ""
 
-msgid "Active clinical hint"
-msgstr ""
-
-msgid "Inactive clinical hint"
-msgstr ""
-
-#, python-format
-msgid "Source: %s\n"
-msgstr ""
-
-#, python-format
-msgid "Language: %s\n"
-msgstr ""
-
-msgid "Suppressed active dynamic hint"
-msgstr ""
-
-msgid "Suppressed inactive dynamic hint"
-msgstr ""
-
-#, python-format
-msgid "Suppressed by: %s\n"
-msgstr ""
-
-#, python-format
-msgid "Suppressed at: %s\n"
+msgid "HL7 Source"
 msgstr ""
 
-#, python-format
-msgid "Hint #: %s\n"
+msgid "HL7 data size"
 msgstr ""
 
-#, fuzzy, python-format
-msgid "Patient #: %s\n"
-msgstr "Dokumenter: %s"
-
-#, fuzzy, python-format
-msgid "MD5 (currently): %s\n"
-msgstr "Dokumenter: %s"
-
 #, python-format
-msgid "MD5 (at suppression): %s\n"
+msgid "%s bytes"
 msgstr ""
 
 msgid "HL7 Message"
@@ -6535,13 +6797,6 @@ msgstr ""
 msgid "doc: %s"
 msgstr "Dokumenter: %s"
 
-msgid "no patient photograph available"
-msgstr ""
-
-#, python-format
-msgid "patient photograph from %s"
-msgstr ""
-
 msgid "Patient data for"
 msgstr ""
 
@@ -6551,6 +6806,9 @@ msgstr ""
 msgid "Patient data export"
 msgstr ""
 
+msgid "no patient photograph available"
+msgstr ""
+
 msgid "Documents"
 msgstr ""
 
@@ -6561,6 +6819,10 @@ msgstr ""
 msgid "browse documents area"
 msgstr "Dokumenter:"
 
+#, python-format
+msgid "patient photograph from %s"
+msgstr ""
+
 msgid "Browse patient data"
 msgstr ""
 
@@ -6595,24 +6857,24 @@ msgstr ""
 #, python-format
 msgid ""
 "%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s %(suburb)s, "
-"%(code_state)s, %(code_country)s"
+"%(code_region)s, %(code_country)s"
 msgstr ""
 
 #, python-format
 msgid ""
 "%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s %(suburb)s, "
-"%(code_state)s, %(code_country)s"
+"%(code_region)s, %(code_country)s"
 msgstr ""
 
 #, python-format
 msgid ""
-"%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_state)s, "
-"%(code_country)s"
+"%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, "
+"%(code_region)s, %(code_country)s"
 msgstr ""
 
 #, python-format
 msgid ""
-"%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_state)s, "
+"%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_region)s, "
 "%(code_country)s"
 msgstr ""
 
@@ -6622,7 +6884,7 @@ msgid ""
 " Street: %(street)s%(notes_street)s\n"
 " Number/Unit: %(number)s%(subunit)s%(notes_subunit)s\n"
 " Location: %(zip)s %(urb)s%(suburb)s\n"
-" Region: %(l10n_state)s, %(code_state)s\n"
+" Region: %(l10n_region)s, %(code_region)s\n"
 " Country: %(l10n_country)s, %(code_country)s"
 msgstr ""
 
@@ -6632,7 +6894,7 @@ msgid ""
 " Street: %(street)s%(notes_street)s\n"
 " Number/Unit: %(number)s%(subunit)s%(notes_subunit)s\n"
 " Location: %(zip)s %(urb)s%(suburb)s\n"
-" Region: %(l10n_state)s, %(code_state)s\n"
+" Region: %(l10n_region)s, %(code_region)s\n"
 " Country: %(l10n_country)s, %(code_country)s"
 msgstr ""
 
@@ -6701,6 +6963,90 @@ msgstr "Korrekt resultat"
 msgid "missing, reported later"
 msgstr ""
 
+msgid "Health issue"
+msgstr ""
+
+#, fuzzy
+msgid "External care"
+msgstr "Ekstern patient ID"
+
+msgid "Vaccination"
+msgstr ""
+
+msgid "Clinical narrative"
+msgstr ""
+
+#, fuzzy
+msgid "Test result"
+msgstr "Korrekt resultat"
+
+msgid "Substance intake"
+msgstr ""
+
+msgid "Hospital stay"
+msgstr ""
+
+msgid "Performed procedure"
+msgstr ""
+
+#, fuzzy
+msgid "Family history"
+msgstr "Familiehistorik"
+
+#, fuzzy
+msgid "Document"
+msgstr "Dokumenter:"
+
+#, python-format
+msgid "unmapped entry type from table [%s]"
+msgstr ""
+
+#, python-format
+msgid "cannot instantiate clinical root item <%s(%s)>"
+msgstr ""
+
+msgid "True"
+msgstr ""
+
+msgid "False"
+msgstr ""
+
+#, fuzzy
+msgid "unknown smoking status"
+msgstr "Status"
+
+msgid "non-smoker"
+msgstr ""
+
+msgid "current smoker"
+msgstr ""
+
+msgid "ex-smoker"
+msgstr ""
+
+msgid "tobacco addiction"
+msgstr ""
+
+msgid "no or non-harmful alcohol use"
+msgstr ""
+
+msgid "harmful alcohol use"
+msgstr ""
+
+#, fuzzy
+msgid "unknown alcohol use"
+msgstr "Ukendt reaktion"
+
+msgid "no or non-harmful drug use"
+msgstr ""
+
+msgid "harmful drug use"
+msgstr ""
+
+#, fuzzy
+msgid "unknown drug use"
+msgstr "Ukendt reaktion"
+
 msgid "original entry"
 msgstr ""
 
@@ -6792,14 +7138,6 @@ msgstr ""
 msgid "Vaccinations"
 msgstr "Vaccinationer"
 
-#, python-format
-msgid "%s ago"
-msgstr ""
-
-#, fuzzy
-msgid "External care"
-msgstr "Ekstern patient ID"
-
 msgid "Allergies/Intolerances"
 msgstr ""
 
@@ -6874,76 +7212,126 @@ msgid ""
 "The account was deactivated instead."
 msgstr ""
 
-#, python-format
-msgid "Device(%s):"
-msgstr "Enhed(%s):"
+msgid "SOAP_char_S=S"
+msgstr ""
 
-msgid "Battery:"
-msgstr "Batteri:"
+msgid "SOAP_char_O=O"
+msgstr ""
 
-msgid "Implanted:"
+msgid "SOAP_char_A=A"
 msgstr ""
 
-msgid "last check:"
-msgstr "sidste tjek:"
+msgid "SOAP_char_P=P"
+msgstr ""
 
-msgid "Sensing:"
+msgid "SOAP_char_U=U"
 msgstr ""
 
-msgid "Threshold"
+msgid "SOAP_string_Subjective=Subjective"
 msgstr ""
 
-msgid "Impedance:"
+msgid "SOAP_string_Objective=Objective"
+msgstr ""
+
+msgid "SOAP_string_Assessment=Assessment"
+msgstr ""
+
+msgid "SOAP_string_Plan=Plan"
+msgstr ""
+
+msgid "SOAP_string_Unspecified=Unspecified"
+msgstr ""
+
+msgid "SOAP_string_Administrative=Administrative"
+msgstr ""
+
+msgid "Active clinical hint"
+msgstr ""
+
+msgid "Inactive clinical hint"
 msgstr ""
 
 #, python-format
-msgid "Praxis branch                   #%s\n"
+msgid "Source: %s\n"
 msgstr ""
 
-msgid "Privacy notice"
+#, python-format
+msgid "Language: %s\n"
+msgstr ""
+
+msgid "Suppressed active dynamic hint"
+msgstr ""
+
+msgid "Suppressed inactive dynamic hint"
 msgstr ""
 
 #, python-format
-msgid ""
-"%s: Your chart has been accessed by %s (without user interaction, probably "
-"by a script)."
+msgid "Suppressed by: %s\n"
 msgstr ""
 
 #, python-format
-msgid "%s: Staff member %s has been notified of your chart access."
+msgid "Suppressed at: %s\n"
 msgstr ""
 
-msgid "soap_S"
+#, python-format
+msgid "Hint #: %s\n"
 msgstr ""
 
-msgid "soap_O"
+#, fuzzy, python-format
+msgid "Patient #: %s\n"
+msgstr "Dokumenter: %s"
+
+#, fuzzy, python-format
+msgid "MD5 (currently): %s\n"
+msgstr "Dokumenter: %s"
+
+#, python-format
+msgid "MD5 (at suppression): %s\n"
 msgstr ""
 
-msgid "soap_A"
+#, python-format
+msgid "Device(%s):"
+msgstr "Enhed(%s):"
+
+msgid "Battery:"
+msgstr "Batteri:"
+
+msgid "Implanted:"
 msgstr ""
 
-msgid "soap_P"
+msgid "last check:"
+msgstr "sidste tjek:"
+
+msgid "Sensing:"
 msgstr ""
 
-msgid "soap_U"
+msgid "Threshold"
 msgstr ""
 
-msgid "soap_Subjective"
+msgid "Impedance:"
 msgstr ""
 
-msgid "soap_Objective"
+#, python-format
+msgid "Praxis branch                   #%s\n"
 msgstr ""
 
-msgid "soap_Assessment"
+#, python-format
+msgid ""
+"FN:%(l10n_unit_category)s %(branch)s of %(l10n_organization_category)s "
+"%(praxis)s"
 msgstr ""
 
-msgid "soap_Plan"
+msgid "Privacy notice"
 msgstr ""
 
-msgid "soap_Unspecified"
+#, python-format
+msgid ""
+"%s: Your chart has been accessed by %s (without user interaction, probably "
+"by a script)."
 msgstr ""
 
-msgid "soap_Administrative"
+#, python-format
+msgid "%s: Staff member %s has been notified of your chart access."
 msgstr ""
 
 #, python-format
@@ -7010,9 +7398,17 @@ msgid "%(last)s,%(title)s %(first)s%(nick)s (%(sex)s)"
 msgstr ""
 
 #, python-format
+msgid "%(last)s,%(title)s %(first)s (%(sex)s)"
+msgstr ""
+
+#, python-format
 msgid "%(last)s,%(title)s %(first)s%(nick)s"
 msgstr ""
 
+#, python-format
+msgid "%(last)s,%(title)s %(first)s"
+msgstr ""
+
 msgid "Cannot merge active patient into another patient."
 msgstr ""
 
@@ -7022,9 +7418,6 @@ msgstr ""
 msgid "merged"
 msgstr ""
 
-msgid "preferred name/call name/..."
-msgstr ""
-
 msgid "invalid age: DOB in the future"
 msgstr ""
 
@@ -7037,9 +7430,6 @@ msgstr "Hr"
 msgid "Mrs"
 msgstr ""
 
-msgid "unknown"
-msgstr ""
-
 msgid "empty status"
 msgstr ""
 
@@ -7371,7 +7761,7 @@ msgid " Part %s: %s %s(%s Bytes)\n"
 msgstr ""
 
 #, python-format
-msgid " Filename: %s\n"
+msgid " Filename: %s%s\n"
 msgstr ""
 
 msgid "no parts"
@@ -7385,18 +7775,25 @@ msgid "%s parts"
 msgstr ""
 
 #, python-format
+msgid "%s of %s"
+msgstr ""
+
+#, python-format
 msgid ""
 "%s (%s)   #%s\n"
-"\n"
 " Created: %s\n"
 " Episode: %s\n"
-"%s%s%s"
+"%s%s%s%s"
 msgstr ""
 
 #, python-format
 msgid " External reference: %s\n"
 msgstr ""
 
+#, fuzzy, python-format
+msgid " Organization: %%s @ %s\n"
+msgstr "Vaccinationer"
+
 msgid "Cannot run [arriba] !"
 msgstr ""
 
@@ -7746,25 +8143,9 @@ msgid "External care:"
 msgstr "Ekstern patient ID"
 
 #, fuzzy, python-format
-msgid ""
-"health issue: %s%s%s\n"
-"\n"
+msgid "Health issue: %s%s%s"
 msgstr "Helbredsproblem %s"
 
-msgid ""
-"\n"
-"current values:\n"
-msgstr ""
-
-msgid "no previous versions of this record"
-msgstr ""
-
-msgid ""
-"\n"
-"all values with <audit_action>, <audit_when>, <audit_by> fields (current "
-"value first):\n"
-msgstr ""
-
 msgid "Unattributed episodes"
 msgstr ""
 
@@ -7786,9 +8167,6 @@ msgstr ""
 msgid "finished"
 msgstr ""
 
-msgid "Health issue"
-msgstr ""
-
 msgid "none associated"
 msgstr ""
 
@@ -7824,9 +8202,7 @@ msgid "Measurements and Results:"
 msgstr "Målinger og resultater:"
 
 #, fuzzy, python-format
-msgid ""
-"episode: %s%s%s\n"
-"\n"
+msgid "Episode: %s%s%s"
 msgstr "hændelse     : %s"
 
 #, python-format
@@ -7854,9 +8230,7 @@ msgid "%s other episodes touched upon during this encounter:"
 msgstr ""
 
 #, fuzzy, python-format
-msgid ""
-"encounter: %s%s%s\n"
-"\n"
+msgid "Encounter: %s%s%s"
 msgstr "%s: tilfælde (%s)"
 
 msgid " (ongoing)"
@@ -7877,9 +8251,6 @@ msgstr ""
 msgid "Procedures"
 msgstr ""
 
-msgid "Substances"
-msgstr ""
-
 msgid "Life events"
 msgstr ""
 
@@ -7901,9 +8272,6 @@ msgstr ""
 msgid "Cannot display timeline."
 msgstr ""
 
-msgid "Vaccination"
-msgstr ""
-
 msgid "Lab result"
 msgstr ""
 
@@ -7971,9 +8339,6 @@ msgstr ""
 msgid "Exported: %s\n"
 msgstr ""
 
-msgid "emr-journal"
-msgstr ""
-
 msgid "Chronological EMR Journal\n"
 msgstr ""
 
@@ -8242,25 +8607,144 @@ msgstr ""
 msgid "Select one or more codes that apply."
 msgstr ""
 
-msgid "Cannot move progress notes. No active patient."
+msgid "Select the narrative you are interested in ..."
 msgstr ""
 
-msgid "Moving progress notes between encounters ..."
+msgid "when"
 msgstr ""
 
-msgid ""
+msgid "who"
+msgstr ""
+
+msgid "entry"
+msgstr ""
+
+msgid "There is no narrative for this episode in this encounter."
+msgstr ""
+
+msgid "Must select episode to move narrative to first."
+msgstr ""
+
+msgid "Last"
+msgstr ""
+
+msgid "In health issue"
+msgstr ""
+
+msgid "Most recent notes on selected problem"
+msgstr ""
+
+#, python-format
+msgid "%s (active+potential) problems"
+msgstr ""
+
+#, python-format
+msgid "%s active problems"
+msgstr ""
+
+msgid "Current encounter:"
+msgstr ""
+
+msgid "Cumulative summary"
+msgstr ""
+
+#, python-format
+msgid "Most recent info on %s%s%s"
+msgstr ""
+
+#, python-format
+msgid ""
+"Cannot open progress note editor for\n"
 "\n"
-" Select the progress notes to move from the list !\n"
+"[%s].\n"
 "\n"
 msgstr ""
 
-msgid "when"
+msgid "opening progress note editor"
 msgstr ""
 
-msgid "who"
+msgid "Cannot save all editors. Some were kept open."
 msgstr ""
 
-msgid "entry"
+msgid "new problem"
+msgstr ""
+
+msgid ""
+"Are you sure you really want to\n"
+"discard this progress note ?\n"
+msgstr ""
+
+msgid "Discarding progress note"
+msgstr ""
+
+msgid "There are unsaved progress notes !\n"
+msgstr ""
+
+msgid "Unsaved progress notes"
+msgstr ""
+
+msgid "Problem list"
+msgstr ""
+
+msgid "Saving SOAP note"
+msgstr ""
+
+msgid "Do you want to save the SOAP note ?"
+msgstr ""
+
+#, python-format
+msgid "&Filter by problem %s%s%s"
+msgstr ""
+
+msgid "Cannot save SimpleNotes SOAP note."
+msgstr ""
+
+#, python-format
+msgid "Progress note: %s%s"
+msgstr ""
+
+msgid "Please enter a name for the new problem:"
+msgstr ""
+
+msgid "Adding a problem"
+msgstr ""
+
+msgid "Cannot delete problem. There is still clinical data recorded for it."
+msgstr ""
+
+#, python-format
+msgid "GNUmed: configuring [%s] (%s plugins)"
+msgstr ""
+
+msgid "loading list of plugins                               "
+msgstr ""
+
+msgid "failed"
+msgstr ""
+
+msgid "success"
+msgstr ""
+
+#, python-format
+msgid ""
+"previous: %s (%s)\n"
+"current (%s/%s): %s"
+msgstr ""
+
+#, python-format
+msgid "Cannot switch to [%s]: no patient selected"
+msgstr ""
+
+msgid "Cannot move progress notes. No active patient."
+msgstr ""
+
+msgid "Moving progress notes between encounters ..."
+msgstr ""
+
+msgid ""
+"\n"
+" Select the progress notes to move from the list !\n"
+"\n"
 msgstr ""
 
 msgid "Cannot edit progress notes. No active patient."
@@ -8462,968 +8946,887 @@ msgid ""
 " Now, mark the entries you want to include in your report.\n"
 msgstr ""
 
-msgid "Select the narrative you are interested in ..."
+msgid "Pick a date ..."
 msgstr ""
 
-msgid "There is no narrative for this episode in this encounter."
+msgid "<ALT-C/K>: pick from (c/k)alendar"
 msgstr ""
 
-msgid "Must select episode to move narrative to first."
+msgid "Cannot interpret input as timestamp."
 msgstr ""
 
-msgid "Last"
+msgid "No vaccines were chosen"
 msgstr ""
 
-msgid "In health issue"
+#, python-format
+msgid "Combination of indications , %s , not found in any vaccine"
 msgstr ""
 
-msgid "Most recent notes on selected problem"
+msgid "Sequence"
 msgstr ""
 
-#, python-format
-msgid "%s (active+potential) problems"
+msgid "Batch"
 msgstr ""
 
-#, python-format
-msgid "%s active problems"
+msgid "Vaccinator"
 msgstr ""
 
-msgid "Current encounter:"
+msgid ""
+"Vaccinations by Recommender (X = patient on regime, O = patient not on "
+"regime) "
 msgstr ""
 
-msgid "Cumulative summary"
+msgid "enrolled regime vaccinations not yet given"
 msgstr ""
 
-#, python-format
-msgid "Most recent info on %s%s%s"
+msgid "Proceed with "
 msgstr ""
 
 #, python-format
-msgid ""
-"Cannot open progress note editor for\n"
-"\n"
-"[%s].\n"
-"\n"
+msgid "Failed to enrol patient in %s"
 msgstr ""
 
-msgid "opening progress note editor"
+#, python-format
+msgid "Failed to  delist patient from %s"
 msgstr ""
 
-msgid "Cannot save all editors. Some were kept open."
+msgid "Missing GNUmed module"
 msgstr ""
 
-msgid "new problem"
+#, python-format
+msgid ""
+"GNUmed detected that parts of it are not\n"
+"properly installed. The following message\n"
+"names the missing part:\n"
+"\n"
+" \"%s\"\n"
+"\n"
+"Please make sure to get the missing\n"
+"parts installed. Otherwise some of the\n"
+"functionality will not be accessible."
 msgstr ""
 
+#, python-format
 msgid ""
-"Are you sure you really want to\n"
-"discard this progress note ?\n"
+"\n"
+" Source: %s"
 msgstr ""
 
-msgid "Discarding progress note"
+#, python-format
+msgid ""
+"\n"
+" Code: %s"
 msgstr ""
 
-msgid "There are unsaved progress notes !\n"
+#, python-format
+msgid ""
+"\n"
+" Details (first 250 characters):\n"
+"%s\n"
+"%s\n"
+"%s"
 msgstr ""
 
-msgid "Unsaved progress notes"
+msgid "Access violation"
 msgstr ""
 
 #, python-format
-msgid "Synopsis (%s)"
+msgid ""
+"You do not have access to this part of GNUmed.\n"
+"\n"
+"%s"
 msgstr ""
 
-msgid ""
-"Enter a short working name for this new problem\n"
-"(which will become a new, unassociated episode):\n"
+msgid "Lost connection"
 msgstr ""
 
-#, python-format
 msgid ""
-"Enter a short working name for this new\n"
-"episode under the existing health issue\n"
+"Since you were last working in GNUmed,\n"
+"your database connection timed out.\n"
 "\n"
-"\"%s\":\n"
+"This GNUmed session is now expired.\n"
+"\n"
+"You will have to close this client and\n"
+"restart a new GNUmed session."
 msgstr ""
 
-msgid "Creating problem (episode) to save notelet under ..."
+msgid ""
+"Please enter a short note on what you\n"
+"were about to do in GNUmed:"
 msgstr ""
 
-msgid "Cannot save a new problem without a name."
+msgid "Sending bug report"
 msgstr ""
 
-msgid "saving progress note"
+msgid ""
+"Edit the list of email addresses to send the\n"
+"bug report to (separate addresses by spaces).\n"
+"\n"
+"Note that <gnumed-bugs at gnu.org> refers to\n"
+"the public (!) GNUmed bugs mailing list."
 msgstr ""
 
 #, python-format
 msgid ""
-"The new episode:\n"
+"Your bug report will be sent to:\n"
 "\n"
-" \"%s\"\n"
+"%s\n"
 "\n"
-"will remain unassociated despite the editor\n"
-"having been invoked from the health issue:\n"
+"Make sure you have reviewed the log file for potentially\n"
+"sensitive information before sending out the bug report.\n"
 "\n"
-" \"%s\""
+"Note that emailing the report may take a while depending\n"
+"on the speed of your internet connection.\n"
 msgstr ""
 
-msgid "You need to actually set an editor."
+msgid "Yes, send the bug report."
 msgstr ""
 
-#, python-format
-msgid "The command [%s] is not found."
+msgid "No, do not send the bug report."
 msgstr ""
 
-#, python-format
-msgid ""
-"Enter the shell command with which to start\n"
-"the image editor for visual progress notes.\n"
-"\n"
-"Any \"%(img)s\" included with the arguments\n"
-"will be replaced by the file name of the\n"
-"note template."
+msgid "include log file in bug report"
 msgstr ""
 
-msgid "Choose file to use as template for new visual progress note"
+msgid ""
+"The database you are connected to is marked as\n"
+"\"in-production with controlled access\".\n"
+"\n"
+"You indicated that you want to include the log\n"
+"file in your bug report. While this is often\n"
+"useful for debugging the log file might contain\n"
+"bits of patient data which must not be sent out\n"
+"without de-identification.\n"
+"\n"
+"Please confirm that you want to include the log !"
 msgstr ""
 
-msgid "Visual progress note source"
+msgid "<not supplied>"
 msgstr ""
 
-msgid "From which source do you want to pick the image template ?"
+msgid "Bug report has been emailed."
 msgstr ""
 
-msgid "Database"
+msgid "Bug report COULD NOT be emailed."
 msgstr ""
 
-msgid "List of templates in the database."
+msgid "Underweight"
 msgstr ""
 
-msgid "Files in the filesystem."
+msgid "63< Normal >79"
 msgstr ""
 
-msgid "Device"
+msgid "63 - Normal - 79"
 msgstr ""
 
-msgid "Image capture devices (scanners, cameras, etc)"
+msgid "Overweight"
 msgstr ""
 
-#, python-format
-msgid "Cannot export visual progress note template for [%s]."
+msgid "Obese"
 msgstr ""
 
-msgid "Cannot export visual progress note to file."
+msgid "Current height/mass"
 msgstr ""
 
-msgid "Editor for visual progress note not configured."
+msgid "Height (cm)"
 msgstr ""
 
-#, python-format
-msgid ""
-"There was a problem with running the editor\n"
-"for visual progress notes.\n"
-"\n"
-" [%s]\n"
-"\n"
+msgid "Mass (kg)"
 msgstr ""
 
-msgid "Editing visual progress note"
+msgid "Adjusted Values"
 msgstr ""
 
-#, python-format
-msgid ""
-"There was a problem reading the visual\n"
-"progress note from the file:\n"
-"\n"
-" [%s]\n"
-"\n"
+msgid "Goal mass"
 msgstr ""
 
-msgid "Saving visual progress note"
+msgid "kg to lose"
 msgstr ""
 
-msgid ""
-"You either created a visual progress note from a template\n"
-"in the database (rather than from a file on disk) or you\n"
-"edited an existing visual progress note.\n"
-"\n"
-"The template/original was not modified at all, however.\n"
-"\n"
-"Do you still want to save the unmodified image as a\n"
-"visual progress note into the EMR of the patient ?\n"
+msgid "BMI Calculator"
 msgstr ""
 
-msgid "visual progress notes"
+msgid "&Reset"
 msgstr ""
 
-#, python-format
-msgid "Created: %s"
+msgid "Select a healthcare provider."
 msgstr ""
 
-msgid "Problem list"
+msgid "Public (no clinical or demographic access)"
 msgstr ""
 
-msgid "Saving SOAP note"
+msgid "Staff (demographic access only)"
 msgstr ""
 
-msgid "Do you want to save the SOAP note ?"
+msgid "staff (clerical)"
 msgstr ""
 
-#, python-format
-msgid "&Filter by problem %s%s%s"
+msgid "full clinical access"
 msgstr ""
 
-msgid "Cannot save SimpleNotes SOAP note."
+msgid "DB account"
 msgstr ""
 
-#, python-format
-msgid "Progress note: %s%s"
+msgid "can login"
 msgstr ""
 
-msgid "Please enter a name for the new problem:"
+msgid "can not login"
 msgstr ""
 
-msgid "Adding a problem"
+msgid "Activating GNUmed user."
 msgstr ""
 
-msgid "Cannot delete problem. There is still clinical data recorded for it."
+msgid "Deactivating GNUmed user."
 msgstr ""
 
-#, python-format
-msgid "GNUmed: configuring [%s] (%s plugins)"
+msgid "Removing GNUmed user."
 msgstr ""
 
-msgid "loading list of plugins                               "
+msgid "Removing GNUmed user"
 msgstr ""
 
-msgid "failed"
+msgid "Modifying GNUmed user."
 msgstr ""
 
-msgid "success"
+msgid "Failed to save changes to GNUmed database user."
 msgstr ""
 
-#, python-format
-msgid ""
-"previous: %s (%s)\n"
-"current (%s/%s): %s"
+msgid "Modifying GNUmed user"
 msgstr ""
 
 #, python-format
-msgid "Cannot switch to [%s]: no patient selected"
+msgid "Failed to set role [%s] for GNUmed database user."
 msgstr ""
 
-msgid "Pick a date ..."
+#, python-format
+msgid ""
+"\n"
+"  %s \"%s\" %s\n"
+"  born: %s"
 msgstr ""
 
-msgid "<ALT-C/K>: pick from (c/k)alendar"
+msgid ""
+"Password entries do not match. Please type in the passwords again to rule "
+"out typos."
 msgstr ""
 
-msgid "Cannot interpret input as timestamp."
+msgid "Adding GNUmed user"
 msgstr ""
 
-msgid "No vaccines were chosen"
+msgid ""
+"Are you positively sure you want to create\n"
+"a user with an empty password ?\n"
+"\n"
+"Think about the record access implications !"
 msgstr ""
 
-#, python-format
-msgid "Combination of indications , %s , not found in any vaccine"
+msgid "Enlisting person as user."
 msgstr ""
 
-msgid "Sequence"
+msgid "Encrypt"
 msgstr ""
 
-msgid "Batch"
+msgid "Decrypt"
 msgstr ""
 
-msgid "Vaccinator"
+msgid "Set pass phrase"
 msgstr ""
 
-msgid ""
-"Vaccinations by Recommender (X = patient on regime, O = patient not on "
-"regime) "
+msgid "This is not correctly encrypted text!"
 msgstr ""
 
-msgid "enrolled regime vaccinations not yet given"
+msgid "Please enter your pass phrase:"
 msgstr ""
 
-msgid "Proceed with "
+msgid "Pass phrase expired"
 msgstr ""
 
-#, python-format
-msgid "Failed to enrol patient in %s"
+msgid ""
+"\n"
+"Conditions preventable by vaccination as currently known to GNUmed.\n"
 msgstr ""
 
-#, python-format
-msgid "Failed to  delist patient from %s"
+msgid "Showing vaccination preventable conditions."
 msgstr ""
 
-msgid "Missing GNUmed module"
+msgid "ATCs: single-condition vaccines"
 msgstr ""
 
-#, python-format
-msgid ""
-"GNUmed detected that parts of it are not\n"
-"properly installed. The following message\n"
-"names the missing part:\n"
-"\n"
-" \"%s\"\n"
-"\n"
-"Please make sure to get the missing\n"
-"parts installed. Otherwise some of the\n"
-"functionality will not be accessible."
+msgid "ATCs: multi-condition vaccines"
 msgstr ""
 
-#, python-format
-msgid ""
-"\n"
-" Source: %s"
+msgid "Pick the relevant indications."
 msgstr ""
 
-#, python-format
-msgid ""
-"\n"
-" Code: %s"
+msgid "Known indications"
 msgstr ""
 
-#, python-format
-msgid ""
-"\n"
-" Details (first 250 characters):\n"
-"%s\n"
-"%s\n"
-"%s"
+msgid "Adding new vaccine"
 msgstr ""
 
-msgid "Access violation"
+msgid "Editing vaccine"
 msgstr ""
 
 #, python-format
 msgid ""
-"You do not have access to this part of GNUmed.\n"
+"Cannot delete vaccine\n"
 "\n"
-"%s"
+" %s - %s (#%s)\n"
+"\n"
+"It is probably documented in a vaccination."
 msgstr ""
 
-msgid "Lost connection"
+msgid "Deleting vaccine"
+msgstr ""
+
+msgid "fake"
 msgstr ""
 
 msgid ""
-"Since you were last working in GNUmed,\n"
-"your database connection timed out.\n"
-"\n"
-"This GNUmed session is now expired.\n"
 "\n"
-"You will have to close this client and\n"
-"restart a new GNUmed session."
+"The vaccines currently known to GNUmed.\n"
 msgstr ""
 
-msgid ""
-"Please enter a short note on what you\n"
-"were about to do in GNUmed:"
+msgid "Showing vaccines."
 msgstr ""
 
-msgid "Sending bug report"
+msgid "Enter or select the batch/lot number of the vaccine used."
 msgstr ""
 
-msgid ""
-"Edit the list of email addresses to send the\n"
-"bug report to (separate addresses by spaces).\n"
-"\n"
-"Note that <gnumed-bugs at gnu.org> refers to\n"
-"the public (!) GNUmed bugs mailing list."
+msgid "Saving vaccine"
 msgstr ""
 
 #, python-format
 msgid ""
-"Your bug report will be sent to:\n"
+"This vaccine is already in use:\n"
 "\n"
-"%s\n"
+" \"%s\"\n"
+" (%s)\n"
 "\n"
-"Make sure you have reviewed the log file for potentially\n"
-"sensitive information before sending out the bug report.\n"
+"Are you absolutely positively sure that\n"
+"you really want to edit this vaccine ?\n"
 "\n"
-"Note that emailing the report may take a while depending\n"
-"on the speed of your internet connection.\n"
+"This will change the vaccine name and/or target\n"
+"conditions in each patient this vaccine was\n"
+"used in to document a vaccination with.\n"
 msgstr ""
 
-msgid "Yes, send the bug report."
+msgid "You must select at least one indication."
 msgstr ""
 
-msgid "No, do not send the bug report."
+msgid "Pick the diseases this vaccine protects against."
 msgstr ""
 
-msgid "include log file in bug report"
+msgid "This vaccine"
 msgstr ""
 
-msgid ""
-"The database you are connected to is marked as\n"
-"\"in-production with controlled access\".\n"
-"\n"
-"You indicated that you want to include the log\n"
-"file in your bug report. While this is often\n"
-"useful for debugging the log file might contain\n"
-"bits of patient data which must not be sent out\n"
-"without de-identification.\n"
-"\n"
-"Please confirm that you want to include the log !"
+msgid "Adding new vaccinations"
 msgstr ""
 
-msgid "<not supplied>"
+msgid "Editing vaccination"
 msgstr ""
 
-msgid "Bug report has been emailed."
-msgstr ""
+#, fuzzy
+msgid "vaccination recall"
+msgstr "Vaccinationer"
 
-msgid "Bug report COULD NOT be emailed."
-msgstr ""
+#, fuzzy, python-format
+msgid "vaccination recall (%s)"
+msgstr "Vaccinationer"
 
-msgid "Underweight"
+#, python-format
+msgid ""
+"Existing vaccination:\n"
+"\n"
+"%s"
 msgstr ""
 
-msgid "63< Normal >79"
+msgid ""
+"\n"
+"Complete vaccination history for this patient.\n"
 msgstr ""
 
-msgid "63 - Normal - 79"
+msgid "Showing vaccinations."
 msgstr ""
 
-msgid "Overweight"
+msgid "Intended to protect from"
 msgstr ""
 
-msgid "Obese"
+#, fuzzy
+msgid "Print vaccinations or recalls."
+msgstr "Vaccinationer"
+
+msgid "Recall"
 msgstr ""
 
-msgid "Current height/mass"
+msgid "Add a recall for a vaccination"
 msgstr ""
 
-msgid "Height (cm)"
+msgid "Vx schedules"
 msgstr ""
 
-msgid "Mass (kg)"
+msgid "Open a browser showing vaccination schedules."
 msgstr ""
 
-msgid "Adjusted Values"
+msgid "prevention"
 msgstr ""
 
-msgid "Goal mass"
+msgid "Saving vaccination"
 msgstr ""
 
-msgid "kg to lose"
+msgid "Pick the diseases this vaccination was given against."
 msgstr ""
 
-msgid "BMI Calculator"
+msgid "  IMMUNISATIONS  "
 msgstr ""
 
-msgid "&Reset"
+msgid "Indications"
 msgstr ""
 
-msgid "Select a healthcare provider."
+msgid "Active Schedules"
 msgstr ""
 
-msgid "Public (no clinical or demographic access)"
+msgid "Missing Immunisations"
 msgstr ""
 
-msgid "Staff (demographic access only)"
+msgid "  Alerts  "
 msgstr ""
 
-msgid "staff (clerical)"
+msgid "ERROR: cannot retrieve active vaccination schedules"
 msgstr ""
 
-msgid "full clinical access"
+msgid "no active vaccination schedules"
 msgstr ""
 
-msgid "DB account"
+#, python-format
+msgid "%s for %s (%s shots): %s"
 msgstr ""
 
-msgid "can login"
+msgid "ERROR: cannot retrieve due/overdue vaccinations"
 msgstr ""
 
-msgid "can not login"
+#, python-format
+msgid "%.0d weeks left: shot %s for %s in %s, due %s (%s)"
 msgstr ""
 
-msgid "Activating GNUmed user."
+#, python-format
+msgid "overdue %.0dyrs %.0dwks: shot %s for %s in schedule \"%s\" (%s)"
 msgstr ""
 
-msgid "Deactivating GNUmed user."
+#, python-format
+msgid "due now: booster for %s in schedule \"%s\" (%s)"
 msgstr ""
 
-msgid "Removing GNUmed user."
+#, python-format
+msgid "Synopsis (%s)"
 msgstr ""
 
-msgid "Removing GNUmed user"
+msgid ""
+"Enter a short working name for this new problem\n"
+"(which will become a new, unassociated episode):\n"
 msgstr ""
 
-msgid "Modifying GNUmed user."
+#, python-format
+msgid ""
+"Enter a short working name for this new\n"
+"episode under the existing health issue\n"
+"\n"
+"\"%s\":\n"
 msgstr ""
 
-msgid "Failed to save changes to GNUmed database user."
+msgid "Creating problem (episode) to save notelet under ..."
 msgstr ""
 
-msgid "Modifying GNUmed user"
+msgid "Cannot save a new problem without a name."
 msgstr ""
 
-#, python-format
-msgid "Failed to set role [%s] for GNUmed database user."
+msgid "saving progress note"
 msgstr ""
 
 #, python-format
 msgid ""
+"The new episode:\n"
 "\n"
-"  %s \"%s\" %s\n"
-"  born: %s"
+" \"%s\"\n"
+"\n"
+"will remain unassociated despite the editor\n"
+"having been invoked from the health issue:\n"
+"\n"
+" \"%s\""
 msgstr ""
 
-msgid ""
-"Password entries do not match. Please type in the passwords again to rule "
-"out typos."
+msgid "Adding substance abuse"
 msgstr ""
 
-msgid "Adding GNUmed user"
+msgid "Editing substance abuse"
 msgstr ""
 
-msgid ""
-"Are you positively sure you want to create\n"
-"a user with an empty password ?\n"
-"\n"
-"Think about the record access implications !"
+msgid "Substances abused by the patient:"
 msgstr ""
 
-msgid "Enlisting person as user."
+msgid "Showing abused substances."
 msgstr ""
 
-msgid "Encrypt"
+msgid "Intake"
 msgstr ""
 
-msgid "Decrypt"
+msgid "nicotine"
 msgstr ""
 
-msgid "Set pass phrase"
+msgid "unit"
 msgstr ""
 
-msgid "This is not correctly encrypted text!"
+#, fuzzy, python-format
+msgid "Latest: %s ago (%s %s%s%s%s)"
+msgstr "%s: tilfælde (%s)"
+
+#, fuzzy, python-format
+msgid "%s %s%s%s (%s ago, %s)"
+msgstr "%s: tilfælde (%s)"
+
+#, python-format
+msgid "overdue %s: %s"
 msgstr ""
 
-msgid "Please enter your pass phrase:"
+#, python-format
+msgid "due in %s%s"
 msgstr ""
 
-msgid "Pass phrase expired"
+msgid "suppr'd:"
+msgstr ""
+
+msgid "Suppressed hints:\n"
 msgstr ""
 
 msgid ""
-"\n"
-"Conditions preventable by vaccination as currently known to GNUmed.\n"
+"Do you really want to\n"
+"delete this inbox message ?"
 msgstr ""
 
-msgid "Showing vaccination preventable conditions."
+msgid "Deleting inbox message"
 msgstr ""
 
-msgid "ATCs: single-condition vaccines"
+msgid "Export area: 1 item"
 msgstr ""
 
-msgid "ATCs: multi-condition vaccines"
+#, python-format
+msgid "Export area: %s items"
 msgstr ""
 
-msgid "Pick the relevant indications."
+#, python-format
+msgid "%s %s more not shown %s"
 msgstr ""
 
-msgid "Known indications"
+#, python-format
+msgid "Currently %s entries in waiting list"
 msgstr ""
 
-msgid "Adding new vaccine"
+#, python-format
+msgid "first (in GMd): %s, %s"
 msgstr ""
 
-msgid "Editing vaccine"
+#, python-format
+msgid "last: %s, %s"
 msgstr ""
 
 #, python-format
-msgid ""
-"Cannot delete vaccine\n"
-"\n"
-" %s - %s (#%s)\n"
-"\n"
-"It is probably documented in a vaccination."
+msgid "Last %s:"
 msgstr ""
 
-msgid "Deleting vaccine"
+msgid "Statistics cover period"
 msgstr ""
 
-msgid "fake"
+#, python-format
+msgid "EDC (!?!): %s"
 msgstr ""
 
 msgid ""
+"The Expected Date of Confinement is rather questionable.\n"
 "\n"
-"The vaccines currently known to GNUmed.\n"
+"Please check patient age, patient gender, time until/since EDC."
 msgstr ""
 
-msgid "Showing vaccines."
-msgstr ""
+#, fuzzy, python-format
+msgid "%s Vacc: %s (latest of %s)"
+msgstr "%s: tilfælde (%s)"
 
-msgid "Enter or select the batch/lot number of the vaccine used."
+#, python-format
+msgid "Hx of addiction: %s"
 msgstr ""
 
-msgid "Saving vaccine"
+msgid "active substance abuse"
 msgstr ""
 
 #, python-format
-msgid ""
-"This vaccine is already in use:\n"
-"\n"
-" \"%s\"\n"
-" (%s)\n"
-"\n"
-"Are you absolutely positively sure that\n"
-"you really want to edit this vaccine ?\n"
-"\n"
-"This will change the vaccine name and/or target\n"
-"conditions in each patient this vaccine was\n"
-"used in to document a vaccination with.\n"
+msgid "%s %s %s%s"
 msgstr ""
 
-msgid "You must select at least one indication."
+#, python-format
+msgid "%s %s%s"
 msgstr ""
 
-msgid "Pick the diseases this vaccine protects against."
+#, python-format
+msgid "** Currently hospitalized: %s **"
 msgstr ""
 
-msgid "This vaccine"
+#, python-format
+msgid "emergency: %s"
 msgstr ""
 
-msgid "Adding new vaccinations"
+#, python-format
+msgid "in-praxis: %s"
 msgstr ""
 
-msgid "Editing vaccination"
+#, fuzzy, python-format
+msgid "care: %s%s@%s"
+msgstr "%s: tilfælde (%s)"
+
+msgid "*** CONFIDENTIAL ***"
 msgstr ""
 
-#, fuzzy
-msgid "vaccination recall"
-msgstr "Vaccinationer"
+msgid " (confidential !)"
+msgstr ""
 
 #, fuzzy, python-format
-msgid "vaccination recall (%s)"
-msgstr "Vaccinationer"
+msgid "extrnl: %s (%s@%s)"
+msgstr "%s: tilfælde (%s)"
 
 #, python-format
-msgid ""
-"Existing vaccination:\n"
-"\n"
-"%s"
+msgid "aka: %(last)s, %(first)s%(nick)s"
 msgstr ""
 
-msgid ""
-"\n"
-"Complete vaccination history for this patient.\n"
+#, python-format
+msgid "job: %s (%s)"
 msgstr ""
 
-msgid "Showing vaccinations."
+#, python-format
+msgid "issued by: %s%s"
 msgstr ""
 
-msgid "Intended to protect from"
+#, python-format
+msgid "Last modified: %s"
 msgstr ""
 
-#, fuzzy
-msgid "Print vaccinations or recalls."
-msgstr "Vaccinationer"
-
-msgid "Recall"
+#, python-format
+msgid ""
+"Activities:\n"
+"\n"
+"%s"
 msgstr ""
 
-msgid "Add a recall for a vaccination"
+msgid "Cloning name"
 msgstr ""
 
-msgid "Vx schedules"
+msgid "Editing external ID"
 msgstr ""
 
-msgid "Open a browser showing vaccination schedules."
+msgid "Adding new translation"
 msgstr ""
 
-msgid "prevention"
+msgid "Editing translation"
 msgstr ""
 
-msgid "Saving vaccination"
+msgid "Selecting language for translation"
 msgstr ""
 
-msgid "Pick the diseases this vaccination was given against."
+msgid ""
+"Please select the language the translations for which you want to work on."
 msgstr ""
 
-msgid "  IMMUNISATIONS  "
+#, python-format
+msgid ""
+"Are you sure you want to delete the translation of:\n"
+"\n"
+"%s\n"
+"\n"
+"into [%s] as:\n"
+"\n"
+"%s\n"
+"\n"
+"?  (Note that you must know the database administrator password !)\n"
 msgstr ""
 
-msgid "Indications"
+msgid "Deleting translation from database"
 msgstr ""
 
-msgid "Active Schedules"
-msgstr ""
-
-msgid "Missing Immunisations"
+msgid "deleting a translation"
 msgstr ""
 
-msgid "  Alerts  "
+msgid "Contributing translations"
 msgstr ""
 
-msgid "ERROR: cannot retrieve active vaccination schedules"
+msgid "Do you want to contribute your translations to the GNUmed project ?"
 msgstr ""
 
-msgid "no active vaccination schedules"
+msgid ""
+"Unable to send mail. Cannot contribute translations to GNUmed community."
 msgstr ""
 
-#, python-format
-msgid "%s for %s (%s shots): %s"
+msgid "Thank you for your contribution to the GNUmed community!"
 msgstr ""
 
-msgid "ERROR: cannot retrieve due/overdue vaccinations"
+msgid "Showing translatable database strings for all languages."
 msgstr ""
 
 #, python-format
-msgid "%.0d weeks left: shot %s for %s in %s, due %s (%s)"
+msgid "Showing translatable database strings for target language [%s]."
 msgstr ""
 
-#, python-format
-msgid "overdue %.0dyrs %.0dwks: shot %s for %s in schedule \"%s\" (%s)"
+msgid "Contribute translations to GNUmed community by email."
 msgstr ""
 
-#, python-format
-msgid "due now: booster for %s in schedule \"%s\" (%s)"
+msgid ""
+"Before creating a new person review the encounter details\n"
+"of the patient you just worked on:\n"
 msgstr ""
 
-#, python-format
-msgid "Latest: %s ago (%s %s %s %s%s)"
+msgid "Edit the current encounter of the patient you are ABOUT TO LEAVE:"
 msgstr ""
 
-#, python-format
-msgid "%s %s %s %s (%s ago, %s)"
+msgid "Adding new person"
 msgstr ""
 
-#, python-format
-msgid "overdue %s: %s"
+msgid "ID exists !"
 msgstr ""
 
 #, python-format
-msgid "due in %s%s"
-msgstr ""
-
-msgid ""
-"Do you really want to\n"
-"delete this inbox message ?"
-msgstr ""
-
-msgid "Deleting inbox message"
-msgstr ""
-
-msgid "Export area: 1 item"
+msgid "One \"%s, %s (%s)\" already exists !"
 msgstr ""
 
 #, python-format
-msgid "Export area: %s items"
+msgid "%s \"%s, %s (%s)\" already exist !"
 msgstr ""
 
-#, python-format
-msgid "%s %s more not shown %s"
+msgid "Must enter lastname."
 msgstr ""
 
-#, python-format
-msgid "Currently %s entries in waiting list"
+msgid "Must enter first name."
 msgstr ""
 
-#, python-format
-msgid "first (in GMd): %s, %s"
+msgid "Must select gender."
 msgstr ""
 
-#, python-format
-msgid "last: %s, %s"
+msgid ""
+"To properly create an address, all the related fields must be filled in."
 msgstr ""
 
-#, python-format
-msgid "Last %s:"
+msgid "Required fields"
 msgstr ""
 
-msgid "Statistics cover period"
+msgid "This field must contain an item selected from the dropdown list."
 msgstr ""
 
-#, python-format
-msgid "EDC (!?!): %s"
+msgid "Saving address"
 msgstr ""
 
 msgid ""
-"The Expected Date of Confinement is rather questionable.\n"
+"Cannot save this address.\n"
 "\n"
-"Please check patient age, patient gender, time until/since EDC."
+"You will have to add it via the Demographics plugin.\n"
 msgstr ""
 
-#, python-format
-msgid "%s Vacc: %s"
+msgid ""
+"Address not saved.\n"
+"\n"
+"You will have to add it via the Demographics plugin.\n"
 msgstr ""
 
-#, python-format
-msgid "%s %s %s%s"
+msgid "You need to actually set an editor."
 msgstr ""
 
 #, python-format
-msgid "%s %s%s"
+msgid "The command [%s] is not found."
 msgstr ""
 
 #, python-format
-msgid "** Currently hospitalized: %s **"
+msgid ""
+"Enter the shell command with which to start\n"
+"the image editor for visual progress notes.\n"
+"\n"
+"Any \"%(img)s\" included with the arguments\n"
+"will be replaced by the file name of the\n"
+"note template."
 msgstr ""
 
-#, python-format
-msgid "emergency: %s"
+msgid "Choose file to use as template for new visual progress note"
 msgstr ""
 
-#, python-format
-msgid "in-praxis: %s"
+msgid "Visual progress note source"
 msgstr ""
 
-#, fuzzy, python-format
-msgid "care: %s%s@%s"
-msgstr "%s: tilfælde (%s)"
-
-msgid "*** CONFIDENTIAL ***"
+msgid "From which source do you want to pick the image template ?"
 msgstr ""
 
-msgid " (confidential !)"
+msgid "Database"
 msgstr ""
 
-#, fuzzy, python-format
-msgid "extrnl: %s (%s@%s)"
-msgstr "%s: tilfælde (%s)"
-
-#, python-format
-msgid "aka: %(last)s, %(first)s%(nick)s"
+msgid "List of templates in the database."
 msgstr ""
 
-#, python-format
-msgid "job: %s (%s)"
+msgid "Files in the filesystem."
 msgstr ""
 
-#, python-format
-msgid "issued by: %s%s"
+msgid "Device"
 msgstr ""
 
-#, python-format
-msgid "Last modified: %s"
+msgid "Image capture devices (scanners, cameras, etc)"
 msgstr ""
 
 #, python-format
-msgid ""
-"Activities:\n"
-"\n"
-"%s"
-msgstr ""
-
-msgid "Cloning name"
-msgstr ""
-
-msgid "Editing external ID"
-msgstr ""
-
-msgid "Adding new translation"
-msgstr ""
-
-msgid "Editing translation"
+msgid "Cannot export visual progress note template for [%s]."
 msgstr ""
 
-msgid "Selecting language for translation"
+msgid "Cannot export visual progress note to file."
 msgstr ""
 
-msgid ""
-"Please select the language the translations for which you want to work on."
+msgid "Editor for visual progress note not configured."
 msgstr ""
 
 #, python-format
 msgid ""
-"Are you sure you want to delete the translation of:\n"
-"\n"
-"%s\n"
-"\n"
-"into [%s] as:\n"
+"There was a problem with running the editor\n"
+"for visual progress notes.\n"
 "\n"
-"%s\n"
+" [%s]\n"
 "\n"
-"?  (Note that you must know the database administrator password !)\n"
-msgstr ""
-
-msgid "Deleting translation from database"
-msgstr ""
-
-msgid "deleting a translation"
 msgstr ""
 
-msgid "Contributing translations"
-msgstr ""
-
-msgid "Do you want to contribute your translations to the GNUmed project ?"
-msgstr ""
-
-msgid ""
-"Unable to send mail. Cannot contribute translations to GNUmed community."
-msgstr ""
-
-msgid "Thank you for your contribution to the GNUmed community!"
-msgstr ""
-
-msgid "Showing translatable database strings for all languages."
+msgid "Editing visual progress note"
 msgstr ""
 
 #, python-format
-msgid "Showing translatable database strings for target language [%s]."
-msgstr ""
-
-msgid "Contribute translations to GNUmed community by email."
-msgstr ""
-
 msgid ""
-"Before creating a new person review the encounter details\n"
-"of the patient you just worked on:\n"
-msgstr ""
-
-msgid "Edit the current encounter of the patient you are ABOUT TO LEAVE:"
-msgstr ""
-
-msgid "Adding new person"
-msgstr ""
-
-msgid "ID exists !"
-msgstr ""
-
-#, python-format
-msgid "One \"%s, %s (%s)\" already exists !"
-msgstr ""
-
-#, python-format
-msgid "%s \"%s, %s (%s)\" already exist !"
-msgstr ""
-
-msgid "Must enter lastname."
-msgstr ""
-
-msgid "Must enter first name."
+"There was a problem reading the visual\n"
+"progress note from the file:\n"
+"\n"
+" [%s]\n"
+"\n"
 msgstr ""
 
-msgid "Must select gender."
+msgid "Saving visual progress note"
 msgstr ""
 
 msgid ""
-"To properly create an address, all the related fields must be filled in."
-msgstr ""
-
-msgid "Required fields"
-msgstr ""
-
-msgid "This field must contain an item selected from the dropdown list."
+"You either created a visual progress note from a template\n"
+"in the database (rather than from a file on disk) or you\n"
+"edited an existing visual progress note.\n"
+"\n"
+"The template/original was not modified at all, however.\n"
+"\n"
+"Do you still want to save the unmodified image as a\n"
+"visual progress note into the EMR of the patient ?\n"
 msgstr ""
 
-msgid "Saving address"
+msgid "visual progress notes"
 msgstr ""
 
-msgid ""
-"Cannot save this address.\n"
-"\n"
-"You will have to add it via the Demographics plugin.\n"
+#, python-format
+msgid " [part 1 of %s]"
 msgstr ""
 
-msgid ""
-"Address not saved.\n"
-"\n"
-"You will have to add it via the Demographics plugin.\n"
-msgstr ""
+#, fuzzy, python-format
+msgid "Created: %s%s"
+msgstr "%s: tilfælde (%s)"
 
 msgid "You must select a value from the picklist or type an exact match."
 msgstr ""
@@ -9505,7 +9908,8 @@ msgstr ""
 
 #, python-format
 msgid ""
-"%(street)s %(number)s, %(postcode)s %(urb)s, %(l10n_state)s, %(l10n_country)s"
+"%(street)s %(number)s, %(postcode)s %(urb)s, %(l10n_region)s, "
+"%(l10n_country)s"
 msgstr ""
 
 #, python-format
@@ -10093,7 +10497,7 @@ msgstr ""
 msgid ""
 "Cannot save address.\n"
 "\n"
-"Does the state [%s]\n"
+"Does the region [%s]\n"
 "exist in country [%s] ?"
 msgstr ""
 
@@ -10517,7 +10921,7 @@ msgstr ""
 msgid "Reminders for the current patient"
 msgstr ""
 
-msgid "Sent"
+msgid "Generated"
 msgstr ""
 
 msgid "Category - Type"
@@ -10565,9 +10969,6 @@ msgid ""
 "Data: %s"
 msgstr ""
 
-msgid "Inbox Message Actions:"
-msgstr ""
-
 msgid "Activate patient"
 msgstr ""
 
@@ -11255,7 +11656,7 @@ msgid ""
 msgstr ""
 
 #, python-format
-msgid "Select branch (of praxis [%s]) which you are logging in from.\n"
+msgid "Select the branch of praxis [%s] which you are logging in from.\n"
 msgstr ""
 
 msgid "Praxis branch selection ..."
@@ -11562,6 +11963,12 @@ msgstr ""
 msgid "List of addresses related to this person."
 msgstr ""
 
+msgid "Map"
+msgstr ""
+
+msgid "Show selected address on map"
+msgstr ""
+
 msgid "Adding new address"
 msgstr ""
 
@@ -11743,13 +12150,90 @@ msgstr "Ekstern patient ID"
 msgid "generic multi choice dialog"
 msgstr ""
 
-msgid "Search in list"
-msgstr ""
-
-msgid "Monty the Serpent && the FSF Present"
+msgid "Deleting list items"
 msgstr ""
 
-msgid "Free eMedicine"
+#, python-format
+msgid ""
+"You have selected %s list items.\n"
+"\n"
+"Really delete all %s items ?"
+msgstr ""
+
+msgid ""
+"Select the items you want to work on.\n"
+"\n"
+"A discontinuous selection may depend on your holding down a platform-"
+"dependent modifier key (<CTRL>, <ALT>, etc) or key combination (eg. <CTRL-"
+"SHIFT> or <CTRL-ALT>) while clicking."
+msgstr ""
+
+msgid "List Item Actions:"
+msgstr ""
+
+msgid "Add (<INS>)"
+msgstr ""
+
+msgid "Delete (<DEL>)"
+msgstr ""
+
+msgid "Find (<CTRL-F>)"
+msgstr ""
+
+#, python-format
+msgid "Find next [%s] (<CTRL-N>)"
+msgstr ""
+
+msgid "Row tooltip"
+msgstr ""
+
+msgid "Row data (formatted as text)"
+msgstr ""
+
+msgid "Row content (as one line)"
+msgstr ""
+
+msgid "Row content (one line per column)"
+msgstr ""
+
+#, python-format
+msgid "Column &%s: \"%s\" [#%s]"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "Column &%s: %s"
+msgstr "Dokumenter: %s"
+
+msgid "&Copy to clipboard..."
+msgstr ""
+
+msgid "Append (&+) to clipboard..."
+msgstr ""
+
+#, python-format
+msgid ""
+"%s list items are selected.\n"
+"\n"
+"Really delete all %s items ?"
+msgstr ""
+
+msgid "Enter the search term:"
+msgstr ""
+
+msgid "List search"
+msgstr ""
+
+#, python-format
+msgid ""
+"Current search term: [[%s]]\n"
+"\n"
+"%s"
+msgstr ""
+
+msgid "Monty the Serpent && the FSF Present"
+msgstr ""
+
+msgid "Free eMedicine"
 msgstr ""
 
 #, python-format
@@ -11893,6 +12377,9 @@ msgstr ""
 msgid "Unknown: ?"
 msgstr ""
 
+msgid "The text has been copied into the clipboard."
+msgstr ""
+
 msgid "file2clipboard"
 msgstr ""
 
@@ -11900,6 +12387,40 @@ msgstr ""
 msgid "The file [%s] has been copied into the clipboard."
 msgstr ""
 
+msgid "programmer forgot to specify error message"
+msgstr ""
+
+msgid ""
+"\n"
+"\n"
+"Please consult the error log for all the gory details !"
+msgstr ""
+
+msgid "generic error message"
+msgstr ""
+
+msgid "programmer forgot to specify info message"
+msgstr ""
+
+msgid "generic info message"
+msgstr ""
+
+msgid "programmer forgot to specify warning"
+msgstr ""
+
+msgid "generic warning message"
+msgstr "generisk advarselsbesked"
+
+msgid "Editing EDC"
+msgstr ""
+
+#, python-format
+msgid ""
+"Really delete the EDC documented previously ?\n"
+"\n"
+" EDC: %s"
+msgstr ""
+
 #, python-format
 msgid ""
 "Algorithm: %s\n"
@@ -12007,15 +12528,15 @@ msgstr ""
 msgid "Firstname"
 msgstr ""
 
-msgid "Nickname"
-msgstr ""
-
 msgid "DOB"
 msgstr ""
 
 msgid "last visit"
 msgstr ""
 
+msgid "Nickname / Comment"
+msgstr ""
+
 msgid "found via"
 msgstr ""
 
@@ -12193,1484 +12714,1382 @@ msgstr ""
 msgid "In case of emergency contact:"
 msgstr ""
 
+msgid "The preparation (form) of the substance or brand."
+msgstr ""
+
+msgid "A substance with optional strength or a brand."
+msgstr ""
+
+msgid "The medical aim for consuming this substance."
+msgstr ""
+
+msgid "not tolerated:"
+msgstr ""
+
+msgid "discontinued due to allergy or intolerance"
+msgstr ""
+
+msgid "Documented an allergy"
+msgstr ""
+
+#, python-format
 msgid ""
+"An allergy was documented against the substance:\n"
 "\n"
-"Please select the default drug data source from the list below.\n"
+"  [%s]\n"
 "\n"
-"Note that to actually use it you need to have the database installed, too."
+"This substance was taken with the multi-component brand:\n"
+"\n"
+"  [%s (%s)]\n"
+"\n"
+"Note that ALL components of this brand were discontinued."
 msgstr ""
 
-msgid "Drug data source"
+msgid "disapproved"
 msgstr ""
 
-msgid "Configuring default drug data source"
+msgid "Substances consumed by the patient:"
 msgstr ""
 
-msgid "No default drug database configured."
+msgid "Showing consumable substances."
 msgstr ""
 
-msgid "There is no default drug database configured."
+msgid "Application"
 msgstr ""
 
-msgid "Jumping to drug database"
+msgid "never"
 msgstr ""
 
 #, python-format
-msgid "Cannot call IFAP via [%s]."
+msgid "%s, last confirmed %s\n"
 msgstr ""
 
 #, python-format
-msgid "Cannot create IFAP <-> GNUmed transfer file [%s]."
+msgid "Comment (%s): %%s\n"
 msgstr ""
 
-msgid "Current medication"
+msgid "reaction not recorded"
 msgstr ""
 
-msgid ""
-"\n"
-"The ATC codes as known to GNUmed.\n"
+msgid "GFR: unknown"
 msgstr ""
 
-msgid "Showing ATC codes."
+msgid "GFR reported by path lab"
 msgstr ""
 
-msgid "Choose an ATC import config file"
-msgstr ""
+#, fuzzy
+msgid "<no components>"
+msgstr "Dokumenter:"
 
-msgid "config files"
+msgid "Adding substance intake entry"
 msgstr ""
 
-msgid "importing ATC reference data"
+#, python-format
+msgid ""
+"The patient is already taking\n"
+"\n"
+" %s\n"
+"\n"
+"You will want to adjust the schedule\n"
+"rather than document the intake twice."
 msgstr ""
 
-msgid "Successfully imported ATC reference data."
+msgid "Input incomplete/invalid for saving as substance intake."
 msgstr ""
 
-msgid "Importing ATC reference data failed."
+#, python-format
+msgid "Discontinued (%s) in the future (now: %s)!"
 msgstr ""
 
-msgid "Select an ATC (Anatomical-Therapeutic-Chemical) code."
+#, python-format
+msgid "Discontinued (%s) before started (%s) !"
 msgstr ""
 
-msgid "Cannot delete this substance. It is in use."
+msgid "Cannot add duplicate of (maybe inactive) substance intake."
 msgstr ""
 
+#, python-format
 msgid ""
 "\n"
-"These are the consumable substances registered with GNUmed.\n"
+"[%s]\n"
+"\n"
+"It may be prudent to edit (before deletion) the details\n"
+"of this substance intake entry so as to leave behind\n"
+"some indication of why it was deleted.\n"
 msgstr ""
 
-msgid "Showing consumable substances."
+msgid "Deleting medication / substance intake"
 msgstr ""
 
-msgid "Import"
+msgid "Allow editing of substance intake entry before deletion."
 msgstr ""
 
-msgid "Import consumable substances from a drug database."
+msgid "Delete immediately without editing first."
 msgstr ""
 
-msgid "Cannot edit this substance. It is in use."
+msgid "&Cancel"
 msgstr ""
 
-msgid "Adding new consumable substance"
+msgid "Abort. Do not delete or edit substance intake entry."
 msgstr ""
 
-msgid "Editing consumable substance"
+msgid "Now delete substance intake entry ?"
 msgstr ""
 
-msgid "Cannot save consumable substance. Missing essential input."
+msgid "Adding medication/non-medication substance intake"
 msgstr ""
 
-#, python-format
-msgid "Cannot save consumable substance. %s"
+msgid "Editing medication/non-medication substance intake"
 msgstr ""
 
-msgid "Cannot remove this component from the drug. It is in use."
+msgid "Document an allergy against this substance."
 msgstr ""
 
-msgid ""
-"\n"
-"These are the components in the drug brands known to GNUmed.\n"
+msgid "No medication list template configured."
 msgstr ""
 
-msgid "Showing drug brand components."
+msgid "There is no medication list template configured."
 msgstr ""
 
-msgid "Adding new drug component"
+msgid "Problem loading medication list template."
 msgstr ""
 
-msgid "Editing drug component"
+#, python-format
+msgid "Cannot load medication list template [%s - %s]"
 msgstr ""
 
-msgid "Cannot edit drug component. It is in use."
+msgid "generated medication list document"
 msgstr ""
 
-msgid "Cannot save drug component. Invalid or missing essential input."
+msgid "Select the default prescription template:"
 msgstr ""
 
-msgid "A drug component with optional strength."
+msgid "No prescription template configured."
 msgstr ""
 
-msgid "The preparation (form) of the substance or brand."
+msgid "There is no prescription template configured."
 msgstr ""
 
-msgid "The substance with optional strength."
+msgid "Printing prescription"
 msgstr ""
 
-msgid "Managing components of a drug"
+msgid "Problem loading prescription template."
 msgstr ""
 
 #, python-format
+msgid "Cannot load prescription template [%s - %s]"
+msgstr ""
+
+msgid "generated prescription"
+msgstr ""
+
 msgid ""
-"Cannot manage the components of the branded drug product\n"
-"\n"
-" \"%s\" (%s)\n"
+"These brands have been prescribed but are not listed\n"
+"in the current medication list of this patient.\n"
 "\n"
-"because it is currently taken by patients.\n"
+"Please select those you want added to the medication list."
 msgstr ""
 
-msgid "Pick the substances which are components of this drug."
+msgid "Newly prescribed drugs"
 msgstr ""
 
-msgid "Components of drug"
+msgid "Add to medication list"
 msgstr ""
 
-#, python-format
-msgid ""
-"Adjust the components of \"%s\"\n"
-"\n"
-"The drug must contain at least one component. Any given\n"
-"substance can only be included once per drug."
+msgid "Timeframe"
 msgstr ""
 
-msgid "Managing components of a drug ..."
+#, python-format
+msgid "%s <fake>"
 msgstr ""
 
-msgid "not in use"
+msgid "Cannot edit more than one substance at once."
 msgstr ""
 
-#, python-format
-msgid "ATC: %s\n"
+msgid "Cannot delete more than one substance at once."
 msgstr ""
 
-msgid "Editing medication"
+msgid "Cannot create allergy from more than one substance at once."
 msgstr ""
 
-#, python-format
 msgid ""
-"Cannot edit the medication\n"
-"\n"
-" \"%s\" (%s)\n"
 "\n"
-"because it is a vaccine. Please edit it\n"
-"from the vaccine management section !\n"
+"Select the measurements panel to show in the medications plugin.\n"
 msgstr ""
 
-msgid "Deleting medication"
-msgstr ""
+#, fuzzy
+msgid "Measurements panel"
+msgstr "Målinger og resultater:"
 
-#, python-format
-msgid ""
-"Cannot delete the medication\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is a vaccine. Please delete it\n"
-"from the vaccine management section !\n"
+msgid "Configuring medications plugin measurements panel"
 msgstr ""
 
-msgid ""
-"\n"
-"These are the drug brands known to GNUmed.\n"
+msgid "EDC (!?!):"
 msgstr ""
 
-msgid "Showing branded drugs."
+msgid "EDC:"
 msgstr ""
 
-msgid "Import substances and brands from a drug database."
+#, python-format
+msgid "%.1f (%s ago)"
 msgstr ""
 
-msgid "Editing drug"
+msgid "eGFR:"
 msgstr ""
 
 #, python-format
-msgid ""
-"Cannot edit the branded drug product\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is currently taken by patients.\n"
+msgid "eGFR: %.1f (%s)"
 msgstr ""
 
-msgid "Adding new drug brand"
+msgid "Enter vaccination given"
 msgstr ""
 
-msgid "Editing drug brand"
+msgid "Unsaved progress note"
 msgstr ""
 
-msgid "Manage consumable substances"
+msgid ""
+"This progress note has not been saved yet.\n"
+"\n"
+"Do you want to save it or discard it ?\n"
+"\n"
 msgstr ""
 
-msgid "Cannot edit drug brand. It is in use."
+msgid "Save this progress note"
 msgstr ""
 
-msgid "Checking brand data"
+msgid "Discard this progress note"
 msgstr ""
 
-#, python-format
-msgid ""
-"The brand information you entered:\n"
-"\n"
-" [%s %s]\n"
-"\n"
-"already exists as a drug product."
+msgid "Save all remaining unsaved progress notes"
 msgstr ""
 
 msgid ""
-"You have not selected any substances\n"
-"as drug components.\n"
-"\n"
-"Without components you will not be able to\n"
-"use this drug for documenting patient care.\n"
+"Add editor for a new unassociated progress note.\n"
 "\n"
-"Are you sure you want to save\n"
-"it without components ?"
+"There is a configuration option whether or not to\n"
+"allow several new unassociated progress notes at once."
 msgstr ""
 
-msgid "Cannot save branded drug. Invalid or missing essential input."
+msgid "Save progress note into medical record and close this editor."
 msgstr ""
 
-msgid ""
-"The brand name of the drug.\n"
-"\n"
-"Note: a brand name will need to be linked to\n"
-"one or more components before it can be used,\n"
-"except in the case of fake (generic) vaccines."
+msgid "Clear this progress note editor."
 msgstr ""
 
-msgid "The medical aim for consuming this substance."
+msgid ""
+"Discard progress note and close this editor. You will loose any data already "
+"typed into this editor !"
 msgstr ""
 
-msgid "not tolerated:"
+msgid "Problem saving progress note: duplicate information ?"
 msgstr ""
 
-msgid "discontinued due to allergy or intolerance"
+msgid "label missing"
 msgstr ""
 
-msgid "Documented an allergy"
+msgid "soap cat missing"
 msgstr ""
 
-#, python-format
-msgid ""
-"An allergy was documented against the substance:\n"
-"\n"
-"  [%s]\n"
-"\n"
-"This substance was taken with the multi-component brand:\n"
-"\n"
-"  [%s (%s)]\n"
-"\n"
-"Note that ALL components of this brand were discontinued."
+msgid "Enter a descriptive name for this new problem:"
 msgstr ""
 
-msgid "disapproved"
+msgid "Creating a problem (episode) to save the notelet under ..."
 msgstr ""
 
-msgid "Substances consumed by the patient:"
+msgid "Error saving progress note."
 msgstr ""
 
-msgid "Intake"
+msgid "Error saving embedded data."
 msgstr ""
 
-msgid "Application"
+msgid "Visit Purpose"
 msgstr ""
 
-msgid "never"
+msgid "History Taken"
 msgstr ""
 
-#, python-format
-msgid "%s, last confirmed %s\n"
+msgid "Findings"
 msgstr ""
 
-#, python-format
-msgid "Comment (%s): %%s\n"
+msgid "save"
 msgstr ""
 
-msgid "reaction not recorded"
+msgid "save clinical note in EMR"
 msgstr ""
 
-msgid "GFR: unknown"
+msgid "discard"
 msgstr ""
 
-msgid "GFR reported by path lab"
+msgid "discard clinical note"
 msgstr ""
 
-#, python-format
-msgid ""
-"The patient is already taking\n"
-"\n"
-" %s\n"
-"\n"
-"You will want to adjust the schedule\n"
-"rather than document the intake twice."
+msgid "clinical progress note"
 msgstr ""
 
-msgid "Adding substance intake entry"
+msgid "Select files to add to the export area"
 msgstr ""
 
-msgid "Input incomplete/invalid for saving as substance intake."
+msgid "Adding files to export area"
 msgstr ""
 
 #, python-format
-msgid "Discontinued (%s) in the future (now: %s)!"
+msgid ""
+"Cannot add (some of) the following files to the export area:\n"
+"%s "
 msgstr ""
 
-#, python-format
-msgid "Discontinued (%s) before started (%s) !"
+msgid "Select the documents to be put into the export area:"
 msgstr ""
 
-msgid "Cannot add duplicate of (maybe inactive) substance intake."
+msgid "clipboard"
+msgstr ""
+
+msgid "Loading clipboard item (saved to file) into export area"
 msgstr ""
 
 #, python-format
 msgid ""
-"\n"
-"[%s]\n"
-"\n"
-"It may be prudent to edit (before deletion) the details\n"
-"of this substance intake entry so as to leave behind\n"
-"some indication of why it was deleted.\n"
+"Cannot add the following clip to the export area:\n"
+"%s "
 msgstr ""
 
-msgid "Deleting medication / substance intake"
+msgid "scan"
 msgstr ""
 
-msgid "Allow editing of substance intake entry before deletion."
+msgid "Scanning files into export area"
 msgstr ""
 
-msgid "Delete immediately without editing first."
+#, python-format
+msgid ""
+"Cannot add (some of) the following scans to the export area:\n"
+"%s "
 msgstr ""
 
-msgid "&Cancel"
+msgid "Deleting document from export area."
 msgstr ""
 
-msgid "Abort. Do not delete or edit substance intake entry."
+#, python-format
+msgid ""
+"Really remove %s selected document(s)\n"
+"from the patient export area ?"
 msgstr ""
 
-msgid "Now delete substance intake entry ?"
+msgid "Error printing documents."
 msgstr ""
 
-msgid "Adding medication/non-medication substance intake"
+#, python-format
+msgid "Printing [%s]"
 msgstr ""
 
-msgid "Editing medication/non-medication substance intake"
+#, python-format
+msgid ""
+"Printed:\n"
+" - %s"
 msgstr ""
 
-msgid "Document an allergy against this substance."
+msgid "Select the directory into which to export the documents."
 msgstr ""
 
-msgid "No medication list template configured."
-msgstr ""
+#, fuzzy
+msgid "Saving export area documents"
+msgstr "Dokumenter:"
 
-msgid "There is no medication list template configured."
+#, python-format
+msgid ""
+"The chosen export directory\n"
+"\n"
+" [%s]\n"
+"\n"
+"already contains files. Do you still want to save the\n"
+"selected export area documents into that directory ?\n"
+"\n"
+"(this is useful for including the external documents\n"
+" already stored in or below this directory)\n"
+"\n"
+"[NO] will create a subdirectory for you and use that."
 msgstr ""
 
-msgid "Problem loading medication list template."
+msgid ""
+"Create descriptive metadata files\n"
+"and save them alongside the\n"
+"selected export area documents ?"
 msgstr ""
 
 #, python-format
-msgid "Cannot load medication list template [%s - %s]"
+msgid ""
+"Saved to [%s]:\n"
+" - %s"
 msgstr ""
 
-msgid "generated medication list document"
+#, python-format
+msgid ""
+"Saved documents into directory:\n"
+"\n"
+" %s"
 msgstr ""
 
-msgid "Select the default prescription template:"
+msgid "If you wish to include an existing directory select it here:"
 msgstr ""
 
-msgid "No prescription template configured."
+msgid "Error burning documents to CD/DVD."
 msgstr ""
 
-msgid "There is no prescription template configured."
+#, fuzzy
+msgid "Burning documents"
+msgstr "Dokumenter:"
+
+#, python-format
+msgid ""
+"Burned onto CD/DVD:\n"
+" - %s"
 msgstr ""
 
-msgid "Printing prescription"
+msgid "Error mailing documents."
 msgstr ""
 
-msgid "Problem loading prescription template."
+msgid "Mailing documents"
 msgstr ""
 
 #, python-format
-msgid "Cannot load prescription template [%s - %s]"
+msgid ""
+"Mailed:\n"
+" - %s"
 msgstr ""
 
-msgid "generated prescription"
+msgid ""
+"Please enter the fax number here !\n"
+"\n"
+"It can be left empty if the external\n"
+"fax software knows how to get the number."
 msgstr ""
 
+#, fuzzy
+msgid "Faxing documents"
+msgstr "Dokumenter:"
+
+#, python-format
 msgid ""
-"These brands have been prescribed but are not listed\n"
-"in the current medication list of this patient.\n"
+"Error faxing documents to\n"
 "\n"
-"Please select those you want added to the medication list."
+"  %s"
 msgstr ""
 
-msgid "Newly prescribed drugs"
+#, python-format
+msgid ""
+"Faxed to [%s]:\n"
+" - %s"
 msgstr ""
 
-msgid "Add to medication list"
+msgid "<gm-mail_doc(.bat) not found>"
 msgstr ""
 
-msgid "Duration / Until"
+msgid "<gm-fax_doc(.bat) not found>"
 msgstr ""
 
-#, python-format
-msgid "%s <fake>"
+msgid "<gm-burn_doc(.bat) not found>"
 msgstr ""
 
-msgid "Cannot edit more than one substance at once."
+msgid "Cannot accept new documents. No active patient."
 msgstr ""
 
-msgid "Cannot delete more than one substance at once."
+#, python-format
+msgid "Extracting files from folder [%s] ..."
 msgstr ""
 
-msgid "Cannot create allergy from more than one substance at once."
+msgid "Drag&Drop"
 msgstr ""
 
+msgid "Created"
+msgstr ""
+
+#, python-format
 msgid ""
+"Error exporting form template\n"
 "\n"
-"Select the measurements panel to show in the medications plugin.\n"
+" \"%s\" (%s)"
 msgstr ""
 
-#, fuzzy
-msgid "Measurements panel"
-msgstr "Målinger og resultater:"
-
-msgid "Configuring medications plugin measurements panel"
+msgid "Letter template export"
 msgstr ""
 
-msgid "EDC (!?!):"
+msgid ""
+"Cannot connect to OpenOffice.\n"
+"\n"
+"The UNO bridge module for Python\n"
+"is not installed."
 msgstr ""
 
-msgid "EDC:"
+msgid "Letter writer"
 msgstr ""
 
 #, python-format
-msgid "%.1f (%s ago)"
+msgid ""
+"Cannot connect to OpenOffice.\n"
+"\n"
+"You may want to increase the option\n"
+"\n"
+" <%s>"
 msgstr ""
 
-msgid "eGFR:"
+msgid "OOo startup time"
 msgstr ""
 
-#, fuzzy, python-format
-msgid "%s%s%s (%s ago)"
-msgstr "%s: tilfælde (%s)"
+msgid "No document template selected."
+msgstr ""
 
 #, python-format
-msgid "eGFR: %.1f (%s)"
+msgid "Invalid document template [%s - %s (%s)]"
 msgstr ""
 
-msgid "Enter vaccination given"
+msgid "Generating document from template"
 msgstr ""
 
-msgid "Unsaved progress note"
+msgid "Error generating document printout."
 msgstr ""
 
-msgid ""
-"This progress note has not been saved yet.\n"
-"\n"
-"Do you want to save it or discard it ?\n"
-"\n"
+msgid "Generating document printout"
 msgstr ""
 
-msgid "Save this progress note"
+#, python-format
+msgid "Printed: %s"
 msgstr ""
 
-msgid "Discard this progress note"
+msgid "Adding new form template"
 msgstr ""
 
-msgid "Save all remaining unsaved progress notes"
+msgid "Editing form template"
+msgstr ""
+
+msgid "Deleting form template."
 msgstr ""
 
+#, python-format
 msgid ""
-"Add editor for a new unassociated progress note.\n"
+"Are you sure you want to delete\n"
+"the following form template ?\n"
 "\n"
-"There is a configuration option whether or not to\n"
-"allow several new unassociated progress notes at once."
+" \"%s (%s)\"\n"
+"\n"
+"You can only delete templates which\n"
+"have not yet been used to generate\n"
+"any forms from."
 msgstr ""
 
-msgid "Save progress note into medical record and close this editor."
+msgid "Select letter or form template."
 msgstr ""
 
-msgid "Clear this progress note editor."
+msgid "You must select a template file before saving."
 msgstr ""
 
-msgid ""
-"Discard progress note and close this editor. You will loose any data already "
-"typed into this editor !"
+msgid "You must enter a type for documents created with this template."
 msgstr ""
 
-msgid "Problem saving progress note: duplicate information ?"
+msgid "You must enter a type for this template."
 msgstr ""
 
-msgid "label missing"
+msgid "You must enter a version for this template."
 msgstr ""
 
-msgid "soap cat missing"
+msgid "Missing short name for template."
 msgstr ""
 
-msgid "Enter a descriptive name for this new problem:"
+msgid "Missing long name for template."
 msgstr ""
 
-msgid "Creating a problem (episode) to save the notelet under ..."
+#, fuzzy, python-format
+msgid "last modified %s by %s"
+msgstr " (sidst bekræftet %s)"
+
+msgid "Choose a form template file"
 msgstr ""
 
-msgid "Error saving progress note."
+msgid "Enter a filename to save the template to"
 msgstr ""
 
-msgid "Error saving embedded data."
+msgid "Emergency contact"
 msgstr ""
 
-msgid "Visit Purpose"
+msgid "Primary doctor"
 msgstr ""
 
-msgid "History Taken"
+msgid "in-praxis primary provider"
 msgstr ""
 
-msgid "Findings"
+msgid "This praxis"
 msgstr ""
 
-msgid "save"
+msgid "Bill receiver"
 msgstr ""
 
-msgid "save clinical note in EMR"
+msgid "Receiver"
 msgstr ""
 
-msgid "discard"
+msgid ""
+"Are you sure you want to delete this\n"
+"description from the document ?\n"
 msgstr ""
 
-msgid "discard clinical note"
+msgid "Deleting document description"
 msgstr ""
 
-msgid "clinical progress note"
+msgid "Adding document description"
 msgstr ""
 
-msgid "Select files to add to the export area"
+msgid "Below you can add a document description.\n"
 msgstr ""
 
-msgid "Adding files to export area"
+msgid "Editing document description"
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot add (some of) the following files to the export area:\n"
-"%s "
+msgid "Below you can edit the document description.\n"
 msgstr ""
 
-msgid "Select the documents to be put into the export area:"
+msgid "Select the description you are interested in.\n"
 msgstr ""
 
-msgid "clipboard"
+msgid "Managing document descriptions"
 msgstr ""
 
-msgid "Loading clipboard item (saved to file) into export area"
+msgid "Select the episode under which to file the document ..."
+msgstr ""
+
+msgid "Cannot create new document."
+msgstr ""
+
+msgid "saving document"
 msgstr ""
 
 #, python-format
-msgid ""
-"Cannot add the following clip to the export area:\n"
-"%s "
+msgid "Imported new document from %s."
 msgstr ""
 
-msgid "scan"
+msgid "Successfully saved new document."
 msgstr ""
 
-msgid "Scanning files into export area"
+msgid "Successfully saved the new document."
 msgstr ""
 
 #, python-format
 msgid ""
-"Cannot add (some of) the following scans to the export area:\n"
-"%s "
+"The reference ID for the new document is:\n"
+"\n"
+" <%s>\n"
+"\n"
+"You probably want to write it down on the\n"
+"original documents.\n"
+"\n"
+"If you don't care about the ID you can switch\n"
+"off this message in the GNUmed configuration.\n"
 msgstr ""
 
-msgid "Deleting document from export area."
+msgid "Saving document"
 msgstr ""
 
 #, python-format
 msgid ""
-"Really remove %s selected document(s)\n"
-"from the patient export area ?"
+"Successfully imported files as document.\n"
+"\n"
+"Do you want to delete imported files from the filesystem ?\n"
+"\n"
+" %s\n"
+"\n"
+"Note that temporary files will be deleted anyway."
 msgstr ""
 
-msgid "Error printing documents."
+msgid "Removing files"
 msgstr ""
 
-#, python-format
-msgid "Printing [%s]"
+msgid "Enter a comment on the document."
+msgstr ""
+
+msgid "User defined"
+msgstr ""
+
+msgid "In use"
 msgstr ""
 
 #, python-format
 msgid ""
-"Printed:\n"
-" - %s"
+"Cannot delete document type\n"
+" [%s]\n"
+"because it is currently in use."
 msgstr ""
 
-msgid "Select the directory into which to export the documents."
+msgid "deleting document type"
 msgstr ""
 
-#, fuzzy
-msgid "Saving export area documents"
-msgstr "Dokumenter:"
-
 #, python-format
 msgid ""
-"The chosen export directory\n"
+"From the list below select the document type you want\n"
+"all documents currently classified as:\n"
 "\n"
-" [%s]\n"
+" \"%s\"\n"
 "\n"
-"is not empty. Do you want to use it for saving the\n"
-"export area documents into, nevertheless ?\n"
+"to be changed to.\n"
 "\n"
-"(this can be useful for including external documents)\n"
+"Be aware that this change will be applied to ALL such documents. If there\n"
+"are many documents to change it can take quite a while.\n"
 "\n"
-"[NO] will create a subdirectory for you and use that."
+"Make sure this is what you want to happen !\n"
 msgstr ""
 
-#, python-format
-msgid ""
-"Saved to [%s]:\n"
-" - %s"
+msgid "Reassigning document type"
 msgstr ""
 
-#, python-format
-msgid ""
-"Saved documents into directory:\n"
-"\n"
-" %s"
+msgid "Select the document type."
 msgstr ""
 
-msgid "If you wish to include an existing directory select it here:"
+msgid "Cannot create document type without name."
 msgstr ""
 
-msgid "Error burning documents to CD/DVD."
+msgid "+/-"
 msgstr ""
 
-#, fuzzy
-msgid "Burning documents"
-msgstr "Dokumenter:"
-
-#, python-format
-msgid ""
-"Burned onto CD/DVD:\n"
-" - %s"
+msgid "!"
 msgstr ""
 
-msgid "Error mailing documents."
+msgid "comment"
 msgstr ""
 
-msgid "Mailing documents"
+msgid "(you are the primary reviewer)"
 msgstr ""
 
 #, python-format
-msgid ""
-"Mailed:\n"
-" - %s"
+msgid "(someone else is the intended reviewer: %s)"
 msgstr ""
 
+#, python-format
 msgid ""
-"Please enter the fax number here !\n"
-"\n"
-"It can be left empty if the external\n"
-"fax software knows how to get the number."
+"Cannot create episode\n"
+" [%s]"
 msgstr ""
 
-#, fuzzy
-msgid "Faxing documents"
-msgstr "Dokumenter:"
+msgid "Editing document properties"
+msgstr ""
 
 #, python-format
-msgid ""
-"Error faxing documents to\n"
-"\n"
-"  %s"
+msgid "Cannot change document type to [%s]."
 msgstr ""
 
 #, python-format
 msgid ""
-"Faxed to [%s]:\n"
-" - %s"
+"Cannot link the document to episode\n"
+"\n"
+" [%s]"
 msgstr ""
 
-msgid "<gm-mail_doc(.bat) not found>"
+msgid "Error setting \"reviewed\" status of this document."
 msgstr ""
 
-msgid "<gm-fax_doc(.bat) not found>"
+msgid "Error setting responsible clinician for this document."
 msgstr ""
 
-msgid "<gm-burn_doc(.bat) not found>"
-msgstr ""
-
-msgid "Cannot accept new documents. No active patient."
-msgstr ""
-
-#, python-format
-msgid "Extracting files from folder [%s] ..."
-msgstr ""
-
-msgid "Drag&Drop"
-msgstr ""
-
-msgid "Created"
+msgid "Error setting \"reviewed\" status of this part."
 msgstr ""
 
 #, python-format
 msgid ""
-"Error exporting form template\n"
+"Cannot set page number to [%s] because\n"
+"another page with this number exists.\n"
 "\n"
-" \"%s\" (%s)"
-msgstr ""
-
-msgid "Letter template export"
+"Page numbers in use:\n"
+"\n"
+" %s"
 msgstr ""
 
-msgid ""
-"Cannot connect to OpenOffice.\n"
-"\n"
-"The UNO bridge module for Python\n"
-"is not installed."
+msgid "Editing document part properties"
 msgstr ""
 
-msgid "Letter writer"
+msgid "Error saving part properties."
 msgstr ""
 
-#, python-format
 msgid ""
-"Cannot connect to OpenOffice.\n"
+"No images could be acquired from the source.\n"
 "\n"
-"You may want to increase the option\n"
+"This may mean the scanner driver is not properly installed.\n"
 "\n"
-" <%s>"
-msgstr ""
-
-msgid "OOo startup time"
+"On Windows you must install the TWAIN Python module\n"
+"while on Linux and MacOSX it is recommended to install\n"
+"the XSane package."
 msgstr ""
 
-msgid "No document template selected."
+msgid "Acquiring images"
 msgstr ""
 
-#, python-format
-msgid "Invalid document template [%s - %s (%s)]"
+msgid "directory dropped on client"
 msgstr ""
 
-msgid "Generating document from template"
+msgid "file dropped on client"
 msgstr ""
 
-msgid "Error generating document printout."
+msgid "other documents"
 msgstr ""
 
-msgid "Generating document printout"
+msgid "path"
 msgstr ""
 
-#, python-format
-msgid "Printed: %s"
+msgid "No parts to save. Really save an empty document as a reference ?"
 msgstr ""
 
-msgid "Adding new form template"
+msgid "No parts to save. Aquire some parts first."
 msgstr ""
 
-msgid "Editing form template"
+msgid "No document type applied. Choose a document type"
 msgstr ""
 
-msgid "Deleting form template."
+msgid "You must select an episode to save this document under."
 msgstr ""
 
-#, python-format
 msgid ""
-"Are you sure you want to delete\n"
-"the following form template ?\n"
-"\n"
-" \"%s (%s)\"\n"
-"\n"
-"You can only delete templates which\n"
-"have not yet been used to generate\n"
-"any forms from."
+"You need to select from the list of staff members the doctor who is intended "
+"to sign the document."
 msgstr ""
 
-msgid "Select letter or form template."
+msgid "There is no scanner support installed on this machine."
 msgstr ""
 
-msgid "You must select a template file before saving."
+msgid "Cannot find an active scanner."
 msgstr ""
 
-msgid "You must enter a type for documents created with this template."
+msgid "Select an image capture device"
 msgstr ""
 
-msgid "You must enter a type for this template."
+msgid "device selection"
 msgstr ""
 
-msgid "You must enter a version for this template."
+msgid ""
+"No pages could be acquired from the source.\n"
+"\n"
+"This may mean the scanner driver is not properly installed.\n"
+"\n"
+"On Windows you must install the TWAIN Python module\n"
+"while on Linux and MacOSX it is recommended to install\n"
+"the XSane package."
 msgstr ""
 
-msgid "Missing short name for template."
+msgid "acquiring page"
 msgstr ""
 
-msgid "Missing long name for template."
+msgid "captured by imaging device"
 msgstr ""
 
-#, fuzzy, python-format
-msgid "last modified %s by %s"
-msgstr " (sidst bekræftet %s)"
+msgid "Choose a file"
+msgstr ""
 
-msgid "Choose a form template file"
+msgid "all files (Win)"
 msgstr ""
 
-msgid "Enter a filename to save the template to"
+msgid "picked from storage media"
 msgstr ""
 
-msgid "Emergency contact"
+msgid "pasted from clipboard"
 msgstr ""
 
-msgid "Primary doctor"
+msgid "No part selected for viewing."
 msgstr ""
 
-msgid "in-praxis primary provider"
+#, python-format
+msgid ""
+"Cannot display document part:\n"
+"%s"
 msgstr ""
 
-msgid "This praxis"
+msgid "displaying part"
 msgstr ""
 
-msgid "Hospital stay"
+msgid "No part selected for removal."
 msgstr ""
 
-msgid "Bill receiver"
+msgid "Cannot add document description."
 msgstr ""
 
-msgid "Receiver"
+msgid "Error setting \"reviewed\" status of new document."
 msgstr ""
 
+#, python-format
 msgid ""
-"Are you sure you want to delete this\n"
-"description from the document ?\n"
+"Source: %s\n"
+"File: %s\n"
+"\n"
+"%s"
 msgstr ""
 
-msgid "Deleting document description"
+msgid "Document part does not seem to exist in database !"
 msgstr ""
 
-msgid "Adding document description"
+msgid "showing document"
 msgstr ""
 
-msgid "Below you can add a document description.\n"
+msgid "Document list for this patient."
 msgstr ""
 
-msgid "Editing document description"
+msgid "Showing documents."
 msgstr ""
 
-msgid "Below you can edit the document description.\n"
+msgid "Ref #"
 msgstr ""
 
-msgid "Select the description you are interested in.\n"
+#, python-format
+msgid "available documents (%s)"
 msgstr ""
 
-msgid "Managing document descriptions"
+#, python-format
+msgid "unsigned (%s) on top"
 msgstr ""
 
-msgid "Select the episode under which to file the document ..."
+msgid "most recent on top"
 msgstr ""
 
-#, python-format
-msgid "Imported new document from %s."
+msgid "sorted by episode"
 msgstr ""
 
-msgid "Enter a comment on the document."
+msgid "sorted by health issue"
 msgstr ""
 
-msgid "User defined"
+msgid "sorted by type"
 msgstr ""
 
-msgid "In use"
+msgid "Cannot load documents. No active patient."
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot delete document type\n"
-" [%s]\n"
-"because it is currently in use."
+msgid "Part Actions:"
 msgstr ""
 
-msgid "deleting document type"
+msgid "Display part"
 msgstr ""
 
 #, python-format
-msgid ""
-"From the list below select the document type you want\n"
-"all documents currently classified as:\n"
-"\n"
-" \"%s\"\n"
-"\n"
-"to be changed to.\n"
-"\n"
-"Be aware that this change will be applied to ALL such documents. If there\n"
-"are many documents to change it can take quite a while.\n"
-"\n"
-"Make sure this is what you want to happen !\n"
+msgid "%s Sign/Edit properties"
 msgstr ""
 
-msgid "Reassigning document type"
+msgid "Delete part"
 msgstr ""
 
-msgid "Select the document type."
+msgid "Move part"
 msgstr ""
 
-msgid "Cannot create document type without name."
+msgid "Print part"
 msgstr ""
 
-msgid "+/-"
+msgid "Fax part"
 msgstr ""
 
-msgid "!"
+msgid "Mail part"
 msgstr ""
 
-msgid "comment"
+msgid "Export part"
 msgstr ""
 
-msgid "(you are the primary reviewer)"
+msgid "Document Actions:"
 msgstr ""
 
-#, python-format
-msgid "(someone else is the intended reviewer: %s)"
+msgid "Delete document"
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot create episode\n"
-" [%s]"
+msgid "Add parts"
 msgstr ""
 
-msgid "Editing document properties"
+msgid "Add part from clipboard"
 msgstr ""
 
-#, python-format
-msgid "Cannot change document type to [%s]."
+msgid "Print all parts"
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot link the document to episode\n"
-"\n"
-" [%s]"
+msgid "Fax all parts"
 msgstr ""
 
-msgid "Error setting \"reviewed\" status of this document."
+msgid "Mail all parts"
 msgstr ""
 
-msgid "Error setting responsible clinician for this document."
+msgid "Export all parts"
 msgstr ""
 
-msgid "Error setting \"reviewed\" status of this part."
+msgid "Access external original"
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot set page number to [%s] because\n"
-"another page with this number exists.\n"
-"\n"
-"Page numbers in use:\n"
-"\n"
-" %s"
+msgid "Edit corresponding encounter"
 msgstr ""
 
-msgid "Editing document part properties"
+msgid "Select corresponding encounter"
 msgstr ""
 
-msgid "Error saving part properties."
+msgid "Manage descriptions"
 msgstr ""
 
-msgid ""
-"No images could be acquired from the source.\n"
-"\n"
-"This may mean the scanner driver is not properly installed.\n"
-"\n"
-"On Windows you must install the TWAIN Python module\n"
-"while on Linux and MacOSX it is recommended to install\n"
-"the XSane package."
+msgid "Error searching documents."
 msgstr ""
 
-msgid "Acquiring images"
+msgid "loading document list"
 msgstr ""
 
-msgid "other documents"
+#, python-format
+msgid "%s%7s %s:%s (%s)"
 msgstr ""
 
 #, python-format
-msgid "part %s: %s"
+msgid "%s%7s (%s):%s (%s)"
 msgstr ""
 
-msgid "saving document"
+#, python-format
+msgid "%s (unattributed episode)"
 msgstr ""
 
-msgid "No parts to save. Really save an empty document as a reference ?"
+#, python-format
+msgid "part %2s"
 msgstr ""
 
-msgid "No parts to save. Aquire some parts first."
+msgid "Activate as current photo"
 msgstr ""
 
-msgid "No document type applied. Choose a document type"
+msgid ""
+"\n"
+"Select the document into which to move the selected part !\n"
 msgstr ""
 
-msgid "You must select an episode to save this document under."
+msgid "Cannot move document part."
 msgstr ""
 
-msgid ""
-"You need to select from the list of staff members the doctor who is intended "
-"to sign the document."
-msgstr ""
+#, fuzzy
+msgid "Moving document part"
+msgstr "Dokumenter:"
 
-msgid "There is no scanner support installed on this machine."
+msgid "Deleting document part"
 msgstr ""
 
-msgid "Cannot find an active scanner."
-msgstr ""
+#, python-format
+msgid ""
+"Are you sure you want to delete the %s part #%s\n"
+"\n"
+"%sfrom the following document\n"
+"\n"
+" %s (%s)\n"
+"%s\n"
+"Really delete ?\n"
+"\n"
+"(this action cannot be reversed)"
+msgstr ""
 
-msgid "Select an image capture device"
+#, python-format
+msgid ""
+"Cannot %(l10n_action)s document part - %(l10n_action)s command not found.\n"
+"\n"
+"Either of gm-%(action)s_doc or gm-%(action)s_doc.bat\n"
+"must be in the execution path. The command will\n"
+"be passed the filename to %(l10n_action)s."
 msgstr ""
 
-msgid "device selection"
+#, python-format
+msgid "Processing document part: %s"
 msgstr ""
 
+#, python-format
 msgid ""
-"No pages could be acquired from the source.\n"
+"Cannot %(l10n_action)s document part - %(l10n_action)s command failed.\n"
 "\n"
-"This may mean the scanner driver is not properly installed.\n"
+"You may need to check and fix either of\n"
+" gm-%(action)s_doc (Unix/Mac) or\n"
+" gm-%(action)s_doc.bat (Windows)\n"
 "\n"
-"On Windows you must install the TWAIN Python module\n"
-"while on Linux and MacOSX it is recommended to install\n"
-"the XSane package."
+"The command is passed the filename to %(l10n_action)s."
 msgstr ""
 
-msgid "acquiring page"
+#, python-format
+msgid "document part handed over to email program: %s"
 msgstr ""
 
-msgid "Choose a file"
+msgid "print"
 msgstr ""
 
-msgid "all files (Win)"
+msgid "fax"
 msgstr ""
 
-msgid "You must select a part before you can view it."
+msgid "mail"
 msgstr ""
 
-msgid "displaying part"
+msgid "Save document part to directory ..."
 msgstr ""
 
 #, python-format
-msgid ""
-"Cannot display document part:\n"
-"%s"
+msgid "Successfully exported document part as [%s]."
 msgstr ""
 
-msgid "You must select a part before you can delete it."
+#, python-format
+msgid ""
+"Cannot %(l10n_action)s document - %(l10n_action)s command not found.\n"
+"\n"
+"Either of gm-%(action)s_doc or gm-%(action)s_doc.bat\n"
+"must be in the execution path. The command will\n"
+"be passed a list of filenames to %(l10n_action)s."
 msgstr ""
 
-msgid "deleting part"
+#, python-format
+msgid "Processing document: %s"
 msgstr ""
 
 #, python-format
 msgid ""
-"The part has successfully been removed from the document.\n"
-"\n"
-"Do you also want to permanently delete the file\n"
-"\n"
-" [%s]\n"
-"\n"
-"from which this document part was loaded ?\n"
+"Cannot %(l10n_action)s document - %(l10n_action)s command failed.\n"
 "\n"
-"If it is a temporary file for a page you just scanned\n"
-"this makes a lot of sense. In other cases you may not\n"
-"want to lose the file.\n"
+"You may need to check and fix either of\n"
+" gm-%(action)s_doc (Unix/Mac) or\n"
+" gm-%(action)s_doc.bat (Windows)\n"
 "\n"
-"Pressing [YES] will permanently remove the file\n"
-"from your computer.\n"
+"The command is passed a list of filenames to %(l10n_action)s."
 msgstr ""
 
-msgid "Removing document part"
+msgid "Really add the displayed clipboard item into the document ?"
+msgstr ""
+
+msgid "Document part from clipboard"
 msgstr ""
 
-#, python-format
 msgid ""
-"Cannot delete part in file [%s].\n"
+"Cannot access external document - access command not found.\n"
 "\n"
-"You may not have write access to it."
+"Either of gm_access_external_doc.sh or *.bat must be\n"
+"in the execution path. The command will be passed the\n"
+"document type and the reference URL for processing."
 msgstr ""
 
-msgid "Cannot create new document."
+msgid "Accessing external document"
 msgstr ""
 
-msgid "Cannot update document metadata."
+msgid ""
+"Cannot access external document - access command failed.\n"
+"\n"
+"You may need to check and fix either of\n"
+" gm_access_external_doc.sh (Unix/Mac) or\n"
+" gm_access_external_doc.bat (Windows)\n"
+"\n"
+"The command is passed the document type and the\n"
+"external reference URL on the command line."
 msgstr ""
 
-msgid "Cannot add document description."
+msgid "Save document into directory ..."
 msgstr ""
 
-msgid "Error setting \"reviewed\" status of new document."
+#, python-format
+msgid "Successfully exported %s parts into the directory [%s]."
 msgstr ""
 
-msgid "Successfully saved the new document."
+msgid "Are you sure you want to delete the document ?"
 msgstr ""
 
-#, python-format
-msgid ""
-"The reference ID for the new document is:\n"
-"\n"
-" <%s>\n"
-"\n"
-"You probably want to write it down on the\n"
-"original documents.\n"
-"\n"
-"If you don't care about the ID you can switch\n"
-"off this message in the GNUmed configuration."
+msgid "Deleting document"
 msgstr ""
 
-msgid "Saving document"
+msgid "Study date"
 msgstr ""
 
-msgid "Successfully saved new document."
+msgid "Study time"
 msgstr ""
 
-msgid "Document part does not seem to exist in database !"
+msgid "Method"
 msgstr ""
 
-msgid "showing document"
+msgid "Body part"
 msgstr ""
 
-msgid "Document list for this patient."
+msgid "Time"
 msgstr ""
 
-msgid "Showing documents."
+msgid "Cannot connect without port (try 8042)."
 msgstr ""
 
-msgid "Generated"
+#, python-format
+msgid "Connect to [%s] @ port %s as \"%s\"."
 msgstr ""
 
-msgid "Ref #"
+msgid "Cannot connect to PACS."
 msgstr ""
 
 #, python-format
-msgid "available documents (%s)"
+msgid "PACS: Orthanc \"%s\" (AET \"%s\", Version %s, DB v%s)"
 msgstr ""
 
 #, python-format
-msgid "unsigned (%s) on top"
+msgid "GNUmed patient: %s (generic PACS ID)"
 msgstr ""
 
-msgid "most recent on top"
+#, python-format
+msgid "GNUmed patient: \"%(value)s\" @ [%(issuer)s] (stored PACS ID)"
 msgstr ""
 
-msgid "sorted by episode"
+msgid "PACS: no patients with matching IDs found"
 msgstr ""
 
-msgid "sorted by health issue"
+msgid ""
+"PACS: more than one patient with matching IDs found, carefully check studies"
 msgstr ""
 
-msgid "sorted by type"
+#, python-format
+msgid "%s series"
 msgstr ""
 
-msgid "Cannot load documents. No active patient."
+#, fuzzy, python-format
+msgid "%%s (%s series)"
+msgstr "%s: tilfælde (%s)"
+
+msgid "no studies"
 msgstr ""
 
-msgid "Part Actions:"
+#, python-format
+msgid "%s studies"
 msgstr ""
 
-msgid "Display part"
+msgid "Exporting DICOM studies"
+msgstr ""
+
+msgid "Unable to export selected studies."
 msgstr ""
 
 #, python-format
-msgid "%s Sign/Edit properties"
+msgid ""
+"The DICOM studies are %s in compressed size.\n"
+"\n"
+"Really copy to export area ?"
 msgstr ""
 
-msgid "Delete part"
+#, python-format
+msgid "DICOM studies of [%s] from Orthanc PACS \"%s\" (AET \"%s\")"
 msgstr ""
 
-msgid "Move part"
+msgid "Select the directory into which to save the DICOM studies."
 msgstr ""
 
-msgid "Print part"
+msgid "Saving DICOM studies"
 msgstr ""
 
-msgid "Fax part"
+msgid "Unable to save selected studies."
 msgstr ""
 
-msgid "Mail part"
+msgid "Unable to export studies."
 msgstr ""
 
-msgid "Export part"
+#, python-format
+msgid "All DICOM studies of [%s] from Orthanc PACS \"%s\" (AET \"%s\")"
 msgstr ""
 
-msgid "Document Actions:"
+#, fuzzy, python-format
+msgid "%s%s images"
+msgstr "%s: tilfælde (%s)"
+
+msgid "Select the directory from which to recursively upload DICOM files."
 msgstr ""
 
-msgid "Delete document"
+msgid "Delete the uploaded DICOM files now ?"
 msgstr ""
 
-msgid "Add parts"
+msgid ""
+"Some files have not been uploaded.\n"
+"\n"
+"Do you want to delete those DICOM files which have been sent to the PACS "
+"successfully ?"
 msgstr ""
 
-msgid "Add part from clipboard"
+msgid "Uploading DICOM files"
 msgstr ""
 
-msgid "Print all parts"
+msgid "Editing Orthanc content"
 msgstr ""
 
-msgid "Fax all parts"
+#, fuzzy
+msgid "Patient ID"
+msgstr "Dokumenter: %s"
+
+msgid "Birth date"
 msgstr ""
 
-msgid "Mail all parts"
+msgid "Orthanc"
 msgstr ""
 
-msgid "Export all parts"
+#, fuzzy
+msgid "Modifying patient ID"
+msgstr "Internt patient ID"
+
+#, python-format
+msgid ""
+"Really modify %s patient(s) to have the new patient ID\n"
+"\n"
+" [%s]\n"
+"\n"
+"stored in the Orthanc DICOM server ?"
 msgstr ""
 
-msgid "Access external original"
+#, python-format
+msgid "You are logged in as %s%s.%s (%s). DB account <%s>."
 msgstr ""
 
-msgid "Edit corresponding encounter"
+msgid "&Go to plugin ..."
 msgstr ""
 
-msgid "Select corresponding encounter"
+msgid "Check for updates"
 msgstr ""
 
-msgid "Manage descriptions"
+msgid "Check for new releases of the GNUmed client."
 msgstr ""
 
-msgid "Error searching documents."
+msgid "Announce downtime"
 msgstr ""
 
-msgid "loading document list"
+msgid "Announce database maintenance downtime to all connected clients."
 msgstr ""
 
-#, python-format
-msgid "%s%7s %s:%s (%s)"
+msgid "All options"
 msgstr ""
 
-#, python-format
-msgid "%s%7s (%s):%s (%s)"
+msgid "List all options as configured in the database."
 msgstr ""
 
-#, python-format
-msgid "%s (unattributed episode)"
+msgid "Configure the database language"
 msgstr ""
 
-#, python-format
-msgid "part %2s"
+msgid "Welcome message"
 msgstr ""
 
-msgid "Activate as current photo"
+msgid "Configure the database welcome message (all users)."
 msgstr ""
 
-msgid ""
-"\n"
-"Select the document into which to move the selected part !\n"
+msgid "Database ..."
 msgstr ""
 
-msgid "Cannot move document part."
+msgid "Export chunk size"
 msgstr ""
 
-#, fuzzy
-msgid "Moving document part"
-msgstr "Dokumenter:"
+msgid "Configure the chunk size used when exporting BLOBs from the database."
+msgstr ""
 
-msgid "Deleting document part"
+msgid "Email address"
 msgstr ""
 
-#, python-format
-msgid ""
-"Are you sure you want to delete the %s part #%s\n"
-"\n"
-"%sfrom the following document\n"
-"\n"
-" %s (%s)\n"
-"%s\n"
-"Really delete ?\n"
-"\n"
-"(this action cannot be reversed)"
+msgid "The email address of the user for sending bug reports, etc."
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot %(l10n_action)s document part - %(l10n_action)s command not found.\n"
-"\n"
-"Either of gm-%(action)s_doc or gm-%(action)s_doc.bat\n"
-"must be in the execution path. The command will\n"
-"be passed the filename to %(l10n_action)s."
+msgid "Client parameters ..."
 msgstr ""
 
-#, python-format
-msgid "Processing document part: %s"
+msgid "Medication measurements"
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot %(l10n_action)s document part - %(l10n_action)s command failed.\n"
-"\n"
-"You may need to check and fix either of\n"
-" gm-%(action)s_doc (Unix/Mac) or\n"
-" gm-%(action)s_doc.bat (Windows)\n"
-"\n"
-"The command is passed the filename to %(l10n_action)s."
+msgid "Select the measurements panel to show in the medications plugin."
 msgstr ""
 
-#, python-format
-msgid "document part handed over to email program: %s"
+msgid "General measurements"
 msgstr ""
 
-msgid "print"
+msgid "Select the measurements panel to show in the top pane."
 msgstr ""
 
-msgid "fax"
+msgid "Review dialog"
 msgstr ""
 
-msgid "mail"
+msgid "Configure review dialog after document display."
 msgstr ""
 
-msgid "Save document part to directory ..."
+msgid "UUID display"
 msgstr ""
 
-#, python-format
-msgid "Successfully exported document part as [%s]."
-msgstr ""
-
-#, python-format
-msgid ""
-"Cannot %(l10n_action)s document - %(l10n_action)s command not found.\n"
-"\n"
-"Either of gm-%(action)s_doc or gm-%(action)s_doc.bat\n"
-"must be in the execution path. The command will\n"
-"be passed a list of filenames to %(l10n_action)s."
-msgstr ""
-
-#, python-format
-msgid "Processing document: %s"
-msgstr ""
-
-#, python-format
-msgid ""
-"Cannot %(l10n_action)s document - %(l10n_action)s command failed.\n"
-"\n"
-"You may need to check and fix either of\n"
-" gm-%(action)s_doc (Unix/Mac) or\n"
-" gm-%(action)s_doc.bat (Windows)\n"
-"\n"
-"The command is passed a list of filenames to %(l10n_action)s."
-msgstr ""
-
-msgid "Really add the displayed clipboard item into the document ?"
-msgstr ""
-
-msgid "Document part from clipboard"
-msgstr ""
-
-msgid ""
-"Cannot access external document - access command not found.\n"
-"\n"
-"Either of gm_access_external_doc.sh or *.bat must be\n"
-"in the execution path. The command will be passed the\n"
-"document type and the reference URL for processing."
-msgstr ""
-
-msgid "Accessing external document"
-msgstr ""
-
-msgid ""
-"Cannot access external document - access command failed.\n"
-"\n"
-"You may need to check and fix either of\n"
-" gm_access_external_doc.sh (Unix/Mac) or\n"
-" gm_access_external_doc.bat (Windows)\n"
-"\n"
-"The command is passed the document type and the\n"
-"external reference URL on the command line."
-msgstr ""
-
-msgid "Save document into directory ..."
-msgstr ""
-
-#, python-format
-msgid "Successfully exported %s parts into the directory [%s]."
-msgstr ""
-
-msgid "Are you sure you want to delete the document ?"
-msgstr ""
-
-msgid "Deleting document"
-msgstr ""
-
-#, python-format
-msgid "You are logged in as %s%s.%s (%s). DB account <%s>."
-msgstr ""
-
-msgid "&Go to plugin ..."
-msgstr ""
-
-msgid "Check for updates"
-msgstr ""
-
-msgid "Check for new releases of the GNUmed client."
-msgstr ""
-
-msgid "Announce downtime"
-msgstr ""
-
-msgid "Announce database maintenance downtime to all connected clients."
-msgstr ""
-
-msgid "All options"
-msgstr ""
-
-msgid "List all options as configured in the database."
-msgstr ""
-
-msgid "Configure the database language"
-msgstr ""
-
-msgid "Welcome message"
-msgstr ""
-
-msgid "Configure the database welcome message (all users)."
-msgstr ""
-
-msgid "Database ..."
-msgstr ""
-
-msgid "Export chunk size"
-msgstr ""
-
-msgid "Configure the chunk size used when exporting BLOBs from the database."
-msgstr ""
-
-msgid "Email address"
-msgstr ""
-
-msgid "The email address of the user for sending bug reports, etc."
-msgstr ""
-
-msgid "Client parameters ..."
-msgstr ""
-
-msgid "Medication measurements"
-msgstr ""
-
-msgid "Select the measurements panel to show in the medications plugin."
-msgstr ""
-
-msgid "Review dialog"
-msgstr ""
-
-msgid "Configure review dialog after document display."
-msgstr ""
-
-msgid "UUID display"
-msgstr ""
-
-msgid "Configure unique ID dialog on document import."
+msgid "Configure unique ID dialog on document import."
 msgstr ""
 
 msgid "Empty documents"
@@ -13751,6 +14170,12 @@ msgstr ""
 msgid "Configure auto-opening editors for recent problems."
 msgstr ""
 
+msgid "SOAP fields"
+msgstr ""
+
+msgid "Configure SOAP editor - individual SOAP fields vs text editor like"
+msgstr ""
+
 msgid "Progress notes handling ..."
 msgstr ""
 
@@ -13772,6 +14197,9 @@ msgstr ""
 msgid "URL for measurements encyclopedia."
 msgstr ""
 
+msgid "Drug data source"
+msgstr ""
+
 msgid "Select the drug data source."
 msgstr ""
 
@@ -14137,6 +14565,13 @@ msgstr ""
 msgid "Manage dynamic hints suppressed in this patient."
 msgstr ""
 
+msgid "Substance abuse"
+msgstr ""
+
+#, fuzzy
+msgid "Manage substance abuse documentation of this patient."
+msgstr "Ekstern patient ID"
+
 msgid "&Add / Edit ..."
 msgstr ""
 
@@ -14158,26 +14593,49 @@ msgstr ""
 msgid "Show a high-level statistic summary of the EMR."
 msgstr ""
 
-msgid "Text document"
+msgid "Journal (encounters) to file"
 msgstr ""
 
-msgid "Export the EMR of the active patient into a text file"
+msgid ""
+"Save the EMR of the active patient as a chronological journal into a text "
+"file"
 msgstr ""
 
-msgid "Journal"
+msgid "Journal (encounters) to export area"
 msgstr ""
 
 msgid ""
-"Export the EMR of the active patient as a chronological journal into a text "
-"file"
+"Copy EMR of the active patient as a chronological journal into export area"
+msgstr ""
+
+msgid "Journal (mod time) to file"
+msgstr ""
+
+msgid ""
+"Save the EMR of the active patient as journal by last modification time into "
+"a text file"
+msgstr ""
+
+msgid "Journal (mod time) to export area"
+msgstr ""
+
+msgid ""
+"Copy EMR of the active patient as journal by last modification time into "
+"export area"
+msgstr ""
+
+msgid "Text document"
+msgstr ""
+
+msgid "Save the EMR of the active patient into a text file"
 msgstr ""
 
 msgid "MEDISTAR import format"
 msgstr ""
 
 msgid ""
-"GNUmed -> MEDISTAR. Export progress notes of active patient's active "
-"encounter into a text file."
+"GNUmed -> MEDISTAR. Save progress notes of active patient's active encounter "
+"into a text file."
 msgstr ""
 
 msgid "Export as ..."
@@ -14348,19 +14806,40 @@ msgstr ""
 msgid "Show log file"
 msgstr ""
 
-msgid "Show the log file in text viewer."
+msgid "Show log file in text viewer."
 msgstr ""
 
 msgid "Backup log file"
 msgstr ""
 
-msgid "Backup the content of the log to another file."
+msgid "Backup content of the log to another file."
 msgstr ""
 
 msgid "Email log file"
 msgstr ""
 
-msgid "Send the log file to the authors for help."
+msgid "Send log file to the authors for help."
+msgstr ""
+
+msgid "Browse tmp dir"
+msgstr ""
+
+#, python-format
+msgid "Browse temporary directory [%s]."
+msgstr ""
+
+msgid "Browse work dir"
+msgstr ""
+
+#, python-format
+msgid "Browse user working directory [%s]."
+msgstr ""
+
+msgid "Browse internal work dir"
+msgstr ""
+
+#, python-format
+msgid "Browse internal working directory [%s]."
 msgstr ""
 
 msgid "Bug tracker"
@@ -14703,6 +15182,20 @@ msgid "No, only auto-open one editor for a new, unassociated problem."
 msgstr ""
 
 msgid ""
+"When editing progress notes, do you want GNUmed to\n"
+"show individual fields for each of the SOAP categories\n"
+"or do you want to use a text-editor like field for\n"
+"all SOAP categories which can then be set per line\n"
+"of input ?"
+msgstr ""
+
+msgid "Yes, show a dedicated field per SOAP category."
+msgstr ""
+
+msgid "No, use one field for all SOAP categories."
+msgstr ""
+
+msgid ""
 "When a patient is activated GNUmed can\n"
 "be told to switch to a specific plugin.\n"
 "\n"
@@ -14975,529 +15468,932 @@ msgstr ""
 msgid "Test/measurement types"
 msgstr ""
 
-msgid "Vaccination targets (conditions known to be preventable by vaccination)"
+msgid "Vaccination targets (conditions known to be preventable by vaccination)"
+msgstr ""
+
+msgid "Vaccines"
+msgstr ""
+
+msgid "Workplace profiles (which plugins to load)"
+msgstr ""
+
+msgid "Consumable substances"
+msgstr ""
+
+msgid "Billable items"
+msgstr ""
+
+msgid "Reference data sources"
+msgstr ""
+
+msgid "Test/measurement panels/profiles"
+msgstr ""
+
+msgid "Master data management"
+msgstr ""
+
+msgid "Select the list you want to manage:"
+msgstr ""
+
+msgid "No DICOM viewer found."
+msgstr ""
+
+msgid "risk assessment"
+msgstr ""
+
+msgid "cardiovascular risk assessment"
+msgstr ""
+
+#, python-format
+msgid "[arriba] XML result not found in [%s]"
+msgstr ""
+
+msgid "ACS risk assessment calculator not configured."
+msgstr ""
+
+#, python-format
+msgid "Cannot run [%s] !"
+msgstr ""
+
+#, python-format
+msgid "There was a problem accessing the [arriba] result in [%s] !"
+msgstr ""
+
+msgid "[-9999]: <access violation test error>"
+msgstr ""
+
+msgid ""
+"This is a deliberate AccessDenied exception thrown to test the handling of "
+"access violations by means of a decorator."
+msgstr ""
+
+msgid "testing access check for non-existant <admin> role"
+msgstr ""
+
+msgid ""
+"This is a deliberate AccessDenied exception. You should not see this message "
+"because the role is checked in a decorator."
+msgstr ""
+
+msgid "pgAdmin III not found."
+msgstr ""
+
+msgid "Error reloading hook script."
+msgstr ""
+
+msgid "Save current log as..."
+msgstr ""
+
+msgid "log files"
+msgstr ""
+
+#, python-format
+msgid "Log file backed up as [%s]."
+msgstr ""
+
+msgid "Cannot start new encounter. No active patient."
+msgstr ""
+
+msgid "Cannot add health issue. No active patient."
+msgstr ""
+
+msgid "Cannot add episode. No active patient."
+msgstr ""
+
+msgid "Cannot add medication. No active patient."
+msgstr ""
+
+msgid "Cannot add allergy. No active patient."
+msgstr ""
+
+msgid "Cannot manage performed procedures. No active patient."
+msgstr ""
+
+msgid "Cannot manage hospitalizations. No active patient."
+msgstr ""
+
+msgid "Cannot manage external care. No active patient."
+msgstr ""
+
+msgid "Cannot edit occupation. No active patient."
+msgstr ""
+
+msgid "manage vaccinations"
+msgstr ""
+
+msgid "Cannot add vaccinations. No active patient."
+msgstr ""
+
+#, fuzzy
+msgid "manage family history"
+msgstr "Familiehistorik"
+
+msgid "Cannot manage family history. No active patient."
+msgstr ""
+
+msgid "Cannot manage measurements. No active patient."
+msgstr ""
+
+msgid "calculate EDC"
+msgstr ""
+
+msgid "manage suppressed hints"
+msgstr ""
+
+msgid "Cannot manage suppressed hints. No active patient."
+msgstr ""
+
+msgid "Cannot manage smoking status. No active patient."
+msgstr ""
+
+msgid "Cannot show EMR summary. No active patient."
+msgstr ""
+
+msgid "EMR Summary"
+msgstr ""
+
+msgid "Cannot export EMR journal by last modification time. No active patient."
+msgstr ""
+
+msgid "journal_by_last_mod_time"
+msgstr ""
+
+msgid "Save patient's EMR journal as..."
+msgstr ""
+
+msgid "Error exporting patient EMR as journal by last modification time."
+msgstr ""
+
+msgid "EMR journal export"
+msgstr ""
+
+#, python-format
+msgid ""
+"Successfully exported EMR as journal by last modification time into file "
+"[%s]."
+msgstr ""
+
+msgid "Cannot export EMR journal. No active patient."
+msgstr ""
+
+msgid "emr-journal"
+msgstr ""
+
+msgid "Error exporting patient EMR as chronological journal."
+msgstr ""
+
+#, python-format
+msgid "Successfully exported EMR as chronological journal into file [%s]."
+msgstr ""
+
+msgid "EMR journal by last modification time"
+msgstr ""
+
+msgid "EMR journal by encounter"
+msgstr ""
+
+msgid "Cannot add tag to person. No active patient."
+msgstr ""
+
+#, python-format
+msgid "Edit the comment on tag [%s]"
+msgstr ""
+
+msgid "Editing tag comment"
+msgstr ""
+
+msgid "Cannot export patient as GDT. No active patient."
+msgstr ""
+
+msgid "Exported demographics as GDT to clipboard."
+msgstr ""
+
+msgid "Cannot export patient as VCARD. No active patient."
+msgstr ""
+
+msgid "Exported demographics as VCARD to clipboard."
+msgstr ""
+
+msgid "Cannot export patient as XML (LinuxMedNews). No active patient."
+msgstr ""
+
+#, python-format
+msgid "Exported demographics to XML file [%s]."
+msgstr ""
+
+#, python-format
+msgid "Exported demographics to GDT file [%s]."
+msgstr ""
+
+#, python-format
+msgid "Exported demographics to VCARD file [%s]."
+msgstr ""
+
+msgid "Cannot add staff member. No active patient."
+msgstr ""
+
+msgid "Cannot delete patient. No patient active."
+msgstr ""
+
+msgid ""
+"You have to manually close this window to finalize shutting down GNUmed."
+msgstr ""
+
+msgid "This is so that you can inspect the console output at your leisure."
+msgstr ""
+
+msgid "no patient"
+msgstr ""
+
+#, python-format
+msgid "Saved screenshot to file [%s]."
+msgstr ""
+
+msgid "Python version check"
+msgstr ""
+
+#, python-format
+msgid ""
+"You are running Python version\n"
+" %s\n"
+"\n"
+"However, GNUmed wants Python 2.7 to\n"
+"facilitate migration to Python 3.\n"
+"\n"
+"Please upgrade your Python interpreter !"
+msgstr ""
+
+msgid "GNUmed client"
+msgstr ""
+
+msgid "GNUmed stdout/stderr window"
+msgstr ""
+
+msgid "redirecting STDOUT/STDERR to this log window"
+msgstr ""
+
+#, python-format
+msgid ""
+"The database account [%s] cannot be used as a\n"
+"staff member login for GNUmed. There was an\n"
+"error retrieving staff details for it.\n"
+"\n"
+"Please ask your administrator for help.\n"
+msgstr ""
+
+msgid "Checking access permissions"
+msgstr ""
+
+#, python-format
+msgid "Database <%s> on <%s>"
+msgstr ""
+
+#, python-format
+msgid "Branch \"%s\" of praxis \"%s\"\n"
+msgstr ""
+
+msgid "Verifying database"
+msgstr ""
+
+msgid "Connect"
+msgstr ""
+
+msgid "Yes, connect to this database."
+msgstr ""
+
+msgid "Disconnect"
+msgstr ""
+
+msgid "No, do not connect to this database."
+msgstr ""
+
+#, python-format
+msgid ""
+"Cannot find configuration file in any of:\n"
+"\n"
+" %s\n"
+"You may need to use the comand line option\n"
+"\n"
+"\t--conf-file=<FILE>"
+msgstr ""
+
+msgid "Checking configuration files"
+msgstr ""
+
+msgid "GNUmed startup"
+msgstr ""
+
+#, python-format
+msgid ""
+"The currently selected database language ('%s') does\n"
+"not match the current system language ('%s').\n"
+"\n"
+"Do you want to set the database language to '%s' ?\n"
+msgstr ""
+
+msgid "Checking database language settings"
+msgstr ""
+
+#, python-format
+msgid "Set your database language to [%s]."
+msgstr ""
+
+msgid "Don't set"
+msgstr ""
+
+msgid "Do not set your database language now."
+msgstr ""
+
+msgid "Remember to ignore language mismatch"
+msgstr ""
+
+#, python-format
+msgid ""
+"Checking this will make GNUmed remember your decision\n"
+"until the system language is changed.\n"
+"\n"
+"You can also reactivate this inquiry by removing the\n"
+"corresponding \"ignore\" option from the configuration file\n"
+"\n"
+" [%s]"
+msgstr ""
+
+msgid "generic activity"
+msgstr ""
+
+msgid "Access denied"
+msgstr ""
+
+#, python-format
+msgid ""
+"Your account is not set up to access this part of GNUmed:\n"
+"\n"
+"  [%s]"
+msgstr ""
+
+msgid "Save timeline as SVG image under..."
 msgstr ""
 
-msgid "Vaccines"
+msgid "timeline image"
 msgstr ""
 
-msgid "Workplace profiles (which plugins to load)"
+msgid "timeline data"
 msgstr ""
 
-msgid "Consumable substances"
+msgid "Cannot change notebook tabs. No active patient."
 msgstr ""
 
-msgid "Billable items"
+msgid "add plugin ..."
 msgstr ""
 
-msgid "Reference data sources"
+msgid "Cannot activate Allergy Manager. No active patient."
 msgstr ""
 
-msgid "Test/measurement panels/profiles"
+msgid "RR ?"
 msgstr ""
 
-msgid "Master data management"
+#, python-format
+msgid "BMI %s"
 msgstr ""
 
-msgid "Select the list you want to manage:"
+msgid "BMI ?"
 msgstr ""
 
-msgid "No DICOM viewer found."
+msgid "GFR ?"
 msgstr ""
 
-msgid "risk assessment"
+#, python-format
+msgid "GFR %s"
 msgstr ""
 
-msgid "cardiovascular risk assessment"
+#, python-format
+msgid "?EDC %s"
 msgstr ""
 
 #, python-format
-msgid "[arriba] XML result not found in [%s]"
+msgid "EDC %s"
 msgstr ""
 
-msgid "ACS risk assessment calculator not configured."
+msgid "<Age>"
 msgstr ""
 
-#, python-format
-msgid "Cannot run [%s] !"
+msgid "no patient selected"
 msgstr ""
 
 #, python-format
-msgid "There was a problem accessing the [arriba] result in [%s] !"
+msgid "Gender: %s (%s) - %s\n"
 msgstr ""
 
-msgid "[-9999]: <access violation test error>"
+#, python-format
+msgid "Born: %s\n"
 msgstr ""
 
-msgid ""
-"This is a deliberate AcessDenied exception thrown to test the handling of "
-"access violations by means of a decorator."
+#, python-format
+msgid "Died: %s\n"
 msgstr ""
 
-msgid "testing access check for non-existant <admin> role"
+#, python-format
+msgid "At age: %s\n"
 msgstr ""
 
-msgid ""
-"This is a deliberate AcessDenied exception. You should not see this message "
-"because the role is checked in a decorator."
+msgid " (date of birth and age are estimated)\n"
 msgstr ""
 
-msgid "pgAdmin III not found."
+#, python-format
+msgid "%(sex)s  %(dob)s (%(age)s today !)"
 msgstr ""
 
-msgid "Error reloading hook script."
+msgid ""
+"\n"
+"Today is the patient's birthday !\n"
+"\n"
 msgstr ""
 
-msgid "Save current log as..."
+#, python-format
+msgid "Birthday: %s ago\n"
 msgstr ""
 
-msgid "log files"
+#, python-format
+msgid "Birthday: in %s\n"
 msgstr ""
 
 #, python-format
-msgid "Log file backed up as [%s]."
+msgid "Age: %s\n"
 msgstr ""
 
-msgid "Cannot start new encounter. No active patient."
+#, python-format
+msgid "last confirmed %s\n"
 msgstr ""
 
-msgid "Cannot add health issue. No active patient."
+#, python-format
+msgid "Comment (%s): %%s"
 msgstr ""
 
-msgid "Cannot add episode. No active patient."
+#, python-format
+msgid " - expires %s"
 msgstr ""
 
-msgid "Cannot add medication. No active patient."
+#, python-format
+msgid ""
+"Due for %s (since %s%s):\n"
+"%s%s\n"
+"Patient: %s\n"
+"Reminder by: %s"
 msgstr ""
 
-msgid "Cannot add allergy. No active patient."
+msgid "Clinical reminder"
 msgstr ""
 
-msgid "Cannot manage performed procedures. No active patient."
+msgid "Adding automatic dynamic hint"
 msgstr ""
 
-msgid "Cannot manage hospitalizations. No active patient."
+msgid "Editing automatic dynamic hint"
 msgstr ""
 
-msgid "Cannot manage external care. No active patient."
+msgid "Deleting automatic dynamic hint"
 msgstr ""
 
-msgid "Cannot edit occupation. No active patient."
+#, python-format
+msgid ""
+"Really delete this dynamic hint ?\n"
+"\n"
+" [%s]"
 msgstr ""
 
-msgid "manage vaccinations"
+msgid "deleting a dynamic hint"
 msgstr ""
 
-msgid "Cannot add vaccinations. No active patient."
+msgid ""
+"\n"
+"Dynamic hints registered with GNUmed.\n"
 msgstr ""
 
-msgid "Cannot manage family history. No active patient."
+msgid "Showing dynamic hints."
 msgstr ""
 
-msgid "Cannot manage measurements. No active patient."
+msgid "Hint"
 msgstr ""
 
-msgid "calculate EDC"
+msgid "Browse and install automatic dynamic hints data packs"
 msgstr ""
 
-msgid "manage suppressed hints"
-msgstr ""
+#, fuzzy, python-format
+msgid "By: %s"
+msgstr "Dokumenter: %s"
 
-msgid "Cannot manage suppressed hints. No active patient."
+msgid "No entry in field <Source>."
 msgstr ""
 
-msgid "Cannot show EMR summary. No active patient."
+msgid "No entry in field <Conditions>."
 msgstr ""
 
-msgid "EMR Summary"
+msgid "No entry in field <Description>."
 msgstr ""
 
-msgid "Cannot export EMR journal. No active patient."
+msgid "No entry in field <Title>."
 msgstr ""
 
-msgid "Save patient's EMR journal as..."
+msgid "creating a new dynamic hint"
 msgstr ""
 
-msgid "Error exporting patient EMR as chronological journal."
+msgid "updating an existing dynamic hint"
 msgstr ""
 
-msgid "EMR journal export"
+msgid "Deleting suppressed dynamic hint"
 msgstr ""
 
 #, python-format
-msgid "Successfully exported EMR as chronological journal into file [%s]."
+msgid ""
+"Really delete the suppression of this dynamic hint ?\n"
+"\n"
+" [%s]"
 msgstr ""
 
-msgid "Cannot add tag to person. No active patient."
+msgid ""
+"\n"
+"Dynamic hints suppressed in this patient.\n"
 msgstr ""
 
-#, python-format
-msgid "Edit the comment on tag [%s]"
+msgid "Showing suppressed dynamic hints."
 msgstr ""
 
-msgid "Editing tag comment"
+msgid "Rationale"
 msgstr ""
 
-msgid "Cannot export patient as GDT. No active patient."
-msgstr ""
+#, fuzzy
+msgid "Manage hints"
+msgstr "Helbredsproblem %s"
 
-msgid "Exported demographics as GDT to clipboard."
+msgid "Manage automatic dynamic hints"
 msgstr ""
 
-msgid "Cannot export patient as VCARD. No active patient."
+msgid "Cannot delete family history item."
 msgstr ""
 
-msgid "Exported demographics as VCARD to clipboard."
+msgid "Family history of this patient."
 msgstr ""
 
-msgid "Cannot export patient as XML (LinuxMedNews). No active patient."
+msgid "Showing family history."
 msgstr ""
 
-#, python-format
-msgid "Exported demographics to XML file [%s]."
+msgid "Fatal"
 msgstr ""
 
-#, python-format
-msgid "Exported demographics to GDT file [%s]."
+msgid "Noted"
 msgstr ""
 
-#, python-format
-msgid "Exported demographics to VCARD file [%s]."
+msgid "Died"
 msgstr ""
 
-msgid "Cannot add staff member. No active patient."
+msgid "Adding family history"
 msgstr ""
 
-msgid "Cannot delete patient. No patient active."
+msgid "Editing family history"
 msgstr ""
 
 msgid ""
-"You have to manually close this window to finalize shutting down GNUmed."
+"\n"
+"Please select the default drug data source from the list below.\n"
+"\n"
+"Note that to actually use it you need to have the database installed, too."
 msgstr ""
 
-msgid "This is so that you can inspect the console output at your leisure."
+msgid "Configuring default drug data source"
 msgstr ""
 
-msgid "no patient"
+msgid "No default drug database configured."
 msgstr ""
 
-#, python-format
-msgid "Saved screenshot to file [%s]."
+msgid "There is no default drug database configured."
 msgstr ""
 
-msgid "GNUmed client"
+msgid "Jumping to drug database"
 msgstr ""
 
-msgid "GNUmed stdout/stderr window"
+msgid "Cannot import drugs from IFAP into chart without chart."
 msgstr ""
 
-msgid "redirecting STDOUT/STDERR to this log window"
+#, python-format
+msgid "Cannot call IFAP via [%s]."
 msgstr ""
 
 #, python-format
+msgid "Cannot create IFAP <-> GNUmed transfer file [%s]."
+msgstr ""
+
+msgid "Current medication"
+msgstr ""
+
 msgid ""
-"The database account [%s] cannot be used as a\n"
-"staff member login for GNUmed. There was an\n"
-"error retrieving staff details for it.\n"
 "\n"
-"Please ask your administrator for help.\n"
+"The ATC codes as known to GNUmed.\n"
 msgstr ""
 
-msgid "Checking access permissions"
+msgid "Showing ATC codes."
 msgstr ""
 
-#, python-format
-msgid "Database <%s> on <%s>"
+msgid "Choose an ATC import config file"
 msgstr ""
 
-#, python-format
-msgid "Branch \"%s\" of praxis \"%s\"\n"
+msgid "config files"
 msgstr ""
 
-msgid "Verifying database"
+msgid "importing ATC reference data"
 msgstr ""
 
-msgid "Connect"
+msgid "Successfully imported ATC reference data."
 msgstr ""
 
-msgid "Yes, connect to this database."
+msgid "Importing ATC reference data failed."
 msgstr ""
 
-msgid "Disconnect"
+msgid "Select an ATC (Anatomical-Therapeutic-Chemical) code."
 msgstr ""
 
-msgid "No, do not connect to this database."
+msgid "Cannot edit this substance. It is in use."
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot find configuration file in any of:\n"
-"\n"
-" %s\n"
-"You may need to use the comand line option\n"
-"\n"
-"\t--conf-file=<FILE>"
+msgid "Adding new consumable substance"
 msgstr ""
 
-msgid "Checking configuration files"
+msgid "Editing consumable substance"
 msgstr ""
 
-msgid "GNUmed startup"
+msgid "Cannot delete this substance. It is in use."
 msgstr ""
 
-#, python-format
 msgid ""
-"The currently selected database language ('%s') does\n"
-"not match the current system language ('%s').\n"
 "\n"
-"Do you want to set the database language to '%s' ?\n"
+"These are the consumable substances registered with GNUmed.\n"
 msgstr ""
 
-msgid "Checking database language settings"
+msgid "Import"
 msgstr ""
 
-msgid "Set"
+msgid "Import consumable substances from a drug database."
 msgstr ""
 
-#, python-format
-msgid "Set your database language to [%s]."
+msgid "Cannot save consumable substance. Missing essential input."
 msgstr ""
 
-msgid "Don't set"
+#, python-format
+msgid "Cannot save consumable substance. %s"
 msgstr ""
 
-msgid "Do not set your database language now."
+msgid "The substance with optional strength."
 msgstr ""
 
-msgid "Remember to ignore language mismatch"
+msgid "Cannot remove this component from the drug. It is in use."
 msgstr ""
 
-#, python-format
 msgid ""
-"Checking this will make GNUmed remember your decision\n"
-"until the system language is changed.\n"
-"\n"
-"You can also reactivate this inquiry by removing the\n"
-"corresponding \"ignore\" option from the configuration file\n"
 "\n"
-" [%s]"
+"These are the components in the drug brands known to GNUmed.\n"
 msgstr ""
 
-msgid "generic activity"
+msgid "Showing drug brand components."
 msgstr ""
 
-msgid "Access denied"
+msgid "Adding new drug component"
 msgstr ""
 
-#, python-format
-msgid ""
-"Your account is not set up to access this part of GNUmed:\n"
-"\n"
-"  [%s]"
+msgid "Editing drug component"
 msgstr ""
 
-msgid "Save timeline as SVG image under..."
+msgid "Cannot edit drug component. It is in use."
 msgstr ""
 
-msgid "timeline image"
+msgid "Cannot save drug component. Invalid or missing essential input."
 msgstr ""
 
-msgid "timeline data"
+msgid "A drug component with optional strength."
 msgstr ""
 
-msgid "Cannot change notebook tabs. No active patient."
+msgid "Editing drug"
 msgstr ""
 
-msgid "add plugin ..."
+#, python-format
+msgid ""
+"Cannot edit the branded drug product\n"
+"\n"
+" \"%s\" (%s)\n"
+"\n"
+"because it is currently taken by patients.\n"
 msgstr ""
 
-msgid "Cannot activate Allergy Manager. No active patient."
+msgid "Adding new drug brand"
 msgstr ""
 
-msgid "<Age>"
+msgid "Editing drug brand"
 msgstr ""
 
-msgid "no patient selected"
+msgid "Manage consumable substances"
 msgstr ""
 
-#, python-format
-msgid "Gender: %s (%s) - %s\n"
+msgid "not in use"
 msgstr ""
 
 #, python-format
-msgid "Born: %s\n"
+msgid "ATC: %s\n"
 msgstr ""
 
-#, python-format
-msgid "Died: %s\n"
+msgid "Editing medication"
 msgstr ""
 
 #, python-format
-msgid "At age: %s\n"
+msgid ""
+"Cannot edit the medication\n"
+"\n"
+" \"%s\" (%s)\n"
+"\n"
+"because it is a vaccine. Please edit it\n"
+"from the vaccine management section !\n"
 msgstr ""
 
-msgid " (date of birth and age are estimated)\n"
+msgid "Deleting medication"
 msgstr ""
 
 #, python-format
-msgid "%(sex)s  %(dob)s (%(age)s today !)"
+msgid ""
+"Cannot delete the medication\n"
+"\n"
+" \"%s\" (%s)\n"
+"\n"
+"because it is a vaccine. Please delete it\n"
+"from the vaccine management section !\n"
 msgstr ""
 
 msgid ""
 "\n"
-"Today is the patient's birthday !\n"
-"\n"
+"These are the drug brands known to GNUmed.\n"
 msgstr ""
 
-#, python-format
-msgid "Birthday: %s ago\n"
+msgid "Showing branded drugs."
 msgstr ""
 
-#, python-format
-msgid "Birthday: in %s\n"
+msgid "Import substances and brands from a drug database."
 msgstr ""
 
-#, python-format
-msgid "Age: %s\n"
+msgid "Managing components of a drug"
 msgstr ""
 
 #, python-format
-msgid "last confirmed %s\n"
+msgid ""
+"Cannot manage the components of the branded drug product\n"
+"\n"
+" \"%s\" (%s)\n"
+"\n"
+"because it is currently taken by patients.\n"
 msgstr ""
 
-#, python-format
-msgid "Comment (%s): %%s"
+msgid "Pick the substances which are components of this drug."
 msgstr ""
 
-#, python-format
-msgid " - expires %s"
+msgid "Components of drug"
 msgstr ""
 
 #, python-format
 msgid ""
-"Due for %s (since %s%s):\n"
-"%s%s\n"
-"Patient: %s\n"
-"Reminder by: %s"
+"Adjust the components of \"%s\"\n"
+"\n"
+"The drug must contain at least one component. Any given\n"
+"substance can only be included once per drug."
 msgstr ""
 
-msgid "Clinical reminder"
+msgid "Managing components of a drug ..."
 msgstr ""
 
-msgid "Adding automatic dynamic hint"
+msgid "Cannot edit drug brand. It is in use."
 msgstr ""
 
-msgid "Editing automatic dynamic hint"
+msgid "Checking brand data"
 msgstr ""
 
-msgid "Deleting automatic dynamic hint"
+#, python-format
+msgid ""
+"The brand information you entered:\n"
+"\n"
+" [%s %s]\n"
+"\n"
+"already exists as a drug product."
 msgstr ""
 
-#, python-format
 msgid ""
-"Really delete this dynamic hint ?\n"
+"You have not selected any substances\n"
+"as drug components.\n"
 "\n"
-" [%s]"
+"Without components you will not be able to\n"
+"use this drug for documenting patient care.\n"
+"\n"
+"Are you sure you want to save\n"
+"it without components ?"
 msgstr ""
 
-msgid "deleting a dynamic hint"
+msgid "Cannot save branded drug. Invalid or missing essential input."
 msgstr ""
 
 msgid ""
+"The brand name of the drug.\n"
 "\n"
-"Dynamic hints registered with GNUmed.\n"
+"Note: a brand name will need to be linked to\n"
+"one or more components before it can be used,\n"
+"except in the case of fake (generic) vaccines."
 msgstr ""
 
-msgid "Showing dynamic hints."
+msgid "No EMR data loaded."
 msgstr ""
 
-msgid "Hint"
+msgid "EMR text dump"
 msgstr ""
 
-msgid "Browse and install automatic dynamic hints data packs"
+msgid "Currently there is no active patient. Cannot retrieve EMR text."
 msgstr ""
 
-#, fuzzy, python-format
-msgid "By: %s"
-msgstr "Dokumenter: %s"
+msgid "SOAP Editor Actions:"
+msgstr ""
 
-msgid "No entry in field <Source>."
+msgid "&Sort lines"
 msgstr ""
 
-msgid "No entry in field <Conditions>."
+msgid "Sort lines by SOAP category"
 msgstr ""
 
-msgid "No entry in field <Description>."
+msgid "e&Xpand keyword"
 msgstr ""
 
-msgid "No entry in field <Title>."
+msgid "Expand keyword / macro"
 msgstr ""
 
-msgid "creating a new dynamic hint"
+#, fuzzy
+msgid "as &Subjective"
+msgstr "aktiv"
+
+msgid "Set line to category \"Subjective\""
 msgstr ""
 
-msgid "updating an existing dynamic hint"
+#, fuzzy
+msgid "as &Objective"
+msgstr "aktiv"
+
+msgid "Set line to category \"Objective\""
 msgstr ""
 
-msgid "Deleting suppressed dynamic hint"
+msgid "as &Assessment"
 msgstr ""
 
-#, python-format
-msgid ""
-"Really delete the suppression of this dynamic hint ?\n"
-"\n"
-" [%s]"
+msgid "Set line to category \"Assessment\""
 msgstr ""
 
-msgid ""
-"\n"
-"Dynamic hints suppressed in this patient.\n"
+msgid "as &Plan"
 msgstr ""
 
-msgid "Showing suppressed dynamic hints."
+msgid "Set line to category \"Plan\""
 msgstr ""
 
-msgid "Rationale"
+msgid "as &Unspecified"
+msgstr ""
+
+msgid "Set line to category \"unspecified\""
 msgstr ""
 
 #, fuzzy
-msgid "Manage hints"
-msgstr "Helbredsproblem %s"
+msgid "as ad&Ministrative"
+msgstr "inaktiv"
 
-msgid "Manage automatic dynamic hints"
+msgid "Set line to category \"administrative\""
 msgstr ""
 
-msgid "Cannot delete family history item."
+msgid "→ &Clipboard"
 msgstr ""
 
-msgid "Family history of this patient."
+msgid "Copy line to clipboard"
 msgstr ""
 
-msgid "Showing family history."
+msgid "→ +Clipboard+"
 msgstr ""
 
-msgid "Fatal"
+msgid "Add line to clipboard"
 msgstr ""
 
-msgid "Noted"
+msgid "Copy content to clipboard"
 msgstr ""
 
-msgid "Died"
+msgid "Add content to clipboard"
 msgstr ""
 
-msgid "Adding family history"
+msgid "Copy selection to clipboard"
 msgstr ""
 
-msgid "Editing family history"
+msgid "Add selection to clipboard"
 msgstr ""
 
-msgid "No EMR data loaded."
+msgid "&Line ..."
 msgstr ""
 
-msgid "EMR text dump"
+msgid "&Text ..."
 msgstr ""
 
-msgid "Currently there is no active patient. Cannot retrieve EMR text."
+msgid "&Region ..."
 msgstr ""
 
 msgid "Show HL7 file:"
@@ -15509,6 +16405,10 @@ msgstr ""
 msgid "Extracting HL7 from XML file"
 msgstr ""
 
+#, python-format
+msgid "Unwrapped HL7 into [%s] from [%s]."
+msgstr ""
+
 msgid "Select HL7 file for staging:"
 msgstr ""
 
@@ -15532,6 +16432,10 @@ msgid ""
 " %s"
 msgstr ""
 
+#, python-format
+msgid "Staged HL7 from [%s]."
+msgstr ""
+
 msgid "Importing HL7 data"
 msgstr ""
 
@@ -15574,9 +16478,6 @@ msgstr ""
 msgid "Identification"
 msgstr ""
 
-msgid "Show"
-msgstr ""
-
 msgid "Show formatted HL7"
 msgstr ""
 
@@ -15622,6 +16523,18 @@ msgstr ""
 msgid "Plot current selection"
 msgstr ""
 
+msgid ""
+"Select the measurements panel to show in the top pane for continuous "
+"monitoring."
+msgstr ""
+
+msgid "Lab panel"
+msgstr ""
+
+#, fuzzy
+msgid "Configuring continuous monitoring measurements panel"
+msgstr "Målinger og resultater:"
+
 msgid "No default Gnuplot script template selected."
 msgstr ""
 
@@ -15644,10 +16557,25 @@ msgstr ""
 msgid "Cannot plot without a plot script."
 msgstr ""
 
-msgid "Time"
+msgid "Result"
 msgstr ""
 
-msgid "Result"
+msgid "Perform on selected results:"
+msgstr ""
+
+msgid "Review and &sign"
+msgstr ""
+
+msgid "Export to &file"
+msgstr ""
+
+msgid "Export to &clipboard"
+msgstr ""
+
+msgid "Panels"
+msgstr ""
+
+msgid "List"
 msgstr ""
 
 msgid ""
@@ -15724,18 +16652,6 @@ msgstr ""
 msgid "All: by &Day"
 msgstr ""
 
-msgid "Perform on selected results:"
-msgstr ""
-
-msgid "Review and &sign"
-msgstr ""
-
-msgid "Export to &file"
-msgstr ""
-
-msgid "Export to &clipboard"
-msgstr ""
-
 #, python-format
 msgid "%s results selected. Too many to list individually."
 msgstr ""
@@ -15909,6 +16825,9 @@ msgstr ""
 msgid "EMR Actions:"
 msgstr ""
 
+msgid "Print EMR"
+msgstr ""
+
 msgid "Create health issue"
 msgstr ""
 
@@ -16057,11 +16976,40 @@ msgstr ""
 msgid "&New notes %s"
 msgstr ""
 
+msgid "Find text in EMR Journal"
+msgstr ""
+
+msgid "Modified"
+msgstr ""
+
+msgid "Clinical time"
+msgstr ""
+
+msgid "Who / When"
+msgstr ""
+
+#, python-format
 msgid ""
-"An error occurred while retrieving the EMR\n"
-"in journal form for the active patient.\n"
+"Chart entry: %s       [#%s in %s]\n"
+" Modified: %s by %s (%s rev %s)\n"
 "\n"
-"Please check the log file for details."
+"Health issue: %s%s\n"
+"Episode: %s%s\n"
+"Encounter: %s%s"
+msgstr ""
+
+#, python-format
+msgid ""
+"%s\n"
+"\n"
+"                        rev %s (%s) by %s in <%s>"
+msgstr ""
+
+#, python-format
+msgid ""
+"%s\n"
+"%s\n"
+"%s"
 msgstr ""
 
 msgid "Editing tag"
@@ -16188,18 +17136,15 @@ msgid ""
 "%s\n"
 msgstr ""
 
-msgid "This patient DID receive care."
+msgid "This patient DID receive care here."
 msgstr ""
 
-msgid "This person did NOT receive care."
+msgid "This person did NOT receive care here."
 msgstr ""
 
 msgid "Disabling person"
 msgstr ""
 
-msgid "Disabling patient"
-msgstr ""
-
 msgid "Type or select a last name (family name/surname)."
 msgstr ""
 
@@ -16442,6 +17387,9 @@ msgid ""
 "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
 msgstr ""
 
+msgid "Connecting to backend"
+msgstr ""
+
 #, python-format
 msgid ""
 "Unable to connect to database:\n"
@@ -16650,9 +17598,6 @@ msgstr ""
 msgid "Office"
 msgstr ""
 
-msgid "State"
-msgstr ""
-
 msgid "Zip"
 msgstr ""
 
@@ -16708,7 +17653,7 @@ msgstr ""
 msgid "EMR Timeline"
 msgstr ""
 
-msgid "Show &Timeline"
+msgid "EMR &Timeline"
 msgstr ""
 
 msgid "Overview"
@@ -16735,10 +17680,10 @@ msgstr ""
 msgid "&SimpleNotes"
 msgstr ""
 
-msgid "EMR tree"
+msgid "EMR Tree"
 msgstr ""
 
-msgid "EMR &Tree (topical)"
+msgid "EMR &Tree"
 msgstr ""
 
 msgid "Print Manager"
@@ -16747,6 +17692,12 @@ msgstr ""
 msgid "&Print Manager"
 msgstr ""
 
+msgid "EMR Journal"
+msgstr ""
+
+msgid "EMR &Journal (list)"
+msgstr ""
+
 msgid "Appointments"
 msgstr ""
 
@@ -16759,6 +17710,12 @@ msgstr ""
 msgid "Show &lab journal"
 msgstr ""
 
+msgid "PACS"
+msgstr ""
+
+msgid "&PACS"
+msgstr ""
+
 msgid "Cardiac Devices"
 msgstr ""
 
@@ -16831,10 +17788,7 @@ msgstr ""
 msgid "User &manual (local)"
 msgstr ""
 
-msgid "EMR journal"
-msgstr ""
-
-msgid "EMR &Journal (chronological)"
+msgid "EMR &Journal (text)"
 msgstr ""
 
 msgid "Demographics"
@@ -16995,6 +17949,9 @@ msgstr ""
 msgid "Show &ExamplePlugin"
 msgstr ""
 
+msgid "Find text"
+msgstr ""
+
 msgid "gm_ctl_client: starting slave GNUmed client"
 msgstr ""
 
@@ -17022,5 +17979,15 @@ msgid "Abort and do NOT connect to GNUmed."
 msgstr ""
 
 #, fuzzy
-#~ msgid "file: %s (%s/)"
-#~ msgstr "Vaccinationer"
+#~ msgid ""
+#~ "Health issue: %s%s%s (%s versions)\n"
+#~ "\n"
+#~ msgstr "Helbredsproblem %s"
+
+#, fuzzy
+#~ msgid "&Unknown"
+#~ msgstr "Ukendt reaktion"
+
+#, fuzzy
+#~ msgid "Last confirmed: %s%s"
+#~ msgstr " (sidst bekræftet %s)"
diff --git a/client/po/de-gnumed.mo b/client/po/de-gnumed.mo
index 0d668e3..30891c8 100644
Binary files a/client/po/de-gnumed.mo and b/client/po/de-gnumed.mo differ
diff --git a/client/po/de.po b/client/po/de.po
index 425944e..431b6ef 100644
--- a/client/po/de.po
+++ b/client/po/de.po
@@ -5,8 +5,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: GNUmed\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-11-21 19:53+0100\n"
-"PO-Revision-Date: 2015-11-21 19:59+0100\n"
+"POT-Creation-Date: 2016-03-17 16:20+0100\n"
+"PO-Revision-Date: 2016-03-17 16:25+0100\n"
 "Last-Translator: Karsten Hilbert <Karsten.Hilbert at gmx.net>\n"
 "Language-Team: Deutsch\n"
 "Language: de_DE\n"
@@ -43,7 +43,7 @@ msgstr "Unbekanntes Format."
 msgid ""
 "You are trying to open an old file with a new version of timeline. Please "
 "install version 0.21.1 of timeline to convert it to the new format."
-msgstr "\t\t"
+msgstr ""
 
 msgid "Other timelines can't be imported to a directory timeline"
 msgstr ""
@@ -438,7 +438,7 @@ msgid "Icon"
 msgstr "Bildchen"
 
 msgid "Hyperlink"
-msgstr "Weblink"
+msgstr ""
 
 msgid "Progress"
 msgstr ""
@@ -578,7 +578,7 @@ msgid "&Edit Selected Event..."
 msgstr ""
 
 msgid "&Duplicate Selected Event..."
-msgstr "Ausgewähltes Ereignis duplizieren..."
+msgstr "Ausgewähltes Ereignis &duplizieren..."
 
 msgid "Set Category on Selected Events..."
 msgstr ""
@@ -590,7 +590,7 @@ msgid "Set Category on events &without category..."
 msgstr ""
 
 msgid "Edit &Categories"
-msgstr "Kategorien bearbeiten"
+msgstr "&Kategorien bearbeiten"
 
 msgid "&Read Only"
 msgstr ""
@@ -795,7 +795,7 @@ msgid "Shortcut Key:"
 msgstr ""
 
 msgid "Unable to copy to clipboard."
-msgstr "Kann nicht ins Clipboard kopieren."
+msgstr "Kann nicht in die Zwischenablage kopieren."
 
 msgid "Duplicate Event"
 msgstr "Ereignis duplizieren"
@@ -1251,10 +1251,10 @@ msgid "Period is too long"
 msgstr "Zeitraum ist zu lang"
 
 msgid "Go to &Today\tCtrl+T"
-msgstr "Zum heutigen Datum springen\tStrg+T"
+msgstr "Zum &heutigen Datum springen\tStrg+H"
 
 msgid "Go to &Date...\tCtrl+G"
-msgstr "Zu bestimmtem Datum springen\tStrg+G"
+msgstr "Zu bestimmtem &Datum springen\tStrg+D"
 
 msgid "Backward\tPgUp"
 msgstr "Rückwärts\tBild-auf"
@@ -1263,16 +1263,16 @@ msgid "Forward\tPgDn"
 msgstr "Vorwärts\tBild-ab"
 
 msgid "Forward One Wee&k\tCtrl+K"
-msgstr "Eine Woche vor\tStrg+K"
+msgstr "Eine &Woche vor\tStrg+W"
 
 msgid "Back One &Week\tCtrl+W"
-msgstr "Eine Woche zurück\tStrg+W"
+msgstr "Eine Woche &zurück\tStrg+Z"
 
 msgid "Forward One Mont&h\tCtrl+h"
-msgstr "Einen Monat vor\tStrg+h"
+msgstr "Einen Mo&nat vor\tStrg+n"
 
 msgid "Back One &Month\tCtrl+M"
-msgstr "Einen Monat zurück\tStrg+M"
+msgstr "Einen &Monat zurück\tStrg+M"
 
 msgid "Forward One Yea&r\tCtrl+R"
 msgstr "Ein Jahr vor\tStrg+R"
@@ -1472,11 +1472,23 @@ msgstr ""
 "-----------------"
 
 #, python-format
+msgid "Revision #%s"
+msgstr "Revision #%s"
+
+#, python-format
 msgid "[%s:%s]: row not updated (nothing returned), row in use ?"
 msgstr ""
 "[%s:%s]: Zeile nicht geändert (nichts zurückgeliefert), Zeile in Benutzung ?"
 
 #, python-format
+msgid "<%s(.bat)> not found"
+msgstr "<%s(.bat) nicht gefunden>"
+
+#, python-format
+msgid "problem with <%s>"
+msgstr "Problem mit <%s>"
+
+#, python-format
 msgid "[%s] is not a readable file"
 msgstr "Keine Leseberechtigung für [%s]."
 
@@ -1511,26 +1523,8 @@ msgstr "1 Byte"
 msgid "%s Bytes"
 msgstr "%s Byte"
 
-#, python-format
-msgid ""
-"Cannot connect to configuration database with:\n"
-"\n"
-"[%s]"
-msgstr ""
-"Kann keine Verbindung zur Konfigurationsdatenbank herstellen:\n"
-"[%s]"
-
-#, python-format
-msgid ""
-"Cannot connect to database with:\n"
-"\n"
-"[%s]"
-msgstr ""
-"Kann keine Verbindung zur Datenbank herstellen:\n"
-"[%s]"
-
-msgid "No product information available."
-msgstr "Keine Produktinformation verfügbar."
+msgid "<type>"
+msgstr "<Typ>"
 
 #, python-format
 msgid ""
@@ -1885,106 +1879,6 @@ msgstr " Option [%s]: %s"
 msgid "  risk: %s"
 msgstr "  Gefahr: %s"
 
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Are you sure you have got a local database installed ?\n"
-"\n"
-"Please retry with proper credentials or cancel.\n"
-"\n"
-"You may also need to check the PostgreSQL client\n"
-"authentication configuration in pg_hba.conf. For\n"
-"details see:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-msgstr ""
-"Kann nicht mit Datenbank verbinden:\n"
-"\n"
-"%s\n"
-"\n"
-"Haben Sie wirklich eine lokale Datenbank installiert ?\n"
-"\n"
-"Mit korrekten Angaben neu versuchen oder abbrechen.\n"
-"\n"
-"Möglicherweise müssen die PostgreSQL-Einstellungen\n"
-"für die Anmeldung in pg_hba.conf überprüft werden.\n"
-"Details unter:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Please retry with proper credentials or cancel.\n"
-"\n"
-"You may also need to check the PostgreSQL client\n"
-"authentication configuration in pg_hba.conf. For\n"
-"details see:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-msgstr ""
-"Kann nicht mit Datenbank verbinden:\n"
-"\n"
-"%s\n"
-"\n"
-"Mit korrekten Angaben neu versuchen oder abbrechen.\n"
-"\n"
-"Möglicherweise müssen die PostgreSQL-Einstellungen\n"
-"für die Anmeldung in pg_hba.conf überprüft werden.\n"
-"Details unter:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-
-msgid "Connecting to backend"
-msgstr "Verbinde mit Datenbank"
-
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Please retry another backend / user / password combination !\n"
-msgstr ""
-"Anmeldung bei Datenbank fehlgeschlagen:\n"
-"\n"
-"%s\n"
-"\n"
-"Bitte versuchen Sie andere Zugangsdaten.\n"
-
-msgid "programmer forgot to specify error message"
-msgstr "Programmierer hat vergessen, die Fehlermeldung genau anzugeben."
-
-msgid ""
-"\n"
-"\n"
-"Please consult the error log for all the gory details !"
-msgstr ""
-"\n"
-"\n"
-"Die Logdatei enthält genauere Angaben !"
-
-msgid "generic error message"
-msgstr "allgemeine Fehlermeldung"
-
-msgid "programmer forgot to specify info message"
-msgstr "Programmierer hat vergessen, Information anzugeben."
-
-msgid "generic info message"
-msgstr "allgemeine Information"
-
-msgid "programmer forgot to specify warning"
-msgstr "Programmierer hat vergessen, Warnung anzugeben."
-
-msgid "generic warning message"
-msgstr "allgemeine Warnmeldung"
-
 msgid "no hook specified, please report bug"
 msgstr "Kein Hook definiert. Diesen Fehler bitte melden!"
 
@@ -2339,6 +2233,30 @@ msgstr "Sortierung:"
 msgid "Include:"
 msgstr "Einschließen:"
 
+msgid "&Search"
+msgstr "&Suchen"
+
+msgid "Suggest"
+msgstr "Vorschlag"
+
+msgid "Set"
+msgstr "Setzen"
+
+msgid "dialog_1"
+msgstr ""
+
+msgid "Search patients in Orthanc DICOM store."
+msgstr "Patienten im Orthanc DICOM-Archiv suchen."
+
+msgid "Suggest a patient ID based on the active patient."
+msgstr "Basierend auf dem aktiven Patienten eine neuen Nummer vorschlagen."
+
+msgid "Search term:"
+msgstr "Suchbegriff:"
+
+msgid "New patient ID:"
+msgstr "Neue Patientennummer:"
+
 msgid "Your review"
 msgstr "Ihre Bewertung"
 
@@ -2692,6 +2610,95 @@ msgstr "Stoff"
 msgid "Amount"
 msgstr "Menge"
 
+msgid "&Connect"
+msgstr "&Verbinden"
+
+msgid "&Browse"
+msgstr "&Blättern"
+
+msgid "<not connected>"
+msgstr "<nicht verbunden>"
+
+msgid "Browse all"
+msgstr "Alle durchblättern"
+
+msgid "Export all"
+msgstr "Alle exportieren"
+
+msgid "Browse"
+msgstr "Stöbern"
+
+msgid "Export"
+msgstr "Export"
+
+msgid "Upload"
+msgstr "Hochladen"
+
+msgid "Enter the PACS host address."
+msgstr "Geben Sie den Computernamen (host address) des PACS ein."
+
+msgid "Enter the PACS port."
+msgstr "Geben Sie den Port des PACS ein."
+
+msgid "Enter the PACS user."
+msgstr "Geben Sie den Nutzernamen für das PACS ein."
+
+msgid "Enter the PACS password. It will not be shown."
+msgstr ""
+"Geben Sie das Passwort für den PACS-Benutzer ein (es wird nicht angezeigt)."
+
+msgid "Connect to PACS."
+msgstr "Mit PACS verbinden."
+
+msgid "Browse PACS at top level."
+msgstr "PACS auf der obersten Ebene durchsuchen."
+
+msgid "Modify some of Orthanc content (such as patient IDs)."
+msgstr "Einige Orthanc-Inhalte (z.B.Patienten-IDs) bearbeiten."
+
+msgid "Browse overview of studies for this patient."
+msgstr "Studienübersicht dieses Patienten durchblättern."
+
+msgid "Copy all studies into export area."
+msgstr "Alle Studien in Exportbereich kopieren."
+
+msgid "Browse topmost selected study."
+msgstr "Die zuoberst gewählte Studie durchblättern."
+
+msgid "Copy selected studies into export area."
+msgstr "Gewählte Studien in Exportbereich kopieren."
+
+msgid "Save selected studies to disk."
+msgstr "Gewählte Studien auf Datenträger speichern."
+
+msgid ""
+"Upload DICOM files from a directory, recursively, into the Orthanc PACS\n"
+"\n"
+"The currently active patient does not matter. Orthanc will associate "
+"uploaded files with the patient found within the DICOM metadata. It will "
+"create new patients as needed."
+msgstr ""
+"Rekursives Hochladen von DICOM-Dateien in ein Orthanc-PACS\n"
+"\n"
+"Es ist nicht wichtig, welcher Patient aktiv ist. Orthanc ordnet die "
+"hochgeladenen Bilddaten den darin enthaltenen Patienten zu. Neue Patienten "
+"werden je nach Bedarf angelegt."
+
+msgid "Host:"
+msgstr "Server:"
+
+msgid "Port:"
+msgstr "Port:"
+
+msgid "User:"
+msgstr "Nutzer:"
+
+msgid "Password"
+msgstr "Passwort"
+
+msgid "Selected studies:"
+msgstr "Gewählte Studien:"
+
 msgid "Fake brand"
 msgstr "Pseudoprodukt"
 
@@ -3039,9 +3046,6 @@ msgstr "generische Verarbeitung von Text"
 msgid "&Load"
 msgstr "&Laden"
 
-msgid "Export"
-msgstr "Export"
-
 msgid "A long, descriptive name for this form template."
 msgstr "Eine lange, sprechende Bezeichnung für diese Schriftstück-Vorlage."
 
@@ -3143,15 +3147,12 @@ msgstr "medizinisch &relevant"
 msgid "Document Properties"
 msgstr "Eigenschaften des Dokuments"
 
-msgid "Show part"
-msgstr "Teil zeigen"
+msgid "Show"
+msgstr "Zeige"
 
 msgid "Remove part"
 msgstr "Teil entfernen"
 
-msgid "Parts"
-msgstr "Teile"
-
 msgid "Discard"
 msgstr "Verwerfen"
 
@@ -3186,6 +3187,9 @@ msgstr ""
 msgid "Required: The primary episode this document is to be listed under."
 msgstr "Pflichtfeld: Die Hauptepisode zu der dieses Dokument gehört."
 
+msgid "Optional: The organization (unit) this document originated from."
+msgstr "Optional: Die Organisation aus der dieses Dokument stammt."
+
 msgid ""
 "Optional: A short comment identifying the document. Good comments give an "
 "idea of the content and source of the document."
@@ -3221,6 +3225,9 @@ msgstr ""
 "Enthält dieses Dokument medizinisch bedeutsame Ergebnisse ?  Auch "
 "Normalbefunde können medizinisch bedeutsam sein !"
 
+msgid "Optional: A free-text document description."
+msgstr "Optional: Eine Beschreibung des Dokuments in freiem Text."
+
 msgid "This field lists the parts belonging to the current document."
 msgstr "Diese Liste zeigt die Teile des aktuellen Dokuments."
 
@@ -3234,9 +3241,6 @@ msgstr ""
 "Entfernen des oben in der Liste markierten Dokumententeils. Löschen von der "
 "Festplatte muß extra bestätigt werden."
 
-msgid "Optional: A free-text document description."
-msgstr "Optional: Eine Beschreibung des Dokuments in freiem Text."
-
 msgid "Save finished document."
 msgstr "Komplettes Dokument speichern."
 
@@ -3252,6 +3256,9 @@ msgstr "Erstellungsdatum des Dokuments:"
 msgid "Associate to episode:"
 msgstr "Zugehörige Episode:"
 
+msgid "Document source:"
+msgstr "Quelle des Dokuments:"
+
 msgid "Comment / Identification:"
 msgstr "Kommentar / Identifikation:"
 
@@ -3282,7 +3289,7 @@ msgid "Location"
 msgstr "Ort"
 
 msgid "Provider"
-msgstr "Arzt"
+msgstr "Betreuender"
 
 msgid "left"
 msgstr "links"
@@ -3574,12 +3581,12 @@ msgstr "Ende"
 msgid "Purpose"
 msgstr "Beratungsursache"
 
+msgid "Please supply your email address here !"
+msgstr "<bitte geben Sie Ihre E-Mail-Adresse ein>"
+
 msgid "Details"
 msgstr "Details"
 
-msgid "<Please supply your email address here !>"
-msgstr "<bitte geben Sie Ihre E-Mail-Adresse ein>"
-
 msgid "Keep running"
 msgstr "Weiterlaufen"
 
@@ -3603,13 +3610,18 @@ msgstr ""
 "möchte, etwa was Sie gerade zu tun beabsichtigten."
 
 msgid ""
-"Please enter your email address so we can provide feedback directly to you. "
-"Otherwise, feedback will be given on the GNUmed mailing list (http://lists."
-"gnu.org/mailman/listinfo/gnumed-bugs)."
+"Please enter your email address so we can provide help to you directly.\n"
+"\n"
+"Otherwise, feedback can be given on the GNUmed mailing list (http://lists."
+"gnu.org/mailman/listinfo/gnumed-bugs) ONLY to which you will then have to "
+"subscribe."
 msgstr ""
 "Bitte geben Sie Ihre E-Mail-Adresse ein, sodaß wir Sie direkt erreichen "
-"können. Ihre Fehlermeldung wird ansonsten auf der GNUmed-Mailingliste "
-"(http://lists.gnu.org/mailman/listinfo/gnumed-bugs) bearbeitet."
+"können.\n"
+"\n"
+"Ihre Fehlermeldung erscheint sonst NUR auf der GNUmed-Mailingliste (http://"
+"lists.gnu.org/mailman/listinfo/gnumed-bugs), welche Sie dann abonnieren "
+"müssen."
 
 msgid "Find help on http://wiki.gnumed.de, too."
 msgstr "Weitere Hilfe unter <http://wiki.gnumed.de>."
@@ -3690,7 +3702,7 @@ msgid "Help desk"
 msgstr "Hotline"
 
 msgid "Log file"
-msgstr "Log-Datei"
+msgstr "Logdatei"
 
 msgid "Data of current patient to be displayed here."
 msgstr "Daten des aktiven Patienten sollen hier angezeigt werden."
@@ -3763,9 +3775,6 @@ msgstr "Nutzerdetails:"
 msgid "Account"
 msgstr "Konto"
 
-msgid "Password"
-msgstr "Passwort"
-
 msgid "Password, again"
 msgstr "nochmals das Passwort"
 
@@ -4299,8 +4308,8 @@ msgstr "Dokumente aus dem Archiv holen."
 msgid "Acquire images from image source (scanner, ...)."
 msgstr "Bilder aus einer Bildquelle holen (Scanner, ...)."
 
-msgid "Acquire images or text from the clipboard."
-msgstr "Bilder oder Texte aus der Zwischenablage holen."
+msgid "Acquire file or text from the clipboard."
+msgstr "Datei oder Text aus der Zwischenablage holen."
 
 msgid "Remove the selected documents."
 msgstr "Gewählte Dokumente entfernen."
@@ -4458,7 +4467,7 @@ msgid ""
 "- the result list will be artificially limited to the first 1000 rows\n"
 "- you can include a column named \"pk_patient\" to make the result rows "
 "activate the corresponding patient on double-clicking\n"
-"- by inserting $<ID_active_patient>$ you can access the patient ID of the "
+"- by inserting $<ID_ACTIVE_PATIENT>$ you can access the patient ID of the "
 "patient active at the time of running the query"
 msgstr ""
 "Geben Sie die auszuführenden SQL-Befehle hier ein.\n"
@@ -4470,8 +4479,8 @@ msgstr ""
 "- das Ergebnis wird künstlich auf die ersten 1000 Einträge begrenzt\n"
 "- wenn das Ergebnis eine Spalte \"pk_patient\" beinhaltet, kann der "
 "entsprechende Patient mittels Doppelklick aufgerufen werden\n"
-"- durch Einfügen von $<ID_active_patient>$ können Sie Bezug auf die "
-"Patientennummer des während des Abfrage aktiven Patienten nehmen"
+"- durch Einfügen von $<ID_ACTIVE_PATIENT>$ können Sie Bezug auf die "
+"Patientennummer des während der Abfrage aktiven Patienten nehmen"
 
 msgid "Run the query and present the results below."
 msgstr "Den Befehl ausführen und die Ergebnisse unten anzeigen."
@@ -4648,9 +4657,6 @@ msgstr "&Zuordnen"
 msgid "Link &new"
 msgstr "&Neue zuordnen"
 
-msgid "Browse"
-msgstr "Stöbern"
-
 msgid ""
 "Search for matches among existing addresses and [Link] a selection, or [Link "
 "(a) new] address."
@@ -4705,26 +4711,17 @@ msgstr ""
 "Ankreuzen, wenn das Journal anhand des links gewählten Problems gefiltert "
 "werden soll."
 
-msgid "label_1"
-msgstr ""
-
-msgid "→"
-msgstr ""
-
-msgid "←"
-msgstr ""
-
-msgid "Extra"
-msgstr ""
+msgid "Subjective"
+msgstr "Anamnese"
 
-msgid "Move selected items from left to right."
-msgstr "Gewählte Einträge von links nach rechts verschieben."
+msgid "Objective"
+msgstr "Befund"
 
-msgid "Move selected items from right to left."
-msgstr "Gewählte Einträge von rechts nach links verschieben."
+msgid "Assessment"
+msgstr "Beurteilung"
 
-msgid "Cancel picking items."
-msgstr "Auswahl abbrechen."
+msgid "Plan"
+msgstr "Procedere"
 
 msgid "Episode synopsis"
 msgstr "Episodensynopse"
@@ -4771,20 +4768,29 @@ msgstr ""
 "Hier können Sie die Zusammenfassung (den Status) der Episode bearbeiten, zu "
 "welcher diese Verlaufsnotiz gehört."
 
-msgid "Subjective"
-msgstr "Anamnese"
-
 msgid "Codes:"
 msgstr "Codes:"
 
-msgid "Objective"
-msgstr "Befund"
+msgid "label_1"
+msgstr ""
 
-msgid "Assessment"
-msgstr "Beurteilung"
+msgid "→"
+msgstr ""
 
-msgid "Plan"
-msgstr "Procedere"
+msgid "←"
+msgstr ""
+
+msgid "Extra"
+msgstr ""
+
+msgid "Move selected items from left to right."
+msgstr "Gewählte Einträge von links nach rechts verschieben."
+
+msgid "Move selected items from right to left."
+msgstr "Gewählte Einträge von rechts nach links verschieben."
+
+msgid "Cancel picking items."
+msgstr "Auswahl abbrechen."
 
 msgid "1"
 msgstr "1"
@@ -4992,8 +4998,8 @@ msgstr "&Nikotin"
 msgid "&Alcohol"
 msgstr "&Alkohol"
 
-msgid "&Other"
-msgstr ""
+msgid "&Other:"
+msgstr "&Andere:"
 
 msgid "&Non-harmful use"
 msgstr "&Unschädlicher Gebrauch"
@@ -5002,40 +5008,45 @@ msgid "&Harmful use"
 msgstr "&Schädlicher Gebrauch"
 
 msgid "Presently &addicted"
-msgstr ""
+msgstr "Derzeit &abhängig"
 
 msgid "Previously &addicted"
-msgstr ""
+msgstr "&Frühere Abhängigkeit"
 
-msgid "&Confirmed"
-msgstr "&Bestätigt"
+msgid "&Reconfirm as of today"
+msgstr "&Heute nachgehakt"
 
 msgid "Select for documenting smoking status."
-msgstr ""
+msgstr "Auswählen, um Raucherstatus zu dokumentieren."
 
 msgid "Select for documenting alcohol use status."
-msgstr ""
+msgstr "Auswählen, um Alkoholgebrauch zu dokumentieren."
 
 msgid ""
 "Select for documenting use of substances other than nicotine or alcohol."
 msgstr ""
+"Auswählen, um Substanzmißbrauch (außer Alkohol oder Nikotin) zu "
+"dokumentieren."
 
 msgid "Select the abused substance."
-msgstr ""
+msgstr "Wählen Sie die mißbrauchte Substanz."
 
 msgid ""
 "Select if the substance use is not considered harmful (say, no use or non-"
 "harmful use)."
 msgstr ""
+"Auswählen, wenn der Substanzgebrauch nicht schädlich erscheint (kein oder "
+"nicht mißbräuchlicher Gebrauch)."
 
 msgid "Select if substance is use considered harmful."
-msgstr ""
+msgstr "Auswählen, wenn Substanzgebrauch als schädlich eingeschätzt wird."
 
 msgid "Select if the patient is presently addicted to this substance."
 msgstr ""
+"Hier wählen, wenn der Patient derzeit von dieser Substand abhängig ist."
 
 msgid "Select if the patient was previously addicted to this substance."
-msgstr ""
+msgstr "Hier wählen, wenn der Patient früher von dieser Substanz abhängig war."
 
 msgid ""
 "A comment on this substance use:\n"
@@ -5046,18 +5057,28 @@ msgid ""
 "- attempts to quit\n"
 "..."
 msgstr ""
+"Ein Kommentar zum Substanzgebrauch:\n"
+"- Art der Substanz\n"
+"- Häufigkeit\n"
+"- Menge\n"
+"- wann angefangen\n"
+"- Versuche aufzuhören\n"
+"..."
 
 msgid ""
 "When did the patient quit?\n"
 "\n"
 "You can also set a target quit date here."
 msgstr ""
+"Wann hat der Patient den Gebrauch beendet ?\n"
+"\n"
+"Sie können hier auch ein Zieldatum eingeben."
 
 msgid "Check here to confirm for today."
-msgstr ""
+msgstr "Hier markieren, wenn der Status heute überprüft wurde."
 
 msgid "Quit date"
-msgstr ""
+msgstr "Stopdatum"
 
 msgid "Last confirmed"
 msgstr "Zuletzt überprüft"
@@ -5447,20 +5468,17 @@ msgstr ""
 msgid "Show:"
 msgstr "Zeige:"
 
-msgid "Brand by component"
-msgstr "Medikament nach Wirkstoff"
+msgid "Kidneys"
+msgstr "Niere"
 
 msgid "Brands"
 msgstr "Medikamente"
 
-msgid "Kidneys"
-msgstr "Niere"
-
-msgid "Unbranded substance"
-msgstr "Substanz"
+msgid "Substances"
+msgstr "Substanzen"
 
-msgid "Manage"
-msgstr "Verwalten"
+msgid "&Unknown or date:"
+msgstr "&Unbekannt oder Datum:"
 
 msgid "Approved of"
 msgstr "Gebilligt"
@@ -5475,33 +5493,28 @@ msgid "... Reason"
 msgstr "... Grund"
 
 msgid ""
-"A component of a drug brand the patient is taking.\n"
+"A drug the patient is taking.\n"
 "\n"
-"Lookup, and select, a single- (or multi-) component drug brand, by active "
-"ingredient name. All components of multi-component drugs will be displayed "
-"and automatically added to the patient's list."
-msgstr ""
-"Ein Wirkstoff des Medikaments, daß der Patient nimmt.\n"
-"\n"
-"Suche und Wahl eines Einfach- oder Kombinationspräparats nach Wirkstoff. "
-"Alle Wirkstoffe von Kombipräparaten werden angezeigt und der "
-"Medikamentenliste automatisch hinzugefügt."
-
-msgid ""
-"Manage drug brands.\n"
+"Lookup and select an intake by either of\n"
+"- a generic substance name\n"
+"- a drug brand name\n"
+"- an active ingredient of a drug\n"
 "\n"
-"Note that this will not select a component for you. What it does is to let "
-"you manage (add/edit/delete) the drug products/brands known to GNUmed from "
-"which you can select a component."
+"Note that all components of multi-component drugs will be displayed and "
+"automatically added to the patient's list."
 msgstr ""
-"Medikamente verwalten.\n"
+"Ein Medikament, daß der Patient nimmt.\n"
 "\n"
-"Hiermit können Sie keine Komponente auswählen. Sie können aber die "
-"handelsüblichen Medikamente verwalten (anlegen, bearbeiten, löschen). Von "
-"diesen können Sie dann Komponenten wählen."
+"Suche und Wahl einer Einnahme anhand\n"
+"- eines Wirkstoffs\n"
+"- der Bezeichnung eines Präparats\n"
+"- eines Bestandteils eines Kombipräparats\n"
+"\n"
+"Bei Kombipräparaten werden alle Wirkstoffe angezeigt und automatisch der "
+"Medikamentenliste hinzugefügt."
 
-msgid "The active ingredients of this brand."
-msgstr "Die aktiven Wirkstoffe dieses Medikaments."
+msgid "Details on the selected drug."
+msgstr "Details zum gewählten Medikament."
 
 msgid "Show cardiac information relevant to substance selection."
 msgstr ""
@@ -5514,9 +5527,17 @@ msgstr ""
 "sind."
 
 msgid ""
-"The non-branded medication or non-medication substance, with optional "
-"strength."
-msgstr "Die Substanz (Wirkstoff oder sonstige), optional mit Dosisangabe."
+"Manage drug brands.\n"
+"\n"
+"Note that this will not select a component for you. What it does is to let "
+"you manage (add/edit/delete) the drug products/brands known to GNUmed from "
+"which you can select a component."
+msgstr ""
+"Medikamente verwalten.\n"
+"\n"
+"Hiermit können Sie keine Komponente auswählen. Sie können aber die "
+"handelsüblichen Medikamente verwalten (anlegen, bearbeiten, löschen). Von "
+"diesen können Sie dann Komponenten wählen."
 
 msgid ""
 "Manage consumable substances.\n"
@@ -5532,6 +5553,9 @@ msgstr ""
 msgid "The preparation or form of the substance."
 msgstr "Die Darreichungs-/Zubereitungsform der Substanz."
 
+msgid "Check here if the start date simply isn't known."
+msgstr "Hier markieren, wenn das Anfangsdatum schlicht nicht bekannt ist."
+
 msgid ""
 "When was this substance started to be consumed or - if not known - the "
 "earliest it is known to have been be consumed."
@@ -5539,6 +5563,13 @@ msgstr ""
 "Wann wurde die Einnahme dieser Substanz begonnen oder - sofern nicht bekannt "
 "- der früheste bekannte Einnahmezeitpunkt."
 
+msgid ""
+"A coment on the certainty of the start date, such as \"+/- 3 weeks\", "
+"\"spring of 2002\", \"shortly after Easter 1996\", ...."
+msgstr ""
+"Ein Kommentar zur Genauigkeit des Beginns, etwa \"+/- 3 Wochen\", \"Frühjahr "
+"2002\", \"kurz nach Ostern 1996\", ..."
+
 msgid "Whether this substance is taken by advice."
 msgstr "Ob die Einnahme dieser Substanz gebilligt (bzw sogar empfohlen) wird."
 
@@ -5574,6 +5605,15 @@ msgstr "Einnahmeende auf plangemäßes Datum setzen."
 msgid "Reason for discontinuation."
 msgstr "Grund der Beendigung"
 
+msgid "Drug"
+msgstr "Medikament"
+
+msgid "Research:"
+msgstr "Recherchiere:"
+
+msgid "Certainty:"
+msgstr "Gewißheit:"
+
 msgid "Schedule"
 msgstr "Plan"
 
@@ -5743,6 +5783,31 @@ msgstr ""
 msgid "Channel"
 msgstr "Kanal"
 
+msgid "&Last modification time"
+msgstr "&Letzter Bearbeitungszeitpunkt"
+
+msgid "&Entry time"
+msgstr "&Eingabezeit"
+
+msgid "Show journal ordered by encounter."
+msgstr "Zeige Journal nach APK sortiert."
+
+msgid "Show journal ordered by time of last modification."
+msgstr "Karteijournal sortiert nach letztem Bearbeitungszeitpunkt zeigen."
+
+msgid "Show journal ordered by actual clinical time of each entry."
+msgstr ""
+"Zeige Journal nach klinisch relevantem Zeitpunkt der Einträge sortiert."
+
+msgid "Edit the selected chart entry."
+msgstr "Den markierten Karteieintrag bearbeiten."
+
+msgid "Delete selected chart entry."
+msgstr "Den markierten Karteieintrag löschen."
+
+msgid "Order by:"
+msgstr "Sortiere anhand von:"
+
 msgid "Chec&k"
 msgstr "&Prüfen"
 
@@ -6397,11 +6462,14 @@ msgstr "Meßwerte:"
 msgid "Documents:"
 msgstr "Dokumente:"
 
+msgid "&L"
+msgstr "&L"
+
 msgid "&N"
 msgstr "&N"
 
-msgid "&L"
-msgstr "&L"
+msgid "List all encounters."
+msgstr "Alle Kontakte (einschließlich leere) auflisten."
 
 msgid "The encounter."
 msgstr "Der Kontakt."
@@ -6409,9 +6477,6 @@ msgstr "Der Kontakt."
 msgid "Start a new encounter for the active patient."
 msgstr "Einen neuen Kontakt für den aktiven Patienten beginnen."
 
-msgid "List all encounters."
-msgstr "Alle Kontakte (einschließlich leere) auflisten."
-
 msgid "Clinically relevant"
 msgstr "Medizinisch relevant"
 
@@ -6703,10 +6768,12 @@ msgstr "Dynamische Hinweise verwalten."
 
 msgid ""
 "Rationale for\n"
-"suppression"
+"suppression\n"
+"for this patient"
 msgstr ""
 "Begründung des\n"
-"Unterdrückens"
+"Unterdrückens bei\n"
+"diesem Patienten"
 
 msgid "Save &under"
 msgstr "Speichern unter"
@@ -6775,6 +6842,12 @@ msgstr "Eintrag:"
 msgid "Encounter:"
 msgstr "Kontakt:"
 
+msgid "Manage"
+msgstr "Verwalten"
+
+msgid "&Panel:"
+msgstr ""
+
 msgid "&Pick"
 msgstr "&Wählen"
 
@@ -6830,6 +6903,9 @@ msgstr ""
 "\n"
 "Eine leere Nachricht unterdrückt die Begrüßung."
 
+msgid "Show search dialog."
+msgstr "Suchfunktion anzeigen."
+
 msgid "THIS IS NOT A VERIFIED MEASUREMENT. DO NOT USE FOR ACTUAL CARE."
 msgstr "KEINE GEEICHTE MESSUNG. NICHT ZUR BEHANDLUNG ZUGELASSEN !"
 
@@ -7119,6 +7195,45 @@ msgstr "*hat* Allergien"
 msgid "ERROR: unknown allergy state [%s]"
 msgstr "FEHLER: fehlerhafter Allergiestatus [%s]"
 
+msgid "definite"
+msgstr "sicher"
+
+msgid "indefinite"
+msgstr "unsicher"
+
+msgid "Reaction:"
+msgstr "Reaktion:"
+
+msgid "Noted:"
+msgstr "Bemerkt:"
+
+msgid "Allergene:"
+msgstr "Allergen:"
+
+msgid "Substance:"
+msgstr "Stoff:"
+
+msgid "Code:"
+msgstr "Code:"
+
+msgid "ATC:"
+msgstr "ATC:"
+
+msgid "Specific to:"
+msgstr "Spezifisch für:"
+
+msgid "this substance only"
+msgstr "nur dieser Stoff"
+
+msgid "drug class"
+msgstr "Medikamentengruppe"
+
+msgid "unknown"
+msgstr "unbekannt"
+
+msgid "Generics:"
+msgstr "Generika:"
+
 msgid "Medication history"
 msgstr "Medikamentenhistorie"
 
@@ -7128,9 +7243,15 @@ msgstr "Kopie des gedruckten Rezepts"
 msgid "prescription data"
 msgstr "Rezeptdaten"
 
+msgid "Consumable substance"
+msgstr "Einnehmbare Substanz"
+
 msgid "in use"
 msgstr "in Gebrauch"
 
+msgid "w/"
+msgstr "mit"
+
 msgid "long-term"
 msgstr "Langzeit"
 
@@ -7150,6 +7271,35 @@ msgid "?ongoing"
 msgstr "andauernd ?"
 
 #, python-format
+msgid ""
+"Substance abuse entry                                              [#%s]\n"
+msgstr "Substanzmißbrauch                                              [#%s]\n"
+
+#, python-format
+msgid "Substance: %s [#%s]%s\n"
+msgstr "Substanz: %s   [#%s]%s\n"
+
+#, python-format
+msgid "Use type: %s\n"
+msgstr "Gebrauchsweise: %s\n"
+
+#, python-format
+msgid "Last checked: %s\n"
+msgstr "Zuletzt überprüft: %s\n"
+
+#, python-format
+msgid " Discontinued %s\n"
+msgstr " Beendet %s\n"
+
+#, python-format
+msgid " Notes: %s\n"
+msgstr " Notizen: %s\n"
+
+#, python-format
+msgid "Revision: #%(row_ver)s, %(mod_when)s by %(mod_by)s."
+msgstr "Revision: #%(row_ver)s, %(mod_when)s durch %(mod_by)s."
+
+#, python-format
 msgid "Substance intake entry (%s, %s)   [#%s]                     \n"
 msgstr "Substanzgebrauch (%s, %s)   [#%s]                     \n"
 
@@ -7165,9 +7315,6 @@ msgstr "gebilligt"
 msgid "unapproved"
 msgstr "ungebilligt"
 
-msgid "definite"
-msgstr "sicher"
-
 msgid "suspected"
 msgstr "vermutet"
 
@@ -7214,10 +7361,6 @@ msgid " (short-term)"
 msgstr " (kurzzeitig)"
 
 #, python-format
-msgid " Discontinued %s\n"
-msgstr " Beendet %s\n"
-
-#, python-format
 msgid " Reason: %s\n"
 msgstr " Grund: %s\n"
 
@@ -7237,17 +7380,60 @@ msgstr " Grunderkrankung: %s\n"
 msgid " Advice: %s\n"
 msgstr " Hinweis: %s\n"
 
+msgid "medication, not abuse"
+msgstr "Medikation, kein Mißbrauch"
+
+msgid "no or non-harmful use"
+msgstr "kein oder kein schädlicher Gebrauch"
+
+msgid "presently harmful use"
+msgstr "derzeit schädlicher Gebrauch"
+
+msgid "presently addicted"
+msgstr "derzeit abhängig"
+
+msgid "previously addicted"
+msgstr "früher abhängig"
+
 #, python-format
-msgid "Revision: #%(row_ver)s, %(mod_when)s by %(mod_by)s."
-msgstr "Revision: #%(row_ver)s, %(mod_when)s durch %(mod_by)s."
+msgid "%s%s: %s ago%s"
+msgstr "%s%s: vor %s%s"
+
+#, python-format
+msgid "%s%s: %s ago (%s)"
+msgstr "%s%s: vor %s (%s)"
 
 #, python-format
-msgid "%s: %s ago"
-msgstr "%s: vor %s"
+msgid "%s%s%s (%s ago)"
+msgstr "%s%s%s (vor %s)"
+
+#, python-format
+msgid "%s%s%s (%s ago, %s)"
+msgstr "%s%s%s (vor %s, %s)"
+
+#, python-format
+msgid "%s ago"
+msgstr "vor %s"
+
+#, python-format
+msgid "in %s"
+msgstr "in %s"
+
+#, python-format
+msgid ", until %s (%s)"
+msgstr ", bis %s (%s)"
+
+#, python-format
+msgid " (planned for %s%s)"
+msgstr " (geplant für %s%s)"
+
+#, python-format
+msgid ", planned for %s%s"
+msgstr ", geplant für %s%s"
 
 #, python-format
-msgid "%s: %s ago (%s)"
-msgstr "%s: vor %s (%s)"
+msgid "%s ago (for %s: %s %s %s)"
+msgstr "vor %s (für %s: %s %s %s)"
 
 msgid "Additional notes"
 msgstr "Zusätzliche Angaben"
@@ -7261,12 +7447,33 @@ msgstr "Medikamentenliste"
 msgid "ordered by brand"
 msgstr "nach Handelsnamen geordnet"
 
-msgid "Drug"
-msgstr "Medikament"
-
 msgid "Regimen / Advice"
 msgstr "Einnahme / Hinweis"
 
+#, python-format
+msgid "Component of %s (%s)"
+msgstr "Bestandteil von %s (%s)"
+
+#, python-format
+msgid "ATC (substance): %s"
+msgstr "ATC (Wirkstoff): %s"
+
+#, python-format
+msgid "ATC (brand): %s"
+msgstr "ATC (Handelsname): %s"
+
+msgid "this is a component of a fake brand"
+msgstr "dies ist Bestandteil eines Pseudoprodukts"
+
+msgid "Components:"
+msgstr "Bestandteile:"
+
+msgid "this is a fake brand"
+msgstr "dies ist ein Pseudoprodukt"
+
+msgid "this is a vaccine"
+msgstr "dies ist ein Impfstoff"
+
 msgid "units"
 msgstr "Einheiten"
 
@@ -7299,49 +7506,15 @@ msgstr "Verfallen: %s\n"
 msgid "Expires: %s\n"
 msgstr "Verfällt: %s\n"
 
-msgid "Active clinical hint"
-msgstr "Aktiver klinischer Tip"
-
-msgid "Inactive clinical hint"
-msgstr "Inaktiver klinischer Tip"
-
-#, python-format
-msgid "Source: %s\n"
-msgstr "Quelle: %s\n"
-
-#, python-format
-msgid "Language: %s\n"
-msgstr "Sprache: %s\n"
-
-msgid "Suppressed active dynamic hint"
-msgstr "Unterdrückter aktiver dynamischer Hinweis"
-
-msgid "Suppressed inactive dynamic hint"
-msgstr "Unterdrückter inaktiver dynamischen Hinweis"
-
-#, python-format
-msgid "Suppressed by: %s\n"
-msgstr "Unterdrückt von: %s\n"
-
-#, python-format
-msgid "Suppressed at: %s\n"
-msgstr "Unterdrückt am: %s\n"
-
-#, python-format
-msgid "Hint #: %s\n"
-msgstr "Hinweis-No: %s\n"
-
-#, python-format
-msgid "Patient #: %s\n"
-msgstr "Patient #: %s\n"
+msgid "HL7 Source"
+msgstr "HL7-Quelle"
 
-#, python-format
-msgid "MD5 (currently): %s\n"
-msgstr "MD5 (jetzt): %s\n"
+msgid "HL7 data size"
+msgstr "Größe der HL7-Daten"
 
 #, python-format
-msgid "MD5 (at suppression): %s\n"
-msgstr "MD5 (bei Unterdrückung): %s\n"
+msgid "%s bytes"
+msgstr "%s Byte"
 
 msgid "HL7 Message"
 msgstr "HL7-Nachricht"
@@ -7398,13 +7571,6 @@ msgstr "Datei"
 msgid "doc: %s"
 msgstr "Dokument: %s"
 
-msgid "no patient photograph available"
-msgstr "kein Patientenfoto verfügbar"
-
-#, python-format
-msgid "patient photograph from %s"
-msgstr "Patientenbild von %s"
-
 msgid "Patient data for"
 msgstr "Patientendaten für"
 
@@ -7414,6 +7580,9 @@ msgstr "geboren"
 msgid "Patient data export"
 msgstr "Export von Patientendaten"
 
+msgid "no patient photograph available"
+msgstr "kein Patientenfoto verfügbar"
+
 msgid "Documents"
 msgstr "Dokumente"
 
@@ -7423,6 +7592,10 @@ msgstr "Datenträger durchsuchen"
 msgid "browse documents area"
 msgstr "Dokumentenbereich durchblättern"
 
+#, python-format
+msgid "patient photograph from %s"
+msgstr "Patientenbild von %s"
+
 msgid "Browse patient data"
 msgstr "Patientendaten durchblättern"
 
@@ -7457,26 +7630,30 @@ msgstr "Fehler mit pdftk. Kann PDF-Formular nicht versiegeln."
 #, python-format
 msgid ""
 "%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s %(suburb)s, "
-"%(code_state)s, %(code_country)s"
+"%(code_region)s, %(code_country)s"
 msgstr ""
 
 #, python-format
 msgid ""
 "%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s %(suburb)s, "
-"%(code_state)s, %(code_country)s"
+"%(code_region)s, %(code_country)s"
 msgstr ""
+"%(street)s %(number)s, %(zip)s %(urb)s, %(l10n_region)s, %(l10n_country)s"
 
 #, python-format
 msgid ""
-"%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_state)s, "
-"%(code_country)s"
+"%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, "
+"%(code_region)s, %(code_country)s"
 msgstr ""
+"%(l10n_type)s: %(street)s %(number)s, %(zip)s %(urb)s, %(l10n_region)s, "
+"%(l10n_country)s"
 
 #, python-format
 msgid ""
-"%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_state)s, "
+"%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_region)s, "
 "%(code_country)s"
 msgstr ""
+"%(street)s %(number)s, %(zip)s %(urb)s, %(l10n_region)s, %(l10n_country)s"
 
 #, python-format
 msgid ""
@@ -7484,14 +7661,14 @@ msgid ""
 " Street: %(street)s%(notes_street)s\n"
 " Number/Unit: %(number)s%(subunit)s%(notes_subunit)s\n"
 " Location: %(zip)s %(urb)s%(suburb)s\n"
-" Region: %(l10n_state)s, %(code_state)s\n"
+" Region: %(l10n_region)s, %(code_region)s\n"
 " Country: %(l10n_country)s, %(code_country)s"
 msgstr ""
 "Adresse (%(type)s)       [#%(pk_adr)s]\n"
 " Straße: %(street)s%(notes_street)s\n"
 " Nummer: %(number)s%(subunit)s%(notes_subunit)s\n"
 " Ort: %(zip)s %(urb)s%(suburb)s\n"
-" Land: %(l10n_state)s, %(code_state)s\n"
+" Land: %(l10n_region)s, %(code_region)s\n"
 " Staat: %(l10n_country)s, %(code_country)s"
 
 #, python-format
@@ -7500,14 +7677,14 @@ msgid ""
 " Street: %(street)s%(notes_street)s\n"
 " Number/Unit: %(number)s%(subunit)s%(notes_subunit)s\n"
 " Location: %(zip)s %(urb)s%(suburb)s\n"
-" Region: %(l10n_state)s, %(code_state)s\n"
+" Region: %(l10n_region)s, %(code_region)s\n"
 " Country: %(l10n_country)s, %(code_country)s"
 msgstr ""
 "Adresse [#%(pk_adr)s]\n"
 " Straße: %(street)s%(notes_street)s\n"
 " Nummer: %(number)s%(subunit)s%(notes_subunit)s\n"
 " Ort: %(zip)s %(urb)s%(suburb)s\n"
-" Land: %(l10n_state)s, %(code_state)s\n"
+" Land: %(l10n_region)s, %(code_region)s\n"
 " Staat: %(l10n_country)s, %(code_country)s"
 
 msgid "Textual keyword expansion"
@@ -7575,6 +7752,83 @@ msgstr "berichtigtes Ergebnis"
 msgid "missing, reported later"
 msgstr "fehlt/folgt"
 
+msgid "Health issue"
+msgstr "Grunderkrankung"
+
+msgid "External care"
+msgstr "Externe Mitbetreuung"
+
+msgid "Vaccination"
+msgstr "Impfung"
+
+msgid "Clinical narrative"
+msgstr "Medizinischer Freitext"
+
+msgid "Test result"
+msgstr "Meßwert"
+
+msgid "Substance intake"
+msgstr "Substanzeinnahme"
+
+msgid "Hospital stay"
+msgstr "Krankenhausaufenthalt"
+
+msgid "Performed procedure"
+msgstr "Maßnahme"
+
+msgid "Family history"
+msgstr "Familienanamnese"
+
+msgid "Document"
+msgstr "Dokument"
+
+#, python-format
+msgid "unmapped entry type from table [%s]"
+msgstr "nicht übertragener Eintragtyp, aus Tabelle [%s]"
+
+#, python-format
+msgid "cannot instantiate clinical root item <%s(%s)>"
+msgstr "Kann medizinischen Eintrag nicht laden <%s(%s)>"
+
+msgid "True"
+msgstr "Wahr"
+
+msgid "False"
+msgstr "Falsch"
+
+msgid "unknown smoking status"
+msgstr "Rauchstatus nicht bekannt"
+
+msgid "non-smoker"
+msgstr "Nichtraucher"
+
+msgid "current smoker"
+msgstr "aktiver Raucher"
+
+msgid "ex-smoker"
+msgstr "Exraucher"
+
+msgid "tobacco addiction"
+msgstr "Tabakabhängigkeit"
+
+msgid "no or non-harmful alcohol use"
+msgstr "kein oder unschädlicher Alkoholgebrauch"
+
+msgid "harmful alcohol use"
+msgstr "schädlicher Alkoholgebrauch"
+
+msgid "unknown alcohol use"
+msgstr "Alkoholgebrauch nicht bekannt"
+
+msgid "no or non-harmful drug use"
+msgstr "kein oder unschädlicher Gebrauch sonstiger Substanzen"
+
+msgid "harmful drug use"
+msgstr "schädlicher Gebrauch sonstiger Substanzen"
+
+msgid "unknown drug use"
+msgstr "Substanzgebrauch nicht bekannt"
+
 msgid "original entry"
 msgstr "Originaleintrag"
 
@@ -7677,15 +7931,8 @@ msgstr "Berufe"
 msgid "Vaccinations"
 msgstr "Impfungen"
 
-#, python-format
-msgid "%s ago"
-msgstr "vor %s"
-
-msgid "External care"
-msgstr "Externe Mitbetreuung"
-
-msgid "Allergies/Intolerances"
-msgstr "Allergien/Unverträglichkeiten"
+msgid "Allergies/Intolerances"
+msgstr "Allergien/Unverträglichkeiten"
 
 #, python-format
 msgid "Allergy detail: %s"
@@ -7779,6 +8026,83 @@ msgstr ""
 "\n"
 "Das Konto wurde stattdessen deaktiviert."
 
+msgid "SOAP_char_S=S"
+msgstr "SOAP_char_S=A"
+
+msgid "SOAP_char_O=O"
+msgstr "SOAP_char_O=B"
+
+msgid "SOAP_char_A=A"
+msgstr "SOAP_char_A=D"
+
+msgid "SOAP_char_P=P"
+msgstr "SOAP_char_P=T"
+
+msgid "SOAP_char_U=U"
+msgstr "SOAP_char_U=U"
+
+msgid "SOAP_string_Subjective=Subjective"
+msgstr "SOAP_string_Subjective=Anamnese"
+
+msgid "SOAP_string_Objective=Objective"
+msgstr "SOAP_string_Objective=Befund"
+
+msgid "SOAP_string_Assessment=Assessment"
+msgstr "SOAP_string_Assessment=Bewertung"
+
+msgid "SOAP_string_Plan=Plan"
+msgstr "SOAP_string_Plan=Therapieplan"
+
+msgid "SOAP_string_Unspecified=Unspecified"
+msgstr "SOAP_string_Unspecified=Unbestimmt"
+
+msgid "SOAP_string_Administrative=Administrative"
+msgstr "SOAP_string_Administrative=Administrativ"
+
+msgid "Active clinical hint"
+msgstr "Aktiver klinischer Tip"
+
+msgid "Inactive clinical hint"
+msgstr "Inaktiver klinischer Tip"
+
+#, python-format
+msgid "Source: %s\n"
+msgstr "Quelle: %s\n"
+
+#, python-format
+msgid "Language: %s\n"
+msgstr "Sprache: %s\n"
+
+msgid "Suppressed active dynamic hint"
+msgstr "Unterdrückter aktiver dynamischer Hinweis"
+
+msgid "Suppressed inactive dynamic hint"
+msgstr "Unterdrückter inaktiver dynamischen Hinweis"
+
+#, python-format
+msgid "Suppressed by: %s\n"
+msgstr "Unterdrückt von: %s\n"
+
+#, python-format
+msgid "Suppressed at: %s\n"
+msgstr "Unterdrückt am: %s\n"
+
+#, python-format
+msgid "Hint #: %s\n"
+msgstr "Hinweis-No: %s\n"
+
+#, python-format
+msgid "Patient #: %s\n"
+msgstr "Patient #: %s\n"
+
+#, python-format
+msgid "MD5 (currently): %s\n"
+msgstr "MD5 (jetzt): %s\n"
+
+#, python-format
+msgid "MD5 (at suppression): %s\n"
+msgstr "MD5 (bei Unterdrückung): %s\n"
+
 #, python-format
 msgid "Device(%s):"
 msgstr "Gerät (%s):"
@@ -7805,6 +8129,14 @@ msgstr "Impedanz:"
 msgid "Praxis branch                   #%s\n"
 msgstr "Praxis-Zweigstelle              #%s\n"
 
+#, python-format
+msgid ""
+"FN:%(l10n_unit_category)s %(branch)s of %(l10n_organization_category)s "
+"%(praxis)s"
+msgstr ""
+"FN:%(l10n_unit_category)s %(branch)s in %(l10n_organization_category)s "
+"%(praxis)s"
+
 msgid "Privacy notice"
 msgstr "Datenschutzhinweis"
 
@@ -7820,39 +8152,6 @@ msgstr ""
 msgid "%s: Staff member %s has been notified of your chart access."
 msgstr "%s: Mitarbeiter %s wurde über Ihre Akteneinsicht benachrichtigt."
 
-msgid "soap_S"
-msgstr "soap_A"
-
-msgid "soap_O"
-msgstr "soap_B"
-
-msgid "soap_A"
-msgstr "soap_D"
-
-msgid "soap_P"
-msgstr "soap_T"
-
-msgid "soap_U"
-msgstr "soap_U"
-
-msgid "soap_Subjective"
-msgstr "soap_Anamnese"
-
-msgid "soap_Objective"
-msgstr "soap_Befund"
-
-msgid "soap_Assessment"
-msgstr "soap_Beurteilung"
-
-msgid "soap_Plan"
-msgstr "soap_Procedere"
-
-msgid "soap_Unspecified"
-msgstr "soap_Unbestimmt"
-
-msgid "soap_Administrative"
-msgstr "soap_Verwaltung"
-
 #, python-format
 msgid ""
 "%s: %s by %.8s (v%s)\n"
@@ -7919,9 +8218,17 @@ msgid "%(last)s,%(title)s %(first)s%(nick)s (%(sex)s)"
 msgstr "%(title)s %(last)s, %(first)s%(nick)s (%(sex)s)"
 
 #, python-format
+msgid "%(last)s,%(title)s %(first)s (%(sex)s)"
+msgstr "%(title)s %(last)s, %(first)s (%(sex)s)"
+
+#, python-format
 msgid "%(last)s,%(title)s %(first)s%(nick)s"
 msgstr "%(title)s %(last)s, %(first)s%(nick)s"
 
+#, python-format
+msgid "%(last)s,%(title)s %(first)s"
+msgstr "%(title)s %(last)s, %(first)s"
+
 msgid "Cannot merge active patient into another patient."
 msgstr "Kann aktiven Patienten nicht in einen anderen Patienten einfügen."
 
@@ -7931,9 +8238,6 @@ msgstr "zusammengeführt"
 msgid "merged"
 msgstr "zusammengeführt"
 
-msgid "preferred name/call name/..."
-msgstr "bevorzugter Name/Rufname/..."
-
 msgid "invalid age: DOB in the future"
 msgstr "ungültiges Alter: Geburtsdatum in der Zukunft"
 
@@ -7946,9 +8250,6 @@ msgstr "Herr"
 msgid "Mrs"
 msgstr "Frau"
 
-msgid "unknown"
-msgstr "unbekannt"
-
 msgid "empty status"
 msgstr "unbekannter Status"
 
@@ -8022,7 +8323,7 @@ msgstr "Meßmethode \"%s\" (%s)          [#%s]\n"
 
 #, python-format
 msgid " Reference unit: %s\n"
-msgstr " Referenzgruppe: %s\n"
+msgstr " Referenzeinheit: %s\n"
 
 msgid "Lab details:\n"
 msgstr "Labordetails:\n"
@@ -8292,8 +8593,8 @@ msgid " Part %s: %s %s(%s Bytes)\n"
 msgstr " Teil %s: %s %s(%s Byte)\n"
 
 #, python-format
-msgid " Filename: %s\n"
-msgstr " Dateiname: %s\n"
+msgid " Filename: %s%s\n"
+msgstr " Dateiname: %s%s\n"
 
 msgid "no parts"
 msgstr "keine Teile"
@@ -8306,23 +8607,29 @@ msgid "%s parts"
 msgstr "%s Teile"
 
 #, python-format
+msgid "%s of %s"
+msgstr "%s von %s"
+
+#, python-format
 msgid ""
 "%s (%s)   #%s\n"
-"\n"
 " Created: %s\n"
 " Episode: %s\n"
-"%s%s%s"
+"%s%s%s%s"
 msgstr ""
 "%s (%s)   #%s\n"
-"\n"
 " Erstellt: %s\n"
 " Episode: %s\n"
-"%s%s%s"
+"%s%s%s%s"
 
 #, python-format
 msgid " External reference: %s\n"
 msgstr " Externe Referenz: %s\n"
 
+#, python-format
+msgid " Organization: %%s @ %s\n"
+msgstr " Organisation: %%s @ %s\n"
+
 msgid "Cannot run [arriba] !"
 msgstr "Kann [arriba] nicht ausführen !"
 
@@ -8672,31 +8979,8 @@ msgid "External care:"
 msgstr "Externe Mitbetreuung:"
 
 #, python-format
-msgid ""
-"health issue: %s%s%s\n"
-"\n"
-msgstr ""
-"Grunderkrankung: %s%s%s\n"
-"\n"
-
-msgid ""
-"\n"
-"current values:\n"
-msgstr ""
-"\n"
-"jetzige Werte:\n"
-
-msgid "no previous versions of this record"
-msgstr "Keine Vorversionen dieses Eintrags"
-
-msgid ""
-"\n"
-"all values with <audit_action>, <audit_when>, <audit_by> fields (current "
-"value first):\n"
-msgstr ""
-"\n"
-"alle Werte, zusätzlich <audit_action>, <audit_when>, <audit_by> (aktuelle "
-"Werte zuerst):\n"
+msgid "Health issue: %s%s%s"
+msgstr "Grunderkrankung: %s%s%s"
 
 msgid "Unattributed episodes"
 msgstr "Nicht zugeordnete Episoden"
@@ -8719,9 +9003,6 @@ msgstr " Dauer: %s (%s - %s)"
 msgid "finished"
 msgstr "beendet"
 
-msgid "Health issue"
-msgstr "Grunderkrankung"
-
 msgid "none associated"
 msgstr "keine zugeordnet"
 
@@ -8757,12 +9038,8 @@ msgid "Measurements and Results:"
 msgstr "Messungen und Ergebnisse:"
 
 #, python-format
-msgid ""
-"episode: %s%s%s\n"
-"\n"
-msgstr ""
-"Episode: %s%s%s\n"
-"\n"
+msgid "Episode: %s%s%s"
+msgstr "Episode: %s%s%s"
 
 #, python-format
 msgid "  your time: %s - %s  (@%s = %s%s)\n"
@@ -8791,12 +9068,8 @@ msgid "%s other episodes touched upon during this encounter:"
 msgstr "%s weitere Episoden während dieses Kontakts bearbeitet:"
 
 #, python-format
-msgid ""
-"encounter: %s%s%s\n"
-"\n"
-msgstr ""
-"Konsultation: %s%s%s\n"
-"\n"
+msgid "Encounter: %s%s%s"
+msgstr "Konsultation: %s%s%s"
 
 msgid " (ongoing)"
 msgstr " (andauernd)"
@@ -8816,9 +9089,6 @@ msgstr "Krankenhausaufenthalte"
 msgid "Procedures"
 msgstr "Maßnahmen"
 
-msgid "Substances"
-msgstr "Substanzen"
-
 msgid "Life events"
 msgstr "Lebensereignis"
 
@@ -8840,9 +9110,6 @@ msgstr "Tod"
 msgid "Cannot display timeline."
 msgstr "Kann Zeitstrahl nicht anzeigen."
 
-msgid "Vaccination"
-msgstr "Impfung"
-
 msgid "Lab result"
 msgstr "Laborergebnis"
 
@@ -8923,9 +9190,6 @@ msgstr "Wann"
 msgid "Exported: %s\n"
 msgstr "Exportiert: %s\n"
 
-msgid "emr-journal"
-msgstr "Kartei-Journal"
-
 msgid "Chronological EMR Journal\n"
 msgstr "Karteikarte als chronologisches Journal\n"
 
@@ -9235,20 +9499,8 @@ msgstr "Codesystem-Details"
 msgid "Select one or more codes that apply."
 msgstr "Wählen Sie einen oder mehrere Codes, die zutreffen."
 
-msgid "Cannot move progress notes. No active patient."
-msgstr "Kann Verlaufsnotizen nicht verschieben. Kein Patient aktiv."
-
-msgid "Moving progress notes between encounters ..."
-msgstr "Verlaufsnotizen zwischen Kontakten verschieben ..."
-
-msgid ""
-"\n"
-" Select the progress notes to move from the list !\n"
-"\n"
-msgstr ""
-"\n"
-" Wählen Sie die Verlaufsnotizen, die Sie verschieben wollen !\n"
-"\n"
+msgid "Select the narrative you are interested in ..."
+msgstr "Wählen Sie die Karteieinträge, die von Interesse sind ..."
 
 msgid "when"
 msgstr "wann"
@@ -9259,93 +9511,233 @@ msgstr "wer"
 msgid "entry"
 msgstr "Eintrag"
 
-msgid "Cannot edit progress notes. No active patient."
-msgstr "Kann Verlaufsnotizen nicht ändern. Kein Patient aktiv."
-
-msgid "Deleting progress note"
-msgstr "Lösche Verlaufsnotiz"
+msgid "There is no narrative for this episode in this encounter."
+msgstr "Keine Karteieinträge für diese Episode gefunden."
 
-msgid ""
-"Are you positively sure you want to delete this\n"
-"progress note from the medical record ?\n"
-"\n"
-"Note that even if you chose to delete the entry it will\n"
-"still be (invisibly) kept in the audit trail to protect\n"
-"you from litigation because physical deletion is known\n"
-"to be unlawful in some jurisdictions.\n"
+msgid "Must select episode to move narrative to first."
 msgstr ""
-"Sind Sie absolut sicher, daß Sie diese Verlaufs-\n"
-"notiz aus der Karteikarte löschen möchten ?\n"
-"\n"
-"Der Eintrag bleibt immer (unsichtbar) im Audit-System\n"
-"erhalten, auch wenn Sie sich für das Löschen entscheiden.\n"
-"Dies schützt Sie vor Rechtsproblemen, da vollständiges\n"
-"Löschen mancherorts nicht legal ist.\n"
+"Sie müssen erst eine Episode zum Verschieben der Karteieinträge wählen."
 
-msgid "Yes, delete the progress note."
-msgstr "Ja, die Verlaufsnotiz löschen."
+msgid "Last"
+msgstr "Zuletzt"
 
-msgid "No, do NOT delete the progress note."
-msgstr "Nein, die Verlaufsnotiz NICHT löschen."
+msgid "In health issue"
+msgstr "In Grunderkrankung"
 
-msgid "Editing progress note"
-msgstr "Bearbeite Verlaufsnotiz"
+msgid "Most recent notes on selected problem"
+msgstr "Letzte Notizen zum gewählten Problem"
 
-msgid "This is the original progress note:"
-msgstr "Dies ist die ursprüngliche Verlaufsnotiz:"
+#, python-format
+msgid "%s (active+potential) problems"
+msgstr "%s (aktive und potentielle) Probleme"
 
-msgid "Managing progress notes"
-msgstr "Verlaufsnotizen verwalten"
+#, python-format
+msgid "%s active problems"
+msgstr "%s aktive Probleme"
+
+msgid "Current encounter:"
+msgstr "Aktive Konsultation:"
+
+msgid "Cumulative summary"
+msgstr "Zusammenfassung"
+
+#, python-format
+msgid "Most recent info on %s%s%s"
+msgstr "Letzte Informationen zu %s%s%s"
 
 #, python-format
 msgid ""
+"Cannot open progress note editor for\n"
 "\n"
-" This list shows the progress notes by %s.\n"
+"[%s].\n"
 "\n"
 msgstr ""
-"\n"
-" In dieser Liste stehen die Verlaufsnotizen von %s.\n"
-"\n"
+"Kann keinen Editor für Verlaufsnotiz zum Problem:\n"
+"[%s]\n"
+"anlegen.\n"
 
-msgid "Enter (regex) term to search for across all EMRs:"
-msgstr "Den in allen Karteikarten zu suchenden Begriff (regex) eingeben:"
+msgid "opening progress note editor"
+msgstr "Editor für Verlaufsnotiz öffnen"
 
-msgid "Text search across all EMRs"
-msgstr "Textsuche über alle Karteikarten"
+msgid "Cannot save all editors. Some were kept open."
+msgstr ""
+"Kann nicht alle Karteieinträge speichern. Einige Editoren bleiben geöffnet."
+
+msgid "new problem"
+msgstr "neues Problem"
 
-#, python-format
 msgid ""
-"Nothing found for search term:\n"
-" \"%s\""
+"Are you sure you really want to\n"
+"discard this progress note ?\n"
 msgstr ""
-"Nichts gefunden für Suchbegriff:\n"
-" \"%s\""
-
-msgid "Search results"
-msgstr "Suchergebnisse"
+"Sind Sie sicher, daß diese Verlaufsnotiz\n"
+"verworfen werden soll ?\n"
 
-#, python-format
-msgid "Search results for [%s]"
-msgstr "Suchergebnisse für [%s]"
+msgid "Discarding progress note"
+msgstr "Verwerfe Verlaufsnotiz"
 
-msgid "Match"
-msgstr "Treffer"
+msgid "There are unsaved progress notes !\n"
+msgstr "Einige Verlaufsnotizen wurden noch nicht gespeichert !\n"
 
-msgid "Match location"
-msgstr "Fundstelle"
+msgid "Unsaved progress notes"
+msgstr "Ungespeicherte Verlaufsnotizen"
 
-msgid "Cannot search EMR. No active patient."
-msgstr "Kann Kartei nicht durchsuchen. Kein Patient aktiv."
+msgid "Problem list"
+msgstr "Liste der Probleme"
 
-msgid "Enter search term:"
-msgstr "Suchbegriff:"
+msgid "Saving SOAP note"
+msgstr "speichere Verlaufsnotiz"
 
-msgid "Text search of entire EMR of active patient"
-msgstr "Textsuche in der Karteikarte des aktiven Patienten"
+msgid "Do you want to save the SOAP note ?"
+msgstr "Wollen Sie die Verlaufsnotiz speichern ?"
 
 #, python-format
-msgid ""
-"Search term was: \"%s\"\n"
+msgid "&Filter by problem %s%s%s"
+msgstr "&Filtern anhand des Problems %s%s%s"
+
+msgid "Cannot save SimpleNotes SOAP note."
+msgstr "Kann SimpleNotes-Verlaufsnotiz nicht speichern."
+
+#, python-format
+msgid "Progress note: %s%s"
+msgstr "Verlaufsnotiz: %s%s"
+
+msgid "Please enter a name for the new problem:"
+msgstr "Geben Sie dem neuen Problem einen aussagekräftigen Namen:"
+
+msgid "Adding a problem"
+msgstr "Ein Problem hinzufügen"
+
+msgid "Cannot delete problem. There is still clinical data recorded for it."
+msgstr "Kann das Problem nicht löschen. Es enthält Karteieinträge."
+
+#, python-format
+msgid "GNUmed: configuring [%s] (%s plugins)"
+msgstr "GNUmed: konfiguriere [%s] (%s Module)"
+
+msgid "loading list of plugins                               "
+msgstr "lade die Liste der Plugins                            "
+
+msgid "failed"
+msgstr "fehlgeschlagen"
+
+msgid "success"
+msgstr "erfolgreich"
+
+#, python-format
+msgid ""
+"previous: %s (%s)\n"
+"current (%s/%s): %s"
+msgstr ""
+"zuletzt: %s (%s)\n"
+"jetzt (%s/%s): %s"
+
+#, python-format
+msgid "Cannot switch to [%s]: no patient selected"
+msgstr "Kann [%s] nicht aufrufen: kein Patient aktiviert."
+
+msgid "Cannot move progress notes. No active patient."
+msgstr "Kann Verlaufsnotizen nicht verschieben. Kein Patient aktiv."
+
+msgid "Moving progress notes between encounters ..."
+msgstr "Verlaufsnotizen zwischen Kontakten verschieben ..."
+
+msgid ""
+"\n"
+" Select the progress notes to move from the list !\n"
+"\n"
+msgstr ""
+"\n"
+" Wählen Sie die Verlaufsnotizen, die Sie verschieben wollen !\n"
+"\n"
+
+msgid "Cannot edit progress notes. No active patient."
+msgstr "Kann Verlaufsnotizen nicht ändern. Kein Patient aktiv."
+
+msgid "Deleting progress note"
+msgstr "Lösche Verlaufsnotiz"
+
+msgid ""
+"Are you positively sure you want to delete this\n"
+"progress note from the medical record ?\n"
+"\n"
+"Note that even if you chose to delete the entry it will\n"
+"still be (invisibly) kept in the audit trail to protect\n"
+"you from litigation because physical deletion is known\n"
+"to be unlawful in some jurisdictions.\n"
+msgstr ""
+"Sind Sie absolut sicher, daß Sie diese Verlaufs-\n"
+"notiz aus der Karteikarte löschen möchten ?\n"
+"\n"
+"Der Eintrag bleibt immer (unsichtbar) im Audit-System\n"
+"erhalten, auch wenn Sie sich für das Löschen entscheiden.\n"
+"Dies schützt Sie vor Rechtsproblemen, da vollständiges\n"
+"Löschen mancherorts nicht legal ist.\n"
+
+msgid "Yes, delete the progress note."
+msgstr "Ja, die Verlaufsnotiz löschen."
+
+msgid "No, do NOT delete the progress note."
+msgstr "Nein, die Verlaufsnotiz NICHT löschen."
+
+msgid "Editing progress note"
+msgstr "Bearbeite Verlaufsnotiz"
+
+msgid "This is the original progress note:"
+msgstr "Dies ist die ursprüngliche Verlaufsnotiz:"
+
+msgid "Managing progress notes"
+msgstr "Verlaufsnotizen verwalten"
+
+#, python-format
+msgid ""
+"\n"
+" This list shows the progress notes by %s.\n"
+"\n"
+msgstr ""
+"\n"
+" In dieser Liste stehen die Verlaufsnotizen von %s.\n"
+"\n"
+
+msgid "Enter (regex) term to search for across all EMRs:"
+msgstr "Den in allen Karteikarten zu suchenden Begriff (regex) eingeben:"
+
+msgid "Text search across all EMRs"
+msgstr "Textsuche über alle Karteikarten"
+
+#, python-format
+msgid ""
+"Nothing found for search term:\n"
+" \"%s\""
+msgstr ""
+"Nichts gefunden für Suchbegriff:\n"
+" \"%s\""
+
+msgid "Search results"
+msgstr "Suchergebnisse"
+
+#, python-format
+msgid "Search results for [%s]"
+msgstr "Suchergebnisse für [%s]"
+
+msgid "Match"
+msgstr "Treffer"
+
+msgid "Match location"
+msgstr "Fundstelle"
+
+msgid "Cannot search EMR. No active patient."
+msgstr "Kann Kartei nicht durchsuchen. Kein Patient aktiv."
+
+msgid "Enter search term:"
+msgstr "Suchbegriff:"
+
+msgid "Text search of entire EMR of active patient"
+msgstr "Textsuche in der Karteikarte des aktiven Patienten"
+
+#, python-format
+msgid ""
+"Search term was: \"%s\"\n"
 "\n"
 "Search results:\n"
 "\n"
@@ -9492,865 +9884,638 @@ msgstr ""
 "\n"
 " Markieren Sie die Einträge, die in den Bericht einfließen sollen.\n"
 
-msgid "Select the narrative you are interested in ..."
-msgstr "Wählen Sie die Karteieinträge, die von Interesse sind ..."
+msgid "Pick a date ..."
+msgstr "Wählen Sie ein Datum ..."
 
-msgid "There is no narrative for this episode in this encounter."
-msgstr "Keine Karteieinträge für diese Episode gefunden."
+msgid "<ALT-C/K>: pick from (c/k)alendar"
+msgstr "<ALT-C/K>: aus Kalender wählen"
 
-msgid "Must select episode to move narrative to first."
-msgstr ""
-"Sie müssen erst eine Episode zum Verschieben der Karteieinträge wählen."
+msgid "Cannot interpret input as timestamp."
+msgstr "Kann Eingabe nicht in einen Zeitpunkt übersetzen."
 
-msgid "Last"
-msgstr "Zuletzt"
+msgid "No vaccines were chosen"
+msgstr "keine Impfstoffe gewählt"
 
-msgid "In health issue"
-msgstr "In Grunderkrankung"
+#, python-format
+msgid "Combination of indications , %s , not found in any vaccine"
+msgstr "Für die Indikationen <%s> ist kein Kombi-Impfstoff bekannt."
 
-msgid "Most recent notes on selected problem"
-msgstr "Letzte Notizen zum gewählten Problem"
+msgid "Sequence"
+msgstr "Sequenz"
 
-#, python-format
-msgid "%s (active+potential) problems"
-msgstr "%s (aktive und potentielle) Probleme"
+msgid "Batch"
+msgstr "Charge"
 
-#, python-format
-msgid "%s active problems"
-msgstr "%s aktive Probleme"
+msgid "Vaccinator"
+msgstr "Impfarzt"
 
-msgid "Current encounter:"
-msgstr "Aktive Konsultation:"
+msgid ""
+"Vaccinations by Recommender (X = patient on regime, O = patient not on "
+"regime) "
+msgstr ""
 
-msgid "Cumulative summary"
-msgstr "Zusammenfassung"
+msgid "enrolled regime vaccinations not yet given"
+msgstr "Impfungen für den aktiven Impfplan noch nicht verabreicht"
+
+msgid "Proceed with "
+msgstr "Fortfahren mit"
 
 #, python-format
-msgid "Most recent info on %s%s%s"
-msgstr "Letzte Informationen zu %s%s%s"
+msgid "Failed to enrol patient in %s"
+msgstr "Kann Patient nicht in %s aufnehmen"
+
+#, python-format
+msgid "Failed to  delist patient from %s"
+msgstr "Kann Patient nicht aus %s entlassen"
+
+msgid "Missing GNUmed module"
+msgstr "Fehlendes GNUmed-Modul"
 
 #, python-format
 msgid ""
-"Cannot open progress note editor for\n"
+"GNUmed detected that parts of it are not\n"
+"properly installed. The following message\n"
+"names the missing part:\n"
 "\n"
-"[%s].\n"
+" \"%s\"\n"
 "\n"
+"Please make sure to get the missing\n"
+"parts installed. Otherwise some of the\n"
+"functionality will not be accessible."
 msgstr ""
-"Kann keinen Editor für Verlaufsnotiz zum Problem:\n"
-"[%s]\n"
-"anlegen.\n"
-
-msgid "opening progress note editor"
-msgstr "Editor für Verlaufsnotiz öffnen"
+"GNUmed mußte feststellen, daß einige Module nicht\n"
+"installiert sind. Die folgende Meldung weist\n"
+"auf die fehlenden Module hin:\n"
+"\n"
+" \"%s\"\n"
+"\n"
+"Installieren Sie die fehlenden Module nach,\n"
+"denn sonst werden einige Funktionen von\n"
+"GNUmed nicht verfügbar sein."
 
-msgid "Cannot save all editors. Some were kept open."
+#, python-format
+msgid ""
+"\n"
+" Source: %s"
 msgstr ""
-"Kann nicht alle Karteieinträge speichern. Einige Editoren bleiben geöffnet."
-
-msgid "new problem"
-msgstr "neues Problem"
+"\n"
+" Quelle: %s"
 
+#, python-format
 msgid ""
-"Are you sure you really want to\n"
-"discard this progress note ?\n"
+"\n"
+" Code: %s"
 msgstr ""
-"Sind Sie sicher, daß diese Verlaufsnotiz\n"
-"verworfen werden soll ?\n"
-
-msgid "Discarding progress note"
-msgstr "Verwerfe Verlaufsnotiz"
-
-msgid "There are unsaved progress notes !\n"
-msgstr "Einige Verlaufsnotizen wurden noch nicht gespeichert !\n"
-
-msgid "Unsaved progress notes"
-msgstr "Ungespeicherte Verlaufsnotizen"
+"\n"
+" Code: %s"
 
 #, python-format
-msgid "Synopsis (%s)"
-msgstr "Synopse (%s)"
-
 msgid ""
-"Enter a short working name for this new problem\n"
-"(which will become a new, unassociated episode):\n"
+"\n"
+" Details (first 250 characters):\n"
+"%s\n"
+"%s\n"
+"%s"
 msgstr ""
-"Geben Sie dem neuen Problem einen kurzen, aussagekräftigen Namen\n"
-"(es wird eine neue, unzugeordnete Episode angelegt):\n"
+"\n"
+" Details (bis 250. Zeichen):\n"
+"%s\n"
+"%s\n"
+"%s"
+
+msgid "Access violation"
+msgstr "Zugriffsverletzung"
 
 #, python-format
 msgid ""
-"Enter a short working name for this new\n"
-"episode under the existing health issue\n"
+"You do not have access to this part of GNUmed.\n"
 "\n"
-"\"%s\":\n"
+"%s"
 msgstr ""
-"Geben Sie dem neuen Problem einen kurzen, aussagekräftigen Namen\n"
-"(es wird eine neue Episode zur existierenden Grunderkrankung\n"
+"Sie haben keine Zugriff auf diesen Teil von GNUmed.\n"
 "\n"
-"\"%s\" hinzugefügt):\n"
-
-msgid "Creating problem (episode) to save notelet under ..."
-msgstr "Lege Problem (Episode) zum Speichern des Eintrags an ..."
-
-msgid "Cannot save a new problem without a name."
-msgstr "Kann ein neues Problem nicht ohne Namen speichern."
+"%s"
 
-msgid "saving progress note"
-msgstr "speichere Verlaufsnotiz"
+msgid "Lost connection"
+msgstr "Verbindung verloren"
 
-#, python-format
 msgid ""
-"The new episode:\n"
-"\n"
-" \"%s\"\n"
+"Since you were last working in GNUmed,\n"
+"your database connection timed out.\n"
 "\n"
-"will remain unassociated despite the editor\n"
-"having been invoked from the health issue:\n"
+"This GNUmed session is now expired.\n"
 "\n"
-" \"%s\""
+"You will have to close this client and\n"
+"restart a new GNUmed session."
 msgstr ""
-"Die neue Episode:\n"
-"\n"
-" \"%s\"\n"
+"Seit Sie zuletzt mit GNUmed gearbeitet\n"
+"haben, wurde die Datenbankverbindung beendet.\n"
 "\n"
-"bleibt unzugeordnet, obschon der Editor\n"
-"über eine Grunderkrankung aufgerufen wurde:\n"
+"Diese GNUmed-Sitzung ist damit abgelaufen.\n"
 "\n"
-" \"%s\""
-
-msgid "You need to actually set an editor."
-msgstr "Sie müssen auch wirklich einen Editor auswählen."
-
-#, python-format
-msgid "The command [%s] is not found."
-msgstr "Der Programmpfad [%s] wurde nicht gefunden."
+"Sie müssen dieses GNUmed-Fenster schließen\n"
+"und GNUmed neu starten."
 
-#, python-format
 msgid ""
-"Enter the shell command with which to start\n"
-"the image editor for visual progress notes.\n"
-"\n"
-"Any \"%(img)s\" included with the arguments\n"
-"will be replaced by the file name of the\n"
-"note template."
+"Please enter a short note on what you\n"
+"were about to do in GNUmed:"
 msgstr ""
-"Geben Sie die Befehlszeile zum Starten der\n"
-"Bildbearbeitungssoftware für Bildnotizen ein.\n"
-"\n"
-"Jedes \"%(img)s\" in der Befehlszeile wird\n"
-"beim Aufruf von GNUmed durch den Dateinamen\n"
-"der Vorlage ersetzt."
-
-msgid "Choose file to use as template for new visual progress note"
-msgstr "Wählen Sie eine Datei als Vorlage für die neue Bildnotiz"
-
-msgid "Visual progress note source"
-msgstr "Quelle für Bildnotiz"
-
-msgid "From which source do you want to pick the image template ?"
-msgstr "Aus welcher Quelle soll die Bildvorlage geholt werden ?"
-
-msgid "Database"
-msgstr "Datenbank"
-
-msgid "List of templates in the database."
-msgstr "Liste der Vorlagen in der Datenbank."
-
-msgid "Files in the filesystem."
-msgstr "Dateien im Dateisystem."
-
-msgid "Device"
-msgstr "Gerät"
-
-msgid "Image capture devices (scanners, cameras, etc)"
-msgstr "Bildquellen (Scanner, Kameras, usw)"
-
-#, python-format
-msgid "Cannot export visual progress note template for [%s]."
-msgstr "Kann Bildnotiz-Vorlage [%s] nicht exportieren."
-
-msgid "Cannot export visual progress note to file."
-msgstr "Kann Bildnotiz nicht in eine Datei exportieren."
+"Geben Sie eine kurze Notiz darüber ein, was\n"
+"Sie gerade in GNUmed zu tun beabsichtigten:"
 
-msgid "Editor for visual progress note not configured."
-msgstr "Kein Editor für Bildnotizen konfiguriert."
+msgid "Sending bug report"
+msgstr "Fehlerbericht senden"
 
-#, python-format
 msgid ""
-"There was a problem with running the editor\n"
-"for visual progress notes.\n"
-"\n"
-" [%s]\n"
+"Edit the list of email addresses to send the\n"
+"bug report to (separate addresses by spaces).\n"
 "\n"
+"Note that <gnumed-bugs at gnu.org> refers to\n"
+"the public (!) GNUmed bugs mailing list."
 msgstr ""
-"Es gab ein Problem beim Aufrufen des Editors\n"
-"für Bildnotizen.\n"
-"\n"
-" [%s]\n"
+"Bearbeiten Sie die Adressliste, an die der Fehlerbericht\n"
+"gesendet werden soll (Leerzeichen zur Trennung).\n"
 "\n"
-
-msgid "Editing visual progress note"
-msgstr "Bearbeite Bildnotiz"
+"Die Adresse <gnumed-bugs at gnu.org> steht für die\n"
+"öffentliche (!) Fehler-Mailingliste von GNUmed."
 
 #, python-format
 msgid ""
-"There was a problem reading the visual\n"
-"progress note from the file:\n"
+"Your bug report will be sent to:\n"
 "\n"
-" [%s]\n"
+"%s\n"
+"\n"
+"Make sure you have reviewed the log file for potentially\n"
+"sensitive information before sending out the bug report.\n"
 "\n"
+"Note that emailing the report may take a while depending\n"
+"on the speed of your internet connection.\n"
 msgstr ""
-"Es gab ein Problem beim Lesen der\n"
-"Bildnotiz aus der Datei:\n"
+"Ihr Fehlerbericht wird an folgende Adressen versandt:\n"
 "\n"
-" [%s]\n"
+"%s\n"
 "\n"
+"Kontrollieren Sie die Logdatei vorher auf potentiell\n"
+"sensible Informationen.\n"
+"\n"
+"Abhängig von Ihrer Internetanbindung kann es einen\n"
+"Moment dauern, ehe der Bericht vollständig versandt ist.\n"
 
-msgid "Saving visual progress note"
-msgstr "Speichere Bildnotiz"
+msgid "Yes, send the bug report."
+msgstr "Ja, den Fehlerbericht senden."
+
+msgid "No, do not send the bug report."
+msgstr "Den Fehlerbericht nicht senden."
+
+msgid "include log file in bug report"
+msgstr "Logdatei dem Fehlerbericht hinzufügen"
 
 msgid ""
-"You either created a visual progress note from a template\n"
-"in the database (rather than from a file on disk) or you\n"
-"edited an existing visual progress note.\n"
+"The database you are connected to is marked as\n"
+"\"in-production with controlled access\".\n"
 "\n"
-"The template/original was not modified at all, however.\n"
+"You indicated that you want to include the log\n"
+"file in your bug report. While this is often\n"
+"useful for debugging the log file might contain\n"
+"bits of patient data which must not be sent out\n"
+"without de-identification.\n"
 "\n"
-"Do you still want to save the unmodified image as a\n"
-"visual progress note into the EMR of the patient ?\n"
+"Please confirm that you want to include the log !"
 msgstr ""
-"Sie haben diese Bildnotiz entweder aus einer Vorlage aus\n"
-"der Datenbank (anstelle aus einer Datei) erzeugt oder Sie\n"
-"haben eine existierende Bildnotiz bearbeitet.\n"
+"Die Datenbank, bei der Sie angemeldet sind, ist als\n"
+"\"vertraulich mit kontrolliertem Zugriff\" markiert.\n"
 "\n"
-"Die Vorlage/Vornotiz wurde aber nicht verändert.\n"
+"Sie haben angekreuzt, daß die Logdatei dem Fehler-\n"
+"bericht beigefügt werden soll. Für das Auffinden von\n"
+"Programmfehlern ist dies meist nützlich. Die Logdatei\n"
+"kann vereinzelte Angaben zum Patienten beinhalten,\n"
+"die nicht ohne Anonymisierung versandt werden sollten.\n"
 "\n"
-"Wollen Sie das unveränderte Bild trotzdem als Bildnotiz\n"
-"in der Karteikarte des Patienten speichern ?\n"
-
-msgid "visual progress notes"
-msgstr "Bildnotizen"
+"Soll die Logdatei tatsächlich mit versandt werden ?"
 
-#, python-format
-msgid "Created: %s"
-msgstr "Erzeugt: %s"
+msgid "<not supplied>"
+msgstr "<nicht angegeben>"
 
-msgid "Problem list"
-msgstr "Liste der Probleme"
+msgid "Bug report has been emailed."
+msgstr "Fehlerbericht wurde versandt."
 
-msgid "Saving SOAP note"
-msgstr "speichere Verlaufsnotiz"
+msgid "Bug report COULD NOT be emailed."
+msgstr "Fehlerbericht konnte NICHT versandt werden."
 
-msgid "Do you want to save the SOAP note ?"
-msgstr "Wollen Sie die Verlaufsnotiz speichern ?"
+msgid "Underweight"
+msgstr "Untergewicht"
 
-#, python-format
-msgid "&Filter by problem %s%s%s"
-msgstr "&Filtern anhand des Problems %s%s%s"
+msgid "63< Normal >79"
+msgstr "63 < Normal > 79"
 
-msgid "Cannot save SimpleNotes SOAP note."
-msgstr "Kann SimpleNotes-Verlaufsnotiz nicht speichern."
+msgid "63 - Normal - 79"
+msgstr "63 - Normal - 79"
 
-#, python-format
-msgid "Progress note: %s%s"
-msgstr "Verlaufsnotiz: %s%s"
+msgid "Overweight"
+msgstr "Übergewicht"
 
-msgid "Please enter a name for the new problem:"
-msgstr "Geben Sie dem neuen Problem einen aussagekräftigen Namen:"
+msgid "Obese"
+msgstr "Adipositas"
 
-msgid "Adding a problem"
-msgstr "Ein Problem hinzufügen"
+msgid "Current height/mass"
+msgstr "Größe/Gewicht derzeit"
 
-msgid "Cannot delete problem. There is still clinical data recorded for it."
-msgstr "Kann das Problem nicht löschen. Es enthält Karteieinträge."
+msgid "Height (cm)"
+msgstr "Größe (cm): "
 
-#, python-format
-msgid "GNUmed: configuring [%s] (%s plugins)"
-msgstr "GNUmed: konfiguriere [%s] (%s Module)"
+msgid "Mass (kg)"
+msgstr "Gewicht (kg)"
 
-msgid "loading list of plugins                               "
-msgstr "lade die Liste der Plugins                            "
+msgid "Adjusted Values"
+msgstr "Resultierende Werte"
 
-msgid "failed"
-msgstr "fehlgeschlagen"
+msgid "Goal mass"
+msgstr "Zielgewicht"
 
-msgid "success"
-msgstr "erfolgreich"
+msgid "kg to lose"
+msgstr "abzunehmende Kg"
 
-#, python-format
-msgid ""
-"previous: %s (%s)\n"
-"current (%s/%s): %s"
-msgstr ""
-"zuletzt: %s (%s)\n"
-"jetzt (%s/%s): %s"
+msgid "BMI Calculator"
+msgstr "BMI-Rechner"
 
-#, python-format
-msgid "Cannot switch to [%s]: no patient selected"
-msgstr "Kann [%s] nicht aufrufen: kein Patient aktiviert."
+msgid "&Reset"
+msgstr "&Zurücksetzen"
 
-msgid "Pick a date ..."
-msgstr "Wählen Sie ein Datum ..."
+msgid "Select a healthcare provider."
+msgstr "Einen Arzt wählen"
 
-msgid "<ALT-C/K>: pick from (c/k)alendar"
-msgstr "<ALT-C/K>: aus Kalender wählen"
+msgid "Public (no clinical or demographic access)"
+msgstr ""
+"Öffentlich (kein Zugang zu Patientenstammdaten oder medizinischen Inhalten)"
 
-msgid "Cannot interpret input as timestamp."
-msgstr "Kann Eingabe nicht in einen Zeitpunkt übersetzen."
+msgid "Staff (demographic access only)"
+msgstr "Mitarbeiter (Zugang nur zu Patientenstammdaten)"
 
-msgid "No vaccines were chosen"
-msgstr "keine Impfstoffe gewählt"
+msgid "staff (clerical)"
+msgstr "Mitarbeiter (nicht-medizinisch)"
 
-#, python-format
-msgid "Combination of indications , %s , not found in any vaccine"
-msgstr "Für die Indikationen <%s> ist kein Kombi-Impfstoff bekannt."
+msgid "full clinical access"
+msgstr "Vollzugriff auf medizinische Daten"
 
-msgid "Sequence"
-msgstr "Sequenz"
+msgid "DB account"
+msgstr "DB-Konto"
 
-msgid "Batch"
-msgstr "Charge"
+msgid "can login"
+msgstr "Anmeldung möglich"
 
-msgid "Vaccinator"
-msgstr "Impfarzt"
+msgid "can not login"
+msgstr "keine Anmeldung möglich"
 
-msgid ""
-"Vaccinations by Recommender (X = patient on regime, O = patient not on "
-"regime) "
-msgstr ""
+msgid "Activating GNUmed user."
+msgstr "GNUmed-Nutzer aktivieren."
 
-msgid "enrolled regime vaccinations not yet given"
-msgstr "Impfungen für den aktiven Impfplan noch nicht verabreicht"
+msgid "Deactivating GNUmed user."
+msgstr "GNUmed-Nutzer deaktivieren."
 
-msgid "Proceed with "
-msgstr "Fortfahren mit"
+msgid "Removing GNUmed user."
+msgstr "GNUmed-Nutzer löschen."
 
-#, python-format
-msgid "Failed to enrol patient in %s"
-msgstr "Kann Patient nicht in %s aufnehmen"
+msgid "Removing GNUmed user"
+msgstr "GNUmed-Nutzer löschen"
 
-#, python-format
-msgid "Failed to  delist patient from %s"
-msgstr "Kann Patient nicht aus %s entlassen"
+msgid "Modifying GNUmed user."
+msgstr "GNUmed-Nutzer bearbeiten."
 
-msgid "Missing GNUmed module"
-msgstr "Fehlendes GNUmed-Modul"
+msgid "Failed to save changes to GNUmed database user."
+msgstr "Kann Änderungen des Mitarbeiters nicht speichern."
+
+msgid "Modifying GNUmed user"
+msgstr "GNUmed-Nutzer bearbeiten"
 
 #, python-format
-msgid ""
-"GNUmed detected that parts of it are not\n"
-"properly installed. The following message\n"
-"names the missing part:\n"
-"\n"
-" \"%s\"\n"
-"\n"
-"Please make sure to get the missing\n"
-"parts installed. Otherwise some of the\n"
-"functionality will not be accessible."
-msgstr ""
-"GNUmed mußte feststellen, daß einige Module nicht\n"
-"installiert sind. Die folgende Meldung weist\n"
-"auf die fehlenden Module hin:\n"
-"\n"
-" \"%s\"\n"
-"\n"
-"Installieren Sie die fehlenden Module nach,\n"
-"denn sonst werden einige Funktionen von\n"
-"GNUmed nicht verfügbar sein."
+msgid "Failed to set role [%s] for GNUmed database user."
+msgstr "Fehler beim Setzen der Rolle [%s] für das GNUmed-Datenbankkonto."
 
 #, python-format
 msgid ""
 "\n"
-" Source: %s"
+"  %s \"%s\" %s\n"
+"  born: %s"
 msgstr ""
 "\n"
-" Quelle: %s"
+" %s \"%s\" %s\n"
+" geboren: %s"
 
-#, python-format
 msgid ""
-"\n"
-" Code: %s"
+"Password entries do not match. Please type in the passwords again to rule "
+"out typos."
 msgstr ""
-"\n"
-" Code: %s"
+"Die Passworte stimmen nicht überein. Geben Sie die Passworte neu ein, um "
+"Tippfehler auszuschließen."
+
+msgid "Adding GNUmed user"
+msgstr "GNUmed-Nutzer hinzufügen"
 
-#, python-format
 msgid ""
+"Are you positively sure you want to create\n"
+"a user with an empty password ?\n"
 "\n"
-" Details (first 250 characters):\n"
-"%s\n"
-"%s\n"
-"%s"
+"Think about the record access implications !"
 msgstr ""
+"Sind Sie ganz sicher, daß Sie einen Mitarbeiter\n"
+"ohne Passwort anlegen wollen ?\n"
 "\n"
-" Details (bis 250. Zeichen):\n"
-"%s\n"
-"%s\n"
-"%s"
+"Denken Sie an die Bedeutung für den Karteizugriff !"
 
-msgid "Access violation"
-msgstr "Zugriffsverletzung"
+msgid "Enlisting person as user."
+msgstr "Aktuelle Person als GNUmed-Nutzer aufnehmen."
+
+msgid "Encrypt"
+msgstr "Verschlüsseln"
+
+msgid "Decrypt"
+msgstr "Entschlüsseln"
+
+msgid "Set pass phrase"
+msgstr "Passwort setzen"
+
+msgid "This is not correctly encrypted text!"
+msgstr "Dies ist kein korrekt entschlüsselter Text"
+
+msgid "Please enter your pass phrase:"
+msgstr "Bitte geben Sie Ihr Passwort ein:"
+
+msgid "Pass phrase expired"
+msgstr "Passwort verfallen"
 
-#, python-format
 msgid ""
-"You do not have access to this part of GNUmed.\n"
 "\n"
-"%s"
+"Conditions preventable by vaccination as currently known to GNUmed.\n"
 msgstr ""
-"Sie haben keine Zugriff auf diesen Teil von GNUmed.\n"
 "\n"
-"%s"
+"GNUmed als durch Impfung verhinderbar bekannte Krankheiten.\n"
 
-msgid "Lost connection"
-msgstr "Verbindung verloren"
+msgid "Showing vaccination preventable conditions."
+msgstr "Zeige durch Impfung verhinderbare Krankheiten."
+
+msgid "ATCs: single-condition vaccines"
+msgstr "ATCs: Einfachimpfstoffe"
+
+msgid "ATCs: multi-condition vaccines"
+msgstr "ATCs: Kombinationsimpfstoffe"
+
+msgid "Pick the relevant indications."
+msgstr "Wählen Sie die relevanten Indikationen."
+
+msgid "Known indications"
+msgstr "Bekannte Indikationen"
+
+msgid "Adding new vaccine"
+msgstr "Impfstoff hinzufügen"
+
+msgid "Editing vaccine"
+msgstr "Impfstoff bearbeiten"
 
+#, python-format
 msgid ""
-"Since you were last working in GNUmed,\n"
-"your database connection timed out.\n"
+"Cannot delete vaccine\n"
 "\n"
-"This GNUmed session is now expired.\n"
+" %s - %s (#%s)\n"
 "\n"
-"You will have to close this client and\n"
-"restart a new GNUmed session."
+"It is probably documented in a vaccination."
 msgstr ""
-"Seit Sie zuletzt mit GNUmed gearbeitet\n"
-"haben, wurde die Datenbankverbindung beendet.\n"
+"Kann Impfstoff nicht löschen\n"
 "\n"
-"Diese GNUmed-Sitzung ist damit abgelaufen.\n"
+" %s - %s (#%s)\n"
 "\n"
-"Sie müssen dieses GNUmed-Fenster schließen\n"
-"und GNUmed neu starten."
+"Er wurde wohl bei einer Impfung dokumentiert."
 
-msgid ""
-"Please enter a short note on what you\n"
-"were about to do in GNUmed:"
-msgstr ""
-"Geben Sie eine kurze Notiz darüber ein, was\n"
-"Sie gerade in GNUmed zu tun beabsichtigten:"
+msgid "Deleting vaccine"
+msgstr "Impfung löschen"
 
-msgid "Sending bug report"
-msgstr "Fehlerbericht senden"
+msgid "fake"
+msgstr "unecht"
 
 msgid ""
-"Edit the list of email addresses to send the\n"
-"bug report to (separate addresses by spaces).\n"
 "\n"
-"Note that <gnumed-bugs at gnu.org> refers to\n"
-"the public (!) GNUmed bugs mailing list."
+"The vaccines currently known to GNUmed.\n"
 msgstr ""
-"Bearbeiten Sie die Adressliste, an die der Fehlerbericht\n"
-"gesendet werden soll (Leerzeichen zur Trennung).\n"
 "\n"
-"Die Adresse <gnumed-bugs at gnu.org> steht für die\n"
-"öffentliche (!) Fehler-Mailingliste von GNUmed."
+"Die GNUmed bekannten Impfstoffe.\n"
+
+msgid "Showing vaccines."
+msgstr "Zeige Impfstoffe."
+
+msgid "Enter or select the batch/lot number of the vaccine used."
+msgstr "Die Chargennummer des verwendeten Impfstoffes eingeben oder auswählen."
+
+msgid "Saving vaccine"
+msgstr "Impfstoff speichern"
 
 #, python-format
 msgid ""
-"Your bug report will be sent to:\n"
+"This vaccine is already in use:\n"
 "\n"
-"%s\n"
+" \"%s\"\n"
+" (%s)\n"
 "\n"
-"Make sure you have reviewed the log file for potentially\n"
-"sensitive information before sending out the bug report.\n"
+"Are you absolutely positively sure that\n"
+"you really want to edit this vaccine ?\n"
 "\n"
-"Note that emailing the report may take a while depending\n"
-"on the speed of your internet connection.\n"
+"This will change the vaccine name and/or target\n"
+"conditions in each patient this vaccine was\n"
+"used in to document a vaccination with.\n"
 msgstr ""
-"Ihr Fehlerbericht wird an folgende Adressen versandt:\n"
+"Dieser Impfstoff ist bereits in Verwendung:\n"
 "\n"
-"%s\n"
+" \"%s\"\n"
+" (%s)\n"
 "\n"
-"Kontrollieren Sie die Logdatei vorher auf potentiell\n"
-"sensible Informationen.\n"
+"Sind Sie sich absolut und wirklich sicher, daß\n"
+"Sie diesen Impfstoff verändern wollen ?\n"
 "\n"
-"Abhängig von Ihrer Internetanbindung kann es einen\n"
-"Moment dauern, ehe der Bericht vollständig versandt ist.\n"
-
-msgid "Yes, send the bug report."
-msgstr "Ja, den Fehlerbericht senden."
-
-msgid "No, do not send the bug report."
-msgstr "Den Fehlerbericht nicht senden."
-
-msgid "include log file in bug report"
-msgstr "Logdatei dem Fehlerbericht hinzufügen"
+"Das würde dann Impfstoffbezeichnung und Impf-\n"
+"indikation bei allen Patienten ändern, bei denen\n"
+"die Verwendung dieses Impfstoffs dokumentiert wurde.\n"
 
-msgid ""
-"The database you are connected to is marked as\n"
-"\"in-production with controlled access\".\n"
-"\n"
-"You indicated that you want to include the log\n"
-"file in your bug report. While this is often\n"
-"useful for debugging the log file might contain\n"
-"bits of patient data which must not be sent out\n"
-"without de-identification.\n"
-"\n"
-"Please confirm that you want to include the log !"
-msgstr ""
-"Die Datenbank, bei der Sie angemeldet sind, ist als\n"
-"\"vertraulich mit kontrolliertem Zugriff\" markiert.\n"
-"\n"
-"Sie haben angekreuzt, daß die Logdatei dem Fehler-\n"
-"bericht beigefügt werden soll. Für das Auffinden von\n"
-"Programmfehlern ist dies meist nützlich. Die Logdatei\n"
-"kann vereinzelte Angaben zum Patienten beinhalten,\n"
-"die nicht ohne Anonymisierung versandt werden sollten.\n"
-"\n"
-"Soll die Logdatei tatsächlich mit versandt werden ?"
+msgid "You must select at least one indication."
+msgstr "Sie müssen wenigstens eine Indikation auswählen."
 
-msgid "<not supplied>"
-msgstr "<nicht angegeben>"
+msgid "Pick the diseases this vaccine protects against."
+msgstr "Wählen Sie die Krankheiten, vor denen dieser Impfstoff schützt."
 
-msgid "Bug report has been emailed."
-msgstr "Fehlerbericht wurde versandt."
+msgid "This vaccine"
+msgstr "Dieser Impfstoff"
 
-msgid "Bug report COULD NOT be emailed."
-msgstr "Fehlerbericht konnte NICHT versandt werden."
+msgid "Adding new vaccinations"
+msgstr "Neue Impfungen hinzufügen"
 
-msgid "Underweight"
-msgstr "Untergewicht"
+msgid "Editing vaccination"
+msgstr "Impfung bearbeiten"
 
-msgid "63< Normal >79"
-msgstr "63 < Normal > 79"
+msgid "vaccination recall"
+msgstr "Impf-Recall"
 
-msgid "63 - Normal - 79"
-msgstr "63 - Normal - 79"
+#, python-format
+msgid "vaccination recall (%s)"
+msgstr "Impf-Recall (%s)"
 
-msgid "Overweight"
-msgstr "Übergewicht"
+#, python-format
+msgid ""
+"Existing vaccination:\n"
+"\n"
+"%s"
+msgstr ""
+"Bestehende Impfung:\n"
+"\n"
+"%s"
 
-msgid "Obese"
-msgstr "Adipositas"
+msgid ""
+"\n"
+"Complete vaccination history for this patient.\n"
+msgstr ""
+"\n"
+"Vollständige Impfhistorie für diesen Patienten.\n"
 
-msgid "Current height/mass"
-msgstr "Größe/Gewicht derzeit"
+msgid "Showing vaccinations."
+msgstr "Zeige Impfungen."
 
-msgid "Height (cm)"
-msgstr "Größe (cm): "
+msgid "Intended to protect from"
+msgstr "Soll schützen vor"
 
-msgid "Mass (kg)"
-msgstr "Gewicht (kg)"
+msgid "Print vaccinations or recalls."
+msgstr "Impfungen oder Recalls drucken."
 
-msgid "Adjusted Values"
-msgstr "Resultierende Werte"
+msgid "Recall"
+msgstr "Erinnerung"
 
-msgid "Goal mass"
-msgstr "Zielgewicht"
+msgid "Add a recall for a vaccination"
+msgstr "Eine Erinnerung an eine Impfung erzeugen"
 
-msgid "kg to lose"
-msgstr "abzunehmende Kg"
+msgid "Vx schedules"
+msgstr "Impfpläne"
 
-msgid "BMI Calculator"
-msgstr "BMI-Rechner"
+msgid "Open a browser showing vaccination schedules."
+msgstr "Impfpläne im Browser anzeigen."
 
-msgid "&Reset"
-msgstr "&Zurücksetzen"
+msgid "prevention"
+msgstr "Prävention"
 
-msgid "Select a healthcare provider."
-msgstr "Einen Arzt wählen"
+msgid "Saving vaccination"
+msgstr "Speichere Impfung"
 
-msgid "Public (no clinical or demographic access)"
+msgid "Pick the diseases this vaccination was given against."
 msgstr ""
-"Öffentlich (kein Zugang zu Patientenstammdaten oder medizinischen Inhalten)"
-
-msgid "Staff (demographic access only)"
-msgstr "Mitarbeiter (Zugang nur zu Patientenstammdaten)"
-
-msgid "staff (clerical)"
-msgstr "Mitarbeiter (nicht-medizinisch)"
+"Wählen Sie die Krankheiten, gegen welche dieser Impfstoff verabreicht wurde."
 
-msgid "full clinical access"
-msgstr "Vollzugriff auf medizinische Daten"
+msgid "  IMMUNISATIONS  "
+msgstr "IMPFUNGEN"
 
-msgid "DB account"
-msgstr "DB-Konto"
+msgid "Indications"
+msgstr "Indikationen"
 
-msgid "can login"
-msgstr "Anmeldung möglich"
+msgid "Active Schedules"
+msgstr "aktive Impfpläne"
 
-msgid "can not login"
-msgstr "keine Anmeldung möglich"
+msgid "Missing Immunisations"
+msgstr "Fehlende Impfungen"
 
-msgid "no current role"
-msgstr "Keine aktive Rolle"
+msgid "  Alerts  "
+msgstr "Warnungen"
 
-msgid "Activating GNUmed user."
-msgstr "GNUmed-Nutzer aktivieren."
+msgid "ERROR: cannot retrieve active vaccination schedules"
+msgstr "ERROR: kann aktive Impfpläne nicht laden"
 
-msgid "Deactivating GNUmed user."
-msgstr "GNUmed-Nutzer deaktivieren."
+msgid "no active vaccination schedules"
+msgstr "keine Impfpläne aktiviert"
 
-msgid "Removing GNUmed user."
-msgstr "GNUmed-Nutzer löschen."
+#, python-format
+msgid "%s for %s (%s shots): %s"
+msgstr "%s für %s (%s.Impfung): %s"
 
-msgid "Removing GNUmed user"
-msgstr "GNUmed-Nutzer löschen"
+msgid "ERROR: cannot retrieve due/overdue vaccinations"
+msgstr "ERROR: kann über-/fällige Impfungen nicht laden"
 
-msgid "Modifying GNUmed user."
-msgstr "GNUmed-Nutzer bearbeiten."
+#, python-format
+msgid "%.0d weeks left: shot %s for %s in %s, due %s (%s)"
+msgstr "noch %.0d Wo: Impfung %s gegen %s in %s, fällig %s (%s)"
 
-msgid "Failed to save changes to GNUmed database user."
-msgstr "Kann Änderungen des Mitarbeiters nicht speichern."
+#, python-format
+msgid "overdue %.0dyrs %.0dwks: shot %s for %s in schedule \"%s\" (%s)"
+msgstr ""
+"überfällig %.0d J %.0d Wo: %s. Impfung gegen %s nach Impfplan \"%s\" (%s)"
 
-msgid "Modifying GNUmed user"
-msgstr "GNUmed-Nutzer bearbeiten"
+#, python-format
+msgid "due now: booster for %s in schedule \"%s\" (%s)"
+msgstr "jetzt fällig: Booster gegen %s nach Impfplan \"%s\" (%s)"
 
 #, python-format
-msgid "Failed to set role [%s] for GNUmed database user."
-msgstr "Fehler beim Setzen der Rolle [%s] für das GNUmed-Datenbankkonto."
+msgid "Synopsis (%s)"
+msgstr "Synopse (%s)"
+
+msgid ""
+"Enter a short working name for this new problem\n"
+"(which will become a new, unassociated episode):\n"
+msgstr ""
+"Geben Sie dem neuen Problem einen kurzen, aussagekräftigen Namen\n"
+"(es wird eine neue, unzugeordnete Episode angelegt):\n"
 
 #, python-format
 msgid ""
+"Enter a short working name for this new\n"
+"episode under the existing health issue\n"
 "\n"
-"  %s \"%s\" %s\n"
-"  born: %s"
+"\"%s\":\n"
 msgstr ""
+"Geben Sie dem neuen Problem einen kurzen, aussagekräftigen Namen\n"
+"(es wird eine neue Episode zur existierenden Grunderkrankung\n"
 "\n"
-" %s \"%s\" %s\n"
-" geboren: %s"
+"\"%s\" hinzugefügt):\n"
 
-msgid ""
-"Password entries do not match. Please type in the passwords again to rule "
-"out typos."
-msgstr ""
-"Die Passworte stimmen nicht überein. Geben Sie die Passworte neu ein, um "
-"Tippfehler auszuschließen."
+msgid "Creating problem (episode) to save notelet under ..."
+msgstr "Lege Problem (Episode) zum Speichern des Eintrags an ..."
 
-msgid "Adding GNUmed user"
-msgstr "GNUmed-Nutzer hinzufügen"
+msgid "Cannot save a new problem without a name."
+msgstr "Kann ein neues Problem nicht ohne Namen speichern."
 
+msgid "saving progress note"
+msgstr "speichere Verlaufsnotiz"
+
+#, python-format
 msgid ""
-"Are you positively sure you want to create\n"
-"a user with an empty password ?\n"
+"The new episode:\n"
 "\n"
-"Think about the record access implications !"
+" \"%s\"\n"
+"\n"
+"will remain unassociated despite the editor\n"
+"having been invoked from the health issue:\n"
+"\n"
+" \"%s\""
 msgstr ""
-"Sind Sie ganz sicher, daß Sie einen Mitarbeiter\n"
-"ohne Passwort anlegen wollen ?\n"
+"Die neue Episode:\n"
 "\n"
-"Denken Sie an die Bedeutung für den Karteizugriff !"
+" \"%s\"\n"
+"\n"
+"bleibt unzugeordnet, obschon der Editor\n"
+"über eine Grunderkrankung aufgerufen wurde:\n"
+"\n"
+" \"%s\""
 
-msgid "Enlisting person as user."
-msgstr "Aktuelle Person als GNUmed-Nutzer aufnehmen."
+msgid "Adding substance abuse"
+msgstr "Substanzgebrauch hinzufügen"
 
-msgid "Encrypt"
-msgstr "Verschlüsseln"
+msgid "Editing substance abuse"
+msgstr "Substanzgebrauch bearbeiten"
 
-msgid "Decrypt"
-msgstr "Entschlüsseln"
+msgid "Substances abused by the patient:"
+msgstr "Substanzgebrauch dieses Patienten:"
 
-msgid "Set pass phrase"
-msgstr "Passwort setzen"
+msgid "Showing abused substances."
+msgstr "Zeige Substanzmißbrauch."
 
-msgid "This is not correctly encrypted text!"
-msgstr "Dies ist kein korrekt entschlüsselter Text"
+msgid "Intake"
+msgstr "Einnahme"
 
-msgid "Please enter your pass phrase:"
-msgstr "Bitte geben Sie Ihr Passwort ein:"
-
-msgid "Pass phrase expired"
-msgstr "Passwort verfallen"
-
-msgid ""
-"\n"
-"Conditions preventable by vaccination as currently known to GNUmed.\n"
-msgstr ""
-"\n"
-"GNUmed als durch Impfung verhinderbar bekannte Krankheiten.\n"
-
-msgid "Showing vaccination preventable conditions."
-msgstr "Zeige durch Impfung verhinderbare Krankheiten."
-
-msgid "ATCs: single-condition vaccines"
-msgstr "ATCs: Einfachimpfstoffe"
-
-msgid "ATCs: multi-condition vaccines"
-msgstr "ATCs: Kombinationsimpfstoffe"
-
-msgid "Pick the relevant indications."
-msgstr "Wählen Sie die relevanten Indikationen."
-
-msgid "Known indications"
-msgstr "Bekannte Indikationen"
-
-msgid "Adding new vaccine"
-msgstr "Impfstoff hinzufügen"
-
-msgid "Editing vaccine"
-msgstr "Impfstoff bearbeiten"
-
-#, python-format
-msgid ""
-"Cannot delete vaccine\n"
-"\n"
-" %s - %s (#%s)\n"
-"\n"
-"It is probably documented in a vaccination."
-msgstr ""
-"Kann Impfstoff nicht löschen\n"
-"\n"
-" %s - %s (#%s)\n"
-"\n"
-"Er wurde wohl bei einer Impfung dokumentiert."
-
-msgid "Deleting vaccine"
-msgstr "Impfung löschen"
-
-msgid "fake"
-msgstr "unecht"
-
-msgid ""
-"\n"
-"The vaccines currently known to GNUmed.\n"
-msgstr ""
-"\n"
-"Die GNUmed bekannten Impfstoffe.\n"
-
-msgid "Showing vaccines."
-msgstr "Zeige Impfstoffe."
-
-msgid "Enter or select the batch/lot number of the vaccine used."
-msgstr "Die Chargennummer des verwendeten Impfstoffes eingeben oder auswählen."
-
-msgid "Saving vaccine"
-msgstr "Impfstoff speichern"
-
-#, python-format
-msgid ""
-"This vaccine is already in use:\n"
-"\n"
-" \"%s\"\n"
-" (%s)\n"
-"\n"
-"Are you absolutely positively sure that\n"
-"you really want to edit this vaccine ?\n"
-"\n"
-"This will change the vaccine name and/or target\n"
-"conditions in each patient this vaccine was\n"
-"used in to document a vaccination with.\n"
-msgstr ""
-"Dieser Impfstoff ist bereits in Verwendung:\n"
-"\n"
-" \"%s\"\n"
-" (%s)\n"
-"\n"
-"Sind Sie sich absolut und wirklich sicher, daß\n"
-"Sie diesen Impfstoff verändern wollen ?\n"
-"\n"
-"Das würde dann Impfstoffbezeichnung und Impf-\n"
-"indikation bei allen Patienten ändern, bei denen\n"
-"die Verwendung dieses Impfstoffs dokumentiert wurde.\n"
-
-msgid "You must select at least one indication."
-msgstr "Sie müssen wenigstens eine Indikation auswählen."
-
-msgid "Pick the diseases this vaccine protects against."
-msgstr "Wählen Sie die Krankheiten, vor denen dieser Impfstoff schützt."
-
-msgid "This vaccine"
-msgstr "Dieser Impfstoff"
-
-msgid "Adding new vaccinations"
-msgstr "Neue Impfungen hinzufügen"
-
-msgid "Editing vaccination"
-msgstr "Impfung bearbeiten"
-
-msgid "vaccination recall"
-msgstr "Impf-Recall"
-
-#, python-format
-msgid "vaccination recall (%s)"
-msgstr "Impf-Recall (%s)"
-
-#, python-format
-msgid ""
-"Existing vaccination:\n"
-"\n"
-"%s"
-msgstr ""
-"Bestehende Impfung:\n"
-"\n"
-"%s"
-
-msgid ""
-"\n"
-"Complete vaccination history for this patient.\n"
-msgstr ""
-"\n"
-"Vollständige Impfhistorie für diesen Patienten.\n"
-
-msgid "Showing vaccinations."
-msgstr "Zeige Impfungen."
-
-msgid "Intended to protect from"
-msgstr "Soll schützen vor"
-
-msgid "Print vaccinations or recalls."
-msgstr "Impfungen oder Recalls drucken."
-
-msgid "Recall"
-msgstr "Erinnerung"
-
-msgid "Add a recall for a vaccination"
-msgstr "Eine Erinnerung an eine Impfung erzeugen"
-
-msgid "Vx schedules"
-msgstr "Impfpläne"
-
-msgid "Open a browser showing vaccination schedules."
-msgstr "Impfpläne im Browser anzeigen."
-
-msgid "prevention"
-msgstr "Prävention"
-
-msgid "Saving vaccination"
-msgstr "Speichere Impfung"
-
-msgid "Pick the diseases this vaccination was given against."
-msgstr ""
-"Wählen Sie die Krankheiten, gegen welche dieser Impfstoff verabreicht wurde."
-
-msgid "  IMMUNISATIONS  "
-msgstr "IMPFUNGEN"
-
-msgid "Indications"
-msgstr "Indikationen"
-
-msgid "Active Schedules"
-msgstr "aktive Impfpläne"
-
-msgid "Missing Immunisations"
-msgstr "Fehlende Impfungen"
-
-msgid "  Alerts  "
-msgstr "Warnungen"
-
-msgid "ERROR: cannot retrieve active vaccination schedules"
-msgstr "ERROR: kann aktive Impfpläne nicht laden"
-
-msgid "no active vaccination schedules"
-msgstr "keine Impfpläne aktiviert"
-
-#, python-format
-msgid "%s for %s (%s shots): %s"
-msgstr "%s für %s (%s.Impfung): %s"
-
-msgid "ERROR: cannot retrieve due/overdue vaccinations"
-msgstr "ERROR: kann über-/fällige Impfungen nicht laden"
-
-#, python-format
-msgid "%.0d weeks left: shot %s for %s in %s, due %s (%s)"
-msgstr "noch %.0d Wo: Impfung %s gegen %s in %s, fällig %s (%s)"
-
-#, python-format
-msgid "overdue %.0dyrs %.0dwks: shot %s for %s in schedule \"%s\" (%s)"
-msgstr ""
-"überfällig %.0d J %.0d Wo: %s. Impfung gegen %s nach Impfplan \"%s\" (%s)"
+msgid "nicotine"
+msgstr "Nikotin"
 
-#, python-format
-msgid "due now: booster for %s in schedule \"%s\" (%s)"
-msgstr "jetzt fällig: Booster gegen %s nach Impfplan \"%s\" (%s)"
+msgid "unit"
+msgstr "Einheit"
 
 #, python-format
 msgid "Latest: %s ago (%s %s%s%s%s)"
@@ -10358,7 +10523,7 @@ msgstr "Zuletzt: vor %s (%s %s%s%s%s)"
 
 #, python-format
 msgid "%s %s%s%s (%s ago, %s)"
-msgstr "%s %s%s%s (%s ago, %s)"
+msgstr "%s %s%s%s (vor %s, %s)"
 
 #, python-format
 msgid "overdue %s: %s"
@@ -10368,6 +10533,12 @@ msgstr "fällig seit %s: %s"
 msgid "due in %s%s"
 msgstr "fällig in %s%s"
 
+msgid "suppr'd:"
+msgstr "unterdr.:"
+
+msgid "Suppressed hints:\n"
+msgstr "Unterdrückte Hinweise:\n"
+
 msgid ""
 "Do you really want to\n"
 "delete this inbox message ?"
@@ -10422,8 +10593,15 @@ msgstr ""
 "Überprüfen Sie Alter, Geschlecht und Zeit seit/bis Termin."
 
 #, python-format
-msgid "%s Vacc: %s"
-msgstr "%s Impfg: %s"
+msgid "%s Vacc: %s (latest of %s)"
+msgstr "%s Impfg: %s (jüngste von %s)"
+
+#, python-format
+msgid "Hx of addiction: %s"
+msgstr "Abhängigkeit (früher): %s"
+
+msgid "active substance abuse"
+msgstr "aktiver Substanzmißbrauch"
 
 #, python-format
 msgid "%s %s %s%s"
@@ -10624,30 +10802,151 @@ msgstr ""
 "\n"
 "Sie müssen Sie später im Personalien-Modul nachtragen.\n"
 
-msgid "You must select a value from the picklist or type an exact match."
-msgstr ""
-"Sie müssen entweder einen Wert aus der Liste wählen oder einen identischen "
-"Wert eintippen."
+msgid "You need to actually set an editor."
+msgstr "Sie müssen auch wirklich einen Editor auswählen."
+
+#, python-format
+msgid "The command [%s] is not found."
+msgstr "Der Programmpfad [%s] wurde nicht gefunden."
 
 #, python-format
 msgid ""
-"The content is invalid. It must match the regular expression: [%%s]. <%s>"
-msgstr "Die Eingabe ist ungültig. Sie muß dem Suchmuster [%%s] genügen. <%s>"
+"Enter the shell command with which to start\n"
+"the image editor for visual progress notes.\n"
+"\n"
+"Any \"%(img)s\" included with the arguments\n"
+"will be replaced by the file name of the\n"
+"note template."
+msgstr ""
+"Geben Sie die Befehlszeile zum Starten der\n"
+"Bildbearbeitungssoftware für Bildnotizen ein.\n"
+"\n"
+"Jedes \"%(img)s\" in der Befehlszeile wird\n"
+"beim Aufruf von GNUmed durch den Dateinamen\n"
+"der Vorlage ersetzt."
 
-msgid "Latin"
-msgstr "Latein"
+msgid "Choose file to use as template for new visual progress note"
+msgstr "Wählen Sie eine Datei als Vorlage für die neue Bildnotiz"
 
-msgid "Greek"
-msgstr "Griechisch"
+msgid "Visual progress note source"
+msgstr "Quelle für Bildnotiz"
 
-msgid "Cyrillic"
-msgstr "Kyrillisch"
+msgid "From which source do you want to pick the image template ?"
+msgstr "Aus welcher Quelle soll die Bildvorlage geholt werden ?"
 
-msgid "Four Es"
-msgstr "Vier Es"
+msgid "Database"
+msgstr "Datenbank"
 
-msgid "Symbol"
-msgstr "Symbol"
+msgid "List of templates in the database."
+msgstr "Liste der Vorlagen in der Datenbank."
+
+msgid "Files in the filesystem."
+msgstr "Dateien im Dateisystem."
+
+msgid "Device"
+msgstr "Gerät"
+
+msgid "Image capture devices (scanners, cameras, etc)"
+msgstr "Bildquellen (Scanner, Kameras, usw)"
+
+#, python-format
+msgid "Cannot export visual progress note template for [%s]."
+msgstr "Kann Bildnotiz-Vorlage [%s] nicht exportieren."
+
+msgid "Cannot export visual progress note to file."
+msgstr "Kann Bildnotiz nicht in eine Datei exportieren."
+
+msgid "Editor for visual progress note not configured."
+msgstr "Kein Editor für Bildnotizen konfiguriert."
+
+#, python-format
+msgid ""
+"There was a problem with running the editor\n"
+"for visual progress notes.\n"
+"\n"
+" [%s]\n"
+"\n"
+msgstr ""
+"Es gab ein Problem beim Aufrufen des Editors\n"
+"für Bildnotizen.\n"
+"\n"
+" [%s]\n"
+"\n"
+
+msgid "Editing visual progress note"
+msgstr "Bearbeite Bildnotiz"
+
+#, python-format
+msgid ""
+"There was a problem reading the visual\n"
+"progress note from the file:\n"
+"\n"
+" [%s]\n"
+"\n"
+msgstr ""
+"Es gab ein Problem beim Lesen der\n"
+"Bildnotiz aus der Datei:\n"
+"\n"
+" [%s]\n"
+"\n"
+
+msgid "Saving visual progress note"
+msgstr "Speichere Bildnotiz"
+
+msgid ""
+"You either created a visual progress note from a template\n"
+"in the database (rather than from a file on disk) or you\n"
+"edited an existing visual progress note.\n"
+"\n"
+"The template/original was not modified at all, however.\n"
+"\n"
+"Do you still want to save the unmodified image as a\n"
+"visual progress note into the EMR of the patient ?\n"
+msgstr ""
+"Sie haben diese Bildnotiz entweder aus einer Vorlage aus\n"
+"der Datenbank (anstelle aus einer Datei) erzeugt oder Sie\n"
+"haben eine existierende Bildnotiz bearbeitet.\n"
+"\n"
+"Die Vorlage/Vornotiz wurde aber nicht verändert.\n"
+"\n"
+"Wollen Sie das unveränderte Bild trotzdem als Bildnotiz\n"
+"in der Karteikarte des Patienten speichern ?\n"
+
+msgid "visual progress notes"
+msgstr "Bildnotizen"
+
+#, python-format
+msgid " [part 1 of %s]"
+msgstr " [Teil 1 von %s]"
+
+#, python-format
+msgid "Created: %s%s"
+msgstr "Erzeugt: %s%s"
+
+msgid "You must select a value from the picklist or type an exact match."
+msgstr ""
+"Sie müssen entweder einen Wert aus der Liste wählen oder einen identischen "
+"Wert eintippen."
+
+#, python-format
+msgid ""
+"The content is invalid. It must match the regular expression: [%%s]. <%s>"
+msgstr "Die Eingabe ist ungültig. Sie muß dem Suchmuster [%%s] genügen. <%s>"
+
+msgid "Latin"
+msgstr "Latein"
+
+msgid "Greek"
+msgstr "Griechisch"
+
+msgid "Cyrillic"
+msgstr "Kyrillisch"
+
+msgid "Four Es"
+msgstr "Vier Es"
+
+msgid "Symbol"
+msgstr "Symbol"
 
 msgid "Snellen Chart"
 msgstr "Snellen-Tafel"
@@ -10710,9 +11009,11 @@ msgstr "Keine Ersatzadresse ausgewählt"
 
 #, python-format
 msgid ""
-"%(street)s %(number)s, %(postcode)s %(urb)s, %(l10n_state)s, %(l10n_country)s"
+"%(street)s %(number)s, %(postcode)s %(urb)s, %(l10n_region)s, "
+"%(l10n_country)s"
 msgstr ""
-"%(street)s %(number)s, %(postcode)s %(urb)s, %(l10n_state)s, %(l10n_country)s"
+"%(street)s %(number)s, %(postcode)s %(urb)s, %(l10n_region)s, "
+"%(l10n_country)s"
 
 #, python-format
 msgid "no URL for comm channel [%s]"
@@ -11348,7 +11649,7 @@ msgstr "Kontaktdaten speichern."
 msgid ""
 "Cannot save address.\n"
 "\n"
-"Does the state [%s]\n"
+"Does the region [%s]\n"
 "exist in country [%s] ?"
 msgstr ""
 "Kann Adresse nicht speichern.\n"
@@ -11878,9 +12179,6 @@ msgstr ""
 "Nachricht: %s\n"
 "Daten: %s"
 
-msgid "Inbox Message Actions:"
-msgstr "Posteingangs-Aktionen:"
-
 msgid "Activate patient"
 msgstr "Patient aufrufen"
 
@@ -12705,9 +13003,10 @@ msgstr ""
 "als Teil Ihrer Praxis deklarieren."
 
 #, python-format
-msgid "Select branch (of praxis [%s]) which you are logging in from.\n"
+msgid "Select the branch of praxis [%s] which you are logging in from.\n"
 msgstr ""
-"Wählen Sie die Zweigstelle (der Praxis [%s]), aus der Sie sich anmelden.\n"
+"Wählen Sie die Zweigstelle der Praxis [%s], von welcher aus Sie sich "
+"anmelden.\n"
 
 msgid "Praxis branch selection ..."
 msgstr "Zweigstellenauswahl"
@@ -13110,6 +13409,12 @@ msgstr "Adresse nach Typ auswählen"
 msgid "List of addresses related to this person."
 msgstr "Liste der Adressen dieser Person."
 
+msgid "Map"
+msgstr "Karte"
+
+msgid "Show selected address on map"
+msgstr "Gewählte Adresse auf einer Karte zeigen"
+
 msgid "Adding new address"
 msgstr "Neue Adresse hinzufügen"
 
@@ -13305,8 +13610,100 @@ msgstr "Externe IDs"
 msgid "generic multi choice dialog"
 msgstr "allgemeine Mehrfachauswahl"
 
-msgid "Search in list"
-msgstr "In Liste suchen"
+msgid "Deleting list items"
+msgstr "Listeneinträge löschen"
+
+#, python-format
+msgid ""
+"You have selected %s list items.\n"
+"\n"
+"Really delete all %s items ?"
+msgstr ""
+"Es sind %s Listeneinträge markiert.\n"
+"\n"
+"Wirklich alle %s Einträge löschen ?"
+
+msgid ""
+"Select the items you want to work on.\n"
+"\n"
+"A discontinuous selection may depend on your holding down a platform-"
+"dependent modifier key (<CTRL>, <ALT>, etc) or key combination (eg. <CTRL-"
+"SHIFT> or <CTRL-ALT>) while clicking."
+msgstr ""
+"Wählen Sie die Einträge, die Sie bearbeiten wollen.\n"
+"\n"
+"Eine nicht fortlaufende Auswahl erreichen Sie durch das Drücken "
+"(systemabhängiger) Zusatztasten (<STRG>, <ALT>, etc) oder "
+"Tastenkombinationen (z.B. <STRG-SHIFT> oder <STRG-ALT>) während des "
+"Markierens."
+
+msgid "List Item Actions:"
+msgstr "Tabellenaktionen:"
+
+msgid "Add (<INS>)"
+msgstr "Hinzufügen (<Einfg>)"
+
+msgid "Delete (<DEL>)"
+msgstr "Löschen (<Entf>)"
+
+msgid "Find (<CTRL-F>)"
+msgstr "Finden (<STRG-F>)"
+
+#, python-format
+msgid "Find next [%s] (<CTRL-N>)"
+msgstr "Finde nächste [%s] (<STRG-N>)"
+
+msgid "Row tooltip"
+msgstr "Tooltip des Eintrags"
+
+msgid "Row data (formatted as text)"
+msgstr "Zeilendaten (als Text)"
+
+msgid "Row content (as one line)"
+msgstr "Zeileninhalt (als Einzeiler)"
+
+msgid "Row content (one line per column)"
+msgstr "Zeileninhalt (pro Spalte eine Zeile)"
+
+#, python-format
+msgid "Column &%s: \"%s\" [#%s]"
+msgstr "Spalte &%s: \"%s\" [#%s]"
+
+#, python-format
+msgid "Column &%s: %s"
+msgstr "Spalte &%s: %s"
+
+msgid "&Copy to clipboard..."
+msgstr "In Zwischenablage &kopieren..."
+
+msgid "Append (&+) to clipboard..."
+msgstr "An Zwischenablage anhängen (&+)..."
+
+#, python-format
+msgid ""
+"%s list items are selected.\n"
+"\n"
+"Really delete all %s items ?"
+msgstr ""
+"Es sind %s Listeneinträge markiert.\n"
+"\n"
+"Wirklich alle %s Einträge löschen ?"
+
+msgid "Enter the search term:"
+msgstr "Suchbegriff eingeben:"
+
+msgid "List search"
+msgstr "Listensuche"
+
+#, python-format
+msgid ""
+"Current search term: [[%s]]\n"
+"\n"
+"%s"
+msgstr ""
+"Jetziger Suchbegriff: [[%s]]\n"
+"\n"
+"%s"
 
 msgid "Monty the Serpent && the FSF Present"
 msgstr "Monty die Python && die FSF präsentieren"
@@ -13480,6 +13877,9 @@ msgstr "Nein: - / 0"
 msgid "Unknown: ?"
 msgstr "Unbekannt: ?"
 
+msgid "The text has been copied into the clipboard."
+msgstr "Der Text wurde in die Zwischenablage kopiert."
+
 msgid "file2clipboard"
 msgstr "Datei2Zwischenablage"
 
@@ -13487,6 +13887,46 @@ msgstr "Datei2Zwischenablage"
 msgid "The file [%s] has been copied into the clipboard."
 msgstr "Die Datei [%s] wurde in die Zwischenablage kopiert."
 
+msgid "programmer forgot to specify error message"
+msgstr "Programmierer hat vergessen, die Fehlermeldung genau anzugeben."
+
+msgid ""
+"\n"
+"\n"
+"Please consult the error log for all the gory details !"
+msgstr ""
+"\n"
+"\n"
+"Die Logdatei enthält genauere Angaben !"
+
+msgid "generic error message"
+msgstr "allgemeine Fehlermeldung"
+
+msgid "programmer forgot to specify info message"
+msgstr "Programmierer hat vergessen, Information anzugeben."
+
+msgid "generic info message"
+msgstr "allgemeine Information"
+
+msgid "programmer forgot to specify warning"
+msgstr "Programmierer hat vergessen, Warnung anzugeben."
+
+msgid "generic warning message"
+msgstr "allgemeine Warnmeldung"
+
+msgid "Editing EDC"
+msgstr "ET bearbeiten"
+
+#, python-format
+msgid ""
+"Really delete the EDC documented previously ?\n"
+"\n"
+" EDC: %s"
+msgstr ""
+"Den Geburtstermin wirklich löschen ?\n"
+"\n"
+" Termin: %s"
+
 #, python-format
 msgid ""
 "Algorithm: %s\n"
@@ -13624,15 +14064,15 @@ msgstr "Nachname"
 msgid "Firstname"
 msgstr "Vorname"
 
-msgid "Nickname"
-msgstr "Spitzname"
-
 msgid "DOB"
 msgstr "geboren"
 
 msgid "last visit"
 msgstr "Letzter Besuch"
 
+msgid "Nickname / Comment"
+msgstr "Spitzname / Kommentar"
+
 msgid "found via"
 msgstr "gefunden über"
 
@@ -13872,1984 +14312,1845 @@ msgstr "<hier Patienten suchen>"
 msgid "In case of emergency contact:"
 msgstr "Im Notfall verständigen:"
 
+msgid "The preparation (form) of the substance or brand."
+msgstr "Die Darreichungs-/Zubereitungsform der Substanz/des Medikaments."
+
+msgid "A substance with optional strength or a brand."
+msgstr "Ein Wirkstoff, optional mit Stärke, oder ein Produkt."
+
+msgid "The medical aim for consuming this substance."
+msgstr "Das medizinische Ziel des Gebrauchs dieser Substanz."
+
+msgid "not tolerated:"
+msgstr "nicht vertragen:"
+
+msgid "discontinued due to allergy or intolerance"
+msgstr "beendet wegen Allergie oder Unverträglichkeit"
+
+msgid "Documented an allergy"
+msgstr "Dokumentierte eine Allergie"
+
+#, python-format
 msgid ""
+"An allergy was documented against the substance:\n"
 "\n"
-"Please select the default drug data source from the list below.\n"
+"  [%s]\n"
 "\n"
-"Note that to actually use it you need to have the database installed, too."
+"This substance was taken with the multi-component brand:\n"
+"\n"
+"  [%s (%s)]\n"
+"\n"
+"Note that ALL components of this brand were discontinued."
 msgstr ""
+"Eine Allergie wurde dokumentiert auf die Substanz:\n"
 "\n"
-"Wählen Sie die gewünschte Medikamentenquelle aus der Liste.\n"
+"  [%s]\n"
 "\n"
-"Sie müssen zur Benutzung diese Quelle natürlich auch installiert haben."
+"Diese Substanz wurde als Kombinationspräparat eingenommen:\n"
+"\n"
+"  [%s (%s)]\n"
+"\n"
+"Beachten Sie, daß ALLE Komponenten der Kombination abgesetzt wurden."
 
-msgid "Drug data source"
-msgstr "Medikamentenquelle"
+msgid "disapproved"
+msgstr "abgelehnt"
 
-msgid "Configuring default drug data source"
-msgstr "Einstellen der Medikamentenquelle"
+msgid "Substances consumed by the patient:"
+msgstr "Vom Patienten konsumierte Substanzen:"
 
-msgid "No default drug database configured."
-msgstr "Es ist keine Medikamentendatenbank voreingestellt."
+msgid "Showing consumable substances."
+msgstr "Zeige Substanzen (Wirkstoffe)."
 
-msgid "There is no default drug database configured."
-msgstr "Es ist keine Medikamentendatenbank eingestellt."
+msgid "Application"
+msgstr "Anwendung"
 
-msgid "Jumping to drug database"
-msgstr "Medikamentendatenbank aufrufen"
+msgid "never"
+msgstr "nie"
 
 #, python-format
-msgid "Cannot call IFAP via [%s]."
-msgstr "Kann IFAP nicht mittels [%s] starten."
+msgid "%s, last confirmed %s\n"
+msgstr "%s, zuletzt überprüft %s\n"
 
 #, python-format
-msgid "Cannot create IFAP <-> GNUmed transfer file [%s]."
-msgstr "Kann Transferdatei [%s] (IFAP <-> GNUmed) nicht anlegen."
+msgid "Comment (%s): %%s\n"
+msgstr "Kommentar (%s): %%s\n"
 
-msgid "Current medication"
-msgstr "Derzeitige Medikation"
+msgid "reaction not recorded"
+msgstr "Reaktion nicht dokumentiert"
 
-msgid ""
-"\n"
-"The ATC codes as known to GNUmed.\n"
-msgstr ""
-"\n"
-"Die GNUmed bekannten ATC-Codes.\n"
+msgid "GFR: unknown"
+msgstr "GFR: unbekannt"
 
-msgid "Showing ATC codes."
-msgstr "Zeige ATC-Codes."
+msgid "GFR reported by path lab"
+msgstr "GFR stammt aus Labor"
 
-msgid "Choose an ATC import config file"
-msgstr "Wählen Sie eine Konfigurationsdatei für den ATC-Import"
+msgid "<no components>"
+msgstr "<keine Bestandteile>"
 
-msgid "config files"
-msgstr "Konfigurationsdateien"
+msgid "Adding substance intake entry"
+msgstr "Substanzeinnahme hinzufügen"
 
-msgid "importing ATC reference data"
-msgstr "Import von ATC-Referenzdaten"
+#, python-format
+msgid ""
+"The patient is already taking\n"
+"\n"
+" %s\n"
+"\n"
+"You will want to adjust the schedule\n"
+"rather than document the intake twice."
+msgstr ""
+"Der Patient nimmt bereits\n"
+"\n"
+" %s\n"
+"\n"
+"Sie sollten den Einnahmeplan ändern\n"
+"und nicht die Einnahme zweimal dokumentieren."
 
-msgid "Successfully imported ATC reference data."
-msgstr "ATC-Referenzdaten erfolgreich importiert."
+msgid "Input incomplete/invalid for saving as substance intake."
+msgstr "Unvollständige/ungültige Daten zum Speichern als Substanzeinnahme."
 
-msgid "Importing ATC reference data failed."
-msgstr "Import von ATC-Referenzdaten schlug fehl."
+#, python-format
+msgid "Discontinued (%s) in the future (now: %s)!"
+msgstr "Enddatum (%s) in der Zukunft (jetzt: %s) !"
 
-msgid "Select an ATC (Anatomical-Therapeutic-Chemical) code."
-msgstr "Wählen Sie einen ATC (Anatomisch-Therapeutisch-Chemischen) Code."
+#, python-format
+msgid "Discontinued (%s) before started (%s) !"
+msgstr "Enddatum (%s) vor Startdatum (%s) !"
 
-msgid "Cannot delete this substance. It is in use."
-msgstr "Kann Substanz nicht löschen, da sie in Benutzung ist."
+msgid "Cannot add duplicate of (maybe inactive) substance intake."
+msgstr "Kann kein Duplikat einer (evtl. inaktiven) Medikation eintragen."
 
+#, python-format
 msgid ""
 "\n"
-"These are the consumable substances registered with GNUmed.\n"
+"[%s]\n"
+"\n"
+"It may be prudent to edit (before deletion) the details\n"
+"of this substance intake entry so as to leave behind\n"
+"some indication of why it was deleted.\n"
 msgstr ""
 "\n"
-"Diese Substanzen sind derzeit in GNUmed hinterlegt.\n"
+"[%s]\n"
+"\n"
+"Es kann sinnvoll sein, vor dem Löschen dieser\n"
+"Medikation / Substanzeinnahme einen Hinweis auf\n"
+"den Grund der Löschung einzufügen.\n"
 
-msgid "Showing consumable substances."
-msgstr "Zeige Substanzen (Wirkstoffe)."
+msgid "Deleting medication / substance intake"
+msgstr "Medikation / Substanzeinnahme löschen"
 
-msgid "Import"
-msgstr "Import"
+msgid "Allow editing of substance intake entry before deletion."
+msgstr "Die Medikation / Substanzeinnahme vor dem Löschen noch bearbeiten."
 
-msgid "Import consumable substances from a drug database."
-msgstr "Substanzen aus externer Datenbank holen."
+msgid "Delete immediately without editing first."
+msgstr "Sofort löschen ohne vorheriges Bearbeiten."
 
-msgid "Cannot edit this substance. It is in use."
-msgstr "Kann Substanz nicht verändern. Es ist in Benutzung."
+msgid "&Cancel"
+msgstr "A&bbrechen"
 
-msgid "Adding new consumable substance"
-msgstr "Neue Substanz hinzufügen"
+msgid "Abort. Do not delete or edit substance intake entry."
+msgstr ""
+"Abbrechen. Die Medikation / Substanzeinnahme weder löschen noch bearbeiten."
 
-msgid "Editing consumable substance"
-msgstr "Substanz bearbeiten"
+msgid "Now delete substance intake entry ?"
+msgstr "Diese Medikation / Substanzeinnahme jetzt löschen ?"
 
-msgid "Cannot save consumable substance. Missing essential input."
-msgstr "Kann Substanz nicht speichern. Es fehlen Angaben."
+msgid "Adding medication/non-medication substance intake"
+msgstr "Medikation / Substanzeinnahme hinzufügen"
 
-#, python-format
-msgid "Cannot save consumable substance. %s"
-msgstr "Kann Substanz nicht speichern. %s"
+msgid "Editing medication/non-medication substance intake"
+msgstr "Medikation / Substanzeinnahme bearbeiten"
 
-msgid "Cannot remove this component from the drug. It is in use."
-msgstr ""
-"Kann Medikamentenbestandteil nicht entfernen. Das Medikament ist in "
-"Benutzung."
+msgid "Document an allergy against this substance."
+msgstr "Dokument gegen diese Substanz dokumentieren."
 
-msgid ""
-"\n"
-"These are the components in the drug brands known to GNUmed.\n"
-msgstr ""
-"\n"
-"Diese Medikamentenbestandteile sind derzeit in GNUmed hinterlegt.\n"
+msgid "No medication list template configured."
+msgstr "Keine Druckvorlage für die Medikamentenliste voreingestellt."
 
-msgid "Showing drug brand components."
-msgstr "Zeige Medikamentenbestandteile (Wirkstoffe)."
+msgid "There is no medication list template configured."
+msgstr "Es ist keine Druckvorlagen für die Medikamentenliste eingestellt."
 
-msgid "Adding new drug component"
-msgstr "Medikamentenbestandteil hinzufügen"
+msgid "Problem loading medication list template."
+msgstr "Problem beim Laden der Druckvorlage für die Medikamentenliste."
 
-msgid "Editing drug component"
-msgstr "Medikamentenbestandteil bearbeiten"
+#, python-format
+msgid "Cannot load medication list template [%s - %s]"
+msgstr "Kann Vorlage [%s - %s] für Medikamentenliste nicht laden"
 
-msgid "Cannot edit drug component. It is in use."
-msgstr ""
-"Kann Medikamentenbestandteil nicht verändern. Das Medikament ist in "
-"Benutzung."
+msgid "generated medication list document"
+msgstr "Medikamentenliste erzeugt"
 
-msgid "Cannot save drug component. Invalid or missing essential input."
-msgstr ""
-"Kann Medikamentenbestandteil nicht speichern. Ungültige oder fehlende "
-"Angaben."
+msgid "Select the default prescription template:"
+msgstr "Wählen Sie die Standardvorlage für Verordnungen:"
 
-msgid "A drug component with optional strength."
-msgstr "Ein Arzneibestandteil, optional mit Dosis."
+msgid "No prescription template configured."
+msgstr "Keine Druckvorlage für Verordnungen voreingestellt."
 
-msgid "The preparation (form) of the substance or brand."
-msgstr "Die Darreichungs-/Zubereitungsform der Substanz/des Medikaments."
+msgid "There is no prescription template configured."
+msgstr "Es ist keine Druckvorlagen für Verordnungen eingestellt."
 
-msgid "The substance with optional strength."
-msgstr "Der Wirkstoff, optional mit Dosisangabe."
+msgid "Printing prescription"
+msgstr "Drucke Verordnung"
 
-msgid "Managing components of a drug"
-msgstr "Die Bestandteile eines Medikaments verwalten"
+msgid "Problem loading prescription template."
+msgstr "Problem beim Laden der Druckvorlage für Verordnungen."
 
 #, python-format
+msgid "Cannot load prescription template [%s - %s]"
+msgstr "Kann Vorlage [%s - %s] für Verordnungen nicht laden"
+
+msgid "generated prescription"
+msgstr "Verordnung erzeugt"
+
 msgid ""
-"Cannot manage the components of the branded drug product\n"
-"\n"
-" \"%s\" (%s)\n"
+"These brands have been prescribed but are not listed\n"
+"in the current medication list of this patient.\n"
 "\n"
-"because it is currently taken by patients.\n"
+"Please select those you want added to the medication list."
 msgstr ""
-"Kann die Bestandteile des Arzneiprodukts\n"
-"\n"
-" \"%s\" (%s)\n"
+"Diese Medikamente wurden verordnet, aber fehlen\n"
+"noch in der aktuellen Medikation des Patienten.\n"
 "\n"
-"nicht verwalten, da es derzeit von Patienten eingenommen wird.\n"
+"Bitte wählen Sie diejenigen, die eingetragen werden sollen."
 
-msgid "Pick the substances which are components of this drug."
-msgstr "Wählen Sie die Bestandteile des Arzneiprodukts."
+msgid "Newly prescribed drugs"
+msgstr "Neu verschriebene Medikamente"
 
-msgid "Components of drug"
-msgstr "Arzneibestandteile"
+msgid "Add to medication list"
+msgstr "In Medikationsliste eintragen"
+
+msgid "Timeframe"
+msgstr "Zeitraum"
 
 #, python-format
+msgid "%s <fake>"
+msgstr "%s <unecht>"
+
+msgid "Cannot edit more than one substance at once."
+msgstr "Kann nicht mehrere Substanzen gleichzeitig bearbeiten."
+
+msgid "Cannot delete more than one substance at once."
+msgstr "Kann nicht mehrere Substanzen gleichzeitig entfernen."
+
+msgid "Cannot create allergy from more than one substance at once."
+msgstr ""
+"Kann eine Allergie nicht aus mehreren Substanzen gleichzeitig erzeugen."
+
 msgid ""
-"Adjust the components of \"%s\"\n"
 "\n"
-"The drug must contain at least one component. Any given\n"
-"substance can only be included once per drug."
+"Select the measurements panel to show in the medications plugin.\n"
 msgstr ""
-"Anpassen der Bestandteile von \"%s\"\n"
 "\n"
-"Das Medikament muß mindestens einen Bestandteil enthalten.\n"
-"Jeder Bestandteil kann nur einmal enthalten sein."
+"Wählen Sie das Meßwertprofil für das Medikationsmodul.\n"
 
-msgid "Managing components of a drug ..."
-msgstr "Die Bestandteile eines Medikaments verwalten..."
+msgid "Measurements panel"
+msgstr "Meßwerteprofil"
 
-msgid "not in use"
-msgstr "nicht in Gebrauch"
+msgid "Configuring medications plugin measurements panel"
+msgstr "Konfiguration des Laborprofils für die Medikamentenüberwachung"
+
+msgid "EDC (!?!):"
+msgstr "ET (!?!):"
+
+msgid "EDC:"
+msgstr "Termin:"
 
 #, python-format
-msgid "ATC: %s\n"
-msgstr "ATC: %s\n"
+msgid "%.1f (%s ago)"
+msgstr "%.1f (vor %s)"
 
-msgid "Editing medication"
-msgstr "Bearbeite Medikation"
+msgid "eGFR:"
+msgstr ""
 
 #, python-format
+msgid "eGFR: %.1f (%s)"
+msgstr "eGFR: %.1f (%s)"
+
+msgid "Enter vaccination given"
+msgstr "Verabreichte Impfung eingeben"
+
+msgid "Unsaved progress note"
+msgstr "Ungespeicherte Verlaufsnotiz"
+
 msgid ""
-"Cannot edit the medication\n"
+"This progress note has not been saved yet.\n"
 "\n"
-" \"%s\" (%s)\n"
+"Do you want to save it or discard it ?\n"
 "\n"
-"because it is a vaccine. Please edit it\n"
-"from the vaccine management section !\n"
 msgstr ""
-"Kann den Impfstoff\n"
+"Diese Verlaufsnotiz ist noch nicht gespeichert.\n"
 "\n"
-" \"%s\" (%s)\n"
+"Wollen Sie sie speichern oder verwerfen ?\n"
 "\n"
-"nicht verändern. Bearbeiten Sie\n"
-"Impfstoffe bitte in der Impfverwaltung !\n"
 
-msgid "Deleting medication"
-msgstr "Medikament löschen"
+msgid "Save this progress note"
+msgstr "Diese Verlaufsnotiz speichern"
+
+msgid "Discard this progress note"
+msgstr "Diese Verlaufsnotiz verwerfen"
+
+msgid "Save all remaining unsaved progress notes"
+msgstr "Alle ungespeicherten Verlaufsnotiz speichern"
 
-#, python-format
 msgid ""
-"Cannot delete the medication\n"
-"\n"
-" \"%s\" (%s)\n"
+"Add editor for a new unassociated progress note.\n"
 "\n"
-"because it is a vaccine. Please delete it\n"
-"from the vaccine management section !\n"
+"There is a configuration option whether or not to\n"
+"allow several new unassociated progress notes at once."
 msgstr ""
-"Kann dieses Medikament nicht löschen\n"
-"\n"
-" \"%s\" (%s)\n"
+"Einen Editor für eine nicht zugeordnete Verlaufsnotiz hinzufügen.\n"
 "\n"
-"weil es sich um einen Impfstoff handelt. Löschen\n"
-"Sie Impfstoffe bitte in der Impfverwaltung !\n"
+"In der Programmkonfiguration können Sie festlegen, ob Sie\n"
+"mehrere solcher Editoren gleichzeitig zulassen wollen."
+
+msgid "Save progress note into medical record and close this editor."
+msgstr "Verlaufsnotiz in Kartei abspeichern und Editor schließen."
+
+msgid "Clear this progress note editor."
+msgstr "Editor für Verlaufsnotiz leeren."
 
 msgid ""
-"\n"
-"These are the drug brands known to GNUmed.\n"
+"Discard progress note and close this editor. You will loose any data already "
+"typed into this editor !"
 msgstr ""
-"\n"
-"Die derzeit in GNUmed hinterlegten, handelsüblichen Medikamente.\n"
+"Verlaufsnotiz verwerfen und diesen Editor schließen. Sie verlieren dabei "
+"alle bereits in diesen Editor eingegebenen Daten !"
 
-msgid "Showing branded drugs."
-msgstr "Zeige Medikamente."
+msgid "Problem saving progress note: duplicate information ?"
+msgstr "Problem beim Speichern der Verlaufsnotiz: Duplikat ?"
 
-msgid "Import substances and brands from a drug database."
-msgstr "Substanzen und Medikamente aus einer Datenbank importieren."
+msgid "label missing"
+msgstr "Feldname fehlt"
 
-msgid "Editing drug"
-msgstr "Medikament bearbeiten"
+msgid "soap cat missing"
+msgstr "SOAP-Kategorie fehlt"
+
+msgid "Enter a descriptive name for this new problem:"
+msgstr "Geben Sie dem neuen Problem einen aussagekräftigen Namen:"
+
+msgid "Creating a problem (episode) to save the notelet under ..."
+msgstr "Lege Problem (Episode) zum Speichern des Eintrags an ..."
+
+msgid "Error saving progress note."
+msgstr "Fehler beim Speichern der Verlaufsnotiz."
+
+msgid "Error saving embedded data."
+msgstr "Fehler beim Speichern der eingebetteten Daten."
+
+msgid "Visit Purpose"
+msgstr "Beratungsursache"
+
+msgid "History Taken"
+msgstr "Anamnese"
+
+msgid "Findings"
+msgstr "Befund"
+
+msgid "save"
+msgstr "speichern"
+
+msgid "save clinical note in EMR"
+msgstr "Karteieintrag abspeichern"
+
+msgid "discard"
+msgstr "verwerfen"
+
+msgid "discard clinical note"
+msgstr "Karteieintrag verwerfen"
+
+msgid "clinical progress note"
+msgstr "klinische Verlaufsnotiz"
+
+msgid "Select files to add to the export area"
+msgstr "Wählen Sie Dateien für die Aufnahme in den Exportbereich"
+
+msgid "Adding files to export area"
+msgstr "Dateien zum Exportbereich hinzufügen"
 
 #, python-format
 msgid ""
-"Cannot edit the branded drug product\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is currently taken by patients.\n"
+"Cannot add (some of) the following files to the export area:\n"
+"%s "
 msgstr ""
-"Kann das Arzneiprodukt\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"nicht bearbeiten, da es in Gebrauch ist.\n"
-
-msgid "Adding new drug brand"
-msgstr "Füge neues Medikament hinzu"
-
-msgid "Editing drug brand"
-msgstr "Bearbeite Medikament"
+"Kann einige der folgenden Dateien nicht in den Exportbereich aufnehmen:\n"
+"%s"
 
-msgid "Manage consumable substances"
-msgstr "Wirkstoffe verwalten"
+msgid "Select the documents to be put into the export area:"
+msgstr ""
+"Wählen Sie die Dokumente, die dem Exportbereich hinzugefügt werden sollen:"
 
-msgid "Cannot edit drug brand. It is in use."
-msgstr "Kann Medikament nicht verändern. Es ist in Benutzung."
+msgid "clipboard"
+msgstr "Zwischenablage"
 
-msgid "Checking brand data"
-msgstr "Prüfe Produktdaten"
+msgid "Loading clipboard item (saved to file) into export area"
+msgstr "Zwischenablageinhalt in den Exportbereich einfügen."
 
 #, python-format
 msgid ""
-"The brand information you entered:\n"
-"\n"
-" [%s %s]\n"
-"\n"
-"already exists as a drug product."
+"Cannot add the following clip to the export area:\n"
+"%s "
 msgstr ""
-"Ihre Eingabendaten:\n"
-"\n"
-" [%s %s]\n"
-"existieren bereits als Medikament."
+"Kann folgenden Schnipsel nicht in den Exportbereich aufnehmen:\n"
+"%s"
+
+msgid "scan"
+msgstr "Scan"
+
+msgid "Scanning files into export area"
+msgstr "Scannen von Dateien für den Exportbereich"
 
+#, python-format
 msgid ""
-"You have not selected any substances\n"
-"as drug components.\n"
-"\n"
-"Without components you will not be able to\n"
-"use this drug for documenting patient care.\n"
-"\n"
-"Are you sure you want to save\n"
-"it without components ?"
+"Cannot add (some of) the following scans to the export area:\n"
+"%s "
 msgstr ""
-"Sie haben dem Medikament keine Wirkstoffe\n"
-"als Bestandteile zugeordnet.\n"
-"\n"
-"Ohne diese Zuordnung können Sie das\n"
-"Medikament keinem Patienten zuordnen.\n"
-"\n"
-"Wollen Sie das Medikament trotzdem\n"
-"ohne Bestandteile speichern ?"
+"Kann einige der folgenden Scans nicht in den Exportbereich aufnehmen:\n"
+"%s"
 
-msgid "Cannot save branded drug. Invalid or missing essential input."
-msgstr "Kann Medikament nicht speichert. Ungültige oder fehlende Angaben."
+msgid "Deleting document from export area."
+msgstr "Dokumente aus dem Exportbereich löschen."
 
+#, python-format
 msgid ""
-"The brand name of the drug.\n"
-"\n"
-"Note: a brand name will need to be linked to\n"
-"one or more components before it can be used,\n"
-"except in the case of fake (generic) vaccines."
+"Really remove %s selected document(s)\n"
+"from the patient export area ?"
 msgstr ""
-"Der Produktname des Medikaments.\n"
-"\n"
-"Achtung: Dem Produkt müssen eine oder mehrere\n"
-"Substanzen zugeordnet werden, ehe es verwendet\n"
-"werden kann (außer bei generischen Impfstoffen)."
+"Wirklich %s gewählte Dokumente aus\n"
+"dem Exportbereich löschen ?"
 
-msgid "The medical aim for consuming this substance."
-msgstr "Das medizinische Ziel des Gebrauchs dieser Substanz."
+msgid "Error printing documents."
+msgstr "Fehler beim Drucken der Dokumente."
 
-msgid "not tolerated:"
-msgstr "nicht vertragen:"
+#, python-format
+msgid "Printing [%s]"
+msgstr "Drucke [%s]"
 
-msgid "discontinued due to allergy or intolerance"
-msgstr "beendet wegen Allergie oder Unverträglichkeit"
+#, python-format
+msgid ""
+"Printed:\n"
+" - %s"
+msgstr ""
+"Gedruckt:\n"
+" - %s"
 
-msgid "Documented an allergy"
-msgstr "Dokumentierte eine Allergie"
+msgid "Select the directory into which to export the documents."
+msgstr ""
+"Wählen Sie das Verzeichnis, in welches Dokumente aus dem Exportbereich "
+"gespeichert werden sollen."
+
+msgid "Saving export area documents"
+msgstr "Speichere Dokumente des Exportbereichs"
 
 #, python-format
 msgid ""
-"An allergy was documented against the substance:\n"
+"The chosen export directory\n"
 "\n"
-"  [%s]\n"
+" [%s]\n"
 "\n"
-"This substance was taken with the multi-component brand:\n"
+"already contains files. Do you still want to save the\n"
+"selected export area documents into that directory ?\n"
 "\n"
-"  [%s (%s)]\n"
+"(this is useful for including the external documents\n"
+" already stored in or below this directory)\n"
 "\n"
-"Note that ALL components of this brand were discontinued."
+"[NO] will create a subdirectory for you and use that."
 msgstr ""
-"Eine Allergie wurde dokumentiert auf die Substanz:\n"
+"Das gewählte Zielverzeichnis\n"
 "\n"
-"  [%s]\n"
+" [%s]\n"
 "\n"
-"Diese Substanz wurde als Kombinationspräparat eingenommen:\n"
+"enthält schon Dateien. Wollen Sie es dort trotzdem\n"
+"die ausgewählten Dokumente des Exportbereits speichern ?\n"
 "\n"
-"  [%s (%s)]\n"
+"(so können Sie externe Dateien einschließen, die schon\n"
+" in oder unter diesem Verzeichnis gespeichert sind)\n"
 "\n"
-"Beachten Sie, daß ALLE Komponenten der Kombination abgesetzt wurden."
-
-msgid "disapproved"
-msgstr "abgelehnt"
-
-msgid "Substances consumed by the patient:"
-msgstr "Vom Patienten konsumierte Substanzen:"
-
-msgid "Intake"
-msgstr "Einnahme"
+"[Nein]: Legt ein Unterverzeichnis an und nutzt dieses."
 
-msgid "Application"
-msgstr "Anwendung"
-
-msgid "never"
-msgstr "nie"
+msgid ""
+"Create descriptive metadata files\n"
+"and save them alongside the\n"
+"selected export area documents ?"
+msgstr ""
+"Sollen beschreibende Begleitdateien erstellt\n"
+"und gemeinsam mit den im Exportbereich\n"
+"gewählten Dokumenten abgespeichert werden ?"
 
 #, python-format
-msgid "%s, last confirmed %s\n"
-msgstr "%s, zuletzt überprüft %s\n"
-
-#, python-format
-msgid "Comment (%s): %%s\n"
-msgstr "Kommentar (%s): %%s\n"
-
-msgid "reaction not recorded"
-msgstr "Reaktion nicht dokumentiert"
-
-msgid "GFR: unknown"
-msgstr "GFR: unbekannt"
-
-msgid "GFR reported by path lab"
-msgstr "GFR stammt aus Labor"
+msgid ""
+"Saved to [%s]:\n"
+" - %s"
+msgstr ""
+"In [%s] gespeichert:\n"
+" - %s"
 
 #, python-format
 msgid ""
-"The patient is already taking\n"
-"\n"
-" %s\n"
+"Saved documents into directory:\n"
 "\n"
-"You will want to adjust the schedule\n"
-"rather than document the intake twice."
+" %s"
 msgstr ""
-"Der Patient nimmt bereits\n"
-"\n"
-" %s\n"
+"Dokumente in folgendes Verzeichnis gespeichtert:\n"
 "\n"
-"Sie sollten den Einnahmeplan ändern\n"
-"und nicht die Einnahme zweimal dokumentieren."
+" %s"
 
-msgid "Adding substance intake entry"
-msgstr "Substanzeinnahme hinzufügen"
+msgid "If you wish to include an existing directory select it here:"
+msgstr ""
+"Wenn Sie ein existierendes Verzeichnis hinzufügen wollen, wählen Sie dieses "
+"hier:"
 
-msgid "Input incomplete/invalid for saving as substance intake."
-msgstr "Unvollständige/ungültige Daten zum Speichern als Substanzeinnahme."
+msgid "Error burning documents to CD/DVD."
+msgstr "Fehler beim Brennen der Dokumente auf CD/DVD."
 
-#, python-format
-msgid "Discontinued (%s) in the future (now: %s)!"
-msgstr "Enddatum (%s) in der Zukunft (jetzt: %s) !"
+msgid "Burning documents"
+msgstr "Dokumente brennen"
 
 #, python-format
-msgid "Discontinued (%s) before started (%s) !"
-msgstr "Enddatum (%s) vor Startdatum (%s) !"
+msgid ""
+"Burned onto CD/DVD:\n"
+" - %s"
+msgstr ""
+"Auf CD/DVD gebrannt:\n"
+" - %s"
 
-msgid "Cannot add duplicate of (maybe inactive) substance intake."
-msgstr "Kann kein Duplikat einer (evtl. inaktiven) Medikation eintragen."
+msgid "Error mailing documents."
+msgstr "Fehler beim Versenden der Dokumenten per E-Mail."
+
+msgid "Mailing documents"
+msgstr "Versende Dokumente per E-Mail"
 
 #, python-format
 msgid ""
-"\n"
-"[%s]\n"
-"\n"
-"It may be prudent to edit (before deletion) the details\n"
-"of this substance intake entry so as to leave behind\n"
-"some indication of why it was deleted.\n"
+"Mailed:\n"
+" - %s"
 msgstr ""
+"Gemailt:\n"
+" - %s"
+
+msgid ""
+"Please enter the fax number here !\n"
 "\n"
-"[%s]\n"
+"It can be left empty if the external\n"
+"fax software knows how to get the number."
+msgstr ""
+"Geben Sie die Faxnummer ein !\n"
 "\n"
-"Es kann sinnvoll sein, vor dem Löschen dieser\n"
-"Medikation / Substanzeinnahme einen Hinweis auf\n"
-"den Grund der Löschung einzufügen.\n"
-
-msgid "Deleting medication / substance intake"
-msgstr "Medikation / Substanzeinnahme löschen"
-
-msgid "Allow editing of substance intake entry before deletion."
-msgstr "Die Medikation / Substanzeinnahme vor dem Löschen noch bearbeiten."
-
-msgid "Delete immediately without editing first."
-msgstr "Sofort löschen ohne vorheriges Bearbeiten."
+"Wenn Sie keine Faxnummer eingeben, muß die\n"
+"Faxsoftware in der Lage sein, diese zu ermitteln."
 
-msgid "&Cancel"
-msgstr "A&bbrechen"
+msgid "Faxing documents"
+msgstr "Faxe Dokumente"
 
-msgid "Abort. Do not delete or edit substance intake entry."
+#, python-format
+msgid ""
+"Error faxing documents to\n"
+"\n"
+"  %s"
 msgstr ""
-"Abbrechen. Die Medikation / Substanzeinnahme weder löschen noch bearbeiten."
-
-msgid "Now delete substance intake entry ?"
-msgstr "Diese Medikation / Substanzeinnahme jetzt löschen ?"
-
-msgid "Adding medication/non-medication substance intake"
-msgstr "Medikation / Substanzeinnahme hinzufügen"
+"Fehler beim Faxen der Dokumente an\n"
+"\n"
+"  %s"
 
-msgid "Editing medication/non-medication substance intake"
-msgstr "Medikation / Substanzeinnahme bearbeiten"
+#, python-format
+msgid ""
+"Faxed to [%s]:\n"
+" - %s"
+msgstr ""
+"An [%s] gefaxt:\n"
+" - %s"
 
-msgid "Document an allergy against this substance."
-msgstr "Dokument gegen diese Substanz dokumentieren."
+msgid "<gm-mail_doc(.bat) not found>"
+msgstr "<gm-mail_doc(.bat) nicht gefunden>"
 
-msgid "No medication list template configured."
-msgstr "Keine Druckvorlage für die Medikamentenliste voreingestellt."
+msgid "<gm-fax_doc(.bat) not found>"
+msgstr "<gm-fax_doc(.bat) nicht gefunden>"
 
-msgid "There is no medication list template configured."
-msgstr "Es ist keine Druckvorlagen für die Medikamentenliste eingestellt."
+msgid "<gm-burn_doc(.bat) not found>"
+msgstr "<gm-burn_doc(.bat) nicht gefunden>"
 
-msgid "Problem loading medication list template."
-msgstr "Problem beim Laden der Druckvorlage für die Medikamentenliste."
+msgid "Cannot accept new documents. No active patient."
+msgstr "Kann Dokumente nicht zuordnen. Kein Patient aktiv."
 
 #, python-format
-msgid "Cannot load medication list template [%s - %s]"
-msgstr "Kann Vorlage [%s - %s] für Medikamentenliste nicht laden"
-
-msgid "generated medication list document"
-msgstr "Medikamentenliste erzeugt"
-
-msgid "Select the default prescription template:"
-msgstr "Wählen Sie die Standardvorlage für Verordnungen:"
-
-msgid "No prescription template configured."
-msgstr "Keine Druckvorlage für Verordnungen voreingestellt."
-
-msgid "There is no prescription template configured."
-msgstr "Es ist keine Druckvorlagen für Verordnungen eingestellt."
+msgid "Extracting files from folder [%s] ..."
+msgstr "Extrahiere Dateien aus dem Verzeichnis [%s] ..."
 
-msgid "Printing prescription"
-msgstr "Drucke Verordnung"
+msgid "Drag&Drop"
+msgstr "Verschieben"
 
-msgid "Problem loading prescription template."
-msgstr "Problem beim Laden der Druckvorlage für Verordnungen."
+msgid "Created"
+msgstr "Angelegt"
 
 #, python-format
-msgid "Cannot load prescription template [%s - %s]"
-msgstr "Kann Vorlage [%s - %s] für Verordnungen nicht laden"
-
-msgid "generated prescription"
-msgstr "Verordnung erzeugt"
-
 msgid ""
-"These brands have been prescribed but are not listed\n"
-"in the current medication list of this patient.\n"
+"Error exporting form template\n"
 "\n"
-"Please select those you want added to the medication list."
+" \"%s\" (%s)"
 msgstr ""
-"Diese Medikamente wurden verordnet, aber fehlen\n"
-"noch in der aktuellen Medikation des Patienten.\n"
+"Error beim Auslesen der Formularvorlage\n"
 "\n"
-"Bitte wählen Sie diejenigen, die eingetragen werden sollen."
+" \"%s\" (%s)"
 
-msgid "Newly prescribed drugs"
-msgstr "Neu verschriebene Medikamente"
+msgid "Letter template export"
+msgstr "Export einer Briefvorlage"
 
-msgid "Add to medication list"
-msgstr "In Medikationsliste eintragen"
+msgid ""
+"Cannot connect to OpenOffice.\n"
+"\n"
+"The UNO bridge module for Python\n"
+"is not installed."
+msgstr ""
+"Kann keine Verbindung zu OpenOffice herstellen.\n"
+"\n"
+"Das UNO-Modul für Python ist\n"
+"nicht installiert."
 
-msgid "Duration / Until"
-msgstr "Dauer / Bis"
+msgid "Letter writer"
+msgstr "Briefschreibung"
 
 #, python-format
-msgid "%s <fake>"
-msgstr "%s <unecht>"
-
-msgid "Cannot edit more than one substance at once."
-msgstr "Kann nicht mehrere Substanzen gleichzeitig bearbeiten."
-
-msgid "Cannot delete more than one substance at once."
-msgstr "Kann nicht mehrere Substanzen gleichzeitig entfernen."
-
-msgid "Cannot create allergy from more than one substance at once."
-msgstr ""
-"Kann eine Allergie nicht aus mehreren Substanzen gleichzeitig erzeugen."
-
 msgid ""
+"Cannot connect to OpenOffice.\n"
 "\n"
-"Select the measurements panel to show in the medications plugin.\n"
+"You may want to increase the option\n"
+"\n"
+" <%s>"
 msgstr ""
+"Kann nicht mit OpenOffice verbinden.\n"
 "\n"
-"Wählen Sie das Meßwertprofil für das Medikationsmodul.\n"
+"Stellen Sie ggf folgende Option höher:\n"
+"\n"
+" <%s>"
 
-msgid "Measurements panel"
-msgstr "Meßwerteprofil"
+msgid "OOo startup time"
+msgstr "OOo-Aufrufzeit"
 
-msgid "Configuring medications plugin measurements panel"
-msgstr "Konfiguration des Laborprofils für die Medikamentenüberwachung"
+msgid "No document template selected."
+msgstr "Keine Druckvorlage ausgewählt."
 
-msgid "EDC (!?!):"
-msgstr "ET (!?!):"
+#, python-format
+msgid "Invalid document template [%s - %s (%s)]"
+msgstr "Unbrauchbare Dokumentenvorlage [%s - %s (%s)]"
 
-msgid "EDC:"
-msgstr "Termin:"
+msgid "Generating document from template"
+msgstr "Erzeuge Dokument aus Vorlage"
 
-#, python-format
-msgid "%.1f (%s ago)"
-msgstr "%.1f (vor %s)"
+msgid "Error generating document printout."
+msgstr "Fehler beim Erzeugen der Ausdrucke."
 
-msgid "eGFR:"
-msgstr ""
+msgid "Generating document printout"
+msgstr "Erzeuge Ausgabedokument"
 
 #, python-format
-msgid "%s%s%s (%s ago)"
-msgstr "%s%s%s (vor %s)"
+msgid "Printed: %s"
+msgstr "Gedruckt: %s"
 
-#, python-format
-msgid "eGFR: %.1f (%s)"
-msgstr "eGFR: %.1f (%s)"
+msgid "Adding new form template"
+msgstr "Vorlage anlegen"
 
-msgid "Enter vaccination given"
-msgstr "Verabreichte Impfung eingeben"
+msgid "Editing form template"
+msgstr "Vorlage bearbeiten"
 
-msgid "Unsaved progress note"
-msgstr "Ungespeicherte Verlaufsnotiz"
+msgid "Deleting form template."
+msgstr "Briefvorlage löschen."
 
+#, python-format
 msgid ""
-"This progress note has not been saved yet.\n"
-"\n"
-"Do you want to save it or discard it ?\n"
+"Are you sure you want to delete\n"
+"the following form template ?\n"
+"\n"
+" \"%s (%s)\"\n"
 "\n"
+"You can only delete templates which\n"
+"have not yet been used to generate\n"
+"any forms from."
 msgstr ""
-"Diese Verlaufsnotiz ist noch nicht gespeichert.\n"
+"Sind Sie sicher, daß Sie die folgende\n"
+"Dokumentenvorlage löschen wollen ?\n"
 "\n"
-"Wollen Sie sie speichern oder verwerfen ?\n"
+" \"%s (%s)\"\n"
 "\n"
+"Sie können nur die Vorlagen löscchen, die noch\n"
+"nicht zum Erzeugen eines Formulars oder Briefs\n"
+"eingesetzt wurden."
 
-msgid "Save this progress note"
-msgstr "Diese Verlaufsnotiz speichern"
-
-msgid "Discard this progress note"
-msgstr "Diese Verlaufsnotiz verwerfen"
+msgid "Select letter or form template."
+msgstr "Die Brief- oder Formularvorlage wählen."
 
-msgid "Save all remaining unsaved progress notes"
-msgstr "Alle ungespeicherten Verlaufsnotiz speichern"
+msgid "You must select a template file before saving."
+msgstr "Vor dem Speichern müssen Sie eine Vorlagedatei geladen haben."
 
-msgid ""
-"Add editor for a new unassociated progress note.\n"
-"\n"
-"There is a configuration option whether or not to\n"
-"allow several new unassociated progress notes at once."
+msgid "You must enter a type for documents created with this template."
 msgstr ""
-"Einen Editor für eine nicht zugeordnete Verlaufsnotiz hinzufügen.\n"
-"\n"
-"In der Programmkonfiguration können Sie festlegen, ob Sie\n"
-"mehrere solcher Editoren gleichzeitig zulassen wollen."
+"Sie müssen einen Typ für die Dokumente angeben, die mit dieser Vorlage "
+"erzeugt werden."
 
-msgid "Save progress note into medical record and close this editor."
-msgstr "Verlaufsnotiz in Kartei abspeichern und Editor schließen."
+msgid "You must enter a type for this template."
+msgstr "Sie müssen einen Typ für diese Vorlage wählen."
 
-msgid "Clear this progress note editor."
-msgstr "Editor für Verlaufsnotiz leeren."
+msgid "You must enter a version for this template."
+msgstr "Sie müssen eine Version für diese Vorlage angeben."
 
-msgid ""
-"Discard progress note and close this editor. You will loose any data already "
-"typed into this editor !"
-msgstr ""
-"Verlaufsnotiz verwerfen und diesen Editor schließen. Sie verlieren dabei "
-"alle bereits in diesen Editor eingegebenen Daten !"
+msgid "Missing short name for template."
+msgstr "Kurzname für die Vorlage fehlt."
 
-msgid "Problem saving progress note: duplicate information ?"
-msgstr "Problem beim Speichern der Verlaufsnotiz: Duplikat ?"
+msgid "Missing long name for template."
+msgstr "Langname für die Vorlage fehlt."
 
-msgid "label missing"
-msgstr "Feldname fehlt"
+#, python-format
+msgid "last modified %s by %s"
+msgstr "zuletzt geändert %s von %s"
 
-msgid "soap cat missing"
-msgstr "SOAP-Kategorie fehlt"
+msgid "Choose a form template file"
+msgstr "Wählen Sie eine Datei als Schriftstück-Vorlage."
 
-msgid "Enter a descriptive name for this new problem:"
-msgstr "Geben Sie dem neuen Problem einen aussagekräftigen Namen:"
+msgid "Enter a filename to save the template to"
+msgstr "Geben Sie einen Dateinamen zum Speichern der Dokumentenvorlage ein"
 
-msgid "Creating a problem (episode) to save the notelet under ..."
-msgstr "Lege Problem (Episode) zum Speichern des Eintrags an ..."
+msgid "Emergency contact"
+msgstr "Notfallkontakt"
 
-msgid "Error saving progress note."
-msgstr "Fehler beim Speichern der Verlaufsnotiz."
+msgid "Primary doctor"
+msgstr "Primärarzt"
 
-msgid "Error saving embedded data."
-msgstr "Fehler beim Speichern der eingebetteten Daten."
+msgid "in-praxis primary provider"
+msgstr "Praxis-Primärarzt"
 
-msgid "Visit Purpose"
-msgstr "Beratungsursache"
+msgid "This praxis"
+msgstr "Diese Praxis"
 
-msgid "History Taken"
-msgstr "Anamnese"
+msgid "Bill receiver"
+msgstr "Rechnungsempfänger"
 
-msgid "Findings"
-msgstr "Befund"
+msgid "Receiver"
+msgstr "Empfänger"
 
-msgid "save"
-msgstr "speichern"
+msgid ""
+"Are you sure you want to delete this\n"
+"description from the document ?\n"
+msgstr ""
+"Sind Sie sicher, daß diese Beschreibung\n"
+"des Dokuments gelöscht werden soll ?\n"
 
-msgid "save clinical note in EMR"
-msgstr "Karteieintrag abspeichern"
+msgid "Deleting document description"
+msgstr "Dokumentenbeschreibung löschen"
 
-msgid "discard"
-msgstr "verwerfen"
+msgid "Adding document description"
+msgstr "Dokumentenbeschreibung hinzufügen"
 
-msgid "discard clinical note"
-msgstr "Karteieintrag verwerfen"
+msgid "Below you can add a document description.\n"
+msgstr "Geben Sie eine Dokumentenbeschreibung ein.\n"
 
-msgid "clinical progress note"
-msgstr "klinische Verlaufsnotiz"
+msgid "Editing document description"
+msgstr "Dokumentenbeschreibung bearbeiten"
 
-msgid "Select files to add to the export area"
-msgstr "Wählen Sie Dateien für die Aufnahme in den Exportbereich"
+msgid "Below you can edit the document description.\n"
+msgstr "Bearbeiten Sie die Dokumentenbeschreibung.\n"
 
-msgid "Adding files to export area"
-msgstr "Dateien zum Exportbereich hinzufügen"
+msgid "Select the description you are interested in.\n"
+msgstr "Wählen Sie die Beschreibung, die von Interesse ist.\n"
 
-#, python-format
-msgid ""
-"Cannot add (some of) the following files to the export area:\n"
-"%s "
-msgstr ""
-"Kann einige der folgenden Dateien nicht in den Exportbereich aufnehmen:\n"
-"%s"
+msgid "Managing document descriptions"
+msgstr "Dokumentenbeschreibungen verwalten"
 
-msgid "Select the documents to be put into the export area:"
-msgstr ""
-"Wählen Sie die Dokumente, die dem Exportbereich hinzugefügt werden sollen:"
+msgid "Select the episode under which to file the document ..."
+msgstr "Wählen Sie die Episode, der das Dokument zugeordnet werden soll ..."
 
-msgid "clipboard"
-msgstr "&Zwischenablage"
+msgid "Cannot create new document."
+msgstr "Kann kein neues Dokument anlegen."
 
-msgid "Loading clipboard item (saved to file) into export area"
-msgstr "Zwischenablageinhalt in den Exportbereich einfügen."
+msgid "saving document"
+msgstr "speichere Dokument"
 
 #, python-format
-msgid ""
-"Cannot add the following clip to the export area:\n"
-"%s "
-msgstr ""
-"Kann folgenden Schnipsel nicht in den Exportbereich aufnehmen:\n"
-"%s"
+msgid "Imported new document from %s."
+msgstr "Neues Dokument aus [%s] eingelesen."
 
-msgid "scan"
-msgstr "Scan"
+msgid "Successfully saved new document."
+msgstr "Neues Dokument erfolgreich gespeichert."
 
-msgid "Scanning files into export area"
-msgstr "Scannen von Dateien für den Exportbereich"
+msgid "Successfully saved the new document."
+msgstr "Neues Dokument erfolgreich gespeichert."
 
 #, python-format
 msgid ""
-"Cannot add (some of) the following scans to the export area:\n"
-"%s "
+"The reference ID for the new document is:\n"
+"\n"
+" <%s>\n"
+"\n"
+"You probably want to write it down on the\n"
+"original documents.\n"
+"\n"
+"If you don't care about the ID you can switch\n"
+"off this message in the GNUmed configuration.\n"
 msgstr ""
-"Kann einige der folgenden Scans nicht in den Exportbereich aufnehmen:\n"
-"%s"
+"Die Referenznummer für das neue Dokument ist:\n"
+"\n"
+" <%s>\n"
+"\n"
+"Sie sollten diese Nummer auf den Originaldokumenten\n"
+"vermerken.\n"
+"\n"
+"Falls Sie ohne Referenznummern arbeiten, können Sie\n"
+"diesen Hinweis in der Konfiguration von GNUmed abschalten.\n"
 
-msgid "Deleting document from export area."
-msgstr "Dokumente aus dem Exportbereich löschen."
+msgid "Saving document"
+msgstr "Speichere Dokument"
 
 #, python-format
 msgid ""
-"Really remove %s selected document(s)\n"
-"from the patient export area ?"
+"Successfully imported files as document.\n"
+"\n"
+"Do you want to delete imported files from the filesystem ?\n"
+"\n"
+" %s\n"
+"\n"
+"Note that temporary files will be deleted anyway."
 msgstr ""
-"Wirklich %s gewählte Dokumente aus\n"
-"dem Exportbereich löschen ?"
+"Dateien erfolgreich als Dokument impoertiert.\n"
+"\n"
+"Wollen Sie die importierten Dateien löschen ?\n"
+"\n"
+" %s\n"
+"\n"
+"(Temporäre Dateien werden ohnehin gelöscht.)"
 
-msgid "Error printing documents."
-msgstr "Fehler beim Drucken der Dokumente."
+msgid "Removing files"
+msgstr "Dateien löschen"
 
-#, python-format
-msgid "Printing [%s]"
-msgstr "Drucke [%s]"
+msgid "Enter a comment on the document."
+msgstr "Geben Sie einen Kommentar zu diesem Dokument ein."
+
+msgid "User defined"
+msgstr "Vor Ort angelegt"
+
+msgid "In use"
+msgstr "In Verwendung"
 
 #, python-format
 msgid ""
-"Printed:\n"
-" - %s"
-msgstr ""
-"Gedruckt:\n"
-" - %s"
-
-msgid "Select the directory into which to export the documents."
+"Cannot delete document type\n"
+" [%s]\n"
+"because it is currently in use."
 msgstr ""
-"Wählen Sie das Verzeichnis, in welches Dokumente aus dem Exportbereich "
-"gespeichert werden sollen."
+"Kann den Dokumententype\n"
+" [%s]\n"
+"nicht löschen, da er in Benutzung ist."
 
-msgid "Saving export area documents"
-msgstr "Speichere Dokumente des Exportbereichs"
+msgid "deleting document type"
+msgstr "Dokumententyp löschen"
 
 #, python-format
 msgid ""
-"The chosen export directory\n"
+"From the list below select the document type you want\n"
+"all documents currently classified as:\n"
 "\n"
-" [%s]\n"
+" \"%s\"\n"
 "\n"
-"is not empty. Do you want to use it for saving the\n"
-"export area documents into, nevertheless ?\n"
+"to be changed to.\n"
 "\n"
-"(this can be useful for including external documents)\n"
+"Be aware that this change will be applied to ALL such documents. If there\n"
+"are many documents to change it can take quite a while.\n"
 "\n"
-"[NO] will create a subdirectory for you and use that."
+"Make sure this is what you want to happen !\n"
 msgstr ""
-"Das gewählte Zielverzeichnis\n"
+"Wählen Sie aus der Liste denjenigen Dokumententyp,\n"
+"den alle momentan als:\n"
 "\n"
-" [%s]\n"
+" \"%s\"\n"
 "\n"
-"ist nicht leer. Wollen Sie es trotzdem zum Speichern\n"
-"der Dokumente des Exportbereits verwenden ?\n"
+"klassifizierten Dokumente erhalten sollen.\n"
 "\n"
-"(so können Sie externe Dateien einschließen)\n"
+"Dieser Wechsel wird ALLE derartigen Dokumente betreffen. Es kann daher\n"
+"recht lange dauern, wenn es viele solche Dokumente gibt.\n"
 "\n"
-"[Nein]: Lege ein Unterverzeichnis an und nutze dieses."
+"Überlegen Sie, ob das tatsächlich beabsichtigt ist.\n"
 
-#, python-format
-msgid ""
-"Saved to [%s]:\n"
-" - %s"
-msgstr ""
-"In [%s] gespeichert:\n"
-" - %s"
+msgid "Reassigning document type"
+msgstr "Dokumente anders klassifizieren"
 
-#, python-format
-msgid ""
-"Saved documents into directory:\n"
-"\n"
-" %s"
-msgstr ""
-"Dokumente in folgendes Verzeichnis gespeichtert:\n"
-"\n"
-" %s"
+msgid "Select the document type."
+msgstr "Wählen Sie den Dokumententyp."
 
-msgid "If you wish to include an existing directory select it here:"
-msgstr ""
-"Wenn Sie ein existierendes Verzeichnis hinzufügen wollen, wählen Sie dieses "
-"hier:"
+msgid "Cannot create document type without name."
+msgstr "Kann Dokumententyp ohne Bezeichnung nicht anlegen."
 
-msgid "Error burning documents to CD/DVD."
-msgstr "Fehler beim Brennen der Dokumente auf CD/DVD."
+msgid "+/-"
+msgstr "+/-"
 
-msgid "Burning documents"
-msgstr "Dokumente brennen"
+msgid "!"
+msgstr "!"
 
-#, python-format
-msgid ""
-"Burned onto CD/DVD:\n"
-" - %s"
-msgstr ""
-"Auf CD/DVD gebrannt:\n"
-" - %s"
+msgid "comment"
+msgstr "Kommentar"
 
-msgid "Error mailing documents."
-msgstr "Fehler beim Versenden der Dokumenten per E-Mail."
+msgid "(you are the primary reviewer)"
+msgstr "(sie sind der Verantwortliche)"
 
-msgid "Mailing documents"
-msgstr "Versende Dokumente per E-Mail"
+#, python-format
+msgid "(someone else is the intended reviewer: %s)"
+msgstr "(jemand anderes ist verantwortlich: %s)"
 
 #, python-format
 msgid ""
-"Mailed:\n"
-" - %s"
+"Cannot create episode\n"
+" [%s]"
 msgstr ""
-"Gemailt:\n"
-" - %s"
+"Kann Episode nicht eröffnen\n"
+" [%s]"
+
+msgid "Editing document properties"
+msgstr "Eigenschaften des Dokuments bearbeiten"
+
+#, python-format
+msgid "Cannot change document type to [%s]."
+msgstr "Kann Dokumententyp nicht in [%s] ändern."
 
+#, python-format
 msgid ""
-"Please enter the fax number here !\n"
+"Cannot link the document to episode\n"
 "\n"
-"It can be left empty if the external\n"
-"fax software knows how to get the number."
+" [%s]"
 msgstr ""
-"Geben Sie die Faxnummer ein !\n"
+"Kann Dokument nicht folgender Episode zuordnen:\n"
 "\n"
-"Wenn Sie keine Faxnummer eingeben, muß die\n"
-"Faxsoftware in der Lage sein, diese zu ermitteln."
+" [%s]"
 
-msgid "Faxing documents"
-msgstr "Faxe Dokumente"
+msgid "Error setting \"reviewed\" status of this document."
+msgstr "Fehler beim Abzeichnen dieses Dokuments."
+
+msgid "Error setting responsible clinician for this document."
+msgstr "Fehler beim Zuweisen dieses Dokuments an einen Kollegen."
+
+msgid "Error setting \"reviewed\" status of this part."
+msgstr "Fehler beim Abzeichnen dieses Teils."
 
 #, python-format
 msgid ""
-"Error faxing documents to\n"
+"Cannot set page number to [%s] because\n"
+"another page with this number exists.\n"
 "\n"
-"  %s"
+"Page numbers in use:\n"
+"\n"
+" %s"
 msgstr ""
-"Fehler beim Faxen der Dokumente an\n"
+"Kann Seitennummer nicht auf [%s] setzen, weil\n"
+"eine solche Seite bereits existiert.\n"
 "\n"
-"  %s"
+"Derzeit verwendete Seitennummern:\n"
+"\n"
+" %s"
+
+msgid "Editing document part properties"
+msgstr "Eigenschaften des Dokumententeils bearbeiten"
+
+msgid "Error saving part properties."
+msgstr "Fehler beim Speichern der Teileigenschaften."
 
-#, python-format
 msgid ""
-"Faxed to [%s]:\n"
-" - %s"
+"No images could be acquired from the source.\n"
+"\n"
+"This may mean the scanner driver is not properly installed.\n"
+"\n"
+"On Windows you must install the TWAIN Python module\n"
+"while on Linux and MacOSX it is recommended to install\n"
+"the XSane package."
 msgstr ""
-"An [%s] gefaxt:\n"
-" - %s"
+"Es konnte kein Bild aus der Bildquelle gelesen werden.\n"
+"\n"
+"Das kann bedeuten, daß der Scanner nicht richtig installiert ist.\n"
+"\n"
+"Unter Windows müssen Sie das Pythonmodul TWAIN installieren.\n"
+"Unter Linux oder MacOSX wird das Paket XSane empfohlen."
 
-msgid "<gm-mail_doc(.bat) not found>"
-msgstr "<gm-mail_doc(.bat) nicht gefunden>"
+msgid "Acquiring images"
+msgstr "Hole Bilder"
 
-msgid "<gm-fax_doc(.bat) not found>"
-msgstr "<gm-fax_doc(.bat) nicht gefunden>"
+msgid "directory dropped on client"
+msgstr "Verzeichnisabwurf"
 
-msgid "<gm-burn_doc(.bat) not found>"
-msgstr "<gm-burn_doc(.bat) nicht gefunden>"
+msgid "file dropped on client"
+msgstr "Dateiabwurf"
 
-msgid "Cannot accept new documents. No active patient."
-msgstr "Kann Dokumente nicht zuordnen. Kein Patient aktiv."
+msgid "other documents"
+msgstr "andere Dokumente"
 
-#, python-format
-msgid "Extracting files from folder [%s] ..."
-msgstr "Extrahiere Dateien aus dem Verzeichnis [%s] ..."
+msgid "path"
+msgstr "Pfad"
 
-msgid "Drag&Drop"
-msgstr "Verschieben"
+msgid "No parts to save. Really save an empty document as a reference ?"
+msgstr ""
+"Dokument hat keine Teile. Wirklich leeres Dokument als Referenz speichern ?"
 
-msgid "Created"
-msgstr "Angelegt"
+msgid "No parts to save. Aquire some parts first."
+msgstr "Keine Teile zu speichern. Sie müssen zuerst Teile hinzufügen."
 
-#, python-format
-msgid ""
-"Error exporting form template\n"
-"\n"
-" \"%s\" (%s)"
-msgstr ""
-"Error beim Auslesen der Formularvorlage\n"
-"\n"
-" \"%s\" (%s)"
+msgid "No document type applied. Choose a document type"
+msgstr "Sie müssen einen Typ für das Dokument wählen."
 
-msgid "Letter template export"
-msgstr "Export einer Briefvorlage"
+msgid "You must select an episode to save this document under."
+msgstr "Sie müssen die Episode zum Speichern des Dokuments wählen."
 
 msgid ""
-"Cannot connect to OpenOffice.\n"
-"\n"
-"The UNO bridge module for Python\n"
-"is not installed."
+"You need to select from the list of staff members the doctor who is intended "
+"to sign the document."
 msgstr ""
-"Kann keine Verbindung zu OpenOffice herstellen.\n"
-"\n"
-"Das UNO-Modul für Python ist\n"
-"nicht installiert."
+"Sie müssen den Arzt, der das Dokument abzeichnen soll, aus der "
+"Mitarbeiterliste wählen."
 
-msgid "Letter writer"
-msgstr "Briefschreibung"
+msgid "There is no scanner support installed on this machine."
+msgstr "Das Betriebssystem hat keinen Scannertreiber."
+
+msgid "Cannot find an active scanner."
+msgstr "Kann keinen aktiven Scanner finden."
+
+msgid "Select an image capture device"
+msgstr "Wählen Sie die Bildquelle."
+
+msgid "device selection"
+msgstr "Auswahl des Geräts"
 
-#, python-format
 msgid ""
-"Cannot connect to OpenOffice.\n"
+"No pages could be acquired from the source.\n"
 "\n"
-"You may want to increase the option\n"
+"This may mean the scanner driver is not properly installed.\n"
 "\n"
-" <%s>"
+"On Windows you must install the TWAIN Python module\n"
+"while on Linux and MacOSX it is recommended to install\n"
+"the XSane package."
 msgstr ""
-"Kann nicht mit OpenOffice verbinden.\n"
+"Es konnten keine Daten aus der Quelle geholt werden.\n"
 "\n"
-"Stellen Sie ggf folgende Option höher:\n"
+"Das kann bedeuten, daß der Scanner nicht richtig installiert ist.\n"
 "\n"
-" <%s>"
+"Unter Windows müssen Sie das Python-Modul TWAIN installieren.\n"
+"Unter Linux und MacOSX wird das Paket XSane empfohlen."
 
-msgid "OOo startup time"
-msgstr "OOo-Aufrufzeit"
+msgid "acquiring page"
+msgstr "hole Seite"
 
-msgid "No document template selected."
-msgstr "Keine Druckvorlage ausgewählt."
+msgid "captured by imaging device"
+msgstr "von Bildquelle geholt"
 
-#, python-format
-msgid "Invalid document template [%s - %s (%s)]"
-msgstr "Unbrauchbare Dokumentenvorlage [%s - %s (%s)]"
+msgid "Choose a file"
+msgstr "Eine Datei wählen"
 
-msgid "Generating document from template"
-msgstr "Erzeuge Dokument aus Vorlage"
+msgid "all files (Win)"
+msgstr "alle Dateien (Win)"
 
-msgid "Error generating document printout."
-msgstr "Fehler beim Erzeugen der Ausdrucke."
+msgid "picked from storage media"
+msgstr "von Datenträger geladen"
 
-msgid "Generating document printout"
-msgstr "Erzeuge Ausgabedokument"
+msgid "pasted from clipboard"
+msgstr "eingefügt aus der Zwischenablage"
+
+msgid "No part selected for viewing."
+msgstr "Nichts für die Ansicht gewählt."
 
 #, python-format
-msgid "Printed: %s"
-msgstr "Gedruckt: %s"
+msgid ""
+"Cannot display document part:\n"
+"%s"
+msgstr ""
+"Kann Dokumententeil nicht anzeigen:\n"
+"%s"
 
-msgid "Adding new form template"
-msgstr "Vorlage anlegen"
+msgid "displaying part"
+msgstr "Teil anzeigen"
 
-msgid "Editing form template"
-msgstr "Vorlage bearbeiten"
+msgid "No part selected for removal."
+msgstr "Nichts fürs Löschen markiert"
 
-msgid "Deleting form template."
-msgstr "Briefvorlage löschen."
+msgid "Cannot add document description."
+msgstr "Kann Dokumentenbeschreibung nicht hinzufügen."
+
+msgid "Error setting \"reviewed\" status of new document."
+msgstr "Fehler beim Abzeichnen des neuen Dokuments."
 
 #, python-format
 msgid ""
-"Are you sure you want to delete\n"
-"the following form template ?\n"
-"\n"
-" \"%s (%s)\"\n"
+"Source: %s\n"
+"File: %s\n"
 "\n"
-"You can only delete templates which\n"
-"have not yet been used to generate\n"
-"any forms from."
+"%s"
 msgstr ""
-"Sind Sie sicher, daß Sie die folgende\n"
-"Dokumentenvorlage löschen wollen ?\n"
-"\n"
-" \"%s (%s)\"\n"
+"Quelle: %s\n"
+"Datei: %s\n"
 "\n"
-"Sie können nur die Vorlagen löscchen, die noch\n"
-"nicht zum Erzeugen eines Formulars oder Briefs\n"
-"eingesetzt wurden."
-
-msgid "Select letter or form template."
-msgstr "Die Brief- oder Formularvorlage wählen."
-
-msgid "You must select a template file before saving."
-msgstr "Vor dem Speichern müssen Sie eine Vorlagedatei geladen haben."
+"%s"
 
-msgid "You must enter a type for documents created with this template."
-msgstr ""
-"Sie müssen einen Typ für die Dokumente angeben, die mit dieser Vorlage "
-"erzeugt werden."
+msgid "Document part does not seem to exist in database !"
+msgstr "Dieser Teil des Dokuments scheint in der Datenbank zu fehlen !"
 
-msgid "You must enter a type for this template."
-msgstr "Sie müssen einen Typ für diese Vorlage wählen."
+msgid "showing document"
+msgstr "Dokument zeigen"
 
-msgid "You must enter a version for this template."
-msgstr "Sie müssen eine Version für diese Vorlage angeben."
+msgid "Document list for this patient."
+msgstr "Dokumentenliste dieses Patienten."
 
-msgid "Missing short name for template."
-msgstr "Kurzname für die Vorlage fehlt."
+msgid "Showing documents."
+msgstr "Zeige Dokumente"
 
-msgid "Missing long name for template."
-msgstr "Langname für die Vorlage fehlt."
+msgid "Ref #"
+msgstr "Ref-No"
 
 #, python-format
-msgid "last modified %s by %s"
-msgstr "zuletzt geändert %s von %s"
-
-msgid "Choose a form template file"
-msgstr "Wählen Sie eine Datei als Schriftstück-Vorlage."
-
-msgid "Enter a filename to save the template to"
-msgstr "Geben Sie einen Dateinamen zum Speichern der Dokumentenvorlage ein"
-
-msgid "Emergency contact"
-msgstr "Notfallkontakt"
+msgid "available documents (%s)"
+msgstr "archivierte Dokumente (%s)"
 
-msgid "Primary doctor"
-msgstr "Primärarzt"
+#, python-format
+msgid "unsigned (%s) on top"
+msgstr "unsignierte (%s) zuoberst"
 
-msgid "in-praxis primary provider"
-msgstr "Praxis-Primärarzt"
+msgid "most recent on top"
+msgstr "neueste zuoberst"
 
-msgid "This praxis"
-msgstr "Diese Praxis"
+msgid "sorted by episode"
+msgstr "sortiert nach Episode"
 
-msgid "Hospital stay"
-msgstr "Krankenhausaufenthalt"
+msgid "sorted by health issue"
+msgstr "sortiert nach Grunderkrankung"
 
-msgid "Bill receiver"
-msgstr "Rechnungsempfänger"
+msgid "sorted by type"
+msgstr "sortiert nach Typ"
 
-msgid "Receiver"
-msgstr "Empfänger"
+msgid "Cannot load documents. No active patient."
+msgstr "Kann Dokumente nicht laden. Kein Patient aktiv."
 
-msgid ""
-"Are you sure you want to delete this\n"
-"description from the document ?\n"
-msgstr ""
-"Sind Sie sicher, daß diese Beschreibung\n"
-"des Dokuments gelöscht werden soll ?\n"
+msgid "Part Actions:"
+msgstr "Objektteil-Aktionen:"
 
-msgid "Deleting document description"
-msgstr "Dokumentenbeschreibung löschen"
+msgid "Display part"
+msgstr "Zeige Teil"
 
-msgid "Adding document description"
-msgstr "Dokumentenbeschreibung hinzufügen"
+#, python-format
+msgid "%s Sign/Edit properties"
+msgstr "%s Abzeichnen/Eigenschaften editieren"
 
-msgid "Below you can add a document description.\n"
-msgstr "Geben Sie eine Dokumentenbeschreibung ein.\n"
+msgid "Delete part"
+msgstr "Teil löschen"
 
-msgid "Editing document description"
-msgstr "Dokumentenbeschreibung bearbeiten"
+msgid "Move part"
+msgstr "Teil verschieben"
 
-msgid "Below you can edit the document description.\n"
-msgstr "Bearbeiten Sie die Dokumentenbeschreibung.\n"
+msgid "Print part"
+msgstr "Teil drucken"
 
-msgid "Select the description you are interested in.\n"
-msgstr "Wählen Sie die Beschreibung, die von Interesse ist.\n"
+msgid "Fax part"
+msgstr "Teil faxen"
 
-msgid "Managing document descriptions"
-msgstr "Dokumentenbeschreibungen verwalten"
+msgid "Mail part"
+msgstr "Teil mailen"
 
-msgid "Select the episode under which to file the document ..."
-msgstr "Wählen Sie die Episode, der das Dokument zugeordnet werden soll ..."
+msgid "Export part"
+msgstr "Teil exportieren"
 
-#, python-format
-msgid "Imported new document from %s."
-msgstr "Neues Dokument aus [%s] eingelesen."
+msgid "Document Actions:"
+msgstr "Dokument-Aktionen:"
 
-msgid "Enter a comment on the document."
-msgstr "Geben Sie einen Kommentar zu diesem Dokument ein."
+msgid "Delete document"
+msgstr "Dokument löschen"
 
-msgid "User defined"
-msgstr "Vor Ort angelegt"
+msgid "Add parts"
+msgstr "Teile hinzufügen"
 
-msgid "In use"
-msgstr "In Verwendung"
+msgid "Add part from clipboard"
+msgstr "Teil aus der Zwischenablage einfügen"
 
-#, python-format
-msgid ""
-"Cannot delete document type\n"
-" [%s]\n"
-"because it is currently in use."
-msgstr ""
-"Kann den Dokumententype\n"
-" [%s]\n"
-"nicht löschen, da er in Benutzung ist."
+msgid "Print all parts"
+msgstr "Alle Teile drucken"
 
-msgid "deleting document type"
-msgstr "Dokumententyp löschen"
+msgid "Fax all parts"
+msgstr "Alle Teile faxen"
 
-#, python-format
-msgid ""
-"From the list below select the document type you want\n"
-"all documents currently classified as:\n"
-"\n"
-" \"%s\"\n"
-"\n"
-"to be changed to.\n"
-"\n"
-"Be aware that this change will be applied to ALL such documents. If there\n"
-"are many documents to change it can take quite a while.\n"
-"\n"
-"Make sure this is what you want to happen !\n"
-msgstr ""
-"Wählen Sie aus der Liste denjenigen Dokumententyp,\n"
-"den alle momentan als:\n"
-"\n"
-" \"%s\"\n"
-"\n"
-"klassifizierten Dokumente erhalten sollen.\n"
-"\n"
-"Dieser Wechsel wird ALLE derartigen Dokumente betreffen. Es kann daher\n"
-"recht lange dauern, wenn es viele solche Dokumente gibt.\n"
-"\n"
-"Überlegen Sie, ob das tatsächlich beabsichtigt ist.\n"
+msgid "Mail all parts"
+msgstr "Alle Teile mailen"
 
-msgid "Reassigning document type"
-msgstr "Dokumente anders klassifizieren"
+msgid "Export all parts"
+msgstr "Alle Teile exportieren"
 
-msgid "Select the document type."
-msgstr "Wählen Sie den Dokumententyp."
+msgid "Access external original"
+msgstr "Zugriff auf das externe Original"
 
-msgid "Cannot create document type without name."
-msgstr "Kann Dokumententyp ohne Bezeichnung nicht anlegen."
+msgid "Edit corresponding encounter"
+msgstr "Zugehörige Konsultation bearbeiten"
 
-msgid "+/-"
-msgstr "+/-"
+msgid "Select corresponding encounter"
+msgstr "Zugehörige Konsultation wählen"
 
-msgid "!"
-msgstr "!"
+msgid "Manage descriptions"
+msgstr "Beschreibungen verwalten"
 
-msgid "comment"
-msgstr "Kommentar"
+msgid "Error searching documents."
+msgstr "Fehler beim Suchen von Dokumenten."
 
-msgid "(you are the primary reviewer)"
-msgstr "(sie sind der Verantwortliche)"
+msgid "loading document list"
+msgstr "Dokumentenliste laden"
 
 #, python-format
-msgid "(someone else is the intended reviewer: %s)"
-msgstr "(jemand anderes ist verantwortlich: %s)"
+msgid "%s%7s %s:%s (%s)"
+msgstr "%s%7s %s:%s (%s)"
 
 #, python-format
-msgid ""
-"Cannot create episode\n"
-" [%s]"
-msgstr ""
-"Kann Episode nicht eröffnen\n"
-" [%s]"
-
-msgid "Editing document properties"
-msgstr "Eigenschaften des Dokuments bearbeiten"
+msgid "%s%7s (%s):%s (%s)"
+msgstr "%s%7s (%s):%s (%s)"
 
 #, python-format
-msgid "Cannot change document type to [%s]."
-msgstr "Kann Dokumententyp nicht in [%s] ändern."
+msgid "%s (unattributed episode)"
+msgstr "%s (nicht zugeordnete Episoden)"
 
 #, python-format
+msgid "part %2s"
+msgstr "Teil %2s"
+
+msgid "Activate as current photo"
+msgstr "Als aktives Photo aktivieren"
+
 msgid ""
-"Cannot link the document to episode\n"
 "\n"
-" [%s]"
+"Select the document into which to move the selected part !\n"
 msgstr ""
-"Kann Dokument nicht folgender Episode zuordnen:\n"
 "\n"
-" [%s]"
+"Wählen Sie das Dokument, in welches Sie den Teil verschieben wollen !\n"
 
-msgid "Error setting \"reviewed\" status of this document."
-msgstr "Fehler beim Abzeichnen dieses Dokuments."
+msgid "Cannot move document part."
+msgstr "Kann Dokumententeil nicht verschieben."
 
-msgid "Error setting responsible clinician for this document."
-msgstr "Fehler beim Zuweisen dieses Dokuments an einen Kollegen."
+msgid "Moving document part"
+msgstr "Verschiebe Dokumententeil"
 
-msgid "Error setting \"reviewed\" status of this part."
-msgstr "Fehler beim Abzeichnen dieses Teils."
+msgid "Deleting document part"
+msgstr "Dokumententeil löschen"
 
 #, python-format
 msgid ""
-"Cannot set page number to [%s] because\n"
-"another page with this number exists.\n"
+"Are you sure you want to delete the %s part #%s\n"
 "\n"
-"Page numbers in use:\n"
+"%sfrom the following document\n"
 "\n"
-" %s"
+" %s (%s)\n"
+"%s\n"
+"Really delete ?\n"
+"\n"
+"(this action cannot be reversed)"
 msgstr ""
-"Kann Seitennummer nicht auf [%s] setzen, weil\n"
-"eine solche Seite bereits existiert.\n"
+"Sind Sie sicher, daß der %s-Teil #%s\n"
 "\n"
-"Derzeit verwendete Seitennummern:\n"
+"%saus dem folgenden Dokument\n"
 "\n"
-" %s"
+" %s (%s)\n"
+"%s\n"
+"gelöscht werden soll ?\n"
+"\n"
+"(kann nicht rückgängig gemacht werden)"
 
-msgid "Editing document part properties"
-msgstr "Eigenschaften des Dokumententeils bearbeiten"
+#, python-format
+msgid ""
+"Cannot %(l10n_action)s document part - %(l10n_action)s command not found.\n"
+"\n"
+"Either of gm-%(action)s_doc or gm-%(action)s_doc.bat\n"
+"must be in the execution path. The command will\n"
+"be passed the filename to %(l10n_action)s."
+msgstr ""
+"Kann Dokumententeil nicht %(l10n_action)s - %(l10n_action)s-Kommando nicht "
+"gefunden.\n"
+"\n"
+"Entweder gm-%(action)s_doc oder gm_%(action)s_doc.bat\n"
+"muß im Pfad zu finden sein. Dem Script wird der\n"
+"Dateiname zum %(l10n_action)s übergeben."
 
-msgid "Error saving part properties."
-msgstr "Fehler beim Speichern der Teileigenschaften."
+#, python-format
+msgid "Processing document part: %s"
+msgstr "verarbeite Dokumententeil: %s"
 
+#, python-format
 msgid ""
-"No images could be acquired from the source.\n"
+"Cannot %(l10n_action)s document part - %(l10n_action)s command failed.\n"
 "\n"
-"This may mean the scanner driver is not properly installed.\n"
+"You may need to check and fix either of\n"
+" gm-%(action)s_doc (Unix/Mac) or\n"
+" gm-%(action)s_doc.bat (Windows)\n"
 "\n"
-"On Windows you must install the TWAIN Python module\n"
-"while on Linux and MacOSX it is recommended to install\n"
-"the XSane package."
+"The command is passed the filename to %(l10n_action)s."
 msgstr ""
-"Es konnte kein Bild aus der Bildquelle gelesen werden.\n"
-"\n"
-"Das kann bedeuten, daß der Scanner nicht richtig installiert ist.\n"
+"Kann Dokumententeil nicht %(l10n_action)s - %(l10n_action)s-Kommando schlug "
+"fehl.\n"
 "\n"
-"Unter Windows müssen Sie das Pythonmodul TWAIN installieren.\n"
-"Unter Linux oder MacOSX wird das Paket XSane empfohlen."
+"Sie müssen ggf. eines der Skripte\n"
+" gm-%(action)s_doc (Unix/Mac) oder\n"
+" gm-%(action)s_doc.bat (Windows)\n"
+"anpassen.\n"
+"Dem Script wird der Dateiname zum %(l10n_action)s übergeben."
 
-msgid "Acquiring images"
-msgstr "Hole Bilder"
+#, python-format
+msgid "document part handed over to email program: %s"
+msgstr "Dokumententeil an E-Mail-Programm übergeben: %s"
 
-msgid "other documents"
-msgstr "andere Dokumente"
+msgid "print"
+msgstr "Drucken"
 
-#, python-format
-msgid "part %s: %s"
-msgstr "Teil %s: %s"
+msgid "fax"
+msgstr "Faxen"
 
-msgid "saving document"
-msgstr "speichere Dokument"
+msgid "mail"
+msgstr "mailen"
 
-msgid "No parts to save. Really save an empty document as a reference ?"
-msgstr ""
-"Dokument hat keine Teile. Wirklich leeres Dokument als Referenz speichern ?"
+msgid "Save document part to directory ..."
+msgstr "Dokumententeil speichern in Verzeichnis ..."
 
-msgid "No parts to save. Aquire some parts first."
-msgstr "Keine Teile zu speichern. Sie müssen zuerst Teile hinzufügen."
+#, python-format
+msgid "Successfully exported document part as [%s]."
+msgstr "Erfolgreich Dokumententeil unter [%s] gespeichert."
 
-msgid "No document type applied. Choose a document type"
-msgstr "Sie müssen einen Typ für das Dokument wählen."
+#, python-format
+msgid ""
+"Cannot %(l10n_action)s document - %(l10n_action)s command not found.\n"
+"\n"
+"Either of gm-%(action)s_doc or gm-%(action)s_doc.bat\n"
+"must be in the execution path. The command will\n"
+"be passed a list of filenames to %(l10n_action)s."
+msgstr ""
+"Kann Dokumenten nicht %(l10n_action)s - %(l10n_action)s-Kommando nicht "
+"gefunden.\n"
+"\n"
+"Entweder gm-%(action)s_doc oder gm-%(action)s_doc.bat\n"
+"muß im Pfad zu finden sein. Dem Script wird eine Liste\n"
+"von Dateinamen zum %(l10n_action)s übergeben."
 
-msgid "You must select an episode to save this document under."
-msgstr "Sie müssen die Episode zum Speichern des Dokuments wählen."
+#, python-format
+msgid "Processing document: %s"
+msgstr "verarbeite Dokument: %s"
 
+#, python-format
 msgid ""
-"You need to select from the list of staff members the doctor who is intended "
-"to sign the document."
+"Cannot %(l10n_action)s document - %(l10n_action)s command failed.\n"
+"\n"
+"You may need to check and fix either of\n"
+" gm-%(action)s_doc (Unix/Mac) or\n"
+" gm-%(action)s_doc.bat (Windows)\n"
+"\n"
+"The command is passed a list of filenames to %(l10n_action)s."
 msgstr ""
-"Sie müssen den Arzt, der das Dokument abzeichnen soll, aus der "
-"Mitarbeiterliste wählen."
+"Kann Dokument nicht %(l10n_action)s - %(l10n_action)s-Kommando schlug fehl.\n"
+"\n"
+"Sie müssen ggf. eines der Skripte\n"
+" gm-%(action)s_doc (Unix/Mac) oder\n"
+" gm-%(action)s_doc.bat (Windows)\n"
+"anpassen.\n"
+"Dem Script wird eine Liste Dateinamen zum %(l10n_action)s übergeben."
 
-msgid "There is no scanner support installed on this machine."
-msgstr "Das Betriebssystem hat keinen Scannertreiber."
+msgid "Really add the displayed clipboard item into the document ?"
+msgstr ""
+"Den angezeigten Inhalt der Zwischenablage wirklich dem Dokument hinzufügen ?"
 
-msgid "Cannot find an active scanner."
-msgstr "Kann keinen aktiven Scanner finden."
+msgid "Document part from clipboard"
+msgstr "Dokumententeil aus der Zwischenablage"
 
-msgid "Select an image capture device"
-msgstr "Wählen Sie die Bildquelle."
+msgid ""
+"Cannot access external document - access command not found.\n"
+"\n"
+"Either of gm_access_external_doc.sh or *.bat must be\n"
+"in the execution path. The command will be passed the\n"
+"document type and the reference URL for processing."
+msgstr ""
+"Kann externes Dokument nicht aufrufen - Zugriffsbefehl nicht gefunden.\n"
+"\n"
+"Entweder gm_access_external_doc.sh oder *.bat muß im\n"
+"Pfad zu finden sein. Dem Script werden der Dokumententyp\n"
+"und die Referenz-URL zur Weiterverarbeitung übergeben."
 
-msgid "device selection"
-msgstr "Auswahl des Geräts"
+msgid "Accessing external document"
+msgstr "Zugriff auf externes Dokument"
 
 msgid ""
-"No pages could be acquired from the source.\n"
+"Cannot access external document - access command failed.\n"
 "\n"
-"This may mean the scanner driver is not properly installed.\n"
+"You may need to check and fix either of\n"
+" gm_access_external_doc.sh (Unix/Mac) or\n"
+" gm_access_external_doc.bat (Windows)\n"
 "\n"
-"On Windows you must install the TWAIN Python module\n"
-"while on Linux and MacOSX it is recommended to install\n"
-"the XSane package."
+"The command is passed the document type and the\n"
+"external reference URL on the command line."
 msgstr ""
-"Es konnten keine Daten aus der Quelle geholt werden.\n"
-"\n"
-"Das kann bedeuten, daß der Scanner nicht richtig installiert ist.\n"
+"Kann externes Dokument nicht aufrufen - Zugriffskommando schlug fehl.\n"
 "\n"
-"Unter Windows müssen Sie das Python-Modul TWAIN installieren.\n"
-"Unter Linux und MacOSX wird das Paket XSane empfohlen."
+"Sie müssen ggf. eines der Skripte\n"
+" gm_access_external_doc.sh (Unix/Mac) oder\n"
+" gm_access_external_doc.bat (Windows)\n"
+"anpassen.\n"
+"Dem Script werden der Dokumententyp und die externe\n"
+"Referenz-URL zur Weiterverarbeitung übergeben."
 
-msgid "acquiring page"
-msgstr "hole Seite"
+msgid "Save document into directory ..."
+msgstr "Dokument speichern in das Verzeichnis ..."
 
-msgid "Choose a file"
-msgstr "Eine Datei wählen"
+#, python-format
+msgid "Successfully exported %s parts into the directory [%s]."
+msgstr "Erfolgreich %s Teile in das Verzeichnis [%s] gespeichert."
 
-msgid "all files (Win)"
-msgstr "alle Dateien (Win)"
+msgid "Are you sure you want to delete the document ?"
+msgstr "Sind Sie sicher, daß das Dokument gelöscht werden soll ?"
 
-msgid "You must select a part before you can view it."
-msgstr "Zum Anzeigen muß ein Teil markiert sein."
+msgid "Deleting document"
+msgstr "Dokument löschen"
 
-msgid "displaying part"
-msgstr "Teil anzeigen"
+msgid "Study date"
+msgstr "Datum der Studie"
+
+msgid "Study time"
+msgstr "Zeit der Studie"
+
+msgid "Method"
+msgstr "Methode"
+
+msgid "Body part"
+msgstr "Körperteil"
+
+msgid "Time"
+msgstr "Zeit"
+
+msgid "Cannot connect without port (try 8042)."
+msgstr "Kann ohne Port nicht verbinden (versuchen Sie 8042)."
+
+#, python-format
+msgid "Connect to [%s] @ port %s as \"%s\"."
+msgstr "Verbinden mit [%s] @ port %s als \"%s\"."
+
+msgid "Cannot connect to PACS."
+msgstr "Kann keine Verbindung zum PACS herstellen."
+
+#, python-format
+msgid "PACS: Orthanc \"%s\" (AET \"%s\", Version %s, DB v%s)"
+msgstr ""
+
+#, python-format
+msgid "GNUmed patient: %s (generic PACS ID)"
+msgstr "GNUmed-Patient: %s (generische PACS ID)"
 
 #, python-format
+msgid "GNUmed patient: \"%(value)s\" @ [%(issuer)s] (stored PACS ID)"
+msgstr "GNUmed-Patient: \"%(value)s\" @ [%(issuer)s] (stored PACS ID)"
+
+msgid "PACS: no patients with matching IDs found"
+msgstr "PACS: kein Patient mit passender ID gefunden"
+
 msgid ""
-"Cannot display document part:\n"
-"%s"
+"PACS: more than one patient with matching IDs found, carefully check studies"
 msgstr ""
-"Kann Dokumententeil nicht anzeigen:\n"
-"%s"
+"PACS: mehr als ein Patient mit passender ID gefunden, sorgfältig die Studien "
+"durchsehen"
 
-msgid "You must select a part before you can delete it."
-msgstr "Zum Löschen muß ein Teil markiert sein."
+#, python-format
+msgid "%s series"
+msgstr "%s Serien"
 
-msgid "deleting part"
-msgstr "Teil löschen"
+#, python-format
+msgid "%%s (%s series)"
+msgstr "%%s (%s Serien)"
+
+msgid "no studies"
+msgstr "keine Studien"
+
+#, python-format
+msgid "%s studies"
+msgstr "%s Studien"
+
+msgid "Exporting DICOM studies"
+msgstr "DICOM-Studien exportieren"
+
+msgid "Unable to export selected studies."
+msgstr "Kann gewählte Studien nicht exportieren."
 
 #, python-format
 msgid ""
-"The part has successfully been removed from the document.\n"
-"\n"
-"Do you also want to permanently delete the file\n"
-"\n"
-" [%s]\n"
+"The DICOM studies are %s in compressed size.\n"
 "\n"
-"from which this document part was loaded ?\n"
-"\n"
-"If it is a temporary file for a page you just scanned\n"
-"this makes a lot of sense. In other cases you may not\n"
-"want to lose the file.\n"
-"\n"
-"Pressing [YES] will permanently remove the file\n"
-"from your computer.\n"
+"Really copy to export area ?"
 msgstr ""
-"Der Teil wurde erfolgreich aus dem Dokument entfernt.\n"
-"\n"
-"Wollen Sie zusätzlich die korrespondierende Datei\n"
-"\n"
-" [%s]\n"
-"\n"
-",aus der der Teil geladen wurde, unwiderruflich löschen ?\n"
+"Die DICOM-Studien sind %s in komprimierter Größe.\n"
 "\n"
-"Dies kann sinnvoll sein, wenn es sich um eine temporäre\n"
-"Datei für eine soeben eingescannte Seite handelt. Andernfalls\n"
-"wollen Sie die Datei vermutlich nicht löschen.\n"
-"\n"
-"Durch Drücken von [JA] wird die Datei endgültig von\n"
-"Ihrem Computer gelöscht.\n"
+"Wirklich in den Exportbereich kopieren ?"
+
+#, python-format
+msgid "DICOM studies of [%s] from Orthanc PACS \"%s\" (AET \"%s\")"
+msgstr "DICOM-Studien zu [%s] aus dem Orthanc PACS \"%s\" (AET \"%s\")"
+
+msgid "Select the directory into which to save the DICOM studies."
+msgstr ""
+"Wählen Sie das Verzeichnis, in welches die Studien gespeichert werden sollen."
+
+msgid "Saving DICOM studies"
+msgstr "Speichere DICOM-Studien"
 
-msgid "Removing document part"
-msgstr "Dokumententeil entfernen"
+msgid "Unable to save selected studies."
+msgstr "Kann gewählte Studien nicht speichern."
+
+msgid "Unable to export studies."
+msgstr "Kann Studien nicht exportieren."
+
+#, python-format
+msgid "All DICOM studies of [%s] from Orthanc PACS \"%s\" (AET \"%s\")"
+msgstr "Alle DICOM-Studien zu [%s] aus dem Orthanc PACS \"%s\" (AET \"%s\")"
 
 #, python-format
+msgid "%s%s images"
+msgstr "%s%s Bilder"
+
+msgid "Select the directory from which to recursively upload DICOM files."
+msgstr ""
+"Wählen Sie das Verzeichnis, aus welchem DICOM-Dateien rekursiv hochgeladen "
+"werden sollen."
+
+msgid "Delete the uploaded DICOM files now ?"
+msgstr "Die hochgeladenen DICOM-Dateien jetzt löschen ?"
+
 msgid ""
-"Cannot delete part in file [%s].\n"
+"Some files have not been uploaded.\n"
 "\n"
-"You may not have write access to it."
+"Do you want to delete those DICOM files which have been sent to the PACS "
+"successfully ?"
 msgstr ""
-"Kann Teil in Datei [%s] nicht löschen.\n"
+"Einige Dateien wurden nicht hochgeladen.\n"
 "\n"
-"Sie haben möglicherweise kein Schreibrecht dafür."
+"Wollen Sie die erfolgreich hochgeladenen DICOM-Dateien jetzt löschen ?"
 
-msgid "Cannot create new document."
-msgstr "Kann kein neues Dokument anlegen."
+msgid "Uploading DICOM files"
+msgstr "Lade DICOM-Dateien hoch"
 
-msgid "Cannot update document metadata."
-msgstr "Kann Metadaten zum Dokument nicht aktualisieren."
+msgid "Editing Orthanc content"
+msgstr "Orthanc-Inhalt bearbeiten"
 
-msgid "Cannot add document description."
-msgstr "Kann Dokumentenbeschreibung nicht hinzufügen."
+msgid "Patient ID"
+msgstr "Patienten-ID"
 
-msgid "Error setting \"reviewed\" status of new document."
-msgstr "Fehler beim Abzeichnen des neuen Dokuments."
+msgid "Birth date"
+msgstr "Geburtsdatum"
 
-msgid "Successfully saved the new document."
-msgstr "Neues Dokument erfolgreich gespeichert."
+msgid "Orthanc"
+msgstr ""
+
+msgid "Modifying patient ID"
+msgstr "Patienten-ID bearbeiten"
 
 #, python-format
 msgid ""
-"The reference ID for the new document is:\n"
-"\n"
-" <%s>\n"
+"Really modify %s patient(s) to have the new patient ID\n"
 "\n"
-"You probably want to write it down on the\n"
-"original documents.\n"
+" [%s]\n"
 "\n"
-"If you don't care about the ID you can switch\n"
-"off this message in the GNUmed configuration."
+"stored in the Orthanc DICOM server ?"
 msgstr ""
-"Die Referenznummer für das neue Dokument ist:\n"
+"Wirklich %s Patienten so verändern, daß als neue Nummer\n"
 "\n"
-"<%s>\n"
+" [%s]\n"
 "\n"
-"Sie sollten diese Nummer auf den Originaldokumenten\n"
-"vermerken.\n"
-"\n"
-"Falls Sie ohne Referenznummern arbeiten, können Sie\n"
-"diesen Hinweis in der Konfiguration von GNUmed abschalten."
+"im Orthanc DICOM-Server gespeichert wird ?"
 
-msgid "Saving document"
-msgstr "Speichere Dokument"
+#, python-format
+msgid "You are logged in as %s%s.%s (%s). DB account <%s>."
+msgstr "Sie sind als %s%s.%s (%s) angemeldet. Datenbankkonto <%s>."
 
-msgid "Successfully saved new document."
-msgstr "Neues Dokument erfolgreich gespeichert."
+msgid "&Go to plugin ..."
+msgstr "&Gehe zu Modul ..."
 
-msgid "Document part does not seem to exist in database !"
-msgstr "Dieser Teil des Dokuments scheint in der Datenbank zu fehlen !"
+msgid "Check for updates"
+msgstr "Updates suchen"
 
-msgid "showing document"
-msgstr "Dokument zeigen"
+msgid "Check for new releases of the GNUmed client."
+msgstr "Nach Updates für GNUmed suchen."
 
-msgid "Document list for this patient."
-msgstr "Dokumentenliste dieses Patienten."
+msgid "Announce downtime"
+msgstr "Wartung ankündigen"
 
-msgid "Showing documents."
-msgstr "Zeige Dokumente"
+msgid "Announce database maintenance downtime to all connected clients."
+msgstr ""
+"Wartungsbedingte Datenbankabschaltung allen verbundenen GNUmed-Programmen "
+"ankündigen."
 
-msgid "Ref #"
-msgstr "Ref-No"
+msgid "All options"
+msgstr "Alle Einstellungen"
 
-#, python-format
-msgid "available documents (%s)"
-msgstr "archivierte Dokumente (%s)"
+msgid "List all options as configured in the database."
+msgstr "Komplette Konfiguration aus der Datenbank auflisten."
 
-#, python-format
-msgid "unsigned (%s) on top"
-msgstr "unsignierte (%s) zuoberst"
+msgid "Configure the database language"
+msgstr "Einstellen der Datenbanksprache"
 
-msgid "most recent on top"
-msgstr "neueste zuoberst"
+msgid "Welcome message"
+msgstr "Begrüßung"
 
-msgid "sorted by episode"
-msgstr "sortiert nach Episode"
+msgid "Configure the database welcome message (all users)."
+msgstr "Ändern der Begrüßung durch die Datenbank (alle Benutzer)."
 
-msgid "sorted by health issue"
-msgstr "sortiert nach Grunderkrankung"
+msgid "Database ..."
+msgstr "Datenbank ..."
 
-msgid "sorted by type"
-msgstr "sortiert nach Typ"
+msgid "Export chunk size"
+msgstr "Export-Blockgröße"
 
-msgid "Cannot load documents. No active patient."
-msgstr "Kann Dokumente nicht laden. Kein Patient aktiv."
+msgid "Configure the chunk size used when exporting BLOBs from the database."
+msgstr ""
+"Konfigurieren der Blockgröße für den Export von Binärdaten aus der Datenbank."
 
-msgid "Part Actions:"
-msgstr "Objektteil-Aktionen:"
+msgid "Email address"
+msgstr "E-mail-Adresse"
 
-msgid "Display part"
-msgstr "Zeige Teil"
+msgid "The email address of the user for sending bug reports, etc."
+msgstr "Die E-Mail-Adresse des Nutzers. Zum Senden von Fehlerberichten, etc."
 
-#, python-format
-msgid "%s Sign/Edit properties"
-msgstr "%s Abzeichnen/Eigenschaften editieren"
+msgid "Client parameters ..."
+msgstr "Programmparameter ..."
 
-msgid "Delete part"
-msgstr "Teil löschen"
+msgid "Medication measurements"
+msgstr "Medikationsrelevante Meßwerte"
 
-msgid "Move part"
-msgstr "Teil verschieben"
+msgid "Select the measurements panel to show in the medications plugin."
+msgstr "Wählen Sie das Meßwerteprofil für das Medikationsmodul."
 
-msgid "Print part"
-msgstr "Teil drucken"
+msgid "General measurements"
+msgstr "Allgemeine Messungen"
 
-msgid "Fax part"
-msgstr "Teil faxen"
+msgid "Select the measurements panel to show in the top pane."
+msgstr "Wählen Sie das Meßwerteprofil für das kontinuierliche Monitoring."
 
-msgid "Mail part"
-msgstr "Teil mailen"
+msgid "Review dialog"
+msgstr "Signierdialog"
 
-msgid "Export part"
-msgstr "Teil exportieren"
+msgid "Configure review dialog after document display."
+msgstr "Konfigurieren der Bewertung nach dem Anzeigen eines Dokumeents."
 
-msgid "Document Actions:"
-msgstr "Dokument-Aktionen:"
+msgid "UUID display"
+msgstr "Dokumenten-ID-Anzeige"
 
-msgid "Delete document"
-msgstr "Dokument löschen"
+msgid "Configure unique ID dialog on document import."
+msgstr "Konfigurieren der Anzeige der ID beim Dokumentenimport."
 
-msgid "Add parts"
-msgstr "Teile hinzufügen"
+msgid "Empty documents"
+msgstr "Leere Dokumente"
 
-msgid "Add part from clipboard"
-msgstr "Teil aus der Zwischenablage einfügen"
+msgid "Whether to allow saving documents without parts."
+msgstr "Zulassen von leeren Dokumenten."
 
-msgid "Print all parts"
-msgstr "Alle Teile drucken"
+msgid "Generate UUID"
+msgstr "UUID erzeugen"
 
-msgid "Fax all parts"
-msgstr "Alle Teile faxen"
+msgid "Whether to generate UUIDs for new documents."
+msgstr "Ob für neue Dokumenten UUIDs erzeugt werden sollen."
 
-msgid "Mail all parts"
-msgstr "Alle Teile mailen"
+msgid "Document handling ..."
+msgstr "Dokumentenmanagement ..."
 
-msgid "Export all parts"
-msgstr "Alle Teile exportieren"
+msgid "Auto-check"
+msgstr "Auto-Prüfung"
 
-msgid "Access external original"
-msgstr "Zugriff auf das externe Original"
+msgid "Whether to auto-check for updates at startup."
+msgstr "Ob beim Starten automatisch auf Updates geprüft werden soll."
 
-msgid "Edit corresponding encounter"
-msgstr "Zugehörige Konsultation bearbeiten"
+msgid "Check scope"
+msgstr "Suchumfang"
 
-msgid "Select corresponding encounter"
-msgstr "Zugehörige Konsultation wählen"
+msgid "When checking for updates, consider latest branch, too ?"
+msgstr "Beim Suchen von Updates auch große Versionssprünge zulassen ?"
 
-msgid "Manage descriptions"
-msgstr "Beschreibungen verwalten"
+msgid "The URL to retrieve version information from."
+msgstr "Die Adresse, von der Versionsinformationen geladen werden."
 
-msgid "Error searching documents."
-msgstr "Fehler beim Suchen von Dokumenten."
+msgid "Update handling ..."
+msgstr "Updateprüfung ..."
 
-msgid "loading document list"
-msgstr "Dokumentenliste laden"
+msgid "Birthday reminder"
+msgstr "Geburtstagserinnerung"
 
-#, python-format
-msgid "%s%7s %s:%s (%s)"
-msgstr "%s%7s %s:%s (%s)"
+msgid "Configure birthday reminder proximity interval."
+msgstr "Einstellen des Zeitfensters für die Geburtstagserinnerung."
 
-#, python-format
-msgid "%s%7s (%s):%s (%s)"
-msgstr "%s%7s (%s):%s (%s)"
+msgid "Immediate source activation"
+msgstr "Sofortige Quellenaktivierung"
 
-#, python-format
-msgid "%s (unattributed episode)"
-msgstr "%s (nicht zugeordnete Episoden)"
+msgid "Configure immediate activation of single external person."
+msgstr "Sofortige externe Personentenaktivierung konfigurieren."
 
-#, python-format
-msgid "part %2s"
-msgstr "Teil %2s"
+msgid "Initial plugin"
+msgstr "Startmodul"
 
-msgid "Activate as current photo"
-msgstr "Als aktives Photo aktivieren"
+msgid "Configure which plugin to show right after person activation."
+msgstr "Konfiguration des Moduls nach Patientenaufruf."
 
-msgid ""
-"\n"
-"Select the document into which to move the selected part !\n"
-msgstr ""
-"\n"
-"Wählen Sie das Dokument, in welches Sie den Teil verschieben wollen !\n"
+msgid "Default region"
+msgstr "Standardbundesland"
 
-msgid "Cannot move document part."
-msgstr "Kann Dokumententeil nicht verschieben."
+msgid "Configure the default region for person creation."
+msgstr "Das Heimatbundesland für die Neuanlage von Personen vorwählen."
 
-msgid "Moving document part"
-msgstr "Verschiebe Dokumententeil"
+msgid "Default country"
+msgstr "Standardland"
 
-msgid "Deleting document part"
-msgstr "Dokumententeil löschen"
+msgid "Configure the default country for person creation."
+msgstr "Das Heimatland für die Neuanlage von Personen vorwählen."
 
-#, python-format
-msgid ""
-"Are you sure you want to delete the %s part #%s\n"
-"\n"
-"%sfrom the following document\n"
-"\n"
-" %s (%s)\n"
-"%s\n"
-"Really delete ?\n"
-"\n"
-"(this action cannot be reversed)"
-msgstr ""
-"Sind Sie sicher, daß der %s-Teil #%s\n"
-"\n"
-"%saus dem folgenden Dokument\n"
-"\n"
-" %s (%s)\n"
-"%s\n"
-"gelöscht werden soll ?\n"
-"\n"
-"(kann nicht rückgängig gemacht werden)"
+msgid "Person ..."
+msgstr "Person ..."
 
-#, python-format
-msgid ""
-"Cannot %(l10n_action)s document part - %(l10n_action)s command not found.\n"
-"\n"
-"Either of gm-%(action)s_doc or gm-%(action)s_doc.bat\n"
-"must be in the execution path. The command will\n"
-"be passed the filename to %(l10n_action)s."
+msgid "Multiple new episodes"
+msgstr "Mehrere neue Episoden"
+
+msgid "Configure opening multiple new episodes on a patient at once."
+msgstr "Mehrere neue Episoden bei einem Patienten gleichzeitig erlauben."
+
+msgid "Auto-open editors"
+msgstr "Editoren auto-öffnen"
+
+msgid "Configure auto-opening editors for recent problems."
+msgstr "Das automatische Öffnen von Editoren für aktuelle Probleme aktivieren."
+
+msgid "SOAP fields"
+msgstr "ABDT-Felder"
+
+msgid "Configure SOAP editor - individual SOAP fields vs text editor like"
 msgstr ""
-"Kann Dokumententeil nicht %(l10n_action)s - %(l10n_action)s-Kommando nicht "
-"gefunden.\n"
-"\n"
-"Entweder gm-%(action)s_doc oder gm_%(action)s_doc.bat\n"
-"muß im Pfad zu finden sein. Dem Script wird der\n"
-"Dateiname zum %(l10n_action)s übergeben."
+"Kartei-Editor konfigurieren - einzelne Felder oder a la Textverarbeitung"
 
-#, python-format
-msgid "Processing document part: %s"
-msgstr "verarbeite Dokumententeil: %s"
+msgid "Progress notes handling ..."
+msgstr "Management Verlaufsnotizen ..."
 
-#, python-format
-msgid ""
-"Cannot %(l10n_action)s document part - %(l10n_action)s command failed.\n"
-"\n"
-"You may need to check and fix either of\n"
-" gm-%(action)s_doc (Unix/Mac) or\n"
-" gm-%(action)s_doc.bat (Windows)\n"
-"\n"
-"The command is passed the filename to %(l10n_action)s."
-msgstr ""
-"Kann Dokumententeil nicht %(l10n_action)s - %(l10n_action)s-Kommando schlug "
-"fehl.\n"
-"\n"
-"Sie müssen ggf. eines der Skripte\n"
-" gm-%(action)s_doc (Unix/Mac) oder\n"
-" gm-%(action)s_doc.bat (Windows)\n"
-"anpassen.\n"
-"Dem Script wird der Dateiname zum %(l10n_action)s übergeben."
+msgid "User interface ..."
+msgstr "Programmoberfläche ..."
 
-#, python-format
-msgid "document part handed over to email program: %s"
-msgstr "Dokumententeil an E-Mail-Programm übergeben: %s"
+msgid "MI/stroke risk calc cmd"
+msgstr "AMI/Apoplex-Risikorechner-Werkzeug"
 
-msgid "print"
-msgstr "Drucken"
+msgid "Set the command to start the CV risk calculator."
+msgstr "Den Programmaufruf für den AMI/Apoplex-Risikorechner setzen."
 
-msgid "fax"
-msgstr "Faxen"
+msgid "Set the time to wait for OpenOffice to settle after startup."
+msgstr "Die Beruhigungszeit für den Start von OpenOffice setzen."
 
-msgid "mail"
-msgstr "mailen"
+msgid "Measurements URL"
+msgstr "Meßmethoden-URL"
 
-msgid "Save document part to directory ..."
-msgstr "Dokumententeil speichern in Verzeichnis ..."
+msgid "URL for measurements encyclopedia."
+msgstr "URL zum Lexikon mit Meßmethoden."
 
-#, python-format
-msgid "Successfully exported document part as [%s]."
-msgstr "Erfolgreich Dokumententeil unter [%s] gespeichert."
+msgid "Drug data source"
+msgstr "Medikamentenquelle"
 
-#, python-format
-msgid ""
-"Cannot %(l10n_action)s document - %(l10n_action)s command not found.\n"
-"\n"
-"Either of gm-%(action)s_doc or gm-%(action)s_doc.bat\n"
-"must be in the execution path. The command will\n"
-"be passed a list of filenames to %(l10n_action)s."
-msgstr ""
-"Kann Dokumenten nicht %(l10n_action)s - %(l10n_action)s-Kommando nicht "
-"gefunden.\n"
-"\n"
-"Entweder gm-%(action)s_doc oder gm-%(action)s_doc.bat\n"
-"muß im Pfad zu finden sein. Dem Script wird eine Liste\n"
-"von Dateinamen zum %(l10n_action)s übergeben."
+msgid "Select the drug data source."
+msgstr "Wählen Sie die Medikamentenquelle."
 
-#, python-format
-msgid "Processing document: %s"
-msgstr "verarbeite Dokument: %s"
+msgid "ADR URL"
+msgstr "UAW-URL"
 
-#, python-format
-msgid ""
-"Cannot %(l10n_action)s document - %(l10n_action)s command failed.\n"
-"\n"
-"You may need to check and fix either of\n"
-" gm-%(action)s_doc (Unix/Mac) or\n"
-" gm-%(action)s_doc.bat (Windows)\n"
-"\n"
-"The command is passed a list of filenames to %(l10n_action)s."
-msgstr ""
-"Kann Dokument nicht %(l10n_action)s - %(l10n_action)s-Kommando schlug fehl.\n"
-"\n"
-"Sie müssen ggf. eines der Skripte\n"
-" gm-%(action)s_doc (Unix/Mac) oder\n"
-" gm-%(action)s_doc.bat (Windows)\n"
-"anpassen.\n"
-"Dem Script wird eine Liste Dateinamen zum %(l10n_action)s übergeben."
+msgid "URL for reporting Adverse Drug Reactions."
+msgstr "Webseite für die Meldung von Unerwünschten Arzneimittelwirkungen."
 
-msgid "Really add the displayed clipboard item into the document ?"
-msgstr ""
-"Den angezeigten Inhalt der Zwischenablage wirklich dem Dokument hinzufügen ?"
+msgid "vaccADR URL"
+msgstr "Impf-UAW-URL"
 
-msgid "Document part from clipboard"
-msgstr "Dokumententeil aus der Zwischenablage"
+msgid "URL for reporting Adverse Drug Reactions to *vaccines*."
+msgstr "Webseite für die Meldung von Impfreaktionen."
 
-msgid ""
-"Cannot access external document - access command not found.\n"
-"\n"
-"Either of gm_access_external_doc.sh or *.bat must be\n"
-"in the execution path. The command will be passed the\n"
-"document type and the reference URL for processing."
-msgstr ""
-"Kann externes Dokument nicht aufrufen - Zugriffsbefehl nicht gefunden.\n"
-"\n"
-"Entweder gm_access_external_doc.sh oder *.bat muß im\n"
-"Pfad zu finden sein. Dem Script werden der Dokumententyp\n"
-"und die Referenz-URL zur Weiterverarbeitung übergeben."
+msgid "Vacc plans URL"
+msgstr "Impfplan-URL"
 
-msgid "Accessing external document"
-msgstr "Zugriff auf externes Dokument"
+msgid "URL for vaccination plans."
+msgstr "URL für Impfpläne."
 
-msgid ""
-"Cannot access external document - access command failed.\n"
-"\n"
-"You may need to check and fix either of\n"
-" gm_access_external_doc.sh (Unix/Mac) or\n"
-" gm_access_external_doc.bat (Windows)\n"
-"\n"
-"The command is passed the document type and the\n"
-"external reference URL on the command line."
-msgstr ""
-"Kann externes Dokument nicht aufrufen - Zugriffskommando schlug fehl.\n"
-"\n"
-"Sie müssen ggf. eines der Skripte\n"
-" gm_access_external_doc.sh (Unix/Mac) oder\n"
-" gm_access_external_doc.bat (Windows)\n"
-"anpassen.\n"
-"Dem Script werden der Dokumententyp und die externe\n"
-"Referenz-URL zur Weiterverarbeitung übergeben."
+msgid "Visual SOAP editor"
+msgstr "Editor für Bildnotizen"
 
-msgid "Save document into directory ..."
-msgstr "Dokument speichern in das Verzeichnis ..."
+msgid "Set the command for calling the visual progress note editor."
+msgstr "Den Editor für Bildnotizen einstellen."
 
-#, python-format
-msgid "Successfully exported %s parts into the directory [%s]."
-msgstr "Erfolgreich %s Teile in das Verzeichnis [%s] gespeichert."
+msgid "External tools ..."
+msgstr "Externe Werkzeuge"
 
-msgid "Are you sure you want to delete the document ?"
-msgstr "Sind Sie sicher, daß das Dokument gelöscht werden soll ?"
+msgid "Invoice template (no VAT)"
+msgstr "Rechnungsvorlage (ohne USt.)"
 
-msgid "Deleting document"
-msgstr "Dokument löschen"
+msgid "Select the template for printing an invoice without VAT."
+msgstr "Wählen Sie die Druckvorlage für eine Rechnung ohne USt."
 
-#, python-format
-msgid "You are logged in as %s%s.%s (%s). DB account <%s>."
-msgstr "Sie sind als %s%s.%s (%s) angemeldet. Datenbankkonto <%s>."
+msgid "Invoice template (with VAT)"
+msgstr "Rechnungsvorlagen (mit USt.)"
 
-msgid "&Go to plugin ..."
-msgstr "&Gehe zu Modul ..."
+msgid "Select the template for printing an invoice with VAT."
+msgstr "Wählen Sie die Druckvorlage für eine Rechnung mit USt."
 
-msgid "Check for updates"
-msgstr "Updates suchen"
+msgid "Catalogs URL"
+msgstr "URL für Geb.Ordnungen"
 
-msgid "Check for new releases of the GNUmed client."
-msgstr "Nach Updates für GNUmed suchen."
+msgid "URL for billing catalogs (schedules of fees)."
+msgstr "URL für Gebührenordnungen."
 
-msgid "Announce downtime"
-msgstr "Wartung ankündigen"
+msgid "Medication list template"
+msgstr "Vorlage für Medikamentenliste"
 
-msgid "Announce database maintenance downtime to all connected clients."
-msgstr ""
-"Wartungsbedingte Datenbankabschaltung allen verbundenen GNUmed-Programmen "
-"ankündigen."
+msgid "Select the template for printing a medication list."
+msgstr "Wählen Sie die Druckvorlage für die Medikamentenliste."
 
-msgid "All options"
-msgstr "Alle Einstellungen"
+msgid "Prescription mode"
+msgstr "Verschreibungsmodus"
 
-msgid "List all options as configured in the database."
-msgstr "Komplette Konfiguration aus der Datenbank auflisten."
+msgid "Select the default mode for creating a prescription."
+msgstr "Wählen Sie den Standardmodus für Verordnungen."
 
-msgid "Configure the database language"
-msgstr "Einstellen der Datenbanksprache"
+msgid "Prescription template"
+msgstr "Rezeptformular"
 
-msgid "Welcome message"
-msgstr "Begrüßung"
+msgid "Select the template for printing a prescription."
+msgstr "Wählen Sie die Druckvorlage für Verordnungen."
 
-msgid "Configure the database welcome message (all users)."
-msgstr "Ändern der Begrüßung durch die Datenbank (alle Benutzer)."
+msgid "Default Gnuplot template"
+msgstr "Standard-Gnuplot-Vorlage"
 
-msgid "Database ..."
-msgstr "Datenbank ..."
+msgid "Select the default template for plotting test results."
+msgstr "Wählen Sie die Standardvorlage zur Darstellung von Testergebnissen."
 
-msgid "Export chunk size"
-msgstr "Export-Blockgröße"
+msgid "Fallback provider"
+msgstr "Vorgabe-Behandler"
 
-msgid "Configure the chunk size used when exporting BLOBs from the database."
+msgid ""
+"Select the doctor to fall back to for patients without a primary provider."
 msgstr ""
-"Konfigurieren der Blockgröße für den Export von Binärdaten aus der Datenbank."
+"Wählen Sie den Primärarzt aus, der für Patienten ohne einen solchen "
+"angenommen werden soll."
 
-msgid "Email address"
-msgstr "E-mail-Adresse"
+msgid "Edit before patient change"
+msgstr "Vor Patientenwechsel bearbeiten"
 
-msgid "The email address of the user for sending bug reports, etc."
-msgstr "Die E-Mail-Adresse des Nutzers. Zum Senden von Fehlerberichten, etc."
+msgid "Edit encounter details before change of patient."
+msgstr "Vor Patientenwechsel Bearbeiten der Konsultationsdetails ermöglichen."
 
-msgid "Client parameters ..."
-msgstr "Programmparameter ..."
+msgid "Minimum duration"
+msgstr "Minimale Dauer"
 
-msgid "Medication measurements"
-msgstr "Medikationsrelevante Meßwerte"
+msgid "Minimum duration of an encounter."
+msgstr "Minimale Dauer einer Konsultation."
 
-msgid "Select the measurements panel to show in the medications plugin."
-msgstr "Wählen Sie das Meßwerteprofil für das Medikationsmodul."
+msgid "Maximum duration"
+msgstr "Maximale Dauer"
 
-msgid "Review dialog"
-msgstr "Signierdialog"
+msgid "Maximum duration of an encounter."
+msgstr "Maximale Dauer einer Konsultation."
 
-msgid "Configure review dialog after document display."
-msgstr "Konfigurieren der Bewertung nach dem Anzeigen eines Dokumeents."
+msgid "Minimum empty age"
+msgstr "Minimales Leeralter"
 
-msgid "UUID display"
-msgstr "Dokumenten-ID-Anzeige"
+msgid "Minimum age of an empty encounter before considering for deletion."
+msgstr ""
+"Minimalalter eines leeren APK, bevor dieser zum Löschen freigegeben wird."
 
-msgid "Configure unique ID dialog on document import."
-msgstr "Konfigurieren der Anzeige der ID beim Dokumentenimport."
+msgid "Default type"
+msgstr "Standardtyp"
 
-msgid "Empty documents"
-msgstr "Leere Dokumente"
+msgid "Default type for new encounters."
+msgstr "Standardtyp für neue Arzt-Patienten-Begegnungen."
 
-msgid "Whether to allow saving documents without parts."
-msgstr "Zulassen von leeren Dokumenten."
+msgid "Encounter ..."
+msgstr "Konsultation ..."
 
-msgid "Generate UUID"
-msgstr "UUID erzeugen"
-
-msgid "Whether to generate UUIDs for new documents."
-msgstr "Ob für neue Dokumenten UUIDs erzeugt werden sollen."
-
-msgid "Document handling ..."
-msgstr "Dokumentenmanagement ..."
-
-msgid "Auto-check"
-msgstr "Auto-Prüfung"
-
-msgid "Whether to auto-check for updates at startup."
-msgstr "Ob beim Starten automatisch auf Updates geprüft werden soll."
-
-msgid "Check scope"
-msgstr "Suchumfang"
-
-msgid "When checking for updates, consider latest branch, too ?"
-msgstr "Beim Suchen von Updates auch große Versionssprünge zulassen ?"
-
-msgid "The URL to retrieve version information from."
-msgstr "Die Adresse, von der Versionsinformationen geladen werden."
-
-msgid "Update handling ..."
-msgstr "Updateprüfung ..."
-
-msgid "Birthday reminder"
-msgstr "Geburtstagserinnerung"
-
-msgid "Configure birthday reminder proximity interval."
-msgstr "Einstellen des Zeitfensters für die Geburtstagserinnerung."
-
-msgid "Immediate source activation"
-msgstr "Sofortige Quellenaktivierung"
-
-msgid "Configure immediate activation of single external person."
-msgstr "Sofortige externe Personentenaktivierung konfigurieren."
-
-msgid "Initial plugin"
-msgstr "Startmodul"
-
-msgid "Configure which plugin to show right after person activation."
-msgstr "Konfiguration des Moduls nach Patientenaufruf."
-
-msgid "Default region"
-msgstr "Standardbundesland"
-
-msgid "Configure the default region for person creation."
-msgstr "Das Heimatbundesland für die Neuanlage von Personen vorwählen."
-
-msgid "Default country"
-msgstr "Standardland"
-
-msgid "Configure the default country for person creation."
-msgstr "Das Heimatland für die Neuanlage von Personen vorwählen."
-
-msgid "Person ..."
-msgstr "Person ..."
-
-msgid "Multiple new episodes"
-msgstr "Mehrere neue Episoden"
-
-msgid "Configure opening multiple new episodes on a patient at once."
-msgstr "Mehrere neue Episoden bei einem Patienten gleichzeitig erlauben."
-
-msgid "Auto-open editors"
-msgstr "Editoren auto-öffnen"
-
-msgid "Configure auto-opening editors for recent problems."
-msgstr "Das automatische Öffnen von Editoren für aktuelle Probleme aktivieren."
-
-msgid "Progress notes handling ..."
-msgstr "Management Verlaufsnotizen ..."
-
-msgid "User interface ..."
-msgstr "Programmoberfläche ..."
-
-msgid "MI/stroke risk calc cmd"
-msgstr "AMI/Apoplex-Risikorechner-Werkzeug"
-
-msgid "Set the command to start the CV risk calculator."
-msgstr "Den Programmaufruf für den AMI/Apoplex-Risikorechner setzen."
-
-msgid "Set the time to wait for OpenOffice to settle after startup."
-msgstr "Die Beruhigungszeit für den Start von OpenOffice setzen."
-
-msgid "Measurements URL"
-msgstr "Meßmethoden-URL"
-
-msgid "URL for measurements encyclopedia."
-msgstr "URL zum Lexikon mit Meßmethoden."
-
-msgid "Select the drug data source."
-msgstr "Wählen Sie die Medikamentenquelle."
-
-msgid "ADR URL"
-msgstr "UAW-URL"
-
-msgid "URL for reporting Adverse Drug Reactions."
-msgstr "Webseite für die Meldung von Unerwünschten Arzneimittelwirkungen."
-
-msgid "vaccADR URL"
-msgstr "Impf-UAW-URL"
-
-msgid "URL for reporting Adverse Drug Reactions to *vaccines*."
-msgstr "Webseite für die Meldung von Impfreaktionen."
-
-msgid "Vacc plans URL"
-msgstr "Impfplan-URL"
-
-msgid "URL for vaccination plans."
-msgstr "URL für Impfpläne."
-
-msgid "Visual SOAP editor"
-msgstr "Editor für Bildnotizen"
-
-msgid "Set the command for calling the visual progress note editor."
-msgstr "Den Editor für Bildnotizen einstellen."
-
-msgid "External tools ..."
-msgstr "Externe Werkzeuge"
-
-msgid "Invoice template (no VAT)"
-msgstr "Rechnungsvorlage (ohne USt.)"
-
-msgid "Select the template for printing an invoice without VAT."
-msgstr "Wählen Sie die Druckvorlage für eine Rechnung ohne USt."
-
-msgid "Invoice template (with VAT)"
-msgstr "Rechnungsvorlagen (mit USt.)"
-
-msgid "Select the template for printing an invoice with VAT."
-msgstr "Wählen Sie die Druckvorlage für eine Rechnung mit USt."
-
-msgid "Catalogs URL"
-msgstr "URL für Geb.Ordnungen"
-
-msgid "URL for billing catalogs (schedules of fees)."
-msgstr "URL für Gebührenordnungen."
-
-msgid "Medication list template"
-msgstr "Vorlage für Medikamentenliste"
-
-msgid "Select the template for printing a medication list."
-msgstr "Wählen Sie die Druckvorlage für die Medikamentenliste."
-
-msgid "Prescription mode"
-msgstr "Verschreibungsmodus"
-
-msgid "Select the default mode for creating a prescription."
-msgstr "Wählen Sie den Standardmodus für Verordnungen."
-
-msgid "Prescription template"
-msgstr "Rezeptformular"
-
-msgid "Select the template for printing a prescription."
-msgstr "Wählen Sie die Druckvorlage für Verordnungen."
-
-msgid "Default Gnuplot template"
-msgstr "Standard-Gnuplot-Vorlage"
-
-msgid "Select the default template for plotting test results."
-msgstr "Wählen Sie die Standardvorlage zur Darstellung von Testergebnissen."
-
-msgid "Fallback provider"
-msgstr "Vorgabe-Behandler"
-
-msgid ""
-"Select the doctor to fall back to for patients without a primary provider."
-msgstr ""
-"Wählen Sie den Primärarzt aus, der für Patienten ohne einen solchen "
-"angenommen werden soll."
-
-msgid "Edit before patient change"
-msgstr "Vor Patientenwechsel bearbeiten"
-
-msgid "Edit encounter details before change of patient."
-msgstr "Vor Patientenwechsel Bearbeiten der Konsultationsdetails ermöglichen."
-
-msgid "Minimum duration"
-msgstr "Minimale Dauer"
-
-msgid "Minimum duration of an encounter."
-msgstr "Minimale Dauer einer Konsultation."
-
-msgid "Maximum duration"
-msgstr "Maximale Dauer"
-
-msgid "Maximum duration of an encounter."
-msgstr "Maximale Dauer einer Konsultation."
-
-msgid "Minimum empty age"
-msgstr "Minimales Leeralter"
-
-msgid "Minimum age of an empty encounter before considering for deletion."
-msgstr ""
-"Minimalalter eines leeren APK, bevor dieser zum Löschen freigegeben wird."
-
-msgid "Default type"
-msgstr "Standardtyp"
-
-msgid "Default type for new encounters."
-msgstr "Standardtyp für neue Arzt-Patienten-Begegnungen."
-
-msgid "Encounter ..."
-msgstr "Konsultation ..."
-
-msgid "Dormancy"
-msgstr "Ruhezustand"
+msgid "Dormancy"
+msgstr "Ruhezustand"
 
 msgid ""
 "Maximum length of dormancy after which an episode will be considered closed."
@@ -16107,6 +16408,12 @@ msgstr "Unterdrückte Hinweise"
 msgid "Manage dynamic hints suppressed in this patient."
 msgstr "Verwalten der bei diesem Patienten unterdrückten dynamischen Hinweise."
 
+msgid "Substance abuse"
+msgstr "Substanzmißbrauch"
+
+msgid "Manage substance abuse documentation of this patient."
+msgstr "Dokumentation zum Substanzgebrauch dieses Patienten bearbeiten."
+
 msgid "&Add / Edit ..."
 msgstr "Hinzufügen/Bearbeiten ..."
 
@@ -16128,31 +16435,59 @@ msgstr "Statistik"
 msgid "Show a high-level statistic summary of the EMR."
 msgstr "Eine grobe Statistik der Karteikarte zeigen."
 
-msgid "Text document"
-msgstr "Textdatei"
+msgid "Journal (encounters) to file"
+msgstr "Journal (APK) in Datei"
 
-msgid "Export the EMR of the active patient into a text file"
-msgstr "Karteikarte des aktiven Patienten als Textdatei exportieren"
+msgid ""
+"Save the EMR of the active patient as a chronological journal into a text "
+"file"
+msgstr ""
+"Karteikarte des aktiven Patienten als chronologisches Journal speichern"
 
-msgid "Journal"
-msgstr "Journal"
+msgid "Journal (encounters) to export area"
+msgstr "Journal (APKs) in Exportbereich"
 
 msgid ""
-"Export the EMR of the active patient as a chronological journal into a text "
-"file"
+"Copy EMR of the active patient as a chronological journal into export area"
+msgstr ""
+"Karteikarte des aktiven Patienten als chronologisches Journal im "
+"Exportbereich ablegen"
+
+msgid "Journal (mod time) to file"
+msgstr "Journal (Bearb.zeit) in Datei"
+
+msgid ""
+"Save the EMR of the active patient as journal by last modification time into "
+"a text file"
+msgstr ""
+"Karteikarte des aktiven Patienten als Journal nach Bearbeitungszeitpunkt "
+"speichern"
+
+msgid "Journal (mod time) to export area"
+msgstr "Journal (Bearb.zeit) in Exportbereich"
+
+msgid ""
+"Copy EMR of the active patient as journal by last modification time into "
+"export area"
 msgstr ""
-"Karteikarte des aktiven Patienten als chronologisches Journal in eine "
-"Textdatei exportieren"
+"Karteikarte des aktiven Patienten als Journal nach Bearbeitungszeitpunkt im "
+"Exportbereich ablegen"
+
+msgid "Text document"
+msgstr "Textdatei"
+
+msgid "Save the EMR of the active patient into a text file"
+msgstr "Karteikarte des aktiven Patienten als Textdatei speichern"
 
 msgid "MEDISTAR import format"
 msgstr "MEDISTAR-Importformat"
 
 msgid ""
-"GNUmed -> MEDISTAR. Export progress notes of active patient's active "
-"encounter into a text file."
+"GNUmed -> MEDISTAR. Save progress notes of active patient's active encounter "
+"into a text file."
 msgstr ""
-"GNUmed -> MEDISTAR. Export der Verlaufsnotizen der aktiven Konsultation des "
-"aktiven Patienten in eine von Medistar importierbare Textdatei."
+"GNUmed -> MEDISTAR. Speichern der Verlaufsnotizen der aktiven Konsultation "
+"des aktiven Patienten in eine von Medistar importierbare Textdatei."
 
 msgid "Export as ..."
 msgstr "Exportieren als ..."
@@ -16320,22 +16655,43 @@ msgid "Save a screenshot of this GNUmed client."
 msgstr "Ein Bildschirmphoto des Programms erstellen."
 
 msgid "Show log file"
-msgstr "Log-Datei anzeigen."
+msgstr "Logdatei anzeigen"
 
-msgid "Show the log file in text viewer."
-msgstr "Die Logdatei anzeigen."
+msgid "Show log file in text viewer."
+msgstr "Logdatei in Texteditor anzeigen."
 
 msgid "Backup log file"
 msgstr "Logdatei sichern"
 
-msgid "Backup the content of the log to another file."
-msgstr "Das Log in eine Datei speichern."
+msgid "Backup content of the log to another file."
+msgstr "Logdatei kopieren."
 
 msgid "Email log file"
-msgstr "Log emailen"
+msgstr "Logdatei emailen"
+
+msgid "Send log file to the authors for help."
+msgstr "Logdatei an die GNUmed-Autoren senden."
+
+msgid "Browse tmp dir"
+msgstr "Temporäres Verzeichnis zeigen"
+
+#, python-format
+msgid "Browse temporary directory [%s]."
+msgstr "Das temporäre Verzeichnis [%s] anzeigen."
 
-msgid "Send the log file to the authors for help."
-msgstr "Die Logdatei an die GNUmed-Autoren senden."
+msgid "Browse work dir"
+msgstr "Arbeitsverzeichnis zeigen"
+
+#, python-format
+msgid "Browse user working directory [%s]."
+msgstr "Nutzer-Arbeitsverzeichnis [%s] anzeigen."
+
+msgid "Browse internal work dir"
+msgstr "Internes Arbeitsverzeichnis zeigen"
+
+#, python-format
+msgid "Browse internal working directory [%s]."
+msgstr "Internes Arbeitsverzeichnis [%s] zeigen."
 
 msgid "Bug tracker"
 msgstr "Fehlerdatenbank"
@@ -16365,7 +16721,7 @@ msgstr ""
 "TUN !"
 
 msgid "Test error handling"
-msgstr "Fehlerbehandlung testen."
+msgstr "Fehlerbehandlung testen"
 
 msgid "Throw an exception to test error handling."
 msgstr "Einen künstlichen Fehler auslösen, um die Fehlerbehandlung zu testen."
@@ -16806,6 +17162,25 @@ msgid "No, only auto-open one editor for a new, unassociated problem."
 msgstr "Nein, nur einen einzelnen Editor für ein neues Problem öffnen."
 
 msgid ""
+"When editing progress notes, do you want GNUmed to\n"
+"show individual fields for each of the SOAP categories\n"
+"or do you want to use a text-editor like field for\n"
+"all SOAP categories which can then be set per line\n"
+"of input ?"
+msgstr ""
+"Soll GNUmed bei der Bearbeitung von Karteieinträgen\n"
+"je ein Feld für jede der ABDT-Kategorien zeigen oder\n"
+"soll ein gemeinsames Feld, ähnlich einer Textverar-\n"
+"beitung für alle ABDT-Kategorien gemeinsam genutzt\n"
+"werden ?"
+
+msgid "Yes, show a dedicated field per SOAP category."
+msgstr "Ja, zeige Einzelfelder für jede ABDT-Kategorie."
+
+msgid "No, use one field for all SOAP categories."
+msgstr "Nein, benutze ein Feld für alle ABDT-Kategorien gemeinsam."
+
+msgid ""
 "When a patient is activated GNUmed can\n"
 "be told to switch to a specific plugin.\n"
 "\n"
@@ -17243,560 +17618,1009 @@ msgstr "Risikoabschätzung"
 msgid "cardiovascular risk assessment"
 msgstr "Herz-Kreislauf-Risiko-Berechnung"
 
-#, python-format
-msgid "[arriba] XML result not found in [%s]"
-msgstr "[arriba]-Ergebnis-XML in [%s] nicht gefunden"
+#, python-format
+msgid "[arriba] XML result not found in [%s]"
+msgstr "[arriba]-Ergebnis-XML in [%s] nicht gefunden"
+
+msgid "ACS risk assessment calculator not configured."
+msgstr "AMI-Risikorechner nicht eingerichtet."
+
+#, python-format
+msgid "Cannot run [%s] !"
+msgstr "Kann [%s] nicht ausführen !"
+
+#, python-format
+msgid "There was a problem accessing the [arriba] result in [%s] !"
+msgstr "Problem beim Zugriff auf das [arriba]-Ergebnis in [%s] !"
+
+msgid "[-9999]: <access violation test error>"
+msgstr ""
+
+msgid ""
+"This is a deliberate AccessDenied exception thrown to test the handling of "
+"access violations by means of a decorator."
+msgstr ""
+
+msgid "testing access check for non-existant <admin> role"
+msgstr ""
+
+msgid ""
+"This is a deliberate AccessDenied exception. You should not see this message "
+"because the role is checked in a decorator."
+msgstr ""
+
+msgid "pgAdmin III not found."
+msgstr "pgAdmin III nicht gefunden."
+
+msgid "Error reloading hook script."
+msgstr "Fehler beim Neuladen des Hook-Skripts."
+
+msgid "Save current log as..."
+msgstr "Speichere Log in Datei ..."
+
+msgid "log files"
+msgstr "Log-Dateien"
+
+#, python-format
+msgid "Log file backed up as [%s]."
+msgstr "Log in Datei [%s] gespeichert."
+
+msgid "Cannot start new encounter. No active patient."
+msgstr "Kann keinen neuen Kontakt beginnen. Kein Patient aktiv."
+
+msgid "Cannot add health issue. No active patient."
+msgstr "Kann Grunderkrankung nicht eintragen. Kein Patient aktiv."
+
+msgid "Cannot add episode. No active patient."
+msgstr "Kann keine Episode anlegen. Kein Patient aktiv."
+
+msgid "Cannot add medication. No active patient."
+msgstr "Kann Medikation nicht eintragen. Kein Patient aktiv."
+
+msgid "Cannot add allergy. No active patient."
+msgstr "Kann Allergie nicht eintragen. Kein Patient aktiv."
+
+msgid "Cannot manage performed procedures. No active patient."
+msgstr "Kann Maßnahmen nicht verwalten. Kein Patient aktiv."
+
+msgid "Cannot manage hospitalizations. No active patient."
+msgstr "Kann Krankenhausaufenthalte nicht verwalten. Kein Patient aktiv."
+
+msgid "Cannot manage external care. No active patient."
+msgstr "Kann externe Mitbetreuungen nicht verwalten. Kein aktiver Patient."
+
+msgid "Cannot edit occupation. No active patient."
+msgstr "Kann Beruf nicht ändern. Kein Patient aktiv."
+
+msgid "manage vaccinations"
+msgstr "Impfungen verwalten"
+
+msgid "Cannot add vaccinations. No active patient."
+msgstr "Kann Impfung nicht eintragen. Kein Patient aktiv."
+
+msgid "manage family history"
+msgstr "Familienanamnese verwalten"
+
+msgid "Cannot manage family history. No active patient."
+msgstr "Kann Familienanamnese nicht verwalten. Kein Patient aktiv."
+
+msgid "Cannot manage measurements. No active patient."
+msgstr "Kann Meßwerte nicht verwalten. Kein Patient aktiv."
+
+msgid "calculate EDC"
+msgstr "Geburtstermin errechnen"
+
+msgid "manage suppressed hints"
+msgstr "Unterdrückte Hinweise verwalten"
+
+msgid "Cannot manage suppressed hints. No active patient."
+msgstr "Kann Hinweisunterdrückungen nicht verwalten. Kein Patient aktiv."
+
+msgid "Cannot manage smoking status. No active patient."
+msgstr "Kann Rauchstatus nicht verwalten. Kein Patient aktiv."
+
+msgid "Cannot show EMR summary. No active patient."
+msgstr "Kann Karteizusammenfassung nicht zeigen. Kein Patient aktiv."
+
+msgid "EMR Summary"
+msgstr "Zusammenfassung der Kartei"
+
+msgid "Cannot export EMR journal by last modification time. No active patient."
+msgstr "Kann Karteijournal (Bearb.zeit) nicht exportieren. Kein Patient aktiv."
+
+msgid "journal_by_last_mod_time"
+msgstr "Journal_nach_Bearbeitungszeit"
+
+msgid "Save patient's EMR journal as..."
+msgstr "Speichere Karteikarten des Patienten als Journal in ..."
+
+msgid "Error exporting patient EMR as journal by last modification time."
+msgstr ""
+"Fehler beim Exportieren der Karteikarte des Patienten als Journal nach "
+"Bearbeitungszeitpunkt."
+
+msgid "EMR journal export"
+msgstr "Journalexport der Karteikarte"
+
+#, python-format
+msgid ""
+"Successfully exported EMR as journal by last modification time into file "
+"[%s]."
+msgstr ""
+"Karteikarte als Journal nach Bearbeitungszeitpunkt in Datei [%s] exportiert."
+
+msgid "Cannot export EMR journal. No active patient."
+msgstr "Kann Karteijournal nicht exportieren. Kein Patient aktiv."
+
+msgid "emr-journal"
+msgstr "Kartei-Journal"
+
+msgid "Error exporting patient EMR as chronological journal."
+msgstr "Fehler beim Exportieren der Karteikarte des Patienten als Journal."
+
+#, python-format
+msgid "Successfully exported EMR as chronological journal into file [%s]."
+msgstr "Karteikarte als chronologisches Journal in Datei [%s] exportiert."
+
+msgid "EMR journal by last modification time"
+msgstr "Karteijournal nach letzter Bearbeitungszeit"
+
+msgid "EMR journal by encounter"
+msgstr "Karteijournal nach APK"
+
+msgid "Cannot add tag to person. No active patient."
+msgstr "Kann Symbol nicht hinzufügen. Kein Patient aktiv."
+
+#, python-format
+msgid "Edit the comment on tag [%s]"
+msgstr "Den Kommentar zum Symbol [%s] bearbeiten"
+
+msgid "Editing tag comment"
+msgstr "Symbolkommentar bearbeiten"
+
+msgid "Cannot export patient as GDT. No active patient."
+msgstr "Kann Patient nicht als GDT exportieren. Kein Patient aktiv."
+
+msgid "Exported demographics as GDT to clipboard."
+msgstr "Stammdaten wurden im GDT-Format in die Zwischenablage gelegt."
+
+msgid "Cannot export patient as VCARD. No active patient."
+msgstr "Kann Patient nicht als vCard exportieren. Kein Patient aktiv."
+
+msgid "Exported demographics as VCARD to clipboard."
+msgstr "Stammdaten wurden als vCard in die Zwischenablage gelegt."
+
+msgid "Cannot export patient as XML (LinuxMedNews). No active patient."
+msgstr ""
+"Kann Patienten nicht als XML (LinuxMedNews) exportieren. Kein Patient aktiv."
+
+#, python-format
+msgid "Exported demographics to XML file [%s]."
+msgstr "Stammdaten wurden in XML-Datei [%s] geschrieben."
+
+#, python-format
+msgid "Exported demographics to GDT file [%s]."
+msgstr "Stammdaten wurden in GDT-Datei [%s] geschrieben."
+
+#, python-format
+msgid "Exported demographics to VCARD file [%s]."
+msgstr "Stammdaten wurden in vCard-Datei [%s] geschrieben."
+
+msgid "Cannot add staff member. No active patient."
+msgstr "Kann Mitarbeiter nicht anlegen. Kein Patient aktiv."
+
+msgid "Cannot delete patient. No patient active."
+msgstr "Kann Patienten nicht löschen. Kein Patient aktiv."
+
+msgid ""
+"You have to manually close this window to finalize shutting down GNUmed."
+msgstr ""
+"Sie müssen dieses Fenster manuell schließen, um GNUmed vollständig zu "
+"beenden."
+
+msgid "This is so that you can inspect the console output at your leisure."
+msgstr ""
+"Dies gewährleistet, daß Sie die Konsolenausgabe in Ruhe inspizieren können."
+
+msgid "no patient"
+msgstr "kein Patient"
+
+#, python-format
+msgid "Saved screenshot to file [%s]."
+msgstr "BIldschirmphoto in Datei [%s] gespeichert."
+
+msgid "Python version check"
+msgstr "Prüfung der Python-Version"
+
+#, python-format
+msgid ""
+"You are running Python version\n"
+" %s\n"
+"\n"
+"However, GNUmed wants Python 2.7 to\n"
+"facilitate migration to Python 3.\n"
+"\n"
+"Please upgrade your Python interpreter !"
+msgstr ""
+"Sie benutzen Python in der Version\n"
+" %s\n"
+"\n"
+"GNUmed benötigt Version 2.7, um die\n"
+"Umstellung auf Python 3 zu ermöglichen.\n"
+"\n"
+"Bitte installieren Python Version 2.7 !"
+
+msgid "GNUmed client"
+msgstr "GNUmed: Hauptprogramm"
+
+msgid "GNUmed stdout/stderr window"
+msgstr "GNUmed-Fenster für stdout/stderr"
+
+msgid "redirecting STDOUT/STDERR to this log window"
+msgstr "STDOUT/STDERR werden in diesem Fenster angezeigt"
+
+#, python-format
+msgid ""
+"The database account [%s] cannot be used as a\n"
+"staff member login for GNUmed. There was an\n"
+"error retrieving staff details for it.\n"
+"\n"
+"Please ask your administrator for help.\n"
+msgstr ""
+"Das Datenbankkonto [%s] kann nicht zur Anmeldung\n"
+"an diesem GNUmed-System benutzt werden. Beim\n"
+"Einlesen der Nutzerdetails trat ein Fehler auf.\n"
+"\n"
+"Bitte wenden Sie sich an den Systembetreuer.\n"
+
+msgid "Checking access permissions"
+msgstr "Prüfe Zugangsberechtigung"
+
+#, python-format
+msgid "Database <%s> on <%s>"
+msgstr "Datenbank <%s> auf <%s>"
+
+#, python-format
+msgid "Branch \"%s\" of praxis \"%s\"\n"
+msgstr "Zweigstelle \"%s\" der Praxis \"%s\"\n"
+
+msgid "Verifying database"
+msgstr "Verifiziere Datenbank"
+
+msgid "Connect"
+msgstr "Verbinden"
+
+msgid "Yes, connect to this database."
+msgstr "Ja, mit dieser Datenbank verbinden."
+
+msgid "Disconnect"
+msgstr "Abmelden"
+
+msgid "No, do not connect to this database."
+msgstr "Nein, keine Verbindung zu dieser Datenbank herstellen."
+
+#, python-format
+msgid ""
+"Cannot find configuration file in any of:\n"
+"\n"
+" %s\n"
+"You may need to use the comand line option\n"
+"\n"
+"\t--conf-file=<FILE>"
+msgstr ""
+"Kann keine der folgenden Konfigurationsdateien finden:\n"
+"\n"
+" %s\n"
+"Ggf. nutzen Sie den Kommandozeilenparameter\n"
+"\n"
+"\t--conf-file=<FILE>"
+
+msgid "Checking configuration files"
+msgstr "prüfe Konfiguration"
+
+msgid "GNUmed startup"
+msgstr "GNUmed-Start"
+
+#, python-format
+msgid ""
+"The currently selected database language ('%s') does\n"
+"not match the current system language ('%s').\n"
+"\n"
+"Do you want to set the database language to '%s' ?\n"
+msgstr ""
+"Die gegenwärtig in der Datenbank eingestellte Sprache ('%s') stimmt\n"
+"nicht mit der im Computer eingestellten Sprache ('%s') überein.\n"
+"\n"
+"Wollen Sie Ihre Datenbank auch auf die Sprache '%s' setzen ?\n"
+
+msgid "Checking database language settings"
+msgstr "Prüfen der Spracheinstellungen der Datenbank"
+
+#, python-format
+msgid "Set your database language to [%s]."
+msgstr "Datenbank auf Sprache [%s] einstellen."
+
+msgid "Don't set"
+msgstr "Nicht setzen"
+
+msgid "Do not set your database language now."
+msgstr "Datenbanksprache jetzt nicht festlegen."
+
+msgid "Remember to ignore language mismatch"
+msgstr "Ungleiche Sprache in Zukunft ignorieren"
+
+#, python-format
+msgid ""
+"Checking this will make GNUmed remember your decision\n"
+"until the system language is changed.\n"
+"\n"
+"You can also reactivate this inquiry by removing the\n"
+"corresponding \"ignore\" option from the configuration file\n"
+"\n"
+" [%s]"
+msgstr ""
+"Ein Kreuz in diesem Feld weist GNUmed an, sich Ihre Entscheidung\n"
+"bis zur nächsten Änderung der Systemsprache zu merken.\n"
+"\n"
+"Sie können diese Abfrage auch durch Löschen der entsprechenden\n"
+"Option in der Konfigurationsdatei reaktivieren\n"
+"\n"
+" [%s]"
+
+msgid "generic activity"
+msgstr "allgemeine Aktivität"
+
+msgid "Access denied"
+msgstr "Zugriff verweigert"
+
+#, python-format
+msgid ""
+"Your account is not set up to access this part of GNUmed:\n"
+"\n"
+"  [%s]"
+msgstr ""
+"Sie haben keine Zugriff auf diesen Teil von GNUmed:\n"
+"\n"
+"  [%s]"
+
+msgid "Save timeline as SVG image under..."
+msgstr "Zeitstrahl als SVG-Bild speichern unter..."
+
+msgid "timeline image"
+msgstr "Zeitstrahl-Bild"
+
+msgid "timeline data"
+msgstr "Zeitstrahl-Daten"
+
+msgid "Cannot change notebook tabs. No active patient."
+msgstr "Kann Modul nicht aufrufen. Kein Patient aktiv."
+
+msgid "add plugin ..."
+msgstr "lade Modul ..."
 
-msgid "ACS risk assessment calculator not configured."
-msgstr "AMI-Risikorechner nicht eingerichtet."
+msgid "Cannot activate Allergy Manager. No active patient."
+msgstr "Kann Allergiemanager nicht aufrufen. Kein Patient aktiv."
 
-#, python-format
-msgid "Cannot run [%s] !"
-msgstr "Kann [%s] nicht ausführen !"
+msgid "RR ?"
+msgstr ""
 
 #, python-format
-msgid "There was a problem accessing the [arriba] result in [%s] !"
-msgstr "Problem beim Zugriff auf das [arriba]-Ergebnis in [%s] !"
-
-msgid "[-9999]: <access violation test error>"
+msgid "BMI %s"
 msgstr ""
 
-msgid ""
-"This is a deliberate AcessDenied exception thrown to test the handling of "
-"access violations by means of a decorator."
+msgid "BMI ?"
 msgstr ""
 
-msgid "testing access check for non-existant <admin> role"
+msgid "GFR ?"
 msgstr ""
 
-msgid ""
-"This is a deliberate AcessDenied exception. You should not see this message "
-"because the role is checked in a decorator."
+#, python-format
+msgid "GFR %s"
 msgstr ""
 
-msgid "pgAdmin III not found."
-msgstr "pgAdmin III nicht gefunden."
+#, python-format
+msgid "?EDC %s"
+msgstr "?ET %s"
 
-msgid "Error reloading hook script."
-msgstr "Fehler beim Neuladen des Hook-Skripts."
+#, python-format
+msgid "EDC %s"
+msgstr "ET %s"
 
-msgid "Save current log as..."
-msgstr "Speichere Log in Datei ..."
+msgid "<Age>"
+msgstr "<Alter>"
 
-msgid "log files"
-msgstr "Log-Dateien"
+msgid "no patient selected"
+msgstr "kein Patient gewählt"
 
 #, python-format
-msgid "Log file backed up as [%s]."
-msgstr "Log in Datei [%s] gespeichert."
+msgid "Gender: %s (%s) - %s\n"
+msgstr "Geschlecht: %s (%s) - %s\n"
 
-msgid "Cannot start new encounter. No active patient."
-msgstr "Kann keinen neuen Kontakt beginnen. Kein Patient aktiv."
+#, python-format
+msgid "Born: %s\n"
+msgstr "Geboren: %s\n"
 
-msgid "Cannot add health issue. No active patient."
-msgstr "Kann Grunderkrankung nicht eintragen. Kein Patient aktiv."
+#, python-format
+msgid "Died: %s\n"
+msgstr "Gestorben: %s\n"
 
-msgid "Cannot add episode. No active patient."
-msgstr "Kann keine Episode anlegen. Kein Patient aktiv."
+#, python-format
+msgid "At age: %s\n"
+msgstr "Im Alter von: %s\n"
 
-msgid "Cannot add medication. No active patient."
-msgstr "Kann Medikation nicht eintragen. Kein Patient aktiv."
+msgid " (date of birth and age are estimated)\n"
+msgstr " (Geburtsdatum und Alter sind geschätzt)\n"
 
-msgid "Cannot add allergy. No active patient."
-msgstr "Kann Allergie nicht eintragen. Kein Patient aktiv."
+#, python-format
+msgid "%(sex)s  %(dob)s (%(age)s today !)"
+msgstr "%(sex)s  %(dob)s (Heute %(age)s alt !)"
 
-msgid "Cannot manage performed procedures. No active patient."
-msgstr "Kann Maßnahmen nicht verwalten. Kein Patient aktiv."
+msgid ""
+"\n"
+"Today is the patient's birthday !\n"
+"\n"
+msgstr ""
+"\n"
+"Der Patient hat heute Geburtstag !\n"
+"\n"
 
-msgid "Cannot manage hospitalizations. No active patient."
-msgstr "Kann Krankenhausaufenthalte nicht verwalten. Kein Patient aktiv."
+#, python-format
+msgid "Birthday: %s ago\n"
+msgstr "Geburtstag: vor %s\n"
 
-msgid "Cannot manage external care. No active patient."
-msgstr "Kann externe Mitbetreuungen nicht verwalten. Kein aktiver Patient."
+#, python-format
+msgid "Birthday: in %s\n"
+msgstr "Geburtstag: in %s\n"
 
-msgid "Cannot edit occupation. No active patient."
-msgstr "Kann Beruf nicht ändern. Kein Patient aktiv."
+#, python-format
+msgid "Age: %s\n"
+msgstr "Alter: %s\n"
 
-msgid "manage vaccinations"
-msgstr "Impfungen verwalten"
+#, python-format
+msgid "last confirmed %s\n"
+msgstr "zuletzt überprüft %s\n"
 
-msgid "Cannot add vaccinations. No active patient."
-msgstr "Kann Impfung nicht eintragen. Kein Patient aktiv."
+#, python-format
+msgid "Comment (%s): %%s"
+msgstr "Kommentar (%s): %%s"
 
-msgid "Cannot manage family history. No active patient."
-msgstr "Kann Familienanamnese nicht verwalten. Kein Patient aktiv."
+#, python-format
+msgid " - expires %s"
+msgstr " - verfällt %s"
 
-msgid "Cannot manage measurements. No active patient."
-msgstr "Kann Meßwerte nicht verwalten. Kein Patient aktiv."
+#, python-format
+msgid ""
+"Due for %s (since %s%s):\n"
+"%s%s\n"
+"Patient: %s\n"
+"Reminder by: %s"
+msgstr ""
+"Fällig seit %s (%s%s):\n"
+"%s%s\n"
+"Patient: %s\n"
+"Erinnerung von: %s"
 
-msgid "calculate EDC"
-msgstr "Geburtstermin errechnen"
+msgid "Clinical reminder"
+msgstr "Klinische Erinnerung"
 
-msgid "manage suppressed hints"
-msgstr "Unterdrückte Hinweise verwalten"
+msgid "Adding automatic dynamic hint"
+msgstr "Füge dynamischen Hinweis hinzu"
 
-msgid "Cannot manage suppressed hints. No active patient."
-msgstr "Kann Hinweisunterdrückungen nicht verwalten. Kein Patient aktiv."
+msgid "Editing automatic dynamic hint"
+msgstr "Bearbeite dynamischen Hinweis"
 
-msgid "Cannot show EMR summary. No active patient."
-msgstr "Kann Karteizusammenfassung nicht zeigen. Kein Patient aktiv."
+msgid "Deleting automatic dynamic hint"
+msgstr "Lösche dynamischen Hinweis"
 
-msgid "EMR Summary"
-msgstr "Zusammenfassung der Kartei"
+#, python-format
+msgid ""
+"Really delete this dynamic hint ?\n"
+"\n"
+" [%s]"
+msgstr ""
+"Diesen dynamischen Hinweis wirklich löschen ?\n"
+"\n"
+" [%s]"
 
-msgid "Cannot export EMR journal. No active patient."
-msgstr "Kann Karteijournal nicht exportieren. Kein Patient aktiv."
+msgid "deleting a dynamic hint"
+msgstr "Lösche einen dynamischen Hinweis"
 
-msgid "Save patient's EMR journal as..."
-msgstr "Speichere Karteikarten des Patienten als Journal in ..."
+msgid ""
+"\n"
+"Dynamic hints registered with GNUmed.\n"
+msgstr ""
+"\n"
+"In GNUmed registrierte dynamische Hinweise.\n"
 
-msgid "Error exporting patient EMR as chronological journal."
-msgstr "Fehler beim Exportieren der Karteikarte des Patienten als Journal."
+msgid "Showing dynamic hints."
+msgstr "Zeige dynamische Hinweise."
 
-msgid "EMR journal export"
-msgstr "Journalexport der Karteikarte"
+msgid "Hint"
+msgstr "Tip"
+
+msgid "Browse and install automatic dynamic hints data packs"
+msgstr "Durchsuchen/Installieren von Datenpaketen mit dynamischen Hinweisen"
 
 #, python-format
-msgid "Successfully exported EMR as chronological journal into file [%s]."
-msgstr "Karteikarte als chronologisches Journal in Datei [%s] exportiert."
+msgid "By: %s"
+msgstr "Von: %s"
 
-msgid "Cannot add tag to person. No active patient."
-msgstr "Kann Symbol nicht hinzufügen. Kein Patient aktiv."
+msgid "No entry in field <Source>."
+msgstr "Kein Eintrag im Feld <Quelle>."
 
-#, python-format
-msgid "Edit the comment on tag [%s]"
-msgstr "Den Kommentar zum Symbol [%s] bearbeiten"
+msgid "No entry in field <Conditions>."
+msgstr "Kein Eintrag im Feld <Bedingungen>."
 
-msgid "Editing tag comment"
-msgstr "Symbolkommentar bearbeiten"
+msgid "No entry in field <Description>."
+msgstr "Kein Eintrag im Feld <Beschreibung>."
 
-msgid "Cannot export patient as GDT. No active patient."
-msgstr "Kann Patient nicht als GDT exportieren. Kein Patient aktiv."
+msgid "No entry in field <Title>."
+msgstr "Kein Eintrag im Feld <Titel>."
 
-msgid "Exported demographics as GDT to clipboard."
-msgstr "Stammdaten wurden im GDT-Format in die Zwischenablage gelegt."
+msgid "creating a new dynamic hint"
+msgstr "neuen dynamischen Hinweis anlegen"
 
-msgid "Cannot export patient as VCARD. No active patient."
-msgstr "Kann Patient nicht als vCard exportieren. Kein Patient aktiv."
+msgid "updating an existing dynamic hint"
+msgstr "existierenden dynamischen Hinweis bearbeiten"
 
-msgid "Exported demographics as VCARD to clipboard."
-msgstr "Stammdaten wurden als vCard in die Zwischenablage gelegt."
+msgid "Deleting suppressed dynamic hint"
+msgstr "Löschen der Unterdrückung eines dynamischen Hinweises"
 
-msgid "Cannot export patient as XML (LinuxMedNews). No active patient."
+#, python-format
+msgid ""
+"Really delete the suppression of this dynamic hint ?\n"
+"\n"
+" [%s]"
 msgstr ""
-"Kann Patienten nicht als XML (LinuxMedNews) exportieren. Kein Patient aktiv."
+"Die Unterdrückung dieses dynamischen Hinweises wirklich löschen ?\n"
+"\n"
+" [%s]"
 
-#, python-format
-msgid "Exported demographics to XML file [%s]."
-msgstr "Stammdaten wurden in XML-Datei [%s] geschrieben."
+msgid ""
+"\n"
+"Dynamic hints suppressed in this patient.\n"
+msgstr ""
+"\n"
+"Unterdrückte dynamische Hinweise bei diesem Patienten.\n"
 
-#, python-format
-msgid "Exported demographics to GDT file [%s]."
-msgstr "Stammdaten wurden in GDT-Datei [%s] geschrieben."
+msgid "Showing suppressed dynamic hints."
+msgstr "Unterdrückte dynamische Hinweise zeigen."
 
-#, python-format
-msgid "Exported demographics to VCARD file [%s]."
-msgstr "Stammdaten wurden in vCard-Datei [%s] geschrieben."
+msgid "Rationale"
+msgstr "Begründung"
 
-msgid "Cannot add staff member. No active patient."
-msgstr "Kann Mitarbeiter nicht anlegen. Kein Patient aktiv."
+msgid "Manage hints"
+msgstr "Hinweise verwalten"
 
-msgid "Cannot delete patient. No patient active."
-msgstr "Kann Patienten nicht löschen. Kein Patient aktiv."
+msgid "Manage automatic dynamic hints"
+msgstr "Automatische dynamische Hinweise verwalten"
 
-msgid ""
-"You have to manually close this window to finalize shutting down GNUmed."
-msgstr ""
-"Sie müssen dieses Fenster manuell schließen, um GNUmed vollständig zu "
-"beenden."
+msgid "Cannot delete family history item."
+msgstr "Kann Familienanamnese nicht löschen."
+
+msgid "Family history of this patient."
+msgstr "Familienanamnese dieses Patienten."
+
+msgid "Showing family history."
+msgstr "Zeige Familienanamnese."
+
+msgid "Fatal"
+msgstr "Tödlich"
 
-msgid "This is so that you can inspect the console output at your leisure."
-msgstr ""
-"Dies gewährleistet, daß Sie die Konsolenausgabe in Ruhe inspizieren können."
+msgid "Noted"
+msgstr "bemerkt"
 
-msgid "no patient"
-msgstr "kein Patient"
+msgid "Died"
+msgstr "Starb"
 
-#, python-format
-msgid "Saved screenshot to file [%s]."
-msgstr "BIldschirmphoto in Datei [%s] gespeichert."
+msgid "Adding family history"
+msgstr "Familienanamnese hinzufügen"
 
-msgid "Python version check"
-msgstr ""
+msgid "Editing family history"
+msgstr "Familienanamnese bearbeiten"
 
-#, python-format
 msgid ""
-"You are running Python version\n"
-" %s\n"
 "\n"
-"However, GNUmed wants Python 2.7 to\n"
-"facilitate migration to Python 3.\n"
+"Please select the default drug data source from the list below.\n"
 "\n"
-"Please upgrade your Python interpreter !"
+"Note that to actually use it you need to have the database installed, too."
 msgstr ""
-"Sie benutzen Python in Version\n"
-" %s\n"
 "\n"
-"GNUmed bevorzugt jedoch Python 2.7 um\n"
-"die Umstellung auf Python 3 zu bahnen.\n"
+"Wählen Sie die gewünschte Medikamentenquelle aus der Liste.\n"
 "\n"
-"Bitte erneuern Sie Ihre Python !"
+"Sie müssen zur Benutzung diese Quelle natürlich auch installiert haben."
 
-msgid "GNUmed client"
-msgstr "GNUmed: Hauptprogramm"
+msgid "Configuring default drug data source"
+msgstr "Einstellen der Medikamentenquelle"
 
-msgid "GNUmed stdout/stderr window"
-msgstr "GNUmed-Fenster für stdout/stderr"
+msgid "No default drug database configured."
+msgstr "Es ist keine Medikamentendatenbank voreingestellt."
 
-msgid "redirecting STDOUT/STDERR to this log window"
-msgstr "STDOUT/STDERR werden in diesem Fenster angezeigt"
+msgid "There is no default drug database configured."
+msgstr "Es ist keine Medikamentendatenbank eingestellt."
+
+msgid "Jumping to drug database"
+msgstr "Medikamentendatenbank aufrufen"
+
+msgid "Cannot import drugs from IFAP into chart without chart."
+msgstr ""
+
+#, python-format
+msgid "Cannot call IFAP via [%s]."
+msgstr "Kann IFAP nicht mittels [%s] starten."
 
 #, python-format
+msgid "Cannot create IFAP <-> GNUmed transfer file [%s]."
+msgstr "Kann Transferdatei [%s] (IFAP <-> GNUmed) nicht anlegen."
+
+msgid "Current medication"
+msgstr "Derzeitige Medikation"
+
 msgid ""
-"The database account [%s] cannot be used as a\n"
-"staff member login for GNUmed. There was an\n"
-"error retrieving staff details for it.\n"
 "\n"
-"Please ask your administrator for help.\n"
+"The ATC codes as known to GNUmed.\n"
 msgstr ""
-"Das Datenbankkonto [%s] kann nicht zur Anmeldung\n"
-"an diesem GNUmed-System benutzt werden. Beim\n"
-"Einlesen der Nutzerdetails trat ein Fehler auf.\n"
 "\n"
-"Bitte wenden Sie sich an den Systembetreuer.\n"
+"Die GNUmed bekannten ATC-Codes.\n"
 
-msgid "Checking access permissions"
-msgstr "Prüfe Zugangsberechtigung"
+msgid "Showing ATC codes."
+msgstr "Zeige ATC-Codes."
 
-#, python-format
-msgid "Database <%s> on <%s>"
-msgstr "Datenbank <%s> auf <%s>"
+msgid "Choose an ATC import config file"
+msgstr "Wählen Sie eine Konfigurationsdatei für den ATC-Import"
 
-#, python-format
-msgid "Branch \"%s\" of praxis \"%s\"\n"
-msgstr "Zweigstelle \"%s\" der Praxis \"%s\"\n"
+msgid "config files"
+msgstr "Konfigurationsdateien"
 
-msgid "Verifying database"
-msgstr "Verifiziere Datenbank"
+msgid "importing ATC reference data"
+msgstr "Import von ATC-Referenzdaten"
 
-msgid "Connect"
-msgstr "Verbinden"
+msgid "Successfully imported ATC reference data."
+msgstr "ATC-Referenzdaten erfolgreich importiert."
 
-msgid "Yes, connect to this database."
-msgstr "Ja, mit dieser Datenbank verbinden."
+msgid "Importing ATC reference data failed."
+msgstr "Import von ATC-Referenzdaten schlug fehl."
 
-msgid "Disconnect"
-msgstr "Abmelden"
+msgid "Select an ATC (Anatomical-Therapeutic-Chemical) code."
+msgstr "Wählen Sie einen ATC (Anatomisch-Therapeutisch-Chemischen) Code."
 
-msgid "No, do not connect to this database."
-msgstr "Nein, keine Verbindung zu dieser Datenbank herstellen."
+msgid "Cannot edit this substance. It is in use."
+msgstr "Kann Substanz nicht verändern. Es ist in Benutzung."
+
+msgid "Adding new consumable substance"
+msgstr "Neue Substanz hinzufügen"
+
+msgid "Editing consumable substance"
+msgstr "Substanz bearbeiten"
+
+msgid "Cannot delete this substance. It is in use."
+msgstr "Kann Substanz nicht löschen, da sie in Benutzung ist."
 
-#, python-format
 msgid ""
-"Cannot find configuration file in any of:\n"
-"\n"
-" %s\n"
-"You may need to use the comand line option\n"
 "\n"
-"\t--conf-file=<FILE>"
+"These are the consumable substances registered with GNUmed.\n"
 msgstr ""
-"Kann keine der folgenden Konfigurationsdateien finden:\n"
-"\n"
-" %s\n"
-"Ggf. nutzen Sie den Kommandozeilenparameter\n"
 "\n"
-"\t--conf-file=<FILE>"
+"Diese Substanzen sind derzeit in GNUmed hinterlegt.\n"
 
-msgid "Checking configuration files"
-msgstr "prüfe Konfiguration"
+msgid "Import"
+msgstr "Import"
 
-msgid "GNUmed startup"
-msgstr "GNUmed-Start"
+msgid "Import consumable substances from a drug database."
+msgstr "Substanzen aus externer Datenbank holen."
+
+msgid "Cannot save consumable substance. Missing essential input."
+msgstr "Kann Substanz nicht speichern. Es fehlen Angaben."
 
 #, python-format
+msgid "Cannot save consumable substance. %s"
+msgstr "Kann Substanz nicht speichern. %s"
+
+msgid "The substance with optional strength."
+msgstr "Der Wirkstoff, optional mit Dosisangabe."
+
+msgid "Cannot remove this component from the drug. It is in use."
+msgstr ""
+"Kann Medikamentenbestandteil nicht entfernen. Das Medikament ist in "
+"Benutzung."
+
 msgid ""
-"The currently selected database language ('%s') does\n"
-"not match the current system language ('%s').\n"
 "\n"
-"Do you want to set the database language to '%s' ?\n"
+"These are the components in the drug brands known to GNUmed.\n"
 msgstr ""
-"Die gegenwärtig in der Datenbank eingestellte Sprache ('%s') stimmt\n"
-"nicht mit der im Computer eingestellten Sprache ('%s') überein.\n"
 "\n"
-"Wollen Sie Ihre Datenbank auch auf die Sprache '%s' setzen ?\n"
+"Diese Medikamentenbestandteile sind derzeit in GNUmed hinterlegt.\n"
 
-msgid "Checking database language settings"
-msgstr "Prüfen der Spracheinstellungen der Datenbank"
+msgid "Showing drug brand components."
+msgstr "Zeige Medikamentenbestandteile (Wirkstoffe)."
 
-msgid "Set"
-msgstr "Setzen"
+msgid "Adding new drug component"
+msgstr "Medikamentenbestandteil hinzufügen"
 
-#, python-format
-msgid "Set your database language to [%s]."
-msgstr "Datenbank auf Sprache [%s] einstellen."
+msgid "Editing drug component"
+msgstr "Medikamentenbestandteil bearbeiten"
 
-msgid "Don't set"
-msgstr "Nicht setzen"
+msgid "Cannot edit drug component. It is in use."
+msgstr ""
+"Kann Medikamentenbestandteil nicht verändern. Das Medikament ist in "
+"Benutzung."
 
-msgid "Do not set your database language now."
-msgstr "Datenbanksprache jetzt nicht festlegen."
+msgid "Cannot save drug component. Invalid or missing essential input."
+msgstr ""
+"Kann Medikamentenbestandteil nicht speichern. Ungültige oder fehlende "
+"Angaben."
 
-msgid "Remember to ignore language mismatch"
-msgstr "Ungleiche Sprache in Zukunft ignorieren"
+msgid "A drug component with optional strength."
+msgstr "Ein Arzneibestandteil, optional mit Dosis."
+
+msgid "Editing drug"
+msgstr "Medikament bearbeiten"
 
 #, python-format
 msgid ""
-"Checking this will make GNUmed remember your decision\n"
-"until the system language is changed.\n"
+"Cannot edit the branded drug product\n"
 "\n"
-"You can also reactivate this inquiry by removing the\n"
-"corresponding \"ignore\" option from the configuration file\n"
+" \"%s\" (%s)\n"
 "\n"
-" [%s]"
+"because it is currently taken by patients.\n"
 msgstr ""
-"Ein Kreuz in diesem Feld weist GNUmed an, sich Ihre Entscheidung\n"
-"bis zur nächsten Änderung der Systemsprache zu merken.\n"
+"Kann das Arzneiprodukt\n"
 "\n"
-"Sie können diese Abfrage auch durch Löschen der entsprechenden\n"
-"Option in der Konfigurationsdatei reaktivieren\n"
+" \"%s\" (%s)\n"
 "\n"
-" [%s]"
+"nicht bearbeiten, da es in Gebrauch ist.\n"
 
-msgid "generic activity"
-msgstr "allgemeine Aktivität"
+msgid "Adding new drug brand"
+msgstr "Füge neues Medikament hinzu"
 
-msgid "Access denied"
-msgstr "Zugriff verweigert"
+msgid "Editing drug brand"
+msgstr "Bearbeite Medikament"
+
+msgid "Manage consumable substances"
+msgstr "Wirkstoffe verwalten"
+
+msgid "not in use"
+msgstr "nicht in Gebrauch"
+
+#, python-format
+msgid "ATC: %s\n"
+msgstr "ATC: %s\n"
+
+msgid "Editing medication"
+msgstr "Bearbeite Medikation"
 
 #, python-format
 msgid ""
-"Your account is not set up to access this part of GNUmed:\n"
+"Cannot edit the medication\n"
 "\n"
-"  [%s]"
+" \"%s\" (%s)\n"
+"\n"
+"because it is a vaccine. Please edit it\n"
+"from the vaccine management section !\n"
 msgstr ""
-"Sie haben keine Zugriff auf diesen Teil von GNUmed:\n"
+"Kann den Impfstoff\n"
 "\n"
-"  [%s]"
-
-msgid "Save timeline as SVG image under..."
-msgstr "Zeitstrahl als SVG-Bild speichern unter..."
-
-msgid "timeline image"
-msgstr "Zeitstrahl-Bild"
-
-msgid "timeline data"
-msgstr "Zeitstrahl-Daten"
-
-msgid "Cannot change notebook tabs. No active patient."
-msgstr "Kann Modul nicht aufrufen. Kein Patient aktiv."
-
-msgid "add plugin ..."
-msgstr "lade Modul ..."
-
-msgid "Cannot activate Allergy Manager. No active patient."
-msgstr "Kann Allergiemanager nicht aufrufen. Kein Patient aktiv."
-
-msgid "<Age>"
-msgstr "<Alter>"
+" \"%s\" (%s)\n"
+"\n"
+"nicht verändern. Bearbeiten Sie\n"
+"Impfstoffe bitte in der Impfverwaltung !\n"
 
-msgid "no patient selected"
-msgstr "kein Patient gewählt"
+msgid "Deleting medication"
+msgstr "Medikament löschen"
 
 #, python-format
-msgid "Gender: %s (%s) - %s\n"
-msgstr "Geschlecht: %s (%s) - %s\n"
+msgid ""
+"Cannot delete the medication\n"
+"\n"
+" \"%s\" (%s)\n"
+"\n"
+"because it is a vaccine. Please delete it\n"
+"from the vaccine management section !\n"
+msgstr ""
+"Kann dieses Medikament nicht löschen\n"
+"\n"
+" \"%s\" (%s)\n"
+"\n"
+"weil es sich um einen Impfstoff handelt. Löschen\n"
+"Sie Impfstoffe bitte in der Impfverwaltung !\n"
 
-#, python-format
-msgid "Born: %s\n"
-msgstr "Geboren: %s\n"
+msgid ""
+"\n"
+"These are the drug brands known to GNUmed.\n"
+msgstr ""
+"\n"
+"Die derzeit in GNUmed hinterlegten, handelsüblichen Medikamente.\n"
 
-#, python-format
-msgid "Died: %s\n"
-msgstr "Gestorben: %s\n"
+msgid "Showing branded drugs."
+msgstr "Zeige Medikamente."
 
-#, python-format
-msgid "At age: %s\n"
-msgstr "Im Alter von: %s\n"
+msgid "Import substances and brands from a drug database."
+msgstr "Substanzen und Medikamente aus einer Datenbank importieren."
 
-msgid " (date of birth and age are estimated)\n"
-msgstr " (Geburtsdatum und Alter sind geschätzt)\n"
+msgid "Managing components of a drug"
+msgstr "Die Bestandteile eines Medikaments verwalten"
 
 #, python-format
-msgid "%(sex)s  %(dob)s (%(age)s today !)"
-msgstr "%(sex)s  %(dob)s (Heute %(age)s alt !)"
-
 msgid ""
+"Cannot manage the components of the branded drug product\n"
 "\n"
-"Today is the patient's birthday !\n"
+" \"%s\" (%s)\n"
 "\n"
+"because it is currently taken by patients.\n"
 msgstr ""
+"Kann die Bestandteile des Arzneiprodukts\n"
 "\n"
-"Der Patient hat heute Geburtstag !\n"
+" \"%s\" (%s)\n"
 "\n"
+"nicht verwalten, da es derzeit von Patienten eingenommen wird.\n"
 
-#, python-format
-msgid "Birthday: %s ago\n"
-msgstr "Geburtstag: vor %s\n"
+msgid "Pick the substances which are components of this drug."
+msgstr "Wählen Sie die Bestandteile des Arzneiprodukts."
 
-#, python-format
-msgid "Birthday: in %s\n"
-msgstr "Geburtstag: in %s\n"
+msgid "Components of drug"
+msgstr "Arzneibestandteile"
 
 #, python-format
-msgid "Age: %s\n"
-msgstr "Alter: %s\n"
+msgid ""
+"Adjust the components of \"%s\"\n"
+"\n"
+"The drug must contain at least one component. Any given\n"
+"substance can only be included once per drug."
+msgstr ""
+"Anpassen der Bestandteile von \"%s\"\n"
+"\n"
+"Das Medikament muß mindestens einen Bestandteil enthalten.\n"
+"Jeder Bestandteil kann nur einmal enthalten sein."
 
-#, python-format
-msgid "last confirmed %s\n"
-msgstr "zuletzt überprüft %s\n"
+msgid "Managing components of a drug ..."
+msgstr "Die Bestandteile eines Medikaments verwalten..."
 
-#, python-format
-msgid "Comment (%s): %%s"
-msgstr "Kommentar (%s): %%s"
+msgid "Cannot edit drug brand. It is in use."
+msgstr "Kann Medikament nicht verändern. Es ist in Benutzung."
 
-#, python-format
-msgid " - expires %s"
-msgstr " - verfällt %s"
+msgid "Checking brand data"
+msgstr "Prüfe Produktdaten"
 
 #, python-format
 msgid ""
-"Due for %s (since %s%s):\n"
-"%s%s\n"
-"Patient: %s\n"
-"Reminder by: %s"
+"The brand information you entered:\n"
+"\n"
+" [%s %s]\n"
+"\n"
+"already exists as a drug product."
 msgstr ""
-"Fällig seit %s (%s%s):\n"
-"%s%s\n"
-"Patient: %s\n"
-"Erinnerung von: %s"
-
-msgid "Clinical reminder"
-msgstr "Klinische Erinnerung"
-
-msgid "Adding automatic dynamic hint"
-msgstr "Füge dynamischen Hinweis hinzu"
-
-msgid "Editing automatic dynamic hint"
-msgstr "Bearbeite dynamischen Hinweis"
-
-msgid "Deleting automatic dynamic hint"
-msgstr "Lösche dynamischen Hinweis"
+"Ihre Eingabendaten:\n"
+"\n"
+" [%s %s]\n"
+"existieren bereits als Medikament."
 
-#, python-format
 msgid ""
-"Really delete this dynamic hint ?\n"
+"You have not selected any substances\n"
+"as drug components.\n"
 "\n"
-" [%s]"
+"Without components you will not be able to\n"
+"use this drug for documenting patient care.\n"
+"\n"
+"Are you sure you want to save\n"
+"it without components ?"
 msgstr ""
-"Diesen dynamischen Hinweis wirklich löschen ?\n"
+"Sie haben dem Medikament keine Wirkstoffe\n"
+"als Bestandteile zugeordnet.\n"
 "\n"
-" [%s]"
+"Ohne diese Zuordnung können Sie das\n"
+"Medikament keinem Patienten zuordnen.\n"
+"\n"
+"Wollen Sie das Medikament trotzdem\n"
+"ohne Bestandteile speichern ?"
 
-msgid "deleting a dynamic hint"
-msgstr "Lösche einen dynamischen Hinweis"
+msgid "Cannot save branded drug. Invalid or missing essential input."
+msgstr "Kann Medikament nicht speichert. Ungültige oder fehlende Angaben."
 
 msgid ""
+"The brand name of the drug.\n"
 "\n"
-"Dynamic hints registered with GNUmed.\n"
+"Note: a brand name will need to be linked to\n"
+"one or more components before it can be used,\n"
+"except in the case of fake (generic) vaccines."
 msgstr ""
+"Der Produktname des Medikaments.\n"
 "\n"
-"In GNUmed registrierte dynamische Hinweise.\n"
+"Achtung: Dem Produkt müssen eine oder mehrere\n"
+"Substanzen zugeordnet werden, ehe es verwendet\n"
+"werden kann (außer bei generischen Impfstoffen)."
 
-msgid "Showing dynamic hints."
-msgstr "Zeige dynamische Hinweise."
+msgid "No EMR data loaded."
+msgstr "Keine Karteieinträge geladen."
 
-msgid "Hint"
-msgstr "Tip"
+msgid "EMR text dump"
+msgstr "Textauszug der Kartei"
 
-msgid "Browse and install automatic dynamic hints data packs"
-msgstr "Durchsuchen/Installieren von Datenpaketen mit dynamischen Hinweisen"
+msgid "Currently there is no active patient. Cannot retrieve EMR text."
+msgstr "Derzeit kein Patient aktiviert. Kann keine Karteieinträge laden."
 
-#, python-format
-msgid "By: %s"
-msgstr "Von: %s"
+msgid "SOAP Editor Actions:"
+msgstr "Karteieditor-Aktionen:"
 
-msgid "No entry in field <Source>."
-msgstr "Kein Eintrag im Feld <Quelle>."
+msgid "&Sort lines"
+msgstr "Zeilen &Sortieren"
 
-msgid "No entry in field <Conditions>."
-msgstr "Kein Eintrag im Feld <Bedingungen>."
+msgid "Sort lines by SOAP category"
+msgstr "Zeilen nach ABDT-Kategorie sortieren"
 
-msgid "No entry in field <Description>."
-msgstr "Kein Eintrag im Feld <Beschreibung>."
+msgid "e&Xpand keyword"
+msgstr "Schlüsselwort e&xpandieren"
 
-msgid "No entry in field <Title>."
-msgstr "Kein Eintrag im Feld <Titel>."
+msgid "Expand keyword / macro"
+msgstr "Schlüsselwort/Makro expandieren"
 
-msgid "creating a new dynamic hint"
-msgstr "neuen dynamischen Hinweis anlegen"
+msgid "as &Subjective"
+msgstr "als &Anamnese"
 
-msgid "updating an existing dynamic hint"
-msgstr "existierenden dynamischen Hinweis bearbeiten"
+msgid "Set line to category \"Subjective\""
+msgstr "Zeile als \"Anamnese\" markieren"
 
-msgid "Deleting suppressed dynamic hint"
-msgstr "Löschen der Unterdrückung eines dynamischen Hinweises"
+msgid "as &Objective"
+msgstr "als &Befund"
 
-#, python-format
-msgid ""
-"Really delete the suppression of this dynamic hint ?\n"
-"\n"
-" [%s]"
-msgstr ""
-"Die Unterdrückung dieses dynamischen Hinweises wirklich löschen ?\n"
-"\n"
-" [%s]"
+msgid "Set line to category \"Objective\""
+msgstr "Zeile als \"Befund\" markieren"
 
-msgid ""
-"\n"
-"Dynamic hints suppressed in this patient.\n"
-msgstr ""
-"\n"
-"Unterdrückte dynamische Hinweise bei diesem Patienten.\n"
+msgid "as &Assessment"
+msgstr "als &Beurteilung"
 
-msgid "Showing suppressed dynamic hints."
-msgstr "Unterdrückte dynamische Hinweise zeigen."
+msgid "Set line to category \"Assessment\""
+msgstr "Zeile als \"Diagnose\" (Beurteilung) markieren"
 
-msgid "Rationale"
-msgstr "Begründung"
+msgid "as &Plan"
+msgstr "als &Therapie"
 
-msgid "Manage hints"
-msgstr "Hinweise verwalten"
+msgid "Set line to category \"Plan\""
+msgstr "Zeile als \"Therapie\" markieren"
 
-msgid "Manage automatic dynamic hints"
-msgstr "Automatische dynamische Hinweise verwalten"
+msgid "as &Unspecified"
+msgstr "als &Unbestimmt"
 
-msgid "Cannot delete family history item."
-msgstr "Kann Familienanamnese nicht löschen."
+msgid "Set line to category \"unspecified\""
+msgstr "Zeile als \"Unspezifisch\" markieren"
 
-msgid "Family history of this patient."
-msgstr "Familienanamnese dieses Patienten."
+msgid "as ad&Ministrative"
+msgstr "als Ad&Ministratives"
 
-msgid "Showing family history."
-msgstr "Zeige Familienanamnese."
+msgid "Set line to category \"administrative\""
+msgstr "Zeile als \"Administrativ\" markieren"
 
-msgid "Fatal"
-msgstr "Tödlich"
+msgid "→ &Clipboard"
+msgstr "→ &Zwischenablage"
 
-msgid "Noted"
-msgstr "bemerkt"
+msgid "Copy line to clipboard"
+msgstr "Zeile in die Zwischenablage legen"
 
-msgid "Died"
-msgstr "Starb"
+msgid "→ +Clipboard+"
+msgstr "→ +Zwischenablage+"
 
-msgid "Adding family history"
-msgstr "Familienanamnese hinzufügen"
+msgid "Add line to clipboard"
+msgstr "Zeile der Zwischenablage anfügen"
 
-msgid "Editing family history"
-msgstr "Familienanamnese bearbeiten"
+msgid "Copy content to clipboard"
+msgstr "Text in die Zwischenablage legen"
 
-msgid "No EMR data loaded."
-msgstr "Keine Karteieinträge geladen."
+msgid "Add content to clipboard"
+msgstr "Text der Zwischenablage anfügen"
 
-msgid "EMR text dump"
-msgstr "Textauszug der Kartei"
+msgid "Copy selection to clipboard"
+msgstr "Auswahl in die Zwischenablage legen"
 
-msgid "Currently there is no active patient. Cannot retrieve EMR text."
-msgstr "Derzeit kein Patient aktiviert. Kann keine Karteieinträge laden."
+msgid "Add selection to clipboard"
+msgstr "Auswahl der Zwischenablage anfügen"
+
+msgid "&Line ..."
+msgstr "&Zeile ..."
+
+msgid "&Text ..."
+msgstr "&Text ..."
+
+msgid "&Region ..."
+msgstr "&Auswahl"
 
 msgid "Show HL7 file:"
 msgstr "Hl7-Datei anzeigen:"
@@ -17809,7 +18633,7 @@ msgstr "Hl7-Daten aus XML-Datei extrahieren"
 
 #, python-format
 msgid "Unwrapped HL7 into [%s] from [%s]."
-msgstr "HL7 nach [%s] ausgepackt (von [%s])."
+msgstr "HL7 nach [%s] entpackt aus [%s]."
 
 msgid "Select HL7 file for staging:"
 msgstr "HL7-Datei zum vorbereiten wählen:"
@@ -17842,7 +18666,7 @@ msgstr ""
 
 #, python-format
 msgid "Staged HL7 from [%s]."
-msgstr "HL7-Daten aus [%s] vorbereitet."
+msgstr "HL7-Daten aus Datei [%s] vorbereitet."
 
 msgid "Importing HL7 data"
 msgstr "Importieren von HL7-Daten"
@@ -17900,9 +18724,6 @@ msgstr "Zeige unzugeordnete Eingangsdaten"
 msgid "Identification"
 msgstr "Identifikation"
 
-msgid "Show"
-msgstr "Zeige"
-
 msgid "Show formatted HL7"
 msgstr "Formatiertes HL7 zeigen"
 
@@ -17948,6 +18769,19 @@ msgstr "Derzeitige Auswahl bewerten und abzeichnen"
 msgid "Plot current selection"
 msgstr "Derzeitige Auswahl grafisch darstellen"
 
+msgid ""
+"Select the measurements panel to show in the top pane for continuous "
+"monitoring."
+msgstr ""
+"Wählen Sie ein Meßwerteprofil für das kontinuierliche Monitoring in der "
+"Kopfleiste."
+
+msgid "Lab panel"
+msgstr "Meßwerteprofil"
+
+msgid "Configuring continuous monitoring measurements panel"
+msgstr "Konfiguration des Meßwerteprofils für kontinuierliches Monitoring"
+
 msgid "No default Gnuplot script template selected."
 msgstr "Keine Standardvorlagen für Gnuplot gewählt."
 
@@ -17965,18 +18799,33 @@ msgstr "Stelle Meßwerte dar"
 msgid "Problem loading Gnuplot script template."
 msgstr "Problem beim Laden der Vorlage für Gnuplot."
 
-#, python-format
-msgid "Cannot load default Gnuplot script template [%s - %s]"
-msgstr "Kann Standardvorlage [%s - %s] für Gnuplot nicht laden"
+#, python-format
+msgid "Cannot load default Gnuplot script template [%s - %s]"
+msgstr "Kann Standardvorlage [%s - %s] für Gnuplot nicht laden"
+
+msgid "Cannot plot without a plot script."
+msgstr "Kann Meßwerte nicht ohne Plotscript darstellen."
+
+msgid "Result"
+msgstr "Ergebnis"
+
+msgid "Perform on selected results:"
+msgstr "Auf markierte Ergebnisse anwenden:"
+
+msgid "Review and &sign"
+msgstr "&Bewerten und abzeichnen"
+
+msgid "Export to &file"
+msgstr "In &Datei exportieren"
 
-msgid "Cannot plot without a plot script."
-msgstr "Kann Meßwerte nicht ohne Plotscript darstellen."
+msgid "Export to &clipboard"
+msgstr "In die &Zwischenablage kopieren"
 
-msgid "Time"
-msgstr "Zeit"
+msgid "Panels"
+msgstr "Profile"
 
-msgid "Result"
-msgstr "Ergebnis"
+msgid "List"
+msgstr "Liste"
 
 msgid ""
 "lab_grid_date_format::%Y\n"
@@ -18069,18 +18918,6 @@ msgstr "Alle: als &Tabelle"
 msgid "All: by &Day"
 msgstr "Alle: &tageweise"
 
-msgid "Perform on selected results:"
-msgstr "Auf markierte Ergebnisse anwenden:"
-
-msgid "Review and &sign"
-msgstr "&Bewerten und abzeichnen"
-
-msgid "Export to &file"
-msgstr "In &Datei exportieren"
-
-msgid "Export to &clipboard"
-msgstr "In die &Zwischenablage kopieren"
-
 #, python-format
 msgid "%s results selected. Too many to list individually."
 msgstr "%s Ergebnisse markiert. Zu viele, um alle einzeln anzuzeigen."
@@ -18274,6 +19111,9 @@ msgstr " Auflistung nicht zugeordneter Episoden:\n"
 msgid "EMR Actions:"
 msgstr "Kartei-Aktionen:"
 
+msgid "Print EMR"
+msgstr "Kartei drucken"
+
 msgid "Create health issue"
 msgstr "Grunderkrankung anlegen"
 
@@ -18432,16 +19272,50 @@ msgstr "&Stöbern in %s"
 msgid "&New notes %s"
 msgstr "Neue &Einträge %s"
 
+msgid "Find text in EMR Journal"
+msgstr "Finde Text im Karteijournal"
+
+msgid "Modified"
+msgstr "Geändert"
+
+msgid "Clinical time"
+msgstr "Medizinischer Zeitpunkt"
+
+msgid "Who / When"
+msgstr "Wer / Wann"
+
+#, python-format
 msgid ""
-"An error occurred while retrieving the EMR\n"
-"in journal form for the active patient.\n"
+"Chart entry: %s       [#%s in %s]\n"
+" Modified: %s by %s (%s rev %s)\n"
 "\n"
-"Please check the log file for details."
+"Health issue: %s%s\n"
+"Episode: %s%s\n"
+"Encounter: %s%s"
 msgstr ""
-"Beim Laden der Journalkartei für den\n"
-"aktiven Patienten ist ein Fehler aufgetreten.\n"
+"Karteieintrag: %s       [#%s in %s]\n"
+" Modifiziert: %s von %s (%s Rev %s)\n"
 "\n"
-"Genaue Fehlerbeschreibung in der Logdatei."
+"Grunderkrankung: %s%s\n"
+"Episode: %s%s\n"
+"APK: %s%s"
+
+#, python-format
+msgid ""
+"%s\n"
+"\n"
+"                        rev %s (%s) by %s in <%s>"
+msgstr ""
+"%s\n"
+"\n"
+"                        Rev %s (%s) von %s in <%s>"
+
+#, python-format
+msgid ""
+"%s\n"
+"%s\n"
+"%s"
+msgstr ""
 
 msgid "Editing tag"
 msgstr "Symbol bearbeiten"
@@ -18585,18 +19459,15 @@ msgstr ""
 "\n"
 "%s\n"
 
-msgid "This patient DID receive care."
-msgstr "Diese Patient wurde hier behandelt."
+msgid "This patient DID receive care here."
+msgstr "Diese Patient WURDE hier bereits behandelt."
 
-msgid "This person did NOT receive care."
+msgid "This person did NOT receive care here."
 msgstr "Diese Person wurde hier noch NICHT behandelt."
 
 msgid "Disabling person"
 msgstr "Patient deaktivieren"
 
-msgid "Disabling patient"
-msgstr "Patient deaktivieren"
-
 msgid "Type or select a last name (family name/surname)."
 msgstr "Tippen oder wählen Sie einen Familien-/Nachnamen."
 
@@ -18958,6 +19829,9 @@ msgstr ""
 "\n"
 "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
 
+msgid "Connecting to backend"
+msgstr "Verbinde mit Datenbank"
+
 #, python-format
 msgid ""
 "Unable to connect to database:\n"
@@ -19239,9 +20113,6 @@ msgstr "Organisation"
 msgid "Office"
 msgstr "Praxis"
 
-msgid "State"
-msgstr "Bundesland"
-
 msgid "Zip"
 msgstr "PLZ"
 
@@ -19297,8 +20168,8 @@ msgstr "lade Modul <%s>"
 msgid "EMR Timeline"
 msgstr "Kartei - Zeitstrahl"
 
-msgid "Show &Timeline"
-msgstr "Zeige &Zeitstrahl"
+msgid "EMR &Timeline"
+msgstr "Kartei: &Zeitstrahl"
 
 msgid "Overview"
 msgstr "Übersicht"
@@ -19324,11 +20195,11 @@ msgstr "EinfachKartei"
 msgid "&SimpleNotes"
 msgstr "&EinfachKartei"
 
-msgid "EMR tree"
-msgstr "Kartei - Baum"
+msgid "EMR Tree"
+msgstr "Karteibaum"
 
-msgid "EMR &Tree (topical)"
-msgstr "EMR-&Baum (thematisch)"
+msgid "EMR &Tree"
+msgstr "Kartei: &Baum"
 
 msgid "Print Manager"
 msgstr "Druckwarteschlange"
@@ -19336,6 +20207,12 @@ msgstr "Druckwarteschlange"
 msgid "&Print Manager"
 msgstr "Druck&Warteschlange"
 
+msgid "EMR Journal"
+msgstr "Karteijournal"
+
+msgid "EMR &Journal (list)"
+msgstr "Kartei: &Journal (Liste)"
+
 msgid "Appointments"
 msgstr "Termine"
 
@@ -19348,6 +20225,12 @@ msgstr "Laborbuch"
 msgid "Show &lab journal"
 msgstr "Zeige Laborbuch"
 
+msgid "PACS"
+msgstr ""
+
+msgid "&PACS"
+msgstr ""
+
 msgid "Cardiac Devices"
 msgstr "PM/ICD"
 
@@ -19423,11 +20306,8 @@ msgstr "Handbuch"
 msgid "User &manual (local)"
 msgstr "&Handbuch (lokal)"
 
-msgid "EMR journal"
-msgstr "Kartei - Journal"
-
-msgid "EMR &Journal (chronological)"
-msgstr "EMR-&Journal (chronologisch)"
+msgid "EMR &Journal (text)"
+msgstr "Kartei: &Journal (Text)"
 
 msgid "Demographics"
 msgstr "Personalien"
@@ -19574,7 +20454,7 @@ msgid "Allergies"
 msgstr "Allergien"
 
 msgid "&Notes"
-msgstr "&Einträge"
+msgstr "Kartei: &Editor"
 
 msgid "Billing"
 msgstr "Abrechnung"
@@ -19600,6 +20480,9 @@ msgstr "Beispielplugin"
 msgid "Show &ExamplePlugin"
 msgstr "Zeige Beispielplugin"
 
+msgid "Find text"
+msgstr "Text finden"
+
 msgid "gm_ctl_client: starting slave GNUmed client"
 msgstr "gm_ctl_client: Starte ferngesteuertes GNUmed"
 
@@ -19635,12 +20518,347 @@ msgstr "Abbrechen"
 msgid "Abort and do NOT connect to GNUmed."
 msgstr "Abbrechen und keine Verbindung zu GNUmed herstellen."
 
+#, fuzzy
+#~ msgid ""
+#~ "Health issue: %s%s%s (%s versions)\n"
+#~ "\n"
+#~ msgstr ""
+#~ "Grunderkrankung: %s%s%s\n"
+#~ "\n"
+
+#, fuzzy
+#~ msgid ""
+#~ "Episode: %s%s%s (%s versions)\n"
+#~ "\n"
+#~ msgstr ""
+#~ "Episode: %s%s%s\n"
+#~ "\n"
+
+#, fuzzy
+#~ msgid ""
+#~ "Encounter: %s%s%s (%s versions)\n"
+#~ "\n"
+#~ msgstr ""
+#~ "Konsultation: %s%s%s\n"
+#~ "\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "current values:\n"
+#~ msgstr ""
+#~ "\n"
+#~ "jetzige Werte:\n"
+
+#~ msgid "no previous versions of this record"
+#~ msgstr "Keine Vorversionen dieses Eintrags"
+
+#~ msgid ""
+#~ "\n"
+#~ "all values with <audit_action>, <audit_when>, <audit_by> fields (current "
+#~ "value first):\n"
+#~ msgstr ""
+#~ "\n"
+#~ "alle Werte, zusätzlich <audit_action>, <audit_when>, <audit_by> (aktuelle "
+#~ "Werte zuerst):\n"
+
+#~ msgid "soap_S"
+#~ msgstr "soap_A"
+
+#~ msgid "soap_O"
+#~ msgstr "soap_B"
+
+#~ msgid "soap_A"
+#~ msgstr "soap_D"
+
+#~ msgid "soap_P"
+#~ msgstr "soap_T"
+
+#~ msgid "soap_U"
+#~ msgstr "soap_U"
+
+#~ msgid "soap_Subjective"
+#~ msgstr "soap_Anamnese"
+
+#~ msgid "soap_Objective"
+#~ msgstr "soap_Befund"
+
+#~ msgid "soap_Assessment"
+#~ msgstr "soap_Beurteilung"
+
+#~ msgid "soap_Plan"
+#~ msgstr "soap_Procedere"
+
+#~ msgid "soap_Unspecified"
+#~ msgstr "soap_Unbestimmt"
+
+#~ msgid "soap_Administrative"
+#~ msgstr "soap_Verwaltung"
+
+#~ msgid "Row fields (as multiple lines)"
+#~ msgstr "Spalteninhalte (als Zeilen)"
+
+#~ msgid "Search in list"
+#~ msgstr "In Liste suchen"
+
+#~ msgid "Show &Timeline"
+#~ msgstr "Zeige &Zeitstrahl"
+
+#~ msgid "EMR &Tree (topical)"
+#~ msgstr "EMR-&Baum (thematisch)"
+
+#~ msgid ""
+#~ "Upload DICOM files from a directory, recursively, into the Orthanc PACS."
+#~ msgstr ""
+#~ "DICOM-Dateien rekursiv aus einem Verzeichnis ins Orthanc PACS laden."
+
+#~ msgid "Parts"
+#~ msgstr "Teile"
+
+#~ msgid "You must select a part before you can delete it."
+#~ msgstr "Zum Löschen muß ein Teil markiert sein."
+
+#~ msgid "deleting part"
+#~ msgstr "Teil löschen"
+
+#~ msgid ""
+#~ "The part has successfully been removed from the document.\n"
+#~ "\n"
+#~ "Do you also want to permanently delete the file\n"
+#~ "\n"
+#~ " [%s]\n"
+#~ "\n"
+#~ "from which this document part was loaded ?\n"
+#~ "\n"
+#~ "If it is a temporary file for a page you just scanned\n"
+#~ "this makes a lot of sense. In other cases you may not\n"
+#~ "want to lose the file.\n"
+#~ "\n"
+#~ "Pressing [YES] will permanently remove the file\n"
+#~ "from your computer.\n"
+#~ msgstr ""
+#~ "Der Teil wurde erfolgreich aus dem Dokument entfernt.\n"
+#~ "\n"
+#~ "Wollen Sie zusätzlich die korrespondierende Datei\n"
+#~ "\n"
+#~ " [%s]\n"
+#~ "\n"
+#~ ",aus der der Teil geladen wurde, unwiderruflich löschen ?\n"
+#~ "\n"
+#~ "Dies kann sinnvoll sein, wenn es sich um eine temporäre\n"
+#~ "Datei für eine soeben eingescannte Seite handelt. Andernfalls\n"
+#~ "wollen Sie die Datei vermutlich nicht löschen.\n"
+#~ "\n"
+#~ "Durch Drücken von [JA] wird die Datei endgültig von\n"
+#~ "Ihrem Computer gelöscht.\n"
+
+#~ msgid "Removing document part"
+#~ msgstr "Dokumententeil entfernen"
+
+#~ msgid ""
+#~ "Cannot delete part in file [%s].\n"
+#~ "\n"
+#~ "You may not have write access to it."
+#~ msgstr ""
+#~ "Kann Teil in Datei [%s] nicht löschen.\n"
+#~ "\n"
+#~ "Sie haben möglicherweise kein Schreibrecht dafür."
+
+#~ msgid "Cannot update document metadata."
+#~ msgstr "Kann Metadaten zum Dokument nicht aktualisieren."
+
+#~ msgid "Disabling patient"
+#~ msgstr "Patient deaktivieren"
+
+#~ msgid "preferred name/call name/..."
+#~ msgstr "bevorzugter Name/Rufname/..."
+
+#~ msgid "Duration / Until"
+#~ msgstr "Dauer / Bis"
+
+#~ msgid "State"
+#~ msgstr "Bundesland"
+
+#~ msgid "&Unknown"
+#~ msgstr "&Unbekannt"
+
+#~ msgid "&Never smoked"
+#~ msgstr "&Nie geraucht"
+
+#~ msgid "&Smokes or smoked"
+#~ msgstr "&Rauch(te)"
+
+#~ msgid "Select if the smoking status is unknown (say, unasked so far)."
+#~ msgstr ""
+#~ "Hier markieren, wenn der Rauchstatus unbekannt ist (z.B. bislang nicht "
+#~ "erfragt)."
+
+#~ msgid ""
+#~ "Select if the patient never EVER (except \"tried once\") smoked (NOT ex-"
+#~ "smoker)."
+#~ msgstr ""
+#~ "Hier markieren, wenn der Patient nie (\"einmal probiert\" zählt nicht) "
+#~ "geraucht hat (nicht: Ex-Raucher)."
+
+#~ msgid "When was smoking status last confirmed (mostly \"today\") ?"
+#~ msgstr "Wann wurde der Rauchstatus zuletzt überprüft (meist \"heute\") ?"
+
+#~ msgid "active tobacco use (%s)"
+#~ msgstr "aktiver Tabakgebrauch (%s)"
+
+#~ msgid "Last confirmed: %s%s"
+#~ msgstr "Zuletzt überprüft: %s%s"
+
+#~ msgid "Smoking status"
+#~ msgstr "Rauchstatus"
+
+#~ msgid "Journal"
+#~ msgstr "Journal"
+
+#~ msgid ""
+#~ "An error occurred while retrieving the EMR\n"
+#~ "in journal form for the active patient.\n"
+#~ "\n"
+#~ "Please check the log file for details."
+#~ msgstr ""
+#~ "Beim Laden der Journalkartei für den\n"
+#~ "aktiven Patienten ist ein Fehler aufgetreten.\n"
+#~ "\n"
+#~ "Genaue Fehlerbeschreibung in der Logdatei."
+
+#~ msgid ""
+#~ "Cannot connect to configuration database with:\n"
+#~ "\n"
+#~ "[%s]"
+#~ msgstr ""
+#~ "Kann keine Verbindung zur Konfigurationsdatenbank herstellen:\n"
+#~ "[%s]"
+
+#~ msgid ""
+#~ "Cannot connect to database with:\n"
+#~ "\n"
+#~ "[%s]"
+#~ msgstr ""
+#~ "Kann keine Verbindung zur Datenbank herstellen:\n"
+#~ "[%s]"
+
+#~ msgid "No product information available."
+#~ msgstr "Keine Produktinformation verfügbar."
+
+#~ msgid ""
+#~ "Unable to connect to database:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Are you sure you have got a local database installed ?\n"
+#~ "\n"
+#~ "Please retry with proper credentials or cancel.\n"
+#~ "\n"
+#~ "You may also need to check the PostgreSQL client\n"
+#~ "authentication configuration in pg_hba.conf. For\n"
+#~ "details see:\n"
+#~ "\n"
+#~ "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
+#~ msgstr ""
+#~ "Kann nicht mit Datenbank verbinden:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Haben Sie wirklich eine lokale Datenbank installiert ?\n"
+#~ "\n"
+#~ "Mit korrekten Angaben neu versuchen oder abbrechen.\n"
+#~ "\n"
+#~ "Möglicherweise müssen die PostgreSQL-Einstellungen\n"
+#~ "für die Anmeldung in pg_hba.conf überprüft werden.\n"
+#~ "Details unter:\n"
+#~ "\n"
+#~ "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
+
+#~ msgid ""
+#~ "Unable to connect to database:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Please retry with proper credentials or cancel.\n"
+#~ "\n"
+#~ "You may also need to check the PostgreSQL client\n"
+#~ "authentication configuration in pg_hba.conf. For\n"
+#~ "details see:\n"
+#~ "\n"
+#~ "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
+#~ msgstr ""
+#~ "Kann nicht mit Datenbank verbinden:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Mit korrekten Angaben neu versuchen oder abbrechen.\n"
+#~ "\n"
+#~ "Möglicherweise müssen die PostgreSQL-Einstellungen\n"
+#~ "für die Anmeldung in pg_hba.conf überprüft werden.\n"
+#~ "Details unter:\n"
+#~ "\n"
+#~ "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
+
+#~ msgid ""
+#~ "Unable to connect to database:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Please retry another backend / user / password combination !\n"
+#~ msgstr ""
+#~ "Anmeldung bei Datenbank fehlgeschlagen:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Bitte versuchen Sie andere Zugangsdaten.\n"
+
+#~ msgid "Show part"
+#~ msgstr "Teil zeigen"
+
+#~ msgid "Entire row"
+#~ msgstr "Ganze Zeile"
+
+#~ msgid "You must select a part before you can view it."
+#~ msgstr "Zum Anzeigen muß ein Teil markiert sein."
+
+#, fuzzy
+#~ msgid ""
+#~ "\n"
+#~ "Select the measurements panel to show in the top pane.\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Wählen Sie das Meßwertprofil für das Medikationsmodul.\n"
+
+#, fuzzy
+#~ msgid "General lab panel"
+#~ msgstr "Nach &Profil gruppieren:"
+
+#, fuzzy
+#~ msgid "Configuring general measurements panel"
+#~ msgstr "Konfiguration des Laborprofils für die Medikamentenüberwachung"
+
 #~ msgid "Only:"
 #~ msgstr "Nur:"
 
+#~ msgid "Brand by component"
+#~ msgstr "Medikament nach Wirkstoff"
+
+#~ msgid "Unbranded substance"
+#~ msgstr "Substanz"
+
+#~ msgid "The active ingredients of this brand."
+#~ msgstr "Die aktiven Wirkstoffe dieses Medikaments."
+
+#~ msgid ""
+#~ "The non-branded medication or non-medication substance, with optional "
+#~ "strength."
+#~ msgstr "Die Substanz (Wirkstoff oder sonstige), optional mit Dosisangabe."
+
 #~ msgid "Sent"
 #~ msgstr "Gesendet"
 
+#~ msgid "Inbox Message Actions:"
+#~ msgstr "Posteingangs-Aktionen:"
+
 #~ msgid "Province"
 #~ msgstr "Bundesland"
 
@@ -19770,9 +20988,6 @@ msgstr "Abbrechen und keine Verbindung zu GNUmed herstellen."
 #~ msgid "%s: %s%s%s (%s ago)"
 #~ msgstr "%s: %s%s%s (vor %s)"
 
-#~ msgid "Clinical hint"
-#~ msgstr "Klinischer Tip"
-
 #~ msgid "More info"
 #~ msgstr "Weitere Info"
 
@@ -19850,9 +21065,6 @@ msgstr "Abbrechen und keine Verbindung zu GNUmed herstellen."
 #~ msgid "&Sign as:"
 #~ msgstr "&Unterschreiben:"
 
-#~ msgid "file: %s (%s/)"
-#~ msgstr "Datei: %s (%s/)"
-
 #~ msgid "Switching clinical hint activation"
 #~ msgstr "Aktivzustand des klinischen Tips umschalten"
 
@@ -19978,9 +21190,6 @@ msgstr "Abbrechen und keine Verbindung zu GNUmed herstellen."
 #~ msgid "SQL: %s"
 #~ msgstr "SQL: %s"
 
-#~ msgid "cannot connect to service [%s]"
-#~ msgstr "kann keine Verbindung zum Dienst [%s] herstellen"
-
 #~ msgid "When was this substance started to be consumed."
 #~ msgstr "Seit wann wird diese Substanz konsumiert."
 
@@ -20021,12 +21230,12 @@ msgstr "Abbrechen und keine Verbindung zu GNUmed herstellen."
 #~ msgid "A comment on the organisation performing this measurement."
 #~ msgstr "Ein Kommentar zu diesem Labor/dieser Meßfirma."
 
-#~ msgid "Group by &panel:"
-#~ msgstr "Nach &Profil gruppieren:"
-
 #~ msgid "A comment on this test panel."
 #~ msgstr "Ein Kommentar zu diesem Meßprofil."
 
+#~ msgid "Select the test types for this panel."
+#~ msgstr "Wählen Sie die Meßmethoden für dieses Profil."
+
 #~ msgid "Add (a) measurement result(s) for the current patient."
 #~ msgstr "Meßergebnisse für den aktiven Patienten erfassen."
 
@@ -20391,10 +21600,6 @@ msgstr "Abbrechen und keine Verbindung zu GNUmed herstellen."
 #~ msgid " Code: %s\n"
 #~ msgstr " Code: %s\n"
 
-#~ msgid ""
-#~ "Measurement details:                                               \n"
-#~ msgstr "Meßwertdetails:                                                    \n"
-
 #~ msgid "Amount per dose: %s%s"
 #~ msgstr "Menge pro Dosis: %s%s"
 
@@ -20442,9 +21647,6 @@ msgstr "Abbrechen und keine Verbindung zu GNUmed herstellen."
 #~ msgid " %s hospital stays"
 #~ msgstr " %s Krankenhausaufenthalt(e)"
 
-#~ msgid " Type: %s"
-#~ msgstr " Typ: %s"
-
 #~ msgid "Hospital stays: %s"
 #~ msgstr "Krankenhausaufenthalte: %s"
 
@@ -20745,9 +21947,6 @@ msgstr "Abbrechen und keine Verbindung zu GNUmed herstellen."
 #~ msgid "<--GI-->"
 #~ msgstr "←Magen-Darm→"
 
-#~ msgid "Other:"
-#~ msgstr "Sonstige:"
-
 #~ msgid "FreeDiams path"
 #~ msgstr "FreeDiams-Pfad"
 
@@ -20891,18 +22090,6 @@ msgstr "Abbrechen und keine Verbindung zu GNUmed herstellen."
 #~ "Sie können auch einfach die relevanten Adressdaten in die passenden "
 #~ "Felder eingeben, ohne nach einer existierenden Adresse zu suchen."
 
-#~ msgid "Codes linked to this Subjective."
-#~ msgstr "Codes zu dieser Anamnese."
-
-#~ msgid "Codes linked to this Objective."
-#~ msgstr "Codes zu diesem Befund."
-
-#~ msgid "Codes linked to this Assessment."
-#~ msgstr "Codes zu dieser Bewertung/Beurteilung/Einschätzung/Diagnose."
-
-#~ msgid "Codes linked to this Plan."
-#~ msgstr "Codes zu diesem Procedure."
-
 #~ msgid "Codes linked to this episode."
 #~ msgstr "Codes zu dieser Episode."
 
@@ -20929,9 +22116,6 @@ msgstr "Abbrechen und keine Verbindung zu GNUmed herstellen."
 #~ "Kann Substanzeinnahme nicht speichern. Es fehlen grundlegende "
 #~ "Informationen."
 
-#~ msgid "Lab name"
-#~ msgstr "Laborname"
-
 #~ msgid "in-house"
 #~ msgstr "praxisintern"
 
@@ -21162,9 +22346,6 @@ msgstr "Abbrechen und keine Verbindung zu GNUmed herstellen."
 #~ msgid "Temporary directory"
 #~ msgstr "Arbeitsverzeichnis"
 
-#~ msgid "Choose temporary directory ..."
-#~ msgstr "Arbeitsverzeichnis wählen ..."
-
 #~ msgid "category"
 #~ msgstr "Kategorie"
 
@@ -21233,9 +22414,6 @@ msgstr "Abbrechen und keine Verbindung zu GNUmed herstellen."
 #~ msgid "&Provinces"
 #~ msgstr "&Bundesländer"
 
-#~ msgid "Manage substances in use."
-#~ msgstr "Substanzen (Wirkstoffe) verwalten."
-
 #~ msgid "Drugs"
 #~ msgstr "Medikamente"
 
@@ -21298,9 +22476,6 @@ msgstr "Abbrechen und keine Verbindung zu GNUmed herstellen."
 #~ "Zusatz-\n"
 #~ "notizen"
 
-#~ msgid "EMR of %s"
-#~ msgstr "Kartei von %s"
-
 #~ msgid "inception notes"
 #~ msgstr "Anfangsnotizen"
 
@@ -21447,9 +22622,6 @@ msgstr "Abbrechen und keine Verbindung zu GNUmed herstellen."
 #~ msgid "View encounter list"
 #~ msgstr "Kontakte auflisten"
 
-#~ msgid "EMR &tree"
-#~ msgstr "Kartei - &Baum"
-
 #~ msgid "&Progress notes editor"
 #~ msgstr "&Verlaufsnotizen"
 
@@ -21795,9 +22967,6 @@ msgstr "Abbrechen und keine Verbindung zu GNUmed herstellen."
 #~ msgid "Tables in database  /  Feedback"
 #~ msgstr "Tabellen in Datenbank  /  Rückmeldung"
 
-#~ msgid "SQL Search"
-#~ msgstr "SQL-Suche"
-
 #~ msgid "&SQL Search"
 #~ msgstr "S&QL-Suche"
 
@@ -21938,9 +23107,6 @@ msgstr "Abbrechen und keine Verbindung zu GNUmed herstellen."
 #~ msgid "Patient change: Unsaved progress note"
 #~ msgstr "Patientenwechsel: ungespeicherte Verlaufsnotiz"
 
-#~ msgid "Allergies:"
-#~ msgstr "Allergien:"
-
 #~ msgid "Configure which plugin to show right after client startup."
 #~ msgstr ""
 #~ "Konfigurieren des nach dem Start der Oberfläche zuerst angezeigten Moduls."
@@ -22082,9 +23248,6 @@ msgstr "Abbrechen und keine Verbindung zu GNUmed herstellen."
 #~ msgid "loading patient from xDT file"
 #~ msgstr "Patienten aus xDT-Datei laden"
 
-#~ msgid "path lab"
-#~ msgstr "Laborwerte"
-
 #~ msgid "Show &archived lab data"
 #~ msgstr "archivierte Labordaten zeigen"
 
@@ -22662,9 +23825,6 @@ msgstr "Abbrechen und keine Verbindung zu GNUmed herstellen."
 #~ "Den markierten Dokumententyp umbenennen. Nur vor Ort hinzugefügte Typen "
 #~ "können verändert werden."
 
-#~ msgid "problems"
-#~ msgstr "Probleme"
-
 #~ msgid "visits"
 #~ msgstr "Konsultationen"
 
diff --git a/client/po/el-gnumed.mo b/client/po/el-gnumed.mo
index 57bdbfe..8741fb9 100644
Binary files a/client/po/el-gnumed.mo and b/client/po/el-gnumed.mo differ
diff --git a/client/po/el.po b/client/po/el.po
index 1942dd2..7a8d463 100644
--- a/client/po/el.po
+++ b/client/po/el.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gnumed\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-12-26 20:28+0100\n"
+"POT-Creation-Date: 2016-03-17 16:27+0100\n"
 "PO-Revision-Date: 2012-06-01 01:24+0000\n"
 "Last-Translator: ncq <Unknown>\n"
 "Language-Team: Ελληνικά, Σύγχρονα <opensuse-translation-el at opensuse.org>\n"
@@ -1540,12 +1540,24 @@ msgid ""
 "--------------"
 msgstr "Αίτηση βοήθειας"
 
+#, fuzzy, python-format
+msgid "Revision #%s"
+msgstr " Νέα έκδοση:\"%s\""
+
 #, python-format
 msgid "[%s:%s]: row not updated (nothing returned), row in use ?"
 msgstr ""
 "[%s:%s]: γραμμή δεν ενημερώνεται (τίποτα δεν επιστρέφεται), γραμμή σε χρήση;"
 
 #, python-format
+msgid "<%s(.bat)> not found"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "problem with <%s>"
+msgstr "Πρόβλημα"
+
+#, python-format
 msgid "[%s] is not a readable file"
 msgstr ""
 
@@ -1575,22 +1587,9 @@ msgstr "1 Byte"
 msgid "%s Bytes"
 msgstr "%s Bytes"
 
-#, python-format
-msgid ""
-"Cannot connect to configuration database with:\n"
-"\n"
-"[%s]"
-msgstr ""
-
-#, python-format
-msgid ""
-"Cannot connect to database with:\n"
-"\n"
-"[%s]"
-msgstr ""
-
-msgid "No product information available."
-msgstr "Δεν υπάρχουν διαθέσιμες  πληροφορίες για το προϊόν."
+#, fuzzy
+msgid "<type>"
+msgstr "τύπος"
 
 #, python-format
 msgid ""
@@ -1931,107 +1930,6 @@ msgstr ""
 msgid "  risk: %s"
 msgstr "  κίνδυνος:%s"
 
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Are you sure you have got a local database installed ?\n"
-"\n"
-"Please retry with proper credentials or cancel.\n"
-"\n"
-"You may also need to check the PostgreSQL client\n"
-"authentication configuration in pg_hba.conf. For\n"
-"details see:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-msgstr ""
-"Αδύνατη η σύνδεση με τη βάση δεδομένων:\n"
-"\n"
-"% s\n"
-"\n"
-"Είσαι σίγουρος ότι έχεις εγκαταστήσει τοπικά μια βάση δεδομένων;\n"
-"\n"
-"Δοκιμάστε ξανά με την κατάλληλη εντολή ή ακυρώστε.\n"
-"\n"
-"Μπορεί επίσης να χρειαστεί έλεγχος του πελάτη της PostgreSQL\n"
-"για την διαμόρφωση της ταυτότητας στο pg_hba.conf. Για\n"
-"λεπτομέρειες βλέπε:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Please retry with proper credentials or cancel.\n"
-"\n"
-"You may also need to check the PostgreSQL client\n"
-"authentication configuration in pg_hba.conf. For\n"
-"details see:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-msgstr ""
-"Αδύνατον να συνδεθώ με τη βάση δεδομένων\n"
-"\n"
-"%s\n"
-"\n"
-"Παρακαλώ προσπαθείστε ξανά με τα απαιτούμενα δικαιώματα ή ακυρώστε\n"
-"\n"
-"Επίσης ίσως χρειάζεται να ελέγξετε την ρύθμιση πιστοποίησης του πελάτη\n"
-"της  PostgreSQL στο αρχείο pg_hba.conf. Για λεπτομέρειες δείτε:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-
-msgid "Connecting to backend"
-msgstr "Σύνδεση στο σύστημα υποστήριξης"
-
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Please retry another backend / user / password combination !\n"
-msgstr ""
-"Δεν είναι δυνατή η σύνδεση με βάση δεδομένων:\n"
-"\n"
-"%s\n"
-"\n"
-"Παρακαλούμε προσπαθήστε ξανά σε άλλο σύστημα υποστήριξης/ χρήστη / κωδικό "
-"πρόσβασης συνδυασμό!\n"
-
-msgid "programmer forgot to specify error message"
-msgstr "ο προγραμματιστής ξέχασε να καθορίσει το μήνυμα σφάλματος"
-
-msgid ""
-"\n"
-"\n"
-"Please consult the error log for all the gory details !"
-msgstr ""
-"\n"
-"\n"
-"Παρακαλούμε συμβουλευθείτε το αρχείο καταγραφής σφαλμάτων για όλες τις "
-"αιματοβαμμένες λεπτομέρειες!"
-
-msgid "generic error message"
-msgstr "Μήνυμα γενικού σφάλματος"
-
-msgid "programmer forgot to specify info message"
-msgstr "ο προγραμματιστής ξέχασε να διευκρινίσει το μήνυμα πληροφοριών"
-
-msgid "generic info message"
-msgstr "Μήνυμα γενικής πληροφορίας"
-
-msgid "programmer forgot to specify warning"
-msgstr "προγραμματιστής ξέχασε να διευκρινίσει μια προειδοποίηση"
-
-msgid "generic warning message"
-msgstr "γενικό μήνυμα προειδοποίησης"
-
 msgid "no hook specified, please report bug"
 msgstr ""
 
@@ -2354,6 +2252,34 @@ msgstr "Ταξινόμηση κατά:"
 msgid "Include:"
 msgstr ""
 
+#, fuzzy
+msgid "&Search"
+msgstr "Αναζήτηση"
+
+msgid "Suggest"
+msgstr ""
+
+msgid "Set"
+msgstr "Ορισμός"
+
+msgid "dialog_1"
+msgstr ""
+
+msgid "Search patients in Orthanc DICOM store."
+msgstr ""
+
+#, fuzzy
+msgid "Suggest a patient ID based on the active patient."
+msgstr "Αρχή νέας συνεδρίας για τον ενεργό ασθενή αμέσως τώρα."
+
+#, fuzzy
+msgid "Search term:"
+msgstr "Αναζήτηση με"
+
+#, fuzzy
+msgid "New patient ID:"
+msgstr "ID εσωτερικού ασθενούς"
+
 msgid "Your review"
 msgstr ""
 
@@ -2724,6 +2650,107 @@ msgstr "Ουσία"
 msgid "Amount"
 msgstr "Ποσότητα"
 
+#, fuzzy
+msgid "&Connect"
+msgstr "Σύνδεση"
+
+msgid "&Browse"
+msgstr ""
+
+#, fuzzy
+msgid "<not connected>"
+msgstr "Επεξεργασία φαρμακευτικής αγωγής"
+
+msgid "Browse all"
+msgstr ""
+
+#, fuzzy
+msgid "Export all"
+msgstr "Αναφορά"
+
+msgid "Browse"
+msgstr ""
+
+#, fuzzy
+msgid "Export"
+msgstr "Αναφορά"
+
+#, fuzzy
+msgid "Upload"
+msgstr "Ανανέωση"
+
+#, fuzzy
+msgid "Enter the PACS host address."
+msgstr "Επεξεργασία του επιλεγμένου αντικειμένου."
+
+msgid "Enter the PACS port."
+msgstr ""
+
+#, fuzzy
+msgid "Enter the PACS user."
+msgstr "Βάλτε την ποσότητα της ουσίας."
+
+#, fuzzy
+msgid "Enter the PACS password. It will not be shown."
+msgstr ""
+"Ο κωδικός πρόσβασης για το νέο λογαριασμό βάση δεδομένων. Η εισαγωγή σας δεν "
+"θα παρουσιαστεί."
+
+#, fuzzy
+msgid "Connect to PACS."
+msgstr "Σύνδεση στο GNUmed"
+
+msgid "Browse PACS at top level."
+msgstr ""
+
+msgid "Modify some of Orthanc content (such as patient IDs)."
+msgstr ""
+
+#, fuzzy
+msgid "Browse overview of studies for this patient."
+msgstr "Κράτα *αυτόν* τον ασθενή"
+
+#, fuzzy
+msgid "Copy all studies into export area."
+msgstr "Προσθήκη νέου ονόματος"
+
+#, fuzzy
+msgid "Browse topmost selected study."
+msgstr "Επεξεργασία του επιλεγμένου αντικειμένου."
+
+#, fuzzy
+msgid "Copy selected studies into export area."
+msgstr "Προσθήκη νέου ονόματος"
+
+#, fuzzy
+msgid "Save selected studies to disk."
+msgstr "Επεξεργασία του επιλεγμένου αντικειμένου."
+
+msgid ""
+"Upload DICOM files from a directory, recursively, into the Orthanc PACS\n"
+"\n"
+"The currently active patient does not matter. Orthanc will associate "
+"uploaded files with the patient found within the DICOM metadata. It will "
+"create new patients as needed."
+msgstr ""
+
+msgid "Host:"
+msgstr ""
+
+msgid "Port:"
+msgstr ""
+
+#, fuzzy
+msgid "User:"
+msgstr "Χρήστης"
+
+msgid "Password"
+msgstr "Κωδικός Πρόσβασης"
+
+#, fuzzy
+msgid "Selected studies:"
+msgstr "Επιλογή"
+
 msgid "Fake brand"
 msgstr ""
 
@@ -3064,10 +3091,6 @@ msgstr "Μήνυμα γενικού σφάλματος"
 msgid "&Load"
 msgstr ""
 
-#, fuzzy
-msgid "Export"
-msgstr "Αναφορά"
-
 msgid "A long, descriptive name for this form template."
 msgstr ""
 
@@ -3156,15 +3179,13 @@ msgstr "&κλινικά συναφές"
 msgid "Document Properties"
 msgstr ""
 
-msgid "Show part"
-msgstr ""
+#, fuzzy
+msgid "Show"
+msgstr "Εμφάνιση μηνυμάτων:"
 
 msgid "Remove part"
 msgstr ""
 
-msgid "Parts"
-msgstr ""
-
 msgid "Discard"
 msgstr "Απόρριψη"
 
@@ -3192,6 +3213,10 @@ msgstr ""
 msgid "Required: The primary episode this document is to be listed under."
 msgstr ""
 
+#, fuzzy
+msgid "Optional: The organization (unit) this document originated from."
+msgstr "Η εμπορική ονομασία του φάρμακου που λαμβάνει ο ασθενής."
+
 msgid ""
 "Optional: A short comment identifying the document. Good comments give an "
 "idea of the content and source of the document."
@@ -3216,6 +3241,9 @@ msgid ""
 "normal and abnormal resuslts can be relevant."
 msgstr ""
 
+msgid "Optional: A free-text document description."
+msgstr ""
+
 msgid "This field lists the parts belonging to the current document."
 msgstr ""
 
@@ -3227,9 +3255,6 @@ msgid ""
 "deletion from disk."
 msgstr ""
 
-msgid "Optional: A free-text document description."
-msgstr ""
-
 msgid "Save finished document."
 msgstr ""
 
@@ -3248,6 +3273,10 @@ msgid "Associate to episode:"
 msgstr ""
 
 #, fuzzy
+msgid "Document source:"
+msgstr "Αρχεία:"
+
+#, fuzzy
 msgid "Comment / Identification:"
 msgstr "Τρέχουσα φαρμακευτική αγωγή"
 
@@ -3442,8 +3471,9 @@ msgstr ""
 msgid "Messages:"
 msgstr "Μήνυμα"
 
-msgid "Only:"
-msgstr ""
+#, fuzzy
+msgid "Limit to:"
+msgstr "Θέστε σε:"
 
 msgid "&Myself … or:"
 msgstr ""
@@ -3562,12 +3592,13 @@ msgstr ""
 msgid "Purpose"
 msgstr ""
 
+#, fuzzy
+msgid "Please supply your email address here !"
+msgstr "Παρακαλώ εισάγετε μια διεύθυνση Email."
+
 msgid "Details"
 msgstr "Λεπτομέρειες"
 
-msgid "<Please supply your email address here !>"
-msgstr ""
-
 msgid "Keep running"
 msgstr "Συνέχιση εκτέλεσης"
 
@@ -3589,9 +3620,11 @@ msgid ""
 msgstr ""
 
 msgid ""
-"Please enter your email address so we can provide feedback directly to you. "
-"Otherwise, feedback will be given on the GNUmed mailing list (http://lists."
-"gnu.org/mailman/listinfo/gnumed-bugs)."
+"Please enter your email address so we can provide help to you directly.\n"
+"\n"
+"Otherwise, feedback can be given on the GNUmed mailing list (http://lists."
+"gnu.org/mailman/listinfo/gnumed-bugs) ONLY to which you will then have to "
+"subscribe."
 msgstr ""
 
 msgid "Find help on http://wiki.gnumed.de, too."
@@ -3715,9 +3748,6 @@ msgstr "Παράμετροι χρήστη:"
 msgid "Account"
 msgstr "Λογαριασμός"
 
-msgid "Password"
-msgstr "Κωδικός Πρόσβασης"
-
 msgid "Password, again"
 msgstr "Κωδικός πρόσβασης, ξανά"
 
@@ -4225,9 +4255,10 @@ msgstr ""
 msgid "Acquire images from image source (scanner, ...)."
 msgstr ""
 
-msgid "Acquire images or text from the clipboard."
-msgstr ""
-
+#, fuzzy
+msgid "Acquire file or text from the clipboard."
+msgstr "Εξαγωγή στο &πρόχειρο"
+
 #, fuzzy
 msgid "Remove the selected documents."
 msgstr "Επεξεργασία του επιλεγμένου αντικειμένου."
@@ -4386,7 +4417,7 @@ msgid ""
 "- the result list will be artificially limited to the first 1000 rows\n"
 "- you can include a column named \"pk_patient\" to make the result rows "
 "activate the corresponding patient on double-clicking\n"
-"- by inserting $<ID_active_patient>$ you can access the patient ID of the "
+"- by inserting $<ID_ACTIVE_PATIENT>$ you can access the patient ID of the "
 "patient active at the time of running the query"
 msgstr ""
 
@@ -4549,9 +4580,6 @@ msgstr ""
 msgid "Link &new"
 msgstr ""
 
-msgid "Browse"
-msgstr ""
-
 msgid ""
 "Search for matches among existing addresses and [Link] a selection, or [Link "
 "(a) new] address."
@@ -4605,27 +4633,17 @@ msgid ""
 "left."
 msgstr ""
 
-msgid "label_1"
-msgstr ""
-
-msgid "→"
-msgstr "→"
-
-#, fuzzy
-msgid "←"
-msgstr "→"
-
-msgid "Extra"
-msgstr ""
+msgid "Subjective"
+msgstr "Υποκειμενικό"
 
-msgid "Move selected items from left to right."
-msgstr ""
+msgid "Objective"
+msgstr "Αντικειμενικό"
 
-msgid "Move selected items from right to left."
-msgstr ""
+msgid "Assessment"
+msgstr "Αξιολόγηση"
 
-msgid "Cancel picking items."
-msgstr ""
+msgid "Plan"
+msgstr "Σχέδιο"
 
 #, fuzzy
 msgid "Episode synopsis"
@@ -4666,21 +4684,31 @@ msgid ""
 "narrative belongs to."
 msgstr ""
 
-msgid "Subjective"
-msgstr "Υποκειμενικό"
-
 #, fuzzy
 msgid "Codes:"
 msgstr " Κωδικός: %s\n"
 
-msgid "Objective"
-msgstr "Αντικειμενικό"
+msgid "label_1"
+msgstr ""
 
-msgid "Assessment"
-msgstr "Αξιολόγηση"
+msgid "→"
+msgstr "→"
 
-msgid "Plan"
-msgstr "Σχέδιο"
+#, fuzzy
+msgid "←"
+msgstr "→"
+
+msgid "Extra"
+msgstr ""
+
+msgid "Move selected items from left to right."
+msgstr ""
+
+msgid "Move selected items from right to left."
+msgstr ""
+
+msgid "Cancel picking items."
+msgstr ""
 
 msgid "1"
 msgstr "1"
@@ -4863,6 +4891,90 @@ msgstr ""
 msgid "Age range"
 msgstr "Ηλικιακό φάσμα"
 
+msgid "&Nicotine"
+msgstr ""
+
+msgid "&Alcohol"
+msgstr ""
+
+#, fuzzy
+msgid "&Other:"
+msgstr "Άλλα"
+
+msgid "&Non-harmful use"
+msgstr ""
+
+msgid "&Harmful use"
+msgstr ""
+
+msgid "Presently &addicted"
+msgstr ""
+
+#, fuzzy
+msgid "Previously &addicted"
+msgstr "Προηγούμενες Συνεδρίες"
+
+msgid "&Reconfirm as of today"
+msgstr ""
+
+#, fuzzy
+msgid "Select for documenting smoking status."
+msgstr "Επεξεργασία φαρμακευτικής αγωγής"
+
+msgid "Select for documenting alcohol use status."
+msgstr ""
+
+msgid ""
+"Select for documenting use of substances other than nicotine or alcohol."
+msgstr ""
+
+#, fuzzy
+msgid "Select the abused substance."
+msgstr "Βάλτε την ποσότητα της ουσίας."
+
+msgid ""
+"Select if the substance use is not considered harmful (say, no use or non-"
+"harmful use)."
+msgstr ""
+
+msgid "Select if substance is use considered harmful."
+msgstr ""
+
+#, fuzzy
+msgid "Select if the patient is presently addicted to this substance."
+msgstr "Επιλέξτε αυτό αν ο ασθενής δεν έχει γνωστές αλλεργίες."
+
+#, fuzzy
+msgid "Select if the patient was previously addicted to this substance."
+msgstr "Επιλέξτε αυτό αν ο ασθενής δεν έχει γνωστές αλλεργίες."
+
+msgid ""
+"A comment on this substance use:\n"
+"- type of product used\n"
+"- frequency\n"
+"- amount\n"
+"- when started\n"
+"- attempts to quit\n"
+"..."
+msgstr ""
+
+msgid ""
+"When did the patient quit?\n"
+"\n"
+"You can also set a target quit date here."
+msgstr ""
+
+msgid "Check here to confirm for today."
+msgstr ""
+
+#, fuzzy
+msgid "Quit date"
+msgstr "ημέρα"
+
+#, fuzzy
+msgid "Last confirmed"
+msgstr "<τελευταία επιβεβαιώμένη>"
+
 msgid "Closed episodes"
 msgstr ""
 
@@ -5217,23 +5329,21 @@ msgstr ""
 msgid "Show:"
 msgstr ""
 
-msgid "Brand by component"
-msgstr ""
+#, fuzzy
+msgid "Kidneys"
+msgstr "Νεφρός"
 
 #, fuzzy
 msgid "Brands"
 msgstr "Μάρκα"
 
 #, fuzzy
-msgid "Kidneys"
-msgstr "Νεφρός"
-
-msgid "Unbranded substance"
-msgstr ""
+msgid "Substances"
+msgstr "Ουσία"
 
 #, fuzzy
-msgid "Manage"
-msgstr "&Διαχείριση"
+msgid "&Unknown or date:"
+msgstr "Άγνωστη αντίδραση"
 
 msgid "Approved of"
 msgstr "Εγκρίθηκε από"
@@ -5248,23 +5358,20 @@ msgid "... Reason"
 msgstr "...αιτία"
 
 msgid ""
-"A component of a drug brand the patient is taking.\n"
+"A drug the patient is taking.\n"
 "\n"
-"Lookup, and select, a single- (or multi-) component drug brand, by active "
-"ingredient name. All components of multi-component drugs will be displayed "
-"and automatically added to the patient's list."
-msgstr ""
-
-msgid ""
-"Manage drug brands.\n"
+"Lookup and select an intake by either of\n"
+"- a generic substance name\n"
+"- a drug brand name\n"
+"- an active ingredient of a drug\n"
 "\n"
-"Note that this will not select a component for you. What it does is to let "
-"you manage (add/edit/delete) the drug products/brands known to GNUmed from "
-"which you can select a component."
+"Note that all components of multi-component drugs will be displayed and "
+"automatically added to the patient's list."
 msgstr ""
 
-msgid "The active ingredients of this brand."
-msgstr "Η ενεργός ουσία για αυτό το σκεύασμα."
+#, fuzzy
+msgid "Details on the selected drug."
+msgstr "Επεξεργασία του επιλεγμένου αντικειμένου."
 
 msgid "Show cardiac information relevant to substance selection."
 msgstr ""
@@ -5273,8 +5380,11 @@ msgid "Show renal insufficiency information related to substance selection."
 msgstr ""
 
 msgid ""
-"The non-branded medication or non-medication substance, with optional "
-"strength."
+"Manage drug brands.\n"
+"\n"
+"Note that this will not select a component for you. What it does is to let "
+"you manage (add/edit/delete) the drug products/brands known to GNUmed from "
+"which you can select a component."
 msgstr ""
 
 msgid ""
@@ -5288,11 +5398,19 @@ msgstr ""
 msgid "The preparation or form of the substance."
 msgstr "Ο σκοπός της χρήσης αυτής της ουσίας."
 
+msgid "Check here if the start date simply isn't known."
+msgstr ""
+
 msgid ""
 "When was this substance started to be consumed or - if not known - the "
 "earliest it is known to have been be consumed."
 msgstr ""
 
+msgid ""
+"A coment on the certainty of the start date, such as \"+/- 3 weeks\", "
+"\"spring of 2002\", \"shortly after Easter 1996\", ...."
+msgstr ""
+
 msgid "Whether this substance is taken by advice."
 msgstr "Εάν αυτή η ουσία λαμβάνετε από συμβουλή."
 
@@ -5327,6 +5445,17 @@ msgstr "Πίεσε εάν η διακοπή ήταν προγραμματισμ
 msgid "Reason for discontinuation."
 msgstr "Λόγος διακοπής."
 
+msgid "Drug"
+msgstr "Φάρμακο"
+
+#, fuzzy
+msgid "Research:"
+msgstr "Αναζήτηση"
+
+#, fuzzy
+msgid "Certainty:"
+msgstr "Συνέχεια"
+
 msgid "Schedule"
 msgstr "Προγραμματισμός"
 
@@ -5481,6 +5610,34 @@ msgstr ""
 msgid "Channel"
 msgstr "Κανάλι"
 
+#, fuzzy
+msgid "&Last modification time"
+msgstr "Τελευταία τροποποίηση:"
+
+#, fuzzy
+msgid "&Entry time"
+msgstr "Άρχισε νέο"
+
+msgid "Show journal ordered by encounter."
+msgstr ""
+
+msgid "Show journal ordered by time of last modification."
+msgstr ""
+
+msgid "Show journal ordered by actual clinical time of each entry."
+msgstr ""
+
+#, fuzzy
+msgid "Edit the selected chart entry."
+msgstr "Επεξεργασία του επιλεγμένου αντικειμένου."
+
+#, fuzzy
+msgid "Delete selected chart entry."
+msgstr "Διαγραφή ονόματος"
+
+msgid "Order by:"
+msgstr ""
+
 msgid "Chec&k"
 msgstr ""
 
@@ -6058,12 +6215,16 @@ msgstr "Μετρήσεις"
 msgid "Documents:"
 msgstr "Αρχεία:"
 
+msgid "&L"
+msgstr ""
+
 #, fuzzy
 msgid "&N"
 msgstr "&Νέο"
 
-msgid "&L"
-msgstr ""
+#, fuzzy
+msgid "List all encounters."
+msgstr "%s: συνεδρία (%s)"
 
 #, fuzzy
 msgid "The encounter."
@@ -6073,10 +6234,6 @@ msgstr "Συνεδρία"
 msgid "Start a new encounter for the active patient."
 msgstr "Αρχή νέας συνεδρίας για τον ενεργό ασθενή αμέσως τώρα."
 
-#, fuzzy
-msgid "List all encounters."
-msgstr "%s: συνεδρία (%s)"
-
 msgid "Clinically relevant"
 msgstr "Κλινικά συναφές"
 
@@ -6337,10 +6494,12 @@ msgstr ""
 msgid "Manage dynamic hints."
 msgstr "Αποθήκευση εγγράφου"
 
+#, fuzzy
 msgid ""
 "Rationale for\n"
-"suppression"
-msgstr ""
+"suppression\n"
+"for this patient"
+msgstr "Κράτα *αυτόν* τον ασθενή"
 
 #, fuzzy
 msgid "Save &under"
@@ -6410,6 +6569,13 @@ msgstr ""
 msgid "Encounter:"
 msgstr "Συνεδρία:"
 
+#, fuzzy
+msgid "Manage"
+msgstr "&Διαχείριση"
+
+msgid "&Panel:"
+msgstr ""
+
 msgid "&Pick"
 msgstr ""
 
@@ -6452,6 +6618,10 @@ msgid ""
 "To disable that popup leave the message empty."
 msgstr ""
 
+#, fuzzy
+msgid "Show search dialog."
+msgstr "Κλείσιμο αυτού του διαλόγου."
+
 msgid "THIS IS NOT A VERIFIED MEASUREMENT. DO NOT USE FOR ACTUAL CARE."
 msgstr ""
 
@@ -6739,6 +6909,54 @@ msgstr "*έχει* αλλεργίες"
 msgid "ERROR: unknown allergy state [%s]"
 msgstr "ΣΦΑΛΜΑ: άγνωστη αλλεργική κατάσταση [%s]"
 
+msgid "definite"
+msgstr ""
+
+#, fuzzy
+msgid "indefinite"
+msgstr "&Προσδιορισμένο"
+
+#, fuzzy
+msgid "Reaction:"
+msgstr "Αντίδραση"
+
+#, fuzzy
+msgid "Noted:"
+msgstr "&Σημείωση"
+
+#, fuzzy
+msgid "Allergene:"
+msgstr "Αλλεργίες"
+
+#, fuzzy
+msgid "Substance:"
+msgstr "Ουσία"
+
+#, fuzzy
+msgid "Code:"
+msgstr " Κωδικός: %s\n"
+
+msgid "ATC:"
+msgstr ""
+
+#, fuzzy
+msgid "Specific to:"
+msgstr "Θέστε σε:"
+
+#, fuzzy
+msgid "this substance only"
+msgstr "Πρόσθεση καταγραφής της χρήσης μιας φαρμακευτικής αγωγής/ουσίας."
+
+msgid "drug class"
+msgstr ""
+
+msgid "unknown"
+msgstr "άγνωστο"
+
+#, fuzzy
+msgid "Generics:"
+msgstr "Γενόσημα"
+
 msgid "Medication history"
 msgstr "Ιατρικό Ιστορικό"
 
@@ -6750,9 +6968,15 @@ msgstr "Συνταγές"
 msgid "prescription data"
 msgstr "Συνταγές"
 
+msgid "Consumable substance"
+msgstr ""
+
 msgid "in use"
 msgstr "σε χρήση"
 
+msgid "w/"
+msgstr ""
+
 msgid "long-term"
 msgstr "μακροπρόθεσμο"
 
@@ -6772,24 +6996,50 @@ msgid "?ongoing"
 msgstr ""
 
 #, python-format
-msgid "Substance intake entry (%s, %s)   [#%s]                     \n"
+msgid ""
+"Substance abuse entry                                              [#%s]\n"
 msgstr ""
 
-msgid "active, needs check"
-msgstr ""
+#, fuzzy, python-format
+msgid "Substance: %s [#%s]%s\n"
+msgstr "Ουσία"
 
-msgid "assumed active"
-msgstr ""
+#, fuzzy, python-format
+msgid "Use type: %s\n"
+msgstr "Ημερομηνία: %s\n"
 
-msgid "approved"
-msgstr "εγκεκριμένο"
+#, fuzzy, python-format
+msgid "Last checked: %s\n"
+msgstr "Εργάστηκε για τελευταία φορά στις:%s\n"
 
-msgid "unapproved"
-msgstr "χωρίς έγκριση"
+#, python-format
+msgid " Discontinued %s\n"
+msgstr ""
 
-msgid "definite"
+#, fuzzy, python-format
+msgid " Notes: %s\n"
+msgstr "Ημερομηνία: %s\n"
+
+#, python-format
+msgid "Revision: #%(row_ver)s, %(mod_when)s by %(mod_by)s."
+msgstr ""
+
+#, python-format
+msgid "Substance intake entry (%s, %s)   [#%s]                     \n"
+msgstr ""
+
+msgid "active, needs check"
+msgstr ""
+
+msgid "assumed active"
 msgstr ""
 
+msgid "approved"
+msgstr "εγκεκριμένο"
+
+msgid "unapproved"
+msgstr "χωρίς έγκριση"
+
 msgid "suspected"
 msgstr ""
 
@@ -6836,10 +7086,6 @@ msgid " (short-term)"
 msgstr ""
 
 #, python-format
-msgid " Discontinued %s\n"
-msgstr ""
-
-#, python-format
 msgid " Reason: %s\n"
 msgstr " Αιτία: %s\n"
 
@@ -6859,20 +7105,68 @@ msgstr "θέμα υγείας:%s"
 msgid " Advice: %s\n"
 msgstr ""
 
-#, python-format
-msgid "Revision: #%(row_ver)s, %(mod_when)s by %(mod_by)s."
+#, fuzzy
+msgid "medication, not abuse"
+msgstr "Πρόσθεση καταγραφής της χρήσης μιας φαρμακευτικής αγωγής/ουσίας."
+
+msgid "no or non-harmful use"
+msgstr ""
+
+msgid "presently harmful use"
+msgstr ""
+
+msgid "presently addicted"
+msgstr ""
+
+msgid "previously addicted"
 msgstr ""
 
 #, fuzzy, python-format
-msgid "%s: %s ago"
+msgid "%s%s: %s ago%s"
 msgstr "Ημερομηνία: %s\n"
 
 #, fuzzy, python-format
-msgid "%s: %s ago (%s)"
+msgid "%s%s: %s ago (%s)"
+msgstr ""
+"%s: %s από  %.8s (v%s)\n"
+"%s"
+
+#, fuzzy, python-format
+msgid "%s%s%s (%s ago)"
+msgstr ""
+"%s: %s από  %.8s (v%s)\n"
+"%s"
+
+#, fuzzy, python-format
+msgid "%s%s%s (%s ago, %s)"
 msgstr ""
 "%s: %s από  %.8s (v%s)\n"
 "%s"
 
+#, python-format
+msgid "%s ago"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "in %s"
+msgstr "σε %d μέρα(ες): %s"
+
+#, fuzzy, python-format
+msgid ", until %s (%s)"
+msgstr "Εργαστήριο: %s\n"
+
+#, python-format
+msgid " (planned for %s%s)"
+msgstr ""
+
+#, python-format
+msgid ", planned for %s%s"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "%s ago (for %s: %s %s %s)"
+msgstr " Διάρκεια: %s (%s - %s)"
+
 msgid "Additional notes"
 msgstr "Επιπλέον σημειώσεις"
 
@@ -6885,13 +7179,36 @@ msgstr "Λίστα φαρμάκων"
 msgid "ordered by brand"
 msgstr "ταξινόμηση ανά μάρκα"
 
-msgid "Drug"
-msgstr "Φάρμακο"
-
 #, fuzzy
 msgid "Regimen / Advice"
 msgstr "Αγωγή"
 
+#, fuzzy, python-format
+msgid "Component of %s (%s)"
+msgstr "Συστατικά"
+
+#, fuzzy, python-format
+msgid "ATC (substance): %s"
+msgstr "Ουσία"
+
+#, python-format
+msgid "ATC (brand): %s"
+msgstr ""
+
+msgid "this is a component of a fake brand"
+msgstr ""
+
+#, fuzzy
+msgid "Components:"
+msgstr "Συστατικά"
+
+msgid "this is a fake brand"
+msgstr ""
+
+#, fuzzy
+msgid "this is a vaccine"
+msgstr "εμβόλιο"
+
 msgid "units"
 msgstr "μονάδες"
 
@@ -6927,52 +7244,15 @@ msgid "Expires: %s\n"
 msgstr "Εξήχθηκε: %s\n"
 
 #, fuzzy
-msgid "Active clinical hint"
-msgstr "Πρόβλημα"
-
-#, fuzzy
-msgid "Inactive clinical hint"
-msgstr "αποθήκευση κλινικής σημείωσης στον ΗΙΦ"
-
-#, python-format
-msgid "Source: %s\n"
-msgstr "Προέλευση:%s\n"
-
-#, fuzzy, python-format
-msgid "Language: %s\n"
-msgstr "Γλώσσα"
-
-#, fuzzy
-msgid "Suppressed active dynamic hint"
-msgstr "Αποθήκευση εγγράφου"
-
-#, fuzzy
-msgid "Suppressed inactive dynamic hint"
-msgstr "Αποθήκευση εγγράφου"
-
-#, fuzzy, python-format
-msgid "Suppressed by: %s\n"
-msgstr "Προέλευση:%s\n"
-
-#, fuzzy, python-format
-msgid "Suppressed at: %s\n"
-msgstr "Προέλευση:%s\n"
-
-#, fuzzy, python-format
-msgid "Hint #: %s\n"
-msgstr "Ημερομηνία: %s\n"
+msgid "HL7 Source"
+msgstr "Πηγή HTML"
 
-#, fuzzy, python-format
-msgid "Patient #: %s\n"
-msgstr "Ασθενής"
+msgid "HL7 data size"
+msgstr ""
 
 #, fuzzy, python-format
-msgid "MD5 (currently): %s\n"
-msgstr "Αρχεία:%s"
-
-#, python-format
-msgid "MD5 (at suppression): %s\n"
-msgstr ""
+msgid "%s bytes"
+msgstr "%s Bytes"
 
 #, fuzzy
 msgid "HL7 Message"
@@ -7029,13 +7309,6 @@ msgstr "Αρχείο καταγραφής"
 msgid "doc: %s"
 msgstr "   Έγγραφο: %s"
 
-msgid "no patient photograph available"
-msgstr ""
-
-#, python-format
-msgid "patient photograph from %s"
-msgstr ""
-
 #, fuzzy
 msgid "Patient data for"
 msgstr "Ασθενής"
@@ -7047,6 +7320,9 @@ msgstr ""
 msgid "Patient data export"
 msgstr "Αποστολή αναφοράς"
 
+msgid "no patient photograph available"
+msgstr ""
+
 msgid "Documents"
 msgstr "Έγγραφα"
 
@@ -7057,6 +7333,10 @@ msgstr ""
 msgid "browse documents area"
 msgstr "Επισύναψη αρχείων"
 
+#, python-format
+msgid "patient photograph from %s"
+msgstr ""
+
 #, fuzzy
 msgid "Browse patient data"
 msgstr "Αποθήκευση εγγράφου"
@@ -7106,24 +7386,24 @@ msgstr ""
 #, python-format
 msgid ""
 "%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s %(suburb)s, "
-"%(code_state)s, %(code_country)s"
+"%(code_region)s, %(code_country)s"
 msgstr ""
 
 #, python-format
 msgid ""
 "%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s %(suburb)s, "
-"%(code_state)s, %(code_country)s"
+"%(code_region)s, %(code_country)s"
 msgstr ""
 
 #, python-format
 msgid ""
-"%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_state)s, "
-"%(code_country)s"
+"%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, "
+"%(code_region)s, %(code_country)s"
 msgstr ""
 
 #, python-format
 msgid ""
-"%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_state)s, "
+"%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_region)s, "
 "%(code_country)s"
 msgstr ""
 
@@ -7133,30 +7413,30 @@ msgid ""
 " Street: %(street)s%(notes_street)s\n"
 " Number/Unit: %(number)s%(subunit)s%(notes_subunit)s\n"
 " Location: %(zip)s %(urb)s%(suburb)s\n"
-" Region: %(l10n_state)s, %(code_state)s\n"
+" Region: %(l10n_region)s, %(code_region)s\n"
 " Country: %(l10n_country)s, %(code_country)s"
 msgstr ""
 "Διεύθυνση [#%(pk_adr)s] \n"
 " Οδός: %(street)s%(notes_street)s\n"
 " Αριθμός / Μονάδα:: %(number)s%(subunit)s%(notes_subunit)s\n"
 " Τοποθεσία:%(zip)s %(urb)s%(suburb)s\n"
-" Περιοχή: %(l10n_state)s, %(code_state)s\n"
+" Περιοχή: %(l10n_region)s, %(code_region)s\n"
 " Χώρα: %(l10n_country)s, %(code_country)s"
 
-#, python-format
+#, fuzzy, python-format
 msgid ""
 "Address [#%(pk_adr)s]\n"
 " Street: %(street)s%(notes_street)s\n"
 " Number/Unit: %(number)s%(subunit)s%(notes_subunit)s\n"
 " Location: %(zip)s %(urb)s%(suburb)s\n"
-" Region: %(l10n_state)s, %(code_state)s\n"
+" Region: %(l10n_region)s, %(code_region)s\n"
 " Country: %(l10n_country)s, %(code_country)s"
 msgstr ""
 "Διεύθυνση [#%(pk_adr)s] \n"
 " Οδός: %(street)s%(notes_street)s\n"
 " Αριθμός / Μονάδα:: %(number)s%(subunit)s%(notes_subunit)s\n"
 " Τοποθεσία:%(zip)s %(urb)s%(suburb)s\n"
-" Περιοχή: %(l10n_state)s, %(code_state)s\n"
+" Περιοχή: %(l10n_region)s, %(code_region)s\n"
 " Χώρα: %(l10n_country)s, %(code_country)s"
 
 msgid "Textual keyword expansion"
@@ -7227,6 +7507,96 @@ msgstr "διορθωμένο αποτέλεσμα"
 msgid "missing, reported later"
 msgstr "λείπει, ανέφερε αργότερα"
 
+msgid "Health issue"
+msgstr "Θέμα υγείας"
+
+#, fuzzy
+msgid "External care"
+msgstr "ID εξωτερικού ασθενούς"
+
+msgid "Vaccination"
+msgstr "Εμβολιασμός"
+
+#, fuzzy
+msgid "Clinical narrative"
+msgstr "Κλινικά"
+
+#, fuzzy
+msgid "Test result"
+msgstr "Αποτελέσματα της εξέτασης"
+
+#, fuzzy
+msgid "Substance intake"
+msgstr "Ουσία"
+
+#, fuzzy
+msgid "Hospital stay"
+msgstr "Νοσοκομείο"
+
+#, fuzzy
+msgid "Performed procedure"
+msgstr ""
+" %s εκτελεσμένες επεμβάσεις\n"
+"\n"
+
+#, fuzzy
+msgid "Family history"
+msgstr "Οικογενειακό Ιστορικό"
+
+#, fuzzy
+msgid "Document"
+msgstr "Έγγραφα"
+
+#, python-format
+msgid "unmapped entry type from table [%s]"
+msgstr ""
+
+#, python-format
+msgid "cannot instantiate clinical root item <%s(%s)>"
+msgstr ""
+
+msgid "True"
+msgstr ""
+
+msgid "False"
+msgstr ""
+
+#, fuzzy
+msgid "unknown smoking status"
+msgstr "Επεξεργασία φαρμακευτικής αγωγής"
+
+msgid "non-smoker"
+msgstr ""
+
+msgid "current smoker"
+msgstr ""
+
+msgid "ex-smoker"
+msgstr ""
+
+msgid "tobacco addiction"
+msgstr ""
+
+msgid "no or non-harmful alcohol use"
+msgstr ""
+
+msgid "harmful alcohol use"
+msgstr ""
+
+#, fuzzy
+msgid "unknown alcohol use"
+msgstr "Άγνωστη αλλεργική κατάσταση"
+
+msgid "no or non-harmful drug use"
+msgstr ""
+
+msgid "harmful drug use"
+msgstr ""
+
+#, fuzzy
+msgid "unknown drug use"
+msgstr "Άγνωστη αλλεργική κατάσταση"
+
 msgid "original entry"
 msgstr "αρχική καταχώρηση"
 
@@ -7330,14 +7700,6 @@ msgstr "Απασχολήσεις"
 msgid "Vaccinations"
 msgstr "Εμβολιασμοί"
 
-#, python-format
-msgid "%s ago"
-msgstr ""
-
-#, fuzzy
-msgid "External care"
-msgstr "ID εξωτερικού ασθενούς"
-
 #, fuzzy
 msgid "Allergies/Intolerances"
 msgstr "αλλεργίες/δυσανεξίες"
@@ -7414,77 +7776,131 @@ msgid ""
 "The account was deactivated instead."
 msgstr ""
 
-#, python-format
-msgid "Device(%s):"
-msgstr "Συσκευή(%s):"
+msgid "SOAP_char_S=S"
+msgstr ""
 
-msgid "Battery:"
-msgstr "Μπαταρία:"
+msgid "SOAP_char_O=O"
+msgstr ""
 
-msgid "Implanted:"
-msgstr "Εμφυτευμένο:"
+msgid "SOAP_char_A=A"
+msgstr ""
 
-msgid "last check:"
-msgstr "τελευταίος έλεγχος:"
+msgid "SOAP_char_P=P"
+msgstr ""
 
-msgid "Sensing:"
-msgstr "Τηλεπισκόπηση:"
+msgid "SOAP_char_U=U"
+msgstr ""
 
-msgid "Threshold"
-msgstr "Κατώφλι"
+msgid "SOAP_string_Subjective=Subjective"
+msgstr ""
 
-msgid "Impedance:"
-msgstr "Αντίσταση"
+msgid "SOAP_string_Objective=Objective"
+msgstr ""
 
-#, fuzzy, python-format
-msgid "Praxis branch                   #%s\n"
-msgstr " Όνομα: %s (%s)%s #%s\n"
+msgid "SOAP_string_Assessment=Assessment"
+msgstr ""
+
+msgid "SOAP_string_Plan=Plan"
+msgstr ""
+
+msgid "SOAP_string_Unspecified=Unspecified"
+msgstr ""
+
+msgid "SOAP_string_Administrative=Administrative"
+msgstr ""
 
 #, fuzzy
-msgid "Privacy notice"
-msgstr "Ιδιωτικό"
+msgid "Active clinical hint"
+msgstr "Πρόβλημα"
+
+#, fuzzy
+msgid "Inactive clinical hint"
+msgstr "αποθήκευση κλινικής σημείωσης στον ΗΙΦ"
 
 #, python-format
-msgid ""
-"%s: Your chart has been accessed by %s (without user interaction, probably "
-"by a script)."
-msgstr ""
+msgid "Source: %s\n"
+msgstr "Προέλευση:%s\n"
+
+#, fuzzy, python-format
+msgid "Language: %s\n"
+msgstr "Γλώσσα"
+
+#, fuzzy
+msgid "Suppressed active dynamic hint"
+msgstr "Αποθήκευση εγγράφου"
+
+#, fuzzy
+msgid "Suppressed inactive dynamic hint"
+msgstr "Αποθήκευση εγγράφου"
+
+#, fuzzy, python-format
+msgid "Suppressed by: %s\n"
+msgstr "Προέλευση:%s\n"
+
+#, fuzzy, python-format
+msgid "Suppressed at: %s\n"
+msgstr "Προέλευση:%s\n"
+
+#, fuzzy, python-format
+msgid "Hint #: %s\n"
+msgstr "Ημερομηνία: %s\n"
+
+#, fuzzy, python-format
+msgid "Patient #: %s\n"
+msgstr "Ασθενής"
+
+#, fuzzy, python-format
+msgid "MD5 (currently): %s\n"
+msgstr "Αρχεία:%s"
 
 #, python-format
-msgid "%s: Staff member %s has been notified of your chart access."
+msgid "MD5 (at suppression): %s\n"
 msgstr ""
 
-msgid "soap_S"
-msgstr ""
+#, python-format
+msgid "Device(%s):"
+msgstr "Συσκευή(%s):"
 
-msgid "soap_O"
-msgstr ""
+msgid "Battery:"
+msgstr "Μπαταρία:"
 
-msgid "soap_A"
-msgstr ""
+msgid "Implanted:"
+msgstr "Εμφυτευμένο:"
 
-msgid "soap_P"
-msgstr ""
+msgid "last check:"
+msgstr "τελευταίος έλεγχος:"
 
-msgid "soap_U"
-msgstr ""
+msgid "Sensing:"
+msgstr "Τηλεπισκόπηση:"
 
-msgid "soap_Subjective"
-msgstr ""
+msgid "Threshold"
+msgstr "Κατώφλι"
 
-msgid "soap_Objective"
-msgstr ""
+msgid "Impedance:"
+msgstr "Αντίσταση"
 
-msgid "soap_Assessment"
-msgstr ""
+#, fuzzy, python-format
+msgid "Praxis branch                   #%s\n"
+msgstr " Όνομα: %s (%s)%s #%s\n"
 
-msgid "soap_Plan"
+#, python-format
+msgid ""
+"FN:%(l10n_unit_category)s %(branch)s of %(l10n_organization_category)s "
+"%(praxis)s"
 msgstr ""
 
-msgid "soap_Unspecified"
+#, fuzzy
+msgid "Privacy notice"
+msgstr "Ιδιωτικό"
+
+#, python-format
+msgid ""
+"%s: Your chart has been accessed by %s (without user interaction, probably "
+"by a script)."
 msgstr ""
 
-msgid "soap_Administrative"
+#, python-format
+msgid "%s: Staff member %s has been notified of your chart access."
 msgstr ""
 
 #, python-format
@@ -7555,9 +7971,17 @@ msgid "%(last)s,%(title)s %(first)s%(nick)s (%(sex)s)"
 msgstr ""
 
 #, python-format
+msgid "%(last)s,%(title)s %(first)s (%(sex)s)"
+msgstr ""
+
+#, python-format
 msgid "%(last)s,%(title)s %(first)s%(nick)s"
 msgstr ""
 
+#, python-format
+msgid "%(last)s,%(title)s %(first)s"
+msgstr ""
+
 msgid "Cannot merge active patient into another patient."
 msgstr "Δεν είναι δυνατή η συγχώνευση ενεργού ασθενή σε άλλον ασθενή."
 
@@ -7568,9 +7992,6 @@ msgstr ""
 msgid "merged"
 msgstr "Συγχώνευση"
 
-msgid "preferred name/call name/..."
-msgstr ""
-
 msgid "invalid age: DOB in the future"
 msgstr ""
 
@@ -7583,9 +8004,6 @@ msgstr "Κύριος"
 msgid "Mrs"
 msgstr "Κυρία"
 
-msgid "unknown"
-msgstr "άγνωστο"
-
 #, fuzzy
 msgid "empty status"
 msgstr "κατάσταση"
@@ -7933,7 +8351,7 @@ msgstr ""
 "%s"
 
 #, fuzzy, python-format
-msgid " Filename: %s\n"
+msgid " Filename: %s%s\n"
 msgstr "Όνομα αρχείου"
 
 #, fuzzy
@@ -7948,19 +8366,26 @@ msgstr "μέρος"
 msgid "%s parts"
 msgstr "μέρος"
 
+#, fuzzy, python-format
+msgid "%s of %s"
+msgstr " %s Αρχείο\n"
+
 #, python-format
 msgid ""
 "%s (%s)   #%s\n"
-"\n"
 " Created: %s\n"
 " Episode: %s\n"
-"%s%s%s"
+"%s%s%s%s"
 msgstr ""
 
 #, python-format
 msgid " External reference: %s\n"
 msgstr ""
 
+#, fuzzy, python-format
+msgid " Organization: %%s @ %s\n"
+msgstr "Ογανισμός: %s (%s)"
+
 msgid "Cannot run [arriba] !"
 msgstr "Δεν μπορεί να τρέξει το [Arriba]!"
 
@@ -8316,26 +8741,9 @@ msgid "External care:"
 msgstr "ID εξωτερικού ασθενούς"
 
 #, fuzzy, python-format
-msgid ""
-"health issue: %s%s%s\n"
-"\n"
+msgid "Health issue: %s%s%s"
 msgstr "θέμα υγείας:%s"
 
-#, fuzzy
-msgid ""
-"\n"
-"current values:\n"
-msgstr "<τρέχουσα αλλεργική κατάσταση>"
-
-msgid "no previous versions of this record"
-msgstr ""
-
-msgid ""
-"\n"
-"all values with <audit_action>, <audit_when>, <audit_by> fields (current "
-"value first):\n"
-msgstr ""
-
 msgid "Unattributed episodes"
 msgstr "Μη καθορισμένα επεισόδια"
 
@@ -8358,9 +8766,6 @@ msgstr " Διάρκεια: %s (%s - %s)"
 msgid "finished"
 msgstr "ολοκληρώθηκε"
 
-msgid "Health issue"
-msgstr "Θέμα υγείας"
-
 msgid "none associated"
 msgstr ""
 
@@ -8397,9 +8802,7 @@ msgid "Measurements and Results:"
 msgstr "Μετρήσεις και Αποτελέσματα:"
 
 #, fuzzy, python-format
-msgid ""
-"episode: %s%s%s\n"
-"\n"
+msgid "Episode: %s%s%s"
 msgstr "Επεισόδια %s%s%s [#%s]"
 
 #, python-format
@@ -8428,9 +8831,7 @@ msgid "%s other episodes touched upon during this encounter:"
 msgstr ""
 
 #, fuzzy, python-format
-msgid ""
-"encounter: %s%s%s\n"
-"\n"
+msgid "Encounter: %s%s%s"
 msgstr "Συνεδρίες: %s (%s - %s):"
 
 msgid " (ongoing)"
@@ -8455,10 +8856,6 @@ msgstr "Νοσοκομείο"
 msgid "Procedures"
 msgstr ""
 
-#, fuzzy
-msgid "Substances"
-msgstr "Ουσία"
-
 msgid "Life events"
 msgstr ""
 
@@ -8483,9 +8880,6 @@ msgstr ""
 msgid "Cannot display timeline."
 msgstr "Δημιουργία νέου"
 
-msgid "Vaccination"
-msgstr "Εμβολιασμός"
-
 msgid "Lab result"
 msgstr "Εργαστηριακό αποτέλεσμα"
 
@@ -8568,9 +8962,6 @@ msgstr "Πότε"
 msgid "Exported: %s\n"
 msgstr "Εξήχθηκε: %s\n"
 
-msgid "emr-journal"
-msgstr "τεπ-ημερολόγιο"
-
 msgid "Chronological EMR Journal\n"
 msgstr "Χρονολογική Εφημερίδα Ηλεκτρονικού Ιατρικού Φακέλου\n"
 
@@ -8850,16 +9241,7 @@ msgstr ""
 msgid "Select one or more codes that apply."
 msgstr ""
 
-msgid "Cannot move progress notes. No active patient."
-msgstr ""
-
-msgid "Moving progress notes between encounters ..."
-msgstr ""
-
-msgid ""
-"\n"
-" Select the progress notes to move from the list !\n"
-"\n"
+msgid "Select the narrative you are interested in ..."
 msgstr ""
 
 msgid "when"
@@ -8871,108 +9253,240 @@ msgstr "ποιος"
 msgid "entry"
 msgstr "καταχώρηση"
 
-msgid "Cannot edit progress notes. No active patient."
+msgid "There is no narrative for this episode in this encounter."
 msgstr ""
 
-msgid "Deleting progress note"
+msgid "Must select episode to move narrative to first."
 msgstr ""
 
-msgid ""
-"Are you positively sure you want to delete this\n"
-"progress note from the medical record ?\n"
-"\n"
-"Note that even if you chose to delete the entry it will\n"
-"still be (invisibly) kept in the audit trail to protect\n"
-"you from litigation because physical deletion is known\n"
-"to be unlawful in some jurisdictions.\n"
-msgstr ""
+msgid "Last"
+msgstr "Τελευταίο"
 
-msgid "Yes, delete the progress note."
+#, fuzzy
+msgid "In health issue"
+msgstr "Θέμα υγείας"
+
+msgid "Most recent notes on selected problem"
 msgstr ""
 
-msgid "No, do NOT delete the progress note."
+#, python-format
+msgid "%s (active+potential) problems"
 msgstr ""
 
-msgid "Editing progress note"
+#, python-format
+msgid "%s active problems"
 msgstr ""
 
-msgid "This is the original progress note:"
+msgid "Current encounter:"
 msgstr ""
 
-msgid "Managing progress notes"
+msgid "Cumulative summary"
 msgstr ""
 
+#, fuzzy, python-format
+msgid "Most recent info on %s%s%s"
+msgstr " Πιο πρόσφατο:%s-%s"
+
 #, python-format
 msgid ""
+"Cannot open progress note editor for\n"
 "\n"
-" This list shows the progress notes by %s.\n"
+"[%s].\n"
 "\n"
 msgstr ""
 
-msgid "Enter (regex) term to search for across all EMRs:"
+msgid "opening progress note editor"
 msgstr ""
 
-msgid "Text search across all EMRs"
-msgstr "Αναζήτηση κειμένου ανάμεσα σε όλους τους ΗΙΦ."
-
-#, python-format
-msgid ""
-"Nothing found for search term:\n"
-" \"%s\""
+msgid "Cannot save all editors. Some were kept open."
 msgstr ""
 
-msgid "Search results"
-msgstr "Αποτελέσματα αναζήτησης"
-
-#, fuzzy, python-format
-msgid "Search results for [%s]"
-msgstr "Αποτελέσματα αναζήτησης για %s"
-
-msgid "Match"
-msgstr "Ταίριασμα"
-
-msgid "Match location"
+msgid "new problem"
 msgstr ""
 
-msgid "Cannot search EMR. No active patient."
-msgstr "Δεν μπορώ να ψάξω στον ΗΙΦ. Δεν υπάρχει ενεργός ασθενής."
-
-msgid "Enter search term:"
+msgid ""
+"Are you sure you really want to\n"
+"discard this progress note ?\n"
 msgstr ""
 
-msgid "Text search of entire EMR of active patient"
-msgstr "Αναζήτηση κειμένου σε όλο τον ΗΙΦ του ενεργού ασθενούς"
+msgid "Discarding progress note"
+msgstr ""
 
-#, python-format
-msgid ""
-"Search term was: \"%s\"\n"
-"\n"
-"Search results:\n"
-"\n"
-"%s\n"
+msgid "There are unsaved progress notes !\n"
 msgstr ""
-"Η φραστική διατύπωση της αναζήτησης ήταν:\"%s\"\n"
-"\n"
-"Τα αποτελέσματα της αναζήτησης:\n"
-"\n"
-"%s\n"
 
-msgid "Cannot export EMR for Medistar. No active patient."
+msgid "Unsaved progress notes"
 msgstr ""
 
-msgid "text files"
-msgstr "αρχεία κειμένου"
+#, fuzzy
+msgid "Problem list"
+msgstr "Πρόβλημα"
 
-msgid "all files"
-msgstr "όλα τα αρχεία"
+msgid "Saving SOAP note"
+msgstr ""
 
-msgid "Save EMR extract for MEDISTAR import as..."
+msgid "Do you want to save the SOAP note ?"
 msgstr ""
 
-msgid "Error exporting progress notes for MEDISTAR import."
+#, python-format
+msgid "&Filter by problem %s%s%s"
 msgstr ""
 
-msgid "MEDISTAR progress notes export"
+msgid "Cannot save SimpleNotes SOAP note."
+msgstr ""
+
+#, fuzzy, python-format
+msgid "Progress note: %s%s"
+msgstr "Σημειώσεις προόδου"
+
+#, fuzzy
+msgid "Please enter a name for the new problem:"
+msgstr "Παρακαλώ δώστε τον κωδικό πρόσβασης σας:"
+
+#, fuzzy
+msgid "Adding a problem"
+msgstr "πρόβλημα"
+
+msgid "Cannot delete problem. There is still clinical data recorded for it."
+msgstr ""
+
+#, python-format
+msgid "GNUmed: configuring [%s] (%s plugins)"
+msgstr ""
+
+msgid "loading list of plugins                               "
+msgstr ""
+
+msgid "failed"
+msgstr "απέτυχε"
+
+msgid "success"
+msgstr "επιτυχία"
+
+#, python-format
+msgid ""
+"previous: %s (%s)\n"
+"current (%s/%s): %s"
+msgstr ""
+
+#, python-format
+msgid "Cannot switch to [%s]: no patient selected"
+msgstr ""
+
+msgid "Cannot move progress notes. No active patient."
+msgstr ""
+
+msgid "Moving progress notes between encounters ..."
+msgstr ""
+
+msgid ""
+"\n"
+" Select the progress notes to move from the list !\n"
+"\n"
+msgstr ""
+
+msgid "Cannot edit progress notes. No active patient."
+msgstr ""
+
+msgid "Deleting progress note"
+msgstr ""
+
+msgid ""
+"Are you positively sure you want to delete this\n"
+"progress note from the medical record ?\n"
+"\n"
+"Note that even if you chose to delete the entry it will\n"
+"still be (invisibly) kept in the audit trail to protect\n"
+"you from litigation because physical deletion is known\n"
+"to be unlawful in some jurisdictions.\n"
+msgstr ""
+
+msgid "Yes, delete the progress note."
+msgstr ""
+
+msgid "No, do NOT delete the progress note."
+msgstr ""
+
+msgid "Editing progress note"
+msgstr ""
+
+msgid "This is the original progress note:"
+msgstr ""
+
+msgid "Managing progress notes"
+msgstr ""
+
+#, python-format
+msgid ""
+"\n"
+" This list shows the progress notes by %s.\n"
+"\n"
+msgstr ""
+
+msgid "Enter (regex) term to search for across all EMRs:"
+msgstr ""
+
+msgid "Text search across all EMRs"
+msgstr "Αναζήτηση κειμένου ανάμεσα σε όλους τους ΗΙΦ."
+
+#, python-format
+msgid ""
+"Nothing found for search term:\n"
+" \"%s\""
+msgstr ""
+
+msgid "Search results"
+msgstr "Αποτελέσματα αναζήτησης"
+
+#, fuzzy, python-format
+msgid "Search results for [%s]"
+msgstr "Αποτελέσματα αναζήτησης για %s"
+
+msgid "Match"
+msgstr "Ταίριασμα"
+
+msgid "Match location"
+msgstr ""
+
+msgid "Cannot search EMR. No active patient."
+msgstr "Δεν μπορώ να ψάξω στον ΗΙΦ. Δεν υπάρχει ενεργός ασθενής."
+
+msgid "Enter search term:"
+msgstr ""
+
+msgid "Text search of entire EMR of active patient"
+msgstr "Αναζήτηση κειμένου σε όλο τον ΗΙΦ του ενεργού ασθενούς"
+
+#, python-format
+msgid ""
+"Search term was: \"%s\"\n"
+"\n"
+"Search results:\n"
+"\n"
+"%s\n"
+msgstr ""
+"Η φραστική διατύπωση της αναζήτησης ήταν:\"%s\"\n"
+"\n"
+"Τα αποτελέσματα της αναζήτησης:\n"
+"\n"
+"%s\n"
+
+msgid "Cannot export EMR for Medistar. No active patient."
+msgstr ""
+
+msgid "text files"
+msgstr "αρχεία κειμένου"
+
+msgid "all files"
+msgstr "όλα τα αρχεία"
+
+msgid "Save EMR extract for MEDISTAR import as..."
+msgstr ""
+
+msgid "Error exporting progress notes for MEDISTAR import."
+msgstr ""
+
+msgid "MEDISTAR progress notes export"
 msgstr ""
 
 #, python-format
@@ -9079,354 +9593,99 @@ msgid ""
 " Now, mark the entries you want to include in your report.\n"
 msgstr ""
 
-msgid "Select the narrative you are interested in ..."
+msgid "Pick a date ..."
 msgstr ""
 
-msgid "There is no narrative for this episode in this encounter."
+msgid "<ALT-C/K>: pick from (c/k)alendar"
 msgstr ""
 
-msgid "Must select episode to move narrative to first."
+msgid "Cannot interpret input as timestamp."
 msgstr ""
 
-msgid "Last"
-msgstr "Τελευταίο"
-
-#, fuzzy
-msgid "In health issue"
-msgstr "Θέμα υγείας"
-
-msgid "Most recent notes on selected problem"
+msgid "No vaccines were chosen"
 msgstr ""
 
 #, python-format
-msgid "%s (active+potential) problems"
+msgid "Combination of indications , %s , not found in any vaccine"
 msgstr ""
 
-#, python-format
-msgid "%s active problems"
-msgstr ""
+msgid "Sequence"
+msgstr "Ακολουθία"
 
-msgid "Current encounter:"
+msgid "Batch"
 msgstr ""
 
-msgid "Cumulative summary"
+msgid "Vaccinator"
 msgstr ""
 
-#, fuzzy, python-format
-msgid "Most recent info on %s%s%s"
-msgstr " Πιο πρόσφατο:%s-%s"
-
-#, python-format
 msgid ""
-"Cannot open progress note editor for\n"
-"\n"
-"[%s].\n"
-"\n"
-msgstr ""
-
-msgid "opening progress note editor"
-msgstr ""
-
-msgid "Cannot save all editors. Some were kept open."
+"Vaccinations by Recommender (X = patient on regime, O = patient not on "
+"regime) "
 msgstr ""
 
-msgid "new problem"
+msgid "enrolled regime vaccinations not yet given"
 msgstr ""
 
-msgid ""
-"Are you sure you really want to\n"
-"discard this progress note ?\n"
+msgid "Proceed with "
 msgstr ""
 
-msgid "Discarding progress note"
+#, python-format
+msgid "Failed to enrol patient in %s"
 msgstr ""
 
-msgid "There are unsaved progress notes !\n"
+#, python-format
+msgid "Failed to  delist patient from %s"
 msgstr ""
 
-msgid "Unsaved progress notes"
+msgid "Missing GNUmed module"
 msgstr ""
 
 #, python-format
-msgid "Synopsis (%s)"
+msgid ""
+"GNUmed detected that parts of it are not\n"
+"properly installed. The following message\n"
+"names the missing part:\n"
+"\n"
+" \"%s\"\n"
+"\n"
+"Please make sure to get the missing\n"
+"parts installed. Otherwise some of the\n"
+"functionality will not be accessible."
 msgstr ""
 
+#, fuzzy, python-format
 msgid ""
-"Enter a short working name for this new problem\n"
-"(which will become a new, unassociated episode):\n"
-msgstr ""
+"\n"
+" Source: %s"
+msgstr "Προέλευση:%s\n"
+
+#, fuzzy, python-format
+msgid ""
+"\n"
+" Code: %s"
+msgstr " Κωδικός: %s\n"
 
 #, python-format
 msgid ""
-"Enter a short working name for this new\n"
-"episode under the existing health issue\n"
 "\n"
-"\"%s\":\n"
+" Details (first 250 characters):\n"
+"%s\n"
+"%s\n"
+"%s"
 msgstr ""
 
-msgid "Creating problem (episode) to save notelet under ..."
-msgstr ""
+#, fuzzy
+msgid "Access violation"
+msgstr "Συντόμευση"
 
-msgid "Cannot save a new problem without a name."
+#, python-format
+msgid ""
+"You do not have access to this part of GNUmed.\n"
+"\n"
+"%s"
 msgstr ""
 
-msgid "saving progress note"
-msgstr ""
-
-#, python-format
-msgid ""
-"The new episode:\n"
-"\n"
-" \"%s\"\n"
-"\n"
-"will remain unassociated despite the editor\n"
-"having been invoked from the health issue:\n"
-"\n"
-" \"%s\""
-msgstr ""
-
-msgid "You need to actually set an editor."
-msgstr ""
-
-#, python-format
-msgid "The command [%s] is not found."
-msgstr "Η εντολή [%s] δεν έχει βρεθεί."
-
-#, python-format
-msgid ""
-"Enter the shell command with which to start\n"
-"the image editor for visual progress notes.\n"
-"\n"
-"Any \"%(img)s\" included with the arguments\n"
-"will be replaced by the file name of the\n"
-"note template."
-msgstr ""
-
-msgid "Choose file to use as template for new visual progress note"
-msgstr ""
-
-#, fuzzy
-msgid "Visual progress note source"
-msgstr "σημειώσεις προόδου"
-
-msgid "From which source do you want to pick the image template ?"
-msgstr ""
-
-msgid "Database"
-msgstr "Βάση δεδομένων"
-
-msgid "List of templates in the database."
-msgstr ""
-
-msgid "Files in the filesystem."
-msgstr "Αρχεία στο σύστημα αρχείων."
-
-msgid "Device"
-msgstr "Συσκευή"
-
-msgid "Image capture devices (scanners, cameras, etc)"
-msgstr ""
-
-#, python-format
-msgid "Cannot export visual progress note template for [%s]."
-msgstr ""
-
-msgid "Cannot export visual progress note to file."
-msgstr ""
-
-msgid "Editor for visual progress note not configured."
-msgstr ""
-
-#, python-format
-msgid ""
-"There was a problem with running the editor\n"
-"for visual progress notes.\n"
-"\n"
-" [%s]\n"
-"\n"
-msgstr ""
-
-msgid "Editing visual progress note"
-msgstr ""
-
-#, python-format
-msgid ""
-"There was a problem reading the visual\n"
-"progress note from the file:\n"
-"\n"
-" [%s]\n"
-"\n"
-msgstr ""
-
-msgid "Saving visual progress note"
-msgstr ""
-
-msgid ""
-"You either created a visual progress note from a template\n"
-"in the database (rather than from a file on disk) or you\n"
-"edited an existing visual progress note.\n"
-"\n"
-"The template/original was not modified at all, however.\n"
-"\n"
-"Do you still want to save the unmodified image as a\n"
-"visual progress note into the EMR of the patient ?\n"
-msgstr ""
-
-msgid "visual progress notes"
-msgstr ""
-
-#, python-format
-msgid "Created: %s"
-msgstr ""
-
-#, fuzzy
-msgid "Problem list"
-msgstr "Πρόβλημα"
-
-msgid "Saving SOAP note"
-msgstr ""
-
-msgid "Do you want to save the SOAP note ?"
-msgstr ""
-
-#, python-format
-msgid "&Filter by problem %s%s%s"
-msgstr ""
-
-msgid "Cannot save SimpleNotes SOAP note."
-msgstr ""
-
-#, fuzzy, python-format
-msgid "Progress note: %s%s"
-msgstr "Σημειώσεις προόδου"
-
-#, fuzzy
-msgid "Please enter a name for the new problem:"
-msgstr "Παρακαλώ δώστε τον κωδικό πρόσβασης σας:"
-
-#, fuzzy
-msgid "Adding a problem"
-msgstr "πρόβλημα"
-
-msgid "Cannot delete problem. There is still clinical data recorded for it."
-msgstr ""
-
-#, python-format
-msgid "GNUmed: configuring [%s] (%s plugins)"
-msgstr ""
-
-msgid "loading list of plugins                               "
-msgstr ""
-
-msgid "failed"
-msgstr "απέτυχε"
-
-msgid "success"
-msgstr "επιτυχία"
-
-#, python-format
-msgid ""
-"previous: %s (%s)\n"
-"current (%s/%s): %s"
-msgstr ""
-
-#, python-format
-msgid "Cannot switch to [%s]: no patient selected"
-msgstr ""
-
-msgid "Pick a date ..."
-msgstr ""
-
-msgid "<ALT-C/K>: pick from (c/k)alendar"
-msgstr ""
-
-msgid "Cannot interpret input as timestamp."
-msgstr ""
-
-msgid "No vaccines were chosen"
-msgstr ""
-
-#, python-format
-msgid "Combination of indications , %s , not found in any vaccine"
-msgstr ""
-
-msgid "Sequence"
-msgstr "Ακολουθία"
-
-msgid "Batch"
-msgstr ""
-
-msgid "Vaccinator"
-msgstr ""
-
-msgid ""
-"Vaccinations by Recommender (X = patient on regime, O = patient not on "
-"regime) "
-msgstr ""
-
-msgid "enrolled regime vaccinations not yet given"
-msgstr ""
-
-msgid "Proceed with "
-msgstr ""
-
-#, python-format
-msgid "Failed to enrol patient in %s"
-msgstr ""
-
-#, python-format
-msgid "Failed to  delist patient from %s"
-msgstr ""
-
-msgid "Missing GNUmed module"
-msgstr ""
-
-#, python-format
-msgid ""
-"GNUmed detected that parts of it are not\n"
-"properly installed. The following message\n"
-"names the missing part:\n"
-"\n"
-" \"%s\"\n"
-"\n"
-"Please make sure to get the missing\n"
-"parts installed. Otherwise some of the\n"
-"functionality will not be accessible."
-msgstr ""
-
-#, fuzzy, python-format
-msgid ""
-"\n"
-" Source: %s"
-msgstr "Προέλευση:%s\n"
-
-#, fuzzy, python-format
-msgid ""
-"\n"
-" Code: %s"
-msgstr " Κωδικός: %s\n"
-
-#, python-format
-msgid ""
-"\n"
-" Details (first 250 characters):\n"
-"%s\n"
-"%s\n"
-"%s"
-msgstr ""
-
-#, fuzzy
-msgid "Access violation"
-msgstr "Συντόμευση"
-
-#, python-format
-msgid ""
-"You do not have access to this part of GNUmed.\n"
-"\n"
-"%s"
-msgstr ""
-
-msgid "Lost connection"
+msgid "Lost connection"
 msgstr ""
 
 msgid ""
@@ -9814,12 +10073,75 @@ msgstr ""
 msgid "due now: booster for %s in schedule \"%s\" (%s)"
 msgstr ""
 
-#, fuzzy, python-format
-msgid "Latest: %s ago (%s %s %s %s%s)"
-msgstr "  Ο χρόνος:%s - %s (@%s = %s%s)\n"
+#, python-format
+msgid "Synopsis (%s)"
+msgstr ""
+
+msgid ""
+"Enter a short working name for this new problem\n"
+"(which will become a new, unassociated episode):\n"
+msgstr ""
+
+#, python-format
+msgid ""
+"Enter a short working name for this new\n"
+"episode under the existing health issue\n"
+"\n"
+"\"%s\":\n"
+msgstr ""
+
+msgid "Creating problem (episode) to save notelet under ..."
+msgstr ""
+
+msgid "Cannot save a new problem without a name."
+msgstr ""
+
+msgid "saving progress note"
+msgstr ""
+
+#, python-format
+msgid ""
+"The new episode:\n"
+"\n"
+" \"%s\"\n"
+"\n"
+"will remain unassociated despite the editor\n"
+"having been invoked from the health issue:\n"
+"\n"
+" \"%s\""
+msgstr ""
+
+#, fuzzy
+msgid "Adding substance abuse"
+msgstr "Πρόσθεση καταγραφής της χρήσης μιας φαρμακευτικής αγωγής/ουσίας."
+
+#, fuzzy
+msgid "Editing substance abuse"
+msgstr "Πρόσθεση καταγραφής της χρήσης μιας φαρμακευτικής αγωγής/ουσίας."
+
+msgid "Substances abused by the patient:"
+msgstr ""
+
+#, fuzzy
+msgid "Showing abused substances."
+msgstr "Αποθήκευση εγγράφου"
+
+msgid "Intake"
+msgstr ""
+
+msgid "nicotine"
+msgstr ""
+
+#, fuzzy
+msgid "unit"
+msgstr "μονάδες"
 
 #, fuzzy, python-format
-msgid "%s %s %s %s (%s ago, %s)"
+msgid "Latest: %s ago (%s %s%s%s%s)"
+msgstr "  Ο χρόνος:%s - %s (@%s = %s%s)\n"
+
+#, fuzzy, python-format
+msgid "%s %s%s%s (%s ago, %s)"
 msgstr ""
 "%s: %s από  %.8s (v%s)\n"
 "%s"
@@ -9832,6 +10154,13 @@ msgstr "σε %d μέρα(ες): %s"
 msgid "due in %s%s"
 msgstr "σε %d μέρα(ες): %s"
 
+msgid "suppr'd:"
+msgstr ""
+
+#, fuzzy
+msgid "Suppressed hints:\n"
+msgstr "σημειώσεις προόδου"
+
 msgid ""
 "Do you really want to\n"
 "delete this inbox message ?"
@@ -9886,10 +10215,17 @@ msgid ""
 msgstr ""
 
 #, fuzzy, python-format
-msgid "%s Vacc: %s"
+msgid "%s Vacc: %s (latest of %s)"
 msgstr "μέρος %s: %s"
 
 #, fuzzy, python-format
+msgid "Hx of addiction: %s"
+msgstr "Ενδονοσοκομειακές διαμονές:%s"
+
+msgid "active substance abuse"
+msgstr ""
+
+#, fuzzy, python-format
 msgid "%s %s %s%s"
 msgstr ""
 "%s: %s από  %.8s (v%s)\n"
@@ -10068,6 +10404,104 @@ msgid ""
 "You will have to add it via the Demographics plugin.\n"
 msgstr ""
 
+msgid "You need to actually set an editor."
+msgstr ""
+
+#, python-format
+msgid "The command [%s] is not found."
+msgstr "Η εντολή [%s] δεν έχει βρεθεί."
+
+#, python-format
+msgid ""
+"Enter the shell command with which to start\n"
+"the image editor for visual progress notes.\n"
+"\n"
+"Any \"%(img)s\" included with the arguments\n"
+"will be replaced by the file name of the\n"
+"note template."
+msgstr ""
+
+msgid "Choose file to use as template for new visual progress note"
+msgstr ""
+
+#, fuzzy
+msgid "Visual progress note source"
+msgstr "σημειώσεις προόδου"
+
+msgid "From which source do you want to pick the image template ?"
+msgstr ""
+
+msgid "Database"
+msgstr "Βάση δεδομένων"
+
+msgid "List of templates in the database."
+msgstr ""
+
+msgid "Files in the filesystem."
+msgstr "Αρχεία στο σύστημα αρχείων."
+
+msgid "Device"
+msgstr "Συσκευή"
+
+msgid "Image capture devices (scanners, cameras, etc)"
+msgstr ""
+
+#, python-format
+msgid "Cannot export visual progress note template for [%s]."
+msgstr ""
+
+msgid "Cannot export visual progress note to file."
+msgstr ""
+
+msgid "Editor for visual progress note not configured."
+msgstr ""
+
+#, python-format
+msgid ""
+"There was a problem with running the editor\n"
+"for visual progress notes.\n"
+"\n"
+" [%s]\n"
+"\n"
+msgstr ""
+
+msgid "Editing visual progress note"
+msgstr ""
+
+#, python-format
+msgid ""
+"There was a problem reading the visual\n"
+"progress note from the file:\n"
+"\n"
+" [%s]\n"
+"\n"
+msgstr ""
+
+msgid "Saving visual progress note"
+msgstr ""
+
+msgid ""
+"You either created a visual progress note from a template\n"
+"in the database (rather than from a file on disk) or you\n"
+"edited an existing visual progress note.\n"
+"\n"
+"The template/original was not modified at all, however.\n"
+"\n"
+"Do you still want to save the unmodified image as a\n"
+"visual progress note into the EMR of the patient ?\n"
+msgstr ""
+
+msgid "visual progress notes"
+msgstr ""
+
+#, fuzzy, python-format
+msgid " [part 1 of %s]"
+msgstr "μέρος %s: %s"
+
+#, fuzzy, python-format
+msgid "Created: %s%s"
+msgstr "Δημιουργία νέου"
+
 msgid "You must select a value from the picklist or type an exact match."
 msgstr ""
 
@@ -10149,7 +10583,8 @@ msgstr ""
 
 #, python-format
 msgid ""
-"%(street)s %(number)s, %(postcode)s %(urb)s, %(l10n_state)s, %(l10n_country)s"
+"%(street)s %(number)s, %(postcode)s %(urb)s, %(l10n_region)s, "
+"%(l10n_country)s"
 msgstr ""
 
 #, python-format
@@ -10758,7 +11193,7 @@ msgstr ""
 msgid ""
 "Cannot save address.\n"
 "\n"
-"Does the state [%s]\n"
+"Does the region [%s]\n"
 "exist in country [%s] ?"
 msgstr ""
 
@@ -11190,8 +11625,9 @@ msgstr "σε %d μέρα(ες): %s"
 msgid "Reminders for the current patient"
 msgstr "Αρχή νέας συνεδρίας για τον ενεργό ασθενή αμέσως τώρα."
 
-msgid "Sent"
-msgstr ""
+#, fuzzy
+msgid "Generated"
+msgstr "Γενικευμένο"
 
 #, fuzzy
 msgid "Category - Type"
@@ -11240,9 +11676,6 @@ msgid ""
 "Data: %s"
 msgstr ""
 
-msgid "Inbox Message Actions:"
-msgstr ""
-
 msgid "Activate patient"
 msgstr ""
 
@@ -11963,7 +12396,7 @@ msgid ""
 msgstr ""
 
 #, python-format
-msgid "Select branch (of praxis [%s]) which you are logging in from.\n"
+msgid "Select the branch of praxis [%s] which you are logging in from.\n"
 msgstr ""
 
 msgid "Praxis branch selection ..."
@@ -12280,6 +12713,14 @@ msgstr "Διαγραφή μηνύματος"
 msgid "List of addresses related to this person."
 msgstr "Δεν υπάρχουν συνεδρίες για αυτό το επεισόδιο."
 
+#, fuzzy
+msgid "Map"
+msgstr "Κύριος"
+
+#, fuzzy
+msgid "Show selected address on map"
+msgstr "Επεξεργασία του επιλεγμένου αντικειμένου."
+
 msgid "Adding new address"
 msgstr ""
 
@@ -12472,8 +12913,91 @@ msgid "generic multi choice dialog"
 msgstr ""
 
 #, fuzzy
-msgid "Search in list"
-msgstr "Αποτελέσματα αναζήτησης"
+msgid "Deleting list items"
+msgstr "Διαγραφή ονόματος"
+
+#, python-format
+msgid ""
+"You have selected %s list items.\n"
+"\n"
+"Really delete all %s items ?"
+msgstr ""
+
+msgid ""
+"Select the items you want to work on.\n"
+"\n"
+"A discontinuous selection may depend on your holding down a platform-"
+"dependent modifier key (<CTRL>, <ALT>, etc) or key combination (eg. <CTRL-"
+"SHIFT> or <CTRL-ALT>) while clicking."
+msgstr ""
+
+#, fuzzy
+msgid "List Item Actions:"
+msgstr "Κατευθύνσεις"
+
+msgid "Add (<INS>)"
+msgstr ""
+
+#, fuzzy
+msgid "Delete (<DEL>)"
+msgstr " Διαγραφή "
+
+msgid "Find (<CTRL-F>)"
+msgstr ""
+
+#, python-format
+msgid "Find next [%s] (<CTRL-N>)"
+msgstr ""
+
+msgid "Row tooltip"
+msgstr ""
+
+msgid "Row data (formatted as text)"
+msgstr ""
+
+msgid "Row content (as one line)"
+msgstr ""
+
+msgid "Row content (one line per column)"
+msgstr ""
+
+#, python-format
+msgid "Column &%s: \"%s\" [#%s]"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "Column &%s: %s"
+msgstr "Αρχεία:%s"
+
+#, fuzzy
+msgid "&Copy to clipboard..."
+msgstr "Εξαγωγή στο &πρόχειρο"
+
+#, fuzzy
+msgid "Append (&+) to clipboard..."
+msgstr "Εξαγωγή στο &πρόχειρο"
+
+#, python-format
+msgid ""
+"%s list items are selected.\n"
+"\n"
+"Really delete all %s items ?"
+msgstr ""
+
+#, fuzzy
+msgid "Enter the search term:"
+msgstr "Αναζήτηση με"
+
+#, fuzzy
+msgid "List search"
+msgstr "Αναζήτηση"
+
+#, python-format
+msgid ""
+"Current search term: [[%s]]\n"
+"\n"
+"%s"
+msgstr ""
 
 msgid "Monty the Serpent && the FSF Present"
 msgstr ""
@@ -12631,6 +13155,9 @@ msgstr ""
 msgid "Unknown: ?"
 msgstr "'Αγνωστο"
 
+msgid "The text has been copied into the clipboard."
+msgstr ""
+
 #, fuzzy
 msgid "file2clipboard"
 msgstr "Εξαγωγή στο &πρόχειρο"
@@ -12639,20 +13166,59 @@ msgstr "Εξαγωγή στο &πρόχειρο"
 msgid "The file [%s] has been copied into the clipboard."
 msgstr ""
 
-#, python-format
-msgid ""
-"Algorithm: %s\n"
-"\n"
-"Source: %s"
-msgstr ""
+msgid "programmer forgot to specify error message"
+msgstr "ο προγραμματιστής ξέχασε να καθορίσει το μήνυμα σφάλματος"
 
-#, python-format
 msgid ""
-"Current age of pregnancy (%s):\n"
-" day %s = %s weeks %s days = week %s = month %s\n"
 "\n"
+"\n"
+"Please consult the error log for all the gory details !"
 msgstr ""
-
+"\n"
+"\n"
+"Παρακαλούμε συμβουλευθείτε το αρχείο καταγραφής σφαλμάτων για όλες τις "
+"αιματοβαμμένες λεπτομέρειες!"
+
+msgid "generic error message"
+msgstr "Μήνυμα γενικού σφάλματος"
+
+msgid "programmer forgot to specify info message"
+msgstr "ο προγραμματιστής ξέχασε να διευκρινίσει το μήνυμα πληροφοριών"
+
+msgid "generic info message"
+msgstr "Μήνυμα γενικής πληροφορίας"
+
+msgid "programmer forgot to specify warning"
+msgstr "προγραμματιστής ξέχασε να διευκρινίσει μια προειδοποίηση"
+
+msgid "generic warning message"
+msgstr "γενικό μήνυμα προειδοποίησης"
+
+#, fuzzy
+msgid "Editing EDC"
+msgstr "Επεξεργασία φαρμακευτικής αγωγής"
+
+#, python-format
+msgid ""
+"Really delete the EDC documented previously ?\n"
+"\n"
+" EDC: %s"
+msgstr ""
+
+#, python-format
+msgid ""
+"Algorithm: %s\n"
+"\n"
+"Source: %s"
+msgstr ""
+
+#, python-format
+msgid ""
+"Current age of pregnancy (%s):\n"
+" day %s = %s weeks %s days = week %s = month %s\n"
+"\n"
+msgstr ""
+
 msgid "Pregnancy Calculator"
 msgstr ""
 
@@ -12749,15 +13315,16 @@ msgstr "Επώνυμο"
 msgid "Firstname"
 msgstr "Όνομα"
 
-msgid "Nickname"
-msgstr "Ψευδώνυμο"
-
 msgid "DOB"
 msgstr ""
 
 msgid "last visit"
 msgstr "τελευταία επίσκεψη"
 
+#, fuzzy
+msgid "Nickname / Comment"
+msgstr "Ψευδώνυμο"
+
 msgid "found via"
 msgstr ""
 
@@ -12940,653 +13507,392 @@ msgstr ""
 msgid "In case of emergency contact:"
 msgstr ""
 
-msgid ""
-"\n"
-"Please select the default drug data source from the list below.\n"
-"\n"
-"Note that to actually use it you need to have the database installed, too."
-msgstr ""
-
-msgid "Drug data source"
+msgid "The preparation (form) of the substance or brand."
 msgstr ""
 
-msgid "Configuring default drug data source"
+msgid "A substance with optional strength or a brand."
 msgstr ""
 
-msgid "No default drug database configured."
-msgstr ""
+#, fuzzy
+msgid "The medical aim for consuming this substance."
+msgstr "Ο σκοπός της χρήσης αυτής της ουσίας."
 
-msgid "There is no default drug database configured."
+msgid "not tolerated:"
 msgstr ""
 
-msgid "Jumping to drug database"
+msgid "discontinued due to allergy or intolerance"
 msgstr ""
 
-#, python-format
-msgid "Cannot call IFAP via [%s]."
+msgid "Documented an allergy"
 msgstr ""
 
 #, python-format
-msgid "Cannot create IFAP <-> GNUmed transfer file [%s]."
-msgstr ""
-
-msgid "Current medication"
-msgstr "Τρέχουσα φαρμακευτική αγωγή"
-
 msgid ""
+"An allergy was documented against the substance:\n"
 "\n"
-"The ATC codes as known to GNUmed.\n"
-msgstr ""
-
-msgid "Showing ATC codes."
-msgstr ""
-
-msgid "Choose an ATC import config file"
+"  [%s]\n"
+"\n"
+"This substance was taken with the multi-component brand:\n"
+"\n"
+"  [%s (%s)]\n"
+"\n"
+"Note that ALL components of this brand were discontinued."
 msgstr ""
 
-msgid "config files"
-msgstr "αρχεία ρυθμίσεων"
+#, fuzzy
+msgid "disapproved"
+msgstr "εγκεκριμένο"
 
-msgid "importing ATC reference data"
+msgid "Substances consumed by the patient:"
 msgstr ""
 
-msgid "Successfully imported ATC reference data."
+msgid "Showing consumable substances."
 msgstr ""
 
-msgid "Importing ATC reference data failed."
-msgstr ""
+#, fuzzy
+msgid "Application"
+msgstr "Ένδειξη"
 
-msgid "Select an ATC (Anatomical-Therapeutic-Chemical) code."
-msgstr ""
+msgid "never"
+msgstr "ποτέ"
 
-msgid "Cannot delete this substance. It is in use."
+#, python-format
+msgid "%s, last confirmed %s\n"
 msgstr ""
 
-msgid ""
-"\n"
-"These are the consumable substances registered with GNUmed.\n"
+#, python-format
+msgid "Comment (%s): %%s\n"
 msgstr ""
 
-msgid "Showing consumable substances."
+msgid "reaction not recorded"
 msgstr ""
 
-msgid "Import"
-msgstr "Εισαγωγή"
+#, fuzzy
+msgid "GFR: unknown"
+msgstr "άγνωστο"
 
-msgid "Import consumable substances from a drug database."
+msgid "GFR reported by path lab"
 msgstr ""
 
-msgid "Cannot edit this substance. It is in use."
-msgstr ""
+#, fuzzy
+msgid "<no components>"
+msgstr "Συστατικά"
 
-msgid "Adding new consumable substance"
-msgstr ""
+#, fuzzy
+msgid "Adding substance intake entry"
+msgstr "Πρόσθεση καταγραφής της χρήσης μιας φαρμακευτικής αγωγής/ουσίας."
 
-msgid "Editing consumable substance"
+#, python-format
+msgid ""
+"The patient is already taking\n"
+"\n"
+" %s\n"
+"\n"
+"You will want to adjust the schedule\n"
+"rather than document the intake twice."
 msgstr ""
 
-msgid "Cannot save consumable substance. Missing essential input."
+msgid "Input incomplete/invalid for saving as substance intake."
 msgstr ""
 
 #, python-format
-msgid "Cannot save consumable substance. %s"
+msgid "Discontinued (%s) in the future (now: %s)!"
 msgstr ""
 
-msgid "Cannot remove this component from the drug. It is in use."
+#, python-format
+msgid "Discontinued (%s) before started (%s) !"
 msgstr ""
 
+#, fuzzy
+msgid "Cannot add duplicate of (maybe inactive) substance intake."
+msgstr "Δεν μπορώ να εισάγω την φαρμακευτική αγωγή. Κανείς ενεργός ασθενής."
+
+#, python-format
 msgid ""
 "\n"
-"These are the components in the drug brands known to GNUmed.\n"
+"[%s]\n"
+"\n"
+"It may be prudent to edit (before deletion) the details\n"
+"of this substance intake entry so as to leave behind\n"
+"some indication of why it was deleted.\n"
 msgstr ""
 
-msgid "Showing drug brand components."
-msgstr ""
+msgid "Deleting medication / substance intake"
+msgstr "Διαγραφή λήψης φαρμακευτικής αγωγής/ουσίας"
 
-msgid "Adding new drug component"
+msgid "Allow editing of substance intake entry before deletion."
 msgstr ""
 
-msgid "Editing drug component"
+msgid "Delete immediately without editing first."
 msgstr ""
 
-msgid "Cannot edit drug component. It is in use."
-msgstr ""
+msgid "&Cancel"
+msgstr "&Ακύρωση"
 
-msgid "Cannot save drug component. Invalid or missing essential input."
+msgid "Abort. Do not delete or edit substance intake entry."
 msgstr ""
 
-msgid "A drug component with optional strength."
+msgid "Now delete substance intake entry ?"
 msgstr ""
 
-msgid "The preparation (form) of the substance or brand."
-msgstr ""
+#, fuzzy
+msgid "Adding medication/non-medication substance intake"
+msgstr "Διαγραφή λήψης φαρμακευτικής αγωγής/ουσίας"
 
-msgid "The substance with optional strength."
-msgstr ""
+#, fuzzy
+msgid "Editing medication/non-medication substance intake"
+msgstr "Διαγραφή λήψης φαρμακευτικής αγωγής/ουσίας"
 
-msgid "Managing components of a drug"
-msgstr ""
+#, fuzzy
+msgid "Document an allergy against this substance."
+msgstr "Το πρόγραμμα πρόσληψης αυτής της ουσίας."
 
-#, python-format
-msgid ""
-"Cannot manage the components of the branded drug product\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is currently taken by patients.\n"
-msgstr ""
+msgid "No medication list template configured."
+msgstr "Ουδεμία λίστα προτύπων της φαρμακευτικής αγωγής έχει διαμορφωθεί."
 
-msgid "Pick the substances which are components of this drug."
+msgid "There is no medication list template configured."
 msgstr ""
+"Δεν υπάρχει μια διαμορφωμένη λίστα προτύπων της φαρμακευτικής αγωγής "
+"διαμορφωμένη."
 
-msgid "Components of drug"
-msgstr ""
+msgid "Problem loading medication list template."
+msgstr "Σφάλμα κατά την μεταφόρτωση του προτύπου της φαρμακευτικής αγωγής."
 
 #, python-format
-msgid ""
-"Adjust the components of \"%s\"\n"
-"\n"
-"The drug must contain at least one component. Any given\n"
-"substance can only be included once per drug."
+msgid "Cannot load medication list template [%s - %s]"
 msgstr ""
 
-msgid "Managing components of a drug ..."
+#, fuzzy
+msgid "generated medication list document"
+msgstr "Εκτύπωση λίστας της φαρμακευτικής αγωγής."
+
+msgid "Select the default prescription template:"
 msgstr ""
 
-msgid "not in use"
+#, fuzzy
+msgid "No prescription template configured."
+msgstr "Ουδεμία λίστα προτύπων της φαρμακευτικής αγωγής έχει διαμορφωθεί."
+
+#, fuzzy
+msgid "There is no prescription template configured."
 msgstr ""
+"Δεν υπάρχει μια διαμορφωμένη λίστα προτύπων της φαρμακευτικής αγωγής "
+"διαμορφωμένη."
+
+#, fuzzy
+msgid "Printing prescription"
+msgstr "Συνταγές"
+
+#, fuzzy
+msgid "Problem loading prescription template."
+msgstr "Σφάλμα κατά την μεταφόρτωση του προτύπου της φαρμακευτικής αγωγής."
 
 #, python-format
-msgid "ATC: %s\n"
+msgid "Cannot load prescription template [%s - %s]"
 msgstr ""
 
-msgid "Editing medication"
-msgstr "Επεξεργασία φαρμακευτικής αγωγής"
+#, fuzzy
+msgid "generated prescription"
+msgstr "Συνταγές"
 
-#, python-format
 msgid ""
-"Cannot edit the medication\n"
-"\n"
-" \"%s\" (%s)\n"
+"These brands have been prescribed but are not listed\n"
+"in the current medication list of this patient.\n"
 "\n"
-"because it is a vaccine. Please edit it\n"
-"from the vaccine management section !\n"
+"Please select those you want added to the medication list."
 msgstr ""
-"Δεν μπορώ να επεξεργαστώ τη φαρμακευτική αγωγή\n"
-" \"%s\" (%s)\n"
-"\n"
-"γιατί είναι εμβόλιο. Παρακαλώ η επεξεργασία να γίνει\n"
-"από από το τμήμα διαχείρισης των εμβολίων !\n"
 
-msgid "Deleting medication"
-msgstr "Διαγραφή φαρμακευτικής αγωγής"
+#, fuzzy
+msgid "Newly prescribed drugs"
+msgstr "Συνταγογραφήθηκε για"
 
-#, python-format
-msgid ""
-"Cannot delete the medication\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is a vaccine. Please delete it\n"
-"from the vaccine management section !\n"
-msgstr ""
-"Δεν μπορώ να διαγράψω τη φαρμακευτική αγωγή\n"
-" \"%s\" (%s)\n"
-"\n"
-"γιατί είναι εμβόλιο. Παρακαλώ η διαγραφή να γίνει\n"
-"από από το τμήμα διαχείρισης των εμβολίων !\n"
+#, fuzzy
+msgid "Add to medication list"
+msgstr "Λίστα φαρμάκων"
 
-msgid ""
-"\n"
-"These are the drug brands known to GNUmed.\n"
+#, fuzzy
+msgid "Timeframe"
+msgstr "Ώρα:"
+
+#, python-format
+msgid "%s <fake>"
 msgstr ""
 
-msgid "Showing branded drugs."
+msgid "Cannot edit more than one substance at once."
 msgstr ""
 
-msgid "Import substances and brands from a drug database."
+msgid "Cannot delete more than one substance at once."
 msgstr ""
 
-msgid "Editing drug"
+msgid "Cannot create allergy from more than one substance at once."
 msgstr ""
 
-#, python-format
+#, fuzzy
 msgid ""
-"Cannot edit the branded drug product\n"
-"\n"
-" \"%s\" (%s)\n"
 "\n"
-"because it is currently taken by patients.\n"
-msgstr ""
-
-msgid "Adding new drug brand"
-msgstr ""
+"Select the measurements panel to show in the medications plugin.\n"
+msgstr "Επέλεξε πρότυπο για την εκτύπωση της φαρμακευτικής αγωγής."
 
-msgid "Editing drug brand"
-msgstr ""
+#, fuzzy
+msgid "Measurements panel"
+msgstr "Μετρήσεις"
 
-msgid "Manage consumable substances"
+msgid "Configuring medications plugin measurements panel"
 msgstr ""
 
-msgid "Cannot edit drug brand. It is in use."
+msgid "EDC (!?!):"
 msgstr ""
 
 #, fuzzy
-msgid "Checking brand data"
-msgstr "Έλεγχος ενημερώσεων"
+msgid "EDC:"
+msgstr "Ημερομηνία: %s\n"
+
+#, fuzzy, python-format
+msgid "%.1f (%s ago)"
+msgstr "Ημερομηνία: %s\n"
+
+msgid "eGFR:"
+msgstr ""
 
 #, python-format
-msgid ""
-"The brand information you entered:\n"
-"\n"
-" [%s %s]\n"
-"\n"
-"already exists as a drug product."
+msgid "eGFR: %.1f (%s)"
 msgstr ""
 
-msgid ""
-"You have not selected any substances\n"
-"as drug components.\n"
-"\n"
-"Without components you will not be able to\n"
-"use this drug for documenting patient care.\n"
-"\n"
-"Are you sure you want to save\n"
-"it without components ?"
+msgid "Enter vaccination given"
 msgstr ""
 
-msgid "Cannot save branded drug. Invalid or missing essential input."
+msgid "Unsaved progress note"
 msgstr ""
 
 msgid ""
-"The brand name of the drug.\n"
+"This progress note has not been saved yet.\n"
+"\n"
+"Do you want to save it or discard it ?\n"
 "\n"
-"Note: a brand name will need to be linked to\n"
-"one or more components before it can be used,\n"
-"except in the case of fake (generic) vaccines."
 msgstr ""
 
-#, fuzzy
-msgid "The medical aim for consuming this substance."
-msgstr "Ο σκοπός της χρήσης αυτής της ουσίας."
-
-msgid "not tolerated:"
+msgid "Save this progress note"
 msgstr ""
 
-msgid "discontinued due to allergy or intolerance"
+msgid "Discard this progress note"
 msgstr ""
 
-msgid "Documented an allergy"
+msgid "Save all remaining unsaved progress notes"
 msgstr ""
 
-#, python-format
 msgid ""
-"An allergy was documented against the substance:\n"
-"\n"
-"  [%s]\n"
-"\n"
-"This substance was taken with the multi-component brand:\n"
-"\n"
-"  [%s (%s)]\n"
+"Add editor for a new unassociated progress note.\n"
 "\n"
-"Note that ALL components of this brand were discontinued."
+"There is a configuration option whether or not to\n"
+"allow several new unassociated progress notes at once."
 msgstr ""
 
-#, fuzzy
-msgid "disapproved"
-msgstr "εγκεκριμένο"
+msgid "Save progress note into medical record and close this editor."
+msgstr ""
 
-msgid "Substances consumed by the patient:"
+msgid "Clear this progress note editor."
 msgstr ""
 
-msgid "Intake"
+msgid ""
+"Discard progress note and close this editor. You will loose any data already "
+"typed into this editor !"
 msgstr ""
 
-#, fuzzy
-msgid "Application"
-msgstr "Ένδειξη"
+msgid "Problem saving progress note: duplicate information ?"
+msgstr ""
 
-msgid "never"
-msgstr "ποτέ"
+msgid "label missing"
+msgstr "η ετικέτα λείπει."
 
-#, python-format
-msgid "%s, last confirmed %s\n"
+msgid "soap cat missing"
 msgstr ""
 
-#, python-format
-msgid "Comment (%s): %%s\n"
+msgid "Enter a descriptive name for this new problem:"
 msgstr ""
 
-msgid "reaction not recorded"
+msgid "Creating a problem (episode) to save the notelet under ..."
 msgstr ""
 
-#, fuzzy
-msgid "GFR: unknown"
-msgstr "άγνωστο"
-
-msgid "GFR reported by path lab"
+msgid "Error saving progress note."
 msgstr ""
 
-#, python-format
-msgid ""
-"The patient is already taking\n"
-"\n"
-" %s\n"
-"\n"
-"You will want to adjust the schedule\n"
-"rather than document the intake twice."
+msgid "Error saving embedded data."
 msgstr ""
 
-#, fuzzy
-msgid "Adding substance intake entry"
-msgstr "Πρόσθεση καταγραφής της χρήσης μιας φαρμακευτικής αγωγής/ουσίας."
-
-msgid "Input incomplete/invalid for saving as substance intake."
+msgid "Visit Purpose"
 msgstr ""
 
-#, python-format
-msgid "Discontinued (%s) in the future (now: %s)!"
+msgid "History Taken"
 msgstr ""
 
-#, python-format
-msgid "Discontinued (%s) before started (%s) !"
+msgid "Findings"
 msgstr ""
 
-#, fuzzy
-msgid "Cannot add duplicate of (maybe inactive) substance intake."
-msgstr "Δεν μπορώ να εισάγω την φαρμακευτική αγωγή. Κανείς ενεργός ασθενής."
+msgid "save"
+msgstr "αποθήκευση"
 
-#, python-format
-msgid ""
-"\n"
-"[%s]\n"
-"\n"
-"It may be prudent to edit (before deletion) the details\n"
-"of this substance intake entry so as to leave behind\n"
-"some indication of why it was deleted.\n"
-msgstr ""
+msgid "save clinical note in EMR"
+msgstr "αποθήκευση κλινικής σημείωσης στον ΗΙΦ"
 
-msgid "Deleting medication / substance intake"
-msgstr "Διαγραφή λήψης φαρμακευτικής αγωγής/ουσίας"
+msgid "discard"
+msgstr "Απόρριψη"
 
-msgid "Allow editing of substance intake entry before deletion."
+msgid "discard clinical note"
 msgstr ""
 
-msgid "Delete immediately without editing first."
+msgid "clinical progress note"
 msgstr ""
 
-msgid "&Cancel"
-msgstr "&Ακύρωση"
-
-msgid "Abort. Do not delete or edit substance intake entry."
+msgid "Select files to add to the export area"
 msgstr ""
 
-msgid "Now delete substance intake entry ?"
+#, fuzzy
+msgid "Adding files to export area"
+msgstr "Προσθήκη νέου ονόματος"
+
+#, python-format
+msgid ""
+"Cannot add (some of) the following files to the export area:\n"
+"%s "
 msgstr ""
 
 #, fuzzy
-msgid "Adding medication/non-medication substance intake"
-msgstr "Διαγραφή λήψης φαρμακευτικής αγωγής/ουσίας"
+msgid "Select the documents to be put into the export area:"
+msgstr "Αρχή νέας συνεδρίας για τον ενεργό ασθενή αμέσως τώρα."
 
 #, fuzzy
-msgid "Editing medication/non-medication substance intake"
-msgstr "Διαγραφή λήψης φαρμακευτικής αγωγής/ουσίας"
+msgid "clipboard"
+msgstr "Εξαγωγή στο &πρόχειρο"
 
-#, fuzzy
-msgid "Document an allergy against this substance."
-msgstr "Το πρόγραμμα πρόσληψης αυτής της ουσίας."
+msgid "Loading clipboard item (saved to file) into export area"
+msgstr ""
 
-msgid "No medication list template configured."
-msgstr "Ουδεμία λίστα προτύπων της φαρμακευτικής αγωγής έχει διαμορφωθεί."
+#, fuzzy, python-format
+msgid ""
+"Cannot add the following clip to the export area:\n"
+"%s "
+msgstr "Δεν μπορώ να εξάγω τον ΗΙΦ. Χωρίς ενεργό ασθενή."
 
-msgid "There is no medication list template configured."
+msgid "scan"
 msgstr ""
-"Δεν υπάρχει μια διαμορφωμένη λίστα προτύπων της φαρμακευτικής αγωγής "
-"διαμορφωμένη."
 
-msgid "Problem loading medication list template."
-msgstr "Σφάλμα κατά την μεταφόρτωση του προτύπου της φαρμακευτικής αγωγής."
+msgid "Scanning files into export area"
+msgstr ""
 
 #, python-format
-msgid "Cannot load medication list template [%s - %s]"
+msgid ""
+"Cannot add (some of) the following scans to the export area:\n"
+"%s "
 msgstr ""
 
 #, fuzzy
-msgid "generated medication list document"
-msgstr "Εκτύπωση λίστας της φαρμακευτικής αγωγής."
+msgid "Deleting document from export area."
+msgstr "Διαγραφή περιγραφής αρχείου"
 
-msgid "Select the default prescription template:"
-msgstr ""
-
-#, fuzzy
-msgid "No prescription template configured."
-msgstr "Ουδεμία λίστα προτύπων της φαρμακευτικής αγωγής έχει διαμορφωθεί."
-
-#, fuzzy
-msgid "There is no prescription template configured."
-msgstr ""
-"Δεν υπάρχει μια διαμορφωμένη λίστα προτύπων της φαρμακευτικής αγωγής "
-"διαμορφωμένη."
-
-#, fuzzy
-msgid "Printing prescription"
-msgstr "Συνταγές"
-
-#, fuzzy
-msgid "Problem loading prescription template."
-msgstr "Σφάλμα κατά την μεταφόρτωση του προτύπου της φαρμακευτικής αγωγής."
-
-#, python-format
-msgid "Cannot load prescription template [%s - %s]"
-msgstr ""
-
-#, fuzzy
-msgid "generated prescription"
-msgstr "Συνταγές"
-
-msgid ""
-"These brands have been prescribed but are not listed\n"
-"in the current medication list of this patient.\n"
-"\n"
-"Please select those you want added to the medication list."
-msgstr ""
-
-#, fuzzy
-msgid "Newly prescribed drugs"
-msgstr "Συνταγογραφήθηκε για"
-
-#, fuzzy
-msgid "Add to medication list"
-msgstr "Λίστα φαρμάκων"
-
-msgid "Duration / Until"
-msgstr ""
-
-#, python-format
-msgid "%s <fake>"
-msgstr ""
-
-msgid "Cannot edit more than one substance at once."
-msgstr ""
-
-msgid "Cannot delete more than one substance at once."
-msgstr ""
-
-msgid "Cannot create allergy from more than one substance at once."
-msgstr ""
-
-#, fuzzy
-msgid ""
-"\n"
-"Select the measurements panel to show in the medications plugin.\n"
-msgstr "Επέλεξε πρότυπο για την εκτύπωση της φαρμακευτικής αγωγής."
-
-#, fuzzy
-msgid "Measurements panel"
-msgstr "Μετρήσεις"
-
-msgid "Configuring medications plugin measurements panel"
-msgstr ""
-
-msgid "EDC (!?!):"
-msgstr ""
-
-#, fuzzy
-msgid "EDC:"
-msgstr "Ημερομηνία: %s\n"
-
-#, fuzzy, python-format
-msgid "%.1f (%s ago)"
-msgstr "Ημερομηνία: %s\n"
-
-msgid "eGFR:"
-msgstr ""
-
-#, fuzzy, python-format
-msgid "%s%s%s (%s ago)"
-msgstr ""
-"%s: %s από  %.8s (v%s)\n"
-"%s"
-
-#, python-format
-msgid "eGFR: %.1f (%s)"
-msgstr ""
-
-msgid "Enter vaccination given"
-msgstr ""
-
-msgid "Unsaved progress note"
-msgstr ""
-
-msgid ""
-"This progress note has not been saved yet.\n"
-"\n"
-"Do you want to save it or discard it ?\n"
-"\n"
-msgstr ""
-
-msgid "Save this progress note"
-msgstr ""
-
-msgid "Discard this progress note"
-msgstr ""
-
-msgid "Save all remaining unsaved progress notes"
-msgstr ""
-
-msgid ""
-"Add editor for a new unassociated progress note.\n"
-"\n"
-"There is a configuration option whether or not to\n"
-"allow several new unassociated progress notes at once."
-msgstr ""
-
-msgid "Save progress note into medical record and close this editor."
-msgstr ""
-
-msgid "Clear this progress note editor."
-msgstr ""
-
-msgid ""
-"Discard progress note and close this editor. You will loose any data already "
-"typed into this editor !"
-msgstr ""
-
-msgid "Problem saving progress note: duplicate information ?"
-msgstr ""
-
-msgid "label missing"
-msgstr "η ετικέτα λείπει."
-
-msgid "soap cat missing"
-msgstr ""
-
-msgid "Enter a descriptive name for this new problem:"
-msgstr ""
-
-msgid "Creating a problem (episode) to save the notelet under ..."
-msgstr ""
-
-msgid "Error saving progress note."
-msgstr ""
-
-msgid "Error saving embedded data."
-msgstr ""
-
-msgid "Visit Purpose"
-msgstr ""
-
-msgid "History Taken"
-msgstr ""
-
-msgid "Findings"
-msgstr ""
-
-msgid "save"
-msgstr "αποθήκευση"
-
-msgid "save clinical note in EMR"
-msgstr "αποθήκευση κλινικής σημείωσης στον ΗΙΦ"
-
-msgid "discard"
-msgstr "Απόρριψη"
-
-msgid "discard clinical note"
-msgstr ""
-
-msgid "clinical progress note"
-msgstr ""
-
-msgid "Select files to add to the export area"
-msgstr ""
-
-#, fuzzy
-msgid "Adding files to export area"
-msgstr "Προσθήκη νέου ονόματος"
-
-#, python-format
-msgid ""
-"Cannot add (some of) the following files to the export area:\n"
-"%s "
-msgstr ""
-
-#, fuzzy
-msgid "Select the documents to be put into the export area:"
-msgstr "Αρχή νέας συνεδρίας για τον ενεργό ασθενή αμέσως τώρα."
-
-#, fuzzy
-msgid "clipboard"
-msgstr "Εξαγωγή στο &πρόχειρο"
-
-msgid "Loading clipboard item (saved to file) into export area"
-msgstr ""
-
-#, fuzzy, python-format
-msgid ""
-"Cannot add the following clip to the export area:\n"
-"%s "
-msgstr "Δεν μπορώ να εξάγω τον ΗΙΦ. Χωρίς ενεργό ασθενή."
-
-msgid "scan"
-msgstr ""
-
-msgid "Scanning files into export area"
-msgstr ""
-
-#, python-format
-msgid ""
-"Cannot add (some of) the following scans to the export area:\n"
-"%s "
-msgstr ""
-
-#, fuzzy
-msgid "Deleting document from export area."
-msgstr "Διαγραφή περιγραφής αρχείου"
-
-#, python-format
-msgid ""
-"Really remove %s selected document(s)\n"
-"from the patient export area ?"
+#, python-format
+msgid ""
+"Really remove %s selected document(s)\n"
+"from the patient export area ?"
 msgstr ""
 
 #, fuzzy
@@ -13616,14 +13922,21 @@ msgid ""
 "\n"
 " [%s]\n"
 "\n"
-"is not empty. Do you want to use it for saving the\n"
-"export area documents into, nevertheless ?\n"
+"already contains files. Do you still want to save the\n"
+"selected export area documents into that directory ?\n"
 "\n"
-"(this can be useful for including external documents)\n"
+"(this is useful for including the external documents\n"
+" already stored in or below this directory)\n"
 "\n"
 "[NO] will create a subdirectory for you and use that."
 msgstr ""
 
+msgid ""
+"Create descriptive metadata files\n"
+"and save them alongside the\n"
+"selected export area documents ?"
+msgstr ""
+
 #, fuzzy, python-format
 msgid ""
 "Saved to [%s]:\n"
@@ -13842,10 +14155,6 @@ msgid "This praxis"
 msgstr "εμβόλιο"
 
 #, fuzzy
-msgid "Hospital stay"
-msgstr "Νοσοκομείο"
-
-#, fuzzy
 msgid "Bill receiver"
 msgstr "Επιλογή"
 
@@ -13882,27 +14191,71 @@ msgstr ""
 msgid "Select the episode under which to file the document ..."
 msgstr ""
 
+msgid "Cannot create new document."
+msgstr ""
+
+msgid "saving document"
+msgstr "Αποθήκευση εγγράφου"
+
 #, python-format
 msgid "Imported new document from %s."
 msgstr ""
 
-msgid "Enter a comment on the document."
+msgid "Successfully saved new document."
 msgstr ""
 
-msgid "User defined"
-msgstr "Καθορισμένο από το χρήστη"
-
-msgid "In use"
-msgstr "Χρησιμοποιείται"
+msgid "Successfully saved the new document."
+msgstr ""
 
 #, python-format
 msgid ""
-"Cannot delete document type\n"
-" [%s]\n"
-"because it is currently in use."
-msgstr ""
-
-msgid "deleting document type"
+"The reference ID for the new document is:\n"
+"\n"
+" <%s>\n"
+"\n"
+"You probably want to write it down on the\n"
+"original documents.\n"
+"\n"
+"If you don't care about the ID you can switch\n"
+"off this message in the GNUmed configuration.\n"
+msgstr ""
+
+#, fuzzy
+msgid "Saving document"
+msgstr "Αποθήκευση εγγράφου"
+
+#, python-format
+msgid ""
+"Successfully imported files as document.\n"
+"\n"
+"Do you want to delete imported files from the filesystem ?\n"
+"\n"
+" %s\n"
+"\n"
+"Note that temporary files will be deleted anyway."
+msgstr ""
+
+#, fuzzy
+msgid "Removing files"
+msgstr "αρχεία καταγραφής"
+
+msgid "Enter a comment on the document."
+msgstr ""
+
+msgid "User defined"
+msgstr "Καθορισμένο από το χρήστη"
+
+msgid "In use"
+msgstr "Χρησιμοποιείται"
+
+#, python-format
+msgid ""
+"Cannot delete document type\n"
+" [%s]\n"
+"because it is currently in use."
+msgstr ""
+
+msgid "deleting document type"
 msgstr ""
 
 #, python-format
@@ -14004,16 +14357,18 @@ msgstr ""
 msgid "Acquiring images"
 msgstr ""
 
+msgid "directory dropped on client"
+msgstr ""
+
+msgid "file dropped on client"
+msgstr ""
+
 #, fuzzy
 msgid "other documents"
 msgstr "Επισύναψη αρχείων"
 
-#, python-format
-msgid "part %s: %s"
-msgstr "μέρος %s: %s"
-
-msgid "saving document"
-msgstr "Αποθήκευση εγγράφου"
+msgid "path"
+msgstr ""
 
 msgid "No parts to save. Really save an empty document as a reference ?"
 msgstr ""
@@ -14057,17 +14412,25 @@ msgstr ""
 msgid "acquiring page"
 msgstr ""
 
+msgid "captured by imaging device"
+msgstr ""
+
 msgid "Choose a file"
 msgstr "Επιλέξτε ένα αρχείο"
 
 msgid "all files (Win)"
 msgstr ""
 
-msgid "You must select a part before you can view it."
+msgid "picked from storage media"
 msgstr ""
 
-msgid "displaying part"
-msgstr ""
+#, fuzzy
+msgid "pasted from clipboard"
+msgstr "Εξαγωγή στο &πρόχειρο"
+
+#, fuzzy
+msgid "No part selected for viewing."
+msgstr "Διαγραφή της επιλεγμένης αλλεργίας από την λίστα στην βάση δεδομένων."
 
 #, python-format
 msgid ""
@@ -14075,45 +14438,12 @@ msgid ""
 "%s"
 msgstr ""
 
-msgid "You must select a part before you can delete it."
-msgstr ""
-
-msgid "deleting part"
-msgstr ""
-
-#, python-format
-msgid ""
-"The part has successfully been removed from the document.\n"
-"\n"
-"Do you also want to permanently delete the file\n"
-"\n"
-" [%s]\n"
-"\n"
-"from which this document part was loaded ?\n"
-"\n"
-"If it is a temporary file for a page you just scanned\n"
-"this makes a lot of sense. In other cases you may not\n"
-"want to lose the file.\n"
-"\n"
-"Pressing [YES] will permanently remove the file\n"
-"from your computer.\n"
-msgstr ""
-
-msgid "Removing document part"
-msgstr ""
-
-#, python-format
-msgid ""
-"Cannot delete part in file [%s].\n"
-"\n"
-"You may not have write access to it."
-msgstr ""
-
-msgid "Cannot create new document."
+msgid "displaying part"
 msgstr ""
 
-msgid "Cannot update document metadata."
-msgstr ""
+#, fuzzy
+msgid "No part selected for removal."
+msgstr "Διαγραφή της επιλεγμένης αλλεργίας από την λίστα στην βάση δεδομένων."
 
 msgid "Cannot add document description."
 msgstr ""
@@ -14121,28 +14451,13 @@ msgstr ""
 msgid "Error setting \"reviewed\" status of new document."
 msgstr ""
 
-msgid "Successfully saved the new document."
-msgstr ""
-
-#, python-format
+#, fuzzy, python-format
 msgid ""
-"The reference ID for the new document is:\n"
-"\n"
-" <%s>\n"
-"\n"
-"You probably want to write it down on the\n"
-"original documents.\n"
+"Source: %s\n"
+"File: %s\n"
 "\n"
-"If you don't care about the ID you can switch\n"
-"off this message in the GNUmed configuration."
-msgstr ""
-
-#, fuzzy
-msgid "Saving document"
-msgstr "Αποθήκευση εγγράφου"
-
-msgid "Successfully saved new document."
-msgstr ""
+"%s"
+msgstr "Προέλευση:%s\n"
 
 msgid "Document part does not seem to exist in database !"
 msgstr ""
@@ -14157,10 +14472,6 @@ msgstr ""
 msgid "Showing documents."
 msgstr "Αποθήκευση εγγράφου"
 
-#, fuzzy
-msgid "Generated"
-msgstr "Γενικευμένο"
-
 msgid "Ref #"
 msgstr ""
 
@@ -14429,6 +14740,154 @@ msgstr ""
 msgid "Deleting document"
 msgstr ""
 
+#, fuzzy
+msgid "Study date"
+msgstr "ημέρα"
+
+#, fuzzy
+msgid "Study time"
+msgstr "Άρχισε νέο"
+
+msgid "Method"
+msgstr ""
+
+#, fuzzy
+msgid "Body part"
+msgstr "μέρος"
+
+#, fuzzy
+msgid "Time"
+msgstr "Ώρα:"
+
+msgid "Cannot connect without port (try 8042)."
+msgstr ""
+
+#, python-format
+msgid "Connect to [%s] @ port %s as \"%s\"."
+msgstr ""
+
+msgid "Cannot connect to PACS."
+msgstr ""
+
+#, python-format
+msgid "PACS: Orthanc \"%s\" (AET \"%s\", Version %s, DB v%s)"
+msgstr ""
+
+#, python-format
+msgid "GNUmed patient: %s (generic PACS ID)"
+msgstr ""
+
+#, python-format
+msgid "GNUmed patient: \"%(value)s\" @ [%(issuer)s] (stored PACS ID)"
+msgstr ""
+
+msgid "PACS: no patients with matching IDs found"
+msgstr ""
+
+msgid ""
+"PACS: more than one patient with matching IDs found, carefully check studies"
+msgstr ""
+
+#, python-format
+msgid "%s series"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "%%s (%s series)"
+msgstr "%s (%s αυτό το έτος)"
+
+msgid "no studies"
+msgstr ""
+
+#, python-format
+msgid "%s studies"
+msgstr ""
+
+msgid "Exporting DICOM studies"
+msgstr ""
+
+#, fuzzy
+msgid "Unable to export selected studies."
+msgstr "Επεξεργασία του επιλεγμένου αντικειμένου."
+
+#, python-format
+msgid ""
+"The DICOM studies are %s in compressed size.\n"
+"\n"
+"Really copy to export area ?"
+msgstr ""
+
+#, python-format
+msgid "DICOM studies of [%s] from Orthanc PACS \"%s\" (AET \"%s\")"
+msgstr ""
+
+msgid "Select the directory into which to save the DICOM studies."
+msgstr ""
+
+msgid "Saving DICOM studies"
+msgstr ""
+
+#, fuzzy
+msgid "Unable to save selected studies."
+msgstr "Επεξεργασία του επιλεγμένου αντικειμένου."
+
+#, fuzzy
+msgid "Unable to export studies."
+msgstr "Αδύνατο το άνοιγμα ου χρονοδιαγράμματος '%s'."
+
+#, python-format
+msgid "All DICOM studies of [%s] from Orthanc PACS \"%s\" (AET \"%s\")"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "%s%s images"
+msgstr "Ημερομηνία: %s\n"
+
+msgid "Select the directory from which to recursively upload DICOM files."
+msgstr ""
+
+msgid "Delete the uploaded DICOM files now ?"
+msgstr ""
+
+msgid ""
+"Some files have not been uploaded.\n"
+"\n"
+"Do you want to delete those DICOM files which have been sent to the PACS "
+"successfully ?"
+msgstr ""
+
+#, fuzzy
+msgid "Uploading DICOM files"
+msgstr "αρχεία καταγραφής"
+
+#, fuzzy
+msgid "Editing Orthanc content"
+msgstr "Επεξεργασία λεπτομερειών της συνεδρίας παρακάτω:"
+
+#, fuzzy
+msgid "Patient ID"
+msgstr "Ασθενής"
+
+#, fuzzy
+msgid "Birth date"
+msgstr "ημέρα"
+
+msgid "Orthanc"
+msgstr ""
+
+#, fuzzy
+msgid "Modifying patient ID"
+msgstr "ID εσωτερικού ασθενούς"
+
+#, python-format
+msgid ""
+"Really modify %s patient(s) to have the new patient ID\n"
+"\n"
+" [%s]\n"
+"\n"
+"stored in the Orthanc DICOM server ?"
+msgstr ""
+
 #, python-format
 msgid "You are logged in as %s%s.%s (%s). DB account <%s>."
 msgstr ""
@@ -14490,6 +14949,14 @@ msgstr "Μετρήσεις"
 msgid "Select the measurements panel to show in the medications plugin."
 msgstr "Επέλεξε πρότυπο για την εκτύπωση της φαρμακευτικής αγωγής."
 
+#, fuzzy
+msgid "General measurements"
+msgstr "Μετρήσεις"
+
+#, fuzzy
+msgid "Select the measurements panel to show in the top pane."
+msgstr "Επέλεξε πρότυπο για την εκτύπωση της φαρμακευτικής αγωγής."
+
 msgid "Review dialog"
 msgstr ""
 
@@ -14580,6 +15047,13 @@ msgstr ""
 msgid "Configure auto-opening editors for recent problems."
 msgstr ""
 
+#, fuzzy
+msgid "SOAP fields"
+msgstr "Πεδίο αγνοούμενο"
+
+msgid "Configure SOAP editor - individual SOAP fields vs text editor like"
+msgstr ""
+
 msgid "Progress notes handling ..."
 msgstr ""
 
@@ -14601,6 +15075,9 @@ msgstr ""
 msgid "URL for measurements encyclopedia."
 msgstr ""
 
+msgid "Drug data source"
+msgstr ""
+
 msgid "Select the drug data source."
 msgstr ""
 
@@ -14985,6 +15462,14 @@ msgstr "σημειώσεις προόδου"
 msgid "Manage dynamic hints suppressed in this patient."
 msgstr ""
 
+#, fuzzy
+msgid "Substance abuse"
+msgstr "Ουσία"
+
+#, fuzzy
+msgid "Manage substance abuse documentation of this patient."
+msgstr "Κράτα *αυτόν* τον ασθενή"
+
 msgid "&Add / Edit ..."
 msgstr "&Προσθήκη / Επεξεργασία ..."
 
@@ -15009,32 +15494,58 @@ msgstr ""
 msgid "Show a high-level statistic summary of the EMR."
 msgstr ""
 
-msgid "Text document"
-msgstr "Έγγραφο κειμένου"
-
-msgid "Export the EMR of the active patient into a text file"
+msgid "Journal (encounters) to file"
 msgstr ""
 
-msgid "Journal"
+msgid ""
+"Save the EMR of the active patient as a chronological journal into a text "
+"file"
 msgstr ""
 
+#, fuzzy
+msgid "Journal (encounters) to export area"
+msgstr "Προσθήκη νέου ονόματος"
+
 msgid ""
-"Export the EMR of the active patient as a chronological journal into a text "
-"file"
+"Copy EMR of the active patient as a chronological journal into export area"
 msgstr ""
 
-msgid "MEDISTAR import format"
+msgid "Journal (mod time) to file"
 msgstr ""
 
 msgid ""
-"GNUmed -> MEDISTAR. Export progress notes of active patient's active "
-"encounter into a text file."
+"Save the EMR of the active patient as journal by last modification time into "
+"a text file"
 msgstr ""
 
-msgid "Export as ..."
-msgstr "Εξαγωγή ως ..."
+#, fuzzy
+msgid "Journal (mod time) to export area"
+msgstr "Προσθήκη νέου ονόματος"
 
-msgid "&EMR"
+msgid ""
+"Copy EMR of the active patient as journal by last modification time into "
+"export area"
+msgstr ""
+
+msgid "Text document"
+msgstr "Έγγραφο κειμένου"
+
+#, fuzzy
+msgid "Save the EMR of the active patient into a text file"
+msgstr "Δεν είναι δυνατή η συγχώνευση ενεργού ασθενή σε άλλον ασθενή."
+
+msgid "MEDISTAR import format"
+msgstr ""
+
+msgid ""
+"GNUmed -> MEDISTAR. Save progress notes of active patient's active encounter "
+"into a text file."
+msgstr ""
+
+msgid "Export as ..."
+msgstr "Εξαγωγή ως ..."
+
+msgid "&EMR"
 msgstr "&Ηλεκτρονικός Ιατρικός Φάκελος"
 
 msgid "&Write letter"
@@ -15204,19 +15715,42 @@ msgstr ""
 msgid "Show log file"
 msgstr ""
 
-msgid "Show the log file in text viewer."
+msgid "Show log file in text viewer."
 msgstr ""
 
 msgid "Backup log file"
 msgstr ""
 
-msgid "Backup the content of the log to another file."
+msgid "Backup content of the log to another file."
 msgstr ""
 
 msgid "Email log file"
 msgstr ""
 
-msgid "Send the log file to the authors for help."
+msgid "Send log file to the authors for help."
+msgstr ""
+
+#, fuzzy
+msgid "Browse tmp dir"
+msgstr "Αποθήκευση εγγράφου"
+
+#, python-format
+msgid "Browse temporary directory [%s]."
+msgstr ""
+
+#, fuzzy
+msgid "Browse work dir"
+msgstr "Αποθήκευση εγγράφου"
+
+#, python-format
+msgid "Browse user working directory [%s]."
+msgstr ""
+
+msgid "Browse internal work dir"
+msgstr ""
+
+#, python-format
+msgid "Browse internal working directory [%s]."
 msgstr ""
 
 msgid "Bug tracker"
@@ -15561,6 +16095,20 @@ msgid "No, only auto-open one editor for a new, unassociated problem."
 msgstr ""
 
 msgid ""
+"When editing progress notes, do you want GNUmed to\n"
+"show individual fields for each of the SOAP categories\n"
+"or do you want to use a text-editor like field for\n"
+"all SOAP categories which can then be set per line\n"
+"of input ?"
+msgstr ""
+
+msgid "Yes, show a dedicated field per SOAP category."
+msgstr ""
+
+msgid "No, use one field for all SOAP categories."
+msgstr ""
+
+msgid ""
 "When a patient is activated GNUmed can\n"
 "be told to switch to a specific plugin.\n"
 "\n"
@@ -15799,595 +16347,1027 @@ msgstr ""
 msgid "Communication channel types"
 msgstr ""
 
-msgid "Components of branded drugs (substances in brands)"
+msgid "Components of branded drugs (substances in brands)"
+msgstr ""
+
+msgid "Diagnostic organizations (path labs, ...)"
+msgstr ""
+
+msgid "Document templates (forms, letters, plots, ...)"
+msgstr ""
+
+msgid "Document types"
+msgstr "Τύποι αρχείων"
+
+msgid "Encounter types"
+msgstr "Τύποι συνεδριών"
+
+msgid "Keyword based text expansion macros"
+msgstr ""
+
+msgid "Meta test/measurement types"
+msgstr ""
+
+msgid "Organizations with their units, addresses, and comm channels"
+msgstr ""
+
+msgid "Patient tags"
+msgstr ""
+
+msgid "Provinces (counties, territories, states, regions, ...)"
+msgstr ""
+
+msgid "String translations in the database"
+msgstr ""
+
+msgid "Test/measurement types"
+msgstr ""
+
+msgid "Vaccination targets (conditions known to be preventable by vaccination)"
+msgstr ""
+
+msgid "Vaccines"
+msgstr "Εμβόλια"
+
+msgid "Workplace profiles (which plugins to load)"
+msgstr ""
+
+msgid "Consumable substances"
+msgstr ""
+
+msgid "Billable items"
+msgstr ""
+
+msgid "Reference data sources"
+msgstr ""
+
+msgid "Test/measurement panels/profiles"
+msgstr ""
+
+msgid "Master data management"
+msgstr ""
+
+msgid "Select the list you want to manage:"
+msgstr ""
+
+msgid "No DICOM viewer found."
+msgstr ""
+
+msgid "risk assessment"
+msgstr ""
+
+msgid "cardiovascular risk assessment"
+msgstr ""
+
+#, python-format
+msgid "[arriba] XML result not found in [%s]"
+msgstr ""
+
+msgid "ACS risk assessment calculator not configured."
+msgstr ""
+
+#, python-format
+msgid "Cannot run [%s] !"
+msgstr ""
+
+#, python-format
+msgid "There was a problem accessing the [arriba] result in [%s] !"
+msgstr ""
+
+msgid "[-9999]: <access violation test error>"
+msgstr ""
+
+msgid ""
+"This is a deliberate AccessDenied exception thrown to test the handling of "
+"access violations by means of a decorator."
+msgstr ""
+
+msgid "testing access check for non-existant <admin> role"
+msgstr ""
+
+msgid ""
+"This is a deliberate AccessDenied exception. You should not see this message "
+"because the role is checked in a decorator."
+msgstr ""
+
+msgid "pgAdmin III not found."
+msgstr ""
+
+msgid "Error reloading hook script."
+msgstr ""
+
+msgid "Save current log as..."
+msgstr ""
+
+msgid "log files"
+msgstr "αρχεία καταγραφής"
+
+#, python-format
+msgid "Log file backed up as [%s]."
+msgstr ""
+
+msgid "Cannot start new encounter. No active patient."
+msgstr ""
+
+msgid "Cannot add health issue. No active patient."
+msgstr ""
+
+#, fuzzy
+msgid "Cannot add episode. No active patient."
+msgstr "Δεν μπορώ να εισάγω την φαρμακευτική αγωγή. Κανείς ενεργός ασθενής."
+
+msgid "Cannot add medication. No active patient."
+msgstr "Δεν μπορώ να εισάγω την φαρμακευτική αγωγή. Κανείς ενεργός ασθενής."
+
+msgid "Cannot add allergy. No active patient."
+msgstr ""
+
+msgid "Cannot manage performed procedures. No active patient."
+msgstr ""
+
+#, fuzzy
+msgid "Cannot manage hospitalizations. No active patient."
+msgstr "Δεν μπορώ να εισάγω την φαρμακευτική αγωγή. Κανείς ενεργός ασθενής."
+
+#, fuzzy
+msgid "Cannot manage external care. No active patient."
+msgstr "Δεν μπορώ να εισάγω την φαρμακευτική αγωγή. Κανείς ενεργός ασθενής."
+
+msgid "Cannot edit occupation. No active patient."
+msgstr ""
+
+#, fuzzy
+msgid "manage vaccinations"
+msgstr "Τελευταίοι εμβολιασμοί"
+
+msgid "Cannot add vaccinations. No active patient."
+msgstr ""
+
+#, fuzzy
+msgid "manage family history"
+msgstr "Επεξεργασία φαρμακευτικής αγωγής"
+
+#, fuzzy
+msgid "Cannot manage family history. No active patient."
+msgstr "Δεν μπορώ να εισάγω την φαρμακευτική αγωγή. Κανείς ενεργός ασθενής."
+
+#, fuzzy
+msgid "Cannot manage measurements. No active patient."
+msgstr "Δεν μπορώ να εισάγω την φαρμακευτική αγωγή. Κανείς ενεργός ασθενής."
+
+msgid "calculate EDC"
+msgstr ""
+
+#, fuzzy
+msgid "manage suppressed hints"
+msgstr "Αποθήκευση διεύθυνσης"
+
+#, fuzzy
+msgid "Cannot manage suppressed hints. No active patient."
+msgstr "Δεν μπορώ να εισάγω την φαρμακευτική αγωγή. Κανείς ενεργός ασθενής."
+
+#, fuzzy
+msgid "Cannot manage smoking status. No active patient."
+msgstr "Δεν μπορώ να εισάγω την φαρμακευτική αγωγή. Κανείς ενεργός ασθενής."
+
+msgid "Cannot show EMR summary. No active patient."
+msgstr ""
+
+msgid "EMR Summary"
+msgstr "Περίληψη ΗΙΦ"
+
+#, fuzzy
+msgid "Cannot export EMR journal by last modification time. No active patient."
+msgstr "Δεν μπορώ να εξάγω τον ΗΙΦ. Χωρίς ενεργό ασθενή."
+
+msgid "journal_by_last_mod_time"
+msgstr ""
+
+msgid "Save patient's EMR journal as..."
+msgstr ""
+
+msgid "Error exporting patient EMR as journal by last modification time."
+msgstr ""
+
+msgid "EMR journal export"
+msgstr "Εξαγωγή εφημερίδας ΗΙΦ"
+
+#, python-format
+msgid ""
+"Successfully exported EMR as journal by last modification time into file "
+"[%s]."
+msgstr ""
+
+msgid "Cannot export EMR journal. No active patient."
+msgstr ""
+
+msgid "emr-journal"
+msgstr "τεπ-ημερολόγιο"
+
+msgid "Error exporting patient EMR as chronological journal."
+msgstr ""
+
+#, python-format
+msgid "Successfully exported EMR as chronological journal into file [%s]."
+msgstr ""
+
+msgid "EMR journal by last modification time"
+msgstr ""
+
+#, fuzzy
+msgid "EMR journal by encounter"
+msgstr "Εξαγωγή εφημερίδας ΗΙΦ"
+
+msgid "Cannot add tag to person. No active patient."
+msgstr ""
+
+#, python-format
+msgid "Edit the comment on tag [%s]"
+msgstr ""
+
+msgid "Editing tag comment"
+msgstr ""
+
+msgid "Cannot export patient as GDT. No active patient."
+msgstr ""
+
+#, fuzzy
+msgid "Exported demographics as GDT to clipboard."
+msgstr "Εξαγωγή στο &πρόχειρο"
+
+#, fuzzy
+msgid "Cannot export patient as VCARD. No active patient."
+msgstr "Δεν μπορώ να εξάγω τον ΗΙΦ. Χωρίς ενεργό ασθενή."
+
+msgid "Exported demographics as VCARD to clipboard."
+msgstr ""
+
+#, fuzzy
+msgid "Cannot export patient as XML (LinuxMedNews). No active patient."
+msgstr "Δεν μπορώ να εξάγω τον ΗΙΦ. Χωρίς ενεργό ασθενή."
+
+#, python-format
+msgid "Exported demographics to XML file [%s]."
+msgstr ""
+
+#, python-format
+msgid "Exported demographics to GDT file [%s]."
+msgstr ""
+
+#, python-format
+msgid "Exported demographics to VCARD file [%s]."
+msgstr ""
+
+msgid "Cannot add staff member. No active patient."
+msgstr ""
+
+msgid "Cannot delete patient. No patient active."
+msgstr ""
+
+msgid ""
+"You have to manually close this window to finalize shutting down GNUmed."
+msgstr ""
+
+msgid "This is so that you can inspect the console output at your leisure."
+msgstr ""
+
+msgid "no patient"
+msgstr ""
+
+#, python-format
+msgid "Saved screenshot to file [%s]."
+msgstr ""
+
+msgid "Python version check"
+msgstr ""
+
+#, python-format
+msgid ""
+"You are running Python version\n"
+" %s\n"
+"\n"
+"However, GNUmed wants Python 2.7 to\n"
+"facilitate migration to Python 3.\n"
+"\n"
+"Please upgrade your Python interpreter !"
+msgstr ""
+
+msgid "GNUmed client"
+msgstr "Πελάτης GNUmed"
+
+msgid "GNUmed stdout/stderr window"
+msgstr ""
+
+msgid "redirecting STDOUT/STDERR to this log window"
+msgstr ""
+
+#, python-format
+msgid ""
+"The database account [%s] cannot be used as a\n"
+"staff member login for GNUmed. There was an\n"
+"error retrieving staff details for it.\n"
+"\n"
+"Please ask your administrator for help.\n"
+msgstr ""
+
+msgid "Checking access permissions"
+msgstr ""
+
+#, python-format
+msgid "Database <%s> on <%s>"
+msgstr ""
+
+#, python-format
+msgid "Branch \"%s\" of praxis \"%s\"\n"
+msgstr ""
+
+msgid "Verifying database"
+msgstr ""
+
+msgid "Connect"
+msgstr "Σύνδεση"
+
+msgid "Yes, connect to this database."
+msgstr ""
+
+msgid "Disconnect"
+msgstr "Αποσύνδεση"
+
+msgid "No, do not connect to this database."
+msgstr ""
+
+#, python-format
+msgid ""
+"Cannot find configuration file in any of:\n"
+"\n"
+" %s\n"
+"You may need to use the comand line option\n"
+"\n"
+"\t--conf-file=<FILE>"
+msgstr ""
+
+msgid "Checking configuration files"
+msgstr ""
+
+msgid "GNUmed startup"
+msgstr "Έναρξη GNUmed"
+
+#, python-format
+msgid ""
+"The currently selected database language ('%s') does\n"
+"not match the current system language ('%s').\n"
+"\n"
+"Do you want to set the database language to '%s' ?\n"
+msgstr ""
+
+msgid "Checking database language settings"
+msgstr ""
+
+#, python-format
+msgid "Set your database language to [%s]."
+msgstr ""
+
+msgid "Don't set"
+msgstr "Μην θέσεις"
+
+msgid "Do not set your database language now."
+msgstr ""
+
+msgid "Remember to ignore language mismatch"
+msgstr ""
+
+#, python-format
+msgid ""
+"Checking this will make GNUmed remember your decision\n"
+"until the system language is changed.\n"
+"\n"
+"You can also reactivate this inquiry by removing the\n"
+"corresponding \"ignore\" option from the configuration file\n"
+"\n"
+" [%s]"
+msgstr ""
+
+#, fuzzy
+msgid "generic activity"
+msgstr "γενικό κείμενο"
+
+msgid "Access denied"
+msgstr ""
+
+#, python-format
+msgid ""
+"Your account is not set up to access this part of GNUmed:\n"
+"\n"
+"  [%s]"
+msgstr ""
+
+msgid "Save timeline as SVG image under..."
 msgstr ""
 
-msgid "Diagnostic organizations (path labs, ...)"
-msgstr ""
+#, fuzzy
+msgid "timeline image"
+msgstr "όλα τα αρχεία"
 
-msgid "Document templates (forms, letters, plots, ...)"
+#, fuzzy
+msgid "timeline data"
+msgstr "Ώρα:"
+
+msgid "Cannot change notebook tabs. No active patient."
 msgstr ""
 
-msgid "Document types"
-msgstr "Τύποι αρχείων"
+msgid "add plugin ..."
+msgstr "προσθήκη πρόσθετου ..."
 
-msgid "Encounter types"
-msgstr "Τύποι συνεδριών"
+msgid "Cannot activate Allergy Manager. No active patient."
+msgstr ""
 
-msgid "Keyword based text expansion macros"
+msgid "RR ?"
 msgstr ""
 
-msgid "Meta test/measurement types"
+#, python-format
+msgid "BMI %s"
 msgstr ""
 
-msgid "Organizations with their units, addresses, and comm channels"
+msgid "BMI ?"
 msgstr ""
 
-msgid "Patient tags"
+msgid "GFR ?"
 msgstr ""
 
-msgid "Provinces (counties, territories, states, regions, ...)"
+#, python-format
+msgid "GFR %s"
 msgstr ""
 
-msgid "String translations in the database"
+#, python-format
+msgid "?EDC %s"
 msgstr ""
 
-msgid "Test/measurement types"
+#, python-format
+msgid "EDC %s"
 msgstr ""
 
-msgid "Vaccination targets (conditions known to be preventable by vaccination)"
+msgid "<Age>"
 msgstr ""
 
-msgid "Vaccines"
-msgstr "Εμβόλια"
+#, fuzzy
+msgid "no patient selected"
+msgstr "Επεξεργασία φαρμακευτικής αγωγής"
 
-msgid "Workplace profiles (which plugins to load)"
-msgstr ""
+#, fuzzy, python-format
+msgid "Gender: %s (%s) - %s\n"
+msgstr "Συνεδρίες: %s (%s - %s):"
 
-msgid "Consumable substances"
-msgstr ""
+#, fuzzy, python-format
+msgid "Born: %s\n"
+msgstr " Κωδικός: %s\n"
 
-msgid "Billable items"
-msgstr ""
+#, fuzzy, python-format
+msgid "Died: %s\n"
+msgstr "Ημερομηνία: %s\n"
 
-msgid "Reference data sources"
-msgstr ""
+#, fuzzy, python-format
+msgid "At age: %s\n"
+msgstr "Ημερομηνία: %s\n"
 
-msgid "Test/measurement panels/profiles"
+msgid " (date of birth and age are estimated)\n"
 msgstr ""
 
-msgid "Master data management"
+#, python-format
+msgid "%(sex)s  %(dob)s (%(age)s today !)"
 msgstr ""
 
-msgid "Select the list you want to manage:"
+msgid ""
+"\n"
+"Today is the patient's birthday !\n"
+"\n"
 msgstr ""
 
-msgid "No DICOM viewer found."
+#, python-format
+msgid "Birthday: %s ago\n"
 msgstr ""
 
-msgid "risk assessment"
+#, python-format
+msgid "Birthday: in %s\n"
 msgstr ""
 
-msgid "cardiovascular risk assessment"
-msgstr ""
+#, fuzzy, python-format
+msgid "Age: %s\n"
+msgstr "Ημερομηνία: %s\n"
 
 #, python-format
-msgid "[arriba] XML result not found in [%s]"
+msgid "last confirmed %s\n"
 msgstr ""
 
-msgid "ACS risk assessment calculator not configured."
+#, python-format
+msgid "Comment (%s): %%s"
 msgstr ""
 
 #, python-format
-msgid "Cannot run [%s] !"
+msgid " - expires %s"
 msgstr ""
 
 #, python-format
-msgid "There was a problem accessing the [arriba] result in [%s] !"
+msgid ""
+"Due for %s (since %s%s):\n"
+"%s%s\n"
+"Patient: %s\n"
+"Reminder by: %s"
 msgstr ""
 
-msgid "[-9999]: <access violation test error>"
-msgstr ""
+#, fuzzy
+msgid "Clinical reminder"
+msgstr "Κλινικές λεπτομέρειες"
+
+#, fuzzy
+msgid "Adding automatic dynamic hint"
+msgstr "Αποθήκευση εγγράφου"
+
+#, fuzzy
+msgid "Editing automatic dynamic hint"
+msgstr "Αποθήκευση εγγράφου"
+
+#, fuzzy
+msgid "Deleting automatic dynamic hint"
+msgstr "Αποθήκευση εγγράφου"
 
+#, python-format
 msgid ""
-"This is a deliberate AcessDenied exception thrown to test the handling of "
-"access violations by means of a decorator."
+"Really delete this dynamic hint ?\n"
+"\n"
+" [%s]"
 msgstr ""
 
-msgid "testing access check for non-existant <admin> role"
-msgstr ""
+#, fuzzy
+msgid "deleting a dynamic hint"
+msgstr "Αποθήκευση εγγράφου"
 
 msgid ""
-"This is a deliberate AcessDenied exception. You should not see this message "
-"because the role is checked in a decorator."
+"\n"
+"Dynamic hints registered with GNUmed.\n"
 msgstr ""
 
-msgid "pgAdmin III not found."
-msgstr ""
+#, fuzzy
+msgid "Showing dynamic hints."
+msgstr "Αποθήκευση εγγράφου"
 
-msgid "Error reloading hook script."
+msgid "Hint"
 msgstr ""
 
-msgid "Save current log as..."
+msgid "Browse and install automatic dynamic hints data packs"
 msgstr ""
 
-msgid "log files"
-msgstr "αρχεία καταγραφής"
+#, fuzzy, python-format
+msgid "By: %s"
+msgstr " Κωδικός: %s\n"
 
-#, python-format
-msgid "Log file backed up as [%s]."
+msgid "No entry in field <Source>."
 msgstr ""
 
-msgid "Cannot start new encounter. No active patient."
+msgid "No entry in field <Conditions>."
 msgstr ""
 
-msgid "Cannot add health issue. No active patient."
+#, fuzzy
+msgid "No entry in field <Description>."
+msgstr "Συνταγές"
+
+msgid "No entry in field <Title>."
 msgstr ""
 
 #, fuzzy
-msgid "Cannot add episode. No active patient."
-msgstr "Δεν μπορώ να εισάγω την φαρμακευτική αγωγή. Κανείς ενεργός ασθενής."
+msgid "creating a new dynamic hint"
+msgstr "Αποθήκευση εγγράφου"
 
-msgid "Cannot add medication. No active patient."
-msgstr "Δεν μπορώ να εισάγω την φαρμακευτική αγωγή. Κανείς ενεργός ασθενής."
+msgid "updating an existing dynamic hint"
+msgstr ""
 
-msgid "Cannot add allergy. No active patient."
+#, fuzzy
+msgid "Deleting suppressed dynamic hint"
+msgstr "Αποθήκευση εγγράφου"
+
+#, python-format
+msgid ""
+"Really delete the suppression of this dynamic hint ?\n"
+"\n"
+" [%s]"
 msgstr ""
 
-msgid "Cannot manage performed procedures. No active patient."
+msgid ""
+"\n"
+"Dynamic hints suppressed in this patient.\n"
 msgstr ""
 
 #, fuzzy
-msgid "Cannot manage hospitalizations. No active patient."
-msgstr "Δεν μπορώ να εισάγω την φαρμακευτική αγωγή. Κανείς ενεργός ασθενής."
+msgid "Showing suppressed dynamic hints."
+msgstr "Αποθήκευση εγγράφου"
 
 #, fuzzy
-msgid "Cannot manage external care. No active patient."
-msgstr "Δεν μπορώ να εισάγω την φαρμακευτική αγωγή. Κανείς ενεργός ασθενής."
+msgid "Rationale"
+msgstr "Αντίδραση"
 
-msgid "Cannot edit occupation. No active patient."
-msgstr ""
+#, fuzzy
+msgid "Manage hints"
+msgstr "&Διαχείριση"
 
 #, fuzzy
-msgid "manage vaccinations"
-msgstr "Τελευταίοι εμβολιασμοί"
+msgid "Manage automatic dynamic hints"
+msgstr "Αποθήκευση εγγράφου"
 
-msgid "Cannot add vaccinations. No active patient."
+msgid "Cannot delete family history item."
 msgstr ""
 
-#, fuzzy
-msgid "Cannot manage family history. No active patient."
-msgstr "Δεν μπορώ να εισάγω την φαρμακευτική αγωγή. Κανείς ενεργός ασθενής."
+msgid "Family history of this patient."
+msgstr ""
 
-#, fuzzy
-msgid "Cannot manage measurements. No active patient."
-msgstr "Δεν μπορώ να εισάγω την φαρμακευτική αγωγή. Κανείς ενεργός ασθενής."
+msgid "Showing family history."
+msgstr ""
 
-msgid "calculate EDC"
+msgid "Fatal"
 msgstr ""
 
 #, fuzzy
-msgid "manage suppressed hints"
-msgstr "Αποθήκευση διεύθυνσης"
+msgid "Noted"
+msgstr "&Σημείωση"
+
+msgid "Died"
+msgstr ""
+
+msgid "Adding family history"
+msgstr ""
 
 #, fuzzy
-msgid "Cannot manage suppressed hints. No active patient."
-msgstr "Δεν μπορώ να εισάγω την φαρμακευτική αγωγή. Κανείς ενεργός ασθενής."
+msgid "Editing family history"
+msgstr "Επεξεργασία φαρμακευτικής αγωγής"
 
-msgid "Cannot show EMR summary. No active patient."
+msgid ""
+"\n"
+"Please select the default drug data source from the list below.\n"
+"\n"
+"Note that to actually use it you need to have the database installed, too."
 msgstr ""
 
-msgid "EMR Summary"
-msgstr "Περίληψη ΗΙΦ"
+msgid "Configuring default drug data source"
+msgstr ""
 
-msgid "Cannot export EMR journal. No active patient."
+msgid "No default drug database configured."
 msgstr ""
 
-msgid "Save patient's EMR journal as..."
+msgid "There is no default drug database configured."
 msgstr ""
 
-msgid "Error exporting patient EMR as chronological journal."
+msgid "Jumping to drug database"
 msgstr ""
 
-msgid "EMR journal export"
-msgstr "Εξαγωγή εφημερίδας ΗΙΦ"
+msgid "Cannot import drugs from IFAP into chart without chart."
+msgstr ""
 
 #, python-format
-msgid "Successfully exported EMR as chronological journal into file [%s]."
+msgid "Cannot call IFAP via [%s]."
 msgstr ""
 
-msgid "Cannot add tag to person. No active patient."
+#, python-format
+msgid "Cannot create IFAP <-> GNUmed transfer file [%s]."
 msgstr ""
 
-#, python-format
-msgid "Edit the comment on tag [%s]"
+msgid "Current medication"
+msgstr "Τρέχουσα φαρμακευτική αγωγή"
+
+msgid ""
+"\n"
+"The ATC codes as known to GNUmed.\n"
 msgstr ""
 
-msgid "Editing tag comment"
+msgid "Showing ATC codes."
 msgstr ""
 
-msgid "Cannot export patient as GDT. No active patient."
+msgid "Choose an ATC import config file"
 msgstr ""
 
-#, fuzzy
-msgid "Exported demographics as GDT to clipboard."
-msgstr "Εξαγωγή στο &πρόχειρο"
+msgid "config files"
+msgstr "αρχεία ρυθμίσεων"
 
-#, fuzzy
-msgid "Cannot export patient as VCARD. No active patient."
-msgstr "Δεν μπορώ να εξάγω τον ΗΙΦ. Χωρίς ενεργό ασθενή."
+msgid "importing ATC reference data"
+msgstr ""
 
-msgid "Exported demographics as VCARD to clipboard."
+msgid "Successfully imported ATC reference data."
 msgstr ""
 
-#, fuzzy
-msgid "Cannot export patient as XML (LinuxMedNews). No active patient."
-msgstr "Δεν μπορώ να εξάγω τον ΗΙΦ. Χωρίς ενεργό ασθενή."
+msgid "Importing ATC reference data failed."
+msgstr ""
 
-#, python-format
-msgid "Exported demographics to XML file [%s]."
+msgid "Select an ATC (Anatomical-Therapeutic-Chemical) code."
 msgstr ""
 
-#, python-format
-msgid "Exported demographics to GDT file [%s]."
+msgid "Cannot edit this substance. It is in use."
 msgstr ""
 
-#, python-format
-msgid "Exported demographics to VCARD file [%s]."
+msgid "Adding new consumable substance"
 msgstr ""
 
-msgid "Cannot add staff member. No active patient."
+msgid "Editing consumable substance"
 msgstr ""
 
-msgid "Cannot delete patient. No patient active."
+msgid "Cannot delete this substance. It is in use."
 msgstr ""
 
 msgid ""
-"You have to manually close this window to finalize shutting down GNUmed."
+"\n"
+"These are the consumable substances registered with GNUmed.\n"
 msgstr ""
 
-msgid "This is so that you can inspect the console output at your leisure."
+msgid "Import"
+msgstr "Εισαγωγή"
+
+msgid "Import consumable substances from a drug database."
 msgstr ""
 
-msgid "no patient"
+msgid "Cannot save consumable substance. Missing essential input."
 msgstr ""
 
 #, python-format
-msgid "Saved screenshot to file [%s]."
+msgid "Cannot save consumable substance. %s"
 msgstr ""
 
-msgid "GNUmed client"
-msgstr "Πελάτης GNUmed"
-
-msgid "GNUmed stdout/stderr window"
+msgid "The substance with optional strength."
 msgstr ""
 
-msgid "redirecting STDOUT/STDERR to this log window"
+msgid "Cannot remove this component from the drug. It is in use."
 msgstr ""
 
-#, python-format
 msgid ""
-"The database account [%s] cannot be used as a\n"
-"staff member login for GNUmed. There was an\n"
-"error retrieving staff details for it.\n"
 "\n"
-"Please ask your administrator for help.\n"
+"These are the components in the drug brands known to GNUmed.\n"
 msgstr ""
 
-msgid "Checking access permissions"
+msgid "Showing drug brand components."
 msgstr ""
 
-#, python-format
-msgid "Database <%s> on <%s>"
+msgid "Adding new drug component"
 msgstr ""
 
-#, python-format
-msgid "Branch \"%s\" of praxis \"%s\"\n"
+msgid "Editing drug component"
 msgstr ""
 
-msgid "Verifying database"
+msgid "Cannot edit drug component. It is in use."
 msgstr ""
 
-msgid "Connect"
-msgstr "Σύνδεση"
-
-msgid "Yes, connect to this database."
+msgid "Cannot save drug component. Invalid or missing essential input."
 msgstr ""
 
-msgid "Disconnect"
-msgstr "Αποσύνδεση"
+msgid "A drug component with optional strength."
+msgstr ""
 
-msgid "No, do not connect to this database."
+msgid "Editing drug"
 msgstr ""
 
 #, python-format
 msgid ""
-"Cannot find configuration file in any of:\n"
+"Cannot edit the branded drug product\n"
 "\n"
-" %s\n"
-"You may need to use the comand line option\n"
+" \"%s\" (%s)\n"
 "\n"
-"\t--conf-file=<FILE>"
+"because it is currently taken by patients.\n"
 msgstr ""
 
-msgid "Checking configuration files"
+msgid "Adding new drug brand"
 msgstr ""
 
-msgid "GNUmed startup"
-msgstr "Έναρξη GNUmed"
-
-#, python-format
-msgid ""
-"The currently selected database language ('%s') does\n"
-"not match the current system language ('%s').\n"
-"\n"
-"Do you want to set the database language to '%s' ?\n"
+msgid "Editing drug brand"
 msgstr ""
 
-msgid "Checking database language settings"
+msgid "Manage consumable substances"
 msgstr ""
 
-msgid "Set"
-msgstr "Ορισμός"
-
-#, python-format
-msgid "Set your database language to [%s]."
+msgid "not in use"
 msgstr ""
 
-msgid "Don't set"
-msgstr "Μην θέσεις"
-
-msgid "Do not set your database language now."
+#, python-format
+msgid "ATC: %s\n"
 msgstr ""
 
-msgid "Remember to ignore language mismatch"
-msgstr ""
+msgid "Editing medication"
+msgstr "Επεξεργασία φαρμακευτικής αγωγής"
 
 #, python-format
 msgid ""
-"Checking this will make GNUmed remember your decision\n"
-"until the system language is changed.\n"
+"Cannot edit the medication\n"
 "\n"
-"You can also reactivate this inquiry by removing the\n"
-"corresponding \"ignore\" option from the configuration file\n"
+" \"%s\" (%s)\n"
 "\n"
-" [%s]"
+"because it is a vaccine. Please edit it\n"
+"from the vaccine management section !\n"
 msgstr ""
+"Δεν μπορώ να επεξεργαστώ τη φαρμακευτική αγωγή\n"
+" \"%s\" (%s)\n"
+"\n"
+"γιατί είναι εμβόλιο. Παρακαλώ η επεξεργασία να γίνει\n"
+"από από το τμήμα διαχείρισης των εμβολίων !\n"
 
-#, fuzzy
-msgid "generic activity"
-msgstr "γενικό κείμενο"
-
-msgid "Access denied"
-msgstr ""
+msgid "Deleting medication"
+msgstr "Διαγραφή φαρμακευτικής αγωγής"
 
 #, python-format
 msgid ""
-"Your account is not set up to access this part of GNUmed:\n"
+"Cannot delete the medication\n"
 "\n"
-"  [%s]"
-msgstr ""
-
-msgid "Save timeline as SVG image under..."
+" \"%s\" (%s)\n"
+"\n"
+"because it is a vaccine. Please delete it\n"
+"from the vaccine management section !\n"
 msgstr ""
+"Δεν μπορώ να διαγράψω τη φαρμακευτική αγωγή\n"
+" \"%s\" (%s)\n"
+"\n"
+"γιατί είναι εμβόλιο. Παρακαλώ η διαγραφή να γίνει\n"
+"από από το τμήμα διαχείρισης των εμβολίων !\n"
 
-#, fuzzy
-msgid "timeline image"
-msgstr "όλα τα αρχεία"
-
-#, fuzzy
-msgid "timeline data"
-msgstr "Ώρα:"
-
-msgid "Cannot change notebook tabs. No active patient."
+msgid ""
+"\n"
+"These are the drug brands known to GNUmed.\n"
 msgstr ""
 
-msgid "add plugin ..."
-msgstr "προσθήκη πρόσθετου ..."
-
-msgid "Cannot activate Allergy Manager. No active patient."
+msgid "Showing branded drugs."
 msgstr ""
 
-msgid "<Age>"
+msgid "Import substances and brands from a drug database."
 msgstr ""
 
-#, fuzzy
-msgid "no patient selected"
-msgstr "Επεξεργασία φαρμακευτικής αγωγής"
-
-#, fuzzy, python-format
-msgid "Gender: %s (%s) - %s\n"
-msgstr "Συνεδρίες: %s (%s - %s):"
-
-#, fuzzy, python-format
-msgid "Born: %s\n"
-msgstr " Κωδικός: %s\n"
-
-#, fuzzy, python-format
-msgid "Died: %s\n"
-msgstr "Ημερομηνία: %s\n"
-
-#, fuzzy, python-format
-msgid "At age: %s\n"
-msgstr "Ημερομηνία: %s\n"
-
-msgid " (date of birth and age are estimated)\n"
+msgid "Managing components of a drug"
 msgstr ""
 
 #, python-format
-msgid "%(sex)s  %(dob)s (%(age)s today !)"
-msgstr ""
-
 msgid ""
+"Cannot manage the components of the branded drug product\n"
 "\n"
-"Today is the patient's birthday !\n"
+" \"%s\" (%s)\n"
 "\n"
+"because it is currently taken by patients.\n"
 msgstr ""
 
-#, python-format
-msgid "Birthday: %s ago\n"
+msgid "Pick the substances which are components of this drug."
 msgstr ""
 
-#, python-format
-msgid "Birthday: in %s\n"
+msgid "Components of drug"
 msgstr ""
 
-#, fuzzy, python-format
-msgid "Age: %s\n"
-msgstr "Ημερομηνία: %s\n"
-
 #, python-format
-msgid "last confirmed %s\n"
+msgid ""
+"Adjust the components of \"%s\"\n"
+"\n"
+"The drug must contain at least one component. Any given\n"
+"substance can only be included once per drug."
 msgstr ""
 
-#, python-format
-msgid "Comment (%s): %%s"
+msgid "Managing components of a drug ..."
 msgstr ""
 
-#, python-format
-msgid " - expires %s"
+msgid "Cannot edit drug brand. It is in use."
 msgstr ""
 
+#, fuzzy
+msgid "Checking brand data"
+msgstr "Έλεγχος ενημερώσεων"
+
 #, python-format
 msgid ""
-"Due for %s (since %s%s):\n"
-"%s%s\n"
-"Patient: %s\n"
-"Reminder by: %s"
+"The brand information you entered:\n"
+"\n"
+" [%s %s]\n"
+"\n"
+"already exists as a drug product."
 msgstr ""
 
-#, fuzzy
-msgid "Clinical reminder"
-msgstr "Κλινικές λεπτομέρειες"
-
-#, fuzzy
-msgid "Adding automatic dynamic hint"
-msgstr "Αποθήκευση εγγράφου"
-
-#, fuzzy
-msgid "Editing automatic dynamic hint"
-msgstr "Αποθήκευση εγγράφου"
+msgid ""
+"You have not selected any substances\n"
+"as drug components.\n"
+"\n"
+"Without components you will not be able to\n"
+"use this drug for documenting patient care.\n"
+"\n"
+"Are you sure you want to save\n"
+"it without components ?"
+msgstr ""
 
-#, fuzzy
-msgid "Deleting automatic dynamic hint"
-msgstr "Αποθήκευση εγγράφου"
+msgid "Cannot save branded drug. Invalid or missing essential input."
+msgstr ""
 
-#, python-format
 msgid ""
-"Really delete this dynamic hint ?\n"
+"The brand name of the drug.\n"
 "\n"
-" [%s]"
+"Note: a brand name will need to be linked to\n"
+"one or more components before it can be used,\n"
+"except in the case of fake (generic) vaccines."
 msgstr ""
 
-#, fuzzy
-msgid "deleting a dynamic hint"
-msgstr "Αποθήκευση εγγράφου"
+msgid "No EMR data loaded."
+msgstr ""
 
-msgid ""
-"\n"
-"Dynamic hints registered with GNUmed.\n"
+msgid "EMR text dump"
+msgstr ""
+
+msgid "Currently there is no active patient. Cannot retrieve EMR text."
 msgstr ""
 
 #, fuzzy
-msgid "Showing dynamic hints."
-msgstr "Αποθήκευση εγγράφου"
+msgid "SOAP Editor Actions:"
+msgstr "Εμβολιασμοί:"
 
-msgid "Hint"
-msgstr ""
+#, fuzzy
+msgid "&Sort lines"
+msgstr "Δημιουργία νέου"
 
-msgid "Browse and install automatic dynamic hints data packs"
+msgid "Sort lines by SOAP category"
 msgstr ""
 
-#, fuzzy, python-format
-msgid "By: %s"
-msgstr " Κωδικός: %s\n"
+msgid "e&Xpand keyword"
+msgstr ""
 
-msgid "No entry in field <Source>."
+msgid "Expand keyword / macro"
 msgstr ""
 
-msgid "No entry in field <Conditions>."
+#, fuzzy
+msgid "as &Subjective"
+msgstr "Υποκειμενικό"
+
+msgid "Set line to category \"Subjective\""
 msgstr ""
 
 #, fuzzy
-msgid "No entry in field <Description>."
-msgstr "Συνταγές"
+msgid "as &Objective"
+msgstr "Αντικειμενικό"
 
-msgid "No entry in field <Title>."
+msgid "Set line to category \"Objective\""
 msgstr ""
 
 #, fuzzy
-msgid "creating a new dynamic hint"
-msgstr "Αποθήκευση εγγράφου"
+msgid "as &Assessment"
+msgstr "Αξιολόγηση"
 
-msgid "updating an existing dynamic hint"
+msgid "Set line to category \"Assessment\""
 msgstr ""
 
 #, fuzzy
-msgid "Deleting suppressed dynamic hint"
-msgstr "Αποθήκευση εγγράφου"
+msgid "as &Plan"
+msgstr "Σχέδιο"
 
-#, python-format
-msgid ""
-"Really delete the suppression of this dynamic hint ?\n"
-"\n"
-" [%s]"
+msgid "Set line to category \"Plan\""
 msgstr ""
 
-msgid ""
-"\n"
-"Dynamic hints suppressed in this patient.\n"
+msgid "as &Unspecified"
 msgstr ""
 
-#, fuzzy
-msgid "Showing suppressed dynamic hints."
-msgstr "Αποθήκευση εγγράφου"
+msgid "Set line to category \"unspecified\""
+msgstr ""
 
 #, fuzzy
-msgid "Rationale"
-msgstr "Αντίδραση"
+msgid "as ad&Ministrative"
+msgstr "Διοικητικό"
 
-#, fuzzy
-msgid "Manage hints"
-msgstr "&Διαχείριση"
+msgid "Set line to category \"administrative\""
+msgstr ""
 
 #, fuzzy
-msgid "Manage automatic dynamic hints"
-msgstr "Αποθήκευση εγγράφου"
-
-msgid "Cannot delete family history item."
-msgstr ""
+msgid "→ &Clipboard"
+msgstr "Εξαγωγή στο &πρόχειρο"
 
-msgid "Family history of this patient."
-msgstr ""
+#, fuzzy
+msgid "Copy line to clipboard"
+msgstr "Εξαγωγή στο &πρόχειρο"
 
-msgid "Showing family history."
-msgstr ""
+#, fuzzy
+msgid "→ +Clipboard+"
+msgstr "Εξαγωγή στο &πρόχειρο"
 
-msgid "Fatal"
-msgstr ""
+#, fuzzy
+msgid "Add line to clipboard"
+msgstr "Εξαγωγή στο &πρόχειρο"
 
 #, fuzzy
-msgid "Noted"
-msgstr "&Σημείωση"
+msgid "Copy content to clipboard"
+msgstr "Εξαγωγή στο &πρόχειρο"
 
-msgid "Died"
-msgstr ""
+#, fuzzy
+msgid "Add content to clipboard"
+msgstr "Εξαγωγή στο &πρόχειρο"
 
-msgid "Adding family history"
-msgstr ""
+#, fuzzy
+msgid "Copy selection to clipboard"
+msgstr "Εξαγωγή στο &πρόχειρο"
 
 #, fuzzy
-msgid "Editing family history"
-msgstr "Επεξεργασία φαρμακευτικής αγωγής"
+msgid "Add selection to clipboard"
+msgstr "Εξαγωγή στο &πρόχειρο"
 
-msgid "No EMR data loaded."
-msgstr ""
+#, fuzzy
+msgid "&Line ..."
+msgstr "Εμβόλιο ..."
 
-msgid "EMR text dump"
-msgstr ""
+#, fuzzy
+msgid "&Text ..."
+msgstr "&Χρήστες ..."
 
-msgid "Currently there is no active patient. Cannot retrieve EMR text."
-msgstr ""
+#, fuzzy
+msgid "&Region ..."
+msgstr "Περιοχή"
 
 #, fuzzy
 msgid "Show HL7 file:"
@@ -16399,6 +17379,10 @@ msgstr ""
 msgid "Extracting HL7 from XML file"
 msgstr ""
 
+#, python-format
+msgid "Unwrapped HL7 into [%s] from [%s]."
+msgstr ""
+
 msgid "Select HL7 file for staging:"
 msgstr ""
 
@@ -16423,6 +17407,10 @@ msgid ""
 " %s"
 msgstr ""
 
+#, python-format
+msgid "Staged HL7 from [%s]."
+msgstr ""
+
 msgid "Importing HL7 data"
 msgstr ""
 
@@ -16468,10 +17456,6 @@ msgstr ""
 msgid "Identification"
 msgstr "Ένδειξη"
 
-#, fuzzy
-msgid "Show"
-msgstr "Εμφάνιση μηνυμάτων:"
-
 msgid "Show formatted HL7"
 msgstr ""
 
@@ -16520,6 +17504,20 @@ msgstr "Ο στιγμιαία επιλεγμένος ασθενής είναι:"
 msgid "Plot current selection"
 msgstr "Τρέχουσα φαρμακευτική αγωγή"
 
+#, fuzzy
+msgid ""
+"Select the measurements panel to show in the top pane for continuous "
+"monitoring."
+msgstr "Επέλεξε πρότυπο για την εκτύπωση της φαρμακευτικής αγωγής."
+
+#, fuzzy
+msgid "Lab panel"
+msgstr "&Διαχείριση"
+
+#, fuzzy
+msgid "Configuring continuous monitoring measurements panel"
+msgstr "Μετρήσεις"
+
 msgid "No default Gnuplot script template selected."
 msgstr ""
 
@@ -16547,13 +17545,29 @@ msgstr ""
 msgid "Cannot plot without a plot script."
 msgstr ""
 
-#, fuzzy
-msgid "Time"
-msgstr "Ώρα:"
-
 msgid "Result"
 msgstr "Αποτέλεσμα"
 
+#, fuzzy
+msgid "Perform on selected results:"
+msgstr "διορθωμένο αποτέλεσμα"
+
+msgid "Review and &sign"
+msgstr ""
+
+msgid "Export to &file"
+msgstr "Εξαγωγή σε &αρχείο"
+
+msgid "Export to &clipboard"
+msgstr "Εξαγωγή στο &πρόχειρο"
+
+msgid "Panels"
+msgstr ""
+
+#, fuzzy
+msgid "List"
+msgstr "Λίστα αναμονής"
+
 msgid ""
 "lab_grid_date_format::%Y\n"
 "%b %d"
@@ -16629,19 +17643,6 @@ msgstr ""
 msgid "All: by &Day"
 msgstr ""
 
-#, fuzzy
-msgid "Perform on selected results:"
-msgstr "διορθωμένο αποτέλεσμα"
-
-msgid "Review and &sign"
-msgstr ""
-
-msgid "Export to &file"
-msgstr "Εξαγωγή σε &αρχείο"
-
-msgid "Export to &clipboard"
-msgstr "Εξαγωγή στο &πρόχειρο"
-
 #, python-format
 msgid "%s results selected. Too many to list individually."
 msgstr ""
@@ -16828,6 +17829,10 @@ msgstr ""
 msgid "EMR Actions:"
 msgstr "Αντίδραση"
 
+#, fuzzy
+msgid "Print EMR"
+msgstr "&Εκτύπωση"
+
 msgid "Create health issue"
 msgstr ""
 
@@ -16982,11 +17987,42 @@ msgstr ""
 msgid "&New notes %s"
 msgstr "&Σημειώσεις"
 
+msgid "Find text in EMR Journal"
+msgstr ""
+
+#, fuzzy
+msgid "Modified"
+msgstr "τροποποιημένη καταχώρηση"
+
+#, fuzzy
+msgid "Clinical time"
+msgstr "Κλινικές σημειώσεις"
+
+msgid "Who / When"
+msgstr ""
+
+#, python-format
 msgid ""
-"An error occurred while retrieving the EMR\n"
-"in journal form for the active patient.\n"
+"Chart entry: %s       [#%s in %s]\n"
+" Modified: %s by %s (%s rev %s)\n"
 "\n"
-"Please check the log file for details."
+"Health issue: %s%s\n"
+"Episode: %s%s\n"
+"Encounter: %s%s"
+msgstr ""
+
+#, python-format
+msgid ""
+"%s\n"
+"\n"
+"                        rev %s (%s) by %s in <%s>"
+msgstr ""
+
+#, python-format
+msgid ""
+"%s\n"
+"%s\n"
+"%s"
 msgstr ""
 
 msgid "Editing tag"
@@ -17116,18 +18152,15 @@ msgid ""
 "%s\n"
 msgstr ""
 
-msgid "This patient DID receive care."
+msgid "This patient DID receive care here."
 msgstr ""
 
-msgid "This person did NOT receive care."
+msgid "This person did NOT receive care here."
 msgstr ""
 
 msgid "Disabling person"
 msgstr ""
 
-msgid "Disabling patient"
-msgstr ""
-
 msgid "Type or select a last name (family name/surname)."
 msgstr ""
 
@@ -17398,6 +18431,9 @@ msgstr ""
 "\n"
 "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
 
+msgid "Connecting to backend"
+msgstr "Σύνδεση στο σύστημα υποστήριξης"
+
 #, fuzzy, python-format
 msgid ""
 "Unable to connect to database:\n"
@@ -17613,9 +18649,6 @@ msgstr "Οργανισμός"
 msgid "Office"
 msgstr "Γραφείο"
 
-msgid "State"
-msgstr "Πολιτεία"
-
 msgid "Zip"
 msgstr "Τ.Κ."
 
@@ -17674,8 +18707,8 @@ msgid "EMR Timeline"
 msgstr "Δέντρο Ηλεκτρονικού Ιατρικού Φακέλου"
 
 #, fuzzy
-msgid "Show &Timeline"
-msgstr "Δείξε &ΠαράδειγμαΠρόσθετου"
+msgid "EMR &Timeline"
+msgstr "Δέντρο Ηλεκτρονικού Ιατρικού Φακέλου"
 
 msgid "Overview"
 msgstr ""
@@ -17703,11 +18736,13 @@ msgstr "Σημειώσεις"
 msgid "&SimpleNotes"
 msgstr "&Σημειώσεις"
 
-msgid "EMR tree"
+#, fuzzy
+msgid "EMR Tree"
 msgstr "Δέντρο Ηλεκτρονικού Ιατρικού Φακέλου"
 
-msgid "EMR &Tree (topical)"
-msgstr ""
+#, fuzzy
+msgid "EMR &Tree"
+msgstr "Δέντρο Ηλεκτρονικού Ιατρικού Φακέλου"
 
 #, fuzzy
 msgid "Print Manager"
@@ -17717,6 +18752,14 @@ msgstr "Εκτύπωση"
 msgid "&Print Manager"
 msgstr "&Διαχείριση"
 
+#, fuzzy
+msgid "EMR Journal"
+msgstr "Ημερολόγιο Ηλεκτρονικού Ιατρικού Φακέλου"
+
+#, fuzzy
+msgid "EMR &Journal (list)"
+msgstr "Ημερολόγιο Ηλεκτρονικού Ιατρικού Φακέλου"
+
 msgid "Appointments"
 msgstr "Ραντεβού"
 
@@ -17729,6 +18772,12 @@ msgstr "εραστηριακό ημερολόγιο"
 msgid "Show &lab journal"
 msgstr "Δείξε &εργαστηριακό ημερολόγιο"
 
+msgid "PACS"
+msgstr ""
+
+msgid "&PACS"
+msgstr ""
+
 msgid "Cardiac Devices"
 msgstr ""
 
@@ -17802,11 +18851,9 @@ msgstr "Χειροκίνητο"
 msgid "User &manual (local)"
 msgstr "Χρήστης &χειροκίνητο"
 
-msgid "EMR journal"
-msgstr "Ημερολόγιο Ηλεκτρονικού Ιατρικού Φακέλου"
-
-msgid "EMR &Journal (chronological)"
-msgstr ""
+#, fuzzy
+msgid "EMR &Journal (text)"
+msgstr "Εξαγωγή εφημερίδας ΗΙΦ"
 
 msgid "Demographics"
 msgstr "Δημογραφικά"
@@ -17967,6 +19014,10 @@ msgstr "Πρόσθετο προτύπων"
 msgid "Show &ExamplePlugin"
 msgstr "Δείξε &ΠαράδειγμαΠρόσθετου"
 
+#, fuzzy
+msgid "Find text"
+msgstr "Τελευταίο έχει δοθεί"
+
 msgid "gm_ctl_client: starting slave GNUmed client"
 msgstr ""
 
@@ -17995,6 +19046,136 @@ msgstr "Ματαίωση"
 msgid "Abort and do NOT connect to GNUmed."
 msgstr "Ματαίωση και ΔΕΝ θα συνδεθείτε με το GNUmed."
 
+#, fuzzy
+#~ msgid ""
+#~ "Health issue: %s%s%s (%s versions)\n"
+#~ "\n"
+#~ msgstr "θέμα υγείας:%s"
+
+#, fuzzy
+#~ msgid ""
+#~ "Episode: %s%s%s (%s versions)\n"
+#~ "\n"
+#~ msgstr "Επεισόδια %s%s%s [#%s]"
+
+#, fuzzy
+#~ msgid ""
+#~ "Encounter: %s%s%s (%s versions)\n"
+#~ "\n"
+#~ msgstr "Συνεδρίες: %s (%s - %s):"
+
+#, fuzzy
+#~ msgid ""
+#~ "\n"
+#~ "current values:\n"
+#~ msgstr "<τρέχουσα αλλεργική κατάσταση>"
+
+#, fuzzy
+#~ msgid "Search in list"
+#~ msgstr "Αποτελέσματα αναζήτησης"
+
+#, fuzzy
+#~ msgid "Show &Timeline"
+#~ msgstr "Δείξε &ΠαράδειγμαΠρόσθετου"
+
+#, fuzzy
+#~ msgid "&Unknown"
+#~ msgstr "'Αγνωστο"
+
+#, fuzzy
+#~ msgid "When was smoking status last confirmed (mostly \"today\") ?"
+#~ msgstr "Πότε η αλλεργική κατάσταση επιβεβαιώθηκε για τελευταία φορά."
+
+#, fuzzy
+#~ msgid "Last confirmed: %s%s"
+#~ msgstr " (τελευταία επιβεβαίωση %s)"
+
+#, fuzzy
+#~ msgid "Smoking status"
+#~ msgstr "κατάσταση"
+
+#~ msgid "State"
+#~ msgstr "Πολιτεία"
+
+#~ msgid "No product information available."
+#~ msgstr "Δεν υπάρχουν διαθέσιμες  πληροφορίες για το προϊόν."
+
+#~ msgid ""
+#~ "Unable to connect to database:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Are you sure you have got a local database installed ?\n"
+#~ "\n"
+#~ "Please retry with proper credentials or cancel.\n"
+#~ "\n"
+#~ "You may also need to check the PostgreSQL client\n"
+#~ "authentication configuration in pg_hba.conf. For\n"
+#~ "details see:\n"
+#~ "\n"
+#~ "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
+#~ msgstr ""
+#~ "Αδύνατη η σύνδεση με τη βάση δεδομένων:\n"
+#~ "\n"
+#~ "% s\n"
+#~ "\n"
+#~ "Είσαι σίγουρος ότι έχεις εγκαταστήσει τοπικά μια βάση δεδομένων;\n"
+#~ "\n"
+#~ "Δοκιμάστε ξανά με την κατάλληλη εντολή ή ακυρώστε.\n"
+#~ "\n"
+#~ "Μπορεί επίσης να χρειαστεί έλεγχος του πελάτη της PostgreSQL\n"
+#~ "για την διαμόρφωση της ταυτότητας στο pg_hba.conf. Για\n"
+#~ "λεπτομέρειες βλέπε:\n"
+#~ "\n"
+#~ "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
+
+#~ msgid ""
+#~ "Unable to connect to database:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Please retry with proper credentials or cancel.\n"
+#~ "\n"
+#~ "You may also need to check the PostgreSQL client\n"
+#~ "authentication configuration in pg_hba.conf. For\n"
+#~ "details see:\n"
+#~ "\n"
+#~ "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
+#~ msgstr ""
+#~ "Αδύνατον να συνδεθώ με τη βάση δεδομένων\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Παρακαλώ προσπαθείστε ξανά με τα απαιτούμενα δικαιώματα ή ακυρώστε\n"
+#~ "\n"
+#~ "Επίσης ίσως χρειάζεται να ελέγξετε την ρύθμιση πιστοποίησης του πελάτη\n"
+#~ "της  PostgreSQL στο αρχείο pg_hba.conf. Για λεπτομέρειες δείτε:\n"
+#~ "\n"
+#~ "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
+
+#~ msgid ""
+#~ "Unable to connect to database:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Please retry another backend / user / password combination !\n"
+#~ msgstr ""
+#~ "Δεν είναι δυνατή η σύνδεση με βάση δεδομένων:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Παρακαλούμε προσπαθήστε ξανά σε άλλο σύστημα υποστήριξης/ χρήστη / κωδικό "
+#~ "πρόσβασης συνδυασμό!\n"
+
+#, fuzzy
+#~ msgid ""
+#~ "\n"
+#~ "Select the measurements panel to show in the top pane.\n"
+#~ msgstr "Επέλεξε πρότυπο για την εκτύπωση της φαρμακευτικής αγωγής."
+
+#~ msgid "The active ingredients of this brand."
+#~ msgstr "Η ενεργός ουσία για αυτό το σκεύασμα."
+
 #~ msgid "Province"
 #~ msgstr "Επαρχία:"
 
@@ -18016,10 +19197,6 @@ msgstr "Ματαίωση και ΔΕΝ θα συνδεθείτε με το GNUme
 #~ "%s"
 
 #, fuzzy
-#~ msgid "Clinical hint"
-#~ msgstr "Κλινικά"
-
-#, fuzzy
 #~ msgid "to printer"
 #~ msgstr "εκτύπωση"
 
@@ -18031,10 +19208,6 @@ msgstr "Ματαίωση και ΔΕΝ θα συνδεθείτε με το GNUme
 #~ msgstr "&Υπέγραψε ως:"
 
 #, fuzzy
-#~ msgid "file: %s (%s/)"
-#~ msgstr "Εργαστήριο: %s\n"
-
-#, fuzzy
 #~ msgid "Switching clinical hint activation"
 #~ msgstr "Επεξεργασία φαρμακευτικής αγωγής"
 
@@ -18154,9 +19327,6 @@ msgstr "Ματαίωση και ΔΕΝ θα συνδεθείτε με το GNUme
 #~ msgid "   unreviewed"
 #~ msgstr "   χωρίς θεώρηση"
 
-#~ msgid "Date: %s\n"
-#~ msgstr "Ημερομηνία: %s\n"
-
 #~ msgid "Employees"
 #~ msgstr "Υπάλληλοι"
 
diff --git a/client/po/en_AU-gnumed.mo b/client/po/en_AU-gnumed.mo
index 74e2d9f..ad347ae 100644
Binary files a/client/po/en_AU-gnumed.mo and b/client/po/en_AU-gnumed.mo differ
diff --git a/client/po/en_AU.po b/client/po/en_AU.po
index d27f166..08a2b75 100644
--- a/client/po/en_AU.po
+++ b/client/po/en_AU.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: GNUmed\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-12-26 20:28+0100\n"
+"POT-Creation-Date: 2016-03-17 16:27+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <LL at li.org>\n"
@@ -1407,10 +1407,22 @@ msgid ""
 msgstr ""
 
 #, python-format
+msgid "Revision #%s"
+msgstr ""
+
+#, python-format
 msgid "[%s:%s]: row not updated (nothing returned), row in use ?"
 msgstr ""
 
 #, python-format
+msgid "<%s(.bat)> not found"
+msgstr ""
+
+#, python-format
+msgid "problem with <%s>"
+msgstr ""
+
+#, python-format
 msgid "[%s] is not a readable file"
 msgstr ""
 
@@ -1438,21 +1450,7 @@ msgstr ""
 msgid "%s Bytes"
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot connect to configuration database with:\n"
-"\n"
-"[%s]"
-msgstr ""
-
-#, python-format
-msgid ""
-"Cannot connect to database with:\n"
-"\n"
-"[%s]"
-msgstr ""
-
-msgid "No product information available."
+msgid "<type>"
 msgstr ""
 
 #, python-format
@@ -1788,103 +1786,6 @@ msgstr ""
 msgid "  risk: %s"
 msgstr ""
 
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Are you sure you have got a local database installed ?\n"
-"\n"
-"Please retry with proper credentials or cancel.\n"
-"\n"
-"You may also need to check the PostgreSQL client\n"
-"authentication configuration in pg_hba.conf. For\n"
-"details see:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-msgstr ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Are you sure you have a local database installed ?\n"
-"\n"
-"Please retry with proper credentials or cancel.\n"
-"\n"
-"You may also need to check the PostgreSQL client\n"
-"authentication configuration in pg_hba.conf. For\n"
-"details see:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Please retry with proper credentials or cancel.\n"
-"\n"
-"You may also need to check the PostgreSQL client\n"
-"authentication configuration in pg_hba.conf. For\n"
-"details see:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-msgstr ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Please retry with proper credentials or cancel.\n"
-"\n"
-"You may also need to check the PostgreSQL client\n"
-"authentication configuration in pg_hba.conf. For\n"
-"details see:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-
-msgid "Connecting to backend"
-msgstr "Connecting to backend"
-
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Please retry another backend / user / password combination !\n"
-msgstr ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Please retry another backend / user / password combination !\n"
-
-msgid "programmer forgot to specify error message"
-msgstr ""
-
-msgid ""
-"\n"
-"\n"
-"Please consult the error log for all the gory details !"
-msgstr ""
-
-msgid "generic error message"
-msgstr ""
-
-msgid "programmer forgot to specify info message"
-msgstr ""
-
-msgid "generic info message"
-msgstr ""
-
-msgid "programmer forgot to specify warning"
-msgstr ""
-
-msgid "generic warning message"
-msgstr ""
-
 msgid "no hook specified, please report bug"
 msgstr ""
 
@@ -2201,6 +2102,30 @@ msgstr ""
 msgid "Include:"
 msgstr ""
 
+msgid "&Search"
+msgstr ""
+
+msgid "Suggest"
+msgstr ""
+
+msgid "Set"
+msgstr ""
+
+msgid "dialog_1"
+msgstr ""
+
+msgid "Search patients in Orthanc DICOM store."
+msgstr ""
+
+msgid "Suggest a patient ID based on the active patient."
+msgstr ""
+
+msgid "Search term:"
+msgstr ""
+
+msgid "New patient ID:"
+msgstr ""
+
 msgid "Your review"
 msgstr ""
 
@@ -2502,6 +2427,90 @@ msgstr ""
 msgid "Amount"
 msgstr ""
 
+msgid "&Connect"
+msgstr ""
+
+msgid "&Browse"
+msgstr ""
+
+msgid "<not connected>"
+msgstr ""
+
+msgid "Browse all"
+msgstr ""
+
+msgid "Export all"
+msgstr ""
+
+msgid "Browse"
+msgstr ""
+
+msgid "Export"
+msgstr ""
+
+msgid "Upload"
+msgstr ""
+
+msgid "Enter the PACS host address."
+msgstr ""
+
+msgid "Enter the PACS port."
+msgstr ""
+
+msgid "Enter the PACS user."
+msgstr ""
+
+msgid "Enter the PACS password. It will not be shown."
+msgstr ""
+
+msgid "Connect to PACS."
+msgstr ""
+
+msgid "Browse PACS at top level."
+msgstr ""
+
+msgid "Modify some of Orthanc content (such as patient IDs)."
+msgstr ""
+
+#, fuzzy
+msgid "Browse overview of studies for this patient."
+msgstr "There are no episodes for this health issue."
+
+msgid "Copy all studies into export area."
+msgstr ""
+
+msgid "Browse topmost selected study."
+msgstr ""
+
+msgid "Copy selected studies into export area."
+msgstr ""
+
+msgid "Save selected studies to disk."
+msgstr ""
+
+msgid ""
+"Upload DICOM files from a directory, recursively, into the Orthanc PACS\n"
+"\n"
+"The currently active patient does not matter. Orthanc will associate "
+"uploaded files with the patient found within the DICOM metadata. It will "
+"create new patients as needed."
+msgstr ""
+
+msgid "Host:"
+msgstr ""
+
+msgid "Port:"
+msgstr ""
+
+msgid "User:"
+msgstr ""
+
+msgid "Password"
+msgstr ""
+
+msgid "Selected studies:"
+msgstr ""
+
 msgid "Fake brand"
 msgstr ""
 
@@ -2819,9 +2828,6 @@ msgstr ""
 msgid "&Load"
 msgstr ""
 
-msgid "Export"
-msgstr ""
-
 msgid "A long, descriptive name for this form template."
 msgstr ""
 
@@ -2909,15 +2915,12 @@ msgstr ""
 msgid "Document Properties"
 msgstr ""
 
-msgid "Show part"
+msgid "Show"
 msgstr ""
 
 msgid "Remove part"
 msgstr ""
 
-msgid "Parts"
-msgstr ""
-
 msgid "Discard"
 msgstr ""
 
@@ -2945,6 +2948,9 @@ msgstr ""
 msgid "Required: The primary episode this document is to be listed under."
 msgstr ""
 
+msgid "Optional: The organization (unit) this document originated from."
+msgstr ""
+
 msgid ""
 "Optional: A short comment identifying the document. Good comments give an "
 "idea of the content and source of the document."
@@ -2969,6 +2975,9 @@ msgid ""
 "normal and abnormal resuslts can be relevant."
 msgstr ""
 
+msgid "Optional: A free-text document description."
+msgstr ""
+
 msgid "This field lists the parts belonging to the current document."
 msgstr ""
 
@@ -2980,9 +2989,6 @@ msgid ""
 "deletion from disk."
 msgstr ""
 
-msgid "Optional: A free-text document description."
-msgstr ""
-
 msgid "Save finished document."
 msgstr ""
 
@@ -2998,6 +3004,10 @@ msgstr ""
 msgid "Associate to episode:"
 msgstr ""
 
+#, fuzzy
+msgid "Document source:"
+msgstr "Documents:"
+
 msgid "Comment / Identification:"
 msgstr ""
 
@@ -3178,7 +3188,7 @@ msgstr ""
 msgid "Messages:"
 msgstr ""
 
-msgid "Only:"
+msgid "Limit to:"
 msgstr ""
 
 msgid "&Myself … or:"
@@ -3288,10 +3298,10 @@ msgstr ""
 msgid "Purpose"
 msgstr ""
 
-msgid "Details"
+msgid "Please supply your email address here !"
 msgstr ""
 
-msgid "<Please supply your email address here !>"
+msgid "Details"
 msgstr ""
 
 msgid "Keep running"
@@ -3315,9 +3325,11 @@ msgid ""
 msgstr ""
 
 msgid ""
-"Please enter your email address so we can provide feedback directly to you. "
-"Otherwise, feedback will be given on the GNUmed mailing list (http://lists."
-"gnu.org/mailman/listinfo/gnumed-bugs)."
+"Please enter your email address so we can provide help to you directly.\n"
+"\n"
+"Otherwise, feedback can be given on the GNUmed mailing list (http://lists."
+"gnu.org/mailman/listinfo/gnumed-bugs) ONLY to which you will then have to "
+"subscribe."
 msgstr ""
 
 msgid "Find help on http://wiki.gnumed.de, too."
@@ -3432,9 +3444,6 @@ msgstr ""
 msgid "Account"
 msgstr ""
 
-msgid "Password"
-msgstr ""
-
 msgid "Password, again"
 msgstr ""
 
@@ -3922,7 +3931,7 @@ msgstr ""
 msgid "Acquire images from image source (scanner, ...)."
 msgstr ""
 
-msgid "Acquire images or text from the clipboard."
+msgid "Acquire file or text from the clipboard."
 msgstr ""
 
 msgid "Remove the selected documents."
@@ -4067,7 +4076,7 @@ msgid ""
 "- the result list will be artificially limited to the first 1000 rows\n"
 "- you can include a column named \"pk_patient\" to make the result rows "
 "activate the corresponding patient on double-clicking\n"
-"- by inserting $<ID_active_patient>$ you can access the patient ID of the "
+"- by inserting $<ID_ACTIVE_PATIENT>$ you can access the patient ID of the "
 "patient active at the time of running the query"
 msgstr ""
 
@@ -4226,9 +4235,6 @@ msgstr ""
 msgid "Link &new"
 msgstr ""
 
-msgid "Browse"
-msgstr ""
-
 msgid ""
 "Search for matches among existing addresses and [Link] a selection, or [Link "
 "(a) new] address."
@@ -4277,25 +4283,16 @@ msgid ""
 "left."
 msgstr ""
 
-msgid "label_1"
-msgstr ""
-
-msgid "→"
-msgstr ""
-
-msgid "←"
-msgstr ""
-
-msgid "Extra"
+msgid "Subjective"
 msgstr ""
 
-msgid "Move selected items from left to right."
+msgid "Objective"
 msgstr ""
 
-msgid "Move selected items from right to left."
+msgid "Assessment"
 msgstr ""
 
-msgid "Cancel picking items."
+msgid "Plan"
 msgstr ""
 
 msgid "Episode synopsis"
@@ -4331,19 +4328,28 @@ msgid ""
 "narrative belongs to."
 msgstr ""
 
-msgid "Subjective"
+msgid "Codes:"
 msgstr ""
 
-msgid "Codes:"
+msgid "label_1"
 msgstr ""
 
-msgid "Objective"
+msgid "→"
 msgstr ""
 
-msgid "Assessment"
+msgid "←"
 msgstr ""
 
-msgid "Plan"
+msgid "Extra"
+msgstr ""
+
+msgid "Move selected items from left to right."
+msgstr ""
+
+msgid "Move selected items from right to left."
+msgstr ""
+
+msgid "Cancel picking items."
 msgstr ""
 
 msgid "1"
@@ -4512,10 +4518,87 @@ msgstr ""
 msgid "Age range"
 msgstr ""
 
-msgid "Closed episodes"
+msgid "&Nicotine"
 msgstr ""
 
-msgid "Non-relevant issues"
+msgid "&Alcohol"
+msgstr ""
+
+msgid "&Other:"
+msgstr ""
+
+msgid "&Non-harmful use"
+msgstr ""
+
+msgid "&Harmful use"
+msgstr ""
+
+msgid "Presently &addicted"
+msgstr ""
+
+msgid "Previously &addicted"
+msgstr ""
+
+msgid "&Reconfirm as of today"
+msgstr ""
+
+msgid "Select for documenting smoking status."
+msgstr ""
+
+msgid "Select for documenting alcohol use status."
+msgstr ""
+
+msgid ""
+"Select for documenting use of substances other than nicotine or alcohol."
+msgstr ""
+
+msgid "Select the abused substance."
+msgstr ""
+
+msgid ""
+"Select if the substance use is not considered harmful (say, no use or non-"
+"harmful use)."
+msgstr ""
+
+msgid "Select if substance is use considered harmful."
+msgstr ""
+
+msgid "Select if the patient is presently addicted to this substance."
+msgstr ""
+
+msgid "Select if the patient was previously addicted to this substance."
+msgstr ""
+
+msgid ""
+"A comment on this substance use:\n"
+"- type of product used\n"
+"- frequency\n"
+"- amount\n"
+"- when started\n"
+"- attempts to quit\n"
+"..."
+msgstr ""
+
+msgid ""
+"When did the patient quit?\n"
+"\n"
+"You can also set a target quit date here."
+msgstr ""
+
+msgid "Check here to confirm for today."
+msgstr ""
+
+msgid "Quit date"
+msgstr ""
+
+#, fuzzy
+msgid "Last confirmed"
+msgstr " (last confirmed %s)"
+
+msgid "Closed episodes"
+msgstr ""
+
+msgid "Non-relevant issues"
 msgstr ""
 
 msgid "Active problems"
@@ -4848,20 +4931,18 @@ msgstr ""
 msgid "Show:"
 msgstr ""
 
-msgid "Brand by component"
+msgid "Kidneys"
 msgstr ""
 
 msgid "Brands"
 msgstr ""
 
-msgid "Kidneys"
-msgstr ""
-
-msgid "Unbranded substance"
+msgid "Substances"
 msgstr ""
 
-msgid "Manage"
-msgstr ""
+#, fuzzy
+msgid "&Unknown or date:"
+msgstr "unknown allergy state"
 
 msgid "Approved of"
 msgstr ""
@@ -4876,22 +4957,18 @@ msgid "... Reason"
 msgstr ""
 
 msgid ""
-"A component of a drug brand the patient is taking.\n"
+"A drug the patient is taking.\n"
 "\n"
-"Lookup, and select, a single- (or multi-) component drug brand, by active "
-"ingredient name. All components of multi-component drugs will be displayed "
-"and automatically added to the patient's list."
-msgstr ""
-
-msgid ""
-"Manage drug brands.\n"
+"Lookup and select an intake by either of\n"
+"- a generic substance name\n"
+"- a drug brand name\n"
+"- an active ingredient of a drug\n"
 "\n"
-"Note that this will not select a component for you. What it does is to let "
-"you manage (add/edit/delete) the drug products/brands known to GNUmed from "
-"which you can select a component."
+"Note that all components of multi-component drugs will be displayed and "
+"automatically added to the patient's list."
 msgstr ""
 
-msgid "The active ingredients of this brand."
+msgid "Details on the selected drug."
 msgstr ""
 
 msgid "Show cardiac information relevant to substance selection."
@@ -4901,8 +4978,11 @@ msgid "Show renal insufficiency information related to substance selection."
 msgstr ""
 
 msgid ""
-"The non-branded medication or non-medication substance, with optional "
-"strength."
+"Manage drug brands.\n"
+"\n"
+"Note that this will not select a component for you. What it does is to let "
+"you manage (add/edit/delete) the drug products/brands known to GNUmed from "
+"which you can select a component."
 msgstr ""
 
 msgid ""
@@ -4915,11 +4995,19 @@ msgstr ""
 msgid "The preparation or form of the substance."
 msgstr ""
 
+msgid "Check here if the start date simply isn't known."
+msgstr ""
+
 msgid ""
 "When was this substance started to be consumed or - if not known - the "
 "earliest it is known to have been be consumed."
 msgstr ""
 
+msgid ""
+"A coment on the certainty of the start date, such as \"+/- 3 weeks\", "
+"\"spring of 2002\", \"shortly after Easter 1996\", ...."
+msgstr ""
+
 msgid "Whether this substance is taken by advice."
 msgstr ""
 
@@ -4953,6 +5041,15 @@ msgstr ""
 msgid "Reason for discontinuation."
 msgstr ""
 
+msgid "Drug"
+msgstr ""
+
+msgid "Research:"
+msgstr ""
+
+msgid "Certainty:"
+msgstr ""
+
 msgid "Schedule"
 msgstr ""
 
@@ -5104,6 +5201,31 @@ msgstr ""
 msgid "Channel"
 msgstr ""
 
+msgid "&Last modification time"
+msgstr ""
+
+msgid "&Entry time"
+msgstr ""
+
+msgid "Show journal ordered by encounter."
+msgstr ""
+
+msgid "Show journal ordered by time of last modification."
+msgstr ""
+
+msgid "Show journal ordered by actual clinical time of each entry."
+msgstr ""
+
+msgid "Edit the selected chart entry."
+msgstr ""
+
+#, fuzzy
+msgid "Delete selected chart entry."
+msgstr "Starting patient encounter"
+
+msgid "Order by:"
+msgstr ""
+
 msgid "Chec&k"
 msgstr ""
 
@@ -5646,10 +5768,13 @@ msgstr ""
 msgid "Documents:"
 msgstr "Documents:"
 
+msgid "&L"
+msgstr ""
+
 msgid "&N"
 msgstr ""
 
-msgid "&L"
+msgid "List all encounters."
 msgstr ""
 
 msgid "The encounter."
@@ -5658,9 +5783,6 @@ msgstr ""
 msgid "Start a new encounter for the active patient."
 msgstr ""
 
-msgid "List all encounters."
-msgstr ""
-
 msgid "Clinically relevant"
 msgstr ""
 
@@ -5909,7 +6031,8 @@ msgstr ""
 
 msgid ""
 "Rationale for\n"
-"suppression"
+"suppression\n"
+"for this patient"
 msgstr ""
 
 msgid "Save &under"
@@ -5965,6 +6088,12 @@ msgstr ""
 msgid "Encounter:"
 msgstr ""
 
+msgid "Manage"
+msgstr ""
+
+msgid "&Panel:"
+msgstr ""
+
 msgid "&Pick"
 msgstr ""
 
@@ -6007,6 +6136,9 @@ msgid ""
 "To disable that popup leave the message empty."
 msgstr ""
 
+msgid "Show search dialog."
+msgstr ""
+
 msgid "THIS IS NOT A VERIFIED MEASUREMENT. DO NOT USE FOR ACTUAL CARE."
 msgstr ""
 
@@ -6287,6 +6419,46 @@ msgstr "*does* have allergies"
 msgid "ERROR: unknown allergy state [%s]"
 msgstr "ERROR: unknown allergy state [%s]"
 
+msgid "definite"
+msgstr ""
+
+msgid "indefinite"
+msgstr ""
+
+msgid "Reaction:"
+msgstr ""
+
+msgid "Noted:"
+msgstr ""
+
+msgid "Allergene:"
+msgstr ""
+
+#, fuzzy
+msgid "Substance:"
+msgstr "%s: encounter (%s)"
+
+msgid "Code:"
+msgstr ""
+
+msgid "ATC:"
+msgstr ""
+
+msgid "Specific to:"
+msgstr ""
+
+msgid "this substance only"
+msgstr ""
+
+msgid "drug class"
+msgstr ""
+
+msgid "unknown"
+msgstr ""
+
+msgid "Generics:"
+msgstr ""
+
 msgid "Medication history"
 msgstr ""
 
@@ -6296,9 +6468,15 @@ msgstr ""
 msgid "prescription data"
 msgstr ""
 
+msgid "Consumable substance"
+msgstr ""
+
 msgid "in use"
 msgstr ""
 
+msgid "w/"
+msgstr ""
+
 msgid "long-term"
 msgstr ""
 
@@ -6318,6 +6496,35 @@ msgid "?ongoing"
 msgstr ""
 
 #, python-format
+msgid ""
+"Substance abuse entry                                              [#%s]\n"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "Substance: %s [#%s]%s\n"
+msgstr "%s: encounter (%s)"
+
+#, python-format
+msgid "Use type: %s\n"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "Last checked: %s\n"
+msgstr "Last worked on: %s\n"
+
+#, python-format
+msgid " Discontinued %s\n"
+msgstr ""
+
+#, python-format
+msgid " Notes: %s\n"
+msgstr ""
+
+#, python-format
+msgid "Revision: #%(row_ver)s, %(mod_when)s by %(mod_by)s."
+msgstr ""
+
+#, python-format
 msgid "Substance intake entry (%s, %s)   [#%s]                     \n"
 msgstr ""
 
@@ -6333,9 +6540,6 @@ msgstr ""
 msgid "unapproved"
 msgstr ""
 
-msgid "definite"
-msgstr ""
-
 msgid "suspected"
 msgstr ""
 
@@ -6382,10 +6586,6 @@ msgid " (short-term)"
 msgstr ""
 
 #, python-format
-msgid " Discontinued %s\n"
-msgstr ""
-
-#, python-format
 msgid " Reason: %s\n"
 msgstr ""
 
@@ -6405,16 +6605,59 @@ msgstr ""
 msgid " Advice: %s\n"
 msgstr ""
 
+msgid "medication, not abuse"
+msgstr ""
+
+msgid "no or non-harmful use"
+msgstr ""
+
+msgid "presently harmful use"
+msgstr ""
+
+msgid "presently addicted"
+msgstr ""
+
+msgid "previously addicted"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "%s%s: %s ago%s"
+msgstr "%s: encounter (%s)"
+
+#, fuzzy, python-format
+msgid "%s%s: %s ago (%s)"
+msgstr "%s: encounter (%s)"
+
+#, fuzzy, python-format
+msgid "%s%s%s (%s ago)"
+msgstr "%s: encounter (%s)"
+
+#, fuzzy, python-format
+msgid "%s%s%s (%s ago, %s)"
+msgstr "%s: encounter (%s)"
+
+#, python-format
+msgid "%s ago"
+msgstr ""
+
 #, python-format
-msgid "Revision: #%(row_ver)s, %(mod_when)s by %(mod_by)s."
+msgid "in %s"
+msgstr ""
+
+#, fuzzy, python-format
+msgid ", until %s (%s)"
+msgstr "%s: encounter (%s)"
+
+#, python-format
+msgid " (planned for %s%s)"
 msgstr ""
 
 #, python-format
-msgid "%s: %s ago"
+msgid ", planned for %s%s"
 msgstr ""
 
 #, fuzzy, python-format
-msgid "%s: %s ago (%s)"
+msgid "%s ago (for %s: %s %s %s)"
 msgstr "%s: encounter (%s)"
 
 msgid "Additional notes"
@@ -6429,10 +6672,32 @@ msgstr ""
 msgid "ordered by brand"
 msgstr ""
 
-msgid "Drug"
+msgid "Regimen / Advice"
 msgstr ""
 
-msgid "Regimen / Advice"
+#, fuzzy, python-format
+msgid "Component of %s (%s)"
+msgstr "%s: encounter (%s)"
+
+#, python-format
+msgid "ATC (substance): %s"
+msgstr ""
+
+#, python-format
+msgid "ATC (brand): %s"
+msgstr ""
+
+msgid "this is a component of a fake brand"
+msgstr ""
+
+#, fuzzy
+msgid "Components:"
+msgstr "Documents:"
+
+msgid "this is a fake brand"
+msgstr ""
+
+msgid "this is a vaccine"
 msgstr ""
 
 msgid "units"
@@ -6467,74 +6732,40 @@ msgstr ""
 msgid "Expires: %s\n"
 msgstr ""
 
-msgid "Active clinical hint"
+msgid "HL7 Source"
 msgstr ""
 
-msgid "Inactive clinical hint"
+msgid "HL7 data size"
 msgstr ""
 
 #, python-format
-msgid "Source: %s\n"
+msgid "%s bytes"
 msgstr ""
 
-#, python-format
-msgid "Language: %s\n"
+msgid "HL7 Message"
 msgstr ""
 
-msgid "Suppressed active dynamic hint"
+#, python-format
+msgid " %s segments (lines)%s"
 msgstr ""
 
-msgid "Suppressed inactive dynamic hint"
+msgid ", skipping empty fields"
 msgstr ""
 
 #, python-format
-msgid "Suppressed by: %s\n"
+msgid "Segment #%s <%s>"
 msgstr ""
 
 #, python-format
-msgid "Suppressed at: %s\n"
+msgid "%s fields"
 msgstr ""
 
 #, python-format
-msgid "Hint #: %s\n"
+msgid "HL7 %s field"
 msgstr ""
 
-#, fuzzy, python-format
-msgid "Patient #: %s\n"
-msgstr "Last worked on: %s\n"
-
-#, fuzzy, python-format
-msgid "MD5 (currently): %s\n"
-msgstr "Documents: %s"
-
-#, python-format
-msgid "MD5 (at suppression): %s\n"
-msgstr ""
-
-msgid "HL7 Message"
-msgstr ""
-
-#, python-format
-msgid " %s segments (lines)%s"
-msgstr ""
-
-msgid ", skipping empty fields"
-msgstr ""
-
-#, python-format
-msgid "Segment #%s <%s>"
-msgstr ""
-
-#, python-format
-msgid "%s fields"
-msgstr ""
-
-#, python-format
-msgid "HL7 %s field"
-msgstr ""
-
-msgid "<EMTPY>"
-msgstr ""
+msgid "<EMTPY>"
+msgstr ""
 
 #, python-format
 msgid "failed import: %s\n"
@@ -6564,13 +6795,6 @@ msgstr ""
 msgid "doc: %s"
 msgstr "Documents: %s"
 
-msgid "no patient photograph available"
-msgstr ""
-
-#, python-format
-msgid "patient photograph from %s"
-msgstr ""
-
 msgid "Patient data for"
 msgstr ""
 
@@ -6580,6 +6804,9 @@ msgstr ""
 msgid "Patient data export"
 msgstr ""
 
+msgid "no patient photograph available"
+msgstr ""
+
 msgid "Documents"
 msgstr ""
 
@@ -6590,6 +6817,10 @@ msgstr ""
 msgid "browse documents area"
 msgstr " %s documents\n"
 
+#, python-format
+msgid "patient photograph from %s"
+msgstr ""
+
 msgid "Browse patient data"
 msgstr ""
 
@@ -6625,24 +6856,24 @@ msgstr ""
 #, python-format
 msgid ""
 "%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s %(suburb)s, "
-"%(code_state)s, %(code_country)s"
+"%(code_region)s, %(code_country)s"
 msgstr ""
 
 #, python-format
 msgid ""
 "%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s %(suburb)s, "
-"%(code_state)s, %(code_country)s"
+"%(code_region)s, %(code_country)s"
 msgstr ""
 
 #, python-format
 msgid ""
-"%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_state)s, "
-"%(code_country)s"
+"%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, "
+"%(code_region)s, %(code_country)s"
 msgstr ""
 
 #, python-format
 msgid ""
-"%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_state)s, "
+"%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_region)s, "
 "%(code_country)s"
 msgstr ""
 
@@ -6652,7 +6883,7 @@ msgid ""
 " Street: %(street)s%(notes_street)s\n"
 " Number/Unit: %(number)s%(subunit)s%(notes_subunit)s\n"
 " Location: %(zip)s %(urb)s%(suburb)s\n"
-" Region: %(l10n_state)s, %(code_state)s\n"
+" Region: %(l10n_region)s, %(code_region)s\n"
 " Country: %(l10n_country)s, %(code_country)s"
 msgstr ""
 
@@ -6662,7 +6893,7 @@ msgid ""
 " Street: %(street)s%(notes_street)s\n"
 " Number/Unit: %(number)s%(subunit)s%(notes_subunit)s\n"
 " Location: %(zip)s %(urb)s%(suburb)s\n"
-" Region: %(l10n_state)s, %(code_state)s\n"
+" Region: %(l10n_region)s, %(code_region)s\n"
 " Country: %(l10n_country)s, %(code_country)s"
 msgstr ""
 
@@ -6731,6 +6962,88 @@ msgstr ""
 msgid "missing, reported later"
 msgstr ""
 
+msgid "Health issue"
+msgstr ""
+
+msgid "External care"
+msgstr ""
+
+msgid "Vaccination"
+msgstr ""
+
+msgid "Clinical narrative"
+msgstr ""
+
+#, fuzzy
+msgid "Test result"
+msgstr " %s test results\n"
+
+msgid "Substance intake"
+msgstr ""
+
+msgid "Hospital stay"
+msgstr ""
+
+msgid "Performed procedure"
+msgstr ""
+
+msgid "Family history"
+msgstr ""
+
+#, fuzzy
+msgid "Document"
+msgstr "Documents:"
+
+#, python-format
+msgid "unmapped entry type from table [%s]"
+msgstr ""
+
+#, python-format
+msgid "cannot instantiate clinical root item <%s(%s)>"
+msgstr ""
+
+msgid "True"
+msgstr ""
+
+msgid "False"
+msgstr ""
+
+#, fuzzy
+msgid "unknown smoking status"
+msgstr "unknown allergy state"
+
+msgid "non-smoker"
+msgstr ""
+
+msgid "current smoker"
+msgstr ""
+
+msgid "ex-smoker"
+msgstr ""
+
+msgid "tobacco addiction"
+msgstr ""
+
+msgid "no or non-harmful alcohol use"
+msgstr ""
+
+msgid "harmful alcohol use"
+msgstr ""
+
+#, fuzzy
+msgid "unknown alcohol use"
+msgstr "unknown allergy state"
+
+msgid "no or non-harmful drug use"
+msgstr ""
+
+msgid "harmful drug use"
+msgstr ""
+
+#, fuzzy
+msgid "unknown drug use"
+msgstr "unknown allergy state"
+
 msgid "original entry"
 msgstr "original entry"
 
@@ -6822,13 +7135,6 @@ msgstr ""
 msgid "Vaccinations"
 msgstr ""
 
-#, python-format
-msgid "%s ago"
-msgstr ""
-
-msgid "External care"
-msgstr ""
-
 msgid "Allergies/Intolerances"
 msgstr ""
 
@@ -6913,6 +7219,83 @@ msgid ""
 "The account was deactivated instead."
 msgstr ""
 
+msgid "SOAP_char_S=S"
+msgstr ""
+
+msgid "SOAP_char_O=O"
+msgstr ""
+
+msgid "SOAP_char_A=A"
+msgstr ""
+
+msgid "SOAP_char_P=P"
+msgstr ""
+
+msgid "SOAP_char_U=U"
+msgstr ""
+
+msgid "SOAP_string_Subjective=Subjective"
+msgstr ""
+
+msgid "SOAP_string_Objective=Objective"
+msgstr ""
+
+msgid "SOAP_string_Assessment=Assessment"
+msgstr ""
+
+msgid "SOAP_string_Plan=Plan"
+msgstr ""
+
+msgid "SOAP_string_Unspecified=Unspecified"
+msgstr ""
+
+msgid "SOAP_string_Administrative=Administrative"
+msgstr ""
+
+msgid "Active clinical hint"
+msgstr ""
+
+msgid "Inactive clinical hint"
+msgstr ""
+
+#, python-format
+msgid "Source: %s\n"
+msgstr ""
+
+#, python-format
+msgid "Language: %s\n"
+msgstr ""
+
+msgid "Suppressed active dynamic hint"
+msgstr ""
+
+msgid "Suppressed inactive dynamic hint"
+msgstr ""
+
+#, python-format
+msgid "Suppressed by: %s\n"
+msgstr ""
+
+#, python-format
+msgid "Suppressed at: %s\n"
+msgstr ""
+
+#, python-format
+msgid "Hint #: %s\n"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "Patient #: %s\n"
+msgstr "Last worked on: %s\n"
+
+#, fuzzy, python-format
+msgid "MD5 (currently): %s\n"
+msgstr "Documents: %s"
+
+#, python-format
+msgid "MD5 (at suppression): %s\n"
+msgstr ""
+
 #, python-format
 msgid "Device(%s):"
 msgstr "Device(%s):"
@@ -6939,6 +7322,12 @@ msgstr "Impedance:"
 msgid "Praxis branch                   #%s\n"
 msgstr ""
 
+#, python-format
+msgid ""
+"FN:%(l10n_unit_category)s %(branch)s of %(l10n_organization_category)s "
+"%(praxis)s"
+msgstr ""
+
 msgid "Privacy notice"
 msgstr ""
 
@@ -6952,40 +7341,6 @@ msgstr ""
 msgid "%s: Staff member %s has been notified of your chart access."
 msgstr ""
 
-msgid "soap_S"
-msgstr "soap_S"
-
-msgid "soap_O"
-msgstr "soap_O"
-
-msgid "soap_A"
-msgstr "soap_A"
-
-msgid "soap_P"
-msgstr "soap_P"
-
-#, fuzzy
-msgid "soap_U"
-msgstr "soap_S"
-
-msgid "soap_Subjective"
-msgstr "soap_Subjective"
-
-msgid "soap_Objective"
-msgstr "soap_Objective"
-
-msgid "soap_Assessment"
-msgstr "soap_Assessment"
-
-msgid "soap_Plan"
-msgstr "soap_Plan"
-
-msgid "soap_Unspecified"
-msgstr ""
-
-msgid "soap_Administrative"
-msgstr "soap_Administrative"
-
 #, python-format
 msgid ""
 "%s: %s by %.8s (v%s)\n"
@@ -7050,9 +7405,17 @@ msgid "%(last)s,%(title)s %(first)s%(nick)s (%(sex)s)"
 msgstr ""
 
 #, python-format
+msgid "%(last)s,%(title)s %(first)s (%(sex)s)"
+msgstr ""
+
+#, python-format
 msgid "%(last)s,%(title)s %(first)s%(nick)s"
 msgstr ""
 
+#, python-format
+msgid "%(last)s,%(title)s %(first)s"
+msgstr ""
+
 msgid "Cannot merge active patient into another patient."
 msgstr ""
 
@@ -7062,9 +7425,6 @@ msgstr ""
 msgid "merged"
 msgstr ""
 
-msgid "preferred name/call name/..."
-msgstr ""
-
 msgid "invalid age: DOB in the future"
 msgstr ""
 
@@ -7077,9 +7437,6 @@ msgstr ""
 msgid "Mrs"
 msgstr ""
 
-msgid "unknown"
-msgstr ""
-
 msgid "empty status"
 msgstr ""
 
@@ -7410,7 +7767,7 @@ msgid " Part %s: %s %s(%s Bytes)\n"
 msgstr ""
 
 #, python-format
-msgid " Filename: %s\n"
+msgid " Filename: %s%s\n"
 msgstr ""
 
 msgid "no parts"
@@ -7424,18 +7781,25 @@ msgid "%s parts"
 msgstr ""
 
 #, python-format
+msgid "%s of %s"
+msgstr ""
+
+#, python-format
 msgid ""
 "%s (%s)   #%s\n"
-"\n"
 " Created: %s\n"
 " Episode: %s\n"
-"%s%s%s"
+"%s%s%s%s"
 msgstr ""
 
 #, python-format
 msgid " External reference: %s\n"
 msgstr ""
 
+#, python-format
+msgid " Organization: %%s @ %s\n"
+msgstr ""
+
 msgid "Cannot run [arriba] !"
 msgstr ""
 
@@ -7780,25 +8144,9 @@ msgid "External care:"
 msgstr ""
 
 #, fuzzy, python-format
-msgid ""
-"health issue: %s%s%s\n"
-"\n"
+msgid "Health issue: %s%s%s"
 msgstr "health issue: %s"
 
-msgid ""
-"\n"
-"current values:\n"
-msgstr ""
-
-msgid "no previous versions of this record"
-msgstr ""
-
-msgid ""
-"\n"
-"all values with <audit_action>, <audit_when>, <audit_by> fields (current "
-"value first):\n"
-msgstr ""
-
 msgid "Unattributed episodes"
 msgstr "Unattributed episodes"
 
@@ -7820,9 +8168,6 @@ msgstr ""
 msgid "finished"
 msgstr "finished"
 
-msgid "Health issue"
-msgstr ""
-
 msgid "none associated"
 msgstr ""
 
@@ -7858,9 +8203,7 @@ msgid "Measurements and Results:"
 msgstr "Measurements and Results:"
 
 #, fuzzy, python-format
-msgid ""
-"episode: %s%s%s\n"
-"\n"
+msgid "Episode: %s%s%s"
 msgstr "episode     : %s"
 
 #, python-format
@@ -7888,9 +8231,7 @@ msgid "%s other episodes touched upon during this encounter:"
 msgstr ""
 
 #, fuzzy, python-format
-msgid ""
-"encounter: %s%s%s\n"
-"\n"
+msgid "Encounter: %s%s%s"
 msgstr "Encounters: %s (%s - %s):"
 
 msgid " (ongoing)"
@@ -7911,9 +8252,6 @@ msgstr ""
 msgid "Procedures"
 msgstr ""
 
-msgid "Substances"
-msgstr ""
-
 msgid "Life events"
 msgstr ""
 
@@ -7935,9 +8273,6 @@ msgstr ""
 msgid "Cannot display timeline."
 msgstr ""
 
-msgid "Vaccination"
-msgstr ""
-
 msgid "Lab result"
 msgstr ""
 
@@ -8005,9 +8340,6 @@ msgstr ""
 msgid "Exported: %s\n"
 msgstr ""
 
-msgid "emr-journal"
-msgstr ""
-
 msgid "Chronological EMR Journal\n"
 msgstr ""
 
@@ -8276,25 +8608,144 @@ msgstr ""
 msgid "Select one or more codes that apply."
 msgstr ""
 
-msgid "Cannot move progress notes. No active patient."
+msgid "Select the narrative you are interested in ..."
 msgstr ""
 
-msgid "Moving progress notes between encounters ..."
+msgid "when"
 msgstr ""
 
-msgid ""
-"\n"
-" Select the progress notes to move from the list !\n"
-"\n"
+msgid "who"
 msgstr ""
 
-msgid "when"
+msgid "entry"
 msgstr ""
 
-msgid "who"
+msgid "There is no narrative for this episode in this encounter."
 msgstr ""
 
-msgid "entry"
+msgid "Must select episode to move narrative to first."
+msgstr ""
+
+msgid "Last"
+msgstr ""
+
+msgid "In health issue"
+msgstr ""
+
+msgid "Most recent notes on selected problem"
+msgstr ""
+
+#, python-format
+msgid "%s (active+potential) problems"
+msgstr ""
+
+#, python-format
+msgid "%s active problems"
+msgstr ""
+
+msgid "Current encounter:"
+msgstr ""
+
+msgid "Cumulative summary"
+msgstr ""
+
+#, python-format
+msgid "Most recent info on %s%s%s"
+msgstr ""
+
+#, python-format
+msgid ""
+"Cannot open progress note editor for\n"
+"\n"
+"[%s].\n"
+"\n"
+msgstr ""
+
+msgid "opening progress note editor"
+msgstr ""
+
+msgid "Cannot save all editors. Some were kept open."
+msgstr ""
+
+msgid "new problem"
+msgstr ""
+
+msgid ""
+"Are you sure you really want to\n"
+"discard this progress note ?\n"
+msgstr ""
+
+msgid "Discarding progress note"
+msgstr ""
+
+msgid "There are unsaved progress notes !\n"
+msgstr ""
+
+msgid "Unsaved progress notes"
+msgstr ""
+
+msgid "Problem list"
+msgstr ""
+
+msgid "Saving SOAP note"
+msgstr ""
+
+msgid "Do you want to save the SOAP note ?"
+msgstr ""
+
+#, python-format
+msgid "&Filter by problem %s%s%s"
+msgstr ""
+
+msgid "Cannot save SimpleNotes SOAP note."
+msgstr ""
+
+#, python-format
+msgid "Progress note: %s%s"
+msgstr ""
+
+msgid "Please enter a name for the new problem:"
+msgstr ""
+
+msgid "Adding a problem"
+msgstr ""
+
+msgid "Cannot delete problem. There is still clinical data recorded for it."
+msgstr ""
+
+#, python-format
+msgid "GNUmed: configuring [%s] (%s plugins)"
+msgstr ""
+
+msgid "loading list of plugins                               "
+msgstr ""
+
+msgid "failed"
+msgstr ""
+
+msgid "success"
+msgstr ""
+
+#, python-format
+msgid ""
+"previous: %s (%s)\n"
+"current (%s/%s): %s"
+msgstr ""
+
+#, python-format
+msgid "Cannot switch to [%s]: no patient selected"
+msgstr ""
+
+msgid "Cannot move progress notes. No active patient."
+msgstr ""
+
+msgid "Moving progress notes between encounters ..."
+msgstr ""
+
+msgid ""
+"\n"
+" Select the progress notes to move from the list !\n"
+"\n"
 msgstr ""
 
 msgid "Cannot edit progress notes. No active patient."
@@ -8496,966 +8947,885 @@ msgid ""
 " Now, mark the entries you want to include in your report.\n"
 msgstr ""
 
-msgid "Select the narrative you are interested in ..."
+msgid "Pick a date ..."
 msgstr ""
 
-msgid "There is no narrative for this episode in this encounter."
+msgid "<ALT-C/K>: pick from (c/k)alendar"
 msgstr ""
 
-msgid "Must select episode to move narrative to first."
+msgid "Cannot interpret input as timestamp."
 msgstr ""
 
-msgid "Last"
+msgid "No vaccines were chosen"
 msgstr ""
 
-msgid "In health issue"
+#, python-format
+msgid "Combination of indications , %s , not found in any vaccine"
 msgstr ""
 
-msgid "Most recent notes on selected problem"
+msgid "Sequence"
 msgstr ""
 
-#, python-format
-msgid "%s (active+potential) problems"
+msgid "Batch"
 msgstr ""
 
-#, python-format
-msgid "%s active problems"
+msgid "Vaccinator"
 msgstr ""
 
-msgid "Current encounter:"
+msgid ""
+"Vaccinations by Recommender (X = patient on regime, O = patient not on "
+"regime) "
 msgstr ""
 
-msgid "Cumulative summary"
+msgid "enrolled regime vaccinations not yet given"
 msgstr ""
 
-#, python-format
-msgid "Most recent info on %s%s%s"
+msgid "Proceed with "
 msgstr ""
 
 #, python-format
-msgid ""
-"Cannot open progress note editor for\n"
-"\n"
-"[%s].\n"
-"\n"
+msgid "Failed to enrol patient in %s"
 msgstr ""
 
-msgid "opening progress note editor"
+#, python-format
+msgid "Failed to  delist patient from %s"
 msgstr ""
 
-msgid "Cannot save all editors. Some were kept open."
+msgid "Missing GNUmed module"
 msgstr ""
 
-msgid "new problem"
+#, python-format
+msgid ""
+"GNUmed detected that parts of it are not\n"
+"properly installed. The following message\n"
+"names the missing part:\n"
+"\n"
+" \"%s\"\n"
+"\n"
+"Please make sure to get the missing\n"
+"parts installed. Otherwise some of the\n"
+"functionality will not be accessible."
 msgstr ""
 
+#, python-format
 msgid ""
-"Are you sure you really want to\n"
-"discard this progress note ?\n"
+"\n"
+" Source: %s"
 msgstr ""
 
-msgid "Discarding progress note"
+#, python-format
+msgid ""
+"\n"
+" Code: %s"
 msgstr ""
 
-msgid "There are unsaved progress notes !\n"
+#, python-format
+msgid ""
+"\n"
+" Details (first 250 characters):\n"
+"%s\n"
+"%s\n"
+"%s"
 msgstr ""
 
-msgid "Unsaved progress notes"
+msgid "Access violation"
 msgstr ""
 
 #, python-format
-msgid "Synopsis (%s)"
+msgid ""
+"You do not have access to this part of GNUmed.\n"
+"\n"
+"%s"
 msgstr ""
 
-msgid ""
-"Enter a short working name for this new problem\n"
-"(which will become a new, unassociated episode):\n"
+msgid "Lost connection"
 msgstr ""
 
-#, python-format
 msgid ""
-"Enter a short working name for this new\n"
-"episode under the existing health issue\n"
+"Since you were last working in GNUmed,\n"
+"your database connection timed out.\n"
 "\n"
-"\"%s\":\n"
+"This GNUmed session is now expired.\n"
+"\n"
+"You will have to close this client and\n"
+"restart a new GNUmed session."
 msgstr ""
 
-msgid "Creating problem (episode) to save notelet under ..."
+msgid ""
+"Please enter a short note on what you\n"
+"were about to do in GNUmed:"
 msgstr ""
 
-msgid "Cannot save a new problem without a name."
+msgid "Sending bug report"
 msgstr ""
 
-msgid "saving progress note"
+msgid ""
+"Edit the list of email addresses to send the\n"
+"bug report to (separate addresses by spaces).\n"
+"\n"
+"Note that <gnumed-bugs at gnu.org> refers to\n"
+"the public (!) GNUmed bugs mailing list."
 msgstr ""
 
 #, python-format
 msgid ""
-"The new episode:\n"
+"Your bug report will be sent to:\n"
 "\n"
-" \"%s\"\n"
+"%s\n"
 "\n"
-"will remain unassociated despite the editor\n"
-"having been invoked from the health issue:\n"
+"Make sure you have reviewed the log file for potentially\n"
+"sensitive information before sending out the bug report.\n"
 "\n"
-" \"%s\""
+"Note that emailing the report may take a while depending\n"
+"on the speed of your internet connection.\n"
 msgstr ""
 
-msgid "You need to actually set an editor."
+msgid "Yes, send the bug report."
 msgstr ""
 
-#, python-format
-msgid "The command [%s] is not found."
+msgid "No, do not send the bug report."
 msgstr ""
 
-#, python-format
-msgid ""
-"Enter the shell command with which to start\n"
-"the image editor for visual progress notes.\n"
-"\n"
-"Any \"%(img)s\" included with the arguments\n"
-"will be replaced by the file name of the\n"
-"note template."
+msgid "include log file in bug report"
 msgstr ""
 
-msgid "Choose file to use as template for new visual progress note"
+msgid ""
+"The database you are connected to is marked as\n"
+"\"in-production with controlled access\".\n"
+"\n"
+"You indicated that you want to include the log\n"
+"file in your bug report. While this is often\n"
+"useful for debugging the log file might contain\n"
+"bits of patient data which must not be sent out\n"
+"without de-identification.\n"
+"\n"
+"Please confirm that you want to include the log !"
 msgstr ""
 
-msgid "Visual progress note source"
+msgid "<not supplied>"
 msgstr ""
 
-msgid "From which source do you want to pick the image template ?"
+msgid "Bug report has been emailed."
 msgstr ""
 
-msgid "Database"
+msgid "Bug report COULD NOT be emailed."
 msgstr ""
 
-msgid "List of templates in the database."
+msgid "Underweight"
 msgstr ""
 
-msgid "Files in the filesystem."
+msgid "63< Normal >79"
 msgstr ""
 
-msgid "Device"
+msgid "63 - Normal - 79"
 msgstr ""
 
-msgid "Image capture devices (scanners, cameras, etc)"
+msgid "Overweight"
 msgstr ""
 
-#, python-format
-msgid "Cannot export visual progress note template for [%s]."
+msgid "Obese"
 msgstr ""
 
-msgid "Cannot export visual progress note to file."
+msgid "Current height/mass"
 msgstr ""
 
-msgid "Editor for visual progress note not configured."
+msgid "Height (cm)"
 msgstr ""
 
-#, python-format
-msgid ""
-"There was a problem with running the editor\n"
-"for visual progress notes.\n"
-"\n"
-" [%s]\n"
-"\n"
+msgid "Mass (kg)"
 msgstr ""
 
-msgid "Editing visual progress note"
+msgid "Adjusted Values"
 msgstr ""
 
-#, python-format
-msgid ""
-"There was a problem reading the visual\n"
-"progress note from the file:\n"
-"\n"
-" [%s]\n"
-"\n"
+msgid "Goal mass"
 msgstr ""
 
-msgid "Saving visual progress note"
+msgid "kg to lose"
 msgstr ""
 
-msgid ""
-"You either created a visual progress note from a template\n"
-"in the database (rather than from a file on disk) or you\n"
-"edited an existing visual progress note.\n"
-"\n"
-"The template/original was not modified at all, however.\n"
-"\n"
-"Do you still want to save the unmodified image as a\n"
-"visual progress note into the EMR of the patient ?\n"
+msgid "BMI Calculator"
 msgstr ""
 
-msgid "visual progress notes"
+msgid "&Reset"
 msgstr ""
 
-#, python-format
-msgid "Created: %s"
+msgid "Select a healthcare provider."
 msgstr ""
 
-msgid "Problem list"
+msgid "Public (no clinical or demographic access)"
 msgstr ""
 
-msgid "Saving SOAP note"
+msgid "Staff (demographic access only)"
 msgstr ""
 
-msgid "Do you want to save the SOAP note ?"
+msgid "staff (clerical)"
 msgstr ""
 
-#, python-format
-msgid "&Filter by problem %s%s%s"
+msgid "full clinical access"
 msgstr ""
 
-msgid "Cannot save SimpleNotes SOAP note."
+msgid "DB account"
 msgstr ""
 
-#, python-format
-msgid "Progress note: %s%s"
+msgid "can login"
 msgstr ""
 
-msgid "Please enter a name for the new problem:"
+msgid "can not login"
 msgstr ""
 
-msgid "Adding a problem"
+msgid "Activating GNUmed user."
 msgstr ""
 
-msgid "Cannot delete problem. There is still clinical data recorded for it."
+msgid "Deactivating GNUmed user."
 msgstr ""
 
-#, python-format
-msgid "GNUmed: configuring [%s] (%s plugins)"
+msgid "Removing GNUmed user."
 msgstr ""
 
-msgid "loading list of plugins                               "
+msgid "Removing GNUmed user"
 msgstr ""
 
-msgid "failed"
+msgid "Modifying GNUmed user."
 msgstr ""
 
-msgid "success"
+msgid "Failed to save changes to GNUmed database user."
 msgstr ""
 
-#, python-format
-msgid ""
-"previous: %s (%s)\n"
-"current (%s/%s): %s"
+msgid "Modifying GNUmed user"
 msgstr ""
 
 #, python-format
-msgid "Cannot switch to [%s]: no patient selected"
+msgid "Failed to set role [%s] for GNUmed database user."
 msgstr ""
 
-msgid "Pick a date ..."
+#, python-format
+msgid ""
+"\n"
+"  %s \"%s\" %s\n"
+"  born: %s"
 msgstr ""
 
-msgid "<ALT-C/K>: pick from (c/k)alendar"
+msgid ""
+"Password entries do not match. Please type in the passwords again to rule "
+"out typos."
 msgstr ""
 
-msgid "Cannot interpret input as timestamp."
+msgid "Adding GNUmed user"
 msgstr ""
 
-msgid "No vaccines were chosen"
+msgid ""
+"Are you positively sure you want to create\n"
+"a user with an empty password ?\n"
+"\n"
+"Think about the record access implications !"
 msgstr ""
 
-#, python-format
-msgid "Combination of indications , %s , not found in any vaccine"
+msgid "Enlisting person as user."
 msgstr ""
 
-msgid "Sequence"
+msgid "Encrypt"
 msgstr ""
 
-msgid "Batch"
+msgid "Decrypt"
 msgstr ""
 
-msgid "Vaccinator"
+msgid "Set pass phrase"
 msgstr ""
 
-msgid ""
-"Vaccinations by Recommender (X = patient on regime, O = patient not on "
-"regime) "
+msgid "This is not correctly encrypted text!"
 msgstr ""
 
-msgid "enrolled regime vaccinations not yet given"
+msgid "Please enter your pass phrase:"
 msgstr ""
 
-msgid "Proceed with "
+msgid "Pass phrase expired"
 msgstr ""
 
-#, python-format
-msgid "Failed to enrol patient in %s"
+msgid ""
+"\n"
+"Conditions preventable by vaccination as currently known to GNUmed.\n"
 msgstr ""
 
-#, python-format
-msgid "Failed to  delist patient from %s"
+msgid "Showing vaccination preventable conditions."
 msgstr ""
 
-msgid "Missing GNUmed module"
+msgid "ATCs: single-condition vaccines"
 msgstr ""
 
-#, python-format
-msgid ""
-"GNUmed detected that parts of it are not\n"
-"properly installed. The following message\n"
-"names the missing part:\n"
-"\n"
-" \"%s\"\n"
-"\n"
-"Please make sure to get the missing\n"
-"parts installed. Otherwise some of the\n"
-"functionality will not be accessible."
+msgid "ATCs: multi-condition vaccines"
 msgstr ""
 
-#, python-format
-msgid ""
-"\n"
-" Source: %s"
+msgid "Pick the relevant indications."
 msgstr ""
 
-#, python-format
-msgid ""
-"\n"
-" Code: %s"
+msgid "Known indications"
 msgstr ""
 
-#, python-format
-msgid ""
-"\n"
-" Details (first 250 characters):\n"
-"%s\n"
-"%s\n"
-"%s"
+msgid "Adding new vaccine"
 msgstr ""
 
-msgid "Access violation"
+msgid "Editing vaccine"
 msgstr ""
 
 #, python-format
 msgid ""
-"You do not have access to this part of GNUmed.\n"
+"Cannot delete vaccine\n"
 "\n"
-"%s"
+" %s - %s (#%s)\n"
+"\n"
+"It is probably documented in a vaccination."
 msgstr ""
 
-msgid "Lost connection"
+msgid "Deleting vaccine"
+msgstr ""
+
+msgid "fake"
 msgstr ""
 
 msgid ""
-"Since you were last working in GNUmed,\n"
-"your database connection timed out.\n"
-"\n"
-"This GNUmed session is now expired.\n"
 "\n"
-"You will have to close this client and\n"
-"restart a new GNUmed session."
+"The vaccines currently known to GNUmed.\n"
 msgstr ""
 
-msgid ""
-"Please enter a short note on what you\n"
-"were about to do in GNUmed:"
+msgid "Showing vaccines."
 msgstr ""
 
-msgid "Sending bug report"
+msgid "Enter or select the batch/lot number of the vaccine used."
 msgstr ""
 
-msgid ""
-"Edit the list of email addresses to send the\n"
-"bug report to (separate addresses by spaces).\n"
-"\n"
-"Note that <gnumed-bugs at gnu.org> refers to\n"
-"the public (!) GNUmed bugs mailing list."
+msgid "Saving vaccine"
 msgstr ""
 
 #, python-format
 msgid ""
-"Your bug report will be sent to:\n"
+"This vaccine is already in use:\n"
 "\n"
-"%s\n"
+" \"%s\"\n"
+" (%s)\n"
 "\n"
-"Make sure you have reviewed the log file for potentially\n"
-"sensitive information before sending out the bug report.\n"
+"Are you absolutely positively sure that\n"
+"you really want to edit this vaccine ?\n"
 "\n"
-"Note that emailing the report may take a while depending\n"
-"on the speed of your internet connection.\n"
+"This will change the vaccine name and/or target\n"
+"conditions in each patient this vaccine was\n"
+"used in to document a vaccination with.\n"
 msgstr ""
 
-msgid "Yes, send the bug report."
+msgid "You must select at least one indication."
 msgstr ""
 
-msgid "No, do not send the bug report."
+msgid "Pick the diseases this vaccine protects against."
 msgstr ""
 
-msgid "include log file in bug report"
+msgid "This vaccine"
 msgstr ""
 
-msgid ""
-"The database you are connected to is marked as\n"
-"\"in-production with controlled access\".\n"
-"\n"
-"You indicated that you want to include the log\n"
-"file in your bug report. While this is often\n"
-"useful for debugging the log file might contain\n"
-"bits of patient data which must not be sent out\n"
-"without de-identification.\n"
-"\n"
-"Please confirm that you want to include the log !"
+msgid "Adding new vaccinations"
 msgstr ""
 
-msgid "<not supplied>"
+msgid "Editing vaccination"
 msgstr ""
 
-msgid "Bug report has been emailed."
+msgid "vaccination recall"
 msgstr ""
 
-msgid "Bug report COULD NOT be emailed."
+#, python-format
+msgid "vaccination recall (%s)"
 msgstr ""
 
-msgid "Underweight"
+#, python-format
+msgid ""
+"Existing vaccination:\n"
+"\n"
+"%s"
 msgstr ""
 
-msgid "63< Normal >79"
+msgid ""
+"\n"
+"Complete vaccination history for this patient.\n"
 msgstr ""
 
-msgid "63 - Normal - 79"
+msgid "Showing vaccinations."
 msgstr ""
 
-msgid "Overweight"
+msgid "Intended to protect from"
 msgstr ""
 
-msgid "Obese"
+msgid "Print vaccinations or recalls."
 msgstr ""
 
-msgid "Current height/mass"
+msgid "Recall"
 msgstr ""
 
-msgid "Height (cm)"
+msgid "Add a recall for a vaccination"
 msgstr ""
 
-msgid "Mass (kg)"
+msgid "Vx schedules"
 msgstr ""
 
-msgid "Adjusted Values"
+msgid "Open a browser showing vaccination schedules."
 msgstr ""
 
-msgid "Goal mass"
+msgid "prevention"
 msgstr ""
 
-msgid "kg to lose"
+msgid "Saving vaccination"
 msgstr ""
 
-msgid "BMI Calculator"
+msgid "Pick the diseases this vaccination was given against."
 msgstr ""
 
-msgid "&Reset"
+msgid "  IMMUNISATIONS  "
 msgstr ""
 
-msgid "Select a healthcare provider."
+msgid "Indications"
 msgstr ""
 
-msgid "Public (no clinical or demographic access)"
+msgid "Active Schedules"
 msgstr ""
 
-msgid "Staff (demographic access only)"
+msgid "Missing Immunisations"
 msgstr ""
 
-msgid "staff (clerical)"
+msgid "  Alerts  "
 msgstr ""
 
-msgid "full clinical access"
+msgid "ERROR: cannot retrieve active vaccination schedules"
 msgstr ""
 
-msgid "DB account"
+msgid "no active vaccination schedules"
 msgstr ""
 
-msgid "can login"
+#, python-format
+msgid "%s for %s (%s shots): %s"
 msgstr ""
 
-msgid "can not login"
+msgid "ERROR: cannot retrieve due/overdue vaccinations"
 msgstr ""
 
-msgid "Activating GNUmed user."
+#, python-format
+msgid "%.0d weeks left: shot %s for %s in %s, due %s (%s)"
 msgstr ""
 
-msgid "Deactivating GNUmed user."
+#, python-format
+msgid "overdue %.0dyrs %.0dwks: shot %s for %s in schedule \"%s\" (%s)"
 msgstr ""
 
-msgid "Removing GNUmed user."
+#, python-format
+msgid "due now: booster for %s in schedule \"%s\" (%s)"
 msgstr ""
 
-msgid "Removing GNUmed user"
+#, python-format
+msgid "Synopsis (%s)"
 msgstr ""
 
-msgid "Modifying GNUmed user."
+msgid ""
+"Enter a short working name for this new problem\n"
+"(which will become a new, unassociated episode):\n"
 msgstr ""
 
-msgid "Failed to save changes to GNUmed database user."
+#, python-format
+msgid ""
+"Enter a short working name for this new\n"
+"episode under the existing health issue\n"
+"\n"
+"\"%s\":\n"
 msgstr ""
 
-msgid "Modifying GNUmed user"
+msgid "Creating problem (episode) to save notelet under ..."
 msgstr ""
 
-#, python-format
-msgid "Failed to set role [%s] for GNUmed database user."
+msgid "Cannot save a new problem without a name."
+msgstr ""
+
+msgid "saving progress note"
 msgstr ""
 
 #, python-format
 msgid ""
+"The new episode:\n"
 "\n"
-"  %s \"%s\" %s\n"
-"  born: %s"
+" \"%s\"\n"
+"\n"
+"will remain unassociated despite the editor\n"
+"having been invoked from the health issue:\n"
+"\n"
+" \"%s\""
 msgstr ""
 
-msgid ""
-"Password entries do not match. Please type in the passwords again to rule "
-"out typos."
+msgid "Adding substance abuse"
 msgstr ""
 
-msgid "Adding GNUmed user"
+msgid "Editing substance abuse"
 msgstr ""
 
-msgid ""
-"Are you positively sure you want to create\n"
-"a user with an empty password ?\n"
-"\n"
-"Think about the record access implications !"
+msgid "Substances abused by the patient:"
 msgstr ""
 
-msgid "Enlisting person as user."
+msgid "Showing abused substances."
 msgstr ""
 
-msgid "Encrypt"
+msgid "Intake"
 msgstr ""
 
-msgid "Decrypt"
+msgid "nicotine"
 msgstr ""
 
-msgid "Set pass phrase"
+msgid "unit"
 msgstr ""
 
-msgid "This is not correctly encrypted text!"
+#, fuzzy, python-format
+msgid "Latest: %s ago (%s %s%s%s%s)"
+msgstr "%s: encounter (%s)"
+
+#, fuzzy, python-format
+msgid "%s %s%s%s (%s ago, %s)"
+msgstr "%s: encounter (%s)"
+
+#, python-format
+msgid "overdue %s: %s"
 msgstr ""
 
-msgid "Please enter your pass phrase:"
+#, python-format
+msgid "due in %s%s"
 msgstr ""
 
-msgid "Pass phrase expired"
+msgid "suppr'd:"
+msgstr ""
+
+msgid "Suppressed hints:\n"
 msgstr ""
 
 msgid ""
-"\n"
-"Conditions preventable by vaccination as currently known to GNUmed.\n"
+"Do you really want to\n"
+"delete this inbox message ?"
 msgstr ""
 
-msgid "Showing vaccination preventable conditions."
+msgid "Deleting inbox message"
 msgstr ""
 
-msgid "ATCs: single-condition vaccines"
+msgid "Export area: 1 item"
 msgstr ""
 
-msgid "ATCs: multi-condition vaccines"
+#, python-format
+msgid "Export area: %s items"
 msgstr ""
 
-msgid "Pick the relevant indications."
+#, python-format
+msgid "%s %s more not shown %s"
 msgstr ""
 
-msgid "Known indications"
+#, python-format
+msgid "Currently %s entries in waiting list"
 msgstr ""
 
-msgid "Adding new vaccine"
+#, python-format
+msgid "first (in GMd): %s, %s"
 msgstr ""
 
-msgid "Editing vaccine"
+#, python-format
+msgid "last: %s, %s"
 msgstr ""
 
 #, python-format
-msgid ""
-"Cannot delete vaccine\n"
-"\n"
-" %s - %s (#%s)\n"
-"\n"
-"It is probably documented in a vaccination."
+msgid "Last %s:"
 msgstr ""
 
-msgid "Deleting vaccine"
+msgid "Statistics cover period"
 msgstr ""
 
-msgid "fake"
+#, python-format
+msgid "EDC (!?!): %s"
 msgstr ""
 
 msgid ""
+"The Expected Date of Confinement is rather questionable.\n"
 "\n"
-"The vaccines currently known to GNUmed.\n"
+"Please check patient age, patient gender, time until/since EDC."
 msgstr ""
 
-msgid "Showing vaccines."
+#, fuzzy, python-format
+msgid "%s Vacc: %s (latest of %s)"
+msgstr "%s: encounter (%s)"
+
+#, python-format
+msgid "Hx of addiction: %s"
 msgstr ""
 
-msgid "Enter or select the batch/lot number of the vaccine used."
+msgid "active substance abuse"
 msgstr ""
 
-msgid "Saving vaccine"
+#, python-format
+msgid "%s %s %s%s"
 msgstr ""
 
 #, python-format
-msgid ""
-"This vaccine is already in use:\n"
-"\n"
-" \"%s\"\n"
-" (%s)\n"
-"\n"
-"Are you absolutely positively sure that\n"
-"you really want to edit this vaccine ?\n"
-"\n"
-"This will change the vaccine name and/or target\n"
-"conditions in each patient this vaccine was\n"
-"used in to document a vaccination with.\n"
+msgid "%s %s%s"
 msgstr ""
 
-msgid "You must select at least one indication."
+#, python-format
+msgid "** Currently hospitalized: %s **"
 msgstr ""
 
-msgid "Pick the diseases this vaccine protects against."
+#, python-format
+msgid "emergency: %s"
 msgstr ""
 
-msgid "This vaccine"
+#, python-format
+msgid "in-praxis: %s"
 msgstr ""
 
-msgid "Adding new vaccinations"
+#, fuzzy, python-format
+msgid "care: %s%s@%s"
+msgstr "Encounters: %s (%s - %s):"
+
+msgid "*** CONFIDENTIAL ***"
 msgstr ""
 
-msgid "Editing vaccination"
+msgid " (confidential !)"
 msgstr ""
 
-msgid "vaccination recall"
+#, fuzzy, python-format
+msgid "extrnl: %s (%s@%s)"
+msgstr "%s: encounter (%s)"
+
+#, python-format
+msgid "aka: %(last)s, %(first)s%(nick)s"
 msgstr ""
 
 #, python-format
-msgid "vaccination recall (%s)"
+msgid "job: %s (%s)"
 msgstr ""
 
 #, python-format
-msgid ""
-"Existing vaccination:\n"
-"\n"
-"%s"
+msgid "issued by: %s%s"
+msgstr ""
+
+#, python-format
+msgid "Last modified: %s"
 msgstr ""
 
+#, python-format
 msgid ""
+"Activities:\n"
 "\n"
-"Complete vaccination history for this patient.\n"
+"%s"
 msgstr ""
 
-msgid "Showing vaccinations."
+msgid "Cloning name"
 msgstr ""
 
-msgid "Intended to protect from"
+msgid "Editing external ID"
 msgstr ""
 
-msgid "Print vaccinations or recalls."
+msgid "Adding new translation"
 msgstr ""
 
-msgid "Recall"
+msgid "Editing translation"
 msgstr ""
 
-msgid "Add a recall for a vaccination"
+msgid "Selecting language for translation"
 msgstr ""
 
-msgid "Vx schedules"
+msgid ""
+"Please select the language the translations for which you want to work on."
 msgstr ""
 
-msgid "Open a browser showing vaccination schedules."
+#, python-format
+msgid ""
+"Are you sure you want to delete the translation of:\n"
+"\n"
+"%s\n"
+"\n"
+"into [%s] as:\n"
+"\n"
+"%s\n"
+"\n"
+"?  (Note that you must know the database administrator password !)\n"
 msgstr ""
 
-msgid "prevention"
+msgid "Deleting translation from database"
 msgstr ""
 
-msgid "Saving vaccination"
+msgid "deleting a translation"
 msgstr ""
 
-msgid "Pick the diseases this vaccination was given against."
+msgid "Contributing translations"
 msgstr ""
 
-msgid "  IMMUNISATIONS  "
+msgid "Do you want to contribute your translations to the GNUmed project ?"
 msgstr ""
 
-msgid "Indications"
+msgid ""
+"Unable to send mail. Cannot contribute translations to GNUmed community."
 msgstr ""
 
-msgid "Active Schedules"
+msgid "Thank you for your contribution to the GNUmed community!"
 msgstr ""
 
-msgid "Missing Immunisations"
+msgid "Showing translatable database strings for all languages."
 msgstr ""
 
-msgid "  Alerts  "
+#, python-format
+msgid "Showing translatable database strings for target language [%s]."
 msgstr ""
 
-msgid "ERROR: cannot retrieve active vaccination schedules"
+msgid "Contribute translations to GNUmed community by email."
 msgstr ""
 
-msgid "no active vaccination schedules"
-msgstr ""
-
-#, python-format
-msgid "%s for %s (%s shots): %s"
+msgid ""
+"Before creating a new person review the encounter details\n"
+"of the patient you just worked on:\n"
 msgstr ""
 
-msgid "ERROR: cannot retrieve due/overdue vaccinations"
+msgid "Edit the current encounter of the patient you are ABOUT TO LEAVE:"
 msgstr ""
 
-#, python-format
-msgid "%.0d weeks left: shot %s for %s in %s, due %s (%s)"
+msgid "Adding new person"
 msgstr ""
 
-#, python-format
-msgid "overdue %.0dyrs %.0dwks: shot %s for %s in schedule \"%s\" (%s)"
+msgid "ID exists !"
 msgstr ""
 
 #, python-format
-msgid "due now: booster for %s in schedule \"%s\" (%s)"
+msgid "One \"%s, %s (%s)\" already exists !"
 msgstr ""
 
 #, python-format
-msgid "Latest: %s ago (%s %s %s %s%s)"
+msgid "%s \"%s, %s (%s)\" already exist !"
 msgstr ""
 
-#, python-format
-msgid "%s %s %s %s (%s ago, %s)"
+msgid "Must enter lastname."
 msgstr ""
 
-#, python-format
-msgid "overdue %s: %s"
+msgid "Must enter first name."
 msgstr ""
 
-#, python-format
-msgid "due in %s%s"
+msgid "Must select gender."
 msgstr ""
 
 msgid ""
-"Do you really want to\n"
-"delete this inbox message ?"
-msgstr ""
-
-msgid "Deleting inbox message"
+"To properly create an address, all the related fields must be filled in."
 msgstr ""
 
-msgid "Export area: 1 item"
+msgid "Required fields"
 msgstr ""
 
-#, python-format
-msgid "Export area: %s items"
+msgid "This field must contain an item selected from the dropdown list."
 msgstr ""
 
-#, python-format
-msgid "%s %s more not shown %s"
+msgid "Saving address"
 msgstr ""
 
-#, python-format
-msgid "Currently %s entries in waiting list"
+msgid ""
+"Cannot save this address.\n"
+"\n"
+"You will have to add it via the Demographics plugin.\n"
 msgstr ""
 
-#, python-format
-msgid "first (in GMd): %s, %s"
+msgid ""
+"Address not saved.\n"
+"\n"
+"You will have to add it via the Demographics plugin.\n"
 msgstr ""
 
-#, python-format
-msgid "last: %s, %s"
+msgid "You need to actually set an editor."
 msgstr ""
 
 #, python-format
-msgid "Last %s:"
-msgstr ""
-
-msgid "Statistics cover period"
+msgid "The command [%s] is not found."
 msgstr ""
 
 #, python-format
-msgid "EDC (!?!): %s"
-msgstr ""
-
 msgid ""
-"The Expected Date of Confinement is rather questionable.\n"
+"Enter the shell command with which to start\n"
+"the image editor for visual progress notes.\n"
 "\n"
-"Please check patient age, patient gender, time until/since EDC."
-msgstr ""
-
-#, python-format
-msgid "%s Vacc: %s"
+"Any \"%(img)s\" included with the arguments\n"
+"will be replaced by the file name of the\n"
+"note template."
 msgstr ""
 
-#, python-format
-msgid "%s %s %s%s"
+msgid "Choose file to use as template for new visual progress note"
 msgstr ""
 
-#, python-format
-msgid "%s %s%s"
+msgid "Visual progress note source"
 msgstr ""
 
-#, python-format
-msgid "** Currently hospitalized: %s **"
+msgid "From which source do you want to pick the image template ?"
 msgstr ""
 
-#, python-format
-msgid "emergency: %s"
+msgid "Database"
 msgstr ""
 
-#, python-format
-msgid "in-praxis: %s"
+msgid "List of templates in the database."
 msgstr ""
 
-#, fuzzy, python-format
-msgid "care: %s%s@%s"
-msgstr "Encounters: %s (%s - %s):"
-
-msgid "*** CONFIDENTIAL ***"
+msgid "Files in the filesystem."
 msgstr ""
 
-msgid " (confidential !)"
+msgid "Device"
 msgstr ""
 
-#, fuzzy, python-format
-msgid "extrnl: %s (%s@%s)"
-msgstr "%s: encounter (%s)"
-
-#, python-format
-msgid "aka: %(last)s, %(first)s%(nick)s"
+msgid "Image capture devices (scanners, cameras, etc)"
 msgstr ""
 
 #, python-format
-msgid "job: %s (%s)"
+msgid "Cannot export visual progress note template for [%s]."
 msgstr ""
 
-#, python-format
-msgid "issued by: %s%s"
+msgid "Cannot export visual progress note to file."
 msgstr ""
 
-#, python-format
-msgid "Last modified: %s"
+msgid "Editor for visual progress note not configured."
 msgstr ""
 
 #, python-format
 msgid ""
-"Activities:\n"
+"There was a problem with running the editor\n"
+"for visual progress notes.\n"
+"\n"
+" [%s]\n"
 "\n"
-"%s"
-msgstr ""
-
-msgid "Cloning name"
-msgstr ""
-
-msgid "Editing external ID"
-msgstr ""
-
-msgid "Adding new translation"
-msgstr ""
-
-msgid "Editing translation"
-msgstr ""
-
-msgid "Selecting language for translation"
 msgstr ""
 
-msgid ""
-"Please select the language the translations for which you want to work on."
+msgid "Editing visual progress note"
 msgstr ""
 
 #, python-format
 msgid ""
-"Are you sure you want to delete the translation of:\n"
-"\n"
-"%s\n"
-"\n"
-"into [%s] as:\n"
+"There was a problem reading the visual\n"
+"progress note from the file:\n"
 "\n"
-"%s\n"
+" [%s]\n"
 "\n"
-"?  (Note that you must know the database administrator password !)\n"
-msgstr ""
-
-msgid "Deleting translation from database"
-msgstr ""
-
-msgid "deleting a translation"
-msgstr ""
-
-msgid "Contributing translations"
-msgstr ""
-
-msgid "Do you want to contribute your translations to the GNUmed project ?"
-msgstr ""
-
-msgid ""
-"Unable to send mail. Cannot contribute translations to GNUmed community."
-msgstr ""
-
-msgid "Thank you for your contribution to the GNUmed community!"
-msgstr ""
-
-msgid "Showing translatable database strings for all languages."
 msgstr ""
 
-#, python-format
-msgid "Showing translatable database strings for target language [%s]."
-msgstr ""
-
-msgid "Contribute translations to GNUmed community by email."
+msgid "Saving visual progress note"
 msgstr ""
 
 msgid ""
-"Before creating a new person review the encounter details\n"
-"of the patient you just worked on:\n"
-msgstr ""
-
-msgid "Edit the current encounter of the patient you are ABOUT TO LEAVE:"
-msgstr ""
-
-msgid "Adding new person"
-msgstr ""
-
-msgid "ID exists !"
+"You either created a visual progress note from a template\n"
+"in the database (rather than from a file on disk) or you\n"
+"edited an existing visual progress note.\n"
+"\n"
+"The template/original was not modified at all, however.\n"
+"\n"
+"Do you still want to save the unmodified image as a\n"
+"visual progress note into the EMR of the patient ?\n"
 msgstr ""
 
-#, python-format
-msgid "One \"%s, %s (%s)\" already exists !"
+msgid "visual progress notes"
 msgstr ""
 
 #, python-format
-msgid "%s \"%s, %s (%s)\" already exist !"
-msgstr ""
-
-msgid "Must enter lastname."
-msgstr ""
-
-msgid "Must enter first name."
-msgstr ""
-
-msgid "Must select gender."
-msgstr ""
-
-msgid ""
-"To properly create an address, all the related fields must be filled in."
-msgstr ""
-
-msgid "Required fields"
-msgstr ""
-
-msgid "This field must contain an item selected from the dropdown list."
-msgstr ""
-
-msgid "Saving address"
-msgstr ""
-
-msgid ""
-"Cannot save this address.\n"
-"\n"
-"You will have to add it via the Demographics plugin.\n"
+msgid " [part 1 of %s]"
 msgstr ""
 
-msgid ""
-"Address not saved.\n"
-"\n"
-"You will have to add it via the Demographics plugin.\n"
-msgstr ""
+#, fuzzy, python-format
+msgid "Created: %s%s"
+msgstr "Encounters: %s (%s - %s):"
 
 msgid "You must select a value from the picklist or type an exact match."
 msgstr ""
@@ -9537,7 +9907,8 @@ msgstr ""
 
 #, python-format
 msgid ""
-"%(street)s %(number)s, %(postcode)s %(urb)s, %(l10n_state)s, %(l10n_country)s"
+"%(street)s %(number)s, %(postcode)s %(urb)s, %(l10n_region)s, "
+"%(l10n_country)s"
 msgstr ""
 
 #, python-format
@@ -10126,7 +10497,7 @@ msgstr ""
 msgid ""
 "Cannot save address.\n"
 "\n"
-"Does the state [%s]\n"
+"Does the region [%s]\n"
 "exist in country [%s] ?"
 msgstr ""
 
@@ -10562,7 +10933,7 @@ msgstr ""
 msgid "Reminders for the current patient"
 msgstr ""
 
-msgid "Sent"
+msgid "Generated"
 msgstr ""
 
 msgid "Category - Type"
@@ -10610,9 +10981,6 @@ msgid ""
 "Data: %s"
 msgstr ""
 
-msgid "Inbox Message Actions:"
-msgstr ""
-
 msgid "Activate patient"
 msgstr ""
 
@@ -11300,7 +11668,7 @@ msgid ""
 msgstr ""
 
 #, python-format
-msgid "Select branch (of praxis [%s]) which you are logging in from.\n"
+msgid "Select the branch of praxis [%s] which you are logging in from.\n"
 msgstr ""
 
 msgid "Praxis branch selection ..."
@@ -11607,6 +11975,12 @@ msgstr ""
 msgid "List of addresses related to this person."
 msgstr ""
 
+msgid "Map"
+msgstr ""
+
+msgid "Show selected address on map"
+msgstr ""
+
 msgid "Adding new address"
 msgstr ""
 
@@ -11787,28 +12161,105 @@ msgstr ""
 msgid "generic multi choice dialog"
 msgstr ""
 
-msgid "Search in list"
+msgid "Deleting list items"
 msgstr ""
 
-msgid "Monty the Serpent && the FSF Present"
+#, python-format
+msgid ""
+"You have selected %s list items.\n"
+"\n"
+"Really delete all %s items ?"
 msgstr ""
 
-msgid "Free eMedicine"
+msgid ""
+"Select the items you want to work on.\n"
+"\n"
+"A discontinuous selection may depend on your holding down a platform-"
+"dependent modifier key (<CTRL>, <ALT>, etc) or key combination (eg. <CTRL-"
+"SHIFT> or <CTRL-ALT>) while clicking."
 msgstr ""
 
-#, python-format
-msgid "Version %s%s brought to you by"
+msgid "List Item Actions:"
 msgstr ""
 
-msgid "debug"
+msgid "Add (<INS>)"
 msgstr ""
 
-msgid "Please visit http://www.gnumed.org"
+msgid "Delete (<DEL>)"
+msgstr ""
+
+msgid "Find (<CTRL-F>)"
 msgstr ""
 
 #, python-format
-msgid ""
-"The following people kindly contributed to GNUmed.\n"
+msgid "Find next [%s] (<CTRL-N>)"
+msgstr ""
+
+msgid "Row tooltip"
+msgstr ""
+
+msgid "Row data (formatted as text)"
+msgstr ""
+
+msgid "Row content (as one line)"
+msgstr ""
+
+msgid "Row content (one line per column)"
+msgstr ""
+
+#, python-format
+msgid "Column &%s: \"%s\" [#%s]"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "Column &%s: %s"
+msgstr "Documents: %s"
+
+msgid "&Copy to clipboard..."
+msgstr ""
+
+msgid "Append (&+) to clipboard..."
+msgstr ""
+
+#, python-format
+msgid ""
+"%s list items are selected.\n"
+"\n"
+"Really delete all %s items ?"
+msgstr ""
+
+msgid "Enter the search term:"
+msgstr ""
+
+msgid "List search"
+msgstr ""
+
+#, python-format
+msgid ""
+"Current search term: [[%s]]\n"
+"\n"
+"%s"
+msgstr ""
+
+msgid "Monty the Serpent && the FSF Present"
+msgstr ""
+
+msgid "Free eMedicine"
+msgstr ""
+
+#, python-format
+msgid "Version %s%s brought to you by"
+msgstr ""
+
+msgid "debug"
+msgstr ""
+
+msgid "Please visit http://www.gnumed.org"
+msgstr ""
+
+#, python-format
+msgid ""
+"The following people kindly contributed to GNUmed.\n"
 "Please write to <gnumed-devel at gnu.org> to have your\n"
 "contribution duly recognized in this list or to have\n"
 "your name removed from it for, say, privacy reasons.\n"
@@ -11938,6 +12389,9 @@ msgstr ""
 msgid "Unknown: ?"
 msgstr ""
 
+msgid "The text has been copied into the clipboard."
+msgstr ""
+
 msgid "file2clipboard"
 msgstr ""
 
@@ -11945,6 +12399,40 @@ msgstr ""
 msgid "The file [%s] has been copied into the clipboard."
 msgstr ""
 
+msgid "programmer forgot to specify error message"
+msgstr ""
+
+msgid ""
+"\n"
+"\n"
+"Please consult the error log for all the gory details !"
+msgstr ""
+
+msgid "generic error message"
+msgstr ""
+
+msgid "programmer forgot to specify info message"
+msgstr ""
+
+msgid "generic info message"
+msgstr ""
+
+msgid "programmer forgot to specify warning"
+msgstr ""
+
+msgid "generic warning message"
+msgstr ""
+
+msgid "Editing EDC"
+msgstr ""
+
+#, python-format
+msgid ""
+"Really delete the EDC documented previously ?\n"
+"\n"
+" EDC: %s"
+msgstr ""
+
 #, python-format
 msgid ""
 "Algorithm: %s\n"
@@ -12052,15 +12540,15 @@ msgstr ""
 msgid "Firstname"
 msgstr ""
 
-msgid "Nickname"
-msgstr ""
-
 msgid "DOB"
 msgstr ""
 
 msgid "last visit"
 msgstr ""
 
+msgid "Nickname / Comment"
+msgstr ""
+
 msgid "found via"
 msgstr ""
 
@@ -12238,707 +12726,465 @@ msgstr ""
 msgid "In case of emergency contact:"
 msgstr ""
 
+msgid "The preparation (form) of the substance or brand."
+msgstr ""
+
+msgid "A substance with optional strength or a brand."
+msgstr ""
+
+msgid "The medical aim for consuming this substance."
+msgstr ""
+
+msgid "not tolerated:"
+msgstr ""
+
+msgid "discontinued due to allergy or intolerance"
+msgstr ""
+
+msgid "Documented an allergy"
+msgstr ""
+
+#, python-format
 msgid ""
+"An allergy was documented against the substance:\n"
 "\n"
-"Please select the default drug data source from the list below.\n"
+"  [%s]\n"
 "\n"
-"Note that to actually use it you need to have the database installed, too."
+"This substance was taken with the multi-component brand:\n"
+"\n"
+"  [%s (%s)]\n"
+"\n"
+"Note that ALL components of this brand were discontinued."
 msgstr ""
 
-msgid "Drug data source"
+msgid "disapproved"
 msgstr ""
 
-msgid "Configuring default drug data source"
+msgid "Substances consumed by the patient:"
 msgstr ""
 
-msgid "No default drug database configured."
+msgid "Showing consumable substances."
 msgstr ""
 
-msgid "There is no default drug database configured."
+msgid "Application"
 msgstr ""
 
-msgid "Jumping to drug database"
+msgid "never"
 msgstr ""
 
 #, python-format
-msgid "Cannot call IFAP via [%s]."
+msgid "%s, last confirmed %s\n"
 msgstr ""
 
 #, python-format
-msgid "Cannot create IFAP <-> GNUmed transfer file [%s]."
+msgid "Comment (%s): %%s\n"
 msgstr ""
 
-msgid "Current medication"
+msgid "reaction not recorded"
 msgstr ""
 
-msgid ""
-"\n"
-"The ATC codes as known to GNUmed.\n"
+msgid "GFR: unknown"
 msgstr ""
 
-msgid "Showing ATC codes."
+msgid "GFR reported by path lab"
 msgstr ""
 
-msgid "Choose an ATC import config file"
-msgstr ""
+#, fuzzy
+msgid "<no components>"
+msgstr "Documents:"
 
-msgid "config files"
+msgid "Adding substance intake entry"
 msgstr ""
 
-msgid "importing ATC reference data"
+#, python-format
+msgid ""
+"The patient is already taking\n"
+"\n"
+" %s\n"
+"\n"
+"You will want to adjust the schedule\n"
+"rather than document the intake twice."
 msgstr ""
 
-msgid "Successfully imported ATC reference data."
+msgid "Input incomplete/invalid for saving as substance intake."
 msgstr ""
 
-msgid "Importing ATC reference data failed."
+#, python-format
+msgid "Discontinued (%s) in the future (now: %s)!"
 msgstr ""
 
-msgid "Select an ATC (Anatomical-Therapeutic-Chemical) code."
+#, python-format
+msgid "Discontinued (%s) before started (%s) !"
 msgstr ""
 
-msgid "Cannot delete this substance. It is in use."
+msgid "Cannot add duplicate of (maybe inactive) substance intake."
 msgstr ""
 
+#, python-format
 msgid ""
 "\n"
-"These are the consumable substances registered with GNUmed.\n"
+"[%s]\n"
+"\n"
+"It may be prudent to edit (before deletion) the details\n"
+"of this substance intake entry so as to leave behind\n"
+"some indication of why it was deleted.\n"
 msgstr ""
 
-msgid "Showing consumable substances."
+msgid "Deleting medication / substance intake"
 msgstr ""
 
-msgid "Import"
+msgid "Allow editing of substance intake entry before deletion."
 msgstr ""
 
-msgid "Import consumable substances from a drug database."
+msgid "Delete immediately without editing first."
 msgstr ""
 
-msgid "Cannot edit this substance. It is in use."
+msgid "&Cancel"
 msgstr ""
 
-msgid "Adding new consumable substance"
+msgid "Abort. Do not delete or edit substance intake entry."
 msgstr ""
 
-msgid "Editing consumable substance"
+msgid "Now delete substance intake entry ?"
 msgstr ""
 
-msgid "Cannot save consumable substance. Missing essential input."
+msgid "Adding medication/non-medication substance intake"
 msgstr ""
 
-#, python-format
-msgid "Cannot save consumable substance. %s"
+msgid "Editing medication/non-medication substance intake"
 msgstr ""
 
-msgid "Cannot remove this component from the drug. It is in use."
+msgid "Document an allergy against this substance."
 msgstr ""
 
-msgid ""
-"\n"
-"These are the components in the drug brands known to GNUmed.\n"
+msgid "No medication list template configured."
 msgstr ""
 
-msgid "Showing drug brand components."
+msgid "There is no medication list template configured."
 msgstr ""
 
-msgid "Adding new drug component"
+msgid "Problem loading medication list template."
 msgstr ""
 
-msgid "Editing drug component"
+#, python-format
+msgid "Cannot load medication list template [%s - %s]"
 msgstr ""
 
-msgid "Cannot edit drug component. It is in use."
+msgid "generated medication list document"
 msgstr ""
 
-msgid "Cannot save drug component. Invalid or missing essential input."
+msgid "Select the default prescription template:"
 msgstr ""
 
-msgid "A drug component with optional strength."
+msgid "No prescription template configured."
 msgstr ""
 
-msgid "The preparation (form) of the substance or brand."
+msgid "There is no prescription template configured."
 msgstr ""
 
-msgid "The substance with optional strength."
+msgid "Printing prescription"
 msgstr ""
 
-msgid "Managing components of a drug"
+msgid "Problem loading prescription template."
 msgstr ""
 
 #, python-format
-msgid ""
-"Cannot manage the components of the branded drug product\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is currently taken by patients.\n"
-msgstr ""
-
-msgid "Pick the substances which are components of this drug."
+msgid "Cannot load prescription template [%s - %s]"
 msgstr ""
 
-msgid "Components of drug"
+msgid "generated prescription"
 msgstr ""
 
-#, python-format
 msgid ""
-"Adjust the components of \"%s\"\n"
+"These brands have been prescribed but are not listed\n"
+"in the current medication list of this patient.\n"
 "\n"
-"The drug must contain at least one component. Any given\n"
-"substance can only be included once per drug."
+"Please select those you want added to the medication list."
 msgstr ""
 
-msgid "Managing components of a drug ..."
+msgid "Newly prescribed drugs"
 msgstr ""
 
-msgid "not in use"
+msgid "Add to medication list"
+msgstr ""
+
+msgid "Timeframe"
 msgstr ""
 
 #, python-format
-msgid "ATC: %s\n"
+msgid "%s <fake>"
 msgstr ""
 
-msgid "Editing medication"
+msgid "Cannot edit more than one substance at once."
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot edit the medication\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is a vaccine. Please edit it\n"
-"from the vaccine management section !\n"
+msgid "Cannot delete more than one substance at once."
 msgstr ""
 
-msgid "Deleting medication"
+msgid "Cannot create allergy from more than one substance at once."
 msgstr ""
 
-#, python-format
 msgid ""
-"Cannot delete the medication\n"
 "\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is a vaccine. Please delete it\n"
-"from the vaccine management section !\n"
+"Select the measurements panel to show in the medications plugin.\n"
 msgstr ""
 
-msgid ""
-"\n"
-"These are the drug brands known to GNUmed.\n"
-msgstr ""
+#, fuzzy
+msgid "Measurements panel"
+msgstr "Measurements and Results:"
 
-msgid "Showing branded drugs."
+msgid "Configuring medications plugin measurements panel"
 msgstr ""
 
-msgid "Import substances and brands from a drug database."
+msgid "EDC (!?!):"
 msgstr ""
 
-msgid "Editing drug"
+msgid "EDC:"
 msgstr ""
 
 #, python-format
-msgid ""
-"Cannot edit the branded drug product\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is currently taken by patients.\n"
-msgstr ""
-
-msgid "Adding new drug brand"
+msgid "%.1f (%s ago)"
 msgstr ""
 
-msgid "Editing drug brand"
+msgid "eGFR:"
 msgstr ""
 
-msgid "Manage consumable substances"
+#, python-format
+msgid "eGFR: %.1f (%s)"
 msgstr ""
 
-msgid "Cannot edit drug brand. It is in use."
+msgid "Enter vaccination given"
 msgstr ""
 
-msgid "Checking brand data"
+msgid "Unsaved progress note"
 msgstr ""
 
-#, python-format
 msgid ""
-"The brand information you entered:\n"
+"This progress note has not been saved yet.\n"
 "\n"
-" [%s %s]\n"
+"Do you want to save it or discard it ?\n"
 "\n"
-"already exists as a drug product."
 msgstr ""
 
-msgid ""
-"You have not selected any substances\n"
-"as drug components.\n"
-"\n"
-"Without components you will not be able to\n"
-"use this drug for documenting patient care.\n"
-"\n"
-"Are you sure you want to save\n"
-"it without components ?"
+msgid "Save this progress note"
 msgstr ""
 
-msgid "Cannot save branded drug. Invalid or missing essential input."
+msgid "Discard this progress note"
 msgstr ""
 
-msgid ""
-"The brand name of the drug.\n"
-"\n"
-"Note: a brand name will need to be linked to\n"
-"one or more components before it can be used,\n"
-"except in the case of fake (generic) vaccines."
+msgid "Save all remaining unsaved progress notes"
 msgstr ""
 
-msgid "The medical aim for consuming this substance."
+msgid ""
+"Add editor for a new unassociated progress note.\n"
+"\n"
+"There is a configuration option whether or not to\n"
+"allow several new unassociated progress notes at once."
 msgstr ""
 
-msgid "not tolerated:"
+msgid "Save progress note into medical record and close this editor."
 msgstr ""
 
-msgid "discontinued due to allergy or intolerance"
+msgid "Clear this progress note editor."
 msgstr ""
 
-msgid "Documented an allergy"
+msgid ""
+"Discard progress note and close this editor. You will loose any data already "
+"typed into this editor !"
 msgstr ""
 
-#, python-format
-msgid ""
-"An allergy was documented against the substance:\n"
-"\n"
-"  [%s]\n"
-"\n"
-"This substance was taken with the multi-component brand:\n"
-"\n"
-"  [%s (%s)]\n"
-"\n"
-"Note that ALL components of this brand were discontinued."
+msgid "Problem saving progress note: duplicate information ?"
 msgstr ""
 
-msgid "disapproved"
+msgid "label missing"
 msgstr ""
 
-msgid "Substances consumed by the patient:"
+msgid "soap cat missing"
 msgstr ""
 
-msgid "Intake"
+msgid "Enter a descriptive name for this new problem:"
 msgstr ""
 
-msgid "Application"
+msgid "Creating a problem (episode) to save the notelet under ..."
 msgstr ""
 
-msgid "never"
+msgid "Error saving progress note."
 msgstr ""
 
-#, python-format
-msgid "%s, last confirmed %s\n"
+msgid "Error saving embedded data."
 msgstr ""
 
-#, python-format
-msgid "Comment (%s): %%s\n"
+msgid "Visit Purpose"
 msgstr ""
 
-msgid "reaction not recorded"
+msgid "History Taken"
 msgstr ""
 
-msgid "GFR: unknown"
+msgid "Findings"
 msgstr ""
 
-msgid "GFR reported by path lab"
+msgid "save"
 msgstr ""
 
-#, python-format
-msgid ""
-"The patient is already taking\n"
-"\n"
-" %s\n"
-"\n"
-"You will want to adjust the schedule\n"
-"rather than document the intake twice."
+msgid "save clinical note in EMR"
 msgstr ""
 
-msgid "Adding substance intake entry"
+msgid "discard"
 msgstr ""
 
-msgid "Input incomplete/invalid for saving as substance intake."
+msgid "discard clinical note"
 msgstr ""
 
-#, python-format
-msgid "Discontinued (%s) in the future (now: %s)!"
+msgid "clinical progress note"
 msgstr ""
 
-#, python-format
-msgid "Discontinued (%s) before started (%s) !"
+msgid "Select files to add to the export area"
 msgstr ""
 
-msgid "Cannot add duplicate of (maybe inactive) substance intake."
+msgid "Adding files to export area"
 msgstr ""
 
 #, python-format
 msgid ""
-"\n"
-"[%s]\n"
-"\n"
-"It may be prudent to edit (before deletion) the details\n"
-"of this substance intake entry so as to leave behind\n"
-"some indication of why it was deleted.\n"
-msgstr ""
-
-msgid "Deleting medication / substance intake"
-msgstr ""
-
-msgid "Allow editing of substance intake entry before deletion."
+"Cannot add (some of) the following files to the export area:\n"
+"%s "
 msgstr ""
 
-msgid "Delete immediately without editing first."
+msgid "Select the documents to be put into the export area:"
 msgstr ""
 
-msgid "&Cancel"
+msgid "clipboard"
 msgstr ""
 
-msgid "Abort. Do not delete or edit substance intake entry."
+msgid "Loading clipboard item (saved to file) into export area"
 msgstr ""
 
-msgid "Now delete substance intake entry ?"
+#, python-format
+msgid ""
+"Cannot add the following clip to the export area:\n"
+"%s "
 msgstr ""
 
-msgid "Adding medication/non-medication substance intake"
+msgid "scan"
 msgstr ""
 
-msgid "Editing medication/non-medication substance intake"
+msgid "Scanning files into export area"
 msgstr ""
 
-msgid "Document an allergy against this substance."
+#, python-format
+msgid ""
+"Cannot add (some of) the following scans to the export area:\n"
+"%s "
 msgstr ""
 
-msgid "No medication list template configured."
+msgid "Deleting document from export area."
 msgstr ""
 
-msgid "There is no medication list template configured."
+#, python-format
+msgid ""
+"Really remove %s selected document(s)\n"
+"from the patient export area ?"
 msgstr ""
 
-msgid "Problem loading medication list template."
+msgid "Error printing documents."
 msgstr ""
 
 #, python-format
-msgid "Cannot load medication list template [%s - %s]"
-msgstr ""
-
-msgid "generated medication list document"
+msgid "Printing [%s]"
 msgstr ""
 
-msgid "Select the default prescription template:"
+#, python-format
+msgid ""
+"Printed:\n"
+" - %s"
 msgstr ""
 
-msgid "No prescription template configured."
+msgid "Select the directory into which to export the documents."
 msgstr ""
 
-msgid "There is no prescription template configured."
-msgstr ""
+#, fuzzy
+msgid "Saving export area documents"
+msgstr " %s documents\n"
 
-msgid "Printing prescription"
+#, python-format
+msgid ""
+"The chosen export directory\n"
+"\n"
+" [%s]\n"
+"\n"
+"already contains files. Do you still want to save the\n"
+"selected export area documents into that directory ?\n"
+"\n"
+"(this is useful for including the external documents\n"
+" already stored in or below this directory)\n"
+"\n"
+"[NO] will create a subdirectory for you and use that."
 msgstr ""
 
-msgid "Problem loading prescription template."
+msgid ""
+"Create descriptive metadata files\n"
+"and save them alongside the\n"
+"selected export area documents ?"
 msgstr ""
 
 #, python-format
-msgid "Cannot load prescription template [%s - %s]"
-msgstr ""
-
-msgid "generated prescription"
+msgid ""
+"Saved to [%s]:\n"
+" - %s"
 msgstr ""
 
+#, python-format
 msgid ""
-"These brands have been prescribed but are not listed\n"
-"in the current medication list of this patient.\n"
+"Saved documents into directory:\n"
 "\n"
-"Please select those you want added to the medication list."
+" %s"
 msgstr ""
 
-msgid "Newly prescribed drugs"
+msgid "If you wish to include an existing directory select it here:"
 msgstr ""
 
-msgid "Add to medication list"
+msgid "Error burning documents to CD/DVD."
 msgstr ""
 
-msgid "Duration / Until"
-msgstr ""
+#, fuzzy
+msgid "Burning documents"
+msgstr " %s documents\n"
 
 #, python-format
-msgid "%s <fake>"
+msgid ""
+"Burned onto CD/DVD:\n"
+" - %s"
 msgstr ""
 
-msgid "Cannot edit more than one substance at once."
+msgid "Error mailing documents."
 msgstr ""
 
-msgid "Cannot delete more than one substance at once."
-msgstr ""
+#, fuzzy
+msgid "Mailing documents"
+msgstr " %s documents\n"
 
-msgid "Cannot create allergy from more than one substance at once."
+#, python-format
+msgid ""
+"Mailed:\n"
+" - %s"
 msgstr ""
 
 msgid ""
+"Please enter the fax number here !\n"
 "\n"
-"Select the measurements panel to show in the medications plugin.\n"
+"It can be left empty if the external\n"
+"fax software knows how to get the number."
 msgstr ""
 
 #, fuzzy
-msgid "Measurements panel"
-msgstr "Measurements and Results:"
+msgid "Faxing documents"
+msgstr " %s documents\n"
 
-msgid "Configuring medications plugin measurements panel"
-msgstr ""
-
-msgid "EDC (!?!):"
-msgstr ""
-
-msgid "EDC:"
-msgstr ""
-
-#, python-format
-msgid "%.1f (%s ago)"
-msgstr ""
-
-msgid "eGFR:"
-msgstr ""
-
-#, fuzzy, python-format
-msgid "%s%s%s (%s ago)"
-msgstr "%s: encounter (%s)"
-
-#, python-format
-msgid "eGFR: %.1f (%s)"
-msgstr ""
-
-msgid "Enter vaccination given"
-msgstr ""
-
-msgid "Unsaved progress note"
-msgstr ""
-
-msgid ""
-"This progress note has not been saved yet.\n"
-"\n"
-"Do you want to save it or discard it ?\n"
-"\n"
-msgstr ""
-
-msgid "Save this progress note"
-msgstr ""
-
-msgid "Discard this progress note"
-msgstr ""
-
-msgid "Save all remaining unsaved progress notes"
-msgstr ""
-
-msgid ""
-"Add editor for a new unassociated progress note.\n"
-"\n"
-"There is a configuration option whether or not to\n"
-"allow several new unassociated progress notes at once."
-msgstr ""
-
-msgid "Save progress note into medical record and close this editor."
-msgstr ""
-
-msgid "Clear this progress note editor."
-msgstr ""
-
-msgid ""
-"Discard progress note and close this editor. You will loose any data already "
-"typed into this editor !"
-msgstr ""
-
-msgid "Problem saving progress note: duplicate information ?"
-msgstr ""
-
-msgid "label missing"
-msgstr ""
-
-msgid "soap cat missing"
-msgstr ""
-
-msgid "Enter a descriptive name for this new problem:"
-msgstr ""
-
-msgid "Creating a problem (episode) to save the notelet under ..."
-msgstr ""
-
-msgid "Error saving progress note."
-msgstr ""
-
-msgid "Error saving embedded data."
-msgstr ""
-
-msgid "Visit Purpose"
-msgstr ""
-
-msgid "History Taken"
-msgstr ""
-
-msgid "Findings"
-msgstr ""
-
-msgid "save"
-msgstr ""
-
-msgid "save clinical note in EMR"
-msgstr ""
-
-msgid "discard"
-msgstr ""
-
-msgid "discard clinical note"
-msgstr ""
-
-msgid "clinical progress note"
-msgstr ""
-
-msgid "Select files to add to the export area"
-msgstr ""
-
-msgid "Adding files to export area"
-msgstr ""
-
-#, python-format
-msgid ""
-"Cannot add (some of) the following files to the export area:\n"
-"%s "
-msgstr ""
-
-msgid "Select the documents to be put into the export area:"
-msgstr ""
-
-msgid "clipboard"
-msgstr ""
-
-msgid "Loading clipboard item (saved to file) into export area"
-msgstr ""
-
-#, python-format
-msgid ""
-"Cannot add the following clip to the export area:\n"
-"%s "
-msgstr ""
-
-msgid "scan"
-msgstr ""
-
-msgid "Scanning files into export area"
-msgstr ""
-
-#, python-format
-msgid ""
-"Cannot add (some of) the following scans to the export area:\n"
-"%s "
-msgstr ""
-
-msgid "Deleting document from export area."
-msgstr ""
-
-#, python-format
-msgid ""
-"Really remove %s selected document(s)\n"
-"from the patient export area ?"
-msgstr ""
-
-msgid "Error printing documents."
-msgstr ""
-
-#, python-format
-msgid "Printing [%s]"
-msgstr ""
-
-#, python-format
-msgid ""
-"Printed:\n"
-" - %s"
-msgstr ""
-
-msgid "Select the directory into which to export the documents."
-msgstr ""
-
-#, fuzzy
-msgid "Saving export area documents"
-msgstr " %s documents\n"
-
-#, python-format
-msgid ""
-"The chosen export directory\n"
-"\n"
-" [%s]\n"
-"\n"
-"is not empty. Do you want to use it for saving the\n"
-"export area documents into, nevertheless ?\n"
-"\n"
-"(this can be useful for including external documents)\n"
-"\n"
-"[NO] will create a subdirectory for you and use that."
-msgstr ""
-
-#, python-format
-msgid ""
-"Saved to [%s]:\n"
-" - %s"
-msgstr ""
-
-#, python-format
-msgid ""
-"Saved documents into directory:\n"
-"\n"
-" %s"
-msgstr ""
-
-msgid "If you wish to include an existing directory select it here:"
-msgstr ""
-
-msgid "Error burning documents to CD/DVD."
-msgstr ""
-
-#, fuzzy
-msgid "Burning documents"
-msgstr " %s documents\n"
-
-#, python-format
-msgid ""
-"Burned onto CD/DVD:\n"
-" - %s"
-msgstr ""
-
-msgid "Error mailing documents."
-msgstr ""
-
-#, fuzzy
-msgid "Mailing documents"
-msgstr " %s documents\n"
-
-#, python-format
-msgid ""
-"Mailed:\n"
-" - %s"
-msgstr ""
-
-msgid ""
-"Please enter the fax number here !\n"
-"\n"
-"It can be left empty if the external\n"
-"fax software knows how to get the number."
-msgstr ""
-
-#, fuzzy
-msgid "Faxing documents"
-msgstr " %s documents\n"
-
-#, python-format
-msgid ""
-"Error faxing documents to\n"
-"\n"
-"  %s"
+#, python-format
+msgid ""
+"Error faxing documents to\n"
+"\n"
+"  %s"
 msgstr ""
 
 #, python-format
@@ -13085,9 +13331,6 @@ msgstr ""
 msgid "This praxis"
 msgstr ""
 
-msgid "Hospital stay"
-msgstr ""
-
 msgid "Bill receiver"
 msgstr ""
 
@@ -13123,17 +13366,59 @@ msgstr ""
 msgid "Select the episode under which to file the document ..."
 msgstr ""
 
-#, python-format
-msgid "Imported new document from %s."
+msgid "Cannot create new document."
 msgstr ""
 
-msgid "Enter a comment on the document."
+msgid "saving document"
 msgstr ""
 
-msgid "User defined"
+#, python-format
+msgid "Imported new document from %s."
 msgstr ""
 
-msgid "In use"
+msgid "Successfully saved new document."
+msgstr ""
+
+msgid "Successfully saved the new document."
+msgstr ""
+
+#, python-format
+msgid ""
+"The reference ID for the new document is:\n"
+"\n"
+" <%s>\n"
+"\n"
+"You probably want to write it down on the\n"
+"original documents.\n"
+"\n"
+"If you don't care about the ID you can switch\n"
+"off this message in the GNUmed configuration.\n"
+msgstr ""
+
+msgid "Saving document"
+msgstr ""
+
+#, python-format
+msgid ""
+"Successfully imported files as document.\n"
+"\n"
+"Do you want to delete imported files from the filesystem ?\n"
+"\n"
+" %s\n"
+"\n"
+"Note that temporary files will be deleted anyway."
+msgstr ""
+
+msgid "Removing files"
+msgstr ""
+
+msgid "Enter a comment on the document."
+msgstr ""
+
+msgid "User defined"
+msgstr ""
+
+msgid "In use"
 msgstr ""
 
 #, python-format
@@ -13244,14 +13529,16 @@ msgstr ""
 msgid "Acquiring images"
 msgstr ""
 
-msgid "other documents"
+msgid "directory dropped on client"
 msgstr ""
 
-#, python-format
-msgid "part %s: %s"
+msgid "file dropped on client"
 msgstr ""
 
-msgid "saving document"
+msgid "other documents"
+msgstr ""
+
+msgid "path"
 msgstr ""
 
 msgid "No parts to save. Really save an empty document as a reference ?"
@@ -13296,62 +13583,34 @@ msgstr ""
 msgid "acquiring page"
 msgstr ""
 
-msgid "Choose a file"
-msgstr ""
-
-msgid "all files (Win)"
-msgstr ""
-
-msgid "You must select a part before you can view it."
-msgstr ""
-
-msgid "displaying part"
+msgid "captured by imaging device"
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot display document part:\n"
-"%s"
+msgid "Choose a file"
 msgstr ""
 
-msgid "You must select a part before you can delete it."
+msgid "all files (Win)"
 msgstr ""
 
-msgid "deleting part"
+msgid "picked from storage media"
 msgstr ""
 
-#, python-format
-msgid ""
-"The part has successfully been removed from the document.\n"
-"\n"
-"Do you also want to permanently delete the file\n"
-"\n"
-" [%s]\n"
-"\n"
-"from which this document part was loaded ?\n"
-"\n"
-"If it is a temporary file for a page you just scanned\n"
-"this makes a lot of sense. In other cases you may not\n"
-"want to lose the file.\n"
-"\n"
-"Pressing [YES] will permanently remove the file\n"
-"from your computer.\n"
+msgid "pasted from clipboard"
 msgstr ""
 
-msgid "Removing document part"
+msgid "No part selected for viewing."
 msgstr ""
 
 #, python-format
 msgid ""
-"Cannot delete part in file [%s].\n"
-"\n"
-"You may not have write access to it."
+"Cannot display document part:\n"
+"%s"
 msgstr ""
 
-msgid "Cannot create new document."
+msgid "displaying part"
 msgstr ""
 
-msgid "Cannot update document metadata."
+msgid "No part selected for removal."
 msgstr ""
 
 msgid "Cannot add document description."
@@ -13360,26 +13619,12 @@ msgstr ""
 msgid "Error setting \"reviewed\" status of new document."
 msgstr ""
 
-msgid "Successfully saved the new document."
-msgstr ""
-
 #, python-format
 msgid ""
-"The reference ID for the new document is:\n"
-"\n"
-" <%s>\n"
-"\n"
-"You probably want to write it down on the\n"
-"original documents.\n"
+"Source: %s\n"
+"File: %s\n"
 "\n"
-"If you don't care about the ID you can switch\n"
-"off this message in the GNUmed configuration."
-msgstr ""
-
-msgid "Saving document"
-msgstr ""
-
-msgid "Successfully saved new document."
+"%s"
 msgstr ""
 
 msgid "Document part does not seem to exist in database !"
@@ -13394,9 +13639,6 @@ msgstr ""
 msgid "Showing documents."
 msgstr ""
 
-msgid "Generated"
-msgstr ""
-
 msgid "Ref #"
 msgstr ""
 
@@ -13649,6 +13891,143 @@ msgstr ""
 msgid "Deleting document"
 msgstr ""
 
+msgid "Study date"
+msgstr ""
+
+msgid "Study time"
+msgstr ""
+
+msgid "Method"
+msgstr ""
+
+msgid "Body part"
+msgstr ""
+
+msgid "Time"
+msgstr ""
+
+msgid "Cannot connect without port (try 8042)."
+msgstr ""
+
+#, python-format
+msgid "Connect to [%s] @ port %s as \"%s\"."
+msgstr ""
+
+msgid "Cannot connect to PACS."
+msgstr ""
+
+#, python-format
+msgid "PACS: Orthanc \"%s\" (AET \"%s\", Version %s, DB v%s)"
+msgstr ""
+
+#, python-format
+msgid "GNUmed patient: %s (generic PACS ID)"
+msgstr ""
+
+#, python-format
+msgid "GNUmed patient: \"%(value)s\" @ [%(issuer)s] (stored PACS ID)"
+msgstr ""
+
+msgid "PACS: no patients with matching IDs found"
+msgstr ""
+
+msgid ""
+"PACS: more than one patient with matching IDs found, carefully check studies"
+msgstr ""
+
+#, python-format
+msgid "%s series"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "%%s (%s series)"
+msgstr "%s: encounter (%s)"
+
+msgid "no studies"
+msgstr ""
+
+#, python-format
+msgid "%s studies"
+msgstr ""
+
+msgid "Exporting DICOM studies"
+msgstr ""
+
+msgid "Unable to export selected studies."
+msgstr ""
+
+#, python-format
+msgid ""
+"The DICOM studies are %s in compressed size.\n"
+"\n"
+"Really copy to export area ?"
+msgstr ""
+
+#, python-format
+msgid "DICOM studies of [%s] from Orthanc PACS \"%s\" (AET \"%s\")"
+msgstr ""
+
+msgid "Select the directory into which to save the DICOM studies."
+msgstr ""
+
+msgid "Saving DICOM studies"
+msgstr ""
+
+msgid "Unable to save selected studies."
+msgstr ""
+
+msgid "Unable to export studies."
+msgstr ""
+
+#, python-format
+msgid "All DICOM studies of [%s] from Orthanc PACS \"%s\" (AET \"%s\")"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "%s%s images"
+msgstr "%s: encounter (%s)"
+
+msgid "Select the directory from which to recursively upload DICOM files."
+msgstr ""
+
+msgid "Delete the uploaded DICOM files now ?"
+msgstr ""
+
+msgid ""
+"Some files have not been uploaded.\n"
+"\n"
+"Do you want to delete those DICOM files which have been sent to the PACS "
+"successfully ?"
+msgstr ""
+
+msgid "Uploading DICOM files"
+msgstr ""
+
+msgid "Editing Orthanc content"
+msgstr ""
+
+#, fuzzy
+msgid "Patient ID"
+msgstr "Last worked on: %s\n"
+
+msgid "Birth date"
+msgstr ""
+
+msgid "Orthanc"
+msgstr ""
+
+msgid "Modifying patient ID"
+msgstr ""
+
+#, python-format
+msgid ""
+"Really modify %s patient(s) to have the new patient ID\n"
+"\n"
+" [%s]\n"
+"\n"
+"stored in the Orthanc DICOM server ?"
+msgstr ""
+
 #, python-format
 msgid "You are logged in as %s%s.%s (%s). DB account <%s>."
 msgstr ""
@@ -13707,6 +14086,12 @@ msgstr ""
 msgid "Select the measurements panel to show in the medications plugin."
 msgstr ""
 
+msgid "General measurements"
+msgstr ""
+
+msgid "Select the measurements panel to show in the top pane."
+msgstr ""
+
 msgid "Review dialog"
 msgstr ""
 
@@ -13797,6 +14182,12 @@ msgstr ""
 msgid "Configure auto-opening editors for recent problems."
 msgstr ""
 
+msgid "SOAP fields"
+msgstr ""
+
+msgid "Configure SOAP editor - individual SOAP fields vs text editor like"
+msgstr ""
+
 msgid "Progress notes handling ..."
 msgstr ""
 
@@ -13818,6 +14209,9 @@ msgstr ""
 msgid "URL for measurements encyclopedia."
 msgstr ""
 
+msgid "Drug data source"
+msgstr ""
+
 msgid "Select the drug data source."
 msgstr ""
 
@@ -14181,6 +14575,12 @@ msgstr ""
 msgid "Manage dynamic hints suppressed in this patient."
 msgstr ""
 
+msgid "Substance abuse"
+msgstr ""
+
+msgid "Manage substance abuse documentation of this patient."
+msgstr ""
+
 msgid "&Add / Edit ..."
 msgstr ""
 
@@ -14202,26 +14602,49 @@ msgstr ""
 msgid "Show a high-level statistic summary of the EMR."
 msgstr ""
 
-msgid "Text document"
+msgid "Journal (encounters) to file"
 msgstr ""
 
-msgid "Export the EMR of the active patient into a text file"
+msgid ""
+"Save the EMR of the active patient as a chronological journal into a text "
+"file"
 msgstr ""
 
-msgid "Journal"
+msgid "Journal (encounters) to export area"
 msgstr ""
 
 msgid ""
-"Export the EMR of the active patient as a chronological journal into a text "
-"file"
+"Copy EMR of the active patient as a chronological journal into export area"
+msgstr ""
+
+msgid "Journal (mod time) to file"
+msgstr ""
+
+msgid ""
+"Save the EMR of the active patient as journal by last modification time into "
+"a text file"
+msgstr ""
+
+msgid "Journal (mod time) to export area"
+msgstr ""
+
+msgid ""
+"Copy EMR of the active patient as journal by last modification time into "
+"export area"
+msgstr ""
+
+msgid "Text document"
+msgstr ""
+
+msgid "Save the EMR of the active patient into a text file"
 msgstr ""
 
 msgid "MEDISTAR import format"
 msgstr ""
 
 msgid ""
-"GNUmed -> MEDISTAR. Export progress notes of active patient's active "
-"encounter into a text file."
+"GNUmed -> MEDISTAR. Save progress notes of active patient's active encounter "
+"into a text file."
 msgstr ""
 
 msgid "Export as ..."
@@ -14391,19 +14814,40 @@ msgstr ""
 msgid "Show log file"
 msgstr ""
 
-msgid "Show the log file in text viewer."
+msgid "Show log file in text viewer."
 msgstr ""
 
 msgid "Backup log file"
 msgstr ""
 
-msgid "Backup the content of the log to another file."
+msgid "Backup content of the log to another file."
 msgstr ""
 
 msgid "Email log file"
 msgstr ""
 
-msgid "Send the log file to the authors for help."
+msgid "Send log file to the authors for help."
+msgstr ""
+
+msgid "Browse tmp dir"
+msgstr ""
+
+#, python-format
+msgid "Browse temporary directory [%s]."
+msgstr ""
+
+msgid "Browse work dir"
+msgstr ""
+
+#, python-format
+msgid "Browse user working directory [%s]."
+msgstr ""
+
+msgid "Browse internal work dir"
+msgstr ""
+
+#, python-format
+msgid "Browse internal working directory [%s]."
 msgstr ""
 
 msgid "Bug tracker"
@@ -14746,6 +15190,20 @@ msgid "No, only auto-open one editor for a new, unassociated problem."
 msgstr ""
 
 msgid ""
+"When editing progress notes, do you want GNUmed to\n"
+"show individual fields for each of the SOAP categories\n"
+"or do you want to use a text-editor like field for\n"
+"all SOAP categories which can then be set per line\n"
+"of input ?"
+msgstr ""
+
+msgid "Yes, show a dedicated field per SOAP category."
+msgstr ""
+
+msgid "No, use one field for all SOAP categories."
+msgstr ""
+
+msgid ""
 "When a patient is activated GNUmed can\n"
 "be told to switch to a specific plugin.\n"
 "\n"
@@ -15055,493 +15513,896 @@ msgid "cardiovascular risk assessment"
 msgstr ""
 
 #, python-format
-msgid "[arriba] XML result not found in [%s]"
+msgid "[arriba] XML result not found in [%s]"
+msgstr ""
+
+msgid "ACS risk assessment calculator not configured."
+msgstr ""
+
+#, python-format
+msgid "Cannot run [%s] !"
+msgstr ""
+
+#, python-format
+msgid "There was a problem accessing the [arriba] result in [%s] !"
+msgstr ""
+
+msgid "[-9999]: <access violation test error>"
+msgstr ""
+
+msgid ""
+"This is a deliberate AccessDenied exception thrown to test the handling of "
+"access violations by means of a decorator."
+msgstr ""
+
+msgid "testing access check for non-existant <admin> role"
+msgstr ""
+
+msgid ""
+"This is a deliberate AccessDenied exception. You should not see this message "
+"because the role is checked in a decorator."
+msgstr ""
+
+msgid "pgAdmin III not found."
+msgstr ""
+
+msgid "Error reloading hook script."
+msgstr ""
+
+msgid "Save current log as..."
+msgstr ""
+
+msgid "log files"
+msgstr ""
+
+#, python-format
+msgid "Log file backed up as [%s]."
+msgstr ""
+
+msgid "Cannot start new encounter. No active patient."
+msgstr ""
+
+msgid "Cannot add health issue. No active patient."
+msgstr ""
+
+msgid "Cannot add episode. No active patient."
+msgstr ""
+
+msgid "Cannot add medication. No active patient."
+msgstr ""
+
+msgid "Cannot add allergy. No active patient."
+msgstr ""
+
+msgid "Cannot manage performed procedures. No active patient."
+msgstr ""
+
+msgid "Cannot manage hospitalizations. No active patient."
+msgstr ""
+
+msgid "Cannot manage external care. No active patient."
+msgstr ""
+
+msgid "Cannot edit occupation. No active patient."
+msgstr ""
+
+msgid "manage vaccinations"
+msgstr ""
+
+msgid "Cannot add vaccinations. No active patient."
+msgstr ""
+
+msgid "manage family history"
+msgstr ""
+
+msgid "Cannot manage family history. No active patient."
+msgstr ""
+
+msgid "Cannot manage measurements. No active patient."
+msgstr ""
+
+msgid "calculate EDC"
+msgstr ""
+
+msgid "manage suppressed hints"
+msgstr ""
+
+msgid "Cannot manage suppressed hints. No active patient."
+msgstr ""
+
+msgid "Cannot manage smoking status. No active patient."
+msgstr ""
+
+msgid "Cannot show EMR summary. No active patient."
+msgstr ""
+
+msgid "EMR Summary"
+msgstr ""
+
+msgid "Cannot export EMR journal by last modification time. No active patient."
+msgstr ""
+
+msgid "journal_by_last_mod_time"
+msgstr ""
+
+msgid "Save patient's EMR journal as..."
+msgstr ""
+
+msgid "Error exporting patient EMR as journal by last modification time."
+msgstr ""
+
+msgid "EMR journal export"
+msgstr ""
+
+#, python-format
+msgid ""
+"Successfully exported EMR as journal by last modification time into file "
+"[%s]."
+msgstr ""
+
+msgid "Cannot export EMR journal. No active patient."
+msgstr ""
+
+msgid "emr-journal"
+msgstr ""
+
+msgid "Error exporting patient EMR as chronological journal."
+msgstr ""
+
+#, python-format
+msgid "Successfully exported EMR as chronological journal into file [%s]."
+msgstr ""
+
+msgid "EMR journal by last modification time"
+msgstr ""
+
+msgid "EMR journal by encounter"
+msgstr ""
+
+msgid "Cannot add tag to person. No active patient."
+msgstr ""
+
+#, python-format
+msgid "Edit the comment on tag [%s]"
+msgstr ""
+
+msgid "Editing tag comment"
+msgstr ""
+
+msgid "Cannot export patient as GDT. No active patient."
+msgstr ""
+
+msgid "Exported demographics as GDT to clipboard."
+msgstr ""
+
+msgid "Cannot export patient as VCARD. No active patient."
+msgstr ""
+
+msgid "Exported demographics as VCARD to clipboard."
+msgstr ""
+
+msgid "Cannot export patient as XML (LinuxMedNews). No active patient."
+msgstr ""
+
+#, python-format
+msgid "Exported demographics to XML file [%s]."
+msgstr ""
+
+#, python-format
+msgid "Exported demographics to GDT file [%s]."
+msgstr ""
+
+#, python-format
+msgid "Exported demographics to VCARD file [%s]."
+msgstr ""
+
+msgid "Cannot add staff member. No active patient."
+msgstr ""
+
+msgid "Cannot delete patient. No patient active."
+msgstr ""
+
+msgid ""
+"You have to manually close this window to finalize shutting down GNUmed."
+msgstr ""
+
+msgid "This is so that you can inspect the console output at your leisure."
+msgstr ""
+
+msgid "no patient"
+msgstr ""
+
+#, python-format
+msgid "Saved screenshot to file [%s]."
+msgstr ""
+
+msgid "Python version check"
+msgstr ""
+
+#, python-format
+msgid ""
+"You are running Python version\n"
+" %s\n"
+"\n"
+"However, GNUmed wants Python 2.7 to\n"
+"facilitate migration to Python 3.\n"
+"\n"
+"Please upgrade your Python interpreter !"
+msgstr ""
+
+msgid "GNUmed client"
+msgstr ""
+
+msgid "GNUmed stdout/stderr window"
+msgstr ""
+
+msgid "redirecting STDOUT/STDERR to this log window"
+msgstr ""
+
+#, python-format
+msgid ""
+"The database account [%s] cannot be used as a\n"
+"staff member login for GNUmed. There was an\n"
+"error retrieving staff details for it.\n"
+"\n"
+"Please ask your administrator for help.\n"
+msgstr ""
+
+msgid "Checking access permissions"
+msgstr ""
+
+#, python-format
+msgid "Database <%s> on <%s>"
+msgstr ""
+
+#, python-format
+msgid "Branch \"%s\" of praxis \"%s\"\n"
+msgstr ""
+
+msgid "Verifying database"
+msgstr ""
+
+msgid "Connect"
+msgstr ""
+
+msgid "Yes, connect to this database."
+msgstr ""
+
+msgid "Disconnect"
+msgstr ""
+
+msgid "No, do not connect to this database."
+msgstr ""
+
+#, python-format
+msgid ""
+"Cannot find configuration file in any of:\n"
+"\n"
+" %s\n"
+"You may need to use the comand line option\n"
+"\n"
+"\t--conf-file=<FILE>"
+msgstr ""
+
+msgid "Checking configuration files"
+msgstr ""
+
+msgid "GNUmed startup"
+msgstr ""
+
+#, python-format
+msgid ""
+"The currently selected database language ('%s') does\n"
+"not match the current system language ('%s').\n"
+"\n"
+"Do you want to set the database language to '%s' ?\n"
+msgstr ""
+
+msgid "Checking database language settings"
+msgstr ""
+
+#, python-format
+msgid "Set your database language to [%s]."
+msgstr ""
+
+msgid "Don't set"
+msgstr ""
+
+msgid "Do not set your database language now."
+msgstr ""
+
+msgid "Remember to ignore language mismatch"
+msgstr ""
+
+#, python-format
+msgid ""
+"Checking this will make GNUmed remember your decision\n"
+"until the system language is changed.\n"
+"\n"
+"You can also reactivate this inquiry by removing the\n"
+"corresponding \"ignore\" option from the configuration file\n"
+"\n"
+" [%s]"
+msgstr ""
+
+msgid "generic activity"
+msgstr ""
+
+msgid "Access denied"
+msgstr ""
+
+#, python-format
+msgid ""
+"Your account is not set up to access this part of GNUmed:\n"
+"\n"
+"  [%s]"
+msgstr ""
+
+msgid "Save timeline as SVG image under..."
+msgstr ""
+
+msgid "timeline image"
+msgstr ""
+
+msgid "timeline data"
+msgstr ""
+
+msgid "Cannot change notebook tabs. No active patient."
+msgstr ""
+
+msgid "add plugin ..."
+msgstr ""
+
+msgid "Cannot activate Allergy Manager. No active patient."
+msgstr ""
+
+msgid "RR ?"
+msgstr ""
+
+#, python-format
+msgid "BMI %s"
+msgstr ""
+
+msgid "BMI ?"
+msgstr ""
+
+msgid "GFR ?"
+msgstr ""
+
+#, python-format
+msgid "GFR %s"
+msgstr ""
+
+#, python-format
+msgid "?EDC %s"
+msgstr ""
+
+#, python-format
+msgid "EDC %s"
 msgstr ""
 
-msgid "ACS risk assessment calculator not configured."
+msgid "<Age>"
 msgstr ""
 
-#, python-format
-msgid "Cannot run [%s] !"
-msgstr ""
+#, fuzzy
+msgid "no patient selected"
+msgstr "Starting patient encounter"
 
 #, python-format
-msgid "There was a problem accessing the [arriba] result in [%s] !"
+msgid "Gender: %s (%s) - %s\n"
 msgstr ""
 
-msgid "[-9999]: <access violation test error>"
+#, python-format
+msgid "Born: %s\n"
 msgstr ""
 
-msgid ""
-"This is a deliberate AcessDenied exception thrown to test the handling of "
-"access violations by means of a decorator."
+#, python-format
+msgid "Died: %s\n"
 msgstr ""
 
-msgid "testing access check for non-existant <admin> role"
+#, python-format
+msgid "At age: %s\n"
 msgstr ""
 
-msgid ""
-"This is a deliberate AcessDenied exception. You should not see this message "
-"because the role is checked in a decorator."
+msgid " (date of birth and age are estimated)\n"
 msgstr ""
 
-msgid "pgAdmin III not found."
+#, python-format
+msgid "%(sex)s  %(dob)s (%(age)s today !)"
 msgstr ""
 
-msgid "Error reloading hook script."
+msgid ""
+"\n"
+"Today is the patient's birthday !\n"
+"\n"
 msgstr ""
 
-msgid "Save current log as..."
+#, python-format
+msgid "Birthday: %s ago\n"
 msgstr ""
 
-msgid "log files"
+#, python-format
+msgid "Birthday: in %s\n"
 msgstr ""
 
 #, python-format
-msgid "Log file backed up as [%s]."
+msgid "Age: %s\n"
 msgstr ""
 
-msgid "Cannot start new encounter. No active patient."
+#, python-format
+msgid "last confirmed %s\n"
 msgstr ""
 
-msgid "Cannot add health issue. No active patient."
+#, python-format
+msgid "Comment (%s): %%s"
 msgstr ""
 
-msgid "Cannot add episode. No active patient."
+#, python-format
+msgid " - expires %s"
 msgstr ""
 
-msgid "Cannot add medication. No active patient."
+#, python-format
+msgid ""
+"Due for %s (since %s%s):\n"
+"%s%s\n"
+"Patient: %s\n"
+"Reminder by: %s"
 msgstr ""
 
-msgid "Cannot add allergy. No active patient."
+msgid "Clinical reminder"
 msgstr ""
 
-msgid "Cannot manage performed procedures. No active patient."
+msgid "Adding automatic dynamic hint"
 msgstr ""
 
-msgid "Cannot manage hospitalizations. No active patient."
+msgid "Editing automatic dynamic hint"
 msgstr ""
 
-msgid "Cannot manage external care. No active patient."
+msgid "Deleting automatic dynamic hint"
 msgstr ""
 
-msgid "Cannot edit occupation. No active patient."
+#, python-format
+msgid ""
+"Really delete this dynamic hint ?\n"
+"\n"
+" [%s]"
 msgstr ""
 
-msgid "manage vaccinations"
+msgid "deleting a dynamic hint"
 msgstr ""
 
-msgid "Cannot add vaccinations. No active patient."
+msgid ""
+"\n"
+"Dynamic hints registered with GNUmed.\n"
 msgstr ""
 
-msgid "Cannot manage family history. No active patient."
+msgid "Showing dynamic hints."
 msgstr ""
 
-msgid "Cannot manage measurements. No active patient."
+msgid "Hint"
 msgstr ""
 
-msgid "calculate EDC"
+msgid "Browse and install automatic dynamic hints data packs"
 msgstr ""
 
-msgid "manage suppressed hints"
-msgstr ""
+#, fuzzy, python-format
+msgid "By: %s"
+msgstr "Documents: %s"
 
-msgid "Cannot manage suppressed hints. No active patient."
+msgid "No entry in field <Source>."
 msgstr ""
 
-msgid "Cannot show EMR summary. No active patient."
+msgid "No entry in field <Conditions>."
 msgstr ""
 
-msgid "EMR Summary"
+msgid "No entry in field <Description>."
 msgstr ""
 
-msgid "Cannot export EMR journal. No active patient."
+msgid "No entry in field <Title>."
 msgstr ""
 
-msgid "Save patient's EMR journal as..."
+msgid "creating a new dynamic hint"
 msgstr ""
 
-msgid "Error exporting patient EMR as chronological journal."
+msgid "updating an existing dynamic hint"
 msgstr ""
 
-msgid "EMR journal export"
+msgid "Deleting suppressed dynamic hint"
 msgstr ""
 
 #, python-format
-msgid "Successfully exported EMR as chronological journal into file [%s]."
+msgid ""
+"Really delete the suppression of this dynamic hint ?\n"
+"\n"
+" [%s]"
 msgstr ""
 
-msgid "Cannot add tag to person. No active patient."
+msgid ""
+"\n"
+"Dynamic hints suppressed in this patient.\n"
 msgstr ""
 
-#, python-format
-msgid "Edit the comment on tag [%s]"
+msgid "Showing suppressed dynamic hints."
 msgstr ""
 
-msgid "Editing tag comment"
+msgid "Rationale"
 msgstr ""
 
-msgid "Cannot export patient as GDT. No active patient."
-msgstr ""
+#, fuzzy
+msgid "Manage hints"
+msgstr "health issue: %s"
 
-msgid "Exported demographics as GDT to clipboard."
+msgid "Manage automatic dynamic hints"
 msgstr ""
 
-msgid "Cannot export patient as VCARD. No active patient."
+msgid "Cannot delete family history item."
 msgstr ""
 
-msgid "Exported demographics as VCARD to clipboard."
+msgid "Family history of this patient."
 msgstr ""
 
-msgid "Cannot export patient as XML (LinuxMedNews). No active patient."
+msgid "Showing family history."
 msgstr ""
 
-#, python-format
-msgid "Exported demographics to XML file [%s]."
+msgid "Fatal"
 msgstr ""
 
-#, python-format
-msgid "Exported demographics to GDT file [%s]."
+msgid "Noted"
 msgstr ""
 
-#, python-format
-msgid "Exported demographics to VCARD file [%s]."
+msgid "Died"
 msgstr ""
 
-msgid "Cannot add staff member. No active patient."
+msgid "Adding family history"
 msgstr ""
 
-msgid "Cannot delete patient. No patient active."
+msgid "Editing family history"
 msgstr ""
 
 msgid ""
-"You have to manually close this window to finalize shutting down GNUmed."
+"\n"
+"Please select the default drug data source from the list below.\n"
+"\n"
+"Note that to actually use it you need to have the database installed, too."
 msgstr ""
 
-msgid "This is so that you can inspect the console output at your leisure."
+msgid "Configuring default drug data source"
 msgstr ""
 
-msgid "no patient"
+msgid "No default drug database configured."
 msgstr ""
 
-#, python-format
-msgid "Saved screenshot to file [%s]."
+msgid "There is no default drug database configured."
 msgstr ""
 
-msgid "GNUmed client"
+msgid "Jumping to drug database"
 msgstr ""
 
-msgid "GNUmed stdout/stderr window"
+msgid "Cannot import drugs from IFAP into chart without chart."
 msgstr ""
 
-msgid "redirecting STDOUT/STDERR to this log window"
+#, python-format
+msgid "Cannot call IFAP via [%s]."
 msgstr ""
 
 #, python-format
+msgid "Cannot create IFAP <-> GNUmed transfer file [%s]."
+msgstr ""
+
+msgid "Current medication"
+msgstr ""
+
 msgid ""
-"The database account [%s] cannot be used as a\n"
-"staff member login for GNUmed. There was an\n"
-"error retrieving staff details for it.\n"
 "\n"
-"Please ask your administrator for help.\n"
+"The ATC codes as known to GNUmed.\n"
 msgstr ""
 
-msgid "Checking access permissions"
+msgid "Showing ATC codes."
 msgstr ""
 
-#, python-format
-msgid "Database <%s> on <%s>"
+msgid "Choose an ATC import config file"
 msgstr ""
 
-#, python-format
-msgid "Branch \"%s\" of praxis \"%s\"\n"
+msgid "config files"
 msgstr ""
 
-msgid "Verifying database"
+msgid "importing ATC reference data"
 msgstr ""
 
-msgid "Connect"
+msgid "Successfully imported ATC reference data."
 msgstr ""
 
-msgid "Yes, connect to this database."
+msgid "Importing ATC reference data failed."
 msgstr ""
 
-msgid "Disconnect"
+msgid "Select an ATC (Anatomical-Therapeutic-Chemical) code."
 msgstr ""
 
-msgid "No, do not connect to this database."
+msgid "Cannot edit this substance. It is in use."
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot find configuration file in any of:\n"
-"\n"
-" %s\n"
-"You may need to use the comand line option\n"
-"\n"
-"\t--conf-file=<FILE>"
+msgid "Adding new consumable substance"
 msgstr ""
 
-msgid "Checking configuration files"
+msgid "Editing consumable substance"
 msgstr ""
 
-msgid "GNUmed startup"
+msgid "Cannot delete this substance. It is in use."
 msgstr ""
 
-#, python-format
 msgid ""
-"The currently selected database language ('%s') does\n"
-"not match the current system language ('%s').\n"
 "\n"
-"Do you want to set the database language to '%s' ?\n"
+"These are the consumable substances registered with GNUmed.\n"
 msgstr ""
 
-msgid "Checking database language settings"
+msgid "Import"
 msgstr ""
 
-msgid "Set"
+msgid "Import consumable substances from a drug database."
 msgstr ""
 
-#, python-format
-msgid "Set your database language to [%s]."
+msgid "Cannot save consumable substance. Missing essential input."
 msgstr ""
 
-msgid "Don't set"
+#, python-format
+msgid "Cannot save consumable substance. %s"
 msgstr ""
 
-msgid "Do not set your database language now."
+msgid "The substance with optional strength."
 msgstr ""
 
-msgid "Remember to ignore language mismatch"
+msgid "Cannot remove this component from the drug. It is in use."
 msgstr ""
 
-#, python-format
 msgid ""
-"Checking this will make GNUmed remember your decision\n"
-"until the system language is changed.\n"
-"\n"
-"You can also reactivate this inquiry by removing the\n"
-"corresponding \"ignore\" option from the configuration file\n"
 "\n"
-" [%s]"
+"These are the components in the drug brands known to GNUmed.\n"
 msgstr ""
 
-msgid "generic activity"
+msgid "Showing drug brand components."
 msgstr ""
 
-msgid "Access denied"
+msgid "Adding new drug component"
 msgstr ""
 
-#, python-format
-msgid ""
-"Your account is not set up to access this part of GNUmed:\n"
-"\n"
-"  [%s]"
+msgid "Editing drug component"
 msgstr ""
 
-msgid "Save timeline as SVG image under..."
+msgid "Cannot edit drug component. It is in use."
 msgstr ""
 
-msgid "timeline image"
+msgid "Cannot save drug component. Invalid or missing essential input."
 msgstr ""
 
-msgid "timeline data"
+msgid "A drug component with optional strength."
 msgstr ""
 
-msgid "Cannot change notebook tabs. No active patient."
+msgid "Editing drug"
 msgstr ""
 
-msgid "add plugin ..."
+#, python-format
+msgid ""
+"Cannot edit the branded drug product\n"
+"\n"
+" \"%s\" (%s)\n"
+"\n"
+"because it is currently taken by patients.\n"
 msgstr ""
 
-msgid "Cannot activate Allergy Manager. No active patient."
+msgid "Adding new drug brand"
 msgstr ""
 
-msgid "<Age>"
+msgid "Editing drug brand"
 msgstr ""
 
-#, fuzzy
-msgid "no patient selected"
-msgstr "Starting patient encounter"
+msgid "Manage consumable substances"
+msgstr ""
 
-#, python-format
-msgid "Gender: %s (%s) - %s\n"
+msgid "not in use"
 msgstr ""
 
 #, python-format
-msgid "Born: %s\n"
+msgid "ATC: %s\n"
 msgstr ""
 
-#, python-format
-msgid "Died: %s\n"
+msgid "Editing medication"
 msgstr ""
 
 #, python-format
-msgid "At age: %s\n"
+msgid ""
+"Cannot edit the medication\n"
+"\n"
+" \"%s\" (%s)\n"
+"\n"
+"because it is a vaccine. Please edit it\n"
+"from the vaccine management section !\n"
 msgstr ""
 
-msgid " (date of birth and age are estimated)\n"
+msgid "Deleting medication"
 msgstr ""
 
 #, python-format
-msgid "%(sex)s  %(dob)s (%(age)s today !)"
+msgid ""
+"Cannot delete the medication\n"
+"\n"
+" \"%s\" (%s)\n"
+"\n"
+"because it is a vaccine. Please delete it\n"
+"from the vaccine management section !\n"
 msgstr ""
 
 msgid ""
 "\n"
-"Today is the patient's birthday !\n"
-"\n"
+"These are the drug brands known to GNUmed.\n"
 msgstr ""
 
-#, python-format
-msgid "Birthday: %s ago\n"
+msgid "Showing branded drugs."
 msgstr ""
 
-#, python-format
-msgid "Birthday: in %s\n"
+msgid "Import substances and brands from a drug database."
 msgstr ""
 
-#, python-format
-msgid "Age: %s\n"
+msgid "Managing components of a drug"
 msgstr ""
 
 #, python-format
-msgid "last confirmed %s\n"
+msgid ""
+"Cannot manage the components of the branded drug product\n"
+"\n"
+" \"%s\" (%s)\n"
+"\n"
+"because it is currently taken by patients.\n"
 msgstr ""
 
-#, python-format
-msgid "Comment (%s): %%s"
+msgid "Pick the substances which are components of this drug."
 msgstr ""
 
-#, python-format
-msgid " - expires %s"
+msgid "Components of drug"
 msgstr ""
 
 #, python-format
 msgid ""
-"Due for %s (since %s%s):\n"
-"%s%s\n"
-"Patient: %s\n"
-"Reminder by: %s"
+"Adjust the components of \"%s\"\n"
+"\n"
+"The drug must contain at least one component. Any given\n"
+"substance can only be included once per drug."
 msgstr ""
 
-msgid "Clinical reminder"
+msgid "Managing components of a drug ..."
 msgstr ""
 
-msgid "Adding automatic dynamic hint"
+msgid "Cannot edit drug brand. It is in use."
 msgstr ""
 
-msgid "Editing automatic dynamic hint"
+msgid "Checking brand data"
 msgstr ""
 
-msgid "Deleting automatic dynamic hint"
+#, python-format
+msgid ""
+"The brand information you entered:\n"
+"\n"
+" [%s %s]\n"
+"\n"
+"already exists as a drug product."
 msgstr ""
 
-#, python-format
 msgid ""
-"Really delete this dynamic hint ?\n"
+"You have not selected any substances\n"
+"as drug components.\n"
 "\n"
-" [%s]"
+"Without components you will not be able to\n"
+"use this drug for documenting patient care.\n"
+"\n"
+"Are you sure you want to save\n"
+"it without components ?"
 msgstr ""
 
-msgid "deleting a dynamic hint"
+msgid "Cannot save branded drug. Invalid or missing essential input."
 msgstr ""
 
 msgid ""
+"The brand name of the drug.\n"
 "\n"
-"Dynamic hints registered with GNUmed.\n"
+"Note: a brand name will need to be linked to\n"
+"one or more components before it can be used,\n"
+"except in the case of fake (generic) vaccines."
 msgstr ""
 
-msgid "Showing dynamic hints."
+msgid "No EMR data loaded."
 msgstr ""
 
-msgid "Hint"
+msgid "EMR text dump"
 msgstr ""
 
-msgid "Browse and install automatic dynamic hints data packs"
+msgid "Currently there is no active patient. Cannot retrieve EMR text."
 msgstr ""
 
-#, fuzzy, python-format
-msgid "By: %s"
-msgstr "Documents: %s"
+msgid "SOAP Editor Actions:"
+msgstr ""
 
-msgid "No entry in field <Source>."
+msgid "&Sort lines"
 msgstr ""
 
-msgid "No entry in field <Conditions>."
+msgid "Sort lines by SOAP category"
 msgstr ""
 
-msgid "No entry in field <Description>."
+msgid "e&Xpand keyword"
 msgstr ""
 
-msgid "No entry in field <Title>."
+msgid "Expand keyword / macro"
 msgstr ""
 
-msgid "creating a new dynamic hint"
+#, fuzzy
+msgid "as &Subjective"
+msgstr "soap_Subjective"
+
+msgid "Set line to category \"Subjective\""
 msgstr ""
 
-msgid "updating an existing dynamic hint"
+#, fuzzy
+msgid "as &Objective"
+msgstr "soap_Objective"
+
+msgid "Set line to category \"Objective\""
 msgstr ""
 
-msgid "Deleting suppressed dynamic hint"
+#, fuzzy
+msgid "as &Assessment"
+msgstr "soap_Assessment"
+
+msgid "Set line to category \"Assessment\""
 msgstr ""
 
-#, python-format
-msgid ""
-"Really delete the suppression of this dynamic hint ?\n"
-"\n"
-" [%s]"
+msgid "as &Plan"
 msgstr ""
 
-msgid ""
-"\n"
-"Dynamic hints suppressed in this patient.\n"
+msgid "Set line to category \"Plan\""
 msgstr ""
 
-msgid "Showing suppressed dynamic hints."
+msgid "as &Unspecified"
 msgstr ""
 
-msgid "Rationale"
+msgid "Set line to category \"unspecified\""
 msgstr ""
 
 #, fuzzy
-msgid "Manage hints"
-msgstr "health issue: %s"
+msgid "as ad&Ministrative"
+msgstr "soap_Administrative"
 
-msgid "Manage automatic dynamic hints"
+msgid "Set line to category \"administrative\""
 msgstr ""
 
-msgid "Cannot delete family history item."
+msgid "→ &Clipboard"
 msgstr ""
 
-msgid "Family history of this patient."
+msgid "Copy line to clipboard"
 msgstr ""
 
-msgid "Showing family history."
+msgid "→ +Clipboard+"
 msgstr ""
 
-msgid "Fatal"
+msgid "Add line to clipboard"
 msgstr ""
 
-msgid "Noted"
+msgid "Copy content to clipboard"
 msgstr ""
 
-msgid "Died"
+msgid "Add content to clipboard"
 msgstr ""
 
-msgid "Adding family history"
+msgid "Copy selection to clipboard"
 msgstr ""
 
-msgid "Editing family history"
+msgid "Add selection to clipboard"
 msgstr ""
 
-msgid "No EMR data loaded."
+msgid "&Line ..."
 msgstr ""
 
-msgid "EMR text dump"
+msgid "&Text ..."
 msgstr ""
 
-msgid "Currently there is no active patient. Cannot retrieve EMR text."
+msgid "&Region ..."
 msgstr ""
 
 msgid "Show HL7 file:"
@@ -15553,6 +16414,10 @@ msgstr ""
 msgid "Extracting HL7 from XML file"
 msgstr ""
 
+#, python-format
+msgid "Unwrapped HL7 into [%s] from [%s]."
+msgstr ""
+
 msgid "Select HL7 file for staging:"
 msgstr ""
 
@@ -15576,6 +16441,10 @@ msgid ""
 " %s"
 msgstr ""
 
+#, python-format
+msgid "Staged HL7 from [%s]."
+msgstr ""
+
 msgid "Importing HL7 data"
 msgstr ""
 
@@ -15619,9 +16488,6 @@ msgstr ""
 msgid "Identification"
 msgstr ""
 
-msgid "Show"
-msgstr ""
-
 msgid "Show formatted HL7"
 msgstr ""
 
@@ -15667,6 +16533,18 @@ msgstr ""
 msgid "Plot current selection"
 msgstr ""
 
+msgid ""
+"Select the measurements panel to show in the top pane for continuous "
+"monitoring."
+msgstr ""
+
+msgid "Lab panel"
+msgstr ""
+
+#, fuzzy
+msgid "Configuring continuous monitoring measurements panel"
+msgstr "Measurements and Results:"
+
 msgid "No default Gnuplot script template selected."
 msgstr ""
 
@@ -15689,10 +16567,25 @@ msgstr ""
 msgid "Cannot plot without a plot script."
 msgstr ""
 
-msgid "Time"
+msgid "Result"
 msgstr ""
 
-msgid "Result"
+msgid "Perform on selected results:"
+msgstr ""
+
+msgid "Review and &sign"
+msgstr ""
+
+msgid "Export to &file"
+msgstr ""
+
+msgid "Export to &clipboard"
+msgstr ""
+
+msgid "Panels"
+msgstr ""
+
+msgid "List"
 msgstr ""
 
 msgid ""
@@ -15769,18 +16662,6 @@ msgstr ""
 msgid "All: by &Day"
 msgstr ""
 
-msgid "Perform on selected results:"
-msgstr ""
-
-msgid "Review and &sign"
-msgstr ""
-
-msgid "Export to &file"
-msgstr ""
-
-msgid "Export to &clipboard"
-msgstr ""
-
 #, python-format
 msgid "%s results selected. Too many to list individually."
 msgstr ""
@@ -15954,6 +16835,9 @@ msgstr ""
 msgid "EMR Actions:"
 msgstr ""
 
+msgid "Print EMR"
+msgstr ""
+
 msgid "Create health issue"
 msgstr ""
 
@@ -16102,11 +16986,41 @@ msgstr ""
 msgid "&New notes %s"
 msgstr ""
 
+msgid "Find text in EMR Journal"
+msgstr ""
+
+#, fuzzy
+msgid "Modified"
+msgstr "modified entry"
+
+msgid "Clinical time"
+msgstr ""
+
+msgid "Who / When"
+msgstr ""
+
+#, python-format
 msgid ""
-"An error occurred while retrieving the EMR\n"
-"in journal form for the active patient.\n"
+"Chart entry: %s       [#%s in %s]\n"
+" Modified: %s by %s (%s rev %s)\n"
 "\n"
-"Please check the log file for details."
+"Health issue: %s%s\n"
+"Episode: %s%s\n"
+"Encounter: %s%s"
+msgstr ""
+
+#, python-format
+msgid ""
+"%s\n"
+"\n"
+"                        rev %s (%s) by %s in <%s>"
+msgstr ""
+
+#, python-format
+msgid ""
+"%s\n"
+"%s\n"
+"%s"
 msgstr ""
 
 msgid "Editing tag"
@@ -16233,18 +17147,15 @@ msgid ""
 "%s\n"
 msgstr ""
 
-msgid "This patient DID receive care."
+msgid "This patient DID receive care here."
 msgstr ""
 
-msgid "This person did NOT receive care."
+msgid "This person did NOT receive care here."
 msgstr ""
 
 msgid "Disabling person"
 msgstr ""
 
-msgid "Disabling patient"
-msgstr ""
-
 msgid "Type or select a last name (family name/surname)."
 msgstr ""
 
@@ -16487,6 +17398,9 @@ msgid ""
 "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
 msgstr ""
 
+msgid "Connecting to backend"
+msgstr "Connecting to backend"
+
 #, python-format
 msgid ""
 "Unable to connect to database:\n"
@@ -16695,9 +17609,6 @@ msgstr ""
 msgid "Office"
 msgstr ""
 
-msgid "State"
-msgstr ""
-
 msgid "Zip"
 msgstr ""
 
@@ -16753,7 +17664,7 @@ msgstr ""
 msgid "EMR Timeline"
 msgstr ""
 
-msgid "Show &Timeline"
+msgid "EMR &Timeline"
 msgstr ""
 
 msgid "Overview"
@@ -16780,10 +17691,10 @@ msgstr ""
 msgid "&SimpleNotes"
 msgstr ""
 
-msgid "EMR tree"
+msgid "EMR Tree"
 msgstr ""
 
-msgid "EMR &Tree (topical)"
+msgid "EMR &Tree"
 msgstr ""
 
 msgid "Print Manager"
@@ -16792,6 +17703,12 @@ msgstr ""
 msgid "&Print Manager"
 msgstr ""
 
+msgid "EMR Journal"
+msgstr ""
+
+msgid "EMR &Journal (list)"
+msgstr ""
+
 msgid "Appointments"
 msgstr ""
 
@@ -16804,6 +17721,12 @@ msgstr ""
 msgid "Show &lab journal"
 msgstr ""
 
+msgid "PACS"
+msgstr ""
+
+msgid "&PACS"
+msgstr ""
+
 msgid "Cardiac Devices"
 msgstr ""
 
@@ -16876,10 +17799,7 @@ msgstr ""
 msgid "User &manual (local)"
 msgstr ""
 
-msgid "EMR journal"
-msgstr ""
-
-msgid "EMR &Journal (chronological)"
+msgid "EMR &Journal (text)"
 msgstr ""
 
 msgid "Demographics"
@@ -17040,6 +17960,9 @@ msgstr ""
 msgid "Show &ExamplePlugin"
 msgstr ""
 
+msgid "Find text"
+msgstr ""
+
 msgid "gm_ctl_client: starting slave GNUmed client"
 msgstr ""
 
@@ -17067,8 +17990,122 @@ msgid "Abort and do NOT connect to GNUmed."
 msgstr ""
 
 #, fuzzy
-#~ msgid "file: %s (%s/)"
-#~ msgstr "%s: encounter (%s)"
+#~ msgid ""
+#~ "Health issue: %s%s%s (%s versions)\n"
+#~ "\n"
+#~ msgstr "health issue: %s"
+
+#, fuzzy
+#~ msgid ""
+#~ "Encounter: %s%s%s (%s versions)\n"
+#~ "\n"
+#~ msgstr "Encounters: %s (%s - %s):"
+
+#~ msgid "soap_S"
+#~ msgstr "soap_S"
+
+#~ msgid "soap_O"
+#~ msgstr "soap_O"
+
+#~ msgid "soap_A"
+#~ msgstr "soap_A"
+
+#~ msgid "soap_P"
+#~ msgstr "soap_P"
+
+#, fuzzy
+#~ msgid "soap_U"
+#~ msgstr "soap_S"
+
+#~ msgid "soap_Subjective"
+#~ msgstr "soap_Subjective"
+
+#~ msgid "soap_Objective"
+#~ msgstr "soap_Objective"
+
+#~ msgid "soap_Assessment"
+#~ msgstr "soap_Assessment"
+
+#~ msgid "soap_Plan"
+#~ msgstr "soap_Plan"
+
+#~ msgid "soap_Administrative"
+#~ msgstr "soap_Administrative"
+
+#, fuzzy
+#~ msgid "&Unknown"
+#~ msgstr "unknown allergy state"
+
+#, fuzzy
+#~ msgid "Last confirmed: %s%s"
+#~ msgstr " (last confirmed %s)"
+
+#~ msgid ""
+#~ "Unable to connect to database:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Are you sure you have got a local database installed ?\n"
+#~ "\n"
+#~ "Please retry with proper credentials or cancel.\n"
+#~ "\n"
+#~ "You may also need to check the PostgreSQL client\n"
+#~ "authentication configuration in pg_hba.conf. For\n"
+#~ "details see:\n"
+#~ "\n"
+#~ "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
+#~ msgstr ""
+#~ "Unable to connect to database:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Are you sure you have a local database installed ?\n"
+#~ "\n"
+#~ "Please retry with proper credentials or cancel.\n"
+#~ "\n"
+#~ "You may also need to check the PostgreSQL client\n"
+#~ "authentication configuration in pg_hba.conf. For\n"
+#~ "details see:\n"
+#~ "\n"
+#~ "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
+
+#~ msgid ""
+#~ "Unable to connect to database:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Please retry with proper credentials or cancel.\n"
+#~ "\n"
+#~ "You may also need to check the PostgreSQL client\n"
+#~ "authentication configuration in pg_hba.conf. For\n"
+#~ "details see:\n"
+#~ "\n"
+#~ "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
+#~ msgstr ""
+#~ "Unable to connect to database:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Please retry with proper credentials or cancel.\n"
+#~ "\n"
+#~ "You may also need to check the PostgreSQL client\n"
+#~ "authentication configuration in pg_hba.conf. For\n"
+#~ "details see:\n"
+#~ "\n"
+#~ "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
+
+#~ msgid ""
+#~ "Unable to connect to database:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Please retry another backend / user / password combination !\n"
+#~ msgstr ""
+#~ "Unable to connect to database:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Please retry another backend / user / password combination !\n"
 
 #~ msgid "Active medications: %s"
 #~ msgstr "Active medications: %s"
diff --git a/client/po/en_CA-gnumed.mo b/client/po/en_CA-gnumed.mo
index da7ccf2..46ab247 100644
Binary files a/client/po/en_CA-gnumed.mo and b/client/po/en_CA-gnumed.mo differ
diff --git a/client/po/en_CA.po b/client/po/en_CA.po
index b619b4c..6eafb2c 100644
--- a/client/po/en_CA.po
+++ b/client/po/en_CA.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gnumed\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-12-26 20:28+0100\n"
+"POT-Creation-Date: 2016-03-17 16:27+0100\n"
 "PO-Revision-Date: 2010-02-09 16:17+0000\n"
 "Last-Translator: Brett Alton <brett.jr.alton at gmail.com>\n"
 "Language-Team: English (Canada) <en_CA at li.org>\n"
@@ -1440,10 +1440,22 @@ msgid ""
 msgstr ""
 
 #, python-format
+msgid "Revision #%s"
+msgstr ""
+
+#, python-format
 msgid "[%s:%s]: row not updated (nothing returned), row in use ?"
 msgstr ""
 
 #, python-format
+msgid "<%s(.bat)> not found"
+msgstr ""
+
+#, python-format
+msgid "problem with <%s>"
+msgstr ""
+
+#, python-format
 msgid "[%s] is not a readable file"
 msgstr ""
 
@@ -1478,28 +1490,8 @@ msgstr "1 Byte"
 msgid "%s Bytes"
 msgstr "%s Bytes"
 
-#, python-format
-msgid ""
-"Cannot connect to configuration database with:\n"
-"\n"
-"[%s]"
-msgstr ""
-"Cannot connect to configuration database with:\n"
-"\n"
-"[%s]"
-
-#, python-format
-msgid ""
-"Cannot connect to database with:\n"
-"\n"
-"[%s]"
+msgid "<type>"
 msgstr ""
-"Cannot connect to database with:\n"
-"\n"
-"[%s]"
-
-msgid "No product information available."
-msgstr "No product information available."
 
 #, python-format
 msgid ""
@@ -1838,74 +1830,6 @@ msgstr ""
 msgid "  risk: %s"
 msgstr ""
 
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Are you sure you have got a local database installed ?\n"
-"\n"
-"Please retry with proper credentials or cancel.\n"
-"\n"
-"You may also need to check the PostgreSQL client\n"
-"authentication configuration in pg_hba.conf. For\n"
-"details see:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-msgstr ""
-
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Please retry with proper credentials or cancel.\n"
-"\n"
-"You may also need to check the PostgreSQL client\n"
-"authentication configuration in pg_hba.conf. For\n"
-"details see:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-msgstr ""
-
-msgid "Connecting to backend"
-msgstr ""
-
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Please retry another backend / user / password combination !\n"
-msgstr ""
-
-msgid "programmer forgot to specify error message"
-msgstr ""
-
-msgid ""
-"\n"
-"\n"
-"Please consult the error log for all the gory details !"
-msgstr ""
-
-msgid "generic error message"
-msgstr ""
-
-msgid "programmer forgot to specify info message"
-msgstr ""
-
-msgid "generic info message"
-msgstr ""
-
-msgid "programmer forgot to specify warning"
-msgstr ""
-
-msgid "generic warning message"
-msgstr ""
-
 msgid "no hook specified, please report bug"
 msgstr "no hook specified, please report bug"
 
@@ -2224,6 +2148,32 @@ msgstr ""
 msgid "Include:"
 msgstr ""
 
+msgid "&Search"
+msgstr ""
+
+msgid "Suggest"
+msgstr ""
+
+msgid "Set"
+msgstr ""
+
+msgid "dialog_1"
+msgstr ""
+
+msgid "Search patients in Orthanc DICOM store."
+msgstr ""
+
+#, fuzzy
+msgid "Suggest a patient ID based on the active patient."
+msgstr "There are no encounters for this episode."
+
+msgid "Search term:"
+msgstr ""
+
+#, fuzzy
+msgid "New patient ID:"
+msgstr "internal patient ID"
+
 msgid "Your review"
 msgstr ""
 
@@ -2525,6 +2475,95 @@ msgstr ""
 msgid "Amount"
 msgstr ""
 
+msgid "&Connect"
+msgstr ""
+
+msgid "&Browse"
+msgstr ""
+
+msgid "<not connected>"
+msgstr ""
+
+msgid "Browse all"
+msgstr ""
+
+#, fuzzy
+msgid "Export all"
+msgstr "part"
+
+msgid "Browse"
+msgstr ""
+
+msgid "Export"
+msgstr ""
+
+msgid "Upload"
+msgstr ""
+
+msgid "Enter the PACS host address."
+msgstr ""
+
+msgid "Enter the PACS port."
+msgstr ""
+
+msgid "Enter the PACS user."
+msgstr ""
+
+#, fuzzy
+msgid "Enter the PACS password. It will not be shown."
+msgstr "The password for the new database account. Input will not be shown."
+
+#, fuzzy
+msgid "Connect to PACS."
+msgstr "Connect to GNUmed"
+
+msgid "Browse PACS at top level."
+msgstr ""
+
+msgid "Modify some of Orthanc content (such as patient IDs)."
+msgstr ""
+
+#, fuzzy
+msgid "Browse overview of studies for this patient."
+msgstr "There are no episodes for this health issue."
+
+#, fuzzy
+msgid "Copy all studies into export area."
+msgstr "There are no encounters for this episode."
+
+msgid "Browse topmost selected study."
+msgstr ""
+
+msgid "Copy selected studies into export area."
+msgstr ""
+
+msgid "Save selected studies to disk."
+msgstr ""
+
+msgid ""
+"Upload DICOM files from a directory, recursively, into the Orthanc PACS\n"
+"\n"
+"The currently active patient does not matter. Orthanc will associate "
+"uploaded files with the patient found within the DICOM metadata. It will "
+"create new patients as needed."
+msgstr ""
+
+msgid "Host:"
+msgstr ""
+
+msgid "Port:"
+msgstr ""
+
+msgid "User:"
+msgstr ""
+
+msgid "Password"
+msgstr ""
+
+#, fuzzy
+msgid "Selected studies:"
+msgstr "external patient ID"
+
 msgid "Fake brand"
 msgstr ""
 
@@ -2852,9 +2891,6 @@ msgstr ""
 msgid "&Load"
 msgstr ""
 
-msgid "Export"
-msgstr ""
-
 msgid "A long, descriptive name for this form template."
 msgstr ""
 
@@ -2942,15 +2978,12 @@ msgstr ""
 msgid "Document Properties"
 msgstr ""
 
-msgid "Show part"
+msgid "Show"
 msgstr ""
 
 msgid "Remove part"
 msgstr ""
 
-msgid "Parts"
-msgstr ""
-
 msgid "Discard"
 msgstr ""
 
@@ -2978,6 +3011,9 @@ msgstr ""
 msgid "Required: The primary episode this document is to be listed under."
 msgstr ""
 
+msgid "Optional: The organization (unit) this document originated from."
+msgstr ""
+
 msgid ""
 "Optional: A short comment identifying the document. Good comments give an "
 "idea of the content and source of the document."
@@ -3002,6 +3038,9 @@ msgid ""
 "normal and abnormal resuslts can be relevant."
 msgstr ""
 
+msgid "Optional: A free-text document description."
+msgstr ""
+
 msgid "This field lists the parts belonging to the current document."
 msgstr ""
 
@@ -3013,9 +3052,6 @@ msgid ""
 "deletion from disk."
 msgstr ""
 
-msgid "Optional: A free-text document description."
-msgstr ""
-
 msgid "Save finished document."
 msgstr ""
 
@@ -3032,6 +3068,10 @@ msgstr ""
 msgid "Associate to episode:"
 msgstr ""
 
+#, fuzzy
+msgid "Document source:"
+msgstr "Documents:"
+
 msgid "Comment / Identification:"
 msgstr ""
 
@@ -3216,7 +3256,7 @@ msgstr ""
 msgid "Messages:"
 msgstr ""
 
-msgid "Only:"
+msgid "Limit to:"
 msgstr ""
 
 msgid "&Myself … or:"
@@ -3326,10 +3366,10 @@ msgstr ""
 msgid "Purpose"
 msgstr ""
 
-msgid "Details"
+msgid "Please supply your email address here !"
 msgstr ""
 
-msgid "<Please supply your email address here !>"
+msgid "Details"
 msgstr ""
 
 msgid "Keep running"
@@ -3353,9 +3393,11 @@ msgid ""
 msgstr ""
 
 msgid ""
-"Please enter your email address so we can provide feedback directly to you. "
-"Otherwise, feedback will be given on the GNUmed mailing list (http://lists."
-"gnu.org/mailman/listinfo/gnumed-bugs)."
+"Please enter your email address so we can provide help to you directly.\n"
+"\n"
+"Otherwise, feedback can be given on the GNUmed mailing list (http://lists."
+"gnu.org/mailman/listinfo/gnumed-bugs) ONLY to which you will then have to "
+"subscribe."
 msgstr ""
 
 msgid "Find help on http://wiki.gnumed.de, too."
@@ -3472,9 +3514,6 @@ msgstr ""
 msgid "Account"
 msgstr ""
 
-msgid "Password"
-msgstr ""
-
 msgid "Password, again"
 msgstr "Password, again"
 
@@ -3966,7 +4005,7 @@ msgstr ""
 msgid "Acquire images from image source (scanner, ...)."
 msgstr ""
 
-msgid "Acquire images or text from the clipboard."
+msgid "Acquire file or text from the clipboard."
 msgstr ""
 
 #, fuzzy
@@ -4119,7 +4158,7 @@ msgid ""
 "- the result list will be artificially limited to the first 1000 rows\n"
 "- you can include a column named \"pk_patient\" to make the result rows "
 "activate the corresponding patient on double-clicking\n"
-"- by inserting $<ID_active_patient>$ you can access the patient ID of the "
+"- by inserting $<ID_ACTIVE_PATIENT>$ you can access the patient ID of the "
 "patient active at the time of running the query"
 msgstr ""
 
@@ -4279,9 +4318,6 @@ msgstr ""
 msgid "Link &new"
 msgstr ""
 
-msgid "Browse"
-msgstr ""
-
 msgid ""
 "Search for matches among existing addresses and [Link] a selection, or [Link "
 "(a) new] address."
@@ -4330,26 +4366,17 @@ msgid ""
 "left."
 msgstr ""
 
-msgid "label_1"
-msgstr ""
-
-msgid "→"
-msgstr ""
-
-msgid "←"
-msgstr ""
-
-msgid "Extra"
-msgstr ""
+msgid "Subjective"
+msgstr "Subjective"
 
-msgid "Move selected items from left to right."
-msgstr ""
+msgid "Objective"
+msgstr "Objective"
 
-msgid "Move selected items from right to left."
-msgstr ""
+msgid "Assessment"
+msgstr "Assessment"
 
-msgid "Cancel picking items."
-msgstr ""
+msgid "Plan"
+msgstr "Plan"
 
 msgid "Episode synopsis"
 msgstr ""
@@ -4384,20 +4411,29 @@ msgid ""
 "narrative belongs to."
 msgstr ""
 
-msgid "Subjective"
-msgstr "Subjective"
-
 msgid "Codes:"
 msgstr ""
 
-msgid "Objective"
-msgstr "Objective"
+msgid "label_1"
+msgstr ""
 
-msgid "Assessment"
-msgstr "Assessment"
+msgid "→"
+msgstr ""
 
-msgid "Plan"
-msgstr "Plan"
+msgid "←"
+msgstr ""
+
+msgid "Extra"
+msgstr ""
+
+msgid "Move selected items from left to right."
+msgstr ""
+
+msgid "Move selected items from right to left."
+msgstr ""
+
+msgid "Cancel picking items."
+msgstr ""
 
 msgid "1"
 msgstr ""
@@ -4565,16 +4601,95 @@ msgstr ""
 msgid "Age range"
 msgstr ""
 
-msgid "Closed episodes"
+msgid "&Nicotine"
 msgstr ""
 
-msgid "Non-relevant issues"
+msgid "&Alcohol"
 msgstr ""
 
-msgid "Active problems"
+msgid "&Other:"
 msgstr ""
 
-msgid "Notes only"
+msgid "&Non-harmful use"
+msgstr ""
+
+msgid "&Harmful use"
+msgstr ""
+
+msgid "Presently &addicted"
+msgstr ""
+
+msgid "Previously &addicted"
+msgstr ""
+
+msgid "&Reconfirm as of today"
+msgstr ""
+
+#, fuzzy
+msgid "Select for documenting smoking status."
+msgstr "first name"
+
+msgid "Select for documenting alcohol use status."
+msgstr ""
+
+msgid ""
+"Select for documenting use of substances other than nicotine or alcohol."
+msgstr ""
+
+#, fuzzy
+msgid "Select the abused substance."
+msgstr "health issue: %s"
+
+msgid ""
+"Select if the substance use is not considered harmful (say, no use or non-"
+"harmful use)."
+msgstr ""
+
+msgid "Select if substance is use considered harmful."
+msgstr ""
+
+msgid "Select if the patient is presently addicted to this substance."
+msgstr ""
+
+msgid "Select if the patient was previously addicted to this substance."
+msgstr ""
+
+msgid ""
+"A comment on this substance use:\n"
+"- type of product used\n"
+"- frequency\n"
+"- amount\n"
+"- when started\n"
+"- attempts to quit\n"
+"..."
+msgstr ""
+
+msgid ""
+"When did the patient quit?\n"
+"\n"
+"You can also set a target quit date here."
+msgstr ""
+
+msgid "Check here to confirm for today."
+msgstr ""
+
+msgid "Quit date"
+msgstr ""
+
+#, fuzzy
+msgid "Last confirmed"
+msgstr "Last worked on: %s\n"
+
+msgid "Closed episodes"
+msgstr ""
+
+msgid "Non-relevant issues"
+msgstr ""
+
+msgid "Active problems"
+msgstr ""
+
+msgid "Notes only"
 msgstr ""
 
 msgid "Everything"
@@ -4904,20 +5019,18 @@ msgstr ""
 msgid "Show:"
 msgstr ""
 
-msgid "Brand by component"
+msgid "Kidneys"
 msgstr ""
 
 msgid "Brands"
 msgstr ""
 
-msgid "Kidneys"
-msgstr ""
-
-msgid "Unbranded substance"
+msgid "Substances"
 msgstr ""
 
-msgid "Manage"
-msgstr ""
+#, fuzzy
+msgid "&Unknown or date:"
+msgstr "unknown reaction"
 
 msgid "Approved of"
 msgstr ""
@@ -4932,23 +5045,20 @@ msgid "... Reason"
 msgstr ""
 
 msgid ""
-"A component of a drug brand the patient is taking.\n"
+"A drug the patient is taking.\n"
 "\n"
-"Lookup, and select, a single- (or multi-) component drug brand, by active "
-"ingredient name. All components of multi-component drugs will be displayed "
-"and automatically added to the patient's list."
-msgstr ""
-
-msgid ""
-"Manage drug brands.\n"
+"Lookup and select an intake by either of\n"
+"- a generic substance name\n"
+"- a drug brand name\n"
+"- an active ingredient of a drug\n"
 "\n"
-"Note that this will not select a component for you. What it does is to let "
-"you manage (add/edit/delete) the drug products/brands known to GNUmed from "
-"which you can select a component."
+"Note that all components of multi-component drugs will be displayed and "
+"automatically added to the patient's list."
 msgstr ""
 
-msgid "The active ingredients of this brand."
-msgstr ""
+#, fuzzy
+msgid "Details on the selected drug."
+msgstr " %s documents\n"
 
 msgid "Show cardiac information relevant to substance selection."
 msgstr ""
@@ -4957,8 +5067,11 @@ msgid "Show renal insufficiency information related to substance selection."
 msgstr ""
 
 msgid ""
-"The non-branded medication or non-medication substance, with optional "
-"strength."
+"Manage drug brands.\n"
+"\n"
+"Note that this will not select a component for you. What it does is to let "
+"you manage (add/edit/delete) the drug products/brands known to GNUmed from "
+"which you can select a component."
 msgstr ""
 
 msgid ""
@@ -4971,11 +5084,19 @@ msgstr ""
 msgid "The preparation or form of the substance."
 msgstr ""
 
+msgid "Check here if the start date simply isn't known."
+msgstr ""
+
 msgid ""
 "When was this substance started to be consumed or - if not known - the "
 "earliest it is known to have been be consumed."
 msgstr ""
 
+msgid ""
+"A coment on the certainty of the start date, such as \"+/- 3 weeks\", "
+"\"spring of 2002\", \"shortly after Easter 1996\", ...."
+msgstr ""
+
 msgid "Whether this substance is taken by advice."
 msgstr ""
 
@@ -5009,6 +5130,15 @@ msgstr ""
 msgid "Reason for discontinuation."
 msgstr ""
 
+msgid "Drug"
+msgstr ""
+
+msgid "Research:"
+msgstr ""
+
+msgid "Certainty:"
+msgstr ""
+
 msgid "Schedule"
 msgstr ""
 
@@ -5161,6 +5291,33 @@ msgstr ""
 msgid "Channel"
 msgstr ""
 
+#, fuzzy
+msgid "&Last modification time"
+msgstr "Last worked on: %s\n"
+
+msgid "&Entry time"
+msgstr ""
+
+msgid "Show journal ordered by encounter."
+msgstr ""
+
+msgid "Show journal ordered by time of last modification."
+msgstr ""
+
+msgid "Show journal ordered by actual clinical time of each entry."
+msgstr ""
+
+#, fuzzy
+msgid "Edit the selected chart entry."
+msgstr "inactive"
+
+#, fuzzy
+msgid "Delete selected chart entry."
+msgstr "Encounter"
+
+msgid "Order by:"
+msgstr ""
+
 msgid "Chec&k"
 msgstr ""
 
@@ -5715,13 +5872,17 @@ msgstr "Measurements and Results:"
 msgid "Documents:"
 msgstr "Documents:"
 
-msgid "&N"
+msgid "&L"
 msgstr ""
 
-msgid "&L"
+msgid "&N"
 msgstr ""
 
 #, fuzzy
+msgid "List all encounters."
+msgstr "%s: encounter (%s)"
+
+#, fuzzy
 msgid "The encounter."
 msgstr "Encounter"
 
@@ -5729,10 +5890,6 @@ msgstr "Encounter"
 msgid "Start a new encounter for the active patient."
 msgstr "There are no encounters for this episode."
 
-#, fuzzy
-msgid "List all encounters."
-msgstr "%s: encounter (%s)"
-
 msgid "Clinically relevant"
 msgstr ""
 
@@ -5984,10 +6141,12 @@ msgstr ""
 msgid "Manage dynamic hints."
 msgstr " %s documents\n"
 
+#, fuzzy
 msgid ""
 "Rationale for\n"
-"suppression"
-msgstr ""
+"suppression\n"
+"for this patient"
+msgstr "external patient ID"
 
 msgid "Save &under"
 msgstr ""
@@ -6042,6 +6201,12 @@ msgstr ""
 msgid "Encounter:"
 msgstr ""
 
+msgid "Manage"
+msgstr ""
+
+msgid "&Panel:"
+msgstr ""
+
 msgid "&Pick"
 msgstr ""
 
@@ -6084,6 +6249,9 @@ msgid ""
 "To disable that popup leave the message empty."
 msgstr ""
 
+msgid "Show search dialog."
+msgstr ""
+
 msgid "THIS IS NOT A VERIFIED MEASUREMENT. DO NOT USE FOR ACTUAL CARE."
 msgstr ""
 
@@ -6367,6 +6535,53 @@ msgstr ""
 msgid "ERROR: unknown allergy state [%s]"
 msgstr ""
 
+msgid "definite"
+msgstr ""
+
+#, fuzzy
+msgid "indefinite"
+msgstr "&Definite"
+
+#, fuzzy
+msgid "Reaction:"
+msgstr "Vaccination"
+
+#, fuzzy
+msgid "Noted:"
+msgstr "Date Noted"
+
+#, fuzzy
+msgid "Allergene:"
+msgstr "Allergy"
+
+#, fuzzy
+msgid "Substance:"
+msgstr "Exported: %s\n"
+
+#, fuzzy
+msgid "Code:"
+msgstr "Exported: %s\n"
+
+msgid "ATC:"
+msgstr ""
+
+msgid "Specific to:"
+msgstr ""
+
+#, fuzzy
+msgid "this substance only"
+msgstr "first name"
+
+msgid "drug class"
+msgstr ""
+
+msgid "unknown"
+msgstr ""
+
+#, fuzzy
+msgid "Generics:"
+msgstr "&Sensitivity"
+
 msgid "Medication history"
 msgstr ""
 
@@ -6378,9 +6593,15 @@ msgstr "health issue: %s"
 msgid "prescription data"
 msgstr "health issue: %s"
 
+msgid "Consumable substance"
+msgstr ""
+
 msgid "in use"
 msgstr ""
 
+msgid "w/"
+msgstr ""
+
 msgid "long-term"
 msgstr ""
 
@@ -6400,6 +6621,35 @@ msgid "?ongoing"
 msgstr ""
 
 #, python-format
+msgid ""
+"Substance abuse entry                                              [#%s]\n"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "Substance: %s [#%s]%s\n"
+msgstr "Exported: %s\n"
+
+#, fuzzy, python-format
+msgid "Use type: %s\n"
+msgstr "Patient: %s (%s), No: %s\n"
+
+#, fuzzy, python-format
+msgid "Last checked: %s\n"
+msgstr "Last worked on: %s\n"
+
+#, python-format
+msgid " Discontinued %s\n"
+msgstr ""
+
+#, fuzzy, python-format
+msgid " Notes: %s\n"
+msgstr "Patient: %s (%s), No: %s\n"
+
+#, python-format
+msgid "Revision: #%(row_ver)s, %(mod_when)s by %(mod_by)s."
+msgstr ""
+
+#, python-format
 msgid "Substance intake entry (%s, %s)   [#%s]                     \n"
 msgstr ""
 
@@ -6415,9 +6665,6 @@ msgstr ""
 msgid "unapproved"
 msgstr ""
 
-msgid "definite"
-msgstr ""
-
 msgid "suspected"
 msgstr ""
 
@@ -6464,10 +6711,6 @@ msgid " (short-term)"
 msgstr ""
 
 #, python-format
-msgid " Discontinued %s\n"
-msgstr ""
-
-#, python-format
 msgid " Reason: %s\n"
 msgstr ""
 
@@ -6487,18 +6730,62 @@ msgstr "health issue: %s"
 msgid " Advice: %s\n"
 msgstr ""
 
-#, python-format
-msgid "Revision: #%(row_ver)s, %(mod_when)s by %(mod_by)s."
+#, fuzzy
+msgid "medication, not abuse"
+msgstr "Measurements and Results:"
+
+msgid "no or non-harmful use"
+msgstr ""
+
+msgid "presently harmful use"
+msgstr ""
+
+msgid "presently addicted"
+msgstr ""
+
+msgid "previously addicted"
 msgstr ""
 
 #, fuzzy, python-format
-msgid "%s: %s ago"
+msgid "%s%s: %s ago%s"
 msgstr "Documents: %s"
 
 #, fuzzy, python-format
-msgid "%s: %s ago (%s)"
+msgid "%s%s: %s ago (%s)"
+msgstr "%s this week (%s of %s)"
+
+#, fuzzy, python-format
+msgid "%s%s%s (%s ago)"
+msgstr "%s this week (%s of %s)"
+
+#, fuzzy, python-format
+msgid "%s%s%s (%s ago, %s)"
 msgstr "%s this week (%s of %s)"
 
+#, python-format
+msgid "%s ago"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "in %s"
+msgstr "Exported: %s\n"
+
+#, fuzzy, python-format
+msgid ", until %s (%s)"
+msgstr "Patient: %s (%s), No: %s\n"
+
+#, python-format
+msgid " (planned for %s%s)"
+msgstr ""
+
+#, python-format
+msgid ", planned for %s%s"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "%s ago (for %s: %s %s %s)"
+msgstr "  your time: %s - %s  (@%s = %s%s)\n"
+
 msgid "Additional notes"
 msgstr ""
 
@@ -6511,26 +6798,48 @@ msgstr ""
 msgid "ordered by brand"
 msgstr ""
 
-msgid "Drug"
+msgid "Regimen / Advice"
 msgstr ""
 
-msgid "Regimen / Advice"
+#, fuzzy, python-format
+msgid "Component of %s (%s)"
+msgstr "Patient: %s (%s), No: %s\n"
+
+#, python-format
+msgid "ATC (substance): %s"
 msgstr ""
 
-msgid "units"
+#, python-format
+msgid "ATC (brand): %s"
 msgstr ""
 
-msgid "virtual message"
+msgid "this is a component of a fake brand"
 msgstr ""
 
-msgid "message"
+#, fuzzy
+msgid "Components:"
+msgstr "inactive"
+
+msgid "this is a fake brand"
 msgstr ""
 
-msgid "everyone"
+msgid "this is a vaccine"
 msgstr ""
 
-#, python-format
-msgid "Patient #%s"
+msgid "units"
+msgstr ""
+
+msgid "virtual message"
+msgstr ""
+
+msgid "message"
+msgstr ""
+
+msgid "everyone"
+msgstr ""
+
+#, python-format
+msgid "Patient #%s"
 msgstr ""
 
 #, fuzzy, python-format
@@ -6550,52 +6859,15 @@ msgid "Expires: %s\n"
 msgstr "Exported: %s\n"
 
 #, fuzzy
-msgid "Active clinical hint"
-msgstr "not clinically relevant"
-
-#, fuzzy
-msgid "Inactive clinical hint"
-msgstr "not clinically relevant"
-
-#, python-format
-msgid "Source: %s\n"
-msgstr ""
-
-#, fuzzy, python-format
-msgid "Language: %s\n"
-msgstr "Patient: %s (%s), No: %s\n"
-
-#, fuzzy
-msgid "Suppressed active dynamic hint"
-msgstr " %s documents\n"
-
-#, fuzzy
-msgid "Suppressed inactive dynamic hint"
-msgstr " %s documents\n"
-
-#, fuzzy, python-format
-msgid "Suppressed by: %s\n"
-msgstr "Exported: %s\n"
-
-#, fuzzy, python-format
-msgid "Suppressed at: %s\n"
+msgid "HL7 Source"
 msgstr "Exported: %s\n"
 
-#, fuzzy, python-format
-msgid "Hint #: %s\n"
-msgstr "Patient: %s (%s), No: %s\n"
-
-#, fuzzy, python-format
-msgid "Patient #: %s\n"
-msgstr "Patient: %s (%s), No: %s\n"
+msgid "HL7 data size"
+msgstr ""
 
 #, fuzzy, python-format
-msgid "MD5 (currently): %s\n"
-msgstr "Documents: %s"
-
-#, python-format
-msgid "MD5 (at suppression): %s\n"
-msgstr ""
+msgid "%s bytes"
+msgstr "%s Bytes"
 
 msgid "HL7 Message"
 msgstr ""
@@ -6650,13 +6922,6 @@ msgstr ""
 msgid "doc: %s"
 msgstr "   Doc: %s"
 
-msgid "no patient photograph available"
-msgstr ""
-
-#, python-format
-msgid "patient photograph from %s"
-msgstr ""
-
 msgid "Patient data for"
 msgstr ""
 
@@ -6666,6 +6931,9 @@ msgstr ""
 msgid "Patient data export"
 msgstr ""
 
+msgid "no patient photograph available"
+msgstr ""
+
 msgid "Documents"
 msgstr ""
 
@@ -6676,6 +6944,10 @@ msgstr ""
 msgid "browse documents area"
 msgstr " %s documents\n"
 
+#, python-format
+msgid "patient photograph from %s"
+msgstr ""
+
 #, fuzzy
 msgid "Browse patient data"
 msgstr " %s documents\n"
@@ -6711,24 +6983,24 @@ msgstr ""
 #, python-format
 msgid ""
 "%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s %(suburb)s, "
-"%(code_state)s, %(code_country)s"
+"%(code_region)s, %(code_country)s"
 msgstr ""
 
 #, python-format
 msgid ""
 "%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s %(suburb)s, "
-"%(code_state)s, %(code_country)s"
+"%(code_region)s, %(code_country)s"
 msgstr ""
 
 #, python-format
 msgid ""
-"%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_state)s, "
-"%(code_country)s"
+"%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, "
+"%(code_region)s, %(code_country)s"
 msgstr ""
 
 #, python-format
 msgid ""
-"%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_state)s, "
+"%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_region)s, "
 "%(code_country)s"
 msgstr ""
 
@@ -6738,7 +7010,7 @@ msgid ""
 " Street: %(street)s%(notes_street)s\n"
 " Number/Unit: %(number)s%(subunit)s%(notes_subunit)s\n"
 " Location: %(zip)s %(urb)s%(suburb)s\n"
-" Region: %(l10n_state)s, %(code_state)s\n"
+" Region: %(l10n_region)s, %(code_region)s\n"
 " Country: %(l10n_country)s, %(code_country)s"
 msgstr ""
 
@@ -6748,7 +7020,7 @@ msgid ""
 " Street: %(street)s%(notes_street)s\n"
 " Number/Unit: %(number)s%(subunit)s%(notes_subunit)s\n"
 " Location: %(zip)s %(urb)s%(suburb)s\n"
-" Region: %(l10n_state)s, %(code_state)s\n"
+" Region: %(l10n_region)s, %(code_region)s\n"
 " Country: %(l10n_country)s, %(code_country)s"
 msgstr ""
 
@@ -6817,6 +7089,91 @@ msgstr "corrected result"
 msgid "missing, reported later"
 msgstr "missing, reported later"
 
+msgid "Health issue"
+msgstr ""
+
+#, fuzzy
+msgid "External care"
+msgstr "external patient ID"
+
+msgid "Vaccination"
+msgstr "Vaccination"
+
+#, fuzzy
+msgid "Clinical narrative"
+msgstr "clinically relevant"
+
+#, fuzzy
+msgid "Test result"
+msgstr "corrected result"
+
+msgid "Substance intake"
+msgstr ""
+
+msgid "Hospital stay"
+msgstr ""
+
+msgid "Performed procedure"
+msgstr ""
+
+#, fuzzy
+msgid "Family history"
+msgstr " %s documents\n"
+
+#, fuzzy
+msgid "Document"
+msgstr "Documents:"
+
+#, python-format
+msgid "unmapped entry type from table [%s]"
+msgstr ""
+
+#, python-format
+msgid "cannot instantiate clinical root item <%s(%s)>"
+msgstr ""
+
+msgid "True"
+msgstr ""
+
+msgid "False"
+msgstr ""
+
+#, fuzzy
+msgid "unknown smoking status"
+msgstr "first name"
+
+msgid "non-smoker"
+msgstr ""
+
+msgid "current smoker"
+msgstr ""
+
+msgid "ex-smoker"
+msgstr ""
+
+msgid "tobacco addiction"
+msgstr ""
+
+msgid "no or non-harmful alcohol use"
+msgstr ""
+
+msgid "harmful alcohol use"
+msgstr ""
+
+#, fuzzy
+msgid "unknown alcohol use"
+msgstr "unknown reaction"
+
+msgid "no or non-harmful drug use"
+msgstr ""
+
+msgid "harmful drug use"
+msgstr ""
+
+#, fuzzy
+msgid "unknown drug use"
+msgstr "unknown gender"
+
 msgid "original entry"
 msgstr "original entry"
 
@@ -6909,14 +7266,6 @@ msgstr ""
 msgid "Vaccinations"
 msgstr ""
 
-#, python-format
-msgid "%s ago"
-msgstr ""
-
-#, fuzzy
-msgid "External care"
-msgstr "external patient ID"
-
 #, fuzzy
 msgid "Allergies/Intolerances"
 msgstr "allergies/intolerances"
@@ -7003,6 +7352,87 @@ msgid ""
 "The account was deactivated instead."
 msgstr ""
 
+msgid "SOAP_char_S=S"
+msgstr ""
+
+msgid "SOAP_char_O=O"
+msgstr ""
+
+msgid "SOAP_char_A=A"
+msgstr ""
+
+msgid "SOAP_char_P=P"
+msgstr ""
+
+msgid "SOAP_char_U=U"
+msgstr ""
+
+msgid "SOAP_string_Subjective=Subjective"
+msgstr ""
+
+msgid "SOAP_string_Objective=Objective"
+msgstr ""
+
+msgid "SOAP_string_Assessment=Assessment"
+msgstr ""
+
+msgid "SOAP_string_Plan=Plan"
+msgstr ""
+
+msgid "SOAP_string_Unspecified=Unspecified"
+msgstr ""
+
+msgid "SOAP_string_Administrative=Administrative"
+msgstr ""
+
+#, fuzzy
+msgid "Active clinical hint"
+msgstr "not clinically relevant"
+
+#, fuzzy
+msgid "Inactive clinical hint"
+msgstr "not clinically relevant"
+
+#, python-format
+msgid "Source: %s\n"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "Language: %s\n"
+msgstr "Patient: %s (%s), No: %s\n"
+
+#, fuzzy
+msgid "Suppressed active dynamic hint"
+msgstr " %s documents\n"
+
+#, fuzzy
+msgid "Suppressed inactive dynamic hint"
+msgstr " %s documents\n"
+
+#, fuzzy, python-format
+msgid "Suppressed by: %s\n"
+msgstr "Exported: %s\n"
+
+#, fuzzy, python-format
+msgid "Suppressed at: %s\n"
+msgstr "Exported: %s\n"
+
+#, fuzzy, python-format
+msgid "Hint #: %s\n"
+msgstr "Patient: %s (%s), No: %s\n"
+
+#, fuzzy, python-format
+msgid "Patient #: %s\n"
+msgstr "Patient: %s (%s), No: %s\n"
+
+#, fuzzy, python-format
+msgid "MD5 (currently): %s\n"
+msgstr "Documents: %s"
+
+#, python-format
+msgid "MD5 (at suppression): %s\n"
+msgstr ""
+
 #, python-format
 msgid "Device(%s):"
 msgstr ""
@@ -7029,6 +7459,12 @@ msgstr ""
 msgid "Praxis branch                   #%s\n"
 msgstr ""
 
+#, python-format
+msgid ""
+"FN:%(l10n_unit_category)s %(branch)s of %(l10n_organization_category)s "
+"%(praxis)s"
+msgstr ""
+
 msgid "Privacy notice"
 msgstr ""
 
@@ -7042,41 +7478,6 @@ msgstr ""
 msgid "%s: Staff member %s has been notified of your chart access."
 msgstr ""
 
-msgid "soap_S"
-msgstr "soap_S"
-
-msgid "soap_O"
-msgstr "soap_O"
-
-msgid "soap_A"
-msgstr "soap_A"
-
-msgid "soap_P"
-msgstr "soap_P"
-
-#, fuzzy
-msgid "soap_U"
-msgstr "soap_S"
-
-msgid "soap_Subjective"
-msgstr "soap_Subjective"
-
-msgid "soap_Objective"
-msgstr "soap_Objective"
-
-msgid "soap_Assessment"
-msgstr "soap_Assessment"
-
-msgid "soap_Plan"
-msgstr "soap_Plan"
-
-#, fuzzy
-msgid "soap_Unspecified"
-msgstr "soap_Objective"
-
-msgid "soap_Administrative"
-msgstr "soap_Administrative"
-
 #, python-format
 msgid ""
 "%s: %s by %.8s (v%s)\n"
@@ -7141,9 +7542,17 @@ msgid "%(last)s,%(title)s %(first)s%(nick)s (%(sex)s)"
 msgstr ""
 
 #, python-format
+msgid "%(last)s,%(title)s %(first)s (%(sex)s)"
+msgstr ""
+
+#, python-format
 msgid "%(last)s,%(title)s %(first)s%(nick)s"
 msgstr ""
 
+#, python-format
+msgid "%(last)s,%(title)s %(first)s"
+msgstr ""
+
 msgid "Cannot merge active patient into another patient."
 msgstr ""
 
@@ -7153,9 +7562,6 @@ msgstr ""
 msgid "merged"
 msgstr ""
 
-msgid "preferred name/call name/..."
-msgstr ""
-
 msgid "invalid age: DOB in the future"
 msgstr ""
 
@@ -7168,9 +7574,6 @@ msgstr "Mr"
 msgid "Mrs"
 msgstr "Mrs"
 
-msgid "unknown"
-msgstr ""
-
 msgid "empty status"
 msgstr ""
 
@@ -7506,7 +7909,7 @@ msgid " Part %s: %s %s(%s Bytes)\n"
 msgstr "%s this week (%s of %s)"
 
 #, fuzzy, python-format
-msgid " Filename: %s\n"
+msgid " Filename: %s%s\n"
 msgstr "Patient: %s (%s), No: %s\n"
 
 #, fuzzy
@@ -7521,19 +7924,26 @@ msgstr "part"
 msgid "%s parts"
 msgstr "part"
 
+#, fuzzy, python-format
+msgid "%s of %s"
+msgstr " %s documents\n"
+
 #, python-format
 msgid ""
 "%s (%s)   #%s\n"
-"\n"
 " Created: %s\n"
 " Episode: %s\n"
-"%s%s%s"
+"%s%s%s%s"
 msgstr ""
 
 #, python-format
 msgid " External reference: %s\n"
 msgstr ""
 
+#, fuzzy, python-format
+msgid " Organization: %%s @ %s\n"
+msgstr "Vaccination"
+
 msgid "Cannot run [arriba] !"
 msgstr ""
 
@@ -7883,25 +8293,9 @@ msgid "External care:"
 msgstr "external patient ID"
 
 #, fuzzy, python-format
-msgid ""
-"health issue: %s%s%s\n"
-"\n"
+msgid "Health issue: %s%s%s"
 msgstr "health issue: %s"
 
-msgid ""
-"\n"
-"current values:\n"
-msgstr ""
-
-msgid "no previous versions of this record"
-msgstr ""
-
-msgid ""
-"\n"
-"all values with <audit_action>, <audit_when>, <audit_by> fields (current "
-"value first):\n"
-msgstr ""
-
 msgid "Unattributed episodes"
 msgstr "Unattributed episodes"
 
@@ -7923,9 +8317,6 @@ msgstr ""
 msgid "finished"
 msgstr "finished"
 
-msgid "Health issue"
-msgstr ""
-
 msgid "none associated"
 msgstr ""
 
@@ -7962,9 +8353,7 @@ msgid "Measurements and Results:"
 msgstr "Measurements and Results:"
 
 #, fuzzy, python-format
-msgid ""
-"episode: %s%s%s\n"
-"\n"
+msgid "Episode: %s%s%s"
 msgstr "episode     : %s"
 
 #, python-format
@@ -7993,9 +8382,7 @@ msgid "%s other episodes touched upon during this encounter:"
 msgstr ""
 
 #, fuzzy, python-format
-msgid ""
-"encounter: %s%s%s\n"
-"\n"
+msgid "Encounter: %s%s%s"
 msgstr "Encounters: %s (%s - %s):"
 
 msgid " (ongoing)"
@@ -8018,9 +8405,6 @@ msgstr ""
 msgid "Procedures"
 msgstr ""
 
-msgid "Substances"
-msgstr ""
-
 msgid "Life events"
 msgstr ""
 
@@ -8043,9 +8427,6 @@ msgstr ""
 msgid "Cannot display timeline."
 msgstr ""
 
-msgid "Vaccination"
-msgstr "Vaccination"
-
 msgid "Lab result"
 msgstr "Lab result"
 
@@ -8126,9 +8507,6 @@ msgstr ""
 msgid "Exported: %s\n"
 msgstr "Exported: %s\n"
 
-msgid "emr-journal"
-msgstr "emr-journal"
-
 msgid "Chronological EMR Journal\n"
 msgstr "Chronological EMR Journal\n"
 
@@ -8402,25 +8780,144 @@ msgstr ""
 msgid "Select one or more codes that apply."
 msgstr ""
 
-msgid "Cannot move progress notes. No active patient."
+msgid "Select the narrative you are interested in ..."
 msgstr ""
 
-msgid "Moving progress notes between encounters ..."
+msgid "when"
+msgstr ""
+
+msgid "who"
+msgstr ""
+
+msgid "entry"
+msgstr ""
+
+msgid "There is no narrative for this episode in this encounter."
+msgstr ""
+
+msgid "Must select episode to move narrative to first."
+msgstr ""
+
+msgid "Last"
+msgstr ""
+
+msgid "In health issue"
+msgstr ""
+
+msgid "Most recent notes on selected problem"
 msgstr ""
 
+#, python-format
+msgid "%s (active+potential) problems"
+msgstr ""
+
+#, python-format
+msgid "%s active problems"
+msgstr ""
+
+msgid "Current encounter:"
+msgstr ""
+
+msgid "Cumulative summary"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "Most recent info on %s%s%s"
+msgstr " Most recent: %s - %s"
+
+#, python-format
 msgid ""
+"Cannot open progress note editor for\n"
 "\n"
-" Select the progress notes to move from the list !\n"
+"[%s].\n"
 "\n"
 msgstr ""
 
-msgid "when"
+msgid "opening progress note editor"
 msgstr ""
 
-msgid "who"
+msgid "Cannot save all editors. Some were kept open."
 msgstr ""
 
-msgid "entry"
+msgid "new problem"
+msgstr ""
+
+msgid ""
+"Are you sure you really want to\n"
+"discard this progress note ?\n"
+msgstr ""
+
+msgid "Discarding progress note"
+msgstr ""
+
+msgid "There are unsaved progress notes !\n"
+msgstr ""
+
+msgid "Unsaved progress notes"
+msgstr ""
+
+msgid "Problem list"
+msgstr ""
+
+msgid "Saving SOAP note"
+msgstr ""
+
+msgid "Do you want to save the SOAP note ?"
+msgstr ""
+
+#, python-format
+msgid "&Filter by problem %s%s%s"
+msgstr ""
+
+msgid "Cannot save SimpleNotes SOAP note."
+msgstr ""
+
+#, python-format
+msgid "Progress note: %s%s"
+msgstr ""
+
+msgid "Please enter a name for the new problem:"
+msgstr ""
+
+msgid "Adding a problem"
+msgstr ""
+
+msgid "Cannot delete problem. There is still clinical data recorded for it."
+msgstr ""
+
+#, python-format
+msgid "GNUmed: configuring [%s] (%s plugins)"
+msgstr ""
+
+msgid "loading list of plugins                               "
+msgstr ""
+
+msgid "failed"
+msgstr ""
+
+msgid "success"
+msgstr ""
+
+#, python-format
+msgid ""
+"previous: %s (%s)\n"
+"current (%s/%s): %s"
+msgstr ""
+
+#, python-format
+msgid "Cannot switch to [%s]: no patient selected"
+msgstr ""
+
+msgid "Cannot move progress notes. No active patient."
+msgstr ""
+
+msgid "Moving progress notes between encounters ..."
+msgstr ""
+
+msgid ""
+"\n"
+" Select the progress notes to move from the list !\n"
+"\n"
 msgstr ""
 
 msgid "Cannot edit progress notes. No active patient."
@@ -8624,815 +9121,641 @@ msgid ""
 " Now, mark the entries you want to include in your report.\n"
 msgstr ""
 
-msgid "Select the narrative you are interested in ..."
+msgid "Pick a date ..."
 msgstr ""
 
-msgid "There is no narrative for this episode in this encounter."
+msgid "<ALT-C/K>: pick from (c/k)alendar"
 msgstr ""
 
-msgid "Must select episode to move narrative to first."
+msgid "Cannot interpret input as timestamp."
 msgstr ""
 
-msgid "Last"
+msgid "No vaccines were chosen"
 msgstr ""
 
-msgid "In health issue"
+#, python-format
+msgid "Combination of indications , %s , not found in any vaccine"
 msgstr ""
 
-msgid "Most recent notes on selected problem"
+msgid "Sequence"
 msgstr ""
 
-#, python-format
-msgid "%s (active+potential) problems"
+msgid "Batch"
 msgstr ""
 
-#, python-format
-msgid "%s active problems"
+msgid "Vaccinator"
 msgstr ""
 
-msgid "Current encounter:"
+msgid ""
+"Vaccinations by Recommender (X = patient on regime, O = patient not on "
+"regime) "
 msgstr ""
 
-msgid "Cumulative summary"
+msgid "enrolled regime vaccinations not yet given"
 msgstr ""
 
-#, fuzzy, python-format
-msgid "Most recent info on %s%s%s"
-msgstr " Most recent: %s - %s"
+msgid "Proceed with "
+msgstr ""
 
 #, python-format
-msgid ""
-"Cannot open progress note editor for\n"
-"\n"
-"[%s].\n"
-"\n"
+msgid "Failed to enrol patient in %s"
 msgstr ""
 
-msgid "opening progress note editor"
+#, python-format
+msgid "Failed to  delist patient from %s"
 msgstr ""
 
-msgid "Cannot save all editors. Some were kept open."
+msgid "Missing GNUmed module"
 msgstr ""
 
-msgid "new problem"
+#, python-format
+msgid ""
+"GNUmed detected that parts of it are not\n"
+"properly installed. The following message\n"
+"names the missing part:\n"
+"\n"
+" \"%s\"\n"
+"\n"
+"Please make sure to get the missing\n"
+"parts installed. Otherwise some of the\n"
+"functionality will not be accessible."
 msgstr ""
 
+#, fuzzy, python-format
 msgid ""
-"Are you sure you really want to\n"
-"discard this progress note ?\n"
-msgstr ""
+"\n"
+" Source: %s"
+msgstr "Exported: %s\n"
 
-msgid "Discarding progress note"
-msgstr ""
+#, fuzzy, python-format
+msgid ""
+"\n"
+" Code: %s"
+msgstr "Exported: %s\n"
 
-msgid "There are unsaved progress notes !\n"
+#, python-format
+msgid ""
+"\n"
+" Details (first 250 characters):\n"
+"%s\n"
+"%s\n"
+"%s"
 msgstr ""
 
-msgid "Unsaved progress notes"
+msgid "Access violation"
 msgstr ""
 
 #, python-format
-msgid "Synopsis (%s)"
+msgid ""
+"You do not have access to this part of GNUmed.\n"
+"\n"
+"%s"
 msgstr ""
 
-msgid ""
-"Enter a short working name for this new problem\n"
-"(which will become a new, unassociated episode):\n"
+msgid "Lost connection"
 msgstr ""
 
-#, python-format
 msgid ""
-"Enter a short working name for this new\n"
-"episode under the existing health issue\n"
+"Since you were last working in GNUmed,\n"
+"your database connection timed out.\n"
 "\n"
-"\"%s\":\n"
+"This GNUmed session is now expired.\n"
+"\n"
+"You will have to close this client and\n"
+"restart a new GNUmed session."
 msgstr ""
 
-msgid "Creating problem (episode) to save notelet under ..."
+msgid ""
+"Please enter a short note on what you\n"
+"were about to do in GNUmed:"
 msgstr ""
 
-msgid "Cannot save a new problem without a name."
+msgid "Sending bug report"
 msgstr ""
 
-msgid "saving progress note"
+msgid ""
+"Edit the list of email addresses to send the\n"
+"bug report to (separate addresses by spaces).\n"
+"\n"
+"Note that <gnumed-bugs at gnu.org> refers to\n"
+"the public (!) GNUmed bugs mailing list."
 msgstr ""
 
 #, python-format
 msgid ""
-"The new episode:\n"
+"Your bug report will be sent to:\n"
 "\n"
-" \"%s\"\n"
+"%s\n"
 "\n"
-"will remain unassociated despite the editor\n"
-"having been invoked from the health issue:\n"
+"Make sure you have reviewed the log file for potentially\n"
+"sensitive information before sending out the bug report.\n"
 "\n"
-" \"%s\""
+"Note that emailing the report may take a while depending\n"
+"on the speed of your internet connection.\n"
 msgstr ""
 
-msgid "You need to actually set an editor."
+msgid "Yes, send the bug report."
 msgstr ""
 
-#, python-format
-msgid "The command [%s] is not found."
+msgid "No, do not send the bug report."
+msgstr ""
+
+msgid "include log file in bug report"
 msgstr ""
 
-#, python-format
 msgid ""
-"Enter the shell command with which to start\n"
-"the image editor for visual progress notes.\n"
+"The database you are connected to is marked as\n"
+"\"in-production with controlled access\".\n"
 "\n"
-"Any \"%(img)s\" included with the arguments\n"
-"will be replaced by the file name of the\n"
-"note template."
+"You indicated that you want to include the log\n"
+"file in your bug report. While this is often\n"
+"useful for debugging the log file might contain\n"
+"bits of patient data which must not be sent out\n"
+"without de-identification.\n"
+"\n"
+"Please confirm that you want to include the log !"
 msgstr ""
 
-msgid "Choose file to use as template for new visual progress note"
+msgid "<not supplied>"
 msgstr ""
 
-msgid "Visual progress note source"
+msgid "Bug report has been emailed."
 msgstr ""
 
-msgid "From which source do you want to pick the image template ?"
+msgid "Bug report COULD NOT be emailed."
 msgstr ""
 
-msgid "Database"
+msgid "Underweight"
 msgstr ""
 
-msgid "List of templates in the database."
+msgid "63< Normal >79"
 msgstr ""
 
-msgid "Files in the filesystem."
+msgid "63 - Normal - 79"
 msgstr ""
 
-msgid "Device"
+msgid "Overweight"
 msgstr ""
 
-msgid "Image capture devices (scanners, cameras, etc)"
+msgid "Obese"
 msgstr ""
 
-#, python-format
-msgid "Cannot export visual progress note template for [%s]."
+msgid "Current height/mass"
 msgstr ""
 
-msgid "Cannot export visual progress note to file."
+msgid "Height (cm)"
 msgstr ""
 
-msgid "Editor for visual progress note not configured."
+msgid "Mass (kg)"
 msgstr ""
 
-#, python-format
-msgid ""
-"There was a problem with running the editor\n"
-"for visual progress notes.\n"
-"\n"
-" [%s]\n"
-"\n"
+msgid "Adjusted Values"
 msgstr ""
 
-msgid "Editing visual progress note"
+msgid "Goal mass"
 msgstr ""
 
-#, python-format
-msgid ""
-"There was a problem reading the visual\n"
-"progress note from the file:\n"
-"\n"
-" [%s]\n"
-"\n"
+msgid "kg to lose"
 msgstr ""
 
-msgid "Saving visual progress note"
+msgid "BMI Calculator"
 msgstr ""
 
-msgid ""
-"You either created a visual progress note from a template\n"
-"in the database (rather than from a file on disk) or you\n"
-"edited an existing visual progress note.\n"
-"\n"
-"The template/original was not modified at all, however.\n"
-"\n"
-"Do you still want to save the unmodified image as a\n"
-"visual progress note into the EMR of the patient ?\n"
+msgid "&Reset"
 msgstr ""
 
-msgid "visual progress notes"
+msgid "Select a healthcare provider."
 msgstr ""
 
-#, python-format
-msgid "Created: %s"
+msgid "Public (no clinical or demographic access)"
 msgstr ""
 
-msgid "Problem list"
+msgid "Staff (demographic access only)"
 msgstr ""
 
-msgid "Saving SOAP note"
+msgid "staff (clerical)"
 msgstr ""
 
-msgid "Do you want to save the SOAP note ?"
+msgid "full clinical access"
 msgstr ""
 
-#, python-format
-msgid "&Filter by problem %s%s%s"
+msgid "DB account"
 msgstr ""
 
-msgid "Cannot save SimpleNotes SOAP note."
+msgid "can login"
 msgstr ""
 
-#, python-format
-msgid "Progress note: %s%s"
+msgid "can not login"
 msgstr ""
 
-msgid "Please enter a name for the new problem:"
+msgid "Activating GNUmed user."
 msgstr ""
 
-msgid "Adding a problem"
+msgid "Deactivating GNUmed user."
 msgstr ""
 
-msgid "Cannot delete problem. There is still clinical data recorded for it."
+msgid "Removing GNUmed user."
 msgstr ""
 
-#, python-format
-msgid "GNUmed: configuring [%s] (%s plugins)"
+msgid "Removing GNUmed user"
 msgstr ""
 
-msgid "loading list of plugins                               "
+msgid "Modifying GNUmed user."
 msgstr ""
 
-msgid "failed"
+msgid "Failed to save changes to GNUmed database user."
 msgstr ""
 
-msgid "success"
+msgid "Modifying GNUmed user"
 msgstr ""
 
 #, python-format
-msgid ""
-"previous: %s (%s)\n"
-"current (%s/%s): %s"
+msgid "Failed to set role [%s] for GNUmed database user."
 msgstr ""
 
 #, python-format
-msgid "Cannot switch to [%s]: no patient selected"
+msgid ""
+"\n"
+"  %s \"%s\" %s\n"
+"  born: %s"
 msgstr ""
 
-msgid "Pick a date ..."
+msgid ""
+"Password entries do not match. Please type in the passwords again to rule "
+"out typos."
 msgstr ""
 
-msgid "<ALT-C/K>: pick from (c/k)alendar"
+msgid "Adding GNUmed user"
 msgstr ""
 
-msgid "Cannot interpret input as timestamp."
+msgid ""
+"Are you positively sure you want to create\n"
+"a user with an empty password ?\n"
+"\n"
+"Think about the record access implications !"
 msgstr ""
 
-msgid "No vaccines were chosen"
+msgid "Enlisting person as user."
 msgstr ""
 
-#, python-format
-msgid "Combination of indications , %s , not found in any vaccine"
+msgid "Encrypt"
 msgstr ""
 
-msgid "Sequence"
+msgid "Decrypt"
 msgstr ""
 
-msgid "Batch"
+msgid "Set pass phrase"
 msgstr ""
 
-msgid "Vaccinator"
+msgid "This is not correctly encrypted text!"
+msgstr ""
+
+msgid "Please enter your pass phrase:"
+msgstr ""
+
+msgid "Pass phrase expired"
 msgstr ""
 
 msgid ""
-"Vaccinations by Recommender (X = patient on regime, O = patient not on "
-"regime) "
+"\n"
+"Conditions preventable by vaccination as currently known to GNUmed.\n"
 msgstr ""
 
-msgid "enrolled regime vaccinations not yet given"
+msgid "Showing vaccination preventable conditions."
 msgstr ""
 
-msgid "Proceed with "
+msgid "ATCs: single-condition vaccines"
 msgstr ""
 
-#, python-format
-msgid "Failed to enrol patient in %s"
+msgid "ATCs: multi-condition vaccines"
 msgstr ""
 
-#, python-format
-msgid "Failed to  delist patient from %s"
+msgid "Pick the relevant indications."
 msgstr ""
 
-msgid "Missing GNUmed module"
+#, fuzzy
+msgid "Known indications"
+msgstr "unknown reaction"
+
+msgid "Adding new vaccine"
+msgstr ""
+
+msgid "Editing vaccine"
 msgstr ""
 
 #, python-format
 msgid ""
-"GNUmed detected that parts of it are not\n"
-"properly installed. The following message\n"
-"names the missing part:\n"
+"Cannot delete vaccine\n"
 "\n"
-" \"%s\"\n"
+" %s - %s (#%s)\n"
 "\n"
-"Please make sure to get the missing\n"
-"parts installed. Otherwise some of the\n"
-"functionality will not be accessible."
+"It is probably documented in a vaccination."
 msgstr ""
 
-#, fuzzy, python-format
-msgid ""
-"\n"
-" Source: %s"
-msgstr "Exported: %s\n"
+msgid "Deleting vaccine"
+msgstr ""
 
-#, fuzzy, python-format
-msgid ""
-"\n"
-" Code: %s"
-msgstr "Exported: %s\n"
+msgid "fake"
+msgstr ""
 
-#, python-format
 msgid ""
 "\n"
-" Details (first 250 characters):\n"
-"%s\n"
-"%s\n"
-"%s"
+"The vaccines currently known to GNUmed.\n"
 msgstr ""
 
-msgid "Access violation"
+msgid "Showing vaccines."
 msgstr ""
 
-#, python-format
-msgid ""
-"You do not have access to this part of GNUmed.\n"
-"\n"
-"%s"
+msgid "Enter or select the batch/lot number of the vaccine used."
 msgstr ""
 
-msgid "Lost connection"
+msgid "Saving vaccine"
 msgstr ""
 
+#, python-format
 msgid ""
-"Since you were last working in GNUmed,\n"
-"your database connection timed out.\n"
+"This vaccine is already in use:\n"
 "\n"
-"This GNUmed session is now expired.\n"
+" \"%s\"\n"
+" (%s)\n"
 "\n"
-"You will have to close this client and\n"
-"restart a new GNUmed session."
+"Are you absolutely positively sure that\n"
+"you really want to edit this vaccine ?\n"
+"\n"
+"This will change the vaccine name and/or target\n"
+"conditions in each patient this vaccine was\n"
+"used in to document a vaccination with.\n"
 msgstr ""
 
-msgid ""
-"Please enter a short note on what you\n"
-"were about to do in GNUmed:"
+msgid "You must select at least one indication."
 msgstr ""
 
-msgid "Sending bug report"
+msgid "Pick the diseases this vaccine protects against."
 msgstr ""
 
-msgid ""
-"Edit the list of email addresses to send the\n"
-"bug report to (separate addresses by spaces).\n"
-"\n"
-"Note that <gnumed-bugs at gnu.org> refers to\n"
-"the public (!) GNUmed bugs mailing list."
+msgid "This vaccine"
 msgstr ""
 
-#, python-format
-msgid ""
-"Your bug report will be sent to:\n"
-"\n"
-"%s\n"
-"\n"
-"Make sure you have reviewed the log file for potentially\n"
-"sensitive information before sending out the bug report.\n"
-"\n"
-"Note that emailing the report may take a while depending\n"
-"on the speed of your internet connection.\n"
+msgid "Adding new vaccinations"
 msgstr ""
 
-msgid "Yes, send the bug report."
+msgid "Editing vaccination"
 msgstr ""
 
-msgid "No, do not send the bug report."
-msgstr ""
+#, fuzzy
+msgid "vaccination recall"
+msgstr "Vaccination"
 
-msgid "include log file in bug report"
+#, python-format
+msgid "vaccination recall (%s)"
 msgstr ""
 
+#, fuzzy, python-format
 msgid ""
-"The database you are connected to is marked as\n"
-"\"in-production with controlled access\".\n"
-"\n"
-"You indicated that you want to include the log\n"
-"file in your bug report. While this is often\n"
-"useful for debugging the log file might contain\n"
-"bits of patient data which must not be sent out\n"
-"without de-identification.\n"
+"Existing vaccination:\n"
 "\n"
-"Please confirm that you want to include the log !"
-msgstr ""
-
-msgid "<not supplied>"
-msgstr ""
-
-msgid "Bug report has been emailed."
-msgstr ""
-
-msgid "Bug report COULD NOT be emailed."
-msgstr ""
+"%s"
+msgstr "Vaccination"
 
-msgid "Underweight"
+msgid ""
+"\n"
+"Complete vaccination history for this patient.\n"
 msgstr ""
 
-msgid "63< Normal >79"
+msgid "Showing vaccinations."
 msgstr ""
 
-msgid "63 - Normal - 79"
+msgid "Intended to protect from"
 msgstr ""
 
-msgid "Overweight"
-msgstr ""
+#, fuzzy
+msgid "Print vaccinations or recalls."
+msgstr "Vaccination"
 
-msgid "Obese"
+msgid "Recall"
 msgstr ""
 
-msgid "Current height/mass"
+msgid "Add a recall for a vaccination"
 msgstr ""
 
-msgid "Height (cm)"
+msgid "Vx schedules"
 msgstr ""
 
-msgid "Mass (kg)"
+msgid "Open a browser showing vaccination schedules."
 msgstr ""
 
-msgid "Adjusted Values"
+msgid "prevention"
 msgstr ""
 
-msgid "Goal mass"
-msgstr ""
+#, fuzzy
+msgid "Saving vaccination"
+msgstr "Vaccination"
 
-msgid "kg to lose"
+msgid "Pick the diseases this vaccination was given against."
 msgstr ""
 
-msgid "BMI Calculator"
+msgid "  IMMUNISATIONS  "
 msgstr ""
 
-msgid "&Reset"
+msgid "Indications"
 msgstr ""
 
-msgid "Select a healthcare provider."
+msgid "Active Schedules"
 msgstr ""
 
-msgid "Public (no clinical or demographic access)"
+msgid "Missing Immunisations"
 msgstr ""
 
-msgid "Staff (demographic access only)"
+msgid "  Alerts  "
 msgstr ""
 
-msgid "staff (clerical)"
+msgid "ERROR: cannot retrieve active vaccination schedules"
 msgstr ""
 
-msgid "full clinical access"
+msgid "no active vaccination schedules"
 msgstr ""
 
-msgid "DB account"
+#, python-format
+msgid "%s for %s (%s shots): %s"
 msgstr ""
 
-msgid "can login"
+msgid "ERROR: cannot retrieve due/overdue vaccinations"
 msgstr ""
 
-msgid "can not login"
+#, python-format
+msgid "%.0d weeks left: shot %s for %s in %s, due %s (%s)"
 msgstr ""
 
-msgid "Activating GNUmed user."
+#, python-format
+msgid "overdue %.0dyrs %.0dwks: shot %s for %s in schedule \"%s\" (%s)"
 msgstr ""
 
-msgid "Deactivating GNUmed user."
+#, python-format
+msgid "due now: booster for %s in schedule \"%s\" (%s)"
 msgstr ""
 
-msgid "Removing GNUmed user."
+#, python-format
+msgid "Synopsis (%s)"
 msgstr ""
 
-msgid "Removing GNUmed user"
+msgid ""
+"Enter a short working name for this new problem\n"
+"(which will become a new, unassociated episode):\n"
 msgstr ""
 
-msgid "Modifying GNUmed user."
+#, python-format
+msgid ""
+"Enter a short working name for this new\n"
+"episode under the existing health issue\n"
+"\n"
+"\"%s\":\n"
 msgstr ""
 
-msgid "Failed to save changes to GNUmed database user."
+msgid "Creating problem (episode) to save notelet under ..."
 msgstr ""
 
-msgid "Modifying GNUmed user"
+msgid "Cannot save a new problem without a name."
 msgstr ""
 
-#, python-format
-msgid "Failed to set role [%s] for GNUmed database user."
+msgid "saving progress note"
 msgstr ""
 
 #, python-format
 msgid ""
+"The new episode:\n"
 "\n"
-"  %s \"%s\" %s\n"
-"  born: %s"
+" \"%s\"\n"
+"\n"
+"will remain unassociated despite the editor\n"
+"having been invoked from the health issue:\n"
+"\n"
+" \"%s\""
 msgstr ""
 
-msgid ""
-"Password entries do not match. Please type in the passwords again to rule "
-"out typos."
-msgstr ""
+#, fuzzy
+msgid "Adding substance abuse"
+msgstr "first name"
 
-msgid "Adding GNUmed user"
-msgstr ""
+#, fuzzy
+msgid "Editing substance abuse"
+msgstr "first name"
 
-msgid ""
-"Are you positively sure you want to create\n"
-"a user with an empty password ?\n"
-"\n"
-"Think about the record access implications !"
+msgid "Substances abused by the patient:"
 msgstr ""
 
-msgid "Enlisting person as user."
-msgstr ""
+#, fuzzy
+msgid "Showing abused substances."
+msgstr " %s documents\n"
 
-msgid "Encrypt"
+msgid "Intake"
 msgstr ""
 
-msgid "Decrypt"
+msgid "nicotine"
 msgstr ""
 
-msgid "Set pass phrase"
+msgid "unit"
 msgstr ""
 
-msgid "This is not correctly encrypted text!"
-msgstr ""
+#, fuzzy, python-format
+msgid "Latest: %s ago (%s %s%s%s%s)"
+msgstr "  your time: %s - %s  (@%s = %s%s)\n"
 
-msgid "Please enter your pass phrase:"
-msgstr ""
+#, fuzzy, python-format
+msgid "%s %s%s%s (%s ago, %s)"
+msgstr "%s this week (%s of %s)"
 
-msgid "Pass phrase expired"
+#, fuzzy, python-format
+msgid "overdue %s: %s"
+msgstr "Exported: %s\n"
+
+#, fuzzy, python-format
+msgid "due in %s%s"
+msgstr "Exported: %s\n"
+
+msgid "suppr'd:"
 msgstr ""
 
+#, fuzzy
+msgid "Suppressed hints:\n"
+msgstr "Exported: %s\n"
+
 msgid ""
-"\n"
-"Conditions preventable by vaccination as currently known to GNUmed.\n"
+"Do you really want to\n"
+"delete this inbox message ?"
 msgstr ""
 
-msgid "Showing vaccination preventable conditions."
+msgid "Deleting inbox message"
 msgstr ""
 
-msgid "ATCs: single-condition vaccines"
-msgstr ""
+#, fuzzy
+msgid "Export area: 1 item"
+msgstr "part"
 
-msgid "ATCs: multi-condition vaccines"
-msgstr ""
+#, fuzzy, python-format
+msgid "Export area: %s items"
+msgstr "Exported: %s\n"
 
-msgid "Pick the relevant indications."
+#, python-format
+msgid "%s %s more not shown %s"
 msgstr ""
 
-#, fuzzy
-msgid "Known indications"
-msgstr "unknown reaction"
+#, fuzzy, python-format
+msgid "Currently %s entries in waiting list"
+msgstr "The currently selected patient is:"
 
-msgid "Adding new vaccine"
+#, python-format
+msgid "first (in GMd): %s, %s"
 msgstr ""
 
-msgid "Editing vaccine"
+#, python-format
+msgid "last: %s, %s"
 msgstr ""
 
 #, python-format
-msgid ""
-"Cannot delete vaccine\n"
-"\n"
-" %s - %s (#%s)\n"
-"\n"
-"It is probably documented in a vaccination."
+msgid "Last %s:"
 msgstr ""
 
-msgid "Deleting vaccine"
+#, fuzzy
+msgid "Statistics cover period"
 msgstr ""
+"EMR Statistics\n"
+"\n"
 
-msgid "fake"
+#, python-format
+msgid "EDC (!?!): %s"
 msgstr ""
 
 msgid ""
+"The Expected Date of Confinement is rather questionable.\n"
 "\n"
-"The vaccines currently known to GNUmed.\n"
+"Please check patient age, patient gender, time until/since EDC."
 msgstr ""
 
-msgid "Showing vaccines."
-msgstr ""
+#, fuzzy, python-format
+msgid "%s Vacc: %s (latest of %s)"
+msgstr "Exported: %s\n"
 
-msgid "Enter or select the batch/lot number of the vaccine used."
-msgstr ""
+#, fuzzy, python-format
+msgid "Hx of addiction: %s"
+msgstr "Patient: %s (%s), No: %s\n"
 
-msgid "Saving vaccine"
+msgid "active substance abuse"
 msgstr ""
 
 #, python-format
-msgid ""
-"This vaccine is already in use:\n"
-"\n"
-" \"%s\"\n"
-" (%s)\n"
-"\n"
-"Are you absolutely positively sure that\n"
-"you really want to edit this vaccine ?\n"
-"\n"
-"This will change the vaccine name and/or target\n"
-"conditions in each patient this vaccine was\n"
-"used in to document a vaccination with.\n"
+msgid "%s %s %s%s"
 msgstr ""
 
-msgid "You must select at least one indication."
+#, python-format
+msgid "%s %s%s"
 msgstr ""
 
-msgid "Pick the diseases this vaccine protects against."
+#, python-format
+msgid "** Currently hospitalized: %s **"
 msgstr ""
 
-msgid "This vaccine"
-msgstr ""
-
-msgid "Adding new vaccinations"
-msgstr ""
-
-msgid "Editing vaccination"
-msgstr ""
-
-#, fuzzy
-msgid "vaccination recall"
-msgstr "Vaccination"
-
-#, python-format
-msgid "vaccination recall (%s)"
-msgstr ""
-
-#, fuzzy, python-format
-msgid ""
-"Existing vaccination:\n"
-"\n"
-"%s"
-msgstr "Vaccination"
-
-msgid ""
-"\n"
-"Complete vaccination history for this patient.\n"
-msgstr ""
-
-msgid "Showing vaccinations."
-msgstr ""
-
-msgid "Intended to protect from"
-msgstr ""
-
-#, fuzzy
-msgid "Print vaccinations or recalls."
-msgstr "Vaccination"
-
-msgid "Recall"
-msgstr ""
-
-msgid "Add a recall for a vaccination"
-msgstr ""
-
-msgid "Vx schedules"
-msgstr ""
-
-msgid "Open a browser showing vaccination schedules."
-msgstr ""
-
-msgid "prevention"
-msgstr ""
-
-#, fuzzy
-msgid "Saving vaccination"
-msgstr "Vaccination"
-
-msgid "Pick the diseases this vaccination was given against."
-msgstr ""
-
-msgid "  IMMUNISATIONS  "
-msgstr ""
-
-msgid "Indications"
-msgstr ""
-
-msgid "Active Schedules"
-msgstr ""
-
-msgid "Missing Immunisations"
-msgstr ""
-
-msgid "  Alerts  "
-msgstr ""
-
-msgid "ERROR: cannot retrieve active vaccination schedules"
-msgstr ""
-
-msgid "no active vaccination schedules"
-msgstr ""
-
-#, python-format
-msgid "%s for %s (%s shots): %s"
-msgstr ""
-
-msgid "ERROR: cannot retrieve due/overdue vaccinations"
-msgstr ""
-
-#, python-format
-msgid "%.0d weeks left: shot %s for %s in %s, due %s (%s)"
-msgstr ""
-
-#, python-format
-msgid "overdue %.0dyrs %.0dwks: shot %s for %s in schedule \"%s\" (%s)"
-msgstr ""
-
-#, python-format
-msgid "due now: booster for %s in schedule \"%s\" (%s)"
-msgstr ""
-
-#, fuzzy, python-format
-msgid "Latest: %s ago (%s %s %s %s%s)"
-msgstr "  your time: %s - %s  (@%s = %s%s)\n"
-
-#, fuzzy, python-format
-msgid "%s %s %s %s (%s ago, %s)"
-msgstr "%s this week (%s of %s)"
-
-#, fuzzy, python-format
-msgid "overdue %s: %s"
-msgstr "Exported: %s\n"
-
-#, fuzzy, python-format
-msgid "due in %s%s"
-msgstr "Exported: %s\n"
-
-msgid ""
-"Do you really want to\n"
-"delete this inbox message ?"
-msgstr ""
-
-msgid "Deleting inbox message"
-msgstr ""
-
-#, fuzzy
-msgid "Export area: 1 item"
-msgstr "part"
-
-#, fuzzy, python-format
-msgid "Export area: %s items"
-msgstr "Exported: %s\n"
-
-#, python-format
-msgid "%s %s more not shown %s"
-msgstr ""
-
-#, fuzzy, python-format
-msgid "Currently %s entries in waiting list"
-msgstr "The currently selected patient is:"
-
-#, python-format
-msgid "first (in GMd): %s, %s"
-msgstr ""
-
-#, python-format
-msgid "last: %s, %s"
-msgstr ""
-
-#, python-format
-msgid "Last %s:"
-msgstr ""
-
-#, fuzzy
-msgid "Statistics cover period"
-msgstr ""
-"EMR Statistics\n"
-"\n"
-
-#, python-format
-msgid "EDC (!?!): %s"
-msgstr ""
-
-msgid ""
-"The Expected Date of Confinement is rather questionable.\n"
-"\n"
-"Please check patient age, patient gender, time until/since EDC."
-msgstr ""
-
-#, fuzzy, python-format
-msgid "%s Vacc: %s"
-msgstr "Exported: %s\n"
-
-#, python-format
-msgid "%s %s %s%s"
-msgstr ""
-
-#, python-format
-msgid "%s %s%s"
-msgstr ""
-
-#, python-format
-msgid "** Currently hospitalized: %s **"
-msgstr ""
-
-#, python-format
-msgid "emergency: %s"
+#, python-format
+msgid "emergency: %s"
 msgstr ""
 
 #, python-format
@@ -9594,72 +9917,169 @@ msgid ""
 "You will have to add it via the Demographics plugin.\n"
 msgstr ""
 
-msgid "You must select a value from the picklist or type an exact match."
+msgid "You need to actually set an editor."
 msgstr ""
 
 #, python-format
-msgid ""
-"The content is invalid. It must match the regular expression: [%%s]. <%s>"
+msgid "The command [%s] is not found."
 msgstr ""
 
-msgid "Latin"
+#, python-format
+msgid ""
+"Enter the shell command with which to start\n"
+"the image editor for visual progress notes.\n"
+"\n"
+"Any \"%(img)s\" included with the arguments\n"
+"will be replaced by the file name of the\n"
+"note template."
 msgstr ""
 
-msgid "Greek"
+msgid "Choose file to use as template for new visual progress note"
 msgstr ""
 
-msgid "Cyrillic"
+msgid "Visual progress note source"
 msgstr ""
 
-msgid "Four Es"
+msgid "From which source do you want to pick the image template ?"
 msgstr ""
 
-msgid "Symbol"
+msgid "Database"
 msgstr ""
 
-msgid "Snellen Chart"
+msgid "List of templates in the database."
 msgstr ""
 
-msgid "Snellen Chart Setup"
+msgid "Files in the filesystem."
 msgstr ""
 
-msgid "Screen Height (cm): "
+msgid "Device"
 msgstr ""
 
-msgid "Screen Width (cm): "
+msgid "Image capture devices (scanners, cameras, etc)"
 msgstr ""
 
-msgid "Alphabet: "
+#, python-format
+msgid "Cannot export visual progress note template for [%s]."
 msgstr ""
 
-msgid "Mirror"
+msgid "Cannot export visual progress note to file."
 msgstr ""
 
-msgid ""
-"Control Snellen chart using mouse:\n"
-"left-click increases text\n"
-"right-click decreases text\n"
-"double-click ends"
+msgid "Editor for visual progress note not configured."
 msgstr ""
 
-msgid " OK "
+#, python-format
+msgid ""
+"There was a problem with running the editor\n"
+"for visual progress notes.\n"
+"\n"
+" [%s]\n"
+"\n"
 msgstr ""
 
-msgid " Cancel "
+msgid "Editing visual progress note"
 msgstr ""
 
 #, python-format
-msgid "invalid placeholder >>>>>%s<<<<<"
+msgid ""
+"There was a problem reading the visual\n"
+"progress note from the file:\n"
+"\n"
+" [%s]\n"
+"\n"
 msgstr ""
 
-#, python-format
-msgid "due %(due_date)s: %(comment)s (%(interval_due)s)"
+msgid "Saving visual progress note"
 msgstr ""
 
-msgid "Select the patient documents to reference from the new document."
+msgid ""
+"You either created a visual progress note from a template\n"
+"in the database (rather than from a file on disk) or you\n"
+"edited an existing visual progress note.\n"
+"\n"
+"The template/original was not modified at all, however.\n"
+"\n"
+"Do you still want to save the unmodified image as a\n"
+"visual progress note into the EMR of the patient ?\n"
 msgstr ""
 
-msgid "template is missing"
+msgid "visual progress notes"
+msgstr ""
+
+#, python-format
+msgid " [part 1 of %s]"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "Created: %s%s"
+msgstr " Noted at age: %s"
+
+msgid "You must select a value from the picklist or type an exact match."
+msgstr ""
+
+#, python-format
+msgid ""
+"The content is invalid. It must match the regular expression: [%%s]. <%s>"
+msgstr ""
+
+msgid "Latin"
+msgstr ""
+
+msgid "Greek"
+msgstr ""
+
+msgid "Cyrillic"
+msgstr ""
+
+msgid "Four Es"
+msgstr ""
+
+msgid "Symbol"
+msgstr ""
+
+msgid "Snellen Chart"
+msgstr ""
+
+msgid "Snellen Chart Setup"
+msgstr ""
+
+msgid "Screen Height (cm): "
+msgstr ""
+
+msgid "Screen Width (cm): "
+msgstr ""
+
+msgid "Alphabet: "
+msgstr ""
+
+msgid "Mirror"
+msgstr ""
+
+msgid ""
+"Control Snellen chart using mouse:\n"
+"left-click increases text\n"
+"right-click decreases text\n"
+"double-click ends"
+msgstr ""
+
+msgid " OK "
+msgstr ""
+
+msgid " Cancel "
+msgstr ""
+
+#, python-format
+msgid "invalid placeholder >>>>>%s<<<<<"
+msgstr ""
+
+#, python-format
+msgid "due %(due_date)s: %(comment)s (%(interval_due)s)"
+msgstr ""
+
+msgid "Select the patient documents to reference from the new document."
+msgstr ""
+
+msgid "template is missing"
 msgstr ""
 
 #, python-format
@@ -9674,7 +10094,8 @@ msgstr ""
 
 #, python-format
 msgid ""
-"%(street)s %(number)s, %(postcode)s %(urb)s, %(l10n_state)s, %(l10n_country)s"
+"%(street)s %(number)s, %(postcode)s %(urb)s, %(l10n_region)s, "
+"%(l10n_country)s"
 msgstr ""
 
 #, python-format
@@ -10271,7 +10692,7 @@ msgstr ""
 msgid ""
 "Cannot save address.\n"
 "\n"
-"Does the state [%s]\n"
+"Does the region [%s]\n"
 "exist in country [%s] ?"
 msgstr ""
 
@@ -10709,7 +11130,7 @@ msgstr "Exported: %s\n"
 msgid "Reminders for the current patient"
 msgstr "There are no encounters for this episode."
 
-msgid "Sent"
+msgid "Generated"
 msgstr ""
 
 msgid "Category - Type"
@@ -10757,9 +11178,6 @@ msgid ""
 "Data: %s"
 msgstr ""
 
-msgid "Inbox Message Actions:"
-msgstr ""
-
 msgid "Activate patient"
 msgstr ""
 
@@ -11450,7 +11868,7 @@ msgid ""
 msgstr ""
 
 #, python-format
-msgid "Select branch (of praxis [%s]) which you are logging in from.\n"
+msgid "Select the branch of praxis [%s] which you are logging in from.\n"
 msgstr ""
 
 msgid "Praxis branch selection ..."
@@ -11758,6 +12176,13 @@ msgstr ""
 msgid "List of addresses related to this person."
 msgstr ""
 
+#, fuzzy
+msgid "Map"
+msgstr "Mr"
+
+msgid "Show selected address on map"
+msgstr ""
+
 msgid "Adding new address"
 msgstr ""
 
@@ -11941,7 +12366,86 @@ msgstr "external patient ID"
 msgid "generic multi choice dialog"
 msgstr ""
 
-msgid "Search in list"
+#, fuzzy
+msgid "Deleting list items"
+msgstr "external patient ID"
+
+#, python-format
+msgid ""
+"You have selected %s list items.\n"
+"\n"
+"Really delete all %s items ?"
+msgstr ""
+
+msgid ""
+"Select the items you want to work on.\n"
+"\n"
+"A discontinuous selection may depend on your holding down a platform-"
+"dependent modifier key (<CTRL>, <ALT>, etc) or key combination (eg. <CTRL-"
+"SHIFT> or <CTRL-ALT>) while clicking."
+msgstr ""
+
+msgid "List Item Actions:"
+msgstr ""
+
+msgid "Add (<INS>)"
+msgstr ""
+
+msgid "Delete (<DEL>)"
+msgstr ""
+
+msgid "Find (<CTRL-F>)"
+msgstr ""
+
+#, python-format
+msgid "Find next [%s] (<CTRL-N>)"
+msgstr ""
+
+msgid "Row tooltip"
+msgstr ""
+
+msgid "Row data (formatted as text)"
+msgstr ""
+
+msgid "Row content (as one line)"
+msgstr ""
+
+msgid "Row content (one line per column)"
+msgstr ""
+
+#, python-format
+msgid "Column &%s: \"%s\" [#%s]"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "Column &%s: %s"
+msgstr "Documents: %s"
+
+msgid "&Copy to clipboard..."
+msgstr ""
+
+#, fuzzy
+msgid "Append (&+) to clipboard..."
+msgstr "The currently selected patient is:"
+
+#, python-format
+msgid ""
+"%s list items are selected.\n"
+"\n"
+"Really delete all %s items ?"
+msgstr ""
+
+msgid "Enter the search term:"
+msgstr ""
+
+msgid "List search"
+msgstr ""
+
+#, python-format
+msgid ""
+"Current search term: [[%s]]\n"
+"\n"
+"%s"
 msgstr ""
 
 msgid "Monty the Serpent && the FSF Present"
@@ -12097,6 +12601,9 @@ msgstr ""
 msgid "Unknown: ?"
 msgstr ""
 
+msgid "The text has been copied into the clipboard."
+msgstr ""
+
 msgid "file2clipboard"
 msgstr ""
 
@@ -12104,6 +12611,41 @@ msgstr ""
 msgid "The file [%s] has been copied into the clipboard."
 msgstr ""
 
+msgid "programmer forgot to specify error message"
+msgstr ""
+
+msgid ""
+"\n"
+"\n"
+"Please consult the error log for all the gory details !"
+msgstr ""
+
+msgid "generic error message"
+msgstr ""
+
+msgid "programmer forgot to specify info message"
+msgstr ""
+
+msgid "generic info message"
+msgstr ""
+
+msgid "programmer forgot to specify warning"
+msgstr ""
+
+msgid "generic warning message"
+msgstr ""
+
+#, fuzzy
+msgid "Editing EDC"
+msgstr "first name"
+
+#, python-format
+msgid ""
+"Really delete the EDC documented previously ?\n"
+"\n"
+" EDC: %s"
+msgstr ""
+
 #, python-format
 msgid ""
 "Algorithm: %s\n"
@@ -12211,15 +12753,15 @@ msgstr ""
 msgid "Firstname"
 msgstr ""
 
-msgid "Nickname"
-msgstr ""
-
 msgid "DOB"
 msgstr ""
 
 msgid "last visit"
 msgstr ""
 
+msgid "Nickname / Comment"
+msgstr ""
+
 msgid "found via"
 msgstr ""
 
@@ -12397,589 +12939,340 @@ msgstr ""
 msgid "In case of emergency contact:"
 msgstr ""
 
-msgid ""
-"\n"
-"Please select the default drug data source from the list below.\n"
-"\n"
-"Note that to actually use it you need to have the database installed, too."
+msgid "The preparation (form) of the substance or brand."
 msgstr ""
 
-msgid "Drug data source"
+msgid "A substance with optional strength or a brand."
 msgstr ""
 
-msgid "Configuring default drug data source"
+msgid "The medical aim for consuming this substance."
 msgstr ""
 
-msgid "No default drug database configured."
+msgid "not tolerated:"
 msgstr ""
 
-msgid "There is no default drug database configured."
+msgid "discontinued due to allergy or intolerance"
 msgstr ""
 
-msgid "Jumping to drug database"
+msgid "Documented an allergy"
 msgstr ""
 
 #, python-format
-msgid "Cannot call IFAP via [%s]."
+msgid ""
+"An allergy was documented against the substance:\n"
+"\n"
+"  [%s]\n"
+"\n"
+"This substance was taken with the multi-component brand:\n"
+"\n"
+"  [%s (%s)]\n"
+"\n"
+"Note that ALL components of this brand were discontinued."
 msgstr ""
 
-#, python-format
-msgid "Cannot create IFAP <-> GNUmed transfer file [%s]."
+msgid "disapproved"
 msgstr ""
 
-msgid "Current medication"
+msgid "Substances consumed by the patient:"
 msgstr ""
 
-msgid ""
-"\n"
-"The ATC codes as known to GNUmed.\n"
+msgid "Showing consumable substances."
 msgstr ""
 
-msgid "Showing ATC codes."
+msgid "Application"
 msgstr ""
 
-msgid "Choose an ATC import config file"
+msgid "never"
 msgstr ""
 
-msgid "config files"
+#, python-format
+msgid "%s, last confirmed %s\n"
 msgstr ""
 
-msgid "importing ATC reference data"
+#, python-format
+msgid "Comment (%s): %%s\n"
 msgstr ""
 
-msgid "Successfully imported ATC reference data."
+msgid "reaction not recorded"
 msgstr ""
 
-msgid "Importing ATC reference data failed."
+msgid "GFR: unknown"
 msgstr ""
 
-msgid "Select an ATC (Anatomical-Therapeutic-Chemical) code."
+msgid "GFR reported by path lab"
 msgstr ""
 
-msgid "Cannot delete this substance. It is in use."
+#, fuzzy
+msgid "<no components>"
+msgstr "inactive"
+
+msgid "Adding substance intake entry"
 msgstr ""
 
+#, python-format
 msgid ""
+"The patient is already taking\n"
 "\n"
-"These are the consumable substances registered with GNUmed.\n"
-msgstr ""
-
-msgid "Showing consumable substances."
-msgstr ""
-
-msgid "Import"
+" %s\n"
+"\n"
+"You will want to adjust the schedule\n"
+"rather than document the intake twice."
 msgstr ""
 
-msgid "Import consumable substances from a drug database."
+msgid "Input incomplete/invalid for saving as substance intake."
 msgstr ""
 
-msgid "Cannot edit this substance. It is in use."
+#, python-format
+msgid "Discontinued (%s) in the future (now: %s)!"
 msgstr ""
 
-msgid "Adding new consumable substance"
+#, python-format
+msgid "Discontinued (%s) before started (%s) !"
 msgstr ""
 
-msgid "Editing consumable substance"
-msgstr ""
-
-msgid "Cannot save consumable substance. Missing essential input."
+msgid "Cannot add duplicate of (maybe inactive) substance intake."
 msgstr ""
 
 #, python-format
-msgid "Cannot save consumable substance. %s"
-msgstr ""
-
-msgid "Cannot remove this component from the drug. It is in use."
-msgstr ""
-
 msgid ""
 "\n"
-"These are the components in the drug brands known to GNUmed.\n"
+"[%s]\n"
+"\n"
+"It may be prudent to edit (before deletion) the details\n"
+"of this substance intake entry so as to leave behind\n"
+"some indication of why it was deleted.\n"
 msgstr ""
 
-msgid "Showing drug brand components."
+msgid "Deleting medication / substance intake"
 msgstr ""
 
-msgid "Adding new drug component"
+msgid "Allow editing of substance intake entry before deletion."
 msgstr ""
 
-msgid "Editing drug component"
+msgid "Delete immediately without editing first."
 msgstr ""
 
-msgid "Cannot edit drug component. It is in use."
+msgid "&Cancel"
 msgstr ""
 
-msgid "Cannot save drug component. Invalid or missing essential input."
+msgid "Abort. Do not delete or edit substance intake entry."
 msgstr ""
 
-msgid "A drug component with optional strength."
+msgid "Now delete substance intake entry ?"
 msgstr ""
 
-msgid "The preparation (form) of the substance or brand."
+msgid "Adding medication/non-medication substance intake"
 msgstr ""
 
-msgid "The substance with optional strength."
+msgid "Editing medication/non-medication substance intake"
 msgstr ""
 
-msgid "Managing components of a drug"
+msgid "Document an allergy against this substance."
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot manage the components of the branded drug product\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is currently taken by patients.\n"
+msgid "No medication list template configured."
 msgstr ""
 
-msgid "Pick the substances which are components of this drug."
+msgid "There is no medication list template configured."
 msgstr ""
 
-msgid "Components of drug"
+msgid "Problem loading medication list template."
 msgstr ""
 
 #, python-format
-msgid ""
-"Adjust the components of \"%s\"\n"
-"\n"
-"The drug must contain at least one component. Any given\n"
-"substance can only be included once per drug."
+msgid "Cannot load medication list template [%s - %s]"
 msgstr ""
 
-msgid "Managing components of a drug ..."
+msgid "generated medication list document"
 msgstr ""
 
-msgid "not in use"
+msgid "Select the default prescription template:"
 msgstr ""
 
-#, python-format
-msgid "ATC: %s\n"
+msgid "No prescription template configured."
 msgstr ""
 
-msgid "Editing medication"
+msgid "There is no prescription template configured."
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot edit the medication\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is a vaccine. Please edit it\n"
-"from the vaccine management section !\n"
+msgid "Printing prescription"
 msgstr ""
 
-msgid "Deleting medication"
+msgid "Problem loading prescription template."
 msgstr ""
 
 #, python-format
-msgid ""
-"Cannot delete the medication\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is a vaccine. Please delete it\n"
-"from the vaccine management section !\n"
+msgid "Cannot load prescription template [%s - %s]"
 msgstr ""
 
+#, fuzzy
+msgid "generated prescription"
+msgstr "health issue: %s"
+
 msgid ""
+"These brands have been prescribed but are not listed\n"
+"in the current medication list of this patient.\n"
 "\n"
-"These are the drug brands known to GNUmed.\n"
+"Please select those you want added to the medication list."
 msgstr ""
 
-msgid "Showing branded drugs."
+msgid "Newly prescribed drugs"
 msgstr ""
 
-msgid "Import substances and brands from a drug database."
+msgid "Add to medication list"
 msgstr ""
 
-msgid "Editing drug"
+msgid "Timeframe"
 msgstr ""
 
 #, python-format
-msgid ""
-"Cannot edit the branded drug product\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is currently taken by patients.\n"
-msgstr ""
-
-msgid "Adding new drug brand"
-msgstr ""
-
-msgid "Editing drug brand"
+msgid "%s <fake>"
 msgstr ""
 
-msgid "Manage consumable substances"
+msgid "Cannot edit more than one substance at once."
 msgstr ""
 
-msgid "Cannot edit drug brand. It is in use."
+msgid "Cannot delete more than one substance at once."
 msgstr ""
 
-msgid "Checking brand data"
+msgid "Cannot create allergy from more than one substance at once."
 msgstr ""
 
-#, python-format
 msgid ""
-"The brand information you entered:\n"
-"\n"
-" [%s %s]\n"
 "\n"
-"already exists as a drug product."
+"Select the measurements panel to show in the medications plugin.\n"
 msgstr ""
 
-msgid ""
-"You have not selected any substances\n"
-"as drug components.\n"
-"\n"
-"Without components you will not be able to\n"
-"use this drug for documenting patient care.\n"
-"\n"
-"Are you sure you want to save\n"
-"it without components ?"
-msgstr ""
+#, fuzzy
+msgid "Measurements panel"
+msgstr "Measurements and Results:"
 
-msgid "Cannot save branded drug. Invalid or missing essential input."
+msgid "Configuring medications plugin measurements panel"
 msgstr ""
 
-msgid ""
-"The brand name of the drug.\n"
-"\n"
-"Note: a brand name will need to be linked to\n"
-"one or more components before it can be used,\n"
-"except in the case of fake (generic) vaccines."
+msgid "EDC (!?!):"
 msgstr ""
 
-msgid "The medical aim for consuming this substance."
+#, fuzzy
+msgid "EDC:"
+msgstr "Exported: %s\n"
+
+#, fuzzy, python-format
+msgid "%.1f (%s ago)"
+msgstr "Documents: %s"
+
+msgid "eGFR:"
 msgstr ""
 
-msgid "not tolerated:"
+#, python-format
+msgid "eGFR: %.1f (%s)"
 msgstr ""
 
-msgid "discontinued due to allergy or intolerance"
+msgid "Enter vaccination given"
 msgstr ""
 
-msgid "Documented an allergy"
+msgid "Unsaved progress note"
 msgstr ""
 
-#, python-format
 msgid ""
-"An allergy was documented against the substance:\n"
-"\n"
-"  [%s]\n"
-"\n"
-"This substance was taken with the multi-component brand:\n"
+"This progress note has not been saved yet.\n"
 "\n"
-"  [%s (%s)]\n"
+"Do you want to save it or discard it ?\n"
 "\n"
-"Note that ALL components of this brand were discontinued."
-msgstr ""
-
-msgid "disapproved"
 msgstr ""
 
-msgid "Substances consumed by the patient:"
+msgid "Save this progress note"
 msgstr ""
 
-msgid "Intake"
+msgid "Discard this progress note"
 msgstr ""
 
-msgid "Application"
+msgid "Save all remaining unsaved progress notes"
 msgstr ""
 
-msgid "never"
+msgid ""
+"Add editor for a new unassociated progress note.\n"
+"\n"
+"There is a configuration option whether or not to\n"
+"allow several new unassociated progress notes at once."
 msgstr ""
 
-#, python-format
-msgid "%s, last confirmed %s\n"
+msgid "Save progress note into medical record and close this editor."
 msgstr ""
 
-#, python-format
-msgid "Comment (%s): %%s\n"
+msgid "Clear this progress note editor."
 msgstr ""
 
-msgid "reaction not recorded"
+msgid ""
+"Discard progress note and close this editor. You will loose any data already "
+"typed into this editor !"
 msgstr ""
 
-msgid "GFR: unknown"
+msgid "Problem saving progress note: duplicate information ?"
 msgstr ""
 
-msgid "GFR reported by path lab"
+msgid "label missing"
 msgstr ""
 
-#, python-format
-msgid ""
-"The patient is already taking\n"
-"\n"
-" %s\n"
-"\n"
-"You will want to adjust the schedule\n"
-"rather than document the intake twice."
+msgid "soap cat missing"
 msgstr ""
 
-msgid "Adding substance intake entry"
+msgid "Enter a descriptive name for this new problem:"
 msgstr ""
 
-msgid "Input incomplete/invalid for saving as substance intake."
+msgid "Creating a problem (episode) to save the notelet under ..."
 msgstr ""
 
-#, python-format
-msgid "Discontinued (%s) in the future (now: %s)!"
+msgid "Error saving progress note."
 msgstr ""
 
-#, python-format
-msgid "Discontinued (%s) before started (%s) !"
+msgid "Error saving embedded data."
 msgstr ""
 
-msgid "Cannot add duplicate of (maybe inactive) substance intake."
+msgid "Visit Purpose"
 msgstr ""
 
-#, python-format
-msgid ""
-"\n"
-"[%s]\n"
-"\n"
-"It may be prudent to edit (before deletion) the details\n"
-"of this substance intake entry so as to leave behind\n"
-"some indication of why it was deleted.\n"
+msgid "History Taken"
 msgstr ""
 
-msgid "Deleting medication / substance intake"
+msgid "Findings"
 msgstr ""
 
-msgid "Allow editing of substance intake entry before deletion."
+msgid "save"
 msgstr ""
 
-msgid "Delete immediately without editing first."
+msgid "save clinical note in EMR"
 msgstr ""
 
-msgid "&Cancel"
+msgid "discard"
 msgstr ""
 
-msgid "Abort. Do not delete or edit substance intake entry."
+msgid "discard clinical note"
 msgstr ""
 
-msgid "Now delete substance intake entry ?"
+msgid "clinical progress note"
 msgstr ""
 
-msgid "Adding medication/non-medication substance intake"
+msgid "Select files to add to the export area"
 msgstr ""
 
-msgid "Editing medication/non-medication substance intake"
+msgid "Adding files to export area"
 msgstr ""
 
-msgid "Document an allergy against this substance."
+#, python-format
+msgid ""
+"Cannot add (some of) the following files to the export area:\n"
+"%s "
 msgstr ""
 
-msgid "No medication list template configured."
-msgstr ""
+#, fuzzy
+msgid "Select the documents to be put into the export area:"
+msgstr "There are no encounters for this episode."
 
-msgid "There is no medication list template configured."
+msgid "clipboard"
 msgstr ""
 
-msgid "Problem loading medication list template."
-msgstr ""
-
-#, python-format
-msgid "Cannot load medication list template [%s - %s]"
-msgstr ""
-
-msgid "generated medication list document"
-msgstr ""
-
-msgid "Select the default prescription template:"
-msgstr ""
-
-msgid "No prescription template configured."
-msgstr ""
-
-msgid "There is no prescription template configured."
-msgstr ""
-
-msgid "Printing prescription"
-msgstr ""
-
-msgid "Problem loading prescription template."
-msgstr ""
-
-#, python-format
-msgid "Cannot load prescription template [%s - %s]"
-msgstr ""
-
-#, fuzzy
-msgid "generated prescription"
-msgstr "health issue: %s"
-
-msgid ""
-"These brands have been prescribed but are not listed\n"
-"in the current medication list of this patient.\n"
-"\n"
-"Please select those you want added to the medication list."
-msgstr ""
-
-msgid "Newly prescribed drugs"
-msgstr ""
-
-msgid "Add to medication list"
-msgstr ""
-
-msgid "Duration / Until"
-msgstr ""
-
-#, python-format
-msgid "%s <fake>"
-msgstr ""
-
-msgid "Cannot edit more than one substance at once."
-msgstr ""
-
-msgid "Cannot delete more than one substance at once."
-msgstr ""
-
-msgid "Cannot create allergy from more than one substance at once."
-msgstr ""
-
-msgid ""
-"\n"
-"Select the measurements panel to show in the medications plugin.\n"
-msgstr ""
-
-#, fuzzy
-msgid "Measurements panel"
-msgstr "Measurements and Results:"
-
-msgid "Configuring medications plugin measurements panel"
-msgstr ""
-
-msgid "EDC (!?!):"
-msgstr ""
-
-#, fuzzy
-msgid "EDC:"
-msgstr "Exported: %s\n"
-
-#, fuzzy, python-format
-msgid "%.1f (%s ago)"
-msgstr "Documents: %s"
-
-msgid "eGFR:"
-msgstr ""
-
-#, fuzzy, python-format
-msgid "%s%s%s (%s ago)"
-msgstr "%s this week (%s of %s)"
-
-#, python-format
-msgid "eGFR: %.1f (%s)"
-msgstr ""
-
-msgid "Enter vaccination given"
-msgstr ""
-
-msgid "Unsaved progress note"
-msgstr ""
-
-msgid ""
-"This progress note has not been saved yet.\n"
-"\n"
-"Do you want to save it or discard it ?\n"
-"\n"
-msgstr ""
-
-msgid "Save this progress note"
-msgstr ""
-
-msgid "Discard this progress note"
-msgstr ""
-
-msgid "Save all remaining unsaved progress notes"
-msgstr ""
-
-msgid ""
-"Add editor for a new unassociated progress note.\n"
-"\n"
-"There is a configuration option whether or not to\n"
-"allow several new unassociated progress notes at once."
-msgstr ""
-
-msgid "Save progress note into medical record and close this editor."
-msgstr ""
-
-msgid "Clear this progress note editor."
-msgstr ""
-
-msgid ""
-"Discard progress note and close this editor. You will loose any data already "
-"typed into this editor !"
-msgstr ""
-
-msgid "Problem saving progress note: duplicate information ?"
-msgstr ""
-
-msgid "label missing"
-msgstr ""
-
-msgid "soap cat missing"
-msgstr ""
-
-msgid "Enter a descriptive name for this new problem:"
-msgstr ""
-
-msgid "Creating a problem (episode) to save the notelet under ..."
-msgstr ""
-
-msgid "Error saving progress note."
-msgstr ""
-
-msgid "Error saving embedded data."
-msgstr ""
-
-msgid "Visit Purpose"
-msgstr ""
-
-msgid "History Taken"
-msgstr ""
-
-msgid "Findings"
-msgstr ""
-
-msgid "save"
-msgstr ""
-
-msgid "save clinical note in EMR"
-msgstr ""
-
-msgid "discard"
-msgstr ""
-
-msgid "discard clinical note"
-msgstr ""
-
-msgid "clinical progress note"
-msgstr ""
-
-msgid "Select files to add to the export area"
-msgstr ""
-
-msgid "Adding files to export area"
-msgstr ""
-
-#, python-format
-msgid ""
-"Cannot add (some of) the following files to the export area:\n"
-"%s "
-msgstr ""
-
-#, fuzzy
-msgid "Select the documents to be put into the export area:"
-msgstr "There are no encounters for this episode."
-
-msgid "clipboard"
-msgstr ""
-
-msgid "Loading clipboard item (saved to file) into export area"
+msgid "Loading clipboard item (saved to file) into export area"
 msgstr ""
 
 #, python-format
@@ -13036,14 +13329,21 @@ msgid ""
 "\n"
 " [%s]\n"
 "\n"
-"is not empty. Do you want to use it for saving the\n"
-"export area documents into, nevertheless ?\n"
+"already contains files. Do you still want to save the\n"
+"selected export area documents into that directory ?\n"
 "\n"
-"(this can be useful for including external documents)\n"
+"(this is useful for including the external documents\n"
+" already stored in or below this directory)\n"
 "\n"
 "[NO] will create a subdirectory for you and use that."
 msgstr ""
 
+msgid ""
+"Create descriptive metadata files\n"
+"and save them alongside the\n"
+"selected export area documents ?"
+msgstr ""
+
 #, fuzzy, python-format
 msgid ""
 "Saved to [%s]:\n"
@@ -13252,9 +13552,6 @@ msgstr ""
 msgid "This praxis"
 msgstr ""
 
-msgid "Hospital stay"
-msgstr ""
-
 #, fuzzy
 msgid "Bill receiver"
 msgstr "external patient ID"
@@ -13292,10 +13589,52 @@ msgstr ""
 msgid "Select the episode under which to file the document ..."
 msgstr ""
 
+msgid "Cannot create new document."
+msgstr ""
+
+msgid "saving document"
+msgstr ""
+
 #, python-format
 msgid "Imported new document from %s."
 msgstr ""
 
+msgid "Successfully saved new document."
+msgstr ""
+
+msgid "Successfully saved the new document."
+msgstr ""
+
+#, python-format
+msgid ""
+"The reference ID for the new document is:\n"
+"\n"
+" <%s>\n"
+"\n"
+"You probably want to write it down on the\n"
+"original documents.\n"
+"\n"
+"If you don't care about the ID you can switch\n"
+"off this message in the GNUmed configuration.\n"
+msgstr ""
+
+msgid "Saving document"
+msgstr ""
+
+#, python-format
+msgid ""
+"Successfully imported files as document.\n"
+"\n"
+"Do you want to delete imported files from the filesystem ?\n"
+"\n"
+" %s\n"
+"\n"
+"Note that temporary files will be deleted anyway."
+msgstr ""
+
+msgid "Removing files"
+msgstr ""
+
 msgid "Enter a comment on the document."
 msgstr ""
 
@@ -13413,15 +13752,17 @@ msgstr ""
 msgid "Acquiring images"
 msgstr ""
 
+msgid "directory dropped on client"
+msgstr ""
+
+msgid "file dropped on client"
+msgstr ""
+
 #, fuzzy
 msgid "other documents"
 msgstr " %s documents\n"
 
-#, python-format
-msgid "part %s: %s"
-msgstr ""
-
-msgid "saving document"
+msgid "path"
 msgstr ""
 
 msgid "No parts to save. Really save an empty document as a reference ?"
@@ -13466,16 +13807,22 @@ msgstr ""
 msgid "acquiring page"
 msgstr ""
 
+msgid "captured by imaging device"
+msgstr ""
+
 msgid "Choose a file"
 msgstr ""
 
 msgid "all files (Win)"
 msgstr ""
 
-msgid "You must select a part before you can view it."
+msgid "picked from storage media"
 msgstr ""
 
-msgid "displaying part"
+msgid "pasted from clipboard"
+msgstr ""
+
+msgid "No part selected for viewing."
 msgstr ""
 
 #, python-format
@@ -13484,44 +13831,10 @@ msgid ""
 "%s"
 msgstr ""
 
-msgid "You must select a part before you can delete it."
+msgid "displaying part"
 msgstr ""
 
-msgid "deleting part"
-msgstr ""
-
-#, python-format
-msgid ""
-"The part has successfully been removed from the document.\n"
-"\n"
-"Do you also want to permanently delete the file\n"
-"\n"
-" [%s]\n"
-"\n"
-"from which this document part was loaded ?\n"
-"\n"
-"If it is a temporary file for a page you just scanned\n"
-"this makes a lot of sense. In other cases you may not\n"
-"want to lose the file.\n"
-"\n"
-"Pressing [YES] will permanently remove the file\n"
-"from your computer.\n"
-msgstr ""
-
-msgid "Removing document part"
-msgstr ""
-
-#, python-format
-msgid ""
-"Cannot delete part in file [%s].\n"
-"\n"
-"You may not have write access to it."
-msgstr ""
-
-msgid "Cannot create new document."
-msgstr ""
-
-msgid "Cannot update document metadata."
+msgid "No part selected for removal."
 msgstr ""
 
 msgid "Cannot add document description."
@@ -13530,26 +13843,12 @@ msgstr ""
 msgid "Error setting \"reviewed\" status of new document."
 msgstr ""
 
-msgid "Successfully saved the new document."
-msgstr ""
-
 #, python-format
 msgid ""
-"The reference ID for the new document is:\n"
-"\n"
-" <%s>\n"
-"\n"
-"You probably want to write it down on the\n"
-"original documents.\n"
+"Source: %s\n"
+"File: %s\n"
 "\n"
-"If you don't care about the ID you can switch\n"
-"off this message in the GNUmed configuration."
-msgstr ""
-
-msgid "Saving document"
-msgstr ""
-
-msgid "Successfully saved new document."
+"%s"
 msgstr ""
 
 msgid "Document part does not seem to exist in database !"
@@ -13565,9 +13864,6 @@ msgstr ""
 msgid "Showing documents."
 msgstr " %s documents\n"
 
-msgid "Generated"
-msgstr ""
-
 msgid "Ref #"
 msgstr ""
 
@@ -13824,6 +14120,147 @@ msgstr ""
 msgid "Deleting document"
 msgstr ""
 
+msgid "Study date"
+msgstr ""
+
+msgid "Study time"
+msgstr ""
+
+msgid "Method"
+msgstr ""
+
+#, fuzzy
+msgid "Body part"
+msgstr "part"
+
+msgid "Time"
+msgstr ""
+
+msgid "Cannot connect without port (try 8042)."
+msgstr ""
+
+#, python-format
+msgid "Connect to [%s] @ port %s as \"%s\"."
+msgstr ""
+
+#, fuzzy
+msgid "Cannot connect to PACS."
+msgstr "cannot connect to service [%s]"
+
+#, python-format
+msgid "PACS: Orthanc \"%s\" (AET \"%s\", Version %s, DB v%s)"
+msgstr ""
+
+#, python-format
+msgid "GNUmed patient: %s (generic PACS ID)"
+msgstr ""
+
+#, python-format
+msgid "GNUmed patient: \"%(value)s\" @ [%(issuer)s] (stored PACS ID)"
+msgstr ""
+
+msgid "PACS: no patients with matching IDs found"
+msgstr ""
+
+msgid ""
+"PACS: more than one patient with matching IDs found, carefully check studies"
+msgstr ""
+
+#, python-format
+msgid "%s series"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "%%s (%s series)"
+msgstr "%s (%s this year)"
+
+msgid "no studies"
+msgstr ""
+
+#, python-format
+msgid "%s studies"
+msgstr ""
+
+msgid "Exporting DICOM studies"
+msgstr ""
+
+msgid "Unable to export selected studies."
+msgstr ""
+
+#, python-format
+msgid ""
+"The DICOM studies are %s in compressed size.\n"
+"\n"
+"Really copy to export area ?"
+msgstr ""
+
+#, python-format
+msgid "DICOM studies of [%s] from Orthanc PACS \"%s\" (AET \"%s\")"
+msgstr ""
+
+msgid "Select the directory into which to save the DICOM studies."
+msgstr ""
+
+msgid "Saving DICOM studies"
+msgstr ""
+
+msgid "Unable to save selected studies."
+msgstr ""
+
+msgid "Unable to export studies."
+msgstr ""
+
+#, python-format
+msgid "All DICOM studies of [%s] from Orthanc PACS \"%s\" (AET \"%s\")"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "%s%s images"
+msgstr "Documents: %s"
+
+msgid "Select the directory from which to recursively upload DICOM files."
+msgstr ""
+
+msgid "Delete the uploaded DICOM files now ?"
+msgstr ""
+
+msgid ""
+"Some files have not been uploaded.\n"
+"\n"
+"Do you want to delete those DICOM files which have been sent to the PACS "
+"successfully ?"
+msgstr ""
+
+msgid "Uploading DICOM files"
+msgstr ""
+
+#, fuzzy
+msgid "Editing Orthanc content"
+msgstr "Starting patient encounter"
+
+#, fuzzy
+msgid "Patient ID"
+msgstr "Patient: %s (%s), No: %s\n"
+
+msgid "Birth date"
+msgstr ""
+
+msgid "Orthanc"
+msgstr ""
+
+#, fuzzy
+msgid "Modifying patient ID"
+msgstr "internal patient ID"
+
+#, python-format
+msgid ""
+"Really modify %s patient(s) to have the new patient ID\n"
+"\n"
+" [%s]\n"
+"\n"
+"stored in the Orthanc DICOM server ?"
+msgstr ""
+
 #, python-format
 msgid "You are logged in as %s%s.%s (%s). DB account <%s>."
 msgstr ""
@@ -13883,6 +14320,14 @@ msgstr "Measurements and Results:"
 msgid "Select the measurements panel to show in the medications plugin."
 msgstr ""
 
+#, fuzzy
+msgid "General measurements"
+msgstr "Measurements and Results:"
+
+#, fuzzy
+msgid "Select the measurements panel to show in the top pane."
+msgstr "There are no encounters for this episode."
+
 msgid "Review dialog"
 msgstr ""
 
@@ -13973,6 +14418,12 @@ msgstr ""
 msgid "Configure auto-opening editors for recent problems."
 msgstr ""
 
+msgid "SOAP fields"
+msgstr ""
+
+msgid "Configure SOAP editor - individual SOAP fields vs text editor like"
+msgstr ""
+
 msgid "Progress notes handling ..."
 msgstr ""
 
@@ -13994,6 +14445,9 @@ msgstr ""
 msgid "URL for measurements encyclopedia."
 msgstr ""
 
+msgid "Drug data source"
+msgstr ""
+
 msgid "Select the drug data source."
 msgstr ""
 
@@ -14362,6 +14816,13 @@ msgstr ""
 msgid "Manage dynamic hints suppressed in this patient."
 msgstr ""
 
+msgid "Substance abuse"
+msgstr ""
+
+#, fuzzy
+msgid "Manage substance abuse documentation of this patient."
+msgstr "There are no encounters for this episode."
+
 msgid "&Add / Edit ..."
 msgstr ""
 
@@ -14386,26 +14847,49 @@ msgstr ""
 msgid "Show a high-level statistic summary of the EMR."
 msgstr ""
 
-msgid "Text document"
+msgid "Journal (encounters) to file"
 msgstr ""
 
-msgid "Export the EMR of the active patient into a text file"
+msgid ""
+"Save the EMR of the active patient as a chronological journal into a text "
+"file"
 msgstr ""
 
-msgid "Journal"
+msgid "Journal (encounters) to export area"
 msgstr ""
 
 msgid ""
-"Export the EMR of the active patient as a chronological journal into a text "
-"file"
+"Copy EMR of the active patient as a chronological journal into export area"
+msgstr ""
+
+msgid "Journal (mod time) to file"
+msgstr ""
+
+msgid ""
+"Save the EMR of the active patient as journal by last modification time into "
+"a text file"
+msgstr ""
+
+msgid "Journal (mod time) to export area"
+msgstr ""
+
+msgid ""
+"Copy EMR of the active patient as journal by last modification time into "
+"export area"
+msgstr ""
+
+msgid "Text document"
+msgstr ""
+
+msgid "Save the EMR of the active patient into a text file"
 msgstr ""
 
 msgid "MEDISTAR import format"
 msgstr ""
 
 msgid ""
-"GNUmed -> MEDISTAR. Export progress notes of active patient's active "
-"encounter into a text file."
+"GNUmed -> MEDISTAR. Save progress notes of active patient's active encounter "
+"into a text file."
 msgstr ""
 
 msgid "Export as ..."
@@ -14577,19 +15061,42 @@ msgstr ""
 msgid "Show log file"
 msgstr ""
 
-msgid "Show the log file in text viewer."
+msgid "Show log file in text viewer."
 msgstr ""
 
 msgid "Backup log file"
 msgstr ""
 
-msgid "Backup the content of the log to another file."
+msgid "Backup content of the log to another file."
 msgstr ""
 
 msgid "Email log file"
 msgstr ""
 
-msgid "Send the log file to the authors for help."
+msgid "Send log file to the authors for help."
+msgstr ""
+
+#, fuzzy
+msgid "Browse tmp dir"
+msgstr " %s documents\n"
+
+#, python-format
+msgid "Browse temporary directory [%s]."
+msgstr ""
+
+#, fuzzy
+msgid "Browse work dir"
+msgstr " %s documents\n"
+
+#, python-format
+msgid "Browse user working directory [%s]."
+msgstr ""
+
+msgid "Browse internal work dir"
+msgstr ""
+
+#, python-format
+msgid "Browse internal working directory [%s]."
 msgstr ""
 
 msgid "Bug tracker"
@@ -14933,6 +15440,20 @@ msgid "No, only auto-open one editor for a new, unassociated problem."
 msgstr ""
 
 msgid ""
+"When editing progress notes, do you want GNUmed to\n"
+"show individual fields for each of the SOAP categories\n"
+"or do you want to use a text-editor like field for\n"
+"all SOAP categories which can then be set per line\n"
+"of input ?"
+msgstr ""
+
+msgid "Yes, show a dedicated field per SOAP category."
+msgstr ""
+
+msgid "No, use one field for all SOAP categories."
+msgstr ""
+
+msgid ""
 "When a patient is activated GNUmed can\n"
 "be told to switch to a specific plugin.\n"
 "\n"
@@ -15103,652 +15624,1061 @@ msgstr ""
 msgid "Yes, allow saving documents without any parts."
 msgstr ""
 
-msgid "No, require documents to have at least one part."
+msgid "No, require documents to have at least one part."
+msgstr ""
+
+msgid ""
+"After importing a new document do you\n"
+"want GNUmed to display the unique ID\n"
+"it auto-generated for that document ?\n"
+"\n"
+"This can be useful if you want to label the\n"
+"originals with that ID for later identification."
+msgstr ""
+
+msgid "Yes, display the ID generated for the new document after importing."
+msgstr ""
+
+msgid ""
+"No, do not display the ID generated for the new document after importing."
+msgstr ""
+
+msgid ""
+"After importing a new document do you\n"
+"want GNUmed to generate a unique ID\n"
+"(UUID) for that document ?\n"
+"\n"
+"This can be useful if you want to label the\n"
+"originals with that ID for later identification."
+msgstr ""
+
+msgid "Yes, generate a UUID for the new document after importing."
+msgstr ""
+
+msgid "No, do not generate a UUID for the new document after importing."
+msgstr ""
+
+msgid ""
+"GNUmed can show the document review dialog after\n"
+"calling the appropriate viewer for that document.\n"
+"\n"
+"Select the conditions under which you want\n"
+"GNUmed to do so:\n"
+"\n"
+" 0: never display the review dialog\n"
+" 1: always display the dialog\n"
+" 2: only if there is no previous review by me\n"
+" 3: only if there is no previous review at all\n"
+" 4: only if there is no review by the responsible reviewer\n"
+"\n"
+"Note that if a viewer is configured to not block\n"
+"GNUmed during document display the review dialog\n"
+"will actually appear in parallel to the viewer."
+msgstr ""
+
+msgid "Addresses (likely slow)"
+msgstr ""
+
+msgid "Branded drugs (as marketed)"
+msgstr ""
+
+msgid "Dynamic automatic hints"
+msgstr ""
+
+msgid "Codes and their respective terms"
+msgstr ""
+
+msgid "Communication channel types"
+msgstr ""
+
+msgid "Components of branded drugs (substances in brands)"
+msgstr ""
+
+msgid "Diagnostic organizations (path labs, ...)"
+msgstr ""
+
+msgid "Document templates (forms, letters, plots, ...)"
+msgstr ""
+
+msgid "Document types"
+msgstr ""
+
+msgid "Encounter types"
+msgstr ""
+
+msgid "Keyword based text expansion macros"
+msgstr ""
+
+msgid "Meta test/measurement types"
+msgstr ""
+
+msgid "Organizations with their units, addresses, and comm channels"
+msgstr ""
+
+msgid "Patient tags"
+msgstr ""
+
+msgid "Provinces (counties, territories, states, regions, ...)"
+msgstr ""
+
+msgid "String translations in the database"
+msgstr ""
+
+msgid "Test/measurement types"
+msgstr ""
+
+msgid "Vaccination targets (conditions known to be preventable by vaccination)"
+msgstr ""
+
+msgid "Vaccines"
+msgstr ""
+
+msgid "Workplace profiles (which plugins to load)"
+msgstr ""
+
+msgid "Consumable substances"
+msgstr ""
+
+msgid "Billable items"
+msgstr ""
+
+msgid "Reference data sources"
+msgstr ""
+
+msgid "Test/measurement panels/profiles"
+msgstr ""
+
+msgid "Master data management"
+msgstr ""
+
+msgid "Select the list you want to manage:"
+msgstr ""
+
+msgid "No DICOM viewer found."
+msgstr ""
+
+msgid "risk assessment"
+msgstr ""
+
+msgid "cardiovascular risk assessment"
+msgstr ""
+
+#, python-format
+msgid "[arriba] XML result not found in [%s]"
+msgstr ""
+
+msgid "ACS risk assessment calculator not configured."
+msgstr ""
+
+#, python-format
+msgid "Cannot run [%s] !"
+msgstr ""
+
+#, python-format
+msgid "There was a problem accessing the [arriba] result in [%s] !"
+msgstr ""
+
+msgid "[-9999]: <access violation test error>"
+msgstr ""
+
+msgid ""
+"This is a deliberate AccessDenied exception thrown to test the handling of "
+"access violations by means of a decorator."
+msgstr ""
+
+msgid "testing access check for non-existant <admin> role"
+msgstr ""
+
+msgid ""
+"This is a deliberate AccessDenied exception. You should not see this message "
+"because the role is checked in a decorator."
+msgstr ""
+
+msgid "pgAdmin III not found."
+msgstr ""
+
+msgid "Error reloading hook script."
+msgstr ""
+
+msgid "Save current log as..."
+msgstr ""
+
+msgid "log files"
+msgstr ""
+
+#, python-format
+msgid "Log file backed up as [%s]."
+msgstr ""
+
+msgid "Cannot start new encounter. No active patient."
+msgstr ""
+
+msgid "Cannot add health issue. No active patient."
+msgstr ""
+
+msgid "Cannot add episode. No active patient."
+msgstr ""
+
+msgid "Cannot add medication. No active patient."
+msgstr ""
+
+msgid "Cannot add allergy. No active patient."
+msgstr ""
+
+msgid "Cannot manage performed procedures. No active patient."
+msgstr ""
+
+msgid "Cannot manage hospitalizations. No active patient."
+msgstr ""
+
+#, fuzzy
+msgid "Cannot manage external care. No active patient."
+msgstr "There are no encounters for this episode."
+
+msgid "Cannot edit occupation. No active patient."
+msgstr ""
+
+#, fuzzy
+msgid "manage vaccinations"
+msgstr "Vaccination"
+
+msgid "Cannot add vaccinations. No active patient."
+msgstr ""
+
+#, fuzzy
+msgid "manage family history"
+msgstr " %s documents\n"
+
+msgid "Cannot manage family history. No active patient."
+msgstr ""
+
+#, fuzzy
+msgid "Cannot manage measurements. No active patient."
+msgstr "There are no encounters for this episode."
+
+msgid "calculate EDC"
+msgstr ""
+
+#, fuzzy
+msgid "manage suppressed hints"
+msgstr " %s documents\n"
+
+#, fuzzy
+msgid "Cannot manage suppressed hints. No active patient."
+msgstr "There are no encounters for this episode."
+
+#, fuzzy
+msgid "Cannot manage smoking status. No active patient."
+msgstr "There are no encounters for this episode."
+
+msgid "Cannot show EMR summary. No active patient."
+msgstr ""
+
+msgid "EMR Summary"
+msgstr ""
+
+#, fuzzy
+msgid "Cannot export EMR journal by last modification time. No active patient."
+msgstr "There are no encounters for this episode."
+
+msgid "journal_by_last_mod_time"
+msgstr ""
+
+msgid "Save patient's EMR journal as..."
+msgstr ""
+
+msgid "Error exporting patient EMR as journal by last modification time."
+msgstr ""
+
+msgid "EMR journal export"
+msgstr ""
+
+#, python-format
+msgid ""
+"Successfully exported EMR as journal by last modification time into file "
+"[%s]."
+msgstr ""
+
+msgid "Cannot export EMR journal. No active patient."
+msgstr ""
+
+msgid "emr-journal"
+msgstr "emr-journal"
+
+msgid "Error exporting patient EMR as chronological journal."
+msgstr ""
+
+#, python-format
+msgid "Successfully exported EMR as chronological journal into file [%s]."
+msgstr ""
+
+msgid "EMR journal by last modification time"
+msgstr ""
+
+msgid "EMR journal by encounter"
+msgstr ""
+
+msgid "Cannot add tag to person. No active patient."
+msgstr ""
+
+#, python-format
+msgid "Edit the comment on tag [%s]"
+msgstr ""
+
+msgid "Editing tag comment"
+msgstr ""
+
+msgid "Cannot export patient as GDT. No active patient."
+msgstr ""
+
+msgid "Exported demographics as GDT to clipboard."
+msgstr ""
+
+#, fuzzy
+msgid "Cannot export patient as VCARD. No active patient."
+msgstr "There are no encounters for this episode."
+
+msgid "Exported demographics as VCARD to clipboard."
+msgstr ""
+
+#, fuzzy
+msgid "Cannot export patient as XML (LinuxMedNews). No active patient."
+msgstr "There are no encounters for this episode."
+
+#, python-format
+msgid "Exported demographics to XML file [%s]."
+msgstr ""
+
+#, python-format
+msgid "Exported demographics to GDT file [%s]."
+msgstr ""
+
+#, python-format
+msgid "Exported demographics to VCARD file [%s]."
+msgstr ""
+
+msgid "Cannot add staff member. No active patient."
+msgstr ""
+
+msgid "Cannot delete patient. No patient active."
+msgstr ""
+
+msgid ""
+"You have to manually close this window to finalize shutting down GNUmed."
+msgstr ""
+
+msgid "This is so that you can inspect the console output at your leisure."
+msgstr ""
+
+msgid "no patient"
 msgstr ""
 
-msgid ""
-"After importing a new document do you\n"
-"want GNUmed to display the unique ID\n"
-"it auto-generated for that document ?\n"
-"\n"
-"This can be useful if you want to label the\n"
-"originals with that ID for later identification."
+#, python-format
+msgid "Saved screenshot to file [%s]."
 msgstr ""
 
-msgid "Yes, display the ID generated for the new document after importing."
+msgid "Python version check"
 msgstr ""
 
+#, python-format
 msgid ""
-"No, do not display the ID generated for the new document after importing."
+"You are running Python version\n"
+" %s\n"
+"\n"
+"However, GNUmed wants Python 2.7 to\n"
+"facilitate migration to Python 3.\n"
+"\n"
+"Please upgrade your Python interpreter !"
 msgstr ""
 
-msgid ""
-"After importing a new document do you\n"
-"want GNUmed to generate a unique ID\n"
-"(UUID) for that document ?\n"
-"\n"
-"This can be useful if you want to label the\n"
-"originals with that ID for later identification."
+msgid "GNUmed client"
 msgstr ""
 
-msgid "Yes, generate a UUID for the new document after importing."
+msgid "GNUmed stdout/stderr window"
 msgstr ""
 
-msgid "No, do not generate a UUID for the new document after importing."
+msgid "redirecting STDOUT/STDERR to this log window"
 msgstr ""
 
+#, python-format
 msgid ""
-"GNUmed can show the document review dialog after\n"
-"calling the appropriate viewer for that document.\n"
-"\n"
-"Select the conditions under which you want\n"
-"GNUmed to do so:\n"
-"\n"
-" 0: never display the review dialog\n"
-" 1: always display the dialog\n"
-" 2: only if there is no previous review by me\n"
-" 3: only if there is no previous review at all\n"
-" 4: only if there is no review by the responsible reviewer\n"
+"The database account [%s] cannot be used as a\n"
+"staff member login for GNUmed. There was an\n"
+"error retrieving staff details for it.\n"
 "\n"
-"Note that if a viewer is configured to not block\n"
-"GNUmed during document display the review dialog\n"
-"will actually appear in parallel to the viewer."
+"Please ask your administrator for help.\n"
 msgstr ""
 
-msgid "Addresses (likely slow)"
+msgid "Checking access permissions"
 msgstr ""
 
-msgid "Branded drugs (as marketed)"
+#, python-format
+msgid "Database <%s> on <%s>"
 msgstr ""
 
-msgid "Dynamic automatic hints"
+#, python-format
+msgid "Branch \"%s\" of praxis \"%s\"\n"
 msgstr ""
 
-msgid "Codes and their respective terms"
+msgid "Verifying database"
 msgstr ""
 
-msgid "Communication channel types"
+msgid "Connect"
 msgstr ""
 
-msgid "Components of branded drugs (substances in brands)"
+msgid "Yes, connect to this database."
 msgstr ""
 
-msgid "Diagnostic organizations (path labs, ...)"
+msgid "Disconnect"
 msgstr ""
 
-msgid "Document templates (forms, letters, plots, ...)"
+msgid "No, do not connect to this database."
 msgstr ""
 
-msgid "Document types"
+#, python-format
+msgid ""
+"Cannot find configuration file in any of:\n"
+"\n"
+" %s\n"
+"You may need to use the comand line option\n"
+"\n"
+"\t--conf-file=<FILE>"
 msgstr ""
 
-msgid "Encounter types"
+msgid "Checking configuration files"
 msgstr ""
 
-msgid "Keyword based text expansion macros"
+msgid "GNUmed startup"
 msgstr ""
 
-msgid "Meta test/measurement types"
+#, python-format
+msgid ""
+"The currently selected database language ('%s') does\n"
+"not match the current system language ('%s').\n"
+"\n"
+"Do you want to set the database language to '%s' ?\n"
 msgstr ""
 
-msgid "Organizations with their units, addresses, and comm channels"
+msgid "Checking database language settings"
 msgstr ""
 
-msgid "Patient tags"
+#, python-format
+msgid "Set your database language to [%s]."
 msgstr ""
 
-msgid "Provinces (counties, territories, states, regions, ...)"
+msgid "Don't set"
 msgstr ""
 
-msgid "String translations in the database"
+msgid "Do not set your database language now."
 msgstr ""
 
-msgid "Test/measurement types"
+msgid "Remember to ignore language mismatch"
 msgstr ""
 
-msgid "Vaccination targets (conditions known to be preventable by vaccination)"
+#, python-format
+msgid ""
+"Checking this will make GNUmed remember your decision\n"
+"until the system language is changed.\n"
+"\n"
+"You can also reactivate this inquiry by removing the\n"
+"corresponding \"ignore\" option from the configuration file\n"
+"\n"
+" [%s]"
 msgstr ""
 
-msgid "Vaccines"
+#, fuzzy
+msgid "generic activity"
+msgstr "&Sensitivity"
+
+msgid "Access denied"
 msgstr ""
 
-msgid "Workplace profiles (which plugins to load)"
+#, python-format
+msgid ""
+"Your account is not set up to access this part of GNUmed:\n"
+"\n"
+"  [%s]"
 msgstr ""
 
-msgid "Consumable substances"
+msgid "Save timeline as SVG image under..."
 msgstr ""
 
-msgid "Billable items"
+msgid "timeline image"
 msgstr ""
 
-msgid "Reference data sources"
+msgid "timeline data"
 msgstr ""
 
-msgid "Test/measurement panels/profiles"
+msgid "Cannot change notebook tabs. No active patient."
 msgstr ""
 
-msgid "Master data management"
+msgid "add plugin ..."
 msgstr ""
 
-msgid "Select the list you want to manage:"
+msgid "Cannot activate Allergy Manager. No active patient."
 msgstr ""
 
-msgid "No DICOM viewer found."
+msgid "RR ?"
 msgstr ""
 
-msgid "risk assessment"
+#, python-format
+msgid "BMI %s"
 msgstr ""
 
-msgid "cardiovascular risk assessment"
+msgid "BMI ?"
 msgstr ""
 
-#, python-format
-msgid "[arriba] XML result not found in [%s]"
+msgid "GFR ?"
 msgstr ""
 
-msgid "ACS risk assessment calculator not configured."
+#, python-format
+msgid "GFR %s"
 msgstr ""
 
 #, python-format
-msgid "Cannot run [%s] !"
+msgid "?EDC %s"
 msgstr ""
 
 #, python-format
-msgid "There was a problem accessing the [arriba] result in [%s] !"
+msgid "EDC %s"
 msgstr ""
 
-msgid "[-9999]: <access violation test error>"
+msgid "<Age>"
 msgstr ""
 
-msgid ""
-"This is a deliberate AcessDenied exception thrown to test the handling of "
-"access violations by means of a decorator."
+#, fuzzy
+msgid "no patient selected"
+msgstr "Starting patient encounter"
+
+#, fuzzy, python-format
+msgid "Gender: %s (%s) - %s\n"
+msgstr "Encounters: %s (%s - %s):"
+
+#, fuzzy, python-format
+msgid "Born: %s\n"
+msgstr "Exported: %s\n"
+
+#, fuzzy, python-format
+msgid "Died: %s\n"
+msgstr "Exported: %s\n"
+
+#, fuzzy, python-format
+msgid "At age: %s\n"
+msgstr "Patient: %s (%s), No: %s\n"
+
+msgid " (date of birth and age are estimated)\n"
 msgstr ""
 
-msgid "testing access check for non-existant <admin> role"
+#, python-format
+msgid "%(sex)s  %(dob)s (%(age)s today !)"
 msgstr ""
 
 msgid ""
-"This is a deliberate AcessDenied exception. You should not see this message "
-"because the role is checked in a decorator."
+"\n"
+"Today is the patient's birthday !\n"
+"\n"
 msgstr ""
 
-msgid "pgAdmin III not found."
+#, python-format
+msgid "Birthday: %s ago\n"
 msgstr ""
 
-msgid "Error reloading hook script."
+#, python-format
+msgid "Birthday: in %s\n"
 msgstr ""
 
-msgid "Save current log as..."
+#, fuzzy, python-format
+msgid "Age: %s\n"
+msgstr "Exported: %s\n"
+
+#, python-format
+msgid "last confirmed %s\n"
 msgstr ""
 
-msgid "log files"
+#, python-format
+msgid "Comment (%s): %%s"
 msgstr ""
 
 #, python-format
-msgid "Log file backed up as [%s]."
+msgid " - expires %s"
 msgstr ""
 
-msgid "Cannot start new encounter. No active patient."
+#, python-format
+msgid ""
+"Due for %s (since %s%s):\n"
+"%s%s\n"
+"Patient: %s\n"
+"Reminder by: %s"
 msgstr ""
 
-msgid "Cannot add health issue. No active patient."
+#, fuzzy
+msgid "Clinical reminder"
+msgstr "clinically relevant"
+
+#, fuzzy
+msgid "Adding automatic dynamic hint"
+msgstr " %s documents\n"
+
+#, fuzzy
+msgid "Editing automatic dynamic hint"
+msgstr " %s documents\n"
+
+#, fuzzy
+msgid "Deleting automatic dynamic hint"
+msgstr " %s documents\n"
+
+#, python-format
+msgid ""
+"Really delete this dynamic hint ?\n"
+"\n"
+" [%s]"
 msgstr ""
 
-msgid "Cannot add episode. No active patient."
+#, fuzzy
+msgid "deleting a dynamic hint"
+msgstr " %s documents\n"
+
+msgid ""
+"\n"
+"Dynamic hints registered with GNUmed.\n"
 msgstr ""
 
-msgid "Cannot add medication. No active patient."
+#, fuzzy
+msgid "Showing dynamic hints."
+msgstr " %s documents\n"
+
+msgid "Hint"
 msgstr ""
 
-msgid "Cannot add allergy. No active patient."
+msgid "Browse and install automatic dynamic hints data packs"
 msgstr ""
 
-msgid "Cannot manage performed procedures. No active patient."
+#, fuzzy, python-format
+msgid "By: %s"
+msgstr "Exported: %s\n"
+
+msgid "No entry in field <Source>."
 msgstr ""
 
-msgid "Cannot manage hospitalizations. No active patient."
+msgid "No entry in field <Conditions>."
 msgstr ""
 
 #, fuzzy
-msgid "Cannot manage external care. No active patient."
-msgstr "There are no encounters for this episode."
+msgid "No entry in field <Description>."
+msgstr "health issue: %s"
 
-msgid "Cannot edit occupation. No active patient."
+msgid "No entry in field <Title>."
+msgstr ""
+
+#, fuzzy
+msgid "creating a new dynamic hint"
+msgstr " %s documents\n"
+
+msgid "updating an existing dynamic hint"
 msgstr ""
 
 #, fuzzy
-msgid "manage vaccinations"
-msgstr "Vaccination"
+msgid "Deleting suppressed dynamic hint"
+msgstr " %s documents\n"
 
-msgid "Cannot add vaccinations. No active patient."
+#, python-format
+msgid ""
+"Really delete the suppression of this dynamic hint ?\n"
+"\n"
+" [%s]"
 msgstr ""
 
-msgid "Cannot manage family history. No active patient."
+msgid ""
+"\n"
+"Dynamic hints suppressed in this patient.\n"
 msgstr ""
 
 #, fuzzy
-msgid "Cannot manage measurements. No active patient."
-msgstr "There are no encounters for this episode."
+msgid "Showing suppressed dynamic hints."
+msgstr " %s documents\n"
 
-msgid "calculate EDC"
+msgid "Rationale"
 msgstr ""
 
 #, fuzzy
-msgid "manage suppressed hints"
+msgid "Manage hints"
 msgstr " %s documents\n"
 
 #, fuzzy
-msgid "Cannot manage suppressed hints. No active patient."
-msgstr "There are no encounters for this episode."
+msgid "Manage automatic dynamic hints"
+msgstr " %s documents\n"
 
-msgid "Cannot show EMR summary. No active patient."
+msgid "Cannot delete family history item."
 msgstr ""
 
-msgid "EMR Summary"
+msgid "Family history of this patient."
 msgstr ""
 
-msgid "Cannot export EMR journal. No active patient."
+msgid "Showing family history."
 msgstr ""
 
-msgid "Save patient's EMR journal as..."
+msgid "Fatal"
 msgstr ""
 
-msgid "Error exporting patient EMR as chronological journal."
+msgid "Noted"
 msgstr ""
 
-msgid "EMR journal export"
+msgid "Died"
 msgstr ""
 
-#, python-format
-msgid "Successfully exported EMR as chronological journal into file [%s]."
+msgid "Adding family history"
 msgstr ""
 
-msgid "Cannot add tag to person. No active patient."
+msgid "Editing family history"
 msgstr ""
 
-#, python-format
-msgid "Edit the comment on tag [%s]"
+msgid ""
+"\n"
+"Please select the default drug data source from the list below.\n"
+"\n"
+"Note that to actually use it you need to have the database installed, too."
 msgstr ""
 
-msgid "Editing tag comment"
+msgid "Configuring default drug data source"
 msgstr ""
 
-msgid "Cannot export patient as GDT. No active patient."
+msgid "No default drug database configured."
 msgstr ""
 
-msgid "Exported demographics as GDT to clipboard."
+msgid "There is no default drug database configured."
 msgstr ""
 
-#, fuzzy
-msgid "Cannot export patient as VCARD. No active patient."
-msgstr "There are no encounters for this episode."
-
-msgid "Exported demographics as VCARD to clipboard."
+msgid "Jumping to drug database"
 msgstr ""
 
-#, fuzzy
-msgid "Cannot export patient as XML (LinuxMedNews). No active patient."
-msgstr "There are no encounters for this episode."
-
-#, python-format
-msgid "Exported demographics to XML file [%s]."
+msgid "Cannot import drugs from IFAP into chart without chart."
 msgstr ""
 
 #, python-format
-msgid "Exported demographics to GDT file [%s]."
+msgid "Cannot call IFAP via [%s]."
 msgstr ""
 
 #, python-format
-msgid "Exported demographics to VCARD file [%s]."
-msgstr ""
-
-msgid "Cannot add staff member. No active patient."
+msgid "Cannot create IFAP <-> GNUmed transfer file [%s]."
 msgstr ""
 
-msgid "Cannot delete patient. No patient active."
+msgid "Current medication"
 msgstr ""
 
 msgid ""
-"You have to manually close this window to finalize shutting down GNUmed."
+"\n"
+"The ATC codes as known to GNUmed.\n"
 msgstr ""
 
-msgid "This is so that you can inspect the console output at your leisure."
+msgid "Showing ATC codes."
 msgstr ""
 
-msgid "no patient"
+msgid "Choose an ATC import config file"
 msgstr ""
 
-#, python-format
-msgid "Saved screenshot to file [%s]."
+msgid "config files"
 msgstr ""
 
-msgid "GNUmed client"
+msgid "importing ATC reference data"
 msgstr ""
 
-msgid "GNUmed stdout/stderr window"
+msgid "Successfully imported ATC reference data."
 msgstr ""
 
-msgid "redirecting STDOUT/STDERR to this log window"
+msgid "Importing ATC reference data failed."
 msgstr ""
 
-#, python-format
-msgid ""
-"The database account [%s] cannot be used as a\n"
-"staff member login for GNUmed. There was an\n"
-"error retrieving staff details for it.\n"
-"\n"
-"Please ask your administrator for help.\n"
+msgid "Select an ATC (Anatomical-Therapeutic-Chemical) code."
 msgstr ""
 
-msgid "Checking access permissions"
+msgid "Cannot edit this substance. It is in use."
 msgstr ""
 
-#, python-format
-msgid "Database <%s> on <%s>"
+msgid "Adding new consumable substance"
 msgstr ""
 
-#, python-format
-msgid "Branch \"%s\" of praxis \"%s\"\n"
+msgid "Editing consumable substance"
 msgstr ""
 
-msgid "Verifying database"
+msgid "Cannot delete this substance. It is in use."
 msgstr ""
 
-msgid "Connect"
+msgid ""
+"\n"
+"These are the consumable substances registered with GNUmed.\n"
 msgstr ""
 
-msgid "Yes, connect to this database."
+msgid "Import"
 msgstr ""
 
-msgid "Disconnect"
+msgid "Import consumable substances from a drug database."
 msgstr ""
 
-msgid "No, do not connect to this database."
+msgid "Cannot save consumable substance. Missing essential input."
 msgstr ""
 
 #, python-format
-msgid ""
-"Cannot find configuration file in any of:\n"
-"\n"
-" %s\n"
-"You may need to use the comand line option\n"
-"\n"
-"\t--conf-file=<FILE>"
+msgid "Cannot save consumable substance. %s"
 msgstr ""
 
-msgid "Checking configuration files"
+msgid "The substance with optional strength."
 msgstr ""
 
-msgid "GNUmed startup"
+msgid "Cannot remove this component from the drug. It is in use."
 msgstr ""
 
-#, python-format
 msgid ""
-"The currently selected database language ('%s') does\n"
-"not match the current system language ('%s').\n"
 "\n"
-"Do you want to set the database language to '%s' ?\n"
+"These are the components in the drug brands known to GNUmed.\n"
 msgstr ""
 
-msgid "Checking database language settings"
+msgid "Showing drug brand components."
 msgstr ""
 
-msgid "Set"
+msgid "Adding new drug component"
 msgstr ""
 
-#, python-format
-msgid "Set your database language to [%s]."
+msgid "Editing drug component"
 msgstr ""
 
-msgid "Don't set"
+msgid "Cannot edit drug component. It is in use."
 msgstr ""
 
-msgid "Do not set your database language now."
+msgid "Cannot save drug component. Invalid or missing essential input."
 msgstr ""
 
-msgid "Remember to ignore language mismatch"
+msgid "A drug component with optional strength."
+msgstr ""
+
+msgid "Editing drug"
 msgstr ""
 
 #, python-format
 msgid ""
-"Checking this will make GNUmed remember your decision\n"
-"until the system language is changed.\n"
+"Cannot edit the branded drug product\n"
 "\n"
-"You can also reactivate this inquiry by removing the\n"
-"corresponding \"ignore\" option from the configuration file\n"
+" \"%s\" (%s)\n"
 "\n"
-" [%s]"
+"because it is currently taken by patients.\n"
 msgstr ""
 
-#, fuzzy
-msgid "generic activity"
-msgstr "&Sensitivity"
-
-msgid "Access denied"
+msgid "Adding new drug brand"
 msgstr ""
 
-#, python-format
-msgid ""
-"Your account is not set up to access this part of GNUmed:\n"
-"\n"
-"  [%s]"
+msgid "Editing drug brand"
 msgstr ""
 
-msgid "Save timeline as SVG image under..."
+msgid "Manage consumable substances"
 msgstr ""
 
-msgid "timeline image"
+msgid "not in use"
 msgstr ""
 
-msgid "timeline data"
+#, python-format
+msgid "ATC: %s\n"
 msgstr ""
 
-msgid "Cannot change notebook tabs. No active patient."
+msgid "Editing medication"
 msgstr ""
 
-msgid "add plugin ..."
+#, python-format
+msgid ""
+"Cannot edit the medication\n"
+"\n"
+" \"%s\" (%s)\n"
+"\n"
+"because it is a vaccine. Please edit it\n"
+"from the vaccine management section !\n"
 msgstr ""
 
-msgid "Cannot activate Allergy Manager. No active patient."
+msgid "Deleting medication"
 msgstr ""
 
-msgid "<Age>"
+#, python-format
+msgid ""
+"Cannot delete the medication\n"
+"\n"
+" \"%s\" (%s)\n"
+"\n"
+"because it is a vaccine. Please delete it\n"
+"from the vaccine management section !\n"
 msgstr ""
 
-#, fuzzy
-msgid "no patient selected"
-msgstr "Starting patient encounter"
-
-#, fuzzy, python-format
-msgid "Gender: %s (%s) - %s\n"
-msgstr "Encounters: %s (%s - %s):"
-
-#, fuzzy, python-format
-msgid "Born: %s\n"
-msgstr "Exported: %s\n"
-
-#, fuzzy, python-format
-msgid "Died: %s\n"
-msgstr "Exported: %s\n"
+msgid ""
+"\n"
+"These are the drug brands known to GNUmed.\n"
+msgstr ""
 
-#, fuzzy, python-format
-msgid "At age: %s\n"
-msgstr "Patient: %s (%s), No: %s\n"
+msgid "Showing branded drugs."
+msgstr ""
 
-msgid " (date of birth and age are estimated)\n"
+msgid "Import substances and brands from a drug database."
 msgstr ""
 
-#, python-format
-msgid "%(sex)s  %(dob)s (%(age)s today !)"
+msgid "Managing components of a drug"
 msgstr ""
 
+#, python-format
 msgid ""
+"Cannot manage the components of the branded drug product\n"
 "\n"
-"Today is the patient's birthday !\n"
+" \"%s\" (%s)\n"
 "\n"
+"because it is currently taken by patients.\n"
 msgstr ""
 
-#, python-format
-msgid "Birthday: %s ago\n"
+msgid "Pick the substances which are components of this drug."
 msgstr ""
 
-#, python-format
-msgid "Birthday: in %s\n"
+msgid "Components of drug"
 msgstr ""
 
-#, fuzzy, python-format
-msgid "Age: %s\n"
-msgstr "Exported: %s\n"
-
 #, python-format
-msgid "last confirmed %s\n"
+msgid ""
+"Adjust the components of \"%s\"\n"
+"\n"
+"The drug must contain at least one component. Any given\n"
+"substance can only be included once per drug."
+msgstr ""
+
+msgid "Managing components of a drug ..."
 msgstr ""
 
-#, python-format
-msgid "Comment (%s): %%s"
+msgid "Cannot edit drug brand. It is in use."
 msgstr ""
 
-#, python-format
-msgid " - expires %s"
+msgid "Checking brand data"
 msgstr ""
 
 #, python-format
 msgid ""
-"Due for %s (since %s%s):\n"
-"%s%s\n"
-"Patient: %s\n"
-"Reminder by: %s"
+"The brand information you entered:\n"
+"\n"
+" [%s %s]\n"
+"\n"
+"already exists as a drug product."
 msgstr ""
 
-#, fuzzy
-msgid "Clinical reminder"
-msgstr "clinically relevant"
-
-#, fuzzy
-msgid "Adding automatic dynamic hint"
-msgstr " %s documents\n"
-
-#, fuzzy
-msgid "Editing automatic dynamic hint"
-msgstr " %s documents\n"
-
-#, fuzzy
-msgid "Deleting automatic dynamic hint"
-msgstr " %s documents\n"
-
-#, python-format
 msgid ""
-"Really delete this dynamic hint ?\n"
+"You have not selected any substances\n"
+"as drug components.\n"
 "\n"
-" [%s]"
+"Without components you will not be able to\n"
+"use this drug for documenting patient care.\n"
+"\n"
+"Are you sure you want to save\n"
+"it without components ?"
 msgstr ""
 
-#, fuzzy
-msgid "deleting a dynamic hint"
-msgstr " %s documents\n"
+msgid "Cannot save branded drug. Invalid or missing essential input."
+msgstr ""
 
 msgid ""
+"The brand name of the drug.\n"
 "\n"
-"Dynamic hints registered with GNUmed.\n"
+"Note: a brand name will need to be linked to\n"
+"one or more components before it can be used,\n"
+"except in the case of fake (generic) vaccines."
 msgstr ""
 
-#, fuzzy
-msgid "Showing dynamic hints."
-msgstr " %s documents\n"
+msgid "No EMR data loaded."
+msgstr ""
 
-msgid "Hint"
+msgid "EMR text dump"
 msgstr ""
 
-msgid "Browse and install automatic dynamic hints data packs"
+msgid "Currently there is no active patient. Cannot retrieve EMR text."
 msgstr ""
 
-#, fuzzy, python-format
-msgid "By: %s"
-msgstr "Exported: %s\n"
+msgid "SOAP Editor Actions:"
+msgstr ""
 
-msgid "No entry in field <Source>."
+msgid "&Sort lines"
 msgstr ""
 
-msgid "No entry in field <Conditions>."
+msgid "Sort lines by SOAP category"
 msgstr ""
 
-#, fuzzy
-msgid "No entry in field <Description>."
-msgstr "health issue: %s"
+msgid "e&Xpand keyword"
+msgstr ""
 
-msgid "No entry in field <Title>."
+msgid "Expand keyword / macro"
 msgstr ""
 
 #, fuzzy
-msgid "creating a new dynamic hint"
-msgstr " %s documents\n"
+msgid "as &Subjective"
+msgstr "Subjective"
 
-msgid "updating an existing dynamic hint"
+msgid "Set line to category \"Subjective\""
 msgstr ""
 
 #, fuzzy
-msgid "Deleting suppressed dynamic hint"
-msgstr " %s documents\n"
+msgid "as &Objective"
+msgstr "Objective"
 
-#, python-format
-msgid ""
-"Really delete the suppression of this dynamic hint ?\n"
-"\n"
-" [%s]"
+msgid "Set line to category \"Objective\""
 msgstr ""
 
-msgid ""
-"\n"
-"Dynamic hints suppressed in this patient.\n"
+#, fuzzy
+msgid "as &Assessment"
+msgstr "Assessment"
+
+msgid "Set line to category \"Assessment\""
 msgstr ""
 
 #, fuzzy
-msgid "Showing suppressed dynamic hints."
-msgstr " %s documents\n"
+msgid "as &Plan"
+msgstr "Plan"
 
-msgid "Rationale"
+msgid "Set line to category \"Plan\""
 msgstr ""
 
 #, fuzzy
-msgid "Manage hints"
-msgstr " %s documents\n"
+msgid "as &Unspecified"
+msgstr "soap_Objective"
+
+msgid "Set line to category \"unspecified\""
+msgstr ""
 
 #, fuzzy
-msgid "Manage automatic dynamic hints"
-msgstr " %s documents\n"
+msgid "as ad&Ministrative"
+msgstr "Administrative"
 
-msgid "Cannot delete family history item."
+msgid "Set line to category \"administrative\""
 msgstr ""
 
-msgid "Family history of this patient."
+msgid "→ &Clipboard"
 msgstr ""
 
-msgid "Showing family history."
+msgid "Copy line to clipboard"
 msgstr ""
 
-msgid "Fatal"
+msgid "→ +Clipboard+"
 msgstr ""
 
-msgid "Noted"
+msgid "Add line to clipboard"
 msgstr ""
 
-msgid "Died"
+msgid "Copy content to clipboard"
 msgstr ""
 
-msgid "Adding family history"
+msgid "Add content to clipboard"
 msgstr ""
 
-msgid "Editing family history"
+msgid "Copy selection to clipboard"
 msgstr ""
 
-msgid "No EMR data loaded."
+#, fuzzy
+msgid "Add selection to clipboard"
+msgstr "The currently selected patient is:"
+
+msgid "&Line ..."
 msgstr ""
 
-msgid "EMR text dump"
+msgid "&Text ..."
 msgstr ""
 
-msgid "Currently there is no active patient. Cannot retrieve EMR text."
+msgid "&Region ..."
 msgstr ""
 
 msgid "Show HL7 file:"
@@ -15760,6 +16690,10 @@ msgstr ""
 msgid "Extracting HL7 from XML file"
 msgstr ""
 
+#, python-format
+msgid "Unwrapped HL7 into [%s] from [%s]."
+msgstr ""
+
 msgid "Select HL7 file for staging:"
 msgstr ""
 
@@ -15784,6 +16718,10 @@ msgid ""
 " %s"
 msgstr ""
 
+#, python-format
+msgid "Staged HL7 from [%s]."
+msgstr ""
+
 msgid "Importing HL7 data"
 msgstr ""
 
@@ -15828,9 +16766,6 @@ msgstr ""
 msgid "Identification"
 msgstr ""
 
-msgid "Show"
-msgstr ""
-
 msgid "Show formatted HL7"
 msgstr ""
 
@@ -15879,6 +16814,20 @@ msgstr "The currently selected patient is:"
 msgid "Plot current selection"
 msgstr "The currently selected patient is:"
 
+#, fuzzy
+msgid ""
+"Select the measurements panel to show in the top pane for continuous "
+"monitoring."
+msgstr "There are no encounters for this episode."
+
+#, fuzzy
+msgid "Lab panel"
+msgstr " %s documents\n"
+
+#, fuzzy
+msgid "Configuring continuous monitoring measurements panel"
+msgstr "Measurements and Results:"
+
 msgid "No default Gnuplot script template selected."
 msgstr ""
 
@@ -15901,10 +16850,25 @@ msgstr ""
 msgid "Cannot plot without a plot script."
 msgstr ""
 
-msgid "Time"
+msgid "Result"
 msgstr ""
 
-msgid "Result"
+msgid "Perform on selected results:"
+msgstr ""
+
+msgid "Review and &sign"
+msgstr ""
+
+msgid "Export to &file"
+msgstr ""
+
+msgid "Export to &clipboard"
+msgstr ""
+
+msgid "Panels"
+msgstr ""
+
+msgid "List"
 msgstr ""
 
 msgid ""
@@ -15981,18 +16945,6 @@ msgstr ""
 msgid "All: by &Day"
 msgstr ""
 
-msgid "Perform on selected results:"
-msgstr ""
-
-msgid "Review and &sign"
-msgstr ""
-
-msgid "Export to &file"
-msgstr ""
-
-msgid "Export to &clipboard"
-msgstr ""
-
 #, python-format
 msgid "%s results selected. Too many to list individually."
 msgstr ""
@@ -16173,6 +17125,10 @@ msgstr ""
 msgid "EMR Actions:"
 msgstr ""
 
+#, fuzzy
+msgid "Print EMR"
+msgstr "Exported: %s\n"
+
 msgid "Create health issue"
 msgstr ""
 
@@ -16321,11 +17277,42 @@ msgstr ""
 msgid "&New notes %s"
 msgstr ""
 
+msgid "Find text in EMR Journal"
+msgstr ""
+
+#, fuzzy
+msgid "Modified"
+msgstr "modified entry"
+
+#, fuzzy
+msgid "Clinical time"
+msgstr "clinically relevant"
+
+msgid "Who / When"
+msgstr ""
+
+#, python-format
 msgid ""
-"An error occurred while retrieving the EMR\n"
-"in journal form for the active patient.\n"
+"Chart entry: %s       [#%s in %s]\n"
+" Modified: %s by %s (%s rev %s)\n"
 "\n"
-"Please check the log file for details."
+"Health issue: %s%s\n"
+"Episode: %s%s\n"
+"Encounter: %s%s"
+msgstr ""
+
+#, python-format
+msgid ""
+"%s\n"
+"\n"
+"                        rev %s (%s) by %s in <%s>"
+msgstr ""
+
+#, python-format
+msgid ""
+"%s\n"
+"%s\n"
+"%s"
 msgstr ""
 
 msgid "Editing tag"
@@ -16454,18 +17441,15 @@ msgid ""
 "%s\n"
 msgstr ""
 
-msgid "This patient DID receive care."
+msgid "This patient DID receive care here."
 msgstr ""
 
-msgid "This person did NOT receive care."
+msgid "This person did NOT receive care here."
 msgstr ""
 
 msgid "Disabling person"
 msgstr ""
 
-msgid "Disabling patient"
-msgstr ""
-
 msgid "Type or select a last name (family name/surname)."
 msgstr ""
 
@@ -16710,6 +17694,9 @@ msgid ""
 "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
 msgstr ""
 
+msgid "Connecting to backend"
+msgstr ""
+
 #, python-format
 msgid ""
 "Unable to connect to database:\n"
@@ -16918,9 +17905,6 @@ msgstr ""
 msgid "Office"
 msgstr ""
 
-msgid "State"
-msgstr ""
-
 msgid "Zip"
 msgstr ""
 
@@ -16977,7 +17961,7 @@ msgstr ""
 msgid "EMR Timeline"
 msgstr ""
 
-msgid "Show &Timeline"
+msgid "EMR &Timeline"
 msgstr ""
 
 msgid "Overview"
@@ -17004,10 +17988,10 @@ msgstr ""
 msgid "&SimpleNotes"
 msgstr ""
 
-msgid "EMR tree"
+msgid "EMR Tree"
 msgstr ""
 
-msgid "EMR &Tree (topical)"
+msgid "EMR &Tree"
 msgstr ""
 
 msgid "Print Manager"
@@ -17016,6 +18000,13 @@ msgstr ""
 msgid "&Print Manager"
 msgstr ""
 
+#, fuzzy
+msgid "EMR Journal"
+msgstr "emr-journal"
+
+msgid "EMR &Journal (list)"
+msgstr ""
+
 msgid "Appointments"
 msgstr ""
 
@@ -17028,6 +18019,12 @@ msgstr ""
 msgid "Show &lab journal"
 msgstr ""
 
+msgid "PACS"
+msgstr ""
+
+msgid "&PACS"
+msgstr ""
+
 msgid "Cardiac Devices"
 msgstr ""
 
@@ -17100,10 +18097,7 @@ msgstr ""
 msgid "User &manual (local)"
 msgstr ""
 
-msgid "EMR journal"
-msgstr ""
-
-msgid "EMR &Journal (chronological)"
+msgid "EMR &Journal (text)"
 msgstr ""
 
 msgid "Demographics"
@@ -17264,6 +18258,10 @@ msgstr ""
 msgid "Show &ExamplePlugin"
 msgstr ""
 
+#, fuzzy
+msgid "Find text"
+msgstr "inactive"
+
 msgid "gm_ctl_client: starting slave GNUmed client"
 msgstr "gm_ctl_client: starting slave GNUmed client"
 
@@ -17299,16 +18297,90 @@ msgid "Abort and do NOT connect to GNUmed."
 msgstr "Abort and do NOT connect to GNUmed."
 
 #, fuzzy
-#~ msgid "%s: %s%s%s (%s ago)"
-#~ msgstr "%s this week (%s of %s)"
+#~ msgid ""
+#~ "Health issue: %s%s%s (%s versions)\n"
+#~ "\n"
+#~ msgstr "health issue: %s"
 
 #, fuzzy
-#~ msgid "Clinical hint"
-#~ msgstr "clinically relevant"
+#~ msgid ""
+#~ "Encounter: %s%s%s (%s versions)\n"
+#~ "\n"
+#~ msgstr "Encounters: %s (%s - %s):"
+
+#~ msgid "soap_S"
+#~ msgstr "soap_S"
+
+#~ msgid "soap_O"
+#~ msgstr "soap_O"
+
+#~ msgid "soap_A"
+#~ msgstr "soap_A"
+
+#~ msgid "soap_P"
+#~ msgstr "soap_P"
 
 #, fuzzy
-#~ msgid "file: %s (%s/)"
-#~ msgstr "Patient: %s (%s), No: %s\n"
+#~ msgid "soap_U"
+#~ msgstr "soap_S"
+
+#~ msgid "soap_Subjective"
+#~ msgstr "soap_Subjective"
+
+#~ msgid "soap_Objective"
+#~ msgstr "soap_Objective"
+
+#~ msgid "soap_Assessment"
+#~ msgstr "soap_Assessment"
+
+#~ msgid "soap_Plan"
+#~ msgstr "soap_Plan"
+
+#, fuzzy
+#~ msgid "soap_Unspecified"
+#~ msgstr "soap_Objective"
+
+#~ msgid "soap_Administrative"
+#~ msgstr "soap_Administrative"
+
+#, fuzzy
+#~ msgid "&Unknown"
+#~ msgstr "unknown reaction"
+
+#, fuzzy
+#~ msgid "Last confirmed: %s%s"
+#~ msgstr "Last worked on: %s\n"
+
+#~ msgid ""
+#~ "Cannot connect to configuration database with:\n"
+#~ "\n"
+#~ "[%s]"
+#~ msgstr ""
+#~ "Cannot connect to configuration database with:\n"
+#~ "\n"
+#~ "[%s]"
+
+#~ msgid ""
+#~ "Cannot connect to database with:\n"
+#~ "\n"
+#~ "[%s]"
+#~ msgstr ""
+#~ "Cannot connect to database with:\n"
+#~ "\n"
+#~ "[%s]"
+
+#~ msgid "No product information available."
+#~ msgstr "No product information available."
+
+#, fuzzy
+#~ msgid ""
+#~ "\n"
+#~ "Select the measurements panel to show in the top pane.\n"
+#~ msgstr "There are no encounters for this episode."
+
+#, fuzzy
+#~ msgid "%s: %s%s%s (%s ago)"
+#~ msgstr "%s this week (%s of %s)"
 
 #, fuzzy
 #~ msgid "Faxed to %s: %s"
@@ -17321,9 +18393,6 @@ msgstr "Abort and do NOT connect to GNUmed."
 #~ msgid "SQL: %s"
 #~ msgstr "SQL: %s"
 
-#~ msgid "cannot connect to service [%s]"
-#~ msgstr "cannot connect to service [%s]"
-
 #, fuzzy
 #~ msgid "List bills"
 #~ msgstr "first name"
@@ -17352,9 +18421,6 @@ msgstr "Abort and do NOT connect to GNUmed."
 #~ msgid "Since when do we know about this allergy. Mostly \"today\"."
 #~ msgstr "Since when do we know about this allergy. Mostly \"today\"."
 
-#~ msgid "Date Noted"
-#~ msgstr "Date Noted"
-
 #, fuzzy
 #~ msgid "Encounter #"
 #~ msgstr "Encounter"
diff --git a/client/po/es-gnumed.mo b/client/po/es-gnumed.mo
index 6e8a439..5fe6cd8 100644
Binary files a/client/po/es-gnumed.mo and b/client/po/es-gnumed.mo differ
diff --git a/client/po/es.po b/client/po/es.po
index cf8888e..3e14f36 100644
--- a/client/po/es.po
+++ b/client/po/es.po
@@ -9,18 +9,18 @@ msgid ""
 msgstr ""
 "Project-Id-Version: es\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-11-20 11:17+0100\n"
-"PO-Revision-Date: 2015-11-19 20:28-0300\n"
-"Last-Translator: fredyrivera <fredyrivera at gmail.com>\n"
+"POT-Creation-Date: 2016-03-17 16:27+0100\n"
+"PO-Revision-Date: 2016-02-24 18:28+0100\n"
+"Last-Translator: Karsten Hilbert <Karsten.Hilbert at gmx.net>\n"
 "Language-Team: colombiano <es at li.org>\n"
 "Language: es\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2015-10-26 22:21+0000\n"
-"X-Generator: Poedit 1.8.4\n"
-"Generated-By: pygettext.py 1.4\n"
+"X-Launchpad-Export-Date: 2016-02-19 21:36+0000\n"
+"X-Generator: Poedit 1.8.3\n"
 "X-Poedit-Bookmarks: -1,4225,-1,-1,-1,-1,-1,-1,-1,-1\n"
+"Generated-By: pygettext.py 1.4\n"
 
 #, python-format
 msgid "unknown test status [%s]"
@@ -267,7 +267,7 @@ msgid "Image files"
 msgstr "Archivos de imágenes"
 
 msgid "Export to Image"
-msgstr "Exportar como imagen"
+msgstr "Exporto como imagen"
 
 #, python-format
 msgid "File '%s' exists. Overwrite?"
@@ -554,22 +554,22 @@ msgid "Import timeline..."
 msgstr "Importar liena de tiempo ..."
 
 msgid "&Export Current view to Image..."
-msgstr "&Exportar la vista actual a imagen ..."
+msgstr "&Exporto la vista actual a imagen ..."
 
 msgid "Export the current view to a PNG image"
-msgstr "Exportar la vista actual a imagen PNG"
+msgstr "Exporto la vista actual a imagen PNG"
 
 msgid "&Export Whole Timeline to Images..."
-msgstr "&Exportar la liena de tiempo completa a imágenes ..."
+msgstr "&Exporto la linea de tiempo completa a imágenes ..."
 
 msgid "Export whole Timeline to PNG images"
-msgstr "Exportar la linea de tiempo completa a imágenes PNG"
+msgstr "Exporto la linea de tiempo completa a imágenes PNG"
 
 msgid "&Export to SVG..."
-msgstr "&Exportar a SVG ..."
+msgstr "&Exporto a SVG ..."
 
 msgid "Export the current view to a SVG image"
-msgstr "Exportar la vista actual a imagen SVG"
+msgstr "Exporto la vista actual a imagen SVG"
 
 msgid "Exit the program"
 msgstr "Salir del programa"
@@ -1523,7 +1523,7 @@ msgid "Navigate"
 msgstr "Navegar"
 
 msgid "Import..."
-msgstr "Importar ..."
+msgstr "Importo\t ..."
 
 msgid "Export Current view to Image..."
 msgstr "Exporto vista Actual a Imagen ..."
@@ -1538,7 +1538,7 @@ msgid "Exit"
 msgstr "Salir"
 
 msgid "Find"
-msgstr "Encuentro"
+msgstr "Encuentra"
 
 msgid "Shortcuts"
 msgstr "Atajos"
@@ -1621,10 +1621,22 @@ msgstr ""
 "--------------"
 
 #, python-format
+msgid "Revision #%s"
+msgstr "Revisión #%s"
+
+#, python-format
 msgid "[%s:%s]: row not updated (nothing returned), row in use ?"
 msgstr "[%s:%s]: fila no actualizada (nada devuelto), ¿ fila en uso ?"
 
 #, python-format
+msgid "<%s(.bat)> not found"
+msgstr "<%s(.bat)> no encontrado"
+
+#, python-format
+msgid "problem with <%s>"
+msgstr "problema con <%s>"
+
+#, python-format
 msgid "[%s] is not a readable file"
 msgstr "[%s] no es un archivo leible"
 
@@ -1659,28 +1671,8 @@ msgstr "1 Byte"
 msgid "%s Bytes"
 msgstr "%s Bytes"
 
-#, python-format
-msgid ""
-"Cannot connect to configuration database with:\n"
-"\n"
-"[%s]"
-msgstr ""
-"No ha sido posible conectar con la base de datos de configuración:\n"
-"\n"
-"[%s]"
-
-#, python-format
-msgid ""
-"Cannot connect to database with:\n"
-"\n"
-"[%s]"
-msgstr ""
-"No ha sido posible conectar con la base de datos:\n"
-"\n"
-"[%s]"
-
-msgid "No product information available."
-msgstr "No se dispone de información acerca del producto"
+msgid "<type>"
+msgstr "<type>"
 
 #, python-format
 msgid ""
@@ -2035,106 +2027,6 @@ msgstr " opción [%s]: %s"
 msgid "  risk: %s"
 msgstr "  riesgo: %s"
 
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Are you sure you have got a local database installed ?\n"
-"\n"
-"Please retry with proper credentials or cancel.\n"
-"\n"
-"You may also need to check the PostgreSQL client\n"
-"authentication configuration in pg_hba.conf. For\n"
-"details see:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-msgstr ""
-"No pude conectar a la base de datos:\n"
-"\n"
-"%s\n"
-"\n"
-"¿Está seguro que tiene una base de datos instalada?\n"
-"\n"
-"Por favor, reinténtelo con una identificación adecuada o cancele.\n"
-"\n"
-"También puede revisar la configuración de autentificación \n"
-"con el cliente de PostgreSQL en pg_hba.conf. Para una\n"
-"explicación detallada, vea en:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Please retry with proper credentials or cancel.\n"
-"\n"
-"You may also need to check the PostgreSQL client\n"
-"authentication configuration in pg_hba.conf. For\n"
-"details see:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-msgstr ""
-"No pude conectar a la base de datos:\n"
-"\n"
-"%s\n"
-"\n"
-"Reintente con las credenciales apropiadas o cancele por favor.\n"
-"\n"
-"Podría ser necesario verificar la configuración de autentificación\n"
-"del cliente en pg_hba.conf.\n"
-"Para más detalles, vea:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-
-msgid "Connecting to backend"
-msgstr "Conecto con banco de datos"
-
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Please retry another backend / user / password combination !\n"
-msgstr ""
-"No puedo conectar con la base de datos:\n"
-"\n"
-"%s\n"
-"\n"
-"Intente otra combinación usuario/contraseña!\n"
-
-msgid "programmer forgot to specify error message"
-msgstr "el programador olvidó especificar el mensaje de error"
-
-msgid ""
-"\n"
-"\n"
-"Please consult the error log for all the gory details !"
-msgstr ""
-"\n"
-"\n"
-"¡Por favor, para más información, consulte el registro de error!"
-
-msgid "generic error message"
-msgstr "mensaje genérico de error"
-
-msgid "programmer forgot to specify info message"
-msgstr "el programador olvidó especificar un mensaje informativo"
-
-msgid "generic info message"
-msgstr "mensaje de información genérico"
-
-msgid "programmer forgot to specify warning"
-msgstr "el programador olvidó especificar una advertencia"
-
-msgid "generic warning message"
-msgstr "mensaje genérico de advertencia"
-
 msgid "no hook specified, please report bug"
 msgstr ""
 "ningún cuelgue especificado, por favor reporte el error de programación"
@@ -2497,6 +2389,30 @@ msgstr "Ordene por:"
 msgid "Include:"
 msgstr "Incluya:"
 
+msgid "&Search"
+msgstr "&Búsqueda"
+
+msgid "Suggest"
+msgstr "Sugerir\t"
+
+msgid "Set"
+msgstr "Fijar"
+
+msgid "dialog_1"
+msgstr "dialog_1"
+
+msgid "Search patients in Orthanc DICOM store."
+msgstr "Busca pacientes en tienda Orthanc DICOM."
+
+msgid "Suggest a patient ID based on the active patient."
+msgstr "SUgiere una ID de paciente a partir del paciente activo."
+
+msgid "Search term:"
+msgstr "Busca término:"
+
+msgid "New patient ID:"
+msgstr "Nueva ID del paciente"
+
 msgid "Your review"
 msgstr "Su evaluación"
 
@@ -2889,6 +2805,96 @@ msgstr "Sustancia"
 msgid "Amount"
 msgstr "Cantidad"
 
+msgid "&Connect"
+msgstr "&Conecto"
+
+msgid "&Browse"
+msgstr "%Navego"
+
+msgid "<not connected>"
+msgstr "<not connected>"
+
+msgid "Browse all"
+msgstr "Navego todo"
+
+msgid "Export all"
+msgstr "Exporto todo"
+
+msgid "Browse"
+msgstr "Navegar"
+
+msgid "Export"
+msgstr "Exporto"
+
+msgid "Upload"
+msgstr "Subo"
+
+msgid "Enter the PACS host address."
+msgstr ""
+"Ingrese la dirección del huésped del sistema de comunicaciones y archivado "
+"de imagen (SCAI)"
+
+msgid "Enter the PACS port."
+msgstr "Ingrese el puerto SCAI."
+
+msgid "Enter the PACS user."
+msgstr "Ingrese el usuario SCAI."
+
+msgid "Enter the PACS password. It will not be shown."
+msgstr "Ingrese la clave SCAI. No será mostrada."
+
+msgid "Connect to PACS."
+msgstr "Conecto a SCAI."
+
+msgid "Browse PACS at top level."
+msgstr "Navego por SCAI al nivel más alto."
+
+msgid "Modify some of Orthanc content (such as patient IDs)."
+msgstr "Modifico algunos contenidos Orthanc (tales como IDs de pacientes)."
+
+msgid "Browse overview of studies for this patient."
+msgstr "Navego por resumen de estudios para este paciente."
+
+msgid "Copy all studies into export area."
+msgstr "Copio todos los estudios al área de exportación."
+
+msgid "Browse topmost selected study."
+msgstr "Navego los primeros estudios seleccionados."
+
+msgid "Copy selected studies into export area."
+msgstr "Copio estudios seleccionados al área de exportación."
+
+msgid "Save selected studies to disk."
+msgstr "Guardo estudios seleccionados al disco."
+
+msgid ""
+"Upload DICOM files from a directory, recursively, into the Orthanc PACS\n"
+"\n"
+"The currently active patient does not matter. Orthanc will associate "
+"uploaded files with the patient found within the DICOM metadata. It will "
+"create new patients as needed."
+msgstr ""
+"Subo recursivamente archivos DICOM desde un directorio al SCAI Orthanic\n"
+"\n"
+"El paciente actualmente activo no importa. Orthanc asociará los archivos "
+"subidos con el paciente encontrado dentro de los metadatos DICOM. Creará "
+"nuevos pacientes según lo requiera."
+
+msgid "Host:"
+msgstr "Huésped:"
+
+msgid "Port:"
+msgstr "Puerta:"
+
+msgid "User:"
+msgstr "Usuario:"
+
+msgid "Password"
+msgstr "Contraseña"
+
+msgid "Selected studies:"
+msgstr "Estudios seleccionados:"
+
 msgid "Fake brand"
 msgstr "Marca falsa"
 
@@ -2991,7 +2997,7 @@ msgid "Lab"
 msgstr "Laboratorio"
 
 msgid "Meta type"
-msgstr "Meta tipo"
+msgstr "MEta tipo"
 
 msgid "Mandatory: A descriptive name for this meta test type."
 msgstr "Mandatorio: un nombre descriptivo para este tipo de meta test."
@@ -3166,7 +3172,7 @@ msgid "&Active patient only"
 msgstr "Pacientes &Activos solamente"
 
 msgid "&Export"
-msgstr "&Exporta"
+msgstr "&Exporto"
 
 msgid "Select here to show documents for all patients."
 msgstr "Seleccone acá para mostrar documentos para todos los pacientes."
@@ -3239,9 +3245,6 @@ msgstr "Texto (procesamiento genérico)"
 msgid "&Load"
 msgstr "&Cargo"
 
-msgid "Export"
-msgstr "Exportar"
-
 msgid "A long, descriptive name for this form template."
 msgstr "Un nombre claro y descriptivo para esta plantilla."
 
@@ -3344,15 +3347,12 @@ msgstr "&clínicamente relevante"
 msgid "Document Properties"
 msgstr "Propiedades del Documento"
 
-msgid "Show part"
-msgstr "Mostrar parte"
+msgid "Show"
+msgstr "Muestra"
 
 msgid "Remove part"
 msgstr "Eliminar parte"
 
-msgid "Parts"
-msgstr "Partes"
-
 msgid "Discard"
 msgstr "Descartar"
 
@@ -3387,6 +3387,10 @@ msgstr ""
 msgid "Required: The primary episode this document is to be listed under."
 msgstr "Requerido: el episodio primario al cual pertenece este documento."
 
+msgid "Optional: The organization (unit) this document originated from."
+msgstr ""
+"Opcional: la organización (unidad) desde la cual se originó este documento."
+
 msgid ""
 "Optional: A short comment identifying the document. Good comments give an "
 "idea of the content and source of the document."
@@ -3422,6 +3426,9 @@ msgstr ""
 "Acaso este documento reporta resultados clínicamente relevantes. Note que "
 "resultados normales, como anormales, pueden ser relevantes."
 
+msgid "Optional: A free-text document description."
+msgstr "Opcional: una descripción del documento en texto libre."
+
 msgid "This field lists the parts belonging to the current document."
 msgstr "Este campo lista las partes pertenecientes al documento actual."
 
@@ -3435,9 +3442,6 @@ msgstr ""
 "Eliminar las partes seleccionadas en la lista de arriba. Preguntará antes "
 "del borrado físico del disco."
 
-msgid "Optional: A free-text document description."
-msgstr "Opcional: una descripción del documento en texto libre."
-
 msgid "Save finished document."
 msgstr "Guardar el documento terminado."
 
@@ -3453,6 +3457,9 @@ msgstr "Fecha de creación del documento:"
 msgid "Associate to episode:"
 msgstr "Asociar al episodio:"
 
+msgid "Document source:"
+msgstr "Fuente del documento:"
+
 msgid "Comment / Identification:"
 msgstr "Comentarios / Identificación:"
 
@@ -3652,7 +3659,7 @@ msgstr ""
 "Muestra el total de los mensajes seleccionados en tu Bandeja de Entrada."
 
 msgid "Messages:"
-msgstr "Mensajes"
+msgstr "MEnsajes"
 
 msgid "Limit to:"
 msgstr "Limita a:"
@@ -3772,12 +3779,12 @@ msgstr "Terminada"
 msgid "Purpose"
 msgstr "Propósito"
 
+msgid "Please supply your email address here !"
+msgstr "Por favor, ¡provea acá su dirección de correo electrónico!"
+
 msgid "Details"
 msgstr "Detalles"
 
-msgid "<Please supply your email address here !>"
-msgstr "<¡Introduzca su dirección de correo electrónico aquí!>"
-
 msgid "Keep running"
 msgstr "Mantener ejecutando"
 
@@ -3801,13 +3808,18 @@ msgstr ""
 "de hacer."
 
 msgid ""
-"Please enter your email address so we can provide feedback directly to you. "
-"Otherwise, feedback will be given on the GNUmed mailing list (http://lists."
-"gnu.org/mailman/listinfo/gnumed-bugs)."
+"Please enter your email address so we can provide help to you directly.\n"
+"\n"
+"Otherwise, feedback can be given on the GNUmed mailing list (http://lists."
+"gnu.org/mailman/listinfo/gnumed-bugs) ONLY to which you will then have to "
+"subscribe."
 msgstr ""
-"Ingrese su correo electrónico para que podamos enviar seguimiento. De otra "
-"forma el seguimiento será enviado a la lista de correo GNUmed (http://lists."
-"gnu.org/mailman/listinfo/gnumed-bugs)."
+"Por favor, ingrese su dirección de correo electrónico, de forma de poder "
+"ayudarle directamente.\n"
+"\n"
+"Alternativamente, se puede dar seguimiento a la lista de correo de GNUmed "
+"(http://lists.gnu.org/mailman/listinfo/gnumed-bugs) SOLAMENTE si se ha "
+"suscrito a ella."
 
 msgid "Find help on http://wiki.gnumed.de, too."
 msgstr "Encuentre ayuda en http://wiki.gnumed.de."
@@ -3970,9 +3982,6 @@ msgstr "Parámetros del usuario"
 msgid "Account"
 msgstr "Cuenta"
 
-msgid "Password"
-msgstr "Contraseña"
-
 msgid "Password, again"
 msgstr "Contraseña, de nuevo"
 
@@ -4164,10 +4173,10 @@ msgid "Print &remotely"
 msgstr "Imprimir &remotamente"
 
 msgid "&Export only"
-msgstr "&Exportar solamente"
+msgstr "&Export solamente"
 
 msgid "&Archive only"
-msgstr "&Guardar solamente"
+msgstr "&Guardo solamente"
 
 msgid "Form handling"
 msgstr "Manejo de formularios"
@@ -4514,8 +4523,8 @@ msgstr "Agrega documentos(s) desde archivo."
 msgid "Acquire images from image source (scanner, ...)."
 msgstr "Obtiene imagen desde una fuente (scanner, ...)"
 
-msgid "Acquire images or text from the clipboard."
-msgstr "Obtiene imagen o texto desde el portapapeles."
+msgid "Acquire file or text from the clipboard."
+msgstr "Obtengo archivo o texto desde el portapapeles."
 
 msgid "Remove the selected documents."
 msgstr "Elimina eos documentos seleccionados."
@@ -4674,19 +4683,20 @@ msgid ""
 "- the result list will be artificially limited to the first 1000 rows\n"
 "- you can include a column named \"pk_patient\" to make the result rows "
 "activate the corresponding patient on double-clicking\n"
-"- by inserting $<ID_active_patient>$ you can access the patient ID of the "
+"- by inserting $<ID_ACTIVE_PATIENT>$ you can access the patient ID of the "
 "patient active at the time of running the query"
 msgstr ""
-"Ingrese los comandos SQL a ejecutar aquí.\n"
+"Ingrese acá los comandos SQL que serán ejecutados.\n"
 "\n"
-"No importa acaso coloca \";\" al final.\n"
+"No importa acaso ingresa o no un rastreador \";\".\n"
 "\n"
-"Tome en cuenta que:\n"
-"- la consulta es una transacción de solo lectura\n"
-"- los resultados serán limitados a las primeras 1000 lineas\n"
-"- puede incluir una columna llamada \"pk_patient\" para activar el paciente "
-"en los resultados con doble clic.\n"
-"- insertando $<ID_active_patient>$ Ud. puede acceder la ID del paciente "
+"Note que:\n"
+"- la búsqueda se efectúa en modo sólo lectura\n"
+"- la lista de resultados estará artificialmente limitada a las primeras 1000 "
+"filas\n"
+"- puede incluir una columna llamada \"pk_patient\" para que las filas de "
+"resultados activen al correspondiente paciente al hacer doble clic\n"
+"- al insertar $<ID_ACTIVE_PATIENT>$ Ud. puede acceder a la ID del paciente "
 "activo al momento de correr la búsqueda"
 
 msgid "Run the query and present the results below."
@@ -4871,9 +4881,6 @@ msgstr "&Asignar"
 msgid "Link &new"
 msgstr "Asignar &Nueva"
 
-msgid "Browse"
-msgstr "Navegar"
-
 msgid ""
 "Search for matches among existing addresses and [Link] a selection, or [Link "
 "(a) new] address."
@@ -4929,26 +4936,17 @@ msgstr ""
 "Marque acá si Ud. desea filtrar el diario por el problema seleccionado a la "
 "izquierda."
 
-msgid "label_1"
-msgstr "label_1"
-
-msgid "→"
-msgstr "→"
-
-msgid "←"
-msgstr "←"
-
-msgid "Extra"
-msgstr "Extra"
+msgid "Subjective"
+msgstr "Subjetivo"
 
-msgid "Move selected items from left to right."
-msgstr "Desplaza los elementos seleccionados de izquierda a derecha."
+msgid "Objective"
+msgstr "Objetivo"
 
-msgid "Move selected items from right to left."
-msgstr "Desplaza los elementos seleccionados de derecha a izquierda."
+msgid "Assessment"
+msgstr "Apreciación"
 
-msgid "Cancel picking items."
-msgstr "Cancele elección de ítems."
+msgid "Plan"
+msgstr "Procedimiento"
 
 msgid "Episode synopsis"
 msgstr "Sinopsis del episodio"
@@ -4995,20 +4993,29 @@ msgstr ""
 "Acá usted puede modificar el resumen acumulativo (estado) del episodio al "
 "cual pertenece esta narración SOAP."
 
-msgid "Subjective"
-msgstr "Subjetivo"
-
 msgid "Codes:"
 msgstr "Códigos:"
 
-msgid "Objective"
-msgstr "Objetivo"
+msgid "label_1"
+msgstr "label_1"
 
-msgid "Assessment"
-msgstr "Apreciación"
+msgid "→"
+msgstr "→"
 
-msgid "Plan"
-msgstr "Procedimiento"
+msgid "←"
+msgstr "←"
+
+msgid "Extra"
+msgstr "Extra"
+
+msgid "Move selected items from left to right."
+msgstr "Desplaza los elementos seleccionados de izquierda a derecha."
+
+msgid "Move selected items from right to left."
+msgstr "Desplaza los elementos seleccionados de derecha a izquierda."
+
+msgid "Cancel picking items."
+msgstr "Cancele elección de ítems."
 
 msgid "1"
 msgstr "1"
@@ -5180,8 +5187,7 @@ msgid "Manage the indications for this vaccine."
 msgstr "Administra las indicaciones para esta vacuna."
 
 msgid "The ATC for this vaccine."
-msgstr ""
-"Clasificación ATQ (Anatómica, Terapéutica, Anatómica) para esta vacuna."
+msgstr "Clasificación ATQ (Anatómica, Terapéutica, Química) para esta vacuna."
 
 msgid "The minimum age at which this vaccine should be given."
 msgstr "Edad mínima a la que se puede proporcionar esta vacuna."
@@ -5214,14 +5220,14 @@ msgstr "&Nicotina"
 msgid "&Alcohol"
 msgstr "&Alcohol"
 
-msgid "&Other"
-msgstr "&Otros"
+msgid "&Other:"
+msgstr "&Otro:"
 
 msgid "&Non-harmful use"
-msgstr "&Uso no pernicioso"
+msgstr "&Uso inocuo"
 
 msgid "&Harmful use"
-msgstr "Uso &Pernicioso"
+msgstr "Uso &Nocivo"
 
 msgid "Presently &addicted"
 msgstr "&Adicto actualmente"
@@ -5229,8 +5235,8 @@ msgstr "&Adicto actualmente"
 msgid "Previously &addicted"
 msgstr "&Adicto previamente"
 
-msgid "&Confirmed"
-msgstr "&Confirmado"
+msgid "&Reconfirm as of today"
+msgstr "&Reconfirmo para hoy"
 
 msgid "Select for documenting smoking status."
 msgstr "Elija para documentar el estado de fumador."
@@ -5687,20 +5693,17 @@ msgstr ""
 msgid "Show:"
 msgstr "Muestre:"
 
-msgid "Brand by component"
-msgstr "Marca por componente"
+msgid "Kidneys"
+msgstr "Riñones"
 
 msgid "Brands"
 msgstr "Marcas"
 
-msgid "Kidneys"
-msgstr "Riñones"
-
-msgid "Unbranded substance"
-msgstr "Sustancia sin marca"
+msgid "Substances"
+msgstr "Sustancias"
 
-msgid "Manage"
-msgstr "Gestionar"
+msgid "&Unknown or date:"
+msgstr "&Desconocida o fecha:"
 
 msgid "Approved of"
 msgstr "Aprobado por"
@@ -5715,18 +5718,36 @@ msgid "... Reason"
 msgstr "... Razón"
 
 msgid ""
-"A component of a drug brand the patient is taking.\n"
+"A drug the patient is taking.\n"
 "\n"
-"Lookup, and select, a single- (or multi-) component drug brand, by active "
-"ingredient name. All components of multi-component drugs will be displayed "
-"and automatically added to the patient's list."
+"Lookup and select an intake by either of\n"
+"- a generic substance name\n"
+"- a drug brand name\n"
+"- an active ingredient of a drug\n"
+"\n"
+"Note that all components of multi-component drugs will be displayed and "
+"automatically added to the patient's list."
 msgstr ""
-"Un componente de una droga de marca que el paciente está ingiriendo.\n"
+"Una droga que el paciente esté ingiriendo.\n"
+"\n"
+"Busque y seleccione una ingesta por cualquiera de\n"
+"- un nombre de sustancia genérica\n"
+"- un nombre de marca de droga\n"
+"- un ingrediente activo de una droga\n"
 "\n"
-"Busque y seleccione una marca de droga de componentes únicos o múltiples por "
-"el nombre del ingrediente activo. Todos los componentes de drogas "
-"multicompuestas serán desplegados y agregados automáticamente a la lista del "
-"paciente."
+"Note que todos los componentes de drogas multicomponentes serán mostrados y "
+"automáticamente agregados a la lista del paciente."
+
+msgid "Details on the selected drug."
+msgstr "Detalles de la droga seleccionada."
+
+msgid "Show cardiac information relevant to substance selection."
+msgstr "Muestra información cardíaca relevante para selección de sustancia."
+
+msgid "Show renal insufficiency information related to substance selection."
+msgstr ""
+"Muestra información sobre insuficiencia renal relacionada con la selección "
+"de sustancia."
 
 msgid ""
 "Manage drug brands.\n"
@@ -5742,24 +5763,6 @@ msgstr ""
 "conocidos por GNUmed a partir de lo cual puede usted seleccionar un "
 "componente."
 
-msgid "The active ingredients of this brand."
-msgstr "Los ingredientes activos de esta marca."
-
-msgid "Show cardiac information relevant to substance selection."
-msgstr "Muestra información cardíaca relevante para selección de sustancia."
-
-msgid "Show renal insufficiency information related to substance selection."
-msgstr ""
-"Muestra información sobre insuficiencia renal relacionada con la selección "
-"de sustancia."
-
-msgid ""
-"The non-branded medication or non-medication substance, with optional "
-"strength."
-msgstr ""
-"La medicación de genéricos o sustancias no farmacológicas con concentración "
-"opcional."
-
 msgid ""
 "Manage consumable substances.\n"
 "\n"
@@ -5774,6 +5777,9 @@ msgstr ""
 msgid "The preparation or form of the substance."
 msgstr "La preparación o forma de la sutancia."
 
+msgid "Check here if the start date simply isn't known."
+msgstr "Marque acá si la fecha de comienzo simplemente es desconocida."
+
 msgid ""
 "When was this substance started to be consumed or - if not known - the "
 "earliest it is known to have been be consumed."
@@ -5781,6 +5787,14 @@ msgstr ""
 "Cuando esta sustancia comenzó  a ser consumida o, si fuera desconocido, la "
 "fecha más temprana conocida en que comenzó a ser consumida."
 
+msgid ""
+"A coment on the certainty of the start date, such as \"+/- 3 weeks\", "
+"\"spring of 2002\", \"shortly after Easter 1996\", ...."
+msgstr ""
+"Un comentario acerca de la certeza de la fecha de inicio, tal como \"+/- 3 "
+"semanas\", \"primavera de 2002\", \"inmediatamente después de Pascua de "
+"1996\", ..."
+
 msgid "Whether this substance is taken by advice."
 msgstr "Acaso esta sustancia es tomada por recomendación."
 
@@ -5819,6 +5833,15 @@ msgstr "Presione si se descuontinuó como estaba planeado."
 msgid "Reason for discontinuation."
 msgstr "Razón de la interrupción."
 
+msgid "Drug"
+msgstr "Droga"
+
+msgid "Research:"
+msgstr "Investigación:"
+
+msgid "Certainty:"
+msgstr "Certeza:"
+
 msgid "Schedule"
 msgstr "Horario"
 
@@ -5988,6 +6011,31 @@ msgstr ""
 msgid "Channel"
 msgstr "Canal"
 
+msgid "&Last modification time"
+msgstr "Ú&ltima fecha de modificación"
+
+msgid "&Entry time"
+msgstr "&Hora de ingreso"
+
+msgid "Show journal ordered by encounter."
+msgstr "Muestra diario ordenado por citas."
+
+msgid "Show journal ordered by time of last modification."
+msgstr "Muestra diario ordenado por fecha de últimas modificaciones."
+
+msgid "Show journal ordered by actual clinical time of each entry."
+msgstr ""
+"Muestra diario ordenado por la hora clínica concurrente de cada ingreso."
+
+msgid "Edit the selected chart entry."
+msgstr "Edito el ingreso de cartilla seleccionado."
+
+msgid "Delete selected chart entry."
+msgstr "Elimino ingreso de cartilla seleccionado."
+
+msgid "Order by:"
+msgstr "Orden por:"
+
 msgid "Chec&k"
 msgstr "Verifi&que"
 
@@ -6654,11 +6702,14 @@ msgstr "Mediciones:"
 msgid "Documents:"
 msgstr "Documentos:"
 
+msgid "&L"
+msgstr "&L"
+
 msgid "&N"
 msgstr "&N"
 
-msgid "&L"
-msgstr "&L"
+msgid "List all encounters."
+msgstr "Lista todas las citas."
 
 msgid "The encounter."
 msgstr "La cita."
@@ -6666,9 +6717,6 @@ msgstr "La cita."
 msgid "Start a new encounter for the active patient."
 msgstr "Comienza una nueva cita para el paciente activo."
 
-msgid "List all encounters."
-msgstr "Lista todas las citas."
-
 msgid "Clinically relevant"
 msgstr "Clínicamente relevante"
 
@@ -6957,10 +7005,12 @@ msgstr "Administro ayudas dinámicas."
 
 msgid ""
 "Rationale for\n"
-"suppression"
+"suppression\n"
+"for this patient"
 msgstr ""
-"Razón fundada para\n"
-"supresión"
+"Racional para\n"
+"supresión\n"
+"para este paciente"
 
 msgid "Save &under"
 msgstr "Guardar &como"
@@ -7031,6 +7081,12 @@ msgstr "Ingreso:"
 msgid "Encounter:"
 msgstr "Contacto:"
 
+msgid "Manage"
+msgstr "Gestionar"
+
+msgid "&Panel:"
+msgstr "&Panel:"
+
 msgid "&Pick"
 msgstr "&Elegir"
 
@@ -7086,6 +7142,9 @@ msgstr ""
 "\n"
 "Si desea deshabilitar ese diálogo deje vacío el mensaje."
 
+msgid "Show search dialog."
+msgstr "Muestra diálogo de búsqueda."
+
 msgid "THIS IS NOT A VERIFIED MEASUREMENT. DO NOT USE FOR ACTUAL CARE."
 msgstr ""
 "ESTA NO ES UNA MEDICIÓN VERIFICADA. NO LA UTILICE PARA EL CUIDADO PRESENTE."
@@ -7382,6 +7441,56 @@ msgstr "*tiene* alergias"
 msgid "ERROR: unknown allergy state [%s]"
 msgstr "ERROR: estado alérgico desconocido [%s]"
 
+msgid "definite"
+msgstr "definido"
+
+#, fuzzy
+msgid "indefinite"
+msgstr "definido"
+
+#, fuzzy
+msgid "Reaction:"
+msgstr "Reacción"
+
+#, fuzzy
+msgid "Noted:"
+msgstr "Anotado"
+
+#, fuzzy
+msgid "Allergene:"
+msgstr "Alergias"
+
+#, fuzzy
+msgid "Substance:"
+msgstr "Sustancia"
+
+#, fuzzy
+msgid "Code:"
+msgstr "Códigos:"
+
+#, fuzzy
+msgid "ATC:"
+msgstr "ATQ: %s\n"
+
+#, fuzzy
+msgid "Specific to:"
+msgstr "Poner estado en:"
+
+#, fuzzy
+msgid "this substance only"
+msgstr "abuso de sustancia activa"
+
+#, fuzzy
+msgid "drug class"
+msgstr "Clases de Drogas"
+
+msgid "unknown"
+msgstr "desconocido/a"
+
+#, fuzzy
+msgid "Generics:"
+msgstr "Genéricos"
+
 msgid "Medication history"
 msgstr "Historial de medicamentos"
 
@@ -7391,9 +7500,15 @@ msgstr "copia de prescripción impresa"
 msgid "prescription data"
 msgstr "datos de prescripción"
 
+msgid "Consumable substance"
+msgstr "Sustancia consumible"
+
 msgid "in use"
 msgstr "en uso"
 
+msgid "w/"
+msgstr "c/"
+
 msgid "long-term"
 msgstr "largo plazo"
 
@@ -7413,6 +7528,37 @@ msgid "?ongoing"
 msgstr "?en marcha"
 
 #, python-format
+msgid ""
+"Substance abuse entry                                              [#%s]\n"
+msgstr ""
+"Ingreso de abuso de sustancia                                              [#"
+"%s]\n"
+
+#, python-format
+msgid "Substance: %s [#%s]%s\n"
+msgstr "Sustancia: %s [#%s]%s\n"
+
+#, python-format
+msgid "Use type: %s\n"
+msgstr "Use tipo: %s\n"
+
+#, python-format
+msgid "Last checked: %s\n"
+msgstr "Verificado el: %s\n"
+
+#, python-format
+msgid " Discontinued %s\n"
+msgstr " Terminó %s\n"
+
+#, python-format
+msgid " Notes: %s\n"
+msgstr " Notas: %s\n"
+
+#, python-format
+msgid "Revision: #%(row_ver)s, %(mod_when)s by %(mod_by)s."
+msgstr "Revisión: #%(row_ver)s, %(mod_when)s hasta %(mod_by)s."
+
+#, python-format
 msgid "Substance intake entry (%s, %s)   [#%s]                     \n"
 msgstr "Uso de la sustancia (%s, %s) [#%s]                     \n"
 
@@ -7428,9 +7574,6 @@ msgstr "aprobado"
 msgid "unapproved"
 msgstr "no aprobado"
 
-msgid "definite"
-msgstr "definido"
-
 msgid "suspected"
 msgstr "se presume"
 
@@ -7477,10 +7620,6 @@ msgid " (short-term)"
 msgstr " (corto plazo)"
 
 #, python-format
-msgid " Discontinued %s\n"
-msgstr " Terminó %s\n"
-
-#, python-format
 msgid " Reason: %s\n"
 msgstr " Razón: %s\n"
 
@@ -7500,17 +7639,60 @@ msgstr " Problema de salud: %s\n"
 msgid " Advice: %s\n"
 msgstr " Indicación: %s\n"
 
+msgid "medication, not abuse"
+msgstr "medicación, no abuso"
+
+msgid "no or non-harmful use"
+msgstr "Sin uso o uso inocuo"
+
+msgid "presently harmful use"
+msgstr "Uso actualmente dañino"
+
+msgid "presently addicted"
+msgstr "actualmente adicto"
+
+msgid "previously addicted"
+msgstr "previamente adicto"
+
 #, python-format
-msgid "Revision: #%(row_ver)s, %(mod_when)s by %(mod_by)s."
-msgstr "Revisión: #%(row_ver)s, %(mod_when)s hasta %(mod_by)s."
+msgid "%s%s: %s ago%s"
+msgstr "%s%s: %s atrás%s"
+
+#, python-format
+msgid "%s%s: %s ago (%s)"
+msgstr "%s%s: %s atrás (%s)"
+
+#, python-format
+msgid "%s%s%s (%s ago)"
+msgstr "%s%s%s (%s atrás)"
+
+#, python-format
+msgid "%s%s%s (%s ago, %s)"
+msgstr "%s%s%s (%s atrás, %s)"
+
+#, python-format
+msgid "%s ago"
+msgstr "%s atrás"
+
+#, python-format
+msgid "in %s"
+msgstr "en %s"
+
+#, python-format
+msgid ", until %s (%s)"
+msgstr ", hasta %s (%s)"
+
+#, python-format
+msgid " (planned for %s%s)"
+msgstr " (planeado para %s%s)"
 
 #, python-format
-msgid "%s: %s ago"
-msgstr "%s: %s atrás"
+msgid ", planned for %s%s"
+msgstr ", planeado para %s%s"
 
 #, python-format
-msgid "%s: %s ago (%s)"
-msgstr "%s: %s atrás (%s)"
+msgid "%s ago (for %s: %s %s %s)"
+msgstr "%s atrás (para %s: %s %s %s)"
 
 msgid "Additional notes"
 msgstr "Notas adicionales"
@@ -7524,12 +7706,33 @@ msgstr "Lista de medicación"
 msgid "ordered by brand"
 msgstr "ordenado por marca"
 
-msgid "Drug"
-msgstr "Droga"
-
 msgid "Regimen / Advice"
 msgstr "Régimen / Recomendación"
 
+#, python-format
+msgid "Component of %s (%s)"
+msgstr "Componente de %s (%s)"
+
+#, python-format
+msgid "ATC (substance): %s"
+msgstr "ATQ (sustancia): %s"
+
+#, python-format
+msgid "ATC (brand): %s"
+msgstr "ATQ (marca): %s"
+
+msgid "this is a component of a fake brand"
+msgstr "este es un componente de una marca falsa"
+
+msgid "Components:"
+msgstr "Componentes:"
+
+msgid "this is a fake brand"
+msgstr "esta es una marca falsa"
+
+msgid "this is a vaccine"
+msgstr "esta es una vacuna"
+
 msgid "units"
 msgstr "unidades"
 
@@ -7562,49 +7765,15 @@ msgstr "Expirado: %s\n"
 msgid "Expires: %s\n"
 msgstr "Expira: %s\n"
 
-msgid "Active clinical hint"
-msgstr "Ayuda clínica activa"
-
-msgid "Inactive clinical hint"
-msgstr "Ayuda clínica inactiva"
-
-#, python-format
-msgid "Source: %s\n"
-msgstr "Fuente: %s\n"
-
-#, python-format
-msgid "Language: %s\n"
-msgstr "Idioma: %s\n"
-
-msgid "Suppressed active dynamic hint"
-msgstr "Suprime ayuda dinámica activa"
-
-msgid "Suppressed inactive dynamic hint"
-msgstr "Suprime ahuda dinámica inactiva"
-
-#, python-format
-msgid "Suppressed by: %s\n"
-msgstr "Suprimido por: %s\n"
-
-#, python-format
-msgid "Suppressed at: %s\n"
-msgstr "Suprimido en: %s\n"
-
-#, python-format
-msgid "Hint #: %s\n"
-msgstr "Ayuda #: %s\n"
-
-#, python-format
-msgid "Patient #: %s\n"
-msgstr "Paciente #: %s\n"
+msgid "HL7 Source"
+msgstr "Fuente HL7"
 
-#, python-format
-msgid "MD5 (currently): %s\n"
-msgstr "MD5 (actualmente): %s\n"
+msgid "HL7 data size"
+msgstr "Tamaños de datos HL7"
 
 #, python-format
-msgid "MD5 (at suppression): %s\n"
-msgstr "MD5 (en supresión): %s\n"
+msgid "%s bytes"
+msgstr "%s bytes"
 
 msgid "HL7 Message"
 msgstr "Mensaje HL7"
@@ -7661,13 +7830,6 @@ msgstr "archivo"
 msgid "doc: %s"
 msgstr "doc: %s"
 
-msgid "no patient photograph available"
-msgstr "no existe fotografía disponible del paciente"
-
-#, python-format
-msgid "patient photograph from %s"
-msgstr "fotografía del paciente desde %s"
-
 msgid "Patient data for"
 msgstr "Datos del paciente para"
 
@@ -7677,6 +7839,9 @@ msgstr "nacido/a"
 msgid "Patient data export"
 msgstr "Exportación de datos del paciente"
 
+msgid "no patient photograph available"
+msgstr "no existe fotografía disponible del paciente"
+
 msgid "Documents"
 msgstr "Documentos"
 
@@ -7686,6 +7851,10 @@ msgstr "reviso medio de almacenamiento"
 msgid "browse documents area"
 msgstr "reviso área de documentos"
 
+#, python-format
+msgid "patient photograph from %s"
+msgstr "fotografía del paciente desde %s"
+
 msgid "Browse patient data"
 msgstr "Reviso datos del paciente"
 
@@ -7722,33 +7891,33 @@ msgstr "Error corriendo pdftk. No puedo sellar formulario PDF."
 #, python-format
 msgid ""
 "%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s %(suburb)s, "
-"%(code_state)s, %(code_country)s"
+"%(code_region)s, %(code_country)s"
 msgstr ""
 "%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s %(suburb)s, "
-"%(code_state)s, %(code_country)s"
+"%(code_region)s, %(code_country)s"
 
 #, python-format
 msgid ""
 "%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s %(suburb)s, "
-"%(code_state)s, %(code_country)s"
+"%(code_region)s, %(code_country)s"
 msgstr ""
 "%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s %(suburb)s, "
-"%(code_state)s, %(code_country)s"
+"%(code_region)s, %(code_country)s"
 
 #, python-format
 msgid ""
-"%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_state)s, "
-"%(code_country)s"
+"%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, "
+"%(code_region)s, %(code_country)s"
 msgstr ""
-"%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_state)s, "
-"%(code_country)s"
+"%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, "
+"%(code_region)s, %(code_country)s"
 
 #, python-format
 msgid ""
-"%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_state)s, "
+"%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_region)s, "
 "%(code_country)s"
 msgstr ""
-"%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_state)s, "
+"%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_region)s, "
 "%(code_country)s"
 
 #, python-format
@@ -7757,15 +7926,15 @@ msgid ""
 " Street: %(street)s%(notes_street)s\n"
 " Number/Unit: %(number)s%(subunit)s%(notes_subunit)s\n"
 " Location: %(zip)s %(urb)s%(suburb)s\n"
-" Region: %(l10n_state)s, %(code_state)s\n"
+" Region: %(l10n_region)s, %(code_region)s\n"
 " Country: %(l10n_country)s, %(code_country)s"
 msgstr ""
 "Dirección (%(type)s) [#%(pk_adr)s]\n"
-" Calle: %(street)s%(notes_street)s\n"
-" Número/Unidad: %(number)s%(subunit)s%(notes_subunit)s\n"
+"Calle: %(street)s%(notes_street)s\n"
+"Número/Unidad: %(number)s%(subunit)s%(notes_subunit)s\n"
 " Localidad: %(zip)s %(urb)s%(suburb)s\n"
-" Región: %(l10n_state)s, %(code_state)s\n"
-" País: %(l10n_country)s, %(code_country)s"
+" Región: %(l10n_region)s, %(code_region)s\n"
+"País: %(l10n_country)s, %(code_country)s"
 
 #, python-format
 msgid ""
@@ -7773,15 +7942,15 @@ msgid ""
 " Street: %(street)s%(notes_street)s\n"
 " Number/Unit: %(number)s%(subunit)s%(notes_subunit)s\n"
 " Location: %(zip)s %(urb)s%(suburb)s\n"
-" Region: %(l10n_state)s, %(code_state)s\n"
+" Region: %(l10n_region)s, %(code_region)s\n"
 " Country: %(l10n_country)s, %(code_country)s"
 msgstr ""
-"Dirección[#%(pk_adr)s]\n"
-" Calle: %(street)s%(notes_street)s\n"
-" Número: %(number)s%(subunit)s%(notes_subunit)s\n"
+"Dirección [#%(pk_adr)s]\n"
+"Calle: %(street)s%(notes_street)s\n"
+" Número/Unidad: %(number)s%(subunit)s%(notes_subunit)s\n"
 " Localidad: %(zip)s %(urb)s%(suburb)s\n"
-" Región: %(l10n_state)s, %(code_state)s\n"
-" País: %(l10n_country)s, %(code_country)s"
+" Región: %(l10n_region)s, %(code_region)s\n"
+"País: %(l10n_country)s, %(code_country)s"
 
 msgid "Textual keyword expansion"
 msgstr "Expansión textual de palabra clave"
@@ -7800,11 +7969,11 @@ msgstr "encriptado"
 
 #, python-format
 msgid " Keyword: %s\n"
-msgstr "Palabra clave: %s\n"
+msgstr " Palabra clave: %s\n"
 
 #, python-format
 msgid " Owner: %s\n"
-msgstr "Dueño:  %s\n"
+msgstr " Dueño:  %s\n"
 
 msgid "dummy-no-need-to-translate-but-make-epydoc-happy"
 msgstr "dummy-no-need-to-translate-but-make-epydoc-happy"
@@ -7848,6 +8017,83 @@ msgstr "resultado correcto"
 msgid "missing, reported later"
 msgstr "perdido, reportado posteriormente"
 
+msgid "Health issue"
+msgstr "Problema de salud"
+
+msgid "External care"
+msgstr "Cuidado externo"
+
+msgid "Vaccination"
+msgstr "Vacunación"
+
+msgid "Clinical narrative"
+msgstr "Historia clínica"
+
+msgid "Test result"
+msgstr "Resultado del examen"
+
+msgid "Substance intake"
+msgstr "Ingesta de sustancia"
+
+msgid "Hospital stay"
+msgstr "Hospitalización"
+
+msgid "Performed procedure"
+msgstr " Procedimiento realizado"
+
+msgid "Family history"
+msgstr "Historial Familiar"
+
+msgid "Document"
+msgstr "Documento"
+
+#, python-format
+msgid "unmapped entry type from table [%s]"
+msgstr "ingreso no mapeado desde la tabla [%s]"
+
+#, python-format
+msgid "cannot instantiate clinical root item <%s(%s)>"
+msgstr "no puedo generar ítem raíz clínico <%s(%s)>"
+
+msgid "True"
+msgstr "Verdadero"
+
+msgid "False"
+msgstr "Falso"
+
+msgid "unknown smoking status"
+msgstr "se desconoce si es fumador"
+
+msgid "non-smoker"
+msgstr "no fumador"
+
+msgid "current smoker"
+msgstr "fumador, actualmente"
+
+msgid "ex-smoker"
+msgstr "ex-fumador"
+
+msgid "tobacco addiction"
+msgstr "adicción al tabaco"
+
+msgid "no or non-harmful alcohol use"
+msgstr "uso inocuo o inexistente de alcohol"
+
+msgid "harmful alcohol use"
+msgstr "uso nocivo del alcohol"
+
+msgid "unknown alcohol use"
+msgstr "uso desconocido del alcohol"
+
+msgid "no or non-harmful drug use"
+msgstr "uso inocuo o inexistente de drogas"
+
+msgid "harmful drug use"
+msgstr "uso nocivo de drogas"
+
+msgid "unknown drug use"
+msgstr "uso desconocido de drogas"
+
 msgid "original entry"
 msgstr "entrada original"
 
@@ -7950,13 +8196,6 @@ msgstr "Ocupaciones"
 msgid "Vaccinations"
 msgstr "Vacunaciones"
 
-#, python-format
-msgid "%s ago"
-msgstr "%s atrás"
-
-msgid "External care"
-msgstr "Cuidado externo"
-
 msgid "Allergies/Intolerances"
 msgstr "Alergias/Intolerancias"
 
@@ -8052,32 +8291,117 @@ msgstr ""
 "\n"
 "La cuenta será desactivada, alternativamente."
 
-#, python-format
-msgid "Device(%s):"
-msgstr "Dispositivo(%s):"
+msgid "SOAP_char_S=S"
+msgstr "SOAP_char_S=S"
 
-msgid "Battery:"
-msgstr "Batería:"
+msgid "SOAP_char_O=O"
+msgstr "SOAP_char_O=O"
 
-msgid "Implanted:"
-msgstr "Implantado:"
+msgid "SOAP_char_A=A"
+msgstr "SOAP_char_A=A"
 
-msgid "last check:"
-msgstr "última revisión:"
+msgid "SOAP_char_P=P"
+msgstr "SOAP_char_P=P"
 
-msgid "Sensing:"
-msgstr "Detectando:"
+msgid "SOAP_char_U=U"
+msgstr "SOAP_char_U=U"
 
-msgid "Threshold"
-msgstr "Umbral"
+msgid "SOAP_string_Subjective=Subjective"
+msgstr "SOAP_string_Subjective=Subjectivo"
 
-msgid "Impedance:"
-msgstr "Impedancia:"
+msgid "SOAP_string_Objective=Objective"
+msgstr "SOAP_string_Objective=Objectivo"
 
-#, python-format
+msgid "SOAP_string_Assessment=Assessment"
+msgstr "SOAP_string_Assessment=valEuación"
+
+msgid "SOAP_string_Plan=Plan"
+msgstr "SOAP_string_Plan=Plan"
+
+msgid "SOAP_string_Unspecified=Unspecified"
+msgstr "SOAP_string_Unspecified=No específico"
+
+msgid "SOAP_string_Administrative=Administrative"
+msgstr "SOAP_string_Administrative=Administrativeo"
+
+msgid "Active clinical hint"
+msgstr "Ayuda clínica activa"
+
+msgid "Inactive clinical hint"
+msgstr "Ayuda clínica inactiva"
+
+#, python-format
+msgid "Source: %s\n"
+msgstr "Fuente: %s\n"
+
+#, python-format
+msgid "Language: %s\n"
+msgstr "Idioma: %s\n"
+
+msgid "Suppressed active dynamic hint"
+msgstr "Suprime ayuda dinámica activa"
+
+msgid "Suppressed inactive dynamic hint"
+msgstr "Suprime ahuda dinámica inactiva"
+
+#, python-format
+msgid "Suppressed by: %s\n"
+msgstr "Suprimido por: %s\n"
+
+#, python-format
+msgid "Suppressed at: %s\n"
+msgstr "Suprimido en: %s\n"
+
+#, python-format
+msgid "Hint #: %s\n"
+msgstr "Ayuda #: %s\n"
+
+#, python-format
+msgid "Patient #: %s\n"
+msgstr "Paciente #: %s\n"
+
+#, python-format
+msgid "MD5 (currently): %s\n"
+msgstr "MD5 (actualmente): %s\n"
+
+#, python-format
+msgid "MD5 (at suppression): %s\n"
+msgstr "MD5 (en supresión): %s\n"
+
+#, python-format
+msgid "Device(%s):"
+msgstr "Dispositivo(%s):"
+
+msgid "Battery:"
+msgstr "Batería:"
+
+msgid "Implanted:"
+msgstr "Implantado:"
+
+msgid "last check:"
+msgstr "última revisión:"
+
+msgid "Sensing:"
+msgstr "Detectando:"
+
+msgid "Threshold"
+msgstr "Umbral"
+
+msgid "Impedance:"
+msgstr "Impedancia:"
+
+#, python-format
 msgid "Praxis branch                   #%s\n"
 msgstr "Consulta secundaria                   #%s\n"
 
+#, python-format
+msgid ""
+"FN:%(l10n_unit_category)s %(branch)s of %(l10n_organization_category)s "
+"%(praxis)s"
+msgstr ""
+"FN:%(l10n_unit_category)s %(branch)s of %(l10n_organization_category)s "
+"%(praxis)s"
+
 msgid "Privacy notice"
 msgstr "Indicación de privacidad"
 
@@ -8094,39 +8418,6 @@ msgid "%s: Staff member %s has been notified of your chart access."
 msgstr ""
 "%s: El miembro del equipo %s ha sido notificado de su acceso a la cartilla."
 
-msgid "soap_S"
-msgstr "soap_S"
-
-msgid "soap_O"
-msgstr "soap_0"
-
-msgid "soap_A"
-msgstr "soap_A"
-
-msgid "soap_P"
-msgstr "soap_P"
-
-msgid "soap_U"
-msgstr "soap_U"
-
-msgid "soap_Subjective"
-msgstr "soap_Subjetivo"
-
-msgid "soap_Objective"
-msgstr "soap_Objetivo"
-
-msgid "soap_Assessment"
-msgstr "soap_Apreciativo"
-
-msgid "soap_Plan"
-msgstr "soap_Plan"
-
-msgid "soap_Unspecified"
-msgstr "soap_Inespecífico"
-
-msgid "soap_Administrative"
-msgstr "soap_Administrativo"
-
 #, python-format
 msgid ""
 "%s: %s by %.8s (v%s)\n"
@@ -8193,9 +8484,17 @@ msgid "%(last)s,%(title)s %(first)s%(nick)s (%(sex)s)"
 msgstr "%(last)s,%(title)s %(first)s%(nick)s (%(sex)s)"
 
 #, python-format
+msgid "%(last)s,%(title)s %(first)s (%(sex)s)"
+msgstr "%(last)s,%(title)s %(first)s (%(sex)s)"
+
+#, python-format
 msgid "%(last)s,%(title)s %(first)s%(nick)s"
 msgstr "%(last)s,%(title)s %(first)s%(nick)s"
 
+#, python-format
+msgid "%(last)s,%(title)s %(first)s"
+msgstr "%(last)s,%(title)s %(first)s"
+
 msgid "Cannot merge active patient into another patient."
 msgstr "No puede unir al paciente activo con otro paciente"
 
@@ -8205,9 +8504,6 @@ msgstr "asimilado"
 msgid "merged"
 msgstr "fusionado"
 
-msgid "preferred name/call name/..."
-msgstr "nombre preferido/nombre usado/ ..."
-
 msgid "invalid age: DOB in the future"
 msgstr "edad inválida: fecha de nacimiento en el futuro"
 
@@ -8220,9 +8516,6 @@ msgstr "Sr."
 msgid "Mrs"
 msgstr "Sra."
 
-msgid "unknown"
-msgstr "desconocido/a"
-
 msgid "empty status"
 msgstr "estado vacío"
 
@@ -8280,7 +8573,7 @@ msgid " Comment: %s\n"
 msgstr " Comentario: %s\n"
 
 msgid " Aggregates the following test types:\n"
-msgstr "Agrega el siguiente tipo de examen:\n"
+msgstr " Agrega el siguiente tipo de examen:\n"
 
 #, python-format
 msgid " Most recent (%s): %s%s%s"
@@ -8288,7 +8581,7 @@ msgstr " Más reciente (%s): %s%s%s"
 
 #, python-format
 msgid " Oldest (%s): %s%s%s"
-msgstr "Más antiguo (%s): %s%s%s"
+msgstr " Más antiguo (%s): %s%s%s"
 
 #, python-format
 msgid "Test type \"%s\" (%s)          [#%s]\n"
@@ -8296,7 +8589,7 @@ msgstr "Tipo de examen \"%s\" (%s)          [#%s]\n"
 
 #, python-format
 msgid " Reference unit: %s\n"
-msgstr "Unidad de referencia: %s\n"
+msgstr " Unidad de referencia: %s\n"
 
 msgid "Lab details:\n"
 msgstr "Detalles del laboratorio:\n"
@@ -8573,8 +8866,8 @@ msgid " Part %s: %s %s(%s Bytes)\n"
 msgstr " Parte %s: %s %s(%s Bytes)\n"
 
 #, python-format
-msgid " Filename: %s\n"
-msgstr "Nombre del archivo: %s\n"
+msgid " Filename: %s%s\n"
+msgstr "Nombre del archivo: %s%s\n"
 
 msgid "no parts"
 msgstr "sin partes"
@@ -8587,23 +8880,29 @@ msgid "%s parts"
 msgstr "%s partes"
 
 #, python-format
+msgid "%s of %s"
+msgstr "%s de %s"
+
+#, python-format
 msgid ""
 "%s (%s)   #%s\n"
-"\n"
 " Created: %s\n"
 " Episode: %s\n"
-"%s%s%s"
+"%s%s%s%s"
 msgstr ""
 "%s (%s)   #%s\n"
-"\n"
 " Creado: %s\n"
 " Episodio: %s\n"
-"%s%s%s"
+"%s%s%s%s"
 
 #, python-format
 msgid " External reference: %s\n"
 msgstr " Referencia externa: %s\n"
 
+#, python-format
+msgid " Organization: %%s @ %s\n"
+msgstr " Organización: %%s @ %s\n"
+
 msgid "Cannot run [arriba] !"
 msgstr "No se puede ejecutar [arriba] !"
 
@@ -8706,12 +9005,12 @@ msgid ""
 " Amount per unit: %(curr)s%(val_p_unit)s (%(cat_curr)s%(cat_val)s per "
 "catalog)\n"
 msgstr ""
-"Monto unitario: %(curr)s%(val_p_unit)s (%(cat_curr)s%(cat_val)s por "
+" Monto unitario: %(curr)s%(val_p_unit)s (%(cat_curr)s%(cat_val)s por "
 "catálogo)\n"
 
 #, python-format
 msgid " Amount multiplier: %s\n"
-msgstr "Multiplicador del monto: %s\n"
+msgstr " Multiplicador del monto: %s\n"
 
 #, python-format
 msgid " VAT would be: %(perc_vat)s%% %(equals)s %(curr)s%(vat)s\n"
@@ -8748,7 +9047,7 @@ msgid " Bill value: %(curr)s%(val)s\n"
 msgstr " Valor de la cuenta: %(curr)s%(val)s\n"
 
 msgid " VAT: undecided\n"
-msgstr "IVA: no decidido\n"
+msgstr " IVA: no decidido\n"
 
 #, python-format
 msgid " VAT: %(perc_vat)s%% %(equals)s %(curr)s%(vat)s\n"
@@ -8958,32 +9257,9 @@ msgstr "Vacunaciones:"
 msgid "External care:"
 msgstr "Cuidado externo:"
 
-#, python-format
-msgid ""
-"health issue: %s%s%s\n"
-"\n"
-msgstr ""
-"tema de salud: %s%s%s\n"
-"\n"
-
-msgid ""
-"\n"
-"current values:\n"
-msgstr ""
-"\n"
-"valores actuales:\n"
-
-msgid "no previous versions of this record"
-msgstr "no hay versiones previas de este registro"
-
-msgid ""
-"\n"
-"all values with <audit_action>, <audit_when>, <audit_by> fields (current "
-"value first):\n"
-msgstr ""
-"\n"
-"todos los valores con <audit_action>, <audit_when>, <audit_by> fields "
-"(valores actuales primero):\n"
+#, fuzzy, python-format
+msgid "Health issue: %s%s%s"
+msgstr "Tema de salud: %s"
 
 msgid "Unattributed episodes"
 msgstr "Episodios sin causa aparente"
@@ -9006,9 +9282,6 @@ msgstr " Duración: %s (%s - %s)"
 msgid "finished"
 msgstr "finalizada"
 
-msgid "Health issue"
-msgstr "Problema de salud"
-
 msgid "none associated"
 msgstr "sin asociación"
 
@@ -9043,13 +9316,11 @@ msgstr "Notas de progreso del contacto más reciente:"
 msgid "Measurements and Results:"
 msgstr "Exámenes y resultados"
 
-#, python-format
-msgid ""
-"episode: %s%s%s\n"
-"\n"
+#, fuzzy, python-format
+msgid "Episode: %s%s%s"
 msgstr ""
-"episodio: %s%s%s\n"
 "\n"
+"Episodio %s%s%s%s:"
 
 #, python-format
 msgid "  your time: %s - %s  (@%s = %s%s)\n"
@@ -9077,13 +9348,9 @@ msgstr ""
 msgid "%s other episodes touched upon during this encounter:"
 msgstr "%s otros episodios tratados durante este ccontacto:"
 
-#, python-format
-msgid ""
-"encounter: %s%s%s\n"
-"\n"
-msgstr ""
-"hallazgo: %s%s%s\n"
-"\n"
+#, fuzzy, python-format
+msgid "Encounter: %s%s%s"
+msgstr "Contactos: %s (%s - %s):"
 
 msgid " (ongoing)"
 msgstr " (en curso)"
@@ -9103,9 +9370,6 @@ msgstr "Hospitalizaciones"
 msgid "Procedures"
 msgstr "Procedimientos"
 
-msgid "Substances"
-msgstr "Sustancias"
-
 msgid "Life events"
 msgstr "Eventos vitales"
 
@@ -9127,9 +9391,6 @@ msgstr "Muerte"
 msgid "Cannot display timeline."
 msgstr "No puedo mostrar la liunea de tiempo."
 
-msgid "Vaccination"
-msgstr "Vacunación"
-
 msgid "Lab result"
 msgstr "Resultado de laboratorio"
 
@@ -9210,9 +9471,6 @@ msgstr "Cuándo"
 msgid "Exported: %s\n"
 msgstr "Exportado: %s\n"
 
-msgid "emr-journal"
-msgstr "Diario del RME"
-
 msgid "Chronological EMR Journal\n"
 msgstr "Diario Cronológico de la HC\n"
 
@@ -9524,20 +9782,8 @@ msgstr "Codificando detalles del sistema"
 msgid "Select one or more codes that apply."
 msgstr "Seleccione uno o más códigos que apliquen."
 
-msgid "Cannot move progress notes. No active patient."
-msgstr "No puedo mover notas de progreso. No existe paciente activo."
-
-msgid "Moving progress notes between encounters ..."
-msgstr "Moviendo notas de progreso entre contactos ..."
-
-msgid ""
-"\n"
-" Select the progress notes to move from the list !\n"
-"\n"
-msgstr ""
-"\n"
-" ¡Seleccione la nota de progreso a ser movida desde la lista!\n"
-"\n"
+msgid "Select the narrative you are interested in ..."
+msgstr "Seleccione el relato en el cual está interesado ..."
 
 msgid "when"
 msgstr "cuándo"
@@ -9548,83 +9794,222 @@ msgstr "quién"
 msgid "entry"
 msgstr "ingreso"
 
-msgid "Cannot edit progress notes. No active patient."
-msgstr "No puedo editar las notas de progreso. No existe paciente activo."
+msgid "There is no narrative for this episode in this encounter."
+msgstr "No hay relato para el episodio en este contacto."
 
-msgid "Deleting progress note"
-msgstr "Elimino nota de progreso"
+msgid "Must select episode to move narrative to first."
+msgstr "Debe seleccionar un episodio para poder mover el relato."
 
-msgid ""
-"Are you positively sure you want to delete this\n"
-"progress note from the medical record ?\n"
-"\n"
-"Note that even if you chose to delete the entry it will\n"
-"still be (invisibly) kept in the audit trail to protect\n"
-"you from litigation because physical deletion is known\n"
-"to be unlawful in some jurisdictions.\n"
-msgstr ""
-"¿Está completamente seguro que desea eliminar esta\n"
-"nota de progreso del registro médico?\n"
-"\n"
-"Note que incluso si elige eliminar el ingreso, aún\n"
-"será mantenida (invisible) en el sistema de auditoría\n"
-"para protegerlo de un juicio, porque la eliminación física\n"
-"puede ser ilegal en algunas partes.\n"
+msgid "Last"
+msgstr "Último/a"
 
-msgid "Yes, delete the progress note."
-msgstr "Sí, elimine la nota de progreso."
+msgid "In health issue"
+msgstr "En problema de salud"
 
-msgid "No, do NOT delete the progress note."
-msgstr "No, NO elimine la nota de progreso."
+msgid "Most recent notes on selected problem"
+msgstr "Notas más recientes en problema seleccionado"
 
-msgid "Editing progress note"
-msgstr "Editando nota de progreso"
+#, python-format
+msgid "%s (active+potential) problems"
+msgstr "%s problemas (activos y protenciales)"
 
-msgid "This is the original progress note:"
-msgstr "Esta es la nota de progreso original:"
+#, python-format
+msgid "%s active problems"
+msgstr "%s problemas activos"
 
-msgid "Managing progress notes"
-msgstr "Administrando la nota de progreso"
+msgid "Current encounter:"
+msgstr "Contacto actual:"
+
+msgid "Cumulative summary"
+msgstr "Resumen"
+
+#, python-format
+msgid "Most recent info on %s%s%s"
+msgstr "Información más reciente sobre %s%s%s"
 
 #, python-format
 msgid ""
+"Cannot open progress note editor for\n"
 "\n"
-" This list shows the progress notes by %s.\n"
+"[%s].\n"
 "\n"
 msgstr ""
+"No puedo abrir nota de progreso para\n"
 "\n"
-" Esta lista muestra las notas de progreso de %s.\n"
+"[%s]\n"
 "\n"
 
-msgid "Enter (regex) term to search for across all EMRs:"
-msgstr "Ingrese (expresiones regulares) concepto para buscarlo en los RMEs:"
+msgid "opening progress note editor"
+msgstr "Abriendo editor de nota de progreso"
 
-msgid "Text search across all EMRs"
-msgstr "Búsqueda de texto entre los RMEs."
+msgid "Cannot save all editors. Some were kept open."
+msgstr "No puedo guardar los editores. Alguno está abierto."
+
+msgid "new problem"
+msgstr "Problema nuevo"
 
-#, python-format
 msgid ""
-"Nothing found for search term:\n"
-" \"%s\""
+"Are you sure you really want to\n"
+"discard this progress note ?\n"
 msgstr ""
-"No encontré nada para el concepto:\n"
-" \"%s\""
-
-msgid "Search results"
-msgstr "Resultados de la búsqueda"
+"¿Está seguro que realmente desea\n"
+"descartar esta nota de progreso?\n"
 
-#, python-format
-msgid "Search results for [%s]"
-msgstr "Busco resultados para [%s]"
+msgid "Discarding progress note"
+msgstr "Descarto nota de progreso"
 
-msgid "Match"
-msgstr "Coincidencia"
+msgid "There are unsaved progress notes !\n"
+msgstr "¡Existen notas de progreso no guardadas!\n"
 
-msgid "Match location"
-msgstr "Ubicación"
+msgid "Unsaved progress notes"
+msgstr "Notas de progreso no guardadas"
 
-msgid "Cannot search EMR. No active patient."
-msgstr "No puedo buscar RME. No existe paciente activo."
+msgid "Problem list"
+msgstr "Lista de problemas"
+
+msgid "Saving SOAP note"
+msgstr "Guardo nota SOAP"
+
+msgid "Do you want to save the SOAP note ?"
+msgstr "¿Desea guardar la nota SOAP?"
+
+#, python-format
+msgid "&Filter by problem %s%s%s"
+msgstr "&Filtra por problema %s%s%s"
+
+msgid "Cannot save SimpleNotes SOAP note."
+msgstr "No puedo guardar nota SimpleNotes SOAP."
+
+#, python-format
+msgid "Progress note: %s%s"
+msgstr "Nota de rpogreso: %s%s"
+
+msgid "Please enter a name for the new problem:"
+msgstr "Por favor, ingrese un nombre para el nuevo problema:"
+
+msgid "Adding a problem"
+msgstr "Agrego un nombre"
+
+msgid "Cannot delete problem. There is still clinical data recorded for it."
+msgstr "No puedo eliminar el problema. Aún hay datos clínicos guardados en él."
+
+#, python-format
+msgid "GNUmed: configuring [%s] (%s plugins)"
+msgstr "GNUmed: configurando [%s] (módulos %s)"
+
+msgid "loading list of plugins                               "
+msgstr "cargando lista de módulos                               "
+
+msgid "failed"
+msgstr "falló"
+
+msgid "success"
+msgstr "éxito"
+
+#, python-format
+msgid ""
+"previous: %s (%s)\n"
+"current (%s/%s): %s"
+msgstr ""
+"anterior: %s (%s)\n"
+"actual (%s/%s): %s"
+
+#, python-format
+msgid "Cannot switch to [%s]: no patient selected"
+msgstr "No ha sido posible cambiar a [%s]: no hay ningún paciente activo"
+
+msgid "Cannot move progress notes. No active patient."
+msgstr "No puedo mover notas de progreso. No existe paciente activo."
+
+msgid "Moving progress notes between encounters ..."
+msgstr "Moviendo notas de progreso entre contactos ..."
+
+msgid ""
+"\n"
+" Select the progress notes to move from the list !\n"
+"\n"
+msgstr ""
+"\n"
+" ¡Seleccione la nota de progreso a ser movida desde la lista!\n"
+"\n"
+
+msgid "Cannot edit progress notes. No active patient."
+msgstr "No puedo editar las notas de progreso. No existe paciente activo."
+
+msgid "Deleting progress note"
+msgstr "Elimino nota de progreso"
+
+msgid ""
+"Are you positively sure you want to delete this\n"
+"progress note from the medical record ?\n"
+"\n"
+"Note that even if you chose to delete the entry it will\n"
+"still be (invisibly) kept in the audit trail to protect\n"
+"you from litigation because physical deletion is known\n"
+"to be unlawful in some jurisdictions.\n"
+msgstr ""
+"¿Está completamente seguro que desea eliminar esta\n"
+"nota de progreso del registro médico?\n"
+"\n"
+"Note que incluso si elige eliminar el ingreso, aún\n"
+"será mantenida (invisible) en el sistema de auditoría\n"
+"para protegerlo de un juicio, porque la eliminación física\n"
+"puede ser ilegal en algunas partes.\n"
+
+msgid "Yes, delete the progress note."
+msgstr "Sí, elimine la nota de progreso."
+
+msgid "No, do NOT delete the progress note."
+msgstr "No, NO elimine la nota de progreso."
+
+msgid "Editing progress note"
+msgstr "Editando nota de progreso"
+
+msgid "This is the original progress note:"
+msgstr "Esta es la nota de progreso original:"
+
+msgid "Managing progress notes"
+msgstr "Administrando la nota de progreso"
+
+#, python-format
+msgid ""
+"\n"
+" This list shows the progress notes by %s.\n"
+"\n"
+msgstr ""
+"\n"
+" Esta lista muestra las notas de progreso de %s.\n"
+"\n"
+
+msgid "Enter (regex) term to search for across all EMRs:"
+msgstr "Ingrese (expresiones regulares) concepto para buscarlo en los RMEs:"
+
+msgid "Text search across all EMRs"
+msgstr "Búsqueda de texto entre los RMEs."
+
+#, python-format
+msgid ""
+"Nothing found for search term:\n"
+" \"%s\""
+msgstr ""
+"No encontré nada para el concepto:\n"
+" \"%s\""
+
+msgid "Search results"
+msgstr "Resultados de la búsqueda"
+
+#, python-format
+msgid "Search results for [%s]"
+msgstr "Busco resultados para [%s]"
+
+msgid "Match"
+msgstr "Coincidencia"
+
+msgid "Match location"
+msgstr "Ubicación"
+
+msgid "Cannot search EMR. No active patient."
+msgstr "No puedo buscar RME. No existe paciente activo."
 
 msgid "Enter search term:"
 msgstr "Ingrese concepto de búsqueda:"
@@ -9781,868 +10166,640 @@ msgstr ""
 "\n"
 " Ahora, marque los ingresos que desea incluir en su informe.\n"
 
-msgid "Select the narrative you are interested in ..."
-msgstr "Seleccione el relato en el cual está interesado ..."
+msgid "Pick a date ..."
+msgstr "Elegir un dato ..."
 
-msgid "There is no narrative for this episode in this encounter."
-msgstr "No hay relato para el episodio en este contacto."
+msgid "<ALT-C/K>: pick from (c/k)alendar"
+msgstr "<ALT-C/K> seleccione de (c/k)alendario"
 
-msgid "Must select episode to move narrative to first."
-msgstr "Debe seleccionar un episodio para poder mover el relato."
+msgid "Cannot interpret input as timestamp."
+msgstr "No se pudo interpretar fecha ingresada."
 
-msgid "Last"
-msgstr "Último/a"
+msgid "No vaccines were chosen"
+msgstr "No se escogieron vacunas"
 
-msgid "In health issue"
-msgstr "En problema de salud"
+#, python-format
+msgid "Combination of indications , %s , not found in any vaccine"
+msgstr "Combinación de indicaciones, %s, no encontradas en ninguna vacuna"
 
-msgid "Most recent notes on selected problem"
-msgstr "Notas más recientes en problema seleccionado"
+msgid "Sequence"
+msgstr "Secuencia"
 
-#, python-format
-msgid "%s (active+potential) problems"
-msgstr "%s problemas (activos y protenciales)"
+msgid "Batch"
+msgstr "Lote"
 
-#, python-format
-msgid "%s active problems"
-msgstr "%s problemas activos"
+msgid "Vaccinator"
+msgstr "Vacunador"
 
-msgid "Current encounter:"
-msgstr "Contacto actual:"
+msgid ""
+"Vaccinations by Recommender (X = patient on regime, O = patient not on "
+"regime) "
+msgstr ""
+"Vacunaciones por Recomendación (X = paciente en régimen, 0 = paciente fuera "
+"de régimen) "
 
-msgid "Cumulative summary"
-msgstr "Resumen"
+msgid "enrolled regime vaccinations not yet given"
+msgstr "régimen de vacunaciones inscritas aún no aplicadas"
+
+msgid "Proceed with "
+msgstr "Proceda con "
 
 #, python-format
-msgid "Most recent info on %s%s%s"
-msgstr "Información más reciente sobre %s%s%s"
+msgid "Failed to enrol patient in %s"
+msgstr "Error inscribiendo paciente en %s"
+
+#, python-format
+msgid "Failed to  delist patient from %s"
+msgstr "Error al desenlistar paciente de %s"
+
+msgid "Missing GNUmed module"
+msgstr "Falta un módulo de GNUmed"
 
 #, python-format
 msgid ""
-"Cannot open progress note editor for\n"
+"GNUmed detected that parts of it are not\n"
+"properly installed. The following message\n"
+"names the missing part:\n"
 "\n"
-"[%s].\n"
+" \"%s\"\n"
 "\n"
+"Please make sure to get the missing\n"
+"parts installed. Otherwise some of the\n"
+"functionality will not be accessible."
 msgstr ""
-"No puedo abrir nota de progreso para\n"
+"GNUmed detectó que partes del programa no\n"
+"están instalados adecuadamente. El siguiente\n"
+"mensaje indica la parte faltante:\n"
 "\n"
-"[%s]\n"
+" \"%s\"\n"
 "\n"
+"Por favor, asegúrese de instalar la\n"
+"parte faltante. De otra forma, parte de\n"
+"la funcionalidad no será accesible."
 
-msgid "opening progress note editor"
-msgstr "Abriendo editor de nota de progreso"
-
-msgid "Cannot save all editors. Some were kept open."
-msgstr "No puedo guardar los editores. Alguno está abierto."
-
-msgid "new problem"
-msgstr "Problema nuevo"
-
+#, python-format
 msgid ""
-"Are you sure you really want to\n"
-"discard this progress note ?\n"
+"\n"
+" Source: %s"
 msgstr ""
-"¿Está seguro que realmente desea\n"
-"descartar esta nota de progreso?\n"
-
-msgid "Discarding progress note"
-msgstr "Descarto nota de progreso"
-
-msgid "There are unsaved progress notes !\n"
-msgstr "¡Existen notas de progreso no guardadas!\n"
-
-msgid "Unsaved progress notes"
-msgstr "Notas de progreso no guardadas"
+"\n"
+" Fuente: %s"
 
 #, python-format
-msgid "Synopsis (%s)"
-msgstr "Sinopsis (%s)"
-
 msgid ""
-"Enter a short working name for this new problem\n"
-"(which will become a new, unassociated episode):\n"
+"\n"
+" Code: %s"
 msgstr ""
-"Ingrese un nombre de trabajo corto para este nuevo problema\n"
-"(el cual se convertirá en un nuevo episodio no asociado):\n"
+"\n"
+" Código: %s"
 
 #, python-format
 msgid ""
-"Enter a short working name for this new\n"
-"episode under the existing health issue\n"
 "\n"
-"\"%s\":\n"
+" Details (first 250 characters):\n"
+"%s\n"
+"%s\n"
+"%s"
 msgstr ""
-"Ingrese un nombre de trabajo corto para este nuevo\n"
-"episodio respecto al tema de salud existente\n"
 "\n"
-"\"%s\":\n"
-
-msgid "Creating problem (episode) to save notelet under ..."
-msgstr "Creo problema (episodio) para guardar díptico como ..."
-
-msgid "Cannot save a new problem without a name."
-msgstr "No se puede guardar un nuevo problema sin un nombre."
+" Detalles (Primeros 250 caracteres):\n"
+"%s\n"
+"%s\n"
+"%s"
 
-msgid "saving progress note"
-msgstr "guardando nota de progreso"
+msgid "Access violation"
+msgstr "Violación de acceso"
 
 #, python-format
 msgid ""
-"The new episode:\n"
-"\n"
-" \"%s\"\n"
-"\n"
-"will remain unassociated despite the editor\n"
-"having been invoked from the health issue:\n"
+"You do not have access to this part of GNUmed.\n"
 "\n"
-" \"%s\""
+"%s"
 msgstr ""
-"El nuevo episodio:\n"
-"\n"
-"\"%s\"\n"
-"\n"
-"quedará sin asociación, a pesar que el editor\n"
-"ha sido invocado desde el problema de salud:\n"
+"No tiene acceso a esta parte de GNUmed.\n"
 "\n"
-" \"%s\""
-
-msgid "You need to actually set an editor."
-msgstr "Necestia realmente seleccionar un editor."
+"%s"
 
-#, python-format
-msgid "The command [%s] is not found."
-msgstr "No se encuentra el comando [%s]."
+msgid "Lost connection"
+msgstr "Conexión perdida"
 
-#, python-format
 msgid ""
-"Enter the shell command with which to start\n"
-"the image editor for visual progress notes.\n"
+"Since you were last working in GNUmed,\n"
+"your database connection timed out.\n"
 "\n"
-"Any \"%(img)s\" included with the arguments\n"
-"will be replaced by the file name of the\n"
-"note template."
+"This GNUmed session is now expired.\n"
+"\n"
+"You will have to close this client and\n"
+"restart a new GNUmed session."
 msgstr ""
-"Ingrese el comando de ambiente con el cual iniciar\n"
-"el editor de imagen para las notas visuales de progreso.\n"
+"Desde su último trabajo en GNUmed\n"
+"su conexión con la base de datos expiró.\n"
 "\n"
-"Cualesquier \"%(img)s\" incluidas con los argumentos\n"
-"serán reemplazadas por el nombre del archivo de la\n"
-"plantilla de nota."
+"Esta sesión de GNUmed terminó.\n"
+"\n"
+"Deberá cerrar este cliente y\n"
+"reiniciar una nueva sesión GNUmed."
 
-msgid "Choose file to use as template for new visual progress note"
+msgid ""
+"Please enter a short note on what you\n"
+"were about to do in GNUmed:"
 msgstr ""
-"Elija un archivo para ser usado como plantilla para la nueva nota visual de "
-"progreso."
-
-msgid "Visual progress note source"
-msgstr "Fuente de la nota visual de progeso"
-
-msgid "From which source do you want to pick the image template ?"
-msgstr "¿De qué fuente desea elegir la plantilla de imagen?"
-
-msgid "Database"
-msgstr "Base de datos"
-
-msgid "List of templates in the database."
-msgstr "Lista de plantillas en la base de datos"
-
-msgid "Files in the filesystem."
-msgstr "Archivos en el sistema de archivos"
-
-msgid "Device"
-msgstr "Dispositivo"
-
-msgid "Image capture devices (scanners, cameras, etc)"
-msgstr "Dispositivos capuradores de imagen (escáneres, cámaras, etc.)"
-
-#, python-format
-msgid "Cannot export visual progress note template for [%s]."
-msgstr "No puedo exportar la plantilla de nota visual de progreso [%s]."
-
-msgid "Cannot export visual progress note to file."
-msgstr "No puedo exportar nota visual de progreso a un archivo."
+"Introduzca una breve nota de qué\n"
+"estaba a punto de hacer en GNUmed:"
 
-msgid "Editor for visual progress note not configured."
-msgstr "Editor no configurado para nota visual de progreso."
+msgid "Sending bug report"
+msgstr "Enviando un informe de errores"
 
-#, python-format
 msgid ""
-"There was a problem with running the editor\n"
-"for visual progress notes.\n"
-"\n"
-" [%s]\n"
+"Edit the list of email addresses to send the\n"
+"bug report to (separate addresses by spaces).\n"
 "\n"
+"Note that <gnumed-bugs at gnu.org> refers to\n"
+"the public (!) GNUmed bugs mailing list."
 msgstr ""
-"Ha ocurrido un error al correr el editor\n"
-"para la nota visual de progreso.\n"
-"\n"
-" [%s]\n"
+"Edite la lista de direcciones de correo electrónico para\n"
+"enviar el informe de errores a (separe direcciones por espacios).\n"
 "\n"
-
-msgid "Editing visual progress note"
-msgstr "Editando nota visual de progeso"
+"Note que <gnumed-bugs at gnu.org> se refiere a\n"
+"la lista pública (¡!) de errores de GNUmed."
 
 #, python-format
 msgid ""
-"There was a problem reading the visual\n"
-"progress note from the file:\n"
+"Your bug report will be sent to:\n"
 "\n"
-" [%s]\n"
+"%s\n"
+"\n"
+"Make sure you have reviewed the log file for potentially\n"
+"sensitive information before sending out the bug report.\n"
 "\n"
+"Note that emailing the report may take a while depending\n"
+"on the speed of your internet connection.\n"
 msgstr ""
-"Ha ocurrido un error al leer la nota\n"
-"visual de progreso desde el archivo:\n"
+"Su informe de errores será enviado a:\n"
 "\n"
-" [%s]\n"
+"%s\n"
 "\n"
+"Asegúrese que haya revisado el archivo de registro en búsqueda\n"
+"de información sensible antes de enviar el informe de errores.\n"
+"\n"
+"Note que enviar el reporte por correo electrónico puede tomar un\n"
+"tiempo dependiendo del ancho de banda de su conexión a internet.\n"
 
-msgid "Saving visual progress note"
-msgstr "Guardando la nota visual de progreso"
+msgid "Yes, send the bug report."
+msgstr "Sí, enviar el informe de errores."
+
+msgid "No, do not send the bug report."
+msgstr "No, no enviar el informe de errores."
+
+msgid "include log file in bug report"
+msgstr "incluir fichero de log en el informe de errores"
 
 msgid ""
-"You either created a visual progress note from a template\n"
-"in the database (rather than from a file on disk) or you\n"
-"edited an existing visual progress note.\n"
+"The database you are connected to is marked as\n"
+"\"in-production with controlled access\".\n"
 "\n"
-"The template/original was not modified at all, however.\n"
+"You indicated that you want to include the log\n"
+"file in your bug report. While this is often\n"
+"useful for debugging the log file might contain\n"
+"bits of patient data which must not be sent out\n"
+"without de-identification.\n"
 "\n"
-"Do you still want to save the unmodified image as a\n"
-"visual progress note into the EMR of the patient ?\n"
+"Please confirm that you want to include the log !"
 msgstr ""
-"O creó una nota visual de progreso desde una plantilla\n"
-"de la base de datos (más que desde un archivo o disco) o\n"
-"ha editado una nota visual de progreso existente.\n"
+"La base de datos a la cual está conectado/a está marcada\n"
+"como \"de producción con acceso controlado\".\n"
 "\n"
-"La plantilla/original, sin embargo, no fue modificada para nada.\n"
+"Usted indicó que desea incluir el archivo de registro en su\n"
+"informe de errores. En tanto esto puede ser útil para\n"
+"depurar, el archivo de errores puede contener pedazos de\n"
+"datos de pacientes que debieran enviarse anónimamente.\n"
 "\n"
-"¿Aún desea guardar la imagen no modificada como\n"
-"una nota visual de progreso en el RME del paciente?\n"
+"Por favor, ¡confirme que desea incluir el registro!"
 
-msgid "visual progress notes"
-msgstr "nota visual de progreso"
+msgid "<not supplied>"
+msgstr "<no proporcionado>"
 
-#, python-format
-msgid "Created: %s"
-msgstr "Creada: %s"
+msgid "Bug report has been emailed."
+msgstr "Se ha enviado el informe de errores."
 
-msgid "Problem list"
-msgstr "Lista de problemas"
+msgid "Bug report COULD NOT be emailed."
+msgstr "NO SE PUDO enviar el informe de errores."
 
-msgid "Saving SOAP note"
-msgstr "Guardo nota SOAP"
+msgid "Underweight"
+msgstr "Peso insuficiente"
 
-msgid "Do you want to save the SOAP note ?"
-msgstr "¿Desea guardar la nota SOAP?"
+msgid "63< Normal >79"
+msgstr "63< Normal >79"
 
-#, python-format
-msgid "&Filter by problem %s%s%s"
-msgstr "&Filtra por problema %s%s%s"
+msgid "63 - Normal - 79"
+msgstr "63 - Normal - 79"
 
-msgid "Cannot save SimpleNotes SOAP note."
-msgstr "No puedo guardar nota SimpleNotes SOAP."
+msgid "Overweight"
+msgstr "Sobrepeso"
 
-#, python-format
-msgid "Progress note: %s%s"
-msgstr "Nota de rpogreso: %s%s"
+msgid "Obese"
+msgstr "Obeso"
 
-msgid "Please enter a name for the new problem:"
-msgstr "Por favor, ingrese un nombre para el nuevo problema:"
+msgid "Current height/mass"
+msgstr "Altura/peso actual"
 
-msgid "Adding a problem"
-msgstr "Agrego un nombre"
+msgid "Height (cm)"
+msgstr "Altura (cm)"
 
-msgid "Cannot delete problem. There is still clinical data recorded for it."
-msgstr "No puedo eliminar el problema. Aún hay datos clínicos guardados en él."
+msgid "Mass (kg)"
+msgstr "Peso (kg)"
 
-#, python-format
-msgid "GNUmed: configuring [%s] (%s plugins)"
-msgstr "GNUmed: configurando [%s] (módulos %s)"
+msgid "Adjusted Values"
+msgstr "Valores Ajustados"
 
-msgid "loading list of plugins                               "
-msgstr "cargando lista de módulos                               "
+msgid "Goal mass"
+msgstr "Peso meta"
 
-msgid "failed"
-msgstr "falló"
+msgid "kg to lose"
+msgstr "kg a bajar"
 
-msgid "success"
-msgstr "éxito"
+msgid "BMI Calculator"
+msgstr "Cálculo del IMC"
 
-#, python-format
-msgid ""
-"previous: %s (%s)\n"
-"current (%s/%s): %s"
-msgstr ""
-"anterior: %s (%s)\n"
-"actual (%s/%s): %s"
+msgid "&Reset"
+msgstr "&Nuevo"
 
-#, python-format
-msgid "Cannot switch to [%s]: no patient selected"
-msgstr "No ha sido posible cambiar a [%s]: no hay ningún paciente activo"
+msgid "Select a healthcare provider."
+msgstr "Seleccione un médico."
 
-msgid "Pick a date ..."
-msgstr "Elegir un dato ..."
+msgid "Public (no clinical or demographic access)"
+msgstr "Público (sin acceso clínico o demográfico)"
 
-msgid "<ALT-C/K>: pick from (c/k)alendar"
-msgstr "<ALT-C/K> seleccione de (c/k)alendario"
+msgid "Staff (demographic access only)"
+msgstr "Equipo (solo acceso demográfico)"
 
-msgid "Cannot interpret input as timestamp."
-msgstr "No se pudo interpretar fecha ingresada."
+msgid "staff (clerical)"
+msgstr "equipo (de oficina)"
 
-msgid "No vaccines were chosen"
-msgstr "No se escogieron vacunas"
+msgid "full clinical access"
+msgstr "acceso clínico completo"
 
-#, python-format
-msgid "Combination of indications , %s , not found in any vaccine"
-msgstr "Combinación de indicaciones, %s, no encontradas en ninguna vacuna"
+msgid "DB account"
+msgstr "cuenta de base de datos"
 
-msgid "Sequence"
-msgstr "Secuencia"
+msgid "can login"
+msgstr "puede ingresar"
 
-msgid "Batch"
-msgstr "Lote"
+msgid "can not login"
+msgstr "no puede ingresar"
 
-msgid "Vaccinator"
-msgstr "Vacunador"
+msgid "Activating GNUmed user."
+msgstr "Activando usuario GNUmed"
 
-msgid ""
-"Vaccinations by Recommender (X = patient on regime, O = patient not on "
-"regime) "
-msgstr ""
-"Vacunaciones por Recomendación (X = paciente en régimen, 0 = paciente fuera "
-"de régimen) "
+msgid "Deactivating GNUmed user."
+msgstr "Desactivando usuario GNUmed."
 
-msgid "enrolled regime vaccinations not yet given"
-msgstr "régimen de vacunaciones inscritas aún no aplicadas"
+msgid "Removing GNUmed user."
+msgstr "Eiminando usuario GNUmed."
 
-msgid "Proceed with "
-msgstr "Proceda con"
+msgid "Removing GNUmed user"
+msgstr "Eliminando usuario GNU,ed"
 
-#, python-format
-msgid "Failed to enrol patient in %s"
-msgstr "Error inscribiendo paciente en %s"
+msgid "Modifying GNUmed user."
+msgstr "Modificando usuario GNUmed."
 
-#, python-format
-msgid "Failed to  delist patient from %s"
-msgstr "Error al desenlistar paciente de %s"
+msgid "Failed to save changes to GNUmed database user."
+msgstr "Falló guardando cambios de usuario en base de datos GNUmed."
 
-msgid "Missing GNUmed module"
-msgstr "Falta un módulo de GNUmed"
+msgid "Modifying GNUmed user"
+msgstr "Modificando usuario GNUmed."
 
 #, python-format
-msgid ""
-"GNUmed detected that parts of it are not\n"
-"properly installed. The following message\n"
-"names the missing part:\n"
-"\n"
-" \"%s\"\n"
-"\n"
-"Please make sure to get the missing\n"
-"parts installed. Otherwise some of the\n"
-"functionality will not be accessible."
-msgstr ""
-"GNUmed detectó que partes del programa no\n"
-"están instalados adecuadamente. El siguiente\n"
-"mensaje indica la parte faltante:\n"
-"\n"
-" \"%s\"\n"
-"\n"
-"Por favor, asegúrese de instalar la\n"
-"parte faltante. De otra forma, parte de\n"
-"la funcionalidad no será accesible."
+msgid "Failed to set role [%s] for GNUmed database user."
+msgstr "Fallé al fijar rol [%s] para el usuario de base de datos GNUmed."
 
 #, python-format
 msgid ""
 "\n"
-" Source: %s"
+"  %s \"%s\" %s\n"
+"  born: %s"
 msgstr ""
 "\n"
-" Fuente: %s"
+"  %s \"%s\" %s\n"
+"  nacido: %s"
 
-#, python-format
 msgid ""
-"\n"
-" Code: %s"
+"Password entries do not match. Please type in the passwords again to rule "
+"out typos."
 msgstr ""
-"\n"
-" Código: %s"
+"Las contraseñas ingresadas no coinciden. Por favor, digite nuevamente las "
+"contraseñas para descartar errores de digitación."
+
+msgid "Adding GNUmed user"
+msgstr "Agregando usuario GNUmed"
 
-#, python-format
 msgid ""
+"Are you positively sure you want to create\n"
+"a user with an empty password ?\n"
 "\n"
-" Details (first 250 characters):\n"
-"%s\n"
-"%s\n"
-"%s"
+"Think about the record access implications !"
 msgstr ""
+"¿Está totalmente seguro que desea crear un\n"
+"usuario con una contraseña vacía?\n"
 "\n"
-" Detalles (Primeros 250 caracteres):\n"
-"%s\n"
-"%s\n"
-"%s"
+"¡Piense sobre las consecuencias de acceso a registros!"
 
-msgid "Access violation"
-msgstr "Violación de acceso"
+msgid "Enlisting person as user."
+msgstr "Enlistando persona como ususario."
+
+msgid "Encrypt"
+msgstr "Encriptar"
+
+msgid "Decrypt"
+msgstr "Desencriptar"
+
+msgid "Set pass phrase"
+msgstr "Configurar contraseña"
+
+msgid "This is not correctly encrypted text!"
+msgstr "¡El texto no está correctamente encriptado!"
+
+msgid "Please enter your pass phrase:"
+msgstr "Por favor, introduzca su contraseña:"
+
+msgid "Pass phrase expired"
+msgstr "La contraseña ha caducado"
 
-#, python-format
 msgid ""
-"You do not have access to this part of GNUmed.\n"
 "\n"
-"%s"
+"Conditions preventable by vaccination as currently known to GNUmed.\n"
 msgstr ""
-"No tiene acceso a esta parte de GNUmed.\n"
 "\n"
-"%s"
+"Condiciones previsibles por vacunaciones actualmente conocidas por GNUmed.\n"
 
-msgid "Lost connection"
-msgstr "Conexión perdida"
+msgid "Showing vaccination preventable conditions."
+msgstr "Muestra condiciones previsibles por vacunación."
+
+msgid "ATCs: single-condition vaccines"
+msgstr "ATQs: vacunas de condición única"
+
+msgid "ATCs: multi-condition vaccines"
+msgstr "ATQs: vacunas multicondiciones"
+
+msgid "Pick the relevant indications."
+msgstr "Elija las indicaciones relevantes."
+
+msgid "Known indications"
+msgstr "Indicaciones conocidas"
 
+msgid "Adding new vaccine"
+msgstr "Agrego nueva vacuna"
+
+msgid "Editing vaccine"
+msgstr "Edita vacuna"
+
+#, python-format
 msgid ""
-"Since you were last working in GNUmed,\n"
-"your database connection timed out.\n"
+"Cannot delete vaccine\n"
 "\n"
-"This GNUmed session is now expired.\n"
+" %s - %s (#%s)\n"
 "\n"
-"You will have to close this client and\n"
-"restart a new GNUmed session."
+"It is probably documented in a vaccination."
 msgstr ""
-"Desde su último trabajo en GNUmed\n"
-"su conexión con la base de datos expiró.\n"
+"No puedo borrar vacuna\n"
 "\n"
-"Esta sesión de GNUmed terminó.\n"
+" %s - %s (#%s)\n"
 "\n"
-"Deberá cerrar este cliente y\n"
-"reiniciar una nueva sesión GNUmed."
+"Probablemente documentada en una vacunación."
 
-msgid ""
-"Please enter a short note on what you\n"
-"were about to do in GNUmed:"
-msgstr ""
-"Introduzca una breve nota de qué\n"
-"estaba a punto de hacer en GNUmed:"
+msgid "Deleting vaccine"
+msgstr "Borrando vacuna"
 
-msgid "Sending bug report"
-msgstr "Enviando un informe de errores"
+msgid "fake"
+msgstr "falso"
 
 msgid ""
-"Edit the list of email addresses to send the\n"
-"bug report to (separate addresses by spaces).\n"
 "\n"
-"Note that <gnumed-bugs at gnu.org> refers to\n"
-"the public (!) GNUmed bugs mailing list."
+"The vaccines currently known to GNUmed.\n"
 msgstr ""
-"Edite la lista de direcciones de correo electrónico para\n"
-"enviar el informe de errores a (separe direcciones por espacios).\n"
 "\n"
-"Note que <gnumed-bugs at gnu.org> se refiere a\n"
-"la lista pública (¡!) de errores de GNUmed."
+"La vacunas actualmente conocidas a GNUmed.\n"
+
+msgid "Showing vaccines."
+msgstr "Mostrando vacunas."
+
+msgid "Enter or select the batch/lot number of the vaccine used."
+msgstr "Ingrese o seleccione el número de  lote de las vacunas usadas."
+
+msgid "Saving vaccine"
+msgstr "Guardando vacuna"
 
 #, python-format
 msgid ""
-"Your bug report will be sent to:\n"
+"This vaccine is already in use:\n"
 "\n"
-"%s\n"
+" \"%s\"\n"
+" (%s)\n"
 "\n"
-"Make sure you have reviewed the log file for potentially\n"
-"sensitive information before sending out the bug report.\n"
+"Are you absolutely positively sure that\n"
+"you really want to edit this vaccine ?\n"
 "\n"
-"Note that emailing the report may take a while depending\n"
-"on the speed of your internet connection.\n"
+"This will change the vaccine name and/or target\n"
+"conditions in each patient this vaccine was\n"
+"used in to document a vaccination with.\n"
 msgstr ""
-"Su informe de errores será enviado a:\n"
+"Esta vacuna está en uso:\n"
 "\n"
-"%s\n"
+" \"%s\"\n"
+" \"%s\"\n"
 "\n"
-"Asegúrese que haya revisado el archivo de registro en búsqueda\n"
-"de información sensible antes de enviar el informe de errores.\n"
+"¿Está totalmente seguro que realmente desea editar esta vacuna?\n"
 "\n"
-"Note que enviar el reporte por correo electrónico puede tomar un\n"
-"tiempo dependiendo del ancho de banda de su conexión a internet.\n"
-
-msgid "Yes, send the bug report."
-msgstr "Sí, enviar el informe de errores."
-
-msgid "No, do not send the bug report."
-msgstr "No, no enviar el informe de errores."
-
-msgid "include log file in bug report"
-msgstr "incluir fichero de log en el informe de errores"
-
-msgid ""
-"The database you are connected to is marked as\n"
-"\"in-production with controlled access\".\n"
-"\n"
-"You indicated that you want to include the log\n"
-"file in your bug report. While this is often\n"
-"useful for debugging the log file might contain\n"
-"bits of patient data which must not be sent out\n"
-"without de-identification.\n"
-"\n"
-"Please confirm that you want to include the log !"
-msgstr ""
-"La base de datos a la cual está conectado/a está marcada\n"
-"como \"de producción con acceso controlado\".\n"
-"\n"
-"Usted indicó que desea incluir el archivo de registro en su\n"
-"informe de errores. En tanto esto puede ser útil para\n"
-"depurar, el archivo de errores puede contener pedazos de\n"
-"datos de pacientes que debieran enviarse anónimamente.\n"
-"\n"
-"Por favor, ¡confirme que desea incluir el registro!"
-
-msgid "<not supplied>"
-msgstr "<no proporcionado>"
+"Esto cambiará el nombre de la vacuna y/o la condición\n"
+"objetiva de cada paciente en que esta vacuna fue usada\n"
+"para documentar una vacunación.\n"
 
-msgid "Bug report has been emailed."
-msgstr "Se ha enviado el informe de errores."
+msgid "You must select at least one indication."
+msgstr "Debe seleccionar al menos una indicación."
 
-msgid "Bug report COULD NOT be emailed."
-msgstr "NO SE PUDO enviar el informe de errores."
+msgid "Pick the diseases this vaccine protects against."
+msgstr "Elija la enfermedad contra la cual protege esta vacuna."
 
-msgid "Underweight"
-msgstr "Peso insuficiente"
+msgid "This vaccine"
+msgstr "La vacuna"
 
-msgid "63< Normal >79"
-msgstr "63< Normal >79"
+msgid "Adding new vaccinations"
+msgstr "Agregando nuevas vacunaciones"
 
-msgid "63 - Normal - 79"
-msgstr "63 - Normal - 79"
+msgid "Editing vaccination"
+msgstr "Editar vacunaciones"
 
-msgid "Overweight"
-msgstr "Sobrepeso"
+msgid "vaccination recall"
+msgstr "recuerda vacunación"
 
-msgid "Obese"
-msgstr "Obeso"
+#, python-format
+msgid "vaccination recall (%s)"
+msgstr "recuerda vacunación (%s)"
 
-msgid "Current height/mass"
-msgstr "Altura/peso actual"
+#, python-format
+msgid ""
+"Existing vaccination:\n"
+"\n"
+"%s"
+msgstr ""
+"Vacunación existente:\n"
+"\n"
+"%s"
 
-msgid "Height (cm)"
-msgstr "Altura (cm)"
+msgid ""
+"\n"
+"Complete vaccination history for this patient.\n"
+msgstr ""
+"\n"
+"Complete el historial de vacunaciones para este paciente.\n"
 
-msgid "Mass (kg)"
-msgstr "Peso (kg)"
+msgid "Showing vaccinations."
+msgstr "Mostrando vacunaciones."
 
-msgid "Adjusted Values"
-msgstr "Valores Ajustados"
+msgid "Intended to protect from"
+msgstr "Debiera proteger de"
 
-msgid "Goal mass"
-msgstr "Peso meta"
+msgid "Print vaccinations or recalls."
+msgstr "Imprime vacunaciones o las recuerda"
 
-msgid "kg to lose"
-msgstr "kg a bajar"
+msgid "Recall"
+msgstr "Recordación"
 
-msgid "BMI Calculator"
-msgstr "Cálculo del IMC"
+msgid "Add a recall for a vaccination"
+msgstr "Agrega una recordación para una vacunación"
 
-msgid "&Reset"
-msgstr "&Nuevo"
+msgid "Vx schedules"
+msgstr "Programa Vx"
 
-msgid "Select a healthcare provider."
-msgstr "Seleccione un médico."
+msgid "Open a browser showing vaccination schedules."
+msgstr "Abra un navegador que muestre procedimientos de vacunación."
 
-msgid "Public (no clinical or demographic access)"
-msgstr "Público (sin acceso clínico o demográfico)"
+msgid "prevention"
+msgstr "prevención"
 
-msgid "Staff (demographic access only)"
-msgstr "Equipo (solo acceso demográfico)"
+msgid "Saving vaccination"
+msgstr "Guarda vacunación"
 
-msgid "staff (clerical)"
-msgstr "equipo (de oficina)"
+msgid "Pick the diseases this vaccination was given against."
+msgstr "Elija las enfermedades contra las cuales esta vacunación fue indicada."
 
-msgid "full clinical access"
-msgstr "acceso clínico completo"
+msgid "  IMMUNISATIONS  "
+msgstr "  INMUNIZACIONES  "
 
-msgid "DB account"
-msgstr "cuenta de base de datos"
+msgid "Indications"
+msgstr "Indicaciones"
 
-msgid "can login"
-msgstr "puede ingresar"
+msgid "Active Schedules"
+msgstr "Programas activos"
 
-msgid "can not login"
-msgstr "no puede ingresar"
+msgid "Missing Immunisations"
+msgstr "Inmunizaciones Faltantes"
 
-msgid "no current role"
-msgstr "no hay rol actual"
+msgid "  Alerts  "
+msgstr "  Alertas  "
 
-msgid "Activating GNUmed user."
-msgstr "Activando usuario GNUmed"
+msgid "ERROR: cannot retrieve active vaccination schedules"
+msgstr "ERROR: no puedo cargar programas activos de vacunaciones"
 
-msgid "Deactivating GNUmed user."
-msgstr "Desactivando usuario GNUmed."
+msgid "no active vaccination schedules"
+msgstr "no hay programas activos de vacunación"
 
-msgid "Removing GNUmed user."
-msgstr "Eiminando usuario GNUmed."
+#, python-format
+msgid "%s for %s (%s shots): %s"
+msgstr "%s de %s (vacunación de%s): %s"
 
-msgid "Removing GNUmed user"
-msgstr "Eliminando usuario GNU,ed"
+msgid "ERROR: cannot retrieve due/overdue vaccinations"
+msgstr ""
+"ERROR: no ha sido posible obtener las vacunaciones pendientes/atrasadas"
 
-msgid "Modifying GNUmed user."
-msgstr "Modificando usuario GNUmed."
+#, python-format
+msgid "%.0d weeks left: shot %s for %s in %s, due %s (%s)"
+msgstr "%.0d semanas faltantes: vacunación %s para %s en %s, venciendo %s (%s)"
 
-msgid "Failed to save changes to GNUmed database user."
-msgstr "Falló guardando cambios de usuario en base de datos GNUmed."
+#, python-format
+msgid "overdue %.0dyrs %.0dwks: shot %s for %s in schedule \"%s\" (%s)"
+msgstr "atrasada %.0dyrs %.0dwks: vacunación %s en %s en programa \"%s\" (%s)"
 
-msgid "Modifying GNUmed user"
-msgstr "Modificando usuario GNUmed."
+#, python-format
+msgid "due now: booster for %s in schedule \"%s\" (%s)"
+msgstr "vence ahora: estímulo para %s en programa \"%s\" (%s)"
 
 #, python-format
-msgid "Failed to set role [%s] for GNUmed database user."
-msgstr "Fallé al fijar rol [%s] para el usuario de base de datos GNUmed."
+msgid "Synopsis (%s)"
+msgstr "Sinopsis (%s)"
+
+msgid ""
+"Enter a short working name for this new problem\n"
+"(which will become a new, unassociated episode):\n"
+msgstr ""
+"Ingrese un nombre de trabajo corto para este nuevo problema\n"
+"(el cual se convertirá en un nuevo episodio no asociado):\n"
 
 #, python-format
 msgid ""
+"Enter a short working name for this new\n"
+"episode under the existing health issue\n"
 "\n"
-"  %s \"%s\" %s\n"
-"  born: %s"
+"\"%s\":\n"
 msgstr ""
+"Ingrese un nombre de trabajo corto para este nuevo\n"
+"episodio respecto al tema de salud existente\n"
 "\n"
-"  %s \"%s\" %s\n"
-"  nacido: %s"
+"\"%s\":\n"
 
-msgid ""
-"Password entries do not match. Please type in the passwords again to rule "
-"out typos."
-msgstr ""
-"Las contraseñas ingresadas no coinciden. Por favor, digite nuevamente las "
-"contraseñas para descartar errores de digitación."
+msgid "Creating problem (episode) to save notelet under ..."
+msgstr "Creo problema (episodio) para guardar díptico como ..."
 
-msgid "Adding GNUmed user"
-msgstr "Agregando usuario GNUmed"
+msgid "Cannot save a new problem without a name."
+msgstr "No se puede guardar un nuevo problema sin un nombre."
+
+msgid "saving progress note"
+msgstr "guardando nota de progreso"
 
+#, python-format
 msgid ""
-"Are you positively sure you want to create\n"
-"a user with an empty password ?\n"
+"The new episode:\n"
 "\n"
-"Think about the record access implications !"
+" \"%s\"\n"
+"\n"
+"will remain unassociated despite the editor\n"
+"having been invoked from the health issue:\n"
+"\n"
+" \"%s\""
 msgstr ""
-"¿Está totalmente seguro que desea crear un\n"
-"usuario con una contraseña vacía?\n"
+"El nuevo episodio:\n"
 "\n"
-"¡Piense sobre las consecuencias de acceso a registros!"
+"\"%s\"\n"
+"\n"
+"quedará sin asociación, a pesar que el editor\n"
+"ha sido invocado desde el problema de salud:\n"
+"\n"
+" \"%s\""
 
-msgid "Enlisting person as user."
-msgstr "Enlistando persona como ususario."
+msgid "Adding substance abuse"
+msgstr "Agrego abuso de sustancia"
 
-msgid "Encrypt"
-msgstr "Encriptar"
+msgid "Editing substance abuse"
+msgstr "Edito abudo de sustancia"
 
-msgid "Decrypt"
-msgstr "Desencriptar"
+msgid "Substances abused by the patient:"
+msgstr "Abuso de sustancia por el paciente:"
 
-msgid "Set pass phrase"
-msgstr "Configurar contraseña"
+msgid "Showing abused substances."
+msgstr "Muestro abuso de sustancias."
 
-msgid "This is not correctly encrypted text!"
-msgstr "¡El texto no está correctamente encriptado!"
+msgid "Intake"
+msgstr "Ingesta"
 
-msgid "Please enter your pass phrase:"
-msgstr "Por favor, introduzca su contraseña:"
+msgid "nicotine"
+msgstr "nicotina"
 
-msgid "Pass phrase expired"
-msgstr "La contraseña ha caducado"
+msgid "unit"
+msgstr "unidad"
 
-msgid ""
-"\n"
-"Conditions preventable by vaccination as currently known to GNUmed.\n"
-msgstr ""
-"\n"
-"Condiciones previsibles por vacunaciones actualmente conocidas por GNUmed.\n"
-
-msgid "Showing vaccination preventable conditions."
-msgstr "Muestra condiciones previsibles por vacunación."
-
-msgid "ATCs: single-condition vaccines"
-msgstr "ATQs: vacunas de condición única"
-
-msgid "ATCs: multi-condition vaccines"
-msgstr "ATQs: vacunas multicondiciones"
-
-msgid "Pick the relevant indications."
-msgstr "Elija las indicaciones relevantes."
-
-msgid "Known indications"
-msgstr "Indicaciones conocidas"
-
-msgid "Adding new vaccine"
-msgstr "Agrego nueva vacuna"
-
-msgid "Editing vaccine"
-msgstr "Edita vacuna"
-
-#, python-format
-msgid ""
-"Cannot delete vaccine\n"
-"\n"
-" %s - %s (#%s)\n"
-"\n"
-"It is probably documented in a vaccination."
-msgstr ""
-"No puedo borrar vacuna\n"
-"\n"
-" %s - %s (#%s)\n"
-"\n"
-"Probablemente documentada en una vacunación."
-
-msgid "Deleting vaccine"
-msgstr "Borrando vacuna"
-
-msgid "fake"
-msgstr "falso"
-
-msgid ""
-"\n"
-"The vaccines currently known to GNUmed.\n"
-msgstr ""
-"\n"
-"La vacunas actualmente conocidas a GNUmed.\n"
-
-msgid "Showing vaccines."
-msgstr "Mostrando vacunas."
-
-msgid "Enter or select the batch/lot number of the vaccine used."
-msgstr "Ingrese o seleccione el número de  lote de las vacunas usadas."
-
-msgid "Saving vaccine"
-msgstr "Guardando vacuna"
-
-#, python-format
-msgid ""
-"This vaccine is already in use:\n"
-"\n"
-" \"%s\"\n"
-" (%s)\n"
-"\n"
-"Are you absolutely positively sure that\n"
-"you really want to edit this vaccine ?\n"
-"\n"
-"This will change the vaccine name and/or target\n"
-"conditions in each patient this vaccine was\n"
-"used in to document a vaccination with.\n"
-msgstr ""
-"Esta vacuna está en uso:\n"
-"\n"
-" \"%s\"\n"
-" \"%s\"\n"
-"\n"
-"¿Está totalmente seguro que realmente desea editar esta vacuna?\n"
-"\n"
-"Esto cambiará el nombre de la vacuna y/o la condición\n"
-"objetiva de cada paciente en que esta vacuna fue usada\n"
-"para documentar una vacunación.\n"
-
-msgid "You must select at least one indication."
-msgstr "Debe seleccionar al menos una indicación."
-
-msgid "Pick the diseases this vaccine protects against."
-msgstr "Elija la enfermedad contra la cual protege esta vacuna."
-
-msgid "This vaccine"
-msgstr "La vacuna"
-
-msgid "Adding new vaccinations"
-msgstr "Agregando nuevas vacunaciones"
-
-msgid "Editing vaccination"
-msgstr "Editar vacunaciones"
-
-msgid "vaccination recall"
-msgstr "recuerda vacunación"
-
-#, python-format
-msgid "vaccination recall (%s)"
-msgstr "recuerda vacunación (%s)"
-
-#, python-format
-msgid ""
-"Existing vaccination:\n"
-"\n"
-"%s"
-msgstr ""
-"Vacunación existente:\n"
-"\n"
-"%s"
-
-msgid ""
-"\n"
-"Complete vaccination history for this patient.\n"
-msgstr ""
-"\n"
-"Complete el historial de vacunaciones para este paciente.\n"
-
-msgid "Showing vaccinations."
-msgstr "Mostrando vacunaciones."
-
-msgid "Intended to protect from"
-msgstr "Debiera proteger de"
-
-msgid "Print vaccinations or recalls."
-msgstr "Imprime vacunaciones o las recuerda"
-
-msgid "Recall"
-msgstr "Recordación"
-
-msgid "Add a recall for a vaccination"
-msgstr "Agrega una recordación para una vacunación"
-
-msgid "Vx schedules"
-msgstr "Programa Vx"
-
-msgid "Open a browser showing vaccination schedules."
-msgstr "Abra un navegador que muestre procedimientos de vacunación."
-
-msgid "prevention"
-msgstr "prevención"
-
-msgid "Saving vaccination"
-msgstr "Guarda vacunación"
-
-msgid "Pick the diseases this vaccination was given against."
-msgstr "Elija las enfermedades contra las cuales esta vacunación fue indicada."
-
-msgid "  IMMUNISATIONS  "
-msgstr "  INMUNIZACIONES  "
-
-msgid "Indications"
-msgstr "Indicaciones"
-
-msgid "Active Schedules"
-msgstr "Programas activos"
-
-msgid "Missing Immunisations"
-msgstr "Inmunizaciones Faltantes"
-
-msgid "  Alerts  "
-msgstr "  Alertas  "
-
-msgid "ERROR: cannot retrieve active vaccination schedules"
-msgstr "ERROR: no puedo cargar programas activos de vacunaciones"
-
-msgid "no active vaccination schedules"
-msgstr "no hay programas activos de vacunación"
-
-#, python-format
-msgid "%s for %s (%s shots): %s"
-msgstr "%s de %s (vacunación de%s): %s"
-
-msgid "ERROR: cannot retrieve due/overdue vaccinations"
-msgstr ""
-"ERROR: no ha sido posible obtener las vacunaciones pendientes/atrasadas"
-
-#, python-format
-msgid "%.0d weeks left: shot %s for %s in %s, due %s (%s)"
-msgstr "%.0d semanas faltantes: vacunación %s para %s en %s, venciendo %s (%s)"
-
-#, python-format
-msgid "overdue %.0dyrs %.0dwks: shot %s for %s in schedule \"%s\" (%s)"
-msgstr "atrasada %.0dyrs %.0dwks: vacunación %s en %s en programa \"%s\" (%s)"
-
-#, python-format
-msgid "due now: booster for %s in schedule \"%s\" (%s)"
-msgstr "vence ahora: estímulo para %s en programa \"%s\" (%s)"
-
-#, python-format
-msgid "Latest: %s ago (%s %s%s%s%s)"
-msgstr "Útimo: %s atrás (%s %s %s %s%s)"
+#, python-format
+msgid "Latest: %s ago (%s %s%s%s%s)"
+msgstr "Útimo: %s atrás (%s %s %s %s%s)"
 
 #, python-format
 msgid "%s %s%s%s (%s ago, %s)"
@@ -10656,6 +10813,12 @@ msgstr "vencido %s: %s"
 msgid "due in %s%s"
 msgstr "vencerá en %s%s"
 
+msgid "suppr'd:"
+msgstr "suprimido"
+
+msgid "Suppressed hints:\n"
+msgstr "Ayudas suprimidas:\n"
+
 msgid ""
 "Do you really want to\n"
 "delete this inbox message ?"
@@ -10710,8 +10873,15 @@ msgstr ""
 "Por favor, verifique la edad del paciente, su sexo, tiempo desde/hasta FEC."
 
 #, python-format
-msgid "%s Vacc: %s"
-msgstr "%s Vac: %s"
+msgid "%s Vacc: %s (latest of %s)"
+msgstr "%s Vac: %s (última de %s)"
+
+#, python-format
+msgid "Hx of addiction: %s"
+msgstr "Hx of adicción: %s"
+
+msgid "active substance abuse"
+msgstr "abuso de sustancia activa"
 
 #, python-format
 msgid "%s %s %s%s"
@@ -10913,38 +11083,161 @@ msgstr ""
 "\n"
 "Tendrá que añadirla mediante el complemento de Demografía.\n"
 
-msgid "You must select a value from the picklist or type an exact match."
-msgstr "Ha de elegir un valor de la lista o escribir una coincidencia exacta."
+msgid "You need to actually set an editor."
+msgstr "Necestia realmente seleccionar un editor."
+
+#, python-format
+msgid "The command [%s] is not found."
+msgstr "No se encuentra el comando [%s]."
 
 #, python-format
 msgid ""
-"The content is invalid. It must match the regular expression: [%%s]. <%s>"
+"Enter the shell command with which to start\n"
+"the image editor for visual progress notes.\n"
+"\n"
+"Any \"%(img)s\" included with the arguments\n"
+"will be replaced by the file name of the\n"
+"note template."
 msgstr ""
-"El contenido es inválido. Debe coincidir la expresión regular: [%%s]. <%s>"
-
-msgid "Latin"
-msgstr "Latín"
+"Ingrese el comando de ambiente con el cual iniciar\n"
+"el editor de imagen para las notas visuales de progreso.\n"
+"\n"
+"Cualesquier \"%(img)s\" incluidas con los argumentos\n"
+"serán reemplazadas por el nombre del archivo de la\n"
+"plantilla de nota."
 
-msgid "Greek"
-msgstr "Griego"
+msgid "Choose file to use as template for new visual progress note"
+msgstr ""
+"Elija un archivo para ser usado como plantilla para la nueva nota visual de "
+"progreso."
 
-msgid "Cyrillic"
-msgstr "Cirílico"
+msgid "Visual progress note source"
+msgstr "Fuente de la nota visual de progeso"
 
-msgid "Four Es"
-msgstr "Cuatro Es"
+msgid "From which source do you want to pick the image template ?"
+msgstr "¿De qué fuente desea elegir la plantilla de imagen?"
 
-msgid "Symbol"
-msgstr "Símbolo"
+msgid "Database"
+msgstr "Base de datos"
 
-msgid "Snellen Chart"
-msgstr "Cartilla de Snellen"
+msgid "List of templates in the database."
+msgstr "Lista de plantillas en la base de datos"
 
-msgid "Snellen Chart Setup"
-msgstr "Configuración de Cartilla de Snellen"
+msgid "Files in the filesystem."
+msgstr "Archivos en el sistema de archivos"
 
-msgid "Screen Height (cm): "
-msgstr "Altura de la Pantalla (cm): "
+msgid "Device"
+msgstr "Dispositivo"
+
+msgid "Image capture devices (scanners, cameras, etc)"
+msgstr "Dispositivos capuradores de imagen (escáneres, cámaras, etc.)"
+
+#, python-format
+msgid "Cannot export visual progress note template for [%s]."
+msgstr "No puedo exportar la plantilla de nota visual de progreso [%s]."
+
+msgid "Cannot export visual progress note to file."
+msgstr "No puedo exportar nota visual de progreso a un archivo."
+
+msgid "Editor for visual progress note not configured."
+msgstr "Editor no configurado para nota visual de progreso."
+
+#, python-format
+msgid ""
+"There was a problem with running the editor\n"
+"for visual progress notes.\n"
+"\n"
+" [%s]\n"
+"\n"
+msgstr ""
+"Ha ocurrido un error al correr el editor\n"
+"para la nota visual de progreso.\n"
+"\n"
+" [%s]\n"
+"\n"
+
+msgid "Editing visual progress note"
+msgstr "Editando nota visual de progeso"
+
+#, python-format
+msgid ""
+"There was a problem reading the visual\n"
+"progress note from the file:\n"
+"\n"
+" [%s]\n"
+"\n"
+msgstr ""
+"Ha ocurrido un error al leer la nota\n"
+"visual de progreso desde el archivo:\n"
+"\n"
+" [%s]\n"
+"\n"
+
+msgid "Saving visual progress note"
+msgstr "Guardando la nota visual de progreso"
+
+msgid ""
+"You either created a visual progress note from a template\n"
+"in the database (rather than from a file on disk) or you\n"
+"edited an existing visual progress note.\n"
+"\n"
+"The template/original was not modified at all, however.\n"
+"\n"
+"Do you still want to save the unmodified image as a\n"
+"visual progress note into the EMR of the patient ?\n"
+msgstr ""
+"O creó una nota visual de progreso desde una plantilla\n"
+"de la base de datos (más que desde un archivo o disco) o\n"
+"ha editado una nota visual de progreso existente.\n"
+"\n"
+"La plantilla/original, sin embargo, no fue modificada para nada.\n"
+"\n"
+"¿Aún desea guardar la imagen no modificada como\n"
+"una nota visual de progreso en el RME del paciente?\n"
+
+msgid "visual progress notes"
+msgstr "nota visual de progreso"
+
+#, python-format
+msgid " [part 1 of %s]"
+msgstr " [parte 1 de %s]"
+
+#, python-format
+msgid "Created: %s%s"
+msgstr "Creado: %s%s"
+
+msgid "You must select a value from the picklist or type an exact match."
+msgstr "Ha de elegir un valor de la lista o escribir una coincidencia exacta."
+
+#, python-format
+msgid ""
+"The content is invalid. It must match the regular expression: [%%s]. <%s>"
+msgstr ""
+"El contenido es inválido. Debe coincidir la expresión regular: [%%s]. <%s>"
+
+msgid "Latin"
+msgstr "Latín"
+
+msgid "Greek"
+msgstr "Griego"
+
+msgid "Cyrillic"
+msgstr "Cirílico"
+
+msgid "Four Es"
+msgstr "Cuatro Es"
+
+msgid "Symbol"
+msgstr "Símbolo"
+
+msgid "Snellen Chart"
+msgstr "Cartilla de Snellen"
+
+msgid "Snellen Chart Setup"
+msgstr "Configuración de Cartilla de Snellen"
+
+msgid "Screen Height (cm): "
+msgstr "Altura de la Pantalla (cm): "
 
 msgid "Screen Width (cm): "
 msgstr "Ancho de la Pantalla (cm): "
@@ -11000,9 +11293,11 @@ msgstr "no seleccionó un reemplazo de tipo de dirección"
 
 #, python-format
 msgid ""
-"%(street)s %(number)s, %(postcode)s %(urb)s, %(l10n_state)s, %(l10n_country)s"
+"%(street)s %(number)s, %(postcode)s %(urb)s, %(l10n_region)s, "
+"%(l10n_country)s"
 msgstr ""
-"%(street)s %(number)s, %(postcode)s %(urb)s, %(l10n_state)s, %(l10n_country)s"
+"%(street)s %(number)s, %(postcode)s %(urb)s, %(l10n_region)s, "
+"%(l10n_country)s"
 
 #, python-format
 msgid "no URL for comm channel [%s]"
@@ -11018,7 +11313,7 @@ msgid "no tags for this patient"
 msgstr "no hay etiqueta para este paciente"
 
 msgid "no patient tags selected for inclusion"
-msgstr "no seleccionó etiquetas de este paciente para su inclusión "
+msgstr "no seleccionó etiquetas de este paciente para su inclusión"
 
 msgid "no address recorded"
 msgstr "no guardé dirección"
@@ -11640,13 +11935,13 @@ msgstr "Guardando datos de contacto."
 msgid ""
 "Cannot save address.\n"
 "\n"
-"Does the state [%s]\n"
+"Does the region [%s]\n"
 "exist in country [%s] ?"
 msgstr ""
 "No puedo guardar dirección.\n"
 "\n"
-"El estado [%s],\n"
-"¿existe en el país [%s]?"
+"Esta región, [%s]\n"
+"¿existe en su país? [%s] ?"
 
 msgid "Select an address by postcode or street name."
 msgstr "Elegir una dirección por código postal o nombre de la calle."
@@ -12124,7 +12419,7 @@ msgstr "Categoría - Tipo"
 
 #, python-format
 msgid " Inbox of %s %s%s"
-msgstr "Bandeja de entrada de %s %s%s"
+msgstr " Bandeja de entrada de %s %s%s"
 
 #, python-format
 msgid ": %s message(s)"
@@ -12170,9 +12465,6 @@ msgstr ""
 "Mensaje: %s\n"
 "Datos: %s"
 
-msgid "Inbox Message Actions:"
-msgstr "Acciones de bandeja de entrada:"
-
 msgid "Activate patient"
 msgstr "Activar paciente"
 
@@ -12335,7 +12627,7 @@ msgstr ""
 "Primero debe seleccionar un paciente."
 
 msgid "loading lab journal"
-msgstr "abrir libro de laboratorio"
+msgstr "abriendo libro de laboratorio"
 
 msgid "pending"
 msgstr "pendiente"
@@ -12998,10 +13290,9 @@ msgstr ""
 "sucursal inicial (sitio, oficina) desde la cual se está conectando."
 
 #, python-format
-msgid "Select branch (of praxis [%s]) which you are logging in from.\n"
+msgid "Select the branch of praxis [%s] which you are logging in from.\n"
 msgstr ""
-"Seleccione la sucursal (de consulta [%s]) desde la cual se está "
-"conectadnto.\n"
+"Seleccione la sucursal de consulta [%s] desde la que se está conectando.\n"
 
 msgid "Praxis branch selection ..."
 msgstr "Selección de sucursal de consulta ..."
@@ -13403,6 +13694,12 @@ msgstr "Seleccione tipo de dirección"
 msgid "List of addresses related to this person."
 msgstr "Lista de direcciones relacionadas con esta persona."
 
+msgid "Map"
+msgstr "Mapa"
+
+msgid "Show selected address on map"
+msgstr "Muestro la dirección seleccionada en el mapa."
+
 msgid "Adding new address"
 msgstr "Agregando una nueva dirección"
 
@@ -13507,7 +13804,7 @@ msgid " Save "
 msgstr " Guardar "
 
 msgid " Delete "
-msgstr "Eliminar"
+msgstr " Eliminar "
 
 msgid " New "
 msgstr " Nuevo "
@@ -13599,8 +13896,99 @@ msgstr "IDs externas"
 msgid "generic multi choice dialog"
 msgstr "diálogo de opciones múltiples"
 
-msgid "Search in list"
-msgstr "Busco en lista"
+msgid "Deleting list items"
+msgstr "Elimino la lista de items"
+
+#, python-format
+msgid ""
+"You have selected %s list items.\n"
+"\n"
+"Really delete all %s items ?"
+msgstr ""
+"Ud. ha seleccionado %s items de la lista.\n"
+"\n"
+"¿Realmente elimino todos los %s items?"
+
+msgid ""
+"Select the items you want to work on.\n"
+"\n"
+"A discontinuous selection may depend on your holding down a platform-"
+"dependent modifier key (<CTRL>, <ALT>, etc) or key combination (eg. <CTRL-"
+"SHIFT> or <CTRL-ALT>) while clicking."
+msgstr ""
+"Seleccione los items con los que quiere trabajar.\n"
+"\n"
+"Una selección discontinua puede depender de su accionamiento de la tecla "
+"modificatoria en relación a la plataforma (<ctrl>,<alt>, etc) o combinación "
+"de teclas (eg. <ctrl-shift> o <ctrl-alt>) al hacer click."
+
+msgid "List Item Actions:"
+msgstr "Despliego Acciones sobre los items:"
+
+msgid "Add (<INS>)"
+msgstr "Agrega (<INS>)"
+
+msgid "Delete (<DEL>)"
+msgstr "Eliminar (<DEL>)"
+
+msgid "Find (<CTRL-F>)"
+msgstr "Encuentra (<CTRL-F>)"
+
+#, python-format
+msgid "Find next [%s] (<CTRL-N>)"
+msgstr "Encuentra siguiente [%s] (<CTRL-N>)"
+
+msgid "Row tooltip"
+msgstr "Fila de herramienta de ayuda"
+
+msgid "Row data (formatted as text)"
+msgstr "Datos de fila (en una linea)"
+
+msgid "Row content (as one line)"
+msgstr "Contenido de fila (como una linea)"
+
+msgid "Row content (one line per column)"
+msgstr "Contenido de linea (una linea por columna )"
+
+#, python-format
+msgid "Column &%s: \"%s\" [#%s]"
+msgstr "Columna &%s: \"%s\" [#%s]"
+
+#, python-format
+msgid "Column &%s: %s"
+msgstr "Columna &%s: %s"
+
+msgid "&Copy to clipboard..."
+msgstr "&Copiar al portapapeles ..."
+
+msgid "Append (&+) to clipboard..."
+msgstr "Agregue (&+) al portapapeles ..."
+
+#, python-format
+msgid ""
+"%s list items are selected.\n"
+"\n"
+"Really delete all %s items ?"
+msgstr ""
+"%s iitems de lista están seleccionados.\n"
+"\n"
+"¿Realmente elimina todos los %s items ?"
+
+msgid "Enter the search term:"
+msgstr "Ingrese el término de búsqueda:"
+
+msgid "List search"
+msgstr "Búsqueda en la lista"
+
+#, python-format
+msgid ""
+"Current search term: [[%s]]\n"
+"\n"
+"%s"
+msgstr ""
+"Término de búsqueda actual: [[%s]]\n"
+"\n"
+"%s"
 
 msgid "Monty the Serpent && the FSF Present"
 msgstr "La Serpiente Monty && la FSF presentan"
@@ -13772,6 +14160,9 @@ msgstr "No: - / 0 / n"
 msgid "Unknown: ?"
 msgstr "Desconocido/a: ¿?"
 
+msgid "The text has been copied into the clipboard."
+msgstr "El texto ha sido copiado al portapapeles."
+
 msgid "file2clipboard"
 msgstr "archivoalportapapeles"
 
@@ -13779,6 +14170,46 @@ msgstr "archivoalportapapeles"
 msgid "The file [%s] has been copied into the clipboard."
 msgstr "El archivo [%s] ha sido copiado al portapapeles."
 
+msgid "programmer forgot to specify error message"
+msgstr "el programador olvidó especificar el mensaje de error"
+
+msgid ""
+"\n"
+"\n"
+"Please consult the error log for all the gory details !"
+msgstr ""
+"\n"
+"\n"
+"¡Por favor, para más información, consulte el registro de error!"
+
+msgid "generic error message"
+msgstr "mensaje genérico de error"
+
+msgid "programmer forgot to specify info message"
+msgstr "el programador olvidó especificar un mensaje informativo"
+
+msgid "generic info message"
+msgstr "mensaje de información genérico"
+
+msgid "programmer forgot to specify warning"
+msgstr "el programador olvidó especificar una advertencia"
+
+msgid "generic warning message"
+msgstr "mensaje genérico de advertencia"
+
+msgid "Editing EDC"
+msgstr "Edito Fecha Estimada de Confinamiento (FEC)"
+
+#, python-format
+msgid ""
+"Really delete the EDC documented previously ?\n"
+"\n"
+" EDC: %s"
+msgstr ""
+"¿Realmente elimino la FEC documentada previamente ?\n"
+"\n"
+" FEC: %s"
+
 #, python-format
 msgid ""
 "Algorithm: %s\n"
@@ -13917,15 +14348,15 @@ msgstr "Apellido"
 msgid "Firstname"
 msgstr "Nombre propio"
 
-msgid "Nickname"
-msgstr "Apodo"
-
 msgid "DOB"
 msgstr "nacido/a"
 
 msgid "last visit"
 msgstr "última visita"
 
+msgid "Nickname / Comment"
+msgstr "Sobrenombre / Comentario"
+
 msgid "found via"
 msgstr "encontrado via"
 
@@ -14166,1990 +14597,1852 @@ msgstr "<digite acá para buscar paciente>"
 msgid "In case of emergency contact:"
 msgstr "Contactar en caso de emergencia a:"
 
+msgid "The preparation (form) of the substance or brand."
+msgstr "La formulación de la sustancia o marca."
+
+msgid "A substance with optional strength or a brand."
+msgstr "Una sustancia con potencia opcional o una marca."
+
+msgid "The medical aim for consuming this substance."
+msgstr "El objetivo médico al consumir esta substancia."
+
+msgid "not tolerated:"
+msgstr "no tolerado:"
+
+msgid "discontinued due to allergy or intolerance"
+msgstr "descontinuado por alergia o intolerancia"
+
+msgid "Documented an allergy"
+msgstr "Documentó una alergia"
+
+#, python-format
 msgid ""
+"An allergy was documented against the substance:\n"
 "\n"
-"Please select the default drug data source from the list below.\n"
+"  [%s]\n"
 "\n"
-"Note that to actually use it you need to have the database installed, too."
+"This substance was taken with the multi-component brand:\n"
+"\n"
+"  [%s (%s)]\n"
+"\n"
+"Note that ALL components of this brand were discontinued."
 msgstr ""
+"Se documentó una alergia para la sustancia:\n"
 "\n"
-"Por favor, seleccione la fuente de datos de medicamentos por defecto de la "
-"lista de abajo.\n"
+"  [%s]\n"
 "\n"
-"Note que para usarla, también necesita tener una base de datos instalada."
+"La sustancia fue tomada como preparado múltiple:\n"
+"\n"
+"[%s (%s)]\n"
+"\n"
+"Observe que TODOS los componentes de la combinación fueron descontinuados."
 
-msgid "Drug data source"
-msgstr "Fuente de datos de medicamentos."
+msgid "disapproved"
+msgstr "desaprobado"
 
-msgid "Configuring default drug data source"
-msgstr "Configurando la fuente de datos de medicamentos"
+msgid "Substances consumed by the patient:"
+msgstr "Sustancias consumidas por este paciente:"
 
-msgid "No default drug database configured."
-msgstr "No hay base de datos de medicamentos configurada por defecto."
+msgid "Showing consumable substances."
+msgstr "Mostrando sustancias (principios activos)."
 
-msgid "There is no default drug database configured."
-msgstr "No hay base de datos de medicamentos configurada por defecto."
+msgid "Application"
+msgstr "Aplicación"
 
-msgid "Jumping to drug database"
-msgstr "Saltando a la base de datos de medicamentos"
+msgid "never"
+msgstr "nunca"
 
 #, python-format
-msgid "Cannot call IFAP via [%s]."
-msgstr "No puedo invocar IFAP a través de [%s]."
+msgid "%s, last confirmed %s\n"
+msgstr "%s, confirmado por última vez %s\n"
 
 #, python-format
-msgid "Cannot create IFAP <-> GNUmed transfer file [%s]."
-msgstr "No puedo crear IFAP <-> archivo de transferencia GNUmed [%s]"
+msgid "Comment (%s): %%s\n"
+msgstr "Comentario (%s): %%s\n"
 
-msgid "Current medication"
-msgstr "Medicación actual"
+msgid "reaction not recorded"
+msgstr "Reacción no documentada"
 
-msgid ""
-"\n"
-"The ATC codes as known to GNUmed.\n"
-msgstr ""
-"\n"
-"El código ATQ es conocido a GNUmed.\n"
+msgid "GFR: unknown"
+msgstr "TFG: desconocida (Tasa de filtración Glomerular)"
 
-msgid "Showing ATC codes."
-msgstr "Mostrando códigos ATQ."
+msgid "GFR reported by path lab"
+msgstr "TFG reportada por laboratorio patológico"
 
-msgid "Choose an ATC import config file"
-msgstr "Elija un archivo de configuración para la importación de ATQ"
+msgid "<no components>"
+msgstr "<sin componenente>"
 
-msgid "config files"
-msgstr "archivo de configuración"
+msgid "Adding substance intake entry"
+msgstr "Agrego ingreso de ingesta de substancia"
 
-msgid "importing ATC reference data"
-msgstr "importando datos referenciales ATQ"
+#, python-format
+msgid ""
+"The patient is already taking\n"
+"\n"
+" %s\n"
+"\n"
+"You will want to adjust the schedule\n"
+"rather than document the intake twice."
+msgstr ""
+"El paciente ya está ingeriendo\n"
+"\n"
+" %s\n"
+"\n"
+"Querrá ajustar el esquema, más\n"
+"que documentar la ingesta doble."
 
-msgid "Successfully imported ATC reference data."
-msgstr "Importé exitosamente datos referenciales ATQ."
+msgid "Input incomplete/invalid for saving as substance intake."
+msgstr ""
+"Datos ingresados incompletos/inválidos para guardarlos como ingesta de "
+"sustancia."
 
-msgid "Importing ATC reference data failed."
-msgstr "Importación de datos referenciales ATQ falló."
+#, python-format
+msgid "Discontinued (%s) in the future (now: %s)!"
+msgstr "Discontinuado (%s) en el futuro (ahora: %s)!"
 
-msgid "Select an ATC (Anatomical-Therapeutic-Chemical) code."
-msgstr "Seleccione un código ATQ (Anatómcio, Terapéutico, Químico)."
+#, python-format
+msgid "Discontinued (%s) before started (%s) !"
+msgstr "Discontinuado (%s) antes de comenzar (%s) !"
 
-msgid "Cannot delete this substance. It is in use."
-msgstr "No puedo borrar la sustancia, pues está en uso."
+msgid "Cannot add duplicate of (maybe inactive) substance intake."
+msgstr "No puedo agregar duplicado de medicación (eventualmente inactiva)."
 
+#, python-format
 msgid ""
 "\n"
-"These are the consumable substances registered with GNUmed.\n"
+"[%s]\n"
+"\n"
+"It may be prudent to edit (before deletion) the details\n"
+"of this substance intake entry so as to leave behind\n"
+"some indication of why it was deleted.\n"
 msgstr ""
 "\n"
-"Estas son las sustancias registradas en GNUmed.\n"
+"[%s]\n"
+"\n"
+"Podría ser prudente editar (antes de borrar) los detalles\n"
+"del ingreso de la medicación de tal forma de registrar\n"
+"alguna indicación de la razón de su eliminación.\n"
 
-msgid "Showing consumable substances."
-msgstr "Mostrando sustancias (principios activos)."
+msgid "Deleting medication / substance intake"
+msgstr "Borrando medicación / ingesta de sustancia."
 
-msgid "Import"
-msgstr "Importo"
+msgid "Allow editing of substance intake entry before deletion."
+msgstr "Permito editar la edición de la medicación antes de su eliminación."
 
-msgid "Import consumable substances from a drug database."
-msgstr "Importo sustancias desde base de datos externa de medicamentos"
+msgid "Delete immediately without editing first."
+msgstr "Elimino inmediatamente antes de editar."
 
-msgid "Cannot edit this substance. It is in use."
-msgstr "No puedo editar esta sustancia. Está en uso."
+msgid "&Cancel"
+msgstr "&Cancelar"
 
-msgid "Adding new consumable substance"
-msgstr "Agregando una nueva sustancia"
+msgid "Abort. Do not delete or edit substance intake entry."
+msgstr "Aborto. No elimino ni edito el ingreso de medicación."
 
-msgid "Editing consumable substance"
-msgstr "Editando sustancia"
+msgid "Now delete substance intake entry ?"
+msgstr "¿Elimino ahora el ingreso de medicación?"
 
-msgid "Cannot save consumable substance. Missing essential input."
-msgstr "No puedo guardar sustancia. Faltan datos esenciales."
+msgid "Adding medication/non-medication substance intake"
+msgstr "Agrego medicación / ingesta de sustancia"
 
-#, python-format
-msgid "Cannot save consumable substance. %s"
-msgstr "No puedo grabar sustancias. %s"
+msgid "Editing medication/non-medication substance intake"
+msgstr "Edito medicación / ingesta de sustancia"
 
-msgid "Cannot remove this component from the drug. It is in use."
-msgstr "No puedo eliminar este componente del medicamento. Está en uso."
+msgid "Document an allergy against this substance."
+msgstr "Documento una alergia contra esta sustancia."
 
-msgid ""
-"\n"
-"These are the components in the drug brands known to GNUmed.\n"
-msgstr ""
-"\n"
-"Estos son componentes de las marcas de medicamentos conocidos a GNUmed.\n"
+msgid "No medication list template configured."
+msgstr "No hay configuración de plantilla de lista de medicación."
 
-msgid "Showing drug brand components."
-msgstr "Mostrando componentes de marcas de medicamentos"
+msgid "There is no medication list template configured."
+msgstr "No se ha configurado una plantilla de lista de medicación."
 
-msgid "Adding new drug component"
-msgstr "Agregando un nuevo componente de medicamento"
+msgid "Problem loading medication list template."
+msgstr "Problema al cargar la plantilla de lista de medicación."
 
-msgid "Editing drug component"
-msgstr "Editando componente de medicamento"
+#, python-format
+msgid "Cannot load medication list template [%s - %s]"
+msgstr "No puedo cargar la plantilla de lista de medicación [%s - %s]"
 
-msgid "Cannot edit drug component. It is in use."
-msgstr "No puedo editar componente de medicamento. Está en uso."
+msgid "generated medication list document"
+msgstr "Documento de lista de medicamentos generado"
 
-msgid "Cannot save drug component. Invalid or missing essential input."
-msgstr ""
-"no puedo guardar componente de medicamento. Información inválida o "
-"incompleta."
+msgid "Select the default prescription template:"
+msgstr "Seleccione la planilla por defecto de la prescripción:"
 
-msgid "A drug component with optional strength."
-msgstr "Un componente de medicamento con concentración opcional."
+msgid "No prescription template configured."
+msgstr "No hay plantilla configurada de prescripción."
 
-msgid "The preparation (form) of the substance or brand."
-msgstr "La formulación de la sustancia o marca."
+msgid "There is no prescription template configured."
+msgstr "No existe una plantilla configurada de prescripción."
 
-msgid "The substance with optional strength."
-msgstr "El componente activo, opcional con concentración."
+msgid "Printing prescription"
+msgstr "Imprimo prescripción"
 
-msgid "Managing components of a drug"
-msgstr "Manejando los compuestos de un medicamento."
+msgid "Problem loading prescription template."
+msgstr "Problema al cargar la plantilla de prescripción."
 
 #, python-format
+msgid "Cannot load prescription template [%s - %s]"
+msgstr "No puedo cargar la plantilla de prescripción [%s - %s]"
+
+msgid "generated prescription"
+msgstr "prescripción generada"
+
 msgid ""
-"Cannot manage the components of the branded drug product\n"
-"\n"
-" \"%s\" (%s)\n"
+"These brands have been prescribed but are not listed\n"
+"in the current medication list of this patient.\n"
 "\n"
-"because it is currently taken by patients.\n"
+"Please select those you want added to the medication list."
 msgstr ""
-"No puedo manejar los compuestos del medicamento de marca\n"
-"\n"
-" \"%s\" (%s),\n"
+"Estos medicamentos fueron prescritos, pero no está listados\n"
+"en la actual lista de medicación del paciente.\n"
 "\n"
-"porque están siendo tomados por pacientes.\n"
+"Por favor, seleccione aquellos que desee agregar a la lista de medicación."
 
-msgid "Pick the substances which are components of this drug."
-msgstr "Elija las sustancias que componen este medicamento."
+msgid "Newly prescribed drugs"
+msgstr "Medicamentos recientemente prescritos"
 
-msgid "Components of drug"
-msgstr "Componentes del medicamento"
+msgid "Add to medication list"
+msgstr "Agrego a la lista de medicación"
+
+msgid "Timeframe"
+msgstr "Período de tiempo"
 
 #, python-format
+msgid "%s <fake>"
+msgstr "%s <falso>"
+
+msgid "Cannot edit more than one substance at once."
+msgstr "No puedo editar más de una sustancia a la vez."
+
+msgid "Cannot delete more than one substance at once."
+msgstr "No puedo borrar más de una sustancia a la vez."
+
+msgid "Cannot create allergy from more than one substance at once."
+msgstr "No puedo crear una alergia a partir de más de una sustancia a la vez."
+
 msgid ""
-"Adjust the components of \"%s\"\n"
 "\n"
-"The drug must contain at least one component. Any given\n"
-"substance can only be included once per drug."
+"Select the measurements panel to show in the medications plugin.\n"
 msgstr ""
-"Ajuste los componentes de \"%s\"\n"
 "\n"
-"El medicamento debe contener al menos un componente. Cualquier\n"
-"sustancia dada solo puede ser incluida una vez por medicamento."
+"Seleccione el panel de mediciones para mostrarlo en el tema de medicacones\n"
 
-msgid "Managing components of a drug ..."
-msgstr "Manejando componentes del medicamento ..."
+msgid "Measurements panel"
+msgstr "Panel de mediciones"
 
-msgid "not in use"
-msgstr "no en uso"
+msgid "Configuring medications plugin measurements panel"
+msgstr "Configuro el panel de tema de medicaciones"
+
+msgid "EDC (!?!):"
+msgstr "Fecha esperada de confinamiento FEC (!?!):"
+
+msgid "EDC:"
+msgstr "FEC:"
 
 #, python-format
-msgid "ATC: %s\n"
-msgstr "ATQ: %s\n"
+msgid "%.1f (%s ago)"
+msgstr "%.1f (%s atrás)"
 
-msgid "Editing medication"
-msgstr "Editando medicación"
+msgid "eGFR:"
+msgstr "TFGe"
 
 #, python-format
+msgid "eGFR: %.1f (%s)"
+msgstr "TFGe: %.1f (%s)"
+
+msgid "Enter vaccination given"
+msgstr "Ingrese vacuna proporcionada"
+
+msgid "Unsaved progress note"
+msgstr "Nota de progreso no guardada"
+
 msgid ""
-"Cannot edit the medication\n"
+"This progress note has not been saved yet.\n"
 "\n"
-" \"%s\" (%s)\n"
+"Do you want to save it or discard it ?\n"
 "\n"
-"because it is a vaccine. Please edit it\n"
-"from the vaccine management section !\n"
 msgstr ""
-"No puedo editar la medicación\n"
+"Esta nota de progreso no ha sido guardada aún.\n"
 "\n"
-" \"%s\" (%s)\n"
+"¿Desea guardarla o descartarla?\n"
 "\n"
-"porque es una vacuna. Por favor, ¡edítela\n"
-"a partir de la sección de administración de vacunas!\n"
 
-msgid "Deleting medication"
-msgstr "Eliminando medicación"
+msgid "Save this progress note"
+msgstr "Guarde esta nota de progreso."
 
-#, python-format
-msgid ""
-"Cannot delete the medication\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is a vaccine. Please delete it\n"
-"from the vaccine management section !\n"
-msgstr ""
-"No puedo eliminar la medicación\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"porque es una vacuna. Por favor, ¡elimínela\n"
-"a partir de la sección de administración de vacunas!\n"
+msgid "Discard this progress note"
+msgstr "Descarte esta nota de progreso"
+
+msgid "Save all remaining unsaved progress notes"
+msgstr "Guarde todas las notas de progreso restantes"
 
 msgid ""
+"Add editor for a new unassociated progress note.\n"
 "\n"
-"These are the drug brands known to GNUmed.\n"
+"There is a configuration option whether or not to\n"
+"allow several new unassociated progress notes at once."
 msgstr ""
+"Agregue un editor para una nueva nota de progreso sin asociar.\n"
 "\n"
-"Estas son las marcas de medicamentos conocidas por GNUmed.\n"
-
-msgid "Showing branded drugs."
-msgstr "Mostrando medicamentos de marca"
+"Existe una opción de configuración acaso permitir o\n"
+"no múltiples notas de progreso simultáneamente."
 
-msgid "Import substances and brands from a drug database."
-msgstr "Importo sustancias y marcas de una base de datos de medicamentos."
+msgid "Save progress note into medical record and close this editor."
+msgstr "Guarde notas de progreso en el registro médico y cierre este editor."
 
-msgid "Editing drug"
-msgstr "Editando medicamento"
+msgid "Clear this progress note editor."
+msgstr "Vacíe el editor de notas de progreso."
 
-#, python-format
 msgid ""
-"Cannot edit the branded drug product\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is currently taken by patients.\n"
+"Discard progress note and close this editor. You will loose any data already "
+"typed into this editor !"
 msgstr ""
-"No puedo editar el medicamento de la marca\n"
-"\n"
-" \"%s\"(%s)\n"
-"\n"
-"pues está siendo tomado por pacientes.\n"
+"Descarte la nota de progreso y cierre editor. ¡Perderá todos los datos ya "
+"digitados en el editor!"
 
-msgid "Adding new drug brand"
-msgstr "Agrego nuevo medicamento"
+msgid "Problem saving progress note: duplicate information ?"
+msgstr "Problema al guardar nota de progreso: ¿información duplicada?"
 
-msgid "Editing drug brand"
-msgstr "Edito marca de medicamento"
+msgid "label missing"
+msgstr "etiqueta faltante"
 
-msgid "Manage consumable substances"
-msgstr "Administro sustancias consumibles"
+msgid "soap cat missing"
+msgstr "falta categoría SOAP"
 
-msgid "Cannot edit drug brand. It is in use."
-msgstr "No puedo editar marca de medicamento. Está en uso."
+msgid "Enter a descriptive name for this new problem:"
+msgstr "Ingrese un nombre descriptivo para este problema:"
 
-msgid "Checking brand data"
-msgstr "Verifico datos de la marca"
+msgid "Creating a problem (episode) to save the notelet under ..."
+msgstr "Creando un problema (episodio) para guardar la nota como ..."
+
+msgid "Error saving progress note."
+msgstr "Error guardando nota de progreso."
+
+msgid "Error saving embedded data."
+msgstr "Error guardando datos integrados."
+
+msgid "Visit Purpose"
+msgstr "Propósito de la consulta"
+
+msgid "History Taken"
+msgstr "Anamnesis"
+
+msgid "Findings"
+msgstr "Hallazgos"
+
+msgid "save"
+msgstr "guardar"
+
+msgid "save clinical note in EMR"
+msgstr "guardar nota clínica en RME"
+
+msgid "discard"
+msgstr "descartar"
+
+msgid "discard clinical note"
+msgstr "descartar nota clínica"
+
+msgid "clinical progress note"
+msgstr "nota de progreso clínica"
+
+msgid "Select files to add to the export area"
+msgstr "Selecciono archivos a adicionar al área de exportación"
+
+msgid "Adding files to export area"
+msgstr "Agrego archivos al área de exportación"
 
 #, python-format
 msgid ""
-"The brand information you entered:\n"
-"\n"
-" [%s %s]\n"
-"\n"
-"already exists as a drug product."
+"Cannot add (some of) the following files to the export area:\n"
+"%s "
 msgstr ""
-"La información de la marca ingresada:\n"
-"\n"
-" [%s %s]\n"
-"\n"
-"ya existe como droga."
+"No puedo agregar (algunos de) los siguientes archivos al área de "
+"exportación:\n"
+"%s "
+
+msgid "Select the documents to be put into the export area:"
+msgstr "Selecciono los documentos que serán puestos en el área de exportación:"
+
+msgid "clipboard"
+msgstr "portapapeles"
+
+msgid "Loading clipboard item (saved to file) into export area"
+msgstr ""
+"Cargo ítem desde el portapapeles (guardado a archivo) al área de exportación"
 
+#, python-format
 msgid ""
-"You have not selected any substances\n"
-"as drug components.\n"
-"\n"
-"Without components you will not be able to\n"
-"use this drug for documenting patient care.\n"
-"\n"
-"Are you sure you want to save\n"
-"it without components ?"
+"Cannot add the following clip to the export area:\n"
+"%s "
 msgstr ""
-"No ha seleccionado ninguna sustancia\n"
-"como componentes de droga.\n"
-"\n"
-"Sin componentes erá imposible usar esta\n"
-"droga para documentar el cuidado del paciente.\n"
-"\n"
-"¿Está seguro/a que desea guardarla \n"
-"sin componentes ?"
+"No puedo agregar el siguiente fragmento al área de exportación:\n"
+"%s "
 
-msgid "Cannot save branded drug. Invalid or missing essential input."
+msgid "scan"
+msgstr "escaneo"
+
+msgid "Scanning files into export area"
+msgstr "Escaneo archivos al área de exportación"
+
+#, python-format
+msgid ""
+"Cannot add (some of) the following scans to the export area:\n"
+"%s "
 msgstr ""
-"No puedo guardar la marca de medicamento. Ingreso de datos inválido o "
-"insuficientes."
+"No puedo agregar (algunos de) los siguiente escaneos al área de "
+"exportación::\n"
+"%s "
+
+msgid "Deleting document from export area."
+msgstr "Elimino documentos desde el área de xeportación."
 
+#, python-format
 msgid ""
-"The brand name of the drug.\n"
-"\n"
-"Note: a brand name will need to be linked to\n"
-"one or more components before it can be used,\n"
-"except in the case of fake (generic) vaccines."
+"Really remove %s selected document(s)\n"
+"from the patient export area ?"
 msgstr ""
-"La marca comercial de esta droga.\n"
-"\n"
-"Nota: una marca comercial será necesaria para enlazarla a\n"
-"una o más componentes antes de poder usarla,\n"
-"excepto en case de vacunas falsas (genéricas)."
+"¿Realmente elimino %s documentos(s) seleccionado(s)\n"
+"desde el área de exportación del paciente?"
 
-msgid "The medical aim for consuming this substance."
-msgstr "El objetivo médico al consumir esta substancia."
+msgid "Error printing documents."
+msgstr "Error al imprimir documentos."
 
-msgid "not tolerated:"
-msgstr "no tolerado:"
+#, python-format
+msgid "Printing [%s]"
+msgstr "Imprimo [%s]"
 
-msgid "discontinued due to allergy or intolerance"
-msgstr "descontinuado por alergia o intolerancia"
+#, python-format
+msgid ""
+"Printed:\n"
+" - %s"
+msgstr ""
+"Impreso:\n"
+" - %s"
 
-msgid "Documented an allergy"
-msgstr "Documentó una alergia"
+msgid "Select the directory into which to export the documents."
+msgstr "Selecciono el directorio al cual exporto los documentos."
+
+msgid "Saving export area documents"
+msgstr "Guardo documentos del área de exportación"
 
 #, python-format
 msgid ""
-"An allergy was documented against the substance:\n"
+"The chosen export directory\n"
 "\n"
-"  [%s]\n"
+" [%s]\n"
 "\n"
-"This substance was taken with the multi-component brand:\n"
+"already contains files. Do you still want to save the\n"
+"selected export area documents into that directory ?\n"
 "\n"
-"  [%s (%s)]\n"
+"(this is useful for including the external documents\n"
+" already stored in or below this directory)\n"
 "\n"
-"Note that ALL components of this brand were discontinued."
+"[NO] will create a subdirectory for you and use that."
 msgstr ""
-"Se documentó una alergia para la sustancia:\n"
+"El directorio de exportación elegido\n"
 "\n"
-"  [%s]\n"
+" [%s]\n"
 "\n"
-"La sustancia fue tomada como preparado múltiple:\n"
+"ya contiene archivos. ¿Aún desea guardar los\n"
+"documentos del área de exportación seleccionada en ese directorio?\n"
 "\n"
-"[%s (%s)]\n"
+"(esto es útil para incluir los documentos externos\n"
+"ya guardados en o bajo este directorio)\n"
 "\n"
-"Observe que TODOS los componentes de la combinación fueron descontinuados."
-
-msgid "disapproved"
-msgstr "desaprobado"
-
-msgid "Substances consumed by the patient:"
-msgstr "Sustancias consumidas por este paciente:"
-
-msgid "Intake"
-msgstr "Ingesta"
-
-msgid "Application"
-msgstr "Aplicación"
+"[NO] creará un subdirectorio para Ud. y los usará."
 
-msgid "never"
-msgstr "nunca"
+msgid ""
+"Create descriptive metadata files\n"
+"and save them alongside the\n"
+"selected export area documents ?"
+msgstr ""
+"¿Creo archivos de metadatos descriptivos\n"
+"y los guardo junto a los documentos del\n"
+"área de exportación seleccionada?"
 
 #, python-format
-msgid "%s, last confirmed %s\n"
-msgstr "%s, confirmado por última vez %s\n"
-
-#, python-format
-msgid "Comment (%s): %%s\n"
-msgstr "Comentario (%s): %%s\n"
-
-msgid "reaction not recorded"
-msgstr "Reacción no documentada"
-
-msgid "GFR: unknown"
-msgstr "TFG: desconocida (Tasa de filtración Glomerular)"
-
-msgid "GFR reported by path lab"
-msgstr "TFG reportada por laboratorio patológico"
+msgid ""
+"Saved to [%s]:\n"
+" - %s"
+msgstr ""
+"Guardado a [%s]:\n"
+" - %s"
 
 #, python-format
 msgid ""
-"The patient is already taking\n"
-"\n"
-" %s\n"
+"Saved documents into directory:\n"
 "\n"
-"You will want to adjust the schedule\n"
-"rather than document the intake twice."
+" %s"
 msgstr ""
-"El paciente ya está ingeriendo\n"
-"\n"
-" %s\n"
+"Documentos guardados en el directorio:\n"
 "\n"
-"Querrá ajustar el esquema, más\n"
-"que documentar la ingesta doble."
+" %s"
 
-msgid "Adding substance intake entry"
-msgstr "Agrego ingreso de ingesta de substancia"
+msgid "If you wish to include an existing directory select it here:"
+msgstr "Si desea incluir un directorio exstente, selecciónelo acá:"
 
-msgid "Input incomplete/invalid for saving as substance intake."
-msgstr ""
-"Datos ingresados incompletos/inválidos para guardarlos como ingesta de "
-"sustancia."
+msgid "Error burning documents to CD/DVD."
+msgstr "Error guardando documentos en CD/DVD."
 
-#, python-format
-msgid "Discontinued (%s) in the future (now: %s)!"
-msgstr "Discontinuado (%s) en el futuro (ahora: %s)!"
+msgid "Burning documents"
+msgstr "Guardo documentos"
 
 #, python-format
-msgid "Discontinued (%s) before started (%s) !"
-msgstr "Discontinuado (%s) antes de comenzar (%s) !"
+msgid ""
+"Burned onto CD/DVD:\n"
+" - %s"
+msgstr ""
+"Guardados en CD/DVD:\n"
+" - %s"
 
-msgid "Cannot add duplicate of (maybe inactive) substance intake."
-msgstr "No puedo agregar duplicado de medicación (eventualmente inactiva)."
+msgid "Error mailing documents."
+msgstr "Error al enviar documentos por correo electróncio."
+
+msgid "Mailing documents"
+msgstr "Envío documentos por correo-e"
 
 #, python-format
 msgid ""
-"\n"
-"[%s]\n"
-"\n"
-"It may be prudent to edit (before deletion) the details\n"
-"of this substance intake entry so as to leave behind\n"
-"some indication of why it was deleted.\n"
+"Mailed:\n"
+" - %s"
 msgstr ""
+"Enviado:\n"
+" - %s"
+
+msgid ""
+"Please enter the fax number here !\n"
 "\n"
-"[%s]\n"
+"It can be left empty if the external\n"
+"fax software knows how to get the number."
+msgstr ""
+"Por favor, ¡ingrese el número de fax acá!\n"
 "\n"
-"Podría ser prudente editar (antes de borrar) los detalles\n"
-"del ingreso de la medicación de tal forma de registrar\n"
-"alguna indicación de la razón de su eliminación.\n"
-
-msgid "Deleting medication / substance intake"
-msgstr "Borrando medicación / ingesta de sustancia."
-
-msgid "Allow editing of substance intake entry before deletion."
-msgstr "Permito editar la edición de la medicación antes de su eliminación."
-
-msgid "Delete immediately without editing first."
-msgstr "Elimino inmediatamente antes de editar."
-
-msgid "&Cancel"
-msgstr "&Cancelar"
-
-msgid "Abort. Do not delete or edit substance intake entry."
-msgstr "Aborto. No elimino ni edito el ingreso de medicación."
+"puede ser dejado en blanco, si el programa externo\n"
+"de fax sabe cómo obtener el número."
 
-msgid "Now delete substance intake entry ?"
-msgstr "¿Elimino ahora el ingreso de medicación?"
+msgid "Faxing documents"
+msgstr "Faxeo documentos"
 
-msgid "Adding medication/non-medication substance intake"
-msgstr "Agrego medicación / ingesta de sustancia"
+#, python-format
+msgid ""
+"Error faxing documents to\n"
+"\n"
+"  %s"
+msgstr ""
+"Error faxeando documentos a\n"
+"\n"
+"  %s"
 
-msgid "Editing medication/non-medication substance intake"
-msgstr "Edito medicación / ingesta de sustancia"
+#, python-format
+msgid ""
+"Faxed to [%s]:\n"
+" - %s"
+msgstr ""
+"Faxeado a [%s]:\n"
+" - %s"
 
-msgid "Document an allergy against this substance."
-msgstr "Documento una alergia contra esta sustancia."
+msgid "<gm-mail_doc(.bat) not found>"
+msgstr "<gm-mail_doc(.bat) no encontrado>"
 
-msgid "No medication list template configured."
-msgstr "No hay configuración de plantilla de lista de medicación."
+msgid "<gm-fax_doc(.bat) not found>"
+msgstr "<gm-fax_doc(.bat) no encontrado>"
 
-msgid "There is no medication list template configured."
-msgstr "No se ha configurado una plantilla de lista de medicación."
+msgid "<gm-burn_doc(.bat) not found>"
+msgstr "<gm-burn_doc(.bat) no encontrado>"
 
-msgid "Problem loading medication list template."
-msgstr "Problema al cargar la plantilla de lista de medicación."
+msgid "Cannot accept new documents. No active patient."
+msgstr "No se pueden aceptar nuevos documentos. No hay paciente activo."
 
 #, python-format
-msgid "Cannot load medication list template [%s - %s]"
-msgstr "No puedo cargar la plantilla de lista de medicación [%s - %s]"
-
-msgid "generated medication list document"
-msgstr "Documento de lista de medicamentos generado"
-
-msgid "Select the default prescription template:"
-msgstr "Seleccione la planilla por defecto de la prescripción:"
-
-msgid "No prescription template configured."
-msgstr "No hay plantilla configurada de prescripción."
-
-msgid "There is no prescription template configured."
-msgstr "No existe una plantilla configurada de prescripción."
+msgid "Extracting files from folder [%s] ..."
+msgstr "Extrayendo archivos de la carpeta [%s] ..."
 
-msgid "Printing prescription"
-msgstr "Imprimo prescripción"
+msgid "Drag&Drop"
+msgstr "Arrastro&Suelto"
 
-msgid "Problem loading prescription template."
-msgstr "Problema al cargar la plantilla de prescripción."
+msgid "Created"
+msgstr "Creado"
 
 #, python-format
-msgid "Cannot load prescription template [%s - %s]"
-msgstr "No puedo cargar la plantilla de prescripción [%s - %s]"
-
-msgid "generated prescription"
-msgstr "prescripción generada"
-
 msgid ""
-"These brands have been prescribed but are not listed\n"
-"in the current medication list of this patient.\n"
+"Error exporting form template\n"
 "\n"
-"Please select those you want added to the medication list."
+" \"%s\" (%s)"
 msgstr ""
-"Estos medicamentos fueron prescritos, pero no está listados\n"
-"en la actual lista de medicación del paciente.\n"
+"Error exportando formulario de plantilla.\n"
 "\n"
-"Por favor, seleccione aquellos que desee agregar a la lista de medicación."
+" \"%s\" (%s)"
 
-msgid "Newly prescribed drugs"
-msgstr "Medicamentos recientemente prescritos"
+msgid "Letter template export"
+msgstr "Exportación de plantilla de carta"
 
-msgid "Add to medication list"
-msgstr "Agrego a la lista de medicación"
+msgid ""
+"Cannot connect to OpenOffice.\n"
+"\n"
+"The UNO bridge module for Python\n"
+"is not installed."
+msgstr ""
+"No se puede conectar con OpenOffice/LibreOffice.\n"
+"\n"
+"El módulo puente UNO de Python\n"
+"no está instalado."
 
-msgid "Duration / Until"
-msgstr "Duración / Hasta"
+msgid "Letter writer"
+msgstr "Escritura de carta"
 
 #, python-format
-msgid "%s <fake>"
-msgstr "%s <falso>"
-
-msgid "Cannot edit more than one substance at once."
-msgstr "No puedo editar más de una sustancia a la vez."
-
-msgid "Cannot delete more than one substance at once."
-msgstr "No puedo borrar más de una sustancia a la vez."
-
-msgid "Cannot create allergy from more than one substance at once."
-msgstr "No puedo crear una alergia a partir de más de una sustancia a la vez."
-
 msgid ""
+"Cannot connect to OpenOffice.\n"
 "\n"
-"Select the measurements panel to show in the medications plugin.\n"
+"You may want to increase the option\n"
+"\n"
+" <%s>"
 msgstr ""
+"No puedo conectar con OpenOffice/LibreOffice.\n"
 "\n"
-"Seleccione el panel de mediciones para mostrarlo en el tema de medicacones\n"
+"Puede desear incrementar la opción:\n"
+"\n"
+" <%s>"
 
-msgid "Measurements panel"
-msgstr "Panel de mediciones"
+msgid "OOo startup time"
+msgstr "puesta en marcha de OOo"
 
-msgid "Configuring medications plugin measurements panel"
-msgstr "Configuro el panel de tema de medicaciones"
+msgid "No document template selected."
+msgstr "No se ha elegido ninguna plantilla de documentos."
 
-msgid "EDC (!?!):"
-msgstr "Fecha esperada de confinamiento FEC (!?!):"
+#, python-format
+msgid "Invalid document template [%s - %s (%s)]"
+msgstr "PLantilla de documento inválida [%s - %s (%s)]"
 
-msgid "EDC:"
-msgstr "FEC:"
+msgid "Generating document from template"
+msgstr "Genero documento desde plantilla"
 
-#, python-format
-msgid "%.1f (%s ago)"
-msgstr "%.1f (%s atrás)"
+msgid "Error generating document printout."
+msgstr "Error al generar impresión de documento."
 
-msgid "eGFR:"
-msgstr "TFGe"
+msgid "Generating document printout"
+msgstr "Genero impresión de documento"
 
 #, python-format
-msgid "%s%s%s (%s ago)"
-msgstr "%s%s%s (%s atrás)"
+msgid "Printed: %s"
+msgstr "Impreso: %s"
 
-#, python-format
-msgid "eGFR: %.1f (%s)"
-msgstr "TFGe: %.1f (%s)"
+msgid "Adding new form template"
+msgstr "Agrego plantilla de formulario nuevo"
 
-msgid "Enter vaccination given"
-msgstr "Ingrese vacuna proporcionada"
+msgid "Editing form template"
+msgstr "Edito plantilla de formulario"
 
-msgid "Unsaved progress note"
-msgstr "Nota de progreso no guardada"
+msgid "Deleting form template."
+msgstr "Borrando la plantilla."
 
+#, python-format
 msgid ""
-"This progress note has not been saved yet.\n"
+"Are you sure you want to delete\n"
+"the following form template ?\n"
 "\n"
-"Do you want to save it or discard it ?\n"
+" \"%s (%s)\"\n"
 "\n"
+"You can only delete templates which\n"
+"have not yet been used to generate\n"
+"any forms from."
 msgstr ""
-"Esta nota de progreso no ha sido guardada aún.\n"
+"¿Está seguro que desea borrar\n"
+"el siguiente formulario de plantilla?\n"
 "\n"
-"¿Desea guardarla o descartarla?\n"
+" \"%s (%s)\"\n"
 "\n"
+"Solo puede borrar plantillas que\n"
+"no hayan sido usadas para generar\n"
+"algún formulario."
 
-msgid "Save this progress note"
-msgstr "Guarde esta nota de progreso."
-
-msgid "Discard this progress note"
-msgstr "Descarte esta nota de progreso"
+msgid "Select letter or form template."
+msgstr "Elija plantilla de carta o formulario."
 
-msgid "Save all remaining unsaved progress notes"
-msgstr "Guarde todas las notas de progreso restantes"
+msgid "You must select a template file before saving."
+msgstr "Debe elegir un archivo de plantilla antes de guardar."
 
-msgid ""
-"Add editor for a new unassociated progress note.\n"
-"\n"
-"There is a configuration option whether or not to\n"
-"allow several new unassociated progress notes at once."
-msgstr ""
-"Agregue un editor para una nueva nota de progreso sin asociar.\n"
-"\n"
-"Existe una opción de configuración acaso permitir o\n"
-"no múltiples notas de progreso simultáneamente."
+msgid "You must enter a type for documents created with this template."
+msgstr "Debe ingresar un tipo para documentos creados con esta plantilla."
 
-msgid "Save progress note into medical record and close this editor."
-msgstr "Guarde notas de progreso en el registro médico y cierre este editor."
+msgid "You must enter a type for this template."
+msgstr "Debe ingresar un tipo para esta plantilla."
 
-msgid "Clear this progress note editor."
-msgstr "Vacíe el editor de notas de progreso."
+msgid "You must enter a version for this template."
+msgstr "Debe ingresaro una versión para esta plantilla."
 
-msgid ""
-"Discard progress note and close this editor. You will loose any data already "
-"typed into this editor !"
-msgstr ""
-"Descarte la nota de progreso y cierre editor. ¡Perderá todos los datos ya "
-"digitados en el editor!"
+msgid "Missing short name for template."
+msgstr "Falta nombre corto para la palntilla."
 
-msgid "Problem saving progress note: duplicate information ?"
-msgstr "Problema al guardar nota de progreso: ¿información duplicada?"
+msgid "Missing long name for template."
+msgstr "Falta nombre completo para la plantilla."
 
-msgid "label missing"
-msgstr "etiqueta faltante"
+#, python-format
+msgid "last modified %s by %s"
+msgstr "modificado el %s by %s"
 
-msgid "soap cat missing"
-msgstr "falta categoría SOAP"
+msgid "Choose a form template file"
+msgstr "Elija un archivo de formulario de plantilla."
 
-msgid "Enter a descriptive name for this new problem:"
-msgstr "Ingrese un nombre descriptivo para este problema:"
+msgid "Enter a filename to save the template to"
+msgstr "Ingrese un nombre de archivo para guardar al plantilla"
 
-msgid "Creating a problem (episode) to save the notelet under ..."
-msgstr "Creando un problema (episodio) para guardar la nota como ..."
+msgid "Emergency contact"
+msgstr "Contacto de emergencia"
 
-msgid "Error saving progress note."
-msgstr "Error guardando nota de progreso."
+msgid "Primary doctor"
+msgstr "Médico primario"
 
-msgid "Error saving embedded data."
-msgstr "Error guardando datos integrados."
+msgid "in-praxis primary provider"
+msgstr "Proveedor primario en consulta"
 
-msgid "Visit Purpose"
-msgstr "Propósito de la consulta"
+msgid "This praxis"
+msgstr "Esta consulta"
 
-msgid "History Taken"
-msgstr "Anamnesis"
+msgid "Bill receiver"
+msgstr "Selecciona receptor"
 
-msgid "Findings"
-msgstr "Hallazgos"
+msgid "Receiver"
+msgstr "Receptor"
 
-msgid "save"
-msgstr "guardar"
+msgid ""
+"Are you sure you want to delete this\n"
+"description from the document ?\n"
+msgstr ""
+"¿Seguro que quiere eliminar esta\n"
+"descripción del documento?\n"
 
-msgid "save clinical note in EMR"
-msgstr "guardar nota clínica en RME"
+msgid "Deleting document description"
+msgstr "Borrando descripción de documento"
 
-msgid "discard"
-msgstr "descartar"
+msgid "Adding document description"
+msgstr "Añadiendo descripción de documento"
 
-msgid "discard clinical note"
-msgstr "descartar nota clínica"
+msgid "Below you can add a document description.\n"
+msgstr "Puede añadir una descripción de documento más abajo.\n"
 
-msgid "clinical progress note"
-msgstr "nota de progreso clínica"
+msgid "Editing document description"
+msgstr "Editando descripción de documento"
 
-msgid "Select files to add to the export area"
-msgstr "Selecciono archivos a adicionar al área de exportación"
+msgid "Below you can edit the document description.\n"
+msgstr "Más abajo puede editar la descripción del documento.\n"
 
-msgid "Adding files to export area"
-msgstr "Agrego archivos al área de exportación"
+msgid "Select the description you are interested in.\n"
+msgstr "Elija la descripción en la que está interesado.\n"
 
-#, python-format
-msgid ""
-"Cannot add (some of) the following files to the export area:\n"
-"%s "
-msgstr ""
-"No puedo agregar (algunos de) los siguientes archivos al área de "
-"exportación:\n"
-"%s "
+msgid "Managing document descriptions"
+msgstr "Gestión de descripciones de documentos"
 
-msgid "Select the documents to be put into the export area:"
-msgstr "Selecciono los documentos que serán puestos en el área de exportación:"
+msgid "Select the episode under which to file the document ..."
+msgstr "Seleccione el episodio bajo el cual desea archivar el documento ..."
 
-msgid "clipboard"
-msgstr "portapapeles"
+msgid "Cannot create new document."
+msgstr "No se ha podido crear un documento nuevo."
 
-msgid "Loading clipboard item (saved to file) into export area"
-msgstr ""
-"Cargo ítem desde el portapapeles (guardado a archivo) al área de exportación"
+msgid "saving document"
+msgstr "guardando documento"
 
 #, python-format
-msgid ""
-"Cannot add the following clip to the export area:\n"
-"%s "
-msgstr ""
-"No puedo agregar el siguiente fragmento al área de exportación:\n"
-"%s "
+msgid "Imported new document from %s."
+msgstr "Importé nuevo documento desde %s."
 
-msgid "scan"
-msgstr "escaneo"
+msgid "Successfully saved new document."
+msgstr "Se guardó con éxito el nuevo documento"
 
-msgid "Scanning files into export area"
-msgstr "Escaneo archivos al área de exportación"
+msgid "Successfully saved the new document."
+msgstr "Doumento nuevo grabado exitosamente."
 
 #, python-format
 msgid ""
-"Cannot add (some of) the following scans to the export area:\n"
-"%s "
+"The reference ID for the new document is:\n"
+"\n"
+" <%s>\n"
+"\n"
+"You probably want to write it down on the\n"
+"original documents.\n"
+"\n"
+"If you don't care about the ID you can switch\n"
+"off this message in the GNUmed configuration.\n"
 msgstr ""
-"No puedo agregar (algunos de) los siguiente escaneos al área de "
-"exportación::\n"
-"%s "
+"La ID de referencia para el nuevo documento es:\n"
+"\n"
+" <%s>\n"
+"\n"
+"Ud. probablemente desea anotarla en los\n"
+"documentos originales.\n"
+"\n"
+"Si no le importa la ID puede suprimir\n"
+"este mensaje en la configuración de GNUmed.\n"
 
-msgid "Deleting document from export area."
-msgstr "Elimino documentos desde el área de xeportación."
+msgid "Saving document"
+msgstr "Guardando documento"
 
 #, python-format
 msgid ""
-"Really remove %s selected document(s)\n"
-"from the patient export area ?"
+"Successfully imported files as document.\n"
+"\n"
+"Do you want to delete imported files from the filesystem ?\n"
+"\n"
+" %s\n"
+"\n"
+"Note that temporary files will be deleted anyway."
 msgstr ""
-"¿Realmente elimino %s documentos(s) seleccionado(s)\n"
-"desde el área de exportación del paciente?"
+"Importé exitosamente archivos como documento.\n"
+"\n"
+"¿Realmente desea eliminar los archivos importados desde el sistema de "
+"archivos?\n"
+"\n"
+" %s\n"
+"\n"
+"Note que los archivos temporarios igualmente serán eliminados."
 
-msgid "Error printing documents."
-msgstr "Error al imprimir documentos."
+msgid "Removing files"
+msgstr "Elimino archivos"
 
-#, python-format
-msgid "Printing [%s]"
-msgstr "Imprimo [%s]"
+msgid "Enter a comment on the document."
+msgstr "Introduzca un comentario sobre el documento."
+
+msgid "User defined"
+msgstr "Definido por el usuario"
+
+msgid "In use"
+msgstr "En uso"
 
 #, python-format
 msgid ""
-"Printed:\n"
-" - %s"
+"Cannot delete document type\n"
+" [%s]\n"
+"because it is currently in use."
 msgstr ""
-"Impreso:\n"
-" - %s"
-
-msgid "Select the directory into which to export the documents."
-msgstr "Selecciono el directorio al cual exporto los documentos."
+"No puedo borrar el tipo de documento\n"
+" [%s]\n"
+"porque está actualmente en uso."
 
-msgid "Saving export area documents"
-msgstr "Guardo documentos del área de exportación"
+msgid "deleting document type"
+msgstr "borrando tipo de documento"
 
 #, python-format
 msgid ""
-"The chosen export directory\n"
+"From the list below select the document type you want\n"
+"all documents currently classified as:\n"
 "\n"
-" [%s]\n"
+" \"%s\"\n"
 "\n"
-"is not empty. Do you want to use it for saving the\n"
-"export area documents into, nevertheless ?\n"
+"to be changed to.\n"
 "\n"
-"(this can be useful for including external documents)\n"
+"Be aware that this change will be applied to ALL such documents. If there\n"
+"are many documents to change it can take quite a while.\n"
 "\n"
-"[NO] will create a subdirectory for you and use that."
+"Make sure this is what you want to happen !\n"
 msgstr ""
-"El directorio de exportación elegido\n"
+"Seleccione el tipo de documento a partir de la lista de abajo\n"
+"con el cual usted desea que todos los documentos:\n"
 "\n"
-" [%s]\n"
+" \"[%s]\"\n"
 "\n"
-"no está vacío. ¿Desea usarlo para guardar en él los\n"
-"documentos del área de exportaciónex, aún así?\n"
+"sean modificados.\n"
 "\n"
-"(esto puede ser útil para documentos externos)\n"
+"Esté consciente que este cambio será aplicado a TODOS estos documentos.\n"
+"Si muchos documentos deben ser modificados, tomará un buen tiempo en "
+"realizarse.\n"
 "\n"
-"[NO] creará un subdirectorio para su uso."
+"Piénselo acaso es lo que desea efectuar.\n"
 
-#, python-format
-msgid ""
-"Saved to [%s]:\n"
-" - %s"
-msgstr ""
-"Guardado a [%s]:\n"
-" - %s"
+msgid "Reassigning document type"
+msgstr "Reasignación de tipo de documento"
 
-#, python-format
-msgid ""
-"Saved documents into directory:\n"
-"\n"
-" %s"
-msgstr ""
-"Documentos guardados en el directorio:\n"
-"\n"
-" %s"
+msgid "Select the document type."
+msgstr "Elija el tipo de documento."
 
-msgid "If you wish to include an existing directory select it here:"
-msgstr "Si desea incluir un directorio exstente, selecciónelo acá:"
+msgid "Cannot create document type without name."
+msgstr "No puedo crear tipo de documento sin nombre."
 
-msgid "Error burning documents to CD/DVD."
-msgstr "Error guardando documentos en CD/DVD."
+msgid "+/-"
+msgstr "+/-"
 
-msgid "Burning documents"
-msgstr "Guardo documentos"
+msgid "!"
+msgstr "!"
 
-#, python-format
-msgid ""
-"Burned onto CD/DVD:\n"
-" - %s"
-msgstr ""
-"Guardados en CD/DVD:\n"
-" - %s"
+msgid "comment"
+msgstr "comentario"
 
-msgid "Error mailing documents."
-msgstr "Error al enviar documentos por correo electróncio."
+msgid "(you are the primary reviewer)"
+msgstr "(usted es el revisor principal)"
 
-msgid "Mailing documents"
-msgstr "Envío documentos por correo-e"
+#, python-format
+msgid "(someone else is the intended reviewer: %s)"
+msgstr "(alguien más es el revisto buscado: %s)"
 
 #, python-format
 msgid ""
-"Mailed:\n"
-" - %s"
+"Cannot create episode\n"
+" [%s]"
 msgstr ""
-"Enviado:\n"
-" - %s"
+"No puedo crear el episodio\n"
+" [%s]"
+
+msgid "Editing document properties"
+msgstr "Editando propiedades del documento"
+
+#, python-format
+msgid "Cannot change document type to [%s]."
+msgstr "No se puede cambiar el tipo de documento a [%s]."
 
+#, python-format
 msgid ""
-"Please enter the fax number here !\n"
+"Cannot link the document to episode\n"
 "\n"
-"It can be left empty if the external\n"
-"fax software knows how to get the number."
+" [%s]"
 msgstr ""
-"Por favor, ¡ingrese el número de fax acá!\n"
+"No puedo vincular el documento al episodio\n"
 "\n"
-"puede ser dejado en blanco, si el programa externo\n"
-"de fax sabe cómo obtener el número."
+" [%s]"
 
-msgid "Faxing documents"
-msgstr "Faxeo documentos"
+msgid "Error setting \"reviewed\" status of this document."
+msgstr "Error fijando el estado \"revisado\" al documento."
+
+msgid "Error setting responsible clinician for this document."
+msgstr "Error al establecer el médico responsable de este documento."
+
+msgid "Error setting \"reviewed\" status of this part."
+msgstr "Error al establecer \"revisado\" el estado de esta parte."
 
 #, python-format
 msgid ""
-"Error faxing documents to\n"
+"Cannot set page number to [%s] because\n"
+"another page with this number exists.\n"
 "\n"
-"  %s"
+"Page numbers in use:\n"
+"\n"
+" %s"
 msgstr ""
-"Error faxeando documentos a\n"
+"No puedo asignar el número de página [%s], porque\n"
+"otra página ya existe con este número\n"
 "\n"
-"  %s"
+"Números de página usados:\n"
+"\n"
+" %s"
+
+msgid "Editing document part properties"
+msgstr "Editando propiedades de parte del documento"
+
+msgid "Error saving part properties."
+msgstr "Error al guardar propiedades de parte."
 
-#, python-format
 msgid ""
-"Faxed to [%s]:\n"
-" - %s"
+"No images could be acquired from the source.\n"
+"\n"
+"This may mean the scanner driver is not properly installed.\n"
+"\n"
+"On Windows you must install the TWAIN Python module\n"
+"while on Linux and MacOSX it is recommended to install\n"
+"the XSane package."
 msgstr ""
-"Faxeado a [%s]:\n"
-" - %s"
+"No se pudieron obtener imágenes desde la fuente.\n"
+"\n"
+"Esto puede significar que el gestor del escáner no está instalado "
+"adecuadamente.\n"
+"\n"
+"Bajo Windows, usted debe instalar el módulo Python TWAIN,\n"
+"mientras que bajo Linux o MacOSX se recomienda instalar\n"
+"el paquete XSane."
 
-msgid "<gm-mail_doc(.bat) not found>"
-msgstr "<gm-mail_doc(.bat) no encontrado>"
+msgid "Acquiring images"
+msgstr "Obteniendo imágenes"
 
-msgid "<gm-fax_doc(.bat) not found>"
-msgstr "<gm-fax_doc(.bat) no encontrado>"
+msgid "directory dropped on client"
+msgstr "directorio bajado al cliente"
 
-msgid "<gm-burn_doc(.bat) not found>"
-msgstr "<gm-burn_doc(.bat) no encontrado>"
+msgid "file dropped on client"
+msgstr "archivo bajado al cliente"
 
-msgid "Cannot accept new documents. No active patient."
-msgstr "No se pueden aceptar nuevos documentos. No hay paciente activo."
+msgid "other documents"
+msgstr "otros documentos"
 
-#, python-format
-msgid "Extracting files from folder [%s] ..."
-msgstr "Extrayendo archivos de la carpeta [%s] ..."
+msgid "path"
+msgstr "senda"
 
-msgid "Drag&Drop"
-msgstr "Arrastro&Suelto"
+msgid "No parts to save. Really save an empty document as a reference ?"
+msgstr ""
+"No hay partes que guardar. ¿Realmente quiere guardar un documento vacío como "
+"referencia?"
 
-msgid "Created"
-msgstr "Creado"
+msgid "No parts to save. Aquire some parts first."
+msgstr "No hay partes que guardar. Obtenga algunas partes primero."
 
-#, python-format
-msgid ""
-"Error exporting form template\n"
-"\n"
-" \"%s\" (%s)"
-msgstr ""
-"Error exportando formulario de plantilla.\n"
-"\n"
-" \"%s\" (%s)"
+msgid "No document type applied. Choose a document type"
+msgstr "No se usó el tipo de documento. Elija un tipo de documento"
 
-msgid "Letter template export"
-msgstr "Exportación de plantilla de carta"
+msgid "You must select an episode to save this document under."
+msgstr "Debe seleccionar un episodio para salvar a este documento bajo."
 
 msgid ""
-"Cannot connect to OpenOffice.\n"
-"\n"
-"The UNO bridge module for Python\n"
-"is not installed."
+"You need to select from the list of staff members the doctor who is intended "
+"to sign the document."
 msgstr ""
-"No se puede conectar con OpenOffice/LibreOffice.\n"
-"\n"
-"El módulo puente UNO de Python\n"
-"no está instalado."
+"Usted debe seleccionar al médico que firmará el documento a partir de la "
+"lista de miembros de personal."
 
-msgid "Letter writer"
-msgstr "Escritura de carta"
+msgid "There is no scanner support installed on this machine."
+msgstr "No hay instalado soporte para escáner en esta máquina."
+
+msgid "Cannot find an active scanner."
+msgstr "No se puede encontrar un escáner activo."
+
+msgid "Select an image capture device"
+msgstr "Seleccione un dispositivo para la captura de imagen"
+
+msgid "device selection"
+msgstr "selección de dispositivo"
 
-#, python-format
 msgid ""
-"Cannot connect to OpenOffice.\n"
+"No pages could be acquired from the source.\n"
 "\n"
-"You may want to increase the option\n"
+"This may mean the scanner driver is not properly installed.\n"
 "\n"
-" <%s>"
+"On Windows you must install the TWAIN Python module\n"
+"while on Linux and MacOSX it is recommended to install\n"
+"the XSane package."
 msgstr ""
-"No puedo conectar con OpenOffice/LibreOffice.\n"
+"No se pudo obtener ninguna página desde la fuente.\n"
 "\n"
-"Puede desear incrementar la opción:\n"
+"Esto puede significar que el gestor del escáner no está instalado "
+"adecuadamente.\n"
 "\n"
-" <%s>"
+"Bajo Windows usted debe instalar el módulo Python TWAIN,\n"
+"mientras que bajo Linux y MacOSX se recomienda instalar\n"
+"el paquete XSane."
 
-msgid "OOo startup time"
-msgstr "puesta en marcha de OOo"
+msgid "acquiring page"
+msgstr "obteniendo página"
 
-msgid "No document template selected."
-msgstr "No se ha elegido ninguna plantilla de documentos."
+msgid "captured by imaging device"
+msgstr "capturado por artefacto de imágenes"
 
-#, python-format
-msgid "Invalid document template [%s - %s (%s)]"
-msgstr "PLantilla de documento inválida [%s - %s (%s)]"
+msgid "Choose a file"
+msgstr "Elija un archivo"
 
-msgid "Generating document from template"
-msgstr "Genero documento desde plantilla"
+msgid "all files (Win)"
+msgstr "todos los archivos (Win)"
 
-msgid "Error generating document printout."
-msgstr "Error al generar impresión de documento."
+msgid "picked from storage media"
+msgstr "tomado de medio de almacenamiento"
 
-msgid "Generating document printout"
-msgstr "Genero impresión de documento"
+msgid "pasted from clipboard"
+msgstr "copiado desde el portapapeles"
+
+msgid "No part selected for viewing."
+msgstr "Ninguna parte seleccionada para ser vista."
 
 #, python-format
-msgid "Printed: %s"
-msgstr "Impreso: %s"
+msgid ""
+"Cannot display document part:\n"
+"%s"
+msgstr ""
+"No se puede mostrar la parte del documento:\n"
+"%s"
 
-msgid "Adding new form template"
-msgstr "Agrego plantilla de formulario nuevo"
+msgid "displaying part"
+msgstr "mostrando la parte"
 
-msgid "Editing form template"
-msgstr "Edito plantilla de formulario"
+msgid "No part selected for removal."
+msgstr "Ninguna parte seleccionada para eliminación."
 
-msgid "Deleting form template."
-msgstr "Borrando la plantilla."
+msgid "Cannot add document description."
+msgstr "No se ha podido añadir una descripción del documento."
+
+msgid "Error setting \"reviewed\" status of new document."
+msgstr "Error al fijar el estado \"revisado\" del nuevo documento."
 
 #, python-format
 msgid ""
-"Are you sure you want to delete\n"
-"the following form template ?\n"
-"\n"
-" \"%s (%s)\"\n"
+"Source: %s\n"
+"File: %s\n"
 "\n"
-"You can only delete templates which\n"
-"have not yet been used to generate\n"
-"any forms from."
+"%s"
 msgstr ""
-"¿Está seguro que desea borrar\n"
-"el siguiente formulario de plantilla?\n"
-"\n"
-" \"%s (%s)\"\n"
+"Fuente: %s\n"
+"Archivo: %s\n"
 "\n"
-"Solo puede borrar plantillas que\n"
-"no hayan sido usadas para generar\n"
-"algún formulario."
-
-msgid "Select letter or form template."
-msgstr "Elija plantilla de carta o formulario."
-
-msgid "You must select a template file before saving."
-msgstr "Debe elegir un archivo de plantilla antes de guardar."
+"%s"
 
-msgid "You must enter a type for documents created with this template."
-msgstr "Debe ingresar un tipo para documentos creados con esta plantilla."
+msgid "Document part does not seem to exist in database !"
+msgstr "¡Parte de documento parece no existir en la base de datos!"
 
-msgid "You must enter a type for this template."
-msgstr "Debe ingresar un tipo para esta plantilla."
+msgid "showing document"
+msgstr "mostrando informe"
 
-msgid "You must enter a version for this template."
-msgstr "Debe ingresaro una versión para esta plantilla."
+msgid "Document list for this patient."
+msgstr "Lista de documentos para este paciente."
 
-msgid "Missing short name for template."
-msgstr "Falta nombre corto para la palntilla."
+msgid "Showing documents."
+msgstr "Muestro documentos."
 
-msgid "Missing long name for template."
-msgstr "Falta nombre completo para la plantilla."
+msgid "Ref #"
+msgstr "Ref #"
 
 #, python-format
-msgid "last modified %s by %s"
-msgstr "modificado el %s by %s"
-
-msgid "Choose a form template file"
-msgstr "Elija un archivo de formulario de plantilla."
-
-msgid "Enter a filename to save the template to"
-msgstr "Ingrese un nombre de archivo para guardar al plantilla"
-
-msgid "Emergency contact"
-msgstr "Contacto de emergencia"
+msgid "available documents (%s)"
+msgstr "documentos disponibles (%s)"
 
-msgid "Primary doctor"
-msgstr "Médico primario"
+#, python-format
+msgid "unsigned (%s) on top"
+msgstr "sin firmar (%s) arriba"
 
-msgid "in-praxis primary provider"
-msgstr "Proveedor primario en consulta"
+msgid "most recent on top"
+msgstr "más reciente arriba"
 
-msgid "This praxis"
-msgstr "Esta consulta"
+msgid "sorted by episode"
+msgstr "ordenado por episodio"
 
-msgid "Hospital stay"
-msgstr "Hospitalización"
+msgid "sorted by health issue"
+msgstr "ordenado por tema de salud"
 
-msgid "Bill receiver"
-msgstr "Selecciona receptor"
+msgid "sorted by type"
+msgstr "ordenado por tipo"
 
-msgid "Receiver"
-msgstr "Receptor"
+msgid "Cannot load documents. No active patient."
+msgstr "No se pueden cargar documentos. No hay paciente activo."
 
-msgid ""
-"Are you sure you want to delete this\n"
-"description from the document ?\n"
-msgstr ""
-"¿Seguro que quiere eliminar esta\n"
-"descripción del documento?\n"
+msgid "Part Actions:"
+msgstr "Acciones sobre parte:"
 
-msgid "Deleting document description"
-msgstr "Borrando descripción de documento"
+msgid "Display part"
+msgstr "Mostrar parte"
 
-msgid "Adding document description"
-msgstr "Añadiendo descripción de documento"
+#, python-format
+msgid "%s Sign/Edit properties"
+msgstr "%s Firmar/Editar propiedades"
 
-msgid "Below you can add a document description.\n"
-msgstr "Puede añadir una descripción de documento más abajo.\n"
+msgid "Delete part"
+msgstr "Elimino parte"
 
-msgid "Editing document description"
-msgstr "Editando descripción de documento"
+msgid "Move part"
+msgstr "Muevo parte"
 
-msgid "Below you can edit the document description.\n"
-msgstr "Más abajo puede editar la descripción del documento.\n"
+msgid "Print part"
+msgstr "Imprimir parte"
 
-msgid "Select the description you are interested in.\n"
-msgstr "Elija la descripción en la que está interesado.\n"
+msgid "Fax part"
+msgstr "Faxear parte"
 
-msgid "Managing document descriptions"
-msgstr "Gestión de descripciones de documentos"
+msgid "Mail part"
+msgstr "Eviar parte por correo"
 
-msgid "Select the episode under which to file the document ..."
-msgstr "Seleccione el episodio bajo el cual desea archivar el documento ..."
+msgid "Export part"
+msgstr "Exporto parte"
 
-#, python-format
-msgid "Imported new document from %s."
-msgstr "Importé nuevo documento desde %s."
+msgid "Document Actions:"
+msgstr "Acciones sobre documentos:"
 
-msgid "Enter a comment on the document."
-msgstr "Introduzca un comentario sobre el documento."
+msgid "Delete document"
+msgstr "Borrar documento"
 
-msgid "User defined"
-msgstr "Definido por el usuario"
+msgid "Add parts"
+msgstr "Agrego parte"
 
-msgid "In use"
-msgstr "En uso"
+msgid "Add part from clipboard"
+msgstr "Agrego parte desde el portapapeles"
 
-#, python-format
-msgid ""
-"Cannot delete document type\n"
-" [%s]\n"
-"because it is currently in use."
-msgstr ""
-"No puedo borrar el tipo de documento\n"
-" [%s]\n"
-"porque está actualmente en uso."
+msgid "Print all parts"
+msgstr "Imprimir todas las partes"
 
-msgid "deleting document type"
-msgstr "borrando tipo de documento"
+msgid "Fax all parts"
+msgstr "Faxear todas las partes"
 
-#, python-format
-msgid ""
-"From the list below select the document type you want\n"
-"all documents currently classified as:\n"
-"\n"
-" \"%s\"\n"
-"\n"
-"to be changed to.\n"
-"\n"
-"Be aware that this change will be applied to ALL such documents. If there\n"
-"are many documents to change it can take quite a while.\n"
-"\n"
-"Make sure this is what you want to happen !\n"
-msgstr ""
-"Seleccione el tipo de documento a partir de la lista de abajo\n"
-"con el cual usted desea que todos los documentos:\n"
-"\n"
-" \"[%s]\"\n"
-"\n"
-"sean modificados.\n"
-"\n"
-"Esté consciente que este cambio será aplicado a TODOS estos documentos.\n"
-"Si muchos documentos deben ser modificados, tomará un buen tiempo en "
-"realizarse.\n"
-"\n"
-"Piénselo acaso es lo que desea efectuar.\n"
+msgid "Mail all parts"
+msgstr "Envío correos a todos"
 
-msgid "Reassigning document type"
-msgstr "Reasignación de tipo de documento"
+msgid "Export all parts"
+msgstr "Exporto todas las partes"
 
-msgid "Select the document type."
-msgstr "Elija el tipo de documento."
+msgid "Access external original"
+msgstr "Acceso a original externo"
 
-msgid "Cannot create document type without name."
-msgstr "No puedo crear tipo de documento sin nombre."
+msgid "Edit corresponding encounter"
+msgstr "Editando contacto respectiva"
 
-msgid "+/-"
-msgstr "+/-"
+msgid "Select corresponding encounter"
+msgstr "Seleccione consulta correspondiente"
 
-msgid "!"
-msgstr "!"
+msgid "Manage descriptions"
+msgstr "Administrar descripciones"
 
-msgid "comment"
-msgstr "comentario"
+msgid "Error searching documents."
+msgstr "Error buscando documentos."
 
-msgid "(you are the primary reviewer)"
-msgstr "(usted es el revisor principal)"
+msgid "loading document list"
+msgstr "obteniendo lista de informes"
 
 #, python-format
-msgid "(someone else is the intended reviewer: %s)"
-msgstr "(alguien más es el revisto buscado: %s)"
+msgid "%s%7s %s:%s (%s)"
+msgstr "%s%7s %s:%s (%s)"
 
 #, python-format
-msgid ""
-"Cannot create episode\n"
-" [%s]"
-msgstr ""
-"No puedo crear el episodio\n"
-" [%s]"
-
-msgid "Editing document properties"
-msgstr "Editando propiedades del documento"
+msgid "%s%7s (%s):%s (%s)"
+msgstr "%s%7s (%s):%s (%s)"
 
 #, python-format
-msgid "Cannot change document type to [%s]."
-msgstr "No se puede cambiar el tipo de documento a [%s]."
+msgid "%s (unattributed episode)"
+msgstr "%s (episodio no atribuido)"
 
 #, python-format
+msgid "part %2s"
+msgstr "parte %2s"
+
+msgid "Activate as current photo"
+msgstr "Activar como fotografía actual"
+
 msgid ""
-"Cannot link the document to episode\n"
 "\n"
-" [%s]"
+"Select the document into which to move the selected part !\n"
 msgstr ""
-"No puedo vincular el documento al episodio\n"
 "\n"
-" [%s]"
+"¡Selecciono el documento al cual mover la parte seleccionada!\n"
 
-msgid "Error setting \"reviewed\" status of this document."
-msgstr "Error fijando el estado \"revisado\" al documento."
+msgid "Cannot move document part."
+msgstr "No puedo mover parte del documento."
 
-msgid "Error setting responsible clinician for this document."
-msgstr "Error al establecer el médico responsable de este documento."
+msgid "Moving document part"
+msgstr "Muevo parte del documento"
 
-msgid "Error setting \"reviewed\" status of this part."
-msgstr "Error al establecer \"revisado\" el estado de esta parte."
+msgid "Deleting document part"
+msgstr "Elimino parte del documento"
 
 #, python-format
 msgid ""
-"Cannot set page number to [%s] because\n"
-"another page with this number exists.\n"
+"Are you sure you want to delete the %s part #%s\n"
 "\n"
-"Page numbers in use:\n"
+"%sfrom the following document\n"
 "\n"
-" %s"
+" %s (%s)\n"
+"%s\n"
+"Really delete ?\n"
+"\n"
+"(this action cannot be reversed)"
 msgstr ""
-"No puedo asignar el número de página [%s], porque\n"
-"otra página ya existe con este número\n"
+"¿Está seguro/a que desea eliminar esta %s parte #%s\n"
 "\n"
-"Números de página usados:\n"
+"%s desde el siguiente documento?\n"
 "\n"
-" %s"
+" %s (%s)\n"
+"%s\n"
+"¿Realmente elimino?\n"
+"\n"
+"(esta acción es irreversible)"
 
-msgid "Editing document part properties"
-msgstr "Editando propiedades de parte del documento"
+#, python-format
+msgid ""
+"Cannot %(l10n_action)s document part - %(l10n_action)s command not found.\n"
+"\n"
+"Either of gm-%(action)s_doc or gm-%(action)s_doc.bat\n"
+"must be in the execution path. The command will\n"
+"be passed the filename to %(l10n_action)s."
+msgstr ""
+"No puedo %(l10n_action)s parte del documento - %(l10n_action)s comando no "
+"encontrado.\n"
+"\n"
+"Ya sea gm-%(action)s_doc o gm-%(action)s_doc.bat\n"
+"deben estar en la ruta de ejecución. El comando será\n"
+"pasado al nombre de archivo %(l10n_action)s."
 
-msgid "Error saving part properties."
-msgstr "Error al guardar propiedades de parte."
+#, python-format
+msgid "Processing document part: %s"
+msgstr "Procesando parte de documento: %s"
 
+#, python-format
 msgid ""
-"No images could be acquired from the source.\n"
+"Cannot %(l10n_action)s document part - %(l10n_action)s command failed.\n"
 "\n"
-"This may mean the scanner driver is not properly installed.\n"
+"You may need to check and fix either of\n"
+" gm-%(action)s_doc (Unix/Mac) or\n"
+" gm-%(action)s_doc.bat (Windows)\n"
 "\n"
-"On Windows you must install the TWAIN Python module\n"
-"while on Linux and MacOSX it is recommended to install\n"
-"the XSane package."
+"The command is passed the filename to %(l10n_action)s."
 msgstr ""
-"No se pudieron obtener imágenes desde la fuente.\n"
+"No puedo %(l10n_action)s parte del documento - %(l10n_action)s comando "
+"falló.\n"
 "\n"
-"Esto puede significar que el gestor del escáner no está instalado "
-"adecuadamente.\n"
+"Podría necesitar verificar y arreglar cualquiera de\n"
+" gm-%(action)s_doc (Unix/Mac) or\n"
+" gm-%(action)s_doc.bat (Windows)\n"
 "\n"
-"Bajo Windows, usted debe instalar el módulo Python TWAIN,\n"
-"mientras que bajo Linux o MacOSX se recomienda instalar\n"
-"el paquete XSane."
+"El comando es pasado al nombre de archivo %(l10n_action)s."
 
-msgid "Acquiring images"
-msgstr "Obteniendo imágenes"
+#, python-format
+msgid "document part handed over to email program: %s"
+msgstr "parte de documento enviado al programa de correo-e: %s"
 
-msgid "other documents"
-msgstr "otros documentos"
+msgid "print"
+msgstr "imprimir"
 
-#, python-format
-msgid "part %s: %s"
-msgstr "parte %s: %s"
+msgid "fax"
+msgstr "fax"
 
-msgid "saving document"
-msgstr "guardando documento"
+msgid "mail"
+msgstr "correo"
 
-msgid "No parts to save. Really save an empty document as a reference ?"
-msgstr ""
-"No hay partes que guardar. ¿Realmente quiere guardar un documento vacío como "
-"referencia?"
+msgid "Save document part to directory ..."
+msgstr "Guardo parte de documento al directorio ..."
 
-msgid "No parts to save. Aquire some parts first."
-msgstr "No hay partes que guardar. Obtenga algunas partes primero."
+#, python-format
+msgid "Successfully exported document part as [%s]."
+msgstr "Parte de documento exitosamente exportado como [%s]."
 
-msgid "No document type applied. Choose a document type"
-msgstr "No se usó el tipo de documento. Elija un tipo de documento"
+#, python-format
+msgid ""
+"Cannot %(l10n_action)s document - %(l10n_action)s command not found.\n"
+"\n"
+"Either of gm-%(action)s_doc or gm-%(action)s_doc.bat\n"
+"must be in the execution path. The command will\n"
+"be passed a list of filenames to %(l10n_action)s."
+msgstr ""
+"No puedo %(l10n_action)s documento - %(l10n_action)s comando no encontrado.\n"
+"\n"
+"Cualquiera de gm-%(action)s_doc o gm-%(action)s_doc.bat\n"
+"debe estar en la ruta de ejecución. El comando será\n"
+"pasado a una lista de nombres de archivo a %(l10n_action)s."
 
-msgid "You must select an episode to save this document under."
-msgstr "Debe seleccionar un episodio para salvar a este documento bajo."
+#, python-format
+msgid "Processing document: %s"
+msgstr "Procesando documento: %s"
 
+#, python-format
 msgid ""
-"You need to select from the list of staff members the doctor who is intended "
-"to sign the document."
+"Cannot %(l10n_action)s document - %(l10n_action)s command failed.\n"
+"\n"
+"You may need to check and fix either of\n"
+" gm-%(action)s_doc (Unix/Mac) or\n"
+" gm-%(action)s_doc.bat (Windows)\n"
+"\n"
+"The command is passed a list of filenames to %(l10n_action)s."
 msgstr ""
-"Usted debe seleccionar al médico que firmará el documento a partir de la "
-"lista de miembros de personal."
+"No puedo %(l10n_action)s documento - %(l10n_action)s comando falló.\n"
+"\n"
+"Podría necesitar revisar y arreglar cualquiera de\n"
+" gm-%(action)s_doc (Unix/Mac) or\n"
+" gm-%(action)s_doc.bat (Windows)\n"
+"\n"
+"El comando será pasado a una lista de nombres de archivos a %(l10n_action)s."
 
-msgid "There is no scanner support installed on this machine."
-msgstr "No hay instalado soporte para escáner en esta máquina."
+msgid "Really add the displayed clipboard item into the document ?"
+msgstr "¿Realmente agrego el ítem del portapapeles desplegado al documento?"
 
-msgid "Cannot find an active scanner."
-msgstr "No se puede encontrar un escáner activo."
+msgid "Document part from clipboard"
+msgstr "Parte de documento del portapapeles"
 
-msgid "Select an image capture device"
-msgstr "Seleccione un dispositivo para la captura de imagen"
+msgid ""
+"Cannot access external document - access command not found.\n"
+"\n"
+"Either of gm_access_external_doc.sh or *.bat must be\n"
+"in the execution path. The command will be passed the\n"
+"document type and the reference URL for processing."
+msgstr ""
+"No puedo accesar documento externo - no se encontró comando de acceso.\n"
+"\n"
+"gm_access_external_doc.sh o *.bat debe estar en la ruta\n"
+"de ejecución. Al documento le será traspasado el tipo de\n"
+"documento y el URL de referencia para procesamiento."
 
-msgid "device selection"
-msgstr "selección de dispositivo"
+msgid "Accessing external document"
+msgstr "Accediendo a documento externo"
 
 msgid ""
-"No pages could be acquired from the source.\n"
+"Cannot access external document - access command failed.\n"
 "\n"
-"This may mean the scanner driver is not properly installed.\n"
+"You may need to check and fix either of\n"
+" gm_access_external_doc.sh (Unix/Mac) or\n"
+" gm_access_external_doc.bat (Windows)\n"
 "\n"
-"On Windows you must install the TWAIN Python module\n"
-"while on Linux and MacOSX it is recommended to install\n"
-"the XSane package."
+"The command is passed the document type and the\n"
+"external reference URL on the command line."
 msgstr ""
-"No se pudo obtener ninguna página desde la fuente.\n"
+"No puedo accesar el documento externo - comando de acceso falló.\n"
 "\n"
-"Esto puede significar que el gestor del escáner no está instalado "
-"adecuadamente.\n"
+"Necesita revisar y verificar uno de\n"
+" gm_access_external_doc.sh (Unix/Mac) o\n"
+" gm_access_external_doc.bat (Windows)\n"
 "\n"
-"Bajo Windows usted debe instalar el módulo Python TWAIN,\n"
-"mientras que bajo Linux y MacOSX se recomienda instalar\n"
-"el paquete XSane."
+"Al comando le será traspasado el tipo de dcumento y el\n"
+"URL de la referencia externa en la linea de comando."
 
-msgid "acquiring page"
-msgstr "obteniendo página"
+msgid "Save document into directory ..."
+msgstr "Guardar documento en el directorio ..."
 
-msgid "Choose a file"
-msgstr "Elija un archivo"
+#, python-format
+msgid "Successfully exported %s parts into the directory [%s]."
+msgstr "Se han exportado con éxito %s partes en el directorio [%s]."
 
-msgid "all files (Win)"
-msgstr "todos los archivos (Win)"
+msgid "Are you sure you want to delete the document ?"
+msgstr "¿Está seguro de que quiere borrar el documento?"
 
-msgid "You must select a part before you can view it."
-msgstr "Debe seleccionar una parte antes de poder verla."
+msgid "Deleting document"
+msgstr "Borrando documento"
 
-msgid "displaying part"
-msgstr "mostrando la parte"
+msgid "Study date"
+msgstr "Fecha del estudio"
+
+msgid "Study time"
+msgstr "Hora del estudio"
+
+msgid "Method"
+msgstr "Método"
+
+msgid "Body part"
+msgstr "Parte del cuerpo"
+
+msgid "Time"
+msgstr "Tiempo"
+
+msgid "Cannot connect without port (try 8042)."
+msgstr "No puedo conectar sin puerto (trate 8042)."
+
+#, python-format
+msgid "Connect to [%s] @ port %s as \"%s\"."
+msgstr "Me conecto al [%s] @ puerto %s como \"%s\"."
+
+msgid "Cannot connect to PACS."
+msgstr "No puedo conectarme al SCAI."
+
+#, python-format
+msgid "PACS: Orthanc \"%s\" (AET \"%s\", Version %s, DB v%s)"
+msgstr "SCAI: Orthanc \"%s\" (AET \"%s\", Versión %s, DB v%s)"
+
+#, python-format
+msgid "GNUmed patient: %s (generic PACS ID)"
+msgstr "Paciente GNUmed: %s (ID SCAI genérica)"
 
 #, python-format
+msgid "GNUmed patient: \"%(value)s\" @ [%(issuer)s] (stored PACS ID)"
+msgstr "Paciente GNUmed: \"%(value)s\" @ [%(issuer)s] (ID SCAI guardada)"
+
+msgid "PACS: no patients with matching IDs found"
+msgstr "SCAI: no se han encontrado pacientes de ID's coincidentes"
+
 msgid ""
-"Cannot display document part:\n"
-"%s"
+"PACS: more than one patient with matching IDs found, carefully check studies"
 msgstr ""
-"No se puede mostrar la parte del documento:\n"
-"%s"
+"SCAI: se encontró más de una coincidencia de paciente para la ID, "
+"cuidadosamente revise los estudios"
+
+#, python-format
+msgid "%s series"
+msgstr "%s series"
+
+#, python-format
+msgid "%%s (%s series)"
+msgstr "%%s (%s series)"
+
+msgid "no studies"
+msgstr "sin estudios"
+
+#, python-format
+msgid "%s studies"
+msgstr "%s studios"
 
-msgid "You must select a part before you can delete it."
-msgstr "Debe seleccionar una parte antes de borrarla."
+msgid "Exporting DICOM studies"
+msgstr "Exporto estudios DICOM"
 
-msgid "deleting part"
-msgstr "borrando parte"
+msgid "Unable to export selected studies."
+msgstr "Imposible exportar estudios seleccionados."
 
 #, python-format
 msgid ""
-"The part has successfully been removed from the document.\n"
+"The DICOM studies are %s in compressed size.\n"
 "\n"
-"Do you also want to permanently delete the file\n"
-"\n"
-" [%s]\n"
-"\n"
-"from which this document part was loaded ?\n"
-"\n"
-"If it is a temporary file for a page you just scanned\n"
-"this makes a lot of sense. In other cases you may not\n"
-"want to lose the file.\n"
-"\n"
-"Pressing [YES] will permanently remove the file\n"
-"from your computer.\n"
+"Really copy to export area ?"
 msgstr ""
-"La parte ha sido borrada exitosamente del documento.\n"
-"\n"
-"¿También desea borrar permanentemente el archivo\n"
-"\n"
-" [%s]\n"
+"Los estudios DICOM están comprimidos en un %s.\n"
 "\n"
-"desde el cual este documento fue cargado?\n"
-"\n"
-"Si la página escaneada proviniera de un archivo temporal,\n"
-"esto tendría mucho sentido. En otros casos, usted podría\n"
-"preferir no perder el archivo.\n"
-"\n"
-"Oprimir [Sí] borrará definitivamente el  archivo\n"
-"en su computadora.\n"
+"¿Realmente copio al área de exportación ?"
+
+#, python-format
+msgid "DICOM studies of [%s] from Orthanc PACS \"%s\" (AET \"%s\")"
+msgstr "Estudios DICOM de [%s] del SCAI Orthanc \"%s\" (AET \"%s\")"
+
+msgid "Select the directory into which to save the DICOM studies."
+msgstr "Seleccione el directorio en el cual guardar el estudio DICOM."
+
+msgid "Saving DICOM studies"
+msgstr "Guardando el estudio DICOM"
+
+msgid "Unable to save selected studies."
+msgstr "Imposible guardar los estudios seleccionados."
+
+msgid "Unable to export studies."
+msgstr "IMposible guardar estudios."
 
-msgid "Removing document part"
-msgstr "Eliminación de parte del documento"
+#, python-format
+msgid "All DICOM studies of [%s] from Orthanc PACS \"%s\" (AET \"%s\")"
+msgstr "Todos los estudios DICOM de [%s] del SCAI Orthanc \"%s\" (AET \"%s\")"
 
 #, python-format
+msgid "%s%s images"
+msgstr "%s%s imágenes"
+
+msgid "Select the directory from which to recursively upload DICOM files."
+msgstr ""
+"Seleccione el directorio desde el cual subir recursivamente archivos DICOM."
+
+msgid "Delete the uploaded DICOM files now ?"
+msgstr "¿Elimino ahora los archivos DICOM subidos?"
+
 msgid ""
-"Cannot delete part in file [%s].\n"
+"Some files have not been uploaded.\n"
 "\n"
-"You may not have write access to it."
+"Do you want to delete those DICOM files which have been sent to the PACS "
+"successfully ?"
 msgstr ""
-"No puedo borrar una parte del archivo [%s].\n"
+"Algunos archivos no han sido subidos .\n"
 "\n"
-"Puede que no tenga permiso de escritura."
+"¿Desea eliminar aquellos archivos DICOM que han sido enviados al SCAI "
+"exitosamente?"
 
-msgid "Cannot create new document."
-msgstr "No se ha podido crear un documento nuevo."
+msgid "Uploading DICOM files"
+msgstr "Subiendo archivos DICOM"
 
-msgid "Cannot update document metadata."
-msgstr "No se pueden actualizar los metadatos del documento."
+msgid "Editing Orthanc content"
+msgstr "Editando contenido Orthanc"
 
-msgid "Cannot add document description."
-msgstr "No se ha podido añadir una descripción del documento."
+msgid "Patient ID"
+msgstr "ID del paciente"
 
-msgid "Error setting \"reviewed\" status of new document."
-msgstr "Error al fijar el estado \"revisado\" del nuevo documento."
+msgid "Birth date"
+msgstr "Fecha de nacimiento"
 
-msgid "Successfully saved the new document."
-msgstr "Doumento nuevo grabado exitosamente."
+msgid "Orthanc"
+msgstr "Orthanc"
+
+msgid "Modifying patient ID"
+msgstr "Modificando ID del paciente"
 
 #, python-format
 msgid ""
-"The reference ID for the new document is:\n"
+"Really modify %s patient(s) to have the new patient ID\n"
 "\n"
-" <%s>\n"
-"\n"
-"You probably want to write it down on the\n"
-"original documents.\n"
+" [%s]\n"
 "\n"
-"If you don't care about the ID you can switch\n"
-"off this message in the GNUmed configuration."
+"stored in the Orthanc DICOM server ?"
 msgstr ""
-"La indexación del nuevo documento es:\n"
-"\n"
-" <%s>\n"
+"¿Realmente modifico %s paciente(s) para tener guardada la nueva ID del "
+"paciente\n"
 "\n"
-"Probablemente usted desee anotarla en los\n"
-"documentos originales.\n"
+" [%s]\n"
 "\n"
-"Si prefiere trabajar sin indexación, usted puede\n"
-"deshabilitar este mensaje en la configuración de GNUmed."
+"en el servidor Orthanc DICOM ?"
 
-msgid "Saving document"
-msgstr "Guardando documento"
+#, python-format
+msgid "You are logged in as %s%s.%s (%s). DB account <%s>."
+msgstr "Usted está conectado/a como %s%s.%s (%s). Cuenta de BD <%s>."
 
-msgid "Successfully saved new document."
-msgstr "Se guardó con éxito el nuevo documento"
+msgid "&Go to plugin ..."
+msgstr "&Vaya al módulo ..."
 
-msgid "Document part does not seem to exist in database !"
-msgstr "¡Parte de documento parece no existir en la base de datos!"
+msgid "Check for updates"
+msgstr "Comprobar actualizaciones"
 
-msgid "showing document"
-msgstr "mostrando informe"
+msgid "Check for new releases of the GNUmed client."
+msgstr "Buscar nuevas versiones del cliente GNUmed."
 
-msgid "Document list for this patient."
-msgstr "Lista de documentos para este paciente."
+msgid "Announce downtime"
+msgstr "Anuncia baja"
 
-msgid "Showing documents."
-msgstr "Muestro documentos."
+msgid "Announce database maintenance downtime to all connected clients."
+msgstr ""
+"Anuncia baja de base de datos por mantención a todos los clientes conectados."
 
-msgid "Ref #"
-msgstr "Ref #"
+msgid "All options"
+msgstr "Todas las opciones"
 
-#, python-format
-msgid "available documents (%s)"
-msgstr "documentos disponibles (%s)"
+msgid "List all options as configured in the database."
+msgstr "Listo todas las opciones como están configuradas en la base de datos."
 
-#, python-format
-msgid "unsigned (%s) on top"
-msgstr "sin firmar (%s) arriba"
+msgid "Configure the database language"
+msgstr "Configurar el idioma de la base de datos"
 
-msgid "most recent on top"
-msgstr "más reciente arriba"
+msgid "Welcome message"
+msgstr "Mensaje de bienvenida"
 
-msgid "sorted by episode"
-msgstr "ordenado por episodio"
+msgid "Configure the database welcome message (all users)."
+msgstr ""
+"Configurar el mensaje de bienvenida de la base de datos (para todos los "
+"usuarios)."
 
-msgid "sorted by health issue"
-msgstr "ordenado por tema de salud"
+msgid "Database ..."
+msgstr "Base de datos ..."
 
-msgid "sorted by type"
-msgstr "ordenado por tipo"
+msgid "Export chunk size"
+msgstr "Exportación de tamaño de bloques"
 
-msgid "Cannot load documents. No active patient."
-msgstr "No se pueden cargar documentos. No hay paciente activo."
+msgid "Configure the chunk size used when exporting BLOBs from the database."
+msgstr ""
+"Configura el tamaño de bloques para la exportación de datos binarios desde "
+"la base de datos."
 
-msgid "Part Actions:"
-msgstr "Acciones sobre parte:"
+msgid "Email address"
+msgstr "Dirección de correo electrónico"
 
-msgid "Display part"
-msgstr "Mostrar parte"
+msgid "The email address of the user for sending bug reports, etc."
+msgstr ""
+"Dirección de correo del usuario para el envío de informes de errores, etc."
 
-#, python-format
-msgid "%s Sign/Edit properties"
-msgstr "%s Firmar/Editar propiedades"
+msgid "Client parameters ..."
+msgstr "Parámetros del cliente ..."
 
-msgid "Delete part"
-msgstr "Elimino parte"
+msgid "Medication measurements"
+msgstr "Mediciones de medicaciones"
 
-msgid "Move part"
-msgstr "Muevo parte"
+msgid "Select the measurements panel to show in the medications plugin."
+msgstr ""
+"Selecciono el panel de mediciones para mostrar el tema de medicaciones."
 
-msgid "Print part"
-msgstr "Imprimir parte"
+msgid "General measurements"
+msgstr "Mediciones generales"
 
-msgid "Fax part"
-msgstr "Faxear parte"
+msgid "Select the measurements panel to show in the top pane."
+msgstr "Seleccione el panel de mediciones para mostrar en el panel superior."
 
-msgid "Mail part"
-msgstr "Eviar parte por correo"
+msgid "Review dialog"
+msgstr "Diálogo de revisión"
 
-msgid "Export part"
-msgstr "Exporto parte"
+msgid "Configure review dialog after document display."
+msgstr ""
+"Configuración del diálogo de revisión después del despliegue de un documento."
 
-msgid "Document Actions:"
-msgstr "Acciones sobre documentos:"
+msgid "UUID display"
+msgstr "Indicador de identificación de documento"
 
-msgid "Delete document"
-msgstr "Borrar documento"
+msgid "Configure unique ID dialog on document import."
+msgstr ""
+"Configuración del diálogo de la identificación única en la importación de "
+"documento."
 
-msgid "Add parts"
-msgstr "Agrego parte"
+msgid "Empty documents"
+msgstr "Documentos vacíos"
 
-msgid "Add part from clipboard"
-msgstr "Agrego parte desde el portapapeles"
+msgid "Whether to allow saving documents without parts."
+msgstr "Acaso permite guardar documentos vacíos."
 
-msgid "Print all parts"
-msgstr "Imprimir todas las partes"
+msgid "Generate UUID"
+msgstr "Generar identificador de documento"
 
-msgid "Fax all parts"
-msgstr "Faxear todas las partes"
+msgid "Whether to generate UUIDs for new documents."
+msgstr "Acaso generar identificadores para documentos nuevos."
 
-msgid "Mail all parts"
-msgstr "Envío correos a todos"
+msgid "Document handling ..."
+msgstr "Manejo de documentos ..."
 
-msgid "Export all parts"
-msgstr "Exportar todas las partes"
+msgid "Auto-check"
+msgstr "Comprobación automática"
 
-msgid "Access external original"
-msgstr "Acceso a original externo"
+msgid "Whether to auto-check for updates at startup."
+msgstr ""
+"Acaso verifico automáticamente la existencia de actualizaciones al comenzar."
 
-msgid "Edit corresponding encounter"
-msgstr "Editando contacto respectiva"
+msgid "Check scope"
+msgstr "Verifica alcance"
 
-msgid "Select corresponding encounter"
-msgstr "Seleccione consulta correspondiente"
+msgid "When checking for updates, consider latest branch, too ?"
+msgstr ""
+"Al verificar existencia de actualizaciones, ¿considera cambios mayores de "
+"versión?"
 
-msgid "Manage descriptions"
-msgstr "Administrar descripciones"
+msgid "The URL to retrieve version information from."
+msgstr "El URL desde el cual descargar información de la versión."
 
-msgid "Error searching documents."
-msgstr "Error buscando documentos."
+msgid "Update handling ..."
+msgstr "Comprobación de actualización ..."
 
-msgid "loading document list"
-msgstr "obteniendo lista de informes"
+msgid "Birthday reminder"
+msgstr "Recordatorio de cumpleaños"
 
-#, python-format
-msgid "%s%7s %s:%s (%s)"
-msgstr "%s%7s %s:%s (%s)"
+msgid "Configure birthday reminder proximity interval."
+msgstr "Configura la ventana de tiempo para el recordatorio de cumpleaños."
 
-#, python-format
-msgid "%s%7s (%s):%s (%s)"
-msgstr "%s%7s (%s):%s (%s)"
+msgid "Immediate source activation"
+msgstr "Activación inmediata de fuente"
 
-#, python-format
-msgid "%s (unattributed episode)"
-msgstr "%s (episodio no atribuido)"
+msgid "Configure immediate activation of single external person."
+msgstr "Configura activación inmediata de personal individual externo."
 
-#, python-format
-msgid "part %2s"
-msgstr "parte %2s"
+msgid "Initial plugin"
+msgstr "Módulo inicial"
 
-msgid "Activate as current photo"
-msgstr "Activar como fotografía actual"
+msgid "Configure which plugin to show right after person activation."
+msgstr "Configura cuál módulo mostrar después de la activación de un paciente."
 
-msgid ""
-"\n"
-"Select the document into which to move the selected part !\n"
-msgstr ""
-"\n"
-"¡Selecciono el documento al cual mover la parte seleccionada!\n"
+msgid "Default region"
+msgstr "Región por defecto"
 
-msgid "Cannot move document part."
-msgstr "No puedo mover parte del documento."
+msgid "Configure the default region for person creation."
+msgstr "Configure la región por defecto para la creación de personas."
 
-msgid "Moving document part"
-msgstr "Muevo parte del documento"
+msgid "Default country"
+msgstr "País por defecto"
 
-msgid "Deleting document part"
-msgstr "Elimino parte del documento"
+msgid "Configure the default country for person creation."
+msgstr "Configure el país por defecto para la creación de pacientes."
 
-#, python-format
-msgid ""
-"Are you sure you want to delete the %s part #%s\n"
-"\n"
-"%sfrom the following document\n"
-"\n"
-" %s (%s)\n"
-"%s\n"
-"Really delete ?\n"
-"\n"
-"(this action cannot be reversed)"
+msgid "Person ..."
+msgstr "Persona ..."
+
+msgid "Multiple new episodes"
+msgstr "Múltiples episodios nuevos"
+
+msgid "Configure opening multiple new episodes on a patient at once."
 msgstr ""
-"¿Está seguro/a que desea eliminar esta %s parte #%s\n"
-"\n"
-"%s desde el siguiente documento?\n"
-"\n"
-" %s (%s)\n"
-"%s\n"
-"¿Realmente elimino?\n"
-"\n"
-"(esta acción es irreversible)"
+"Configura la apertura simultánea de episodios múltiples para un paciente."
 
-#, python-format
-msgid ""
-"Cannot %(l10n_action)s document part - %(l10n_action)s command not found.\n"
-"\n"
-"Either of gm-%(action)s_doc or gm-%(action)s_doc.bat\n"
-"must be in the execution path. The command will\n"
-"be passed the filename to %(l10n_action)s."
+msgid "Auto-open editors"
+msgstr "Autoapertura de editores"
+
+msgid "Configure auto-opening editors for recent problems."
+msgstr "Configura editores de autoapertura para problemas recientes."
+
+msgid "SOAP fields"
+msgstr "Campos SOAP"
+
+msgid "Configure SOAP editor - individual SOAP fields vs text editor like"
 msgstr ""
-"No puedo %(l10n_action)s parte del documento - %(l10n_action)s comando no "
-"encontrado.\n"
-"\n"
-"Ya sea gm-%(action)s_doc o gm-%(action)s_doc.bat\n"
-"deben estar en la ruta de ejecución. El comando será\n"
-"pasado al nombre de archivo %(l10n_action)s."
+"Configuro editor SOAP - campos SOAP individuales vs tipo editor de texto"
 
-#, python-format
-msgid "Processing document part: %s"
-msgstr "Procesando parte de documento: %s"
+msgid "Progress notes handling ..."
+msgstr "Manejo de notas de progreso ..."
 
-#, python-format
-msgid ""
-"Cannot %(l10n_action)s document part - %(l10n_action)s command failed.\n"
-"\n"
-"You may need to check and fix either of\n"
-" gm-%(action)s_doc (Unix/Mac) or\n"
-" gm-%(action)s_doc.bat (Windows)\n"
-"\n"
-"The command is passed the filename to %(l10n_action)s."
-msgstr ""
-"No puedo %(l10n_action)s parte del documento - %(l10n_action)s comando "
-"falló.\n"
-"\n"
-"Podría necesitar verificar y arreglar cualquiera de\n"
-" gm-%(action)s_doc (Unix/Mac) or\n"
-" gm-%(action)s_doc.bat (Windows)\n"
-"\n"
-"El comando es pasado al nombre de archivo %(l10n_action)s."
-
-#, python-format
-msgid "document part handed over to email program: %s"
-msgstr "parte de documento enviado al programa de correo-e: %s"
-
-msgid "print"
-msgstr "imprimir"
+msgid "User interface ..."
+msgstr "Interfaz de usuario ..."
 
-msgid "fax"
-msgstr "fax"
+msgid "MI/stroke risk calc cmd"
+msgstr "Herramienta de cálculo de riesgo de infarto al miocardo / AVE"
 
-msgid "mail"
-msgstr "correo"
+msgid "Set the command to start the CV risk calculator."
+msgstr "Setea la llamada al programa de ćalculo de riesgo"
 
-msgid "Save document part to directory ..."
-msgstr "Guardo parte de documento al directorio ..."
+msgid "Set the time to wait for OpenOffice to settle after startup."
+msgstr ""
+"Setea el tiempo de espera de OpenOffice/LibreOffice después de iniciado."
 
-#, python-format
-msgid "Successfully exported document part as [%s]."
-msgstr "Parte de documento exitosamente exportado como [%s]."
+msgid "Measurements URL"
+msgstr "URL de métodos de medición"
 
-#, python-format
-msgid ""
-"Cannot %(l10n_action)s document - %(l10n_action)s command not found.\n"
-"\n"
-"Either of gm-%(action)s_doc or gm-%(action)s_doc.bat\n"
-"must be in the execution path. The command will\n"
-"be passed a list of filenames to %(l10n_action)s."
-msgstr ""
-"No puedo %(l10n_action)s documento - %(l10n_action)s comando no encontrado.\n"
-"\n"
-"Cualquiera de gm-%(action)s_doc o gm-%(action)s_doc.bat\n"
-"debe estar en la ruta de ejecución. El comando será\n"
-"pasado a una lista de nombres de archivo a %(l10n_action)s."
+msgid "URL for measurements encyclopedia."
+msgstr "URL para la enciclopedia de métodos de medición."
 
-#, python-format
-msgid "Processing document: %s"
-msgstr "Procesando documento: %s"
+msgid "Drug data source"
+msgstr "Fuente de datos de medicamentos."
 
-#, python-format
-msgid ""
-"Cannot %(l10n_action)s document - %(l10n_action)s command failed.\n"
-"\n"
-"You may need to check and fix either of\n"
-" gm-%(action)s_doc (Unix/Mac) or\n"
-" gm-%(action)s_doc.bat (Windows)\n"
-"\n"
-"The command is passed a list of filenames to %(l10n_action)s."
-msgstr ""
-"No puedo %(l10n_action)s documento - %(l10n_action)s comando falló.\n"
-"\n"
-"Podría necesitar revisar y arreglar cualquiera de\n"
-" gm-%(action)s_doc (Unix/Mac) or\n"
-" gm-%(action)s_doc.bat (Windows)\n"
-"\n"
-"El comando será pasado a una lista de nombres de archivos a %(l10n_action)s."
+msgid "Select the drug data source."
+msgstr "Seleccione la fuente de datos de medicamentos."
 
-msgid "Really add the displayed clipboard item into the document ?"
-msgstr "¿Realmente agrego el ítem del portapapeles desplegado al documento?"
+msgid "ADR URL"
+msgstr "URL para reacciones alérgicas adversas"
 
-msgid "Document part from clipboard"
-msgstr "Parte de documento del portapapeles"
+msgid "URL for reporting Adverse Drug Reactions."
+msgstr "URL para informar de Reacciones Adversas a Medicamentos."
 
-msgid ""
-"Cannot access external document - access command not found.\n"
-"\n"
-"Either of gm_access_external_doc.sh or *.bat must be\n"
-"in the execution path. The command will be passed the\n"
-"document type and the reference URL for processing."
-msgstr ""
-"No puedo accesar documento externo - no se encontró comando de acceso.\n"
-"\n"
-"gm_access_external_doc.sh o *.bat debe estar en la ruta\n"
-"de ejecución. Al documento le será traspasado el tipo de\n"
-"documento y el URL de referencia para procesamiento."
+msgid "vaccADR URL"
+msgstr "URL para reacciones alérgicas adversas por vacunación"
 
-msgid "Accessing external document"
-msgstr "Accediendo a documento externo"
+msgid "URL for reporting Adverse Drug Reactions to *vaccines*."
+msgstr "URL para informar de Reacciones Adversas a *vacunas*."
 
-msgid ""
-"Cannot access external document - access command failed.\n"
-"\n"
-"You may need to check and fix either of\n"
-" gm_access_external_doc.sh (Unix/Mac) or\n"
-" gm_access_external_doc.bat (Windows)\n"
-"\n"
-"The command is passed the document type and the\n"
-"external reference URL on the command line."
-msgstr ""
-"No puedo accesar el documento externo - comando de acceso falló.\n"
-"\n"
-"Necesita revisar y verificar uno de\n"
-" gm_access_external_doc.sh (Unix/Mac) o\n"
-" gm_access_external_doc.bat (Windows)\n"
-"\n"
-"Al comando le será traspasado el tipo de dcumento y el\n"
-"URL de la referencia externa en la linea de comando."
+msgid "Vacc plans URL"
+msgstr "URL Procedimiento de vacunación"
 
-msgid "Save document into directory ..."
-msgstr "Guardar documento en el directorio ..."
+msgid "URL for vaccination plans."
+msgstr "URL para procedimientos de vacunación."
 
-#, python-format
-msgid "Successfully exported %s parts into the directory [%s]."
-msgstr "Se han exportado con éxito %s partes en el directorio [%s]."
+msgid "Visual SOAP editor"
+msgstr "Editor visual SOAP"
 
-msgid "Are you sure you want to delete the document ?"
-msgstr "¿Está seguro de que quiere borrar el documento?"
+msgid "Set the command for calling the visual progress note editor."
+msgstr "Setear el comando para llamar el editor visual de notas de progreso."
 
-msgid "Deleting document"
-msgstr "Borrando documento"
+msgid "External tools ..."
+msgstr "Herramientas externas ..."
 
-#, python-format
-msgid "You are logged in as %s%s.%s (%s). DB account <%s>."
-msgstr "Usted está conectado/a como %s%s.%s (%s). Cuenta de BD <%s>."
+msgid "Invoice template (no VAT)"
+msgstr "Plantilla de factura (sin IVA)"
 
-msgid "&Go to plugin ..."
-msgstr "&Vaya al módulo ..."
+msgid "Select the template for printing an invoice without VAT."
+msgstr "Selecciono la plantilla para imprimir una factura sin IVA."
 
-msgid "Check for updates"
-msgstr "Comprobar actualizaciones"
+msgid "Invoice template (with VAT)"
+msgstr "Plantilla de factura (con IVA)"
 
-msgid "Check for new releases of the GNUmed client."
-msgstr "Buscar nuevas versiones del cliente GNUmed."
+msgid "Select the template for printing an invoice with VAT."
+msgstr "Selecciono la plantilla para imprimir una factura con IVA."
 
-msgid "Announce downtime"
-msgstr "Anuncia baja"
+msgid "Catalogs URL"
+msgstr "URL de catálogos"
 
-msgid "Announce database maintenance downtime to all connected clients."
-msgstr ""
-"Anuncia baja de base de datos por mantención a todos los clientes conectados."
+msgid "URL for billing catalogs (schedules of fees)."
+msgstr "URL para catálogos de cuentas (esquema de comsiiones)."
 
-msgid "All options"
-msgstr "Todas las opciones"
+msgid "Medication list template"
+msgstr "Plantilla de Lista de medicamentos."
 
-msgid "List all options as configured in the database."
-msgstr "Listo todas las opciones como están configuradas en la base de datos."
+msgid "Select the template for printing a medication list."
+msgstr "Seleccione la plantilla para imprimir una lista de medicamentos."
 
-msgid "Configure the database language"
-msgstr "Configurar el idioma de la base de datos"
+msgid "Prescription mode"
+msgstr "Modo de prescripción"
 
-msgid "Welcome message"
-msgstr "Mensaje de bienvenida"
+msgid "Select the default mode for creating a prescription."
+msgstr "Selecciono el modo por defecto para crear una prescripción."
 
-msgid "Configure the database welcome message (all users)."
-msgstr ""
-"Configurar el mensaje de bienvenida de la base de datos (para todos los "
-"usuarios)."
+msgid "Prescription template"
+msgstr "Plantilla para prescripción"
 
-msgid "Database ..."
-msgstr "Base de datos ..."
+msgid "Select the template for printing a prescription."
+msgstr "Selecciono la plantilla para imprimir una prescripción"
 
-msgid "Export chunk size"
-msgstr "Exportación de tamaño de bloques"
+msgid "Default Gnuplot template"
+msgstr "Plantilla de Gnuplot por defecto"
 
-msgid "Configure the chunk size used when exporting BLOBs from the database."
+msgid "Select the default template for plotting test results."
 msgstr ""
-"Configura el tamaño de bloques para la exportación de datos binarios desde "
-"la base de datos."
+"Selecciono la plantilla por defecto para imprimir los resultados del examen."
 
-msgid "Email address"
-msgstr "Dirección de correo electrónico"
+msgid "Fallback provider"
+msgstr "Proveedor de respaldo"
 
-msgid "The email address of the user for sending bug reports, etc."
+msgid ""
+"Select the doctor to fall back to for patients without a primary provider."
 msgstr ""
-"Dirección de correo del usuario para el envío de informes de errores, etc."
+"Selecciono el médico de respaldo para pacientes sin proveedor primario."
 
-msgid "Client parameters ..."
-msgstr "Parámetros del cliente ..."
+msgid "Edit before patient change"
+msgstr "Editar antes de cambiar de paciente"
 
-msgid "Medication measurements"
-msgstr "Mediciones de medicaciones"
+msgid "Edit encounter details before change of patient."
+msgstr "Editar detalles del contacto antes de cambiar de paciente."
 
-msgid "Select the measurements panel to show in the medications plugin."
-msgstr ""
-"Selecciono el panel de mediciones para mostrar el tema de medicaciones."
+msgid "Minimum duration"
+msgstr "Duración mínima"
 
-msgid "Review dialog"
-msgstr "Diálogo de revisión"
+msgid "Minimum duration of an encounter."
+msgstr "Duración mínima de un contacto."
 
-msgid "Configure review dialog after document display."
-msgstr ""
-"Configuración del diálogo de revisión después del despliegue de un documento."
+msgid "Maximum duration"
+msgstr "Duración máxima"
 
-msgid "UUID display"
-msgstr "Indicador de identificación de documento"
+msgid "Maximum duration of an encounter."
+msgstr "Duración máxima de un contacto."
 
-msgid "Configure unique ID dialog on document import."
+msgid "Minimum empty age"
+msgstr "Tiempo mínimo vacío"
+
+msgid "Minimum age of an empty encounter before considering for deletion."
 msgstr ""
-"Configuración del diálogo de la identificación única en la importación de "
-"documento."
+"Tiempo mínimo de archivo de un contacto vacío antes de considerar borrarlo."
 
-msgid "Empty documents"
-msgstr "Documentos vacíos"
+msgid "Default type"
+msgstr "Tipo estándar"
 
-msgid "Whether to allow saving documents without parts."
-msgstr "Acaso permite guardar documentos vacíos."
-
-msgid "Generate UUID"
-msgstr "Generar identificador de documento"
-
-msgid "Whether to generate UUIDs for new documents."
-msgstr "Acaso generar identificadores para documentos nuevos."
-
-msgid "Document handling ..."
-msgstr "Manejo de documentos ..."
-
-msgid "Auto-check"
-msgstr "Comprobación automática"
-
-msgid "Whether to auto-check for updates at startup."
-msgstr ""
-"Acaso verifico automáticamente la existencia de actualizaciones al comenzar."
-
-msgid "Check scope"
-msgstr "Verifica alcance"
-
-msgid "When checking for updates, consider latest branch, too ?"
-msgstr ""
-"Al verificar existencia de actualizaciones, ¿considera cambios mayores de "
-"versión?"
-
-msgid "The URL to retrieve version information from."
-msgstr "El URL desde el cual descargar información de la versión."
-
-msgid "Update handling ..."
-msgstr "Comprobación de actualización ..."
-
-msgid "Birthday reminder"
-msgstr "Recordatorio de cumpleaños"
-
-msgid "Configure birthday reminder proximity interval."
-msgstr "Configura la ventana de tiempo para el recordatorio de cumpleaños."
-
-msgid "Immediate source activation"
-msgstr "Activación inmediata de fuente"
-
-msgid "Configure immediate activation of single external person."
-msgstr "Configura activación inmediata de personal individual externo."
-
-msgid "Initial plugin"
-msgstr "Módulo inicial"
-
-msgid "Configure which plugin to show right after person activation."
-msgstr "Configura cuál módulo mostrar después de la activación de un paciente."
-
-msgid "Default region"
-msgstr "Región por defecto"
-
-msgid "Configure the default region for person creation."
-msgstr "Configure la región por defecto para la creación de personas."
-
-msgid "Default country"
-msgstr "País por defecto"
-
-msgid "Configure the default country for person creation."
-msgstr "Configure el país por defecto para la creación de pacientes."
-
-msgid "Person ..."
-msgstr "Persona ..."
-
-msgid "Multiple new episodes"
-msgstr "Múltiples episodios nuevos"
-
-msgid "Configure opening multiple new episodes on a patient at once."
-msgstr ""
-"Configura la apertura simultánea de episodios múltiples para un paciente."
-
-msgid "Auto-open editors"
-msgstr "Autoapertura de editores"
-
-msgid "Configure auto-opening editors for recent problems."
-msgstr "Configura editores de autoapertura para problemas recientes."
-
-msgid "Progress notes handling ..."
-msgstr "Manejo de notas de progreso ..."
-
-msgid "User interface ..."
-msgstr "Interfaz de usuario ..."
-
-msgid "MI/stroke risk calc cmd"
-msgstr "Herramienta de cálculo de riesgo de infarto al miocardo / AVE"
-
-msgid "Set the command to start the CV risk calculator."
-msgstr "Setea la llamada al programa de ćalculo de riesgo"
-
-msgid "Set the time to wait for OpenOffice to settle after startup."
-msgstr ""
-"Setea el tiempo de espera de OpenOffice/LibreOffice después de iniciado."
-
-msgid "Measurements URL"
-msgstr "URL de métodos de medición"
-
-msgid "URL for measurements encyclopedia."
-msgstr "URL para la enciclopedia de métodos de medición."
-
-msgid "Select the drug data source."
-msgstr "Seleccione la fuente de datos de medicamentos."
-
-msgid "ADR URL"
-msgstr "URL para reacciones alérgicas adversas"
-
-msgid "URL for reporting Adverse Drug Reactions."
-msgstr "URL para informar de Reacciones Adversas a Medicamentos."
-
-msgid "vaccADR URL"
-msgstr "URL para reacciones alérgicas adversas por vacunación"
-
-msgid "URL for reporting Adverse Drug Reactions to *vaccines*."
-msgstr "URL para informar de Reacciones Adversas a *vacunas*."
-
-msgid "Vacc plans URL"
-msgstr "URL Procedimiento de vacunación"
-
-msgid "URL for vaccination plans."
-msgstr "URL para procedimientos de vacunación."
-
-msgid "Visual SOAP editor"
-msgstr "Editor visual SOAP"
-
-msgid "Set the command for calling the visual progress note editor."
-msgstr "Setear el comando para llamar el editor visual de notas de progreso."
-
-msgid "External tools ..."
-msgstr "Herramientas externas ..."
-
-msgid "Invoice template (no VAT)"
-msgstr "Plantilla de factura (sin IVA)"
-
-msgid "Select the template for printing an invoice without VAT."
-msgstr "Selecciono la plantilla para imprimir una factura sin IVA."
-
-msgid "Invoice template (with VAT)"
-msgstr "Plantilla de factura (con IVA)"
-
-msgid "Select the template for printing an invoice with VAT."
-msgstr "Selecciono la plantilla para imprimir una factura con IVA."
-
-msgid "Catalogs URL"
-msgstr "URL de catálogos"
-
-msgid "URL for billing catalogs (schedules of fees)."
-msgstr "URL para catálogos de cuentas (esquema de comsiiones)."
-
-msgid "Medication list template"
-msgstr "Plantilla de Lista de medicamentos."
-
-msgid "Select the template for printing a medication list."
-msgstr "Seleccione la plantilla para imprimir una lista de medicamentos."
-
-msgid "Prescription mode"
-msgstr "Modo de prescripción"
-
-msgid "Select the default mode for creating a prescription."
-msgstr "Selecciono el modo por defecto para crear una prescripción."
-
-msgid "Prescription template"
-msgstr "Plantilla para prescripción"
-
-msgid "Select the template for printing a prescription."
-msgstr "Selecciono la plantilla para imprimir una prescripción"
-
-msgid "Default Gnuplot template"
-msgstr "Plantilla de Gnuplot por defecto"
-
-msgid "Select the default template for plotting test results."
-msgstr ""
-"Selecciono la plantilla por defecto para imprimir los resultados del examen."
-
-msgid "Fallback provider"
-msgstr "Proveedor de respaldo"
-
-msgid ""
-"Select the doctor to fall back to for patients without a primary provider."
-msgstr ""
-"Selecciono el médico de respaldo para pacientes sin proveedor primario."
-
-msgid "Edit before patient change"
-msgstr "Editar antes de cambiar de paciente"
-
-msgid "Edit encounter details before change of patient."
-msgstr "Editar detalles del contacto antes de cambiar de paciente."
-
-msgid "Minimum duration"
-msgstr "Duración mínima"
-
-msgid "Minimum duration of an encounter."
-msgstr "Duración mínima de un contacto."
-
-msgid "Maximum duration"
-msgstr "Duración máxima"
-
-msgid "Maximum duration of an encounter."
-msgstr "Duración máxima de un contacto."
-
-msgid "Minimum empty age"
-msgstr "Tiempo mínimo vacío"
-
-msgid "Minimum age of an empty encounter before considering for deletion."
-msgstr ""
-"Tiempo mínimo de archivo de un contacto vacío antes de considerar borrarlo."
-
-msgid "Default type"
-msgstr "Tipo estándar"
-
-msgid "Default type for new encounters."
-msgstr "Tipo estándar para nuevos contactos."
+msgid "Default type for new encounters."
+msgstr "Tipo estándar para nuevos contactos."
 
 msgid "Encounter ..."
 msgstr "Contacto ..."
@@ -16417,17 +16710,23 @@ msgstr "Ayudas suprimidas"
 msgid "Manage dynamic hints suppressed in this patient."
 msgstr "Administro ayudas dinámicas suprimidas en este paciente."
 
+msgid "Substance abuse"
+msgstr "Abuso de sustancia"
+
+msgid "Manage substance abuse documentation of this patient."
+msgstr "Administro documentación de abuso de sustancias de este paciente."
+
 msgid "&Add / Edit ..."
 msgstr "&Agrega / Edita ..."
 
 msgid "Search this EMR"
-msgstr "Revise este RME"
+msgstr "Reviso este RME"
 
 msgid "Search for data in the EMR of the active patient"
-msgstr "Busque datos en el RME del paciente activo"
+msgstr "Busco datos en el RME del paciente activo"
 
 msgid "Start new encounter"
-msgstr "Comienza nuev contacto"
+msgstr "Comienza nuevo contacto"
 
 msgid "Start a new encounter for the active patient right now."
 msgstr "Comienza un nuevo contacto para el paciente activo ahora mismo."
@@ -16438,34 +16737,63 @@ msgstr "Estadísticas"
 msgid "Show a high-level statistic summary of the EMR."
 msgstr "Muestra un resumen estadístico a grandes rasgos del RME."
 
-msgid "Text document"
-msgstr "Documento de texto"
+msgid "Journal (encounters) to file"
+msgstr "Diario (encuentros) a archivar"
 
-msgid "Export the EMR of the active patient into a text file"
-msgstr "Exporta el RME del paciente activo a una archivo de texto"
+msgid ""
+"Save the EMR of the active patient as a chronological journal into a text "
+"file"
+msgstr ""
+"Guardo el RME del paciente activ como un diario cronológico a un archivo de "
+"texto"
 
-msgid "Journal"
-msgstr "Diario"
+msgid "Journal (encounters) to export area"
+msgstr "Diario (encuentros) al área de exportación"
 
 msgid ""
-"Export the EMR of the active patient as a chronological journal into a text "
-"file"
+"Copy EMR of the active patient as a chronological journal into export area"
 msgstr ""
-"Exporta el RME del paciente activo como relación cronológica a un archivo de "
-"texto."
+"Copio RME del paciente activo como un diario cronológico al área de "
+"exportación"
+
+msgid "Journal (mod time) to file"
+msgstr "Diario (tiempo mod) a archivar"
+
+msgid ""
+"Save the EMR of the active patient as journal by last modification time into "
+"a text file"
+msgstr ""
+"Guardo el RME de paciente activo como diario por la última hora de "
+"modificación en un archivo de texto"
+
+msgid "Journal (mod time) to export area"
+msgstr "Diario (tiempo mod) al área de exportación"
+
+msgid ""
+"Copy EMR of the active patient as journal by last modification time into "
+"export area"
+msgstr ""
+"Copio el RME del paciente activo como diario por la última hora de "
+"modificación al área de exportación"
+
+msgid "Text document"
+msgstr "Documento de texto"
+
+msgid "Save the EMR of the active patient into a text file"
+msgstr "Guardo el RME del paciente activo a un archivo de texto"
 
 msgid "MEDISTAR import format"
 msgstr "Formato de importación MEDISTAR"
 
 msgid ""
-"GNUmed -> MEDISTAR. Export progress notes of active patient's active "
-"encounter into a text file."
+"GNUmed -> MEDISTAR. Save progress notes of active patient's active encounter "
+"into a text file."
 msgstr ""
-"GNUmed -> MEDISTAR. Exporte notas de progreso de los contactos activos del "
+"GNUmed -> MEDISTAR. Guardo notas de progreso de los encuentros activos del "
 "paciente activo a un archivo de texto."
 
 msgid "Export as ..."
-msgstr "Exporta como ..."
+msgstr "Exporto como ..."
 
 msgid "&EMR"
 msgstr "&RME"
@@ -16492,10 +16820,10 @@ msgid "&Correspondence"
 msgstr "&Correspondencia"
 
 msgid "Search all EMRs"
-msgstr "Revise todos los RME"
+msgstr "Reviso todos los RME"
 
 msgid "Search for data across the EMRs of all patients"
-msgstr "Busque datos entre los RMEs de todos los pacientes"
+msgstr "Busco datos entre los RME de todos los pacientes"
 
 msgid "no viewer installed"
 msgstr "no hay visor instalado"
@@ -16631,22 +16959,43 @@ msgid "Save a screenshot of this GNUmed client."
 msgstr "Guarde una captura de pantalla de este cliente GNUmed."
 
 msgid "Show log file"
-msgstr "Muestre archivo de registro"
+msgstr "Muestro archivo de registro"
 
-msgid "Show the log file in text viewer."
-msgstr "Muestre el archivo de registro en el visor de texto."
+msgid "Show log file in text viewer."
+msgstr "Muestro archivo de log en un visor de texto."
 
 msgid "Backup log file"
 msgstr "Respaldo de archivo de registros"
 
-msgid "Backup the content of the log to another file."
-msgstr "respalde el contenido de los registros en otro archivo."
+msgid "Backup content of the log to another file."
+msgstr "Respaldo contenido del log en otro archivo."
 
 msgid "Email log file"
-msgstr "Envíe el archivo de registros por correo electrónico"
+msgstr "Envío el archivo de registros por correo electrónico"
+
+msgid "Send log file to the authors for help."
+msgstr "Envío archivo de log a los autores para pedir ayuda."
+
+msgid "Browse tmp dir"
+msgstr "Navego dir tmp"
+
+#, python-format
+msgid "Browse temporary directory [%s]."
+msgstr "Navego directorio temporal [%s]."
+
+msgid "Browse work dir"
+msgstr "Navego directorio de trabjo"
+
+#, python-format
+msgid "Browse user working directory [%s]."
+msgstr "Navego directorio de trabajo del usuario [%s]."
 
-msgid "Send the log file to the authors for help."
-msgstr "Envía el archivo de registros al autor para ayuda."
+msgid "Browse internal work dir"
+msgstr "Navego directorio de trabajo interno"
+
+#, python-format
+msgid "Browse internal working directory [%s]."
+msgstr "navego directorio de trabajo interno [%s]."
 
 msgid "Bug tracker"
 msgstr "Rastreador de errores"
@@ -16678,10 +17027,10 @@ msgstr ""
 "ESTÁ HACIENDO!"
 
 msgid "Test error handling"
-msgstr "Examinar manejo de errores"
+msgstr "Examino manejo de errores"
 
 msgid "Throw an exception to test error handling."
-msgstr "Generar un error para examinar el manejo de errores."
+msgstr "Genero un error para examinar el manejo de errores."
 
 msgid "Test access violation exception"
 msgstr "Examino excepción de violación de acceso."
@@ -16696,13 +17045,13 @@ msgid "Simulate a failing access check."
 msgstr "Simulo una verificación de acceso fallida."
 
 msgid "Invoke inspector"
-msgstr "Llamar inspector"
+msgstr "invoco inspector"
 
 msgid "Invoke the widget hierarchy inspector (needs wxPython 2.8)."
-msgstr "Invocar al inspector de jerarquía widget (necesita wxPython 2.8)."
+msgstr "Invoco al inspector de jerarquía widget (necesita wxPython 2.8)."
 
 msgid "Test fault handler"
-msgstr "Verifico manejo fallida"
+msgstr "Verifico administrador de fallas"
 
 msgid "Simulate a catastrophic fault (SIGSEGV)."
 msgstr "Simulo una falla catastrófica (SIGSEGV)."
@@ -16723,7 +17072,7 @@ msgid "About contributors"
 msgstr "Acerca de los contribuyentes"
 
 msgid "Show GNUmed contributors"
-msgstr "Muestra contribuyentes de GNUmed"
+msgstr "Muestro contribuyentes de GNUmed"
 
 #, python-format
 msgid "Raise plugin [%s]."
@@ -16760,7 +17109,7 @@ msgid "Close this GNUmed client immediately."
 msgstr "Cierra este cliente de GNUmed inmediatamente."
 
 msgid "Finish work"
-msgstr "Seguir trabajando"
+msgstr "Termine trabajo"
 
 msgid ""
 "Finish and save current work first, then manually close this GNUmed client."
@@ -17125,6 +17474,25 @@ msgstr ""
 "No, solo abra por sí mismo un editor para un problema nuevo, no asociado."
 
 msgid ""
+"When editing progress notes, do you want GNUmed to\n"
+"show individual fields for each of the SOAP categories\n"
+"or do you want to use a text-editor like field for\n"
+"all SOAP categories which can then be set per line\n"
+"of input ?"
+msgstr ""
+"Al editar notas de progreso, ¿desea que GNUmed\n"
+"muestre campos individuales para cada una de las categorías SOAP\n"
+"o desea usar un campo tipo editor de texto para\n"
+"todas las categorías SOAP, que pueden ser pueden ser fijadas por\n"
+"de ingreso?"
+
+msgid "Yes, show a dedicated field per SOAP category."
+msgstr "Sí, muestro un campo dedicado por categoría de SOAP."
+
+msgid "No, use one field for all SOAP categories."
+msgstr "No, uso un campo para todas las categorías SOAP."
+
+msgid ""
 "When a patient is activated GNUmed can\n"
 "be told to switch to a specific plugin.\n"
 "\n"
@@ -17373,758 +17741,1212 @@ msgstr ""
 "cliente necesitará de acceso en linea al verificar actualizaciones."
 
 msgid ""
-"Do you want to allow saving of new documents without\n"
-"any parts or do you want GNUmed to enforce that they\n"
-"contain at least one part before they can be saved ?\n"
+"Do you want to allow saving of new documents without\n"
+"any parts or do you want GNUmed to enforce that they\n"
+"contain at least one part before they can be saved ?\n"
+"\n"
+"Part-less documents can be useful if you want to build\n"
+"up an index of, say, archived documents but do not\n"
+"want to scan in all the pages contained therein."
+msgstr ""
+"¿Desea permitir guardar un nuevo documento vacío\n"
+"o quiere que GNUmed fuerce el contenido a una parte,\n"
+"a lo menos, antes de guardarlo?\n"
+"\n"
+"Documentos vacíos pueden ser útiles si desea construir\n"
+"un índice de, por ejemplo, documentos archivados, pero\n"
+"en que no desea inspeccionar todas las páginas contenidas."
+
+msgid "Yes, allow saving documents without any parts."
+msgstr "Sí, permita guardar documentos vacíos."
+
+msgid "No, require documents to have at least one part."
+msgstr "No, requiere que los documentos contengan, al menos, una parte."
+
+msgid ""
+"After importing a new document do you\n"
+"want GNUmed to display the unique ID\n"
+"it auto-generated for that document ?\n"
+"\n"
+"This can be useful if you want to label the\n"
+"originals with that ID for later identification."
+msgstr ""
+"Después de importar un nuevo documento,\n"
+"¿desea que GNUmed muestre la identificación\n"
+"única que auto generó para él?\n"
+"\n"
+"Esto puede ser útil si desea anotar los originales\n"
+"con esa identificación para reconocimiento."
+
+msgid "Yes, display the ID generated for the new document after importing."
+msgstr ""
+"Sí, muestre la identificación generada para el nuevo documento, después de "
+"importarlo."
+
+msgid ""
+"No, do not display the ID generated for the new document after importing."
+msgstr ""
+"No, no muestre la identificación generada para el nuevo documento después de "
+"importarlo."
+
+msgid ""
+"After importing a new document do you\n"
+"want GNUmed to generate a unique ID\n"
+"(UUID) for that document ?\n"
+"\n"
+"This can be useful if you want to label the\n"
+"originals with that ID for later identification."
+msgstr ""
+"Después de importar un nuevo documento,\n"
+"¿desea que GNUmed genere una identificación\n"
+"única para ese documento?\n"
+"\n"
+"Esto puede ser útil si desea anotar los originales\n"
+"con esa identificación para reconocimiento."
+
+msgid "Yes, generate a UUID for the new document after importing."
+msgstr ""
+"Sí, genere una idenitificación única para el nuevo documento después de "
+"importar."
+
+msgid "No, do not generate a UUID for the new document after importing."
+msgstr ""
+"No, no genere una identificación única para el nuevo documento después de "
+"importar."
+
+msgid ""
+"GNUmed can show the document review dialog after\n"
+"calling the appropriate viewer for that document.\n"
+"\n"
+"Select the conditions under which you want\n"
+"GNUmed to do so:\n"
+"\n"
+" 0: never display the review dialog\n"
+" 1: always display the dialog\n"
+" 2: only if there is no previous review by me\n"
+" 3: only if there is no previous review at all\n"
+" 4: only if there is no review by the responsible reviewer\n"
+"\n"
+"Note that if a viewer is configured to not block\n"
+"GNUmed during document display the review dialog\n"
+"will actually appear in parallel to the viewer."
+msgstr ""
+"GNUmed puede mostrar el diálogo de revisión del documento\n"
+"después de llamar el visor adecuado para ese documento.\n"
+"\n"
+"Seleccione las condiciones bajo las cuales usted desea que\n"
+"GNUmed lo haga:\n"
+"\n"
+" 0: nunca muestra el diálogo de revisión\n"
+" 1: siempre muestra el diálogo\n"
+" 2: solo si no lo he revisado previamente\n"
+" 3: solo si no ha habido revisión previa\n"
+" 4: solo si no ha habido revisión de parte del revisor responsable\n"
+"\n"
+"Note que si un visor es configurado para no bloquear\n"
+"GNUmed durante el despliegue del documento, el diálogo\n"
+"de revisión aparecerá en paralelo al visor."
+
+msgid "Addresses (likely slow)"
+msgstr "Direcciones (lento)"
+
+msgid "Branded drugs (as marketed)"
+msgstr "Medicamentos de marca (productos)"
+
+msgid "Dynamic automatic hints"
+msgstr "Ayudas automáticas dinámicas"
+
+msgid "Codes and their respective terms"
+msgstr "Códigos y sus respectivos nombres"
+
+msgid "Communication channel types"
+msgstr "Tipos de canales de comunicación"
+
+msgid "Components of branded drugs (substances in brands)"
+msgstr "Componentes de medicamentos de marca (componentes de marca)"
+
+msgid "Diagnostic organizations (path labs, ...)"
+msgstr "Organizaciones de diagnóstico (empresas de exámenes, ...)"
+
+msgid "Document templates (forms, letters, plots, ...)"
+msgstr "Plantillas de documentos (cartas, formularios, tramas, ...)"
+
+msgid "Document types"
+msgstr "Tipos de documento"
+
+msgid "Encounter types"
+msgstr "Tipos de contacto"
+
+msgid "Keyword based text expansion macros"
+msgstr "Palabra clave basada en macros de expansión de texto"
+
+msgid "Meta test/measurement types"
+msgstr "Meta mediciones/tipos de mediciones"
+
+msgid "Organizations with their units, addresses, and comm channels"
+msgstr "Organizaciones con sus unidades, direcciones y canales comunes"
+
+msgid "Patient tags"
+msgstr "Etiquetas de pacientes"
+
+msgid "Provinces (counties, territories, states, regions, ...)"
+msgstr "Estados (provincias, territorios, regiones, ...)"
+
+msgid "String translations in the database"
+msgstr "Traducciones de cadenas en la base de datos"
+
+msgid "Test/measurement types"
+msgstr "Tipos de exámenes/mediciones"
+
+msgid "Vaccination targets (conditions known to be preventable by vaccination)"
+msgstr ""
+"Indicaciones de vacunación (condiciones conocidas que pueden ser evitadas "
+"por la vacunación)"
+
+msgid "Vaccines"
+msgstr "Vacunas"
+
+msgid "Workplace profiles (which plugins to load)"
+msgstr "Perfil del lugar de trabajo (cuál módulo cargar)"
+
+msgid "Consumable substances"
+msgstr "Principio activo"
+
+msgid "Billable items"
+msgstr "ïtems cargables"
+
+msgid "Reference data sources"
+msgstr "Fuentes de datos de referencia"
+
+msgid "Test/measurement panels/profiles"
+msgstr "Examen/paneles de mediciones/perfiles"
+
+msgid "Master data management"
+msgstr "Manejo de datos maestros"
+
+msgid "Select the list you want to manage:"
+msgstr "Seleccione la lista que desea manejar:"
+
+msgid "No DICOM viewer found."
+msgstr "No se encontró visor de DICOM."
+
+msgid "risk assessment"
+msgstr "evaluación de riesgo"
+
+msgid "cardiovascular risk assessment"
+msgstr "evaluación de riesgo cardiovascular"
+
+#, python-format
+msgid "[arriba] XML result not found in [%s]"
+msgstr "[arriba] resultado XML no encontrado en [%s]"
+
+msgid "ACS risk assessment calculator not configured."
+msgstr "calculadora de evaluación de riesgo AMI no está configurada."
+
+#, python-format
+msgid "Cannot run [%s] !"
+msgstr "¡No puedo correr [%s]!"
+
+#, python-format
+msgid "There was a problem accessing the [arriba] result in [%s] !"
+msgstr "¡Hubo un problema accediendo el resultado [arriba] en [%s]!"
+
+msgid "[-9999]: <access violation test error>"
+msgstr "[-9999]: <error de test de violación de acceso>"
+
+msgid ""
+"This is a deliberate AccessDenied exception thrown to test the handling of "
+"access violations by means of a decorator."
+msgstr ""
+"Esta es una excepción intencional de denegación de acceso lanzada para "
+"verificar el manejo de violaciones de acceso por medio de un decorador."
+
+msgid "testing access check for non-existant <admin> role"
+msgstr "verificado acceso para rol no existente de <admin>"
+
+msgid ""
+"This is a deliberate AccessDenied exception. You should not see this message "
+"because the role is checked in a decorator."
+msgstr ""
+"Esta es una excepción intencional de denegación de acceso. Ud. no debiera "
+"ver este mensaje porque el rol está marcado en un decorador."
+
+msgid "pgAdmin III not found."
+msgstr "No se encontró pgAdmidn III."
+
+msgid "Error reloading hook script."
+msgstr "Error al recargar programa de enganche"
+
+msgid "Save current log as..."
+msgstr "Guardo registro actual como ..."
+
+msgid "log files"
+msgstr "archivos de registro"
+
+#, python-format
+msgid "Log file backed up as [%s]."
+msgstr "Archivo de registro respaldado como [%s]."
+
+msgid "Cannot start new encounter. No active patient."
+msgstr "No puedo comenzar nuevo contacto. No existe paciente activo."
+
+msgid "Cannot add health issue. No active patient."
+msgstr "No puedo agregar problema de salud. No existe paciente activo."
+
+msgid "Cannot add episode. No active patient."
+msgstr "No puedo agregar episodio. No existe paciente activo."
+
+msgid "Cannot add medication. No active patient."
+msgstr "No puedo agegar medicación. No existe paciente activo."
+
+msgid "Cannot add allergy. No active patient."
+msgstr "No puedo agregar alergia. No existe paciente activo."
+
+msgid "Cannot manage performed procedures. No active patient."
+msgstr "No puedo manejar procedimiento. No existe paciente activo."
+
+msgid "Cannot manage hospitalizations. No active patient."
+msgstr "No puedo manejar hospitalizaciones. No hay paciente activo."
+
+msgid "Cannot manage external care. No active patient."
+msgstr "No puedo manejar cuidado externo. No hay paciente activo."
+
+msgid "Cannot edit occupation. No active patient."
+msgstr "No puedo editar ocupación. No existe paciente activo."
+
+msgid "manage vaccinations"
+msgstr "administro vacunaciones"
+
+msgid "Cannot add vaccinations. No active patient."
+msgstr "No puedo agregar vacunaciones. No existe paciente activo."
+
+msgid "manage family history"
+msgstr "administro la historia familiar"
+
+msgid "Cannot manage family history. No active patient."
+msgstr "No puedo manejar historial familar. No existe paciente activo."
+
+msgid "Cannot manage measurements. No active patient."
+msgstr "No puedo manejar mediciones. No hay paciente activo."
+
+msgid "calculate EDC"
+msgstr "Calculo FCE"
+
+msgid "manage suppressed hints"
+msgstr "administro ayudas suprimidas"
+
+msgid "Cannot manage suppressed hints. No active patient."
+msgstr "No puedo administrar ayudas suprimidas. No hay paciente activo."
+
+msgid "Cannot manage smoking status. No active patient."
+msgstr "No puedo manejar el estado de fumadora/a. No hay paciente activo."
+
+msgid "Cannot show EMR summary. No active patient."
+msgstr "No puedo mostrar resumen de RME. No existe paciente activo."
+
+msgid "EMR Summary"
+msgstr "Resumen RME"
+
+msgid "Cannot export EMR journal by last modification time. No active patient."
+msgstr ""
+"No puedo exportar el diario de RME por la última hora de modificación. No "
+"hay paciente activo."
+
+msgid "journal_by_last_mod_time"
+msgstr "journal_by_last_mod_time"
+
+msgid "Save patient's EMR journal as..."
+msgstr "Guarde RME periódico del paciente como ..."
+
+msgid "Error exporting patient EMR as journal by last modification time."
+msgstr ""
+"Error exportando el RME del paciente como diario por la última hora de "
+"modificación."
+
+msgid "EMR journal export"
+msgstr "Exportación de RME"
+
+#, python-format
+msgid ""
+"Successfully exported EMR as journal by last modification time into file "
+"[%s]."
+msgstr ""
+"Exporté exitosamente el RME como diario por la última hora de modificación "
+"al archivo [%s]."
+
+msgid "Cannot export EMR journal. No active patient."
+msgstr "No puedo exportar RME pediódico. No existe paciente activo."
+
+msgid "emr-journal"
+msgstr "Diario del RME"
+
+msgid "Error exporting patient EMR as chronological journal."
+msgstr "Error al exportar RME del paciente como registro cronológico."
+
+#, python-format
+msgid "Successfully exported EMR as chronological journal into file [%s]."
+msgstr "RME exportado exitosamente como registro periódico al archivo [%s]."
+
+msgid "EMR journal by last modification time"
+msgstr "Diario de RME por la última hora de modificación."
+
+msgid "EMR journal by encounter"
+msgstr "Diario de RME por encuentro"
+
+msgid "Cannot add tag to person. No active patient."
+msgstr "No puedo agregar etiqueta a la persona. No existe paciente activo."
+
+#, python-format
+msgid "Edit the comment on tag [%s]"
+msgstr "Edite el comentario en la etiqueta [%s]"
+
+msgid "Editing tag comment"
+msgstr "Editando comentario en etiqueta"
+
+msgid "Cannot export patient as GDT. No active patient."
+msgstr "No puedo exportar paciente como GDT. No existe paciente activo."
+
+msgid "Exported demographics as GDT to clipboard."
+msgstr "Demografía exportada como GDT al portapapeles."
+
+msgid "Cannot export patient as VCARD. No active patient."
+msgstr "No puedo exportar paciente como vCard. No hay paciente activo."
+
+msgid "Exported demographics as VCARD to clipboard."
+msgstr "Demografía exportada como vCard al portapapeles."
+
+msgid "Cannot export patient as XML (LinuxMedNews). No active patient."
+msgstr ""
+"No puedo exportar paciente como XML (LinuxMedNews). No hay paciente activo."
+
+#, python-format
+msgid "Exported demographics to XML file [%s]."
+msgstr "Demografía exportada a archivo XML [%s]."
+
+#, python-format
+msgid "Exported demographics to GDT file [%s]."
+msgstr "Demografía exportada a archivo GDT [%s]."
+
+#, python-format
+msgid "Exported demographics to VCARD file [%s]."
+msgstr "Demografía exportada a vCard [%s]."
+
+msgid "Cannot add staff member. No active patient."
+msgstr "No puedo agregar miembro de personal. No existe paciente activo."
+
+msgid "Cannot delete patient. No patient active."
+msgstr "No puedo borrar al paciente. No existe paciente activo."
+
+msgid ""
+"You have to manually close this window to finalize shutting down GNUmed."
+msgstr "Debe cerrar manualmente esta ventana para finalizar cierre de GNUmed."
+
+msgid "This is so that you can inspect the console output at your leisure."
+msgstr "Esto garantiza que pueda inspeccionar la salida de consola con calma."
+
+msgid "no patient"
+msgstr "no existe paciente activo"
+
+#, python-format
+msgid "Saved screenshot to file [%s]."
+msgstr "Captura de pantalla guardada en archivo [%s]."
+
+msgid "Python version check"
+msgstr "Verificación de versión de python."
+
+#, python-format
+msgid ""
+"You are running Python version\n"
+" %s\n"
+"\n"
+"However, GNUmed wants Python 2.7 to\n"
+"facilitate migration to Python 3.\n"
+"\n"
+"Please upgrade your Python interpreter !"
+msgstr ""
+"Está corriendo versión Python\n"
+" %s\n"
+"\n"
+"Sin embargo, GNUmed desea que Python 2.7\n"
+"facilite la migración a Python 3.\n"
+"\n"
+"Por favor, ¡actualice su intérprete Python!"
+
+msgid "GNUmed client"
+msgstr "Cliente GNUmed"
+
+msgid "GNUmed stdout/stderr window"
+msgstr "Ventana de GNUmed para stdout/stderr"
+
+msgid "redirecting STDOUT/STDERR to this log window"
+msgstr "STDOUT/STDERR son redirigidas a esta ventana"
+
+#, python-format
+msgid ""
+"The database account [%s] cannot be used as a\n"
+"staff member login for GNUmed. There was an\n"
+"error retrieving staff details for it.\n"
+"\n"
+"Please ask your administrator for help.\n"
+msgstr ""
+"La cuenta de base de datos [%s] no puede ser usada como\n"
+"ingreso de miembro del personal para GNUmed. Hubo un\n"
+"error al recuperar detalles del personal.\n"
+"\n"
+"Por favor, pida ayuda a su administrador.\n"
+
+msgid "Checking access permissions"
+msgstr "Comprobando permisos de acceso"
+
+#, python-format
+msgid "Database <%s> on <%s>"
+msgstr "Base de datos <%s> en <%s>"
+
+#, python-format
+msgid "Branch \"%s\" of praxis \"%s\"\n"
+msgstr "Sucursal \"%s\" de consulta \"%s\"\n"
+
+msgid "Verifying database"
+msgstr "Verificando base de datos"
+
+msgid "Connect"
+msgstr "Conecto"
+
+msgid "Yes, connect to this database."
+msgstr "Sí, conecto a esta base de datos."
+
+msgid "Disconnect"
+msgstr "Desconecto"
+
+msgid "No, do not connect to this database."
+msgstr "No, no me conecto a esta base de datos."
+
+#, python-format
+msgid ""
+"Cannot find configuration file in any of:\n"
 "\n"
-"Part-less documents can be useful if you want to build\n"
-"up an index of, say, archived documents but do not\n"
-"want to scan in all the pages contained therein."
+" %s\n"
+"You may need to use the comand line option\n"
+"\n"
+"\t--conf-file=<FILE>"
 msgstr ""
-"¿Desea permitir guardar un nuevo documento vacío\n"
-"o quiere que GNUmed fuerce el contenido a una parte,\n"
-"a lo menos, antes de guardarlo?\n"
+"No puedo encontrar el archivo de configuración entre:\n"
 "\n"
-"Documentos vacíos pueden ser útiles si desea construir\n"
-"un índice de, por ejemplo, documentos archivados, pero\n"
-"en que no desea inspeccionar todas las páginas contenidas."
+" %s\n"
+"Puede necesitar la opción de linea de comando\n"
+"\n"
+"\t--conf-file=<FILE>"
 
-msgid "Yes, allow saving documents without any parts."
-msgstr "Sí, permita guardar documentos vacíos."
+msgid "Checking configuration files"
+msgstr "Verificando archivos de configuración"
 
-msgid "No, require documents to have at least one part."
-msgstr "No, requiere que los documentos contengan, al menos, una parte."
+msgid "GNUmed startup"
+msgstr "Inicio de GNUmed"
 
+#, python-format
 msgid ""
-"After importing a new document do you\n"
-"want GNUmed to display the unique ID\n"
-"it auto-generated for that document ?\n"
+"The currently selected database language ('%s') does\n"
+"not match the current system language ('%s').\n"
 "\n"
-"This can be useful if you want to label the\n"
-"originals with that ID for later identification."
+"Do you want to set the database language to '%s' ?\n"
 msgstr ""
-"Después de importar un nuevo documento,\n"
-"¿desea que GNUmed muestre la identificación\n"
-"única que auto generó para él?\n"
+"El idioma ('%s') actualmente seleccionado no se corresponde con\n"
+"el idioma ('%s') actual del sistema.\n"
 "\n"
-"Esto puede ser útil si desea anotar los originales\n"
-"con esa identificación para reconocimiento."
+"¿Desea configurar el idioma de la base de datos a '%s'?\n"
 
-msgid "Yes, display the ID generated for the new document after importing."
-msgstr ""
-"Sí, muestre la identificación generada para el nuevo documento, después de "
-"importarlo."
+msgid "Checking database language settings"
+msgstr "Verificando la configuración del idioma de la base de datos"
 
-msgid ""
-"No, do not display the ID generated for the new document after importing."
-msgstr ""
-"No, no muestre la identificación generada para el nuevo documento después de "
-"importarlo."
+#, python-format
+msgid "Set your database language to [%s]."
+msgstr "Fijar el idioma de la base de datos en [%s]."
 
-msgid ""
-"After importing a new document do you\n"
-"want GNUmed to generate a unique ID\n"
-"(UUID) for that document ?\n"
-"\n"
-"This can be useful if you want to label the\n"
-"originals with that ID for later identification."
-msgstr ""
-"Después de importar un nuevo documento,\n"
-"¿desea que GNUmed genere una identificación\n"
-"única para ese documento?\n"
-"\n"
-"Esto puede ser útil si desea anotar los originales\n"
-"con esa identificación para reconocimiento."
+msgid "Don't set"
+msgstr "No fije"
 
-msgid "Yes, generate a UUID for the new document after importing."
-msgstr ""
-"Sí, genere una idenitificación única para el nuevo documento después de "
-"importar."
+msgid "Do not set your database language now."
+msgstr "No fije el idioma de la base de datos ahora."
 
-msgid "No, do not generate a UUID for the new document after importing."
-msgstr ""
-"No, no genere una identificación única para el nuevo documento después de "
-"importar."
+msgid "Remember to ignore language mismatch"
+msgstr "Recuerde ignorar la discordancia de idiomas."
 
+#, python-format
 msgid ""
-"GNUmed can show the document review dialog after\n"
-"calling the appropriate viewer for that document.\n"
-"\n"
-"Select the conditions under which you want\n"
-"GNUmed to do so:\n"
+"Checking this will make GNUmed remember your decision\n"
+"until the system language is changed.\n"
 "\n"
-" 0: never display the review dialog\n"
-" 1: always display the dialog\n"
-" 2: only if there is no previous review by me\n"
-" 3: only if there is no previous review at all\n"
-" 4: only if there is no review by the responsible reviewer\n"
+"You can also reactivate this inquiry by removing the\n"
+"corresponding \"ignore\" option from the configuration file\n"
 "\n"
-"Note that if a viewer is configured to not block\n"
-"GNUmed during document display the review dialog\n"
-"will actually appear in parallel to the viewer."
+" [%s]"
 msgstr ""
-"GNUmed puede mostrar el diálogo de revisión del documento\n"
-"después de llamar el visor adecuado para ese documento.\n"
-"\n"
-"Seleccione las condiciones bajo las cuales usted desea que\n"
-"GNUmed lo haga:\n"
+"Marcando esto hará que GNUmed recuerde su decisión\n"
+"hasta que el idioma del sistema sea cambiado.\n"
 "\n"
-" 0: nunca muestra el diálogo de revisión\n"
-" 1: siempre muestra el diálogo\n"
-" 2: solo si no lo he revisado previamente\n"
-" 3: solo si no ha habido revisión previa\n"
-" 4: solo si no ha habido revisión de parte del revisor responsable\n"
+"También puede reactivar este pregunta eliminando la\n"
+"correspondiente opción \"ignore\" del archivo de configuración\n"
 "\n"
-"Note que si un visor es configurado para no bloquear\n"
-"GNUmed durante el despliegue del documento, el diálogo\n"
-"de revisión aparecerá en paralelo al visor."
-
-msgid "Addresses (likely slow)"
-msgstr "Direcciones (lento)"
+" [%s]"
 
-msgid "Branded drugs (as marketed)"
-msgstr "Medicamentos de marca (productos)"
+msgid "generic activity"
+msgstr "actividad genérica"
 
-msgid "Dynamic automatic hints"
-msgstr "Ayudas automáticas dinámicas"
+msgid "Access denied"
+msgstr "Acceso denegado"
 
-msgid "Codes and their respective terms"
-msgstr "Códigos y sus respectivos nombres"
+#, python-format
+msgid ""
+"Your account is not set up to access this part of GNUmed:\n"
+"\n"
+"  [%s]"
+msgstr ""
+"Su cuenta no está configurada para acceder a esta parte de GNUmed:\n"
+"\n"
+"  [%s]"
 
-msgid "Communication channel types"
-msgstr "Tipos de canales de comunicación"
+msgid "Save timeline as SVG image under..."
+msgstr "Guardo linea de tiempo como imagen SVG en ..."
 
-msgid "Components of branded drugs (substances in brands)"
-msgstr "Componentes de medicamentos de marca (componentes de marca)"
+msgid "timeline image"
+msgstr "imagen de linea de tiempo"
 
-msgid "Diagnostic organizations (path labs, ...)"
-msgstr "Organizaciones de diagnóstico (empresas de exámenes, ...)"
+msgid "timeline data"
+msgstr "datos de linea de tiempo"
 
-msgid "Document templates (forms, letters, plots, ...)"
-msgstr "Plantillas de documentos (cartas, formularios, tramas, ...)"
+msgid "Cannot change notebook tabs. No active patient."
+msgstr ""
+"No puedo cambiar el tabulador del block de notas. No existe paciente activo."
 
-msgid "Document types"
-msgstr "Tipos de documento"
+msgid "add plugin ..."
+msgstr "agrego módulo ..."
 
-msgid "Encounter types"
-msgstr "Tipos de contacto"
+msgid "Cannot activate Allergy Manager. No active patient."
+msgstr ""
+"No puedo activar el Administrdor de Alergias. No existe paciente activo."
 
-msgid "Keyword based text expansion macros"
-msgstr "Palabra clave basada en macros de expansión de texto"
+msgid "RR ?"
+msgstr "¿RR?"
 
-msgid "Meta test/measurement types"
-msgstr "Meta mediciones/tipos de mediciones"
+#, python-format
+msgid "BMI %s"
+msgstr "IMC %s"
 
-msgid "Organizations with their units, addresses, and comm channels"
-msgstr "Organizaciones con sus unidades, direcciones y canales comunes"
+msgid "BMI ?"
+msgstr "¿IMC ?"
 
-msgid "Patient tags"
-msgstr "Etiquetas de pacientes"
+msgid "GFR ?"
+msgstr "¿ÍFG?"
 
-msgid "Provinces (counties, territories, states, regions, ...)"
-msgstr "Estados (provincias, territorios, regiones, ...)"
+#, python-format
+msgid "GFR %s"
+msgstr "ÍFG %s"
 
-msgid "String translations in the database"
-msgstr "Traducciones de cadenas en la base de datos"
+# I believe there is an error contained in the original.
+# It should be EDC ?
+#, python-format
+msgid "?EDC %s"
+msgstr "¿FEC? %s"
 
-msgid "Test/measurement types"
-msgstr "Tipos de exámenes/mediciones"
+#, python-format
+msgid "EDC %s"
+msgstr "FEC %s"
 
-msgid "Vaccination targets (conditions known to be preventable by vaccination)"
-msgstr ""
-"Indicaciones de vacunación (condiciones conocidas que pueden ser evitadas "
-"por la vacunación)"
+msgid "<Age>"
+msgstr "<Edad>"
 
-msgid "Vaccines"
-msgstr "Vacunas"
+msgid "no patient selected"
+msgstr "no ha seleccionado un paciente"
 
-msgid "Workplace profiles (which plugins to load)"
-msgstr "Perfil del lugar de trabajo (cuál módulo cargar)"
+#, python-format
+msgid "Gender: %s (%s) - %s\n"
+msgstr "Sexo: %s (%s) - %s\n"
 
-msgid "Consumable substances"
-msgstr "Principio activo"
+#, python-format
+msgid "Born: %s\n"
+msgstr "Nacido/a: %s\n"
 
-msgid "Billable items"
-msgstr "ïtems cargables"
+#, python-format
+msgid "Died: %s\n"
+msgstr "Muerto/a: %s\n"
 
-msgid "Reference data sources"
-msgstr "Fuentes de datos de referencia"
+#, python-format
+msgid "At age: %s\n"
+msgstr "A los %s años\n"
 
-msgid "Test/measurement panels/profiles"
-msgstr "Examen/paneles de mediciones/perfiles"
+msgid " (date of birth and age are estimated)\n"
+msgstr " (fecha de nacimiento y muerte son estimados)\n"
 
-msgid "Master data management"
-msgstr "Manejo de datos maestros"
+#, python-format
+msgid "%(sex)s  %(dob)s (%(age)s today !)"
+msgstr "¡%(sex)s  %(dob)s (%(age)s hoy !)"
 
-msgid "Select the list you want to manage:"
-msgstr "Seleccione la lista que desea manejar:"
+msgid ""
+"\n"
+"Today is the patient's birthday !\n"
+"\n"
+msgstr ""
+"\n"
+"¡Hoy es el cumpleaños del paciente!\n"
+"\n"
 
-msgid "No DICOM viewer found."
-msgstr "No se encontró visor de DICOM."
+#, python-format
+msgid "Birthday: %s ago\n"
+msgstr "Cumpleaños: %s atrás\n"
 
-msgid "risk assessment"
-msgstr "evaluación de riesgo"
+#, python-format
+msgid "Birthday: in %s\n"
+msgstr "Cumpleaños: en %s\n"
 
-msgid "cardiovascular risk assessment"
-msgstr "evaluación de riesgo cardiovascular"
+#, python-format
+msgid "Age: %s\n"
+msgstr "Edad: %s\n"
 
 #, python-format
-msgid "[arriba] XML result not found in [%s]"
-msgstr "[arriba] resultado XML no encontrado en [%s]"
+msgid "last confirmed %s\n"
+msgstr "último/a confirmado/a %s\n"
 
-msgid "ACS risk assessment calculator not configured."
-msgstr "calculadora de evaluación de riesgo AMI no está configurada."
+#, python-format
+msgid "Comment (%s): %%s"
+msgstr "Comentario (%s): %%s"
 
 #, python-format
-msgid "Cannot run [%s] !"
-msgstr "¡No puedo correr [%s]!"
+msgid " - expires %s"
+msgstr " - expira %s"
 
 #, python-format
-msgid "There was a problem accessing the [arriba] result in [%s] !"
-msgstr "¡Hubo un problema accediendo el resultado [arriba] en [%s]!"
+msgid ""
+"Due for %s (since %s%s):\n"
+"%s%s\n"
+"Patient: %s\n"
+"Reminder by: %s"
+msgstr ""
+"Vencido para %s (desde %s%s):\n"
+"%s%s\n"
+"Paciente: %s\n"
+"Avisado por: %s"
 
-msgid "[-9999]: <access violation test error>"
-msgstr "[-9999]: <error de test de violación de accese>"
+msgid "Clinical reminder"
+msgstr "Recordatorio clínico"
+
+msgid "Adding automatic dynamic hint"
+msgstr "Agrego ayuda dinámica automática"
+
+msgid "Editing automatic dynamic hint"
+msgstr "Edito ayuda dinámica automática"
+
+msgid "Deleting automatic dynamic hint"
+msgstr "Elimino ayuda dinámica automática"
 
+#, python-format
 msgid ""
-"This is a deliberate AcessDenied exception thrown to test the handling of "
-"access violations by means of a decorator."
+"Really delete this dynamic hint ?\n"
+"\n"
+" [%s]"
 msgstr ""
-"Esta es una excepción de AccesoDenegado deliberada lanzada para verificar el "
-"manejo de violaciones de acceso a través de un simulador."
+"¿Realmente elimino esta ayuda dinámica?\n"
+"\n"
+" [%s]"
 
-msgid "testing access check for non-existant <admin> role"
-msgstr "verificado acceso para rol no existente de <admin>"
+msgid "deleting a dynamic hint"
+msgstr "elimina ayuda dinámica"
 
 msgid ""
-"This is a deliberate AcessDenied exception. You should not see this message "
-"because the role is checked in a decorator."
+"\n"
+"Dynamic hints registered with GNUmed.\n"
 msgstr ""
-"Esta es una excepción de AccesoDenegado deliberada. No debería ver este "
-"mensaje porque el rol es verificado en el simulador."
-
-msgid "pgAdmin III not found."
-msgstr "No se encontró pgAdmidn III."
+"\n"
+"Ayudas dinámicas regsitradas con GNUmed.\n"
 
-msgid "Error reloading hook script."
-msgstr "Error al recargar programa de enganche"
+msgid "Showing dynamic hints."
+msgstr "Muestro ayudas dinámicas."
 
-msgid "Save current log as..."
-msgstr "Guarde registro actual como ..."
+msgid "Hint"
+msgstr "Ayuda"
 
-msgid "log files"
-msgstr "archivos de registro"
+msgid "Browse and install automatic dynamic hints data packs"
+msgstr "Navego e instalo paquetes de datos de ayuda dinámica automática"
 
 #, python-format
-msgid "Log file backed up as [%s]."
-msgstr "Archivo de registro respaldado como [%s]."
+msgid "By: %s"
+msgstr "Por: %s"
 
-msgid "Cannot start new encounter. No active patient."
-msgstr "No puedo comenzar nuevo contacto. No existe paciente activo."
+msgid "No entry in field <Source>."
+msgstr "No hay ingreso en el campo <Source>."
 
-msgid "Cannot add health issue. No active patient."
-msgstr "No puedo agregar problema de salud. No existe paciente activo."
+msgid "No entry in field <Conditions>."
+msgstr "No hay ingreso en el campo >Conditions>."
 
-msgid "Cannot add episode. No active patient."
-msgstr "No puedo agregar episodio. No existe paciente activo."
+msgid "No entry in field <Description>."
+msgstr "No hay ingreso en el campo <Description>."
 
-msgid "Cannot add medication. No active patient."
-msgstr "No puedo agegar medicación. No existe paciente activo."
+msgid "No entry in field <Title>."
+msgstr "No hay ingreso en el campo <Title>."
 
-msgid "Cannot add allergy. No active patient."
-msgstr "No puedo agregar alergia. No existe paciente activo."
+msgid "creating a new dynamic hint"
+msgstr "Creo una ayuda dinámica existente"
 
-msgid "Cannot manage performed procedures. No active patient."
-msgstr "No puedo manejar procedimiento. No existe paciente activo."
+msgid "updating an existing dynamic hint"
+msgstr "Actualiza una ayuda dinámica existente"
 
-msgid "Cannot manage hospitalizations. No active patient."
-msgstr "No puedo manejar hospitalizaciones. No hay paciente activo."
+msgid "Deleting suppressed dynamic hint"
+msgstr "Elimino ayuda dinámica suprimida"
 
-msgid "Cannot manage external care. No active patient."
-msgstr "No puedo manejar cuidado externo. No hay paciente activo."
+#, python-format
+msgid ""
+"Really delete the suppression of this dynamic hint ?\n"
+"\n"
+" [%s]"
+msgstr ""
+"¿Realmente elimino la supresión de esta ayuda dinámica?\n"
+"\n"
+" [%s]"
 
-msgid "Cannot edit occupation. No active patient."
-msgstr "No puedo editar ocupación. No existe paciente activo."
+msgid ""
+"\n"
+"Dynamic hints suppressed in this patient.\n"
+msgstr ""
+"\n"
+"Ayudas dinámicas suprimidas para este paciente.\n"
 
-msgid "manage vaccinations"
-msgstr "administro vacunaciones"
+msgid "Showing suppressed dynamic hints."
+msgstr "Muestro ayudas dinámicas suprimidas."
 
-msgid "Cannot add vaccinations. No active patient."
-msgstr "No puedo agregar vacunaciones. No existe paciente activo."
+msgid "Rationale"
+msgstr "Razón fundada"
 
-msgid "Cannot manage family history. No active patient."
-msgstr "No puedo manejar historial familar. No existe paciente activo."
+msgid "Manage hints"
+msgstr "Administro ayudas"
 
-msgid "Cannot manage measurements. No active patient."
-msgstr "No puedo manejar mediciones. No hay paciente activo."
+msgid "Manage automatic dynamic hints"
+msgstr "Administro ayudas dinámicas automaticas"
 
-msgid "calculate EDC"
-msgstr "Calculo FCE"
+msgid "Cannot delete family history item."
+msgstr "No puedo borrar el historial familiar."
 
-msgid "manage suppressed hints"
-msgstr "administro ayudas suprimidas"
+msgid "Family history of this patient."
+msgstr "HIstorial familiar de este paciente."
 
-msgid "Cannot manage suppressed hints. No active patient."
-msgstr "No puedo administrar ayudas suprimidas. No hay paciente activo."
+msgid "Showing family history."
+msgstr "Muestro historial familiar."
 
-msgid "Cannot show EMR summary. No active patient."
-msgstr "No puedo mostrar resumen de RME. No existe paciente activo."
+msgid "Fatal"
+msgstr "Fatal"
 
-msgid "EMR Summary"
-msgstr "Resumen RME"
+msgid "Noted"
+msgstr "Anotado"
 
-msgid "Cannot export EMR journal. No active patient."
-msgstr "No puedo exportar RME pediódico. No existe paciente activo."
+msgid "Died"
+msgstr "Muerto"
 
-msgid "Save patient's EMR journal as..."
-msgstr "Guarde RME periódico del paciente como ..."
+msgid "Adding family history"
+msgstr "Agregando historial familiar"
 
-msgid "Error exporting patient EMR as chronological journal."
-msgstr "Error al exportar RME del paciente como registro cronológico."
+msgid "Editing family history"
+msgstr "Editando historial familiar"
 
-msgid "EMR journal export"
-msgstr "Exportación de RME"
+msgid ""
+"\n"
+"Please select the default drug data source from the list below.\n"
+"\n"
+"Note that to actually use it you need to have the database installed, too."
+msgstr ""
+"\n"
+"Por favor, seleccione la fuente de datos de medicamentos por defecto de la "
+"lista de abajo.\n"
+"\n"
+"Note que para usarla, también necesita tener una base de datos instalada."
 
-#, python-format
-msgid "Successfully exported EMR as chronological journal into file [%s]."
-msgstr "RME exportado exitosamente como registro periódico al archivo [%s]."
+msgid "Configuring default drug data source"
+msgstr "Configurando la fuente de datos de medicamentos"
 
-msgid "Cannot add tag to person. No active patient."
-msgstr "No puedo agregar etiqueta a la persona. No existe paciente activo."
+msgid "No default drug database configured."
+msgstr "No hay base de datos de medicamentos configurada por defecto."
 
-#, python-format
-msgid "Edit the comment on tag [%s]"
-msgstr "Edite el comentario en la etiqueta [%s]"
+msgid "There is no default drug database configured."
+msgstr "No hay base de datos de medicamentos configurada por defecto."
 
-msgid "Editing tag comment"
-msgstr "Editando comentario en etiqueta"
+msgid "Jumping to drug database"
+msgstr "Saltando a la base de datos de medicamentos"
 
-msgid "Cannot export patient as GDT. No active patient."
-msgstr "No puedo exportar paciente como GDT. No existe paciente activo."
+msgid "Cannot import drugs from IFAP into chart without chart."
+msgstr "No puedo importar drogas desde IFAP a la planilla sin planilla."
 
-msgid "Exported demographics as GDT to clipboard."
-msgstr "Demografía exportada como GDT al portapapeles."
+#, python-format
+msgid "Cannot call IFAP via [%s]."
+msgstr "No puedo invocar IFAP a través de [%s]."
 
-msgid "Cannot export patient as VCARD. No active patient."
-msgstr "No puedo exportar paciente como vCard. No hay paciente activo."
+#, python-format
+msgid "Cannot create IFAP <-> GNUmed transfer file [%s]."
+msgstr "No puedo crear IFAP <-> archivo de transferencia GNUmed [%s]"
 
-msgid "Exported demographics as VCARD to clipboard."
-msgstr "Demografía exportada como vCard al portapapeles."
+msgid "Current medication"
+msgstr "Medicación actual"
 
-msgid "Cannot export patient as XML (LinuxMedNews). No active patient."
+msgid ""
+"\n"
+"The ATC codes as known to GNUmed.\n"
 msgstr ""
-"No puedo exportar paciente como XML (LinuxMedNews). No hay paciente activo."
+"\n"
+"El código ATQ es conocido a GNUmed.\n"
 
-#, python-format
-msgid "Exported demographics to XML file [%s]."
-msgstr "Demografía exportada a archivo XML [%s]."
+msgid "Showing ATC codes."
+msgstr "Mostrando códigos ATQ."
 
-#, python-format
-msgid "Exported demographics to GDT file [%s]."
-msgstr "Demografía exportada a archivo GDT [%s]."
+msgid "Choose an ATC import config file"
+msgstr "Elija un archivo de configuración para la importación de ATQ"
 
-#, python-format
-msgid "Exported demographics to VCARD file [%s]."
-msgstr "Demografía exportada a vCard [%s]."
+msgid "config files"
+msgstr "archivo de configuración"
 
-msgid "Cannot add staff member. No active patient."
-msgstr "No puedo agregar miembro de personal. No existe paciente activo."
+msgid "importing ATC reference data"
+msgstr "importando datos referenciales ATQ"
 
-msgid "Cannot delete patient. No patient active."
-msgstr "No puedo borrar al paciente. No existe paciente activo."
+msgid "Successfully imported ATC reference data."
+msgstr "Importé exitosamente datos referenciales ATQ."
 
-msgid ""
-"You have to manually close this window to finalize shutting down GNUmed."
-msgstr "Debe cerrar manualmente esta ventana para finalizar cierre de GNUmed."
+msgid "Importing ATC reference data failed."
+msgstr "Importación de datos referenciales ATQ falló."
 
-msgid "This is so that you can inspect the console output at your leisure."
-msgstr "Esto garantiza que pueda inspeccionar la salida de consola con calma."
+msgid "Select an ATC (Anatomical-Therapeutic-Chemical) code."
+msgstr "Seleccione un código ATQ (Anatómcio, Terapéutico, Químico)."
 
-msgid "no patient"
-msgstr "no existe paciente activo"
+msgid "Cannot edit this substance. It is in use."
+msgstr "No puedo editar esta sustancia. Está en uso."
 
-#, python-format
-msgid "Saved screenshot to file [%s]."
-msgstr "Captura de pantalla guardada en archivo [%s]."
+msgid "Adding new consumable substance"
+msgstr "Agregando una nueva sustancia"
+
+msgid "Editing consumable substance"
+msgstr "Editando sustancia"
 
-msgid "Python version check"
-msgstr "Verificación de versión de python."
+msgid "Cannot delete this substance. It is in use."
+msgstr "No puedo borrar la sustancia, pues está en uso."
 
-#, python-format
 msgid ""
-"You are running Python version\n"
-" %s\n"
 "\n"
-"However, GNUmed wants Python 2.7 to\n"
-"facilitate migration to Python 3.\n"
-"\n"
-"Please upgrade your Python interpreter !"
+"These are the consumable substances registered with GNUmed.\n"
 msgstr ""
-"Está corriendo versión Python\n"
-" %s\n"
-"\n"
-"Sin embargo, GNUmed desea que Python 2.7\n"
-"facilite la migración a Python 3.\n"
 "\n"
-"Por favor, ¡actualice su intérprete Python!"
+"Estas son las sustancias registradas en GNUmed.\n"
 
-msgid "GNUmed client"
-msgstr "Cliente GNUmed"
+msgid "Import"
+msgstr "Importo"
 
-msgid "GNUmed stdout/stderr window"
-msgstr "Ventana de GNUmed para stdout/stderr"
+msgid "Import consumable substances from a drug database."
+msgstr "Importo sustancias desde base de datos externa de medicamentos"
 
-msgid "redirecting STDOUT/STDERR to this log window"
-msgstr "STDOUT/STDERR son redirigidas a esta ventana"
+msgid "Cannot save consumable substance. Missing essential input."
+msgstr "No puedo guardar sustancia. Faltan datos esenciales."
 
 #, python-format
+msgid "Cannot save consumable substance. %s"
+msgstr "No puedo grabar sustancias. %s"
+
+msgid "The substance with optional strength."
+msgstr "El componente activo, opcional con concentración."
+
+msgid "Cannot remove this component from the drug. It is in use."
+msgstr "No puedo eliminar este componente del medicamento. Está en uso."
+
 msgid ""
-"The database account [%s] cannot be used as a\n"
-"staff member login for GNUmed. There was an\n"
-"error retrieving staff details for it.\n"
 "\n"
-"Please ask your administrator for help.\n"
+"These are the components in the drug brands known to GNUmed.\n"
 msgstr ""
-"La cuenta de base de datos [%s] no puede ser usada como\n"
-"ingreso de miembro del personal para GNUmed. Hubo un\n"
-"error al recuperar detalles del personal.\n"
 "\n"
-"Por favor, pida ayuda a su administrador.\n"
-
-msgid "Checking access permissions"
-msgstr "Comprobando permisos de acceso"
+"Estos son componentes de las marcas de medicamentos conocidos a GNUmed.\n"
 
-#, python-format
-msgid "Database <%s> on <%s>"
-msgstr "Base de datos <%s> en <%s>"
+msgid "Showing drug brand components."
+msgstr "Mostrando componentes de marcas de medicamentos"
 
-#, python-format
-msgid "Branch \"%s\" of praxis \"%s\"\n"
-msgstr "Sucursal \"%s\" de consulta \"%s\"\n"
+msgid "Adding new drug component"
+msgstr "Agregando un nuevo componente de medicamento"
 
-msgid "Verifying database"
-msgstr "Verificando base de datos"
+msgid "Editing drug component"
+msgstr "Editando componente de medicamento"
 
-msgid "Connect"
-msgstr "Conectar"
+msgid "Cannot edit drug component. It is in use."
+msgstr "No puedo editar componente de medicamento. Está en uso."
 
-msgid "Yes, connect to this database."
-msgstr "Sí, conecte a esta base de datos."
+msgid "Cannot save drug component. Invalid or missing essential input."
+msgstr ""
+"no puedo guardar componente de medicamento. Información inválida o "
+"incompleta."
 
-msgid "Disconnect"
-msgstr "Desconectar"
+msgid "A drug component with optional strength."
+msgstr "Un componente de medicamento con concentración opcional."
 
-msgid "No, do not connect to this database."
-msgstr "No, no se conecte a esta base de datos."
+msgid "Editing drug"
+msgstr "Editando medicamento"
 
 #, python-format
 msgid ""
-"Cannot find configuration file in any of:\n"
+"Cannot edit the branded drug product\n"
 "\n"
-" %s\n"
-"You may need to use the comand line option\n"
+" \"%s\" (%s)\n"
 "\n"
-"\t--conf-file=<FILE>"
+"because it is currently taken by patients.\n"
 msgstr ""
-"No puedo encontrar el archivo de configuración entre:\n"
+"No puedo editar el medicamento de la marca\n"
 "\n"
-" %s\n"
-"Puede necesitar la opción de linea de comando\n"
+" \"%s\"(%s)\n"
 "\n"
-"\t--conf-fiel=<FILE>"
-
-msgid "Checking configuration files"
-msgstr "Verificando archivos de configuración"
+"pues está siendo tomado por pacientes.\n"
 
-msgid "GNUmed startup"
-msgstr "Inicio de GNUmed"
+msgid "Adding new drug brand"
+msgstr "Agrego nuevo medicamento"
 
-#, python-format
-msgid ""
-"The currently selected database language ('%s') does\n"
-"not match the current system language ('%s').\n"
-"\n"
-"Do you want to set the database language to '%s' ?\n"
-msgstr ""
-"El idioma ('%s') actualmente seleccionado no se corresponde con\n"
-"el idioma ('%s') actual del sistema.\n"
-"\n"
-"¿Desea configurar el idioma de la base de datos a '%s'?\n"
+msgid "Editing drug brand"
+msgstr "Edito marca de medicamento"
 
-msgid "Checking database language settings"
-msgstr "Verificando la configuración del idioma de la base de datos"
+msgid "Manage consumable substances"
+msgstr "Administro sustancias consumibles"
 
-msgid "Set"
-msgstr "Fijar"
+msgid "not in use"
+msgstr "no en uso"
 
 #, python-format
-msgid "Set your database language to [%s]."
-msgstr "Fijar el idioma de la base de datos en [%s]."
-
-msgid "Don't set"
-msgstr "No fije"
-
-msgid "Do not set your database language now."
-msgstr "No fije el idioma de la base de datos ahora."
+msgid "ATC: %s\n"
+msgstr "ATQ: %s\n"
 
-msgid "Remember to ignore language mismatch"
-msgstr "Recuerde ignorar la discordancia de idiomas."
+msgid "Editing medication"
+msgstr "Editando medicación"
 
 #, python-format
 msgid ""
-"Checking this will make GNUmed remember your decision\n"
-"until the system language is changed.\n"
+"Cannot edit the medication\n"
 "\n"
-"You can also reactivate this inquiry by removing the\n"
-"corresponding \"ignore\" option from the configuration file\n"
+" \"%s\" (%s)\n"
 "\n"
-" [%s]"
+"because it is a vaccine. Please edit it\n"
+"from the vaccine management section !\n"
 msgstr ""
-"Asignando esto hará que GNUmed recuerde su decisión\n"
-"hasta que el idioma del sistema sea cambiado.\n"
+"No puedo editar la medicación\n"
 "\n"
-"También puede reactivar este pregunta eliminando la\n"
-"correspondiente opción \"ignore\" del archivo de configuración\n"
+" \"%s\" (%s)\n"
 "\n"
-" [%s]"
-
-msgid "generic activity"
-msgstr "actividad genérica"
+"porque es una vacuna. Por favor, ¡edítela\n"
+"a partir de la sección de administración de vacunas!\n"
 
-msgid "Access denied"
-msgstr "Acceso denegado"
+msgid "Deleting medication"
+msgstr "Eliminando medicación"
 
 #, python-format
 msgid ""
-"Your account is not set up to access this part of GNUmed:\n"
+"Cannot delete the medication\n"
 "\n"
-"  [%s]"
-msgstr ""
-"Su cuenta no está configurada para acceder a esta parte de GNUmed:\n"
+" \"%s\" (%s)\n"
 "\n"
-"  [%s]"
-
-msgid "Save timeline as SVG image under..."
-msgstr "Guardo linea de tiempo como imagen SVG en ..."
-
-msgid "timeline image"
-msgstr "imagen de linea de tiempo"
-
-msgid "timeline data"
-msgstr "datos de linea de tiempo"
-
-msgid "Cannot change notebook tabs. No active patient."
+"because it is a vaccine. Please delete it\n"
+"from the vaccine management section !\n"
 msgstr ""
-"No puedo cambiar el tabulador del block de notas. No existe paciente activo."
-
-msgid "add plugin ..."
-msgstr "agrego módulo ..."
+"No puedo eliminar la medicación\n"
+"\n"
+" \"%s\" (%s)\n"
+"\n"
+"porque es una vacuna. Por favor, ¡elimínela\n"
+"a partir de la sección de administración de vacunas!\n"
 
-msgid "Cannot activate Allergy Manager. No active patient."
+msgid ""
+"\n"
+"These are the drug brands known to GNUmed.\n"
 msgstr ""
-"No puedo activar el Administrdor de Alergias. No existe paciente activo."
-
-msgid "<Age>"
-msgstr "<Edad>"
-
-msgid "no patient selected"
-msgstr "no ha seleccionado un paciente"
-
-#, python-format
-msgid "Gender: %s (%s) - %s\n"
-msgstr "Sexo: %s (%s) - %s\n"
-
-#, python-format
-msgid "Born: %s\n"
-msgstr "Nacido/a: %s\n"
+"\n"
+"Estas son las marcas de medicamentos conocidas por GNUmed.\n"
 
-#, python-format
-msgid "Died: %s\n"
-msgstr "Muerto/a: %s\n"
+msgid "Showing branded drugs."
+msgstr "Mostrando medicamentos de marca"
 
-#, python-format
-msgid "At age: %s\n"
-msgstr "A los %s años\n"
+msgid "Import substances and brands from a drug database."
+msgstr "Importo sustancias y marcas de una base de datos de medicamentos."
 
-msgid " (date of birth and age are estimated)\n"
-msgstr " (fecha de nacimiento y muerte son estimados)\n"
+msgid "Managing components of a drug"
+msgstr "Manejando los compuestos de un medicamento."
 
 #, python-format
-msgid "%(sex)s  %(dob)s (%(age)s today !)"
-msgstr "¡%(sex)s  %(dob)s (%(age)s hoy !)"
-
 msgid ""
+"Cannot manage the components of the branded drug product\n"
 "\n"
-"Today is the patient's birthday !\n"
+" \"%s\" (%s)\n"
 "\n"
+"because it is currently taken by patients.\n"
 msgstr ""
+"No puedo manejar los compuestos del medicamento de marca\n"
 "\n"
-"¡Hoy es el cumpleaños del paciente!\n"
+" \"%s\" (%s),\n"
 "\n"
+"porque están siendo tomados por pacientes.\n"
 
-#, python-format
-msgid "Birthday: %s ago\n"
-msgstr "Cumpleaños: %s atrás\n"
-
-#, python-format
-msgid "Birthday: in %s\n"
-msgstr "Cumpleaños: en %s\n"
-
-#, python-format
-msgid "Age: %s\n"
-msgstr "Edad: %s\n"
-
-#, python-format
-msgid "last confirmed %s\n"
-msgstr "último/a confirmado/a %s\n"
-
-#, python-format
-msgid "Comment (%s): %%s"
-msgstr "Comentario (%s): %%s"
+msgid "Pick the substances which are components of this drug."
+msgstr "Elija las sustancias que componen este medicamento."
 
-#, python-format
-msgid " - expires %s"
-msgstr " - expira %s"
+msgid "Components of drug"
+msgstr "Componentes del medicamento"
 
 #, python-format
 msgid ""
-"Due for %s (since %s%s):\n"
-"%s%s\n"
-"Patient: %s\n"
-"Reminder by: %s"
+"Adjust the components of \"%s\"\n"
+"\n"
+"The drug must contain at least one component. Any given\n"
+"substance can only be included once per drug."
 msgstr ""
-"Vencido para %s (desde %s%s):\n"
-"%s%s\n"
-"Paciente: %s\n"
-"Avisado por: %s"
-
-msgid "Clinical reminder"
-msgstr "Recordatorio clínico"
+"Ajuste los componentes de \"%s\"\n"
+"\n"
+"El medicamento debe contener al menos un componente. Cualquier\n"
+"sustancia dada solo puede ser incluida una vez por medicamento."
 
-msgid "Adding automatic dynamic hint"
-msgstr "Agrega ayuda dinámica automática"
+msgid "Managing components of a drug ..."
+msgstr "Manejando componentes del medicamento ..."
 
-msgid "Editing automatic dynamic hint"
-msgstr "Edita ayuda dinámica automática"
+msgid "Cannot edit drug brand. It is in use."
+msgstr "No puedo editar marca de medicamento. Está en uso."
 
-msgid "Deleting automatic dynamic hint"
-msgstr "Elimina ayuda dinámica automática"
+msgid "Checking brand data"
+msgstr "Verifico datos de la marca"
 
 #, python-format
 msgid ""
-"Really delete this dynamic hint ?\n"
+"The brand information you entered:\n"
 "\n"
-" [%s]"
+" [%s %s]\n"
+"\n"
+"already exists as a drug product."
 msgstr ""
-"¿Realmente elimina esta ayuda dinámica?\n"
+"La información de la marca ingresada:\n"
 "\n"
-" [%s]"
+" [%s %s]\n"
+"\n"
+"ya existe como droga."
 
-msgid "deleting a dynamic hint"
-msgstr "elimina ayuda dinámica"
+msgid ""
+"You have not selected any substances\n"
+"as drug components.\n"
+"\n"
+"Without components you will not be able to\n"
+"use this drug for documenting patient care.\n"
+"\n"
+"Are you sure you want to save\n"
+"it without components ?"
+msgstr ""
+"No ha seleccionado ninguna sustancia\n"
+"como componentes de droga.\n"
+"\n"
+"Sin componentes erá imposible usar esta\n"
+"droga para documentar el cuidado del paciente.\n"
+"\n"
+"¿Está seguro/a que desea guardarla \n"
+"sin componentes ?"
+
+msgid "Cannot save branded drug. Invalid or missing essential input."
+msgstr ""
+"No puedo guardar la marca de medicamento. Ingreso de datos inválido o "
+"insuficientes."
 
 msgid ""
+"The brand name of the drug.\n"
 "\n"
-"Dynamic hints registered with GNUmed.\n"
+"Note: a brand name will need to be linked to\n"
+"one or more components before it can be used,\n"
+"except in the case of fake (generic) vaccines."
 msgstr ""
+"La marca comercial de esta droga.\n"
 "\n"
-"Ayudas dinámicas regsitradas con GNUmed.\n"
+"Nota: una marca comercial será necesaria para enlazarla a\n"
+"una o más componentes antes de poder usarla,\n"
+"excepto en case de vacunas falsas (genéricas)."
 
-msgid "Showing dynamic hints."
-msgstr "Muestra ayudas dinámicas."
+msgid "No EMR data loaded."
+msgstr "Datos del RME no cargados"
 
-msgid "Hint"
-msgstr "Ayuda"
+msgid "EMR text dump"
+msgstr "Extracto textual del RME"
 
-msgid "Browse and install automatic dynamic hints data packs"
-msgstr "Navega e instala paquetes de datos de ayuda dinámica automática"
+msgid "Currently there is no active patient. Cannot retrieve EMR text."
+msgstr "No es posible obtener el texto del RME. No hay ningún paciente activo."
 
-#, python-format
-msgid "By: %s"
-msgstr "Por: %s"
+msgid "SOAP Editor Actions:"
+msgstr "Acciones de Editor SOAP:"
 
-msgid "No entry in field <Source>."
-msgstr "No hay ingreso en el campo <Source>."
+msgid "&Sort lines"
+msgstr "&Ordeno lineas"
 
-msgid "No entry in field <Conditions>."
-msgstr "No hay ingreso en el campo >Conditions>."
+msgid "Sort lines by SOAP category"
+msgstr "Ordeno lineas por categoría SOAP"
 
-msgid "No entry in field <Description>."
-msgstr "No hay ingreso en el campo <Description>."
+msgid "e&Xpand keyword"
+msgstr "e&Xpando palabra clave"
 
-msgid "No entry in field <Title>."
-msgstr "No hay ingreso en el campo <Title>."
+msgid "Expand keyword / macro"
+msgstr "Expando palabra clave / macro"
 
-msgid "creating a new dynamic hint"
-msgstr "Crea una ayuda dinámica existente"
+msgid "as &Subjective"
+msgstr "como &Subjectivo"
 
-msgid "updating an existing dynamic hint"
-msgstr "Actualiza una ayuda dinámica existente"
+msgid "Set line to category \"Subjective\""
+msgstr "Fijo linea a la categoría \"Subjetivo\""
 
-msgid "Deleting suppressed dynamic hint"
-msgstr "Elimina ayuda dinámica suprimida"
+msgid "as &Objective"
+msgstr "como &Objectivo"
 
-#, python-format
-msgid ""
-"Really delete the suppression of this dynamic hint ?\n"
-"\n"
-" [%s]"
-msgstr ""
-"¿Realmente elimino la supresión de esta ayuda dinámica?\n"
-"\n"
-" [%s]"
+msgid "Set line to category \"Objective\""
+msgstr "Fijo linea a la categoría \"Objetivo\""
 
-msgid ""
-"\n"
-"Dynamic hints suppressed in this patient.\n"
-msgstr ""
-"\n"
-"Ayudas dinámicas suprimidas para este paciente.\n"
+msgid "as &Assessment"
+msgstr "como &Evaluación"
 
-msgid "Showing suppressed dynamic hints."
-msgstr "Muestra ayudas dinámicas suprimidas."
+msgid "Set line to category \"Assessment\""
+msgstr "Fijo la linea de categoría \"Evaluación\""
 
-msgid "Rationale"
-msgstr "Razón fundada"
+msgid "as &Plan"
+msgstr "como &Plan"
 
-msgid "Manage hints"
-msgstr "Administro ayudas"
+msgid "Set line to category \"Plan\""
+msgstr "Fijo la linea de categoria \"Plan\""
 
-msgid "Manage automatic dynamic hints"
-msgstr "Administro ayudas dinámicas automaticas"
+msgid "as &Unspecified"
+msgstr "como &Inespecífico"
 
-msgid "Cannot delete family history item."
-msgstr "No puedo borrar el historial familiar."
+msgid "Set line to category \"unspecified\""
+msgstr "Fijo la linea de categoría \"inespecífico\""
 
-msgid "Family history of this patient."
-msgstr "HIstorial familiar de este paciente."
+msgid "as ad&Ministrative"
+msgstr "como ad&Ministrativo"
 
-msgid "Showing family history."
-msgstr "Muestro historial familiar."
+msgid "Set line to category \"administrative\""
+msgstr "Fijo la linea de categoría \"administrativo\""
 
-msgid "Fatal"
-msgstr "Fatal"
+msgid "→ &Clipboard"
+msgstr "→ &Portapapeles"
 
-msgid "Noted"
-msgstr "Anotado"
+msgid "Copy line to clipboard"
+msgstr "Copia linea al portapapeles"
 
-msgid "Died"
-msgstr "Muerto"
+msgid "→ +Clipboard+"
+msgstr "→ +Porapapeles+"
 
-msgid "Adding family history"
-msgstr "Agregando historial familiar"
+msgid "Add line to clipboard"
+msgstr "Agrego linea al portapapeles"
 
-msgid "Editing family history"
-msgstr "Editando historial familiar"
+msgid "Copy content to clipboard"
+msgstr "Copio contenido al portapapeles"
 
-msgid "No EMR data loaded."
-msgstr "Datos del RME no cargados"
+msgid "Add content to clipboard"
+msgstr "Agrego contendio al portapapeles"
 
-msgid "EMR text dump"
-msgstr "Extracto textual del RME"
+msgid "Copy selection to clipboard"
+msgstr "Copio selección al portapaleles"
 
-msgid "Currently there is no active patient. Cannot retrieve EMR text."
-msgstr "No es posible obtener el texto del RME. No hay ningún paciente activo."
+msgid "Add selection to clipboard"
+msgstr "Agrego selección al portapapeles"
+
+msgid "&Line ..."
+msgstr "&Linea ..."
+
+msgid "&Text ..."
+msgstr "&Texto ..."
+
+msgid "&Region ..."
+msgstr "&Región ..."
 
 msgid "Show HL7 file:"
 msgstr "Muestro archivo HL7"
@@ -18216,7 +19038,7 @@ msgid ""
 "\n"
 "Note that deletion is not reversible."
 msgstr ""
-"¿Realmente dese eliminar los datos entrantes\n"
+"¿Realmente desea eliminar los datos entrantes\n"
 "\n"
 "Note que la eliminación es irreversible."
 
@@ -18224,16 +19046,13 @@ msgid "unknown DOB"
 msgstr "Fecha desconocida de nacimiento"
 
 msgid "Showing unmatched incoming data"
-msgstr "Muestra datos ingresados no coincidentes"
+msgstr "Muestro datos ingresados no coincidentes"
 
 msgid "Identification"
 msgstr "Identificación"
 
-msgid "Show"
-msgstr "Muestra"
-
 msgid "Show formatted HL7"
-msgstr "Muestra en formato HL7"
+msgstr "Muestro en formato HL7"
 
 msgid "Import HL7 data into patient chart"
 msgstr "Importo datos HL7 para la cartilla del paciente"
@@ -18277,11 +19096,24 @@ msgstr "Revisar selección actual."
 msgid "Plot current selection"
 msgstr "Marcar selección actual."
 
+msgid ""
+"Select the measurements panel to show in the top pane for continuous "
+"monitoring."
+msgstr ""
+"Selecciono el panel de medición para mostrarlo en el tope para moitoreo "
+"contínuo."
+
+msgid "Lab panel"
+msgstr "Panel del laboratorio"
+
+msgid "Configuring continuous monitoring measurements panel"
+msgstr "Configuro panel de medición de moitoreo contínuo"
+
 msgid "No default Gnuplot script template selected."
 msgstr "No hay plantilla de comandos seleccionada por defecto para Gnuplot."
 
 msgid "No default Gnuplot template configured."
-msgstr "No hay plantilla Gnuplot configurada por defecto."
+msgstr "No hay plantilla configurada por defecto para Gnuplot."
 
 msgid "There is no default Gnuplot one-type script template configured."
 msgstr ""
@@ -18301,12 +19133,27 @@ msgstr ""
 msgid "Cannot plot without a plot script."
 msgstr "No puedo trazar sin un programa de trazado."
 
-msgid "Time"
-msgstr "Tiempo"
-
 msgid "Result"
 msgstr "Resultado"
 
+msgid "Perform on selected results:"
+msgstr "Aplicar sobre resultados seleccionados:"
+
+msgid "Review and &sign"
+msgstr "Revise y &firme"
+
+msgid "Export to &file"
+msgstr "Exporte a &archivo"
+
+msgid "Export to &clipboard"
+msgstr "Exporte a &block de notas"
+
+msgid "Panels"
+msgstr "Paneles"
+
+msgid "List"
+msgstr "Lista"
+
 msgid ""
 "lab_grid_date_format::%Y\n"
 "%b %d"
@@ -18399,18 +19246,6 @@ msgstr "Todo: como &Planilla"
 msgid "All: by &Day"
 msgstr "Todo: por &Día"
 
-msgid "Perform on selected results:"
-msgstr "Aplicar sobre resultados seleccionados:"
-
-msgid "Review and &sign"
-msgstr "Revise y &firme"
-
-msgid "Export to &file"
-msgstr "Exporte a &archivo"
-
-msgid "Export to &clipboard"
-msgstr "Exporte a &block de notas"
-
 #, python-format
 msgid "%s results selected. Too many to list individually."
 msgstr ""
@@ -18585,7 +19420,7 @@ msgid "emr-export"
 msgstr "Exportación de EMR"
 
 msgid "Save patient's EMR as..."
-msgstr "Guardar el EMR del paciente como ..."
+msgstr "Guardo el EMR del paciente como ..."
 
 #, python-format
 msgid "EMR successfully exported to file: %s"
@@ -18608,35 +19443,38 @@ msgstr " Listo episodios no asociados\n"
 msgid "EMR Actions:"
 msgstr "Acciones para el RME:"
 
+msgid "Print EMR"
+msgstr "Imprimo RME"
+
 msgid "Create health issue"
-msgstr "Cree un problema de salud"
+msgstr "Creo un problema de salud"
 
 msgid "Create episode"
-msgstr "Cree un episodio"
+msgstr "Creo un episodio"
 
 msgid "Create progress note"
 msgstr "Creo nota de progreso"
 
 msgid "Manage allergies"
-msgstr "Maneje alergias"
+msgstr "Manejo alergias"
 
 msgid "Manage family history"
-msgstr "Administrar historia familiar"
+msgstr "Administro historia familiar"
 
 msgid "Manage hospitalizations"
-msgstr "Administrar hospitalizaciones"
+msgstr "Administro hospitalizaciones"
 
 msgid "Manage occupation"
-msgstr "Gestionar ocupación"
+msgstr "Gestiono ocupación"
 
 msgid "Manage procedures"
-msgstr "Administrar procedimientos"
+msgstr "Administro procedimientos"
 
 msgid "Manage vaccinations"
-msgstr "Administre vacunas"
+msgstr "Administro vacunas"
 
 msgid "Open EMR to ..."
-msgstr "Abra el RME a ..."
+msgstr "Abro el RME a ..."
 
 msgid "... issue level"
 msgstr "... nivel de problema"
@@ -18651,46 +19489,46 @@ msgid "Health Issue Actions:"
 msgstr "Acciones de Problemas de Salud:"
 
 msgid "Edit details"
-msgstr "Editar detalles"
+msgstr "Edito detalles"
 
 msgid "Open to encounter level"
-msgstr "Abrir hasta la etapa de consulta"
+msgstr "Abro hasta la etapa de consulta"
 
 msgid "Episode Actions:"
 msgstr "Acciones para el Episodio:"
 
 msgid "Promote"
-msgstr "Promocionar"
+msgstr "Promociono"
 
 msgid "Move encounters"
-msgstr "Mueva contactos"
+msgstr "Muevo contactos"
 
 msgid "Encounter Actions:"
 msgstr "Acciones para el contacto:"
 
 msgid "Move data to another episode"
-msgstr "Mover datos a otro episodio"
+msgstr "Muevo datos a otro episodio"
 
 msgid "Edit progress notes"
-msgstr "Editar notas de progreso"
+msgstr "Edito notas de progreso"
 
 msgid "Move progress notes"
-msgstr "Mover notas de progreso"
+msgstr "Muevo notas de progreso"
 
 msgid "Export for Medistar"
-msgstr "Exporte a Medistar"
+msgstr "Exporto a Medistar"
 
 msgid "Deleting episode"
-msgstr "Borrando episodio"
+msgstr "Borro episodio"
 
 msgid "Delete the episode if possible (it must be completely empty)."
-msgstr "Borrar el episodio si es posible (ha de estar completamente vacío)."
+msgstr "Borro el episodio si es posible (ha de estar completamente vacío)."
 
 msgid "No, cancel"
-msgstr "No, cancelar"
+msgstr "No, cancelo"
 
 msgid "Cancel and do NOT delete the episode."
-msgstr "Cancelar y NO borrar el episodio."
+msgstr "Cancelo y NO borro el episodio."
 
 #, python-format
 msgid ""
@@ -18712,10 +19550,10 @@ msgstr "Borrando problema de salud"
 
 msgid "Delete the health issue if possible (it must be completely empty)."
 msgstr ""
-"Borre el problema de salud, de ser posible (debe estar completamente vacío)."
+"Borro el problema de salud, de ser posible (debe estar completamente vacío)."
 
 msgid "Cancel and do NOT delete the health issue."
-msgstr "Cancelar y NO BORRAR el asunto de salud."
+msgstr "Cancelo y NO BORRO el asunto de salud."
 
 #, python-format
 msgid ""
@@ -18768,16 +19606,55 @@ msgstr "&Navego %s"
 msgid "&New notes %s"
 msgstr "&Nueva nota %s"
 
+msgid "Find text in EMR Journal"
+msgstr "Encuentro texto en diario del RME"
+
+#, fuzzy
+msgid "Modified"
+msgstr "Modificador:"
+
+#, fuzzy
+msgid "Clinical time"
+msgstr "Notas Clínicas"
+
+msgid "Who / When"
+msgstr "Quién / Cuándo"
+
+#, python-format
 msgid ""
-"An error occurred while retrieving the EMR\n"
-"in journal form for the active patient.\n"
+"Chart entry: %s       [#%s in %s]\n"
+" Modified: %s by %s (%s rev %s)\n"
 "\n"
-"Please check the log file for details."
+"Health issue: %s%s\n"
+"Episode: %s%s\n"
+"Encounter: %s%s"
+msgstr ""
+"Ingreso de cartilla: %s       [#%s in %s]\n"
+" Modificado: %s por %s (%s rev %s)\n"
+"\n"
+"Problema de salud: %s%s\n"
+"Episodio: %s%s\n"
+"Encuentro: %s%s"
+
+#, python-format
+msgid ""
+"%s\n"
+"\n"
+"                        rev %s (%s) by %s in <%s>"
 msgstr ""
-"Ha ocurrido un error al cargar el RME\n"
-"para el paciente activo.\n"
+"%s\n"
 "\n"
-"Por favor, revise el archivo de registro para ver los detalles."
+"                        rev %s (%s) por %s en <%s>"
+
+#, python-format
+msgid ""
+"%s\n"
+"%s\n"
+"%s"
+msgstr ""
+"%s\n"
+"%s\n"
+"%s"
 
 msgid "Editing tag"
 msgstr "Editando etiqueta"
@@ -18800,7 +19677,7 @@ msgid "Adding new tag"
 msgstr "Agregando nueva etiqueta"
 
 msgid "Cannot delete this tag. It is in use."
-msgstr "No se puede eliminar esta etiqueta. Está en uso."
+msgstr "No puedo eliminar esta etiqueta. Está en uso."
 
 msgid ""
 "\n"
@@ -18863,20 +19740,20 @@ msgid "Today's KOrganizer appointments ..."
 msgstr "Citas de KOrganizer para hoy ..."
 
 msgid "Reload"
-msgstr "Recargar"
+msgstr "Recargo"
 
 msgid "Reload appointments from KOrganizer"
-msgstr "Volver a cargar citas de KOrganizer"
+msgstr "Vuelvo a cargar citas de KOrganizer"
 
 msgid "Launch KOrganizer"
-msgstr "Lanzar KOrganizer"
+msgstr "Lanzo KOrganizer"
 
 msgid "KOrganizer is not installed."
 msgstr "KOrganizer no está instalado."
 
 #, python-format
 msgid "Cannot access KOrganizer transfer file [%s]"
-msgstr "No se puede acceder al archivo de transferencia de KOrganizer [%s]"
+msgstr "No puedo acceder al archivo de transferencia de KOrganizer [%s]"
 
 msgid "Place"
 msgstr "Lugar"
@@ -18922,17 +19799,14 @@ msgstr ""
 "\n"
 "%s\n"
 
-msgid "This patient DID receive care."
-msgstr "Este paciente SÍ recibió cuidados."
+msgid "This patient DID receive care here."
+msgstr "Este paciente SÍ recibió cuidados acá."
 
-msgid "This person did NOT receive care."
-msgstr "Este paciente NO ha sido atendido acá."
+msgid "This person did NOT receive care here."
+msgstr "Este paciente NO recibió cuidados acá."
 
 msgid "Disabling person"
-msgstr "Deshabilitando persona"
-
-msgid "Disabling patient"
-msgstr "Deshabilitando paciente"
+msgstr "Deshabilito persona"
 
 msgid "Type or select a last name (family name/surname)."
 msgstr "Escriba o seleccione un apellido (nombre de la familia/apellido)."
@@ -19050,7 +19924,7 @@ msgid "Adding new name"
 msgstr "Añadiendo nuevo nombre"
 
 msgid "Cannot delete the only name of a person."
-msgstr "No se puede borrar el nombre único de una persona."
+msgstr "No puedo borrar el nombre único de una persona."
 
 msgid "Cannot delete the active name of a person."
 msgstr "No puedo eliminar el nombre activo de una persona."
@@ -19295,6 +20169,9 @@ msgstr ""
 "\n"
 "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
 
+msgid "Connecting to backend"
+msgstr "Conecto con banco de datos"
+
 #, python-format
 msgid ""
 "Unable to connect to database:\n"
@@ -19536,13 +20413,13 @@ msgid "Patient photo could not be acquired from source."
 msgstr "La foto del paciente no pudo ser adquirida desde la fuente."
 
 msgid "Refresh from database"
-msgstr "Recargar desde base de datos"
+msgstr "Recargo desde base de datos"
 
 msgid "Acquire from imaging device"
-msgstr "Adquirir desde dispositivos de imagen"
+msgstr "Adquiero desde dispositivos de imagen"
 
 msgid "Import from file"
-msgstr "Importar desde un archivo"
+msgstr "Importo desde un archivo"
 
 msgid ""
 "Patient picture.\n"
@@ -19579,9 +20456,6 @@ msgstr "Organización"
 msgid "Office"
 msgstr "Oficina"
 
-msgid "State"
-msgstr "Estado"
-
 msgid "Zip"
 msgstr "Código postal"
 
@@ -19628,7 +20502,7 @@ msgid "Global Search Of Contacts Database"
 msgstr "Búsqueda Global de Contactos en Base de Datos"
 
 msgid "Export Area"
-msgstr "Exporto área"
+msgstr "Área de exportación"
 
 #, python-format
 msgid "loading plugin <%s>"
@@ -19637,26 +20511,26 @@ msgstr "Cargando módulo <%s>"
 msgid "EMR Timeline"
 msgstr "Linea de tiempo del RME"
 
-msgid "Show &Timeline"
-msgstr "Muestra linea del &tiempo"
+msgid "EMR &Timeline"
+msgstr "RME &Linea de tiempo"
 
 msgid "Overview"
-msgstr "Resumen\t"
+msgstr "Resumen"
 
 msgid "&Overview"
 msgstr "&Resumen"
 
 msgid "Attach documents"
-msgstr "Adjuntar documentos"
+msgstr "Adjunto documentos"
 
 msgid "&Attach documents"
-msgstr "&Adjunte documentos"
+msgstr "&Adjunto documentos"
 
 msgid "AU Vacc"
 msgstr "Vacunación (AU)"
 
 msgid "maintain vaccination history"
-msgstr "mantener historial de vacunaciones"
+msgstr "mantengo historial de vacunaciones"
 
 msgid "SimpleNotes"
 msgstr "Notas Simples"
@@ -19664,11 +20538,11 @@ msgstr "Notas Simples"
 msgid "&SimpleNotes"
 msgstr "Notas &Simples"
 
-msgid "EMR tree"
+msgid "EMR Tree"
 msgstr "Árbol RME"
 
-msgid "EMR &Tree (topical)"
-msgstr "RME &Arbol (tópicos)"
+msgid "EMR &Tree"
+msgstr "RME &Árbol"
 
 msgid "Print Manager"
 msgstr "Administrador de Impresión"
@@ -19676,6 +20550,12 @@ msgstr "Administrador de Impresión"
 msgid "&Print Manager"
 msgstr "Administrador de Im&presión"
 
+msgid "EMR Journal"
+msgstr "Diario RME"
+
+msgid "EMR &Journal (list)"
+msgstr "RME &Diario (lista)"
+
 msgid "Appointments"
 msgstr "Citas"
 
@@ -19688,11 +20568,17 @@ msgstr "diario de laboratorio"
 msgid "Show &lab journal"
 msgstr "Muestro diario de &laboratorio"
 
+msgid "PACS"
+msgstr "SCAI"
+
+msgid "&PACS"
+msgstr "&SCAI"
+
 msgid "Cardiac Devices"
 msgstr "Dispositivos cardíacos"
 
 msgid "Show &cardiac devices"
-msgstr "Muestra dispositivos &cardíacos"
+msgstr "Muestro dispositivos &cardíacos"
 
 msgid "Reports"
 msgstr "Informes"
@@ -19719,7 +20605,7 @@ msgstr ""
 "No hay una base de datos especificada en la configuración."
 
 msgid "   Find   "
-msgstr "   Busco"
+msgstr "   Encuentro  "
 
 msgid "Enter the name of the drug you are interested in"
 msgstr "Introduzca el nombre del medicamento que desea consultar"
@@ -19763,11 +20649,8 @@ msgstr "Manual"
 msgid "User &manual (local)"
 msgstr "&Manual de Usuario"
 
-msgid "EMR journal"
-msgstr "Diario RME"
-
-msgid "EMR &Journal (chronological)"
-msgstr "RME &Diario (cronológico)"
+msgid "EMR &Journal (text)"
+msgstr "RME &Diario (texto)"
 
 msgid "Demographics"
 msgstr "Datos Demográficos"
@@ -19938,6 +20821,9 @@ msgstr "Módulo de plantilla"
 msgid "Show &ExamplePlugin"
 msgstr "Muestro Módulo de &Ejemplo"
 
+msgid "Find text"
+msgstr "Encuentro texto"
+
 msgid "gm_ctl_client: starting slave GNUmed client"
 msgstr "gm_ctl_client: ejecutando cliente GNUmed esclavo"
 
@@ -19961,160 +20847,128 @@ msgstr ""
 "exitosamente, cambie nuevamente a esta ventana.\n"
 
 msgid "Connect to GNUmed"
-msgstr "Conectar a GNUMed"
+msgstr "Conecto a GNUMed"
 
 msgid "Proceed and try to connect to the newly started GNUmed client."
-msgstr "Proceda e intente conectarse al cliente GNUMed recién iniciado."
+msgstr "Procedo e intento conectar al cliente GNUMed recién iniciado."
 
 msgid "Abort"
-msgstr "Abortar"
+msgstr "Aborto"
 
 msgid "Abort and do NOT connect to GNUmed."
-msgstr "Abortar y NO conectar a GNUMed."
+msgstr "Aborto y NO conecto a GNUMed."
 
-#~ msgid "Primary address: state/province/county/..."
-#~ msgstr "Dirección principal: estado"
+#~ msgid "<type diff>"
+#~ msgstr "<type diff>"
 
 #~ msgid ""
-#~ "Sort entries by the \"health issue\" for which they are taken, then "
-#~ "\"substance\", then \"started\"."
+#~ "Health issue: %s%s%s (%s versions)\n"
+#~ "\n"
 #~ msgstr ""
-#~ "Ordene por  \"problema de salud\" para los cuales es ingerido, entonces "
-#~ "\"sustancia\", entonces \"comenzada\"."
+#~ "Problema de salud: %s%s%s (%s versiones)\n"
+#~ "\n"
 
 #~ msgid ""
-#~ "Sort entries by \"brand\", then \"substance\", then \"started\".\n"
+#~ "Episode: %s%s%s (%s versions)\n"
 #~ "\n"
-#~ "Thus each substance will only appear once unless it is really taken in "
-#~ "more than one preparation."
 #~ msgstr ""
-#~ "Ordene por \"marca\", luego \"sustancia\", luego \"fecha de inicio\".\n"
+#~ "Episodio: %s%s%s (%s versiones)\n"
 #~ "\n"
-#~ "Por ello cada sustancia solo aparecerá una vez a menos que sea ingerida "
-#~ "en más de una preparación."
 
 #~ msgid ""
-#~ "Sort entries by \"health issue\" and \"episode\" for which they are "
-#~ "taken, then \"substance\", then \"started\"."
+#~ "Encounter: %s%s%s (%s versions)\n"
+#~ "\n"
 #~ msgstr ""
-#~ "Ordene por \"problema de salud\" y \"episodio\" para las que son tomadas, "
-#~ "luego sustancia, luego fecha de inicio."
+#~ "Encuentro: %s%s%s (%s versiones)\n"
+#~ "\n"
 
-#~ msgid "Only:"
-#~ msgstr "Solo:"
+#~ msgid "soap_S"
+#~ msgstr "soap_S"
 
-#~ msgid "Run"
-#~ msgstr "Ejecute"
+#~ msgid "soap_O"
+#~ msgstr "soap_0"
 
-#~ msgid "Province"
-#~ msgstr "Provincia"
+#~ msgid "soap_A"
+#~ msgstr "soap_A"
 
-#~ msgid " Conversion unit: %s\n"
-#~ msgstr " Conversión de unidad: %s\n"
+#~ msgid "soap_P"
+#~ msgstr "soap_P"
 
-#~ msgid "Editing province"
-#~ msgstr "Editando provincia"
+#~ msgid "soap_U"
+#~ msgstr "soap_U"
 
-#~ msgid "Deleting province"
-#~ msgstr "Borrando provincia"
+#~ msgid "soap_Subjective"
+#~ msgstr "soap_Subjetivo"
 
-#~ msgid "Editing provinces ..."
-#~ msgstr "Editando provincia ...."
+#~ msgid "soap_Objective"
+#~ msgstr "soap_Objetivo"
 
-#~ msgid "Type or select a state/region/province/territory."
-#~ msgstr "Escriba o seleccione un estado/región/provincia/territorio."
+#~ msgid "soap_Assessment"
+#~ msgstr "soap_Apreciativo"
 
-#~ msgid ""
-#~ "You have selected the chart of a member of staff,\n"
-#~ "for whom privacy is especially important:\n"
-#~ "\n"
-#~ "  %s, %s\n"
-#~ "\n"
-#~ "This may be OK depending on circumstances.\n"
-#~ "\n"
-#~ "Please be aware that accessing person charts is\n"
-#~ "logged and that %s%s will be\n"
-#~ "notified of the access if you choose to proceed.\n"
-#~ "\n"
-#~ "Are you sure you want to draw this chart ?"
-#~ msgstr ""
-#~ "Ha seleccionado la cartilla de un miembro del equipo,\n"
-#~ "para el cual la privacidad es especialmente importante:\n"
-#~ "\n"
-#~ "  %s, %s\n"
-#~ "\n"
-#~ "Esto puede depender de las circunstancias.\n"
-#~ "\n"
-#~ "Por favor, tenga consciencia que el acceso a cartillas de personas está\n"
-#~ "registrado y que %s%s será\n"
-#~ "notificado/a del acceso si decide proceder.\n"
-#~ "\n"
-#~ "¿Está seguro/a que desea extraer esta cartilla?"
+#~ msgid "soap_Plan"
+#~ msgstr "soap_Plan"
 
-#~ msgid ""
-#~ "There is no chart for the following person yet:\n"
-#~ "\n"
-#~ " %s, %s\n"
-#~ "Do you want to create a new chart and\n"
-#~ "thusly turn this person into a patient ?"
-#~ msgstr ""
-#~ "No existe cartilla para la siguiente persona aún:\n"
-#~ "\n"
-#~ " %s, %s\n"
-#~ "¿Desea crear una nueva cartilla y,\n"
-#~ "por ende, convertir a esta persona en paciente?"
+#~ msgid "soap_Unspecified"
+#~ msgstr "soap_Inespecífico"
+
+#~ msgid "soap_Administrative"
+#~ msgstr "soap_Administrativo"
 
 #~ msgid ""
-#~ "This query requires a patient to be\n"
-#~ "active in the client.\n"
 #~ "\n"
-#~ "Please activate the patient you are interested\n"
-#~ "in and re-run the query.\n"
+#~ "current values:\n"
 #~ msgstr ""
-#~ "Esta consulta requiere que un paciente\n"
-#~ "esté activo en el cliente.\n"
 #~ "\n"
-#~ "Por favor, active el paciente en el que está interesado\n"
-#~ "y vuelva a generar la consulta.\n"
+#~ "valores actuales:\n"
 
-#~ msgid "Sent"
-#~ msgstr "Enviado"
+#~ msgid "no previous versions of this record"
+#~ msgstr "no hay versiones previas de este registro"
 
 #~ msgid ""
-#~ "Cannot load patient from Medical Manager MSVA file\n"
 #~ "\n"
-#~ " [%s]"
+#~ "all values with <audit_action>, <audit_when>, <audit_by> fields (current "
+#~ "value first):\n"
 #~ msgstr ""
-#~ "No puedo cargar el paciente desde una archivo de Administración Médica "
-#~ "MSVA\n"
 #~ "\n"
-#~ "[%s]"
+#~ "todos los valores con <audit_action>, <audit_when>, <audit_by> fields "
+#~ "(valores actuales primero):\n"
 
-#~ msgid "Activating MSVA patient"
-#~ msgstr "Activando paciente MSVA"
+#~ msgid "Row fields (as one line)"
+#~ msgstr "Campos de fila (en una linea)"
 
-#~ msgid "%s: %s%s%s (%s ago)"
-#~ msgstr "%s: %s%s%s (%s atrás)"
+#~ msgid "Row fields (as multiple lines)"
+#~ msgstr "Campos de fila (como lineas múltiples)"
 
-#~ msgid "Configure the default province/region/state for person creation."
-#~ msgstr ""
-#~ "Configura provincia/región/estado por defecto para la creación de "
-#~ "personas."
+#~ msgid "Copy to clipboard..."
+#~ msgstr "Copio al portapapeles"
+
+#~ msgid "Append to clipboard..."
+#~ msgstr "Agrego al portapapeles ..."
+
+#~ msgid "Search in list"
+#~ msgstr "Busco en lista"
+
+#~ msgid "&Subjective"
+#~ msgstr "&Subjetivo"
+
+#~ msgid "&Objective"
+#~ msgstr "&Objetivo"
 
-#~ msgid "&Load external"
-#~ msgstr "&Cargue externo"
+#~ msgid "&Assessment"
+#~ msgstr "&Evaluación"
 
-#~ msgid "Export to GDT"
-#~ msgstr "Exporte a GDT"
+#~ msgid "&Plan"
+#~ msgstr "&Plan"
 
-#~ msgid "Clinical hint"
-#~ msgstr "Ayuda clínica"
+#~ msgid "&Unspecified"
+#~ msgstr "&Inespecífico"
 
-#~ msgid "More info"
-#~ msgstr "Más información"
+#~ msgid "ad&Ministrative"
+#~ msgstr "ad&Ministrativo"
 
-#~ msgid "Go to [%s]"
-#~ msgstr "Vaya a [%s]"
+#~ msgid "Show &Timeline"
+#~ msgstr "Muestro linea del &tiempo"
 
-#~ msgid "Data ID"
-#~ msgstr "ID de datos"
+#~ msgid "EMR tree"
+#~ msgstr "Árbol RME"
diff --git a/client/po/fr-gnumed.mo b/client/po/fr-gnumed.mo
index 91267a0..a86dcad 100644
Binary files a/client/po/fr-gnumed.mo and b/client/po/fr-gnumed.mo differ
diff --git a/client/po/fr.po b/client/po/fr.po
index 2e34374..1c63005 100644
--- a/client/po/fr.po
+++ b/client/po/fr.po
@@ -10,7 +10,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gnumed 0.1\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-12-26 20:28+0100\n"
+"POT-Creation-Date: 2016-03-17 16:27+0100\n"
 "PO-Revision-Date: 2012-06-01 01:16+0000\n"
 "Last-Translator: ncq <Unknown>\n"
 "Language-Team: FR <LL at li.org>\n"
@@ -1600,12 +1600,24 @@ msgid ""
 "--------------"
 msgstr "Aide demandé"
 
+#, fuzzy, python-format
+msgid "Revision #%s"
+msgstr " Nouvelle version: %s"
+
 #, python-format
 msgid "[%s:%s]: row not updated (nothing returned), row in use ?"
 msgstr ""
 "[%s:%s] : échec de la mise à jour de la ligne (aucun retour). Ligne en cours "
 "d'utilisation ?"
 
+#, fuzzy, python-format
+msgid "<%s(.bat)> not found"
+msgstr "Page introuvable"
+
+#, fuzzy, python-format
+msgid "problem with <%s>"
+msgstr "Problème"
+
 #, python-format
 msgid "[%s] is not a readable file"
 msgstr "[%s] n'est pas un fichier lisible"
@@ -1642,26 +1654,9 @@ msgstr "1 octet"
 msgid "%s Bytes"
 msgstr "%s Octets"
 
-#, python-format
-msgid ""
-"Cannot connect to configuration database with:\n"
-"\n"
-"[%s]"
-msgstr ""
-"Impossible de se connecter sur la base de donnée de configuration avec:\n"
-"\n"
-"[%s]"
-
-#, fuzzy, python-format
-msgid ""
-"Cannot connect to database with:\n"
-"\n"
-"[%s]"
-msgstr ""
-"Impossible de se connecter à la base donnée sans identifiant de connexion"
-
-msgid "No product information available."
-msgstr "Pas d'information disponible sur ce produit"
+#, fuzzy
+msgid "<type>"
+msgstr "type"
 
 #, python-format
 msgid ""
@@ -2019,109 +2014,6 @@ msgstr " option [%s]: %s"
 msgid "  risk: %s"
 msgstr "  risque: %s"
 
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Are you sure you have got a local database installed ?\n"
-"\n"
-"Please retry with proper credentials or cancel.\n"
-"\n"
-"You may also need to check the PostgreSQL client\n"
-"authentication configuration in pg_hba.conf. For\n"
-"details see:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-msgstr ""
-"Impossible de se connecter à la base de données.\n"
-"\n"
-"%s\n"
-"\n"
-"Êtes-vous certain d'avoir installé une base de donnée?\n"
-"\n"
-"S'il vous plaît, réessayez avec les bonnes informations d'authentification "
-"ou annulez.\n"
-"\n"
-"Il faudrait peut-être vérifier les informations d'authentification du client "
-"PostgreSQL dans le fichier de configuration pg_hba.conf. Pour plus "
-"d'informations, visitez:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Please retry with proper credentials or cancel.\n"
-"\n"
-"You may also need to check the PostgreSQL client\n"
-"authentication configuration in pg_hba.conf. For\n"
-"details see:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-msgstr ""
-"Impossible de se connecter à la base de données.\n"
-"\n"
-"%s\n"
-"\n"
-"S'il vous plaît, réessayez avec les bonnes informations d'authentification "
-"ou annulez.\n"
-"\n"
-"Il faudrait peut-être vérifier les informations d'authentification du client "
-"PostgreSQL dans le fichier de configuration pg_hba.conf. Pour plus "
-"d'informations, visitez:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-
-msgid "Connecting to backend"
-msgstr "Connection au «back-end»"
-
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Please retry another backend / user / password combination !\n"
-msgstr ""
-"Impossible de se connecter à la base de données.\n"
-"\n"
-"%s\n"
-"\n"
-"S'il vous plaît, veuillez essayer une autre combinaison de «back-end» / nom "
-"d'utilisateur / mot de passe.\n"
-
-msgid "programmer forgot to specify error message"
-msgstr "Le programmeur a oublié de spécifier un message d'erreur"
-
-msgid ""
-"\n"
-"\n"
-"Please consult the error log for all the gory details !"
-msgstr ""
-"\n"
-"\n"
-"Veuillez consulter le journal d'erreurs pour de plus amples informations !"
-
-msgid "generic error message"
-msgstr "Message d'erreur"
-
-msgid "programmer forgot to specify info message"
-msgstr "Le programmeur a oublié de spécifier le message d'information"
-
-msgid "generic info message"
-msgstr "Message d'information générique"
-
-msgid "programmer forgot to specify warning"
-msgstr "Le programmeur a oublié de spécifier le message d'avertissement"
-
-msgid "generic warning message"
-msgstr "Message d'avertissement générique"
-
 msgid "no hook specified, please report bug"
 msgstr "Pas de correspondance définie, merci de signaler le bug"
 
@@ -2477,6 +2369,34 @@ msgstr "Trier par:"
 msgid "Include:"
 msgstr "Inclure:"
 
+#, fuzzy
+msgid "&Search"
+msgstr "Chercher"
+
+msgid "Suggest"
+msgstr ""
+
+msgid "Set"
+msgstr ""
+
+msgid "dialog_1"
+msgstr ""
+
+msgid "Search patients in Orthanc DICOM store."
+msgstr ""
+
+#, fuzzy
+msgid "Suggest a patient ID based on the active patient."
+msgstr "Impossible de lister les rencontres. Aucun patient actif."
+
+#, fuzzy
+msgid "Search term:"
+msgstr "Chercher par"
+
+#, fuzzy
+msgid "New patient ID:"
+msgstr "patient ID interne"
+
 msgid "Your review"
 msgstr "Votre examen"
 
@@ -2862,6 +2782,110 @@ msgstr "Substance"
 msgid "Amount"
 msgstr "Quantité"
 
+#, fuzzy
+msgid "&Connect"
+msgstr "&Contacts"
+
+#, fuzzy
+msgid "&Browse"
+msgstr "Consulter"
+
+#, fuzzy
+msgid "<not connected>"
+msgstr "Modifier la vaccination"
+
+#, fuzzy
+msgid "Browse all"
+msgstr "Consulter"
+
+#, fuzzy
+msgid "Export all"
+msgstr "Exporter"
+
+msgid "Browse"
+msgstr "Consulter"
+
+msgid "Export"
+msgstr "Exporter"
+
+#, fuzzy
+msgid "Upload"
+msgstr "Recharger"
+
+#, fuzzy
+msgid "Enter the PACS host address."
+msgstr "Indiquez le numéro dans la voie."
+
+msgid "Enter the PACS port."
+msgstr ""
+
+#, fuzzy
+msgid "Enter the PACS user."
+msgstr "Indiquez la quantité prise."
+
+#, fuzzy
+msgid "Enter the PACS password. It will not be shown."
+msgstr ""
+"Mot de passe pour le nouveau compte de la base de données. Les caractères ne "
+"seront pas affichés."
+
+#, fuzzy
+msgid "Connect to PACS."
+msgstr "Se connecter à GNUmed"
+
+msgid "Browse PACS at top level."
+msgstr ""
+
+msgid "Modify some of Orthanc content (such as patient IDs)."
+msgstr ""
+
+#, fuzzy
+msgid "Browse overview of studies for this patient."
+msgstr ""
+"\n"
+"Compléter l'historique des vaccinations de ce patient.\n"
+
+#, fuzzy
+msgid "Copy all studies into export area."
+msgstr "Ajouter un nouveau vaccin"
+
+#, fuzzy
+msgid "Browse topmost selected study."
+msgstr "Modifier l'objet sélectionné."
+
+#, fuzzy
+msgid "Copy selected studies into export area."
+msgstr "Ajouter un nouveau vaccin"
+
+#, fuzzy
+msgid "Save selected studies to disk."
+msgstr "Déplacer les objets sélectionnés de la gauche vers la droite."
+
+msgid ""
+"Upload DICOM files from a directory, recursively, into the Orthanc PACS\n"
+"\n"
+"The currently active patient does not matter. Orthanc will associate "
+"uploaded files with the patient found within the DICOM metadata. It will "
+"create new patients as needed."
+msgstr ""
+
+msgid "Host:"
+msgstr ""
+
+msgid "Port:"
+msgstr ""
+
+#, fuzzy
+msgid "User:"
+msgstr "Utilisateur"
+
+msgid "Password"
+msgstr "Mot de passe"
+
+#, fuzzy
+msgid "Selected studies:"
+msgstr "choisir"
+
 msgid "Fake brand"
 msgstr "Nom commercial factice"
 
@@ -3228,9 +3252,6 @@ msgstr "Message d'erreur"
 msgid "&Load"
 msgstr "Charger un nouveau"
 
-msgid "Export"
-msgstr "Exporter"
-
 msgid "A long, descriptive name for this form template."
 msgstr "Un nom descriptif pour ce modéle de formulaire."
 
@@ -3327,15 +3348,13 @@ msgstr "&cliniquement significatif"
 msgid "Document Properties"
 msgstr "Propriétés du document"
 
-msgid "Show part"
-msgstr ""
+#, fuzzy
+msgid "Show"
+msgstr "Afficher :"
 
 msgid "Remove part"
 msgstr "Supprimer une partie"
 
-msgid "Parts"
-msgstr "Parties"
-
 msgid "Discard"
 msgstr "Abandonner"
 
@@ -3374,6 +3393,10 @@ msgid "Required: The primary episode this document is to be listed under."
 msgstr ""
 "Requis : l'épisode principal sous lequel ce document doit être affiché."
 
+#, fuzzy
+msgid "Optional: The organization (unit) this document originated from."
+msgstr "Nom de l'organisation."
+
 msgid ""
 "Optional: A short comment identifying the document. Good comments give an "
 "idea of the content and source of the document."
@@ -3408,6 +3431,9 @@ msgstr ""
 "Si le document rapporte des résultats cliniquement pertinents. Notez que ces "
 "résultats peuvent être aussi bien normaux qu'anormaux."
 
+msgid "Optional: A free-text document description."
+msgstr "Optionnel : une description libre du document."
+
 msgid "This field lists the parts belonging to the current document."
 msgstr "Ce champ liste les parties du document actuel."
 
@@ -3421,9 +3447,6 @@ msgstr ""
 "Supprimer les parties sélectionnées dans la liste ci-dessus. Une "
 "confirmation sera demandée avant la suppression définitive du disque."
 
-msgid "Optional: A free-text document description."
-msgstr "Optionnel : une description libre du document."
-
 msgid "Save finished document."
 msgstr ""
 
@@ -3441,6 +3464,10 @@ msgstr "Date de création:"
 msgid "Associate to episode:"
 msgstr "Associé à l'épisode :"
 
+#, fuzzy
+msgid "Document source:"
+msgstr "Documents:"
+
 msgid "Comment / Identification:"
 msgstr ""
 
@@ -3645,8 +3672,9 @@ msgstr "Affiche tous les messages sélectionnés dans votre boîte de réception
 msgid "Messages:"
 msgstr "Message"
 
-msgid "Only:"
-msgstr ""
+#, fuzzy
+msgid "Limit to:"
+msgstr "commence à :"
 
 msgid "&Myself … or:"
 msgstr "&Moi-même ... ou :"
@@ -3763,12 +3791,13 @@ msgstr "Terminé"
 msgid "Purpose"
 msgstr "Objet"
 
+#, fuzzy
+msgid "Please supply your email address here !"
+msgstr "Veuillez entrer votre adresse email."
+
 msgid "Details"
 msgstr "Details"
 
-msgid "<Please supply your email address here !>"
-msgstr ""
-
 msgid "Keep running"
 msgstr ""
 
@@ -3790,9 +3819,11 @@ msgid ""
 msgstr ""
 
 msgid ""
-"Please enter your email address so we can provide feedback directly to you. "
-"Otherwise, feedback will be given on the GNUmed mailing list (http://lists."
-"gnu.org/mailman/listinfo/gnumed-bugs)."
+"Please enter your email address so we can provide help to you directly.\n"
+"\n"
+"Otherwise, feedback can be given on the GNUmed mailing list (http://lists."
+"gnu.org/mailman/listinfo/gnumed-bugs) ONLY to which you will then have to "
+"subscribe."
 msgstr ""
 
 msgid "Find help on http://wiki.gnumed.de, too."
@@ -3927,9 +3958,6 @@ msgstr "Paramètres d'utilisateur."
 msgid "Account"
 msgstr "Compte"
 
-msgid "Password"
-msgstr "Mot de passe"
-
 msgid "Password, again"
 msgstr "Mot de passe, à nouveau"
 
@@ -4481,8 +4509,9 @@ msgstr "Modifier les propriétés du document"
 msgid "Acquire images from image source (scanner, ...)."
 msgstr ""
 
-msgid "Acquire images or text from the clipboard."
-msgstr ""
+#, fuzzy
+msgid "Acquire file or text from the clipboard."
+msgstr "Supprimer le(s) objet(s) sélectionné(s) de la liste."
 
 #, fuzzy
 msgid "Remove the selected documents."
@@ -4645,7 +4674,7 @@ msgid ""
 "- the result list will be artificially limited to the first 1000 rows\n"
 "- you can include a column named \"pk_patient\" to make the result rows "
 "activate the corresponding patient on double-clicking\n"
-"- by inserting $<ID_active_patient>$ you can access the patient ID of the "
+"- by inserting $<ID_ACTIVE_PATIENT>$ you can access the patient ID of the "
 "patient active at the time of running the query"
 msgstr ""
 "Entrez la commande SQL a lancer ici. Ça ne change rien que vous mettiez ou "
@@ -4837,9 +4866,6 @@ msgstr "&Link"
 msgid "Link &new"
 msgstr "Lier &nouvelle"
 
-msgid "Browse"
-msgstr "Consulter"
-
 msgid ""
 "Search for matches among existing addresses and [Link] a selection, or [Link "
 "(a) new] address."
@@ -4897,27 +4923,17 @@ msgstr ""
 "Sélectionnez ici si vous approuvez la décision de résultats cliniquement "
 "significatifs."
 
-msgid "label_1"
-msgstr "champ_1"
-
-msgid "→"
-msgstr "→"
-
-#, fuzzy
-msgid "←"
-msgstr "→"
-
-msgid "Extra"
-msgstr ""
+msgid "Subjective"
+msgstr "Subjectif"
 
-msgid "Move selected items from left to right."
-msgstr "Déplacer les objets sélectionnés de la gauche vers la droite."
+msgid "Objective"
+msgstr "Objectif"
 
-msgid "Move selected items from right to left."
-msgstr "Déplacer les objets sélectionnés de la droite vers la gauche."
+msgid "Assessment"
+msgstr "Estimation"
 
-msgid "Cancel picking items."
-msgstr "Annuler la sélection d'objets."
+msgid "Plan"
+msgstr "Prévision"
 
 #, fuzzy
 msgid "Episode synopsis"
@@ -4963,20 +4979,30 @@ msgid ""
 "narrative belongs to."
 msgstr ""
 
-msgid "Subjective"
-msgstr "Subjectif"
-
 msgid "Codes:"
 msgstr "Codes:"
 
-msgid "Objective"
-msgstr "Objectif"
+msgid "label_1"
+msgstr "champ_1"
 
-msgid "Assessment"
-msgstr "Estimation"
+msgid "→"
+msgstr "→"
 
-msgid "Plan"
-msgstr "Prévision"
+#, fuzzy
+msgid "←"
+msgstr "→"
+
+msgid "Extra"
+msgstr ""
+
+msgid "Move selected items from left to right."
+msgstr "Déplacer les objets sélectionnés de la gauche vers la droite."
+
+msgid "Move selected items from right to left."
+msgstr "Déplacer les objets sélectionnés de la droite vers la gauche."
+
+msgid "Cancel picking items."
+msgstr "Annuler la sélection d'objets."
 
 msgid "1"
 msgstr "1"
@@ -5177,6 +5203,91 @@ msgstr ""
 msgid "Age range"
 msgstr ""
 
+msgid "&Nicotine"
+msgstr ""
+
+msgid "&Alcohol"
+msgstr ""
+
+#, fuzzy
+msgid "&Other:"
+msgstr "Autre"
+
+msgid "&Non-harmful use"
+msgstr ""
+
+msgid "&Harmful use"
+msgstr ""
+
+msgid "Presently &addicted"
+msgstr ""
+
+#, fuzzy
+msgid "Previously &addicted"
+msgstr "Rencontres précédentes"
+
+msgid "&Reconfirm as of today"
+msgstr ""
+
+#, fuzzy
+msgid "Select for documenting smoking status."
+msgstr "Maintient des antécédents de vaccination"
+
+msgid "Select for documenting alcohol use status."
+msgstr ""
+
+msgid ""
+"Select for documenting use of substances other than nicotine or alcohol."
+msgstr ""
+
+#, fuzzy
+msgid "Select the abused substance."
+msgstr "Indiquez la quantité prise."
+
+msgid ""
+"Select if the substance use is not considered harmful (say, no use or non-"
+"harmful use)."
+msgstr ""
+
+msgid "Select if substance is use considered harmful."
+msgstr ""
+
+#, fuzzy
+msgid "Select if the patient is presently addicted to this substance."
+msgstr "Sélectionnez ceci si le patient n'a aucunes allergies."
+
+#, fuzzy
+msgid "Select if the patient was previously addicted to this substance."
+msgstr "Sélectionnez ceci si le patient n'a aucunes allergies."
+
+msgid ""
+"A comment on this substance use:\n"
+"- type of product used\n"
+"- frequency\n"
+"- amount\n"
+"- when started\n"
+"- attempts to quit\n"
+"..."
+msgstr ""
+
+msgid ""
+"When did the patient quit?\n"
+"\n"
+"You can also set a target quit date here."
+msgstr ""
+
+#, fuzzy
+msgid "Check here to confirm for today."
+msgstr "Configuration de la page pour l'impression"
+
+#, fuzzy
+msgid "Quit date"
+msgstr "date"
+
+#, fuzzy
+msgid "Last confirmed"
+msgstr "Dernier confirmé:"
+
 msgid "Closed episodes"
 msgstr "Épisodes cloturés"
 
@@ -5556,21 +5667,20 @@ msgstr ""
 msgid "Show:"
 msgstr "Afficher :"
 
-msgid "Brand by component"
-msgstr "Marque par composant"
+#, fuzzy
+msgid "Kidneys"
+msgstr "Rein"
 
 msgid "Brands"
 msgstr "Noms commerciaux"
 
 #, fuzzy
-msgid "Kidneys"
-msgstr "Rein"
-
-msgid "Unbranded substance"
-msgstr "Substance sans marque"
+msgid "Substances"
+msgstr "Substance"
 
-msgid "Manage"
-msgstr "Gérer"
+#, fuzzy
+msgid "&Unknown or date:"
+msgstr "réaction inconnue"
 
 msgid "Approved of"
 msgstr "Approuvé"
@@ -5584,12 +5694,17 @@ msgstr "Par plan"
 msgid "... Reason"
 msgstr "... Cause"
 
+#, fuzzy
 msgid ""
-"A component of a drug brand the patient is taking.\n"
+"A drug the patient is taking.\n"
+"\n"
+"Lookup and select an intake by either of\n"
+"- a generic substance name\n"
+"- a drug brand name\n"
+"- an active ingredient of a drug\n"
 "\n"
-"Lookup, and select, a single- (or multi-) component drug brand, by active "
-"ingredient name. All components of multi-component drugs will be displayed "
-"and automatically added to the patient's list."
+"Note that all components of multi-component drugs will be displayed and "
+"automatically added to the patient's list."
 msgstr ""
 "Un élément du médicament que le patient prend.\n"
 "\n"
@@ -5597,21 +5712,9 @@ msgstr ""
 "principe actif. Tous les éléments seront affichés et automatiquement ajoutés "
 "à la liste du patient."
 
-msgid ""
-"Manage drug brands.\n"
-"\n"
-"Note that this will not select a component for you. What it does is to let "
-"you manage (add/edit/delete) the drug products/brands known to GNUmed from "
-"which you can select a component."
-msgstr ""
-"Gère les marques de médicaments.\n"
-"\n"
-"Notez que cela ne sélectionnera pas un élément pour vous. Cela vous permet "
-"de gérer (ajouter/modifier/supprimer) les médicaments/marques enregistrées "
-"dans GNUmed, à partir desquels vous pourrez sélectionner un élément."
-
-msgid "The active ingredients of this brand."
-msgstr "Les ingrédients actifs de cette marque."
+#, fuzzy
+msgid "Details on the selected drug."
+msgstr "Modifier l'objet sélectionné."
 
 #, fuzzy
 msgid "Show cardiac information relevant to substance selection."
@@ -5626,9 +5729,17 @@ msgstr ""
 "disponible."
 
 msgid ""
-"The non-branded medication or non-medication substance, with optional "
-"strength."
+"Manage drug brands.\n"
+"\n"
+"Note that this will not select a component for you. What it does is to let "
+"you manage (add/edit/delete) the drug products/brands known to GNUmed from "
+"which you can select a component."
 msgstr ""
+"Gère les marques de médicaments.\n"
+"\n"
+"Notez que cela ne sélectionnera pas un élément pour vous. Cela vous permet "
+"de gérer (ajouter/modifier/supprimer) les médicaments/marques enregistrées "
+"dans GNUmed, à partir desquels vous pourrez sélectionner un élément."
 
 msgid ""
 "Manage consumable substances.\n"
@@ -5640,11 +5751,20 @@ msgstr ""
 msgid "The preparation or form of the substance."
 msgstr "Préparation ou forme pharmaceutique de la substance."
 
+#, fuzzy
+msgid "Check here if the start date simply isn't known."
+msgstr "Cochez si c'est au sujet du patient en cours."
+
 msgid ""
 "When was this substance started to be consumed or - if not known - the "
 "earliest it is known to have been be consumed."
 msgstr ""
 
+msgid ""
+"A coment on the certainty of the start date, such as \"+/- 3 weeks\", "
+"\"spring of 2002\", \"shortly after Easter 1996\", ...."
+msgstr ""
+
 msgid "Whether this substance is taken by advice."
 msgstr "Si cette substance est prise par avis"
 
@@ -5680,6 +5800,17 @@ msgstr "Appuyez si la cessation a été planifiée comme prévue."
 msgid "Reason for discontinuation."
 msgstr "Raison de cessation"
 
+msgid "Drug"
+msgstr "Molécule"
+
+#, fuzzy
+msgid "Research:"
+msgstr "Chercher"
+
+#, fuzzy
+msgid "Certainty:"
+msgstr "Certitude"
+
 msgid "Schedule"
 msgstr "Calendrier"
 
@@ -5842,6 +5973,34 @@ msgstr ""
 msgid "Channel"
 msgstr "Canal"
 
+#, fuzzy
+msgid "&Last modification time"
+msgstr "Dernière modification :"
+
+#, fuzzy
+msgid "&Entry time"
+msgstr "Démarré"
+
+msgid "Show journal ordered by encounter."
+msgstr ""
+
+msgid "Show journal ordered by time of last modification."
+msgstr ""
+
+msgid "Show journal ordered by actual clinical time of each entry."
+msgstr ""
+
+#, fuzzy
+msgid "Edit the selected chart entry."
+msgstr "Modifier l'objet sélectionné."
+
+#, fuzzy
+msgid "Delete selected chart entry."
+msgstr "Sélectionnez le type de visite"
+
+msgid "Order by:"
+msgstr ""
+
 msgid "Chec&k"
 msgstr ""
 
@@ -6493,12 +6652,16 @@ msgstr "Mesurations"
 msgid "Documents:"
 msgstr "Documents:"
 
+msgid "&L"
+msgstr ""
+
 #, fuzzy
 msgid "&N"
 msgstr "&Nouveau"
 
-msgid "&L"
-msgstr ""
+#, fuzzy
+msgid "List all encounters."
+msgstr "Lister toutes les rencontres, incluant celles vides."
 
 #, fuzzy
 msgid "The encounter."
@@ -6508,10 +6671,6 @@ msgstr "Déplacer les rencontres"
 msgid "Start a new encounter for the active patient."
 msgstr "Impossible de lister les rencontres. Aucun patient actif."
 
-#, fuzzy
-msgid "List all encounters."
-msgstr "Lister toutes les rencontres, incluant celles vides."
-
 msgid "Clinically relevant"
 msgstr "Cliniquement significatif"
 
@@ -6803,10 +6962,14 @@ msgstr ""
 msgid "Manage dynamic hints."
 msgstr "Vaccins affichés."
 
+#, fuzzy
 msgid ""
 "Rationale for\n"
-"suppression"
+"suppression\n"
+"for this patient"
 msgstr ""
+"\n"
+"Compléter l'historique des vaccinations de ce patient.\n"
 
 msgid "Save &under"
 msgstr "Enregistrer &sous"
@@ -6876,6 +7039,12 @@ msgstr ""
 msgid "Encounter:"
 msgstr "Consultation :"
 
+msgid "Manage"
+msgstr "Gérer"
+
+msgid "&Panel:"
+msgstr ""
+
 msgid "&Pick"
 msgstr "&Prendre"
 
@@ -6933,6 +7102,10 @@ msgstr ""
 "\n"
 "Pour désactiver cette fenêtre, laissez le message vide."
 
+#, fuzzy
+msgid "Show search dialog."
+msgstr "Fermer cette boîte de dialogue."
+
 msgid "THIS IS NOT A VERIFIED MEASUREMENT. DO NOT USE FOR ACTUAL CARE."
 msgstr ""
 
@@ -7223,40 +7396,126 @@ msgstr "*possède* des allergies"
 msgid "ERROR: unknown allergy state [%s]"
 msgstr "ERREUR: état des allergies inconnu [%s]"
 
-msgid "Medication history"
-msgstr "Historique des traitements"
+msgid "definite"
+msgstr ""
 
 #, fuzzy
-msgid "copy of printed prescription"
-msgstr "Erreur de lancement du script [%s]."
+msgid "indefinite"
+msgstr "&Déterminé"
 
 #, fuzzy
-msgid "prescription data"
-msgstr "Prescriptions"
+msgid "Reaction:"
+msgstr "reactions"
 
-msgid "in use"
-msgstr ""
+#, fuzzy
+msgid "Noted:"
+msgstr "&Note"
 
-msgid "long-term"
-msgstr "long-terme"
+#, fuzzy
+msgid "Allergene:"
+msgstr "Allergies"
 
-msgid "short-term"
-msgstr "court-terme"
+#, fuzzy
+msgid "Substance:"
+msgstr "Substance"
 
-msgid "?short-term"
-msgstr "?long-terme"
+#, fuzzy
+msgid "Code:"
+msgstr "Codes:"
 
-msgid "ongoing"
-msgstr "courant"
+msgid "ATC:"
+msgstr ""
 
-msgid "inactive"
-msgstr "inactif"
+#, fuzzy
+msgid "Specific to:"
+msgstr "commence à :"
 
-msgid "?ongoing"
-msgstr "?encours"
+#, fuzzy
+msgid "this substance only"
+msgstr "Modifier la prise du traitement sélectionné."
 
-#, python-format
-msgid "Substance intake entry (%s, %s)   [#%s]                     \n"
+#, fuzzy
+msgid "drug class"
+msgstr "Classes de médicaments"
+
+#, fuzzy
+msgid "unknown"
+msgstr "Inconnu"
+
+#, fuzzy
+msgid "Generics:"
+msgstr "Nom Générique"
+
+msgid "Medication history"
+msgstr "Historique des traitements"
+
+#, fuzzy
+msgid "copy of printed prescription"
+msgstr "Erreur de lancement du script [%s]."
+
+#, fuzzy
+msgid "prescription data"
+msgstr "Prescriptions"
+
+#, fuzzy
+msgid "Consumable substance"
+msgstr "Substance sans marque"
+
+msgid "in use"
+msgstr ""
+
+msgid "w/"
+msgstr ""
+
+msgid "long-term"
+msgstr "long-terme"
+
+msgid "short-term"
+msgstr "court-terme"
+
+msgid "?short-term"
+msgstr "?long-terme"
+
+msgid "ongoing"
+msgstr "courant"
+
+msgid "inactive"
+msgstr "inactif"
+
+msgid "?ongoing"
+msgstr "?encours"
+
+#, python-format
+msgid ""
+"Substance abuse entry                                              [#%s]\n"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "Substance: %s [#%s]%s\n"
+msgstr "Substance"
+
+#, fuzzy, python-format
+msgid "Use type: %s\n"
+msgstr "Patient :"
+
+#, fuzzy, python-format
+msgid "Last checked: %s\n"
+msgstr "Dernière modification le : %s\n"
+
+#, python-format
+msgid " Discontinued %s\n"
+msgstr ""
+
+#, fuzzy, python-format
+msgid " Notes: %s\n"
+msgstr "Patient :"
+
+#, python-format
+msgid "Revision: #%(row_ver)s, %(mod_when)s by %(mod_by)s."
+msgstr ""
+
+#, python-format
+msgid "Substance intake entry (%s, %s)   [#%s]                     \n"
 msgstr ""
 
 msgid "active, needs check"
@@ -7271,9 +7530,6 @@ msgstr "approuvé(e)"
 msgid "unapproved"
 msgstr "non approuvé(e)"
 
-msgid "definite"
-msgstr ""
-
 msgid "suspected"
 msgstr ""
 
@@ -7320,10 +7576,6 @@ msgid " (short-term)"
 msgstr " (court terme)"
 
 #, python-format
-msgid " Discontinued %s\n"
-msgstr ""
-
-#, python-format
 msgid " Reason: %s\n"
 msgstr ""
 
@@ -7343,18 +7595,62 @@ msgstr "Problème de santé: %s"
 msgid " Advice: %s\n"
 msgstr ""
 
-#, python-format
-msgid "Revision: #%(row_ver)s, %(mod_when)s by %(mod_by)s."
+#, fuzzy
+msgid "medication, not abuse"
+msgstr "Questions et réponses"
+
+msgid "no or non-harmful use"
+msgstr ""
+
+msgid "presently harmful use"
+msgstr ""
+
+msgid "presently addicted"
+msgstr ""
+
+msgid "previously addicted"
 msgstr ""
 
 #, fuzzy, python-format
-msgid "%s: %s ago"
+msgid "%s%s: %s ago%s"
 msgstr "Exporté: %s\n"
 
 #, fuzzy, python-format
-msgid "%s: %s ago (%s)"
+msgid "%s%s: %s ago (%s)"
+msgstr "%s %s (%s aujourd'hui !)"
+
+#, fuzzy, python-format
+msgid "%s%s%s (%s ago)"
+msgstr "%s %s (%s aujourd'hui !)"
+
+#, fuzzy, python-format
+msgid "%s%s%s (%s ago, %s)"
 msgstr "%s %s (%s aujourd'hui !)"
 
+#, python-format
+msgid "%s ago"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "in %s"
+msgstr "Commentaire (%s): %%s"
+
+#, fuzzy, python-format
+msgid ", until %s (%s)"
+msgstr "Exporté: %s\n"
+
+#, python-format
+msgid " (planned for %s%s)"
+msgstr ""
+
+#, python-format
+msgid ", planned for %s%s"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "%s ago (for %s: %s %s %s)"
+msgstr " Durée : %s (%s - %s)"
+
 msgid "Additional notes"
 msgstr "Notes additionnelles"
 
@@ -7367,13 +7663,37 @@ msgstr "Liste de la médication"
 msgid "ordered by brand"
 msgstr "classé par nom commercial"
 
-msgid "Drug"
-msgstr "Molécule"
-
 #, fuzzy
 msgid "Regimen / Advice"
 msgstr "Régime"
 
+#, fuzzy, python-format
+msgid "Component of %s (%s)"
+msgstr "Composants"
+
+#, fuzzy, python-format
+msgid "ATC (substance): %s"
+msgstr "Ajouter une substance."
+
+#, python-format
+msgid "ATC (brand): %s"
+msgstr ""
+
+msgid "this is a component of a fake brand"
+msgstr ""
+
+#, fuzzy
+msgid "Components:"
+msgstr "Composants"
+
+#, fuzzy
+msgid "this is a fake brand"
+msgstr "Nom commercial factice"
+
+#, fuzzy
+msgid "this is a vaccine"
+msgstr "vaccin"
+
 msgid "units"
 msgstr "unités"
 
@@ -7407,52 +7727,15 @@ msgid "Expires: %s\n"
 msgstr "Exporté: %s\n"
 
 #, fuzzy
-msgid "Active clinical hint"
-msgstr "Problemes actifs"
-
-#, fuzzy
-msgid "Inactive clinical hint"
-msgstr "sauvegarde des notes cliniques dans l'EMR"
+msgid "HL7 Source"
+msgstr "Source HTML"
 
-#, python-format
-msgid "Source: %s\n"
+msgid "HL7 data size"
 msgstr ""
 
 #, fuzzy, python-format
-msgid "Language: %s\n"
-msgstr "Langue"
-
-#, fuzzy
-msgid "Suppressed active dynamic hint"
-msgstr "Vaccins affichés."
-
-#, fuzzy
-msgid "Suppressed inactive dynamic hint"
-msgstr "Vaccins affichés."
-
-#, fuzzy, python-format
-msgid "Suppressed by: %s\n"
-msgstr "Exporté: %s\n"
-
-#, fuzzy, python-format
-msgid "Suppressed at: %s\n"
-msgstr "Exporté: %s\n"
-
-#, fuzzy, python-format
-msgid "Hint #: %s\n"
-msgstr "Patient #%s"
-
-#, fuzzy, python-format
-msgid "Patient #: %s\n"
-msgstr "Patient #%s"
-
-#, fuzzy, python-format
-msgid "MD5 (currently): %s\n"
-msgstr "Documents: %s"
-
-#, python-format
-msgid "MD5 (at suppression): %s\n"
-msgstr ""
+msgid "%s bytes"
+msgstr "%s Octets"
 
 #, fuzzy
 msgid "HL7 Message"
@@ -7510,14 +7793,6 @@ msgid "doc: %s"
 msgstr "   Doc: %s"
 
 #, fuzzy
-msgid "no patient photograph available"
-msgstr "aucun commentaire disponible"
-
-#, python-format
-msgid "patient photograph from %s"
-msgstr ""
-
-#, fuzzy
 msgid "Patient data for"
 msgstr "Patient"
 
@@ -7528,6 +7803,10 @@ msgstr ""
 msgid "Patient data export"
 msgstr "Envoyer un rapport"
 
+#, fuzzy
+msgid "no patient photograph available"
+msgstr "aucun commentaire disponible"
+
 msgid "Documents"
 msgstr "Documents"
 
@@ -7538,6 +7817,10 @@ msgstr ""
 msgid "browse documents area"
 msgstr "Attacher des documents"
 
+#, python-format
+msgid "patient photograph from %s"
+msgstr ""
+
 #, fuzzy
 msgid "Browse patient data"
 msgstr "Fusionner les patients"
@@ -7583,24 +7866,24 @@ msgstr "Erreur à l'exécution de pdftk : conversion en PDF impossible."
 #, python-format
 msgid ""
 "%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s %(suburb)s, "
-"%(code_state)s, %(code_country)s"
+"%(code_region)s, %(code_country)s"
 msgstr ""
 
 #, python-format
 msgid ""
 "%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s %(suburb)s, "
-"%(code_state)s, %(code_country)s"
+"%(code_region)s, %(code_country)s"
 msgstr ""
 
 #, python-format
 msgid ""
-"%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_state)s, "
-"%(code_country)s"
+"%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, "
+"%(code_region)s, %(code_country)s"
 msgstr ""
 
 #, python-format
 msgid ""
-"%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_state)s, "
+"%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_region)s, "
 "%(code_country)s"
 msgstr ""
 
@@ -7610,30 +7893,30 @@ msgid ""
 " Street: %(street)s%(notes_street)s\n"
 " Number/Unit: %(number)s%(subunit)s%(notes_subunit)s\n"
 " Location: %(zip)s %(urb)s%(suburb)s\n"
-" Region: %(l10n_state)s, %(code_state)s\n"
+" Region: %(l10n_region)s, %(code_region)s\n"
 " Country: %(l10n_country)s, %(code_country)s"
 msgstr ""
 "Addresse [#%(pk_adr)s]\n"
 " Rue: %(street)s%(notes_street)s\n"
 " Numéro/Bâtiment: %(number)s%(subunit)s%(notes_subunit)s\n"
 " Ville: %(zip)s %(urb)s%(suburb)s\n"
-" Code postal: %(l10n_state)s, %(code_state)s\n"
+" Code postal: %(l10n_region)s, %(code_region)s\n"
 " Pays: %(l10n_country)s, %(code_country)s"
 
-#, python-format
+#, fuzzy, python-format
 msgid ""
 "Address [#%(pk_adr)s]\n"
 " Street: %(street)s%(notes_street)s\n"
 " Number/Unit: %(number)s%(subunit)s%(notes_subunit)s\n"
 " Location: %(zip)s %(urb)s%(suburb)s\n"
-" Region: %(l10n_state)s, %(code_state)s\n"
+" Region: %(l10n_region)s, %(code_region)s\n"
 " Country: %(l10n_country)s, %(code_country)s"
 msgstr ""
 "Addresse [#%(pk_adr)s]\n"
 " Rue: %(street)s%(notes_street)s\n"
 " Numéro/Bâtiment: %(number)s%(subunit)s%(notes_subunit)s\n"
 " Ville: %(zip)s %(urb)s%(suburb)s\n"
-" Code postal: %(l10n_state)s, %(code_state)s\n"
+" Code postal: %(l10n_region)s, %(code_region)s\n"
 " Pays: %(l10n_country)s, %(code_country)s"
 
 msgid "Textual keyword expansion"
@@ -7703,49 +7986,139 @@ msgstr "résultat corrigé"
 msgid "missing, reported later"
 msgstr "manquant, pour plus tard"
 
-msgid "original entry"
-msgstr "Entrée originale"
+msgid "Health issue"
+msgstr "épisode de santé"
 
-msgid "modified entry"
-msgstr "entrée modifiée"
+#, fuzzy
+msgid "External care"
+msgstr "Code externe"
 
-#, python-format
-msgid "%s: encounter (%s)"
-msgstr "%s : consultation (%s)"
+msgid "Vaccination"
+msgstr "Vaccination"
 
-#, python-format
-msgid "health issue: %s"
-msgstr "Problème de santé: %s"
+#, fuzzy
+msgid "Clinical narrative"
+msgstr "Clinique"
 
-#, python-format
-msgid "episode     : %s"
-msgstr "episode     : %s"
+#, fuzzy
+msgid "Test result"
+msgstr "Résultats du test"
 
-#, fuzzy, python-format
-msgid ""
-"Medical problems: %(problems)s\n"
-"Total encounters: %(encounters)s\n"
-"Total EMR entries: %(items)s\n"
-"Active medications: %(active_drugs)s\n"
-"Documents: %(documents)s\n"
-"Test results: %(results)s\n"
-"Hospitalizations: %(stays)s\n"
-"Procedures: %(procedures)s\n"
-"Vaccinations: %(vaccinations)s"
-msgstr ""
-"Problèmes médicaux: %(problems)s\n"
-"Nombre total de rencontres: %(encounters)s\n"
-"Nombre total de dossiers: %(items)s\n"
-"Traitement actuel: %(active_drugs)s\n"
-"Documents: %(documents)s\n"
-"Résultats d'analyse: %(results)s\n"
-"Hospitalisations: %(stays)s\n"
-"Procédures: %(procedures)s\n"
-"Vaccinations: %(vaccinations)s"
+#, fuzzy
+msgid "Substance intake"
+msgstr "Substance"
 
-#, fuzzy, python-format
-msgid " %s known problems, clinically relevant thereof:\n"
-msgstr " %s problèmes connus. Cliniquement pertinent:\n"
+#, fuzzy
+msgid "Hospital stay"
+msgstr "Hôpital"
+
+#, fuzzy
+msgid "Performed procedure"
+msgstr ""
+" %s Procédures effectuées\n"
+"\n"
+
+#, fuzzy
+msgid "Family history"
+msgstr "Antécédents Familiaux"
+
+#, fuzzy
+msgid "Document"
+msgstr "Documents"
+
+#, python-format
+msgid "unmapped entry type from table [%s]"
+msgstr ""
+
+#, python-format
+msgid "cannot instantiate clinical root item <%s(%s)>"
+msgstr ""
+
+msgid "True"
+msgstr ""
+
+msgid "False"
+msgstr ""
+
+#, fuzzy
+msgid "unknown smoking status"
+msgstr "Maintient des antécédents de vaccination"
+
+msgid "non-smoker"
+msgstr ""
+
+msgid "current smoker"
+msgstr ""
+
+msgid "ex-smoker"
+msgstr ""
+
+msgid "tobacco addiction"
+msgstr ""
+
+msgid "no or non-harmful alcohol use"
+msgstr ""
+
+msgid "harmful alcohol use"
+msgstr ""
+
+#, fuzzy
+msgid "unknown alcohol use"
+msgstr "État d'allergie inconnu"
+
+msgid "no or non-harmful drug use"
+msgstr ""
+
+msgid "harmful drug use"
+msgstr ""
+
+#, fuzzy
+msgid "unknown drug use"
+msgstr "État d'allergie inconnu"
+
+msgid "original entry"
+msgstr "Entrée originale"
+
+msgid "modified entry"
+msgstr "entrée modifiée"
+
+#, python-format
+msgid "%s: encounter (%s)"
+msgstr "%s : consultation (%s)"
+
+#, python-format
+msgid "health issue: %s"
+msgstr "Problème de santé: %s"
+
+#, python-format
+msgid "episode     : %s"
+msgstr "episode     : %s"
+
+#, fuzzy, python-format
+msgid ""
+"Medical problems: %(problems)s\n"
+"Total encounters: %(encounters)s\n"
+"Total EMR entries: %(items)s\n"
+"Active medications: %(active_drugs)s\n"
+"Documents: %(documents)s\n"
+"Test results: %(results)s\n"
+"Hospitalizations: %(stays)s\n"
+"Procedures: %(procedures)s\n"
+"Vaccinations: %(vaccinations)s"
+msgstr ""
+"Problèmes médicaux: %(problems)s\n"
+"Nombre total de rencontres: %(encounters)s\n"
+"Nombre total de dossiers: %(items)s\n"
+"Traitement actuel: %(active_drugs)s\n"
+"Documents: %(documents)s\n"
+"Résultats d'analyse: %(results)s\n"
+"Hospitalisations: %(stays)s\n"
+"Procédures: %(procedures)s\n"
+"Vaccinations: %(vaccinations)s"
+
+#, fuzzy, python-format
+msgid " %s known problems, clinically relevant thereof:\n"
+msgstr " %s problèmes connus. Cliniquement pertinent:\n"
 
 #, python-format
 msgid " %s known problems\n"
@@ -7806,14 +8179,6 @@ msgstr "Passe-temps"
 msgid "Vaccinations"
 msgstr "Vaccinations"
 
-#, python-format
-msgid "%s ago"
-msgstr ""
-
-#, fuzzy
-msgid "External care"
-msgstr "Code externe"
-
 #, fuzzy
 msgid "Allergies/Intolerances"
 msgstr "allergies/intolérances"
@@ -7907,6 +8272,87 @@ msgid ""
 "The account was deactivated instead."
 msgstr ""
 
+msgid "SOAP_char_S=S"
+msgstr ""
+
+msgid "SOAP_char_O=O"
+msgstr ""
+
+msgid "SOAP_char_A=A"
+msgstr ""
+
+msgid "SOAP_char_P=P"
+msgstr ""
+
+msgid "SOAP_char_U=U"
+msgstr ""
+
+msgid "SOAP_string_Subjective=Subjective"
+msgstr ""
+
+msgid "SOAP_string_Objective=Objective"
+msgstr ""
+
+msgid "SOAP_string_Assessment=Assessment"
+msgstr ""
+
+msgid "SOAP_string_Plan=Plan"
+msgstr ""
+
+msgid "SOAP_string_Unspecified=Unspecified"
+msgstr ""
+
+msgid "SOAP_string_Administrative=Administrative"
+msgstr ""
+
+#, fuzzy
+msgid "Active clinical hint"
+msgstr "Problemes actifs"
+
+#, fuzzy
+msgid "Inactive clinical hint"
+msgstr "sauvegarde des notes cliniques dans l'EMR"
+
+#, python-format
+msgid "Source: %s\n"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "Language: %s\n"
+msgstr "Langue"
+
+#, fuzzy
+msgid "Suppressed active dynamic hint"
+msgstr "Vaccins affichés."
+
+#, fuzzy
+msgid "Suppressed inactive dynamic hint"
+msgstr "Vaccins affichés."
+
+#, fuzzy, python-format
+msgid "Suppressed by: %s\n"
+msgstr "Exporté: %s\n"
+
+#, fuzzy, python-format
+msgid "Suppressed at: %s\n"
+msgstr "Exporté: %s\n"
+
+#, fuzzy, python-format
+msgid "Hint #: %s\n"
+msgstr "Patient #%s"
+
+#, fuzzy, python-format
+msgid "Patient #: %s\n"
+msgstr "Patient #%s"
+
+#, fuzzy, python-format
+msgid "MD5 (currently): %s\n"
+msgstr "Documents: %s"
+
+#, python-format
+msgid "MD5 (at suppression): %s\n"
+msgstr ""
+
 #, python-format
 msgid "Device(%s):"
 msgstr "Périphérique(%s):"
@@ -7933,6 +8379,12 @@ msgstr "Impédance:"
 msgid "Praxis branch                   #%s\n"
 msgstr " Nom commercial : %%s [#%s]\n"
 
+#, python-format
+msgid ""
+"FN:%(l10n_unit_category)s %(branch)s of %(l10n_organization_category)s "
+"%(praxis)s"
+msgstr ""
+
 msgid "Privacy notice"
 msgstr ""
 
@@ -7946,41 +8398,6 @@ msgstr ""
 msgid "%s: Staff member %s has been notified of your chart access."
 msgstr ""
 
-msgid "soap_S"
-msgstr "soap_S"
-
-msgid "soap_O"
-msgstr "soap_O"
-
-msgid "soap_A"
-msgstr "soap_A"
-
-msgid "soap_P"
-msgstr "soap_P"
-
-#, fuzzy
-msgid "soap_U"
-msgstr "soap_S"
-
-msgid "soap_Subjective"
-msgstr "soap_Subjectif"
-
-msgid "soap_Objective"
-msgstr "soap_Objectif"
-
-msgid "soap_Assessment"
-msgstr "soap_Appréciation"
-
-msgid "soap_Plan"
-msgstr "soap_Plan"
-
-#, fuzzy
-msgid "soap_Unspecified"
-msgstr "soap_Objectif"
-
-msgid "soap_Administrative"
-msgstr "soap_Administratif"
-
 #, python-format
 msgid ""
 "%s: %s by %.8s (v%s)\n"
@@ -8049,9 +8466,17 @@ msgid "%(last)s,%(title)s %(first)s%(nick)s (%(sex)s)"
 msgstr ""
 
 #, python-format
+msgid "%(last)s,%(title)s %(first)s (%(sex)s)"
+msgstr ""
+
+#, python-format
 msgid "%(last)s,%(title)s %(first)s%(nick)s"
 msgstr ""
 
+#, python-format
+msgid "%(last)s,%(title)s %(first)s"
+msgstr ""
+
 msgid "Cannot merge active patient into another patient."
 msgstr "Impossible de fusionner un patient actif avec un autre patient."
 
@@ -8063,9 +8488,6 @@ msgstr "aucun n'est associé"
 msgid "merged"
 msgstr "Fusionner"
 
-msgid "preferred name/call name/..."
-msgstr ""
-
 msgid "invalid age: DOB in the future"
 msgstr "Age invalide: Date de Naissance dans le futur"
 
@@ -8078,10 +8500,6 @@ msgstr "M."
 msgid "Mrs"
 msgstr "Mme"
 
-#, fuzzy
-msgid "unknown"
-msgstr "Inconnu"
-
 msgid "empty status"
 msgstr ""
 
@@ -8429,7 +8847,7 @@ msgid " Part %s: %s %s(%s Bytes)\n"
 msgstr "%s %s (%s aujourd'hui !)"
 
 #, fuzzy, python-format
-msgid " Filename: %s\n"
+msgid " Filename: %s%s\n"
 msgstr "Nom de Fichier"
 
 #, fuzzy
@@ -8444,19 +8862,26 @@ msgstr "partie"
 msgid "%s parts"
 msgstr "(%s patients)"
 
+#, fuzzy, python-format
+msgid "%s of %s"
+msgstr "Unité : %s (%s)"
+
 #, python-format
 msgid ""
 "%s (%s)   #%s\n"
-"\n"
 " Created: %s\n"
 " Episode: %s\n"
-"%s%s%s"
+"%s%s%s%s"
 msgstr ""
 
 #, python-format
 msgid " External reference: %s\n"
 msgstr ""
 
+#, fuzzy, python-format
+msgid " Organization: %%s @ %s\n"
+msgstr "Organisation: %s (%s)"
+
 msgid "Cannot run [arriba] !"
 msgstr "Impossible d'exécuter [arriba] !"
 
@@ -8818,26 +9243,9 @@ msgid "External care:"
 msgstr "Code externe"
 
 #, fuzzy, python-format
-msgid ""
-"health issue: %s%s%s\n"
-"\n"
+msgid "Health issue: %s%s%s"
 msgstr "Problème de santé: %s"
 
-#, fuzzy
-msgid ""
-"\n"
-"current values:\n"
-msgstr "<état des allergies>"
-
-msgid "no previous versions of this record"
-msgstr ""
-
-msgid ""
-"\n"
-"all values with <audit_action>, <audit_when>, <audit_by> fields (current "
-"value first):\n"
-msgstr ""
-
 msgid "Unattributed episodes"
 msgstr "Rencontres non-attribuées"
 
@@ -8859,9 +9267,6 @@ msgstr " Durée : %s (%s - %s)"
 msgid "finished"
 msgstr "terminé"
 
-msgid "Health issue"
-msgstr "épisode de santé"
-
 msgid "none associated"
 msgstr "aucun n'est associé"
 
@@ -8898,9 +9303,7 @@ msgid "Measurements and Results:"
 msgstr "Mesures et résultats:"
 
 #, fuzzy, python-format
-msgid ""
-"episode: %s%s%s\n"
-"\n"
+msgid "Episode: %s%s%s"
 msgstr "Episode %s%s%s   [#%s]"
 
 #, python-format
@@ -8928,9 +9331,7 @@ msgid "%s other episodes touched upon during this encounter:"
 msgstr "%s autres épisodes mentionnés pendant cette rencontre :"
 
 #, fuzzy, python-format
-msgid ""
-"encounter: %s%s%s\n"
-"\n"
+msgid "Encounter: %s%s%s"
 msgstr "Rencontres: %s (%s - %s)"
 
 msgid " (ongoing)"
@@ -8956,10 +9357,6 @@ msgstr "Hôpital"
 msgid "Procedures"
 msgstr "Procédure"
 
-#, fuzzy
-msgid "Substances"
-msgstr "Substance"
-
 msgid "Life events"
 msgstr ""
 
@@ -8984,9 +9381,6 @@ msgstr ""
 msgid "Cannot display timeline."
 msgstr "Créer une nouvelle chronologie"
 
-msgid "Vaccination"
-msgstr "Vaccination"
-
 msgid "Lab result"
 msgstr "Résultat de labo"
 
@@ -9069,9 +9463,6 @@ msgstr "Quand"
 msgid "Exported: %s\n"
 msgstr "Exporté: %s\n"
 
-msgid "emr-journal"
-msgstr "journal-dmp"
-
 msgid "Chronological EMR Journal\n"
 msgstr "Journal EMR chronologique\n"
 
@@ -9355,16 +9746,7 @@ msgstr ""
 msgid "Select one or more codes that apply."
 msgstr ""
 
-msgid "Cannot move progress notes. No active patient."
-msgstr ""
-
-msgid "Moving progress notes between encounters ..."
-msgstr "Déplacement des notes en cours entre deux rencontres ..."
-
-msgid ""
-"\n"
-" Select the progress notes to move from the list !\n"
-"\n"
+msgid "Select the narrative you are interested in ..."
 msgstr ""
 
 msgid "when"
@@ -9376,17 +9758,152 @@ msgstr "qui"
 msgid "entry"
 msgstr ""
 
-msgid "Cannot edit progress notes. No active patient."
+msgid "There is no narrative for this episode in this encounter."
 msgstr ""
 
-msgid "Deleting progress note"
+msgid "Must select episode to move narrative to first."
 msgstr ""
 
-msgid ""
-"Are you positively sure you want to delete this\n"
-"progress note from the medical record ?\n"
-"\n"
-"Note that even if you chose to delete the entry it will\n"
+msgid "Last"
+msgstr ""
+
+#, fuzzy
+msgid "In health issue"
+msgstr "Problème de santé: %s"
+
+msgid "Most recent notes on selected problem"
+msgstr ""
+
+#, python-format
+msgid "%s (active+potential) problems"
+msgstr ""
+
+#, python-format
+msgid "%s active problems"
+msgstr ""
+
+msgid "Current encounter:"
+msgstr ""
+
+msgid "Cumulative summary"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "Most recent info on %s%s%s"
+msgstr " Plus récent : %s - %s"
+
+#, python-format
+msgid ""
+"Cannot open progress note editor for\n"
+"\n"
+"[%s].\n"
+"\n"
+msgstr ""
+
+msgid "opening progress note editor"
+msgstr ""
+
+msgid "Cannot save all editors. Some were kept open."
+msgstr ""
+
+msgid "new problem"
+msgstr ""
+
+msgid ""
+"Are you sure you really want to\n"
+"discard this progress note ?\n"
+msgstr ""
+
+msgid "Discarding progress note"
+msgstr ""
+
+msgid "There are unsaved progress notes !\n"
+msgstr ""
+
+msgid "Unsaved progress notes"
+msgstr ""
+
+#, fuzzy
+msgid "Problem list"
+msgstr "Problème"
+
+#, fuzzy
+msgid "Saving SOAP note"
+msgstr "Enregistrer le vaccin"
+
+msgid "Do you want to save the SOAP note ?"
+msgstr ""
+
+#, python-format
+msgid "&Filter by problem %s%s%s"
+msgstr ""
+
+msgid "Cannot save SimpleNotes SOAP note."
+msgstr ""
+
+#, fuzzy, python-format
+msgid "Progress note: %s%s"
+msgstr "Notes de progrès"
+
+#, fuzzy
+msgid "Please enter a name for the new problem:"
+msgstr "Saisir un nom descriptif pour ce nouveau problème :"
+
+#, fuzzy
+msgid "Adding a problem"
+msgstr "problème"
+
+msgid "Cannot delete problem. There is still clinical data recorded for it."
+msgstr ""
+
+#, python-format
+msgid "GNUmed: configuring [%s] (%s plugins)"
+msgstr ""
+
+msgid "loading list of plugins                               "
+msgstr ""
+
+msgid "failed"
+msgstr "Echec"
+
+msgid "success"
+msgstr "succès"
+
+#, python-format
+msgid ""
+"previous: %s (%s)\n"
+"current (%s/%s): %s"
+msgstr ""
+"précédent: %s (%s)\n"
+"actuel (%s/%s): %s"
+
+#, python-format
+msgid "Cannot switch to [%s]: no patient selected"
+msgstr "Impossible de commuter sur [%s] : aucun patient sélectionné"
+
+msgid "Cannot move progress notes. No active patient."
+msgstr ""
+
+msgid "Moving progress notes between encounters ..."
+msgstr "Déplacement des notes en cours entre deux rencontres ..."
+
+msgid ""
+"\n"
+" Select the progress notes to move from the list !\n"
+"\n"
+msgstr ""
+
+msgid "Cannot edit progress notes. No active patient."
+msgstr ""
+
+msgid "Deleting progress note"
+msgstr ""
+
+msgid ""
+"Are you positively sure you want to delete this\n"
+"progress note from the medical record ?\n"
+"\n"
+"Note that even if you chose to delete the entry it will\n"
 "still be (invisibly) kept in the audit trail to protect\n"
 "you from litigation because physical deletion is known\n"
 "to be unlawful in some jurisdictions.\n"
@@ -9584,367 +10101,110 @@ msgid ""
 " Now, mark the entries you want to include in your report.\n"
 msgstr ""
 
-msgid "Select the narrative you are interested in ..."
-msgstr ""
-
-msgid "There is no narrative for this episode in this encounter."
+msgid "Pick a date ..."
 msgstr ""
 
-msgid "Must select episode to move narrative to first."
+msgid "<ALT-C/K>: pick from (c/k)alendar"
 msgstr ""
 
-msgid "Last"
+msgid "Cannot interpret input as timestamp."
 msgstr ""
 
-#, fuzzy
-msgid "In health issue"
-msgstr "Problème de santé: %s"
-
-msgid "Most recent notes on selected problem"
-msgstr ""
+msgid "No vaccines were chosen"
+msgstr "Aucun vaccin n'a été choisi"
 
 #, python-format
-msgid "%s (active+potential) problems"
+msgid "Combination of indications , %s , not found in any vaccine"
 msgstr ""
 
-#, python-format
-msgid "%s active problems"
+msgid "Sequence"
 msgstr ""
 
-msgid "Current encounter:"
+msgid "Batch"
 msgstr ""
 
-msgid "Cumulative summary"
+msgid "Vaccinator"
 msgstr ""
 
-#, fuzzy, python-format
-msgid "Most recent info on %s%s%s"
-msgstr " Plus récent : %s - %s"
-
-#, python-format
 msgid ""
-"Cannot open progress note editor for\n"
-"\n"
-"[%s].\n"
-"\n"
-msgstr ""
-
-msgid "opening progress note editor"
+"Vaccinations by Recommender (X = patient on regime, O = patient not on "
+"regime) "
 msgstr ""
 
-msgid "Cannot save all editors. Some were kept open."
+msgid "enrolled regime vaccinations not yet given"
 msgstr ""
 
-msgid "new problem"
-msgstr ""
+#, fuzzy
+msgid "Proceed with "
+msgstr "Executer une connexion."
 
-msgid ""
-"Are you sure you really want to\n"
-"discard this progress note ?\n"
+#, python-format
+msgid "Failed to enrol patient in %s"
 msgstr ""
 
-msgid "Discarding progress note"
+#, python-format
+msgid "Failed to  delist patient from %s"
 msgstr ""
 
-msgid "There are unsaved progress notes !\n"
+msgid "Missing GNUmed module"
 msgstr ""
 
-msgid "Unsaved progress notes"
+#, python-format
+msgid ""
+"GNUmed detected that parts of it are not\n"
+"properly installed. The following message\n"
+"names the missing part:\n"
+"\n"
+" \"%s\"\n"
+"\n"
+"Please make sure to get the missing\n"
+"parts installed. Otherwise some of the\n"
+"functionality will not be accessible."
 msgstr ""
 
 #, fuzzy, python-format
-msgid "Synopsis (%s)"
-msgstr "Unité : %s (%s)"
+msgid ""
+"\n"
+" Source: %s"
+msgstr "Source"
 
+#, fuzzy, python-format
 msgid ""
-"Enter a short working name for this new problem\n"
-"(which will become a new, unassociated episode):\n"
-msgstr ""
+"\n"
+" Code: %s"
+msgstr "Fermé"
 
 #, python-format
 msgid ""
-"Enter a short working name for this new\n"
-"episode under the existing health issue\n"
 "\n"
-"\"%s\":\n"
+" Details (first 250 characters):\n"
+"%s\n"
+"%s\n"
+"%s"
 msgstr ""
 
-msgid "Creating problem (episode) to save notelet under ..."
-msgstr ""
+#, fuzzy
+msgid "Access violation"
+msgstr "Abréviation"
 
-msgid "Cannot save a new problem without a name."
+#, python-format
+msgid ""
+"You do not have access to this part of GNUmed.\n"
+"\n"
+"%s"
 msgstr ""
 
-msgid "saving progress note"
+msgid "Lost connection"
 msgstr ""
 
-#, python-format
 msgid ""
-"The new episode:\n"
-"\n"
-" \"%s\"\n"
+"Since you were last working in GNUmed,\n"
+"your database connection timed out.\n"
 "\n"
-"will remain unassociated despite the editor\n"
-"having been invoked from the health issue:\n"
+"This GNUmed session is now expired.\n"
 "\n"
-" \"%s\""
-msgstr ""
-
-msgid "You need to actually set an editor."
-msgstr ""
-
-#, python-format
-msgid "The command [%s] is not found."
-msgstr ""
-
-#, python-format
-msgid ""
-"Enter the shell command with which to start\n"
-"the image editor for visual progress notes.\n"
-"\n"
-"Any \"%(img)s\" included with the arguments\n"
-"will be replaced by the file name of the\n"
-"note template."
-msgstr ""
-
-msgid "Choose file to use as template for new visual progress note"
-msgstr ""
-
-msgid "Visual progress note source"
-msgstr ""
-
-msgid "From which source do you want to pick the image template ?"
-msgstr ""
-
-msgid "Database"
-msgstr ""
-
-msgid "List of templates in the database."
-msgstr ""
-
-msgid "Files in the filesystem."
-msgstr ""
-
-msgid "Device"
-msgstr ""
-
-msgid "Image capture devices (scanners, cameras, etc)"
-msgstr ""
-
-#, python-format
-msgid "Cannot export visual progress note template for [%s]."
-msgstr ""
-
-msgid "Cannot export visual progress note to file."
-msgstr ""
-
-msgid "Editor for visual progress note not configured."
-msgstr ""
-
-#, python-format
-msgid ""
-"There was a problem with running the editor\n"
-"for visual progress notes.\n"
-"\n"
-" [%s]\n"
-"\n"
-msgstr ""
-
-msgid "Editing visual progress note"
-msgstr ""
-
-#, python-format
-msgid ""
-"There was a problem reading the visual\n"
-"progress note from the file:\n"
-"\n"
-" [%s]\n"
-"\n"
-msgstr ""
-
-msgid "Saving visual progress note"
-msgstr ""
-
-msgid ""
-"You either created a visual progress note from a template\n"
-"in the database (rather than from a file on disk) or you\n"
-"edited an existing visual progress note.\n"
-"\n"
-"The template/original was not modified at all, however.\n"
-"\n"
-"Do you still want to save the unmodified image as a\n"
-"visual progress note into the EMR of the patient ?\n"
-msgstr ""
-
-msgid "visual progress notes"
-msgstr ""
-
-#, python-format
-msgid "Created: %s"
-msgstr ""
-
-#, fuzzy
-msgid "Problem list"
-msgstr "Problème"
-
-#, fuzzy
-msgid "Saving SOAP note"
-msgstr "Enregistrer le vaccin"
-
-msgid "Do you want to save the SOAP note ?"
-msgstr ""
-
-#, python-format
-msgid "&Filter by problem %s%s%s"
-msgstr ""
-
-msgid "Cannot save SimpleNotes SOAP note."
-msgstr ""
-
-#, fuzzy, python-format
-msgid "Progress note: %s%s"
-msgstr "Notes de progrès"
-
-#, fuzzy
-msgid "Please enter a name for the new problem:"
-msgstr "Saisir un nom descriptif pour ce nouveau problème :"
-
-#, fuzzy
-msgid "Adding a problem"
-msgstr "problème"
-
-msgid "Cannot delete problem. There is still clinical data recorded for it."
-msgstr ""
-
-#, python-format
-msgid "GNUmed: configuring [%s] (%s plugins)"
-msgstr ""
-
-msgid "loading list of plugins                               "
-msgstr ""
-
-msgid "failed"
-msgstr "Echec"
-
-msgid "success"
-msgstr "succès"
-
-#, python-format
-msgid ""
-"previous: %s (%s)\n"
-"current (%s/%s): %s"
-msgstr ""
-"précédent: %s (%s)\n"
-"actuel (%s/%s): %s"
-
-#, python-format
-msgid "Cannot switch to [%s]: no patient selected"
-msgstr "Impossible de commuter sur [%s] : aucun patient sélectionné"
-
-msgid "Pick a date ..."
-msgstr ""
-
-msgid "<ALT-C/K>: pick from (c/k)alendar"
-msgstr ""
-
-msgid "Cannot interpret input as timestamp."
-msgstr ""
-
-msgid "No vaccines were chosen"
-msgstr "Aucun vaccin n'a été choisi"
-
-#, python-format
-msgid "Combination of indications , %s , not found in any vaccine"
-msgstr ""
-
-msgid "Sequence"
-msgstr ""
-
-msgid "Batch"
-msgstr ""
-
-msgid "Vaccinator"
-msgstr ""
-
-msgid ""
-"Vaccinations by Recommender (X = patient on regime, O = patient not on "
-"regime) "
-msgstr ""
-
-msgid "enrolled regime vaccinations not yet given"
-msgstr ""
-
-#, fuzzy
-msgid "Proceed with "
-msgstr "Executer une connexion."
-
-#, python-format
-msgid "Failed to enrol patient in %s"
-msgstr ""
-
-#, python-format
-msgid "Failed to  delist patient from %s"
-msgstr ""
-
-msgid "Missing GNUmed module"
-msgstr ""
-
-#, python-format
-msgid ""
-"GNUmed detected that parts of it are not\n"
-"properly installed. The following message\n"
-"names the missing part:\n"
-"\n"
-" \"%s\"\n"
-"\n"
-"Please make sure to get the missing\n"
-"parts installed. Otherwise some of the\n"
-"functionality will not be accessible."
-msgstr ""
-
-#, fuzzy, python-format
-msgid ""
-"\n"
-" Source: %s"
-msgstr "Source"
-
-#, fuzzy, python-format
-msgid ""
-"\n"
-" Code: %s"
-msgstr "Fermé"
-
-#, python-format
-msgid ""
-"\n"
-" Details (first 250 characters):\n"
-"%s\n"
-"%s\n"
-"%s"
-msgstr ""
-
-#, fuzzy
-msgid "Access violation"
-msgstr "Abréviation"
-
-#, python-format
-msgid ""
-"You do not have access to this part of GNUmed.\n"
-"\n"
-"%s"
-msgstr ""
-
-msgid "Lost connection"
-msgstr ""
-
-msgid ""
-"Since you were last working in GNUmed,\n"
-"your database connection timed out.\n"
-"\n"
-"This GNUmed session is now expired.\n"
-"\n"
-"You will have to close this client and\n"
-"restart a new GNUmed session."
+"You will have to close this client and\n"
+"restart a new GNUmed session."
 msgstr ""
 
 msgid ""
@@ -10372,11 +10632,74 @@ msgid "due now: booster for %s in schedule \"%s\" (%s)"
 msgstr ""
 
 #, fuzzy, python-format
-msgid "Latest: %s ago (%s %s %s %s%s)"
-msgstr "  votre temps: %s - %s (@%s = %s%s)\n"
-
+msgid "Synopsis (%s)"
+msgstr "Unité : %s (%s)"
+
+msgid ""
+"Enter a short working name for this new problem\n"
+"(which will become a new, unassociated episode):\n"
+msgstr ""
+
+#, python-format
+msgid ""
+"Enter a short working name for this new\n"
+"episode under the existing health issue\n"
+"\n"
+"\"%s\":\n"
+msgstr ""
+
+msgid "Creating problem (episode) to save notelet under ..."
+msgstr ""
+
+msgid "Cannot save a new problem without a name."
+msgstr ""
+
+msgid "saving progress note"
+msgstr ""
+
+#, python-format
+msgid ""
+"The new episode:\n"
+"\n"
+" \"%s\"\n"
+"\n"
+"will remain unassociated despite the editor\n"
+"having been invoked from the health issue:\n"
+"\n"
+" \"%s\""
+msgstr ""
+
+#, fuzzy
+msgid "Adding substance abuse"
+msgstr "Modifier la prise du traitement sélectionné."
+
+#, fuzzy
+msgid "Editing substance abuse"
+msgstr "Modifier la prise du traitement sélectionné."
+
+msgid "Substances abused by the patient:"
+msgstr ""
+
+#, fuzzy
+msgid "Showing abused substances."
+msgstr "Montrer les vaccinations."
+
+msgid "Intake"
+msgstr ""
+
+msgid "nicotine"
+msgstr ""
+
+#, fuzzy
+msgid "unit"
+msgstr "unités"
+
 #, fuzzy, python-format
-msgid "%s %s %s %s (%s ago, %s)"
+msgid "Latest: %s ago (%s %s%s%s%s)"
+msgstr "  votre temps: %s - %s (@%s = %s%s)\n"
+
+#, fuzzy, python-format
+msgid "%s %s%s%s (%s ago, %s)"
 msgstr "%s %s (%s aujourd'hui !)"
 
 #, fuzzy, python-format
@@ -10387,6 +10710,13 @@ msgstr "Commentaire (%s): %%s"
 msgid "due in %s%s"
 msgstr "Commentaire (%s): %%s"
 
+msgid "suppr'd:"
+msgstr ""
+
+#, fuzzy
+msgid "Suppressed hints:\n"
+msgstr "notes de progrès"
+
 msgid ""
 "Do you really want to\n"
 "delete this inbox message ?"
@@ -10441,10 +10771,17 @@ msgid ""
 msgstr ""
 
 #, fuzzy, python-format
-msgid "%s Vacc: %s"
+msgid "%s Vacc: %s (latest of %s)"
 msgstr "Fermé"
 
 #, fuzzy, python-format
+msgid "Hx of addiction: %s"
+msgstr "Séjours hospitaliers: %s"
+
+msgid "active substance abuse"
+msgstr ""
+
+#, fuzzy, python-format
 msgid "%s %s %s%s"
 msgstr " Status: %s, %s%s"
 
@@ -10621,6 +10958,103 @@ msgid ""
 "You will have to add it via the Demographics plugin.\n"
 msgstr ""
 
+msgid "You need to actually set an editor."
+msgstr ""
+
+#, python-format
+msgid "The command [%s] is not found."
+msgstr ""
+
+#, python-format
+msgid ""
+"Enter the shell command with which to start\n"
+"the image editor for visual progress notes.\n"
+"\n"
+"Any \"%(img)s\" included with the arguments\n"
+"will be replaced by the file name of the\n"
+"note template."
+msgstr ""
+
+msgid "Choose file to use as template for new visual progress note"
+msgstr ""
+
+msgid "Visual progress note source"
+msgstr ""
+
+msgid "From which source do you want to pick the image template ?"
+msgstr ""
+
+msgid "Database"
+msgstr ""
+
+msgid "List of templates in the database."
+msgstr ""
+
+msgid "Files in the filesystem."
+msgstr ""
+
+msgid "Device"
+msgstr ""
+
+msgid "Image capture devices (scanners, cameras, etc)"
+msgstr ""
+
+#, python-format
+msgid "Cannot export visual progress note template for [%s]."
+msgstr ""
+
+msgid "Cannot export visual progress note to file."
+msgstr ""
+
+msgid "Editor for visual progress note not configured."
+msgstr ""
+
+#, python-format
+msgid ""
+"There was a problem with running the editor\n"
+"for visual progress notes.\n"
+"\n"
+" [%s]\n"
+"\n"
+msgstr ""
+
+msgid "Editing visual progress note"
+msgstr ""
+
+#, python-format
+msgid ""
+"There was a problem reading the visual\n"
+"progress note from the file:\n"
+"\n"
+" [%s]\n"
+"\n"
+msgstr ""
+
+msgid "Saving visual progress note"
+msgstr ""
+
+msgid ""
+"You either created a visual progress note from a template\n"
+"in the database (rather than from a file on disk) or you\n"
+"edited an existing visual progress note.\n"
+"\n"
+"The template/original was not modified at all, however.\n"
+"\n"
+"Do you still want to save the unmodified image as a\n"
+"visual progress note into the EMR of the patient ?\n"
+msgstr ""
+
+msgid "visual progress notes"
+msgstr ""
+
+#, python-format
+msgid " [part 1 of %s]"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "Created: %s%s"
+msgstr "Trier par: période"
+
 msgid "You must select a value from the picklist or type an exact match."
 msgstr ""
 
@@ -10706,7 +11140,8 @@ msgstr ""
 
 #, python-format
 msgid ""
-"%(street)s %(number)s, %(postcode)s %(urb)s, %(l10n_state)s, %(l10n_country)s"
+"%(street)s %(number)s, %(postcode)s %(urb)s, %(l10n_region)s, "
+"%(l10n_country)s"
 msgstr ""
 
 #, python-format
@@ -11341,7 +11776,7 @@ msgstr ""
 msgid ""
 "Cannot save address.\n"
 "\n"
-"Does the state [%s]\n"
+"Does the region [%s]\n"
 "exist in country [%s] ?"
 msgstr ""
 
@@ -11782,8 +12217,9 @@ msgstr "Commentaire (%s): %%s"
 msgid "Reminders for the current patient"
 msgstr "Enregistrer le patient actuel"
 
-msgid "Sent"
-msgstr ""
+#, fuzzy
+msgid "Generated"
+msgstr "auto-généré"
 
 #, fuzzy
 msgid "Category - Type"
@@ -11832,9 +12268,6 @@ msgid ""
 "Data: %s"
 msgstr ""
 
-msgid "Inbox Message Actions:"
-msgstr ""
-
 msgid "Activate patient"
 msgstr ""
 
@@ -12577,7 +13010,7 @@ msgid ""
 msgstr ""
 
 #, python-format
-msgid "Select branch (of praxis [%s]) which you are logging in from.\n"
+msgid "Select the branch of praxis [%s] which you are logging in from.\n"
 msgstr ""
 
 msgid "Praxis branch selection ..."
@@ -12902,6 +13335,14 @@ msgstr "Sélectionner une adresse par code postal ou nom de rue."
 msgid "List of addresses related to this person."
 msgstr "Il n'y a pas de rencontres pour cette période."
 
+#, fuzzy
+msgid "Map"
+msgstr "M."
+
+#, fuzzy
+msgid "Show selected address on map"
+msgstr "Modifier l'objet sélectionné."
+
 msgid "Adding new address"
 msgstr ""
 
@@ -13100,8 +13541,99 @@ msgid "generic multi choice dialog"
 msgstr ""
 
 #, fuzzy
-msgid "Search in list"
-msgstr "Liste de la médication"
+msgid "Deleting list items"
+msgstr "Effacer tous les éléments"
+
+#, python-format
+msgid ""
+"You have selected %s list items.\n"
+"\n"
+"Really delete all %s items ?"
+msgstr ""
+
+#, fuzzy
+msgid ""
+"Select the items you want to work on.\n"
+"\n"
+"A discontinuous selection may depend on your holding down a platform-"
+"dependent modifier key (<CTRL>, <ALT>, etc) or key combination (eg. <CTRL-"
+"SHIFT> or <CTRL-ALT>) while clicking."
+msgstr ""
+"Choisissez les objets sur lesquels vous voulez travailler.\n"
+"\n"
+"Une sélection discontinue peut être obtenue, selon votre plateforme, en "
+"appuyant sur une touche spéciale (<ctrl>, etc.) ou une combinaison de "
+"touches (<ctrl-shift>, <ctrl-alt>, etc.) pendant que vous cliquez."
+
+#, fuzzy
+msgid "List Item Actions:"
+msgstr "Directions"
+
+msgid "Add (<INS>)"
+msgstr ""
+
+#, fuzzy
+msgid "Delete (<DEL>)"
+msgstr " Effacer "
+
+msgid "Find (<CTRL-F>)"
+msgstr ""
+
+#, python-format
+msgid "Find next [%s] (<CTRL-N>)"
+msgstr ""
+
+msgid "Row tooltip"
+msgstr ""
+
+#, fuzzy
+msgid "Row data (formatted as text)"
+msgstr "Ne pas reformater le texte"
+
+#, fuzzy
+msgid "Row content (as one line)"
+msgstr "Ne pas reformater le texte"
+
+msgid "Row content (one line per column)"
+msgstr ""
+
+#, python-format
+msgid "Column &%s: \"%s\" [#%s]"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "Column &%s: %s"
+msgstr "Documents: %s"
+
+#, fuzzy
+msgid "&Copy to clipboard..."
+msgstr "Impossible de copier dans le presse-papier."
+
+#, fuzzy
+msgid "Append (&+) to clipboard..."
+msgstr "Impossible de copier dans le presse-papier."
+
+#, python-format
+msgid ""
+"%s list items are selected.\n"
+"\n"
+"Really delete all %s items ?"
+msgstr ""
+
+#, fuzzy
+msgid "Enter the search term:"
+msgstr "Chercher par"
+
+#, fuzzy
+msgid "List search"
+msgstr "Chercher"
+
+#, python-format
+msgid ""
+"Current search term: [[%s]]\n"
+"\n"
+"%s"
+msgstr ""
 
 msgid "Monty the Serpent && the FSF Present"
 msgstr "Monty le Serpent && la FSF présentent"
@@ -13271,6 +13803,10 @@ msgstr ""
 msgid "Unknown: ?"
 msgstr "Inconnu"
 
+#, fuzzy
+msgid "The text has been copied into the clipboard."
+msgstr "Supprimer le(s) objet(s) sélectionné(s) de la liste."
+
 msgid "file2clipboard"
 msgstr ""
 
@@ -13278,11 +13814,49 @@ msgstr ""
 msgid "The file [%s] has been copied into the clipboard."
 msgstr ""
 
-#, python-format
+msgid "programmer forgot to specify error message"
+msgstr "Le programmeur a oublié de spécifier un message d'erreur"
+
 msgid ""
-"Algorithm: %s\n"
 "\n"
-"Source: %s"
+"\n"
+"Please consult the error log for all the gory details !"
+msgstr ""
+"\n"
+"\n"
+"Veuillez consulter le journal d'erreurs pour de plus amples informations !"
+
+msgid "generic error message"
+msgstr "Message d'erreur"
+
+msgid "programmer forgot to specify info message"
+msgstr "Le programmeur a oublié de spécifier le message d'information"
+
+msgid "generic info message"
+msgstr "Message d'information générique"
+
+msgid "programmer forgot to specify warning"
+msgstr "Le programmeur a oublié de spécifier le message d'avertissement"
+
+msgid "generic warning message"
+msgstr "Message d'avertissement générique"
+
+#, fuzzy
+msgid "Editing EDC"
+msgstr "Maintient des antécédents de vaccination"
+
+#, python-format
+msgid ""
+"Really delete the EDC documented previously ?\n"
+"\n"
+" EDC: %s"
+msgstr ""
+
+#, python-format
+msgid ""
+"Algorithm: %s\n"
+"\n"
+"Source: %s"
 msgstr ""
 
 #, python-format
@@ -13388,15 +13962,15 @@ msgstr "Nom"
 msgid "Firstname"
 msgstr ""
 
-msgid "Nickname"
-msgstr ""
-
 msgid "DOB"
 msgstr "DATE DE NAISSANCE"
 
 msgid "last visit"
 msgstr ""
 
+msgid "Nickname / Comment"
+msgstr ""
+
 msgid "found via"
 msgstr ""
 
@@ -13577,1317 +14151,1074 @@ msgstr ""
 msgid "In case of emergency contact:"
 msgstr ""
 
-msgid ""
-"\n"
-"Please select the default drug data source from the list below.\n"
-"\n"
-"Note that to actually use it you need to have the database installed, too."
+msgid "The preparation (form) of the substance or brand."
 msgstr ""
 
-msgid "Drug data source"
+msgid "A substance with optional strength or a brand."
 msgstr ""
 
-msgid "Configuring default drug data source"
-msgstr ""
+#, fuzzy
+msgid "The medical aim for consuming this substance."
+msgstr "Le but du traitement."
 
-msgid "No default drug database configured."
+msgid "not tolerated:"
 msgstr ""
 
-msgid "There is no default drug database configured."
+msgid "discontinued due to allergy or intolerance"
 msgstr ""
 
-msgid "Jumping to drug database"
+msgid "Documented an allergy"
 msgstr ""
 
 #, python-format
-msgid "Cannot call IFAP via [%s]."
+msgid ""
+"An allergy was documented against the substance:\n"
+"\n"
+"  [%s]\n"
+"\n"
+"This substance was taken with the multi-component brand:\n"
+"\n"
+"  [%s (%s)]\n"
+"\n"
+"Note that ALL components of this brand were discontinued."
 msgstr ""
 
-#, python-format
-msgid "Cannot create IFAP <-> GNUmed transfer file [%s]."
-msgstr ""
+#, fuzzy
+msgid "disapproved"
+msgstr "approuvé(e)"
 
-msgid "Current medication"
+msgid "Substances consumed by the patient:"
 msgstr ""
 
-msgid ""
-"\n"
-"The ATC codes as known to GNUmed.\n"
+msgid "Showing consumable substances."
 msgstr ""
 
-msgid "Showing ATC codes."
-msgstr ""
+#, fuzzy
+msgid "Application"
+msgstr "Médication"
 
-msgid "Choose an ATC import config file"
+msgid "never"
 msgstr ""
 
-msgid "config files"
+#, python-format
+msgid "%s, last confirmed %s\n"
 msgstr ""
 
-msgid "importing ATC reference data"
+#, python-format
+msgid "Comment (%s): %%s\n"
 msgstr ""
 
-msgid "Successfully imported ATC reference data."
+msgid "reaction not recorded"
 msgstr ""
 
-msgid "Importing ATC reference data failed."
-msgstr ""
+#, fuzzy
+msgid "GFR: unknown"
+msgstr "Inconnu"
 
-msgid "Select an ATC (Anatomical-Therapeutic-Chemical) code."
+msgid "GFR reported by path lab"
 msgstr ""
 
-msgid "Cannot delete this substance. It is in use."
-msgstr ""
+#, fuzzy
+msgid "<no components>"
+msgstr "Composants"
+
+#, fuzzy
+msgid "Adding substance intake entry"
+msgstr "Modifier la prise du traitement sélectionné."
 
+#, python-format
 msgid ""
+"The patient is already taking\n"
 "\n"
-"These are the consumable substances registered with GNUmed.\n"
+" %s\n"
+"\n"
+"You will want to adjust the schedule\n"
+"rather than document the intake twice."
 msgstr ""
 
-msgid "Showing consumable substances."
+msgid "Input incomplete/invalid for saving as substance intake."
 msgstr ""
 
-msgid "Import"
+#, python-format
+msgid "Discontinued (%s) in the future (now: %s)!"
 msgstr ""
 
-msgid "Import consumable substances from a drug database."
+#, python-format
+msgid "Discontinued (%s) before started (%s) !"
 msgstr ""
 
-msgid "Cannot edit this substance. It is in use."
+msgid "Cannot add duplicate of (maybe inactive) substance intake."
 msgstr ""
 
-msgid "Adding new consumable substance"
+#, python-format
+msgid ""
+"\n"
+"[%s]\n"
+"\n"
+"It may be prudent to edit (before deletion) the details\n"
+"of this substance intake entry so as to leave behind\n"
+"some indication of why it was deleted.\n"
 msgstr ""
 
-msgid "Editing consumable substance"
+msgid "Deleting medication / substance intake"
 msgstr ""
 
-msgid "Cannot save consumable substance. Missing essential input."
+msgid "Allow editing of substance intake entry before deletion."
 msgstr ""
 
-#, python-format
-msgid "Cannot save consumable substance. %s"
+msgid "Delete immediately without editing first."
 msgstr ""
 
-msgid "Cannot remove this component from the drug. It is in use."
-msgstr ""
+msgid "&Cancel"
+msgstr "&Annuler"
 
-msgid ""
-"\n"
-"These are the components in the drug brands known to GNUmed.\n"
+msgid "Abort. Do not delete or edit substance intake entry."
 msgstr ""
 
-msgid "Showing drug brand components."
+msgid "Now delete substance intake entry ?"
 msgstr ""
 
-msgid "Adding new drug component"
+msgid "Adding medication/non-medication substance intake"
 msgstr ""
 
-msgid "Editing drug component"
+msgid "Editing medication/non-medication substance intake"
 msgstr ""
 
-msgid "Cannot edit drug component. It is in use."
+msgid "Document an allergy against this substance."
 msgstr ""
 
-msgid "Cannot save drug component. Invalid or missing essential input."
+msgid "No medication list template configured."
 msgstr ""
 
-msgid "A drug component with optional strength."
+msgid "There is no medication list template configured."
 msgstr ""
 
-msgid "The preparation (form) of the substance or brand."
+msgid "Problem loading medication list template."
 msgstr ""
 
-msgid "The substance with optional strength."
+#, python-format
+msgid "Cannot load medication list template [%s - %s]"
 msgstr ""
 
-msgid "Managing components of a drug"
-msgstr ""
+#, fuzzy
+msgid "generated medication list document"
+msgstr "Imprimer la liste des médicaments."
 
-#, python-format
-msgid ""
-"Cannot manage the components of the branded drug product\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is currently taken by patients.\n"
+#, fuzzy
+msgid "Select the default prescription template:"
+msgstr "Sélectionnez le type par défaut pour les nouvelles rencontres.\n"
+
+msgid "No prescription template configured."
 msgstr ""
 
-msgid "Pick the substances which are components of this drug."
+msgid "There is no prescription template configured."
 msgstr ""
 
-msgid "Components of drug"
+#, fuzzy
+msgid "Printing prescription"
+msgstr "Prescriptions"
+
+msgid "Problem loading prescription template."
 msgstr ""
 
 #, python-format
+msgid "Cannot load prescription template [%s - %s]"
+msgstr ""
+
+#, fuzzy
+msgid "generated prescription"
+msgstr "Prescriptions"
+
 msgid ""
-"Adjust the components of \"%s\"\n"
+"These brands have been prescribed but are not listed\n"
+"in the current medication list of this patient.\n"
 "\n"
-"The drug must contain at least one component. Any given\n"
-"substance can only be included once per drug."
+"Please select those you want added to the medication list."
 msgstr ""
 
-msgid "Managing components of a drug ..."
-msgstr ""
+#, fuzzy
+msgid "Newly prescribed drugs"
+msgstr "Prescrit pour"
 
-msgid "not in use"
-msgstr ""
+#, fuzzy
+msgid "Add to medication list"
+msgstr "Liste de la médication"
+
+#, fuzzy
+msgid "Timeframe"
+msgstr "Durée :"
 
 #, python-format
-msgid "ATC: %s\n"
+msgid "%s <fake>"
 msgstr ""
 
-msgid "Editing medication"
+msgid "Cannot edit more than one substance at once."
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot edit the medication\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is a vaccine. Please edit it\n"
-"from the vaccine management section !\n"
+msgid "Cannot delete more than one substance at once."
 msgstr ""
 
-msgid "Deleting medication"
+msgid "Cannot create allergy from more than one substance at once."
 msgstr ""
 
-#, python-format
 msgid ""
-"Cannot delete the medication\n"
 "\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is a vaccine. Please delete it\n"
-"from the vaccine management section !\n"
+"Select the measurements panel to show in the medications plugin.\n"
 msgstr ""
 
-msgid ""
-"\n"
-"These are the drug brands known to GNUmed.\n"
-msgstr ""
+#, fuzzy
+msgid "Measurements panel"
+msgstr "Mesurations"
 
-msgid "Showing branded drugs."
+msgid "Configuring medications plugin measurements panel"
 msgstr ""
 
-msgid "Import substances and brands from a drug database."
+msgid "EDC (!?!):"
 msgstr ""
 
-msgid "Editing drug"
+msgid "EDC:"
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot edit the branded drug product\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is currently taken by patients.\n"
-msgstr ""
-
-msgid "Adding new drug brand"
-msgstr ""
+#, fuzzy, python-format
+msgid "%.1f (%s ago)"
+msgstr "Exporté: %s\n"
 
-msgid "Editing drug brand"
+msgid "eGFR:"
 msgstr ""
 
-msgid "Manage consumable substances"
+#, python-format
+msgid "eGFR: %.1f (%s)"
 msgstr ""
 
-msgid "Cannot edit drug brand. It is in use."
-msgstr ""
+msgid "Enter vaccination given"
+msgstr "Saisir la vaccination effectuée"
 
-msgid "Checking brand data"
-msgstr ""
+msgid "Unsaved progress note"
+msgstr "Note de progrès non sauvegardée"
 
-#, python-format
 msgid ""
-"The brand information you entered:\n"
+"This progress note has not been saved yet.\n"
 "\n"
-" [%s %s]\n"
+"Do you want to save it or discard it ?\n"
 "\n"
-"already exists as a drug product."
 msgstr ""
-
-msgid ""
-"You have not selected any substances\n"
-"as drug components.\n"
+"Cette note de progrès n'a pas encore été sauvegardée.\n"
 "\n"
-"Without components you will not be able to\n"
-"use this drug for documenting patient care.\n"
+"Voulez-vous la sauvegarder ou vous en débarrasser ?\n"
 "\n"
-"Are you sure you want to save\n"
-"it without components ?"
+
+msgid "Save this progress note"
+msgstr "Sauvegarder cette note de progrès"
+
+msgid "Discard this progress note"
 msgstr ""
 
-msgid "Cannot save branded drug. Invalid or missing essential input."
+msgid "Save all remaining unsaved progress notes"
 msgstr ""
 
 msgid ""
-"The brand name of the drug.\n"
+"Add editor for a new unassociated progress note.\n"
 "\n"
-"Note: a brand name will need to be linked to\n"
-"one or more components before it can be used,\n"
-"except in the case of fake (generic) vaccines."
+"There is a configuration option whether or not to\n"
+"allow several new unassociated progress notes at once."
 msgstr ""
 
-#, fuzzy
-msgid "The medical aim for consuming this substance."
-msgstr "Le but du traitement."
-
-msgid "not tolerated:"
+msgid "Save progress note into medical record and close this editor."
 msgstr ""
 
-msgid "discontinued due to allergy or intolerance"
-msgstr ""
+msgid "Clear this progress note editor."
+msgstr "Effacter cet éditeur de note de progrès."
 
-msgid "Documented an allergy"
+msgid ""
+"Discard progress note and close this editor. You will loose any data already "
+"typed into this editor !"
 msgstr ""
+"Se débarrasser de cette note et fermer cet éditeur. Vous perdrez toutes les "
+"données déjà saisies dans cet éditeur !"
 
-#, python-format
-msgid ""
-"An allergy was documented against the substance:\n"
-"\n"
-"  [%s]\n"
-"\n"
-"This substance was taken with the multi-component brand:\n"
-"\n"
-"  [%s (%s)]\n"
-"\n"
-"Note that ALL components of this brand were discontinued."
+msgid "Problem saving progress note: duplicate information ?"
 msgstr ""
+"Problème durant la sauvegarde de la note de progrès: information dupliquée ?"
 
-#, fuzzy
-msgid "disapproved"
-msgstr "approuvé(e)"
+msgid "label missing"
+msgstr "étiquette manquante"
 
-msgid "Substances consumed by the patient:"
+msgid "soap cat missing"
 msgstr ""
 
-msgid "Intake"
+msgid "Enter a descriptive name for this new problem:"
+msgstr "Saisir un nom descriptif pour ce nouveau problème :"
+
+msgid "Creating a problem (episode) to save the notelet under ..."
 msgstr ""
 
-#, fuzzy
-msgid "Application"
-msgstr "Médication"
+msgid "Error saving progress note."
+msgstr "Problème lors de la sauvegarde de la note de progrès."
 
-msgid "never"
-msgstr ""
+msgid "Error saving embedded data."
+msgstr "Problème lors de la sauvegarde des données embarquées."
 
-#, python-format
-msgid "%s, last confirmed %s\n"
+msgid "Visit Purpose"
 msgstr ""
 
-#, python-format
-msgid "Comment (%s): %%s\n"
+msgid "History Taken"
 msgstr ""
 
-msgid "reaction not recorded"
+msgid "Findings"
 msgstr ""
 
-#, fuzzy
-msgid "GFR: unknown"
-msgstr "Inconnu"
+msgid "save"
+msgstr "sauvegarder"
 
-msgid "GFR reported by path lab"
+msgid "save clinical note in EMR"
+msgstr "sauvegarde des notes cliniques dans l'EMR"
+
+msgid "discard"
+msgstr "Abandon"
+
+msgid "discard clinical note"
+msgstr "Abandon note clinique"
+
+msgid "clinical progress note"
+msgstr "note de progrès clinique"
+
+msgid "Select files to add to the export area"
 msgstr ""
 
+#, fuzzy
+msgid "Adding files to export area"
+msgstr "Ajouter un nouveau vaccin"
+
 #, python-format
 msgid ""
-"The patient is already taking\n"
-"\n"
-" %s\n"
-"\n"
-"You will want to adjust the schedule\n"
-"rather than document the intake twice."
+"Cannot add (some of) the following files to the export area:\n"
+"%s "
 msgstr ""
 
 #, fuzzy
-msgid "Adding substance intake entry"
-msgstr "Modifier la prise du traitement sélectionné."
+msgid "Select the documents to be put into the export area:"
+msgstr "Choisissez l'épisode vers lequel vous voulez déplacer le texte."
 
-msgid "Input incomplete/invalid for saving as substance intake."
+msgid "clipboard"
 msgstr ""
 
-#, python-format
-msgid "Discontinued (%s) in the future (now: %s)!"
+msgid "Loading clipboard item (saved to file) into export area"
 msgstr ""
 
-#, python-format
-msgid "Discontinued (%s) before started (%s) !"
+#, fuzzy, python-format
+msgid ""
+"Cannot add the following clip to the export area:\n"
+"%s "
+msgstr "Impossible de lister les rencontres. Aucun patient actif."
+
+msgid "scan"
 msgstr ""
 
-msgid "Cannot add duplicate of (maybe inactive) substance intake."
+msgid "Scanning files into export area"
 msgstr ""
 
 #, python-format
 msgid ""
-"\n"
-"[%s]\n"
-"\n"
-"It may be prudent to edit (before deletion) the details\n"
-"of this substance intake entry so as to leave behind\n"
-"some indication of why it was deleted.\n"
-msgstr ""
-
-msgid "Deleting medication / substance intake"
+"Cannot add (some of) the following scans to the export area:\n"
+"%s "
 msgstr ""
 
-msgid "Allow editing of substance intake entry before deletion."
-msgstr ""
+#, fuzzy
+msgid "Deleting document from export area."
+msgstr "Chargement de la liste document"
 
-msgid "Delete immediately without editing first."
+#, python-format
+msgid ""
+"Really remove %s selected document(s)\n"
+"from the patient export area ?"
 msgstr ""
 
-msgid "&Cancel"
-msgstr "&Annuler"
+#, fuzzy
+msgid "Error printing documents."
+msgstr "Modifier la vaccination"
 
-msgid "Abort. Do not delete or edit substance intake entry."
-msgstr ""
+#, fuzzy, python-format
+msgid "Printing [%s]"
+msgstr "Imprimer"
 
-msgid "Now delete substance intake entry ?"
-msgstr ""
+#, fuzzy, python-format
+msgid ""
+"Printed:\n"
+" - %s"
+msgstr "Exporté: %s\n"
 
-msgid "Adding medication/non-medication substance intake"
-msgstr ""
+#, fuzzy
+msgid "Select the directory into which to export the documents."
+msgstr "Choisissez l'épisode vers lequel vous voulez déplacer le texte."
 
-msgid "Editing medication/non-medication substance intake"
-msgstr ""
+#, fuzzy
+msgid "Saving export area documents"
+msgstr "sauvegarder le document"
 
-msgid "Document an allergy against this substance."
+#, python-format
+msgid ""
+"The chosen export directory\n"
+"\n"
+" [%s]\n"
+"\n"
+"already contains files. Do you still want to save the\n"
+"selected export area documents into that directory ?\n"
+"\n"
+"(this is useful for including the external documents\n"
+" already stored in or below this directory)\n"
+"\n"
+"[NO] will create a subdirectory for you and use that."
 msgstr ""
 
-msgid "No medication list template configured."
+msgid ""
+"Create descriptive metadata files\n"
+"and save them alongside the\n"
+"selected export area documents ?"
 msgstr ""
 
-msgid "There is no medication list template configured."
-msgstr ""
+#, fuzzy, python-format
+msgid ""
+"Saved to [%s]:\n"
+" - %s"
+msgstr "  risque: %s"
 
-msgid "Problem loading medication list template."
+#, python-format
+msgid ""
+"Saved documents into directory:\n"
+"\n"
+" %s"
 msgstr ""
 
-#, python-format
-msgid "Cannot load medication list template [%s - %s]"
+msgid "If you wish to include an existing directory select it here:"
 msgstr ""
 
 #, fuzzy
-msgid "generated medication list document"
-msgstr "Imprimer la liste des médicaments."
+msgid "Error burning documents to CD/DVD."
+msgstr "Modifier la vaccination"
 
 #, fuzzy
-msgid "Select the default prescription template:"
-msgstr "Sélectionnez le type par défaut pour les nouvelles rencontres.\n"
-
-msgid "No prescription template configured."
-msgstr ""
+msgid "Burning documents"
+msgstr "sauvegarder le document"
 
-msgid "There is no prescription template configured."
+#, python-format
+msgid ""
+"Burned onto CD/DVD:\n"
+" - %s"
 msgstr ""
 
 #, fuzzy
-msgid "Printing prescription"
-msgstr "Prescriptions"
+msgid "Error mailing documents."
+msgstr "sauvegarder le document"
 
-msgid "Problem loading prescription template."
-msgstr ""
+#, fuzzy
+msgid "Mailing documents"
+msgstr "sauvegarder le document"
 
-#, python-format
-msgid "Cannot load prescription template [%s - %s]"
+#, fuzzy, python-format
+msgid ""
+"Mailed:\n"
+" - %s"
+msgstr "Fermé"
+
+msgid ""
+"Please enter the fax number here !\n"
+"\n"
+"It can be left empty if the external\n"
+"fax software knows how to get the number."
 msgstr ""
 
 #, fuzzy
-msgid "generated prescription"
-msgstr "Prescriptions"
+msgid "Faxing documents"
+msgstr "sauvegarder le document"
 
+#, fuzzy, python-format
 msgid ""
-"These brands have been prescribed but are not listed\n"
-"in the current medication list of this patient.\n"
+"Error faxing documents to\n"
 "\n"
-"Please select those you want added to the medication list."
-msgstr ""
+"  %s"
+msgstr "Chargement de la liste document"
 
-#, fuzzy
-msgid "Newly prescribed drugs"
-msgstr "Prescrit pour"
+#, fuzzy, python-format
+msgid ""
+"Faxed to [%s]:\n"
+" - %s"
+msgstr " option [%s]: %s"
 
-#, fuzzy
-msgid "Add to medication list"
-msgstr "Liste de la médication"
+msgid "<gm-mail_doc(.bat) not found>"
+msgstr ""
 
-msgid "Duration / Until"
+msgid "<gm-fax_doc(.bat) not found>"
 msgstr ""
 
-#, python-format
-msgid "%s <fake>"
+msgid "<gm-burn_doc(.bat) not found>"
 msgstr ""
 
-msgid "Cannot edit more than one substance at once."
+msgid "Cannot accept new documents. No active patient."
 msgstr ""
 
-msgid "Cannot delete more than one substance at once."
+#, python-format
+msgid "Extracting files from folder [%s] ..."
 msgstr ""
 
-msgid "Cannot create allergy from more than one substance at once."
+msgid "Drag&Drop"
 msgstr ""
 
+#, fuzzy
+msgid "Created"
+msgstr "Trier par: période"
+
+#, python-format
 msgid ""
+"Error exporting form template\n"
 "\n"
-"Select the measurements panel to show in the medications plugin.\n"
+" \"%s\" (%s)"
 msgstr ""
 
-#, fuzzy
-msgid "Measurements panel"
-msgstr "Mesurations"
+msgid "Letter template export"
+msgstr ""
 
-msgid "Configuring medications plugin measurements panel"
+msgid ""
+"Cannot connect to OpenOffice.\n"
+"\n"
+"The UNO bridge module for Python\n"
+"is not installed."
 msgstr ""
 
-msgid "EDC (!?!):"
+msgid "Letter writer"
 msgstr ""
 
-msgid "EDC:"
+#, python-format
+msgid ""
+"Cannot connect to OpenOffice.\n"
+"\n"
+"You may want to increase the option\n"
+"\n"
+" <%s>"
 msgstr ""
 
-#, fuzzy, python-format
-msgid "%.1f (%s ago)"
-msgstr "Exporté: %s\n"
+msgid "OOo startup time"
+msgstr ""
 
-msgid "eGFR:"
+msgid "No document template selected."
 msgstr ""
 
 #, fuzzy, python-format
-msgid "%s%s%s (%s ago)"
-msgstr "%s %s (%s aujourd'hui !)"
+msgid "Invalid document template [%s - %s (%s)]"
+msgstr "format d'affichage de vaccinations inconnu [%s]"
 
-#, python-format
-msgid "eGFR: %.1f (%s)"
-msgstr ""
+#, fuzzy
+msgid "Generating document from template"
+msgstr "Chargement de la liste document"
 
-msgid "Enter vaccination given"
-msgstr "Saisir la vaccination effectuée"
+#, fuzzy
+msgid "Error generating document printout."
+msgstr "Sélectionnez le type de visite"
 
-msgid "Unsaved progress note"
-msgstr "Note de progrès non sauvegardée"
+#, fuzzy
+msgid "Generating document printout"
+msgstr "Chargement de la liste document"
 
-msgid ""
-"This progress note has not been saved yet.\n"
-"\n"
-"Do you want to save it or discard it ?\n"
-"\n"
-msgstr ""
-"Cette note de progrès n'a pas encore été sauvegardée.\n"
-"\n"
-"Voulez-vous la sauvegarder ou vous en débarrasser ?\n"
-"\n"
+#, fuzzy, python-format
+msgid "Printed: %s"
+msgstr "Exporté: %s\n"
 
-msgid "Save this progress note"
-msgstr "Sauvegarder cette note de progrès"
+#, fuzzy
+msgid "Adding new form template"
+msgstr "Ajouter un nouveau vaccin"
 
-msgid "Discard this progress note"
-msgstr ""
+#, fuzzy
+msgid "Editing form template"
+msgstr "modifier le modèle de formulaire"
 
-msgid "Save all remaining unsaved progress notes"
+msgid "Deleting form template."
 msgstr ""
 
+#, python-format
 msgid ""
-"Add editor for a new unassociated progress note.\n"
+"Are you sure you want to delete\n"
+"the following form template ?\n"
 "\n"
-"There is a configuration option whether or not to\n"
-"allow several new unassociated progress notes at once."
-msgstr ""
-
-msgid "Save progress note into medical record and close this editor."
+" \"%s (%s)\"\n"
+"\n"
+"You can only delete templates which\n"
+"have not yet been used to generate\n"
+"any forms from."
 msgstr ""
 
-msgid "Clear this progress note editor."
-msgstr "Effacter cet éditeur de note de progrès."
-
-msgid ""
-"Discard progress note and close this editor. You will loose any data already "
-"typed into this editor !"
+msgid "Select letter or form template."
 msgstr ""
-"Se débarrasser de cette note et fermer cet éditeur. Vous perdrez toutes les "
-"données déjà saisies dans cet éditeur !"
 
-msgid "Problem saving progress note: duplicate information ?"
+msgid "You must select a template file before saving."
 msgstr ""
-"Problème durant la sauvegarde de la note de progrès: information dupliquée ?"
-
-msgid "label missing"
-msgstr "étiquette manquante"
 
-msgid "soap cat missing"
+msgid "You must enter a type for documents created with this template."
 msgstr ""
 
-msgid "Enter a descriptive name for this new problem:"
-msgstr "Saisir un nom descriptif pour ce nouveau problème :"
+#, fuzzy
+msgid "You must enter a type for this template."
+msgstr "Un nom court, facile à retenir, pour ce modèle."
 
-msgid "Creating a problem (episode) to save the notelet under ..."
-msgstr ""
+#, fuzzy
+msgid "You must enter a version for this template."
+msgstr "Un nom court, facile à retenir, pour ce modèle."
 
-msgid "Error saving progress note."
-msgstr "Problème lors de la sauvegarde de la note de progrès."
+#, fuzzy
+msgid "Missing short name for template."
+msgstr "Un nom court, facile à retenir, pour ce modèle."
 
-msgid "Error saving embedded data."
-msgstr "Problème lors de la sauvegarde des données embarquées."
+#, fuzzy
+msgid "Missing long name for template."
+msgstr "Un nom descriptif pour ce modéle de formulaire."
 
-msgid "Visit Purpose"
-msgstr ""
+#, fuzzy, python-format
+msgid "last modified %s by %s"
+msgstr "Dernière modification :"
 
-msgid "History Taken"
+msgid "Choose a form template file"
 msgstr ""
 
-msgid "Findings"
+msgid "Enter a filename to save the template to"
 msgstr ""
 
-msgid "save"
-msgstr "sauvegarder"
-
-msgid "save clinical note in EMR"
-msgstr "sauvegarde des notes cliniques dans l'EMR"
+#, fuzzy
+msgid "Emergency contact"
+msgstr "Contact d'urgence (dans la base de données)"
 
-msgid "discard"
-msgstr "Abandon"
+#, fuzzy
+msgid "Primary doctor"
+msgstr "Afficher les médecins"
 
-msgid "discard clinical note"
-msgstr "Abandon note clinique"
+#, fuzzy
+msgid "in-praxis primary provider"
+msgstr "Médecin traitant"
 
-msgid "clinical progress note"
-msgstr "note de progrès clinique"
+#, fuzzy
+msgid "This praxis"
+msgstr "Votre examen"
 
-msgid "Select files to add to the export area"
-msgstr ""
+#, fuzzy
+msgid "Bill receiver"
+msgstr "choisir"
 
 #, fuzzy
-msgid "Adding files to export area"
-msgstr "Ajouter un nouveau vaccin"
+msgid "Receiver"
+msgstr "Patient :"
 
-#, python-format
 msgid ""
-"Cannot add (some of) the following files to the export area:\n"
-"%s "
+"Are you sure you want to delete this\n"
+"description from the document ?\n"
 msgstr ""
 
-#, fuzzy
-msgid "Select the documents to be put into the export area:"
-msgstr "Choisissez l'épisode vers lequel vous voulez déplacer le texte."
+msgid "Deleting document description"
+msgstr ""
 
-msgid "clipboard"
+msgid "Adding document description"
 msgstr ""
 
-msgid "Loading clipboard item (saved to file) into export area"
+msgid "Below you can add a document description.\n"
 msgstr ""
 
-#, fuzzy, python-format
-msgid ""
-"Cannot add the following clip to the export area:\n"
-"%s "
-msgstr "Impossible de lister les rencontres. Aucun patient actif."
+msgid "Editing document description"
+msgstr ""
 
-msgid "scan"
+msgid "Below you can edit the document description.\n"
 msgstr ""
 
-msgid "Scanning files into export area"
+msgid "Select the description you are interested in.\n"
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot add (some of) the following scans to the export area:\n"
-"%s "
+msgid "Managing document descriptions"
 msgstr ""
 
-#, fuzzy
-msgid "Deleting document from export area."
-msgstr "Chargement de la liste document"
-
-#, python-format
-msgid ""
-"Really remove %s selected document(s)\n"
-"from the patient export area ?"
+msgid "Select the episode under which to file the document ..."
 msgstr ""
 
-#, fuzzy
-msgid "Error printing documents."
-msgstr "Modifier la vaccination"
+msgid "Cannot create new document."
+msgstr ""
 
-#, fuzzy, python-format
-msgid "Printing [%s]"
-msgstr "Imprimer"
+msgid "saving document"
+msgstr "sauvegarder le document"
 
-#, fuzzy, python-format
-msgid ""
-"Printed:\n"
-" - %s"
-msgstr "Exporté: %s\n"
+#, python-format
+msgid "Imported new document from %s."
+msgstr ""
 
-#, fuzzy
-msgid "Select the directory into which to export the documents."
-msgstr "Choisissez l'épisode vers lequel vous voulez déplacer le texte."
+msgid "Successfully saved new document."
+msgstr ""
 
-#, fuzzy
-msgid "Saving export area documents"
-msgstr "sauvegarder le document"
+msgid "Successfully saved the new document."
+msgstr ""
 
 #, python-format
 msgid ""
-"The chosen export directory\n"
-"\n"
-" [%s]\n"
+"The reference ID for the new document is:\n"
 "\n"
-"is not empty. Do you want to use it for saving the\n"
-"export area documents into, nevertheless ?\n"
+" <%s>\n"
 "\n"
-"(this can be useful for including external documents)\n"
+"You probably want to write it down on the\n"
+"original documents.\n"
 "\n"
-"[NO] will create a subdirectory for you and use that."
+"If you don't care about the ID you can switch\n"
+"off this message in the GNUmed configuration.\n"
 msgstr ""
 
-#, fuzzy, python-format
-msgid ""
-"Saved to [%s]:\n"
-" - %s"
-msgstr "  risque: %s"
+#, fuzzy
+msgid "Saving document"
+msgstr "sauvegarder le document"
 
 #, python-format
 msgid ""
-"Saved documents into directory:\n"
+"Successfully imported files as document.\n"
 "\n"
-" %s"
+"Do you want to delete imported files from the filesystem ?\n"
+"\n"
+" %s\n"
+"\n"
+"Note that temporary files will be deleted anyway."
 msgstr ""
 
-msgid "If you wish to include an existing directory select it here:"
+#, fuzzy
+msgid "Removing files"
+msgstr "Ajout d'un utilisateur GNUmed"
+
+msgid "Enter a comment on the document."
 msgstr ""
 
-#, fuzzy
-msgid "Error burning documents to CD/DVD."
-msgstr "Modifier la vaccination"
+msgid "User defined"
+msgstr "Défini par l’utilisateur"
 
-#, fuzzy
-msgid "Burning documents"
-msgstr "sauvegarder le document"
+msgid "In use"
+msgstr ""
 
 #, python-format
 msgid ""
-"Burned onto CD/DVD:\n"
-" - %s"
+"Cannot delete document type\n"
+" [%s]\n"
+"because it is currently in use."
 msgstr ""
 
-#, fuzzy
-msgid "Error mailing documents."
-msgstr "sauvegarder le document"
-
-#, fuzzy
-msgid "Mailing documents"
-msgstr "sauvegarder le document"
-
-#, fuzzy, python-format
-msgid ""
-"Mailed:\n"
-" - %s"
-msgstr "Fermé"
+msgid "deleting document type"
+msgstr ""
 
+#, python-format
 msgid ""
-"Please enter the fax number here !\n"
+"From the list below select the document type you want\n"
+"all documents currently classified as:\n"
 "\n"
-"It can be left empty if the external\n"
-"fax software knows how to get the number."
+" \"%s\"\n"
+"\n"
+"to be changed to.\n"
+"\n"
+"Be aware that this change will be applied to ALL such documents. If there\n"
+"are many documents to change it can take quite a while.\n"
+"\n"
+"Make sure this is what you want to happen !\n"
 msgstr ""
 
-#, fuzzy
-msgid "Faxing documents"
-msgstr "sauvegarder le document"
+msgid "Reassigning document type"
+msgstr ""
 
-#, fuzzy, python-format
-msgid ""
-"Error faxing documents to\n"
-"\n"
-"  %s"
-msgstr "Chargement de la liste document"
+msgid "Select the document type."
+msgstr ""
 
-#, fuzzy, python-format
-msgid ""
-"Faxed to [%s]:\n"
-" - %s"
-msgstr " option [%s]: %s"
+#, fuzzy
+msgid "Cannot create document type without name."
+msgstr "Impossible d'indexer les documents sans un fichier de configuration"
 
-msgid "<gm-mail_doc(.bat) not found>"
-msgstr ""
+msgid "+/-"
+msgstr "+/-"
 
-msgid "<gm-fax_doc(.bat) not found>"
-msgstr ""
+msgid "!"
+msgstr "!"
 
-msgid "<gm-burn_doc(.bat) not found>"
-msgstr ""
+msgid "comment"
+msgstr "commentaire"
 
-msgid "Cannot accept new documents. No active patient."
+msgid "(you are the primary reviewer)"
 msgstr ""
 
 #, python-format
-msgid "Extracting files from folder [%s] ..."
+msgid "(someone else is the intended reviewer: %s)"
 msgstr ""
 
-msgid "Drag&Drop"
+#, python-format
+msgid ""
+"Cannot create episode\n"
+" [%s]"
 msgstr ""
 
 #, fuzzy
-msgid "Created"
-msgstr "Trier par: période"
+msgid "Editing document properties"
+msgstr "Propriétés du document"
+
+#, python-format
+msgid "Cannot change document type to [%s]."
+msgstr ""
 
 #, python-format
 msgid ""
-"Error exporting form template\n"
+"Cannot link the document to episode\n"
 "\n"
-" \"%s\" (%s)"
+" [%s]"
 msgstr ""
 
-msgid "Letter template export"
+msgid "Error setting \"reviewed\" status of this document."
+msgstr "Erreur lors du choix du status \"examiné\" sur ce document."
+
+msgid "Error setting responsible clinician for this document."
 msgstr ""
 
+msgid "Error setting \"reviewed\" status of this part."
+msgstr "Erreur lors du choix du status \"examiné\" sur cette partie."
+
+#, python-format
 msgid ""
-"Cannot connect to OpenOffice.\n"
+"Cannot set page number to [%s] because\n"
+"another page with this number exists.\n"
 "\n"
-"The UNO bridge module for Python\n"
-"is not installed."
+"Page numbers in use:\n"
+"\n"
+" %s"
 msgstr ""
 
-msgid "Letter writer"
+#, fuzzy
+msgid "Editing document part properties"
+msgstr "Propriétés du document"
+
+msgid "Error saving part properties."
 msgstr ""
 
-#, python-format
 msgid ""
-"Cannot connect to OpenOffice.\n"
+"No images could be acquired from the source.\n"
 "\n"
-"You may want to increase the option\n"
+"This may mean the scanner driver is not properly installed.\n"
 "\n"
-" <%s>"
+"On Windows you must install the TWAIN Python module\n"
+"while on Linux and MacOSX it is recommended to install\n"
+"the XSane package."
 msgstr ""
 
-msgid "OOo startup time"
-msgstr ""
+#, fuzzy
+msgid "Acquiring images"
+msgstr "acquisition d'une image"
 
-msgid "No document template selected."
+msgid "directory dropped on client"
 msgstr ""
 
-#, fuzzy, python-format
-msgid "Invalid document template [%s - %s (%s)]"
-msgstr "format d'affichage de vaccinations inconnu [%s]"
-
-#, fuzzy
-msgid "Generating document from template"
-msgstr "Chargement de la liste document"
+msgid "file dropped on client"
+msgstr ""
 
 #, fuzzy
-msgid "Error generating document printout."
-msgstr "Sélectionnez le type de visite"
+msgid "other documents"
+msgstr "Attacher des documents"
 
-#, fuzzy
-msgid "Generating document printout"
-msgstr "Chargement de la liste document"
+msgid "path"
+msgstr ""
 
-#, fuzzy, python-format
-msgid "Printed: %s"
-msgstr "Exporté: %s\n"
+msgid "No parts to save. Really save an empty document as a reference ?"
+msgstr ""
 
-#, fuzzy
-msgid "Adding new form template"
-msgstr "Ajouter un nouveau vaccin"
+msgid "No parts to save. Aquire some parts first."
+msgstr ""
 
-#, fuzzy
-msgid "Editing form template"
-msgstr "modifier le modèle de formulaire"
+msgid "No document type applied. Choose a document type"
+msgstr ""
 
-msgid "Deleting form template."
+msgid "You must select an episode to save this document under."
 msgstr ""
 
-#, python-format
 msgid ""
-"Are you sure you want to delete\n"
-"the following form template ?\n"
-"\n"
-" \"%s (%s)\"\n"
-"\n"
-"You can only delete templates which\n"
-"have not yet been used to generate\n"
-"any forms from."
+"You need to select from the list of staff members the doctor who is intended "
+"to sign the document."
 msgstr ""
 
-msgid "Select letter or form template."
+msgid "There is no scanner support installed on this machine."
 msgstr ""
 
-msgid "You must select a template file before saving."
+msgid "Cannot find an active scanner."
 msgstr ""
 
-msgid "You must enter a type for documents created with this template."
+msgid "Select an image capture device"
 msgstr ""
 
-#, fuzzy
-msgid "You must enter a type for this template."
-msgstr "Un nom court, facile à retenir, pour ce modèle."
-
-#, fuzzy
-msgid "You must enter a version for this template."
-msgstr "Un nom court, facile à retenir, pour ce modèle."
-
-#, fuzzy
-msgid "Missing short name for template."
-msgstr "Un nom court, facile à retenir, pour ce modèle."
-
-#, fuzzy
-msgid "Missing long name for template."
-msgstr "Un nom descriptif pour ce modéle de formulaire."
-
-#, fuzzy, python-format
-msgid "last modified %s by %s"
-msgstr "Dernière modification :"
-
-msgid "Choose a form template file"
+msgid "device selection"
 msgstr ""
 
-msgid "Enter a filename to save the template to"
+msgid ""
+"No pages could be acquired from the source.\n"
+"\n"
+"This may mean the scanner driver is not properly installed.\n"
+"\n"
+"On Windows you must install the TWAIN Python module\n"
+"while on Linux and MacOSX it is recommended to install\n"
+"the XSane package."
 msgstr ""
 
-#, fuzzy
-msgid "Emergency contact"
-msgstr "Contact d'urgence (dans la base de données)"
+msgid "acquiring page"
+msgstr "acquisition d'une image"
 
-#, fuzzy
-msgid "Primary doctor"
-msgstr "Afficher les médecins"
+msgid "captured by imaging device"
+msgstr ""
 
-#, fuzzy
-msgid "in-praxis primary provider"
-msgstr "Médecin traitant"
+msgid "Choose a file"
+msgstr "Choisissez un fichier"
 
-#, fuzzy
-msgid "This praxis"
-msgstr "Votre examen"
+msgid "all files (Win)"
+msgstr ""
 
-#, fuzzy
-msgid "Hospital stay"
-msgstr "Hôpital"
+msgid "picked from storage media"
+msgstr ""
 
 #, fuzzy
-msgid "Bill receiver"
-msgstr "choisir"
+msgid "pasted from clipboard"
+msgstr "Impossible de copier dans le presse-papier."
 
 #, fuzzy
-msgid "Receiver"
-msgstr "Patient :"
+msgid "No part selected for viewing."
+msgstr "Agir sur les objets sélectionnés dans la liste ci-dessus."
 
+#, python-format
 msgid ""
-"Are you sure you want to delete this\n"
-"description from the document ?\n"
-msgstr ""
-
-msgid "Deleting document description"
-msgstr ""
-
-msgid "Adding document description"
+"Cannot display document part:\n"
+"%s"
 msgstr ""
 
-msgid "Below you can add a document description.\n"
+msgid "displaying part"
 msgstr ""
 
-msgid "Editing document description"
-msgstr ""
+#, fuzzy
+msgid "No part selected for removal."
+msgstr "Agir sur les objets sélectionnés dans la liste ci-dessus."
 
-msgid "Below you can edit the document description.\n"
+msgid "Cannot add document description."
 msgstr ""
 
-msgid "Select the description you are interested in.\n"
-msgstr ""
+msgid "Error setting \"reviewed\" status of new document."
+msgstr "Erreur lors du choix du status \"examiné\" sur ce nouveau document."
 
-msgid "Managing document descriptions"
+#, python-format
+msgid ""
+"Source: %s\n"
+"File: %s\n"
+"\n"
+"%s"
 msgstr ""
 
-msgid "Select the episode under which to file the document ..."
+msgid "Document part does not seem to exist in database !"
 msgstr ""
 
-#, python-format
-msgid "Imported new document from %s."
+msgid "showing document"
 msgstr ""
 
-msgid "Enter a comment on the document."
+#, fuzzy
+msgid "Document list for this patient."
 msgstr ""
+"\n"
+"Compléter l'historique des vaccinations de ce patient.\n"
 
-msgid "User defined"
-msgstr "Défini par l’utilisateur"
+#, fuzzy
+msgid "Showing documents."
+msgstr "sauvegarder le document"
 
-msgid "In use"
+msgid "Ref #"
 msgstr ""
 
 #, python-format
-msgid ""
-"Cannot delete document type\n"
-" [%s]\n"
-"because it is currently in use."
-msgstr ""
-
-msgid "deleting document type"
+msgid "available documents (%s)"
 msgstr ""
 
 #, python-format
-msgid ""
-"From the list below select the document type you want\n"
-"all documents currently classified as:\n"
-"\n"
-" \"%s\"\n"
-"\n"
-"to be changed to.\n"
-"\n"
-"Be aware that this change will be applied to ALL such documents. If there\n"
-"are many documents to change it can take quite a while.\n"
-"\n"
-"Make sure this is what you want to happen !\n"
+msgid "unsigned (%s) on top"
 msgstr ""
 
-msgid "Reassigning document type"
+msgid "most recent on top"
 msgstr ""
 
-msgid "Select the document type."
-msgstr ""
+msgid "sorted by episode"
+msgstr "Trier par: période"
 
 #, fuzzy
-msgid "Cannot create document type without name."
-msgstr "Impossible d'indexer les documents sans un fichier de configuration"
-
-msgid "+/-"
-msgstr "+/-"
-
-msgid "!"
-msgstr "!"
-
-msgid "comment"
-msgstr "commentaire"
-
-msgid "(you are the primary reviewer)"
-msgstr ""
+msgid "sorted by health issue"
+msgstr "Trier par: période"
 
-#, python-format
-msgid "(someone else is the intended reviewer: %s)"
-msgstr ""
+msgid "sorted by type"
+msgstr "trier par type"
 
-#, python-format
-msgid ""
-"Cannot create episode\n"
-" [%s]"
+msgid "Cannot load documents. No active patient."
 msgstr ""
 
 #, fuzzy
-msgid "Editing document properties"
-msgstr "Propriétés du document"
+msgid "Part Actions:"
+msgstr "Vaccinations:"
 
-#, python-format
-msgid "Cannot change document type to [%s]."
+msgid "Display part"
 msgstr ""
 
 #, python-format
-msgid ""
-"Cannot link the document to episode\n"
-"\n"
-" [%s]"
+msgid "%s Sign/Edit properties"
 msgstr ""
 
-msgid "Error setting \"reviewed\" status of this document."
-msgstr "Erreur lors du choix du status \"examiné\" sur ce document."
-
-msgid "Error setting responsible clinician for this document."
-msgstr ""
+#, fuzzy
+msgid "Delete part"
+msgstr " Effacer "
 
-msgid "Error setting \"reviewed\" status of this part."
-msgstr "Erreur lors du choix du status \"examiné\" sur cette partie."
+#, fuzzy
+msgid "Move part"
+msgstr "Supprimer une partie"
 
-#, python-format
-msgid ""
-"Cannot set page number to [%s] because\n"
-"another page with this number exists.\n"
-"\n"
-"Page numbers in use:\n"
-"\n"
-" %s"
+msgid "Print part"
 msgstr ""
 
-#, fuzzy
-msgid "Editing document part properties"
-msgstr "Propriétés du document"
-
-msgid "Error saving part properties."
+msgid "Fax part"
 msgstr ""
 
-msgid ""
-"No images could be acquired from the source.\n"
-"\n"
-"This may mean the scanner driver is not properly installed.\n"
-"\n"
-"On Windows you must install the TWAIN Python module\n"
-"while on Linux and MacOSX it is recommended to install\n"
-"the XSane package."
+msgid "Mail part"
 msgstr ""
 
 #, fuzzy
-msgid "Acquiring images"
-msgstr "acquisition d'une image"
+msgid "Export part"
+msgstr "Exporter"
 
 #, fuzzy
-msgid "other documents"
-msgstr "Attacher des documents"
+msgid "Document Actions:"
+msgstr "Documents:"
 
-#, python-format
-msgid "part %s: %s"
+msgid "Delete document"
 msgstr ""
 
-msgid "saving document"
-msgstr "sauvegarder le document"
+#, fuzzy
+msgid "Add parts"
+msgstr "(%s patients)"
 
-msgid "No parts to save. Really save an empty document as a reference ?"
+msgid "Add part from clipboard"
 msgstr ""
 
-msgid "No parts to save. Aquire some parts first."
+msgid "Print all parts"
 msgstr ""
 
-msgid "No document type applied. Choose a document type"
+msgid "Fax all parts"
 msgstr ""
 
-msgid "You must select an episode to save this document under."
+msgid "Mail all parts"
 msgstr ""
 
-msgid ""
-"You need to select from the list of staff members the doctor who is intended "
-"to sign the document."
+msgid "Export all parts"
 msgstr ""
 
-msgid "There is no scanner support installed on this machine."
+msgid "Access external original"
 msgstr ""
 
-msgid "Cannot find an active scanner."
+msgid "Edit corresponding encounter"
 msgstr ""
 
-msgid "Select an image capture device"
-msgstr ""
+#, fuzzy
+msgid "Select corresponding encounter"
+msgstr "Sélectionnez le type de visite"
 
-msgid "device selection"
+msgid "Manage descriptions"
 msgstr ""
 
-msgid ""
-"No pages could be acquired from the source.\n"
-"\n"
-"This may mean the scanner driver is not properly installed.\n"
-"\n"
-"On Windows you must install the TWAIN Python module\n"
-"while on Linux and MacOSX it is recommended to install\n"
-"the XSane package."
-msgstr ""
-
-msgid "acquiring page"
-msgstr "acquisition d'une image"
-
-msgid "Choose a file"
-msgstr "Choisissez un fichier"
-
-msgid "all files (Win)"
-msgstr ""
-
-msgid "You must select a part before you can view it."
-msgstr ""
-
-msgid "displaying part"
-msgstr ""
-
-#, python-format
-msgid ""
-"Cannot display document part:\n"
-"%s"
-msgstr ""
-
-msgid "You must select a part before you can delete it."
-msgstr ""
-
-msgid "deleting part"
-msgstr ""
-
-#, python-format
-msgid ""
-"The part has successfully been removed from the document.\n"
-"\n"
-"Do you also want to permanently delete the file\n"
-"\n"
-" [%s]\n"
-"\n"
-"from which this document part was loaded ?\n"
-"\n"
-"If it is a temporary file for a page you just scanned\n"
-"this makes a lot of sense. In other cases you may not\n"
-"want to lose the file.\n"
-"\n"
-"Pressing [YES] will permanently remove the file\n"
-"from your computer.\n"
-msgstr ""
-
-msgid "Removing document part"
-msgstr ""
-
-#, python-format
-msgid ""
-"Cannot delete part in file [%s].\n"
-"\n"
-"You may not have write access to it."
-msgstr ""
-
-msgid "Cannot create new document."
-msgstr ""
-
-msgid "Cannot update document metadata."
-msgstr ""
-
-msgid "Cannot add document description."
-msgstr ""
-
-msgid "Error setting \"reviewed\" status of new document."
-msgstr "Erreur lors du choix du status \"examiné\" sur ce nouveau document."
-
-msgid "Successfully saved the new document."
-msgstr ""
-
-#, python-format
-msgid ""
-"The reference ID for the new document is:\n"
-"\n"
-" <%s>\n"
-"\n"
-"You probably want to write it down on the\n"
-"original documents.\n"
-"\n"
-"If you don't care about the ID you can switch\n"
-"off this message in the GNUmed configuration."
-msgstr ""
-
-#, fuzzy
-msgid "Saving document"
-msgstr "sauvegarder le document"
-
-msgid "Successfully saved new document."
-msgstr ""
-
-msgid "Document part does not seem to exist in database !"
-msgstr ""
-
-msgid "showing document"
-msgstr ""
-
-#, fuzzy
-msgid "Document list for this patient."
-msgstr ""
-"\n"
-"Compléter l'historique des vaccinations de ce patient.\n"
-
-#, fuzzy
-msgid "Showing documents."
-msgstr "sauvegarder le document"
-
-#, fuzzy
-msgid "Generated"
-msgstr "auto-généré"
-
-msgid "Ref #"
-msgstr ""
-
-#, python-format
-msgid "available documents (%s)"
-msgstr ""
-
-#, python-format
-msgid "unsigned (%s) on top"
-msgstr ""
-
-msgid "most recent on top"
-msgstr ""
-
-msgid "sorted by episode"
-msgstr "Trier par: période"
-
-#, fuzzy
-msgid "sorted by health issue"
-msgstr "Trier par: période"
-
-msgid "sorted by type"
-msgstr "trier par type"
-
-msgid "Cannot load documents. No active patient."
-msgstr ""
-
-#, fuzzy
-msgid "Part Actions:"
-msgstr "Vaccinations:"
-
-msgid "Display part"
-msgstr ""
-
-#, python-format
-msgid "%s Sign/Edit properties"
-msgstr ""
-
-#, fuzzy
-msgid "Delete part"
-msgstr " Effacer "
-
-#, fuzzy
-msgid "Move part"
-msgstr "Supprimer une partie"
-
-msgid "Print part"
-msgstr ""
-
-msgid "Fax part"
-msgstr ""
-
-msgid "Mail part"
-msgstr ""
-
-#, fuzzy
-msgid "Export part"
-msgstr "Exporter"
-
-#, fuzzy
-msgid "Document Actions:"
-msgstr "Documents:"
-
-msgid "Delete document"
-msgstr ""
-
-#, fuzzy
-msgid "Add parts"
-msgstr "(%s patients)"
-
-msgid "Add part from clipboard"
-msgstr ""
-
-msgid "Print all parts"
-msgstr ""
-
-msgid "Fax all parts"
-msgstr ""
-
-msgid "Mail all parts"
-msgstr ""
-
-msgid "Export all parts"
-msgstr ""
-
-msgid "Access external original"
-msgstr ""
-
-msgid "Edit corresponding encounter"
-msgstr ""
-
-#, fuzzy
-msgid "Select corresponding encounter"
-msgstr "Sélectionnez le type de visite"
-
-msgid "Manage descriptions"
-msgstr ""
-
-msgid "Error searching documents."
+msgid "Error searching documents."
 msgstr ""
 
 msgid "loading document list"
@@ -15052,79 +15383,241 @@ msgstr ""
 msgid "Deleting document"
 msgstr ""
 
-#, python-format
-msgid "You are logged in as %s%s.%s (%s). DB account <%s>."
-msgstr ""
+#, fuzzy
+msgid "Study date"
+msgstr "date"
 
-msgid "&Go to plugin ..."
-msgstr ""
+#, fuzzy
+msgid "Study time"
+msgstr "Démarré"
 
-msgid "Check for updates"
+msgid "Method"
 msgstr ""
 
-msgid "Check for new releases of the GNUmed client."
-msgstr ""
+#, fuzzy
+msgid "Body part"
+msgstr "(%s patients)"
 
-msgid "Announce downtime"
+#, fuzzy
+msgid "Time"
+msgstr "Durée :"
+
+msgid "Cannot connect without port (try 8042)."
 msgstr ""
 
-msgid "Announce database maintenance downtime to all connected clients."
+#, python-format
+msgid "Connect to [%s] @ port %s as \"%s\"."
 msgstr ""
 
 #, fuzzy
-msgid "All options"
-msgstr "Options"
+msgid "Cannot connect to PACS."
+msgstr "impossible de se connecter au service [%s]"
 
-msgid "List all options as configured in the database."
+#, python-format
+msgid "PACS: Orthanc \"%s\" (AET \"%s\", Version %s, DB v%s)"
 msgstr ""
 
-msgid "Configure the database language"
+#, python-format
+msgid "GNUmed patient: %s (generic PACS ID)"
 msgstr ""
 
-msgid "Welcome message"
+#, python-format
+msgid "GNUmed patient: \"%(value)s\" @ [%(issuer)s] (stored PACS ID)"
 msgstr ""
 
-msgid "Configure the database welcome message (all users)."
+msgid "PACS: no patients with matching IDs found"
 msgstr ""
 
-msgid "Database ..."
+msgid ""
+"PACS: more than one patient with matching IDs found, carefully check studies"
 msgstr ""
 
-msgid "Export chunk size"
+#, python-format
+msgid "%s series"
 msgstr ""
 
-msgid "Configure the chunk size used when exporting BLOBs from the database."
-msgstr ""
+#, fuzzy, python-format
+msgid "%%s (%s series)"
+msgstr "%s (%s cette année)"
 
-msgid "Email address"
+msgid "no studies"
 msgstr ""
 
-msgid "The email address of the user for sending bug reports, etc."
+#, python-format
+msgid "%s studies"
 msgstr ""
 
-msgid "Client parameters ..."
+msgid "Exporting DICOM studies"
 msgstr ""
 
 #, fuzzy
-msgid "Medication measurements"
-msgstr "Mesurations"
+msgid "Unable to export selected studies."
+msgstr "Modifier l'objet sélectionné."
 
-msgid "Select the measurements panel to show in the medications plugin."
+#, python-format
+msgid ""
+"The DICOM studies are %s in compressed size.\n"
+"\n"
+"Really copy to export area ?"
 msgstr ""
 
-msgid "Review dialog"
+#, python-format
+msgid "DICOM studies of [%s] from Orthanc PACS \"%s\" (AET \"%s\")"
 msgstr ""
 
-msgid "Configure review dialog after document display."
-msgstr ""
+#, fuzzy
+msgid "Select the directory into which to save the DICOM studies."
+msgstr "Choisissez l'épisode vers lequel vous voulez déplacer le texte."
 
-msgid "UUID display"
-msgstr ""
+#, fuzzy
+msgid "Saving DICOM studies"
+msgstr "Enregistrer le vaccin"
 
-msgid "Configure unique ID dialog on document import."
-msgstr ""
+#, fuzzy
+msgid "Unable to save selected studies."
+msgstr "Modifier l'objet sélectionné."
 
-msgid "Empty documents"
+#, fuzzy
+msgid "Unable to export studies."
+msgstr "Impossible d'ouvrir la chronologie '%s'."
+
+#, python-format
+msgid "All DICOM studies of [%s] from Orthanc PACS \"%s\" (AET \"%s\")"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "%s%s images"
+msgstr "Exporté: %s\n"
+
+#, fuzzy
+msgid "Select the directory from which to recursively upload DICOM files."
+msgstr "Choisissez l'épisode vers lequel vous voulez déplacer le texte."
+
+msgid "Delete the uploaded DICOM files now ?"
+msgstr ""
+
+msgid ""
+"Some files have not been uploaded.\n"
+"\n"
+"Do you want to delete those DICOM files which have been sent to the PACS "
+"successfully ?"
+msgstr ""
+
+#, fuzzy
+msgid "Uploading DICOM files"
+msgstr "chargement du fichier xDT"
+
+#, fuzzy
+msgid "Editing Orthanc content"
+msgstr "Modifier le vaccin"
+
+#, fuzzy
+msgid "Patient ID"
+msgstr "Patient"
+
+#, fuzzy
+msgid "Birth date"
+msgstr "date"
+
+msgid "Orthanc"
+msgstr ""
+
+#, fuzzy
+msgid "Modifying patient ID"
+msgstr "Fusionner les patients"
+
+#, python-format
+msgid ""
+"Really modify %s patient(s) to have the new patient ID\n"
+"\n"
+" [%s]\n"
+"\n"
+"stored in the Orthanc DICOM server ?"
+msgstr ""
+
+#, python-format
+msgid "You are logged in as %s%s.%s (%s). DB account <%s>."
+msgstr ""
+
+msgid "&Go to plugin ..."
+msgstr ""
+
+msgid "Check for updates"
+msgstr ""
+
+msgid "Check for new releases of the GNUmed client."
+msgstr ""
+
+msgid "Announce downtime"
+msgstr ""
+
+msgid "Announce database maintenance downtime to all connected clients."
+msgstr ""
+
+#, fuzzy
+msgid "All options"
+msgstr "Options"
+
+msgid "List all options as configured in the database."
+msgstr ""
+
+msgid "Configure the database language"
+msgstr ""
+
+msgid "Welcome message"
+msgstr ""
+
+msgid "Configure the database welcome message (all users)."
+msgstr ""
+
+msgid "Database ..."
+msgstr ""
+
+msgid "Export chunk size"
+msgstr ""
+
+msgid "Configure the chunk size used when exporting BLOBs from the database."
+msgstr ""
+
+msgid "Email address"
+msgstr ""
+
+msgid "The email address of the user for sending bug reports, etc."
+msgstr ""
+
+msgid "Client parameters ..."
+msgstr ""
+
+#, fuzzy
+msgid "Medication measurements"
+msgstr "Mesurations"
+
+msgid "Select the measurements panel to show in the medications plugin."
+msgstr ""
+
+#, fuzzy
+msgid "General measurements"
+msgstr "Mesurations"
+
+#, fuzzy
+msgid "Select the measurements panel to show in the top pane."
+msgstr ""
+"\n"
+"Compléter l'historique des vaccinations de ce patient.\n"
+
+msgid "Review dialog"
+msgstr ""
+
+msgid "Configure review dialog after document display."
+msgstr ""
+
+msgid "UUID display"
+msgstr ""
+
+msgid "Configure unique ID dialog on document import."
+msgstr ""
+
+msgid "Empty documents"
 msgstr ""
 
 msgid "Whether to allow saving documents without parts."
@@ -15202,6 +15695,13 @@ msgstr ""
 msgid "Configure auto-opening editors for recent problems."
 msgstr ""
 
+#, fuzzy
+msgid "SOAP fields"
+msgstr "champ XDT"
+
+msgid "Configure SOAP editor - individual SOAP fields vs text editor like"
+msgstr ""
+
 msgid "Progress notes handling ..."
 msgstr ""
 
@@ -15223,6 +15723,9 @@ msgstr ""
 msgid "URL for measurements encyclopedia."
 msgstr ""
 
+msgid "Drug data source"
+msgstr ""
+
 msgid "Select the drug data source."
 msgstr ""
 
@@ -15608,6 +16111,16 @@ msgstr "notes de progrès"
 msgid "Manage dynamic hints suppressed in this patient."
 msgstr ""
 
+#, fuzzy
+msgid "Substance abuse"
+msgstr "Substance"
+
+#, fuzzy
+msgid "Manage substance abuse documentation of this patient."
+msgstr ""
+"\n"
+"Compléter l'historique des vaccinations de ce patient.\n"
+
 msgid "&Add / Edit ..."
 msgstr ""
 
@@ -15632,26 +16145,52 @@ msgstr ""
 msgid "Show a high-level statistic summary of the EMR."
 msgstr ""
 
-msgid "Text document"
-msgstr "Document texte"
+msgid "Journal (encounters) to file"
+msgstr ""
+
+msgid ""
+"Save the EMR of the active patient as a chronological journal into a text "
+"file"
+msgstr ""
+
+#, fuzzy
+msgid "Journal (encounters) to export area"
+msgstr "Ajouter un nouveau vaccin"
 
-msgid "Export the EMR of the active patient into a text file"
+msgid ""
+"Copy EMR of the active patient as a chronological journal into export area"
 msgstr ""
 
-msgid "Journal"
-msgstr "Journal"
+msgid "Journal (mod time) to file"
+msgstr ""
 
 msgid ""
-"Export the EMR of the active patient as a chronological journal into a text "
-"file"
+"Save the EMR of the active patient as journal by last modification time into "
+"a text file"
+msgstr ""
+
+#, fuzzy
+msgid "Journal (mod time) to export area"
+msgstr "Ajouter un nouveau vaccin"
+
+msgid ""
+"Copy EMR of the active patient as journal by last modification time into "
+"export area"
 msgstr ""
 
+msgid "Text document"
+msgstr "Document texte"
+
+#, fuzzy
+msgid "Save the EMR of the active patient into a text file"
+msgstr "Impossible de fusionner un patient actif avec un autre patient."
+
 msgid "MEDISTAR import format"
 msgstr ""
 
 msgid ""
-"GNUmed -> MEDISTAR. Export progress notes of active patient's active "
-"encounter into a text file."
+"GNUmed -> MEDISTAR. Save progress notes of active patient's active encounter "
+"into a text file."
 msgstr ""
 
 msgid "Export as ..."
@@ -15829,19 +16368,42 @@ msgstr ""
 msgid "Show log file"
 msgstr ""
 
-msgid "Show the log file in text viewer."
+msgid "Show log file in text viewer."
 msgstr ""
 
 msgid "Backup log file"
 msgstr ""
 
-msgid "Backup the content of the log to another file."
+msgid "Backup content of the log to another file."
 msgstr ""
 
 msgid "Email log file"
 msgstr ""
 
-msgid "Send the log file to the authors for help."
+msgid "Send log file to the authors for help."
+msgstr ""
+
+#, fuzzy
+msgid "Browse tmp dir"
+msgstr "Fusionner les patients"
+
+#, python-format
+msgid "Browse temporary directory [%s]."
+msgstr ""
+
+#, fuzzy
+msgid "Browse work dir"
+msgstr "Fusionner les patients"
+
+#, python-format
+msgid "Browse user working directory [%s]."
+msgstr ""
+
+msgid "Browse internal work dir"
+msgstr ""
+
+#, python-format
+msgid "Browse internal working directory [%s]."
 msgstr ""
 
 msgid "Bug tracker"
@@ -16188,6 +16750,20 @@ msgid "No, only auto-open one editor for a new, unassociated problem."
 msgstr ""
 
 msgid ""
+"When editing progress notes, do you want GNUmed to\n"
+"show individual fields for each of the SOAP categories\n"
+"or do you want to use a text-editor like field for\n"
+"all SOAP categories which can then be set per line\n"
+"of input ?"
+msgstr ""
+
+msgid "Yes, show a dedicated field per SOAP category."
+msgstr ""
+
+msgid "No, use one field for all SOAP categories."
+msgstr ""
+
+msgid ""
 "When a patient is activated GNUmed can\n"
 "be told to switch to a specific plugin.\n"
 "\n"
@@ -16242,789 +16818,1209 @@ msgid ""
 "set this option to an improbable value.\n"
 msgstr ""
 
-msgid ""
-"When a patient is activated GNUmed checks the\n"
-"age of the most recent encounter.\n"
-"\n"
-"If that encounter is younger than this age\n"
-"the existing encounter will be continued.\n"
-"\n"
-"(If it is really old a new encounter is\n"
-" started, or else GNUmed will ask you.)\n"
+msgid ""
+"When a patient is activated GNUmed checks the\n"
+"age of the most recent encounter.\n"
+"\n"
+"If that encounter is younger than this age\n"
+"the existing encounter will be continued.\n"
+"\n"
+"(If it is really old a new encounter is\n"
+" started, or else GNUmed will ask you.)\n"
+msgstr ""
+
+msgid ""
+"When a patient is activated GNUmed checks the\n"
+"age of the most recent encounter.\n"
+"\n"
+"If that encounter is older than this age\n"
+"GNUmed will always start a new encounter.\n"
+"\n"
+"(If it is very recent the existing encounter\n"
+" is continued, or else GNUmed will ask you.)\n"
+msgstr ""
+
+msgid ""
+"At any time there can only be one open (ongoing)\n"
+"episode for each health issue.\n"
+"\n"
+"When you try to open (add data to) an episode on a health\n"
+"issue GNUmed will check for an existing open episode on\n"
+"that issue. If there is any it will check the age of that\n"
+"episode. The episode is closed if it has been dormant (no\n"
+"data added, that is) for the period of time (in days) you\n"
+"set here.\n"
+"\n"
+"If the existing episode hasn't been dormant long enough\n"
+"GNUmed will consult you what to do.\n"
+"\n"
+"Enter maximum episode dormancy in DAYS:"
+msgstr ""
+
+msgid ""
+"If you want the GNUmed developers to be able to\n"
+"contact you directly - rather than via the public\n"
+"mailing list only - you can enter your preferred\n"
+"email address here.\n"
+"\n"
+"This address will then be included with bug reports\n"
+"or contributions to the GNUmed community you may\n"
+"choose to send from within the GNUmed client.\n"
+"\n"
+"Leave this blank if you wish to stay anonymous.\n"
+msgstr ""
+
+msgid "Please enter your email address."
+msgstr "Veuillez entrer votre adresse email."
+
+msgid ""
+"Do you want GNUmed to check for updates at startup ?\n"
+"\n"
+"You will still need your system administrator to\n"
+"actually install any updates for you.\n"
+msgstr ""
+
+msgid "Yes, check for updates at startup."
+msgstr "Oui, rechercher d'éventuelles mises à jour lors du démarrage."
+
+msgid "No, do not check for updates at startup."
+msgstr "Non, ne pas rechercher d'éventuelles mises à jour lors du démarrage."
+
+msgid ""
+"When checking for updates do you want GNUmed to\n"
+"look for bug fix updates only or do you want to\n"
+"know about features updates, too ?\n"
+"\n"
+"Minor updates (x.y.z.a -> x.y.z.b) contain bug fixes\n"
+"only. They can usually be installed without much\n"
+"preparation. They never require a database upgrade.\n"
+"\n"
+"Major updates (x.y.a -> x..y.b or y.a -> x.b) come\n"
+"with new features. They need more preparation and\n"
+"often require a database upgrade.\n"
+"\n"
+"You will still need your system administrator to\n"
+"actually install any updates for you.\n"
+msgstr ""
+
+msgid "Yes, check for feature updates, too."
+msgstr ""
+
+msgid "No, check for bug-fix updates only."
+msgstr ""
+
+msgid ""
+"GNUmed can check for new releases being available. To do\n"
+"so it needs to load version information from an URL.\n"
+"\n"
+"The default URL is:\n"
+"\n"
+" http://www.gnumed.de/downloads/gnumed-versions.txt\n"
+"\n"
+"but you can configure any other URL locally. Note\n"
+"that you must enter the location as a valid URL.\n"
+"Depending on the URL the client will need online\n"
+"access when checking for updates."
+msgstr ""
+
+msgid ""
+"Do you want to allow saving of new documents without\n"
+"any parts or do you want GNUmed to enforce that they\n"
+"contain at least one part before they can be saved ?\n"
+"\n"
+"Part-less documents can be useful if you want to build\n"
+"up an index of, say, archived documents but do not\n"
+"want to scan in all the pages contained therein."
+msgstr ""
+
+msgid "Yes, allow saving documents without any parts."
+msgstr ""
+
+msgid "No, require documents to have at least one part."
+msgstr ""
+
+msgid ""
+"After importing a new document do you\n"
+"want GNUmed to display the unique ID\n"
+"it auto-generated for that document ?\n"
+"\n"
+"This can be useful if you want to label the\n"
+"originals with that ID for later identification."
+msgstr ""
+
+msgid "Yes, display the ID generated for the new document after importing."
+msgstr ""
+
+msgid ""
+"No, do not display the ID generated for the new document after importing."
+msgstr ""
+
+msgid ""
+"After importing a new document do you\n"
+"want GNUmed to generate a unique ID\n"
+"(UUID) for that document ?\n"
+"\n"
+"This can be useful if you want to label the\n"
+"originals with that ID for later identification."
+msgstr ""
+
+msgid "Yes, generate a UUID for the new document after importing."
+msgstr ""
+
+msgid "No, do not generate a UUID for the new document after importing."
+msgstr ""
+
+msgid ""
+"GNUmed can show the document review dialog after\n"
+"calling the appropriate viewer for that document.\n"
+"\n"
+"Select the conditions under which you want\n"
+"GNUmed to do so:\n"
+"\n"
+" 0: never display the review dialog\n"
+" 1: always display the dialog\n"
+" 2: only if there is no previous review by me\n"
+" 3: only if there is no previous review at all\n"
+" 4: only if there is no review by the responsible reviewer\n"
+"\n"
+"Note that if a viewer is configured to not block\n"
+"GNUmed during document display the review dialog\n"
+"will actually appear in parallel to the viewer."
+msgstr ""
+
+msgid "Addresses (likely slow)"
+msgstr ""
+
+msgid "Branded drugs (as marketed)"
+msgstr ""
+
+msgid "Dynamic automatic hints"
+msgstr ""
+
+msgid "Codes and their respective terms"
+msgstr ""
+
+msgid "Communication channel types"
+msgstr ""
+
+msgid "Components of branded drugs (substances in brands)"
+msgstr ""
+
+msgid "Diagnostic organizations (path labs, ...)"
+msgstr ""
+
+msgid "Document templates (forms, letters, plots, ...)"
+msgstr ""
+
+msgid "Document types"
+msgstr ""
+
+msgid "Encounter types"
+msgstr ""
+
+msgid "Keyword based text expansion macros"
+msgstr ""
+
+msgid "Meta test/measurement types"
+msgstr ""
+
+msgid "Organizations with their units, addresses, and comm channels"
+msgstr ""
+
+msgid "Patient tags"
+msgstr ""
+
+msgid "Provinces (counties, territories, states, regions, ...)"
+msgstr ""
+
+msgid "String translations in the database"
+msgstr ""
+
+msgid "Test/measurement types"
+msgstr ""
+
+msgid "Vaccination targets (conditions known to be preventable by vaccination)"
+msgstr ""
+
+msgid "Vaccines"
+msgstr "Vaccins"
+
+msgid "Workplace profiles (which plugins to load)"
+msgstr ""
+
+msgid "Consumable substances"
+msgstr ""
+
+msgid "Billable items"
+msgstr ""
+
+#, fuzzy
+msgid "Reference data sources"
+msgstr "Information de référence"
+
+msgid "Test/measurement panels/profiles"
+msgstr ""
+
+msgid "Master data management"
+msgstr ""
+
+msgid "Select the list you want to manage:"
+msgstr ""
+
+msgid "No DICOM viewer found."
+msgstr "Aucun visualisateur DICOM trouvé."
+
+msgid "risk assessment"
+msgstr ""
+
+msgid "cardiovascular risk assessment"
+msgstr ""
+
+#, python-format
+msgid "[arriba] XML result not found in [%s]"
+msgstr ""
+
+msgid "ACS risk assessment calculator not configured."
+msgstr ""
+
+#, python-format
+msgid "Cannot run [%s] !"
+msgstr ""
+
+#, python-format
+msgid "There was a problem accessing the [arriba] result in [%s] !"
+msgstr ""
+
+msgid "[-9999]: <access violation test error>"
+msgstr ""
+
+msgid ""
+"This is a deliberate AccessDenied exception thrown to test the handling of "
+"access violations by means of a decorator."
+msgstr ""
+
+msgid "testing access check for non-existant <admin> role"
+msgstr ""
+
+msgid ""
+"This is a deliberate AccessDenied exception. You should not see this message "
+"because the role is checked in a decorator."
+msgstr ""
+
+msgid "pgAdmin III not found."
+msgstr ""
+
+msgid "Error reloading hook script."
+msgstr ""
+
+msgid "Save current log as..."
+msgstr ""
+
+msgid "log files"
+msgstr ""
+
+#, python-format
+msgid "Log file backed up as [%s]."
+msgstr ""
+
+msgid "Cannot start new encounter. No active patient."
+msgstr ""
+
+msgid "Cannot add health issue. No active patient."
+msgstr ""
+
+#, fuzzy
+msgid "Cannot add episode. No active patient."
+msgstr "Impossible de lister les rencontres. Aucun patient actif."
+
+msgid "Cannot add medication. No active patient."
+msgstr ""
+
+msgid "Cannot add allergy. No active patient."
+msgstr ""
+
+msgid "Cannot manage performed procedures. No active patient."
+msgstr ""
+
+#, fuzzy
+msgid "Cannot manage hospitalizations. No active patient."
+msgstr "Impossible de lister les rencontres. Aucun patient actif."
+
+#, fuzzy
+msgid "Cannot manage external care. No active patient."
+msgstr "Impossible de lister les rencontres. Aucun patient actif."
+
+msgid "Cannot edit occupation. No active patient."
+msgstr ""
+
+#, fuzzy
+msgid "manage vaccinations"
+msgstr "Montrer les vaccinations."
+
+msgid "Cannot add vaccinations. No active patient."
+msgstr ""
+
+#, fuzzy
+msgid "manage family history"
+msgstr "Maintient des antécédents de vaccination"
+
+#, fuzzy
+msgid "Cannot manage family history. No active patient."
+msgstr "Impossible de lister les rencontres. Aucun patient actif."
+
+#, fuzzy
+msgid "Cannot manage measurements. No active patient."
+msgstr "Impossible de lister les rencontres. Aucun patient actif."
+
+msgid "calculate EDC"
+msgstr ""
+
+#, fuzzy
+msgid "manage suppressed hints"
+msgstr "&Gérer les orgas"
+
+#, fuzzy
+msgid "Cannot manage suppressed hints. No active patient."
+msgstr "Impossible de lister les rencontres. Aucun patient actif."
+
+#, fuzzy
+msgid "Cannot manage smoking status. No active patient."
+msgstr "Impossible de lister les rencontres. Aucun patient actif."
+
+msgid "Cannot show EMR summary. No active patient."
+msgstr ""
+
+msgid "EMR Summary"
+msgstr ""
+
+#, fuzzy
+msgid "Cannot export EMR journal by last modification time. No active patient."
+msgstr "Impossible de lister les rencontres. Aucun patient actif."
+
+msgid "journal_by_last_mod_time"
+msgstr ""
+
+msgid "Save patient's EMR journal as..."
+msgstr ""
+
+msgid "Error exporting patient EMR as journal by last modification time."
+msgstr ""
+
+msgid "EMR journal export"
+msgstr ""
+
+#, python-format
+msgid ""
+"Successfully exported EMR as journal by last modification time into file "
+"[%s]."
+msgstr ""
+
+msgid "Cannot export EMR journal. No active patient."
+msgstr ""
+
+msgid "emr-journal"
+msgstr "journal-dmp"
+
+msgid "Error exporting patient EMR as chronological journal."
+msgstr ""
+
+#, python-format
+msgid "Successfully exported EMR as chronological journal into file [%s]."
+msgstr ""
+
+msgid "EMR journal by last modification time"
+msgstr ""
+
+#, fuzzy
+msgid "EMR journal by encounter"
+msgstr "Journal DMP"
+
+msgid "Cannot add tag to person. No active patient."
+msgstr ""
+
+#, python-format
+msgid "Edit the comment on tag [%s]"
+msgstr ""
+
+msgid "Editing tag comment"
 msgstr ""
 
-msgid ""
-"When a patient is activated GNUmed checks the\n"
-"age of the most recent encounter.\n"
-"\n"
-"If that encounter is older than this age\n"
-"GNUmed will always start a new encounter.\n"
-"\n"
-"(If it is very recent the existing encounter\n"
-" is continued, or else GNUmed will ask you.)\n"
+msgid "Cannot export patient as GDT. No active patient."
 msgstr ""
 
-msgid ""
-"At any time there can only be one open (ongoing)\n"
-"episode for each health issue.\n"
-"\n"
-"When you try to open (add data to) an episode on a health\n"
-"issue GNUmed will check for an existing open episode on\n"
-"that issue. If there is any it will check the age of that\n"
-"episode. The episode is closed if it has been dormant (no\n"
-"data added, that is) for the period of time (in days) you\n"
-"set here.\n"
-"\n"
-"If the existing episode hasn't been dormant long enough\n"
-"GNUmed will consult you what to do.\n"
-"\n"
-"Enter maximum episode dormancy in DAYS:"
+msgid "Exported demographics as GDT to clipboard."
 msgstr ""
 
-msgid ""
-"If you want the GNUmed developers to be able to\n"
-"contact you directly - rather than via the public\n"
-"mailing list only - you can enter your preferred\n"
-"email address here.\n"
-"\n"
-"This address will then be included with bug reports\n"
-"or contributions to the GNUmed community you may\n"
-"choose to send from within the GNUmed client.\n"
-"\n"
-"Leave this blank if you wish to stay anonymous.\n"
+#, fuzzy
+msgid "Cannot export patient as VCARD. No active patient."
+msgstr "Impossible de lister les rencontres. Aucun patient actif."
+
+msgid "Exported demographics as VCARD to clipboard."
 msgstr ""
 
-msgid "Please enter your email address."
-msgstr "Veuillez entrer votre adresse email."
+#, fuzzy
+msgid "Cannot export patient as XML (LinuxMedNews). No active patient."
+msgstr "Impossible de lister les rencontres. Aucun patient actif."
 
-msgid ""
-"Do you want GNUmed to check for updates at startup ?\n"
-"\n"
-"You will still need your system administrator to\n"
-"actually install any updates for you.\n"
+#, python-format
+msgid "Exported demographics to XML file [%s]."
 msgstr ""
 
-msgid "Yes, check for updates at startup."
-msgstr "Oui, rechercher d'éventuelles mises à jour lors du démarrage."
-
-msgid "No, do not check for updates at startup."
-msgstr "Non, ne pas rechercher d'éventuelles mises à jour lors du démarrage."
+#, python-format
+msgid "Exported demographics to GDT file [%s]."
+msgstr ""
 
-msgid ""
-"When checking for updates do you want GNUmed to\n"
-"look for bug fix updates only or do you want to\n"
-"know about features updates, too ?\n"
-"\n"
-"Minor updates (x.y.z.a -> x.y.z.b) contain bug fixes\n"
-"only. They can usually be installed without much\n"
-"preparation. They never require a database upgrade.\n"
-"\n"
-"Major updates (x.y.a -> x..y.b or y.a -> x.b) come\n"
-"with new features. They need more preparation and\n"
-"often require a database upgrade.\n"
-"\n"
-"You will still need your system administrator to\n"
-"actually install any updates for you.\n"
+#, python-format
+msgid "Exported demographics to VCARD file [%s]."
 msgstr ""
 
-msgid "Yes, check for feature updates, too."
+msgid "Cannot add staff member. No active patient."
 msgstr ""
 
-msgid "No, check for bug-fix updates only."
+msgid "Cannot delete patient. No patient active."
 msgstr ""
 
 msgid ""
-"GNUmed can check for new releases being available. To do\n"
-"so it needs to load version information from an URL.\n"
-"\n"
-"The default URL is:\n"
-"\n"
-" http://www.gnumed.de/downloads/gnumed-versions.txt\n"
-"\n"
-"but you can configure any other URL locally. Note\n"
-"that you must enter the location as a valid URL.\n"
-"Depending on the URL the client will need online\n"
-"access when checking for updates."
+"You have to manually close this window to finalize shutting down GNUmed."
 msgstr ""
 
-msgid ""
-"Do you want to allow saving of new documents without\n"
-"any parts or do you want GNUmed to enforce that they\n"
-"contain at least one part before they can be saved ?\n"
-"\n"
-"Part-less documents can be useful if you want to build\n"
-"up an index of, say, archived documents but do not\n"
-"want to scan in all the pages contained therein."
+msgid "This is so that you can inspect the console output at your leisure."
 msgstr ""
 
-msgid "Yes, allow saving documents without any parts."
+msgid "no patient"
+msgstr "Pas de patient"
+
+#, python-format
+msgid "Saved screenshot to file [%s]."
 msgstr ""
 
-msgid "No, require documents to have at least one part."
+msgid "Python version check"
 msgstr ""
 
+#, python-format
 msgid ""
-"After importing a new document do you\n"
-"want GNUmed to display the unique ID\n"
-"it auto-generated for that document ?\n"
+"You are running Python version\n"
+" %s\n"
 "\n"
-"This can be useful if you want to label the\n"
-"originals with that ID for later identification."
+"However, GNUmed wants Python 2.7 to\n"
+"facilitate migration to Python 3.\n"
+"\n"
+"Please upgrade your Python interpreter !"
 msgstr ""
 
-msgid "Yes, display the ID generated for the new document after importing."
+msgid "GNUmed client"
 msgstr ""
 
-msgid ""
-"No, do not display the ID generated for the new document after importing."
+msgid "GNUmed stdout/stderr window"
+msgstr ""
+
+msgid "redirecting STDOUT/STDERR to this log window"
 msgstr ""
 
+#, python-format
 msgid ""
-"After importing a new document do you\n"
-"want GNUmed to generate a unique ID\n"
-"(UUID) for that document ?\n"
+"The database account [%s] cannot be used as a\n"
+"staff member login for GNUmed. There was an\n"
+"error retrieving staff details for it.\n"
 "\n"
-"This can be useful if you want to label the\n"
-"originals with that ID for later identification."
+"Please ask your administrator for help.\n"
 msgstr ""
 
-msgid "Yes, generate a UUID for the new document after importing."
+msgid "Checking access permissions"
 msgstr ""
 
-msgid "No, do not generate a UUID for the new document after importing."
+#, python-format
+msgid "Database <%s> on <%s>"
 msgstr ""
 
-msgid ""
-"GNUmed can show the document review dialog after\n"
-"calling the appropriate viewer for that document.\n"
-"\n"
-"Select the conditions under which you want\n"
-"GNUmed to do so:\n"
-"\n"
-" 0: never display the review dialog\n"
-" 1: always display the dialog\n"
-" 2: only if there is no previous review by me\n"
-" 3: only if there is no previous review at all\n"
-" 4: only if there is no review by the responsible reviewer\n"
-"\n"
-"Note that if a viewer is configured to not block\n"
-"GNUmed during document display the review dialog\n"
-"will actually appear in parallel to the viewer."
+#, python-format
+msgid "Branch \"%s\" of praxis \"%s\"\n"
 msgstr ""
 
-msgid "Addresses (likely slow)"
+msgid "Verifying database"
 msgstr ""
 
-msgid "Branded drugs (as marketed)"
+msgid "Connect"
 msgstr ""
 
-msgid "Dynamic automatic hints"
+msgid "Yes, connect to this database."
 msgstr ""
 
-msgid "Codes and their respective terms"
+msgid "Disconnect"
 msgstr ""
 
-msgid "Communication channel types"
+msgid "No, do not connect to this database."
 msgstr ""
 
-msgid "Components of branded drugs (substances in brands)"
+#, python-format
+msgid ""
+"Cannot find configuration file in any of:\n"
+"\n"
+" %s\n"
+"You may need to use the comand line option\n"
+"\n"
+"\t--conf-file=<FILE>"
 msgstr ""
 
-msgid "Diagnostic organizations (path labs, ...)"
+msgid "Checking configuration files"
 msgstr ""
 
-msgid "Document templates (forms, letters, plots, ...)"
+msgid "GNUmed startup"
 msgstr ""
 
-msgid "Document types"
+#, python-format
+msgid ""
+"The currently selected database language ('%s') does\n"
+"not match the current system language ('%s').\n"
+"\n"
+"Do you want to set the database language to '%s' ?\n"
 msgstr ""
 
-msgid "Encounter types"
+msgid "Checking database language settings"
 msgstr ""
 
-msgid "Keyword based text expansion macros"
+#, python-format
+msgid "Set your database language to [%s]."
 msgstr ""
 
-msgid "Meta test/measurement types"
+msgid "Don't set"
 msgstr ""
 
-msgid "Organizations with their units, addresses, and comm channels"
+msgid "Do not set your database language now."
 msgstr ""
 
-msgid "Patient tags"
+msgid "Remember to ignore language mismatch"
 msgstr ""
 
-msgid "Provinces (counties, territories, states, regions, ...)"
+#, python-format
+msgid ""
+"Checking this will make GNUmed remember your decision\n"
+"until the system language is changed.\n"
+"\n"
+"You can also reactivate this inquiry by removing the\n"
+"corresponding \"ignore\" option from the configuration file\n"
+"\n"
+" [%s]"
 msgstr ""
 
-msgid "String translations in the database"
+#, fuzzy
+msgid "generic activity"
+msgstr "Nom Générique"
+
+msgid "Access denied"
 msgstr ""
 
-msgid "Test/measurement types"
+#, python-format
+msgid ""
+"Your account is not set up to access this part of GNUmed:\n"
+"\n"
+"  [%s]"
 msgstr ""
 
-msgid "Vaccination targets (conditions known to be preventable by vaccination)"
+msgid "Save timeline as SVG image under..."
 msgstr ""
 
-msgid "Vaccines"
-msgstr "Vaccins"
+#, fuzzy
+msgid "timeline image"
+msgstr "tous les fichiers"
 
-msgid "Workplace profiles (which plugins to load)"
-msgstr ""
+#, fuzzy
+msgid "timeline data"
+msgstr "Aucune chronologie choisie"
 
-msgid "Consumable substances"
+msgid "Cannot change notebook tabs. No active patient."
 msgstr ""
 
-msgid "Billable items"
+msgid "add plugin ..."
 msgstr ""
 
-#, fuzzy
-msgid "Reference data sources"
-msgstr "Information de référence"
+msgid "Cannot activate Allergy Manager. No active patient."
+msgstr ""
+"Impossible d'activer le gestionnaire des allergies. Aucun patient actif."
 
-msgid "Test/measurement panels/profiles"
+msgid "RR ?"
 msgstr ""
 
-msgid "Master data management"
+#, python-format
+msgid "BMI %s"
 msgstr ""
 
-msgid "Select the list you want to manage:"
+msgid "BMI ?"
 msgstr ""
 
-msgid "No DICOM viewer found."
-msgstr "Aucun visualisateur DICOM trouvé."
+msgid "GFR ?"
+msgstr ""
 
-msgid "risk assessment"
+#, python-format
+msgid "GFR %s"
 msgstr ""
 
-msgid "cardiovascular risk assessment"
+#, python-format
+msgid "?EDC %s"
 msgstr ""
 
 #, python-format
-msgid "[arriba] XML result not found in [%s]"
+msgid "EDC %s"
 msgstr ""
 
-msgid "ACS risk assessment calculator not configured."
+msgid "<Age>"
 msgstr ""
 
+#, fuzzy
+msgid "no patient selected"
+msgstr "Modifier la vaccination"
+
 #, python-format
-msgid "Cannot run [%s] !"
+msgid "Gender: %s (%s) - %s\n"
 msgstr ""
 
 #, python-format
-msgid "There was a problem accessing the [arriba] result in [%s] !"
+msgid "Born: %s\n"
 msgstr ""
 
-msgid "[-9999]: <access violation test error>"
+#, python-format
+msgid "Died: %s\n"
 msgstr ""
 
-msgid ""
-"This is a deliberate AcessDenied exception thrown to test the handling of "
-"access violations by means of a decorator."
+#, python-format
+msgid "At age: %s\n"
 msgstr ""
 
-msgid "testing access check for non-existant <admin> role"
+msgid " (date of birth and age are estimated)\n"
 msgstr ""
 
+#, fuzzy, python-format
+msgid "%(sex)s  %(dob)s (%(age)s today !)"
+msgstr "%s %s (%s aujourd'hui !)"
+
 msgid ""
-"This is a deliberate AcessDenied exception. You should not see this message "
-"because the role is checked in a decorator."
+"\n"
+"Today is the patient's birthday !\n"
+"\n"
 msgstr ""
 
-msgid "pgAdmin III not found."
+#, python-format
+msgid "Birthday: %s ago\n"
 msgstr ""
 
-msgid "Error reloading hook script."
+#, python-format
+msgid "Birthday: in %s\n"
 msgstr ""
 
-msgid "Save current log as..."
+#, python-format
+msgid "Age: %s\n"
 msgstr ""
 
-msgid "log files"
+#, python-format
+msgid "last confirmed %s\n"
+msgstr "dernier confirmé %s\n"
+
+#, python-format
+msgid "Comment (%s): %%s"
+msgstr "Commentaire (%s) : %%s"
+
+#, python-format
+msgid " - expires %s"
 msgstr ""
 
 #, python-format
-msgid "Log file backed up as [%s]."
+msgid ""
+"Due for %s (since %s%s):\n"
+"%s%s\n"
+"Patient: %s\n"
+"Reminder by: %s"
 msgstr ""
 
-msgid "Cannot start new encounter. No active patient."
+#, fuzzy
+msgid "Clinical reminder"
+msgstr "Informations cliniques"
+
+#, fuzzy
+msgid "Adding automatic dynamic hint"
+msgstr "Vaccins affichés."
+
+#, fuzzy
+msgid "Editing automatic dynamic hint"
+msgstr "Vaccins affichés."
+
+#, fuzzy
+msgid "Deleting automatic dynamic hint"
+msgstr "Vaccins affichés."
+
+#, python-format
+msgid ""
+"Really delete this dynamic hint ?\n"
+"\n"
+" [%s]"
 msgstr ""
 
-msgid "Cannot add health issue. No active patient."
+#, fuzzy
+msgid "deleting a dynamic hint"
+msgstr "Vaccins affichés."
+
+msgid ""
+"\n"
+"Dynamic hints registered with GNUmed.\n"
 msgstr ""
 
 #, fuzzy
-msgid "Cannot add episode. No active patient."
-msgstr "Impossible de lister les rencontres. Aucun patient actif."
+msgid "Showing dynamic hints."
+msgstr "Vaccins affichés."
 
-msgid "Cannot add medication. No active patient."
+msgid "Hint"
 msgstr ""
 
-msgid "Cannot add allergy. No active patient."
+msgid "Browse and install automatic dynamic hints data packs"
 msgstr ""
 
-msgid "Cannot manage performed procedures. No active patient."
+#, fuzzy, python-format
+msgid "By: %s"
+msgstr "   Doc: %s"
+
+msgid "No entry in field <Source>."
 msgstr ""
 
-#, fuzzy
-msgid "Cannot manage hospitalizations. No active patient."
-msgstr "Impossible de lister les rencontres. Aucun patient actif."
+msgid "No entry in field <Conditions>."
+msgstr ""
 
 #, fuzzy
-msgid "Cannot manage external care. No active patient."
-msgstr "Impossible de lister les rencontres. Aucun patient actif."
+msgid "No entry in field <Description>."
+msgstr "Erreur de lancement du script [%s]."
 
-msgid "Cannot edit occupation. No active patient."
+msgid "No entry in field <Title>."
 msgstr ""
 
 #, fuzzy
-msgid "manage vaccinations"
-msgstr "Montrer les vaccinations."
+msgid "creating a new dynamic hint"
+msgstr "Vaccins affichés."
 
-msgid "Cannot add vaccinations. No active patient."
+#, fuzzy
+msgid "updating an existing dynamic hint"
+msgstr "Ouvrir une chronologie existante"
+
+#, fuzzy
+msgid "Deleting suppressed dynamic hint"
+msgstr "Vaccins affichés."
+
+#, python-format
+msgid ""
+"Really delete the suppression of this dynamic hint ?\n"
+"\n"
+" [%s]"
 msgstr ""
 
 #, fuzzy
-msgid "Cannot manage family history. No active patient."
-msgstr "Impossible de lister les rencontres. Aucun patient actif."
+msgid ""
+"\n"
+"Dynamic hints suppressed in this patient.\n"
+msgstr ""
+"\n"
+"Compléter l'historique des vaccinations de ce patient.\n"
 
 #, fuzzy
-msgid "Cannot manage measurements. No active patient."
-msgstr "Impossible de lister les rencontres. Aucun patient actif."
+msgid "Showing suppressed dynamic hints."
+msgstr "Vaccins affichés."
 
-msgid "calculate EDC"
-msgstr ""
+#, fuzzy
+msgid "Rationale"
+msgstr "reactions"
 
 #, fuzzy
-msgid "manage suppressed hints"
+msgid "Manage hints"
 msgstr "&Gérer les orgas"
 
 #, fuzzy
-msgid "Cannot manage suppressed hints. No active patient."
-msgstr "Impossible de lister les rencontres. Aucun patient actif."
+msgid "Manage automatic dynamic hints"
+msgstr "Vaccins affichés."
 
-msgid "Cannot show EMR summary. No active patient."
+msgid "Cannot delete family history item."
 msgstr ""
 
-msgid "EMR Summary"
+#, fuzzy
+msgid "Family history of this patient."
 msgstr ""
+"\n"
+"Compléter l'historique des vaccinations de ce patient.\n"
 
-msgid "Cannot export EMR journal. No active patient."
+msgid "Showing family history."
 msgstr ""
 
-msgid "Save patient's EMR journal as..."
+msgid "Fatal"
 msgstr ""
 
-msgid "Error exporting patient EMR as chronological journal."
-msgstr ""
+#, fuzzy
+msgid "Noted"
+msgstr "&Note"
 
-msgid "EMR journal export"
+msgid "Died"
 msgstr ""
 
-#, python-format
-msgid "Successfully exported EMR as chronological journal into file [%s]."
+msgid "Adding family history"
 msgstr ""
 
-msgid "Cannot add tag to person. No active patient."
-msgstr ""
+#, fuzzy
+msgid "Editing family history"
+msgstr "Maintient des antécédents de vaccination"
 
-#, python-format
-msgid "Edit the comment on tag [%s]"
+msgid ""
+"\n"
+"Please select the default drug data source from the list below.\n"
+"\n"
+"Note that to actually use it you need to have the database installed, too."
 msgstr ""
 
-msgid "Editing tag comment"
+msgid "Configuring default drug data source"
 msgstr ""
 
-msgid "Cannot export patient as GDT. No active patient."
+msgid "No default drug database configured."
 msgstr ""
 
-msgid "Exported demographics as GDT to clipboard."
+msgid "There is no default drug database configured."
 msgstr ""
 
-#, fuzzy
-msgid "Cannot export patient as VCARD. No active patient."
-msgstr "Impossible de lister les rencontres. Aucun patient actif."
-
-msgid "Exported demographics as VCARD to clipboard."
+msgid "Jumping to drug database"
 msgstr ""
 
-#, fuzzy
-msgid "Cannot export patient as XML (LinuxMedNews). No active patient."
-msgstr "Impossible de lister les rencontres. Aucun patient actif."
-
-#, python-format
-msgid "Exported demographics to XML file [%s]."
+msgid "Cannot import drugs from IFAP into chart without chart."
 msgstr ""
 
 #, python-format
-msgid "Exported demographics to GDT file [%s]."
+msgid "Cannot call IFAP via [%s]."
 msgstr ""
 
 #, python-format
-msgid "Exported demographics to VCARD file [%s]."
-msgstr ""
-
-msgid "Cannot add staff member. No active patient."
+msgid "Cannot create IFAP <-> GNUmed transfer file [%s]."
 msgstr ""
 
-msgid "Cannot delete patient. No patient active."
+msgid "Current medication"
 msgstr ""
 
 msgid ""
-"You have to manually close this window to finalize shutting down GNUmed."
+"\n"
+"The ATC codes as known to GNUmed.\n"
 msgstr ""
 
-msgid "This is so that you can inspect the console output at your leisure."
+msgid "Showing ATC codes."
 msgstr ""
 
-msgid "no patient"
-msgstr "Pas de patient"
+msgid "Choose an ATC import config file"
+msgstr ""
 
-#, python-format
-msgid "Saved screenshot to file [%s]."
+msgid "config files"
 msgstr ""
 
-msgid "GNUmed client"
+msgid "importing ATC reference data"
 msgstr ""
 
-msgid "GNUmed stdout/stderr window"
+msgid "Successfully imported ATC reference data."
 msgstr ""
 
-msgid "redirecting STDOUT/STDERR to this log window"
+msgid "Importing ATC reference data failed."
 msgstr ""
 
-#, python-format
-msgid ""
-"The database account [%s] cannot be used as a\n"
-"staff member login for GNUmed. There was an\n"
-"error retrieving staff details for it.\n"
-"\n"
-"Please ask your administrator for help.\n"
+msgid "Select an ATC (Anatomical-Therapeutic-Chemical) code."
 msgstr ""
 
-msgid "Checking access permissions"
+msgid "Cannot edit this substance. It is in use."
 msgstr ""
 
-#, python-format
-msgid "Database <%s> on <%s>"
+msgid "Adding new consumable substance"
 msgstr ""
 
-#, python-format
-msgid "Branch \"%s\" of praxis \"%s\"\n"
+msgid "Editing consumable substance"
 msgstr ""
 
-msgid "Verifying database"
+msgid "Cannot delete this substance. It is in use."
 msgstr ""
 
-msgid "Connect"
+msgid ""
+"\n"
+"These are the consumable substances registered with GNUmed.\n"
 msgstr ""
 
-msgid "Yes, connect to this database."
+msgid "Import"
 msgstr ""
 
-msgid "Disconnect"
+msgid "Import consumable substances from a drug database."
 msgstr ""
 
-msgid "No, do not connect to this database."
+msgid "Cannot save consumable substance. Missing essential input."
 msgstr ""
 
 #, python-format
-msgid ""
-"Cannot find configuration file in any of:\n"
-"\n"
-" %s\n"
-"You may need to use the comand line option\n"
-"\n"
-"\t--conf-file=<FILE>"
+msgid "Cannot save consumable substance. %s"
 msgstr ""
 
-msgid "Checking configuration files"
+msgid "The substance with optional strength."
 msgstr ""
 
-msgid "GNUmed startup"
+msgid "Cannot remove this component from the drug. It is in use."
 msgstr ""
 
-#, python-format
 msgid ""
-"The currently selected database language ('%s') does\n"
-"not match the current system language ('%s').\n"
 "\n"
-"Do you want to set the database language to '%s' ?\n"
+"These are the components in the drug brands known to GNUmed.\n"
 msgstr ""
 
-msgid "Checking database language settings"
+msgid "Showing drug brand components."
 msgstr ""
 
-msgid "Set"
+msgid "Adding new drug component"
 msgstr ""
 
-#, python-format
-msgid "Set your database language to [%s]."
+msgid "Editing drug component"
 msgstr ""
 
-msgid "Don't set"
+msgid "Cannot edit drug component. It is in use."
 msgstr ""
 
-msgid "Do not set your database language now."
+msgid "Cannot save drug component. Invalid or missing essential input."
 msgstr ""
 
-msgid "Remember to ignore language mismatch"
+msgid "A drug component with optional strength."
+msgstr ""
+
+msgid "Editing drug"
 msgstr ""
 
 #, python-format
 msgid ""
-"Checking this will make GNUmed remember your decision\n"
-"until the system language is changed.\n"
+"Cannot edit the branded drug product\n"
 "\n"
-"You can also reactivate this inquiry by removing the\n"
-"corresponding \"ignore\" option from the configuration file\n"
+" \"%s\" (%s)\n"
 "\n"
-" [%s]"
+"because it is currently taken by patients.\n"
 msgstr ""
 
-#, fuzzy
-msgid "generic activity"
-msgstr "Nom Générique"
-
-msgid "Access denied"
+msgid "Adding new drug brand"
 msgstr ""
 
-#, python-format
-msgid ""
-"Your account is not set up to access this part of GNUmed:\n"
-"\n"
-"  [%s]"
+msgid "Editing drug brand"
 msgstr ""
 
-msgid "Save timeline as SVG image under..."
+msgid "Manage consumable substances"
 msgstr ""
 
-#, fuzzy
-msgid "timeline image"
-msgstr "tous les fichiers"
-
-#, fuzzy
-msgid "timeline data"
-msgstr "Aucune chronologie choisie"
-
-msgid "Cannot change notebook tabs. No active patient."
+msgid "not in use"
 msgstr ""
 
-msgid "add plugin ..."
+#, python-format
+msgid "ATC: %s\n"
 msgstr ""
 
-msgid "Cannot activate Allergy Manager. No active patient."
+msgid "Editing medication"
 msgstr ""
-"Impossible d'activer le gestionnaire des allergies. Aucun patient actif."
 
-msgid "<Age>"
+#, python-format
+msgid ""
+"Cannot edit the medication\n"
+"\n"
+" \"%s\" (%s)\n"
+"\n"
+"because it is a vaccine. Please edit it\n"
+"from the vaccine management section !\n"
 msgstr ""
 
-#, fuzzy
-msgid "no patient selected"
-msgstr "Modifier la vaccination"
-
-#, python-format
-msgid "Gender: %s (%s) - %s\n"
+msgid "Deleting medication"
 msgstr ""
 
 #, python-format
-msgid "Born: %s\n"
+msgid ""
+"Cannot delete the medication\n"
+"\n"
+" \"%s\" (%s)\n"
+"\n"
+"because it is a vaccine. Please delete it\n"
+"from the vaccine management section !\n"
 msgstr ""
 
-#, python-format
-msgid "Died: %s\n"
+msgid ""
+"\n"
+"These are the drug brands known to GNUmed.\n"
 msgstr ""
 
-#, python-format
-msgid "At age: %s\n"
+msgid "Showing branded drugs."
 msgstr ""
 
-msgid " (date of birth and age are estimated)\n"
+msgid "Import substances and brands from a drug database."
 msgstr ""
 
-#, fuzzy, python-format
-msgid "%(sex)s  %(dob)s (%(age)s today !)"
-msgstr "%s %s (%s aujourd'hui !)"
+msgid "Managing components of a drug"
+msgstr ""
 
+#, python-format
 msgid ""
+"Cannot manage the components of the branded drug product\n"
 "\n"
-"Today is the patient's birthday !\n"
+" \"%s\" (%s)\n"
 "\n"
+"because it is currently taken by patients.\n"
 msgstr ""
 
-#, python-format
-msgid "Birthday: %s ago\n"
+msgid "Pick the substances which are components of this drug."
 msgstr ""
 
-#, python-format
-msgid "Birthday: in %s\n"
+msgid "Components of drug"
 msgstr ""
 
 #, python-format
-msgid "Age: %s\n"
+msgid ""
+"Adjust the components of \"%s\"\n"
+"\n"
+"The drug must contain at least one component. Any given\n"
+"substance can only be included once per drug."
 msgstr ""
 
-#, python-format
-msgid "last confirmed %s\n"
-msgstr "dernier confirmé %s\n"
+msgid "Managing components of a drug ..."
+msgstr ""
 
-#, python-format
-msgid "Comment (%s): %%s"
-msgstr "Commentaire (%s) : %%s"
+msgid "Cannot edit drug brand. It is in use."
+msgstr ""
 
-#, python-format
-msgid " - expires %s"
+msgid "Checking brand data"
 msgstr ""
 
 #, python-format
 msgid ""
-"Due for %s (since %s%s):\n"
-"%s%s\n"
-"Patient: %s\n"
-"Reminder by: %s"
+"The brand information you entered:\n"
+"\n"
+" [%s %s]\n"
+"\n"
+"already exists as a drug product."
 msgstr ""
 
-#, fuzzy
-msgid "Clinical reminder"
-msgstr "Informations cliniques"
-
-#, fuzzy
-msgid "Adding automatic dynamic hint"
-msgstr "Vaccins affichés."
-
-#, fuzzy
-msgid "Editing automatic dynamic hint"
-msgstr "Vaccins affichés."
-
-#, fuzzy
-msgid "Deleting automatic dynamic hint"
-msgstr "Vaccins affichés."
-
-#, python-format
 msgid ""
-"Really delete this dynamic hint ?\n"
+"You have not selected any substances\n"
+"as drug components.\n"
 "\n"
-" [%s]"
+"Without components you will not be able to\n"
+"use this drug for documenting patient care.\n"
+"\n"
+"Are you sure you want to save\n"
+"it without components ?"
 msgstr ""
 
-#, fuzzy
-msgid "deleting a dynamic hint"
-msgstr "Vaccins affichés."
+msgid "Cannot save branded drug. Invalid or missing essential input."
+msgstr ""
 
 msgid ""
+"The brand name of the drug.\n"
 "\n"
-"Dynamic hints registered with GNUmed.\n"
+"Note: a brand name will need to be linked to\n"
+"one or more components before it can be used,\n"
+"except in the case of fake (generic) vaccines."
 msgstr ""
 
-#, fuzzy
-msgid "Showing dynamic hints."
-msgstr "Vaccins affichés."
+msgid "No EMR data loaded."
+msgstr "Aucune donnée EMR chargée."
 
-msgid "Hint"
+msgid "EMR text dump"
 msgstr ""
 
-msgid "Browse and install automatic dynamic hints data packs"
+msgid "Currently there is no active patient. Cannot retrieve EMR text."
 msgstr ""
+"Actuellement, il n'y a pas de patient actif. Ne peut récupérer de texte EMR."
 
-#, fuzzy, python-format
-msgid "By: %s"
-msgstr "   Doc: %s"
+#, fuzzy
+msgid "SOAP Editor Actions:"
+msgstr "Vaccinations:"
 
-msgid "No entry in field <Source>."
-msgstr ""
+#, fuzzy
+msgid "&Sort lines"
+msgstr "Aucune chronologie choisie"
 
-msgid "No entry in field <Conditions>."
+msgid "Sort lines by SOAP category"
 msgstr ""
 
-#, fuzzy
-msgid "No entry in field <Description>."
-msgstr "Erreur de lancement du script [%s]."
+msgid "e&Xpand keyword"
+msgstr ""
 
-msgid "No entry in field <Title>."
+msgid "Expand keyword / macro"
 msgstr ""
 
 #, fuzzy
-msgid "creating a new dynamic hint"
-msgstr "Vaccins affichés."
+msgid "as &Subjective"
+msgstr "Subjectif"
 
-#, fuzzy
-msgid "updating an existing dynamic hint"
-msgstr "Ouvrir une chronologie existante"
+msgid "Set line to category \"Subjective\""
+msgstr ""
 
 #, fuzzy
-msgid "Deleting suppressed dynamic hint"
-msgstr "Vaccins affichés."
+msgid "as &Objective"
+msgstr "Objectif"
 
-#, python-format
-msgid ""
-"Really delete the suppression of this dynamic hint ?\n"
-"\n"
-" [%s]"
+msgid "Set line to category \"Objective\""
 msgstr ""
 
 #, fuzzy
-msgid ""
-"\n"
-"Dynamic hints suppressed in this patient.\n"
-msgstr ""
-"\n"
-"Compléter l'historique des vaccinations de ce patient.\n"
+msgid "as &Assessment"
+msgstr "Estimation"
 
-#, fuzzy
-msgid "Showing suppressed dynamic hints."
-msgstr "Vaccins affichés."
+msgid "Set line to category \"Assessment\""
+msgstr ""
 
 #, fuzzy
-msgid "Rationale"
-msgstr "reactions"
+msgid "as &Plan"
+msgstr "Prévision"
 
-#, fuzzy
-msgid "Manage hints"
-msgstr "&Gérer les orgas"
+msgid "Set line to category \"Plan\""
+msgstr ""
 
 #, fuzzy
-msgid "Manage automatic dynamic hints"
-msgstr "Vaccins affichés."
+msgid "as &Unspecified"
+msgstr "soap_Objectif"
 
-msgid "Cannot delete family history item."
+msgid "Set line to category \"unspecified\""
 msgstr ""
 
 #, fuzzy
-msgid "Family history of this patient."
-msgstr ""
-"\n"
-"Compléter l'historique des vaccinations de ce patient.\n"
+msgid "as ad&Ministrative"
+msgstr "Administratif"
 
-msgid "Showing family history."
+msgid "Set line to category \"administrative\""
 msgstr ""
 
-msgid "Fatal"
+msgid "→ &Clipboard"
 msgstr ""
 
 #, fuzzy
-msgid "Noted"
-msgstr "&Note"
+msgid "Copy line to clipboard"
+msgstr "Impossible de copier dans le presse-papier."
 
-msgid "Died"
+msgid "→ +Clipboard+"
 msgstr ""
 
-msgid "Adding family history"
-msgstr ""
+#, fuzzy
+msgid "Add line to clipboard"
+msgstr "Impossible de copier dans le presse-papier."
 
 #, fuzzy
-msgid "Editing family history"
-msgstr "Maintient des antécédents de vaccination"
+msgid "Copy content to clipboard"
+msgstr "Impossible de copier dans le presse-papier."
 
-msgid "No EMR data loaded."
-msgstr "Aucune donnée EMR chargée."
+#, fuzzy
+msgid "Add content to clipboard"
+msgstr "Impossible de copier dans le presse-papier."
 
-msgid "EMR text dump"
-msgstr ""
+#, fuzzy
+msgid "Copy selection to clipboard"
+msgstr "Impossible de copier dans le presse-papier."
 
-msgid "Currently there is no active patient. Cannot retrieve EMR text."
-msgstr ""
-"Actuellement, il n'y a pas de patient actif. Ne peut récupérer de texte EMR."
+#, fuzzy
+msgid "Add selection to clipboard"
+msgstr "Impossible de copier dans le presse-papier."
+
+#, fuzzy
+msgid "&Line ..."
+msgstr "Vaccin ..."
+
+#, fuzzy
+msgid "&Text ..."
+msgstr "Texte"
+
+#, fuzzy
+msgid "&Region ..."
+msgstr "Région"
 
 #, fuzzy
 msgid "Show HL7 file:"
@@ -17036,6 +18032,10 @@ msgstr ""
 msgid "Extracting HL7 from XML file"
 msgstr ""
 
+#, python-format
+msgid "Unwrapped HL7 into [%s] from [%s]."
+msgstr ""
+
 msgid "Select HL7 file for staging:"
 msgstr ""
 
@@ -17061,6 +18061,10 @@ msgid ""
 " %s"
 msgstr ""
 
+#, fuzzy, python-format
+msgid "Staged HL7 from [%s]."
+msgstr "Charger les données du modèle à partir d'un fichier."
+
 msgid "Importing HL7 data"
 msgstr ""
 
@@ -17107,10 +18111,6 @@ msgstr ""
 msgid "Identification"
 msgstr "Indication"
 
-#, fuzzy
-msgid "Show"
-msgstr "Afficher :"
-
 msgid "Show formatted HL7"
 msgstr ""
 
@@ -17159,6 +18159,22 @@ msgstr "La profession/spécialité actuelle."
 msgid "Plot current selection"
 msgstr "Enregistrer le patient actuel"
 
+#, fuzzy
+msgid ""
+"Select the measurements panel to show in the top pane for continuous "
+"monitoring."
+msgstr ""
+"\n"
+"Compléter l'historique des vaccinations de ce patient.\n"
+
+#, fuzzy
+msgid "Lab panel"
+msgstr "&Gérer les orgas"
+
+#, fuzzy
+msgid "Configuring continuous monitoring measurements panel"
+msgstr "Mesurations"
+
 msgid "No default Gnuplot script template selected."
 msgstr ""
 
@@ -17181,13 +18197,29 @@ msgstr ""
 msgid "Cannot plot without a plot script."
 msgstr ""
 
+msgid "Result"
+msgstr ""
+
 #, fuzzy
-msgid "Time"
-msgstr "Durée :"
+msgid "Perform on selected results:"
+msgstr "résultat corrigé"
 
-msgid "Result"
+msgid "Review and &sign"
+msgstr ""
+
+msgid "Export to &file"
+msgstr ""
+
+msgid "Export to &clipboard"
+msgstr ""
+
+msgid "Panels"
 msgstr ""
 
+#, fuzzy
+msgid "List"
+msgstr "Liste d'attente"
+
 msgid ""
 "lab_grid_date_format::%Y\n"
 "%b %d"
@@ -17263,19 +18295,6 @@ msgstr ""
 msgid "All: by &Day"
 msgstr ""
 
-#, fuzzy
-msgid "Perform on selected results:"
-msgstr "résultat corrigé"
-
-msgid "Review and &sign"
-msgstr ""
-
-msgid "Export to &file"
-msgstr ""
-
-msgid "Export to &clipboard"
-msgstr ""
-
 #, python-format
 msgid "%s results selected. Too many to list individually."
 msgstr ""
@@ -17467,6 +18486,10 @@ msgstr ""
 msgid "EMR Actions:"
 msgstr "reactions"
 
+#, fuzzy
+msgid "Print EMR"
+msgstr "&Imprimer"
+
 msgid "Create health issue"
 msgstr ""
 
@@ -17623,11 +18646,42 @@ msgstr "Consulter"
 msgid "&New notes %s"
 msgstr "&Notes"
 
+msgid "Find text in EMR Journal"
+msgstr ""
+
+#, fuzzy
+msgid "Modified"
+msgstr "entrée modifiée"
+
+#, fuzzy
+msgid "Clinical time"
+msgstr "Informations cliniques"
+
+msgid "Who / When"
+msgstr ""
+
+#, python-format
 msgid ""
-"An error occurred while retrieving the EMR\n"
-"in journal form for the active patient.\n"
+"Chart entry: %s       [#%s in %s]\n"
+" Modified: %s by %s (%s rev %s)\n"
 "\n"
-"Please check the log file for details."
+"Health issue: %s%s\n"
+"Episode: %s%s\n"
+"Encounter: %s%s"
+msgstr ""
+
+#, python-format
+msgid ""
+"%s\n"
+"\n"
+"                        rev %s (%s) by %s in <%s>"
+msgstr ""
+
+#, python-format
+msgid ""
+"%s\n"
+"%s\n"
+"%s"
 msgstr ""
 
 msgid "Editing tag"
@@ -17760,18 +18814,15 @@ msgid ""
 "%s\n"
 msgstr ""
 
-msgid "This patient DID receive care."
+msgid "This patient DID receive care here."
 msgstr ""
 
-msgid "This person did NOT receive care."
+msgid "This person did NOT receive care here."
 msgstr ""
 
 msgid "Disabling person"
 msgstr ""
 
-msgid "Disabling patient"
-msgstr ""
-
 msgid "Type or select a last name (family name/surname)."
 msgstr ""
 
@@ -18095,6 +19146,9 @@ msgstr ""
 "\n"
 "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
 
+msgid "Connecting to backend"
+msgstr "Connection au «back-end»"
+
 #, fuzzy, python-format
 msgid ""
 "Unable to connect to database:\n"
@@ -18314,9 +19368,6 @@ msgstr "Organisation"
 msgid "Office"
 msgstr "Bureau"
 
-msgid "State"
-msgstr "État"
-
 msgid "Zip"
 msgstr "Code Postal"
 
@@ -18374,8 +19425,9 @@ msgstr "Chargement de la liste document"
 msgid "EMR Timeline"
 msgstr "Arbre DMP"
 
-msgid "Show &Timeline"
-msgstr ""
+#, fuzzy
+msgid "EMR &Timeline"
+msgstr "Arbre DMP"
 
 #, fuzzy
 msgid "Overview"
@@ -18405,11 +19457,13 @@ msgstr "Notes"
 msgid "&SimpleNotes"
 msgstr "&Notes"
 
-msgid "EMR tree"
+#, fuzzy
+msgid "EMR Tree"
 msgstr "Arbre DMP"
 
-msgid "EMR &Tree (topical)"
-msgstr ""
+#, fuzzy
+msgid "EMR &Tree"
+msgstr "Arbre DMP"
 
 #, fuzzy
 msgid "Print Manager"
@@ -18419,6 +19473,14 @@ msgstr "Imprimer"
 msgid "&Print Manager"
 msgstr "&Gérer"
 
+#, fuzzy
+msgid "EMR Journal"
+msgstr "Journal DMP"
+
+#, fuzzy
+msgid "EMR &Journal (list)"
+msgstr "Journal DMP"
+
 msgid "Appointments"
 msgstr "Rendez-vous"
 
@@ -18431,6 +19493,12 @@ msgstr "Journal de laboratoire"
 msgid "Show &lab journal"
 msgstr "Montrer &journal de laboratoire"
 
+msgid "PACS"
+msgstr ""
+
+msgid "&PACS"
+msgstr ""
+
 msgid "Cardiac Devices"
 msgstr "Dispositifs cardiaques"
 
@@ -18509,12 +19577,10 @@ msgstr "Manuel"
 msgid "User &manual (local)"
 msgstr "Utilisateur &manuel (local)"
 
-msgid "EMR journal"
+#, fuzzy
+msgid "EMR &Journal (text)"
 msgstr "Journal DMP"
 
-msgid "EMR &Journal (chronological)"
-msgstr ""
-
 msgid "Demographics"
 msgstr "Informations démographiques"
 
@@ -18684,6 +19750,10 @@ msgstr "Module externe de modèle"
 msgid "Show &ExamplePlugin"
 msgstr ""
 
+#, fuzzy
+msgid "Find text"
+msgstr "Dernier spécifié"
+
 msgid "gm_ctl_client: starting slave GNUmed client"
 msgstr "gm_ctl_client: démarrage du client GNUmed esclave"
 
@@ -18718,6 +19788,202 @@ msgstr "Abandonner"
 msgid "Abort and do NOT connect to GNUmed."
 msgstr "Annuler et ne PAS se connecter a GNUmed."
 
+#, fuzzy
+#~ msgid ""
+#~ "Health issue: %s%s%s (%s versions)\n"
+#~ "\n"
+#~ msgstr "Problème de santé: %s"
+
+#, fuzzy
+#~ msgid ""
+#~ "Episode: %s%s%s (%s versions)\n"
+#~ "\n"
+#~ msgstr "Episode %s%s%s   [#%s]"
+
+#, fuzzy
+#~ msgid ""
+#~ "Encounter: %s%s%s (%s versions)\n"
+#~ "\n"
+#~ msgstr "Rencontres: %s (%s - %s)"
+
+#, fuzzy
+#~ msgid ""
+#~ "\n"
+#~ "current values:\n"
+#~ msgstr "<état des allergies>"
+
+#~ msgid "soap_S"
+#~ msgstr "soap_S"
+
+#~ msgid "soap_O"
+#~ msgstr "soap_O"
+
+#~ msgid "soap_A"
+#~ msgstr "soap_A"
+
+#~ msgid "soap_P"
+#~ msgstr "soap_P"
+
+#, fuzzy
+#~ msgid "soap_U"
+#~ msgstr "soap_S"
+
+#~ msgid "soap_Subjective"
+#~ msgstr "soap_Subjectif"
+
+#~ msgid "soap_Objective"
+#~ msgstr "soap_Objectif"
+
+#~ msgid "soap_Assessment"
+#~ msgstr "soap_Appréciation"
+
+#~ msgid "soap_Plan"
+#~ msgstr "soap_Plan"
+
+#, fuzzy
+#~ msgid "soap_Unspecified"
+#~ msgstr "soap_Objectif"
+
+#~ msgid "soap_Administrative"
+#~ msgstr "soap_Administratif"
+
+#, fuzzy
+#~ msgid "Row fields (as multiple lines)"
+#~ msgstr "Ne pas reformater le texte"
+
+#, fuzzy
+#~ msgid "Search in list"
+#~ msgstr "Liste de la médication"
+
+#~ msgid "Parts"
+#~ msgstr "Parties"
+
+#, fuzzy
+#~ msgid "&Unknown"
+#~ msgstr "Inconnu"
+
+#, fuzzy
+#~ msgid "When was smoking status last confirmed (mostly \"today\") ?"
+#~ msgstr "Quand l'état allergique a été dernièrement confirmé."
+
+#, fuzzy
+#~ msgid "Last confirmed: %s%s"
+#~ msgstr "Dernier confirmé:"
+
+#, fuzzy
+#~ msgid "Smoking status"
+#~ msgstr "Status"
+
+#~ msgid "State"
+#~ msgstr "État"
+
+#~ msgid ""
+#~ "Cannot connect to configuration database with:\n"
+#~ "\n"
+#~ "[%s]"
+#~ msgstr ""
+#~ "Impossible de se connecter sur la base de donnée de configuration avec:\n"
+#~ "\n"
+#~ "[%s]"
+
+#, fuzzy
+#~ msgid ""
+#~ "Cannot connect to database with:\n"
+#~ "\n"
+#~ "[%s]"
+#~ msgstr ""
+#~ "Impossible de se connecter à la base donnée sans identifiant de connexion"
+
+#~ msgid "No product information available."
+#~ msgstr "Pas d'information disponible sur ce produit"
+
+#~ msgid ""
+#~ "Unable to connect to database:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Are you sure you have got a local database installed ?\n"
+#~ "\n"
+#~ "Please retry with proper credentials or cancel.\n"
+#~ "\n"
+#~ "You may also need to check the PostgreSQL client\n"
+#~ "authentication configuration in pg_hba.conf. For\n"
+#~ "details see:\n"
+#~ "\n"
+#~ "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
+#~ msgstr ""
+#~ "Impossible de se connecter à la base de données.\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Êtes-vous certain d'avoir installé une base de donnée?\n"
+#~ "\n"
+#~ "S'il vous plaît, réessayez avec les bonnes informations "
+#~ "d'authentification ou annulez.\n"
+#~ "\n"
+#~ "Il faudrait peut-être vérifier les informations d'authentification du "
+#~ "client PostgreSQL dans le fichier de configuration pg_hba.conf. Pour plus "
+#~ "d'informations, visitez:\n"
+#~ "\n"
+#~ "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
+
+#~ msgid ""
+#~ "Unable to connect to database:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Please retry with proper credentials or cancel.\n"
+#~ "\n"
+#~ "You may also need to check the PostgreSQL client\n"
+#~ "authentication configuration in pg_hba.conf. For\n"
+#~ "details see:\n"
+#~ "\n"
+#~ "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
+#~ msgstr ""
+#~ "Impossible de se connecter à la base de données.\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "S'il vous plaît, réessayez avec les bonnes informations "
+#~ "d'authentification ou annulez.\n"
+#~ "\n"
+#~ "Il faudrait peut-être vérifier les informations d'authentification du "
+#~ "client PostgreSQL dans le fichier de configuration pg_hba.conf. Pour plus "
+#~ "d'informations, visitez:\n"
+#~ "\n"
+#~ "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
+
+#~ msgid ""
+#~ "Unable to connect to database:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Please retry another backend / user / password combination !\n"
+#~ msgstr ""
+#~ "Impossible de se connecter à la base de données.\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "S'il vous plaît, veuillez essayer une autre combinaison de «back-end» / "
+#~ "nom d'utilisateur / mot de passe.\n"
+
+#~ msgid "Journal"
+#~ msgstr "Journal"
+
+#, fuzzy
+#~ msgid ""
+#~ "\n"
+#~ "Select the measurements panel to show in the top pane.\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Compléter l'historique des vaccinations de ce patient.\n"
+
+#~ msgid "Brand by component"
+#~ msgstr "Marque par composant"
+
+#~ msgid "The active ingredients of this brand."
+#~ msgstr "Les ingrédients actifs de cette marque."
+
 #~ msgid "Province"
 #~ msgstr "Région."
 
@@ -18751,10 +20017,6 @@ msgstr "Annuler et ne PAS se connecter a GNUmed."
 #~ msgstr "%s %s (%s aujourd'hui !)"
 
 #, fuzzy
-#~ msgid "Clinical hint"
-#~ msgstr "Clinique"
-
-#, fuzzy
 #~ msgid "More info"
 #~ msgstr "Information sur la rue"
 
@@ -18771,10 +20033,6 @@ msgstr "Annuler et ne PAS se connecter a GNUmed."
 #~ msgstr "Sélectionner des &fichiers"
 
 #, fuzzy
-#~ msgid "Check here for printing."
-#~ msgstr "Configuration de la page pour l'impression"
-
-#, fuzzy
 #~ msgid "Enter a fax number here."
 #~ msgstr "Entrez votre traduction ici."
 
@@ -18786,10 +20044,6 @@ msgstr "Annuler et ne PAS se connecter a GNUmed."
 #~ msgstr "&Signer en tant que :"
 
 #, fuzzy
-#~ msgid "file: %s (%s/)"
-#~ msgstr "Exporté: %s\n"
-
-#, fuzzy
 #~ msgid "Switching clinical hint activation"
 #~ msgstr "Modifier la vaccination"
 
@@ -18860,9 +20114,6 @@ msgstr "Annuler et ne PAS se connecter a GNUmed."
 #~ msgid "SQL: %s"
 #~ msgstr "SQL: %s"
 
-#~ msgid "cannot connect to service [%s]"
-#~ msgstr "impossible de se connecter au service [%s]"
-
 #~ msgid "When was this substance started to be consumed."
 #~ msgstr "Quand cette substance a commencée à être consommée."
 
diff --git a/client/po/id-gnumed.mo b/client/po/id-gnumed.mo
index ef0cb7e..976a982 100644
Binary files a/client/po/id-gnumed.mo and b/client/po/id-gnumed.mo differ
diff --git a/client/po/id.po b/client/po/id.po
index 243386b..44c2e8a 100644
--- a/client/po/id.po
+++ b/client/po/id.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: GNUmed\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-12-26 20:28+0100\n"
+"POT-Creation-Date: 2016-03-17 16:27+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <LL at li.org>\n"
@@ -1432,9 +1432,21 @@ msgid ""
 msgstr ""
 
 #, python-format
+msgid "Revision #%s"
+msgstr ""
+
+#, python-format
 msgid "[%s:%s]: row not updated (nothing returned), row in use ?"
 msgstr ""
 
+#, fuzzy, python-format
+msgid "<%s(.bat)> not found"
+msgstr "Halaman tidak ditemukan"
+
+#, python-format
+msgid "problem with <%s>"
+msgstr ""
+
 #, python-format
 msgid "[%s] is not a readable file"
 msgstr ""
@@ -1463,21 +1475,7 @@ msgstr ""
 msgid "%s Bytes"
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot connect to configuration database with:\n"
-"\n"
-"[%s]"
-msgstr ""
-
-#, python-format
-msgid ""
-"Cannot connect to database with:\n"
-"\n"
-"[%s]"
-msgstr ""
-
-msgid "No product information available."
+msgid "<type>"
 msgstr ""
 
 #, python-format
@@ -1815,103 +1813,6 @@ msgstr ""
 msgid "  risk: %s"
 msgstr ""
 
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Are you sure you have got a local database installed ?\n"
-"\n"
-"Please retry with proper credentials or cancel.\n"
-"\n"
-"You may also need to check the PostgreSQL client\n"
-"authentication configuration in pg_hba.conf. For\n"
-"details see:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-msgstr ""
-"Tidak dapat terhubung dengan basis data:\n"
-"\n"
-"%s\n"
-"\n"
-"Apakah anda yakin memiliki aplikasi basis data lokal?\n"
-"\n"
-"Coba lagi dengan konfigurasi yang benar atau batalkan.\n"
-"\n"
-"Anda juga harus memeriksa autentikasi konfigurasi \n"
-"klien PostgreSQL pada file pg_hba.conf.\n"
-"Untuk informasi detail, bisa dilihat di:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Please retry with proper credentials or cancel.\n"
-"\n"
-"You may also need to check the PostgreSQL client\n"
-"authentication configuration in pg_hba.conf. For\n"
-"details see:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-msgstr ""
-"Tidak dapat terhubung dengan basis data:\n"
-"\n"
-"%s\n"
-"\n"
-"Coba lagi dengan konfigurasi yang benar atau batalkan.\n"
-"\n"
-"Anda juga harus memeriksa autentikasi konfigurasi \n"
-"klien PostgreSQL pada file pg_hba.conf.\n"
-"Untuk informasi detail, bisa dilihat di:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-
-msgid "Connecting to backend"
-msgstr "Menghubungkan ke backend"
-
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Please retry another backend / user / password combination !\n"
-msgstr ""
-"Tidak dapat terhubung dengan basis data:\n"
-"\n"
-"%s\n"
-"\n"
-"Coba lagi server yang lain / nama user / kombinasi password !\n"
-
-msgid "programmer forgot to specify error message"
-msgstr ""
-
-msgid ""
-"\n"
-"\n"
-"Please consult the error log for all the gory details !"
-msgstr ""
-
-msgid "generic error message"
-msgstr ""
-
-msgid "programmer forgot to specify info message"
-msgstr ""
-
-msgid "generic info message"
-msgstr ""
-
-msgid "programmer forgot to specify warning"
-msgstr ""
-
-msgid "generic warning message"
-msgstr ""
-
 msgid "no hook specified, please report bug"
 msgstr ""
 
@@ -2228,6 +2129,30 @@ msgstr ""
 msgid "Include:"
 msgstr ""
 
+msgid "&Search"
+msgstr ""
+
+msgid "Suggest"
+msgstr ""
+
+msgid "Set"
+msgstr ""
+
+msgid "dialog_1"
+msgstr ""
+
+msgid "Search patients in Orthanc DICOM store."
+msgstr ""
+
+msgid "Suggest a patient ID based on the active patient."
+msgstr ""
+
+msgid "Search term:"
+msgstr ""
+
+msgid "New patient ID:"
+msgstr ""
+
 msgid "Your review"
 msgstr ""
 
@@ -2529,6 +2454,90 @@ msgstr ""
 msgid "Amount"
 msgstr ""
 
+msgid "&Connect"
+msgstr ""
+
+msgid "&Browse"
+msgstr ""
+
+msgid "<not connected>"
+msgstr ""
+
+msgid "Browse all"
+msgstr ""
+
+msgid "Export all"
+msgstr ""
+
+msgid "Browse"
+msgstr ""
+
+msgid "Export"
+msgstr ""
+
+msgid "Upload"
+msgstr ""
+
+msgid "Enter the PACS host address."
+msgstr ""
+
+msgid "Enter the PACS port."
+msgstr ""
+
+msgid "Enter the PACS user."
+msgstr ""
+
+msgid "Enter the PACS password. It will not be shown."
+msgstr ""
+
+msgid "Connect to PACS."
+msgstr ""
+
+msgid "Browse PACS at top level."
+msgstr ""
+
+msgid "Modify some of Orthanc content (such as patient IDs)."
+msgstr ""
+
+msgid "Browse overview of studies for this patient."
+msgstr ""
+
+msgid "Copy all studies into export area."
+msgstr ""
+
+msgid "Browse topmost selected study."
+msgstr ""
+
+msgid "Copy selected studies into export area."
+msgstr ""
+
+msgid "Save selected studies to disk."
+msgstr ""
+
+msgid ""
+"Upload DICOM files from a directory, recursively, into the Orthanc PACS\n"
+"\n"
+"The currently active patient does not matter. Orthanc will associate "
+"uploaded files with the patient found within the DICOM metadata. It will "
+"create new patients as needed."
+msgstr ""
+
+msgid "Host:"
+msgstr ""
+
+msgid "Port:"
+msgstr ""
+
+msgid "User:"
+msgstr ""
+
+msgid "Password"
+msgstr ""
+
+#, fuzzy
+msgid "Selected studies:"
+msgstr "Pilih acara"
+
 msgid "Fake brand"
 msgstr ""
 
@@ -2847,9 +2856,6 @@ msgstr ""
 msgid "&Load"
 msgstr ""
 
-msgid "Export"
-msgstr ""
-
 msgid "A long, descriptive name for this form template."
 msgstr ""
 
@@ -2937,15 +2943,12 @@ msgstr ""
 msgid "Document Properties"
 msgstr ""
 
-msgid "Show part"
+msgid "Show"
 msgstr ""
 
 msgid "Remove part"
 msgstr ""
 
-msgid "Parts"
-msgstr ""
-
 msgid "Discard"
 msgstr ""
 
@@ -2973,6 +2976,9 @@ msgstr ""
 msgid "Required: The primary episode this document is to be listed under."
 msgstr ""
 
+msgid "Optional: The organization (unit) this document originated from."
+msgstr ""
+
 msgid ""
 "Optional: A short comment identifying the document. Good comments give an "
 "idea of the content and source of the document."
@@ -2997,6 +3003,9 @@ msgid ""
 "normal and abnormal resuslts can be relevant."
 msgstr ""
 
+msgid "Optional: A free-text document description."
+msgstr ""
+
 msgid "This field lists the parts belonging to the current document."
 msgstr ""
 
@@ -3008,9 +3017,6 @@ msgid ""
 "deletion from disk."
 msgstr ""
 
-msgid "Optional: A free-text document description."
-msgstr ""
-
 msgid "Save finished document."
 msgstr ""
 
@@ -3026,6 +3032,9 @@ msgstr ""
 msgid "Associate to episode:"
 msgstr ""
 
+msgid "Document source:"
+msgstr ""
+
 msgid "Comment / Identification:"
 msgstr ""
 
@@ -3206,7 +3215,7 @@ msgstr ""
 msgid "Messages:"
 msgstr ""
 
-msgid "Only:"
+msgid "Limit to:"
 msgstr ""
 
 msgid "&Myself … or:"
@@ -3316,10 +3325,10 @@ msgstr ""
 msgid "Purpose"
 msgstr ""
 
-msgid "Details"
+msgid "Please supply your email address here !"
 msgstr ""
 
-msgid "<Please supply your email address here !>"
+msgid "Details"
 msgstr ""
 
 msgid "Keep running"
@@ -3343,9 +3352,11 @@ msgid ""
 msgstr ""
 
 msgid ""
-"Please enter your email address so we can provide feedback directly to you. "
-"Otherwise, feedback will be given on the GNUmed mailing list (http://lists."
-"gnu.org/mailman/listinfo/gnumed-bugs)."
+"Please enter your email address so we can provide help to you directly.\n"
+"\n"
+"Otherwise, feedback can be given on the GNUmed mailing list (http://lists."
+"gnu.org/mailman/listinfo/gnumed-bugs) ONLY to which you will then have to "
+"subscribe."
 msgstr ""
 
 msgid "Find help on http://wiki.gnumed.de, too."
@@ -3460,9 +3471,6 @@ msgstr ""
 msgid "Account"
 msgstr ""
 
-msgid "Password"
-msgstr ""
-
 msgid "Password, again"
 msgstr ""
 
@@ -3951,7 +3959,7 @@ msgstr ""
 msgid "Acquire images from image source (scanner, ...)."
 msgstr ""
 
-msgid "Acquire images or text from the clipboard."
+msgid "Acquire file or text from the clipboard."
 msgstr ""
 
 msgid "Remove the selected documents."
@@ -4095,7 +4103,7 @@ msgid ""
 "- the result list will be artificially limited to the first 1000 rows\n"
 "- you can include a column named \"pk_patient\" to make the result rows "
 "activate the corresponding patient on double-clicking\n"
-"- by inserting $<ID_active_patient>$ you can access the patient ID of the "
+"- by inserting $<ID_ACTIVE_PATIENT>$ you can access the patient ID of the "
 "patient active at the time of running the query"
 msgstr ""
 
@@ -4254,9 +4262,6 @@ msgstr ""
 msgid "Link &new"
 msgstr ""
 
-msgid "Browse"
-msgstr ""
-
 msgid ""
 "Search for matches among existing addresses and [Link] a selection, or [Link "
 "(a) new] address."
@@ -4305,25 +4310,16 @@ msgid ""
 "left."
 msgstr ""
 
-msgid "label_1"
-msgstr ""
-
-msgid "→"
-msgstr ""
-
-msgid "←"
-msgstr ""
-
-msgid "Extra"
+msgid "Subjective"
 msgstr ""
 
-msgid "Move selected items from left to right."
+msgid "Objective"
 msgstr ""
 
-msgid "Move selected items from right to left."
+msgid "Assessment"
 msgstr ""
 
-msgid "Cancel picking items."
+msgid "Plan"
 msgstr ""
 
 msgid "Episode synopsis"
@@ -4359,19 +4355,28 @@ msgid ""
 "narrative belongs to."
 msgstr ""
 
-msgid "Subjective"
+msgid "Codes:"
 msgstr ""
 
-msgid "Codes:"
+msgid "label_1"
 msgstr ""
 
-msgid "Objective"
+msgid "→"
 msgstr ""
 
-msgid "Assessment"
+msgid "←"
 msgstr ""
 
-msgid "Plan"
+msgid "Extra"
+msgstr ""
+
+msgid "Move selected items from left to right."
+msgstr ""
+
+msgid "Move selected items from right to left."
+msgstr ""
+
+msgid "Cancel picking items."
 msgstr ""
 
 msgid "1"
@@ -4540,37 +4545,113 @@ msgstr ""
 msgid "Age range"
 msgstr ""
 
-msgid "Closed episodes"
+msgid "&Nicotine"
 msgstr ""
 
-msgid "Non-relevant issues"
+msgid "&Alcohol"
 msgstr ""
 
-msgid "Active problems"
+msgid "&Other:"
 msgstr ""
 
-msgid "Notes only"
+msgid "&Non-harmful use"
 msgstr ""
 
-msgid "Everything"
+msgid "&Harmful use"
 msgstr ""
 
-msgid ""
-"In this area GNUmed will place the notes of the\n"
-"previous encounter as well as notes by other\n"
-"staff for the current encounter.\n"
-"\n"
-"Note that this may change depending on which\n"
-"active problem is selected in the editor below."
+msgid "Presently &addicted"
 msgstr ""
 
-msgid "Most recent info on above problem"
+msgid "Previously &addicted"
 msgstr ""
 
-msgid "Show closed episodes as pseudo-problems ?"
+msgid "&Reconfirm as of today"
 msgstr ""
 
-msgid "Show issues marked clinically NOT relevant."
+msgid "Select for documenting smoking status."
+msgstr ""
+
+msgid "Select for documenting alcohol use status."
+msgstr ""
+
+msgid ""
+"Select for documenting use of substances other than nicotine or alcohol."
+msgstr ""
+
+msgid "Select the abused substance."
+msgstr ""
+
+msgid ""
+"Select if the substance use is not considered harmful (say, no use or non-"
+"harmful use)."
+msgstr ""
+
+msgid "Select if substance is use considered harmful."
+msgstr ""
+
+msgid "Select if the patient is presently addicted to this substance."
+msgstr ""
+
+msgid "Select if the patient was previously addicted to this substance."
+msgstr ""
+
+msgid ""
+"A comment on this substance use:\n"
+"- type of product used\n"
+"- frequency\n"
+"- amount\n"
+"- when started\n"
+"- attempts to quit\n"
+"..."
+msgstr ""
+
+msgid ""
+"When did the patient quit?\n"
+"\n"
+"You can also set a target quit date here."
+msgstr ""
+
+msgid "Check here to confirm for today."
+msgstr ""
+
+msgid "Quit date"
+msgstr ""
+
+msgid "Last confirmed"
+msgstr ""
+
+msgid "Closed episodes"
+msgstr ""
+
+msgid "Non-relevant issues"
+msgstr ""
+
+msgid "Active problems"
+msgstr ""
+
+msgid "Notes only"
+msgstr ""
+
+msgid "Everything"
+msgstr ""
+
+msgid ""
+"In this area GNUmed will place the notes of the\n"
+"previous encounter as well as notes by other\n"
+"staff for the current encounter.\n"
+"\n"
+"Note that this may change depending on which\n"
+"active problem is selected in the editor below."
+msgstr ""
+
+msgid "Most recent info on above problem"
+msgstr ""
+
+msgid "Show closed episodes as pseudo-problems ?"
+msgstr ""
+
+msgid "Show issues marked clinically NOT relevant."
 msgstr ""
 
 msgid ""
@@ -4876,20 +4957,18 @@ msgstr ""
 msgid "Show:"
 msgstr ""
 
-msgid "Brand by component"
+msgid "Kidneys"
 msgstr ""
 
 msgid "Brands"
 msgstr ""
 
-msgid "Kidneys"
-msgstr ""
-
-msgid "Unbranded substance"
+msgid "Substances"
 msgstr ""
 
-msgid "Manage"
-msgstr ""
+#, fuzzy
+msgid "&Unknown or date:"
+msgstr "pernyataan alergi tidak diketahui"
 
 msgid "Approved of"
 msgstr ""
@@ -4904,22 +4983,18 @@ msgid "... Reason"
 msgstr ""
 
 msgid ""
-"A component of a drug brand the patient is taking.\n"
+"A drug the patient is taking.\n"
 "\n"
-"Lookup, and select, a single- (or multi-) component drug brand, by active "
-"ingredient name. All components of multi-component drugs will be displayed "
-"and automatically added to the patient's list."
-msgstr ""
-
-msgid ""
-"Manage drug brands.\n"
+"Lookup and select an intake by either of\n"
+"- a generic substance name\n"
+"- a drug brand name\n"
+"- an active ingredient of a drug\n"
 "\n"
-"Note that this will not select a component for you. What it does is to let "
-"you manage (add/edit/delete) the drug products/brands known to GNUmed from "
-"which you can select a component."
+"Note that all components of multi-component drugs will be displayed and "
+"automatically added to the patient's list."
 msgstr ""
 
-msgid "The active ingredients of this brand."
+msgid "Details on the selected drug."
 msgstr ""
 
 msgid "Show cardiac information relevant to substance selection."
@@ -4929,8 +5004,11 @@ msgid "Show renal insufficiency information related to substance selection."
 msgstr ""
 
 msgid ""
-"The non-branded medication or non-medication substance, with optional "
-"strength."
+"Manage drug brands.\n"
+"\n"
+"Note that this will not select a component for you. What it does is to let "
+"you manage (add/edit/delete) the drug products/brands known to GNUmed from "
+"which you can select a component."
 msgstr ""
 
 msgid ""
@@ -4943,11 +5021,19 @@ msgstr ""
 msgid "The preparation or form of the substance."
 msgstr ""
 
+msgid "Check here if the start date simply isn't known."
+msgstr ""
+
 msgid ""
 "When was this substance started to be consumed or - if not known - the "
 "earliest it is known to have been be consumed."
 msgstr ""
 
+msgid ""
+"A coment on the certainty of the start date, such as \"+/- 3 weeks\", "
+"\"spring of 2002\", \"shortly after Easter 1996\", ...."
+msgstr ""
+
 msgid "Whether this substance is taken by advice."
 msgstr ""
 
@@ -4981,6 +5067,15 @@ msgstr ""
 msgid "Reason for discontinuation."
 msgstr ""
 
+msgid "Drug"
+msgstr ""
+
+msgid "Research:"
+msgstr ""
+
+msgid "Certainty:"
+msgstr ""
+
 msgid "Schedule"
 msgstr ""
 
@@ -5132,6 +5227,33 @@ msgstr ""
 msgid "Channel"
 msgstr ""
 
+msgid "&Last modification time"
+msgstr ""
+
+#, fuzzy
+msgid "&Entry time"
+msgstr "Waktu berakhir "
+
+msgid "Show journal ordered by encounter."
+msgstr ""
+
+msgid "Show journal ordered by time of last modification."
+msgstr ""
+
+msgid "Show journal ordered by actual clinical time of each entry."
+msgstr ""
+
+#, fuzzy
+msgid "Edit the selected chart entry."
+msgstr "Pilih acara"
+
+#, fuzzy
+msgid "Delete selected chart entry."
+msgstr "Hapus acara"
+
+msgid "Order by:"
+msgstr ""
+
 msgid "Chec&k"
 msgstr ""
 
@@ -5674,10 +5796,13 @@ msgstr ""
 msgid "Documents:"
 msgstr ""
 
+msgid "&L"
+msgstr ""
+
 msgid "&N"
 msgstr ""
 
-msgid "&L"
+msgid "List all encounters."
 msgstr ""
 
 msgid "The encounter."
@@ -5686,9 +5811,6 @@ msgstr ""
 msgid "Start a new encounter for the active patient."
 msgstr ""
 
-msgid "List all encounters."
-msgstr ""
-
 msgid "Clinically relevant"
 msgstr ""
 
@@ -5938,7 +6060,8 @@ msgstr ""
 
 msgid ""
 "Rationale for\n"
-"suppression"
+"suppression\n"
+"for this patient"
 msgstr ""
 
 msgid "Save &under"
@@ -5994,6 +6117,12 @@ msgstr ""
 msgid "Encounter:"
 msgstr ""
 
+msgid "Manage"
+msgstr ""
+
+msgid "&Panel:"
+msgstr ""
+
 msgid "&Pick"
 msgstr ""
 
@@ -6036,6 +6165,9 @@ msgid ""
 "To disable that popup leave the message empty."
 msgstr ""
 
+msgid "Show search dialog."
+msgstr ""
+
 msgid "THIS IS NOT A VERIFIED MEASUREMENT. DO NOT USE FOR ACTUAL CARE."
 msgstr ""
 
@@ -6318,6 +6450,46 @@ msgstr "memiliki alergi"
 msgid "ERROR: unknown allergy state [%s]"
 msgstr "ERROR: pernyataan alergi tidak diketahui [%s]"
 
+msgid "definite"
+msgstr ""
+
+msgid "indefinite"
+msgstr ""
+
+#, fuzzy
+msgid "Reaction:"
+msgstr "Arah"
+
+msgid "Noted:"
+msgstr ""
+
+msgid "Allergene:"
+msgstr ""
+
+msgid "Substance:"
+msgstr ""
+
+msgid "Code:"
+msgstr ""
+
+msgid "ATC:"
+msgstr ""
+
+msgid "Specific to:"
+msgstr ""
+
+msgid "this substance only"
+msgstr ""
+
+msgid "drug class"
+msgstr ""
+
+msgid "unknown"
+msgstr ""
+
+msgid "Generics:"
+msgstr ""
+
 msgid "Medication history"
 msgstr ""
 
@@ -6329,9 +6501,15 @@ msgstr "Deskripsi"
 msgid "prescription data"
 msgstr "Deskripsi"
 
+msgid "Consumable substance"
+msgstr ""
+
 msgid "in use"
 msgstr ""
 
+msgid "w/"
+msgstr ""
+
 msgid "long-term"
 msgstr ""
 
@@ -6351,6 +6529,35 @@ msgid "?ongoing"
 msgstr ""
 
 #, python-format
+msgid ""
+"Substance abuse entry                                              [#%s]\n"
+msgstr ""
+
+#, python-format
+msgid "Substance: %s [#%s]%s\n"
+msgstr ""
+
+#, python-format
+msgid "Use type: %s\n"
+msgstr ""
+
+#, python-format
+msgid "Last checked: %s\n"
+msgstr ""
+
+#, python-format
+msgid " Discontinued %s\n"
+msgstr ""
+
+#, python-format
+msgid " Notes: %s\n"
+msgstr ""
+
+#, python-format
+msgid "Revision: #%(row_ver)s, %(mod_when)s by %(mod_by)s."
+msgstr ""
+
+#, python-format
 msgid "Substance intake entry (%s, %s)   [#%s]                     \n"
 msgstr ""
 
@@ -6366,9 +6573,6 @@ msgstr ""
 msgid "unapproved"
 msgstr ""
 
-msgid "definite"
-msgstr ""
-
 msgid "suspected"
 msgstr ""
 
@@ -6415,10 +6619,6 @@ msgid " (short-term)"
 msgstr ""
 
 #, python-format
-msgid " Discontinued %s\n"
-msgstr ""
-
-#, python-format
 msgid " Reason: %s\n"
 msgstr ""
 
@@ -6438,16 +6638,59 @@ msgstr ""
 msgid " Advice: %s\n"
 msgstr ""
 
+msgid "medication, not abuse"
+msgstr ""
+
+msgid "no or non-harmful use"
+msgstr ""
+
+msgid "presently harmful use"
+msgstr ""
+
+msgid "presently addicted"
+msgstr ""
+
+msgid "previously addicted"
+msgstr ""
+
 #, python-format
-msgid "Revision: #%(row_ver)s, %(mod_when)s by %(mod_by)s."
+msgid "%s%s: %s ago%s"
+msgstr ""
+
+#, python-format
+msgid "%s%s: %s ago (%s)"
+msgstr ""
+
+#, python-format
+msgid "%s%s%s (%s ago)"
+msgstr ""
+
+#, python-format
+msgid "%s%s%s (%s ago, %s)"
+msgstr ""
+
+#, python-format
+msgid "%s ago"
+msgstr ""
+
+#, python-format
+msgid "in %s"
+msgstr ""
+
+#, python-format
+msgid ", until %s (%s)"
 msgstr ""
 
 #, python-format
-msgid "%s: %s ago"
+msgid " (planned for %s%s)"
 msgstr ""
 
 #, python-format
-msgid "%s: %s ago (%s)"
+msgid ", planned for %s%s"
+msgstr ""
+
+#, python-format
+msgid "%s ago (for %s: %s %s %s)"
 msgstr ""
 
 msgid "Additional notes"
@@ -6462,10 +6705,32 @@ msgstr ""
 msgid "ordered by brand"
 msgstr ""
 
-msgid "Drug"
+msgid "Regimen / Advice"
 msgstr ""
 
-msgid "Regimen / Advice"
+#, python-format
+msgid "Component of %s (%s)"
+msgstr ""
+
+#, python-format
+msgid "ATC (substance): %s"
+msgstr ""
+
+#, python-format
+msgid "ATC (brand): %s"
+msgstr ""
+
+msgid "this is a component of a fake brand"
+msgstr ""
+
+#, fuzzy
+msgid "Components:"
+msgstr "Kontak"
+
+msgid "this is a fake brand"
+msgstr ""
+
+msgid "this is a vaccine"
 msgstr ""
 
 msgid "units"
@@ -6500,58 +6765,24 @@ msgstr ""
 msgid "Expires: %s\n"
 msgstr ""
 
-msgid "Active clinical hint"
+msgid "HL7 Source"
 msgstr ""
 
-msgid "Inactive clinical hint"
+msgid "HL7 data size"
 msgstr ""
 
 #, python-format
-msgid "Source: %s\n"
+msgid "%s bytes"
+msgstr ""
+
+msgid "HL7 Message"
 msgstr ""
 
 #, python-format
-msgid "Language: %s\n"
+msgid " %s segments (lines)%s"
 msgstr ""
 
-msgid "Suppressed active dynamic hint"
-msgstr ""
-
-msgid "Suppressed inactive dynamic hint"
-msgstr ""
-
-#, python-format
-msgid "Suppressed by: %s\n"
-msgstr ""
-
-#, python-format
-msgid "Suppressed at: %s\n"
-msgstr ""
-
-#, python-format
-msgid "Hint #: %s\n"
-msgstr ""
-
-#, python-format
-msgid "Patient #: %s\n"
-msgstr ""
-
-#, python-format
-msgid "MD5 (currently): %s\n"
-msgstr ""
-
-#, python-format
-msgid "MD5 (at suppression): %s\n"
-msgstr ""
-
-msgid "HL7 Message"
-msgstr ""
-
-#, python-format
-msgid " %s segments (lines)%s"
-msgstr ""
-
-msgid ", skipping empty fields"
+msgid ", skipping empty fields"
 msgstr ""
 
 #, python-format
@@ -6597,13 +6828,6 @@ msgstr ""
 msgid "doc: %s"
 msgstr ""
 
-msgid "no patient photograph available"
-msgstr ""
-
-#, python-format
-msgid "patient photograph from %s"
-msgstr ""
-
 msgid "Patient data for"
 msgstr ""
 
@@ -6613,6 +6837,9 @@ msgstr ""
 msgid "Patient data export"
 msgstr ""
 
+msgid "no patient photograph available"
+msgstr ""
+
 msgid "Documents"
 msgstr ""
 
@@ -6623,6 +6850,10 @@ msgstr ""
 msgid "browse documents area"
 msgstr "Deskripsi"
 
+#, python-format
+msgid "patient photograph from %s"
+msgstr ""
+
 #, fuzzy
 msgid "Browse patient data"
 msgstr "Deskripsi"
@@ -6658,24 +6889,24 @@ msgstr ""
 #, python-format
 msgid ""
 "%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s %(suburb)s, "
-"%(code_state)s, %(code_country)s"
+"%(code_region)s, %(code_country)s"
 msgstr ""
 
 #, python-format
 msgid ""
 "%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s %(suburb)s, "
-"%(code_state)s, %(code_country)s"
+"%(code_region)s, %(code_country)s"
 msgstr ""
 
 #, python-format
 msgid ""
-"%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_state)s, "
-"%(code_country)s"
+"%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, "
+"%(code_region)s, %(code_country)s"
 msgstr ""
 
 #, python-format
 msgid ""
-"%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_state)s, "
+"%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_region)s, "
 "%(code_country)s"
 msgstr ""
 
@@ -6685,7 +6916,7 @@ msgid ""
 " Street: %(street)s%(notes_street)s\n"
 " Number/Unit: %(number)s%(subunit)s%(notes_subunit)s\n"
 " Location: %(zip)s %(urb)s%(suburb)s\n"
-" Region: %(l10n_state)s, %(code_state)s\n"
+" Region: %(l10n_region)s, %(code_region)s\n"
 " Country: %(l10n_country)s, %(code_country)s"
 msgstr ""
 
@@ -6695,7 +6926,7 @@ msgid ""
 " Street: %(street)s%(notes_street)s\n"
 " Number/Unit: %(number)s%(subunit)s%(notes_subunit)s\n"
 " Location: %(zip)s %(urb)s%(suburb)s\n"
-" Region: %(l10n_state)s, %(code_state)s\n"
+" Region: %(l10n_region)s, %(code_region)s\n"
 " Country: %(l10n_country)s, %(code_country)s"
 msgstr ""
 
@@ -6764,6 +6995,87 @@ msgstr ""
 msgid "missing, reported later"
 msgstr ""
 
+msgid "Health issue"
+msgstr ""
+
+msgid "External care"
+msgstr ""
+
+msgid "Vaccination"
+msgstr ""
+
+msgid "Clinical narrative"
+msgstr ""
+
+#, fuzzy
+msgid "Test result"
+msgstr "Hasis pencarian untuk '%s'"
+
+msgid "Substance intake"
+msgstr ""
+
+msgid "Hospital stay"
+msgstr ""
+
+msgid "Performed procedure"
+msgstr ""
+
+msgid "Family history"
+msgstr ""
+
+msgid "Document"
+msgstr ""
+
+#, python-format
+msgid "unmapped entry type from table [%s]"
+msgstr ""
+
+#, python-format
+msgid "cannot instantiate clinical root item <%s(%s)>"
+msgstr ""
+
+msgid "True"
+msgstr ""
+
+msgid "False"
+msgstr ""
+
+#, fuzzy
+msgid "unknown smoking status"
+msgstr "pernyataan alergi tidak diketahui"
+
+msgid "non-smoker"
+msgstr ""
+
+msgid "current smoker"
+msgstr ""
+
+msgid "ex-smoker"
+msgstr ""
+
+msgid "tobacco addiction"
+msgstr ""
+
+msgid "no or non-harmful alcohol use"
+msgstr ""
+
+msgid "harmful alcohol use"
+msgstr ""
+
+#, fuzzy
+msgid "unknown alcohol use"
+msgstr "pernyataan alergi tidak diketahui"
+
+msgid "no or non-harmful drug use"
+msgstr ""
+
+msgid "harmful drug use"
+msgstr ""
+
+#, fuzzy
+msgid "unknown drug use"
+msgstr "pernyataan alergi tidak diketahui"
+
 msgid "original entry"
 msgstr ""
 
@@ -6855,13 +7167,6 @@ msgstr ""
 msgid "Vaccinations"
 msgstr ""
 
-#, python-format
-msgid "%s ago"
-msgstr ""
-
-msgid "External care"
-msgstr ""
-
 msgid "Allergies/Intolerances"
 msgstr ""
 
@@ -6936,6 +7241,83 @@ msgid ""
 "The account was deactivated instead."
 msgstr ""
 
+msgid "SOAP_char_S=S"
+msgstr ""
+
+msgid "SOAP_char_O=O"
+msgstr ""
+
+msgid "SOAP_char_A=A"
+msgstr ""
+
+msgid "SOAP_char_P=P"
+msgstr ""
+
+msgid "SOAP_char_U=U"
+msgstr ""
+
+msgid "SOAP_string_Subjective=Subjective"
+msgstr ""
+
+msgid "SOAP_string_Objective=Objective"
+msgstr ""
+
+msgid "SOAP_string_Assessment=Assessment"
+msgstr ""
+
+msgid "SOAP_string_Plan=Plan"
+msgstr ""
+
+msgid "SOAP_string_Unspecified=Unspecified"
+msgstr ""
+
+msgid "SOAP_string_Administrative=Administrative"
+msgstr ""
+
+msgid "Active clinical hint"
+msgstr ""
+
+msgid "Inactive clinical hint"
+msgstr ""
+
+#, python-format
+msgid "Source: %s\n"
+msgstr ""
+
+#, python-format
+msgid "Language: %s\n"
+msgstr ""
+
+msgid "Suppressed active dynamic hint"
+msgstr ""
+
+msgid "Suppressed inactive dynamic hint"
+msgstr ""
+
+#, python-format
+msgid "Suppressed by: %s\n"
+msgstr ""
+
+#, python-format
+msgid "Suppressed at: %s\n"
+msgstr ""
+
+#, python-format
+msgid "Hint #: %s\n"
+msgstr ""
+
+#, python-format
+msgid "Patient #: %s\n"
+msgstr ""
+
+#, python-format
+msgid "MD5 (currently): %s\n"
+msgstr ""
+
+#, python-format
+msgid "MD5 (at suppression): %s\n"
+msgstr ""
+
 #, python-format
 msgid "Device(%s):"
 msgstr ""
@@ -6962,6 +7344,12 @@ msgstr ""
 msgid "Praxis branch                   #%s\n"
 msgstr ""
 
+#, python-format
+msgid ""
+"FN:%(l10n_unit_category)s %(branch)s of %(l10n_organization_category)s "
+"%(praxis)s"
+msgstr ""
+
 msgid "Privacy notice"
 msgstr ""
 
@@ -6975,40 +7363,6 @@ msgstr ""
 msgid "%s: Staff member %s has been notified of your chart access."
 msgstr ""
 
-msgid "soap_S"
-msgstr "soap_S"
-
-msgid "soap_O"
-msgstr "soap_O"
-
-msgid "soap_A"
-msgstr "soap_A"
-
-msgid "soap_P"
-msgstr "soap_P"
-
-#, fuzzy
-msgid "soap_U"
-msgstr "soap_S"
-
-msgid "soap_Subjective"
-msgstr "soap_Subjek"
-
-msgid "soap_Objective"
-msgstr "soap_Objek"
-
-msgid "soap_Assessment"
-msgstr "soap_Penilaian"
-
-msgid "soap_Plan"
-msgstr "soap_Rencana"
-
-msgid "soap_Unspecified"
-msgstr ""
-
-msgid "soap_Administrative"
-msgstr "soap_Administratif"
-
 #, python-format
 msgid ""
 "%s: %s by %.8s (v%s)\n"
@@ -7073,9 +7427,17 @@ msgid "%(last)s,%(title)s %(first)s%(nick)s (%(sex)s)"
 msgstr ""
 
 #, python-format
+msgid "%(last)s,%(title)s %(first)s (%(sex)s)"
+msgstr ""
+
+#, python-format
 msgid "%(last)s,%(title)s %(first)s%(nick)s"
 msgstr ""
 
+#, python-format
+msgid "%(last)s,%(title)s %(first)s"
+msgstr ""
+
 msgid "Cannot merge active patient into another patient."
 msgstr ""
 
@@ -7085,9 +7447,6 @@ msgstr ""
 msgid "merged"
 msgstr ""
 
-msgid "preferred name/call name/..."
-msgstr ""
-
 msgid "invalid age: DOB in the future"
 msgstr ""
 
@@ -7100,9 +7459,6 @@ msgstr ""
 msgid "Mrs"
 msgstr ""
 
-msgid "unknown"
-msgstr ""
-
 msgid "empty status"
 msgstr ""
 
@@ -7433,7 +7789,7 @@ msgid " Part %s: %s %s(%s Bytes)\n"
 msgstr ""
 
 #, python-format
-msgid " Filename: %s\n"
+msgid " Filename: %s%s\n"
 msgstr ""
 
 msgid "no parts"
@@ -7447,18 +7803,25 @@ msgid "%s parts"
 msgstr ""
 
 #, python-format
+msgid "%s of %s"
+msgstr ""
+
+#, python-format
 msgid ""
 "%s (%s)   #%s\n"
-"\n"
 " Created: %s\n"
 " Episode: %s\n"
-"%s%s%s"
+"%s%s%s%s"
 msgstr ""
 
 #, python-format
 msgid " External reference: %s\n"
 msgstr ""
 
+#, python-format
+msgid " Organization: %%s @ %s\n"
+msgstr ""
+
 msgid "Cannot run [arriba] !"
 msgstr ""
 
@@ -7802,25 +8165,9 @@ msgstr ""
 msgid "External care:"
 msgstr ""
 
-#, python-format
-msgid ""
-"health issue: %s%s%s\n"
-"\n"
-msgstr ""
-
-msgid ""
-"\n"
-"current values:\n"
-msgstr ""
-
-msgid "no previous versions of this record"
-msgstr ""
-
-msgid ""
-"\n"
-"all values with <audit_action>, <audit_when>, <audit_by> fields (current "
-"value first):\n"
-msgstr ""
+#, fuzzy, python-format
+msgid "Health issue: %s%s%s"
+msgstr "Buat acara"
 
 msgid "Unattributed episodes"
 msgstr ""
@@ -7843,9 +8190,6 @@ msgstr ""
 msgid "finished"
 msgstr ""
 
-msgid "Health issue"
-msgstr ""
-
 msgid "none associated"
 msgstr ""
 
@@ -7881,9 +8225,7 @@ msgid "Measurements and Results:"
 msgstr ""
 
 #, python-format
-msgid ""
-"episode: %s%s%s\n"
-"\n"
+msgid "Episode: %s%s%s"
 msgstr ""
 
 #, python-format
@@ -7911,9 +8253,7 @@ msgid "%s other episodes touched upon during this encounter:"
 msgstr ""
 
 #, python-format
-msgid ""
-"encounter: %s%s%s\n"
-"\n"
+msgid "Encounter: %s%s%s"
 msgstr ""
 
 msgid " (ongoing)"
@@ -7934,9 +8274,6 @@ msgstr ""
 msgid "Procedures"
 msgstr ""
 
-msgid "Substances"
-msgstr ""
-
 msgid "Life events"
 msgstr ""
 
@@ -7958,9 +8295,6 @@ msgstr ""
 msgid "Cannot display timeline."
 msgstr ""
 
-msgid "Vaccination"
-msgstr ""
-
 msgid "Lab result"
 msgstr ""
 
@@ -8028,9 +8362,6 @@ msgstr ""
 msgid "Exported: %s\n"
 msgstr ""
 
-msgid "emr-journal"
-msgstr ""
-
 msgid "Chronological EMR Journal\n"
 msgstr ""
 
@@ -8298,25 +8629,144 @@ msgstr ""
 msgid "Select one or more codes that apply."
 msgstr ""
 
-msgid "Cannot move progress notes. No active patient."
+msgid "Select the narrative you are interested in ..."
 msgstr ""
 
-msgid "Moving progress notes between encounters ..."
+msgid "when"
+msgstr ""
+
+msgid "who"
+msgstr ""
+
+msgid "entry"
+msgstr ""
+
+msgid "There is no narrative for this episode in this encounter."
+msgstr ""
+
+msgid "Must select episode to move narrative to first."
+msgstr ""
+
+msgid "Last"
+msgstr ""
+
+msgid "In health issue"
+msgstr ""
+
+msgid "Most recent notes on selected problem"
+msgstr ""
+
+#, python-format
+msgid "%s (active+potential) problems"
+msgstr ""
+
+#, python-format
+msgid "%s active problems"
+msgstr ""
+
+msgid "Current encounter:"
+msgstr ""
+
+msgid "Cumulative summary"
+msgstr ""
+
+#, python-format
+msgid "Most recent info on %s%s%s"
 msgstr ""
 
+#, python-format
 msgid ""
+"Cannot open progress note editor for\n"
 "\n"
-" Select the progress notes to move from the list !\n"
+"[%s].\n"
 "\n"
 msgstr ""
 
-msgid "when"
+msgid "opening progress note editor"
 msgstr ""
 
-msgid "who"
+msgid "Cannot save all editors. Some were kept open."
 msgstr ""
 
-msgid "entry"
+msgid "new problem"
+msgstr ""
+
+msgid ""
+"Are you sure you really want to\n"
+"discard this progress note ?\n"
+msgstr ""
+
+msgid "Discarding progress note"
+msgstr ""
+
+msgid "There are unsaved progress notes !\n"
+msgstr ""
+
+msgid "Unsaved progress notes"
+msgstr ""
+
+msgid "Problem list"
+msgstr ""
+
+msgid "Saving SOAP note"
+msgstr ""
+
+msgid "Do you want to save the SOAP note ?"
+msgstr ""
+
+#, python-format
+msgid "&Filter by problem %s%s%s"
+msgstr ""
+
+msgid "Cannot save SimpleNotes SOAP note."
+msgstr ""
+
+#, python-format
+msgid "Progress note: %s%s"
+msgstr ""
+
+msgid "Please enter a name for the new problem:"
+msgstr ""
+
+msgid "Adding a problem"
+msgstr ""
+
+msgid "Cannot delete problem. There is still clinical data recorded for it."
+msgstr ""
+
+#, python-format
+msgid "GNUmed: configuring [%s] (%s plugins)"
+msgstr ""
+
+msgid "loading list of plugins                               "
+msgstr ""
+
+msgid "failed"
+msgstr ""
+
+msgid "success"
+msgstr ""
+
+#, python-format
+msgid ""
+"previous: %s (%s)\n"
+"current (%s/%s): %s"
+msgstr ""
+
+#, python-format
+msgid "Cannot switch to [%s]: no patient selected"
+msgstr ""
+
+msgid "Cannot move progress notes. No active patient."
+msgstr ""
+
+msgid "Moving progress notes between encounters ..."
+msgstr ""
+
+msgid ""
+"\n"
+" Select the progress notes to move from the list !\n"
+"\n"
 msgstr ""
 
 msgid "Cannot edit progress notes. No active patient."
@@ -8518,966 +8968,885 @@ msgid ""
 " Now, mark the entries you want to include in your report.\n"
 msgstr ""
 
-msgid "Select the narrative you are interested in ..."
+msgid "Pick a date ..."
 msgstr ""
 
-msgid "There is no narrative for this episode in this encounter."
+msgid "<ALT-C/K>: pick from (c/k)alendar"
 msgstr ""
 
-msgid "Must select episode to move narrative to first."
+msgid "Cannot interpret input as timestamp."
 msgstr ""
 
-msgid "Last"
+msgid "No vaccines were chosen"
 msgstr ""
 
-msgid "In health issue"
+#, python-format
+msgid "Combination of indications , %s , not found in any vaccine"
 msgstr ""
 
-msgid "Most recent notes on selected problem"
+msgid "Sequence"
 msgstr ""
 
-#, python-format
-msgid "%s (active+potential) problems"
+msgid "Batch"
 msgstr ""
 
-#, python-format
-msgid "%s active problems"
+msgid "Vaccinator"
 msgstr ""
 
-msgid "Current encounter:"
+msgid ""
+"Vaccinations by Recommender (X = patient on regime, O = patient not on "
+"regime) "
 msgstr ""
 
-msgid "Cumulative summary"
+msgid "enrolled regime vaccinations not yet given"
 msgstr ""
 
-#, python-format
-msgid "Most recent info on %s%s%s"
+msgid "Proceed with "
 msgstr ""
 
 #, python-format
-msgid ""
-"Cannot open progress note editor for\n"
-"\n"
-"[%s].\n"
-"\n"
+msgid "Failed to enrol patient in %s"
 msgstr ""
 
-msgid "opening progress note editor"
+#, python-format
+msgid "Failed to  delist patient from %s"
 msgstr ""
 
-msgid "Cannot save all editors. Some were kept open."
+msgid "Missing GNUmed module"
 msgstr ""
 
-msgid "new problem"
+#, python-format
+msgid ""
+"GNUmed detected that parts of it are not\n"
+"properly installed. The following message\n"
+"names the missing part:\n"
+"\n"
+" \"%s\"\n"
+"\n"
+"Please make sure to get the missing\n"
+"parts installed. Otherwise some of the\n"
+"functionality will not be accessible."
 msgstr ""
 
+#, python-format
 msgid ""
-"Are you sure you really want to\n"
-"discard this progress note ?\n"
+"\n"
+" Source: %s"
 msgstr ""
 
-msgid "Discarding progress note"
+#, python-format
+msgid ""
+"\n"
+" Code: %s"
 msgstr ""
 
-msgid "There are unsaved progress notes !\n"
+#, python-format
+msgid ""
+"\n"
+" Details (first 250 characters):\n"
+"%s\n"
+"%s\n"
+"%s"
 msgstr ""
 
-msgid "Unsaved progress notes"
+msgid "Access violation"
 msgstr ""
 
 #, python-format
-msgid "Synopsis (%s)"
+msgid ""
+"You do not have access to this part of GNUmed.\n"
+"\n"
+"%s"
 msgstr ""
 
-msgid ""
-"Enter a short working name for this new problem\n"
-"(which will become a new, unassociated episode):\n"
+msgid "Lost connection"
 msgstr ""
 
-#, python-format
 msgid ""
-"Enter a short working name for this new\n"
-"episode under the existing health issue\n"
+"Since you were last working in GNUmed,\n"
+"your database connection timed out.\n"
 "\n"
-"\"%s\":\n"
+"This GNUmed session is now expired.\n"
+"\n"
+"You will have to close this client and\n"
+"restart a new GNUmed session."
 msgstr ""
 
-msgid "Creating problem (episode) to save notelet under ..."
+msgid ""
+"Please enter a short note on what you\n"
+"were about to do in GNUmed:"
 msgstr ""
 
-msgid "Cannot save a new problem without a name."
+msgid "Sending bug report"
 msgstr ""
 
-msgid "saving progress note"
+msgid ""
+"Edit the list of email addresses to send the\n"
+"bug report to (separate addresses by spaces).\n"
+"\n"
+"Note that <gnumed-bugs at gnu.org> refers to\n"
+"the public (!) GNUmed bugs mailing list."
 msgstr ""
 
 #, python-format
 msgid ""
-"The new episode:\n"
+"Your bug report will be sent to:\n"
 "\n"
-" \"%s\"\n"
+"%s\n"
 "\n"
-"will remain unassociated despite the editor\n"
-"having been invoked from the health issue:\n"
+"Make sure you have reviewed the log file for potentially\n"
+"sensitive information before sending out the bug report.\n"
 "\n"
-" \"%s\""
+"Note that emailing the report may take a while depending\n"
+"on the speed of your internet connection.\n"
 msgstr ""
 
-msgid "You need to actually set an editor."
+msgid "Yes, send the bug report."
 msgstr ""
 
-#, python-format
-msgid "The command [%s] is not found."
+msgid "No, do not send the bug report."
+msgstr ""
+
+msgid "include log file in bug report"
 msgstr ""
 
-#, python-format
 msgid ""
-"Enter the shell command with which to start\n"
-"the image editor for visual progress notes.\n"
+"The database you are connected to is marked as\n"
+"\"in-production with controlled access\".\n"
 "\n"
-"Any \"%(img)s\" included with the arguments\n"
-"will be replaced by the file name of the\n"
-"note template."
+"You indicated that you want to include the log\n"
+"file in your bug report. While this is often\n"
+"useful for debugging the log file might contain\n"
+"bits of patient data which must not be sent out\n"
+"without de-identification.\n"
+"\n"
+"Please confirm that you want to include the log !"
 msgstr ""
 
-msgid "Choose file to use as template for new visual progress note"
+msgid "<not supplied>"
 msgstr ""
 
-msgid "Visual progress note source"
+msgid "Bug report has been emailed."
 msgstr ""
 
-msgid "From which source do you want to pick the image template ?"
+msgid "Bug report COULD NOT be emailed."
 msgstr ""
 
-msgid "Database"
+msgid "Underweight"
 msgstr ""
 
-msgid "List of templates in the database."
+msgid "63< Normal >79"
 msgstr ""
 
-msgid "Files in the filesystem."
+msgid "63 - Normal - 79"
 msgstr ""
 
-msgid "Device"
+msgid "Overweight"
 msgstr ""
 
-msgid "Image capture devices (scanners, cameras, etc)"
+msgid "Obese"
 msgstr ""
 
-#, python-format
-msgid "Cannot export visual progress note template for [%s]."
+msgid "Current height/mass"
 msgstr ""
 
-msgid "Cannot export visual progress note to file."
+msgid "Height (cm)"
 msgstr ""
 
-msgid "Editor for visual progress note not configured."
+msgid "Mass (kg)"
 msgstr ""
 
-#, python-format
-msgid ""
-"There was a problem with running the editor\n"
-"for visual progress notes.\n"
-"\n"
-" [%s]\n"
-"\n"
+msgid "Adjusted Values"
 msgstr ""
 
-msgid "Editing visual progress note"
+msgid "Goal mass"
 msgstr ""
 
-#, python-format
-msgid ""
-"There was a problem reading the visual\n"
-"progress note from the file:\n"
-"\n"
-" [%s]\n"
-"\n"
+msgid "kg to lose"
 msgstr ""
 
-msgid "Saving visual progress note"
+msgid "BMI Calculator"
 msgstr ""
 
-msgid ""
-"You either created a visual progress note from a template\n"
-"in the database (rather than from a file on disk) or you\n"
-"edited an existing visual progress note.\n"
-"\n"
-"The template/original was not modified at all, however.\n"
-"\n"
-"Do you still want to save the unmodified image as a\n"
-"visual progress note into the EMR of the patient ?\n"
+msgid "&Reset"
 msgstr ""
 
-msgid "visual progress notes"
+msgid "Select a healthcare provider."
 msgstr ""
 
-#, python-format
-msgid "Created: %s"
+msgid "Public (no clinical or demographic access)"
 msgstr ""
 
-msgid "Problem list"
+msgid "Staff (demographic access only)"
 msgstr ""
 
-msgid "Saving SOAP note"
+msgid "staff (clerical)"
 msgstr ""
 
-msgid "Do you want to save the SOAP note ?"
+msgid "full clinical access"
 msgstr ""
 
-#, python-format
-msgid "&Filter by problem %s%s%s"
+msgid "DB account"
 msgstr ""
 
-msgid "Cannot save SimpleNotes SOAP note."
+msgid "can login"
 msgstr ""
 
-#, python-format
-msgid "Progress note: %s%s"
+msgid "can not login"
 msgstr ""
 
-msgid "Please enter a name for the new problem:"
+msgid "Activating GNUmed user."
 msgstr ""
 
-msgid "Adding a problem"
+msgid "Deactivating GNUmed user."
 msgstr ""
 
-msgid "Cannot delete problem. There is still clinical data recorded for it."
+msgid "Removing GNUmed user."
 msgstr ""
 
-#, python-format
-msgid "GNUmed: configuring [%s] (%s plugins)"
+msgid "Removing GNUmed user"
 msgstr ""
 
-msgid "loading list of plugins                               "
+msgid "Modifying GNUmed user."
 msgstr ""
 
-msgid "failed"
+msgid "Failed to save changes to GNUmed database user."
 msgstr ""
 
-msgid "success"
+msgid "Modifying GNUmed user"
 msgstr ""
 
 #, python-format
-msgid ""
-"previous: %s (%s)\n"
-"current (%s/%s): %s"
+msgid "Failed to set role [%s] for GNUmed database user."
 msgstr ""
 
 #, python-format
-msgid "Cannot switch to [%s]: no patient selected"
-msgstr ""
-
-msgid "Pick a date ..."
+msgid ""
+"\n"
+"  %s \"%s\" %s\n"
+"  born: %s"
 msgstr ""
 
-msgid "<ALT-C/K>: pick from (c/k)alendar"
+msgid ""
+"Password entries do not match. Please type in the passwords again to rule "
+"out typos."
 msgstr ""
 
-msgid "Cannot interpret input as timestamp."
+msgid "Adding GNUmed user"
 msgstr ""
 
-msgid "No vaccines were chosen"
+msgid ""
+"Are you positively sure you want to create\n"
+"a user with an empty password ?\n"
+"\n"
+"Think about the record access implications !"
 msgstr ""
 
-#, python-format
-msgid "Combination of indications , %s , not found in any vaccine"
+msgid "Enlisting person as user."
 msgstr ""
 
-msgid "Sequence"
+msgid "Encrypt"
 msgstr ""
 
-msgid "Batch"
+msgid "Decrypt"
 msgstr ""
 
-msgid "Vaccinator"
+msgid "Set pass phrase"
 msgstr ""
 
-msgid ""
-"Vaccinations by Recommender (X = patient on regime, O = patient not on "
-"regime) "
+msgid "This is not correctly encrypted text!"
 msgstr ""
 
-msgid "enrolled regime vaccinations not yet given"
+msgid "Please enter your pass phrase:"
 msgstr ""
 
-msgid "Proceed with "
+msgid "Pass phrase expired"
 msgstr ""
 
-#, python-format
-msgid "Failed to enrol patient in %s"
+msgid ""
+"\n"
+"Conditions preventable by vaccination as currently known to GNUmed.\n"
 msgstr ""
 
-#, python-format
-msgid "Failed to  delist patient from %s"
+msgid "Showing vaccination preventable conditions."
 msgstr ""
 
-msgid "Missing GNUmed module"
+msgid "ATCs: single-condition vaccines"
 msgstr ""
 
-#, python-format
-msgid ""
-"GNUmed detected that parts of it are not\n"
-"properly installed. The following message\n"
-"names the missing part:\n"
-"\n"
-" \"%s\"\n"
-"\n"
-"Please make sure to get the missing\n"
-"parts installed. Otherwise some of the\n"
-"functionality will not be accessible."
+msgid "ATCs: multi-condition vaccines"
 msgstr ""
 
-#, python-format
-msgid ""
-"\n"
-" Source: %s"
+msgid "Pick the relevant indications."
 msgstr ""
 
-#, python-format
-msgid ""
-"\n"
-" Code: %s"
+msgid "Known indications"
 msgstr ""
 
-#, python-format
-msgid ""
-"\n"
-" Details (first 250 characters):\n"
-"%s\n"
-"%s\n"
-"%s"
+msgid "Adding new vaccine"
 msgstr ""
 
-msgid "Access violation"
+msgid "Editing vaccine"
 msgstr ""
 
 #, python-format
 msgid ""
-"You do not have access to this part of GNUmed.\n"
+"Cannot delete vaccine\n"
 "\n"
-"%s"
+" %s - %s (#%s)\n"
+"\n"
+"It is probably documented in a vaccination."
 msgstr ""
 
-msgid "Lost connection"
+msgid "Deleting vaccine"
+msgstr ""
+
+msgid "fake"
 msgstr ""
 
 msgid ""
-"Since you were last working in GNUmed,\n"
-"your database connection timed out.\n"
-"\n"
-"This GNUmed session is now expired.\n"
 "\n"
-"You will have to close this client and\n"
-"restart a new GNUmed session."
+"The vaccines currently known to GNUmed.\n"
 msgstr ""
 
-msgid ""
-"Please enter a short note on what you\n"
-"were about to do in GNUmed:"
+msgid "Showing vaccines."
 msgstr ""
 
-msgid "Sending bug report"
+msgid "Enter or select the batch/lot number of the vaccine used."
 msgstr ""
 
-msgid ""
-"Edit the list of email addresses to send the\n"
-"bug report to (separate addresses by spaces).\n"
-"\n"
-"Note that <gnumed-bugs at gnu.org> refers to\n"
-"the public (!) GNUmed bugs mailing list."
+msgid "Saving vaccine"
 msgstr ""
 
 #, python-format
 msgid ""
-"Your bug report will be sent to:\n"
+"This vaccine is already in use:\n"
 "\n"
-"%s\n"
+" \"%s\"\n"
+" (%s)\n"
 "\n"
-"Make sure you have reviewed the log file for potentially\n"
-"sensitive information before sending out the bug report.\n"
+"Are you absolutely positively sure that\n"
+"you really want to edit this vaccine ?\n"
 "\n"
-"Note that emailing the report may take a while depending\n"
-"on the speed of your internet connection.\n"
-msgstr ""
-
-msgid "Yes, send the bug report."
+"This will change the vaccine name and/or target\n"
+"conditions in each patient this vaccine was\n"
+"used in to document a vaccination with.\n"
 msgstr ""
 
-msgid "No, do not send the bug report."
+msgid "You must select at least one indication."
 msgstr ""
 
-msgid "include log file in bug report"
+msgid "Pick the diseases this vaccine protects against."
 msgstr ""
 
-msgid ""
-"The database you are connected to is marked as\n"
-"\"in-production with controlled access\".\n"
-"\n"
-"You indicated that you want to include the log\n"
-"file in your bug report. While this is often\n"
-"useful for debugging the log file might contain\n"
-"bits of patient data which must not be sent out\n"
-"without de-identification.\n"
-"\n"
-"Please confirm that you want to include the log !"
+msgid "This vaccine"
 msgstr ""
 
-msgid "<not supplied>"
+msgid "Adding new vaccinations"
 msgstr ""
 
-msgid "Bug report has been emailed."
+msgid "Editing vaccination"
 msgstr ""
 
-msgid "Bug report COULD NOT be emailed."
+msgid "vaccination recall"
 msgstr ""
 
-msgid "Underweight"
+#, python-format
+msgid "vaccination recall (%s)"
 msgstr ""
 
-msgid "63< Normal >79"
-msgstr ""
-
-msgid "63 - Normal - 79"
-msgstr ""
-
-msgid "Overweight"
+#, python-format
+msgid ""
+"Existing vaccination:\n"
+"\n"
+"%s"
 msgstr ""
 
-msgid "Obese"
+msgid ""
+"\n"
+"Complete vaccination history for this patient.\n"
 msgstr ""
 
-msgid "Current height/mass"
+msgid "Showing vaccinations."
 msgstr ""
 
-msgid "Height (cm)"
+msgid "Intended to protect from"
 msgstr ""
 
-msgid "Mass (kg)"
+msgid "Print vaccinations or recalls."
 msgstr ""
 
-msgid "Adjusted Values"
+msgid "Recall"
 msgstr ""
 
-msgid "Goal mass"
+msgid "Add a recall for a vaccination"
 msgstr ""
 
-msgid "kg to lose"
+msgid "Vx schedules"
 msgstr ""
 
-msgid "BMI Calculator"
+msgid "Open a browser showing vaccination schedules."
 msgstr ""
 
-msgid "&Reset"
+msgid "prevention"
 msgstr ""
 
-msgid "Select a healthcare provider."
+msgid "Saving vaccination"
 msgstr ""
 
-msgid "Public (no clinical or demographic access)"
+msgid "Pick the diseases this vaccination was given against."
 msgstr ""
 
-msgid "Staff (demographic access only)"
+msgid "  IMMUNISATIONS  "
 msgstr ""
 
-msgid "staff (clerical)"
+msgid "Indications"
 msgstr ""
 
-msgid "full clinical access"
+msgid "Active Schedules"
 msgstr ""
 
-msgid "DB account"
+msgid "Missing Immunisations"
 msgstr ""
 
-msgid "can login"
+msgid "  Alerts  "
 msgstr ""
 
-msgid "can not login"
+msgid "ERROR: cannot retrieve active vaccination schedules"
 msgstr ""
 
-msgid "Activating GNUmed user."
+msgid "no active vaccination schedules"
 msgstr ""
 
-msgid "Deactivating GNUmed user."
+#, python-format
+msgid "%s for %s (%s shots): %s"
 msgstr ""
 
-msgid "Removing GNUmed user."
+msgid "ERROR: cannot retrieve due/overdue vaccinations"
 msgstr ""
 
-msgid "Removing GNUmed user"
+#, python-format
+msgid "%.0d weeks left: shot %s for %s in %s, due %s (%s)"
 msgstr ""
 
-msgid "Modifying GNUmed user."
+#, python-format
+msgid "overdue %.0dyrs %.0dwks: shot %s for %s in schedule \"%s\" (%s)"
 msgstr ""
 
-msgid "Failed to save changes to GNUmed database user."
+#, python-format
+msgid "due now: booster for %s in schedule \"%s\" (%s)"
 msgstr ""
 
-msgid "Modifying GNUmed user"
+#, python-format
+msgid "Synopsis (%s)"
 msgstr ""
 
-#, python-format
-msgid "Failed to set role [%s] for GNUmed database user."
+msgid ""
+"Enter a short working name for this new problem\n"
+"(which will become a new, unassociated episode):\n"
 msgstr ""
 
 #, python-format
 msgid ""
+"Enter a short working name for this new\n"
+"episode under the existing health issue\n"
 "\n"
-"  %s \"%s\" %s\n"
-"  born: %s"
+"\"%s\":\n"
 msgstr ""
 
-msgid ""
-"Password entries do not match. Please type in the passwords again to rule "
-"out typos."
+msgid "Creating problem (episode) to save notelet under ..."
 msgstr ""
 
-msgid "Adding GNUmed user"
+msgid "Cannot save a new problem without a name."
+msgstr ""
+
+msgid "saving progress note"
 msgstr ""
 
+#, python-format
 msgid ""
-"Are you positively sure you want to create\n"
-"a user with an empty password ?\n"
+"The new episode:\n"
 "\n"
-"Think about the record access implications !"
+" \"%s\"\n"
+"\n"
+"will remain unassociated despite the editor\n"
+"having been invoked from the health issue:\n"
+"\n"
+" \"%s\""
 msgstr ""
 
-msgid "Enlisting person as user."
+msgid "Adding substance abuse"
 msgstr ""
 
-msgid "Encrypt"
+msgid "Editing substance abuse"
 msgstr ""
 
-msgid "Decrypt"
+msgid "Substances abused by the patient:"
 msgstr ""
 
-msgid "Set pass phrase"
+msgid "Showing abused substances."
 msgstr ""
 
-msgid "This is not correctly encrypted text!"
+msgid "Intake"
 msgstr ""
 
-msgid "Please enter your pass phrase:"
+msgid "nicotine"
 msgstr ""
 
-msgid "Pass phrase expired"
+msgid "unit"
 msgstr ""
 
-msgid ""
-"\n"
-"Conditions preventable by vaccination as currently known to GNUmed.\n"
+#, python-format
+msgid "Latest: %s ago (%s %s%s%s%s)"
 msgstr ""
 
-msgid "Showing vaccination preventable conditions."
+#, python-format
+msgid "%s %s%s%s (%s ago, %s)"
 msgstr ""
 
-msgid "ATCs: single-condition vaccines"
+#, python-format
+msgid "overdue %s: %s"
 msgstr ""
 
-msgid "ATCs: multi-condition vaccines"
+#, python-format
+msgid "due in %s%s"
 msgstr ""
 
-msgid "Pick the relevant indications."
+msgid "suppr'd:"
 msgstr ""
 
-msgid "Known indications"
+msgid "Suppressed hints:\n"
 msgstr ""
 
-msgid "Adding new vaccine"
+msgid ""
+"Do you really want to\n"
+"delete this inbox message ?"
 msgstr ""
 
-msgid "Editing vaccine"
+msgid "Deleting inbox message"
+msgstr ""
+
+msgid "Export area: 1 item"
 msgstr ""
 
 #, python-format
-msgid ""
-"Cannot delete vaccine\n"
-"\n"
-" %s - %s (#%s)\n"
-"\n"
-"It is probably documented in a vaccination."
+msgid "Export area: %s items"
 msgstr ""
 
-msgid "Deleting vaccine"
+#, python-format
+msgid "%s %s more not shown %s"
 msgstr ""
 
-msgid "fake"
+#, python-format
+msgid "Currently %s entries in waiting list"
 msgstr ""
 
-msgid ""
-"\n"
-"The vaccines currently known to GNUmed.\n"
+#, python-format
+msgid "first (in GMd): %s, %s"
 msgstr ""
 
-msgid "Showing vaccines."
+#, python-format
+msgid "last: %s, %s"
 msgstr ""
 
-msgid "Enter or select the batch/lot number of the vaccine used."
+#, python-format
+msgid "Last %s:"
 msgstr ""
 
-msgid "Saving vaccine"
+msgid "Statistics cover period"
 msgstr ""
 
 #, python-format
+msgid "EDC (!?!): %s"
+msgstr ""
+
 msgid ""
-"This vaccine is already in use:\n"
-"\n"
-" \"%s\"\n"
-" (%s)\n"
-"\n"
-"Are you absolutely positively sure that\n"
-"you really want to edit this vaccine ?\n"
+"The Expected Date of Confinement is rather questionable.\n"
 "\n"
-"This will change the vaccine name and/or target\n"
-"conditions in each patient this vaccine was\n"
-"used in to document a vaccination with.\n"
+"Please check patient age, patient gender, time until/since EDC."
 msgstr ""
 
-msgid "You must select at least one indication."
+#, python-format
+msgid "%s Vacc: %s (latest of %s)"
 msgstr ""
 
-msgid "Pick the diseases this vaccine protects against."
+#, python-format
+msgid "Hx of addiction: %s"
 msgstr ""
 
-msgid "This vaccine"
+msgid "active substance abuse"
 msgstr ""
 
-msgid "Adding new vaccinations"
+#, python-format
+msgid "%s %s %s%s"
 msgstr ""
 
-msgid "Editing vaccination"
+#, python-format
+msgid "%s %s%s"
 msgstr ""
 
-msgid "vaccination recall"
+#, python-format
+msgid "** Currently hospitalized: %s **"
 msgstr ""
 
 #, python-format
-msgid "vaccination recall (%s)"
+msgid "emergency: %s"
 msgstr ""
 
 #, python-format
-msgid ""
-"Existing vaccination:\n"
-"\n"
-"%s"
+msgid "in-praxis: %s"
 msgstr ""
 
-msgid ""
-"\n"
-"Complete vaccination history for this patient.\n"
+#, python-format
+msgid "care: %s%s@%s"
 msgstr ""
 
-msgid "Showing vaccinations."
+msgid "*** CONFIDENTIAL ***"
 msgstr ""
 
-msgid "Intended to protect from"
+msgid " (confidential !)"
 msgstr ""
 
-msgid "Print vaccinations or recalls."
+#, python-format
+msgid "extrnl: %s (%s@%s)"
 msgstr ""
 
-msgid "Recall"
+#, python-format
+msgid "aka: %(last)s, %(first)s%(nick)s"
 msgstr ""
 
-msgid "Add a recall for a vaccination"
+#, python-format
+msgid "job: %s (%s)"
 msgstr ""
 
-msgid "Vx schedules"
+#, python-format
+msgid "issued by: %s%s"
 msgstr ""
 
-msgid "Open a browser showing vaccination schedules."
+#, python-format
+msgid "Last modified: %s"
 msgstr ""
 
-msgid "prevention"
+#, python-format
+msgid ""
+"Activities:\n"
+"\n"
+"%s"
 msgstr ""
 
-msgid "Saving vaccination"
+msgid "Cloning name"
 msgstr ""
 
-msgid "Pick the diseases this vaccination was given against."
+msgid "Editing external ID"
 msgstr ""
 
-msgid "  IMMUNISATIONS  "
+msgid "Adding new translation"
 msgstr ""
 
-msgid "Indications"
+msgid "Editing translation"
 msgstr ""
 
-msgid "Active Schedules"
+msgid "Selecting language for translation"
 msgstr ""
 
-msgid "Missing Immunisations"
+msgid ""
+"Please select the language the translations for which you want to work on."
 msgstr ""
 
-msgid "  Alerts  "
+#, python-format
+msgid ""
+"Are you sure you want to delete the translation of:\n"
+"\n"
+"%s\n"
+"\n"
+"into [%s] as:\n"
+"\n"
+"%s\n"
+"\n"
+"?  (Note that you must know the database administrator password !)\n"
 msgstr ""
 
-msgid "ERROR: cannot retrieve active vaccination schedules"
+msgid "Deleting translation from database"
 msgstr ""
 
-msgid "no active vaccination schedules"
+msgid "deleting a translation"
 msgstr ""
 
-#, python-format
-msgid "%s for %s (%s shots): %s"
+msgid "Contributing translations"
 msgstr ""
 
-msgid "ERROR: cannot retrieve due/overdue vaccinations"
+msgid "Do you want to contribute your translations to the GNUmed project ?"
 msgstr ""
 
-#, python-format
-msgid "%.0d weeks left: shot %s for %s in %s, due %s (%s)"
+msgid ""
+"Unable to send mail. Cannot contribute translations to GNUmed community."
 msgstr ""
 
-#, python-format
-msgid "overdue %.0dyrs %.0dwks: shot %s for %s in schedule \"%s\" (%s)"
-msgstr ""
-
-#, python-format
-msgid "due now: booster for %s in schedule \"%s\" (%s)"
-msgstr ""
-
-#, python-format
-msgid "Latest: %s ago (%s %s %s %s%s)"
+msgid "Thank you for your contribution to the GNUmed community!"
 msgstr ""
 
-#, python-format
-msgid "%s %s %s %s (%s ago, %s)"
+msgid "Showing translatable database strings for all languages."
 msgstr ""
 
 #, python-format
-msgid "overdue %s: %s"
+msgid "Showing translatable database strings for target language [%s]."
 msgstr ""
 
-#, python-format
-msgid "due in %s%s"
+msgid "Contribute translations to GNUmed community by email."
 msgstr ""
 
 msgid ""
-"Do you really want to\n"
-"delete this inbox message ?"
-msgstr ""
-
-msgid "Deleting inbox message"
-msgstr ""
-
-msgid "Export area: 1 item"
+"Before creating a new person review the encounter details\n"
+"of the patient you just worked on:\n"
 msgstr ""
 
-#, python-format
-msgid "Export area: %s items"
+msgid "Edit the current encounter of the patient you are ABOUT TO LEAVE:"
 msgstr ""
 
-#, python-format
-msgid "%s %s more not shown %s"
+msgid "Adding new person"
 msgstr ""
 
-#, python-format
-msgid "Currently %s entries in waiting list"
+msgid "ID exists !"
 msgstr ""
 
 #, python-format
-msgid "first (in GMd): %s, %s"
+msgid "One \"%s, %s (%s)\" already exists !"
 msgstr ""
 
 #, python-format
-msgid "last: %s, %s"
+msgid "%s \"%s, %s (%s)\" already exist !"
 msgstr ""
 
-#, python-format
-msgid "Last %s:"
+msgid "Must enter lastname."
 msgstr ""
 
-msgid "Statistics cover period"
+msgid "Must enter first name."
 msgstr ""
 
-#, python-format
-msgid "EDC (!?!): %s"
+msgid "Must select gender."
 msgstr ""
 
 msgid ""
-"The Expected Date of Confinement is rather questionable.\n"
-"\n"
-"Please check patient age, patient gender, time until/since EDC."
+"To properly create an address, all the related fields must be filled in."
 msgstr ""
 
-#, python-format
-msgid "%s Vacc: %s"
+msgid "Required fields"
 msgstr ""
 
-#, python-format
-msgid "%s %s %s%s"
+msgid "This field must contain an item selected from the dropdown list."
 msgstr ""
 
-#, python-format
-msgid "%s %s%s"
+msgid "Saving address"
 msgstr ""
 
-#, python-format
-msgid "** Currently hospitalized: %s **"
+msgid ""
+"Cannot save this address.\n"
+"\n"
+"You will have to add it via the Demographics plugin.\n"
 msgstr ""
 
-#, python-format
-msgid "emergency: %s"
+msgid ""
+"Address not saved.\n"
+"\n"
+"You will have to add it via the Demographics plugin.\n"
 msgstr ""
 
-#, python-format
-msgid "in-praxis: %s"
+msgid "You need to actually set an editor."
 msgstr ""
 
 #, python-format
-msgid "care: %s%s@%s"
-msgstr ""
-
-msgid "*** CONFIDENTIAL ***"
-msgstr ""
-
-msgid " (confidential !)"
+msgid "The command [%s] is not found."
 msgstr ""
 
 #, python-format
-msgid "extrnl: %s (%s@%s)"
+msgid ""
+"Enter the shell command with which to start\n"
+"the image editor for visual progress notes.\n"
+"\n"
+"Any \"%(img)s\" included with the arguments\n"
+"will be replaced by the file name of the\n"
+"note template."
 msgstr ""
 
-#, python-format
-msgid "aka: %(last)s, %(first)s%(nick)s"
+msgid "Choose file to use as template for new visual progress note"
 msgstr ""
 
-#, python-format
-msgid "job: %s (%s)"
+msgid "Visual progress note source"
 msgstr ""
 
-#, python-format
-msgid "issued by: %s%s"
+msgid "From which source do you want to pick the image template ?"
 msgstr ""
 
-#, python-format
-msgid "Last modified: %s"
+msgid "Database"
 msgstr ""
 
-#, python-format
-msgid ""
-"Activities:\n"
-"\n"
-"%s"
+msgid "List of templates in the database."
 msgstr ""
 
-msgid "Cloning name"
+msgid "Files in the filesystem."
 msgstr ""
 
-msgid "Editing external ID"
+msgid "Device"
 msgstr ""
 
-msgid "Adding new translation"
+msgid "Image capture devices (scanners, cameras, etc)"
 msgstr ""
 
-msgid "Editing translation"
+#, python-format
+msgid "Cannot export visual progress note template for [%s]."
 msgstr ""
 
-msgid "Selecting language for translation"
+msgid "Cannot export visual progress note to file."
 msgstr ""
 
-msgid ""
-"Please select the language the translations for which you want to work on."
+msgid "Editor for visual progress note not configured."
 msgstr ""
 
 #, python-format
 msgid ""
-"Are you sure you want to delete the translation of:\n"
-"\n"
-"%s\n"
-"\n"
-"into [%s] as:\n"
+"There was a problem with running the editor\n"
+"for visual progress notes.\n"
 "\n"
-"%s\n"
+" [%s]\n"
 "\n"
-"?  (Note that you must know the database administrator password !)\n"
-msgstr ""
-
-msgid "Deleting translation from database"
-msgstr ""
-
-msgid "deleting a translation"
-msgstr ""
-
-msgid "Contributing translations"
-msgstr ""
-
-msgid "Do you want to contribute your translations to the GNUmed project ?"
-msgstr ""
-
-msgid ""
-"Unable to send mail. Cannot contribute translations to GNUmed community."
-msgstr ""
-
-msgid "Thank you for your contribution to the GNUmed community!"
 msgstr ""
 
-msgid "Showing translatable database strings for all languages."
+msgid "Editing visual progress note"
 msgstr ""
 
 #, python-format
-msgid "Showing translatable database strings for target language [%s]."
-msgstr ""
-
-msgid "Contribute translations to GNUmed community by email."
-msgstr ""
-
 msgid ""
-"Before creating a new person review the encounter details\n"
-"of the patient you just worked on:\n"
-msgstr ""
-
-msgid "Edit the current encounter of the patient you are ABOUT TO LEAVE:"
-msgstr ""
-
-msgid "Adding new person"
-msgstr ""
-
-msgid "ID exists !"
-msgstr ""
-
-#, python-format
-msgid "One \"%s, %s (%s)\" already exists !"
-msgstr ""
-
-#, python-format
-msgid "%s \"%s, %s (%s)\" already exist !"
-msgstr ""
-
-msgid "Must enter lastname."
-msgstr ""
-
-msgid "Must enter first name."
+"There was a problem reading the visual\n"
+"progress note from the file:\n"
+"\n"
+" [%s]\n"
+"\n"
 msgstr ""
 
-msgid "Must select gender."
+msgid "Saving visual progress note"
 msgstr ""
 
 msgid ""
-"To properly create an address, all the related fields must be filled in."
-msgstr ""
-
-msgid "Required fields"
-msgstr ""
-
-msgid "This field must contain an item selected from the dropdown list."
+"You either created a visual progress note from a template\n"
+"in the database (rather than from a file on disk) or you\n"
+"edited an existing visual progress note.\n"
+"\n"
+"The template/original was not modified at all, however.\n"
+"\n"
+"Do you still want to save the unmodified image as a\n"
+"visual progress note into the EMR of the patient ?\n"
 msgstr ""
 
-msgid "Saving address"
+msgid "visual progress notes"
 msgstr ""
 
-msgid ""
-"Cannot save this address.\n"
-"\n"
-"You will have to add it via the Demographics plugin.\n"
+#, python-format
+msgid " [part 1 of %s]"
 msgstr ""
 
-msgid ""
-"Address not saved.\n"
-"\n"
-"You will have to add it via the Demographics plugin.\n"
-msgstr ""
+#, fuzzy, python-format
+msgid "Created: %s%s"
+msgstr "Buat acara"
 
 msgid "You must select a value from the picklist or type an exact match."
 msgstr ""
@@ -9559,7 +9928,8 @@ msgstr ""
 
 #, python-format
 msgid ""
-"%(street)s %(number)s, %(postcode)s %(urb)s, %(l10n_state)s, %(l10n_country)s"
+"%(street)s %(number)s, %(postcode)s %(urb)s, %(l10n_region)s, "
+"%(l10n_country)s"
 msgstr ""
 
 #, python-format
@@ -10149,7 +10519,7 @@ msgstr ""
 msgid ""
 "Cannot save address.\n"
 "\n"
-"Does the state [%s]\n"
+"Does the region [%s]\n"
 "exist in country [%s] ?"
 msgstr ""
 
@@ -10574,7 +10944,7 @@ msgstr ""
 msgid "Reminders for the current patient"
 msgstr ""
 
-msgid "Sent"
+msgid "Generated"
 msgstr ""
 
 msgid "Category - Type"
@@ -10622,9 +10992,6 @@ msgid ""
 "Data: %s"
 msgstr ""
 
-msgid "Inbox Message Actions:"
-msgstr ""
-
 msgid "Activate patient"
 msgstr ""
 
@@ -11313,7 +11680,7 @@ msgid ""
 msgstr ""
 
 #, python-format
-msgid "Select branch (of praxis [%s]) which you are logging in from.\n"
+msgid "Select the branch of praxis [%s] which you are logging in from.\n"
 msgstr ""
 
 msgid "Praxis branch selection ..."
@@ -11620,6 +11987,13 @@ msgstr ""
 msgid "List of addresses related to this person."
 msgstr ""
 
+#, fuzzy
+msgid "Map"
+msgstr "Mar"
+
+msgid "Show selected address on map"
+msgstr ""
+
 msgid "Adding new address"
 msgstr ""
 
@@ -11800,37 +12174,115 @@ msgstr ""
 msgid "generic multi choice dialog"
 msgstr ""
 
-msgid "Search in list"
+msgid "Deleting list items"
 msgstr ""
 
-msgid "Monty the Serpent && the FSF Present"
+#, python-format
+msgid ""
+"You have selected %s list items.\n"
+"\n"
+"Really delete all %s items ?"
 msgstr ""
 
-msgid "Free eMedicine"
+msgid ""
+"Select the items you want to work on.\n"
+"\n"
+"A discontinuous selection may depend on your holding down a platform-"
+"dependent modifier key (<CTRL>, <ALT>, etc) or key combination (eg. <CTRL-"
+"SHIFT> or <CTRL-ALT>) while clicking."
 msgstr ""
 
-#, python-format
-msgid "Version %s%s brought to you by"
+msgid "List Item Actions:"
 msgstr ""
 
-msgid "debug"
+msgid "Add (<INS>)"
 msgstr ""
 
-msgid "Please visit http://www.gnumed.org"
+#, fuzzy
+msgid "Delete (<DEL>)"
+msgstr "Hapus"
+
+msgid "Find (<CTRL-F>)"
 msgstr ""
 
 #, python-format
-msgid ""
-"The following people kindly contributed to GNUmed.\n"
-"Please write to <gnumed-devel at gnu.org> to have your\n"
-"contribution duly recognized in this list or to have\n"
-"your name removed from it for, say, privacy reasons.\n"
-"\n"
-"Note that this list is sorted alphabetically by last\n"
-"name, first name. If the only identifier is an email\n"
-"address it is sorted under the first character of\n"
-"the user name.\n"
-"%s"
+msgid "Find next [%s] (<CTRL-N>)"
+msgstr ""
+
+msgid "Row tooltip"
+msgstr ""
+
+msgid "Row data (formatted as text)"
+msgstr ""
+
+msgid "Row content (as one line)"
+msgstr ""
+
+msgid "Row content (one line per column)"
+msgstr ""
+
+#, python-format
+msgid "Column &%s: \"%s\" [#%s]"
+msgstr ""
+
+#, python-format
+msgid "Column &%s: %s"
+msgstr ""
+
+msgid "&Copy to clipboard..."
+msgstr ""
+
+msgid "Append (&+) to clipboard..."
+msgstr ""
+
+#, python-format
+msgid ""
+"%s list items are selected.\n"
+"\n"
+"Really delete all %s items ?"
+msgstr ""
+
+msgid "Enter the search term:"
+msgstr ""
+
+msgid "List search"
+msgstr ""
+
+#, python-format
+msgid ""
+"Current search term: [[%s]]\n"
+"\n"
+"%s"
+msgstr ""
+
+msgid "Monty the Serpent && the FSF Present"
+msgstr ""
+
+msgid "Free eMedicine"
+msgstr ""
+
+#, python-format
+msgid "Version %s%s brought to you by"
+msgstr ""
+
+msgid "debug"
+msgstr ""
+
+msgid "Please visit http://www.gnumed.org"
+msgstr ""
+
+#, python-format
+msgid ""
+"The following people kindly contributed to GNUmed.\n"
+"Please write to <gnumed-devel at gnu.org> to have your\n"
+"contribution duly recognized in this list or to have\n"
+"your name removed from it for, say, privacy reasons.\n"
+"\n"
+"Note that this list is sorted alphabetically by last\n"
+"name, first name. If the only identifier is an email\n"
+"address it is sorted under the first character of\n"
+"the user name.\n"
+"%s"
 msgstr ""
 
 msgid "Started a new encounter for the active patient."
@@ -11951,6 +12403,9 @@ msgstr ""
 msgid "Unknown: ?"
 msgstr ""
 
+msgid "The text has been copied into the clipboard."
+msgstr ""
+
 msgid "file2clipboard"
 msgstr ""
 
@@ -11958,6 +12413,40 @@ msgstr ""
 msgid "The file [%s] has been copied into the clipboard."
 msgstr ""
 
+msgid "programmer forgot to specify error message"
+msgstr ""
+
+msgid ""
+"\n"
+"\n"
+"Please consult the error log for all the gory details !"
+msgstr ""
+
+msgid "generic error message"
+msgstr ""
+
+msgid "programmer forgot to specify info message"
+msgstr ""
+
+msgid "generic info message"
+msgstr ""
+
+msgid "programmer forgot to specify warning"
+msgstr ""
+
+msgid "generic warning message"
+msgstr ""
+
+msgid "Editing EDC"
+msgstr ""
+
+#, python-format
+msgid ""
+"Really delete the EDC documented previously ?\n"
+"\n"
+" EDC: %s"
+msgstr ""
+
 #, python-format
 msgid ""
 "Algorithm: %s\n"
@@ -12065,15 +12554,15 @@ msgstr ""
 msgid "Firstname"
 msgstr ""
 
-msgid "Nickname"
-msgstr ""
-
 msgid "DOB"
 msgstr ""
 
 msgid "last visit"
 msgstr ""
 
+msgid "Nickname / Comment"
+msgstr ""
+
 msgid "found via"
 msgstr ""
 
@@ -12253,436 +12742,192 @@ msgstr ""
 msgid "In case of emergency contact:"
 msgstr ""
 
-msgid ""
-"\n"
-"Please select the default drug data source from the list below.\n"
-"\n"
-"Note that to actually use it you need to have the database installed, too."
+msgid "The preparation (form) of the substance or brand."
 msgstr ""
 
-msgid "Drug data source"
+msgid "A substance with optional strength or a brand."
 msgstr ""
 
-msgid "Configuring default drug data source"
+msgid "The medical aim for consuming this substance."
 msgstr ""
 
-msgid "No default drug database configured."
+msgid "not tolerated:"
 msgstr ""
 
-msgid "There is no default drug database configured."
+msgid "discontinued due to allergy or intolerance"
 msgstr ""
 
-msgid "Jumping to drug database"
+msgid "Documented an allergy"
 msgstr ""
 
 #, python-format
-msgid "Cannot call IFAP via [%s]."
+msgid ""
+"An allergy was documented against the substance:\n"
+"\n"
+"  [%s]\n"
+"\n"
+"This substance was taken with the multi-component brand:\n"
+"\n"
+"  [%s (%s)]\n"
+"\n"
+"Note that ALL components of this brand were discontinued."
 msgstr ""
 
-#, python-format
-msgid "Cannot create IFAP <-> GNUmed transfer file [%s]."
+msgid "disapproved"
 msgstr ""
 
-msgid "Current medication"
+msgid "Substances consumed by the patient:"
 msgstr ""
 
-msgid ""
-"\n"
-"The ATC codes as known to GNUmed.\n"
+msgid "Showing consumable substances."
 msgstr ""
 
-msgid "Showing ATC codes."
+msgid "Application"
 msgstr ""
 
-msgid "Choose an ATC import config file"
+msgid "never"
 msgstr ""
 
-msgid "config files"
+#, python-format
+msgid "%s, last confirmed %s\n"
 msgstr ""
 
-msgid "importing ATC reference data"
+#, python-format
+msgid "Comment (%s): %%s\n"
 msgstr ""
 
-msgid "Successfully imported ATC reference data."
+msgid "reaction not recorded"
 msgstr ""
 
-msgid "Importing ATC reference data failed."
+msgid "GFR: unknown"
 msgstr ""
 
-msgid "Select an ATC (Anatomical-Therapeutic-Chemical) code."
+msgid "GFR reported by path lab"
 msgstr ""
 
-msgid "Cannot delete this substance. It is in use."
+#, fuzzy
+msgid "<no components>"
+msgstr "Kontak"
+
+msgid "Adding substance intake entry"
 msgstr ""
 
+#, python-format
 msgid ""
+"The patient is already taking\n"
 "\n"
-"These are the consumable substances registered with GNUmed.\n"
-msgstr ""
-
-msgid "Showing consumable substances."
+" %s\n"
+"\n"
+"You will want to adjust the schedule\n"
+"rather than document the intake twice."
 msgstr ""
 
-msgid "Import"
+msgid "Input incomplete/invalid for saving as substance intake."
 msgstr ""
 
-msgid "Import consumable substances from a drug database."
+#, python-format
+msgid "Discontinued (%s) in the future (now: %s)!"
 msgstr ""
 
-msgid "Cannot edit this substance. It is in use."
+#, python-format
+msgid "Discontinued (%s) before started (%s) !"
 msgstr ""
 
-msgid "Adding new consumable substance"
+msgid "Cannot add duplicate of (maybe inactive) substance intake."
 msgstr ""
 
-msgid "Editing consumable substance"
+#, python-format
+msgid ""
+"\n"
+"[%s]\n"
+"\n"
+"It may be prudent to edit (before deletion) the details\n"
+"of this substance intake entry so as to leave behind\n"
+"some indication of why it was deleted.\n"
 msgstr ""
 
-msgid "Cannot save consumable substance. Missing essential input."
+msgid "Deleting medication / substance intake"
 msgstr ""
 
-#, python-format
-msgid "Cannot save consumable substance. %s"
+msgid "Allow editing of substance intake entry before deletion."
 msgstr ""
 
-msgid "Cannot remove this component from the drug. It is in use."
+msgid "Delete immediately without editing first."
 msgstr ""
 
-msgid ""
-"\n"
-"These are the components in the drug brands known to GNUmed.\n"
+msgid "&Cancel"
 msgstr ""
 
-msgid "Showing drug brand components."
+msgid "Abort. Do not delete or edit substance intake entry."
 msgstr ""
 
-msgid "Adding new drug component"
+msgid "Now delete substance intake entry ?"
 msgstr ""
 
-msgid "Editing drug component"
+msgid "Adding medication/non-medication substance intake"
 msgstr ""
 
-msgid "Cannot edit drug component. It is in use."
+msgid "Editing medication/non-medication substance intake"
 msgstr ""
 
-msgid "Cannot save drug component. Invalid or missing essential input."
+msgid "Document an allergy against this substance."
 msgstr ""
 
-msgid "A drug component with optional strength."
+msgid "No medication list template configured."
 msgstr ""
 
-msgid "The preparation (form) of the substance or brand."
+msgid "There is no medication list template configured."
 msgstr ""
 
-msgid "The substance with optional strength."
+msgid "Problem loading medication list template."
 msgstr ""
 
-msgid "Managing components of a drug"
+#, python-format
+msgid "Cannot load medication list template [%s - %s]"
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot manage the components of the branded drug product\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is currently taken by patients.\n"
+msgid "generated medication list document"
 msgstr ""
 
-msgid "Pick the substances which are components of this drug."
+msgid "Select the default prescription template:"
 msgstr ""
 
-msgid "Components of drug"
+msgid "No prescription template configured."
 msgstr ""
 
-#, python-format
-msgid ""
-"Adjust the components of \"%s\"\n"
-"\n"
-"The drug must contain at least one component. Any given\n"
-"substance can only be included once per drug."
+msgid "There is no prescription template configured."
 msgstr ""
 
-msgid "Managing components of a drug ..."
+msgid "Printing prescription"
 msgstr ""
 
-msgid "not in use"
+msgid "Problem loading prescription template."
 msgstr ""
 
 #, python-format
-msgid "ATC: %s\n"
+msgid "Cannot load prescription template [%s - %s]"
 msgstr ""
 
-msgid "Editing medication"
-msgstr ""
+#, fuzzy
+msgid "generated prescription"
+msgstr "Deskripsi"
 
-#, python-format
 msgid ""
-"Cannot edit the medication\n"
-"\n"
-" \"%s\" (%s)\n"
+"These brands have been prescribed but are not listed\n"
+"in the current medication list of this patient.\n"
 "\n"
-"because it is a vaccine. Please edit it\n"
-"from the vaccine management section !\n"
+"Please select those you want added to the medication list."
 msgstr ""
 
-msgid "Deleting medication"
-msgstr ""
-
-#, python-format
-msgid ""
-"Cannot delete the medication\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is a vaccine. Please delete it\n"
-"from the vaccine management section !\n"
-msgstr ""
-
-msgid ""
-"\n"
-"These are the drug brands known to GNUmed.\n"
-msgstr ""
-
-msgid "Showing branded drugs."
-msgstr ""
-
-msgid "Import substances and brands from a drug database."
-msgstr ""
-
-msgid "Editing drug"
-msgstr ""
-
-#, python-format
-msgid ""
-"Cannot edit the branded drug product\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is currently taken by patients.\n"
-msgstr ""
-
-msgid "Adding new drug brand"
-msgstr ""
-
-msgid "Editing drug brand"
-msgstr ""
-
-msgid "Manage consumable substances"
-msgstr ""
-
-msgid "Cannot edit drug brand. It is in use."
-msgstr ""
-
-msgid "Checking brand data"
-msgstr ""
-
-#, python-format
-msgid ""
-"The brand information you entered:\n"
-"\n"
-" [%s %s]\n"
-"\n"
-"already exists as a drug product."
-msgstr ""
-
-msgid ""
-"You have not selected any substances\n"
-"as drug components.\n"
-"\n"
-"Without components you will not be able to\n"
-"use this drug for documenting patient care.\n"
-"\n"
-"Are you sure you want to save\n"
-"it without components ?"
-msgstr ""
-
-msgid "Cannot save branded drug. Invalid or missing essential input."
-msgstr ""
-
-msgid ""
-"The brand name of the drug.\n"
-"\n"
-"Note: a brand name will need to be linked to\n"
-"one or more components before it can be used,\n"
-"except in the case of fake (generic) vaccines."
-msgstr ""
-
-msgid "The medical aim for consuming this substance."
-msgstr ""
-
-msgid "not tolerated:"
-msgstr ""
-
-msgid "discontinued due to allergy or intolerance"
-msgstr ""
-
-msgid "Documented an allergy"
-msgstr ""
-
-#, python-format
-msgid ""
-"An allergy was documented against the substance:\n"
-"\n"
-"  [%s]\n"
-"\n"
-"This substance was taken with the multi-component brand:\n"
-"\n"
-"  [%s (%s)]\n"
-"\n"
-"Note that ALL components of this brand were discontinued."
-msgstr ""
-
-msgid "disapproved"
-msgstr ""
-
-msgid "Substances consumed by the patient:"
-msgstr ""
-
-msgid "Intake"
-msgstr ""
-
-msgid "Application"
-msgstr ""
-
-msgid "never"
-msgstr ""
-
-#, python-format
-msgid "%s, last confirmed %s\n"
-msgstr ""
-
-#, python-format
-msgid "Comment (%s): %%s\n"
-msgstr ""
-
-msgid "reaction not recorded"
-msgstr ""
-
-msgid "GFR: unknown"
-msgstr ""
-
-msgid "GFR reported by path lab"
-msgstr ""
-
-#, python-format
-msgid ""
-"The patient is already taking\n"
-"\n"
-" %s\n"
-"\n"
-"You will want to adjust the schedule\n"
-"rather than document the intake twice."
-msgstr ""
-
-msgid "Adding substance intake entry"
-msgstr ""
-
-msgid "Input incomplete/invalid for saving as substance intake."
-msgstr ""
-
-#, python-format
-msgid "Discontinued (%s) in the future (now: %s)!"
-msgstr ""
-
-#, python-format
-msgid "Discontinued (%s) before started (%s) !"
-msgstr ""
-
-msgid "Cannot add duplicate of (maybe inactive) substance intake."
-msgstr ""
-
-#, python-format
-msgid ""
-"\n"
-"[%s]\n"
-"\n"
-"It may be prudent to edit (before deletion) the details\n"
-"of this substance intake entry so as to leave behind\n"
-"some indication of why it was deleted.\n"
-msgstr ""
-
-msgid "Deleting medication / substance intake"
-msgstr ""
-
-msgid "Allow editing of substance intake entry before deletion."
-msgstr ""
-
-msgid "Delete immediately without editing first."
-msgstr ""
-
-msgid "&Cancel"
-msgstr ""
-
-msgid "Abort. Do not delete or edit substance intake entry."
-msgstr ""
-
-msgid "Now delete substance intake entry ?"
-msgstr ""
-
-msgid "Adding medication/non-medication substance intake"
-msgstr ""
-
-msgid "Editing medication/non-medication substance intake"
-msgstr ""
-
-msgid "Document an allergy against this substance."
-msgstr ""
-
-msgid "No medication list template configured."
-msgstr ""
-
-msgid "There is no medication list template configured."
-msgstr ""
-
-msgid "Problem loading medication list template."
-msgstr ""
-
-#, python-format
-msgid "Cannot load medication list template [%s - %s]"
-msgstr ""
-
-msgid "generated medication list document"
-msgstr ""
-
-msgid "Select the default prescription template:"
-msgstr ""
-
-msgid "No prescription template configured."
-msgstr ""
-
-msgid "There is no prescription template configured."
-msgstr ""
-
-msgid "Printing prescription"
-msgstr ""
-
-msgid "Problem loading prescription template."
-msgstr ""
-
-#, python-format
-msgid "Cannot load prescription template [%s - %s]"
-msgstr ""
-
-#, fuzzy
-msgid "generated prescription"
-msgstr "Deskripsi"
-
-msgid ""
-"These brands have been prescribed but are not listed\n"
-"in the current medication list of this patient.\n"
-"\n"
-"Please select those you want added to the medication list."
-msgstr ""
-
-msgid "Newly prescribed drugs"
+msgid "Newly prescribed drugs"
 msgstr ""
 
 msgid "Add to medication list"
 msgstr ""
 
-msgid "Duration / Until"
-msgstr ""
+#, fuzzy
+msgid "Timeframe"
+msgstr "Garis Waktu"
 
 #, python-format
 msgid "%s <fake>"
@@ -12722,10 +12967,6 @@ msgid "eGFR:"
 msgstr ""
 
 #, python-format
-msgid "%s%s%s (%s ago)"
-msgstr ""
-
-#, python-format
 msgid "eGFR: %.1f (%s)"
 msgstr ""
 
@@ -12887,14 +13128,21 @@ msgid ""
 "\n"
 " [%s]\n"
 "\n"
-"is not empty. Do you want to use it for saving the\n"
-"export area documents into, nevertheless ?\n"
+"already contains files. Do you still want to save the\n"
+"selected export area documents into that directory ?\n"
 "\n"
-"(this can be useful for including external documents)\n"
+"(this is useful for including the external documents\n"
+" already stored in or below this directory)\n"
 "\n"
 "[NO] will create a subdirectory for you and use that."
 msgstr ""
 
+msgid ""
+"Create descriptive metadata files\n"
+"and save them alongside the\n"
+"selected export area documents ?"
+msgstr ""
+
 #, python-format
 msgid ""
 "Saved to [%s]:\n"
@@ -13097,9 +13345,6 @@ msgstr ""
 msgid "This praxis"
 msgstr ""
 
-msgid "Hospital stay"
-msgstr ""
-
 #, fuzzy
 msgid "Bill receiver"
 msgstr "Pilih acara"
@@ -13136,10 +13381,53 @@ msgstr ""
 msgid "Select the episode under which to file the document ..."
 msgstr ""
 
+msgid "Cannot create new document."
+msgstr ""
+
+msgid "saving document"
+msgstr ""
+
 #, python-format
 msgid "Imported new document from %s."
 msgstr ""
 
+msgid "Successfully saved new document."
+msgstr ""
+
+msgid "Successfully saved the new document."
+msgstr ""
+
+#, python-format
+msgid ""
+"The reference ID for the new document is:\n"
+"\n"
+" <%s>\n"
+"\n"
+"You probably want to write it down on the\n"
+"original documents.\n"
+"\n"
+"If you don't care about the ID you can switch\n"
+"off this message in the GNUmed configuration.\n"
+msgstr ""
+
+msgid "Saving document"
+msgstr ""
+
+#, python-format
+msgid ""
+"Successfully imported files as document.\n"
+"\n"
+"Do you want to delete imported files from the filesystem ?\n"
+"\n"
+" %s\n"
+"\n"
+"Note that temporary files will be deleted anyway."
+msgstr ""
+
+#, fuzzy
+msgid "Removing files"
+msgstr "Berkas gambar"
+
 msgid "Enter a comment on the document."
 msgstr ""
 
@@ -13257,14 +13545,16 @@ msgstr ""
 msgid "Acquiring images"
 msgstr ""
 
-msgid "other documents"
+msgid "directory dropped on client"
 msgstr ""
 
-#, python-format
-msgid "part %s: %s"
+msgid "file dropped on client"
 msgstr ""
 
-msgid "saving document"
+msgid "other documents"
+msgstr ""
+
+msgid "path"
 msgstr ""
 
 msgid "No parts to save. Really save an empty document as a reference ?"
@@ -13309,62 +13599,34 @@ msgstr ""
 msgid "acquiring page"
 msgstr ""
 
-msgid "Choose a file"
-msgstr ""
-
-msgid "all files (Win)"
-msgstr ""
-
-msgid "You must select a part before you can view it."
+msgid "captured by imaging device"
 msgstr ""
 
-msgid "displaying part"
-msgstr ""
-
-#, python-format
-msgid ""
-"Cannot display document part:\n"
-"%s"
+msgid "Choose a file"
 msgstr ""
 
-msgid "You must select a part before you can delete it."
+msgid "all files (Win)"
 msgstr ""
 
-msgid "deleting part"
+msgid "picked from storage media"
 msgstr ""
 
-#, python-format
-msgid ""
-"The part has successfully been removed from the document.\n"
-"\n"
-"Do you also want to permanently delete the file\n"
-"\n"
-" [%s]\n"
-"\n"
-"from which this document part was loaded ?\n"
-"\n"
-"If it is a temporary file for a page you just scanned\n"
-"this makes a lot of sense. In other cases you may not\n"
-"want to lose the file.\n"
-"\n"
-"Pressing [YES] will permanently remove the file\n"
-"from your computer.\n"
+msgid "pasted from clipboard"
 msgstr ""
 
-msgid "Removing document part"
+msgid "No part selected for viewing."
 msgstr ""
 
 #, python-format
 msgid ""
-"Cannot delete part in file [%s].\n"
-"\n"
-"You may not have write access to it."
+"Cannot display document part:\n"
+"%s"
 msgstr ""
 
-msgid "Cannot create new document."
+msgid "displaying part"
 msgstr ""
 
-msgid "Cannot update document metadata."
+msgid "No part selected for removal."
 msgstr ""
 
 msgid "Cannot add document description."
@@ -13373,26 +13635,12 @@ msgstr ""
 msgid "Error setting \"reviewed\" status of new document."
 msgstr ""
 
-msgid "Successfully saved the new document."
-msgstr ""
-
 #, python-format
 msgid ""
-"The reference ID for the new document is:\n"
-"\n"
-" <%s>\n"
+"Source: %s\n"
+"File: %s\n"
 "\n"
-"You probably want to write it down on the\n"
-"original documents.\n"
-"\n"
-"If you don't care about the ID you can switch\n"
-"off this message in the GNUmed configuration."
-msgstr ""
-
-msgid "Saving document"
-msgstr ""
-
-msgid "Successfully saved new document."
+"%s"
 msgstr ""
 
 msgid "Document part does not seem to exist in database !"
@@ -13407,9 +13655,6 @@ msgstr ""
 msgid "Showing documents."
 msgstr ""
 
-msgid "Generated"
-msgstr ""
-
 msgid "Ref #"
 msgstr ""
 
@@ -13661,6 +13906,144 @@ msgstr ""
 msgid "Deleting document"
 msgstr ""
 
+msgid "Study date"
+msgstr ""
+
+#, fuzzy
+msgid "Study time"
+msgstr "Waktu mulai "
+
+msgid "Method"
+msgstr ""
+
+msgid "Body part"
+msgstr ""
+
+#, fuzzy
+msgid "Time"
+msgstr "Garis Waktu"
+
+msgid "Cannot connect without port (try 8042)."
+msgstr ""
+
+#, python-format
+msgid "Connect to [%s] @ port %s as \"%s\"."
+msgstr ""
+
+msgid "Cannot connect to PACS."
+msgstr ""
+
+#, python-format
+msgid "PACS: Orthanc \"%s\" (AET \"%s\", Version %s, DB v%s)"
+msgstr ""
+
+#, python-format
+msgid "GNUmed patient: %s (generic PACS ID)"
+msgstr ""
+
+#, python-format
+msgid "GNUmed patient: \"%(value)s\" @ [%(issuer)s] (stored PACS ID)"
+msgstr ""
+
+msgid "PACS: no patients with matching IDs found"
+msgstr ""
+
+msgid ""
+"PACS: more than one patient with matching IDs found, carefully check studies"
+msgstr ""
+
+#, python-format
+msgid "%s series"
+msgstr ""
+
+#, python-format
+msgid "%%s (%s series)"
+msgstr ""
+
+msgid "no studies"
+msgstr ""
+
+#, python-format
+msgid "%s studies"
+msgstr ""
+
+msgid "Exporting DICOM studies"
+msgstr ""
+
+msgid "Unable to export selected studies."
+msgstr ""
+
+#, python-format
+msgid ""
+"The DICOM studies are %s in compressed size.\n"
+"\n"
+"Really copy to export area ?"
+msgstr ""
+
+#, python-format
+msgid "DICOM studies of [%s] from Orthanc PACS \"%s\" (AET \"%s\")"
+msgstr ""
+
+msgid "Select the directory into which to save the DICOM studies."
+msgstr ""
+
+msgid "Saving DICOM studies"
+msgstr ""
+
+msgid "Unable to save selected studies."
+msgstr ""
+
+msgid "Unable to export studies."
+msgstr ""
+
+#, python-format
+msgid "All DICOM studies of [%s] from Orthanc PACS \"%s\" (AET \"%s\")"
+msgstr ""
+
+#, python-format
+msgid "%s%s images"
+msgstr ""
+
+msgid "Select the directory from which to recursively upload DICOM files."
+msgstr ""
+
+msgid "Delete the uploaded DICOM files now ?"
+msgstr ""
+
+msgid ""
+"Some files have not been uploaded.\n"
+"\n"
+"Do you want to delete those DICOM files which have been sent to the PACS "
+"successfully ?"
+msgstr ""
+
+msgid "Uploading DICOM files"
+msgstr ""
+
+msgid "Editing Orthanc content"
+msgstr ""
+
+msgid "Patient ID"
+msgstr ""
+
+msgid "Birth date"
+msgstr ""
+
+msgid "Orthanc"
+msgstr ""
+
+msgid "Modifying patient ID"
+msgstr ""
+
+#, python-format
+msgid ""
+"Really modify %s patient(s) to have the new patient ID\n"
+"\n"
+" [%s]\n"
+"\n"
+"stored in the Orthanc DICOM server ?"
+msgstr ""
+
 #, python-format
 msgid "You are logged in as %s%s.%s (%s). DB account <%s>."
 msgstr ""
@@ -13719,6 +14102,12 @@ msgstr ""
 msgid "Select the measurements panel to show in the medications plugin."
 msgstr ""
 
+msgid "General measurements"
+msgstr ""
+
+msgid "Select the measurements panel to show in the top pane."
+msgstr ""
+
 msgid "Review dialog"
 msgstr ""
 
@@ -13809,6 +14198,12 @@ msgstr ""
 msgid "Configure auto-opening editors for recent problems."
 msgstr ""
 
+msgid "SOAP fields"
+msgstr ""
+
+msgid "Configure SOAP editor - individual SOAP fields vs text editor like"
+msgstr ""
+
 msgid "Progress notes handling ..."
 msgstr ""
 
@@ -13830,6 +14225,9 @@ msgstr ""
 msgid "URL for measurements encyclopedia."
 msgstr ""
 
+msgid "Drug data source"
+msgstr ""
+
 msgid "Select the drug data source."
 msgstr ""
 
@@ -14193,6 +14591,12 @@ msgstr ""
 msgid "Manage dynamic hints suppressed in this patient."
 msgstr ""
 
+msgid "Substance abuse"
+msgstr ""
+
+msgid "Manage substance abuse documentation of this patient."
+msgstr ""
+
 msgid "&Add / Edit ..."
 msgstr ""
 
@@ -14214,26 +14618,49 @@ msgstr ""
 msgid "Show a high-level statistic summary of the EMR."
 msgstr ""
 
-msgid "Text document"
+msgid "Journal (encounters) to file"
 msgstr ""
 
-msgid "Export the EMR of the active patient into a text file"
+msgid ""
+"Save the EMR of the active patient as a chronological journal into a text "
+"file"
 msgstr ""
 
-msgid "Journal"
+msgid "Journal (encounters) to export area"
 msgstr ""
 
 msgid ""
-"Export the EMR of the active patient as a chronological journal into a text "
-"file"
+"Copy EMR of the active patient as a chronological journal into export area"
+msgstr ""
+
+msgid "Journal (mod time) to file"
+msgstr ""
+
+msgid ""
+"Save the EMR of the active patient as journal by last modification time into "
+"a text file"
+msgstr ""
+
+msgid "Journal (mod time) to export area"
+msgstr ""
+
+msgid ""
+"Copy EMR of the active patient as journal by last modification time into "
+"export area"
+msgstr ""
+
+msgid "Text document"
+msgstr ""
+
+msgid "Save the EMR of the active patient into a text file"
 msgstr ""
 
 msgid "MEDISTAR import format"
 msgstr ""
 
 msgid ""
-"GNUmed -> MEDISTAR. Export progress notes of active patient's active "
-"encounter into a text file."
+"GNUmed -> MEDISTAR. Save progress notes of active patient's active encounter "
+"into a text file."
 msgstr ""
 
 msgid "Export as ..."
@@ -14404,19 +14831,42 @@ msgstr ""
 msgid "Show log file"
 msgstr ""
 
-msgid "Show the log file in text viewer."
+msgid "Show log file in text viewer."
 msgstr ""
 
 msgid "Backup log file"
 msgstr ""
 
-msgid "Backup the content of the log to another file."
+msgid "Backup content of the log to another file."
 msgstr ""
 
 msgid "Email log file"
 msgstr ""
 
-msgid "Send the log file to the authors for help."
+msgid "Send log file to the authors for help."
+msgstr ""
+
+#, fuzzy
+msgid "Browse tmp dir"
+msgstr "Deskripsi"
+
+#, python-format
+msgid "Browse temporary directory [%s]."
+msgstr ""
+
+#, fuzzy
+msgid "Browse work dir"
+msgstr "Deskripsi"
+
+#, python-format
+msgid "Browse user working directory [%s]."
+msgstr ""
+
+msgid "Browse internal work dir"
+msgstr ""
+
+#, python-format
+msgid "Browse internal working directory [%s]."
 msgstr ""
 
 msgid "Bug tracker"
@@ -14759,6 +15209,20 @@ msgid "No, only auto-open one editor for a new, unassociated problem."
 msgstr ""
 
 msgid ""
+"When editing progress notes, do you want GNUmed to\n"
+"show individual fields for each of the SOAP categories\n"
+"or do you want to use a text-editor like field for\n"
+"all SOAP categories which can then be set per line\n"
+"of input ?"
+msgstr ""
+
+msgid "Yes, show a dedicated field per SOAP category."
+msgstr ""
+
+msgid "No, use one field for all SOAP categories."
+msgstr ""
+
+msgid ""
 "When a patient is activated GNUmed can\n"
 "be told to switch to a specific plugin.\n"
 "\n"
@@ -15075,487 +15539,892 @@ msgid "ACS risk assessment calculator not configured."
 msgstr ""
 
 #, python-format
-msgid "Cannot run [%s] !"
+msgid "Cannot run [%s] !"
+msgstr ""
+
+#, python-format
+msgid "There was a problem accessing the [arriba] result in [%s] !"
+msgstr ""
+
+msgid "[-9999]: <access violation test error>"
+msgstr ""
+
+msgid ""
+"This is a deliberate AccessDenied exception thrown to test the handling of "
+"access violations by means of a decorator."
+msgstr ""
+
+msgid "testing access check for non-existant <admin> role"
+msgstr ""
+
+msgid ""
+"This is a deliberate AccessDenied exception. You should not see this message "
+"because the role is checked in a decorator."
+msgstr ""
+
+msgid "pgAdmin III not found."
+msgstr ""
+
+msgid "Error reloading hook script."
+msgstr ""
+
+msgid "Save current log as..."
+msgstr ""
+
+msgid "log files"
+msgstr ""
+
+#, python-format
+msgid "Log file backed up as [%s]."
+msgstr ""
+
+msgid "Cannot start new encounter. No active patient."
+msgstr ""
+
+msgid "Cannot add health issue. No active patient."
+msgstr ""
+
+msgid "Cannot add episode. No active patient."
+msgstr ""
+
+msgid "Cannot add medication. No active patient."
+msgstr ""
+
+msgid "Cannot add allergy. No active patient."
+msgstr ""
+
+msgid "Cannot manage performed procedures. No active patient."
+msgstr ""
+
+msgid "Cannot manage hospitalizations. No active patient."
+msgstr ""
+
+msgid "Cannot manage external care. No active patient."
+msgstr ""
+
+msgid "Cannot edit occupation. No active patient."
+msgstr ""
+
+msgid "manage vaccinations"
+msgstr ""
+
+msgid "Cannot add vaccinations. No active patient."
+msgstr ""
+
+msgid "manage family history"
+msgstr ""
+
+msgid "Cannot manage family history. No active patient."
+msgstr ""
+
+msgid "Cannot manage measurements. No active patient."
+msgstr ""
+
+msgid "calculate EDC"
+msgstr ""
+
+msgid "manage suppressed hints"
+msgstr ""
+
+msgid "Cannot manage suppressed hints. No active patient."
+msgstr ""
+
+msgid "Cannot manage smoking status. No active patient."
+msgstr ""
+
+msgid "Cannot show EMR summary. No active patient."
+msgstr ""
+
+msgid "EMR Summary"
+msgstr ""
+
+msgid "Cannot export EMR journal by last modification time. No active patient."
+msgstr ""
+
+msgid "journal_by_last_mod_time"
+msgstr ""
+
+msgid "Save patient's EMR journal as..."
+msgstr ""
+
+msgid "Error exporting patient EMR as journal by last modification time."
+msgstr ""
+
+msgid "EMR journal export"
+msgstr ""
+
+#, python-format
+msgid ""
+"Successfully exported EMR as journal by last modification time into file "
+"[%s]."
+msgstr ""
+
+msgid "Cannot export EMR journal. No active patient."
+msgstr ""
+
+msgid "emr-journal"
+msgstr ""
+
+msgid "Error exporting patient EMR as chronological journal."
+msgstr ""
+
+#, python-format
+msgid "Successfully exported EMR as chronological journal into file [%s]."
+msgstr ""
+
+msgid "EMR journal by last modification time"
+msgstr ""
+
+msgid "EMR journal by encounter"
+msgstr ""
+
+msgid "Cannot add tag to person. No active patient."
+msgstr ""
+
+#, python-format
+msgid "Edit the comment on tag [%s]"
+msgstr ""
+
+msgid "Editing tag comment"
+msgstr ""
+
+msgid "Cannot export patient as GDT. No active patient."
+msgstr ""
+
+msgid "Exported demographics as GDT to clipboard."
+msgstr ""
+
+msgid "Cannot export patient as VCARD. No active patient."
+msgstr ""
+
+msgid "Exported demographics as VCARD to clipboard."
+msgstr ""
+
+msgid "Cannot export patient as XML (LinuxMedNews). No active patient."
+msgstr ""
+
+#, python-format
+msgid "Exported demographics to XML file [%s]."
+msgstr ""
+
+#, python-format
+msgid "Exported demographics to GDT file [%s]."
+msgstr ""
+
+#, python-format
+msgid "Exported demographics to VCARD file [%s]."
+msgstr ""
+
+msgid "Cannot add staff member. No active patient."
+msgstr ""
+
+msgid "Cannot delete patient. No patient active."
+msgstr ""
+
+msgid ""
+"You have to manually close this window to finalize shutting down GNUmed."
+msgstr ""
+
+msgid "This is so that you can inspect the console output at your leisure."
+msgstr ""
+
+msgid "no patient"
+msgstr ""
+
+#, python-format
+msgid "Saved screenshot to file [%s]."
+msgstr ""
+
+msgid "Python version check"
+msgstr ""
+
+#, python-format
+msgid ""
+"You are running Python version\n"
+" %s\n"
+"\n"
+"However, GNUmed wants Python 2.7 to\n"
+"facilitate migration to Python 3.\n"
+"\n"
+"Please upgrade your Python interpreter !"
+msgstr ""
+
+msgid "GNUmed client"
+msgstr ""
+
+msgid "GNUmed stdout/stderr window"
+msgstr ""
+
+msgid "redirecting STDOUT/STDERR to this log window"
+msgstr ""
+
+#, python-format
+msgid ""
+"The database account [%s] cannot be used as a\n"
+"staff member login for GNUmed. There was an\n"
+"error retrieving staff details for it.\n"
+"\n"
+"Please ask your administrator for help.\n"
+msgstr ""
+
+msgid "Checking access permissions"
+msgstr ""
+
+#, python-format
+msgid "Database <%s> on <%s>"
+msgstr ""
+
+#, python-format
+msgid "Branch \"%s\" of praxis \"%s\"\n"
+msgstr ""
+
+msgid "Verifying database"
+msgstr ""
+
+msgid "Connect"
+msgstr ""
+
+msgid "Yes, connect to this database."
+msgstr ""
+
+msgid "Disconnect"
+msgstr ""
+
+msgid "No, do not connect to this database."
+msgstr ""
+
+#, python-format
+msgid ""
+"Cannot find configuration file in any of:\n"
+"\n"
+" %s\n"
+"You may need to use the comand line option\n"
+"\n"
+"\t--conf-file=<FILE>"
+msgstr ""
+
+msgid "Checking configuration files"
+msgstr ""
+
+msgid "GNUmed startup"
+msgstr ""
+
+#, python-format
+msgid ""
+"The currently selected database language ('%s') does\n"
+"not match the current system language ('%s').\n"
+"\n"
+"Do you want to set the database language to '%s' ?\n"
+msgstr ""
+
+msgid "Checking database language settings"
+msgstr ""
+
+#, python-format
+msgid "Set your database language to [%s]."
+msgstr ""
+
+msgid "Don't set"
+msgstr ""
+
+msgid "Do not set your database language now."
+msgstr ""
+
+msgid "Remember to ignore language mismatch"
+msgstr ""
+
+#, python-format
+msgid ""
+"Checking this will make GNUmed remember your decision\n"
+"until the system language is changed.\n"
+"\n"
+"You can also reactivate this inquiry by removing the\n"
+"corresponding \"ignore\" option from the configuration file\n"
+"\n"
+" [%s]"
+msgstr ""
+
+msgid "generic activity"
+msgstr ""
+
+msgid "Access denied"
+msgstr ""
+
+#, python-format
+msgid ""
+"Your account is not set up to access this part of GNUmed:\n"
+"\n"
+"  [%s]"
+msgstr ""
+
+msgid "Save timeline as SVG image under..."
+msgstr ""
+
+#, fuzzy
+msgid "timeline image"
+msgstr "Garis Waktu"
+
+#, fuzzy
+msgid "timeline data"
+msgstr "Garis Waktu"
+
+msgid "Cannot change notebook tabs. No active patient."
+msgstr ""
+
+msgid "add plugin ..."
+msgstr ""
+
+msgid "Cannot activate Allergy Manager. No active patient."
+msgstr ""
+
+msgid "RR ?"
+msgstr ""
+
+#, python-format
+msgid "BMI %s"
+msgstr ""
+
+msgid "BMI ?"
+msgstr ""
+
+msgid "GFR ?"
+msgstr ""
+
+#, python-format
+msgid "GFR %s"
+msgstr ""
+
+#, python-format
+msgid "?EDC %s"
+msgstr ""
+
+#, python-format
+msgid "EDC %s"
+msgstr ""
+
+msgid "<Age>"
+msgstr ""
+
+msgid "no patient selected"
+msgstr ""
+
+#, python-format
+msgid "Gender: %s (%s) - %s\n"
+msgstr ""
+
+#, python-format
+msgid "Born: %s\n"
 msgstr ""
 
 #, python-format
-msgid "There was a problem accessing the [arriba] result in [%s] !"
+msgid "Died: %s\n"
 msgstr ""
 
-msgid "[-9999]: <access violation test error>"
+#, python-format
+msgid "At age: %s\n"
 msgstr ""
 
-msgid ""
-"This is a deliberate AcessDenied exception thrown to test the handling of "
-"access violations by means of a decorator."
+msgid " (date of birth and age are estimated)\n"
 msgstr ""
 
-msgid "testing access check for non-existant <admin> role"
+#, python-format
+msgid "%(sex)s  %(dob)s (%(age)s today !)"
 msgstr ""
 
 msgid ""
-"This is a deliberate AcessDenied exception. You should not see this message "
-"because the role is checked in a decorator."
+"\n"
+"Today is the patient's birthday !\n"
+"\n"
 msgstr ""
 
-msgid "pgAdmin III not found."
+#, python-format
+msgid "Birthday: %s ago\n"
 msgstr ""
 
-msgid "Error reloading hook script."
+#, python-format
+msgid "Birthday: in %s\n"
 msgstr ""
 
-msgid "Save current log as..."
+#, python-format
+msgid "Age: %s\n"
 msgstr ""
 
-msgid "log files"
+#, python-format
+msgid "last confirmed %s\n"
 msgstr ""
 
 #, python-format
-msgid "Log file backed up as [%s]."
+msgid "Comment (%s): %%s"
 msgstr ""
 
-msgid "Cannot start new encounter. No active patient."
+#, python-format
+msgid " - expires %s"
 msgstr ""
 
-msgid "Cannot add health issue. No active patient."
+#, python-format
+msgid ""
+"Due for %s (since %s%s):\n"
+"%s%s\n"
+"Patient: %s\n"
+"Reminder by: %s"
 msgstr ""
 
-msgid "Cannot add episode. No active patient."
+msgid "Clinical reminder"
 msgstr ""
 
-msgid "Cannot add medication. No active patient."
+msgid "Adding automatic dynamic hint"
 msgstr ""
 
-msgid "Cannot add allergy. No active patient."
+msgid "Editing automatic dynamic hint"
 msgstr ""
 
-msgid "Cannot manage performed procedures. No active patient."
+msgid "Deleting automatic dynamic hint"
 msgstr ""
 
-msgid "Cannot manage hospitalizations. No active patient."
+#, python-format
+msgid ""
+"Really delete this dynamic hint ?\n"
+"\n"
+" [%s]"
 msgstr ""
 
-msgid "Cannot manage external care. No active patient."
+msgid "deleting a dynamic hint"
 msgstr ""
 
-msgid "Cannot edit occupation. No active patient."
+msgid ""
+"\n"
+"Dynamic hints registered with GNUmed.\n"
 msgstr ""
 
-msgid "manage vaccinations"
+msgid "Showing dynamic hints."
 msgstr ""
 
-msgid "Cannot add vaccinations. No active patient."
+msgid "Hint"
 msgstr ""
 
-msgid "Cannot manage family history. No active patient."
+msgid "Browse and install automatic dynamic hints data packs"
 msgstr ""
 
-msgid "Cannot manage measurements. No active patient."
+#, python-format
+msgid "By: %s"
 msgstr ""
 
-msgid "calculate EDC"
+msgid "No entry in field <Source>."
 msgstr ""
 
-msgid "manage suppressed hints"
+msgid "No entry in field <Conditions>."
 msgstr ""
 
-msgid "Cannot manage suppressed hints. No active patient."
-msgstr ""
+#, fuzzy
+msgid "No entry in field <Description>."
+msgstr "Deskripsi"
 
-msgid "Cannot show EMR summary. No active patient."
+msgid "No entry in field <Title>."
 msgstr ""
 
-msgid "EMR Summary"
+msgid "creating a new dynamic hint"
 msgstr ""
 
-msgid "Cannot export EMR journal. No active patient."
+msgid "updating an existing dynamic hint"
 msgstr ""
 
-msgid "Save patient's EMR journal as..."
+msgid "Deleting suppressed dynamic hint"
 msgstr ""
 
-msgid "Error exporting patient EMR as chronological journal."
+#, python-format
+msgid ""
+"Really delete the suppression of this dynamic hint ?\n"
+"\n"
+" [%s]"
 msgstr ""
 
-msgid "EMR journal export"
+msgid ""
+"\n"
+"Dynamic hints suppressed in this patient.\n"
 msgstr ""
 
-#, python-format
-msgid "Successfully exported EMR as chronological journal into file [%s]."
+msgid "Showing suppressed dynamic hints."
 msgstr ""
 
-msgid "Cannot add tag to person. No active patient."
+msgid "Rationale"
 msgstr ""
 
-#, python-format
-msgid "Edit the comment on tag [%s]"
+msgid "Manage hints"
 msgstr ""
 
-msgid "Editing tag comment"
+msgid "Manage automatic dynamic hints"
 msgstr ""
 
-msgid "Cannot export patient as GDT. No active patient."
+msgid "Cannot delete family history item."
 msgstr ""
 
-msgid "Exported demographics as GDT to clipboard."
+msgid "Family history of this patient."
 msgstr ""
 
-msgid "Cannot export patient as VCARD. No active patient."
+msgid "Showing family history."
 msgstr ""
 
-msgid "Exported demographics as VCARD to clipboard."
+msgid "Fatal"
 msgstr ""
 
-msgid "Cannot export patient as XML (LinuxMedNews). No active patient."
+msgid "Noted"
 msgstr ""
 
-#, python-format
-msgid "Exported demographics to XML file [%s]."
+msgid "Died"
 msgstr ""
 
-#, python-format
-msgid "Exported demographics to GDT file [%s]."
+msgid "Adding family history"
 msgstr ""
 
-#, python-format
-msgid "Exported demographics to VCARD file [%s]."
+msgid "Editing family history"
 msgstr ""
 
-msgid "Cannot add staff member. No active patient."
+msgid ""
+"\n"
+"Please select the default drug data source from the list below.\n"
+"\n"
+"Note that to actually use it you need to have the database installed, too."
 msgstr ""
 
-msgid "Cannot delete patient. No patient active."
+msgid "Configuring default drug data source"
 msgstr ""
 
-msgid ""
-"You have to manually close this window to finalize shutting down GNUmed."
+msgid "No default drug database configured."
 msgstr ""
 
-msgid "This is so that you can inspect the console output at your leisure."
+msgid "There is no default drug database configured."
 msgstr ""
 
-msgid "no patient"
+msgid "Jumping to drug database"
 msgstr ""
 
-#, python-format
-msgid "Saved screenshot to file [%s]."
+msgid "Cannot import drugs from IFAP into chart without chart."
 msgstr ""
 
-msgid "GNUmed client"
+#, python-format
+msgid "Cannot call IFAP via [%s]."
 msgstr ""
 
-msgid "GNUmed stdout/stderr window"
+#, python-format
+msgid "Cannot create IFAP <-> GNUmed transfer file [%s]."
 msgstr ""
 
-msgid "redirecting STDOUT/STDERR to this log window"
+msgid "Current medication"
 msgstr ""
 
-#, python-format
 msgid ""
-"The database account [%s] cannot be used as a\n"
-"staff member login for GNUmed. There was an\n"
-"error retrieving staff details for it.\n"
 "\n"
-"Please ask your administrator for help.\n"
+"The ATC codes as known to GNUmed.\n"
 msgstr ""
 
-msgid "Checking access permissions"
+msgid "Showing ATC codes."
 msgstr ""
 
-#, python-format
-msgid "Database <%s> on <%s>"
+msgid "Choose an ATC import config file"
 msgstr ""
 
-#, python-format
-msgid "Branch \"%s\" of praxis \"%s\"\n"
+msgid "config files"
 msgstr ""
 
-msgid "Verifying database"
+msgid "importing ATC reference data"
 msgstr ""
 
-msgid "Connect"
+msgid "Successfully imported ATC reference data."
 msgstr ""
 
-msgid "Yes, connect to this database."
+msgid "Importing ATC reference data failed."
 msgstr ""
 
-msgid "Disconnect"
+msgid "Select an ATC (Anatomical-Therapeutic-Chemical) code."
 msgstr ""
 
-msgid "No, do not connect to this database."
+msgid "Cannot edit this substance. It is in use."
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot find configuration file in any of:\n"
-"\n"
-" %s\n"
-"You may need to use the comand line option\n"
-"\n"
-"\t--conf-file=<FILE>"
+msgid "Adding new consumable substance"
 msgstr ""
 
-msgid "Checking configuration files"
+msgid "Editing consumable substance"
 msgstr ""
 
-msgid "GNUmed startup"
+msgid "Cannot delete this substance. It is in use."
 msgstr ""
 
-#, python-format
 msgid ""
-"The currently selected database language ('%s') does\n"
-"not match the current system language ('%s').\n"
 "\n"
-"Do you want to set the database language to '%s' ?\n"
+"These are the consumable substances registered with GNUmed.\n"
 msgstr ""
 
-msgid "Checking database language settings"
+msgid "Import"
 msgstr ""
 
-msgid "Set"
+msgid "Import consumable substances from a drug database."
 msgstr ""
 
-#, python-format
-msgid "Set your database language to [%s]."
+msgid "Cannot save consumable substance. Missing essential input."
 msgstr ""
 
-msgid "Don't set"
+#, python-format
+msgid "Cannot save consumable substance. %s"
 msgstr ""
 
-msgid "Do not set your database language now."
+msgid "The substance with optional strength."
 msgstr ""
 
-msgid "Remember to ignore language mismatch"
+msgid "Cannot remove this component from the drug. It is in use."
 msgstr ""
 
-#, python-format
 msgid ""
-"Checking this will make GNUmed remember your decision\n"
-"until the system language is changed.\n"
-"\n"
-"You can also reactivate this inquiry by removing the\n"
-"corresponding \"ignore\" option from the configuration file\n"
 "\n"
-" [%s]"
+"These are the components in the drug brands known to GNUmed.\n"
 msgstr ""
 
-msgid "generic activity"
+msgid "Showing drug brand components."
 msgstr ""
 
-msgid "Access denied"
+msgid "Adding new drug component"
 msgstr ""
 
-#, python-format
-msgid ""
-"Your account is not set up to access this part of GNUmed:\n"
-"\n"
-"  [%s]"
+msgid "Editing drug component"
 msgstr ""
 
-msgid "Save timeline as SVG image under..."
+msgid "Cannot edit drug component. It is in use."
 msgstr ""
 
-#, fuzzy
-msgid "timeline image"
-msgstr "Garis Waktu"
+msgid "Cannot save drug component. Invalid or missing essential input."
+msgstr ""
 
-#, fuzzy
-msgid "timeline data"
-msgstr "Garis Waktu"
+msgid "A drug component with optional strength."
+msgstr ""
 
-msgid "Cannot change notebook tabs. No active patient."
+msgid "Editing drug"
 msgstr ""
 
-msgid "add plugin ..."
+#, python-format
+msgid ""
+"Cannot edit the branded drug product\n"
+"\n"
+" \"%s\" (%s)\n"
+"\n"
+"because it is currently taken by patients.\n"
 msgstr ""
 
-msgid "Cannot activate Allergy Manager. No active patient."
+msgid "Adding new drug brand"
 msgstr ""
 
-msgid "<Age>"
+msgid "Editing drug brand"
 msgstr ""
 
-msgid "no patient selected"
+msgid "Manage consumable substances"
 msgstr ""
 
-#, python-format
-msgid "Gender: %s (%s) - %s\n"
+msgid "not in use"
 msgstr ""
 
 #, python-format
-msgid "Born: %s\n"
+msgid "ATC: %s\n"
 msgstr ""
 
-#, python-format
-msgid "Died: %s\n"
+msgid "Editing medication"
 msgstr ""
 
 #, python-format
-msgid "At age: %s\n"
+msgid ""
+"Cannot edit the medication\n"
+"\n"
+" \"%s\" (%s)\n"
+"\n"
+"because it is a vaccine. Please edit it\n"
+"from the vaccine management section !\n"
 msgstr ""
 
-msgid " (date of birth and age are estimated)\n"
+msgid "Deleting medication"
 msgstr ""
 
 #, python-format
-msgid "%(sex)s  %(dob)s (%(age)s today !)"
+msgid ""
+"Cannot delete the medication\n"
+"\n"
+" \"%s\" (%s)\n"
+"\n"
+"because it is a vaccine. Please delete it\n"
+"from the vaccine management section !\n"
 msgstr ""
 
 msgid ""
 "\n"
-"Today is the patient's birthday !\n"
-"\n"
+"These are the drug brands known to GNUmed.\n"
 msgstr ""
 
-#, python-format
-msgid "Birthday: %s ago\n"
+msgid "Showing branded drugs."
 msgstr ""
 
-#, python-format
-msgid "Birthday: in %s\n"
+msgid "Import substances and brands from a drug database."
 msgstr ""
 
-#, python-format
-msgid "Age: %s\n"
+msgid "Managing components of a drug"
 msgstr ""
 
 #, python-format
-msgid "last confirmed %s\n"
+msgid ""
+"Cannot manage the components of the branded drug product\n"
+"\n"
+" \"%s\" (%s)\n"
+"\n"
+"because it is currently taken by patients.\n"
 msgstr ""
 
-#, python-format
-msgid "Comment (%s): %%s"
+msgid "Pick the substances which are components of this drug."
 msgstr ""
 
-#, python-format
-msgid " - expires %s"
+msgid "Components of drug"
 msgstr ""
 
 #, python-format
 msgid ""
-"Due for %s (since %s%s):\n"
-"%s%s\n"
-"Patient: %s\n"
-"Reminder by: %s"
-msgstr ""
-
-msgid "Clinical reminder"
+"Adjust the components of \"%s\"\n"
+"\n"
+"The drug must contain at least one component. Any given\n"
+"substance can only be included once per drug."
 msgstr ""
 
-msgid "Adding automatic dynamic hint"
+msgid "Managing components of a drug ..."
 msgstr ""
 
-msgid "Editing automatic dynamic hint"
+msgid "Cannot edit drug brand. It is in use."
 msgstr ""
 
-msgid "Deleting automatic dynamic hint"
+msgid "Checking brand data"
 msgstr ""
 
 #, python-format
 msgid ""
-"Really delete this dynamic hint ?\n"
+"The brand information you entered:\n"
 "\n"
-" [%s]"
-msgstr ""
-
-msgid "deleting a dynamic hint"
+" [%s %s]\n"
+"\n"
+"already exists as a drug product."
 msgstr ""
 
 msgid ""
+"You have not selected any substances\n"
+"as drug components.\n"
 "\n"
-"Dynamic hints registered with GNUmed.\n"
+"Without components you will not be able to\n"
+"use this drug for documenting patient care.\n"
+"\n"
+"Are you sure you want to save\n"
+"it without components ?"
 msgstr ""
 
-msgid "Showing dynamic hints."
+msgid "Cannot save branded drug. Invalid or missing essential input."
 msgstr ""
 
-msgid "Hint"
+msgid ""
+"The brand name of the drug.\n"
+"\n"
+"Note: a brand name will need to be linked to\n"
+"one or more components before it can be used,\n"
+"except in the case of fake (generic) vaccines."
 msgstr ""
 
-msgid "Browse and install automatic dynamic hints data packs"
+msgid "No EMR data loaded."
 msgstr ""
 
-#, python-format
-msgid "By: %s"
+msgid "EMR text dump"
 msgstr ""
 
-msgid "No entry in field <Source>."
+msgid "Currently there is no active patient. Cannot retrieve EMR text."
 msgstr ""
 
-msgid "No entry in field <Conditions>."
+msgid "SOAP Editor Actions:"
 msgstr ""
 
 #, fuzzy
-msgid "No entry in field <Description>."
-msgstr "Deskripsi"
+msgid "&Sort lines"
+msgstr "Garis Waktu"
 
-msgid "No entry in field <Title>."
+msgid "Sort lines by SOAP category"
 msgstr ""
 
-msgid "creating a new dynamic hint"
+msgid "e&Xpand keyword"
 msgstr ""
 
-msgid "updating an existing dynamic hint"
+msgid "Expand keyword / macro"
 msgstr ""
 
-msgid "Deleting suppressed dynamic hint"
+#, fuzzy
+msgid "as &Subjective"
+msgstr "soap_Subjek"
+
+msgid "Set line to category \"Subjective\""
 msgstr ""
 
-#, python-format
-msgid ""
-"Really delete the suppression of this dynamic hint ?\n"
-"\n"
-" [%s]"
+#, fuzzy
+msgid "as &Objective"
+msgstr "soap_Objek"
+
+msgid "Set line to category \"Objective\""
 msgstr ""
 
-msgid ""
-"\n"
-"Dynamic hints suppressed in this patient.\n"
+#, fuzzy
+msgid "as &Assessment"
+msgstr "soap_Penilaian"
+
+msgid "Set line to category \"Assessment\""
 msgstr ""
 
-msgid "Showing suppressed dynamic hints."
+msgid "as &Plan"
 msgstr ""
 
-msgid "Rationale"
+msgid "Set line to category \"Plan\""
 msgstr ""
 
-msgid "Manage hints"
+msgid "as &Unspecified"
 msgstr ""
 
-msgid "Manage automatic dynamic hints"
+msgid "Set line to category \"unspecified\""
 msgstr ""
 
-msgid "Cannot delete family history item."
+#, fuzzy
+msgid "as ad&Ministrative"
+msgstr "soap_Administratif"
+
+msgid "Set line to category \"administrative\""
 msgstr ""
 
-msgid "Family history of this patient."
+msgid "→ &Clipboard"
 msgstr ""
 
-msgid "Showing family history."
+msgid "Copy line to clipboard"
 msgstr ""
 
-msgid "Fatal"
+msgid "→ +Clipboard+"
 msgstr ""
 
-msgid "Noted"
+msgid "Add line to clipboard"
 msgstr ""
 
-msgid "Died"
+msgid "Copy content to clipboard"
 msgstr ""
 
-msgid "Adding family history"
+msgid "Add content to clipboard"
 msgstr ""
 
-msgid "Editing family history"
+msgid "Copy selection to clipboard"
 msgstr ""
 
-msgid "No EMR data loaded."
+msgid "Add selection to clipboard"
 msgstr ""
 
-msgid "EMR text dump"
+msgid "&Line ..."
 msgstr ""
 
-msgid "Currently there is no active patient. Cannot retrieve EMR text."
+#, fuzzy
+msgid "&Text ..."
+msgstr "Teks"
+
+msgid "&Region ..."
 msgstr ""
 
 msgid "Show HL7 file:"
@@ -15567,6 +16436,10 @@ msgstr ""
 msgid "Extracting HL7 from XML file"
 msgstr ""
 
+#, python-format
+msgid "Unwrapped HL7 into [%s] from [%s]."
+msgstr ""
+
 msgid "Select HL7 file for staging:"
 msgstr ""
 
@@ -15590,6 +16463,10 @@ msgid ""
 " %s"
 msgstr ""
 
+#, python-format
+msgid "Staged HL7 from [%s]."
+msgstr ""
+
 msgid "Importing HL7 data"
 msgstr ""
 
@@ -15634,9 +16511,6 @@ msgstr ""
 msgid "Identification"
 msgstr "Informasi"
 
-msgid "Show"
-msgstr ""
-
 msgid "Show formatted HL7"
 msgstr ""
 
@@ -15682,6 +16556,17 @@ msgstr ""
 msgid "Plot current selection"
 msgstr ""
 
+msgid ""
+"Select the measurements panel to show in the top pane for continuous "
+"monitoring."
+msgstr ""
+
+msgid "Lab panel"
+msgstr ""
+
+msgid "Configuring continuous monitoring measurements panel"
+msgstr ""
+
 msgid "No default Gnuplot script template selected."
 msgstr ""
 
@@ -15704,13 +16589,27 @@ msgstr ""
 msgid "Cannot plot without a plot script."
 msgstr ""
 
-#, fuzzy
-msgid "Time"
-msgstr "Garis Waktu"
-
 msgid "Result"
 msgstr ""
 
+msgid "Perform on selected results:"
+msgstr ""
+
+msgid "Review and &sign"
+msgstr ""
+
+msgid "Export to &file"
+msgstr ""
+
+msgid "Export to &clipboard"
+msgstr ""
+
+msgid "Panels"
+msgstr ""
+
+msgid "List"
+msgstr ""
+
 msgid ""
 "lab_grid_date_format::%Y\n"
 "%b %d"
@@ -15785,18 +16684,6 @@ msgstr ""
 msgid "All: by &Day"
 msgstr ""
 
-msgid "Perform on selected results:"
-msgstr ""
-
-msgid "Review and &sign"
-msgstr ""
-
-msgid "Export to &file"
-msgstr ""
-
-msgid "Export to &clipboard"
-msgstr ""
-
 #, python-format
 msgid "%s results selected. Too many to list individually."
 msgstr ""
@@ -15970,6 +16857,10 @@ msgstr ""
 msgid "EMR Actions:"
 msgstr ""
 
+#, fuzzy
+msgid "Print EMR"
+msgstr "Mencetak"
+
 msgid "Create health issue"
 msgstr ""
 
@@ -16118,11 +17009,41 @@ msgstr ""
 msgid "&New notes %s"
 msgstr ""
 
+msgid "Find text in EMR Journal"
+msgstr ""
+
+#, fuzzy
+msgid "Modified"
+msgstr "perubahan catatan"
+
+msgid "Clinical time"
+msgstr ""
+
+msgid "Who / When"
+msgstr ""
+
+#, python-format
 msgid ""
-"An error occurred while retrieving the EMR\n"
-"in journal form for the active patient.\n"
+"Chart entry: %s       [#%s in %s]\n"
+" Modified: %s by %s (%s rev %s)\n"
 "\n"
-"Please check the log file for details."
+"Health issue: %s%s\n"
+"Episode: %s%s\n"
+"Encounter: %s%s"
+msgstr ""
+
+#, python-format
+msgid ""
+"%s\n"
+"\n"
+"                        rev %s (%s) by %s in <%s>"
+msgstr ""
+
+#, python-format
+msgid ""
+"%s\n"
+"%s\n"
+"%s"
 msgstr ""
 
 msgid "Editing tag"
@@ -16249,18 +17170,15 @@ msgid ""
 "%s\n"
 msgstr ""
 
-msgid "This patient DID receive care."
+msgid "This patient DID receive care here."
 msgstr ""
 
-msgid "This person did NOT receive care."
+msgid "This person did NOT receive care here."
 msgstr ""
 
 msgid "Disabling person"
 msgstr ""
 
-msgid "Disabling patient"
-msgstr ""
-
 msgid "Type or select a last name (family name/surname)."
 msgstr ""
 
@@ -16503,6 +17421,9 @@ msgid ""
 "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
 msgstr ""
 
+msgid "Connecting to backend"
+msgstr "Menghubungkan ke backend"
+
 #, python-format
 msgid ""
 "Unable to connect to database:\n"
@@ -16711,9 +17632,6 @@ msgstr ""
 msgid "Office"
 msgstr ""
 
-msgid "State"
-msgstr ""
-
 msgid "Zip"
 msgstr ""
 
@@ -16769,8 +17687,9 @@ msgstr ""
 msgid "EMR Timeline"
 msgstr ""
 
-msgid "Show &Timeline"
-msgstr ""
+#, fuzzy
+msgid "EMR &Timeline"
+msgstr "Garis Waktu"
 
 msgid "Overview"
 msgstr ""
@@ -16796,10 +17715,10 @@ msgstr ""
 msgid "&SimpleNotes"
 msgstr ""
 
-msgid "EMR tree"
+msgid "EMR Tree"
 msgstr ""
 
-msgid "EMR &Tree (topical)"
+msgid "EMR &Tree"
 msgstr ""
 
 #, fuzzy
@@ -16810,6 +17729,12 @@ msgstr "Mencetak"
 msgid "&Print Manager"
 msgstr "Mencetak"
 
+msgid "EMR Journal"
+msgstr ""
+
+msgid "EMR &Journal (list)"
+msgstr ""
+
 msgid "Appointments"
 msgstr ""
 
@@ -16822,6 +17747,12 @@ msgstr ""
 msgid "Show &lab journal"
 msgstr ""
 
+msgid "PACS"
+msgstr ""
+
+msgid "&PACS"
+msgstr ""
+
 msgid "Cardiac Devices"
 msgstr ""
 
@@ -16894,10 +17825,7 @@ msgstr ""
 msgid "User &manual (local)"
 msgstr ""
 
-msgid "EMR journal"
-msgstr ""
-
-msgid "EMR &Journal (chronological)"
+msgid "EMR &Journal (text)"
 msgstr ""
 
 msgid "Demographics"
@@ -17058,6 +17986,10 @@ msgstr ""
 msgid "Show &ExamplePlugin"
 msgstr ""
 
+#, fuzzy
+msgid "Find text"
+msgstr "Sunting Kegiatan"
+
 msgid "gm_ctl_client: starting slave GNUmed client"
 msgstr ""
 
@@ -17083,3 +18015,105 @@ msgstr ""
 
 msgid "Abort and do NOT connect to GNUmed."
 msgstr ""
+
+#~ msgid "soap_S"
+#~ msgstr "soap_S"
+
+#~ msgid "soap_O"
+#~ msgstr "soap_O"
+
+#~ msgid "soap_A"
+#~ msgstr "soap_A"
+
+#~ msgid "soap_P"
+#~ msgstr "soap_P"
+
+#, fuzzy
+#~ msgid "soap_U"
+#~ msgstr "soap_S"
+
+#~ msgid "soap_Subjective"
+#~ msgstr "soap_Subjek"
+
+#~ msgid "soap_Objective"
+#~ msgstr "soap_Objek"
+
+#~ msgid "soap_Assessment"
+#~ msgstr "soap_Penilaian"
+
+#~ msgid "soap_Plan"
+#~ msgstr "soap_Rencana"
+
+#~ msgid "soap_Administrative"
+#~ msgstr "soap_Administratif"
+
+#, fuzzy
+#~ msgid "&Unknown"
+#~ msgstr "pernyataan alergi tidak diketahui"
+
+#~ msgid ""
+#~ "Unable to connect to database:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Are you sure you have got a local database installed ?\n"
+#~ "\n"
+#~ "Please retry with proper credentials or cancel.\n"
+#~ "\n"
+#~ "You may also need to check the PostgreSQL client\n"
+#~ "authentication configuration in pg_hba.conf. For\n"
+#~ "details see:\n"
+#~ "\n"
+#~ "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
+#~ msgstr ""
+#~ "Tidak dapat terhubung dengan basis data:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Apakah anda yakin memiliki aplikasi basis data lokal?\n"
+#~ "\n"
+#~ "Coba lagi dengan konfigurasi yang benar atau batalkan.\n"
+#~ "\n"
+#~ "Anda juga harus memeriksa autentikasi konfigurasi \n"
+#~ "klien PostgreSQL pada file pg_hba.conf.\n"
+#~ "Untuk informasi detail, bisa dilihat di:\n"
+#~ "\n"
+#~ "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
+
+#~ msgid ""
+#~ "Unable to connect to database:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Please retry with proper credentials or cancel.\n"
+#~ "\n"
+#~ "You may also need to check the PostgreSQL client\n"
+#~ "authentication configuration in pg_hba.conf. For\n"
+#~ "details see:\n"
+#~ "\n"
+#~ "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
+#~ msgstr ""
+#~ "Tidak dapat terhubung dengan basis data:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Coba lagi dengan konfigurasi yang benar atau batalkan.\n"
+#~ "\n"
+#~ "Anda juga harus memeriksa autentikasi konfigurasi \n"
+#~ "klien PostgreSQL pada file pg_hba.conf.\n"
+#~ "Untuk informasi detail, bisa dilihat di:\n"
+#~ "\n"
+#~ "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
+
+#~ msgid ""
+#~ "Unable to connect to database:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Please retry another backend / user / password combination !\n"
+#~ msgstr ""
+#~ "Tidak dapat terhubung dengan basis data:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Coba lagi server yang lain / nama user / kombinasi password !\n"
diff --git a/client/po/it-gnumed.mo b/client/po/it-gnumed.mo
index 2101dfd..77a2ca8 100644
Binary files a/client/po/it-gnumed.mo and b/client/po/it-gnumed.mo differ
diff --git a/client/po/it.po b/client/po/it.po
index 853ec28..f1d3d1f 100644
--- a/client/po/it.po
+++ b/client/po/it.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: GNUmed\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-12-26 20:28+0100\n"
+"POT-Creation-Date: 2016-03-17 16:27+0100\n"
 "PO-Revision-Date: 2012-06-01 01:22+0000\n"
 "Last-Translator: ncq <Unknown>\n"
 "Language-Team: GNUmed\n"
@@ -1532,10 +1532,22 @@ msgstr ""
 "Richiesta di aiuto\n"
 "--------------"
 
+#, fuzzy, python-format
+msgid "Revision #%s"
+msgstr " Nuova versione: \"%s\""
+
 #, python-format
 msgid "[%s:%s]: row not updated (nothing returned), row in use ?"
 msgstr ""
 
+#, fuzzy, python-format
+msgid "<%s(.bat)> not found"
+msgstr "pgAdmin III non trovato."
+
+#, fuzzy, python-format
+msgid "problem with <%s>"
+msgstr "Problema"
+
 #, python-format
 msgid "[%s] is not a readable file"
 msgstr "[%s] non è un file leggibile"
@@ -1572,28 +1584,9 @@ msgstr "1 Byte"
 msgid "%s Bytes"
 msgstr "%s Bytes"
 
-#, python-format
-msgid ""
-"Cannot connect to configuration database with:\n"
-"\n"
-"[%s]"
-msgstr ""
-"Impossibile connettersi al database di configurazione con:\n"
-"\n"
-"[%s]"
-
-#, python-format
-msgid ""
-"Cannot connect to database with:\n"
-"\n"
-"[%s]"
-msgstr ""
-"Impossibile connettersi al database con:\n"
-"\n"
-"[%s]"
-
-msgid "No product information available."
-msgstr "Nessuna informazione disponibile sul prodotto."
+#, fuzzy
+msgid "<type>"
+msgstr "tipo"
 
 #, python-format
 msgid ""
@@ -1948,107 +1941,6 @@ msgstr " opzione [%s]: %s"
 msgid "  risk: %s"
 msgstr "  rischio: %s"
 
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Are you sure you have got a local database installed ?\n"
-"\n"
-"Please retry with proper credentials or cancel.\n"
-"\n"
-"You may also need to check the PostgreSQL client\n"
-"authentication configuration in pg_hba.conf. For\n"
-"details see:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-msgstr ""
-"Impossibile connettersi al database:\n"
-"\n"
-"%s\n"
-"\n"
-"Si è sicuri di avere un database locale installato ?\n"
-"\n"
-"Riprovare con le credenziali corrette o annullare.\n"
-"\n"
-"Potrebbe essere anche necessario controllare la\n"
-"configurazione del client PostgreSQL in\n"
-"pg_hba.conf. Per ulteriori dettagli vedere:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Please retry with proper credentials or cancel.\n"
-"\n"
-"You may also need to check the PostgreSQL client\n"
-"authentication configuration in pg_hba.conf. For\n"
-"details see:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-msgstr ""
-"Impossibile connettersi al database:\n"
-"\n"
-"%s\n"
-"\n"
-"Riprovare con le credenziali corrette o annullare.\n"
-"\n"
-"Potrebbe essere anche necessario controllare la\n"
-"configurazione del client PostgreSQL in\n"
-"pg_hba.conf. Per ulteriori dettagli vedere:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-
-msgid "Connecting to backend"
-msgstr "Connessione al backend in corso"
-
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Please retry another backend / user / password combination !\n"
-msgstr ""
-"Impossibile connettersi al database:\n"
-"\n"
-"%s\n"
-"\n"
-"Riprovare con un'altra combinazione di backend / utente / password !\n"
-
-msgid "programmer forgot to specify error message"
-msgstr "il programmatore ha dimenticato di specificare il messaggio d'errore"
-
-msgid ""
-"\n"
-"\n"
-"Please consult the error log for all the gory details !"
-msgstr ""
-"\n"
-"\n"
-"Si prega di consultare il log di errore per tutti i dettagli !"
-
-msgid "generic error message"
-msgstr "messaggio d'errore generico"
-
-msgid "programmer forgot to specify info message"
-msgstr ""
-"il programmatore ha dimenticato di specificare il messaggio d'informazione"
-
-msgid "generic info message"
-msgstr "messaggio d'informazione generico"
-
-msgid "programmer forgot to specify warning"
-msgstr "il programmatore ha dimenticato di specificare l'avvertimento"
-
-msgid "generic warning message"
-msgstr "messaggio d'avvertimento generico"
-
 msgid "no hook specified, please report bug"
 msgstr "gancio non specificato, si prega di fare un bug report"
 
@@ -2379,6 +2271,34 @@ msgstr "Ordina per:"
 msgid "Include:"
 msgstr "Includi:"
 
+#, fuzzy
+msgid "&Search"
+msgstr "Cerca"
+
+msgid "Suggest"
+msgstr ""
+
+msgid "Set"
+msgstr "Imposta"
+
+msgid "dialog_1"
+msgstr ""
+
+msgid "Search patients in Orthanc DICOM store."
+msgstr ""
+
+#, fuzzy
+msgid "Suggest a patient ID based on the active patient."
+msgstr "Incomincia una nuova consultazione per il paziente attivo."
+
+#, fuzzy
+msgid "Search term:"
+msgstr "Cerca per"
+
+#, fuzzy
+msgid "New patient ID:"
+msgstr "ID interno paziente"
+
 msgid "Your review"
 msgstr "Il tuo esame"
 
@@ -2737,6 +2657,105 @@ msgstr "Sostanza"
 msgid "Amount"
 msgstr "Quantità"
 
+#, fuzzy
+msgid "&Connect"
+msgstr "&Appuntamenti"
+
+msgid "&Browse"
+msgstr ""
+
+#, fuzzy
+msgid "<not connected>"
+msgstr "Edita l'occupazione primaria"
+
+msgid "Browse all"
+msgstr ""
+
+#, fuzzy
+msgid "Export all"
+msgstr "Rapporto"
+
+msgid "Browse"
+msgstr ""
+
+#, fuzzy
+msgid "Export"
+msgstr "Rapporto"
+
+#, fuzzy
+msgid "Upload"
+msgstr "Aggiorna"
+
+#, fuzzy
+msgid "Enter the PACS host address."
+msgstr "Inserisci il numero civico per questo indirizzo."
+
+msgid "Enter the PACS port."
+msgstr ""
+
+#, fuzzy
+msgid "Enter the PACS user."
+msgstr "Inserire la quantità della sostanza."
+
+#, fuzzy
+msgid "Enter the PACS password. It will not be shown."
+msgstr "Non posso connettermi al proprietario del database GNUmed <gm-dbo>."
+
+#, fuzzy
+msgid "Connect to PACS."
+msgstr "Connetti a GNUmed"
+
+msgid "Browse PACS at top level."
+msgstr ""
+
+msgid "Modify some of Orthanc content (such as patient IDs)."
+msgstr ""
+
+#, fuzzy
+msgid "Browse overview of studies for this patient."
+msgstr "Aspettando una lista dettagliata per questo paziente."
+
+#, fuzzy
+msgid "Copy all studies into export area."
+msgstr "Aggiungi una nuova persona"
+
+#, fuzzy
+msgid "Browse topmost selected study."
+msgstr "Modifica la seguente voce."
+
+#, fuzzy
+msgid "Copy selected studies into export area."
+msgstr "Aggiungi una nuova persona"
+
+#, fuzzy
+msgid "Save selected studies to disk."
+msgstr "Selezione del dispositivo"
+
+msgid ""
+"Upload DICOM files from a directory, recursively, into the Orthanc PACS\n"
+"\n"
+"The currently active patient does not matter. Orthanc will associate "
+"uploaded files with the patient found within the DICOM metadata. It will "
+"create new patients as needed."
+msgstr ""
+
+msgid "Host:"
+msgstr ""
+
+msgid "Port:"
+msgstr ""
+
+#, fuzzy
+msgid "User:"
+msgstr "Utente"
+
+msgid "Password"
+msgstr "Password"
+
+#, fuzzy
+msgid "Selected studies:"
+msgstr "Sto selezionando il paziente"
+
 msgid "Fake brand"
 msgstr ""
 
@@ -3085,10 +3104,6 @@ msgstr "messaggio d'errore generico"
 msgid "&Load"
 msgstr ""
 
-#, fuzzy
-msgid "Export"
-msgstr "Rapporto"
-
 msgid "A long, descriptive name for this form template."
 msgstr ""
 
@@ -3178,15 +3193,13 @@ msgstr "&clinicamente rilevante"
 msgid "Document Properties"
 msgstr "Proprietà Documento"
 
-msgid "Show part"
-msgstr ""
+#, fuzzy
+msgid "Show"
+msgstr "Mostra i messaggi:"
 
 msgid "Remove part"
 msgstr ""
 
-msgid "Parts"
-msgstr "Parti"
-
 msgid "Discard"
 msgstr "Rifuita"
 
@@ -3215,6 +3228,10 @@ msgstr ""
 msgid "Required: The primary episode this document is to be listed under."
 msgstr ""
 
+#, fuzzy
+msgid "Optional: The organization (unit) this document originated from."
+msgstr "Selezionare l'episodio del quale si desidera spostare la narrazione."
+
 msgid ""
 "Optional: A short comment identifying the document. Good comments give an "
 "idea of the content and source of the document."
@@ -3241,6 +3258,9 @@ msgstr ""
 "Se questo documento riporta risultati clinicamente rilevanti. Nota che "
 "entrambi i risultati, normali e abnormi, possono essere rilevanti."
 
+msgid "Optional: A free-text document description."
+msgstr "Opzionale: Una descrizione del documento a testo libero."
+
 msgid "This field lists the parts belonging to the current document."
 msgstr ""
 
@@ -3252,9 +3272,6 @@ msgid ""
 "deletion from disk."
 msgstr ""
 
-msgid "Optional: A free-text document description."
-msgstr "Opzionale: Una descrizione del documento a testo libero."
-
 msgid "Save finished document."
 msgstr "Salva il documento terminato."
 
@@ -3273,6 +3290,10 @@ msgid "Associate to episode:"
 msgstr "Associato all'episodio:"
 
 #, fuzzy
+msgid "Document source:"
+msgstr "Documenti:"
+
+#, fuzzy
 msgid "Comment / Identification:"
 msgstr "Medicazione attuale"
 
@@ -3473,8 +3494,9 @@ msgstr ""
 msgid "Messages:"
 msgstr ""
 
-msgid "Only:"
-msgstr ""
+#, fuzzy
+msgid "Limit to:"
+msgstr "Imposta a:"
 
 msgid "&Myself … or:"
 msgstr ""
@@ -3593,12 +3615,13 @@ msgstr "Finita"
 msgid "Purpose"
 msgstr "Scopo ..."
 
+#, fuzzy
+msgid "Please supply your email address here !"
+msgstr "<Per Favore fornire il vostro indirizzo e-mail qui !>"
+
 msgid "Details"
 msgstr "Dettagli"
 
-msgid "<Please supply your email address here !>"
-msgstr "<Per Favore fornire il vostro indirizzo e-mail qui !>"
-
 msgid "Keep running"
 msgstr "Continua"
 
@@ -3620,9 +3643,11 @@ msgid ""
 msgstr ""
 
 msgid ""
-"Please enter your email address so we can provide feedback directly to you. "
-"Otherwise, feedback will be given on the GNUmed mailing list (http://lists."
-"gnu.org/mailman/listinfo/gnumed-bugs)."
+"Please enter your email address so we can provide help to you directly.\n"
+"\n"
+"Otherwise, feedback can be given on the GNUmed mailing list (http://lists."
+"gnu.org/mailman/listinfo/gnumed-bugs) ONLY to which you will then have to "
+"subscribe."
 msgstr ""
 
 msgid "Find help on http://wiki.gnumed.de, too."
@@ -3753,9 +3778,6 @@ msgstr "Parametri utente:"
 msgid "Account"
 msgstr "Account"
 
-msgid "Password"
-msgstr "Password"
-
 msgid "Password, again"
 msgstr "Password, di nuovo"
 
@@ -4270,8 +4292,9 @@ msgstr "Modifica proprietà documento"
 msgid "Acquire images from image source (scanner, ...)."
 msgstr ""
 
-msgid "Acquire images or text from the clipboard."
-msgstr ""
+#, fuzzy
+msgid "Acquire file or text from the clipboard."
+msgstr "Rimuovi la/le voce/i selezionata/e dalla lista."
 
 #, fuzzy
 msgid "Remove the selected documents."
@@ -4433,7 +4456,7 @@ msgid ""
 "- the result list will be artificially limited to the first 1000 rows\n"
 "- you can include a column named \"pk_patient\" to make the result rows "
 "activate the corresponding patient on double-clicking\n"
-"- by inserting $<ID_active_patient>$ you can access the patient ID of the "
+"- by inserting $<ID_ACTIVE_PATIENT>$ you can access the patient ID of the "
 "patient active at the time of running the query"
 msgstr ""
 
@@ -4605,9 +4628,6 @@ msgstr ""
 msgid "Link &new"
 msgstr ""
 
-msgid "Browse"
-msgstr ""
-
 msgid ""
 "Search for matches among existing addresses and [Link] a selection, or [Link "
 "(a) new] address."
@@ -4663,26 +4683,17 @@ msgid ""
 "left."
 msgstr ""
 
-msgid "label_1"
-msgstr ""
-
-msgid "→"
-msgstr ""
-
-msgid "←"
-msgstr ""
-
-msgid "Extra"
-msgstr ""
+msgid "Subjective"
+msgstr "Soggettivo"
 
-msgid "Move selected items from left to right."
-msgstr ""
+msgid "Objective"
+msgstr "Oggettivo"
 
-msgid "Move selected items from right to left."
-msgstr ""
+msgid "Assessment"
+msgstr "Assessment"
 
-msgid "Cancel picking items."
-msgstr ""
+msgid "Plan"
+msgstr "Procedere"
 
 #, fuzzy
 msgid "Episode synopsis"
@@ -4723,21 +4734,30 @@ msgid ""
 "narrative belongs to."
 msgstr ""
 
-msgid "Subjective"
-msgstr "Soggettivo"
-
 #, fuzzy
 msgid "Codes:"
 msgstr "Codice"
 
-msgid "Objective"
-msgstr "Oggettivo"
+msgid "label_1"
+msgstr ""
 
-msgid "Assessment"
-msgstr "Assessment"
+msgid "→"
+msgstr ""
 
-msgid "Plan"
-msgstr "Procedere"
+msgid "←"
+msgstr ""
+
+msgid "Extra"
+msgstr ""
+
+msgid "Move selected items from left to right."
+msgstr ""
+
+msgid "Move selected items from right to left."
+msgstr ""
+
+msgid "Cancel picking items."
+msgstr ""
 
 msgid "1"
 msgstr ""
@@ -4912,6 +4932,90 @@ msgstr ""
 msgid "Age range"
 msgstr ""
 
+msgid "&Nicotine"
+msgstr ""
+
+msgid "&Alcohol"
+msgstr ""
+
+#, fuzzy
+msgid "&Other:"
+msgstr "Altro"
+
+msgid "&Non-harmful use"
+msgstr ""
+
+msgid "&Harmful use"
+msgstr ""
+
+msgid "Presently &addicted"
+msgstr ""
+
+#, fuzzy
+msgid "Previously &addicted"
+msgstr "Visite precedenti"
+
+msgid "&Reconfirm as of today"
+msgstr ""
+
+#, fuzzy
+msgid "Select for documenting smoking status."
+msgstr "Elimino i risultati del test"
+
+msgid "Select for documenting alcohol use status."
+msgstr ""
+
+msgid ""
+"Select for documenting use of substances other than nicotine or alcohol."
+msgstr ""
+
+#, fuzzy
+msgid "Select the abused substance."
+msgstr "Inserire la quantità della sostanza."
+
+msgid ""
+"Select if the substance use is not considered harmful (say, no use or non-"
+"harmful use)."
+msgstr ""
+
+msgid "Select if substance is use considered harmful."
+msgstr ""
+
+#, fuzzy
+msgid "Select if the patient is presently addicted to this substance."
+msgstr "Seleziona questo se il paziente non ha allergie note."
+
+#, fuzzy
+msgid "Select if the patient was previously addicted to this substance."
+msgstr "Seleziona questo se il paziente non ha allergie note."
+
+msgid ""
+"A comment on this substance use:\n"
+"- type of product used\n"
+"- frequency\n"
+"- amount\n"
+"- when started\n"
+"- attempts to quit\n"
+"..."
+msgstr ""
+
+msgid ""
+"When did the patient quit?\n"
+"\n"
+"You can also set a target quit date here."
+msgstr ""
+
+msgid "Check here to confirm for today."
+msgstr ""
+
+#, fuzzy
+msgid "Quit date"
+msgstr "Essudato"
+
+#, fuzzy
+msgid "Last confirmed"
+msgstr "Ultima confermata:"
+
 msgid "Closed episodes"
 msgstr "Episodi chiusi"
 
@@ -5259,22 +5363,20 @@ msgstr ""
 msgid "Show:"
 msgstr ""
 
-msgid "Brand by component"
+msgid "Kidneys"
 msgstr ""
 
 #, fuzzy
 msgid "Brands"
 msgstr "Produttore"
 
-msgid "Kidneys"
-msgstr ""
-
 #, fuzzy
-msgid "Unbranded substance"
-msgstr "Aggiungi una sostanza."
+msgid "Substances"
+msgstr "Sostanza"
 
-msgid "Manage"
-msgstr ""
+#, fuzzy
+msgid "&Unknown or date:"
+msgstr "reazione sconosciuta"
 
 msgid "Approved of"
 msgstr "Approvato da"
@@ -5289,23 +5391,20 @@ msgid "... Reason"
 msgstr ""
 
 msgid ""
-"A component of a drug brand the patient is taking.\n"
+"A drug the patient is taking.\n"
 "\n"
-"Lookup, and select, a single- (or multi-) component drug brand, by active "
-"ingredient name. All components of multi-component drugs will be displayed "
-"and automatically added to the patient's list."
-msgstr ""
-
-msgid ""
-"Manage drug brands.\n"
+"Lookup and select an intake by either of\n"
+"- a generic substance name\n"
+"- a drug brand name\n"
+"- an active ingredient of a drug\n"
 "\n"
-"Note that this will not select a component for you. What it does is to let "
-"you manage (add/edit/delete) the drug products/brands known to GNUmed from "
-"which you can select a component."
+"Note that all components of multi-component drugs will be displayed and "
+"automatically added to the patient's list."
 msgstr ""
 
-msgid "The active ingredients of this brand."
-msgstr "I principi attivi di questo marchio."
+#, fuzzy
+msgid "Details on the selected drug."
+msgstr "un indirizzo deve essere selezionato"
 
 #, fuzzy
 msgid "Show cardiac information relevant to substance selection."
@@ -5318,8 +5417,11 @@ msgstr ""
 "Mostra informazioni approfondite sulla sostanza selezionata, se disponibile."
 
 msgid ""
-"The non-branded medication or non-medication substance, with optional "
-"strength."
+"Manage drug brands.\n"
+"\n"
+"Note that this will not select a component for you. What it does is to let "
+"you manage (add/edit/delete) the drug products/brands known to GNUmed from "
+"which you can select a component."
 msgstr ""
 
 msgid ""
@@ -5333,11 +5435,20 @@ msgstr ""
 msgid "The preparation or form of the substance."
 msgstr "L'obiettivo di consumo di questa sostanza."
 
+#, fuzzy
+msgid "Check here if the start date simply isn't known."
+msgstr "Seleziona se questo è un problema attivo, in corso."
+
 msgid ""
 "When was this substance started to be consumed or - if not known - the "
 "earliest it is known to have been be consumed."
 msgstr ""
 
+msgid ""
+"A coment on the certainty of the start date, such as \"+/- 3 weeks\", "
+"\"spring of 2002\", \"shortly after Easter 1996\", ...."
+msgstr ""
+
 msgid "Whether this substance is taken by advice."
 msgstr ""
 
@@ -5375,6 +5486,17 @@ msgstr ""
 msgid "Reason for discontinuation."
 msgstr ""
 
+msgid "Drug"
+msgstr "Farmaco"
+
+#, fuzzy
+msgid "Research:"
+msgstr "Cerca"
+
+#, fuzzy
+msgid "Certainty:"
+msgstr "Certezza"
+
 msgid "Schedule"
 msgstr "Pianificazione"
 
@@ -5538,6 +5660,34 @@ msgstr ""
 msgid "Channel"
 msgstr "Canale"
 
+#, fuzzy
+msgid "&Last modification time"
+msgstr "Ultima modifica:"
+
+#, fuzzy
+msgid "&Entry time"
+msgstr "Incomincia nuovo"
+
+msgid "Show journal ordered by encounter."
+msgstr ""
+
+msgid "Show journal ordered by time of last modification."
+msgstr ""
+
+msgid "Show journal ordered by actual clinical time of each entry."
+msgstr ""
+
+#, fuzzy
+msgid "Edit the selected chart entry."
+msgstr "Modifica la seguente voce."
+
+#, fuzzy
+msgid "Delete selected chart entry."
+msgstr "Elimino l'ID esterno"
+
+msgid "Order by:"
+msgstr ""
+
 msgid "Chec&k"
 msgstr ""
 
@@ -6141,12 +6291,16 @@ msgid "Documents:"
 msgstr "Documenti:"
 
 #, fuzzy
+msgid "&L"
+msgstr "S"
+
+#, fuzzy
 msgid "&N"
 msgstr "&Nuovo"
 
 #, fuzzy
-msgid "&L"
-msgstr "S"
+msgid "List all encounters."
+msgstr "%s: appuntamento (%s)"
 
 #, fuzzy
 msgid "The encounter."
@@ -6156,10 +6310,6 @@ msgstr "Spostare gli incontri"
 msgid "Start a new encounter for the active patient."
 msgstr "Incomincia una nuova consultazione per il paziente attivo."
 
-#, fuzzy
-msgid "List all encounters."
-msgstr "%s: appuntamento (%s)"
-
 msgid "Clinically relevant"
 msgstr "Clinicamente rilevante"
 
@@ -6426,10 +6576,12 @@ msgstr ""
 msgid "Manage dynamic hints."
 msgstr "Mostro il documento"
 
+#, fuzzy
 msgid ""
 "Rationale for\n"
-"suppression"
-msgstr ""
+"suppression\n"
+"for this patient"
+msgstr "Aspettando una lista dettagliata per questo paziente."
 
 #, fuzzy
 msgid "Save &under"
@@ -6500,6 +6652,12 @@ msgstr ""
 msgid "Encounter:"
 msgstr "Incontro:"
 
+msgid "Manage"
+msgstr ""
+
+msgid "&Panel:"
+msgstr ""
+
 msgid "&Pick"
 msgstr ""
 
@@ -6547,6 +6705,10 @@ msgstr ""
 "\n"
 "Per disabilitare il popup lasciare il messagio vuoto."
 
+#, fuzzy
+msgid "Show search dialog."
+msgstr "Chiudi questa finestra"
+
 msgid "THIS IS NOT A VERIFIED MEASUREMENT. DO NOT USE FOR ACTUAL CARE."
 msgstr ""
 
@@ -6838,6 +7000,56 @@ msgstr "*ha* allergie"
 msgid "ERROR: unknown allergy state [%s]"
 msgstr "ERRORE: stato allergico sconosciuto [%s]"
 
+msgid "definite"
+msgstr "definito"
+
+#, fuzzy
+msgid "indefinite"
+msgstr "definito"
+
+#, fuzzy
+msgid "Reaction:"
+msgstr "Rezione"
+
+#, fuzzy
+msgid "Noted:"
+msgstr "Nota"
+
+#, fuzzy
+msgid "Allergene:"
+msgstr "Allergia"
+
+#, fuzzy
+msgid "Substance:"
+msgstr "Sostanza"
+
+#, fuzzy
+msgid "Code:"
+msgstr "Codice"
+
+msgid "ATC:"
+msgstr ""
+
+#, fuzzy
+msgid "Specific to:"
+msgstr "Imposta a:"
+
+#, fuzzy
+msgid "this substance only"
+msgstr "Edita l'indirizzo"
+
+#, fuzzy
+msgid "drug class"
+msgstr "Classi Farmacologiche"
+
+#, fuzzy
+msgid "unknown"
+msgstr "Sconosciuta"
+
+#, fuzzy
+msgid "Generics:"
+msgstr "Generici"
+
 msgid "Medication history"
 msgstr "Storico dei medicamenti"
 
@@ -6849,9 +7061,16 @@ msgstr "Elimina la descrizione del documento"
 msgid "prescription data"
 msgstr "Prescrizioni"
 
+#, fuzzy
+msgid "Consumable substance"
+msgstr "Aggiungi una sostanza."
+
 msgid "in use"
 msgstr ""
 
+msgid "w/"
+msgstr ""
+
 msgid "long-term"
 msgstr "a lungo termine"
 
@@ -6871,23 +7090,49 @@ msgid "?ongoing"
 msgstr "?in corso"
 
 #, python-format
-msgid "Substance intake entry (%s, %s)   [#%s]                     \n"
+msgid ""
+"Substance abuse entry                                              [#%s]\n"
 msgstr ""
 
-msgid "active, needs check"
-msgstr ""
+#, fuzzy, python-format
+msgid "Substance: %s [#%s]%s\n"
+msgstr "Sostanza"
 
-msgid "assumed active"
-msgstr ""
+#, fuzzy, python-format
+msgid "Use type: %s\n"
+msgstr "Paziente"
 
-msgid "approved"
-msgstr ""
+#, fuzzy, python-format
+msgid "Last checked: %s\n"
+msgstr "Ultima modifica il: %s\n"
 
-msgid "unapproved"
+#, python-format
+msgid " Discontinued %s\n"
 msgstr ""
 
-msgid "definite"
-msgstr "definito"
+#, fuzzy, python-format
+msgid " Notes: %s\n"
+msgstr "Paziente"
+
+#, python-format
+msgid "Revision: #%(row_ver)s, %(mod_when)s by %(mod_by)s."
+msgstr ""
+
+#, python-format
+msgid "Substance intake entry (%s, %s)   [#%s]                     \n"
+msgstr ""
+
+msgid "active, needs check"
+msgstr ""
+
+msgid "assumed active"
+msgstr ""
+
+msgid "approved"
+msgstr ""
+
+msgid "unapproved"
+msgstr ""
 
 msgid "suspected"
 msgstr ""
@@ -6935,10 +7180,6 @@ msgid " (short-term)"
 msgstr ""
 
 #, python-format
-msgid " Discontinued %s\n"
-msgstr ""
-
-#, python-format
 msgid " Reason: %s\n"
 msgstr ""
 
@@ -6958,18 +7199,62 @@ msgstr "problema di salute: %s"
 msgid " Advice: %s\n"
 msgstr ""
 
-#, python-format
-msgid "Revision: #%(row_ver)s, %(mod_when)s by %(mod_by)s."
+#, fuzzy
+msgid "medication, not abuse"
+msgstr "Lista farmaci"
+
+msgid "no or non-harmful use"
+msgstr ""
+
+msgid "presently harmful use"
+msgstr ""
+
+msgid "presently addicted"
+msgstr ""
+
+msgid "previously addicted"
 msgstr ""
 
 #, fuzzy, python-format
-msgid "%s: %s ago"
+msgid "%s%s: %s ago%s"
 msgstr "&Zona:"
 
 #, fuzzy, python-format
-msgid "%s: %s ago (%s)"
+msgid "%s%s: %s ago (%s)"
+msgstr "%s%7s %s: %s (%s parte(i), %s)"
+
+#, fuzzy, python-format
+msgid "%s%s%s (%s ago)"
+msgstr "%s%7s %s: %s (%s parte(i), %s)"
+
+#, fuzzy, python-format
+msgid "%s%s%s (%s ago, %s)"
 msgstr "%s%7s %s: %s (%s parte(i), %s)"
 
+#, python-format
+msgid "%s ago"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "in %s"
+msgstr "Chiusa"
+
+#, fuzzy, python-format
+msgid ", until %s (%s)"
+msgstr "&Zona:"
+
+#, fuzzy, python-format
+msgid " (planned for %s%s)"
+msgstr "nessun paziente trovato per [%s]/%s"
+
+#, fuzzy, python-format
+msgid ", planned for %s%s"
+msgstr "nessun paziente trovato per [%s]/%s"
+
+#, fuzzy, python-format
+msgid "%s ago (for %s: %s %s %s)"
+msgstr " Durata: %s (%s - %s)"
+
 msgid "Additional notes"
 msgstr "Note aggiuntive"
 
@@ -6982,13 +7267,36 @@ msgstr "Lista farmaci"
 msgid "ordered by brand"
 msgstr "classificati per brand"
 
-msgid "Drug"
-msgstr "Farmaco"
-
 #, fuzzy
 msgid "Regimen / Advice"
 msgstr "Regime"
 
+#, fuzzy, python-format
+msgid "Component of %s (%s)"
+msgstr "Componenti"
+
+#, fuzzy, python-format
+msgid "ATC (substance): %s"
+msgstr "Aggiungi una sostanza."
+
+#, python-format
+msgid "ATC (brand): %s"
+msgstr ""
+
+msgid "this is a component of a fake brand"
+msgstr ""
+
+#, fuzzy
+msgid "Components:"
+msgstr "Componenti"
+
+msgid "this is a fake brand"
+msgstr ""
+
+#, fuzzy
+msgid "this is a vaccine"
+msgstr "vaccino"
+
 msgid "units"
 msgstr "unità"
 
@@ -7023,52 +7331,15 @@ msgid "Expires: %s\n"
 msgstr "Esportato: %s\n"
 
 #, fuzzy
-msgid "Active clinical hint"
-msgstr "Problemi attuali"
-
-#, fuzzy
-msgid "Inactive clinical hint"
-msgstr "nessuna rilevanza clinica"
+msgid "HL7 Source"
+msgstr "Sorgente HTML"
 
-#, python-format
-msgid "Source: %s\n"
+msgid "HL7 data size"
 msgstr ""
 
 #, fuzzy, python-format
-msgid "Language: %s\n"
-msgstr "Lingua"
-
-#, fuzzy
-msgid "Suppressed active dynamic hint"
-msgstr "Mostro il documento"
-
-#, fuzzy
-msgid "Suppressed inactive dynamic hint"
-msgstr "Mostro il documento"
-
-#, fuzzy, python-format
-msgid "Suppressed by: %s\n"
-msgstr "emesso da"
-
-#, fuzzy, python-format
-msgid "Suppressed at: %s\n"
-msgstr "Esportato: %s\n"
-
-#, fuzzy, python-format
-msgid "Hint #: %s\n"
-msgstr "Paziente"
-
-#, fuzzy, python-format
-msgid "Patient #: %s\n"
-msgstr "Paziente"
-
-#, fuzzy, python-format
-msgid "MD5 (currently): %s\n"
-msgstr "Documenti: %s"
-
-#, python-format
-msgid "MD5 (at suppression): %s\n"
-msgstr ""
+msgid "%s bytes"
+msgstr "%s Bytes"
 
 msgid "HL7 Message"
 msgstr ""
@@ -7125,14 +7396,6 @@ msgid "doc: %s"
 msgstr "   Doc: %s"
 
 #, fuzzy
-msgid "no patient photograph available"
-msgstr "nessun commento disponibile"
-
-#, fuzzy, python-format
-msgid "patient photograph from %s"
-msgstr "Non posso selezionare la foto del paziente da [%s]."
-
-#, fuzzy
 msgid "Patient data for"
 msgstr "Paziente"
 
@@ -7143,6 +7406,10 @@ msgstr ""
 msgid "Patient data export"
 msgstr "Manda rapporto"
 
+#, fuzzy
+msgid "no patient photograph available"
+msgstr "nessun commento disponibile"
+
 msgid "Documents"
 msgstr "Documenti"
 
@@ -7153,6 +7420,10 @@ msgstr ""
 msgid "browse documents area"
 msgstr "Allega documenti"
 
+#, fuzzy, python-format
+msgid "patient photograph from %s"
+msgstr "Non posso selezionare la foto del paziente da [%s]."
+
 #, fuzzy
 msgid "Browse patient data"
 msgstr "Unire i pazienti"
@@ -7205,24 +7476,24 @@ msgstr ""
 #, python-format
 msgid ""
 "%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s %(suburb)s, "
-"%(code_state)s, %(code_country)s"
+"%(code_region)s, %(code_country)s"
 msgstr ""
 
 #, python-format
 msgid ""
 "%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s %(suburb)s, "
-"%(code_state)s, %(code_country)s"
+"%(code_region)s, %(code_country)s"
 msgstr ""
 
 #, python-format
 msgid ""
-"%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_state)s, "
-"%(code_country)s"
+"%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, "
+"%(code_region)s, %(code_country)s"
 msgstr ""
 
 #, python-format
 msgid ""
-"%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_state)s, "
+"%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_region)s, "
 "%(code_country)s"
 msgstr ""
 
@@ -7232,7 +7503,7 @@ msgid ""
 " Street: %(street)s%(notes_street)s\n"
 " Number/Unit: %(number)s%(subunit)s%(notes_subunit)s\n"
 " Location: %(zip)s %(urb)s%(suburb)s\n"
-" Region: %(l10n_state)s, %(code_state)s\n"
+" Region: %(l10n_region)s, %(code_region)s\n"
 " Country: %(l10n_country)s, %(code_country)s"
 msgstr ""
 
@@ -7242,7 +7513,7 @@ msgid ""
 " Street: %(street)s%(notes_street)s\n"
 " Number/Unit: %(number)s%(subunit)s%(notes_subunit)s\n"
 " Location: %(zip)s %(urb)s%(suburb)s\n"
-" Region: %(l10n_state)s, %(code_state)s\n"
+" Region: %(l10n_region)s, %(code_region)s\n"
 " Country: %(l10n_country)s, %(code_country)s"
 msgstr ""
 
@@ -7313,6 +7584,97 @@ msgstr "risultato corretto"
 msgid "missing, reported later"
 msgstr "mancante, riportato in seguito"
 
+msgid "Health issue"
+msgstr "Problema di salute"
+
+#, fuzzy
+msgid "External care"
+msgstr "Codice esterno"
+
+msgid "Vaccination"
+msgstr "Vaccinazione"
+
+#, fuzzy
+msgid "Clinical narrative"
+msgstr "Clinico"
+
+#, fuzzy
+msgid "Test result"
+msgstr "Risultati del test"
+
+#, fuzzy
+msgid "Substance intake"
+msgstr "Sostanza"
+
+#, fuzzy
+msgid "Hospital stay"
+msgstr "Ospedale"
+
+#, fuzzy
+msgid "Performed procedure"
+msgstr ""
+" %s interventi effettuati\n"
+"\n"
+
+#, fuzzy
+msgid "Family history"
+msgstr "Storia familiare"
+
+#, fuzzy
+msgid "Document"
+msgstr "Documenti"
+
+#, python-format
+msgid "unmapped entry type from table [%s]"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "cannot instantiate clinical root item <%s(%s)>"
+msgstr "non posso attivare il paziente [%s] (%s/%s)"
+
+msgid "True"
+msgstr ""
+
+msgid "False"
+msgstr ""
+
+#, fuzzy
+msgid "unknown smoking status"
+msgstr "Elimino i risultati del test"
+
+msgid "non-smoker"
+msgstr ""
+
+#, fuzzy
+msgid "current smoker"
+msgstr "il paziente corrente è bloccato"
+
+msgid "ex-smoker"
+msgstr ""
+
+msgid "tobacco addiction"
+msgstr ""
+
+msgid "no or non-harmful alcohol use"
+msgstr ""
+
+msgid "harmful alcohol use"
+msgstr ""
+
+#, fuzzy
+msgid "unknown alcohol use"
+msgstr "stato allergico sconosciuto"
+
+msgid "no or non-harmful drug use"
+msgstr ""
+
+msgid "harmful drug use"
+msgstr ""
+
+#, fuzzy
+msgid "unknown drug use"
+msgstr "stato allergico sconosciuto"
+
 msgid "original entry"
 msgstr "voce originale"
 
@@ -7419,14 +7781,6 @@ msgstr "Occupazione"
 msgid "Vaccinations"
 msgstr "Vaccinazioni"
 
-#, python-format
-msgid "%s ago"
-msgstr ""
-
-#, fuzzy
-msgid "External care"
-msgstr "Codice esterno"
-
 #, fuzzy
 msgid "Allergies/Intolerances"
 msgstr "allergie/intolleranze"
@@ -7515,79 +7869,131 @@ msgid ""
 "The account was deactivated instead."
 msgstr ""
 
-#, python-format
-msgid "Device(%s):"
-msgstr "Dispositivo(%s):"
+msgid "SOAP_char_S=S"
+msgstr ""
 
-msgid "Battery:"
-msgstr "Batteria:"
+msgid "SOAP_char_O=O"
+msgstr ""
 
-msgid "Implanted:"
-msgstr "Impiantato:"
+msgid "SOAP_char_A=A"
+msgstr ""
 
-msgid "last check:"
-msgstr "ultimo controllo:"
+msgid "SOAP_char_P=P"
+msgstr ""
 
-msgid "Sensing:"
-msgstr "Sensibilità:"
+msgid "SOAP_char_U=U"
+msgstr ""
 
-msgid "Threshold"
-msgstr "Soglia"
+msgid "SOAP_string_Subjective=Subjective"
+msgstr ""
 
-msgid "Impedance:"
-msgstr "Impedenza:"
+msgid "SOAP_string_Objective=Objective"
+msgstr ""
 
-#, python-format
-msgid "Praxis branch                   #%s\n"
+msgid "SOAP_string_Assessment=Assessment"
 msgstr ""
 
-msgid "Privacy notice"
+msgid "SOAP_string_Plan=Plan"
 msgstr ""
 
-#, python-format
-msgid ""
-"%s: Your chart has been accessed by %s (without user interaction, probably "
-"by a script)."
+msgid "SOAP_string_Unspecified=Unspecified"
 msgstr ""
 
-#, python-format
-msgid "%s: Staff member %s has been notified of your chart access."
+msgid "SOAP_string_Administrative=Administrative"
 msgstr ""
 
-msgid "soap_S"
-msgstr "soap_S"
+#, fuzzy
+msgid "Active clinical hint"
+msgstr "Problemi attuali"
 
-msgid "soap_O"
-msgstr "soap_O"
+#, fuzzy
+msgid "Inactive clinical hint"
+msgstr "nessuna rilevanza clinica"
 
-msgid "soap_A"
-msgstr "soap_A"
+#, python-format
+msgid "Source: %s\n"
+msgstr ""
 
-msgid "soap_P"
-msgstr "soap_P"
+#, fuzzy, python-format
+msgid "Language: %s\n"
+msgstr "Lingua"
 
 #, fuzzy
-msgid "soap_U"
-msgstr "soap_S"
+msgid "Suppressed active dynamic hint"
+msgstr "Mostro il documento"
 
-msgid "soap_Subjective"
-msgstr "soap_Subjective"
+#, fuzzy
+msgid "Suppressed inactive dynamic hint"
+msgstr "Mostro il documento"
 
-msgid "soap_Objective"
-msgstr "soap_Objective"
+#, fuzzy, python-format
+msgid "Suppressed by: %s\n"
+msgstr "emesso da"
 
-msgid "soap_Assessment"
-msgstr "soap_Assessment"
+#, fuzzy, python-format
+msgid "Suppressed at: %s\n"
+msgstr "Esportato: %s\n"
 
-msgid "soap_Plan"
-msgstr "soap_Plan"
+#, fuzzy, python-format
+msgid "Hint #: %s\n"
+msgstr "Paziente"
 
-#, fuzzy
-msgid "soap_Unspecified"
-msgstr "soap_Objective"
+#, fuzzy, python-format
+msgid "Patient #: %s\n"
+msgstr "Paziente"
+
+#, fuzzy, python-format
+msgid "MD5 (currently): %s\n"
+msgstr "Documenti: %s"
+
+#, python-format
+msgid "MD5 (at suppression): %s\n"
+msgstr ""
+
+#, python-format
+msgid "Device(%s):"
+msgstr "Dispositivo(%s):"
+
+msgid "Battery:"
+msgstr "Batteria:"
+
+msgid "Implanted:"
+msgstr "Impiantato:"
+
+msgid "last check:"
+msgstr "ultimo controllo:"
+
+msgid "Sensing:"
+msgstr "Sensibilità:"
+
+msgid "Threshold"
+msgstr "Soglia"
+
+msgid "Impedance:"
+msgstr "Impedenza:"
+
+#, python-format
+msgid "Praxis branch                   #%s\n"
+msgstr ""
+
+#, python-format
+msgid ""
+"FN:%(l10n_unit_category)s %(branch)s of %(l10n_organization_category)s "
+"%(praxis)s"
+msgstr ""
+
+msgid "Privacy notice"
+msgstr ""
+
+#, python-format
+msgid ""
+"%s: Your chart has been accessed by %s (without user interaction, probably "
+"by a script)."
+msgstr ""
 
-msgid "soap_Administrative"
-msgstr "soap_Administrative"
+#, python-format
+msgid "%s: Staff member %s has been notified of your chart access."
+msgstr ""
 
 #, python-format
 msgid ""
@@ -7657,9 +8063,17 @@ msgid "%(last)s,%(title)s %(first)s%(nick)s (%(sex)s)"
 msgstr ""
 
 #, python-format
+msgid "%(last)s,%(title)s %(first)s (%(sex)s)"
+msgstr ""
+
+#, python-format
 msgid "%(last)s,%(title)s %(first)s%(nick)s"
 msgstr ""
 
+#, python-format
+msgid "%(last)s,%(title)s %(first)s"
+msgstr ""
+
 msgid "Cannot merge active patient into another patient."
 msgstr "Non posso inserire il paziente attivo in un altro paziente."
 
@@ -7670,9 +8084,6 @@ msgstr ""
 msgid "merged"
 msgstr "Unisci"
 
-msgid "preferred name/call name/..."
-msgstr ""
-
 msgid "invalid age: DOB in the future"
 msgstr ""
 
@@ -7687,10 +8098,6 @@ msgid "Mrs"
 msgstr "Sig.ra"
 
 #, fuzzy
-msgid "unknown"
-msgstr "Sconosciuta"
-
-#, fuzzy
 msgid "empty status"
 msgstr "status"
 
@@ -8033,7 +8440,7 @@ msgid " Part %s: %s %s(%s Bytes)\n"
 msgstr "%s%7s %s: %s (%s parte(i), %s)"
 
 #, fuzzy, python-format
-msgid " Filename: %s\n"
+msgid " Filename: %s%s\n"
 msgstr "Nome del file"
 
 #, fuzzy
@@ -8048,19 +8455,26 @@ msgstr "parte"
 msgid "%s parts"
 msgstr "mostra parte"
 
+#, fuzzy, python-format
+msgid "%s of %s"
+msgstr " %s documenti\n"
+
 #, python-format
 msgid ""
 "%s (%s)   #%s\n"
-"\n"
 " Created: %s\n"
 " Episode: %s\n"
-"%s%s%s"
+"%s%s%s%s"
 msgstr ""
 
 #, python-format
 msgid " External reference: %s\n"
 msgstr ""
 
+#, fuzzy, python-format
+msgid " Organization: %%s @ %s\n"
+msgstr "Organizzazione"
+
 msgid "Cannot run [arriba] !"
 msgstr "Impossibile eseguire [arriba] !"
 
@@ -8417,26 +8831,9 @@ msgid "External care:"
 msgstr "Codice esterno"
 
 #, fuzzy, python-format
-msgid ""
-"health issue: %s%s%s\n"
-"\n"
+msgid "Health issue: %s%s%s"
 msgstr "problema di salute: %s"
 
-#, fuzzy
-msgid ""
-"\n"
-"current values:\n"
-msgstr "<stato allergico attuale>"
-
-msgid "no previous versions of this record"
-msgstr ""
-
-msgid ""
-"\n"
-"all values with <audit_action>, <audit_when>, <audit_by> fields (current "
-"value first):\n"
-msgstr ""
-
 msgid "Unattributed episodes"
 msgstr "Casi non attribuiti"
 
@@ -8458,9 +8855,6 @@ msgstr " Durata: %s (%s - %s)"
 msgid "finished"
 msgstr "finito"
 
-msgid "Health issue"
-msgstr "Problema di salute"
-
 msgid "none associated"
 msgstr ""
 
@@ -8497,9 +8891,7 @@ msgid "Measurements and Results:"
 msgstr "Misure e risultati:"
 
 #, fuzzy, python-format
-msgid ""
-"episode: %s%s%s\n"
-"\n"
+msgid "Episode: %s%s%s"
 msgstr "Episodio %s%s%s [#%s]"
 
 #, python-format
@@ -8528,9 +8920,7 @@ msgid "%s other episodes touched upon during this encounter:"
 msgstr "%s altri episodi accennati duranti questi incontri:"
 
 #, fuzzy, python-format
-msgid ""
-"encounter: %s%s%s\n"
-"\n"
+msgid "Encounter: %s%s%s"
 msgstr "Appuntamenti: %s (%s - %s):"
 
 msgid " (ongoing)"
@@ -8556,10 +8946,6 @@ msgstr "Ospedale"
 msgid "Procedures"
 msgstr "Procedura"
 
-#, fuzzy
-msgid "Substances"
-msgstr "Sostanza"
-
 msgid "Life events"
 msgstr ""
 
@@ -8584,9 +8970,6 @@ msgstr ""
 msgid "Cannot display timeline."
 msgstr "Crea nuovo paziente"
 
-msgid "Vaccination"
-msgstr "Vaccinazione"
-
 msgid "Lab result"
 msgstr "Risultato di laboratorio"
 
@@ -8663,9 +9046,6 @@ msgstr ""
 msgid "Exported: %s\n"
 msgstr "Esportato: %s\n"
 
-msgid "emr-journal"
-msgstr "emr-journal"
-
 msgid "Chronological EMR Journal\n"
 msgstr "Giornale Medico Cronologico\n"
 
@@ -8951,16 +9331,7 @@ msgstr ""
 msgid "Select one or more codes that apply."
 msgstr ""
 
-msgid "Cannot move progress notes. No active patient."
-msgstr ""
-
-msgid "Moving progress notes between encounters ..."
-msgstr ""
-
-msgid ""
-"\n"
-" Select the progress notes to move from the list !\n"
-"\n"
+msgid "Select the narrative you are interested in ..."
 msgstr ""
 
 msgid "when"
@@ -8972,112 +9343,253 @@ msgstr "chi"
 msgid "entry"
 msgstr "voce"
 
-msgid "Cannot edit progress notes. No active patient."
+msgid "There is no narrative for this episode in this encounter."
 msgstr ""
 
-msgid "Deleting progress note"
+msgid "Must select episode to move narrative to first."
 msgstr ""
 
-msgid ""
-"Are you positively sure you want to delete this\n"
-"progress note from the medical record ?\n"
-"\n"
-"Note that even if you chose to delete the entry it will\n"
-"still be (invisibly) kept in the audit trail to protect\n"
-"you from litigation because physical deletion is known\n"
-"to be unlawful in some jurisdictions.\n"
+msgid "Last"
 msgstr ""
 
-msgid "Yes, delete the progress note."
+#, fuzzy
+msgid "In health issue"
+msgstr "problema di salute: %s"
+
+msgid "Most recent notes on selected problem"
 msgstr ""
 
-msgid "No, do NOT delete the progress note."
+#, python-format
+msgid "%s (active+potential) problems"
 msgstr ""
 
-msgid "Editing progress note"
+#, python-format
+msgid "%s active problems"
 msgstr ""
 
-msgid "This is the original progress note:"
+msgid "Current encounter:"
 msgstr ""
 
-msgid "Managing progress notes"
+msgid "Cumulative summary"
 msgstr ""
 
+#, fuzzy, python-format
+msgid "Most recent info on %s%s%s"
+msgstr " Più recente: %s - %s"
+
 #, python-format
 msgid ""
+"Cannot open progress note editor for\n"
 "\n"
-" This list shows the progress notes by %s.\n"
+"[%s].\n"
 "\n"
 msgstr ""
 
-msgid "Enter (regex) term to search for across all EMRs:"
+msgid "opening progress note editor"
 msgstr ""
 
-msgid "Text search across all EMRs"
+msgid "Cannot save all editors. Some were kept open."
 msgstr ""
 
-#, python-format
-msgid ""
-"Nothing found for search term:\n"
-" \"%s\""
+msgid "new problem"
 msgstr ""
 
-msgid "Search results"
+msgid ""
+"Are you sure you really want to\n"
+"discard this progress note ?\n"
 msgstr ""
 
-#, fuzzy, python-format
-msgid "Search results for [%s]"
-msgstr "Nessun risultato [arriba] trovato in [%s]."
-
-msgid "Match"
+msgid "Discarding progress note"
 msgstr ""
 
-msgid "Match location"
+msgid "There are unsaved progress notes !\n"
 msgstr ""
 
-msgid "Cannot search EMR. No active patient."
+msgid "Unsaved progress notes"
 msgstr ""
 
-msgid "Enter search term:"
-msgstr ""
+#, fuzzy
+msgid "Problem list"
+msgstr "Problema"
 
-msgid "Text search of entire EMR of active patient"
+msgid "Saving SOAP note"
 msgstr ""
 
-#, python-format
-msgid ""
-"Search term was: \"%s\"\n"
-"\n"
-"Search results:\n"
-"\n"
-"%s\n"
+#, fuzzy
+msgid "Do you want to save the SOAP note ?"
 msgstr ""
+"Vuoi veramente cancellare questo\n"
+"ID esterno dal paziente?"
 
-msgid "Cannot export EMR for Medistar. No active patient."
+#, python-format
+msgid "&Filter by problem %s%s%s"
 msgstr ""
 
-msgid "text files"
-msgstr "file di testo"
+#, fuzzy
+msgid "Cannot save SimpleNotes SOAP note."
+msgstr "Non posso salvare la richiesta di laboratorio."
 
-msgid "all files"
-msgstr "tutti i file"
+#, fuzzy, python-format
+msgid "Progress note: %s%s"
+msgstr "Progressi, note"
 
-msgid "Save EMR extract for MEDISTAR import as..."
-msgstr ""
+#, fuzzy
+msgid "Please enter a name for the new problem:"
+msgstr "Inserisci la tua pass frase:"
 
-msgid "Error exporting progress notes for MEDISTAR import."
-msgstr ""
+#, fuzzy
+msgid "Adding a problem"
+msgstr "Aggiungi provincia"
 
-msgid "MEDISTAR progress notes export"
+#, fuzzy
+msgid "Cannot delete problem. There is still clinical data recorded for it."
 msgstr ""
+"Impossibile cancellare episodio. Ci sono ancora dati clinici corrispondenti "
+"registrati."
 
 #, python-format
-msgid ""
-"Successfully exported progress notes into file [%s] for Medistar import."
-msgstr ""
+msgid "GNUmed: configuring [%s] (%s plugins)"
+msgstr "GNUmed: sto configurando [%s] (%s plugins)"
 
-#, python-format
-msgid "Pick the [%s] narrative you want to use."
+msgid "loading list of plugins                               "
+msgstr ""
+
+msgid "failed"
+msgstr "Non riuscito"
+
+msgid "success"
+msgstr "azione riuscita"
+
+#, python-format
+msgid ""
+"previous: %s (%s)\n"
+"current (%s/%s): %s"
+msgstr ""
+"precedente: %s (%s)\n"
+"attuale (%s/%s): %s"
+
+#, python-format
+msgid "Cannot switch to [%s]: no patient selected"
+msgstr "Non posso passare a [%s]: nessun paziente selezionato"
+
+msgid "Cannot move progress notes. No active patient."
+msgstr ""
+
+msgid "Moving progress notes between encounters ..."
+msgstr ""
+
+msgid ""
+"\n"
+" Select the progress notes to move from the list !\n"
+"\n"
+msgstr ""
+
+msgid "Cannot edit progress notes. No active patient."
+msgstr ""
+
+msgid "Deleting progress note"
+msgstr ""
+
+msgid ""
+"Are you positively sure you want to delete this\n"
+"progress note from the medical record ?\n"
+"\n"
+"Note that even if you chose to delete the entry it will\n"
+"still be (invisibly) kept in the audit trail to protect\n"
+"you from litigation because physical deletion is known\n"
+"to be unlawful in some jurisdictions.\n"
+msgstr ""
+
+msgid "Yes, delete the progress note."
+msgstr ""
+
+msgid "No, do NOT delete the progress note."
+msgstr ""
+
+msgid "Editing progress note"
+msgstr ""
+
+msgid "This is the original progress note:"
+msgstr ""
+
+msgid "Managing progress notes"
+msgstr ""
+
+#, python-format
+msgid ""
+"\n"
+" This list shows the progress notes by %s.\n"
+"\n"
+msgstr ""
+
+msgid "Enter (regex) term to search for across all EMRs:"
+msgstr ""
+
+msgid "Text search across all EMRs"
+msgstr ""
+
+#, python-format
+msgid ""
+"Nothing found for search term:\n"
+" \"%s\""
+msgstr ""
+
+msgid "Search results"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "Search results for [%s]"
+msgstr "Nessun risultato [arriba] trovato in [%s]."
+
+msgid "Match"
+msgstr ""
+
+msgid "Match location"
+msgstr ""
+
+msgid "Cannot search EMR. No active patient."
+msgstr ""
+
+msgid "Enter search term:"
+msgstr ""
+
+msgid "Text search of entire EMR of active patient"
+msgstr ""
+
+#, python-format
+msgid ""
+"Search term was: \"%s\"\n"
+"\n"
+"Search results:\n"
+"\n"
+"%s\n"
+msgstr ""
+
+msgid "Cannot export EMR for Medistar. No active patient."
+msgstr ""
+
+msgid "text files"
+msgstr "file di testo"
+
+msgid "all files"
+msgstr "tutti i file"
+
+msgid "Save EMR extract for MEDISTAR import as..."
+msgstr ""
+
+msgid "Error exporting progress notes for MEDISTAR import."
+msgstr ""
+
+msgid "MEDISTAR progress notes export"
+msgstr ""
+
+#, python-format
+msgid ""
+"Successfully exported progress notes into file [%s] for Medistar import."
+msgstr ""
+
+#, python-format
+msgid "Pick the [%s] narrative you want to use."
 msgstr ""
 
 #, fuzzy, python-format
@@ -9178,760 +9690,557 @@ msgid ""
 " Now, mark the entries you want to include in your report.\n"
 msgstr ""
 
-msgid "Select the narrative you are interested in ..."
+msgid "Pick a date ..."
 msgstr ""
 
-msgid "There is no narrative for this episode in this encounter."
+msgid "<ALT-C/K>: pick from (c/k)alendar"
 msgstr ""
 
-msgid "Must select episode to move narrative to first."
+msgid "Cannot interpret input as timestamp."
 msgstr ""
 
-msgid "Last"
+msgid "No vaccines were chosen"
+msgstr "Nessun vaccino è stato scelto"
+
+#, python-format
+msgid "Combination of indications , %s , not found in any vaccine"
 msgstr ""
 
-#, fuzzy
-msgid "In health issue"
-msgstr "problema di salute: %s"
+msgid "Sequence"
+msgstr "Sequenza"
 
-msgid "Most recent notes on selected problem"
+msgid "Batch"
+msgstr "Gruppo"
+
+msgid "Vaccinator"
+msgstr "Vaccinatore"
+
+msgid ""
+"Vaccinations by Recommender (X = patient on regime, O = patient not on "
+"regime) "
 msgstr ""
 
-#, python-format
-msgid "%s (active+potential) problems"
+msgid "enrolled regime vaccinations not yet given"
 msgstr ""
 
+#, fuzzy
+msgid "Proceed with "
+msgstr "Procedi con l'accesso."
+
 #, python-format
-msgid "%s active problems"
-msgstr ""
+msgid "Failed to enrol patient in %s"
+msgstr "Fallita l'iscrizione del paziente in %s"
 
-msgid "Current encounter:"
-msgstr ""
+#, python-format
+msgid "Failed to  delist patient from %s"
+msgstr "Fallita l'eliminazione del paziente dalla lista %s"
 
-msgid "Cumulative summary"
+msgid "Missing GNUmed module"
+msgstr "Modulo GNUmed mancante"
+
+#, python-format
+msgid ""
+"GNUmed detected that parts of it are not\n"
+"properly installed. The following message\n"
+"names the missing part:\n"
+"\n"
+" \"%s\"\n"
+"\n"
+"Please make sure to get the missing\n"
+"parts installed. Otherwise some of the\n"
+"functionality will not be accessible."
 msgstr ""
 
 #, fuzzy, python-format
-msgid "Most recent info on %s%s%s"
-msgstr " Più recente: %s - %s"
+msgid ""
+"\n"
+" Source: %s"
+msgstr "Fonte"
 
-#, python-format
+#, fuzzy, python-format
 msgid ""
-"Cannot open progress note editor for\n"
 "\n"
-"[%s].\n"
+" Code: %s"
+msgstr "Chiusa"
+
+#, python-format
+msgid ""
 "\n"
+" Details (first 250 characters):\n"
+"%s\n"
+"%s\n"
+"%s"
 msgstr ""
 
-msgid "opening progress note editor"
-msgstr ""
+#, fuzzy
+msgid "Access violation"
+msgstr "Abbreviazione"
 
-msgid "Cannot save all editors. Some were kept open."
+#, python-format
+msgid ""
+"You do not have access to this part of GNUmed.\n"
+"\n"
+"%s"
 msgstr ""
 
-msgid "new problem"
+msgid "Lost connection"
 msgstr ""
 
 msgid ""
-"Are you sure you really want to\n"
-"discard this progress note ?\n"
+"Since you were last working in GNUmed,\n"
+"your database connection timed out.\n"
+"\n"
+"This GNUmed session is now expired.\n"
+"\n"
+"You will have to close this client and\n"
+"restart a new GNUmed session."
 msgstr ""
 
-msgid "Discarding progress note"
+msgid ""
+"Please enter a short note on what you\n"
+"were about to do in GNUmed:"
 msgstr ""
 
-msgid "There are unsaved progress notes !\n"
-msgstr ""
+msgid "Sending bug report"
+msgstr "Invio segnalazione bug"
 
-msgid "Unsaved progress notes"
+msgid ""
+"Edit the list of email addresses to send the\n"
+"bug report to (separate addresses by spaces).\n"
+"\n"
+"Note that <gnumed-bugs at gnu.org> refers to\n"
+"the public (!) GNUmed bugs mailing list."
 msgstr ""
 
 #, python-format
-msgid "Synopsis (%s)"
-msgstr ""
-
 msgid ""
-"Enter a short working name for this new problem\n"
-"(which will become a new, unassociated episode):\n"
-msgstr ""
-
-#, python-format
-msgid ""
-"Enter a short working name for this new\n"
-"episode under the existing health issue\n"
+"Your bug report will be sent to:\n"
 "\n"
-"\"%s\":\n"
+"%s\n"
+"\n"
+"Make sure you have reviewed the log file for potentially\n"
+"sensitive information before sending out the bug report.\n"
+"\n"
+"Note that emailing the report may take a while depending\n"
+"on the speed of your internet connection.\n"
 msgstr ""
 
-msgid "Creating problem (episode) to save notelet under ..."
-msgstr ""
+msgid "Yes, send the bug report."
+msgstr "Sì, manda la segnalazione bug."
 
-msgid "Cannot save a new problem without a name."
-msgstr ""
+msgid "No, do not send the bug report."
+msgstr "No, non mandare la segnalazione bug."
 
-msgid "saving progress note"
-msgstr ""
+msgid "include log file in bug report"
+msgstr "includi registro nella segnalazione bug"
 
-#, python-format
 msgid ""
-"The new episode:\n"
-"\n"
-" \"%s\"\n"
+"The database you are connected to is marked as\n"
+"\"in-production with controlled access\".\n"
 "\n"
-"will remain unassociated despite the editor\n"
-"having been invoked from the health issue:\n"
+"You indicated that you want to include the log\n"
+"file in your bug report. While this is often\n"
+"useful for debugging the log file might contain\n"
+"bits of patient data which must not be sent out\n"
+"without de-identification.\n"
 "\n"
-" \"%s\""
+"Please confirm that you want to include the log !"
 msgstr ""
 
-msgid "You need to actually set an editor."
-msgstr ""
+msgid "<not supplied>"
+msgstr "<non disponibile>"
 
-#, python-format
-msgid "The command [%s] is not found."
-msgstr ""
+msgid "Bug report has been emailed."
+msgstr "La segnalazione bug è stata inviata per email."
 
-#, python-format
-msgid ""
-"Enter the shell command with which to start\n"
-"the image editor for visual progress notes.\n"
-"\n"
-"Any \"%(img)s\" included with the arguments\n"
-"will be replaced by the file name of the\n"
-"note template."
+msgid "Bug report COULD NOT be emailed."
 msgstr ""
 
-msgid "Choose file to use as template for new visual progress note"
-msgstr ""
+msgid "Underweight"
+msgstr "Sottopeso"
 
-#, fuzzy
-msgid "Visual progress note source"
-msgstr "progressi, note"
+msgid "63< Normal >79"
+msgstr "63< Normale >79"
 
-msgid "From which source do you want to pick the image template ?"
-msgstr ""
+msgid "63 - Normal - 79"
+msgstr "63 - Normale - 79"
 
-#, fuzzy
-msgid "Database"
-msgstr "Database..."
+msgid "Overweight"
+msgstr "Sovrappeso"
 
-#, fuzzy
-msgid "List of templates in the database."
-msgstr "Salva il dato inserito nel database."
+msgid "Obese"
+msgstr "Obeso"
 
-msgid "Files in the filesystem."
+msgid "Current height/mass"
 msgstr ""
 
-msgid "Device"
-msgstr "Dispositivo"
+msgid "Height (cm)"
+msgstr "Altezza (cm)"
 
-msgid "Image capture devices (scanners, cameras, etc)"
-msgstr ""
+msgid "Mass (kg)"
+msgstr "Peso (kg)"
 
-#, python-format
-msgid "Cannot export visual progress note template for [%s]."
-msgstr ""
+msgid "Adjusted Values"
+msgstr "Valori corretti"
 
-msgid "Cannot export visual progress note to file."
+msgid "Goal mass"
 msgstr ""
 
-msgid "Editor for visual progress note not configured."
-msgstr ""
+msgid "kg to lose"
+msgstr "kg da perdere"
 
-#, python-format
-msgid ""
-"There was a problem with running the editor\n"
-"for visual progress notes.\n"
-"\n"
-" [%s]\n"
-"\n"
-msgstr ""
+msgid "BMI Calculator"
+msgstr "Calcolatore BMI"
 
-msgid "Editing visual progress note"
-msgstr ""
+msgid "&Reset"
+msgstr "&Ripristina"
 
-#, python-format
-msgid ""
-"There was a problem reading the visual\n"
-"progress note from the file:\n"
-"\n"
-" [%s]\n"
-"\n"
+msgid "Select a healthcare provider."
 msgstr ""
 
-msgid "Saving visual progress note"
+msgid "Public (no clinical or demographic access)"
 msgstr ""
 
-msgid ""
-"You either created a visual progress note from a template\n"
-"in the database (rather than from a file on disk) or you\n"
-"edited an existing visual progress note.\n"
-"\n"
-"The template/original was not modified at all, however.\n"
-"\n"
-"Do you still want to save the unmodified image as a\n"
-"visual progress note into the EMR of the patient ?\n"
+msgid "Staff (demographic access only)"
 msgstr ""
 
-msgid "visual progress notes"
+msgid "staff (clerical)"
 msgstr ""
 
-#, python-format
-msgid "Created: %s"
+msgid "full clinical access"
 msgstr ""
 
-#, fuzzy
-msgid "Problem list"
-msgstr "Problema"
-
-msgid "Saving SOAP note"
+msgid "DB account"
 msgstr ""
 
-#, fuzzy
-msgid "Do you want to save the SOAP note ?"
+msgid "can login"
 msgstr ""
-"Vuoi veramente cancellare questo\n"
-"ID esterno dal paziente?"
 
-#, python-format
-msgid "&Filter by problem %s%s%s"
+msgid "can not login"
 msgstr ""
 
-#, fuzzy
-msgid "Cannot save SimpleNotes SOAP note."
-msgstr "Non posso salvare la richiesta di laboratorio."
+msgid "Activating GNUmed user."
+msgstr ""
 
-#, fuzzy, python-format
-msgid "Progress note: %s%s"
-msgstr "Progressi, note"
+msgid "Deactivating GNUmed user."
+msgstr ""
 
 #, fuzzy
-msgid "Please enter a name for the new problem:"
-msgstr "Inserisci la tua pass frase:"
+msgid "Removing GNUmed user."
+msgstr "Modulo GNUmed mancante"
 
 #, fuzzy
-msgid "Adding a problem"
-msgstr "Aggiungi provincia"
+msgid "Removing GNUmed user"
+msgstr "Modulo GNUmed mancante"
 
-#, fuzzy
-msgid "Cannot delete problem. There is still clinical data recorded for it."
+msgid "Modifying GNUmed user."
 msgstr ""
-"Impossibile cancellare episodio. Ci sono ancora dati clinici corrispondenti "
-"registrati."
-
-#, python-format
-msgid "GNUmed: configuring [%s] (%s plugins)"
-msgstr "GNUmed: sto configurando [%s] (%s plugins)"
 
-msgid "loading list of plugins                               "
+msgid "Failed to save changes to GNUmed database user."
 msgstr ""
 
-msgid "failed"
-msgstr "Non riuscito"
+msgid "Modifying GNUmed user"
+msgstr ""
 
-msgid "success"
-msgstr "azione riuscita"
+#, python-format
+msgid "Failed to set role [%s] for GNUmed database user."
+msgstr ""
 
 #, python-format
 msgid ""
-"previous: %s (%s)\n"
-"current (%s/%s): %s"
+"\n"
+"  %s \"%s\" %s\n"
+"  born: %s"
 msgstr ""
-"precedente: %s (%s)\n"
-"attuale (%s/%s): %s"
 
-#, python-format
-msgid "Cannot switch to [%s]: no patient selected"
-msgstr "Non posso passare a [%s]: nessun paziente selezionato"
+msgid ""
+"Password entries do not match. Please type in the passwords again to rule "
+"out typos."
+msgstr ""
 
-msgid "Pick a date ..."
+msgid "Adding GNUmed user"
 msgstr ""
 
-msgid "<ALT-C/K>: pick from (c/k)alendar"
+msgid ""
+"Are you positively sure you want to create\n"
+"a user with an empty password ?\n"
+"\n"
+"Think about the record access implications !"
 msgstr ""
 
-msgid "Cannot interpret input as timestamp."
+msgid "Enlisting person as user."
 msgstr ""
 
-msgid "No vaccines were chosen"
-msgstr "Nessun vaccino è stato scelto"
+msgid "Encrypt"
+msgstr "Codifica"
 
-#, python-format
-msgid "Combination of indications , %s , not found in any vaccine"
-msgstr ""
+msgid "Decrypt"
+msgstr "Decodifica"
 
-msgid "Sequence"
-msgstr "Sequenza"
+msgid "Set pass phrase"
+msgstr "Imposta pass frase"
 
-msgid "Batch"
-msgstr "Gruppo"
+msgid "This is not correctly encrypted text!"
+msgstr "Questo testo non è correttamente codificato!"
 
-msgid "Vaccinator"
-msgstr "Vaccinatore"
+msgid "Please enter your pass phrase:"
+msgstr "Inserisci la tua pass frase:"
+
+msgid "Pass phrase expired"
+msgstr "Pass frase scaduta"
 
 msgid ""
-"Vaccinations by Recommender (X = patient on regime, O = patient not on "
-"regime) "
+"\n"
+"Conditions preventable by vaccination as currently known to GNUmed.\n"
 msgstr ""
 
-msgid "enrolled regime vaccinations not yet given"
+msgid "Showing vaccination preventable conditions."
 msgstr ""
 
-#, fuzzy
-msgid "Proceed with "
-msgstr "Procedi con l'accesso."
+msgid "ATCs: single-condition vaccines"
+msgstr ""
 
-#, python-format
-msgid "Failed to enrol patient in %s"
-msgstr "Fallita l'iscrizione del paziente in %s"
+msgid "ATCs: multi-condition vaccines"
+msgstr ""
 
-#, python-format
-msgid "Failed to  delist patient from %s"
-msgstr "Fallita l'eliminazione del paziente dalla lista %s"
+#, fuzzy
+msgid "Pick the relevant indications."
+msgstr "Stampa la lista di farmaci."
 
-msgid "Missing GNUmed module"
-msgstr "Modulo GNUmed mancante"
+#, fuzzy
+msgid "Known indications"
+msgstr "Indicazione"
 
-#, python-format
-msgid ""
-"GNUmed detected that parts of it are not\n"
-"properly installed. The following message\n"
-"names the missing part:\n"
-"\n"
-" \"%s\"\n"
-"\n"
-"Please make sure to get the missing\n"
-"parts installed. Otherwise some of the\n"
-"functionality will not be accessible."
+msgid "Adding new vaccine"
 msgstr ""
 
-#, fuzzy, python-format
-msgid ""
-"\n"
-" Source: %s"
-msgstr "Fonte"
-
-#, fuzzy, python-format
-msgid ""
-"\n"
-" Code: %s"
-msgstr "Chiusa"
+msgid "Editing vaccine"
+msgstr ""
 
 #, python-format
 msgid ""
+"Cannot delete vaccine\n"
 "\n"
-" Details (first 250 characters):\n"
-"%s\n"
-"%s\n"
-"%s"
+" %s - %s (#%s)\n"
+"\n"
+"It is probably documented in a vaccination."
 msgstr ""
 
-#, fuzzy
-msgid "Access violation"
-msgstr "Abbreviazione"
-
-#, python-format
-msgid ""
-"You do not have access to this part of GNUmed.\n"
-"\n"
-"%s"
+msgid "Deleting vaccine"
 msgstr ""
 
-msgid "Lost connection"
+msgid "fake"
 msgstr ""
 
 msgid ""
-"Since you were last working in GNUmed,\n"
-"your database connection timed out.\n"
-"\n"
-"This GNUmed session is now expired.\n"
 "\n"
-"You will have to close this client and\n"
-"restart a new GNUmed session."
+"The vaccines currently known to GNUmed.\n"
 msgstr ""
 
-msgid ""
-"Please enter a short note on what you\n"
-"were about to do in GNUmed:"
+msgid "Showing vaccines."
 msgstr ""
 
-msgid "Sending bug report"
-msgstr "Invio segnalazione bug"
+msgid "Enter or select the batch/lot number of the vaccine used."
+msgstr ""
 
-msgid ""
-"Edit the list of email addresses to send the\n"
-"bug report to (separate addresses by spaces).\n"
-"\n"
-"Note that <gnumed-bugs at gnu.org> refers to\n"
-"the public (!) GNUmed bugs mailing list."
+msgid "Saving vaccine"
 msgstr ""
 
 #, python-format
 msgid ""
-"Your bug report will be sent to:\n"
+"This vaccine is already in use:\n"
 "\n"
-"%s\n"
+" \"%s\"\n"
+" (%s)\n"
 "\n"
-"Make sure you have reviewed the log file for potentially\n"
-"sensitive information before sending out the bug report.\n"
+"Are you absolutely positively sure that\n"
+"you really want to edit this vaccine ?\n"
 "\n"
-"Note that emailing the report may take a while depending\n"
-"on the speed of your internet connection.\n"
+"This will change the vaccine name and/or target\n"
+"conditions in each patient this vaccine was\n"
+"used in to document a vaccination with.\n"
 msgstr ""
 
-msgid "Yes, send the bug report."
-msgstr "Sì, manda la segnalazione bug."
-
-msgid "No, do not send the bug report."
-msgstr "No, non mandare la segnalazione bug."
-
-msgid "include log file in bug report"
-msgstr "includi registro nella segnalazione bug"
+#, fuzzy
+msgid "You must select at least one indication."
+msgstr "Devi scegliere un file modello prima di salvare."
 
-msgid ""
-"The database you are connected to is marked as\n"
-"\"in-production with controlled access\".\n"
-"\n"
-"You indicated that you want to include the log\n"
-"file in your bug report. While this is often\n"
-"useful for debugging the log file might contain\n"
-"bits of patient data which must not be sent out\n"
-"without de-identification.\n"
-"\n"
-"Please confirm that you want to include the log !"
+msgid "Pick the diseases this vaccine protects against."
 msgstr ""
 
-msgid "<not supplied>"
-msgstr "<non disponibile>"
-
-msgid "Bug report has been emailed."
-msgstr "La segnalazione bug è stata inviata per email."
+#, fuzzy
+msgid "This vaccine"
+msgstr "vaccino"
 
-msgid "Bug report COULD NOT be emailed."
+msgid "Adding new vaccinations"
 msgstr ""
 
-msgid "Underweight"
-msgstr "Sottopeso"
+msgid "Editing vaccination"
+msgstr ""
 
-msgid "63< Normal >79"
-msgstr "63< Normale >79"
+#, fuzzy
+msgid "vaccination recall"
+msgstr "Vaccinazione"
 
-msgid "63 - Normal - 79"
-msgstr "63 - Normale - 79"
+#, fuzzy, python-format
+msgid "vaccination recall (%s)"
+msgstr "Vaccinazioni"
 
-msgid "Overweight"
-msgstr "Sovrappeso"
+#, fuzzy, python-format
+msgid ""
+"Existing vaccination:\n"
+"\n"
+"%s"
+msgstr "Ultime vaccinazioni"
 
-msgid "Obese"
-msgstr "Obeso"
+msgid ""
+"\n"
+"Complete vaccination history for this patient.\n"
+msgstr ""
 
-msgid "Current height/mass"
+msgid "Showing vaccinations."
 msgstr ""
 
-msgid "Height (cm)"
-msgstr "Altezza (cm)"
+msgid "Intended to protect from"
+msgstr ""
 
-msgid "Mass (kg)"
-msgstr "Peso (kg)"
+#, fuzzy
+msgid "Print vaccinations or recalls."
+msgstr "Vaccinazione"
 
-msgid "Adjusted Values"
-msgstr "Valori corretti"
+#, fuzzy
+msgid "Recall"
+msgstr "Dettagli Richiamo"
 
-msgid "Goal mass"
+msgid "Add a recall for a vaccination"
 msgstr ""
 
-msgid "kg to lose"
-msgstr "kg da perdere"
-
-msgid "BMI Calculator"
-msgstr "Calcolatore BMI"
-
-msgid "&Reset"
-msgstr "&Ripristina"
+#, fuzzy
+msgid "Vx schedules"
+msgstr "Pianificazione"
 
-msgid "Select a healthcare provider."
+msgid "Open a browser showing vaccination schedules."
 msgstr ""
 
-msgid "Public (no clinical or demographic access)"
+msgid "prevention"
 msgstr ""
 
-msgid "Staff (demographic access only)"
-msgstr ""
+#, fuzzy
+msgid "Saving vaccination"
+msgstr "Ultime vaccinazioni"
 
-msgid "staff (clerical)"
+msgid "Pick the diseases this vaccination was given against."
 msgstr ""
 
-msgid "full clinical access"
+msgid "  IMMUNISATIONS  "
 msgstr ""
 
-msgid "DB account"
+msgid "Indications"
 msgstr ""
 
-msgid "can login"
+msgid "Active Schedules"
 msgstr ""
 
-msgid "can not login"
+msgid "Missing Immunisations"
 msgstr ""
 
-msgid "Activating GNUmed user."
+msgid "  Alerts  "
 msgstr ""
 
-msgid "Deactivating GNUmed user."
+msgid "ERROR: cannot retrieve active vaccination schedules"
 msgstr ""
 
-#, fuzzy
-msgid "Removing GNUmed user."
-msgstr "Modulo GNUmed mancante"
-
-#, fuzzy
-msgid "Removing GNUmed user"
-msgstr "Modulo GNUmed mancante"
+msgid "no active vaccination schedules"
+msgstr ""
 
-msgid "Modifying GNUmed user."
+#, python-format
+msgid "%s for %s (%s shots): %s"
 msgstr ""
 
-msgid "Failed to save changes to GNUmed database user."
+msgid "ERROR: cannot retrieve due/overdue vaccinations"
 msgstr ""
 
-msgid "Modifying GNUmed user"
+#, python-format
+msgid "%.0d weeks left: shot %s for %s in %s, due %s (%s)"
 msgstr ""
 
 #, python-format
-msgid "Failed to set role [%s] for GNUmed database user."
+msgid "overdue %.0dyrs %.0dwks: shot %s for %s in schedule \"%s\" (%s)"
 msgstr ""
 
 #, python-format
-msgid ""
-"\n"
-"  %s \"%s\" %s\n"
-"  born: %s"
+msgid "due now: booster for %s in schedule \"%s\" (%s)"
 msgstr ""
 
-msgid ""
-"Password entries do not match. Please type in the passwords again to rule "
-"out typos."
+#, python-format
+msgid "Synopsis (%s)"
 msgstr ""
 
-msgid "Adding GNUmed user"
+msgid ""
+"Enter a short working name for this new problem\n"
+"(which will become a new, unassociated episode):\n"
 msgstr ""
 
+#, python-format
 msgid ""
-"Are you positively sure you want to create\n"
-"a user with an empty password ?\n"
+"Enter a short working name for this new\n"
+"episode under the existing health issue\n"
 "\n"
-"Think about the record access implications !"
+"\"%s\":\n"
 msgstr ""
 
-msgid "Enlisting person as user."
+msgid "Creating problem (episode) to save notelet under ..."
 msgstr ""
 
-msgid "Encrypt"
-msgstr "Codifica"
+msgid "Cannot save a new problem without a name."
+msgstr ""
 
-msgid "Decrypt"
-msgstr "Decodifica"
-
-msgid "Set pass phrase"
-msgstr "Imposta pass frase"
-
-msgid "This is not correctly encrypted text!"
-msgstr "Questo testo non è correttamente codificato!"
-
-msgid "Please enter your pass phrase:"
-msgstr "Inserisci la tua pass frase:"
-
-msgid "Pass phrase expired"
-msgstr "Pass frase scaduta"
-
-msgid ""
-"\n"
-"Conditions preventable by vaccination as currently known to GNUmed.\n"
-msgstr ""
-
-msgid "Showing vaccination preventable conditions."
-msgstr ""
-
-msgid "ATCs: single-condition vaccines"
-msgstr ""
-
-msgid "ATCs: multi-condition vaccines"
-msgstr ""
-
-#, fuzzy
-msgid "Pick the relevant indications."
-msgstr "Stampa la lista di farmaci."
-
-#, fuzzy
-msgid "Known indications"
-msgstr "Indicazione"
-
-msgid "Adding new vaccine"
-msgstr ""
-
-msgid "Editing vaccine"
-msgstr ""
-
-#, python-format
-msgid ""
-"Cannot delete vaccine\n"
-"\n"
-" %s - %s (#%s)\n"
-"\n"
-"It is probably documented in a vaccination."
-msgstr ""
-
-msgid "Deleting vaccine"
-msgstr ""
-
-msgid "fake"
-msgstr ""
-
-msgid ""
-"\n"
-"The vaccines currently known to GNUmed.\n"
-msgstr ""
-
-msgid "Showing vaccines."
-msgstr ""
-
-msgid "Enter or select the batch/lot number of the vaccine used."
-msgstr ""
-
-msgid "Saving vaccine"
+msgid "saving progress note"
 msgstr ""
 
 #, python-format
 msgid ""
-"This vaccine is already in use:\n"
+"The new episode:\n"
 "\n"
 " \"%s\"\n"
-" (%s)\n"
-"\n"
-"Are you absolutely positively sure that\n"
-"you really want to edit this vaccine ?\n"
-"\n"
-"This will change the vaccine name and/or target\n"
-"conditions in each patient this vaccine was\n"
-"used in to document a vaccination with.\n"
-msgstr ""
-
-#, fuzzy
-msgid "You must select at least one indication."
-msgstr "Devi scegliere un file modello prima di salvare."
-
-msgid "Pick the diseases this vaccine protects against."
-msgstr ""
-
-#, fuzzy
-msgid "This vaccine"
-msgstr "vaccino"
-
-msgid "Adding new vaccinations"
-msgstr ""
-
-msgid "Editing vaccination"
-msgstr ""
-
-#, fuzzy
-msgid "vaccination recall"
-msgstr "Vaccinazione"
-
-#, fuzzy, python-format
-msgid "vaccination recall (%s)"
-msgstr "Vaccinazioni"
-
-#, fuzzy, python-format
-msgid ""
-"Existing vaccination:\n"
 "\n"
-"%s"
-msgstr "Ultime vaccinazioni"
-
-msgid ""
+"will remain unassociated despite the editor\n"
+"having been invoked from the health issue:\n"
 "\n"
-"Complete vaccination history for this patient.\n"
-msgstr ""
-
-msgid "Showing vaccinations."
-msgstr ""
-
-msgid "Intended to protect from"
+" \"%s\""
 msgstr ""
 
 #, fuzzy
-msgid "Print vaccinations or recalls."
-msgstr "Vaccinazione"
+msgid "Adding substance abuse"
+msgstr "Aggiungi una sostanza."
 
 #, fuzzy
-msgid "Recall"
-msgstr "Dettagli Richiamo"
+msgid "Editing substance abuse"
+msgstr "Edita l'indirizzo"
 
-msgid "Add a recall for a vaccination"
+msgid "Substances abused by the patient:"
 msgstr ""
 
 #, fuzzy
-msgid "Vx schedules"
-msgstr "Pianificazione"
+msgid "Showing abused substances."
+msgstr "Unire i pazienti"
 
-msgid "Open a browser showing vaccination schedules."
+msgid "Intake"
 msgstr ""
 
-msgid "prevention"
+msgid "nicotine"
 msgstr ""
 
 #, fuzzy
-msgid "Saving vaccination"
-msgstr "Ultime vaccinazioni"
-
-msgid "Pick the diseases this vaccination was given against."
-msgstr ""
-
-msgid "  IMMUNISATIONS  "
-msgstr ""
-
-msgid "Indications"
-msgstr ""
-
-msgid "Active Schedules"
-msgstr ""
-
-msgid "Missing Immunisations"
-msgstr ""
-
-msgid "  Alerts  "
-msgstr ""
-
-msgid "ERROR: cannot retrieve active vaccination schedules"
-msgstr ""
-
-msgid "no active vaccination schedules"
-msgstr ""
-
-#, python-format
-msgid "%s for %s (%s shots): %s"
-msgstr ""
-
-msgid "ERROR: cannot retrieve due/overdue vaccinations"
-msgstr ""
-
-#, python-format
-msgid "%.0d weeks left: shot %s for %s in %s, due %s (%s)"
-msgstr ""
-
-#, python-format
-msgid "overdue %.0dyrs %.0dwks: shot %s for %s in schedule \"%s\" (%s)"
-msgstr ""
-
-#, python-format
-msgid "due now: booster for %s in schedule \"%s\" (%s)"
-msgstr ""
+msgid "unit"
+msgstr "unità"
 
 #, fuzzy, python-format
-msgid "Latest: %s ago (%s %s %s %s%s)"
+msgid "Latest: %s ago (%s %s%s%s%s)"
 msgstr "  il tuo tempo: %s - %s  (@%s = %s%s)\n"
 
 #, fuzzy, python-format
-msgid "%s %s %s %s (%s ago, %s)"
+msgid "%s %s%s%s (%s ago, %s)"
 msgstr "%s%7s %s: %s (%s parte(i), %s)"
 
 #, fuzzy, python-format
@@ -9942,6 +10251,13 @@ msgstr "Chiusa"
 msgid "due in %s%s"
 msgstr "Chiusa"
 
+msgid "suppr'd:"
+msgstr ""
+
+#, fuzzy
+msgid "Suppressed hints:\n"
+msgstr "progressi, note"
+
 #, fuzzy
 msgid ""
 "Do you really want to\n"
@@ -9999,10 +10315,17 @@ msgid ""
 msgstr ""
 
 #, fuzzy, python-format
-msgid "%s Vacc: %s"
+msgid "%s Vacc: %s (latest of %s)"
 msgstr "Chiusa"
 
 #, fuzzy, python-format
+msgid "Hx of addiction: %s"
+msgstr "Ricoveri ospedalieri: %s"
+
+msgid "active substance abuse"
+msgstr ""
+
+#, fuzzy, python-format
 msgid "%s %s %s%s"
 msgstr " Stato: %s, %s%s"
 
@@ -10179,63 +10502,163 @@ msgid ""
 "You will have to add it via the Demographics plugin.\n"
 msgstr ""
 
-msgid "You must select a value from the picklist or type an exact match."
+msgid "You need to actually set an editor."
 msgstr ""
 
 #, python-format
-msgid ""
-"The content is invalid. It must match the regular expression: [%%s]. <%s>"
+msgid "The command [%s] is not found."
 msgstr ""
 
-msgid "Latin"
+#, python-format
+msgid ""
+"Enter the shell command with which to start\n"
+"the image editor for visual progress notes.\n"
+"\n"
+"Any \"%(img)s\" included with the arguments\n"
+"will be replaced by the file name of the\n"
+"note template."
 msgstr ""
 
-msgid "Greek"
+msgid "Choose file to use as template for new visual progress note"
 msgstr ""
 
-msgid "Cyrillic"
-msgstr ""
+#, fuzzy
+msgid "Visual progress note source"
+msgstr "progressi, note"
 
-msgid "Four Es"
+msgid "From which source do you want to pick the image template ?"
 msgstr ""
 
-msgid "Symbol"
-msgstr ""
+#, fuzzy
+msgid "Database"
+msgstr "Database..."
 
-msgid "Snellen Chart"
-msgstr ""
+#, fuzzy
+msgid "List of templates in the database."
+msgstr "Salva il dato inserito nel database."
 
-msgid "Snellen Chart Setup"
+msgid "Files in the filesystem."
 msgstr ""
 
-msgid "Screen Height (cm): "
-msgstr ""
+msgid "Device"
+msgstr "Dispositivo"
 
-msgid "Screen Width (cm): "
+msgid "Image capture devices (scanners, cameras, etc)"
 msgstr ""
 
-msgid "Alphabet: "
+#, python-format
+msgid "Cannot export visual progress note template for [%s]."
 msgstr ""
 
-msgid "Mirror"
+msgid "Cannot export visual progress note to file."
 msgstr ""
 
-msgid ""
-"Control Snellen chart using mouse:\n"
-"left-click increases text\n"
-"right-click decreases text\n"
-"double-click ends"
+msgid "Editor for visual progress note not configured."
 msgstr ""
 
-msgid " OK "
+#, python-format
+msgid ""
+"There was a problem with running the editor\n"
+"for visual progress notes.\n"
+"\n"
+" [%s]\n"
+"\n"
 msgstr ""
 
-msgid " Cancel "
+msgid "Editing visual progress note"
 msgstr ""
 
 #, python-format
-msgid "invalid placeholder >>>>>%s<<<<<"
-msgstr ""
+msgid ""
+"There was a problem reading the visual\n"
+"progress note from the file:\n"
+"\n"
+" [%s]\n"
+"\n"
+msgstr ""
+
+msgid "Saving visual progress note"
+msgstr ""
+
+msgid ""
+"You either created a visual progress note from a template\n"
+"in the database (rather than from a file on disk) or you\n"
+"edited an existing visual progress note.\n"
+"\n"
+"The template/original was not modified at all, however.\n"
+"\n"
+"Do you still want to save the unmodified image as a\n"
+"visual progress note into the EMR of the patient ?\n"
+msgstr ""
+
+msgid "visual progress notes"
+msgstr ""
+
+#, fuzzy, python-format
+msgid " [part 1 of %s]"
+msgstr "parte %2s"
+
+#, fuzzy, python-format
+msgid "Created: %s%s"
+msgstr "Crea nuovo"
+
+msgid "You must select a value from the picklist or type an exact match."
+msgstr ""
+
+#, python-format
+msgid ""
+"The content is invalid. It must match the regular expression: [%%s]. <%s>"
+msgstr ""
+
+msgid "Latin"
+msgstr ""
+
+msgid "Greek"
+msgstr ""
+
+msgid "Cyrillic"
+msgstr ""
+
+msgid "Four Es"
+msgstr ""
+
+msgid "Symbol"
+msgstr ""
+
+msgid "Snellen Chart"
+msgstr ""
+
+msgid "Snellen Chart Setup"
+msgstr ""
+
+msgid "Screen Height (cm): "
+msgstr ""
+
+msgid "Screen Width (cm): "
+msgstr ""
+
+msgid "Alphabet: "
+msgstr ""
+
+msgid "Mirror"
+msgstr ""
+
+msgid ""
+"Control Snellen chart using mouse:\n"
+"left-click increases text\n"
+"right-click decreases text\n"
+"double-click ends"
+msgstr ""
+
+msgid " OK "
+msgstr ""
+
+msgid " Cancel "
+msgstr ""
+
+#, python-format
+msgid "invalid placeholder >>>>>%s<<<<<"
+msgstr ""
 
 #, python-format
 msgid "due %(due_date)s: %(comment)s (%(interval_due)s)"
@@ -10260,7 +10683,8 @@ msgstr ""
 
 #, python-format
 msgid ""
-"%(street)s %(number)s, %(postcode)s %(urb)s, %(l10n_state)s, %(l10n_country)s"
+"%(street)s %(number)s, %(postcode)s %(urb)s, %(l10n_region)s, "
+"%(l10n_country)s"
 msgstr ""
 
 #, python-format
@@ -10892,7 +11316,7 @@ msgstr "Salvataggio dei dati del contatto"
 msgid ""
 "Cannot save address.\n"
 "\n"
-"Does the state [%s]\n"
+"Does the region [%s]\n"
 "exist in country [%s] ?"
 msgstr ""
 
@@ -11338,8 +11762,9 @@ msgstr "Chiusa"
 msgid "Reminders for the current patient"
 msgstr "Scrivi una lettere per il paziente corrente."
 
-msgid "Sent"
-msgstr ""
+#, fuzzy
+msgid "Generated"
+msgstr "Generalizzato"
 
 msgid "Category - Type"
 msgstr ""
@@ -11387,9 +11812,6 @@ msgid ""
 "Data: %s"
 msgstr ""
 
-msgid "Inbox Message Actions:"
-msgstr ""
-
 msgid "Activate patient"
 msgstr ""
 
@@ -12127,7 +12549,7 @@ msgid ""
 msgstr ""
 
 #, python-format
-msgid "Select branch (of praxis [%s]) which you are logging in from.\n"
+msgid "Select the branch of praxis [%s] which you are logging in from.\n"
 msgstr ""
 
 msgid "Praxis branch selection ..."
@@ -12454,6 +12876,14 @@ msgstr "Riassegnazione tipo di documento"
 msgid "List of addresses related to this person."
 msgstr "Sposta i dati a un altro episodio"
 
+#, fuzzy
+msgid "Map"
+msgstr "Sig."
+
+#, fuzzy
+msgid "Show selected address on map"
+msgstr "un indirizzo deve essere selezionato"
+
 msgid "Adding new address"
 msgstr "Aggiungi il nuovo indirizzo"
 
@@ -12654,8 +13084,91 @@ msgid "generic multi choice dialog"
 msgstr ""
 
 #, fuzzy
-msgid "Search in list"
-msgstr "Risultati cercati"
+msgid "Deleting list items"
+msgstr "Elimina tutti gli Elementi"
+
+#, python-format
+msgid ""
+"You have selected %s list items.\n"
+"\n"
+"Really delete all %s items ?"
+msgstr ""
+
+msgid ""
+"Select the items you want to work on.\n"
+"\n"
+"A discontinuous selection may depend on your holding down a platform-"
+"dependent modifier key (<CTRL>, <ALT>, etc) or key combination (eg. <CTRL-"
+"SHIFT> or <CTRL-ALT>) while clicking."
+msgstr ""
+
+#, fuzzy
+msgid "List Item Actions:"
+msgstr "Episodio %s"
+
+msgid "Add (<INS>)"
+msgstr ""
+
+#, fuzzy
+msgid "Delete (<DEL>)"
+msgstr "Elimina"
+
+msgid "Find (<CTRL-F>)"
+msgstr ""
+
+#, python-format
+msgid "Find next [%s] (<CTRL-N>)"
+msgstr ""
+
+msgid "Row tooltip"
+msgstr ""
+
+msgid "Row data (formatted as text)"
+msgstr ""
+
+msgid "Row content (as one line)"
+msgstr ""
+
+msgid "Row content (one line per column)"
+msgstr ""
+
+#, python-format
+msgid "Column &%s: \"%s\" [#%s]"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "Column &%s: %s"
+msgstr "Documenti: %s"
+
+#, fuzzy
+msgid "&Copy to clipboard..."
+msgstr "Muovi il paziente su."
+
+#, fuzzy
+msgid "Append (&+) to clipboard..."
+msgstr "Muovi il paziente su."
+
+#, python-format
+msgid ""
+"%s list items are selected.\n"
+"\n"
+"Really delete all %s items ?"
+msgstr ""
+
+#, fuzzy
+msgid "Enter the search term:"
+msgstr "Cerca per"
+
+#, fuzzy
+msgid "List search"
+msgstr "Cerca"
+
+#, python-format
+msgid ""
+"Current search term: [[%s]]\n"
+"\n"
+"%s"
+msgstr ""
 
 msgid "Monty the Serpent && the FSF Present"
 msgstr ""
@@ -12814,6 +13327,10 @@ msgstr ""
 msgid "Unknown: ?"
 msgstr "Sconosciuta"
 
+#, fuzzy
+msgid "The text has been copied into the clipboard."
+msgstr "Rimuovi la/le voce/i selezionata/e dalla lista."
+
 msgid "file2clipboard"
 msgstr ""
 
@@ -12821,6 +13338,45 @@ msgstr ""
 msgid "The file [%s] has been copied into the clipboard."
 msgstr ""
 
+msgid "programmer forgot to specify error message"
+msgstr "il programmatore ha dimenticato di specificare il messaggio d'errore"
+
+msgid ""
+"\n"
+"\n"
+"Please consult the error log for all the gory details !"
+msgstr ""
+"\n"
+"\n"
+"Si prega di consultare il log di errore per tutti i dettagli !"
+
+msgid "generic error message"
+msgstr "messaggio d'errore generico"
+
+msgid "programmer forgot to specify info message"
+msgstr ""
+"il programmatore ha dimenticato di specificare il messaggio d'informazione"
+
+msgid "generic info message"
+msgstr "messaggio d'informazione generico"
+
+msgid "programmer forgot to specify warning"
+msgstr "il programmatore ha dimenticato di specificare l'avvertimento"
+
+msgid "generic warning message"
+msgstr "messaggio d'avvertimento generico"
+
+#, fuzzy
+msgid "Editing EDC"
+msgstr "storia medica passata"
+
+#, python-format
+msgid ""
+"Really delete the EDC documented previously ?\n"
+"\n"
+" EDC: %s"
+msgstr ""
+
 #, python-format
 msgid ""
 "Algorithm: %s\n"
@@ -12931,15 +13487,16 @@ msgstr "Cognome"
 msgid "Firstname"
 msgstr "Nome"
 
-msgid "Nickname"
-msgstr "Pseudonimo"
-
 msgid "DOB"
 msgstr ""
 
 msgid "last visit"
 msgstr "ultima visita"
 
+#, fuzzy
+msgid "Nickname / Comment"
+msgstr "Pseudonimo"
+
 msgid "found via"
 msgstr "trovato via"
 
@@ -13129,296 +13686,46 @@ msgstr ""
 msgid "In case of emergency contact:"
 msgstr ""
 
-msgid ""
-"\n"
-"Please select the default drug data source from the list below.\n"
-"\n"
-"Note that to actually use it you need to have the database installed, too."
-msgstr ""
-
-msgid "Drug data source"
+msgid "The preparation (form) of the substance or brand."
 msgstr ""
 
-msgid "Configuring default drug data source"
+msgid "A substance with optional strength or a brand."
 msgstr ""
 
-msgid "No default drug database configured."
-msgstr ""
+#, fuzzy
+msgid "The medical aim for consuming this substance."
+msgstr "L'obiettivo di consumo di questa sostanza."
 
-msgid "There is no default drug database configured."
+msgid "not tolerated:"
 msgstr ""
 
-msgid "Jumping to drug database"
+msgid "discontinued due to allergy or intolerance"
 msgstr ""
 
-#, python-format
-msgid "Cannot call IFAP via [%s]."
+msgid "Documented an allergy"
 msgstr ""
 
 #, python-format
-msgid "Cannot create IFAP <-> GNUmed transfer file [%s]."
-msgstr ""
-
-msgid "Current medication"
-msgstr "Medicazione attuale"
-
 msgid ""
+"An allergy was documented against the substance:\n"
 "\n"
-"The ATC codes as known to GNUmed.\n"
-msgstr ""
-
-msgid "Showing ATC codes."
+"  [%s]\n"
+"\n"
+"This substance was taken with the multi-component brand:\n"
+"\n"
+"  [%s (%s)]\n"
+"\n"
+"Note that ALL components of this brand were discontinued."
 msgstr ""
 
-msgid "Choose an ATC import config file"
-msgstr ""
+#, fuzzy
+msgid "disapproved"
+msgstr "Non Approvato"
 
-msgid "config files"
+msgid "Substances consumed by the patient:"
 msgstr ""
 
-msgid "importing ATC reference data"
-msgstr ""
-
-msgid "Successfully imported ATC reference data."
-msgstr ""
-
-msgid "Importing ATC reference data failed."
-msgstr ""
-
-msgid "Select an ATC (Anatomical-Therapeutic-Chemical) code."
-msgstr ""
-
-msgid "Cannot delete this substance. It is in use."
-msgstr ""
-
-msgid ""
-"\n"
-"These are the consumable substances registered with GNUmed.\n"
-msgstr ""
-
-msgid "Showing consumable substances."
-msgstr ""
-
-msgid "Import"
-msgstr ""
-
-msgid "Import consumable substances from a drug database."
-msgstr ""
-
-msgid "Cannot edit this substance. It is in use."
-msgstr ""
-
-msgid "Adding new consumable substance"
-msgstr ""
-
-msgid "Editing consumable substance"
-msgstr ""
-
-msgid "Cannot save consumable substance. Missing essential input."
-msgstr ""
-
-#, python-format
-msgid "Cannot save consumable substance. %s"
-msgstr ""
-
-msgid "Cannot remove this component from the drug. It is in use."
-msgstr ""
-
-msgid ""
-"\n"
-"These are the components in the drug brands known to GNUmed.\n"
-msgstr ""
-
-msgid "Showing drug brand components."
-msgstr ""
-
-msgid "Adding new drug component"
-msgstr ""
-
-msgid "Editing drug component"
-msgstr ""
-
-msgid "Cannot edit drug component. It is in use."
-msgstr ""
-
-msgid "Cannot save drug component. Invalid or missing essential input."
-msgstr ""
-
-msgid "A drug component with optional strength."
-msgstr ""
-
-msgid "The preparation (form) of the substance or brand."
-msgstr ""
-
-msgid "The substance with optional strength."
-msgstr ""
-
-msgid "Managing components of a drug"
-msgstr ""
-
-#, python-format
-msgid ""
-"Cannot manage the components of the branded drug product\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is currently taken by patients.\n"
-msgstr ""
-
-msgid "Pick the substances which are components of this drug."
-msgstr ""
-
-msgid "Components of drug"
-msgstr ""
-
-#, python-format
-msgid ""
-"Adjust the components of \"%s\"\n"
-"\n"
-"The drug must contain at least one component. Any given\n"
-"substance can only be included once per drug."
-msgstr ""
-
-msgid "Managing components of a drug ..."
-msgstr ""
-
-msgid "not in use"
-msgstr ""
-
-#, python-format
-msgid "ATC: %s\n"
-msgstr ""
-
-msgid "Editing medication"
-msgstr ""
-
-#, python-format
-msgid ""
-"Cannot edit the medication\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is a vaccine. Please edit it\n"
-"from the vaccine management section !\n"
-msgstr ""
-
-msgid "Deleting medication"
-msgstr ""
-
-#, python-format
-msgid ""
-"Cannot delete the medication\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is a vaccine. Please delete it\n"
-"from the vaccine management section !\n"
-msgstr ""
-
-msgid ""
-"\n"
-"These are the drug brands known to GNUmed.\n"
-msgstr ""
-
-msgid "Showing branded drugs."
-msgstr ""
-
-msgid "Import substances and brands from a drug database."
-msgstr ""
-
-msgid "Editing drug"
-msgstr ""
-
-#, python-format
-msgid ""
-"Cannot edit the branded drug product\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is currently taken by patients.\n"
-msgstr ""
-
-msgid "Adding new drug brand"
-msgstr ""
-
-msgid "Editing drug brand"
-msgstr ""
-
-msgid "Manage consumable substances"
-msgstr ""
-
-msgid "Cannot edit drug brand. It is in use."
-msgstr ""
-
-#, fuzzy
-msgid "Checking brand data"
-msgstr "Controllo se ci sono aggiornamenti per il client"
-
-#, python-format
-msgid ""
-"The brand information you entered:\n"
-"\n"
-" [%s %s]\n"
-"\n"
-"already exists as a drug product."
-msgstr ""
-
-msgid ""
-"You have not selected any substances\n"
-"as drug components.\n"
-"\n"
-"Without components you will not be able to\n"
-"use this drug for documenting patient care.\n"
-"\n"
-"Are you sure you want to save\n"
-"it without components ?"
-msgstr ""
-
-msgid "Cannot save branded drug. Invalid or missing essential input."
-msgstr ""
-
-msgid ""
-"The brand name of the drug.\n"
-"\n"
-"Note: a brand name will need to be linked to\n"
-"one or more components before it can be used,\n"
-"except in the case of fake (generic) vaccines."
-msgstr ""
-
-#, fuzzy
-msgid "The medical aim for consuming this substance."
-msgstr "L'obiettivo di consumo di questa sostanza."
-
-msgid "not tolerated:"
-msgstr ""
-
-msgid "discontinued due to allergy or intolerance"
-msgstr ""
-
-msgid "Documented an allergy"
-msgstr ""
-
-#, python-format
-msgid ""
-"An allergy was documented against the substance:\n"
-"\n"
-"  [%s]\n"
-"\n"
-"This substance was taken with the multi-component brand:\n"
-"\n"
-"  [%s (%s)]\n"
-"\n"
-"Note that ALL components of this brand were discontinued."
-msgstr ""
-
-#, fuzzy
-msgid "disapproved"
-msgstr "Non Approvato"
-
-msgid "Substances consumed by the patient:"
-msgstr ""
-
-msgid "Intake"
+msgid "Showing consumable substances."
 msgstr ""
 
 #, fuzzy
@@ -13446,6 +13753,13 @@ msgstr "Sconosciuta"
 msgid "GFR reported by path lab"
 msgstr ""
 
+#, fuzzy
+msgid "<no components>"
+msgstr "Componenti"
+
+msgid "Adding substance intake entry"
+msgstr ""
+
 #, python-format
 msgid ""
 "The patient is already taking\n"
@@ -13456,9 +13770,6 @@ msgid ""
 "rather than document the intake twice."
 msgstr ""
 
-msgid "Adding substance intake entry"
-msgstr ""
-
 msgid "Input incomplete/invalid for saving as substance intake."
 msgstr ""
 
@@ -13572,8 +13883,9 @@ msgstr "Prescritto per"
 msgid "Add to medication list"
 msgstr "Stampa la lista di farmaci."
 
-msgid "Duration / Until"
-msgstr ""
+#, fuzzy
+msgid "Timeframe"
+msgstr "Ora:"
 
 #, python-format
 msgid "%s <fake>"
@@ -13614,10 +13926,6 @@ msgstr "&Zona:"
 msgid "eGFR:"
 msgstr ""
 
-#, fuzzy, python-format
-msgid "%s%s%s (%s ago)"
-msgstr "%s%7s %s: %s (%s parte(i), %s)"
-
 #, python-format
 msgid "eGFR: %.1f (%s)"
 msgstr ""
@@ -13787,14 +14095,21 @@ msgid ""
 "\n"
 " [%s]\n"
 "\n"
-"is not empty. Do you want to use it for saving the\n"
-"export area documents into, nevertheless ?\n"
+"already contains files. Do you still want to save the\n"
+"selected export area documents into that directory ?\n"
 "\n"
-"(this can be useful for including external documents)\n"
+"(this is useful for including the external documents\n"
+" already stored in or below this directory)\n"
 "\n"
 "[NO] will create a subdirectory for you and use that."
 msgstr ""
 
+msgid ""
+"Create descriptive metadata files\n"
+"and save them alongside the\n"
+"selected export area documents ?"
+msgstr ""
+
 #, fuzzy, python-format
 msgid ""
 "Saved to [%s]:\n"
@@ -14024,10 +14339,6 @@ msgid "This praxis"
 msgstr "Il tuo esame"
 
 #, fuzzy
-msgid "Hospital stay"
-msgstr "Ospedale"
-
-#, fuzzy
 msgid "Bill receiver"
 msgstr "Sto selezionando il paziente"
 
@@ -14064,10 +14375,55 @@ msgstr "Gestione delle descrizioni di documenti"
 msgid "Select the episode under which to file the document ..."
 msgstr ""
 
+msgid "Cannot create new document."
+msgstr "Non posso creare un nuovo documento."
+
+msgid "saving document"
+msgstr "salvo il documento"
+
 #, fuzzy, python-format
 msgid "Imported new document from %s."
 msgstr "Importato nuovo documento da [% s]."
 
+msgid "Successfully saved new document."
+msgstr "Nuovo documento salvato con successo."
+
+#, fuzzy
+msgid "Successfully saved the new document."
+msgstr "Nuovo documento salvato con successo."
+
+#, python-format
+msgid ""
+"The reference ID for the new document is:\n"
+"\n"
+" <%s>\n"
+"\n"
+"You probably want to write it down on the\n"
+"original documents.\n"
+"\n"
+"If you don't care about the ID you can switch\n"
+"off this message in the GNUmed configuration.\n"
+msgstr ""
+
+#, fuzzy
+msgid "Saving document"
+msgstr "salvo il documento"
+
+#, python-format
+msgid ""
+"Successfully imported files as document.\n"
+"\n"
+"Do you want to delete imported files from the filesystem ?\n"
+"\n"
+" %s\n"
+"\n"
+"Note that temporary files will be deleted anyway."
+msgstr ""
+
+#, fuzzy
+msgid "Removing files"
+msgstr "Rimuovi l'indirizzo"
+
 msgid "Enter a comment on the document."
 msgstr "Inserisci un commento sul documento."
 
@@ -14193,17 +14549,19 @@ msgstr ""
 msgid "Acquiring images"
 msgstr ""
 
+msgid "directory dropped on client"
+msgstr ""
+
+msgid "file dropped on client"
+msgstr ""
+
 #, fuzzy
 msgid "other documents"
 msgstr "Allega documenti"
 
-#, python-format
-msgid "part %s: %s"
+msgid "path"
 msgstr ""
 
-msgid "saving document"
-msgstr "salvo il documento"
-
 msgid "No parts to save. Really save an empty document as a reference ?"
 msgstr ""
 
@@ -14246,17 +14604,26 @@ msgstr ""
 msgid "acquiring page"
 msgstr ""
 
+#, fuzzy
+msgid "captured by imaging device"
+msgstr "Acquisisci dall'apparecchio d'immagini"
+
 msgid "Choose a file"
 msgstr "Scegli un file"
 
 msgid "all files (Win)"
 msgstr "tutti i file (Win)"
 
-msgid "You must select a part before you can view it."
+msgid "picked from storage media"
 msgstr ""
 
-msgid "displaying part"
-msgstr ""
+#, fuzzy
+msgid "pasted from clipboard"
+msgstr "Muovi il paziente su."
+
+#, fuzzy
+msgid "No part selected for viewing."
+msgstr "Nessun risultato selezionato per la rimozione."
 
 #, python-format
 msgid ""
@@ -14264,45 +14631,12 @@ msgid ""
 "%s"
 msgstr ""
 
-msgid "You must select a part before you can delete it."
-msgstr ""
-
-msgid "deleting part"
-msgstr ""
-
-#, python-format
-msgid ""
-"The part has successfully been removed from the document.\n"
-"\n"
-"Do you also want to permanently delete the file\n"
-"\n"
-" [%s]\n"
-"\n"
-"from which this document part was loaded ?\n"
-"\n"
-"If it is a temporary file for a page you just scanned\n"
-"this makes a lot of sense. In other cases you may not\n"
-"want to lose the file.\n"
-"\n"
-"Pressing [YES] will permanently remove the file\n"
-"from your computer.\n"
-msgstr ""
-
-msgid "Removing document part"
-msgstr ""
-
-#, python-format
-msgid ""
-"Cannot delete part in file [%s].\n"
-"\n"
-"You may not have write access to it."
+msgid "displaying part"
 msgstr ""
 
-msgid "Cannot create new document."
-msgstr "Non posso creare un nuovo documento."
-
-msgid "Cannot update document metadata."
-msgstr ""
+#, fuzzy
+msgid "No part selected for removal."
+msgstr "Nessun risultato selezionato per la rimozione."
 
 msgid "Cannot add document description."
 msgstr "Non posso aggiungere la descrizione al documento."
@@ -14310,30 +14644,14 @@ msgstr "Non posso aggiungere la descrizione al documento."
 msgid "Error setting \"reviewed\" status of new document."
 msgstr "Errore assegnando \"rivisto\" al nuovo documento"
 
-#, fuzzy
-msgid "Successfully saved the new document."
-msgstr "Nuovo documento salvato con successo."
-
 #, python-format
 msgid ""
-"The reference ID for the new document is:\n"
-"\n"
-" <%s>\n"
+"Source: %s\n"
+"File: %s\n"
 "\n"
-"You probably want to write it down on the\n"
-"original documents.\n"
-"\n"
-"If you don't care about the ID you can switch\n"
-"off this message in the GNUmed configuration."
+"%s"
 msgstr ""
 
-#, fuzzy
-msgid "Saving document"
-msgstr "salvo il documento"
-
-msgid "Successfully saved new document."
-msgstr "Nuovo documento salvato con successo."
-
 msgid "Document part does not seem to exist in database !"
 msgstr ""
 
@@ -14348,10 +14666,6 @@ msgstr "Un commento su questo paziente."
 msgid "Showing documents."
 msgstr "Mostro il documento"
 
-#, fuzzy
-msgid "Generated"
-msgstr "Generalizzato"
-
 msgid "Ref #"
 msgstr ""
 
@@ -14616,6 +14930,157 @@ msgstr "Sei sicuro di voler cancellare il documento?"
 msgid "Deleting document"
 msgstr "Cancella documento"
 
+#, fuzzy
+msgid "Study date"
+msgstr "Essudato"
+
+#, fuzzy
+msgid "Study time"
+msgstr "Incomincia nuovo"
+
+msgid "Method"
+msgstr ""
+
+#, fuzzy
+msgid "Body part"
+msgstr "mostra parte"
+
+#, fuzzy
+msgid "Time"
+msgstr "Ora:"
+
+msgid "Cannot connect without port (try 8042)."
+msgstr ""
+
+#, python-format
+msgid "Connect to [%s] @ port %s as \"%s\"."
+msgstr ""
+
+#, fuzzy
+msgid "Cannot connect to PACS."
+msgstr "impossibile connettersi al servizio [%s]"
+
+#, python-format
+msgid "PACS: Orthanc \"%s\" (AET \"%s\", Version %s, DB v%s)"
+msgstr ""
+
+#, python-format
+msgid "GNUmed patient: %s (generic PACS ID)"
+msgstr ""
+
+#, python-format
+msgid "GNUmed patient: \"%(value)s\" @ [%(issuer)s] (stored PACS ID)"
+msgstr ""
+
+msgid "PACS: no patients with matching IDs found"
+msgstr ""
+
+msgid ""
+"PACS: more than one patient with matching IDs found, carefully check studies"
+msgstr ""
+
+#, python-format
+msgid "%s series"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "%%s (%s series)"
+msgstr "%s (%s quest'anno)"
+
+msgid "no studies"
+msgstr ""
+
+#, python-format
+msgid "%s studies"
+msgstr ""
+
+msgid "Exporting DICOM studies"
+msgstr ""
+
+#, fuzzy
+msgid "Unable to export selected studies."
+msgstr "un indirizzo deve essere selezionato"
+
+#, python-format
+msgid ""
+"The DICOM studies are %s in compressed size.\n"
+"\n"
+"Really copy to export area ?"
+msgstr ""
+
+#, python-format
+msgid "DICOM studies of [%s] from Orthanc PACS \"%s\" (AET \"%s\")"
+msgstr ""
+
+#, fuzzy
+msgid "Select the directory into which to save the DICOM studies."
+msgstr "Selezionare l'episodio del quale si desidera spostare la narrazione."
+
+msgid "Saving DICOM studies"
+msgstr ""
+
+#, fuzzy
+msgid "Unable to save selected studies."
+msgstr "un indirizzo deve essere selezionato"
+
+#, fuzzy
+msgid "Unable to export studies."
+msgstr "Fallita l'iscrizione del paziente in %s"
+
+#, python-format
+msgid "All DICOM studies of [%s] from Orthanc PACS \"%s\" (AET \"%s\")"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "%s%s images"
+msgstr "&Zona:"
+
+#, fuzzy
+msgid "Select the directory from which to recursively upload DICOM files."
+msgstr "Selezionare l'episodio del quale si desidera spostare la narrazione."
+
+msgid "Delete the uploaded DICOM files now ?"
+msgstr ""
+
+msgid ""
+"Some files have not been uploaded.\n"
+"\n"
+"Do you want to delete those DICOM files which have been sent to the PACS "
+"successfully ?"
+msgstr ""
+
+#, fuzzy
+msgid "Uploading DICOM files"
+msgstr "caricamente file xDT"
+
+#, fuzzy
+msgid "Editing Orthanc content"
+msgstr "Modificare i dettagli per l'incontro di seguito:"
+
+#, fuzzy
+msgid "Patient ID"
+msgstr "Paziente"
+
+#, fuzzy
+msgid "Birth date"
+msgstr "Essudato"
+
+msgid "Orthanc"
+msgstr ""
+
+#, fuzzy
+msgid "Modifying patient ID"
+msgstr "Unire i pazienti"
+
+#, python-format
+msgid ""
+"Really modify %s patient(s) to have the new patient ID\n"
+"\n"
+" [%s]\n"
+"\n"
+"stored in the Orthanc DICOM server ?"
+msgstr ""
+
 #, python-format
 msgid "You are logged in as %s%s.%s (%s). DB account <%s>."
 msgstr "Sei loggato come %s%s.%s (%s). DB account <%s>."
@@ -14678,6 +15143,14 @@ msgstr "modifica misurazione"
 msgid "Select the measurements panel to show in the medications plugin."
 msgstr ""
 
+#, fuzzy
+msgid "General measurements"
+msgstr "modifica misurazione"
+
+#, fuzzy
+msgid "Select the measurements panel to show in the top pane."
+msgstr "Un commento su questo paziente."
+
 msgid "Review dialog"
 msgstr ""
 
@@ -14768,6 +15241,13 @@ msgstr ""
 msgid "Configure auto-opening editors for recent problems."
 msgstr ""
 
+#, fuzzy
+msgid "SOAP fields"
+msgstr "campo XDT"
+
+msgid "Configure SOAP editor - individual SOAP fields vs text editor like"
+msgstr ""
+
 msgid "Progress notes handling ..."
 msgstr ""
 
@@ -14789,6 +15269,9 @@ msgstr ""
 msgid "URL for measurements encyclopedia."
 msgstr ""
 
+msgid "Drug data source"
+msgstr ""
+
 msgid "Select the drug data source."
 msgstr ""
 
@@ -15178,6 +15661,14 @@ msgstr "progressi, note"
 msgid "Manage dynamic hints suppressed in this patient."
 msgstr ""
 
+#, fuzzy
+msgid "Substance abuse"
+msgstr "Sostanza"
+
+#, fuzzy
+msgid "Manage substance abuse documentation of this patient."
+msgstr "Un commento su questo paziente."
+
 msgid "&Add / Edit ..."
 msgstr ""
 
@@ -15202,29 +15693,55 @@ msgstr ""
 msgid "Show a high-level statistic summary of the EMR."
 msgstr ""
 
-msgid "Text document"
-msgstr "Documento di testo"
-
-msgid "Export the EMR of the active patient into a text file"
+msgid "Journal (encounters) to file"
 msgstr ""
 
-msgid "Journal"
-msgstr "Giornale"
-
 msgid ""
-"Export the EMR of the active patient as a chronological journal into a text "
+"Save the EMR of the active patient as a chronological journal into a text "
 "file"
 msgstr ""
 
-msgid "MEDISTAR import format"
-msgstr "Formato importazione MEDISTAR"
+#, fuzzy
+msgid "Journal (encounters) to export area"
+msgstr "Aggiungi una nuova persona"
 
 msgid ""
-"GNUmed -> MEDISTAR. Export progress notes of active patient's active "
-"encounter into a text file."
+"Copy EMR of the active patient as a chronological journal into export area"
 msgstr ""
 
-msgid "Export as ..."
+msgid "Journal (mod time) to file"
+msgstr ""
+
+msgid ""
+"Save the EMR of the active patient as journal by last modification time into "
+"a text file"
+msgstr ""
+
+#, fuzzy
+msgid "Journal (mod time) to export area"
+msgstr "Aggiungi una nuova persona"
+
+msgid ""
+"Copy EMR of the active patient as journal by last modification time into "
+"export area"
+msgstr ""
+
+msgid "Text document"
+msgstr "Documento di testo"
+
+#, fuzzy
+msgid "Save the EMR of the active patient into a text file"
+msgstr "Non posso inserire il paziente attivo in un altro paziente."
+
+msgid "MEDISTAR import format"
+msgstr "Formato importazione MEDISTAR"
+
+msgid ""
+"GNUmed -> MEDISTAR. Save progress notes of active patient's active encounter "
+"into a text file."
+msgstr ""
+
+msgid "Export as ..."
 msgstr "Esporta come..."
 
 msgid "&EMR"
@@ -15400,19 +15917,42 @@ msgstr "Salva uno screenshot di questo client GNUmed."
 msgid "Show log file"
 msgstr ""
 
-msgid "Show the log file in text viewer."
+msgid "Show log file in text viewer."
 msgstr ""
 
 msgid "Backup log file"
 msgstr ""
 
-msgid "Backup the content of the log to another file."
+msgid "Backup content of the log to another file."
 msgstr ""
 
 msgid "Email log file"
 msgstr ""
 
-msgid "Send the log file to the authors for help."
+msgid "Send log file to the authors for help."
+msgstr ""
+
+#, fuzzy
+msgid "Browse tmp dir"
+msgstr "Unire i pazienti"
+
+#, python-format
+msgid "Browse temporary directory [%s]."
+msgstr ""
+
+#, fuzzy
+msgid "Browse work dir"
+msgstr "Unire i pazienti"
+
+#, python-format
+msgid "Browse user working directory [%s]."
+msgstr ""
+
+msgid "Browse internal work dir"
+msgstr ""
+
+#, python-format
+msgid "Browse internal working directory [%s]."
 msgstr ""
 
 msgid "Bug tracker"
@@ -15772,6 +16312,20 @@ msgid "No, only auto-open one editor for a new, unassociated problem."
 msgstr ""
 
 msgid ""
+"When editing progress notes, do you want GNUmed to\n"
+"show individual fields for each of the SOAP categories\n"
+"or do you want to use a text-editor like field for\n"
+"all SOAP categories which can then be set per line\n"
+"of input ?"
+msgstr ""
+
+msgid "Yes, show a dedicated field per SOAP category."
+msgstr ""
+
+msgid "No, use one field for all SOAP categories."
+msgstr ""
+
+msgid ""
 "When a patient is activated GNUmed can\n"
 "be told to switch to a specific plugin.\n"
 "\n"
@@ -15849,774 +16403,1195 @@ msgid ""
 msgstr ""
 
 msgid ""
-"At any time there can only be one open (ongoing)\n"
-"episode for each health issue.\n"
-"\n"
-"When you try to open (add data to) an episode on a health\n"
-"issue GNUmed will check for an existing open episode on\n"
-"that issue. If there is any it will check the age of that\n"
-"episode. The episode is closed if it has been dormant (no\n"
-"data added, that is) for the period of time (in days) you\n"
-"set here.\n"
+"At any time there can only be one open (ongoing)\n"
+"episode for each health issue.\n"
+"\n"
+"When you try to open (add data to) an episode on a health\n"
+"issue GNUmed will check for an existing open episode on\n"
+"that issue. If there is any it will check the age of that\n"
+"episode. The episode is closed if it has been dormant (no\n"
+"data added, that is) for the period of time (in days) you\n"
+"set here.\n"
+"\n"
+"If the existing episode hasn't been dormant long enough\n"
+"GNUmed will consult you what to do.\n"
+"\n"
+"Enter maximum episode dormancy in DAYS:"
+msgstr ""
+
+msgid ""
+"If you want the GNUmed developers to be able to\n"
+"contact you directly - rather than via the public\n"
+"mailing list only - you can enter your preferred\n"
+"email address here.\n"
+"\n"
+"This address will then be included with bug reports\n"
+"or contributions to the GNUmed community you may\n"
+"choose to send from within the GNUmed client.\n"
+"\n"
+"Leave this blank if you wish to stay anonymous.\n"
+msgstr ""
+
+msgid "Please enter your email address."
+msgstr "Inserisci il tuo indirizzo email."
+
+msgid ""
+"Do you want GNUmed to check for updates at startup ?\n"
+"\n"
+"You will still need your system administrator to\n"
+"actually install any updates for you.\n"
+msgstr ""
+"Vuoi che il client GNUmed controlli se ci sono aggiornamenti all'avvio?\n"
+"\n"
+"Dovrai avere ancora il tuo amministratore di sistema per\n"
+"installare qualsiasi aggiornamento per te.\n"
+
+msgid "Yes, check for updates at startup."
+msgstr "Sì, controlla se ci sono aggiornamenti all'avvio."
+
+msgid "No, do not check for updates at startup."
+msgstr "No, non controllare se ci sono aggiornamenti all'avvio."
+
+msgid ""
+"When checking for updates do you want GNUmed to\n"
+"look for bug fix updates only or do you want to\n"
+"know about features updates, too ?\n"
+"\n"
+"Minor updates (x.y.z.a -> x.y.z.b) contain bug fixes\n"
+"only. They can usually be installed without much\n"
+"preparation. They never require a database upgrade.\n"
+"\n"
+"Major updates (x.y.a -> x..y.b or y.a -> x.b) come\n"
+"with new features. They need more preparation and\n"
+"often require a database upgrade.\n"
+"\n"
+"You will still need your system administrator to\n"
+"actually install any updates for you.\n"
+msgstr ""
+
+msgid "Yes, check for feature updates, too."
+msgstr ""
+
+msgid "No, check for bug-fix updates only."
+msgstr "No, controlla solo se ci sono degli aggiornamenti per dei bug-fix."
+
+msgid ""
+"GNUmed can check for new releases being available. To do\n"
+"so it needs to load version information from an URL.\n"
+"\n"
+"The default URL is:\n"
+"\n"
+" http://www.gnumed.de/downloads/gnumed-versions.txt\n"
+"\n"
+"but you can configure any other URL locally. Note\n"
+"that you must enter the location as a valid URL.\n"
+"Depending on the URL the client will need online\n"
+"access when checking for updates."
+msgstr ""
+
+msgid ""
+"Do you want to allow saving of new documents without\n"
+"any parts or do you want GNUmed to enforce that they\n"
+"contain at least one part before they can be saved ?\n"
+"\n"
+"Part-less documents can be useful if you want to build\n"
+"up an index of, say, archived documents but do not\n"
+"want to scan in all the pages contained therein."
+msgstr ""
+
+msgid "Yes, allow saving documents without any parts."
+msgstr ""
+
+msgid "No, require documents to have at least one part."
+msgstr ""
+
+msgid ""
+"After importing a new document do you\n"
+"want GNUmed to display the unique ID\n"
+"it auto-generated for that document ?\n"
+"\n"
+"This can be useful if you want to label the\n"
+"originals with that ID for later identification."
+msgstr ""
+
+msgid "Yes, display the ID generated for the new document after importing."
+msgstr ""
+"Sì, visualizza l'ID generato per il nuovo documento dopo l'importazione."
+
+msgid ""
+"No, do not display the ID generated for the new document after importing."
+msgstr ""
+"No, non visualizzare l'ID generato per il nuovo documento dopo "
+"l'importazione."
+
+msgid ""
+"After importing a new document do you\n"
+"want GNUmed to generate a unique ID\n"
+"(UUID) for that document ?\n"
+"\n"
+"This can be useful if you want to label the\n"
+"originals with that ID for later identification."
+msgstr ""
+
+#, fuzzy
+msgid "Yes, generate a UUID for the new document after importing."
+msgstr ""
+"Sì, visualizza l'ID generato per il nuovo documento dopo l'importazione."
+
+#, fuzzy
+msgid "No, do not generate a UUID for the new document after importing."
+msgstr ""
+"No, non visualizzare l'ID generato per il nuovo documento dopo "
+"l'importazione."
+
+msgid ""
+"GNUmed can show the document review dialog after\n"
+"calling the appropriate viewer for that document.\n"
+"\n"
+"Select the conditions under which you want\n"
+"GNUmed to do so:\n"
+"\n"
+" 0: never display the review dialog\n"
+" 1: always display the dialog\n"
+" 2: only if there is no previous review by me\n"
+" 3: only if there is no previous review at all\n"
+" 4: only if there is no review by the responsible reviewer\n"
+"\n"
+"Note that if a viewer is configured to not block\n"
+"GNUmed during document display the review dialog\n"
+"will actually appear in parallel to the viewer."
+msgstr ""
+
+msgid "Addresses (likely slow)"
+msgstr ""
+
+msgid "Branded drugs (as marketed)"
+msgstr ""
+
+msgid "Dynamic automatic hints"
+msgstr ""
+
+msgid "Codes and their respective terms"
+msgstr ""
+
+#, fuzzy
+msgid "Communication channel types"
+msgstr "Rimuovo il canale di comunicazione"
+
+msgid "Components of branded drugs (substances in brands)"
+msgstr ""
+
+msgid "Diagnostic organizations (path labs, ...)"
+msgstr ""
+
+msgid "Document templates (forms, letters, plots, ...)"
+msgstr ""
+
+msgid "Document types"
+msgstr ""
+
+msgid "Encounter types"
+msgstr ""
+
+msgid "Keyword based text expansion macros"
+msgstr ""
+
+msgid "Meta test/measurement types"
+msgstr ""
+
+msgid "Organizations with their units, addresses, and comm channels"
+msgstr ""
+
+msgid "Patient tags"
+msgstr ""
+
+msgid "Provinces (counties, territories, states, regions, ...)"
+msgstr ""
+
+msgid "String translations in the database"
+msgstr ""
+
+msgid "Test/measurement types"
+msgstr ""
+
+msgid "Vaccination targets (conditions known to be preventable by vaccination)"
+msgstr ""
+
+msgid "Vaccines"
+msgstr ""
+
+msgid "Workplace profiles (which plugins to load)"
+msgstr ""
+
+msgid "Consumable substances"
+msgstr ""
+
+msgid "Billable items"
+msgstr ""
+
+#, fuzzy
+msgid "Reference data sources"
+msgstr "Informazioni di riferenza"
+
+msgid "Test/measurement panels/profiles"
+msgstr ""
+
+msgid "Master data management"
+msgstr ""
+
+msgid "Select the list you want to manage:"
+msgstr ""
+
+msgid "No DICOM viewer found."
+msgstr "Nessun DICOM viewer trovato."
+
+msgid "risk assessment"
+msgstr ""
+
+msgid "cardiovascular risk assessment"
+msgstr ""
+
+#, python-format
+msgid "[arriba] XML result not found in [%s]"
+msgstr ""
+
+msgid "ACS risk assessment calculator not configured."
+msgstr ""
+
+#, python-format
+msgid "Cannot run [%s] !"
+msgstr ""
+
+#, python-format
+msgid "There was a problem accessing the [arriba] result in [%s] !"
+msgstr ""
+
+msgid "[-9999]: <access violation test error>"
+msgstr ""
+
+msgid ""
+"This is a deliberate AccessDenied exception thrown to test the handling of "
+"access violations by means of a decorator."
+msgstr ""
+
+msgid "testing access check for non-existant <admin> role"
+msgstr ""
+
+msgid ""
+"This is a deliberate AccessDenied exception. You should not see this message "
+"because the role is checked in a decorator."
+msgstr ""
+
+msgid "pgAdmin III not found."
+msgstr "pgAdmin III non trovato."
+
+msgid "Error reloading hook script."
+msgstr ""
+
+msgid "Save current log as..."
+msgstr "Salva il log corrente come..."
+
+msgid "log files"
+msgstr "log files"
+
+#, python-format
+msgid "Log file backed up as [%s]."
+msgstr ""
+
+msgid "Cannot start new encounter. No active patient."
+msgstr "Non posso iniziare una nuova consultazione. Nessun paziente attivo."
+
+msgid "Cannot add health issue. No active patient."
+msgstr ""
+
+#, fuzzy
+msgid "Cannot add episode. No active patient."
+msgstr "Non posso aggiungere la medicazione. Nesun paziente attivo."
+
+msgid "Cannot add medication. No active patient."
+msgstr "Non posso aggiungere la medicazione. Nesun paziente attivo."
+
+msgid "Cannot add allergy. No active patient."
+msgstr "Non posso aggiungere allergia. Nessun paziente attivo."
+
+msgid "Cannot manage performed procedures. No active patient."
+msgstr ""
+
+#, fuzzy
+msgid "Cannot manage hospitalizations. No active patient."
+msgstr "Non posso aggiungere allergia. Nessun paziente attivo."
+
+#, fuzzy
+msgid "Cannot manage external care. No active patient."
+msgstr "Non posso caricare i documenti. Nessun paziente attivo."
+
+msgid "Cannot edit occupation. No active patient."
+msgstr "Non posso modificare l'occupazione. Nessun paziente attivo."
+
+#, fuzzy
+msgid "manage vaccinations"
+msgstr "Ultime vaccinazioni"
+
+msgid "Cannot add vaccinations. No active patient."
+msgstr ""
+
+#, fuzzy
+msgid "manage family history"
+msgstr "storia medica passata"
+
+#, fuzzy
+msgid "Cannot manage family history. No active patient."
+msgstr "Non posso aggiungere allergia. Nessun paziente attivo."
+
+#, fuzzy
+msgid "Cannot manage measurements. No active patient."
+msgstr "Non posso caricare i documenti. Nessun paziente attivo."
+
+msgid "calculate EDC"
+msgstr ""
+
+#, fuzzy
+msgid "manage suppressed hints"
+msgstr "Salva indirizzo"
+
+#, fuzzy
+msgid "Cannot manage suppressed hints. No active patient."
+msgstr "Non posso caricare i documenti. Nessun paziente attivo."
+
+#, fuzzy
+msgid "Cannot manage smoking status. No active patient."
+msgstr "Non posso caricare i documenti. Nessun paziente attivo."
+
+msgid "Cannot show EMR summary. No active patient."
+msgstr ""
+
+msgid "EMR Summary"
+msgstr ""
+
+#, fuzzy
+msgid "Cannot export EMR journal by last modification time. No active patient."
+msgstr "Non posso aggiungere la medicazione. Nesun paziente attivo."
+
+msgid "journal_by_last_mod_time"
+msgstr ""
+
+msgid "Save patient's EMR journal as..."
+msgstr ""
+
+msgid "Error exporting patient EMR as journal by last modification time."
+msgstr ""
+
+msgid "EMR journal export"
+msgstr ""
+
+#, python-format
+msgid ""
+"Successfully exported EMR as journal by last modification time into file "
+"[%s]."
+msgstr ""
+
+msgid "Cannot export EMR journal. No active patient."
+msgstr ""
+
+msgid "emr-journal"
+msgstr "emr-journal"
+
+msgid "Error exporting patient EMR as chronological journal."
+msgstr ""
+
+#, python-format
+msgid "Successfully exported EMR as chronological journal into file [%s]."
+msgstr ""
+
+msgid "EMR journal by last modification time"
+msgstr ""
+
+#, fuzzy
+msgid "EMR journal by encounter"
+msgstr "giornale medico"
+
+msgid "Cannot add tag to person. No active patient."
+msgstr ""
+
+#, python-format
+msgid "Edit the comment on tag [%s]"
+msgstr ""
+
+msgid "Editing tag comment"
+msgstr ""
+
+msgid "Cannot export patient as GDT. No active patient."
+msgstr ""
+
+msgid "Exported demographics as GDT to clipboard."
+msgstr ""
+
+#, fuzzy
+msgid "Cannot export patient as VCARD. No active patient."
+msgstr "Non posso modificare l'occupazione. Nessun paziente attivo."
+
+msgid "Exported demographics as VCARD to clipboard."
+msgstr ""
+
+#, fuzzy
+msgid "Cannot export patient as XML (LinuxMedNews). No active patient."
+msgstr "Non posso modificare l'occupazione. Nessun paziente attivo."
+
+#, python-format
+msgid "Exported demographics to XML file [%s]."
+msgstr ""
+
+#, python-format
+msgid "Exported demographics to GDT file [%s]."
+msgstr ""
+
+#, python-format
+msgid "Exported demographics to VCARD file [%s]."
+msgstr ""
+
+msgid "Cannot add staff member. No active patient."
+msgstr "Non posso aggiungere un membro allo staff. Nessun paziente attivo."
+
+msgid "Cannot delete patient. No patient active."
+msgstr "Non posso cancellare il paziente. Nessun paziente attivo."
+
+msgid ""
+"You have to manually close this window to finalize shutting down GNUmed."
+msgstr ""
+
+msgid "This is so that you can inspect the console output at your leisure."
+msgstr ""
+
+msgid "no patient"
+msgstr "Nessun paziente"
+
+#, python-format
+msgid "Saved screenshot to file [%s]."
+msgstr "Salva lo screenshot come [%s]."
+
+msgid "Python version check"
+msgstr ""
+
+#, python-format
+msgid ""
+"You are running Python version\n"
+" %s\n"
 "\n"
-"If the existing episode hasn't been dormant long enough\n"
-"GNUmed will consult you what to do.\n"
+"However, GNUmed wants Python 2.7 to\n"
+"facilitate migration to Python 3.\n"
 "\n"
-"Enter maximum episode dormancy in DAYS:"
+"Please upgrade your Python interpreter !"
 msgstr ""
 
-msgid ""
-"If you want the GNUmed developers to be able to\n"
-"contact you directly - rather than via the public\n"
-"mailing list only - you can enter your preferred\n"
-"email address here.\n"
-"\n"
-"This address will then be included with bug reports\n"
-"or contributions to the GNUmed community you may\n"
-"choose to send from within the GNUmed client.\n"
-"\n"
-"Leave this blank if you wish to stay anonymous.\n"
+msgid "GNUmed client"
+msgstr "client GNUmed"
+
+msgid "GNUmed stdout/stderr window"
 msgstr ""
 
-msgid "Please enter your email address."
-msgstr "Inserisci il tuo indirizzo email."
+msgid "redirecting STDOUT/STDERR to this log window"
+msgstr ""
 
+#, python-format
 msgid ""
-"Do you want GNUmed to check for updates at startup ?\n"
+"The database account [%s] cannot be used as a\n"
+"staff member login for GNUmed. There was an\n"
+"error retrieving staff details for it.\n"
 "\n"
-"You will still need your system administrator to\n"
-"actually install any updates for you.\n"
+"Please ask your administrator for help.\n"
 msgstr ""
-"Vuoi che il client GNUmed controlli se ci sono aggiornamenti all'avvio?\n"
-"\n"
-"Dovrai avere ancora il tuo amministratore di sistema per\n"
-"installare qualsiasi aggiornamento per te.\n"
-
-msgid "Yes, check for updates at startup."
-msgstr "Sì, controlla se ci sono aggiornamenti all'avvio."
 
-msgid "No, do not check for updates at startup."
-msgstr "No, non controllare se ci sono aggiornamenti all'avvio."
+msgid "Checking access permissions"
+msgstr "Controllo i permessi d'accesso"
 
-msgid ""
-"When checking for updates do you want GNUmed to\n"
-"look for bug fix updates only or do you want to\n"
-"know about features updates, too ?\n"
-"\n"
-"Minor updates (x.y.z.a -> x.y.z.b) contain bug fixes\n"
-"only. They can usually be installed without much\n"
-"preparation. They never require a database upgrade.\n"
-"\n"
-"Major updates (x.y.a -> x..y.b or y.a -> x.b) come\n"
-"with new features. They need more preparation and\n"
-"often require a database upgrade.\n"
-"\n"
-"You will still need your system administrator to\n"
-"actually install any updates for you.\n"
+#, python-format
+msgid "Database <%s> on <%s>"
 msgstr ""
 
-msgid "Yes, check for feature updates, too."
+#, python-format
+msgid "Branch \"%s\" of praxis \"%s\"\n"
 msgstr ""
 
-msgid "No, check for bug-fix updates only."
-msgstr "No, controlla solo se ci sono degli aggiornamenti per dei bug-fix."
+msgid "Verifying database"
+msgstr "Verifico database"
 
-msgid ""
-"GNUmed can check for new releases being available. To do\n"
-"so it needs to load version information from an URL.\n"
-"\n"
-"The default URL is:\n"
-"\n"
-" http://www.gnumed.de/downloads/gnumed-versions.txt\n"
-"\n"
-"but you can configure any other URL locally. Note\n"
-"that you must enter the location as a valid URL.\n"
-"Depending on the URL the client will need online\n"
-"access when checking for updates."
+msgid "Connect"
 msgstr ""
 
-msgid ""
-"Do you want to allow saving of new documents without\n"
-"any parts or do you want GNUmed to enforce that they\n"
-"contain at least one part before they can be saved ?\n"
-"\n"
-"Part-less documents can be useful if you want to build\n"
-"up an index of, say, archived documents but do not\n"
-"want to scan in all the pages contained therein."
+msgid "Yes, connect to this database."
 msgstr ""
 
-msgid "Yes, allow saving documents without any parts."
+msgid "Disconnect"
 msgstr ""
 
-msgid "No, require documents to have at least one part."
+msgid "No, do not connect to this database."
 msgstr ""
 
+#, python-format
 msgid ""
-"After importing a new document do you\n"
-"want GNUmed to display the unique ID\n"
-"it auto-generated for that document ?\n"
+"Cannot find configuration file in any of:\n"
 "\n"
-"This can be useful if you want to label the\n"
-"originals with that ID for later identification."
+" %s\n"
+"You may need to use the comand line option\n"
+"\n"
+"\t--conf-file=<FILE>"
 msgstr ""
 
-msgid "Yes, display the ID generated for the new document after importing."
-msgstr ""
-"Sì, visualizza l'ID generato per il nuovo documento dopo l'importazione."
+msgid "Checking configuration files"
+msgstr "Controllo i files di configurazione"
 
-msgid ""
-"No, do not display the ID generated for the new document after importing."
-msgstr ""
-"No, non visualizzare l'ID generato per il nuovo documento dopo "
-"l'importazione."
+msgid "GNUmed startup"
+msgstr "Avvio GNUmed"
 
+#, python-format
 msgid ""
-"After importing a new document do you\n"
-"want GNUmed to generate a unique ID\n"
-"(UUID) for that document ?\n"
+"The currently selected database language ('%s') does\n"
+"not match the current system language ('%s').\n"
 "\n"
-"This can be useful if you want to label the\n"
-"originals with that ID for later identification."
+"Do you want to set the database language to '%s' ?\n"
 msgstr ""
 
-#, fuzzy
-msgid "Yes, generate a UUID for the new document after importing."
-msgstr ""
-"Sì, visualizza l'ID generato per il nuovo documento dopo l'importazione."
+msgid "Checking database language settings"
+msgstr "Controllo le impostazioni della lingua del database"
 
-#, fuzzy
-msgid "No, do not generate a UUID for the new document after importing."
+#, python-format
+msgid "Set your database language to [%s]."
+msgstr "Imposta la lingua del tuo database a [%s]"
+
+msgid "Don't set"
+msgstr "Non impostare"
+
+msgid "Do not set your database language now."
+msgstr "Non impostare la lingua del database adesso."
+
+msgid "Remember to ignore language mismatch"
 msgstr ""
-"No, non visualizzare l'ID generato per il nuovo documento dopo "
-"l'importazione."
 
+#, python-format
 msgid ""
-"GNUmed can show the document review dialog after\n"
-"calling the appropriate viewer for that document.\n"
-"\n"
-"Select the conditions under which you want\n"
-"GNUmed to do so:\n"
+"Checking this will make GNUmed remember your decision\n"
+"until the system language is changed.\n"
 "\n"
-" 0: never display the review dialog\n"
-" 1: always display the dialog\n"
-" 2: only if there is no previous review by me\n"
-" 3: only if there is no previous review at all\n"
-" 4: only if there is no review by the responsible reviewer\n"
+"You can also reactivate this inquiry by removing the\n"
+"corresponding \"ignore\" option from the configuration file\n"
 "\n"
-"Note that if a viewer is configured to not block\n"
-"GNUmed during document display the review dialog\n"
-"will actually appear in parallel to the viewer."
+" [%s]"
 msgstr ""
 
-msgid "Addresses (likely slow)"
-msgstr ""
+#, fuzzy
+msgid "generic activity"
+msgstr "Nome generico"
 
-msgid "Branded drugs (as marketed)"
+msgid "Access denied"
 msgstr ""
 
-msgid "Dynamic automatic hints"
+#, python-format
+msgid ""
+"Your account is not set up to access this part of GNUmed:\n"
+"\n"
+"  [%s]"
 msgstr ""
 
-msgid "Codes and their respective terms"
+msgid "Save timeline as SVG image under..."
 msgstr ""
 
 #, fuzzy
-msgid "Communication channel types"
-msgstr "Rimuovo il canale di comunicazione"
+msgid "timeline image"
+msgstr "tutti i file"
 
-msgid "Components of branded drugs (substances in brands)"
-msgstr ""
+#, fuzzy
+msgid "timeline data"
+msgstr "Ora:"
 
-msgid "Diagnostic organizations (path labs, ...)"
+msgid "Cannot change notebook tabs. No active patient."
 msgstr ""
 
-msgid "Document templates (forms, letters, plots, ...)"
-msgstr ""
+msgid "add plugin ..."
+msgstr "Aggiungi plugin..."
 
-msgid "Document types"
+msgid "Cannot activate Allergy Manager. No active patient."
 msgstr ""
 
-msgid "Encounter types"
+msgid "RR ?"
 msgstr ""
 
-msgid "Keyword based text expansion macros"
+#, python-format
+msgid "BMI %s"
 msgstr ""
 
-msgid "Meta test/measurement types"
+msgid "BMI ?"
 msgstr ""
 
-msgid "Organizations with their units, addresses, and comm channels"
+msgid "GFR ?"
 msgstr ""
 
-msgid "Patient tags"
+#, python-format
+msgid "GFR %s"
 msgstr ""
 
-msgid "Provinces (counties, territories, states, regions, ...)"
+#, python-format
+msgid "?EDC %s"
 msgstr ""
 
-msgid "String translations in the database"
+#, python-format
+msgid "EDC %s"
 msgstr ""
 
-msgid "Test/measurement types"
+msgid "<Age>"
 msgstr ""
 
-msgid "Vaccination targets (conditions known to be preventable by vaccination)"
-msgstr ""
+#, fuzzy
+msgid "no patient selected"
+msgstr "Selezione del dispositivo"
 
-msgid "Vaccines"
-msgstr ""
+#, fuzzy, python-format
+msgid "Gender: %s (%s) - %s\n"
+msgstr "Appuntamenti: %s (%s - %s):"
 
-msgid "Workplace profiles (which plugins to load)"
-msgstr ""
+#, fuzzy, python-format
+msgid "Born: %s\n"
+msgstr "&Zona:"
 
-msgid "Consumable substances"
-msgstr ""
+#, fuzzy, python-format
+msgid "Died: %s\n"
+msgstr "Chiusa"
 
-msgid "Billable items"
-msgstr ""
+#, fuzzy, python-format
+msgid "At age: %s\n"
+msgstr "Paziente"
 
-#, fuzzy
-msgid "Reference data sources"
-msgstr "Informazioni di riferenza"
+msgid " (date of birth and age are estimated)\n"
+msgstr ""
 
-msgid "Test/measurement panels/profiles"
+#, python-format
+msgid "%(sex)s  %(dob)s (%(age)s today !)"
 msgstr ""
 
-msgid "Master data management"
+msgid ""
+"\n"
+"Today is the patient's birthday !\n"
+"\n"
 msgstr ""
 
-msgid "Select the list you want to manage:"
+#, python-format
+msgid "Birthday: %s ago\n"
 msgstr ""
 
-msgid "No DICOM viewer found."
-msgstr "Nessun DICOM viewer trovato."
+#, fuzzy, python-format
+msgid "Birthday: in %s\n"
+msgstr "Ricordo del compleanno"
 
-msgid "risk assessment"
-msgstr ""
+#, fuzzy, python-format
+msgid "Age: %s\n"
+msgstr "&Zona:"
 
-msgid "cardiovascular risk assessment"
+#, python-format
+msgid "last confirmed %s\n"
 msgstr ""
 
 #, python-format
-msgid "[arriba] XML result not found in [%s]"
+msgid "Comment (%s): %%s"
 msgstr ""
 
-msgid "ACS risk assessment calculator not configured."
+#, python-format
+msgid " - expires %s"
 msgstr ""
 
 #, python-format
-msgid "Cannot run [%s] !"
+msgid ""
+"Due for %s (since %s%s):\n"
+"%s%s\n"
+"Patient: %s\n"
+"Reminder by: %s"
 msgstr ""
 
+#, fuzzy
+msgid "Clinical reminder"
+msgstr "Dettagli Clinici"
+
+#, fuzzy
+msgid "Adding automatic dynamic hint"
+msgstr "Mostro il documento"
+
+#, fuzzy
+msgid "Editing automatic dynamic hint"
+msgstr "Mostro il documento"
+
+#, fuzzy
+msgid "Deleting automatic dynamic hint"
+msgstr "Mostro il documento"
+
 #, python-format
-msgid "There was a problem accessing the [arriba] result in [%s] !"
+msgid ""
+"Really delete this dynamic hint ?\n"
+"\n"
+" [%s]"
 msgstr ""
 
-msgid "[-9999]: <access violation test error>"
-msgstr ""
+#, fuzzy
+msgid "deleting a dynamic hint"
+msgstr "Mostro il documento"
 
 msgid ""
-"This is a deliberate AcessDenied exception thrown to test the handling of "
-"access violations by means of a decorator."
+"\n"
+"Dynamic hints registered with GNUmed.\n"
 msgstr ""
 
-msgid "testing access check for non-existant <admin> role"
+#, fuzzy
+msgid "Showing dynamic hints."
+msgstr "Mostro il documento"
+
+msgid "Hint"
 msgstr ""
 
-msgid ""
-"This is a deliberate AcessDenied exception. You should not see this message "
-"because the role is checked in a decorator."
+msgid "Browse and install automatic dynamic hints data packs"
 msgstr ""
 
-msgid "pgAdmin III not found."
-msgstr "pgAdmin III non trovato."
+#, fuzzy, python-format
+msgid "By: %s"
+msgstr "&Zona:"
 
-msgid "Error reloading hook script."
+msgid "No entry in field <Source>."
 msgstr ""
 
-msgid "Save current log as..."
-msgstr "Salva il log corrente come..."
+msgid "No entry in field <Conditions>."
+msgstr ""
 
-msgid "log files"
-msgstr "log files"
+#, fuzzy
+msgid "No entry in field <Description>."
+msgstr "Elimina la descrizione del documento"
 
-#, python-format
-msgid "Log file backed up as [%s]."
+msgid "No entry in field <Title>."
 msgstr ""
 
-msgid "Cannot start new encounter. No active patient."
-msgstr "Non posso iniziare una nuova consultazione. Nessun paziente attivo."
+#, fuzzy
+msgid "creating a new dynamic hint"
+msgstr "Mostro il documento"
 
-msgid "Cannot add health issue. No active patient."
+msgid "updating an existing dynamic hint"
 msgstr ""
 
 #, fuzzy
-msgid "Cannot add episode. No active patient."
-msgstr "Non posso aggiungere la medicazione. Nesun paziente attivo."
+msgid "Deleting suppressed dynamic hint"
+msgstr "Mostro il documento"
 
-msgid "Cannot add medication. No active patient."
-msgstr "Non posso aggiungere la medicazione. Nesun paziente attivo."
+#, python-format
+msgid ""
+"Really delete the suppression of this dynamic hint ?\n"
+"\n"
+" [%s]"
+msgstr ""
 
-msgid "Cannot add allergy. No active patient."
-msgstr "Non posso aggiungere allergia. Nessun paziente attivo."
+#, fuzzy
+msgid ""
+"\n"
+"Dynamic hints suppressed in this patient.\n"
+msgstr "Aspettando una lista dettagliata per questo paziente."
 
-msgid "Cannot manage performed procedures. No active patient."
-msgstr ""
+#, fuzzy
+msgid "Showing suppressed dynamic hints."
+msgstr "Mostro il documento"
 
 #, fuzzy
-msgid "Cannot manage hospitalizations. No active patient."
-msgstr "Non posso aggiungere allergia. Nessun paziente attivo."
+msgid "Rationale"
+msgstr "Rezione"
 
 #, fuzzy
-msgid "Cannot manage external care. No active patient."
-msgstr "Non posso caricare i documenti. Nessun paziente attivo."
+msgid "Manage hints"
+msgstr "Gestisci le descrizioni"
 
-msgid "Cannot edit occupation. No active patient."
-msgstr "Non posso modificare l'occupazione. Nessun paziente attivo."
+#, fuzzy
+msgid "Manage automatic dynamic hints"
+msgstr "Mostro il documento"
 
 #, fuzzy
-msgid "manage vaccinations"
-msgstr "Ultime vaccinazioni"
+msgid "Cannot delete family history item."
+msgstr "Non posso cancellare il paziente. Nessun paziente attivo."
 
-msgid "Cannot add vaccinations. No active patient."
+#, fuzzy
+msgid "Family history of this patient."
+msgstr "Aspettando una lista dettagliata per questo paziente."
+
+msgid "Showing family history."
 msgstr ""
 
 #, fuzzy
-msgid "Cannot manage family history. No active patient."
-msgstr "Non posso aggiungere allergia. Nessun paziente attivo."
+msgid "Fatal"
+msgstr "fatale"
 
 #, fuzzy
-msgid "Cannot manage measurements. No active patient."
-msgstr "Non posso caricare i documenti. Nessun paziente attivo."
+msgid "Noted"
+msgstr "Nota"
 
-msgid "calculate EDC"
+msgid "Died"
 msgstr ""
 
-#, fuzzy
-msgid "manage suppressed hints"
-msgstr "Salva indirizzo"
+msgid "Adding family history"
+msgstr ""
 
 #, fuzzy
-msgid "Cannot manage suppressed hints. No active patient."
-msgstr "Non posso caricare i documenti. Nessun paziente attivo."
+msgid "Editing family history"
+msgstr "storia medica passata"
 
-msgid "Cannot show EMR summary. No active patient."
+msgid ""
+"\n"
+"Please select the default drug data source from the list below.\n"
+"\n"
+"Note that to actually use it you need to have the database installed, too."
 msgstr ""
 
-msgid "EMR Summary"
+msgid "Configuring default drug data source"
 msgstr ""
 
-msgid "Cannot export EMR journal. No active patient."
+msgid "No default drug database configured."
 msgstr ""
 
-msgid "Save patient's EMR journal as..."
+msgid "There is no default drug database configured."
 msgstr ""
 
-msgid "Error exporting patient EMR as chronological journal."
+msgid "Jumping to drug database"
 msgstr ""
 
-msgid "EMR journal export"
+msgid "Cannot import drugs from IFAP into chart without chart."
 msgstr ""
 
 #, python-format
-msgid "Successfully exported EMR as chronological journal into file [%s]."
+msgid "Cannot call IFAP via [%s]."
 msgstr ""
 
-msgid "Cannot add tag to person. No active patient."
+#, python-format
+msgid "Cannot create IFAP <-> GNUmed transfer file [%s]."
 msgstr ""
 
-#, python-format
-msgid "Edit the comment on tag [%s]"
+msgid "Current medication"
+msgstr "Medicazione attuale"
+
+msgid ""
+"\n"
+"The ATC codes as known to GNUmed.\n"
 msgstr ""
 
-msgid "Editing tag comment"
+msgid "Showing ATC codes."
 msgstr ""
 
-msgid "Cannot export patient as GDT. No active patient."
+msgid "Choose an ATC import config file"
 msgstr ""
 
-msgid "Exported demographics as GDT to clipboard."
+msgid "config files"
 msgstr ""
 
-#, fuzzy
-msgid "Cannot export patient as VCARD. No active patient."
-msgstr "Non posso modificare l'occupazione. Nessun paziente attivo."
+msgid "importing ATC reference data"
+msgstr ""
 
-msgid "Exported demographics as VCARD to clipboard."
+msgid "Successfully imported ATC reference data."
 msgstr ""
 
-#, fuzzy
-msgid "Cannot export patient as XML (LinuxMedNews). No active patient."
-msgstr "Non posso modificare l'occupazione. Nessun paziente attivo."
+msgid "Importing ATC reference data failed."
+msgstr ""
 
-#, python-format
-msgid "Exported demographics to XML file [%s]."
+msgid "Select an ATC (Anatomical-Therapeutic-Chemical) code."
 msgstr ""
 
-#, python-format
-msgid "Exported demographics to GDT file [%s]."
+msgid "Cannot edit this substance. It is in use."
 msgstr ""
 
-#, python-format
-msgid "Exported demographics to VCARD file [%s]."
+msgid "Adding new consumable substance"
 msgstr ""
 
-msgid "Cannot add staff member. No active patient."
-msgstr "Non posso aggiungere un membro allo staff. Nessun paziente attivo."
+msgid "Editing consumable substance"
+msgstr ""
 
-msgid "Cannot delete patient. No patient active."
-msgstr "Non posso cancellare il paziente. Nessun paziente attivo."
+msgid "Cannot delete this substance. It is in use."
+msgstr ""
 
 msgid ""
-"You have to manually close this window to finalize shutting down GNUmed."
+"\n"
+"These are the consumable substances registered with GNUmed.\n"
 msgstr ""
 
-msgid "This is so that you can inspect the console output at your leisure."
+msgid "Import"
 msgstr ""
 
-msgid "no patient"
-msgstr "Nessun paziente"
+msgid "Import consumable substances from a drug database."
+msgstr ""
 
-#, python-format
-msgid "Saved screenshot to file [%s]."
-msgstr "Salva lo screenshot come [%s]."
+msgid "Cannot save consumable substance. Missing essential input."
+msgstr ""
 
-msgid "GNUmed client"
-msgstr "client GNUmed"
+#, python-format
+msgid "Cannot save consumable substance. %s"
+msgstr ""
 
-msgid "GNUmed stdout/stderr window"
+msgid "The substance with optional strength."
 msgstr ""
 
-msgid "redirecting STDOUT/STDERR to this log window"
+msgid "Cannot remove this component from the drug. It is in use."
 msgstr ""
 
-#, python-format
 msgid ""
-"The database account [%s] cannot be used as a\n"
-"staff member login for GNUmed. There was an\n"
-"error retrieving staff details for it.\n"
 "\n"
-"Please ask your administrator for help.\n"
-msgstr ""
-
-msgid "Checking access permissions"
-msgstr "Controllo i permessi d'accesso"
+"These are the components in the drug brands known to GNUmed.\n"
+msgstr ""
 
-#, python-format
-msgid "Database <%s> on <%s>"
+msgid "Showing drug brand components."
 msgstr ""
 
-#, python-format
-msgid "Branch \"%s\" of praxis \"%s\"\n"
+msgid "Adding new drug component"
 msgstr ""
 
-msgid "Verifying database"
-msgstr "Verifico database"
+msgid "Editing drug component"
+msgstr ""
 
-msgid "Connect"
+msgid "Cannot edit drug component. It is in use."
 msgstr ""
 
-msgid "Yes, connect to this database."
+msgid "Cannot save drug component. Invalid or missing essential input."
 msgstr ""
 
-msgid "Disconnect"
+msgid "A drug component with optional strength."
 msgstr ""
 
-msgid "No, do not connect to this database."
+msgid "Editing drug"
 msgstr ""
 
 #, python-format
 msgid ""
-"Cannot find configuration file in any of:\n"
+"Cannot edit the branded drug product\n"
 "\n"
-" %s\n"
-"You may need to use the comand line option\n"
+" \"%s\" (%s)\n"
 "\n"
-"\t--conf-file=<FILE>"
+"because it is currently taken by patients.\n"
 msgstr ""
 
-msgid "Checking configuration files"
-msgstr "Controllo i files di configurazione"
-
-msgid "GNUmed startup"
-msgstr "Avvio GNUmed"
+msgid "Adding new drug brand"
+msgstr ""
 
-#, python-format
-msgid ""
-"The currently selected database language ('%s') does\n"
-"not match the current system language ('%s').\n"
-"\n"
-"Do you want to set the database language to '%s' ?\n"
+msgid "Editing drug brand"
 msgstr ""
 
-msgid "Checking database language settings"
-msgstr "Controllo le impostazioni della lingua del database"
+msgid "Manage consumable substances"
+msgstr ""
 
-msgid "Set"
-msgstr "Imposta"
+msgid "not in use"
+msgstr ""
 
 #, python-format
-msgid "Set your database language to [%s]."
-msgstr "Imposta la lingua del tuo database a [%s]"
-
-msgid "Don't set"
-msgstr "Non impostare"
-
-msgid "Do not set your database language now."
-msgstr "Non impostare la lingua del database adesso."
+msgid "ATC: %s\n"
+msgstr ""
 
-msgid "Remember to ignore language mismatch"
+msgid "Editing medication"
 msgstr ""
 
 #, python-format
 msgid ""
-"Checking this will make GNUmed remember your decision\n"
-"until the system language is changed.\n"
+"Cannot edit the medication\n"
 "\n"
-"You can also reactivate this inquiry by removing the\n"
-"corresponding \"ignore\" option from the configuration file\n"
+" \"%s\" (%s)\n"
 "\n"
-" [%s]"
+"because it is a vaccine. Please edit it\n"
+"from the vaccine management section !\n"
 msgstr ""
 
-#, fuzzy
-msgid "generic activity"
-msgstr "Nome generico"
-
-msgid "Access denied"
+msgid "Deleting medication"
 msgstr ""
 
 #, python-format
 msgid ""
-"Your account is not set up to access this part of GNUmed:\n"
+"Cannot delete the medication\n"
 "\n"
-"  [%s]"
-msgstr ""
-
-msgid "Save timeline as SVG image under..."
+" \"%s\" (%s)\n"
+"\n"
+"because it is a vaccine. Please delete it\n"
+"from the vaccine management section !\n"
 msgstr ""
 
-#, fuzzy
-msgid "timeline image"
-msgstr "tutti i file"
-
-#, fuzzy
-msgid "timeline data"
-msgstr "Ora:"
-
-msgid "Cannot change notebook tabs. No active patient."
+msgid ""
+"\n"
+"These are the drug brands known to GNUmed.\n"
 msgstr ""
 
-msgid "add plugin ..."
-msgstr "Aggiungi plugin..."
-
-msgid "Cannot activate Allergy Manager. No active patient."
+msgid "Showing branded drugs."
 msgstr ""
 
-msgid "<Age>"
+msgid "Import substances and brands from a drug database."
 msgstr ""
 
-#, fuzzy
-msgid "no patient selected"
-msgstr "Selezione del dispositivo"
-
-#, fuzzy, python-format
-msgid "Gender: %s (%s) - %s\n"
-msgstr "Appuntamenti: %s (%s - %s):"
-
-#, fuzzy, python-format
-msgid "Born: %s\n"
-msgstr "&Zona:"
-
-#, fuzzy, python-format
-msgid "Died: %s\n"
-msgstr "Chiusa"
-
-#, fuzzy, python-format
-msgid "At age: %s\n"
-msgstr "Paziente"
-
-msgid " (date of birth and age are estimated)\n"
+msgid "Managing components of a drug"
 msgstr ""
 
 #, python-format
-msgid "%(sex)s  %(dob)s (%(age)s today !)"
-msgstr ""
-
 msgid ""
+"Cannot manage the components of the branded drug product\n"
 "\n"
-"Today is the patient's birthday !\n"
+" \"%s\" (%s)\n"
 "\n"
+"because it is currently taken by patients.\n"
 msgstr ""
 
-#, python-format
-msgid "Birthday: %s ago\n"
+msgid "Pick the substances which are components of this drug."
 msgstr ""
 
-#, fuzzy, python-format
-msgid "Birthday: in %s\n"
-msgstr "Ricordo del compleanno"
-
-#, fuzzy, python-format
-msgid "Age: %s\n"
-msgstr "&Zona:"
-
-#, python-format
-msgid "last confirmed %s\n"
+msgid "Components of drug"
 msgstr ""
 
 #, python-format
-msgid "Comment (%s): %%s"
+msgid ""
+"Adjust the components of \"%s\"\n"
+"\n"
+"The drug must contain at least one component. Any given\n"
+"substance can only be included once per drug."
 msgstr ""
 
-#, python-format
-msgid " - expires %s"
+msgid "Managing components of a drug ..."
 msgstr ""
 
-#, python-format
-msgid ""
-"Due for %s (since %s%s):\n"
-"%s%s\n"
-"Patient: %s\n"
-"Reminder by: %s"
+msgid "Cannot edit drug brand. It is in use."
 msgstr ""
 
 #, fuzzy
-msgid "Clinical reminder"
-msgstr "Dettagli Clinici"
-
-#, fuzzy
-msgid "Adding automatic dynamic hint"
-msgstr "Mostro il documento"
-
-#, fuzzy
-msgid "Editing automatic dynamic hint"
-msgstr "Mostro il documento"
-
-#, fuzzy
-msgid "Deleting automatic dynamic hint"
-msgstr "Mostro il documento"
+msgid "Checking brand data"
+msgstr "Controllo se ci sono aggiornamenti per il client"
 
 #, python-format
 msgid ""
-"Really delete this dynamic hint ?\n"
+"The brand information you entered:\n"
 "\n"
-" [%s]"
+" [%s %s]\n"
+"\n"
+"already exists as a drug product."
 msgstr ""
 
-#, fuzzy
-msgid "deleting a dynamic hint"
-msgstr "Mostro il documento"
-
 msgid ""
+"You have not selected any substances\n"
+"as drug components.\n"
 "\n"
-"Dynamic hints registered with GNUmed.\n"
+"Without components you will not be able to\n"
+"use this drug for documenting patient care.\n"
+"\n"
+"Are you sure you want to save\n"
+"it without components ?"
 msgstr ""
 
-#, fuzzy
-msgid "Showing dynamic hints."
-msgstr "Mostro il documento"
-
-msgid "Hint"
+msgid "Cannot save branded drug. Invalid or missing essential input."
 msgstr ""
 
-msgid "Browse and install automatic dynamic hints data packs"
+msgid ""
+"The brand name of the drug.\n"
+"\n"
+"Note: a brand name will need to be linked to\n"
+"one or more components before it can be used,\n"
+"except in the case of fake (generic) vaccines."
 msgstr ""
 
-#, fuzzy, python-format
-msgid "By: %s"
-msgstr "&Zona:"
+msgid "No EMR data loaded."
+msgstr ""
 
-msgid "No entry in field <Source>."
+msgid "EMR text dump"
 msgstr ""
 
-msgid "No entry in field <Conditions>."
+msgid "Currently there is no active patient. Cannot retrieve EMR text."
 msgstr ""
 
 #, fuzzy
-msgid "No entry in field <Description>."
-msgstr "Elimina la descrizione del documento"
+msgid "SOAP Editor Actions:"
+msgstr "Prescrizioni"
 
-msgid "No entry in field <Title>."
+#, fuzzy
+msgid "&Sort lines"
+msgstr "Crea nuovo"
+
+msgid "Sort lines by SOAP category"
 msgstr ""
 
-#, fuzzy
-msgid "creating a new dynamic hint"
-msgstr "Mostro il documento"
+msgid "e&Xpand keyword"
+msgstr ""
 
-msgid "updating an existing dynamic hint"
+msgid "Expand keyword / macro"
 msgstr ""
 
 #, fuzzy
-msgid "Deleting suppressed dynamic hint"
-msgstr "Mostro il documento"
+msgid "as &Subjective"
+msgstr "Soggettivo"
 
-#, python-format
-msgid ""
-"Really delete the suppression of this dynamic hint ?\n"
-"\n"
-" [%s]"
+msgid "Set line to category \"Subjective\""
 msgstr ""
 
 #, fuzzy
-msgid ""
-"\n"
-"Dynamic hints suppressed in this patient.\n"
-msgstr "Aspettando una lista dettagliata per questo paziente."
+msgid "as &Objective"
+msgstr "Oggettivo"
+
+msgid "Set line to category \"Objective\""
+msgstr ""
 
 #, fuzzy
-msgid "Showing suppressed dynamic hints."
-msgstr "Mostro il documento"
+msgid "as &Assessment"
+msgstr "Assessment"
+
+msgid "Set line to category \"Assessment\""
+msgstr ""
 
 #, fuzzy
-msgid "Rationale"
-msgstr "Rezione"
+msgid "as &Plan"
+msgstr "Procedere"
+
+msgid "Set line to category \"Plan\""
+msgstr ""
 
 #, fuzzy
-msgid "Manage hints"
-msgstr "Gestisci le descrizioni"
+msgid "as &Unspecified"
+msgstr "soap_Objective"
 
-#, fuzzy
-msgid "Manage automatic dynamic hints"
-msgstr "Mostro il documento"
+msgid "Set line to category \"unspecified\""
+msgstr ""
 
 #, fuzzy
-msgid "Cannot delete family history item."
-msgstr "Non posso cancellare il paziente. Nessun paziente attivo."
+msgid "as ad&Ministrative"
+msgstr "Amministrativo"
+
+msgid "Set line to category \"administrative\""
+msgstr ""
+
+msgid "→ &Clipboard"
+msgstr ""
 
 #, fuzzy
-msgid "Family history of this patient."
-msgstr "Aspettando una lista dettagliata per questo paziente."
+msgid "Copy line to clipboard"
+msgstr "Muovi il paziente su."
 
-msgid "Showing family history."
+msgid "→ +Clipboard+"
 msgstr ""
 
 #, fuzzy
-msgid "Fatal"
-msgstr "fatale"
+msgid "Add line to clipboard"
+msgstr "Muovi il paziente su."
 
 #, fuzzy
-msgid "Noted"
-msgstr "Nota"
+msgid "Copy content to clipboard"
+msgstr "Muovi il paziente su."
 
-msgid "Died"
-msgstr ""
+#, fuzzy
+msgid "Add content to clipboard"
+msgstr "Muovi il paziente su."
 
-msgid "Adding family history"
-msgstr ""
+#, fuzzy
+msgid "Copy selection to clipboard"
+msgstr "Muovi il paziente su."
 
 #, fuzzy
-msgid "Editing family history"
-msgstr "storia medica passata"
+msgid "Add selection to clipboard"
+msgstr "Muovi il paziente su."
 
-msgid "No EMR data loaded."
-msgstr ""
+#, fuzzy
+msgid "&Line ..."
+msgstr "&Azioni ... "
 
-msgid "EMR text dump"
-msgstr ""
+#, fuzzy
+msgid "&Text ..."
+msgstr "Testo"
 
-msgid "Currently there is no active patient. Cannot retrieve EMR text."
-msgstr ""
+#, fuzzy
+msgid "&Region ..."
+msgstr "Regione"
 
 #, fuzzy
 msgid "Show HL7 file:"
@@ -16629,6 +17604,10 @@ msgstr ""
 msgid "Extracting HL7 from XML file"
 msgstr "Estraggo i files dalla cartella [%s] ..."
 
+#, python-format
+msgid "Unwrapped HL7 into [%s] from [%s]."
+msgstr ""
+
 msgid "Select HL7 file for staging:"
 msgstr ""
 
@@ -16654,6 +17633,10 @@ msgid ""
 " %s"
 msgstr ""
 
+#, fuzzy, python-format
+msgid "Staged HL7 from [%s]."
+msgstr "Carica i dati del modello da un file."
+
 msgid "Importing HL7 data"
 msgstr ""
 
@@ -16703,10 +17686,6 @@ msgstr ""
 msgid "Identification"
 msgstr "Indicazione"
 
-#, fuzzy
-msgid "Show"
-msgstr "Mostra i messaggi:"
-
 msgid "Show formatted HL7"
 msgstr ""
 
@@ -16755,6 +17734,20 @@ msgstr "Selezione del dispositivo"
 msgid "Plot current selection"
 msgstr "Medicazione attuale"
 
+#, fuzzy
+msgid ""
+"Select the measurements panel to show in the top pane for continuous "
+"monitoring."
+msgstr "Un commento su questo paziente."
+
+#, fuzzy
+msgid "Lab panel"
+msgstr "Gestisci le descrizioni"
+
+#, fuzzy
+msgid "Configuring continuous monitoring measurements panel"
+msgstr "Misurazioni"
+
 msgid "No default Gnuplot script template selected."
 msgstr ""
 
@@ -16781,13 +17774,29 @@ msgstr ""
 msgid "Cannot plot without a plot script."
 msgstr ""
 
-#, fuzzy
-msgid "Time"
-msgstr "Ora:"
-
 msgid "Result"
 msgstr "Risultato"
 
+#, fuzzy
+msgid "Perform on selected results:"
+msgstr "risultato corretto"
+
+msgid "Review and &sign"
+msgstr ""
+
+msgid "Export to &file"
+msgstr ""
+
+msgid "Export to &clipboard"
+msgstr ""
+
+msgid "Panels"
+msgstr ""
+
+#, fuzzy
+msgid "List"
+msgstr "Lista d'attesa"
+
 msgid ""
 "lab_grid_date_format::%Y\n"
 "%b %d"
@@ -16870,19 +17879,6 @@ msgstr ""
 msgid "All: by &Day"
 msgstr ""
 
-#, fuzzy
-msgid "Perform on selected results:"
-msgstr "risultato corretto"
-
-msgid "Review and &sign"
-msgstr ""
-
-msgid "Export to &file"
-msgstr ""
-
-msgid "Export to &clipboard"
-msgstr ""
-
 #, python-format
 msgid "%s results selected. Too many to list individually."
 msgstr ""
@@ -17071,6 +18067,10 @@ msgstr ""
 msgid "EMR Actions:"
 msgstr "Rezione"
 
+#, fuzzy
+msgid "Print EMR"
+msgstr "Stampa"
+
 msgid "Create health issue"
 msgstr ""
 
@@ -17229,11 +18229,42 @@ msgstr ""
 msgid "&New notes %s"
 msgstr "&Note"
 
+msgid "Find text in EMR Journal"
+msgstr ""
+
+#, fuzzy
+msgid "Modified"
+msgstr "voce modificata"
+
+#, fuzzy
+msgid "Clinical time"
+msgstr "Note cliniche"
+
+msgid "Who / When"
+msgstr ""
+
+#, python-format
 msgid ""
-"An error occurred while retrieving the EMR\n"
-"in journal form for the active patient.\n"
+"Chart entry: %s       [#%s in %s]\n"
+" Modified: %s by %s (%s rev %s)\n"
 "\n"
-"Please check the log file for details."
+"Health issue: %s%s\n"
+"Episode: %s%s\n"
+"Encounter: %s%s"
+msgstr ""
+
+#, python-format
+msgid ""
+"%s\n"
+"\n"
+"                        rev %s (%s) by %s in <%s>"
+msgstr ""
+
+#, python-format
+msgid ""
+"%s\n"
+"%s\n"
+"%s"
 msgstr ""
 
 msgid "Editing tag"
@@ -17368,18 +18399,17 @@ msgid ""
 "%s\n"
 msgstr ""
 
-msgid "This patient DID receive care."
+#, fuzzy
+msgid "This patient DID receive care here."
 msgstr "Questa persona HA ricevuto cure."
 
-msgid "This person did NOT receive care."
+#, fuzzy
+msgid "This person did NOT receive care here."
 msgstr "Questa persona NON HA ricevuto cure."
 
 msgid "Disabling person"
 msgstr "Disabilitare persona"
 
-msgid "Disabling patient"
-msgstr "Disabilitare paziente"
-
 msgid "Type or select a last name (family name/surname)."
 msgstr "Scrivi o seleziona un cognome (cognome/soprannome)"
 
@@ -17657,6 +18687,9 @@ msgstr ""
 "\n"
 "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
 
+msgid "Connecting to backend"
+msgstr "Connessione al backend in corso"
+
 #, fuzzy, python-format
 msgid ""
 "Unable to connect to database:\n"
@@ -17883,9 +18916,6 @@ msgstr "Organizzazione"
 msgid "Office"
 msgstr "Ufficio"
 
-msgid "State"
-msgstr "Stato"
-
 msgid "Zip"
 msgstr ""
 
@@ -17943,8 +18973,9 @@ msgstr "Aggiungi plugin..."
 msgid "EMR Timeline"
 msgstr "Albero medico"
 
-msgid "Show &Timeline"
-msgstr ""
+#, fuzzy
+msgid "EMR &Timeline"
+msgstr "Albero medico"
 
 #, fuzzy
 msgid "Overview"
@@ -17974,11 +19005,13 @@ msgstr "Note"
 msgid "&SimpleNotes"
 msgstr "&Note"
 
-msgid "EMR tree"
+#, fuzzy
+msgid "EMR Tree"
 msgstr "Albero medico"
 
-msgid "EMR &Tree (topical)"
-msgstr ""
+#, fuzzy
+msgid "EMR &Tree"
+msgstr "Albero medico"
 
 #, fuzzy
 msgid "Print Manager"
@@ -17988,6 +19021,14 @@ msgstr "Stampa"
 msgid "&Print Manager"
 msgstr "Stampa"
 
+#, fuzzy
+msgid "EMR Journal"
+msgstr "giornale medico"
+
+#, fuzzy
+msgid "EMR &Journal (list)"
+msgstr "giornale medico"
+
 msgid "Appointments"
 msgstr "Appuntamenti"
 
@@ -18000,6 +19041,12 @@ msgstr "Giornale di laboratorio"
 msgid "Show &lab journal"
 msgstr "Mostra il &giornale di laboratorio"
 
+msgid "PACS"
+msgstr ""
+
+msgid "&PACS"
+msgstr ""
+
 msgid "Cardiac Devices"
 msgstr ""
 
@@ -18075,12 +19122,10 @@ msgstr "Manuale"
 msgid "User &manual (local)"
 msgstr "Manuale &utente (locale)"
 
-msgid "EMR journal"
+#, fuzzy
+msgid "EMR &Journal (text)"
 msgstr "giornale medico"
 
-msgid "EMR &Journal (chronological)"
-msgstr ""
-
 msgid "Demographics"
 msgstr "Demografia"
 
@@ -18247,6 +19292,10 @@ msgstr ""
 msgid "Show &ExamplePlugin"
 msgstr ""
 
+#, fuzzy
+msgid "Find text"
+msgstr "non attivo"
+
 msgid "gm_ctl_client: starting slave GNUmed client"
 msgstr "gm_ctl_client: il client GNUmed sta partendo"
 
@@ -18281,6 +19330,194 @@ msgstr "Annulla"
 msgid "Abort and do NOT connect to GNUmed."
 msgstr "Annulla e NON connetti a GNUmed"
 
+#, fuzzy
+#~ msgid ""
+#~ "Health issue: %s%s%s (%s versions)\n"
+#~ "\n"
+#~ msgstr "problema di salute: %s"
+
+#, fuzzy
+#~ msgid ""
+#~ "Episode: %s%s%s (%s versions)\n"
+#~ "\n"
+#~ msgstr "Episodio %s%s%s [#%s]"
+
+#, fuzzy
+#~ msgid ""
+#~ "Encounter: %s%s%s (%s versions)\n"
+#~ "\n"
+#~ msgstr "Appuntamenti: %s (%s - %s):"
+
+#, fuzzy
+#~ msgid ""
+#~ "\n"
+#~ "current values:\n"
+#~ msgstr "<stato allergico attuale>"
+
+#~ msgid "soap_S"
+#~ msgstr "soap_S"
+
+#~ msgid "soap_O"
+#~ msgstr "soap_O"
+
+#~ msgid "soap_A"
+#~ msgstr "soap_A"
+
+#~ msgid "soap_P"
+#~ msgstr "soap_P"
+
+#, fuzzy
+#~ msgid "soap_U"
+#~ msgstr "soap_S"
+
+#~ msgid "soap_Subjective"
+#~ msgstr "soap_Subjective"
+
+#~ msgid "soap_Objective"
+#~ msgstr "soap_Objective"
+
+#~ msgid "soap_Assessment"
+#~ msgstr "soap_Assessment"
+
+#~ msgid "soap_Plan"
+#~ msgstr "soap_Plan"
+
+#, fuzzy
+#~ msgid "soap_Unspecified"
+#~ msgstr "soap_Objective"
+
+#~ msgid "soap_Administrative"
+#~ msgstr "soap_Administrative"
+
+#, fuzzy
+#~ msgid "Search in list"
+#~ msgstr "Risultati cercati"
+
+#~ msgid "Parts"
+#~ msgstr "Parti"
+
+#~ msgid "Disabling patient"
+#~ msgstr "Disabilitare paziente"
+
+#, fuzzy
+#~ msgid "&Unknown"
+#~ msgstr "Sconosciuta"
+
+#, fuzzy
+#~ msgid "When was smoking status last confirmed (mostly \"today\") ?"
+#~ msgstr "Quando è stata confermata l'ultima analisi allergica."
+
+#, fuzzy
+#~ msgid "Last confirmed: %s%s"
+#~ msgstr "Ultima confermata:"
+
+#, fuzzy
+#~ msgid "Smoking status"
+#~ msgstr "status"
+
+#~ msgid "State"
+#~ msgstr "Stato"
+
+#~ msgid ""
+#~ "Cannot connect to configuration database with:\n"
+#~ "\n"
+#~ "[%s]"
+#~ msgstr ""
+#~ "Impossibile connettersi al database di configurazione con:\n"
+#~ "\n"
+#~ "[%s]"
+
+#~ msgid ""
+#~ "Cannot connect to database with:\n"
+#~ "\n"
+#~ "[%s]"
+#~ msgstr ""
+#~ "Impossibile connettersi al database con:\n"
+#~ "\n"
+#~ "[%s]"
+
+#~ msgid "No product information available."
+#~ msgstr "Nessuna informazione disponibile sul prodotto."
+
+#~ msgid ""
+#~ "Unable to connect to database:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Are you sure you have got a local database installed ?\n"
+#~ "\n"
+#~ "Please retry with proper credentials or cancel.\n"
+#~ "\n"
+#~ "You may also need to check the PostgreSQL client\n"
+#~ "authentication configuration in pg_hba.conf. For\n"
+#~ "details see:\n"
+#~ "\n"
+#~ "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
+#~ msgstr ""
+#~ "Impossibile connettersi al database:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Si è sicuri di avere un database locale installato ?\n"
+#~ "\n"
+#~ "Riprovare con le credenziali corrette o annullare.\n"
+#~ "\n"
+#~ "Potrebbe essere anche necessario controllare la\n"
+#~ "configurazione del client PostgreSQL in\n"
+#~ "pg_hba.conf. Per ulteriori dettagli vedere:\n"
+#~ "\n"
+#~ "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
+
+#~ msgid ""
+#~ "Unable to connect to database:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Please retry with proper credentials or cancel.\n"
+#~ "\n"
+#~ "You may also need to check the PostgreSQL client\n"
+#~ "authentication configuration in pg_hba.conf. For\n"
+#~ "details see:\n"
+#~ "\n"
+#~ "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
+#~ msgstr ""
+#~ "Impossibile connettersi al database:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Riprovare con le credenziali corrette o annullare.\n"
+#~ "\n"
+#~ "Potrebbe essere anche necessario controllare la\n"
+#~ "configurazione del client PostgreSQL in\n"
+#~ "pg_hba.conf. Per ulteriori dettagli vedere:\n"
+#~ "\n"
+#~ "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
+
+#~ msgid ""
+#~ "Unable to connect to database:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Please retry another backend / user / password combination !\n"
+#~ msgstr ""
+#~ "Impossibile connettersi al database:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Riprovare con un'altra combinazione di backend / utente / password !\n"
+
+#~ msgid "Journal"
+#~ msgstr "Giornale"
+
+#, fuzzy
+#~ msgid ""
+#~ "\n"
+#~ "Select the measurements panel to show in the top pane.\n"
+#~ msgstr "Un commento su questo paziente."
+
+#~ msgid "The active ingredients of this brand."
+#~ msgstr "I principi attivi di questo marchio."
+
 #~ msgid "Province"
 #~ msgstr "Regione"
 
@@ -18301,10 +19538,6 @@ msgstr "Annulla e NON connetti a GNUmed"
 #~ msgstr "%s%7s %s: %s (%s parte(i), %s)"
 
 #, fuzzy
-#~ msgid "Clinical hint"
-#~ msgstr "Clinico"
-
-#, fuzzy
 #~ msgid "More info"
 #~ msgstr "Informazioni stradali"
 
@@ -18332,10 +19565,6 @@ msgstr "Annulla e NON connetti a GNUmed"
 #~ msgstr "&Firma come:"
 
 #, fuzzy
-#~ msgid "file: %s (%s/)"
-#~ msgstr "&Zona:"
-
-#, fuzzy
 #~ msgid "Switching clinical hint activation"
 #~ msgstr "Edita l'occupazione primaria"
 
@@ -18385,9 +19614,6 @@ msgstr "Annulla e NON connetti a GNUmed"
 #~ msgid "SQL: %s"
 #~ msgstr "SQL: %s"
 
-#~ msgid "cannot connect to service [%s]"
-#~ msgstr "impossibile connettersi al servizio [%s]"
-
 #~ msgid "When was this substance started to be consumed."
 #~ msgstr "Quando è cominciata ad essere consumata questa sostanza."
 
diff --git a/client/po/ka-gnumed.mo b/client/po/ka-gnumed.mo
index e2f8b6f..53718b4 100644
Binary files a/client/po/ka-gnumed.mo and b/client/po/ka-gnumed.mo differ
diff --git a/client/po/ka.po b/client/po/ka.po
index b6a38cf..cd5cb00 100644
--- a/client/po/ka.po
+++ b/client/po/ka.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: GNUmed\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-12-26 20:28+0100\n"
+"POT-Creation-Date: 2016-03-17 16:27+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <LL at li.org>\n"
@@ -1406,10 +1406,22 @@ msgid ""
 msgstr ""
 
 #, python-format
+msgid "Revision #%s"
+msgstr ""
+
+#, python-format
 msgid "[%s:%s]: row not updated (nothing returned), row in use ?"
 msgstr ""
 
 #, python-format
+msgid "<%s(.bat)> not found"
+msgstr ""
+
+#, python-format
+msgid "problem with <%s>"
+msgstr ""
+
+#, python-format
 msgid "[%s] is not a readable file"
 msgstr ""
 
@@ -1437,21 +1449,7 @@ msgstr ""
 msgid "%s Bytes"
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot connect to configuration database with:\n"
-"\n"
-"[%s]"
-msgstr ""
-
-#, python-format
-msgid ""
-"Cannot connect to database with:\n"
-"\n"
-"[%s]"
-msgstr ""
-
-msgid "No product information available."
+msgid "<type>"
 msgstr ""
 
 #, python-format
@@ -1787,79 +1785,6 @@ msgstr ""
 msgid "  risk: %s"
 msgstr ""
 
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Are you sure you have got a local database installed ?\n"
-"\n"
-"Please retry with proper credentials or cancel.\n"
-"\n"
-"You may also need to check the PostgreSQL client\n"
-"authentication configuration in pg_hba.conf. For\n"
-"details see:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-msgstr ""
-
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Please retry with proper credentials or cancel.\n"
-"\n"
-"You may also need to check the PostgreSQL client\n"
-"authentication configuration in pg_hba.conf. For\n"
-"details see:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-msgstr ""
-
-msgid "Connecting to backend"
-msgstr "მოინაცემთა ბაზასთან კავშიღი"
-
-#, fuzzy, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Please retry another backend / user / password combination !\n"
-msgstr ""
-"შეუძლებელია სერვერთან დაკავშირება\n"
-"\n"
-"%ს\n"
-"\n"
-"გთხოვთ, სცადოთ სხვა /მომხმარებლი/ პაროლის კომბინაცია\n"
-
-msgid "programmer forgot to specify error message"
-msgstr ""
-
-msgid ""
-"\n"
-"\n"
-"Please consult the error log for all the gory details !"
-msgstr ""
-
-msgid "generic error message"
-msgstr ""
-
-msgid "programmer forgot to specify info message"
-msgstr ""
-
-msgid "generic info message"
-msgstr ""
-
-msgid "programmer forgot to specify warning"
-msgstr ""
-
-msgid "generic warning message"
-msgstr ""
-
 msgid "no hook specified, please report bug"
 msgstr ""
 
@@ -2176,6 +2101,30 @@ msgstr ""
 msgid "Include:"
 msgstr ""
 
+msgid "&Search"
+msgstr ""
+
+msgid "Suggest"
+msgstr ""
+
+msgid "Set"
+msgstr ""
+
+msgid "dialog_1"
+msgstr ""
+
+msgid "Search patients in Orthanc DICOM store."
+msgstr ""
+
+msgid "Suggest a patient ID based on the active patient."
+msgstr ""
+
+msgid "Search term:"
+msgstr ""
+
+msgid "New patient ID:"
+msgstr ""
+
 msgid "Your review"
 msgstr ""
 
@@ -2477,6 +2426,89 @@ msgstr ""
 msgid "Amount"
 msgstr ""
 
+msgid "&Connect"
+msgstr ""
+
+msgid "&Browse"
+msgstr ""
+
+msgid "<not connected>"
+msgstr ""
+
+msgid "Browse all"
+msgstr ""
+
+msgid "Export all"
+msgstr ""
+
+msgid "Browse"
+msgstr ""
+
+msgid "Export"
+msgstr ""
+
+msgid "Upload"
+msgstr ""
+
+msgid "Enter the PACS host address."
+msgstr ""
+
+msgid "Enter the PACS port."
+msgstr ""
+
+msgid "Enter the PACS user."
+msgstr ""
+
+msgid "Enter the PACS password. It will not be shown."
+msgstr ""
+
+msgid "Connect to PACS."
+msgstr ""
+
+msgid "Browse PACS at top level."
+msgstr ""
+
+msgid "Modify some of Orthanc content (such as patient IDs)."
+msgstr ""
+
+msgid "Browse overview of studies for this patient."
+msgstr ""
+
+msgid "Copy all studies into export area."
+msgstr ""
+
+msgid "Browse topmost selected study."
+msgstr ""
+
+msgid "Copy selected studies into export area."
+msgstr ""
+
+msgid "Save selected studies to disk."
+msgstr ""
+
+msgid ""
+"Upload DICOM files from a directory, recursively, into the Orthanc PACS\n"
+"\n"
+"The currently active patient does not matter. Orthanc will associate "
+"uploaded files with the patient found within the DICOM metadata. It will "
+"create new patients as needed."
+msgstr ""
+
+msgid "Host:"
+msgstr ""
+
+msgid "Port:"
+msgstr ""
+
+msgid "User:"
+msgstr ""
+
+msgid "Password"
+msgstr ""
+
+msgid "Selected studies:"
+msgstr ""
+
 msgid "Fake brand"
 msgstr ""
 
@@ -2794,9 +2826,6 @@ msgstr ""
 msgid "&Load"
 msgstr ""
 
-msgid "Export"
-msgstr ""
-
 msgid "A long, descriptive name for this form template."
 msgstr ""
 
@@ -2884,15 +2913,12 @@ msgstr ""
 msgid "Document Properties"
 msgstr ""
 
-msgid "Show part"
+msgid "Show"
 msgstr ""
 
 msgid "Remove part"
 msgstr ""
 
-msgid "Parts"
-msgstr ""
-
 msgid "Discard"
 msgstr ""
 
@@ -2920,6 +2946,9 @@ msgstr ""
 msgid "Required: The primary episode this document is to be listed under."
 msgstr ""
 
+msgid "Optional: The organization (unit) this document originated from."
+msgstr ""
+
 msgid ""
 "Optional: A short comment identifying the document. Good comments give an "
 "idea of the content and source of the document."
@@ -2944,6 +2973,9 @@ msgid ""
 "normal and abnormal resuslts can be relevant."
 msgstr ""
 
+msgid "Optional: A free-text document description."
+msgstr ""
+
 msgid "This field lists the parts belonging to the current document."
 msgstr ""
 
@@ -2955,9 +2987,6 @@ msgid ""
 "deletion from disk."
 msgstr ""
 
-msgid "Optional: A free-text document description."
-msgstr ""
-
 msgid "Save finished document."
 msgstr ""
 
@@ -2973,6 +3002,9 @@ msgstr ""
 msgid "Associate to episode:"
 msgstr ""
 
+msgid "Document source:"
+msgstr ""
+
 msgid "Comment / Identification:"
 msgstr ""
 
@@ -3153,7 +3185,7 @@ msgstr ""
 msgid "Messages:"
 msgstr ""
 
-msgid "Only:"
+msgid "Limit to:"
 msgstr ""
 
 msgid "&Myself … or:"
@@ -3263,10 +3295,10 @@ msgstr ""
 msgid "Purpose"
 msgstr ""
 
-msgid "Details"
+msgid "Please supply your email address here !"
 msgstr ""
 
-msgid "<Please supply your email address here !>"
+msgid "Details"
 msgstr ""
 
 msgid "Keep running"
@@ -3290,9 +3322,11 @@ msgid ""
 msgstr ""
 
 msgid ""
-"Please enter your email address so we can provide feedback directly to you. "
-"Otherwise, feedback will be given on the GNUmed mailing list (http://lists."
-"gnu.org/mailman/listinfo/gnumed-bugs)."
+"Please enter your email address so we can provide help to you directly.\n"
+"\n"
+"Otherwise, feedback can be given on the GNUmed mailing list (http://lists."
+"gnu.org/mailman/listinfo/gnumed-bugs) ONLY to which you will then have to "
+"subscribe."
 msgstr ""
 
 msgid "Find help on http://wiki.gnumed.de, too."
@@ -3407,9 +3441,6 @@ msgstr ""
 msgid "Account"
 msgstr ""
 
-msgid "Password"
-msgstr ""
-
 msgid "Password, again"
 msgstr ""
 
@@ -3896,7 +3927,7 @@ msgstr ""
 msgid "Acquire images from image source (scanner, ...)."
 msgstr ""
 
-msgid "Acquire images or text from the clipboard."
+msgid "Acquire file or text from the clipboard."
 msgstr ""
 
 msgid "Remove the selected documents."
@@ -4042,7 +4073,7 @@ msgid ""
 "- the result list will be artificially limited to the first 1000 rows\n"
 "- you can include a column named \"pk_patient\" to make the result rows "
 "activate the corresponding patient on double-clicking\n"
-"- by inserting $<ID_active_patient>$ you can access the patient ID of the "
+"- by inserting $<ID_ACTIVE_PATIENT>$ you can access the patient ID of the "
 "patient active at the time of running the query"
 msgstr ""
 
@@ -4201,9 +4232,6 @@ msgstr ""
 msgid "Link &new"
 msgstr ""
 
-msgid "Browse"
-msgstr ""
-
 msgid ""
 "Search for matches among existing addresses and [Link] a selection, or [Link "
 "(a) new] address."
@@ -4252,25 +4280,16 @@ msgid ""
 "left."
 msgstr ""
 
-msgid "label_1"
-msgstr ""
-
-msgid "→"
-msgstr ""
-
-msgid "←"
-msgstr ""
-
-msgid "Extra"
+msgid "Subjective"
 msgstr ""
 
-msgid "Move selected items from left to right."
+msgid "Objective"
 msgstr ""
 
-msgid "Move selected items from right to left."
+msgid "Assessment"
 msgstr ""
 
-msgid "Cancel picking items."
+msgid "Plan"
 msgstr ""
 
 msgid "Episode synopsis"
@@ -4306,19 +4325,28 @@ msgid ""
 "narrative belongs to."
 msgstr ""
 
-msgid "Subjective"
+msgid "Codes:"
 msgstr ""
 
-msgid "Codes:"
+msgid "label_1"
 msgstr ""
 
-msgid "Objective"
+msgid "→"
 msgstr ""
 
-msgid "Assessment"
+msgid "←"
 msgstr ""
 
-msgid "Plan"
+msgid "Extra"
+msgstr ""
+
+msgid "Move selected items from left to right."
+msgstr ""
+
+msgid "Move selected items from right to left."
+msgstr ""
+
+msgid "Cancel picking items."
 msgstr ""
 
 msgid "1"
@@ -4487,63 +4515,140 @@ msgstr ""
 msgid "Age range"
 msgstr ""
 
-msgid "Closed episodes"
+msgid "&Nicotine"
 msgstr ""
 
-msgid "Non-relevant issues"
+msgid "&Alcohol"
 msgstr ""
 
-msgid "Active problems"
+msgid "&Other:"
 msgstr ""
 
-msgid "Notes only"
+msgid "&Non-harmful use"
 msgstr ""
 
-msgid "Everything"
+msgid "&Harmful use"
 msgstr ""
 
-msgid ""
-"In this area GNUmed will place the notes of the\n"
-"previous encounter as well as notes by other\n"
-"staff for the current encounter.\n"
-"\n"
-"Note that this may change depending on which\n"
-"active problem is selected in the editor below."
+msgid "Presently &addicted"
 msgstr ""
 
-msgid "Most recent info on above problem"
+msgid "Previously &addicted"
 msgstr ""
 
-msgid "Show closed episodes as pseudo-problems ?"
+msgid "&Reconfirm as of today"
 msgstr ""
 
-msgid "Show issues marked clinically NOT relevant."
+msgid "Select for documenting smoking status."
+msgstr ""
+
+msgid "Select for documenting alcohol use status."
 msgstr ""
 
 msgid ""
-"This shows the list of active problems, They include open episodes as well "
-"as active health issues."
+"Select for documenting use of substances other than nicotine or alcohol."
 msgstr ""
 
-msgid "Show notes only (regarding the above problem)"
+msgid "Select the abused substance."
 msgstr ""
 
-msgid "Show full information (regarding above problem)"
+msgid ""
+"Select if the substance use is not considered harmful (say, no use or non-"
+"harmful use)."
 msgstr ""
 
-msgid "Schock index"
+msgid "Select if substance is use considered harmful."
 msgstr ""
 
-msgid "<SI>"
+msgid "Select if the patient is presently addicted to this substance."
 msgstr ""
 
-msgid "rhythmic"
+msgid "Select if the patient was previously addicted to this substance."
 msgstr ""
 
-msgid "arrhythmic"
+msgid ""
+"A comment on this substance use:\n"
+"- type of product used\n"
+"- frequency\n"
+"- amount\n"
+"- when started\n"
+"- attempts to quit\n"
+"..."
 msgstr ""
 
-msgid "°C"
+msgid ""
+"When did the patient quit?\n"
+"\n"
+"You can also set a target quit date here."
+msgstr ""
+
+msgid "Check here to confirm for today."
+msgstr ""
+
+msgid "Quit date"
+msgstr ""
+
+#, fuzzy
+msgid "Last confirmed"
+msgstr " (ბოლო დადასტურება %ს)"
+
+msgid "Closed episodes"
+msgstr ""
+
+msgid "Non-relevant issues"
+msgstr ""
+
+msgid "Active problems"
+msgstr ""
+
+msgid "Notes only"
+msgstr ""
+
+msgid "Everything"
+msgstr ""
+
+msgid ""
+"In this area GNUmed will place the notes of the\n"
+"previous encounter as well as notes by other\n"
+"staff for the current encounter.\n"
+"\n"
+"Note that this may change depending on which\n"
+"active problem is selected in the editor below."
+msgstr ""
+
+msgid "Most recent info on above problem"
+msgstr ""
+
+msgid "Show closed episodes as pseudo-problems ?"
+msgstr ""
+
+msgid "Show issues marked clinically NOT relevant."
+msgstr ""
+
+msgid ""
+"This shows the list of active problems, They include open episodes as well "
+"as active health issues."
+msgstr ""
+
+msgid "Show notes only (regarding the above problem)"
+msgstr ""
+
+msgid "Show full information (regarding above problem)"
+msgstr ""
+
+msgid "Schock index"
+msgstr ""
+
+msgid "<SI>"
+msgstr ""
+
+msgid "rhythmic"
+msgstr ""
+
+msgid "arrhythmic"
+msgstr ""
+
+msgid "°C"
 msgstr ""
 
 msgid "°F"
@@ -4823,20 +4928,18 @@ msgstr ""
 msgid "Show:"
 msgstr ""
 
-msgid "Brand by component"
+msgid "Kidneys"
 msgstr ""
 
 msgid "Brands"
 msgstr ""
 
-msgid "Kidneys"
-msgstr ""
-
-msgid "Unbranded substance"
+msgid "Substances"
 msgstr ""
 
-msgid "Manage"
-msgstr ""
+#, fuzzy
+msgid "&Unknown or date:"
+msgstr "უცნობი ალერგიული ფორმა"
 
 msgid "Approved of"
 msgstr ""
@@ -4851,22 +4954,18 @@ msgid "... Reason"
 msgstr ""
 
 msgid ""
-"A component of a drug brand the patient is taking.\n"
+"A drug the patient is taking.\n"
 "\n"
-"Lookup, and select, a single- (or multi-) component drug brand, by active "
-"ingredient name. All components of multi-component drugs will be displayed "
-"and automatically added to the patient's list."
-msgstr ""
-
-msgid ""
-"Manage drug brands.\n"
+"Lookup and select an intake by either of\n"
+"- a generic substance name\n"
+"- a drug brand name\n"
+"- an active ingredient of a drug\n"
 "\n"
-"Note that this will not select a component for you. What it does is to let "
-"you manage (add/edit/delete) the drug products/brands known to GNUmed from "
-"which you can select a component."
+"Note that all components of multi-component drugs will be displayed and "
+"automatically added to the patient's list."
 msgstr ""
 
-msgid "The active ingredients of this brand."
+msgid "Details on the selected drug."
 msgstr ""
 
 msgid "Show cardiac information relevant to substance selection."
@@ -4876,8 +4975,11 @@ msgid "Show renal insufficiency information related to substance selection."
 msgstr ""
 
 msgid ""
-"The non-branded medication or non-medication substance, with optional "
-"strength."
+"Manage drug brands.\n"
+"\n"
+"Note that this will not select a component for you. What it does is to let "
+"you manage (add/edit/delete) the drug products/brands known to GNUmed from "
+"which you can select a component."
 msgstr ""
 
 msgid ""
@@ -4890,11 +4992,19 @@ msgstr ""
 msgid "The preparation or form of the substance."
 msgstr ""
 
+msgid "Check here if the start date simply isn't known."
+msgstr ""
+
 msgid ""
 "When was this substance started to be consumed or - if not known - the "
 "earliest it is known to have been be consumed."
 msgstr ""
 
+msgid ""
+"A coment on the certainty of the start date, such as \"+/- 3 weeks\", "
+"\"spring of 2002\", \"shortly after Easter 1996\", ...."
+msgstr ""
+
 msgid "Whether this substance is taken by advice."
 msgstr ""
 
@@ -4928,6 +5038,15 @@ msgstr ""
 msgid "Reason for discontinuation."
 msgstr ""
 
+msgid "Drug"
+msgstr ""
+
+msgid "Research:"
+msgstr ""
+
+msgid "Certainty:"
+msgstr ""
+
 msgid "Schedule"
 msgstr ""
 
@@ -5079,6 +5198,30 @@ msgstr ""
 msgid "Channel"
 msgstr ""
 
+msgid "&Last modification time"
+msgstr ""
+
+msgid "&Entry time"
+msgstr ""
+
+msgid "Show journal ordered by encounter."
+msgstr ""
+
+msgid "Show journal ordered by time of last modification."
+msgstr ""
+
+msgid "Show journal ordered by actual clinical time of each entry."
+msgstr ""
+
+msgid "Edit the selected chart entry."
+msgstr ""
+
+msgid "Delete selected chart entry."
+msgstr ""
+
+msgid "Order by:"
+msgstr ""
+
 msgid "Chec&k"
 msgstr ""
 
@@ -5621,10 +5764,13 @@ msgstr ""
 msgid "Documents:"
 msgstr ""
 
+msgid "&L"
+msgstr ""
+
 msgid "&N"
 msgstr ""
 
-msgid "&L"
+msgid "List all encounters."
 msgstr ""
 
 msgid "The encounter."
@@ -5633,9 +5779,6 @@ msgstr ""
 msgid "Start a new encounter for the active patient."
 msgstr ""
 
-msgid "List all encounters."
-msgstr ""
-
 msgid "Clinically relevant"
 msgstr ""
 
@@ -5884,7 +6027,8 @@ msgstr ""
 
 msgid ""
 "Rationale for\n"
-"suppression"
+"suppression\n"
+"for this patient"
 msgstr ""
 
 msgid "Save &under"
@@ -5940,6 +6084,12 @@ msgstr ""
 msgid "Encounter:"
 msgstr ""
 
+msgid "Manage"
+msgstr ""
+
+msgid "&Panel:"
+msgstr ""
+
 msgid "&Pick"
 msgstr ""
 
@@ -5982,6 +6132,9 @@ msgid ""
 "To disable that popup leave the message empty."
 msgstr ""
 
+msgid "Show search dialog."
+msgstr ""
+
 msgid "THIS IS NOT A VERIFIED MEASUREMENT. DO NOT USE FOR ACTUAL CARE."
 msgstr ""
 
@@ -6262,6 +6415,48 @@ msgstr "ალერგია"
 msgid "ERROR: unknown allergy state [%s]"
 msgstr "შეცდომა: უცნობი ალერგიის ფორმა [%ს]"
 
+msgid "definite"
+msgstr ""
+
+msgid "indefinite"
+msgstr ""
+
+msgid "Reaction:"
+msgstr ""
+
+msgid "Noted:"
+msgstr ""
+
+msgid "Allergene:"
+msgstr ""
+
+#, fuzzy
+msgid "Substance:"
+msgstr ""
+"%ს:%ს %.8ს (ვ%ს)\n"
+"%ს"
+
+msgid "Code:"
+msgstr ""
+
+msgid "ATC:"
+msgstr ""
+
+msgid "Specific to:"
+msgstr ""
+
+msgid "this substance only"
+msgstr ""
+
+msgid "drug class"
+msgstr ""
+
+msgid "unknown"
+msgstr ""
+
+msgid "Generics:"
+msgstr ""
+
 msgid "Medication history"
 msgstr ""
 
@@ -6271,9 +6466,15 @@ msgstr ""
 msgid "prescription data"
 msgstr ""
 
+msgid "Consumable substance"
+msgstr ""
+
 msgid "in use"
 msgstr ""
 
+msgid "w/"
+msgstr ""
+
 msgid "long-term"
 msgstr ""
 
@@ -6293,6 +6494,37 @@ msgid "?ongoing"
 msgstr ""
 
 #, python-format
+msgid ""
+"Substance abuse entry                                              [#%s]\n"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "Substance: %s [#%s]%s\n"
+msgstr ""
+"%ს:%ს %.8ს (ვ%ს)\n"
+"%ს"
+
+#, python-format
+msgid "Use type: %s\n"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "Last checked: %s\n"
+msgstr "ბოლო აღრიცხვა:"
+
+#, python-format
+msgid " Discontinued %s\n"
+msgstr ""
+
+#, fuzzy, python-format
+msgid " Notes: %s\n"
+msgstr "მდგომარეობა"
+
+#, python-format
+msgid "Revision: #%(row_ver)s, %(mod_when)s by %(mod_by)s."
+msgstr ""
+
+#, python-format
 msgid "Substance intake entry (%s, %s)   [#%s]                     \n"
 msgstr ""
 
@@ -6308,9 +6540,6 @@ msgstr ""
 msgid "unapproved"
 msgstr ""
 
-msgid "definite"
-msgstr ""
-
 msgid "suspected"
 msgstr ""
 
@@ -6357,10 +6586,6 @@ msgid " (short-term)"
 msgstr ""
 
 #, python-format
-msgid " Discontinued %s\n"
-msgstr ""
-
-#, python-format
 msgid " Reason: %s\n"
 msgstr ""
 
@@ -6380,112 +6605,152 @@ msgstr ""
 msgid " Advice: %s\n"
 msgstr ""
 
-#, python-format
-msgid "Revision: #%(row_ver)s, %(mod_when)s by %(mod_by)s."
-msgstr ""
-
-#, python-format
-msgid "%s: %s ago"
+msgid "medication, not abuse"
 msgstr ""
 
-#, fuzzy, python-format
-msgid "%s: %s ago (%s)"
+msgid "no or non-harmful use"
 msgstr ""
-"%ს:%ს %.8ს (ვ%ს)\n"
-"%ს"
 
-msgid "Additional notes"
+msgid "presently harmful use"
 msgstr ""
 
-msgid "Strength"
+msgid "presently addicted"
 msgstr ""
 
-msgid "Medication list"
+msgid "previously addicted"
 msgstr ""
 
-msgid "ordered by brand"
+#, fuzzy, python-format
+msgid "%s%s: %s ago%s"
 msgstr ""
+"%ს:%ს %.8ს (ვ%ს)\n"
+"%ს"
 
-msgid "Drug"
+#, fuzzy, python-format
+msgid "%s%s: %s ago (%s)"
 msgstr ""
+"%ს:%ს %.8ს (ვ%ს)\n"
+"%ს"
 
-msgid "Regimen / Advice"
+#, fuzzy, python-format
+msgid "%s%s%s (%s ago)"
 msgstr ""
+"%ს:%ს %.8ს (ვ%ს)\n"
+"%ს"
 
-msgid "units"
+#, fuzzy, python-format
+msgid "%s%s%s (%s ago, %s)"
 msgstr ""
+"%ს:%ს %.8ს (ვ%ს)\n"
+"%ს"
 
-msgid "virtual message"
+#, python-format
+msgid "%s ago"
 msgstr ""
 
-msgid "message"
+#, python-format
+msgid "in %s"
 msgstr ""
 
-msgid "everyone"
-msgstr ""
+#, fuzzy, python-format
+msgid ", until %s (%s)"
+msgstr "ვაქცინაცია"
 
 #, python-format
-msgid "Patient #%s"
+msgid " (planned for %s%s)"
 msgstr ""
 
 #, python-format
-msgid "Due: %s (%s ago)\n"
+msgid ", planned for %s%s"
 msgstr ""
 
-#, python-format
-msgid "Due: %s (in %s)\n"
+#, fuzzy, python-format
+msgid "%s ago (for %s: %s %s %s)"
 msgstr ""
+"%ს:%ს %.8ს (ვ%ს)\n"
+"%ს"
 
-#, python-format
-msgid "Expired: %s\n"
+msgid "Additional notes"
 msgstr ""
 
-#, python-format
-msgid "Expires: %s\n"
+msgid "Strength"
 msgstr ""
 
-msgid "Active clinical hint"
+msgid "Medication list"
 msgstr ""
 
-msgid "Inactive clinical hint"
+msgid "ordered by brand"
 msgstr ""
 
-#, python-format
-msgid "Source: %s\n"
+msgid "Regimen / Advice"
 msgstr ""
 
-#, python-format
-msgid "Language: %s\n"
+#, fuzzy, python-format
+msgid "Component of %s (%s)"
 msgstr ""
+"%ს:%ს %.8ს (ვ%ს)\n"
+"%ს"
 
-msgid "Suppressed active dynamic hint"
+#, python-format
+msgid "ATC (substance): %s"
 msgstr ""
 
-msgid "Suppressed inactive dynamic hint"
+#, python-format
+msgid "ATC (brand): %s"
+msgstr ""
+
+msgid "this is a component of a fake brand"
+msgstr ""
+
+msgid "Components:"
+msgstr ""
+
+msgid "this is a fake brand"
+msgstr ""
+
+msgid "this is a vaccine"
+msgstr ""
+
+msgid "units"
+msgstr ""
+
+msgid "virtual message"
+msgstr ""
+
+msgid "message"
+msgstr ""
+
+msgid "everyone"
 msgstr ""
 
 #, python-format
-msgid "Suppressed by: %s\n"
+msgid "Patient #%s"
 msgstr ""
 
 #, python-format
-msgid "Suppressed at: %s\n"
+msgid "Due: %s (%s ago)\n"
 msgstr ""
 
 #, python-format
-msgid "Hint #: %s\n"
+msgid "Due: %s (in %s)\n"
 msgstr ""
 
 #, python-format
-msgid "Patient #: %s\n"
+msgid "Expired: %s\n"
 msgstr ""
 
 #, python-format
-msgid "MD5 (currently): %s\n"
+msgid "Expires: %s\n"
+msgstr ""
+
+msgid "HL7 Source"
+msgstr ""
+
+msgid "HL7 data size"
 msgstr ""
 
 #, python-format
-msgid "MD5 (at suppression): %s\n"
+msgid "%s bytes"
 msgstr ""
 
 msgid "HL7 Message"
@@ -6543,13 +6808,6 @@ msgstr ""
 msgid "doc: %s"
 msgstr ""
 
-msgid "no patient photograph available"
-msgstr ""
-
-#, python-format
-msgid "patient photograph from %s"
-msgstr ""
-
 msgid "Patient data for"
 msgstr ""
 
@@ -6559,6 +6817,9 @@ msgstr ""
 msgid "Patient data export"
 msgstr ""
 
+msgid "no patient photograph available"
+msgstr ""
+
 msgid "Documents"
 msgstr ""
 
@@ -6569,6 +6830,10 @@ msgstr ""
 msgid "browse documents area"
 msgstr " %ს საბუთები\n"
 
+#, python-format
+msgid "patient photograph from %s"
+msgstr ""
+
 msgid "Browse patient data"
 msgstr ""
 
@@ -6603,24 +6868,24 @@ msgstr ""
 #, python-format
 msgid ""
 "%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s %(suburb)s, "
-"%(code_state)s, %(code_country)s"
+"%(code_region)s, %(code_country)s"
 msgstr ""
 
 #, python-format
 msgid ""
 "%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s %(suburb)s, "
-"%(code_state)s, %(code_country)s"
+"%(code_region)s, %(code_country)s"
 msgstr ""
 
 #, python-format
 msgid ""
-"%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_state)s, "
-"%(code_country)s"
+"%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, "
+"%(code_region)s, %(code_country)s"
 msgstr ""
 
 #, python-format
 msgid ""
-"%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_state)s, "
+"%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_region)s, "
 "%(code_country)s"
 msgstr ""
 
@@ -6630,7 +6895,7 @@ msgid ""
 " Street: %(street)s%(notes_street)s\n"
 " Number/Unit: %(number)s%(subunit)s%(notes_subunit)s\n"
 " Location: %(zip)s %(urb)s%(suburb)s\n"
-" Region: %(l10n_state)s, %(code_state)s\n"
+" Region: %(l10n_region)s, %(code_region)s\n"
 " Country: %(l10n_country)s, %(code_country)s"
 msgstr ""
 
@@ -6640,7 +6905,7 @@ msgid ""
 " Street: %(street)s%(notes_street)s\n"
 " Number/Unit: %(number)s%(subunit)s%(notes_subunit)s\n"
 " Location: %(zip)s %(urb)s%(suburb)s\n"
-" Region: %(l10n_state)s, %(code_state)s\n"
+" Region: %(l10n_region)s, %(code_region)s\n"
 " Country: %(l10n_country)s, %(code_country)s"
 msgstr ""
 
@@ -6709,6 +6974,89 @@ msgstr ""
 msgid "missing, reported later"
 msgstr ""
 
+msgid "Health issue"
+msgstr ""
+
+msgid "External care"
+msgstr ""
+
+msgid "Vaccination"
+msgstr ""
+
+msgid "Clinical narrative"
+msgstr ""
+
+#, fuzzy
+msgid "Test result"
+msgstr " %ს ანალიზის პასუხები\n"
+
+msgid "Substance intake"
+msgstr ""
+
+msgid "Hospital stay"
+msgstr ""
+
+msgid "Performed procedure"
+msgstr ""
+
+#, fuzzy
+msgid "Family history"
+msgstr "ოჯახის ისტორია"
+
+#, fuzzy
+msgid "Document"
+msgstr " %ს საბუთები\n"
+
+#, python-format
+msgid "unmapped entry type from table [%s]"
+msgstr ""
+
+#, python-format
+msgid "cannot instantiate clinical root item <%s(%s)>"
+msgstr ""
+
+msgid "True"
+msgstr ""
+
+msgid "False"
+msgstr ""
+
+#, fuzzy
+msgid "unknown smoking status"
+msgstr "მდგომარეობა"
+
+msgid "non-smoker"
+msgstr ""
+
+msgid "current smoker"
+msgstr ""
+
+msgid "ex-smoker"
+msgstr ""
+
+msgid "tobacco addiction"
+msgstr ""
+
+msgid "no or non-harmful alcohol use"
+msgstr ""
+
+msgid "harmful alcohol use"
+msgstr ""
+
+#, fuzzy
+msgid "unknown alcohol use"
+msgstr "უცნობი ალერგიული ფორმა"
+
+msgid "no or non-harmful drug use"
+msgstr ""
+
+msgid "harmful drug use"
+msgstr ""
+
+#, fuzzy
+msgid "unknown drug use"
+msgstr "უცნობი ალერგიული ფორმა"
+
 msgid "original entry"
 msgstr ""
 
@@ -6800,13 +7148,6 @@ msgstr ""
 msgid "Vaccinations"
 msgstr "ვაქცინაცია"
 
-#, python-format
-msgid "%s ago"
-msgstr ""
-
-msgid "External care"
-msgstr ""
-
 msgid "Allergies/Intolerances"
 msgstr ""
 
@@ -6880,6 +7221,83 @@ msgid ""
 "The account was deactivated instead."
 msgstr ""
 
+msgid "SOAP_char_S=S"
+msgstr ""
+
+msgid "SOAP_char_O=O"
+msgstr ""
+
+msgid "SOAP_char_A=A"
+msgstr ""
+
+msgid "SOAP_char_P=P"
+msgstr ""
+
+msgid "SOAP_char_U=U"
+msgstr ""
+
+msgid "SOAP_string_Subjective=Subjective"
+msgstr ""
+
+msgid "SOAP_string_Objective=Objective"
+msgstr ""
+
+msgid "SOAP_string_Assessment=Assessment"
+msgstr ""
+
+msgid "SOAP_string_Plan=Plan"
+msgstr ""
+
+msgid "SOAP_string_Unspecified=Unspecified"
+msgstr ""
+
+msgid "SOAP_string_Administrative=Administrative"
+msgstr ""
+
+msgid "Active clinical hint"
+msgstr ""
+
+msgid "Inactive clinical hint"
+msgstr ""
+
+#, python-format
+msgid "Source: %s\n"
+msgstr ""
+
+#, python-format
+msgid "Language: %s\n"
+msgstr ""
+
+msgid "Suppressed active dynamic hint"
+msgstr ""
+
+msgid "Suppressed inactive dynamic hint"
+msgstr ""
+
+#, python-format
+msgid "Suppressed by: %s\n"
+msgstr ""
+
+#, python-format
+msgid "Suppressed at: %s\n"
+msgstr ""
+
+#, python-format
+msgid "Hint #: %s\n"
+msgstr ""
+
+#, python-format
+msgid "Patient #: %s\n"
+msgstr ""
+
+#, python-format
+msgid "MD5 (currently): %s\n"
+msgstr ""
+
+#, python-format
+msgid "MD5 (at suppression): %s\n"
+msgstr ""
+
 #, fuzzy, python-format
 msgid "Device(%s):"
 msgstr "მოწყობილობა"
@@ -6906,6 +7324,12 @@ msgstr "იმპედანსი:"
 msgid "Praxis branch                   #%s\n"
 msgstr ""
 
+#, python-format
+msgid ""
+"FN:%(l10n_unit_category)s %(branch)s of %(l10n_organization_category)s "
+"%(praxis)s"
+msgstr ""
+
 msgid "Privacy notice"
 msgstr ""
 
@@ -6919,40 +7343,6 @@ msgstr ""
 msgid "%s: Staff member %s has been notified of your chart access."
 msgstr ""
 
-msgid "soap_S"
-msgstr "საპონი"
-
-msgid "soap_O"
-msgstr "საპონი"
-
-msgid "soap_A"
-msgstr "საპონი"
-
-msgid "soap_P"
-msgstr ""
-
-#, fuzzy
-msgid "soap_U"
-msgstr "საპონი"
-
-msgid "soap_Subjective"
-msgstr ""
-
-msgid "soap_Objective"
-msgstr ""
-
-msgid "soap_Assessment"
-msgstr "შეფასება"
-
-msgid "soap_Plan"
-msgstr "გეგმა"
-
-msgid "soap_Unspecified"
-msgstr ""
-
-msgid "soap_Administrative"
-msgstr "ადმინისტრაციული"
-
 #, fuzzy, python-format
 msgid ""
 "%s: %s by %.8s (v%s)\n"
@@ -7019,9 +7409,17 @@ msgid "%(last)s,%(title)s %(first)s%(nick)s (%(sex)s)"
 msgstr ""
 
 #, python-format
+msgid "%(last)s,%(title)s %(first)s (%(sex)s)"
+msgstr ""
+
+#, python-format
 msgid "%(last)s,%(title)s %(first)s%(nick)s"
 msgstr ""
 
+#, python-format
+msgid "%(last)s,%(title)s %(first)s"
+msgstr ""
+
 msgid "Cannot merge active patient into another patient."
 msgstr ""
 
@@ -7031,9 +7429,6 @@ msgstr ""
 msgid "merged"
 msgstr ""
 
-msgid "preferred name/call name/..."
-msgstr ""
-
 msgid "invalid age: DOB in the future"
 msgstr ""
 
@@ -7046,9 +7441,6 @@ msgstr ""
 msgid "Mrs"
 msgstr ""
 
-msgid "unknown"
-msgstr ""
-
 msgid "empty status"
 msgstr ""
 
@@ -7379,7 +7771,7 @@ msgid " Part %s: %s %s(%s Bytes)\n"
 msgstr ""
 
 #, python-format
-msgid " Filename: %s\n"
+msgid " Filename: %s%s\n"
 msgstr ""
 
 msgid "no parts"
@@ -7393,18 +7785,25 @@ msgid "%s parts"
 msgstr ""
 
 #, python-format
+msgid "%s of %s"
+msgstr ""
+
+#, python-format
 msgid ""
 "%s (%s)   #%s\n"
-"\n"
 " Created: %s\n"
 " Episode: %s\n"
-"%s%s%s"
+"%s%s%s%s"
 msgstr ""
 
 #, python-format
 msgid " External reference: %s\n"
 msgstr ""
 
+#, fuzzy, python-format
+msgid " Organization: %%s @ %s\n"
+msgstr "ვაქცინაცია"
+
 msgid "Cannot run [arriba] !"
 msgstr "გაშვება შეუძლებელია"
 
@@ -7748,25 +8147,9 @@ msgstr ""
 msgid "External care:"
 msgstr ""
 
-#, python-format
-msgid ""
-"health issue: %s%s%s\n"
-"\n"
-msgstr ""
-
-msgid ""
-"\n"
-"current values:\n"
-msgstr ""
-
-msgid "no previous versions of this record"
-msgstr ""
-
-msgid ""
-"\n"
-"all values with <audit_action>, <audit_when>, <audit_by> fields (current "
-"value first):\n"
-msgstr ""
+#, fuzzy, python-format
+msgid "Health issue: %s%s%s"
+msgstr "%ს: შეჯახება (%ს)"
 
 msgid "Unattributed episodes"
 msgstr ""
@@ -7789,9 +8172,6 @@ msgstr ""
 msgid "finished"
 msgstr ""
 
-msgid "Health issue"
-msgstr ""
-
 msgid "none associated"
 msgstr ""
 
@@ -7826,11 +8206,11 @@ msgstr ""
 msgid "Measurements and Results:"
 msgstr ""
 
-#, python-format
-msgid ""
-"episode: %s%s%s\n"
-"\n"
+#, fuzzy, python-format
+msgid "Episode: %s%s%s"
 msgstr ""
+"%ს:%ს %.8ს (ვ%ს)\n"
+"%ს"
 
 #, python-format
 msgid "  your time: %s - %s  (@%s = %s%s)\n"
@@ -7857,9 +8237,7 @@ msgid "%s other episodes touched upon during this encounter:"
 msgstr ""
 
 #, fuzzy, python-format
-msgid ""
-"encounter: %s%s%s\n"
-"\n"
+msgid "Encounter: %s%s%s"
 msgstr "%ს: შეჯახება (%ს)"
 
 msgid " (ongoing)"
@@ -7880,9 +8258,6 @@ msgstr ""
 msgid "Procedures"
 msgstr ""
 
-msgid "Substances"
-msgstr ""
-
 msgid "Life events"
 msgstr ""
 
@@ -7904,9 +8279,6 @@ msgstr ""
 msgid "Cannot display timeline."
 msgstr ""
 
-msgid "Vaccination"
-msgstr ""
-
 msgid "Lab result"
 msgstr ""
 
@@ -7974,9 +8346,6 @@ msgstr ""
 msgid "Exported: %s\n"
 msgstr ""
 
-msgid "emr-journal"
-msgstr ""
-
 msgid "Chronological EMR Journal\n"
 msgstr ""
 
@@ -8244,25 +8613,144 @@ msgstr ""
 msgid "Select one or more codes that apply."
 msgstr ""
 
-msgid "Cannot move progress notes. No active patient."
+msgid "Select the narrative you are interested in ..."
 msgstr ""
 
-msgid "Moving progress notes between encounters ..."
+msgid "when"
+msgstr ""
+
+msgid "who"
+msgstr ""
+
+msgid "entry"
+msgstr ""
+
+msgid "There is no narrative for this episode in this encounter."
+msgstr ""
+
+msgid "Must select episode to move narrative to first."
+msgstr ""
+
+msgid "Last"
 msgstr ""
 
+msgid "In health issue"
+msgstr ""
+
+msgid "Most recent notes on selected problem"
+msgstr ""
+
+#, python-format
+msgid "%s (active+potential) problems"
+msgstr ""
+
+#, python-format
+msgid "%s active problems"
+msgstr ""
+
+msgid "Current encounter:"
+msgstr ""
+
+msgid "Cumulative summary"
+msgstr ""
+
+#, python-format
+msgid "Most recent info on %s%s%s"
+msgstr ""
+
+#, python-format
 msgid ""
+"Cannot open progress note editor for\n"
 "\n"
-" Select the progress notes to move from the list !\n"
+"[%s].\n"
 "\n"
 msgstr ""
 
-msgid "when"
+msgid "opening progress note editor"
 msgstr ""
 
-msgid "who"
+msgid "Cannot save all editors. Some were kept open."
 msgstr ""
 
-msgid "entry"
+msgid "new problem"
+msgstr ""
+
+msgid ""
+"Are you sure you really want to\n"
+"discard this progress note ?\n"
+msgstr ""
+
+msgid "Discarding progress note"
+msgstr ""
+
+msgid "There are unsaved progress notes !\n"
+msgstr ""
+
+msgid "Unsaved progress notes"
+msgstr ""
+
+msgid "Problem list"
+msgstr ""
+
+msgid "Saving SOAP note"
+msgstr ""
+
+msgid "Do you want to save the SOAP note ?"
+msgstr ""
+
+#, python-format
+msgid "&Filter by problem %s%s%s"
+msgstr ""
+
+msgid "Cannot save SimpleNotes SOAP note."
+msgstr ""
+
+#, python-format
+msgid "Progress note: %s%s"
+msgstr ""
+
+msgid "Please enter a name for the new problem:"
+msgstr ""
+
+msgid "Adding a problem"
+msgstr ""
+
+msgid "Cannot delete problem. There is still clinical data recorded for it."
+msgstr ""
+
+#, python-format
+msgid "GNUmed: configuring [%s] (%s plugins)"
+msgstr ""
+
+msgid "loading list of plugins                               "
+msgstr ""
+
+msgid "failed"
+msgstr ""
+
+msgid "success"
+msgstr ""
+
+#, python-format
+msgid ""
+"previous: %s (%s)\n"
+"current (%s/%s): %s"
+msgstr ""
+
+#, python-format
+msgid "Cannot switch to [%s]: no patient selected"
+msgstr ""
+
+msgid "Cannot move progress notes. No active patient."
+msgstr ""
+
+msgid "Moving progress notes between encounters ..."
+msgstr ""
+
+msgid ""
+"\n"
+" Select the progress notes to move from the list !\n"
+"\n"
 msgstr ""
 
 msgid "Cannot edit progress notes. No active patient."
@@ -8464,1059 +8952,985 @@ msgid ""
 " Now, mark the entries you want to include in your report.\n"
 msgstr ""
 
-msgid "Select the narrative you are interested in ..."
+msgid "Pick a date ..."
 msgstr ""
 
-msgid "There is no narrative for this episode in this encounter."
+msgid "<ALT-C/K>: pick from (c/k)alendar"
 msgstr ""
 
-msgid "Must select episode to move narrative to first."
+msgid "Cannot interpret input as timestamp."
 msgstr ""
 
-msgid "Last"
+msgid "No vaccines were chosen"
 msgstr ""
 
-msgid "In health issue"
+#, python-format
+msgid "Combination of indications , %s , not found in any vaccine"
 msgstr ""
 
-msgid "Most recent notes on selected problem"
+msgid "Sequence"
 msgstr ""
 
-#, python-format
-msgid "%s (active+potential) problems"
+msgid "Batch"
 msgstr ""
 
-#, python-format
-msgid "%s active problems"
+msgid "Vaccinator"
 msgstr ""
 
-msgid "Current encounter:"
+msgid ""
+"Vaccinations by Recommender (X = patient on regime, O = patient not on "
+"regime) "
 msgstr ""
 
-msgid "Cumulative summary"
+msgid "enrolled regime vaccinations not yet given"
 msgstr ""
 
-#, python-format
-msgid "Most recent info on %s%s%s"
+msgid "Proceed with "
 msgstr ""
 
 #, python-format
-msgid ""
-"Cannot open progress note editor for\n"
-"\n"
-"[%s].\n"
-"\n"
+msgid "Failed to enrol patient in %s"
 msgstr ""
 
-msgid "opening progress note editor"
+#, python-format
+msgid "Failed to  delist patient from %s"
 msgstr ""
 
-msgid "Cannot save all editors. Some were kept open."
+msgid "Missing GNUmed module"
 msgstr ""
 
-msgid "new problem"
+#, python-format
+msgid ""
+"GNUmed detected that parts of it are not\n"
+"properly installed. The following message\n"
+"names the missing part:\n"
+"\n"
+" \"%s\"\n"
+"\n"
+"Please make sure to get the missing\n"
+"parts installed. Otherwise some of the\n"
+"functionality will not be accessible."
 msgstr ""
 
+#, python-format
 msgid ""
-"Are you sure you really want to\n"
-"discard this progress note ?\n"
+"\n"
+" Source: %s"
 msgstr ""
 
-msgid "Discarding progress note"
+#, python-format
+msgid ""
+"\n"
+" Code: %s"
 msgstr ""
 
-msgid "There are unsaved progress notes !\n"
+#, python-format
+msgid ""
+"\n"
+" Details (first 250 characters):\n"
+"%s\n"
+"%s\n"
+"%s"
 msgstr ""
 
-msgid "Unsaved progress notes"
+msgid "Access violation"
 msgstr ""
 
 #, python-format
-msgid "Synopsis (%s)"
+msgid ""
+"You do not have access to this part of GNUmed.\n"
+"\n"
+"%s"
 msgstr ""
 
-msgid ""
-"Enter a short working name for this new problem\n"
-"(which will become a new, unassociated episode):\n"
+msgid "Lost connection"
 msgstr ""
 
-#, python-format
 msgid ""
-"Enter a short working name for this new\n"
-"episode under the existing health issue\n"
+"Since you were last working in GNUmed,\n"
+"your database connection timed out.\n"
 "\n"
-"\"%s\":\n"
+"This GNUmed session is now expired.\n"
+"\n"
+"You will have to close this client and\n"
+"restart a new GNUmed session."
 msgstr ""
 
-msgid "Creating problem (episode) to save notelet under ..."
+msgid ""
+"Please enter a short note on what you\n"
+"were about to do in GNUmed:"
 msgstr ""
 
-msgid "Cannot save a new problem without a name."
+msgid "Sending bug report"
 msgstr ""
 
-msgid "saving progress note"
+msgid ""
+"Edit the list of email addresses to send the\n"
+"bug report to (separate addresses by spaces).\n"
+"\n"
+"Note that <gnumed-bugs at gnu.org> refers to\n"
+"the public (!) GNUmed bugs mailing list."
 msgstr ""
 
 #, python-format
 msgid ""
-"The new episode:\n"
+"Your bug report will be sent to:\n"
 "\n"
-" \"%s\"\n"
+"%s\n"
 "\n"
-"will remain unassociated despite the editor\n"
-"having been invoked from the health issue:\n"
+"Make sure you have reviewed the log file for potentially\n"
+"sensitive information before sending out the bug report.\n"
 "\n"
-" \"%s\""
+"Note that emailing the report may take a while depending\n"
+"on the speed of your internet connection.\n"
 msgstr ""
 
-msgid "You need to actually set an editor."
+msgid "Yes, send the bug report."
 msgstr ""
 
-#, python-format
-msgid "The command [%s] is not found."
+msgid "No, do not send the bug report."
+msgstr ""
+
+msgid "include log file in bug report"
 msgstr ""
 
-#, python-format
 msgid ""
-"Enter the shell command with which to start\n"
-"the image editor for visual progress notes.\n"
+"The database you are connected to is marked as\n"
+"\"in-production with controlled access\".\n"
 "\n"
-"Any \"%(img)s\" included with the arguments\n"
-"will be replaced by the file name of the\n"
-"note template."
+"You indicated that you want to include the log\n"
+"file in your bug report. While this is often\n"
+"useful for debugging the log file might contain\n"
+"bits of patient data which must not be sent out\n"
+"without de-identification.\n"
+"\n"
+"Please confirm that you want to include the log !"
 msgstr ""
 
-msgid "Choose file to use as template for new visual progress note"
+msgid "<not supplied>"
 msgstr ""
 
-msgid "Visual progress note source"
+msgid "Bug report has been emailed."
 msgstr ""
 
-msgid "From which source do you want to pick the image template ?"
+msgid "Bug report COULD NOT be emailed."
 msgstr ""
 
-msgid "Database"
+msgid "Underweight"
 msgstr ""
 
-msgid "List of templates in the database."
+msgid "63< Normal >79"
 msgstr ""
 
-msgid "Files in the filesystem."
+msgid "63 - Normal - 79"
 msgstr ""
 
-msgid "Device"
+msgid "Overweight"
 msgstr ""
 
-msgid "Image capture devices (scanners, cameras, etc)"
+msgid "Obese"
 msgstr ""
 
-#, python-format
-msgid "Cannot export visual progress note template for [%s]."
+msgid "Current height/mass"
 msgstr ""
 
-msgid "Cannot export visual progress note to file."
+msgid "Height (cm)"
 msgstr ""
 
-msgid "Editor for visual progress note not configured."
+msgid "Mass (kg)"
 msgstr ""
 
-#, python-format
-msgid ""
-"There was a problem with running the editor\n"
-"for visual progress notes.\n"
-"\n"
-" [%s]\n"
-"\n"
+msgid "Adjusted Values"
 msgstr ""
 
-msgid "Editing visual progress note"
+msgid "Goal mass"
 msgstr ""
 
-#, python-format
-msgid ""
-"There was a problem reading the visual\n"
-"progress note from the file:\n"
-"\n"
-" [%s]\n"
-"\n"
+msgid "kg to lose"
 msgstr ""
 
-msgid "Saving visual progress note"
+msgid "BMI Calculator"
 msgstr ""
 
-msgid ""
-"You either created a visual progress note from a template\n"
-"in the database (rather than from a file on disk) or you\n"
-"edited an existing visual progress note.\n"
-"\n"
-"The template/original was not modified at all, however.\n"
-"\n"
-"Do you still want to save the unmodified image as a\n"
-"visual progress note into the EMR of the patient ?\n"
+msgid "&Reset"
 msgstr ""
 
-msgid "visual progress notes"
+msgid "Select a healthcare provider."
 msgstr ""
 
-#, python-format
-msgid "Created: %s"
+msgid "Public (no clinical or demographic access)"
 msgstr ""
 
-msgid "Problem list"
+msgid "Staff (demographic access only)"
 msgstr ""
 
-msgid "Saving SOAP note"
+msgid "staff (clerical)"
 msgstr ""
 
-msgid "Do you want to save the SOAP note ?"
+msgid "full clinical access"
 msgstr ""
 
-#, python-format
-msgid "&Filter by problem %s%s%s"
+msgid "DB account"
 msgstr ""
 
-msgid "Cannot save SimpleNotes SOAP note."
+msgid "can login"
 msgstr ""
 
-#, python-format
-msgid "Progress note: %s%s"
+msgid "can not login"
 msgstr ""
 
-msgid "Please enter a name for the new problem:"
+msgid "Activating GNUmed user."
 msgstr ""
 
-msgid "Adding a problem"
+msgid "Deactivating GNUmed user."
 msgstr ""
 
-msgid "Cannot delete problem. There is still clinical data recorded for it."
+msgid "Removing GNUmed user."
 msgstr ""
 
-#, python-format
-msgid "GNUmed: configuring [%s] (%s plugins)"
+msgid "Removing GNUmed user"
 msgstr ""
 
-msgid "loading list of plugins                               "
+msgid "Modifying GNUmed user."
 msgstr ""
 
-msgid "failed"
+msgid "Failed to save changes to GNUmed database user."
 msgstr ""
 
-msgid "success"
+msgid "Modifying GNUmed user"
 msgstr ""
 
 #, python-format
-msgid ""
-"previous: %s (%s)\n"
-"current (%s/%s): %s"
+msgid "Failed to set role [%s] for GNUmed database user."
 msgstr ""
 
 #, python-format
-msgid "Cannot switch to [%s]: no patient selected"
-msgstr ""
-
-msgid "Pick a date ..."
+msgid ""
+"\n"
+"  %s \"%s\" %s\n"
+"  born: %s"
 msgstr ""
 
-msgid "<ALT-C/K>: pick from (c/k)alendar"
+msgid ""
+"Password entries do not match. Please type in the passwords again to rule "
+"out typos."
 msgstr ""
 
-msgid "Cannot interpret input as timestamp."
+msgid "Adding GNUmed user"
 msgstr ""
 
-msgid "No vaccines were chosen"
+msgid ""
+"Are you positively sure you want to create\n"
+"a user with an empty password ?\n"
+"\n"
+"Think about the record access implications !"
 msgstr ""
 
-#, python-format
-msgid "Combination of indications , %s , not found in any vaccine"
+msgid "Enlisting person as user."
 msgstr ""
 
-msgid "Sequence"
+msgid "Encrypt"
 msgstr ""
 
-msgid "Batch"
+msgid "Decrypt"
 msgstr ""
 
-msgid "Vaccinator"
+msgid "Set pass phrase"
 msgstr ""
 
-msgid ""
-"Vaccinations by Recommender (X = patient on regime, O = patient not on "
-"regime) "
+msgid "This is not correctly encrypted text!"
 msgstr ""
 
-msgid "enrolled regime vaccinations not yet given"
+msgid "Please enter your pass phrase:"
 msgstr ""
 
-msgid "Proceed with "
+msgid "Pass phrase expired"
 msgstr ""
 
-#, python-format
-msgid "Failed to enrol patient in %s"
+msgid ""
+"\n"
+"Conditions preventable by vaccination as currently known to GNUmed.\n"
 msgstr ""
 
-#, python-format
-msgid "Failed to  delist patient from %s"
+msgid "Showing vaccination preventable conditions."
 msgstr ""
 
-msgid "Missing GNUmed module"
+msgid "ATCs: single-condition vaccines"
 msgstr ""
 
-#, python-format
-msgid ""
-"GNUmed detected that parts of it are not\n"
-"properly installed. The following message\n"
-"names the missing part:\n"
-"\n"
-" \"%s\"\n"
-"\n"
-"Please make sure to get the missing\n"
-"parts installed. Otherwise some of the\n"
-"functionality will not be accessible."
+msgid "ATCs: multi-condition vaccines"
 msgstr ""
 
-#, python-format
-msgid ""
-"\n"
-" Source: %s"
+msgid "Pick the relevant indications."
 msgstr ""
 
-#, python-format
-msgid ""
-"\n"
-" Code: %s"
+msgid "Known indications"
 msgstr ""
 
-#, python-format
-msgid ""
-"\n"
-" Details (first 250 characters):\n"
-"%s\n"
-"%s\n"
-"%s"
+msgid "Adding new vaccine"
 msgstr ""
 
-msgid "Access violation"
+msgid "Editing vaccine"
 msgstr ""
 
 #, python-format
 msgid ""
-"You do not have access to this part of GNUmed.\n"
+"Cannot delete vaccine\n"
 "\n"
-"%s"
+" %s - %s (#%s)\n"
+"\n"
+"It is probably documented in a vaccination."
 msgstr ""
 
-msgid "Lost connection"
+msgid "Deleting vaccine"
+msgstr ""
+
+msgid "fake"
 msgstr ""
 
 msgid ""
-"Since you were last working in GNUmed,\n"
-"your database connection timed out.\n"
-"\n"
-"This GNUmed session is now expired.\n"
 "\n"
-"You will have to close this client and\n"
-"restart a new GNUmed session."
+"The vaccines currently known to GNUmed.\n"
 msgstr ""
 
-msgid ""
-"Please enter a short note on what you\n"
-"were about to do in GNUmed:"
+msgid "Showing vaccines."
 msgstr ""
 
-msgid "Sending bug report"
+msgid "Enter or select the batch/lot number of the vaccine used."
 msgstr ""
 
-msgid ""
-"Edit the list of email addresses to send the\n"
-"bug report to (separate addresses by spaces).\n"
-"\n"
-"Note that <gnumed-bugs at gnu.org> refers to\n"
-"the public (!) GNUmed bugs mailing list."
+msgid "Saving vaccine"
 msgstr ""
 
 #, python-format
 msgid ""
-"Your bug report will be sent to:\n"
+"This vaccine is already in use:\n"
 "\n"
-"%s\n"
+" \"%s\"\n"
+" (%s)\n"
 "\n"
-"Make sure you have reviewed the log file for potentially\n"
-"sensitive information before sending out the bug report.\n"
+"Are you absolutely positively sure that\n"
+"you really want to edit this vaccine ?\n"
 "\n"
-"Note that emailing the report may take a while depending\n"
-"on the speed of your internet connection.\n"
+"This will change the vaccine name and/or target\n"
+"conditions in each patient this vaccine was\n"
+"used in to document a vaccination with.\n"
 msgstr ""
 
-msgid "Yes, send the bug report."
+msgid "You must select at least one indication."
 msgstr ""
 
-msgid "No, do not send the bug report."
+msgid "Pick the diseases this vaccine protects against."
 msgstr ""
 
-msgid "include log file in bug report"
+msgid "This vaccine"
 msgstr ""
 
-msgid ""
-"The database you are connected to is marked as\n"
-"\"in-production with controlled access\".\n"
-"\n"
-"You indicated that you want to include the log\n"
-"file in your bug report. While this is often\n"
-"useful for debugging the log file might contain\n"
-"bits of patient data which must not be sent out\n"
-"without de-identification.\n"
-"\n"
-"Please confirm that you want to include the log !"
+msgid "Adding new vaccinations"
 msgstr ""
 
-msgid "<not supplied>"
+msgid "Editing vaccination"
 msgstr ""
 
-msgid "Bug report has been emailed."
-msgstr ""
+#, fuzzy
+msgid "vaccination recall"
+msgstr "ვაქცინაცია"
 
-msgid "Bug report COULD NOT be emailed."
-msgstr ""
+#, fuzzy, python-format
+msgid "vaccination recall (%s)"
+msgstr "ვაქცინაცია"
 
-msgid "Underweight"
+#, python-format
+msgid ""
+"Existing vaccination:\n"
+"\n"
+"%s"
 msgstr ""
 
-msgid "63< Normal >79"
+msgid ""
+"\n"
+"Complete vaccination history for this patient.\n"
 msgstr ""
 
-msgid "63 - Normal - 79"
+msgid "Showing vaccinations."
 msgstr ""
 
-msgid "Overweight"
+msgid "Intended to protect from"
 msgstr ""
 
-msgid "Obese"
+#, fuzzy
+msgid "Print vaccinations or recalls."
+msgstr "ვაქცინაცია"
+
+msgid "Recall"
 msgstr ""
 
-msgid "Current height/mass"
+msgid "Add a recall for a vaccination"
 msgstr ""
 
-msgid "Height (cm)"
+msgid "Vx schedules"
 msgstr ""
 
-msgid "Mass (kg)"
+msgid "Open a browser showing vaccination schedules."
 msgstr ""
 
-msgid "Adjusted Values"
+msgid "prevention"
 msgstr ""
 
-msgid "Goal mass"
+msgid "Saving vaccination"
 msgstr ""
 
-msgid "kg to lose"
+msgid "Pick the diseases this vaccination was given against."
 msgstr ""
 
-msgid "BMI Calculator"
+msgid "  IMMUNISATIONS  "
 msgstr ""
 
-msgid "&Reset"
+msgid "Indications"
 msgstr ""
 
-msgid "Select a healthcare provider."
+msgid "Active Schedules"
 msgstr ""
 
-msgid "Public (no clinical or demographic access)"
+msgid "Missing Immunisations"
 msgstr ""
 
-msgid "Staff (demographic access only)"
+msgid "  Alerts  "
 msgstr ""
 
-msgid "staff (clerical)"
+msgid "ERROR: cannot retrieve active vaccination schedules"
 msgstr ""
 
-msgid "full clinical access"
+msgid "no active vaccination schedules"
 msgstr ""
 
-msgid "DB account"
+#, python-format
+msgid "%s for %s (%s shots): %s"
 msgstr ""
 
-msgid "can login"
+msgid "ERROR: cannot retrieve due/overdue vaccinations"
 msgstr ""
 
-msgid "can not login"
+#, python-format
+msgid "%.0d weeks left: shot %s for %s in %s, due %s (%s)"
 msgstr ""
 
-msgid "Activating GNUmed user."
+#, python-format
+msgid "overdue %.0dyrs %.0dwks: shot %s for %s in schedule \"%s\" (%s)"
 msgstr ""
 
-msgid "Deactivating GNUmed user."
+#, python-format
+msgid "due now: booster for %s in schedule \"%s\" (%s)"
 msgstr ""
 
-msgid "Removing GNUmed user."
+#, python-format
+msgid "Synopsis (%s)"
 msgstr ""
 
-msgid "Removing GNUmed user"
+msgid ""
+"Enter a short working name for this new problem\n"
+"(which will become a new, unassociated episode):\n"
 msgstr ""
 
-msgid "Modifying GNUmed user."
+#, python-format
+msgid ""
+"Enter a short working name for this new\n"
+"episode under the existing health issue\n"
+"\n"
+"\"%s\":\n"
 msgstr ""
 
-msgid "Failed to save changes to GNUmed database user."
+msgid "Creating problem (episode) to save notelet under ..."
 msgstr ""
 
-msgid "Modifying GNUmed user"
+msgid "Cannot save a new problem without a name."
 msgstr ""
 
-#, python-format
-msgid "Failed to set role [%s] for GNUmed database user."
+msgid "saving progress note"
 msgstr ""
 
 #, python-format
 msgid ""
+"The new episode:\n"
 "\n"
-"  %s \"%s\" %s\n"
-"  born: %s"
+" \"%s\"\n"
+"\n"
+"will remain unassociated despite the editor\n"
+"having been invoked from the health issue:\n"
+"\n"
+" \"%s\""
 msgstr ""
 
-msgid ""
-"Password entries do not match. Please type in the passwords again to rule "
-"out typos."
+msgid "Adding substance abuse"
 msgstr ""
 
-msgid "Adding GNUmed user"
+msgid "Editing substance abuse"
 msgstr ""
 
-msgid ""
-"Are you positively sure you want to create\n"
-"a user with an empty password ?\n"
-"\n"
-"Think about the record access implications !"
+msgid "Substances abused by the patient:"
 msgstr ""
 
-msgid "Enlisting person as user."
+msgid "Showing abused substances."
 msgstr ""
 
-msgid "Encrypt"
+msgid "Intake"
 msgstr ""
 
-msgid "Decrypt"
+msgid "nicotine"
 msgstr ""
 
-msgid "Set pass phrase"
+msgid "unit"
 msgstr ""
 
-msgid "This is not correctly encrypted text!"
+#, fuzzy, python-format
+msgid "Latest: %s ago (%s %s%s%s%s)"
 msgstr ""
+"%ს:%ს %.8ს (ვ%ს)\n"
+"%ს"
 
-msgid "Please enter your pass phrase:"
+#, fuzzy, python-format
+msgid "%s %s%s%s (%s ago, %s)"
 msgstr ""
+"%ს:%ს %.8ს (ვ%ს)\n"
+"%ს"
 
-msgid "Pass phrase expired"
+#, python-format
+msgid "overdue %s: %s"
+msgstr ""
+
+#, python-format
+msgid "due in %s%s"
+msgstr ""
+
+msgid "suppr'd:"
+msgstr ""
+
+msgid "Suppressed hints:\n"
 msgstr ""
 
 msgid ""
-"\n"
-"Conditions preventable by vaccination as currently known to GNUmed.\n"
+"Do you really want to\n"
+"delete this inbox message ?"
 msgstr ""
 
-msgid "Showing vaccination preventable conditions."
+msgid "Deleting inbox message"
 msgstr ""
 
-msgid "ATCs: single-condition vaccines"
+msgid "Export area: 1 item"
 msgstr ""
 
-msgid "ATCs: multi-condition vaccines"
+#, python-format
+msgid "Export area: %s items"
 msgstr ""
 
-msgid "Pick the relevant indications."
+#, python-format
+msgid "%s %s more not shown %s"
 msgstr ""
 
-msgid "Known indications"
+#, python-format
+msgid "Currently %s entries in waiting list"
 msgstr ""
 
-msgid "Adding new vaccine"
+#, python-format
+msgid "first (in GMd): %s, %s"
 msgstr ""
 
-msgid "Editing vaccine"
+#, python-format
+msgid "last: %s, %s"
 msgstr ""
 
 #, python-format
-msgid ""
-"Cannot delete vaccine\n"
-"\n"
-" %s - %s (#%s)\n"
-"\n"
-"It is probably documented in a vaccination."
+msgid "Last %s:"
 msgstr ""
 
-msgid "Deleting vaccine"
+msgid "Statistics cover period"
 msgstr ""
 
-msgid "fake"
+#, python-format
+msgid "EDC (!?!): %s"
 msgstr ""
 
 msgid ""
+"The Expected Date of Confinement is rather questionable.\n"
 "\n"
-"The vaccines currently known to GNUmed.\n"
+"Please check patient age, patient gender, time until/since EDC."
 msgstr ""
 
-msgid "Showing vaccines."
+#, fuzzy, python-format
+msgid "%s Vacc: %s (latest of %s)"
 msgstr ""
+"%ს:%ს %.8ს (ვ%ს)\n"
+"%ს"
 
-msgid "Enter or select the batch/lot number of the vaccine used."
+#, python-format
+msgid "Hx of addiction: %s"
 msgstr ""
 
-msgid "Saving vaccine"
+msgid "active substance abuse"
 msgstr ""
 
 #, python-format
-msgid ""
-"This vaccine is already in use:\n"
-"\n"
-" \"%s\"\n"
-" (%s)\n"
-"\n"
-"Are you absolutely positively sure that\n"
-"you really want to edit this vaccine ?\n"
-"\n"
-"This will change the vaccine name and/or target\n"
-"conditions in each patient this vaccine was\n"
-"used in to document a vaccination with.\n"
+msgid "%s %s %s%s"
 msgstr ""
 
-msgid "You must select at least one indication."
+#, python-format
+msgid "%s %s%s"
 msgstr ""
 
-msgid "Pick the diseases this vaccine protects against."
+#, python-format
+msgid "** Currently hospitalized: %s **"
 msgstr ""
 
-msgid "This vaccine"
+#, python-format
+msgid "emergency: %s"
 msgstr ""
 
-msgid "Adding new vaccinations"
+#, python-format
+msgid "in-praxis: %s"
 msgstr ""
 
-msgid "Editing vaccination"
+#, fuzzy, python-format
+msgid "care: %s%s@%s"
+msgstr "%ს: შეჯახება (%ს)"
+
+msgid "*** CONFIDENTIAL ***"
 msgstr ""
 
-#, fuzzy
-msgid "vaccination recall"
-msgstr "ვაქცინაცია"
+msgid " (confidential !)"
+msgstr ""
 
 #, fuzzy, python-format
-msgid "vaccination recall (%s)"
-msgstr "ვაქცინაცია"
+msgid "extrnl: %s (%s@%s)"
+msgstr ""
+"%ს:%ს %.8ს (ვ%ს)\n"
+"%ს"
 
 #, python-format
-msgid ""
-"Existing vaccination:\n"
-"\n"
-"%s"
+msgid "aka: %(last)s, %(first)s%(nick)s"
 msgstr ""
 
-msgid ""
-"\n"
-"Complete vaccination history for this patient.\n"
+#, python-format
+msgid "job: %s (%s)"
 msgstr ""
 
-msgid "Showing vaccinations."
+#, python-format
+msgid "issued by: %s%s"
 msgstr ""
 
-msgid "Intended to protect from"
+#, python-format
+msgid "Last modified: %s"
 msgstr ""
 
-#, fuzzy
-msgid "Print vaccinations or recalls."
-msgstr "ვაქცინაცია"
+#, python-format
+msgid ""
+"Activities:\n"
+"\n"
+"%s"
+msgstr ""
 
-msgid "Recall"
+msgid "Cloning name"
 msgstr ""
 
-msgid "Add a recall for a vaccination"
+msgid "Editing external ID"
 msgstr ""
 
-msgid "Vx schedules"
+msgid "Adding new translation"
 msgstr ""
 
-msgid "Open a browser showing vaccination schedules."
+msgid "Editing translation"
 msgstr ""
 
-msgid "prevention"
+msgid "Selecting language for translation"
 msgstr ""
 
-msgid "Saving vaccination"
+msgid ""
+"Please select the language the translations for which you want to work on."
 msgstr ""
 
-msgid "Pick the diseases this vaccination was given against."
+#, python-format
+msgid ""
+"Are you sure you want to delete the translation of:\n"
+"\n"
+"%s\n"
+"\n"
+"into [%s] as:\n"
+"\n"
+"%s\n"
+"\n"
+"?  (Note that you must know the database administrator password !)\n"
 msgstr ""
 
-msgid "  IMMUNISATIONS  "
+msgid "Deleting translation from database"
 msgstr ""
 
-msgid "Indications"
+msgid "deleting a translation"
 msgstr ""
 
-msgid "Active Schedules"
+msgid "Contributing translations"
 msgstr ""
 
-msgid "Missing Immunisations"
+msgid "Do you want to contribute your translations to the GNUmed project ?"
 msgstr ""
 
-msgid "  Alerts  "
+msgid ""
+"Unable to send mail. Cannot contribute translations to GNUmed community."
 msgstr ""
 
-msgid "ERROR: cannot retrieve active vaccination schedules"
+msgid "Thank you for your contribution to the GNUmed community!"
 msgstr ""
 
-msgid "no active vaccination schedules"
+msgid "Showing translatable database strings for all languages."
 msgstr ""
 
 #, python-format
-msgid "%s for %s (%s shots): %s"
-msgstr ""
-
-msgid "ERROR: cannot retrieve due/overdue vaccinations"
+msgid "Showing translatable database strings for target language [%s]."
 msgstr ""
 
-#, python-format
-msgid "%.0d weeks left: shot %s for %s in %s, due %s (%s)"
+msgid "Contribute translations to GNUmed community by email."
 msgstr ""
 
-#, python-format
-msgid "overdue %.0dyrs %.0dwks: shot %s for %s in schedule \"%s\" (%s)"
+msgid ""
+"Before creating a new person review the encounter details\n"
+"of the patient you just worked on:\n"
 msgstr ""
 
-#, python-format
-msgid "due now: booster for %s in schedule \"%s\" (%s)"
+msgid "Edit the current encounter of the patient you are ABOUT TO LEAVE:"
 msgstr ""
 
-#, python-format
-msgid "Latest: %s ago (%s %s %s %s%s)"
+msgid "Adding new person"
 msgstr ""
 
-#, python-format
-msgid "%s %s %s %s (%s ago, %s)"
+msgid "ID exists !"
 msgstr ""
 
 #, python-format
-msgid "overdue %s: %s"
+msgid "One \"%s, %s (%s)\" already exists !"
 msgstr ""
 
 #, python-format
-msgid "due in %s%s"
+msgid "%s \"%s, %s (%s)\" already exist !"
 msgstr ""
 
-msgid ""
-"Do you really want to\n"
-"delete this inbox message ?"
+msgid "Must enter lastname."
 msgstr ""
 
-msgid "Deleting inbox message"
+msgid "Must enter first name."
 msgstr ""
 
-msgid "Export area: 1 item"
+msgid "Must select gender."
 msgstr ""
 
-#, python-format
-msgid "Export area: %s items"
+msgid ""
+"To properly create an address, all the related fields must be filled in."
 msgstr ""
 
-#, python-format
-msgid "%s %s more not shown %s"
+msgid "Required fields"
 msgstr ""
 
-#, python-format
-msgid "Currently %s entries in waiting list"
+msgid "This field must contain an item selected from the dropdown list."
 msgstr ""
 
-#, python-format
-msgid "first (in GMd): %s, %s"
+msgid "Saving address"
 msgstr ""
 
-#, python-format
-msgid "last: %s, %s"
+msgid ""
+"Cannot save this address.\n"
+"\n"
+"You will have to add it via the Demographics plugin.\n"
 msgstr ""
 
-#, python-format
-msgid "Last %s:"
+msgid ""
+"Address not saved.\n"
+"\n"
+"You will have to add it via the Demographics plugin.\n"
 msgstr ""
 
-msgid "Statistics cover period"
+msgid "You need to actually set an editor."
 msgstr ""
 
 #, python-format
-msgid "EDC (!?!): %s"
+msgid "The command [%s] is not found."
 msgstr ""
 
+#, python-format
 msgid ""
-"The Expected Date of Confinement is rather questionable.\n"
+"Enter the shell command with which to start\n"
+"the image editor for visual progress notes.\n"
 "\n"
-"Please check patient age, patient gender, time until/since EDC."
+"Any \"%(img)s\" included with the arguments\n"
+"will be replaced by the file name of the\n"
+"note template."
 msgstr ""
 
-#, python-format
-msgid "%s Vacc: %s"
+msgid "Choose file to use as template for new visual progress note"
 msgstr ""
 
-#, python-format
-msgid "%s %s %s%s"
+msgid "Visual progress note source"
 msgstr ""
 
-#, python-format
-msgid "%s %s%s"
+msgid "From which source do you want to pick the image template ?"
 msgstr ""
 
-#, python-format
-msgid "** Currently hospitalized: %s **"
+msgid "Database"
 msgstr ""
 
-#, python-format
-msgid "emergency: %s"
+msgid "List of templates in the database."
 msgstr ""
 
-#, python-format
-msgid "in-praxis: %s"
+msgid "Files in the filesystem."
 msgstr ""
 
-#, fuzzy, python-format
-msgid "care: %s%s@%s"
-msgstr "%ს: შეჯახება (%ს)"
-
-msgid "*** CONFIDENTIAL ***"
+msgid "Device"
 msgstr ""
 
-msgid " (confidential !)"
+msgid "Image capture devices (scanners, cameras, etc)"
 msgstr ""
 
-#, fuzzy, python-format
-msgid "extrnl: %s (%s@%s)"
+#, python-format
+msgid "Cannot export visual progress note template for [%s]."
 msgstr ""
-"%ს:%ს %.8ს (ვ%ს)\n"
-"%ს"
 
-#, python-format
-msgid "aka: %(last)s, %(first)s%(nick)s"
+msgid "Cannot export visual progress note to file."
 msgstr ""
 
-#, python-format
-msgid "job: %s (%s)"
+msgid "Editor for visual progress note not configured."
 msgstr ""
 
 #, python-format
-msgid "issued by: %s%s"
+msgid ""
+"There was a problem with running the editor\n"
+"for visual progress notes.\n"
+"\n"
+" [%s]\n"
+"\n"
 msgstr ""
 
-#, python-format
-msgid "Last modified: %s"
+msgid "Editing visual progress note"
 msgstr ""
 
 #, python-format
 msgid ""
-"Activities:\n"
+"There was a problem reading the visual\n"
+"progress note from the file:\n"
+"\n"
+" [%s]\n"
 "\n"
-"%s"
 msgstr ""
 
-msgid "Cloning name"
+msgid "Saving visual progress note"
 msgstr ""
 
-msgid "Editing external ID"
+msgid ""
+"You either created a visual progress note from a template\n"
+"in the database (rather than from a file on disk) or you\n"
+"edited an existing visual progress note.\n"
+"\n"
+"The template/original was not modified at all, however.\n"
+"\n"
+"Do you still want to save the unmodified image as a\n"
+"visual progress note into the EMR of the patient ?\n"
 msgstr ""
 
-msgid "Adding new translation"
+msgid "visual progress notes"
 msgstr ""
 
-msgid "Editing translation"
+#, python-format
+msgid " [part 1 of %s]"
 msgstr ""
 
-msgid "Selecting language for translation"
-msgstr ""
+#, fuzzy, python-format
+msgid "Created: %s%s"
+msgstr "%ს: შეჯახება (%ს)"
 
-msgid ""
-"Please select the language the translations for which you want to work on."
+msgid "You must select a value from the picklist or type an exact match."
 msgstr ""
 
 #, python-format
 msgid ""
-"Are you sure you want to delete the translation of:\n"
-"\n"
-"%s\n"
-"\n"
-"into [%s] as:\n"
-"\n"
-"%s\n"
-"\n"
-"?  (Note that you must know the database administrator password !)\n"
+"The content is invalid. It must match the regular expression: [%%s]. <%s>"
 msgstr ""
 
-msgid "Deleting translation from database"
+msgid "Latin"
 msgstr ""
 
-msgid "deleting a translation"
+msgid "Greek"
 msgstr ""
 
-msgid "Contributing translations"
+msgid "Cyrillic"
 msgstr ""
 
-msgid "Do you want to contribute your translations to the GNUmed project ?"
+msgid "Four Es"
 msgstr ""
 
-msgid ""
-"Unable to send mail. Cannot contribute translations to GNUmed community."
+msgid "Symbol"
 msgstr ""
 
-msgid "Thank you for your contribution to the GNUmed community!"
+msgid "Snellen Chart"
 msgstr ""
 
-msgid "Showing translatable database strings for all languages."
+msgid "Snellen Chart Setup"
 msgstr ""
 
-#, python-format
-msgid "Showing translatable database strings for target language [%s]."
+msgid "Screen Height (cm): "
 msgstr ""
 
-msgid "Contribute translations to GNUmed community by email."
+msgid "Screen Width (cm): "
 msgstr ""
 
-msgid ""
-"Before creating a new person review the encounter details\n"
-"of the patient you just worked on:\n"
+msgid "Alphabet: "
 msgstr ""
 
-msgid "Edit the current encounter of the patient you are ABOUT TO LEAVE:"
+msgid "Mirror"
 msgstr ""
 
-msgid "Adding new person"
+msgid ""
+"Control Snellen chart using mouse:\n"
+"left-click increases text\n"
+"right-click decreases text\n"
+"double-click ends"
 msgstr ""
 
-msgid "ID exists !"
+msgid " OK "
 msgstr ""
 
-#, python-format
-msgid "One \"%s, %s (%s)\" already exists !"
+msgid " Cancel "
 msgstr ""
 
 #, python-format
-msgid "%s \"%s, %s (%s)\" already exist !"
-msgstr ""
-
-msgid "Must enter lastname."
+msgid "invalid placeholder >>>>>%s<<<<<"
 msgstr ""
 
-msgid "Must enter first name."
+#, python-format
+msgid "due %(due_date)s: %(comment)s (%(interval_due)s)"
 msgstr ""
 
-msgid "Must select gender."
+msgid "Select the patient documents to reference from the new document."
 msgstr ""
 
-msgid ""
-"To properly create an address, all the related fields must be filled in."
+msgid "template is missing"
 msgstr ""
 
-msgid "Required fields"
+#, python-format
+msgid "invalid gender mapping layout: [%s]"
 msgstr ""
 
-msgid "This field must contain an item selected from the dropdown list."
+msgid "Select the address you want to use !"
 msgstr ""
 
-msgid "Saving address"
+msgid "no address type replacement selected"
 msgstr ""
 
+#, python-format
 msgid ""
-"Cannot save this address.\n"
-"\n"
-"You will have to add it via the Demographics plugin.\n"
+"%(street)s %(number)s, %(postcode)s %(urb)s, %(l10n_region)s, "
+"%(l10n_country)s"
 msgstr ""
 
-msgid ""
-"Address not saved.\n"
-"\n"
-"You will have to add it via the Demographics plugin.\n"
+#, python-format
+msgid "no URL for comm channel [%s]"
 msgstr ""
 
-msgid "You must select a value from the picklist or type an exact match."
-msgstr ""
-
-#, python-format
-msgid ""
-"The content is invalid. It must match the regular expression: [%%s]. <%s>"
-msgstr ""
-
-msgid "Latin"
-msgstr ""
-
-msgid "Greek"
-msgstr ""
-
-msgid "Cyrillic"
-msgstr ""
-
-msgid "Four Es"
-msgstr ""
-
-msgid "Symbol"
-msgstr ""
-
-msgid "Snellen Chart"
-msgstr ""
-
-msgid "Snellen Chart Setup"
-msgstr ""
-
-msgid "Screen Height (cm): "
-msgstr ""
-
-msgid "Screen Width (cm): "
-msgstr ""
-
-msgid "Alphabet: "
-msgstr ""
-
-msgid "Mirror"
-msgstr ""
-
-msgid ""
-"Control Snellen chart using mouse:\n"
-"left-click increases text\n"
-"right-click decreases text\n"
-"double-click ends"
-msgstr ""
-
-msgid " OK "
-msgstr ""
-
-msgid " Cancel "
-msgstr ""
-
-#, python-format
-msgid "invalid placeholder >>>>>%s<<<<<"
-msgstr ""
-
-#, python-format
-msgid "due %(due_date)s: %(comment)s (%(interval_due)s)"
-msgstr ""
-
-msgid "Select the patient documents to reference from the new document."
-msgstr ""
-
-msgid "template is missing"
-msgstr ""
-
-#, python-format
-msgid "invalid gender mapping layout: [%s]"
-msgstr ""
-
-msgid "Select the address you want to use !"
-msgstr ""
-
-msgid "no address type replacement selected"
-msgstr ""
-
-#, python-format
-msgid ""
-"%(street)s %(number)s, %(postcode)s %(urb)s, %(l10n_state)s, %(l10n_country)s"
-msgstr ""
-
-#, python-format
-msgid "no URL for comm channel [%s]"
-msgstr ""
-
-msgid "no mugshot available"
+msgid "no mugshot available"
 msgstr ""
 
 msgid "cannot export or convert latest mugshot"
@@ -10096,7 +10510,7 @@ msgstr ""
 msgid ""
 "Cannot save address.\n"
 "\n"
-"Does the state [%s]\n"
+"Does the region [%s]\n"
 "exist in country [%s] ?"
 msgstr ""
 
@@ -10521,7 +10935,7 @@ msgstr ""
 msgid "Reminders for the current patient"
 msgstr ""
 
-msgid "Sent"
+msgid "Generated"
 msgstr ""
 
 msgid "Category - Type"
@@ -10569,9 +10983,6 @@ msgid ""
 "Data: %s"
 msgstr ""
 
-msgid "Inbox Message Actions:"
-msgstr ""
-
 msgid "Activate patient"
 msgstr ""
 
@@ -11259,7 +11670,7 @@ msgid ""
 msgstr ""
 
 #, python-format
-msgid "Select branch (of praxis [%s]) which you are logging in from.\n"
+msgid "Select the branch of praxis [%s] which you are logging in from.\n"
 msgstr ""
 
 msgid "Praxis branch selection ..."
@@ -11566,6 +11977,12 @@ msgstr ""
 msgid "List of addresses related to this person."
 msgstr ""
 
+msgid "Map"
+msgstr ""
+
+msgid "Show selected address on map"
+msgstr ""
+
 msgid "Adding new address"
 msgstr ""
 
@@ -11746,7 +12163,84 @@ msgstr ""
 msgid "generic multi choice dialog"
 msgstr ""
 
-msgid "Search in list"
+msgid "Deleting list items"
+msgstr ""
+
+#, python-format
+msgid ""
+"You have selected %s list items.\n"
+"\n"
+"Really delete all %s items ?"
+msgstr ""
+
+msgid ""
+"Select the items you want to work on.\n"
+"\n"
+"A discontinuous selection may depend on your holding down a platform-"
+"dependent modifier key (<CTRL>, <ALT>, etc) or key combination (eg. <CTRL-"
+"SHIFT> or <CTRL-ALT>) while clicking."
+msgstr ""
+
+msgid "List Item Actions:"
+msgstr ""
+
+msgid "Add (<INS>)"
+msgstr ""
+
+msgid "Delete (<DEL>)"
+msgstr ""
+
+msgid "Find (<CTRL-F>)"
+msgstr ""
+
+#, python-format
+msgid "Find next [%s] (<CTRL-N>)"
+msgstr ""
+
+msgid "Row tooltip"
+msgstr ""
+
+msgid "Row data (formatted as text)"
+msgstr ""
+
+msgid "Row content (as one line)"
+msgstr ""
+
+msgid "Row content (one line per column)"
+msgstr ""
+
+#, python-format
+msgid "Column &%s: \"%s\" [#%s]"
+msgstr ""
+
+#, python-format
+msgid "Column &%s: %s"
+msgstr ""
+
+msgid "&Copy to clipboard..."
+msgstr ""
+
+msgid "Append (&+) to clipboard..."
+msgstr ""
+
+#, python-format
+msgid ""
+"%s list items are selected.\n"
+"\n"
+"Really delete all %s items ?"
+msgstr ""
+
+msgid "Enter the search term:"
+msgstr ""
+
+msgid "List search"
+msgstr ""
+
+#, python-format
+msgid ""
+"Current search term: [[%s]]\n"
+"\n"
+"%s"
 msgstr ""
 
 msgid "Monty the Serpent && the FSF Present"
@@ -11896,6 +12390,9 @@ msgstr ""
 msgid "Unknown: ?"
 msgstr ""
 
+msgid "The text has been copied into the clipboard."
+msgstr ""
+
 msgid "file2clipboard"
 msgstr ""
 
@@ -11903,6 +12400,40 @@ msgstr ""
 msgid "The file [%s] has been copied into the clipboard."
 msgstr ""
 
+msgid "programmer forgot to specify error message"
+msgstr ""
+
+msgid ""
+"\n"
+"\n"
+"Please consult the error log for all the gory details !"
+msgstr ""
+
+msgid "generic error message"
+msgstr ""
+
+msgid "programmer forgot to specify info message"
+msgstr ""
+
+msgid "generic info message"
+msgstr ""
+
+msgid "programmer forgot to specify warning"
+msgstr ""
+
+msgid "generic warning message"
+msgstr ""
+
+msgid "Editing EDC"
+msgstr ""
+
+#, python-format
+msgid ""
+"Really delete the EDC documented previously ?\n"
+"\n"
+" EDC: %s"
+msgstr ""
+
 #, python-format
 msgid ""
 "Algorithm: %s\n"
@@ -12010,15 +12541,15 @@ msgstr ""
 msgid "Firstname"
 msgstr ""
 
-msgid "Nickname"
-msgstr ""
-
 msgid "DOB"
 msgstr ""
 
 msgid "last visit"
 msgstr ""
 
+msgid "Nickname / Comment"
+msgstr ""
+
 msgid "found via"
 msgstr ""
 
@@ -12196,596 +12727,344 @@ msgstr ""
 msgid "In case of emergency contact:"
 msgstr ""
 
-msgid ""
-"\n"
-"Please select the default drug data source from the list below.\n"
-"\n"
-"Note that to actually use it you need to have the database installed, too."
+msgid "The preparation (form) of the substance or brand."
 msgstr ""
 
-msgid "Drug data source"
+msgid "A substance with optional strength or a brand."
 msgstr ""
 
-msgid "Configuring default drug data source"
+msgid "The medical aim for consuming this substance."
 msgstr ""
 
-msgid "No default drug database configured."
+msgid "not tolerated:"
 msgstr ""
 
-msgid "There is no default drug database configured."
+msgid "discontinued due to allergy or intolerance"
 msgstr ""
 
-msgid "Jumping to drug database"
+msgid "Documented an allergy"
 msgstr ""
 
 #, python-format
-msgid "Cannot call IFAP via [%s]."
+msgid ""
+"An allergy was documented against the substance:\n"
+"\n"
+"  [%s]\n"
+"\n"
+"This substance was taken with the multi-component brand:\n"
+"\n"
+"  [%s (%s)]\n"
+"\n"
+"Note that ALL components of this brand were discontinued."
 msgstr ""
 
-#, python-format
-msgid "Cannot create IFAP <-> GNUmed transfer file [%s]."
+msgid "disapproved"
 msgstr ""
 
-msgid "Current medication"
+msgid "Substances consumed by the patient:"
 msgstr ""
 
-msgid ""
-"\n"
-"The ATC codes as known to GNUmed.\n"
+msgid "Showing consumable substances."
 msgstr ""
 
-msgid "Showing ATC codes."
+msgid "Application"
 msgstr ""
 
-msgid "Choose an ATC import config file"
+msgid "never"
 msgstr ""
 
-msgid "config files"
+#, python-format
+msgid "%s, last confirmed %s\n"
 msgstr ""
 
-msgid "importing ATC reference data"
+#, python-format
+msgid "Comment (%s): %%s\n"
 msgstr ""
 
-msgid "Successfully imported ATC reference data."
+msgid "reaction not recorded"
 msgstr ""
 
-msgid "Importing ATC reference data failed."
+msgid "GFR: unknown"
 msgstr ""
 
-msgid "Select an ATC (Anatomical-Therapeutic-Chemical) code."
+msgid "GFR reported by path lab"
 msgstr ""
 
-msgid "Cannot delete this substance. It is in use."
+msgid "<no components>"
+msgstr ""
+
+msgid "Adding substance intake entry"
 msgstr ""
 
+#, python-format
 msgid ""
+"The patient is already taking\n"
 "\n"
-"These are the consumable substances registered with GNUmed.\n"
+" %s\n"
+"\n"
+"You will want to adjust the schedule\n"
+"rather than document the intake twice."
 msgstr ""
 
-msgid "Showing consumable substances."
+msgid "Input incomplete/invalid for saving as substance intake."
 msgstr ""
 
-msgid "Import"
+#, python-format
+msgid "Discontinued (%s) in the future (now: %s)!"
 msgstr ""
 
-msgid "Import consumable substances from a drug database."
+#, python-format
+msgid "Discontinued (%s) before started (%s) !"
 msgstr ""
 
-msgid "Cannot edit this substance. It is in use."
-msgstr ""
-
-msgid "Adding new consumable substance"
-msgstr ""
-
-msgid "Editing consumable substance"
-msgstr ""
-
-msgid "Cannot save consumable substance. Missing essential input."
+msgid "Cannot add duplicate of (maybe inactive) substance intake."
 msgstr ""
 
 #, python-format
-msgid "Cannot save consumable substance. %s"
-msgstr ""
-
-msgid "Cannot remove this component from the drug. It is in use."
-msgstr ""
-
 msgid ""
 "\n"
-"These are the components in the drug brands known to GNUmed.\n"
+"[%s]\n"
+"\n"
+"It may be prudent to edit (before deletion) the details\n"
+"of this substance intake entry so as to leave behind\n"
+"some indication of why it was deleted.\n"
 msgstr ""
 
-msgid "Showing drug brand components."
+msgid "Deleting medication / substance intake"
 msgstr ""
 
-msgid "Adding new drug component"
+msgid "Allow editing of substance intake entry before deletion."
 msgstr ""
 
-msgid "Editing drug component"
+msgid "Delete immediately without editing first."
 msgstr ""
 
-msgid "Cannot edit drug component. It is in use."
+msgid "&Cancel"
 msgstr ""
 
-msgid "Cannot save drug component. Invalid or missing essential input."
+msgid "Abort. Do not delete or edit substance intake entry."
 msgstr ""
 
-msgid "A drug component with optional strength."
+msgid "Now delete substance intake entry ?"
 msgstr ""
 
-msgid "The preparation (form) of the substance or brand."
+msgid "Adding medication/non-medication substance intake"
 msgstr ""
 
-msgid "The substance with optional strength."
+msgid "Editing medication/non-medication substance intake"
 msgstr ""
 
-msgid "Managing components of a drug"
+msgid "Document an allergy against this substance."
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot manage the components of the branded drug product\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is currently taken by patients.\n"
+msgid "No medication list template configured."
 msgstr ""
 
-msgid "Pick the substances which are components of this drug."
+msgid "There is no medication list template configured."
 msgstr ""
 
-msgid "Components of drug"
+msgid "Problem loading medication list template."
 msgstr ""
 
 #, python-format
-msgid ""
-"Adjust the components of \"%s\"\n"
-"\n"
-"The drug must contain at least one component. Any given\n"
-"substance can only be included once per drug."
+msgid "Cannot load medication list template [%s - %s]"
 msgstr ""
 
-msgid "Managing components of a drug ..."
+msgid "generated medication list document"
 msgstr ""
 
-msgid "not in use"
+msgid "Select the default prescription template:"
 msgstr ""
 
-#, python-format
-msgid "ATC: %s\n"
+msgid "No prescription template configured."
 msgstr ""
 
-msgid "Editing medication"
+msgid "There is no prescription template configured."
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot edit the medication\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is a vaccine. Please edit it\n"
-"from the vaccine management section !\n"
+msgid "Printing prescription"
 msgstr ""
 
-msgid "Deleting medication"
+msgid "Problem loading prescription template."
 msgstr ""
 
 #, python-format
-msgid ""
-"Cannot delete the medication\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is a vaccine. Please delete it\n"
-"from the vaccine management section !\n"
+msgid "Cannot load prescription template [%s - %s]"
+msgstr ""
+
+msgid "generated prescription"
 msgstr ""
 
 msgid ""
+"These brands have been prescribed but are not listed\n"
+"in the current medication list of this patient.\n"
 "\n"
-"These are the drug brands known to GNUmed.\n"
+"Please select those you want added to the medication list."
 msgstr ""
 
-msgid "Showing branded drugs."
+msgid "Newly prescribed drugs"
 msgstr ""
 
-msgid "Import substances and brands from a drug database."
+msgid "Add to medication list"
 msgstr ""
 
-msgid "Editing drug"
+msgid "Timeframe"
 msgstr ""
 
 #, python-format
-msgid ""
-"Cannot edit the branded drug product\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is currently taken by patients.\n"
+msgid "%s <fake>"
 msgstr ""
 
-msgid "Adding new drug brand"
+msgid "Cannot edit more than one substance at once."
 msgstr ""
 
-msgid "Editing drug brand"
+msgid "Cannot delete more than one substance at once."
 msgstr ""
 
-msgid "Manage consumable substances"
+msgid "Cannot create allergy from more than one substance at once."
 msgstr ""
 
-msgid "Cannot edit drug brand. It is in use."
+msgid ""
+"\n"
+"Select the measurements panel to show in the medications plugin.\n"
 msgstr ""
 
-msgid "Checking brand data"
+msgid "Measurements panel"
 msgstr ""
 
-#, python-format
-msgid ""
-"The brand information you entered:\n"
-"\n"
-" [%s %s]\n"
-"\n"
-"already exists as a drug product."
+msgid "Configuring medications plugin measurements panel"
 msgstr ""
 
-msgid ""
-"You have not selected any substances\n"
-"as drug components.\n"
-"\n"
-"Without components you will not be able to\n"
-"use this drug for documenting patient care.\n"
-"\n"
-"Are you sure you want to save\n"
-"it without components ?"
+msgid "EDC (!?!):"
 msgstr ""
 
-msgid "Cannot save branded drug. Invalid or missing essential input."
+msgid "EDC:"
 msgstr ""
 
-msgid ""
-"The brand name of the drug.\n"
-"\n"
-"Note: a brand name will need to be linked to\n"
-"one or more components before it can be used,\n"
-"except in the case of fake (generic) vaccines."
+#, python-format
+msgid "%.1f (%s ago)"
 msgstr ""
 
-msgid "The medical aim for consuming this substance."
+msgid "eGFR:"
 msgstr ""
 
-msgid "not tolerated:"
+#, python-format
+msgid "eGFR: %.1f (%s)"
 msgstr ""
 
-msgid "discontinued due to allergy or intolerance"
+msgid "Enter vaccination given"
 msgstr ""
 
-msgid "Documented an allergy"
+msgid "Unsaved progress note"
 msgstr ""
 
-#, python-format
 msgid ""
-"An allergy was documented against the substance:\n"
-"\n"
-"  [%s]\n"
-"\n"
-"This substance was taken with the multi-component brand:\n"
+"This progress note has not been saved yet.\n"
 "\n"
-"  [%s (%s)]\n"
+"Do you want to save it or discard it ?\n"
 "\n"
-"Note that ALL components of this brand were discontinued."
 msgstr ""
 
-msgid "disapproved"
-msgstr ""
-
-msgid "Substances consumed by the patient:"
+msgid "Save this progress note"
 msgstr ""
 
-msgid "Intake"
+msgid "Discard this progress note"
 msgstr ""
 
-msgid "Application"
+msgid "Save all remaining unsaved progress notes"
 msgstr ""
 
-msgid "never"
+msgid ""
+"Add editor for a new unassociated progress note.\n"
+"\n"
+"There is a configuration option whether or not to\n"
+"allow several new unassociated progress notes at once."
 msgstr ""
 
-#, python-format
-msgid "%s, last confirmed %s\n"
+msgid "Save progress note into medical record and close this editor."
 msgstr ""
 
-#, python-format
-msgid "Comment (%s): %%s\n"
+msgid "Clear this progress note editor."
 msgstr ""
 
-msgid "reaction not recorded"
+msgid ""
+"Discard progress note and close this editor. You will loose any data already "
+"typed into this editor !"
 msgstr ""
 
-msgid "GFR: unknown"
+msgid "Problem saving progress note: duplicate information ?"
 msgstr ""
 
-msgid "GFR reported by path lab"
+msgid "label missing"
 msgstr ""
 
-#, python-format
-msgid ""
-"The patient is already taking\n"
-"\n"
-" %s\n"
-"\n"
-"You will want to adjust the schedule\n"
-"rather than document the intake twice."
+msgid "soap cat missing"
 msgstr ""
 
-msgid "Adding substance intake entry"
+msgid "Enter a descriptive name for this new problem:"
 msgstr ""
 
-msgid "Input incomplete/invalid for saving as substance intake."
+msgid "Creating a problem (episode) to save the notelet under ..."
 msgstr ""
 
-#, python-format
-msgid "Discontinued (%s) in the future (now: %s)!"
+msgid "Error saving progress note."
 msgstr ""
 
-#, python-format
-msgid "Discontinued (%s) before started (%s) !"
+msgid "Error saving embedded data."
 msgstr ""
 
-msgid "Cannot add duplicate of (maybe inactive) substance intake."
+msgid "Visit Purpose"
 msgstr ""
 
-#, python-format
-msgid ""
-"\n"
-"[%s]\n"
-"\n"
-"It may be prudent to edit (before deletion) the details\n"
-"of this substance intake entry so as to leave behind\n"
-"some indication of why it was deleted.\n"
+msgid "History Taken"
 msgstr ""
 
-msgid "Deleting medication / substance intake"
+msgid "Findings"
 msgstr ""
 
-msgid "Allow editing of substance intake entry before deletion."
+msgid "save"
 msgstr ""
 
-msgid "Delete immediately without editing first."
+msgid "save clinical note in EMR"
 msgstr ""
 
-msgid "&Cancel"
+msgid "discard"
 msgstr ""
 
-msgid "Abort. Do not delete or edit substance intake entry."
+msgid "discard clinical note"
 msgstr ""
 
-msgid "Now delete substance intake entry ?"
+msgid "clinical progress note"
 msgstr ""
 
-msgid "Adding medication/non-medication substance intake"
+msgid "Select files to add to the export area"
 msgstr ""
 
-msgid "Editing medication/non-medication substance intake"
+msgid "Adding files to export area"
 msgstr ""
 
-msgid "Document an allergy against this substance."
+#, python-format
+msgid ""
+"Cannot add (some of) the following files to the export area:\n"
+"%s "
 msgstr ""
 
-msgid "No medication list template configured."
+msgid "Select the documents to be put into the export area:"
 msgstr ""
 
-msgid "There is no medication list template configured."
+msgid "clipboard"
 msgstr ""
 
-msgid "Problem loading medication list template."
+msgid "Loading clipboard item (saved to file) into export area"
 msgstr ""
 
 #, python-format
-msgid "Cannot load medication list template [%s - %s]"
+msgid ""
+"Cannot add the following clip to the export area:\n"
+"%s "
 msgstr ""
 
-msgid "generated medication list document"
-msgstr ""
-
-msgid "Select the default prescription template:"
-msgstr ""
-
-msgid "No prescription template configured."
-msgstr ""
-
-msgid "There is no prescription template configured."
-msgstr ""
-
-msgid "Printing prescription"
-msgstr ""
-
-msgid "Problem loading prescription template."
-msgstr ""
-
-#, python-format
-msgid "Cannot load prescription template [%s - %s]"
-msgstr ""
-
-msgid "generated prescription"
-msgstr ""
-
-msgid ""
-"These brands have been prescribed but are not listed\n"
-"in the current medication list of this patient.\n"
-"\n"
-"Please select those you want added to the medication list."
-msgstr ""
-
-msgid "Newly prescribed drugs"
-msgstr ""
-
-msgid "Add to medication list"
-msgstr ""
-
-msgid "Duration / Until"
-msgstr ""
-
-#, python-format
-msgid "%s <fake>"
-msgstr ""
-
-msgid "Cannot edit more than one substance at once."
-msgstr ""
-
-msgid "Cannot delete more than one substance at once."
-msgstr ""
-
-msgid "Cannot create allergy from more than one substance at once."
-msgstr ""
-
-msgid ""
-"\n"
-"Select the measurements panel to show in the medications plugin.\n"
-msgstr ""
-
-msgid "Measurements panel"
-msgstr ""
-
-msgid "Configuring medications plugin measurements panel"
-msgstr ""
-
-msgid "EDC (!?!):"
-msgstr ""
-
-msgid "EDC:"
-msgstr ""
-
-#, python-format
-msgid "%.1f (%s ago)"
-msgstr ""
-
-msgid "eGFR:"
-msgstr ""
-
-#, fuzzy, python-format
-msgid "%s%s%s (%s ago)"
-msgstr ""
-"%ს:%ს %.8ს (ვ%ს)\n"
-"%ს"
-
-#, python-format
-msgid "eGFR: %.1f (%s)"
-msgstr ""
-
-msgid "Enter vaccination given"
-msgstr ""
-
-msgid "Unsaved progress note"
-msgstr ""
-
-msgid ""
-"This progress note has not been saved yet.\n"
-"\n"
-"Do you want to save it or discard it ?\n"
-"\n"
-msgstr ""
-
-msgid "Save this progress note"
-msgstr ""
-
-msgid "Discard this progress note"
-msgstr ""
-
-msgid "Save all remaining unsaved progress notes"
-msgstr ""
-
-msgid ""
-"Add editor for a new unassociated progress note.\n"
-"\n"
-"There is a configuration option whether or not to\n"
-"allow several new unassociated progress notes at once."
-msgstr ""
-
-msgid "Save progress note into medical record and close this editor."
-msgstr ""
-
-msgid "Clear this progress note editor."
-msgstr ""
-
-msgid ""
-"Discard progress note and close this editor. You will loose any data already "
-"typed into this editor !"
-msgstr ""
-
-msgid "Problem saving progress note: duplicate information ?"
-msgstr ""
-
-msgid "label missing"
-msgstr ""
-
-msgid "soap cat missing"
-msgstr ""
-
-msgid "Enter a descriptive name for this new problem:"
-msgstr ""
-
-msgid "Creating a problem (episode) to save the notelet under ..."
-msgstr ""
-
-msgid "Error saving progress note."
-msgstr ""
-
-msgid "Error saving embedded data."
-msgstr ""
-
-msgid "Visit Purpose"
-msgstr ""
-
-msgid "History Taken"
-msgstr ""
-
-msgid "Findings"
-msgstr ""
-
-msgid "save"
-msgstr ""
-
-msgid "save clinical note in EMR"
-msgstr ""
-
-msgid "discard"
-msgstr ""
-
-msgid "discard clinical note"
-msgstr ""
-
-msgid "clinical progress note"
-msgstr ""
-
-msgid "Select files to add to the export area"
-msgstr ""
-
-msgid "Adding files to export area"
-msgstr ""
-
-#, python-format
-msgid ""
-"Cannot add (some of) the following files to the export area:\n"
-"%s "
-msgstr ""
-
-msgid "Select the documents to be put into the export area:"
-msgstr ""
-
-msgid "clipboard"
-msgstr ""
-
-msgid "Loading clipboard item (saved to file) into export area"
-msgstr ""
-
-#, python-format
-msgid ""
-"Cannot add the following clip to the export area:\n"
-"%s "
-msgstr ""
-
-msgid "scan"
+msgid "scan"
 msgstr ""
 
 msgid "Scanning files into export area"
@@ -12832,14 +13111,21 @@ msgid ""
 "\n"
 " [%s]\n"
 "\n"
-"is not empty. Do you want to use it for saving the\n"
-"export area documents into, nevertheless ?\n"
+"already contains files. Do you still want to save the\n"
+"selected export area documents into that directory ?\n"
 "\n"
-"(this can be useful for including external documents)\n"
+"(this is useful for including the external documents\n"
+" already stored in or below this directory)\n"
 "\n"
 "[NO] will create a subdirectory for you and use that."
 msgstr ""
 
+msgid ""
+"Create descriptive metadata files\n"
+"and save them alongside the\n"
+"selected export area documents ?"
+msgstr ""
+
 #, python-format
 msgid ""
 "Saved to [%s]:\n"
@@ -13044,9 +13330,6 @@ msgstr ""
 msgid "This praxis"
 msgstr ""
 
-msgid "Hospital stay"
-msgstr ""
-
 msgid "Bill receiver"
 msgstr ""
 
@@ -13082,10 +13365,52 @@ msgstr ""
 msgid "Select the episode under which to file the document ..."
 msgstr ""
 
+msgid "Cannot create new document."
+msgstr ""
+
+msgid "saving document"
+msgstr ""
+
 #, python-format
 msgid "Imported new document from %s."
 msgstr ""
 
+msgid "Successfully saved new document."
+msgstr ""
+
+msgid "Successfully saved the new document."
+msgstr ""
+
+#, python-format
+msgid ""
+"The reference ID for the new document is:\n"
+"\n"
+" <%s>\n"
+"\n"
+"You probably want to write it down on the\n"
+"original documents.\n"
+"\n"
+"If you don't care about the ID you can switch\n"
+"off this message in the GNUmed configuration.\n"
+msgstr ""
+
+msgid "Saving document"
+msgstr ""
+
+#, python-format
+msgid ""
+"Successfully imported files as document.\n"
+"\n"
+"Do you want to delete imported files from the filesystem ?\n"
+"\n"
+" %s\n"
+"\n"
+"Note that temporary files will be deleted anyway."
+msgstr ""
+
+msgid "Removing files"
+msgstr ""
+
 msgid "Enter a comment on the document."
 msgstr ""
 
@@ -13203,14 +13528,16 @@ msgstr ""
 msgid "Acquiring images"
 msgstr ""
 
-msgid "other documents"
+msgid "directory dropped on client"
 msgstr ""
 
-#, python-format
-msgid "part %s: %s"
+msgid "file dropped on client"
 msgstr ""
 
-msgid "saving document"
+msgid "other documents"
+msgstr ""
+
+msgid "path"
 msgstr ""
 
 msgid "No parts to save. Really save an empty document as a reference ?"
@@ -13255,16 +13582,22 @@ msgstr ""
 msgid "acquiring page"
 msgstr ""
 
+msgid "captured by imaging device"
+msgstr ""
+
 msgid "Choose a file"
 msgstr ""
 
 msgid "all files (Win)"
 msgstr ""
 
-msgid "You must select a part before you can view it."
+msgid "picked from storage media"
 msgstr ""
 
-msgid "displaying part"
+msgid "pasted from clipboard"
+msgstr ""
+
+msgid "No part selected for viewing."
 msgstr ""
 
 #, python-format
@@ -13273,44 +13606,10 @@ msgid ""
 "%s"
 msgstr ""
 
-msgid "You must select a part before you can delete it."
+msgid "displaying part"
 msgstr ""
 
-msgid "deleting part"
-msgstr ""
-
-#, python-format
-msgid ""
-"The part has successfully been removed from the document.\n"
-"\n"
-"Do you also want to permanently delete the file\n"
-"\n"
-" [%s]\n"
-"\n"
-"from which this document part was loaded ?\n"
-"\n"
-"If it is a temporary file for a page you just scanned\n"
-"this makes a lot of sense. In other cases you may not\n"
-"want to lose the file.\n"
-"\n"
-"Pressing [YES] will permanently remove the file\n"
-"from your computer.\n"
-msgstr ""
-
-msgid "Removing document part"
-msgstr ""
-
-#, python-format
-msgid ""
-"Cannot delete part in file [%s].\n"
-"\n"
-"You may not have write access to it."
-msgstr ""
-
-msgid "Cannot create new document."
-msgstr ""
-
-msgid "Cannot update document metadata."
+msgid "No part selected for removal."
 msgstr ""
 
 msgid "Cannot add document description."
@@ -13319,26 +13618,12 @@ msgstr ""
 msgid "Error setting \"reviewed\" status of new document."
 msgstr ""
 
-msgid "Successfully saved the new document."
-msgstr ""
-
 #, python-format
 msgid ""
-"The reference ID for the new document is:\n"
+"Source: %s\n"
+"File: %s\n"
 "\n"
-" <%s>\n"
-"\n"
-"You probably want to write it down on the\n"
-"original documents.\n"
-"\n"
-"If you don't care about the ID you can switch\n"
-"off this message in the GNUmed configuration."
-msgstr ""
-
-msgid "Saving document"
-msgstr ""
-
-msgid "Successfully saved new document."
+"%s"
 msgstr ""
 
 msgid "Document part does not seem to exist in database !"
@@ -13353,9 +13638,6 @@ msgstr ""
 msgid "Showing documents."
 msgstr ""
 
-msgid "Generated"
-msgstr ""
-
 msgid "Ref #"
 msgstr ""
 
@@ -13608,6 +13890,146 @@ msgstr ""
 msgid "Deleting document"
 msgstr ""
 
+msgid "Study date"
+msgstr ""
+
+msgid "Study time"
+msgstr ""
+
+msgid "Method"
+msgstr ""
+
+msgid "Body part"
+msgstr ""
+
+msgid "Time"
+msgstr ""
+
+msgid "Cannot connect without port (try 8042)."
+msgstr ""
+
+#, python-format
+msgid "Connect to [%s] @ port %s as \"%s\"."
+msgstr ""
+
+msgid "Cannot connect to PACS."
+msgstr ""
+
+#, python-format
+msgid "PACS: Orthanc \"%s\" (AET \"%s\", Version %s, DB v%s)"
+msgstr ""
+
+#, python-format
+msgid "GNUmed patient: %s (generic PACS ID)"
+msgstr ""
+
+#, python-format
+msgid "GNUmed patient: \"%(value)s\" @ [%(issuer)s] (stored PACS ID)"
+msgstr ""
+
+msgid "PACS: no patients with matching IDs found"
+msgstr ""
+
+msgid ""
+"PACS: more than one patient with matching IDs found, carefully check studies"
+msgstr ""
+
+#, python-format
+msgid "%s series"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "%%s (%s series)"
+msgstr ""
+"%ს:%ს %.8ს (ვ%ს)\n"
+"%ს"
+
+msgid "no studies"
+msgstr ""
+
+#, python-format
+msgid "%s studies"
+msgstr ""
+
+msgid "Exporting DICOM studies"
+msgstr ""
+
+msgid "Unable to export selected studies."
+msgstr ""
+
+#, python-format
+msgid ""
+"The DICOM studies are %s in compressed size.\n"
+"\n"
+"Really copy to export area ?"
+msgstr ""
+
+#, python-format
+msgid "DICOM studies of [%s] from Orthanc PACS \"%s\" (AET \"%s\")"
+msgstr ""
+
+msgid "Select the directory into which to save the DICOM studies."
+msgstr ""
+
+msgid "Saving DICOM studies"
+msgstr ""
+
+msgid "Unable to save selected studies."
+msgstr ""
+
+msgid "Unable to export studies."
+msgstr ""
+
+#, python-format
+msgid "All DICOM studies of [%s] from Orthanc PACS \"%s\" (AET \"%s\")"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "%s%s images"
+msgstr ""
+"%ს:%ს %.8ს (ვ%ს)\n"
+"%ს"
+
+msgid "Select the directory from which to recursively upload DICOM files."
+msgstr ""
+
+msgid "Delete the uploaded DICOM files now ?"
+msgstr ""
+
+msgid ""
+"Some files have not been uploaded.\n"
+"\n"
+"Do you want to delete those DICOM files which have been sent to the PACS "
+"successfully ?"
+msgstr ""
+
+msgid "Uploading DICOM files"
+msgstr ""
+
+msgid "Editing Orthanc content"
+msgstr ""
+
+msgid "Patient ID"
+msgstr ""
+
+msgid "Birth date"
+msgstr ""
+
+msgid "Orthanc"
+msgstr ""
+
+msgid "Modifying patient ID"
+msgstr ""
+
+#, python-format
+msgid ""
+"Really modify %s patient(s) to have the new patient ID\n"
+"\n"
+" [%s]\n"
+"\n"
+"stored in the Orthanc DICOM server ?"
+msgstr ""
+
 #, python-format
 msgid "You are logged in as %s%s.%s (%s). DB account <%s>."
 msgstr ""
@@ -13666,6 +14088,12 @@ msgstr ""
 msgid "Select the measurements panel to show in the medications plugin."
 msgstr ""
 
+msgid "General measurements"
+msgstr ""
+
+msgid "Select the measurements panel to show in the top pane."
+msgstr ""
+
 msgid "Review dialog"
 msgstr ""
 
@@ -13756,6 +14184,12 @@ msgstr ""
 msgid "Configure auto-opening editors for recent problems."
 msgstr ""
 
+msgid "SOAP fields"
+msgstr ""
+
+msgid "Configure SOAP editor - individual SOAP fields vs text editor like"
+msgstr ""
+
 msgid "Progress notes handling ..."
 msgstr ""
 
@@ -13777,6 +14211,9 @@ msgstr ""
 msgid "URL for measurements encyclopedia."
 msgstr ""
 
+msgid "Drug data source"
+msgstr ""
+
 msgid "Select the drug data source."
 msgstr ""
 
@@ -14140,6 +14577,12 @@ msgstr ""
 msgid "Manage dynamic hints suppressed in this patient."
 msgstr ""
 
+msgid "Substance abuse"
+msgstr ""
+
+msgid "Manage substance abuse documentation of this patient."
+msgstr ""
+
 msgid "&Add / Edit ..."
 msgstr ""
 
@@ -14161,26 +14604,49 @@ msgstr ""
 msgid "Show a high-level statistic summary of the EMR."
 msgstr ""
 
-msgid "Text document"
+msgid "Journal (encounters) to file"
 msgstr ""
 
-msgid "Export the EMR of the active patient into a text file"
+msgid ""
+"Save the EMR of the active patient as a chronological journal into a text "
+"file"
 msgstr ""
 
-msgid "Journal"
+msgid "Journal (encounters) to export area"
 msgstr ""
 
 msgid ""
-"Export the EMR of the active patient as a chronological journal into a text "
-"file"
+"Copy EMR of the active patient as a chronological journal into export area"
+msgstr ""
+
+msgid "Journal (mod time) to file"
+msgstr ""
+
+msgid ""
+"Save the EMR of the active patient as journal by last modification time into "
+"a text file"
+msgstr ""
+
+msgid "Journal (mod time) to export area"
+msgstr ""
+
+msgid ""
+"Copy EMR of the active patient as journal by last modification time into "
+"export area"
+msgstr ""
+
+msgid "Text document"
+msgstr ""
+
+msgid "Save the EMR of the active patient into a text file"
 msgstr ""
 
 msgid "MEDISTAR import format"
 msgstr ""
 
 msgid ""
-"GNUmed -> MEDISTAR. Export progress notes of active patient's active "
-"encounter into a text file."
+"GNUmed -> MEDISTAR. Save progress notes of active patient's active encounter "
+"into a text file."
 msgstr ""
 
 msgid "Export as ..."
@@ -14351,19 +14817,40 @@ msgstr ""
 msgid "Show log file"
 msgstr ""
 
-msgid "Show the log file in text viewer."
+msgid "Show log file in text viewer."
 msgstr ""
 
 msgid "Backup log file"
 msgstr ""
 
-msgid "Backup the content of the log to another file."
+msgid "Backup content of the log to another file."
 msgstr ""
 
 msgid "Email log file"
 msgstr ""
 
-msgid "Send the log file to the authors for help."
+msgid "Send log file to the authors for help."
+msgstr ""
+
+msgid "Browse tmp dir"
+msgstr ""
+
+#, python-format
+msgid "Browse temporary directory [%s]."
+msgstr ""
+
+msgid "Browse work dir"
+msgstr ""
+
+#, python-format
+msgid "Browse user working directory [%s]."
+msgstr ""
+
+msgid "Browse internal work dir"
+msgstr ""
+
+#, python-format
+msgid "Browse internal working directory [%s]."
 msgstr ""
 
 msgid "Bug tracker"
@@ -14706,6 +15193,20 @@ msgid "No, only auto-open one editor for a new, unassociated problem."
 msgstr ""
 
 msgid ""
+"When editing progress notes, do you want GNUmed to\n"
+"show individual fields for each of the SOAP categories\n"
+"or do you want to use a text-editor like field for\n"
+"all SOAP categories which can then be set per line\n"
+"of input ?"
+msgstr ""
+
+msgid "Yes, show a dedicated field per SOAP category."
+msgstr ""
+
+msgid "No, use one field for all SOAP categories."
+msgstr ""
+
+msgid ""
 "When a patient is activated GNUmed can\n"
 "be told to switch to a specific plugin.\n"
 "\n"
@@ -14978,528 +15479,932 @@ msgstr ""
 msgid "Test/measurement types"
 msgstr ""
 
-msgid "Vaccination targets (conditions known to be preventable by vaccination)"
+msgid "Vaccination targets (conditions known to be preventable by vaccination)"
+msgstr ""
+
+msgid "Vaccines"
+msgstr ""
+
+msgid "Workplace profiles (which plugins to load)"
+msgstr ""
+
+msgid "Consumable substances"
+msgstr ""
+
+msgid "Billable items"
+msgstr ""
+
+msgid "Reference data sources"
+msgstr ""
+
+msgid "Test/measurement panels/profiles"
+msgstr ""
+
+msgid "Master data management"
+msgstr ""
+
+msgid "Select the list you want to manage:"
+msgstr ""
+
+msgid "No DICOM viewer found."
+msgstr ""
+
+msgid "risk assessment"
+msgstr ""
+
+msgid "cardiovascular risk assessment"
+msgstr ""
+
+#, python-format
+msgid "[arriba] XML result not found in [%s]"
+msgstr ""
+
+msgid "ACS risk assessment calculator not configured."
+msgstr ""
+
+#, python-format
+msgid "Cannot run [%s] !"
+msgstr ""
+
+#, python-format
+msgid "There was a problem accessing the [arriba] result in [%s] !"
+msgstr ""
+
+msgid "[-9999]: <access violation test error>"
+msgstr ""
+
+msgid ""
+"This is a deliberate AccessDenied exception thrown to test the handling of "
+"access violations by means of a decorator."
+msgstr ""
+
+msgid "testing access check for non-existant <admin> role"
+msgstr ""
+
+msgid ""
+"This is a deliberate AccessDenied exception. You should not see this message "
+"because the role is checked in a decorator."
+msgstr ""
+
+msgid "pgAdmin III not found."
+msgstr ""
+
+msgid "Error reloading hook script."
+msgstr ""
+
+msgid "Save current log as..."
+msgstr ""
+
+msgid "log files"
+msgstr ""
+
+#, python-format
+msgid "Log file backed up as [%s]."
+msgstr ""
+
+msgid "Cannot start new encounter. No active patient."
+msgstr ""
+
+msgid "Cannot add health issue. No active patient."
+msgstr ""
+
+msgid "Cannot add episode. No active patient."
+msgstr ""
+
+msgid "Cannot add medication. No active patient."
+msgstr ""
+
+msgid "Cannot add allergy. No active patient."
+msgstr ""
+
+msgid "Cannot manage performed procedures. No active patient."
+msgstr ""
+
+msgid "Cannot manage hospitalizations. No active patient."
+msgstr ""
+
+msgid "Cannot manage external care. No active patient."
+msgstr ""
+
+msgid "Cannot edit occupation. No active patient."
+msgstr ""
+
+msgid "manage vaccinations"
+msgstr ""
+
+msgid "Cannot add vaccinations. No active patient."
+msgstr ""
+
+#, fuzzy
+msgid "manage family history"
+msgstr "ოჯახის ისტორია"
+
+msgid "Cannot manage family history. No active patient."
+msgstr ""
+
+msgid "Cannot manage measurements. No active patient."
+msgstr ""
+
+msgid "calculate EDC"
+msgstr ""
+
+msgid "manage suppressed hints"
+msgstr ""
+
+msgid "Cannot manage suppressed hints. No active patient."
+msgstr ""
+
+msgid "Cannot manage smoking status. No active patient."
+msgstr ""
+
+msgid "Cannot show EMR summary. No active patient."
+msgstr ""
+
+msgid "EMR Summary"
+msgstr ""
+
+msgid "Cannot export EMR journal by last modification time. No active patient."
+msgstr ""
+
+msgid "journal_by_last_mod_time"
+msgstr ""
+
+msgid "Save patient's EMR journal as..."
+msgstr ""
+
+msgid "Error exporting patient EMR as journal by last modification time."
+msgstr ""
+
+msgid "EMR journal export"
+msgstr ""
+
+#, python-format
+msgid ""
+"Successfully exported EMR as journal by last modification time into file "
+"[%s]."
+msgstr ""
+
+msgid "Cannot export EMR journal. No active patient."
+msgstr ""
+
+msgid "emr-journal"
+msgstr ""
+
+msgid "Error exporting patient EMR as chronological journal."
+msgstr ""
+
+#, python-format
+msgid "Successfully exported EMR as chronological journal into file [%s]."
+msgstr ""
+
+msgid "EMR journal by last modification time"
+msgstr ""
+
+msgid "EMR journal by encounter"
+msgstr ""
+
+msgid "Cannot add tag to person. No active patient."
+msgstr ""
+
+#, python-format
+msgid "Edit the comment on tag [%s]"
+msgstr ""
+
+msgid "Editing tag comment"
+msgstr ""
+
+msgid "Cannot export patient as GDT. No active patient."
+msgstr ""
+
+msgid "Exported demographics as GDT to clipboard."
+msgstr ""
+
+msgid "Cannot export patient as VCARD. No active patient."
+msgstr ""
+
+msgid "Exported demographics as VCARD to clipboard."
+msgstr ""
+
+msgid "Cannot export patient as XML (LinuxMedNews). No active patient."
+msgstr ""
+
+#, python-format
+msgid "Exported demographics to XML file [%s]."
+msgstr ""
+
+#, python-format
+msgid "Exported demographics to GDT file [%s]."
+msgstr ""
+
+#, python-format
+msgid "Exported demographics to VCARD file [%s]."
+msgstr ""
+
+msgid "Cannot add staff member. No active patient."
+msgstr ""
+
+msgid "Cannot delete patient. No patient active."
+msgstr ""
+
+msgid ""
+"You have to manually close this window to finalize shutting down GNUmed."
+msgstr ""
+
+msgid "This is so that you can inspect the console output at your leisure."
+msgstr ""
+
+msgid "no patient"
+msgstr ""
+
+#, python-format
+msgid "Saved screenshot to file [%s]."
+msgstr ""
+
+msgid "Python version check"
+msgstr ""
+
+#, python-format
+msgid ""
+"You are running Python version\n"
+" %s\n"
+"\n"
+"However, GNUmed wants Python 2.7 to\n"
+"facilitate migration to Python 3.\n"
+"\n"
+"Please upgrade your Python interpreter !"
+msgstr ""
+
+msgid "GNUmed client"
+msgstr ""
+
+msgid "GNUmed stdout/stderr window"
+msgstr ""
+
+msgid "redirecting STDOUT/STDERR to this log window"
+msgstr ""
+
+#, python-format
+msgid ""
+"The database account [%s] cannot be used as a\n"
+"staff member login for GNUmed. There was an\n"
+"error retrieving staff details for it.\n"
+"\n"
+"Please ask your administrator for help.\n"
+msgstr ""
+
+msgid "Checking access permissions"
+msgstr ""
+
+#, python-format
+msgid "Database <%s> on <%s>"
+msgstr ""
+
+#, python-format
+msgid "Branch \"%s\" of praxis \"%s\"\n"
+msgstr ""
+
+msgid "Verifying database"
+msgstr ""
+
+msgid "Connect"
+msgstr ""
+
+msgid "Yes, connect to this database."
+msgstr ""
+
+msgid "Disconnect"
+msgstr ""
+
+msgid "No, do not connect to this database."
+msgstr ""
+
+#, python-format
+msgid ""
+"Cannot find configuration file in any of:\n"
+"\n"
+" %s\n"
+"You may need to use the comand line option\n"
+"\n"
+"\t--conf-file=<FILE>"
+msgstr ""
+
+msgid "Checking configuration files"
+msgstr ""
+
+msgid "GNUmed startup"
+msgstr ""
+
+#, python-format
+msgid ""
+"The currently selected database language ('%s') does\n"
+"not match the current system language ('%s').\n"
+"\n"
+"Do you want to set the database language to '%s' ?\n"
+msgstr ""
+
+msgid "Checking database language settings"
+msgstr ""
+
+#, python-format
+msgid "Set your database language to [%s]."
+msgstr ""
+
+msgid "Don't set"
+msgstr ""
+
+msgid "Do not set your database language now."
+msgstr ""
+
+msgid "Remember to ignore language mismatch"
+msgstr ""
+
+#, python-format
+msgid ""
+"Checking this will make GNUmed remember your decision\n"
+"until the system language is changed.\n"
+"\n"
+"You can also reactivate this inquiry by removing the\n"
+"corresponding \"ignore\" option from the configuration file\n"
+"\n"
+" [%s]"
+msgstr ""
+
+msgid "generic activity"
+msgstr ""
+
+msgid "Access denied"
+msgstr ""
+
+#, python-format
+msgid ""
+"Your account is not set up to access this part of GNUmed:\n"
+"\n"
+"  [%s]"
+msgstr ""
+
+msgid "Save timeline as SVG image under..."
+msgstr ""
+
+msgid "timeline image"
+msgstr ""
+
+msgid "timeline data"
+msgstr ""
+
+msgid "Cannot change notebook tabs. No active patient."
 msgstr ""
 
-msgid "Vaccines"
+msgid "add plugin ..."
 msgstr ""
 
-msgid "Workplace profiles (which plugins to load)"
+msgid "Cannot activate Allergy Manager. No active patient."
 msgstr ""
 
-msgid "Consumable substances"
+msgid "RR ?"
 msgstr ""
 
-msgid "Billable items"
+#, python-format
+msgid "BMI %s"
 msgstr ""
 
-msgid "Reference data sources"
+msgid "BMI ?"
 msgstr ""
 
-msgid "Test/measurement panels/profiles"
+msgid "GFR ?"
 msgstr ""
 
-msgid "Master data management"
+#, python-format
+msgid "GFR %s"
 msgstr ""
 
-msgid "Select the list you want to manage:"
+#, python-format
+msgid "?EDC %s"
 msgstr ""
 
-msgid "No DICOM viewer found."
+#, python-format
+msgid "EDC %s"
 msgstr ""
 
-msgid "risk assessment"
+msgid "<Age>"
 msgstr ""
 
-msgid "cardiovascular risk assessment"
+msgid "no patient selected"
 msgstr ""
 
 #, python-format
-msgid "[arriba] XML result not found in [%s]"
-msgstr ""
-
-msgid "ACS risk assessment calculator not configured."
+msgid "Gender: %s (%s) - %s\n"
 msgstr ""
 
 #, python-format
-msgid "Cannot run [%s] !"
+msgid "Born: %s\n"
 msgstr ""
 
 #, python-format
-msgid "There was a problem accessing the [arriba] result in [%s] !"
+msgid "Died: %s\n"
 msgstr ""
 
-msgid "[-9999]: <access violation test error>"
+#, python-format
+msgid "At age: %s\n"
 msgstr ""
 
-msgid ""
-"This is a deliberate AcessDenied exception thrown to test the handling of "
-"access violations by means of a decorator."
+msgid " (date of birth and age are estimated)\n"
 msgstr ""
 
-msgid "testing access check for non-existant <admin> role"
+#, python-format
+msgid "%(sex)s  %(dob)s (%(age)s today !)"
 msgstr ""
 
 msgid ""
-"This is a deliberate AcessDenied exception. You should not see this message "
-"because the role is checked in a decorator."
+"\n"
+"Today is the patient's birthday !\n"
+"\n"
 msgstr ""
 
-msgid "pgAdmin III not found."
+#, python-format
+msgid "Birthday: %s ago\n"
 msgstr ""
 
-msgid "Error reloading hook script."
+#, python-format
+msgid "Birthday: in %s\n"
 msgstr ""
 
-msgid "Save current log as..."
+#, python-format
+msgid "Age: %s\n"
 msgstr ""
 
-msgid "log files"
+#, python-format
+msgid "last confirmed %s\n"
 msgstr ""
 
 #, python-format
-msgid "Log file backed up as [%s]."
+msgid "Comment (%s): %%s"
 msgstr ""
 
-msgid "Cannot start new encounter. No active patient."
+#, python-format
+msgid " - expires %s"
 msgstr ""
 
-msgid "Cannot add health issue. No active patient."
+#, python-format
+msgid ""
+"Due for %s (since %s%s):\n"
+"%s%s\n"
+"Patient: %s\n"
+"Reminder by: %s"
 msgstr ""
 
-msgid "Cannot add episode. No active patient."
+msgid "Clinical reminder"
 msgstr ""
 
-msgid "Cannot add medication. No active patient."
+msgid "Adding automatic dynamic hint"
 msgstr ""
 
-msgid "Cannot add allergy. No active patient."
+msgid "Editing automatic dynamic hint"
 msgstr ""
 
-msgid "Cannot manage performed procedures. No active patient."
+msgid "Deleting automatic dynamic hint"
 msgstr ""
 
-msgid "Cannot manage hospitalizations. No active patient."
+#, python-format
+msgid ""
+"Really delete this dynamic hint ?\n"
+"\n"
+" [%s]"
 msgstr ""
 
-msgid "Cannot manage external care. No active patient."
+msgid "deleting a dynamic hint"
 msgstr ""
 
-msgid "Cannot edit occupation. No active patient."
+msgid ""
+"\n"
+"Dynamic hints registered with GNUmed.\n"
 msgstr ""
 
-msgid "manage vaccinations"
+msgid "Showing dynamic hints."
 msgstr ""
 
-msgid "Cannot add vaccinations. No active patient."
+msgid "Hint"
 msgstr ""
 
-msgid "Cannot manage family history. No active patient."
+msgid "Browse and install automatic dynamic hints data packs"
 msgstr ""
 
-msgid "Cannot manage measurements. No active patient."
+#, python-format
+msgid "By: %s"
 msgstr ""
 
-msgid "calculate EDC"
+msgid "No entry in field <Source>."
 msgstr ""
 
-msgid "manage suppressed hints"
+msgid "No entry in field <Conditions>."
 msgstr ""
 
-msgid "Cannot manage suppressed hints. No active patient."
+msgid "No entry in field <Description>."
 msgstr ""
 
-msgid "Cannot show EMR summary. No active patient."
+msgid "No entry in field <Title>."
 msgstr ""
 
-msgid "EMR Summary"
+msgid "creating a new dynamic hint"
 msgstr ""
 
-msgid "Cannot export EMR journal. No active patient."
+msgid "updating an existing dynamic hint"
 msgstr ""
 
-msgid "Save patient's EMR journal as..."
+msgid "Deleting suppressed dynamic hint"
 msgstr ""
 
-msgid "Error exporting patient EMR as chronological journal."
+#, python-format
+msgid ""
+"Really delete the suppression of this dynamic hint ?\n"
+"\n"
+" [%s]"
 msgstr ""
 
-msgid "EMR journal export"
+msgid ""
+"\n"
+"Dynamic hints suppressed in this patient.\n"
 msgstr ""
 
-#, python-format
-msgid "Successfully exported EMR as chronological journal into file [%s]."
+msgid "Showing suppressed dynamic hints."
 msgstr ""
 
-msgid "Cannot add tag to person. No active patient."
+msgid "Rationale"
 msgstr ""
 
-#, python-format
-msgid "Edit the comment on tag [%s]"
+msgid "Manage hints"
 msgstr ""
 
-msgid "Editing tag comment"
+msgid "Manage automatic dynamic hints"
 msgstr ""
 
-msgid "Cannot export patient as GDT. No active patient."
+msgid "Cannot delete family history item."
 msgstr ""
 
-msgid "Exported demographics as GDT to clipboard."
+msgid "Family history of this patient."
 msgstr ""
 
-msgid "Cannot export patient as VCARD. No active patient."
+msgid "Showing family history."
 msgstr ""
 
-msgid "Exported demographics as VCARD to clipboard."
+msgid "Fatal"
 msgstr ""
 
-msgid "Cannot export patient as XML (LinuxMedNews). No active patient."
+msgid "Noted"
 msgstr ""
 
-#, python-format
-msgid "Exported demographics to XML file [%s]."
+msgid "Died"
 msgstr ""
 
-#, python-format
-msgid "Exported demographics to GDT file [%s]."
+msgid "Adding family history"
 msgstr ""
 
-#, python-format
-msgid "Exported demographics to VCARD file [%s]."
+msgid "Editing family history"
 msgstr ""
 
-msgid "Cannot add staff member. No active patient."
+msgid ""
+"\n"
+"Please select the default drug data source from the list below.\n"
+"\n"
+"Note that to actually use it you need to have the database installed, too."
 msgstr ""
 
-msgid "Cannot delete patient. No patient active."
+msgid "Configuring default drug data source"
 msgstr ""
 
-msgid ""
-"You have to manually close this window to finalize shutting down GNUmed."
+msgid "No default drug database configured."
 msgstr ""
 
-msgid "This is so that you can inspect the console output at your leisure."
+msgid "There is no default drug database configured."
 msgstr ""
 
-msgid "no patient"
+msgid "Jumping to drug database"
 msgstr ""
 
-#, python-format
-msgid "Saved screenshot to file [%s]."
+msgid "Cannot import drugs from IFAP into chart without chart."
 msgstr ""
 
-msgid "GNUmed client"
+#, python-format
+msgid "Cannot call IFAP via [%s]."
 msgstr ""
 
-msgid "GNUmed stdout/stderr window"
+#, python-format
+msgid "Cannot create IFAP <-> GNUmed transfer file [%s]."
 msgstr ""
 
-msgid "redirecting STDOUT/STDERR to this log window"
+msgid "Current medication"
 msgstr ""
 
-#, python-format
 msgid ""
-"The database account [%s] cannot be used as a\n"
-"staff member login for GNUmed. There was an\n"
-"error retrieving staff details for it.\n"
 "\n"
-"Please ask your administrator for help.\n"
+"The ATC codes as known to GNUmed.\n"
 msgstr ""
 
-msgid "Checking access permissions"
+msgid "Showing ATC codes."
 msgstr ""
 
-#, python-format
-msgid "Database <%s> on <%s>"
+msgid "Choose an ATC import config file"
 msgstr ""
 
-#, python-format
-msgid "Branch \"%s\" of praxis \"%s\"\n"
+msgid "config files"
 msgstr ""
 
-msgid "Verifying database"
+msgid "importing ATC reference data"
 msgstr ""
 
-msgid "Connect"
+msgid "Successfully imported ATC reference data."
 msgstr ""
 
-msgid "Yes, connect to this database."
+msgid "Importing ATC reference data failed."
 msgstr ""
 
-msgid "Disconnect"
+msgid "Select an ATC (Anatomical-Therapeutic-Chemical) code."
 msgstr ""
 
-msgid "No, do not connect to this database."
+msgid "Cannot edit this substance. It is in use."
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot find configuration file in any of:\n"
-"\n"
-" %s\n"
-"You may need to use the comand line option\n"
-"\n"
-"\t--conf-file=<FILE>"
+msgid "Adding new consumable substance"
 msgstr ""
 
-msgid "Checking configuration files"
+msgid "Editing consumable substance"
 msgstr ""
 
-msgid "GNUmed startup"
+msgid "Cannot delete this substance. It is in use."
 msgstr ""
 
-#, python-format
 msgid ""
-"The currently selected database language ('%s') does\n"
-"not match the current system language ('%s').\n"
 "\n"
-"Do you want to set the database language to '%s' ?\n"
+"These are the consumable substances registered with GNUmed.\n"
 msgstr ""
 
-msgid "Checking database language settings"
+msgid "Import"
 msgstr ""
 
-msgid "Set"
+msgid "Import consumable substances from a drug database."
 msgstr ""
 
-#, python-format
-msgid "Set your database language to [%s]."
+msgid "Cannot save consumable substance. Missing essential input."
 msgstr ""
 
-msgid "Don't set"
+#, python-format
+msgid "Cannot save consumable substance. %s"
 msgstr ""
 
-msgid "Do not set your database language now."
+msgid "The substance with optional strength."
 msgstr ""
 
-msgid "Remember to ignore language mismatch"
+msgid "Cannot remove this component from the drug. It is in use."
 msgstr ""
 
-#, python-format
 msgid ""
-"Checking this will make GNUmed remember your decision\n"
-"until the system language is changed.\n"
-"\n"
-"You can also reactivate this inquiry by removing the\n"
-"corresponding \"ignore\" option from the configuration file\n"
 "\n"
-" [%s]"
+"These are the components in the drug brands known to GNUmed.\n"
 msgstr ""
 
-msgid "generic activity"
+msgid "Showing drug brand components."
 msgstr ""
 
-msgid "Access denied"
+msgid "Adding new drug component"
 msgstr ""
 
-#, python-format
-msgid ""
-"Your account is not set up to access this part of GNUmed:\n"
-"\n"
-"  [%s]"
+msgid "Editing drug component"
 msgstr ""
 
-msgid "Save timeline as SVG image under..."
+msgid "Cannot edit drug component. It is in use."
 msgstr ""
 
-msgid "timeline image"
+msgid "Cannot save drug component. Invalid or missing essential input."
 msgstr ""
 
-msgid "timeline data"
+msgid "A drug component with optional strength."
 msgstr ""
 
-msgid "Cannot change notebook tabs. No active patient."
+msgid "Editing drug"
 msgstr ""
 
-msgid "add plugin ..."
+#, python-format
+msgid ""
+"Cannot edit the branded drug product\n"
+"\n"
+" \"%s\" (%s)\n"
+"\n"
+"because it is currently taken by patients.\n"
 msgstr ""
 
-msgid "Cannot activate Allergy Manager. No active patient."
+msgid "Adding new drug brand"
 msgstr ""
 
-msgid "<Age>"
+msgid "Editing drug brand"
 msgstr ""
 
-msgid "no patient selected"
+msgid "Manage consumable substances"
 msgstr ""
 
-#, python-format
-msgid "Gender: %s (%s) - %s\n"
+msgid "not in use"
 msgstr ""
 
 #, python-format
-msgid "Born: %s\n"
+msgid "ATC: %s\n"
 msgstr ""
 
-#, python-format
-msgid "Died: %s\n"
+msgid "Editing medication"
 msgstr ""
 
 #, python-format
-msgid "At age: %s\n"
+msgid ""
+"Cannot edit the medication\n"
+"\n"
+" \"%s\" (%s)\n"
+"\n"
+"because it is a vaccine. Please edit it\n"
+"from the vaccine management section !\n"
 msgstr ""
 
-msgid " (date of birth and age are estimated)\n"
+msgid "Deleting medication"
 msgstr ""
 
 #, python-format
-msgid "%(sex)s  %(dob)s (%(age)s today !)"
+msgid ""
+"Cannot delete the medication\n"
+"\n"
+" \"%s\" (%s)\n"
+"\n"
+"because it is a vaccine. Please delete it\n"
+"from the vaccine management section !\n"
 msgstr ""
 
 msgid ""
 "\n"
-"Today is the patient's birthday !\n"
-"\n"
+"These are the drug brands known to GNUmed.\n"
 msgstr ""
 
-#, python-format
-msgid "Birthday: %s ago\n"
+msgid "Showing branded drugs."
 msgstr ""
 
-#, python-format
-msgid "Birthday: in %s\n"
+msgid "Import substances and brands from a drug database."
 msgstr ""
 
-#, python-format
-msgid "Age: %s\n"
+msgid "Managing components of a drug"
 msgstr ""
 
 #, python-format
-msgid "last confirmed %s\n"
+msgid ""
+"Cannot manage the components of the branded drug product\n"
+"\n"
+" \"%s\" (%s)\n"
+"\n"
+"because it is currently taken by patients.\n"
 msgstr ""
 
-#, python-format
-msgid "Comment (%s): %%s"
+msgid "Pick the substances which are components of this drug."
 msgstr ""
 
-#, python-format
-msgid " - expires %s"
+msgid "Components of drug"
 msgstr ""
 
 #, python-format
 msgid ""
-"Due for %s (since %s%s):\n"
-"%s%s\n"
-"Patient: %s\n"
-"Reminder by: %s"
+"Adjust the components of \"%s\"\n"
+"\n"
+"The drug must contain at least one component. Any given\n"
+"substance can only be included once per drug."
 msgstr ""
 
-msgid "Clinical reminder"
+msgid "Managing components of a drug ..."
 msgstr ""
 
-msgid "Adding automatic dynamic hint"
+msgid "Cannot edit drug brand. It is in use."
 msgstr ""
 
-msgid "Editing automatic dynamic hint"
+msgid "Checking brand data"
 msgstr ""
 
-msgid "Deleting automatic dynamic hint"
+#, python-format
+msgid ""
+"The brand information you entered:\n"
+"\n"
+" [%s %s]\n"
+"\n"
+"already exists as a drug product."
 msgstr ""
 
-#, python-format
 msgid ""
-"Really delete this dynamic hint ?\n"
+"You have not selected any substances\n"
+"as drug components.\n"
 "\n"
-" [%s]"
+"Without components you will not be able to\n"
+"use this drug for documenting patient care.\n"
+"\n"
+"Are you sure you want to save\n"
+"it without components ?"
 msgstr ""
 
-msgid "deleting a dynamic hint"
+msgid "Cannot save branded drug. Invalid or missing essential input."
 msgstr ""
 
 msgid ""
+"The brand name of the drug.\n"
 "\n"
-"Dynamic hints registered with GNUmed.\n"
+"Note: a brand name will need to be linked to\n"
+"one or more components before it can be used,\n"
+"except in the case of fake (generic) vaccines."
 msgstr ""
 
-msgid "Showing dynamic hints."
+msgid "No EMR data loaded."
 msgstr ""
 
-msgid "Hint"
+msgid "EMR text dump"
 msgstr ""
 
-msgid "Browse and install automatic dynamic hints data packs"
+msgid "Currently there is no active patient. Cannot retrieve EMR text."
 msgstr ""
 
-#, python-format
-msgid "By: %s"
+msgid "SOAP Editor Actions:"
 msgstr ""
 
-msgid "No entry in field <Source>."
+msgid "&Sort lines"
 msgstr ""
 
-msgid "No entry in field <Conditions>."
+msgid "Sort lines by SOAP category"
 msgstr ""
 
-msgid "No entry in field <Description>."
+msgid "e&Xpand keyword"
 msgstr ""
 
-msgid "No entry in field <Title>."
+msgid "Expand keyword / macro"
 msgstr ""
 
-msgid "creating a new dynamic hint"
-msgstr ""
+#, fuzzy
+msgid "as &Subjective"
+msgstr "აქტიური"
 
-msgid "updating an existing dynamic hint"
+msgid "Set line to category \"Subjective\""
 msgstr ""
 
-msgid "Deleting suppressed dynamic hint"
+#, fuzzy
+msgid "as &Objective"
+msgstr "აქტიური"
+
+msgid "Set line to category \"Objective\""
 msgstr ""
 
-#, python-format
-msgid ""
-"Really delete the suppression of this dynamic hint ?\n"
-"\n"
-" [%s]"
+#, fuzzy
+msgid "as &Assessment"
+msgstr "შეფასება"
+
+msgid "Set line to category \"Assessment\""
 msgstr ""
 
-msgid ""
-"\n"
-"Dynamic hints suppressed in this patient.\n"
+msgid "as &Plan"
 msgstr ""
 
-msgid "Showing suppressed dynamic hints."
+msgid "Set line to category \"Plan\""
 msgstr ""
 
-msgid "Rationale"
+msgid "as &Unspecified"
 msgstr ""
 
-msgid "Manage hints"
+msgid "Set line to category \"unspecified\""
 msgstr ""
 
-msgid "Manage automatic dynamic hints"
+#, fuzzy
+msgid "as ad&Ministrative"
+msgstr "ადმინისტრაციული"
+
+msgid "Set line to category \"administrative\""
 msgstr ""
 
-msgid "Cannot delete family history item."
+msgid "→ &Clipboard"
 msgstr ""
 
-msgid "Family history of this patient."
+msgid "Copy line to clipboard"
 msgstr ""
 
-msgid "Showing family history."
+msgid "→ +Clipboard+"
 msgstr ""
 
-msgid "Fatal"
+msgid "Add line to clipboard"
 msgstr ""
 
-msgid "Noted"
+msgid "Copy content to clipboard"
 msgstr ""
 
-msgid "Died"
+msgid "Add content to clipboard"
 msgstr ""
 
-msgid "Adding family history"
+msgid "Copy selection to clipboard"
 msgstr ""
 
-msgid "Editing family history"
+msgid "Add selection to clipboard"
 msgstr ""
 
-msgid "No EMR data loaded."
+msgid "&Line ..."
 msgstr ""
 
-msgid "EMR text dump"
+msgid "&Text ..."
 msgstr ""
 
-msgid "Currently there is no active patient. Cannot retrieve EMR text."
+msgid "&Region ..."
 msgstr ""
 
 msgid "Show HL7 file:"
@@ -15511,6 +16416,10 @@ msgstr ""
 msgid "Extracting HL7 from XML file"
 msgstr ""
 
+#, python-format
+msgid "Unwrapped HL7 into [%s] from [%s]."
+msgstr ""
+
 msgid "Select HL7 file for staging:"
 msgstr ""
 
@@ -15534,6 +16443,10 @@ msgid ""
 " %s"
 msgstr ""
 
+#, python-format
+msgid "Staged HL7 from [%s]."
+msgstr ""
+
 msgid "Importing HL7 data"
 msgstr ""
 
@@ -15576,9 +16489,6 @@ msgstr ""
 msgid "Identification"
 msgstr ""
 
-msgid "Show"
-msgstr ""
-
 msgid "Show formatted HL7"
 msgstr ""
 
@@ -15624,6 +16534,17 @@ msgstr ""
 msgid "Plot current selection"
 msgstr ""
 
+msgid ""
+"Select the measurements panel to show in the top pane for continuous "
+"monitoring."
+msgstr ""
+
+msgid "Lab panel"
+msgstr ""
+
+msgid "Configuring continuous monitoring measurements panel"
+msgstr ""
+
 msgid "No default Gnuplot script template selected."
 msgstr ""
 
@@ -15646,10 +16567,25 @@ msgstr ""
 msgid "Cannot plot without a plot script."
 msgstr ""
 
-msgid "Time"
+msgid "Result"
 msgstr ""
 
-msgid "Result"
+msgid "Perform on selected results:"
+msgstr ""
+
+msgid "Review and &sign"
+msgstr ""
+
+msgid "Export to &file"
+msgstr ""
+
+msgid "Export to &clipboard"
+msgstr ""
+
+msgid "Panels"
+msgstr ""
+
+msgid "List"
 msgstr ""
 
 msgid ""
@@ -15726,18 +16662,6 @@ msgstr ""
 msgid "All: by &Day"
 msgstr ""
 
-msgid "Perform on selected results:"
-msgstr ""
-
-msgid "Review and &sign"
-msgstr ""
-
-msgid "Export to &file"
-msgstr ""
-
-msgid "Export to &clipboard"
-msgstr ""
-
 #, python-format
 msgid "%s results selected. Too many to list individually."
 msgstr ""
@@ -15911,6 +16835,9 @@ msgstr ""
 msgid "EMR Actions:"
 msgstr ""
 
+msgid "Print EMR"
+msgstr ""
+
 msgid "Create health issue"
 msgstr ""
 
@@ -16059,11 +16986,41 @@ msgstr ""
 msgid "&New notes %s"
 msgstr ""
 
+msgid "Find text in EMR Journal"
+msgstr ""
+
+#, fuzzy
+msgid "Modified"
+msgstr "შესაცვლელი შენატანი"
+
+msgid "Clinical time"
+msgstr ""
+
+msgid "Who / When"
+msgstr ""
+
+#, python-format
 msgid ""
-"An error occurred while retrieving the EMR\n"
-"in journal form for the active patient.\n"
+"Chart entry: %s       [#%s in %s]\n"
+" Modified: %s by %s (%s rev %s)\n"
 "\n"
-"Please check the log file for details."
+"Health issue: %s%s\n"
+"Episode: %s%s\n"
+"Encounter: %s%s"
+msgstr ""
+
+#, python-format
+msgid ""
+"%s\n"
+"\n"
+"                        rev %s (%s) by %s in <%s>"
+msgstr ""
+
+#, python-format
+msgid ""
+"%s\n"
+"%s\n"
+"%s"
 msgstr ""
 
 msgid "Editing tag"
@@ -16190,18 +17147,15 @@ msgid ""
 "%s\n"
 msgstr ""
 
-msgid "This patient DID receive care."
+msgid "This patient DID receive care here."
 msgstr ""
 
-msgid "This person did NOT receive care."
+msgid "This person did NOT receive care here."
 msgstr ""
 
 msgid "Disabling person"
 msgstr ""
 
-msgid "Disabling patient"
-msgstr ""
-
 msgid "Type or select a last name (family name/surname)."
 msgstr ""
 
@@ -16444,6 +17398,9 @@ msgid ""
 "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
 msgstr ""
 
+msgid "Connecting to backend"
+msgstr "მოინაცემთა ბაზასთან კავშიღი"
+
 #, python-format
 msgid ""
 "Unable to connect to database:\n"
@@ -16652,9 +17609,6 @@ msgstr ""
 msgid "Office"
 msgstr ""
 
-msgid "State"
-msgstr ""
-
 msgid "Zip"
 msgstr ""
 
@@ -16710,7 +17664,7 @@ msgstr ""
 msgid "EMR Timeline"
 msgstr ""
 
-msgid "Show &Timeline"
+msgid "EMR &Timeline"
 msgstr ""
 
 msgid "Overview"
@@ -16737,10 +17691,10 @@ msgstr ""
 msgid "&SimpleNotes"
 msgstr ""
 
-msgid "EMR tree"
+msgid "EMR Tree"
 msgstr ""
 
-msgid "EMR &Tree (topical)"
+msgid "EMR &Tree"
 msgstr ""
 
 msgid "Print Manager"
@@ -16749,6 +17703,12 @@ msgstr ""
 msgid "&Print Manager"
 msgstr ""
 
+msgid "EMR Journal"
+msgstr ""
+
+msgid "EMR &Journal (list)"
+msgstr ""
+
 msgid "Appointments"
 msgstr ""
 
@@ -16761,6 +17721,12 @@ msgstr ""
 msgid "Show &lab journal"
 msgstr ""
 
+msgid "PACS"
+msgstr ""
+
+msgid "&PACS"
+msgstr ""
+
 msgid "Cardiac Devices"
 msgstr ""
 
@@ -16833,10 +17799,7 @@ msgstr ""
 msgid "User &manual (local)"
 msgstr ""
 
-msgid "EMR journal"
-msgstr ""
-
-msgid "EMR &Journal (chronological)"
+msgid "EMR &Journal (text)"
 msgstr ""
 
 msgid "Demographics"
@@ -16997,6 +17960,9 @@ msgstr ""
 msgid "Show &ExamplePlugin"
 msgstr ""
 
+msgid "Find text"
+msgstr ""
+
 msgid "gm_ctl_client: starting slave GNUmed client"
 msgstr ""
 
@@ -17023,6 +17989,46 @@ msgstr ""
 msgid "Abort and do NOT connect to GNUmed."
 msgstr ""
 
+#~ msgid "soap_S"
+#~ msgstr "საპონი"
+
+#~ msgid "soap_O"
+#~ msgstr "საპონი"
+
+#~ msgid "soap_A"
+#~ msgstr "საპონი"
+
+#, fuzzy
+#~ msgid "soap_U"
+#~ msgstr "საპონი"
+
+#~ msgid "soap_Assessment"
+#~ msgstr "შეფასება"
+
+#~ msgid "soap_Plan"
+#~ msgstr "გეგმა"
+
+#~ msgid "soap_Administrative"
+#~ msgstr "ადმინისტრაციული"
+
+#, fuzzy
+#~ msgid "&Unknown"
+#~ msgstr "უცნობი ალერგიული ფორმა"
+
+#, fuzzy
+#~ msgid "Last confirmed: %s%s"
+#~ msgstr " (ბოლო დადასტურება %ს)"
+
 #, fuzzy
-#~ msgid "file: %s (%s/)"
-#~ msgstr "ვაქცინაცია"
+#~ msgid ""
+#~ "Unable to connect to database:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Please retry another backend / user / password combination !\n"
+#~ msgstr ""
+#~ "შეუძლებელია სერვერთან დაკავშირება\n"
+#~ "\n"
+#~ "%ს\n"
+#~ "\n"
+#~ "გთხოვთ, სცადოთ სხვა /მომხმარებლი/ პაროლის კომბინაცია\n"
diff --git a/client/po/nb-gnumed.mo b/client/po/nb-gnumed.mo
index ef6ed1e..9e7b9e4 100644
Binary files a/client/po/nb-gnumed.mo and b/client/po/nb-gnumed.mo differ
diff --git a/client/po/nb.po b/client/po/nb.po
index 10d8bc1..8b725d7 100644
--- a/client/po/nb.po
+++ b/client/po/nb.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gnumed\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-12-26 20:28+0100\n"
+"POT-Creation-Date: 2016-03-17 16:27+0100\n"
 "PO-Revision-Date: 2009-02-12 20:47+0000\n"
 "Last-Translator: Leif Gunnar Erlandsen <Unknown>\n"
 "Language-Team: Norwegian Bokmal <nb at li.org>\n"
@@ -1455,10 +1455,22 @@ msgid ""
 msgstr ""
 
 #, python-format
+msgid "Revision #%s"
+msgstr ""
+
+#, python-format
 msgid "[%s:%s]: row not updated (nothing returned), row in use ?"
 msgstr ""
 
 #, python-format
+msgid "<%s(.bat)> not found"
+msgstr ""
+
+#, python-format
+msgid "problem with <%s>"
+msgstr ""
+
+#, python-format
 msgid "[%s] is not a readable file"
 msgstr ""
 
@@ -1486,21 +1498,7 @@ msgstr ""
 msgid "%s Bytes"
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot connect to configuration database with:\n"
-"\n"
-"[%s]"
-msgstr ""
-
-#, python-format
-msgid ""
-"Cannot connect to database with:\n"
-"\n"
-"[%s]"
-msgstr ""
-
-msgid "No product information available."
+msgid "<type>"
 msgstr ""
 
 #, python-format
@@ -1836,74 +1834,6 @@ msgstr ""
 msgid "  risk: %s"
 msgstr "   Dok: %s"
 
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Are you sure you have got a local database installed ?\n"
-"\n"
-"Please retry with proper credentials or cancel.\n"
-"\n"
-"You may also need to check the PostgreSQL client\n"
-"authentication configuration in pg_hba.conf. For\n"
-"details see:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-msgstr ""
-
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Please retry with proper credentials or cancel.\n"
-"\n"
-"You may also need to check the PostgreSQL client\n"
-"authentication configuration in pg_hba.conf. For\n"
-"details see:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-msgstr ""
-
-msgid "Connecting to backend"
-msgstr ""
-
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Please retry another backend / user / password combination !\n"
-msgstr ""
-
-msgid "programmer forgot to specify error message"
-msgstr ""
-
-msgid ""
-"\n"
-"\n"
-"Please consult the error log for all the gory details !"
-msgstr ""
-
-msgid "generic error message"
-msgstr ""
-
-msgid "programmer forgot to specify info message"
-msgstr ""
-
-msgid "generic info message"
-msgstr ""
-
-msgid "programmer forgot to specify warning"
-msgstr ""
-
-msgid "generic warning message"
-msgstr ""
-
 msgid "no hook specified, please report bug"
 msgstr ""
 
@@ -2225,6 +2155,32 @@ msgstr ""
 msgid "Include:"
 msgstr ""
 
+msgid "&Search"
+msgstr ""
+
+msgid "Suggest"
+msgstr ""
+
+msgid "Set"
+msgstr ""
+
+msgid "dialog_1"
+msgstr ""
+
+msgid "Search patients in Orthanc DICOM store."
+msgstr ""
+
+msgid "Suggest a patient ID based on the active patient."
+msgstr ""
+
+#, fuzzy
+msgid "Search term:"
+msgstr "Lab resultat"
+
+#, fuzzy
+msgid "New patient ID:"
+msgstr "aktiv"
+
 msgid "Your review"
 msgstr ""
 
@@ -2527,6 +2483,95 @@ msgstr ""
 msgid "Amount"
 msgstr ""
 
+#, fuzzy
+msgid "&Connect"
+msgstr "Dokumenter:"
+
+msgid "&Browse"
+msgstr ""
+
+#, fuzzy
+msgid "<not connected>"
+msgstr "Vaksinasjon"
+
+msgid "Browse all"
+msgstr ""
+
+#, fuzzy
+msgid "Export all"
+msgstr "delvis"
+
+msgid "Browse"
+msgstr ""
+
+msgid "Export"
+msgstr ""
+
+msgid "Upload"
+msgstr ""
+
+msgid "Enter the PACS host address."
+msgstr ""
+
+msgid "Enter the PACS port."
+msgstr ""
+
+msgid "Enter the PACS user."
+msgstr ""
+
+msgid "Enter the PACS password. It will not be shown."
+msgstr ""
+
+msgid "Connect to PACS."
+msgstr ""
+
+msgid "Browse PACS at top level."
+msgstr ""
+
+msgid "Modify some of Orthanc content (such as patient IDs)."
+msgstr ""
+
+msgid "Browse overview of studies for this patient."
+msgstr ""
+
+#, fuzzy
+msgid "Copy all studies into export area."
+msgstr "Vaksinasjon"
+
+msgid "Browse topmost selected study."
+msgstr ""
+
+#, fuzzy
+msgid "Copy selected studies into export area."
+msgstr "Vaksinasjon"
+
+msgid "Save selected studies to disk."
+msgstr ""
+
+msgid ""
+"Upload DICOM files from a directory, recursively, into the Orthanc PACS\n"
+"\n"
+"The currently active patient does not matter. Orthanc will associate "
+"uploaded files with the patient found within the DICOM metadata. It will "
+"create new patients as needed."
+msgstr ""
+
+msgid "Host:"
+msgstr ""
+
+msgid "Port:"
+msgstr ""
+
+msgid "User:"
+msgstr ""
+
+msgid "Password"
+msgstr ""
+
+#, fuzzy
+msgid "Selected studies:"
+msgstr "Dokumenter:"
+
 msgid "Fake brand"
 msgstr ""
 
@@ -2864,9 +2909,6 @@ msgstr ""
 msgid "&Load"
 msgstr ""
 
-msgid "Export"
-msgstr ""
-
 msgid "A long, descriptive name for this form template."
 msgstr ""
 
@@ -2954,15 +2996,12 @@ msgstr ""
 msgid "Document Properties"
 msgstr ""
 
-msgid "Show part"
+msgid "Show"
 msgstr ""
 
 msgid "Remove part"
 msgstr ""
 
-msgid "Parts"
-msgstr ""
-
 msgid "Discard"
 msgstr ""
 
@@ -2990,6 +3029,9 @@ msgstr ""
 msgid "Required: The primary episode this document is to be listed under."
 msgstr ""
 
+msgid "Optional: The organization (unit) this document originated from."
+msgstr ""
+
 msgid ""
 "Optional: A short comment identifying the document. Good comments give an "
 "idea of the content and source of the document."
@@ -3014,6 +3056,9 @@ msgid ""
 "normal and abnormal resuslts can be relevant."
 msgstr ""
 
+msgid "Optional: A free-text document description."
+msgstr ""
+
 msgid "This field lists the parts belonging to the current document."
 msgstr ""
 
@@ -3025,9 +3070,6 @@ msgid ""
 "deletion from disk."
 msgstr ""
 
-msgid "Optional: A free-text document description."
-msgstr ""
-
 msgid "Save finished document."
 msgstr ""
 
@@ -3045,6 +3087,10 @@ msgstr "Dokumenter:"
 msgid "Associate to episode:"
 msgstr ""
 
+#, fuzzy
+msgid "Document source:"
+msgstr "Dokumenter:"
+
 msgid "Comment / Identification:"
 msgstr ""
 
@@ -3230,7 +3276,7 @@ msgstr ""
 msgid "Messages:"
 msgstr ""
 
-msgid "Only:"
+msgid "Limit to:"
 msgstr ""
 
 msgid "&Myself … or:"
@@ -3341,10 +3387,10 @@ msgstr ""
 msgid "Purpose"
 msgstr ""
 
-msgid "Details"
+msgid "Please supply your email address here !"
 msgstr ""
 
-msgid "<Please supply your email address here !>"
+msgid "Details"
 msgstr ""
 
 msgid "Keep running"
@@ -3368,9 +3414,11 @@ msgid ""
 msgstr ""
 
 msgid ""
-"Please enter your email address so we can provide feedback directly to you. "
-"Otherwise, feedback will be given on the GNUmed mailing list (http://lists."
-"gnu.org/mailman/listinfo/gnumed-bugs)."
+"Please enter your email address so we can provide help to you directly.\n"
+"\n"
+"Otherwise, feedback can be given on the GNUmed mailing list (http://lists."
+"gnu.org/mailman/listinfo/gnumed-bugs) ONLY to which you will then have to "
+"subscribe."
 msgstr ""
 
 msgid "Find help on http://wiki.gnumed.de, too."
@@ -3485,9 +3533,6 @@ msgstr ""
 msgid "Account"
 msgstr ""
 
-msgid "Password"
-msgstr ""
-
 msgid "Password, again"
 msgstr ""
 
@@ -3987,7 +4032,7 @@ msgstr ""
 msgid "Acquire images from image source (scanner, ...)."
 msgstr ""
 
-msgid "Acquire images or text from the clipboard."
+msgid "Acquire file or text from the clipboard."
 msgstr ""
 
 #, fuzzy
@@ -4141,7 +4186,7 @@ msgid ""
 "- the result list will be artificially limited to the first 1000 rows\n"
 "- you can include a column named \"pk_patient\" to make the result rows "
 "activate the corresponding patient on double-clicking\n"
-"- by inserting $<ID_active_patient>$ you can access the patient ID of the "
+"- by inserting $<ID_ACTIVE_PATIENT>$ you can access the patient ID of the "
 "patient active at the time of running the query"
 msgstr ""
 
@@ -4307,9 +4352,6 @@ msgstr ""
 msgid "Link &new"
 msgstr ""
 
-msgid "Browse"
-msgstr ""
-
 msgid ""
 "Search for matches among existing addresses and [Link] a selection, or [Link "
 "(a) new] address."
@@ -4358,25 +4400,16 @@ msgid ""
 "left."
 msgstr ""
 
-msgid "label_1"
-msgstr ""
-
-msgid "→"
-msgstr ""
-
-msgid "←"
-msgstr ""
-
-msgid "Extra"
-msgstr ""
+msgid "Subjective"
+msgstr "Subjektiv"
 
-msgid "Move selected items from left to right."
-msgstr ""
+msgid "Objective"
+msgstr "Objektiv"
 
-msgid "Move selected items from right to left."
+msgid "Assessment"
 msgstr ""
 
-msgid "Cancel picking items."
+msgid "Plan"
 msgstr ""
 
 msgid "Episode synopsis"
@@ -4412,20 +4445,29 @@ msgid ""
 "narrative belongs to."
 msgstr ""
 
-msgid "Subjective"
-msgstr "Subjektiv"
-
 #, fuzzy
 msgid "Codes:"
 msgstr "   Dok: %s"
 
-msgid "Objective"
-msgstr "Objektiv"
+msgid "label_1"
+msgstr ""
 
-msgid "Assessment"
+msgid "→"
 msgstr ""
 
-msgid "Plan"
+msgid "←"
+msgstr ""
+
+msgid "Extra"
+msgstr ""
+
+msgid "Move selected items from left to right."
+msgstr ""
+
+msgid "Move selected items from right to left."
+msgstr ""
+
+msgid "Cancel picking items."
 msgstr ""
 
 msgid "1"
@@ -4597,37 +4639,116 @@ msgstr ""
 msgid "Age range"
 msgstr ""
 
-msgid "Closed episodes"
+msgid "&Nicotine"
 msgstr ""
 
-msgid "Non-relevant issues"
+msgid "&Alcohol"
 msgstr ""
 
-msgid "Active problems"
+msgid "&Other:"
 msgstr ""
 
-msgid "Notes only"
+msgid "&Non-harmful use"
 msgstr ""
 
-msgid "Everything"
+msgid "&Harmful use"
 msgstr ""
 
-msgid ""
-"In this area GNUmed will place the notes of the\n"
-"previous encounter as well as notes by other\n"
-"staff for the current encounter.\n"
-"\n"
-"Note that this may change depending on which\n"
-"active problem is selected in the editor below."
+msgid "Presently &addicted"
 msgstr ""
 
-msgid "Most recent info on above problem"
+msgid "Previously &addicted"
 msgstr ""
 
-msgid "Show closed episodes as pseudo-problems ?"
+msgid "&Reconfirm as of today"
 msgstr ""
 
-msgid "Show issues marked clinically NOT relevant."
+#, fuzzy
+msgid "Select for documenting smoking status."
+msgstr "Vaksinasjon"
+
+msgid "Select for documenting alcohol use status."
+msgstr ""
+
+msgid ""
+"Select for documenting use of substances other than nicotine or alcohol."
+msgstr ""
+
+#, fuzzy
+msgid "Select the abused substance."
+msgstr "Dokumenter: %s"
+
+msgid ""
+"Select if the substance use is not considered harmful (say, no use or non-"
+"harmful use)."
+msgstr ""
+
+msgid "Select if substance is use considered harmful."
+msgstr ""
+
+msgid "Select if the patient is presently addicted to this substance."
+msgstr ""
+
+msgid "Select if the patient was previously addicted to this substance."
+msgstr ""
+
+msgid ""
+"A comment on this substance use:\n"
+"- type of product used\n"
+"- frequency\n"
+"- amount\n"
+"- when started\n"
+"- attempts to quit\n"
+"..."
+msgstr ""
+
+msgid ""
+"When did the patient quit?\n"
+"\n"
+"You can also set a target quit date here."
+msgstr ""
+
+msgid "Check here to confirm for today."
+msgstr ""
+
+msgid "Quit date"
+msgstr ""
+
+#, fuzzy
+msgid "Last confirmed"
+msgstr "etternavn"
+
+msgid "Closed episodes"
+msgstr ""
+
+msgid "Non-relevant issues"
+msgstr ""
+
+msgid "Active problems"
+msgstr ""
+
+msgid "Notes only"
+msgstr ""
+
+msgid "Everything"
+msgstr ""
+
+msgid ""
+"In this area GNUmed will place the notes of the\n"
+"previous encounter as well as notes by other\n"
+"staff for the current encounter.\n"
+"\n"
+"Note that this may change depending on which\n"
+"active problem is selected in the editor below."
+msgstr ""
+
+msgid "Most recent info on above problem"
+msgstr ""
+
+msgid "Show closed episodes as pseudo-problems ?"
+msgstr ""
+
+msgid "Show issues marked clinically NOT relevant."
 msgstr ""
 
 msgid ""
@@ -4936,20 +5057,18 @@ msgstr ""
 msgid "Show:"
 msgstr ""
 
-msgid "Brand by component"
+msgid "Kidneys"
 msgstr ""
 
 msgid "Brands"
 msgstr ""
 
-msgid "Kidneys"
-msgstr ""
-
-msgid "Unbranded substance"
+msgid "Substances"
 msgstr ""
 
-msgid "Manage"
-msgstr ""
+#, fuzzy
+msgid "&Unknown or date:"
+msgstr "ukjent reaksjon"
 
 msgid "Approved of"
 msgstr ""
@@ -4964,23 +5083,20 @@ msgid "... Reason"
 msgstr ""
 
 msgid ""
-"A component of a drug brand the patient is taking.\n"
+"A drug the patient is taking.\n"
 "\n"
-"Lookup, and select, a single- (or multi-) component drug brand, by active "
-"ingredient name. All components of multi-component drugs will be displayed "
-"and automatically added to the patient's list."
-msgstr ""
-
-msgid ""
-"Manage drug brands.\n"
+"Lookup and select an intake by either of\n"
+"- a generic substance name\n"
+"- a drug brand name\n"
+"- an active ingredient of a drug\n"
 "\n"
-"Note that this will not select a component for you. What it does is to let "
-"you manage (add/edit/delete) the drug products/brands known to GNUmed from "
-"which you can select a component."
+"Note that all components of multi-component drugs will be displayed and "
+"automatically added to the patient's list."
 msgstr ""
 
-msgid "The active ingredients of this brand."
-msgstr ""
+#, fuzzy
+msgid "Details on the selected drug."
+msgstr "Dokumenter:"
 
 msgid "Show cardiac information relevant to substance selection."
 msgstr ""
@@ -4989,8 +5105,11 @@ msgid "Show renal insufficiency information related to substance selection."
 msgstr ""
 
 msgid ""
-"The non-branded medication or non-medication substance, with optional "
-"strength."
+"Manage drug brands.\n"
+"\n"
+"Note that this will not select a component for you. What it does is to let "
+"you manage (add/edit/delete) the drug products/brands known to GNUmed from "
+"which you can select a component."
 msgstr ""
 
 msgid ""
@@ -5003,11 +5122,19 @@ msgstr ""
 msgid "The preparation or form of the substance."
 msgstr ""
 
+msgid "Check here if the start date simply isn't known."
+msgstr ""
+
 msgid ""
 "When was this substance started to be consumed or - if not known - the "
 "earliest it is known to have been be consumed."
 msgstr ""
 
+msgid ""
+"A coment on the certainty of the start date, such as \"+/- 3 weeks\", "
+"\"spring of 2002\", \"shortly after Easter 1996\", ...."
+msgstr ""
+
 msgid "Whether this substance is taken by advice."
 msgstr ""
 
@@ -5041,6 +5168,15 @@ msgstr ""
 msgid "Reason for discontinuation."
 msgstr ""
 
+msgid "Drug"
+msgstr ""
+
+msgid "Research:"
+msgstr ""
+
+msgid "Certainty:"
+msgstr ""
+
 msgid "Schedule"
 msgstr ""
 
@@ -5197,6 +5333,33 @@ msgstr ""
 msgid "Channel"
 msgstr ""
 
+#, fuzzy
+msgid "&Last modification time"
+msgstr "etternavn"
+
+msgid "&Entry time"
+msgstr ""
+
+msgid "Show journal ordered by encounter."
+msgstr ""
+
+msgid "Show journal ordered by time of last modification."
+msgstr ""
+
+msgid "Show journal ordered by actual clinical time of each entry."
+msgstr ""
+
+#, fuzzy
+msgid "Edit the selected chart entry."
+msgstr "inaktiv"
+
+#, fuzzy
+msgid "Delete selected chart entry."
+msgstr "Dokumenter:"
+
+msgid "Order by:"
+msgstr ""
+
 msgid "Chec&k"
 msgstr ""
 
@@ -5749,10 +5912,13 @@ msgstr "Dokumenter:"
 msgid "Documents:"
 msgstr "Dokumenter:"
 
+msgid "&L"
+msgstr ""
+
 msgid "&N"
 msgstr ""
 
-msgid "&L"
+msgid "List all encounters."
 msgstr ""
 
 msgid "The encounter."
@@ -5761,9 +5927,6 @@ msgstr ""
 msgid "Start a new encounter for the active patient."
 msgstr ""
 
-msgid "List all encounters."
-msgstr ""
-
 msgid "Clinically relevant"
 msgstr ""
 
@@ -6020,7 +6183,8 @@ msgstr "Dokumenter:"
 
 msgid ""
 "Rationale for\n"
-"suppression"
+"suppression\n"
+"for this patient"
 msgstr ""
 
 msgid "Save &under"
@@ -6077,6 +6241,12 @@ msgstr "ikke relevant"
 msgid "Encounter:"
 msgstr ""
 
+msgid "Manage"
+msgstr ""
+
+msgid "&Panel:"
+msgstr ""
+
 msgid "&Pick"
 msgstr ""
 
@@ -6121,6 +6291,9 @@ msgid ""
 "To disable that popup leave the message empty."
 msgstr ""
 
+msgid "Show search dialog."
+msgstr ""
+
 msgid "THIS IS NOT A VERIFIED MEASUREMENT. DO NOT USE FOR ACTUAL CARE."
 msgstr ""
 
@@ -6411,6 +6584,53 @@ msgstr "har allergier"
 msgid "ERROR: unknown allergy state [%s]"
 msgstr "FEIL: ukjent allergistatus [%s]"
 
+msgid "definite"
+msgstr ""
+
+msgid "indefinite"
+msgstr ""
+
+#, fuzzy
+msgid "Reaction:"
+msgstr "Vaksinasjon"
+
+#, fuzzy
+msgid "Noted:"
+msgstr "ikke relevant"
+
+#, fuzzy
+msgid "Allergene:"
+msgstr "Allergi"
+
+#, fuzzy
+msgid "Substance:"
+msgstr " Status: %s, %s"
+
+#, fuzzy
+msgid "Code:"
+msgstr "   Dok: %s"
+
+#, fuzzy
+msgid "ATC:"
+msgstr "   Dok: %s"
+
+msgid "Specific to:"
+msgstr ""
+
+#, fuzzy
+msgid "this substance only"
+msgstr "Vaksinasjon"
+
+msgid "drug class"
+msgstr ""
+
+#, fuzzy
+msgid "unknown"
+msgstr "ukjent reaksjon"
+
+msgid "Generics:"
+msgstr ""
+
 msgid "Medication history"
 msgstr ""
 
@@ -6422,9 +6642,15 @@ msgstr "Vaksinasjon"
 msgid "prescription data"
 msgstr "Vaksinasjon"
 
+msgid "Consumable substance"
+msgstr ""
+
 msgid "in use"
 msgstr ""
 
+msgid "w/"
+msgstr ""
+
 msgid "long-term"
 msgstr ""
 
@@ -6445,6 +6671,35 @@ msgid "?ongoing"
 msgstr "pågående"
 
 #, python-format
+msgid ""
+"Substance abuse entry                                              [#%s]\n"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "Substance: %s [#%s]%s\n"
+msgstr " Status: %s, %s"
+
+#, fuzzy, python-format
+msgid "Use type: %s\n"
+msgstr "   Dok: %s"
+
+#, fuzzy, python-format
+msgid "Last checked: %s\n"
+msgstr "etternavn"
+
+#, python-format
+msgid " Discontinued %s\n"
+msgstr ""
+
+#, fuzzy, python-format
+msgid " Notes: %s\n"
+msgstr "   Dok: %s"
+
+#, python-format
+msgid "Revision: #%(row_ver)s, %(mod_when)s by %(mod_by)s."
+msgstr ""
+
+#, python-format
 msgid "Substance intake entry (%s, %s)   [#%s]                     \n"
 msgstr ""
 
@@ -6461,9 +6716,6 @@ msgstr ""
 msgid "unapproved"
 msgstr ""
 
-msgid "definite"
-msgstr ""
-
 msgid "suspected"
 msgstr ""
 
@@ -6509,10 +6761,6 @@ msgstr ""
 msgid " (short-term)"
 msgstr ""
 
-#, python-format
-msgid " Discontinued %s\n"
-msgstr ""
-
 #, fuzzy, python-format
 msgid " Reason: %s\n"
 msgstr "Dokumenter: %s"
@@ -6533,113 +6781,143 @@ msgstr "Dokumenter: %s"
 msgid " Advice: %s\n"
 msgstr ""
 
-#, python-format
-msgid "Revision: #%(row_ver)s, %(mod_when)s by %(mod_by)s."
+msgid "medication, not abuse"
+msgstr ""
+
+msgid "no or non-harmful use"
+msgstr ""
+
+msgid "presently harmful use"
+msgstr ""
+
+msgid "presently addicted"
+msgstr ""
+
+msgid "previously addicted"
 msgstr ""
 
 #, fuzzy, python-format
-msgid "%s: %s ago"
+msgid "%s%s: %s ago%s"
 msgstr "   Dok: %s"
 
 #, fuzzy, python-format
-msgid "%s: %s ago (%s)"
+msgid "%s%s: %s ago (%s)"
 msgstr "   Dok: %s"
 
-msgid "Additional notes"
-msgstr ""
+#, fuzzy, python-format
+msgid "%s%s%s (%s ago)"
+msgstr "   Dok: %s"
 
-msgid "Strength"
-msgstr ""
+#, fuzzy, python-format
+msgid "%s%s%s (%s ago, %s)"
+msgstr " Status: %s, %s"
 
-msgid "Medication list"
+#, python-format
+msgid "%s ago"
 msgstr ""
 
-msgid "ordered by brand"
+#, fuzzy, python-format
+msgid "in %s"
+msgstr "Dokumenter: %s"
+
+#, fuzzy, python-format
+msgid ", until %s (%s)"
+msgstr "   Dok: %s"
+
+#, python-format
+msgid " (planned for %s%s)"
 msgstr ""
 
-msgid "Drug"
+#, python-format
+msgid ", planned for %s%s"
 msgstr ""
 
-msgid "Regimen / Advice"
+#, fuzzy, python-format
+msgid "%s ago (for %s: %s %s %s)"
+msgstr "Pasient: %s (%s), Nr: %s\n"
+
+msgid "Additional notes"
 msgstr ""
 
-msgid "units"
+msgid "Strength"
 msgstr ""
 
-msgid "virtual message"
+msgid "Medication list"
 msgstr ""
 
-msgid "message"
+msgid "ordered by brand"
 msgstr ""
 
-msgid "everyone"
+msgid "Regimen / Advice"
 msgstr ""
 
+#, fuzzy, python-format
+msgid "Component of %s (%s)"
+msgstr "Dokumenter:"
+
 #, python-format
-msgid "Patient #%s"
+msgid "ATC (substance): %s"
 msgstr ""
 
 #, fuzzy, python-format
-msgid "Due: %s (%s ago)\n"
+msgid "ATC (brand): %s"
 msgstr "   Dok: %s"
 
-#, fuzzy, python-format
-msgid "Due: %s (in %s)\n"
-msgstr "   Dok: %s"
+msgid "this is a component of a fake brand"
+msgstr ""
 
-#, fuzzy, python-format
-msgid "Expired: %s\n"
-msgstr "   Dok: %s"
+#, fuzzy
+msgid "Components:"
+msgstr "Dokumenter:"
 
-#, fuzzy, python-format
-msgid "Expires: %s\n"
-msgstr "   Dok: %s"
+msgid "this is a fake brand"
+msgstr ""
 
 #, fuzzy
-msgid "Active clinical hint"
-msgstr "aktiv"
+msgid "this is a vaccine"
+msgstr "Vaksinasjon"
 
-msgid "Inactive clinical hint"
+msgid "units"
 msgstr ""
 
-#, fuzzy, python-format
-msgid "Source: %s\n"
-msgstr "   Dok: %s"
+msgid "virtual message"
+msgstr ""
 
-#, fuzzy, python-format
-msgid "Language: %s\n"
-msgstr "   Dok: %s"
+msgid "message"
+msgstr ""
 
-#, fuzzy
-msgid "Suppressed active dynamic hint"
-msgstr "Dokumenter:"
+msgid "everyone"
+msgstr ""
 
-#, fuzzy
-msgid "Suppressed inactive dynamic hint"
-msgstr "Dokumenter:"
+#, python-format
+msgid "Patient #%s"
+msgstr ""
 
 #, fuzzy, python-format
-msgid "Suppressed by: %s\n"
+msgid "Due: %s (%s ago)\n"
 msgstr "   Dok: %s"
 
 #, fuzzy, python-format
-msgid "Suppressed at: %s\n"
+msgid "Due: %s (in %s)\n"
 msgstr "   Dok: %s"
 
 #, fuzzy, python-format
-msgid "Hint #: %s\n"
+msgid "Expired: %s\n"
 msgstr "   Dok: %s"
 
 #, fuzzy, python-format
-msgid "Patient #: %s\n"
-msgstr "Dokumenter: %s"
+msgid "Expires: %s\n"
+msgstr "   Dok: %s"
 
-#, fuzzy, python-format
-msgid "MD5 (currently): %s\n"
-msgstr "Dokumenter: %s"
+#, fuzzy
+msgid "HL7 Source"
+msgstr "   Dok: %s"
+
+msgid "HL7 data size"
+msgstr ""
 
 #, python-format
-msgid "MD5 (at suppression): %s\n"
+msgid "%s bytes"
 msgstr ""
 
 msgid "HL7 Message"
@@ -6697,13 +6975,6 @@ msgstr ""
 msgid "doc: %s"
 msgstr "   Dok: %s"
 
-msgid "no patient photograph available"
-msgstr ""
-
-#, python-format
-msgid "patient photograph from %s"
-msgstr ""
-
 msgid "Patient data for"
 msgstr ""
 
@@ -6713,6 +6984,9 @@ msgstr ""
 msgid "Patient data export"
 msgstr ""
 
+msgid "no patient photograph available"
+msgstr ""
+
 msgid "Documents"
 msgstr ""
 
@@ -6723,6 +6997,10 @@ msgstr ""
 msgid "browse documents area"
 msgstr "Dokumenter:"
 
+#, python-format
+msgid "patient photograph from %s"
+msgstr ""
+
 #, fuzzy
 msgid "Browse patient data"
 msgstr "Vaksinasjon"
@@ -6758,24 +7036,24 @@ msgstr ""
 #, python-format
 msgid ""
 "%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s %(suburb)s, "
-"%(code_state)s, %(code_country)s"
+"%(code_region)s, %(code_country)s"
 msgstr ""
 
 #, python-format
 msgid ""
 "%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s %(suburb)s, "
-"%(code_state)s, %(code_country)s"
+"%(code_region)s, %(code_country)s"
 msgstr ""
 
 #, python-format
 msgid ""
-"%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_state)s, "
-"%(code_country)s"
+"%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, "
+"%(code_region)s, %(code_country)s"
 msgstr ""
 
 #, python-format
 msgid ""
-"%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_state)s, "
+"%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_region)s, "
 "%(code_country)s"
 msgstr ""
 
@@ -6785,7 +7063,7 @@ msgid ""
 " Street: %(street)s%(notes_street)s\n"
 " Number/Unit: %(number)s%(subunit)s%(notes_subunit)s\n"
 " Location: %(zip)s %(urb)s%(suburb)s\n"
-" Region: %(l10n_state)s, %(code_state)s\n"
+" Region: %(l10n_region)s, %(code_region)s\n"
 " Country: %(l10n_country)s, %(code_country)s"
 msgstr ""
 
@@ -6795,7 +7073,7 @@ msgid ""
 " Street: %(street)s%(notes_street)s\n"
 " Number/Unit: %(number)s%(subunit)s%(notes_subunit)s\n"
 " Location: %(zip)s %(urb)s%(suburb)s\n"
-" Region: %(l10n_state)s, %(code_state)s\n"
+" Region: %(l10n_region)s, %(code_region)s\n"
 " Country: %(l10n_country)s, %(code_country)s"
 msgstr ""
 
@@ -6865,6 +7143,92 @@ msgstr ""
 msgid "missing, reported later"
 msgstr ""
 
+msgid "Health issue"
+msgstr ""
+
+msgid "External care"
+msgstr ""
+
+msgid "Vaccination"
+msgstr "Vaksinasjon"
+
+#, fuzzy
+msgid "Clinical narrative"
+msgstr "Vaksinasjon"
+
+#, fuzzy
+msgid "Test result"
+msgstr ""
+" %s test resultater\n"
+"\n"
+
+msgid "Substance intake"
+msgstr ""
+
+msgid "Hospital stay"
+msgstr ""
+
+msgid "Performed procedure"
+msgstr ""
+
+#, fuzzy
+msgid "Family history"
+msgstr "Dokumenter:"
+
+#, fuzzy
+msgid "Document"
+msgstr "Dokumenter:"
+
+#, python-format
+msgid "unmapped entry type from table [%s]"
+msgstr ""
+
+#, python-format
+msgid "cannot instantiate clinical root item <%s(%s)>"
+msgstr ""
+
+msgid "True"
+msgstr ""
+
+msgid "False"
+msgstr ""
+
+#, fuzzy
+msgid "unknown smoking status"
+msgstr "Vaksinasjon"
+
+msgid "non-smoker"
+msgstr ""
+
+msgid "current smoker"
+msgstr ""
+
+msgid "ex-smoker"
+msgstr ""
+
+msgid "tobacco addiction"
+msgstr ""
+
+msgid "no or non-harmful alcohol use"
+msgstr ""
+
+msgid "harmful alcohol use"
+msgstr ""
+
+#, fuzzy
+msgid "unknown alcohol use"
+msgstr "ukjent allergistatus"
+
+msgid "no or non-harmful drug use"
+msgstr ""
+
+msgid "harmful drug use"
+msgstr ""
+
+#, fuzzy
+msgid "unknown drug use"
+msgstr "ukjent allergistatus"
+
 msgid "original entry"
 msgstr "opprinnelig verdi"
 
@@ -6964,13 +7328,6 @@ msgstr "Vaksinasjon"
 msgid "Vaccinations"
 msgstr ""
 
-#, python-format
-msgid "%s ago"
-msgstr ""
-
-msgid "External care"
-msgstr ""
-
 #, fuzzy
 msgid "Allergies/Intolerances"
 msgstr "allergier/intoleranser"
@@ -7046,77 +7403,130 @@ msgid ""
 "The account was deactivated instead."
 msgstr ""
 
-#, python-format
-msgid "Device(%s):"
+msgid "SOAP_char_S=S"
 msgstr ""
 
-msgid "Battery:"
+msgid "SOAP_char_O=O"
 msgstr ""
 
-msgid "Implanted:"
+msgid "SOAP_char_A=A"
 msgstr ""
 
-#, fuzzy
-msgid "last check:"
-msgstr "etternavn"
+msgid "SOAP_char_P=P"
+msgstr ""
 
-msgid "Sensing:"
+msgid "SOAP_char_U=U"
 msgstr ""
 
-msgid "Threshold"
+msgid "SOAP_string_Subjective=Subjective"
 msgstr ""
 
-msgid "Impedance:"
+msgid "SOAP_string_Objective=Objective"
 msgstr ""
 
-#, fuzzy, python-format
-msgid "Praxis branch                   #%s\n"
-msgstr "Pasient: %s (%s), Nr: %s\n"
+msgid "SOAP_string_Assessment=Assessment"
+msgstr ""
 
-msgid "Privacy notice"
+msgid "SOAP_string_Plan=Plan"
 msgstr ""
 
-#, python-format
-msgid ""
-"%s: Your chart has been accessed by %s (without user interaction, probably "
-"by a script)."
+msgid "SOAP_string_Unspecified=Unspecified"
 msgstr ""
 
-#, python-format
-msgid "%s: Staff member %s has been notified of your chart access."
+msgid "SOAP_string_Administrative=Administrative"
+msgstr ""
+
+#, fuzzy
+msgid "Active clinical hint"
+msgstr "aktiv"
+
+msgid "Inactive clinical hint"
 msgstr ""
 
-msgid "soap_S"
+#, fuzzy, python-format
+msgid "Source: %s\n"
+msgstr "   Dok: %s"
+
+#, fuzzy, python-format
+msgid "Language: %s\n"
+msgstr "   Dok: %s"
+
+#, fuzzy
+msgid "Suppressed active dynamic hint"
+msgstr "Dokumenter:"
+
+#, fuzzy
+msgid "Suppressed inactive dynamic hint"
+msgstr "Dokumenter:"
+
+#, fuzzy, python-format
+msgid "Suppressed by: %s\n"
+msgstr "   Dok: %s"
+
+#, fuzzy, python-format
+msgid "Suppressed at: %s\n"
+msgstr "   Dok: %s"
+
+#, fuzzy, python-format
+msgid "Hint #: %s\n"
+msgstr "   Dok: %s"
+
+#, fuzzy, python-format
+msgid "Patient #: %s\n"
+msgstr "Dokumenter: %s"
+
+#, fuzzy, python-format
+msgid "MD5 (currently): %s\n"
+msgstr "Dokumenter: %s"
+
+#, python-format
+msgid "MD5 (at suppression): %s\n"
 msgstr ""
 
-msgid "soap_O"
+#, python-format
+msgid "Device(%s):"
 msgstr ""
 
-msgid "soap_A"
+msgid "Battery:"
 msgstr ""
 
-msgid "soap_P"
+msgid "Implanted:"
 msgstr ""
 
-msgid "soap_U"
+#, fuzzy
+msgid "last check:"
+msgstr "etternavn"
+
+msgid "Sensing:"
 msgstr ""
 
-msgid "soap_Subjective"
+msgid "Threshold"
 msgstr ""
 
-msgid "soap_Objective"
+msgid "Impedance:"
 msgstr ""
 
-msgid "soap_Assessment"
+#, fuzzy, python-format
+msgid "Praxis branch                   #%s\n"
+msgstr "Pasient: %s (%s), Nr: %s\n"
+
+#, python-format
+msgid ""
+"FN:%(l10n_unit_category)s %(branch)s of %(l10n_organization_category)s "
+"%(praxis)s"
 msgstr ""
 
-msgid "soap_Plan"
+msgid "Privacy notice"
 msgstr ""
 
-msgid "soap_Unspecified"
+#, python-format
+msgid ""
+"%s: Your chart has been accessed by %s (without user interaction, probably "
+"by a script)."
 msgstr ""
 
-msgid "soap_Administrative"
+#, python-format
+msgid "%s: Staff member %s has been notified of your chart access."
 msgstr ""
 
 #, python-format
@@ -7183,9 +7593,17 @@ msgid "%(last)s,%(title)s %(first)s%(nick)s (%(sex)s)"
 msgstr ""
 
 #, python-format
+msgid "%(last)s,%(title)s %(first)s (%(sex)s)"
+msgstr ""
+
+#, python-format
 msgid "%(last)s,%(title)s %(first)s%(nick)s"
 msgstr ""
 
+#, python-format
+msgid "%(last)s,%(title)s %(first)s"
+msgstr ""
+
 msgid "Cannot merge active patient into another patient."
 msgstr ""
 
@@ -7195,9 +7613,6 @@ msgstr ""
 msgid "merged"
 msgstr ""
 
-msgid "preferred name/call name/..."
-msgstr ""
-
 msgid "invalid age: DOB in the future"
 msgstr ""
 
@@ -7210,10 +7625,6 @@ msgstr "Herr"
 msgid "Mrs"
 msgstr "Fru"
 
-#, fuzzy
-msgid "unknown"
-msgstr "ukjent reaksjon"
-
 msgid "empty status"
 msgstr ""
 
@@ -7555,7 +7966,7 @@ msgid " Part %s: %s %s(%s Bytes)\n"
 msgstr " Status: %s, %s"
 
 #, fuzzy, python-format
-msgid " Filename: %s\n"
+msgid " Filename: %s%s\n"
 msgstr "etternavn"
 
 #, fuzzy
@@ -7570,19 +7981,26 @@ msgstr "delvis"
 msgid "%s parts"
 msgstr ""
 
+#, fuzzy, python-format
+msgid "%s of %s"
+msgstr "Dokumenter: %s"
+
 #, python-format
 msgid ""
 "%s (%s)   #%s\n"
-"\n"
 " Created: %s\n"
 " Episode: %s\n"
-"%s%s%s"
+"%s%s%s%s"
 msgstr ""
 
 #, python-format
 msgid " External reference: %s\n"
 msgstr ""
 
+#, fuzzy, python-format
+msgid " Organization: %%s @ %s\n"
+msgstr "Vaksinasjon"
+
 msgid "Cannot run [arriba] !"
 msgstr ""
 
@@ -7933,26 +8351,9 @@ msgid "External care:"
 msgstr ""
 
 #, fuzzy, python-format
-msgid ""
-"health issue: %s%s%s\n"
-"\n"
+msgid "Health issue: %s%s%s"
 msgstr "Dokumenter: %s"
 
-#, fuzzy
-msgid ""
-"\n"
-"current values:\n"
-msgstr "ukjent allergistatus"
-
-msgid "no previous versions of this record"
-msgstr ""
-
-msgid ""
-"\n"
-"all values with <audit_action>, <audit_when>, <audit_by> fields (current "
-"value first):\n"
-msgstr ""
-
 msgid "Unattributed episodes"
 msgstr ""
 
@@ -7974,9 +8375,6 @@ msgstr "Pasient: %s (%s), Nr: %s\n"
 msgid "finished"
 msgstr "fullført"
 
-msgid "Health issue"
-msgstr ""
-
 msgid "none associated"
 msgstr ""
 
@@ -8012,9 +8410,7 @@ msgid "Measurements and Results:"
 msgstr ""
 
 #, fuzzy, python-format
-msgid ""
-"episode: %s%s%s\n"
-"\n"
+msgid "Episode: %s%s%s"
 msgstr " Status: %s, %s"
 
 #, python-format
@@ -8042,9 +8438,7 @@ msgid "%s other episodes touched upon during this encounter:"
 msgstr ""
 
 #, fuzzy, python-format
-msgid ""
-"encounter: %s%s%s\n"
-"\n"
+msgid "Encounter: %s%s%s"
 msgstr "Pasient: %s (%s), Nr: %s\n"
 
 #, fuzzy
@@ -8068,9 +8462,6 @@ msgstr ""
 msgid "Procedures"
 msgstr ""
 
-msgid "Substances"
-msgstr ""
-
 msgid "Life events"
 msgstr ""
 
@@ -8093,9 +8484,6 @@ msgstr ""
 msgid "Cannot display timeline."
 msgstr ""
 
-msgid "Vaccination"
-msgstr "Vaksinasjon"
-
 msgid "Lab result"
 msgstr "Lab resultat"
 
@@ -8166,9 +8554,6 @@ msgstr ""
 msgid "Exported: %s\n"
 msgstr ""
 
-msgid "emr-journal"
-msgstr ""
-
 msgid "Chronological EMR Journal\n"
 msgstr ""
 
@@ -8447,25 +8832,144 @@ msgstr ""
 msgid "Select one or more codes that apply."
 msgstr ""
 
-msgid "Cannot move progress notes. No active patient."
+msgid "Select the narrative you are interested in ..."
 msgstr ""
 
-msgid "Moving progress notes between encounters ..."
+msgid "when"
+msgstr ""
+
+msgid "who"
+msgstr ""
+
+msgid "entry"
+msgstr ""
+
+msgid "There is no narrative for this episode in this encounter."
+msgstr ""
+
+msgid "Must select episode to move narrative to first."
+msgstr ""
+
+msgid "Last"
+msgstr ""
+
+msgid "In health issue"
+msgstr ""
+
+msgid "Most recent notes on selected problem"
+msgstr ""
+
+#, python-format
+msgid "%s (active+potential) problems"
+msgstr ""
+
+#, python-format
+msgid "%s active problems"
+msgstr ""
+
+msgid "Current encounter:"
+msgstr ""
+
+msgid "Cumulative summary"
+msgstr ""
+
+#, python-format
+msgid "Most recent info on %s%s%s"
 msgstr ""
 
+#, python-format
 msgid ""
+"Cannot open progress note editor for\n"
 "\n"
-" Select the progress notes to move from the list !\n"
+"[%s].\n"
 "\n"
 msgstr ""
 
-msgid "when"
+msgid "opening progress note editor"
 msgstr ""
 
-msgid "who"
+msgid "Cannot save all editors. Some were kept open."
 msgstr ""
 
-msgid "entry"
+msgid "new problem"
+msgstr ""
+
+msgid ""
+"Are you sure you really want to\n"
+"discard this progress note ?\n"
+msgstr ""
+
+msgid "Discarding progress note"
+msgstr ""
+
+msgid "There are unsaved progress notes !\n"
+msgstr ""
+
+msgid "Unsaved progress notes"
+msgstr ""
+
+msgid "Problem list"
+msgstr ""
+
+msgid "Saving SOAP note"
+msgstr ""
+
+msgid "Do you want to save the SOAP note ?"
+msgstr ""
+
+#, python-format
+msgid "&Filter by problem %s%s%s"
+msgstr ""
+
+msgid "Cannot save SimpleNotes SOAP note."
+msgstr ""
+
+#, python-format
+msgid "Progress note: %s%s"
+msgstr ""
+
+msgid "Please enter a name for the new problem:"
+msgstr ""
+
+msgid "Adding a problem"
+msgstr ""
+
+msgid "Cannot delete problem. There is still clinical data recorded for it."
+msgstr ""
+
+#, python-format
+msgid "GNUmed: configuring [%s] (%s plugins)"
+msgstr ""
+
+msgid "loading list of plugins                               "
+msgstr ""
+
+msgid "failed"
+msgstr ""
+
+msgid "success"
+msgstr ""
+
+#, python-format
+msgid ""
+"previous: %s (%s)\n"
+"current (%s/%s): %s"
+msgstr ""
+
+#, python-format
+msgid "Cannot switch to [%s]: no patient selected"
+msgstr ""
+
+msgid "Cannot move progress notes. No active patient."
+msgstr ""
+
+msgid "Moving progress notes between encounters ..."
+msgstr ""
+
+msgid ""
+"\n"
+" Select the progress notes to move from the list !\n"
+"\n"
 msgstr ""
 
 msgid "Cannot edit progress notes. No active patient."
@@ -8669,611 +9173,361 @@ msgid ""
 " Now, mark the entries you want to include in your report.\n"
 msgstr ""
 
-msgid "Select the narrative you are interested in ..."
+msgid "Pick a date ..."
 msgstr ""
 
-msgid "There is no narrative for this episode in this encounter."
+msgid "<ALT-C/K>: pick from (c/k)alendar"
 msgstr ""
 
-msgid "Must select episode to move narrative to first."
+msgid "Cannot interpret input as timestamp."
 msgstr ""
 
-msgid "Last"
+msgid "No vaccines were chosen"
 msgstr ""
 
-msgid "In health issue"
+#, python-format
+msgid "Combination of indications , %s , not found in any vaccine"
 msgstr ""
 
-msgid "Most recent notes on selected problem"
+msgid "Sequence"
 msgstr ""
 
-#, python-format
-msgid "%s (active+potential) problems"
+msgid "Batch"
 msgstr ""
 
-#, python-format
-msgid "%s active problems"
+msgid "Vaccinator"
 msgstr ""
 
-msgid "Current encounter:"
+msgid ""
+"Vaccinations by Recommender (X = patient on regime, O = patient not on "
+"regime) "
 msgstr ""
 
-msgid "Cumulative summary"
+msgid "enrolled regime vaccinations not yet given"
 msgstr ""
 
-#, python-format
-msgid "Most recent info on %s%s%s"
+msgid "Proceed with "
 msgstr ""
 
 #, python-format
-msgid ""
-"Cannot open progress note editor for\n"
-"\n"
-"[%s].\n"
-"\n"
+msgid "Failed to enrol patient in %s"
 msgstr ""
 
-msgid "opening progress note editor"
+#, python-format
+msgid "Failed to  delist patient from %s"
 msgstr ""
 
-msgid "Cannot save all editors. Some were kept open."
+msgid "Missing GNUmed module"
 msgstr ""
 
-msgid "new problem"
+#, python-format
+msgid ""
+"GNUmed detected that parts of it are not\n"
+"properly installed. The following message\n"
+"names the missing part:\n"
+"\n"
+" \"%s\"\n"
+"\n"
+"Please make sure to get the missing\n"
+"parts installed. Otherwise some of the\n"
+"functionality will not be accessible."
 msgstr ""
 
+#, fuzzy, python-format
 msgid ""
-"Are you sure you really want to\n"
-"discard this progress note ?\n"
-msgstr ""
+"\n"
+" Source: %s"
+msgstr "   Dok: %s"
 
-msgid "Discarding progress note"
-msgstr ""
+#, fuzzy, python-format
+msgid ""
+"\n"
+" Code: %s"
+msgstr "   Dok: %s"
 
-msgid "There are unsaved progress notes !\n"
+#, python-format
+msgid ""
+"\n"
+" Details (first 250 characters):\n"
+"%s\n"
+"%s\n"
+"%s"
 msgstr ""
 
-msgid "Unsaved progress notes"
+msgid "Access violation"
 msgstr ""
 
 #, python-format
-msgid "Synopsis (%s)"
-msgstr ""
-
 msgid ""
-"Enter a short working name for this new problem\n"
-"(which will become a new, unassociated episode):\n"
+"You do not have access to this part of GNUmed.\n"
+"\n"
+"%s"
 msgstr ""
 
-#, python-format
+#, fuzzy
+msgid "Lost connection"
+msgstr "Vaksinasjon"
+
 msgid ""
-"Enter a short working name for this new\n"
-"episode under the existing health issue\n"
+"Since you were last working in GNUmed,\n"
+"your database connection timed out.\n"
 "\n"
-"\"%s\":\n"
+"This GNUmed session is now expired.\n"
+"\n"
+"You will have to close this client and\n"
+"restart a new GNUmed session."
 msgstr ""
 
-msgid "Creating problem (episode) to save notelet under ..."
+msgid ""
+"Please enter a short note on what you\n"
+"were about to do in GNUmed:"
 msgstr ""
 
-msgid "Cannot save a new problem without a name."
+msgid "Sending bug report"
 msgstr ""
 
-msgid "saving progress note"
+msgid ""
+"Edit the list of email addresses to send the\n"
+"bug report to (separate addresses by spaces).\n"
+"\n"
+"Note that <gnumed-bugs at gnu.org> refers to\n"
+"the public (!) GNUmed bugs mailing list."
 msgstr ""
 
 #, python-format
 msgid ""
-"The new episode:\n"
+"Your bug report will be sent to:\n"
 "\n"
-" \"%s\"\n"
+"%s\n"
 "\n"
-"will remain unassociated despite the editor\n"
-"having been invoked from the health issue:\n"
+"Make sure you have reviewed the log file for potentially\n"
+"sensitive information before sending out the bug report.\n"
 "\n"
-" \"%s\""
+"Note that emailing the report may take a while depending\n"
+"on the speed of your internet connection.\n"
 msgstr ""
 
-msgid "You need to actually set an editor."
+msgid "Yes, send the bug report."
 msgstr ""
 
-#, python-format
-msgid "The command [%s] is not found."
+msgid "No, do not send the bug report."
+msgstr ""
+
+msgid "include log file in bug report"
 msgstr ""
 
-#, python-format
 msgid ""
-"Enter the shell command with which to start\n"
-"the image editor for visual progress notes.\n"
+"The database you are connected to is marked as\n"
+"\"in-production with controlled access\".\n"
 "\n"
-"Any \"%(img)s\" included with the arguments\n"
-"will be replaced by the file name of the\n"
-"note template."
+"You indicated that you want to include the log\n"
+"file in your bug report. While this is often\n"
+"useful for debugging the log file might contain\n"
+"bits of patient data which must not be sent out\n"
+"without de-identification.\n"
+"\n"
+"Please confirm that you want to include the log !"
 msgstr ""
 
-msgid "Choose file to use as template for new visual progress note"
+msgid "<not supplied>"
 msgstr ""
 
-msgid "Visual progress note source"
+msgid "Bug report has been emailed."
 msgstr ""
 
-msgid "From which source do you want to pick the image template ?"
+msgid "Bug report COULD NOT be emailed."
 msgstr ""
 
-msgid "Database"
+msgid "Underweight"
 msgstr ""
 
-msgid "List of templates in the database."
+msgid "63< Normal >79"
 msgstr ""
 
-msgid "Files in the filesystem."
+msgid "63 - Normal - 79"
 msgstr ""
 
-msgid "Device"
+msgid "Overweight"
 msgstr ""
 
-msgid "Image capture devices (scanners, cameras, etc)"
+msgid "Obese"
 msgstr ""
 
-#, python-format
-msgid "Cannot export visual progress note template for [%s]."
+msgid "Current height/mass"
 msgstr ""
 
-msgid "Cannot export visual progress note to file."
+msgid "Height (cm)"
 msgstr ""
 
-msgid "Editor for visual progress note not configured."
+msgid "Mass (kg)"
 msgstr ""
 
-#, python-format
-msgid ""
-"There was a problem with running the editor\n"
-"for visual progress notes.\n"
-"\n"
-" [%s]\n"
-"\n"
+msgid "Adjusted Values"
 msgstr ""
 
-msgid "Editing visual progress note"
+msgid "Goal mass"
 msgstr ""
 
-#, python-format
-msgid ""
-"There was a problem reading the visual\n"
-"progress note from the file:\n"
-"\n"
-" [%s]\n"
-"\n"
+msgid "kg to lose"
 msgstr ""
 
-msgid "Saving visual progress note"
+msgid "BMI Calculator"
 msgstr ""
 
-msgid ""
-"You either created a visual progress note from a template\n"
-"in the database (rather than from a file on disk) or you\n"
-"edited an existing visual progress note.\n"
-"\n"
-"The template/original was not modified at all, however.\n"
-"\n"
-"Do you still want to save the unmodified image as a\n"
-"visual progress note into the EMR of the patient ?\n"
+msgid "&Reset"
 msgstr ""
 
-msgid "visual progress notes"
+msgid "Select a healthcare provider."
 msgstr ""
 
-#, python-format
-msgid "Created: %s"
+msgid "Public (no clinical or demographic access)"
 msgstr ""
 
-msgid "Problem list"
+msgid "Staff (demographic access only)"
 msgstr ""
 
-msgid "Saving SOAP note"
+msgid "staff (clerical)"
 msgstr ""
 
-msgid "Do you want to save the SOAP note ?"
+msgid "full clinical access"
 msgstr ""
 
-#, python-format
-msgid "&Filter by problem %s%s%s"
+msgid "DB account"
 msgstr ""
 
-msgid "Cannot save SimpleNotes SOAP note."
+msgid "can login"
 msgstr ""
 
-#, python-format
-msgid "Progress note: %s%s"
+msgid "can not login"
 msgstr ""
 
-msgid "Please enter a name for the new problem:"
+msgid "Activating GNUmed user."
 msgstr ""
 
-msgid "Adding a problem"
+msgid "Deactivating GNUmed user."
 msgstr ""
 
-msgid "Cannot delete problem. There is still clinical data recorded for it."
+msgid "Removing GNUmed user."
 msgstr ""
 
-#, python-format
-msgid "GNUmed: configuring [%s] (%s plugins)"
+msgid "Removing GNUmed user"
 msgstr ""
 
-msgid "loading list of plugins                               "
+msgid "Modifying GNUmed user."
 msgstr ""
 
-msgid "failed"
+msgid "Failed to save changes to GNUmed database user."
 msgstr ""
 
-msgid "success"
+msgid "Modifying GNUmed user"
 msgstr ""
 
 #, python-format
-msgid ""
-"previous: %s (%s)\n"
-"current (%s/%s): %s"
+msgid "Failed to set role [%s] for GNUmed database user."
 msgstr ""
 
 #, python-format
-msgid "Cannot switch to [%s]: no patient selected"
+msgid ""
+"\n"
+"  %s \"%s\" %s\n"
+"  born: %s"
 msgstr ""
 
-msgid "Pick a date ..."
+msgid ""
+"Password entries do not match. Please type in the passwords again to rule "
+"out typos."
 msgstr ""
 
-msgid "<ALT-C/K>: pick from (c/k)alendar"
+msgid "Adding GNUmed user"
 msgstr ""
 
-msgid "Cannot interpret input as timestamp."
+msgid ""
+"Are you positively sure you want to create\n"
+"a user with an empty password ?\n"
+"\n"
+"Think about the record access implications !"
 msgstr ""
 
-msgid "No vaccines were chosen"
+msgid "Enlisting person as user."
 msgstr ""
 
-#, python-format
-msgid "Combination of indications , %s , not found in any vaccine"
+msgid "Encrypt"
 msgstr ""
 
-msgid "Sequence"
+msgid "Decrypt"
 msgstr ""
 
-msgid "Batch"
+msgid "Set pass phrase"
 msgstr ""
 
-msgid "Vaccinator"
+msgid "This is not correctly encrypted text!"
 msgstr ""
 
-msgid ""
-"Vaccinations by Recommender (X = patient on regime, O = patient not on "
-"regime) "
+msgid "Please enter your pass phrase:"
 msgstr ""
 
-msgid "enrolled regime vaccinations not yet given"
+msgid "Pass phrase expired"
 msgstr ""
 
-msgid "Proceed with "
+msgid ""
+"\n"
+"Conditions preventable by vaccination as currently known to GNUmed.\n"
 msgstr ""
 
-#, python-format
-msgid "Failed to enrol patient in %s"
+msgid "Showing vaccination preventable conditions."
 msgstr ""
 
-#, python-format
-msgid "Failed to  delist patient from %s"
+msgid "ATCs: single-condition vaccines"
 msgstr ""
 
-msgid "Missing GNUmed module"
+msgid "ATCs: multi-condition vaccines"
 msgstr ""
 
-#, python-format
-msgid ""
-"GNUmed detected that parts of it are not\n"
-"properly installed. The following message\n"
-"names the missing part:\n"
-"\n"
-" \"%s\"\n"
-"\n"
-"Please make sure to get the missing\n"
-"parts installed. Otherwise some of the\n"
-"functionality will not be accessible."
+msgid "Pick the relevant indications."
 msgstr ""
 
-#, fuzzy, python-format
-msgid ""
-"\n"
-" Source: %s"
-msgstr "   Dok: %s"
-
-#, fuzzy, python-format
-msgid ""
-"\n"
-" Code: %s"
-msgstr "   Dok: %s"
+#, fuzzy
+msgid "Known indications"
+msgstr "Vaksinasjon"
 
-#, python-format
-msgid ""
-"\n"
-" Details (first 250 characters):\n"
-"%s\n"
-"%s\n"
-"%s"
+msgid "Adding new vaccine"
 msgstr ""
 
-msgid "Access violation"
+msgid "Editing vaccine"
 msgstr ""
 
 #, python-format
 msgid ""
-"You do not have access to this part of GNUmed.\n"
+"Cannot delete vaccine\n"
 "\n"
-"%s"
+" %s - %s (#%s)\n"
+"\n"
+"It is probably documented in a vaccination."
 msgstr ""
 
-#, fuzzy
-msgid "Lost connection"
-msgstr "Vaksinasjon"
+msgid "Deleting vaccine"
+msgstr ""
+
+msgid "fake"
+msgstr ""
 
 msgid ""
-"Since you were last working in GNUmed,\n"
-"your database connection timed out.\n"
-"\n"
-"This GNUmed session is now expired.\n"
 "\n"
-"You will have to close this client and\n"
-"restart a new GNUmed session."
+"The vaccines currently known to GNUmed.\n"
 msgstr ""
 
-msgid ""
-"Please enter a short note on what you\n"
-"were about to do in GNUmed:"
+msgid "Showing vaccines."
 msgstr ""
 
-msgid "Sending bug report"
+msgid "Enter or select the batch/lot number of the vaccine used."
 msgstr ""
 
-msgid ""
-"Edit the list of email addresses to send the\n"
-"bug report to (separate addresses by spaces).\n"
-"\n"
-"Note that <gnumed-bugs at gnu.org> refers to\n"
-"the public (!) GNUmed bugs mailing list."
+msgid "Saving vaccine"
 msgstr ""
 
 #, python-format
 msgid ""
-"Your bug report will be sent to:\n"
-"\n"
-"%s\n"
-"\n"
-"Make sure you have reviewed the log file for potentially\n"
-"sensitive information before sending out the bug report.\n"
-"\n"
-"Note that emailing the report may take a while depending\n"
-"on the speed of your internet connection.\n"
-msgstr ""
-
-msgid "Yes, send the bug report."
-msgstr ""
-
-msgid "No, do not send the bug report."
-msgstr ""
-
-msgid "include log file in bug report"
-msgstr ""
-
-msgid ""
-"The database you are connected to is marked as\n"
-"\"in-production with controlled access\".\n"
-"\n"
-"You indicated that you want to include the log\n"
-"file in your bug report. While this is often\n"
-"useful for debugging the log file might contain\n"
-"bits of patient data which must not be sent out\n"
-"without de-identification.\n"
-"\n"
-"Please confirm that you want to include the log !"
-msgstr ""
-
-msgid "<not supplied>"
-msgstr ""
-
-msgid "Bug report has been emailed."
-msgstr ""
-
-msgid "Bug report COULD NOT be emailed."
-msgstr ""
-
-msgid "Underweight"
-msgstr ""
-
-msgid "63< Normal >79"
-msgstr ""
-
-msgid "63 - Normal - 79"
-msgstr ""
-
-msgid "Overweight"
-msgstr ""
-
-msgid "Obese"
-msgstr ""
-
-msgid "Current height/mass"
-msgstr ""
-
-msgid "Height (cm)"
-msgstr ""
-
-msgid "Mass (kg)"
-msgstr ""
-
-msgid "Adjusted Values"
-msgstr ""
-
-msgid "Goal mass"
-msgstr ""
-
-msgid "kg to lose"
-msgstr ""
-
-msgid "BMI Calculator"
-msgstr ""
-
-msgid "&Reset"
-msgstr ""
-
-msgid "Select a healthcare provider."
-msgstr ""
-
-msgid "Public (no clinical or demographic access)"
-msgstr ""
-
-msgid "Staff (demographic access only)"
-msgstr ""
-
-msgid "staff (clerical)"
-msgstr ""
-
-msgid "full clinical access"
-msgstr ""
-
-msgid "DB account"
-msgstr ""
-
-msgid "can login"
-msgstr ""
-
-msgid "can not login"
-msgstr ""
-
-msgid "Activating GNUmed user."
-msgstr ""
-
-msgid "Deactivating GNUmed user."
-msgstr ""
-
-msgid "Removing GNUmed user."
-msgstr ""
-
-msgid "Removing GNUmed user"
-msgstr ""
-
-msgid "Modifying GNUmed user."
-msgstr ""
-
-msgid "Failed to save changes to GNUmed database user."
-msgstr ""
-
-msgid "Modifying GNUmed user"
-msgstr ""
-
-#, python-format
-msgid "Failed to set role [%s] for GNUmed database user."
-msgstr ""
-
-#, python-format
-msgid ""
-"\n"
-"  %s \"%s\" %s\n"
-"  born: %s"
-msgstr ""
-
-msgid ""
-"Password entries do not match. Please type in the passwords again to rule "
-"out typos."
-msgstr ""
-
-msgid "Adding GNUmed user"
-msgstr ""
-
-msgid ""
-"Are you positively sure you want to create\n"
-"a user with an empty password ?\n"
-"\n"
-"Think about the record access implications !"
-msgstr ""
-
-msgid "Enlisting person as user."
-msgstr ""
-
-msgid "Encrypt"
-msgstr ""
-
-msgid "Decrypt"
-msgstr ""
-
-msgid "Set pass phrase"
-msgstr ""
-
-msgid "This is not correctly encrypted text!"
-msgstr ""
-
-msgid "Please enter your pass phrase:"
-msgstr ""
-
-msgid "Pass phrase expired"
-msgstr ""
-
-msgid ""
-"\n"
-"Conditions preventable by vaccination as currently known to GNUmed.\n"
-msgstr ""
-
-msgid "Showing vaccination preventable conditions."
-msgstr ""
-
-msgid "ATCs: single-condition vaccines"
-msgstr ""
-
-msgid "ATCs: multi-condition vaccines"
-msgstr ""
-
-msgid "Pick the relevant indications."
-msgstr ""
-
-#, fuzzy
-msgid "Known indications"
-msgstr "Vaksinasjon"
-
-msgid "Adding new vaccine"
-msgstr ""
-
-msgid "Editing vaccine"
-msgstr ""
-
-#, python-format
-msgid ""
-"Cannot delete vaccine\n"
-"\n"
-" %s - %s (#%s)\n"
-"\n"
-"It is probably documented in a vaccination."
-msgstr ""
-
-msgid "Deleting vaccine"
-msgstr ""
-
-msgid "fake"
-msgstr ""
-
-msgid ""
-"\n"
-"The vaccines currently known to GNUmed.\n"
-msgstr ""
-
-msgid "Showing vaccines."
-msgstr ""
-
-msgid "Enter or select the batch/lot number of the vaccine used."
-msgstr ""
-
-msgid "Saving vaccine"
-msgstr ""
-
-#, python-format
-msgid ""
-"This vaccine is already in use:\n"
+"This vaccine is already in use:\n"
 "\n"
 " \"%s\"\n"
 " (%s)\n"
@@ -9397,32 +9651,102 @@ msgid "due now: booster for %s in schedule \"%s\" (%s)"
 msgstr ""
 
 #, python-format
-msgid "Latest: %s ago (%s %s %s %s%s)"
+msgid "Synopsis (%s)"
 msgstr ""
 
-#, python-format
-msgid "%s %s %s %s (%s ago, %s)"
+msgid ""
+"Enter a short working name for this new problem\n"
+"(which will become a new, unassociated episode):\n"
 msgstr ""
 
-#, fuzzy, python-format
-msgid "overdue %s: %s"
-msgstr "Dokumenter: %s"
-
-#, fuzzy, python-format
-msgid "due in %s%s"
-msgstr "Dokumenter: %s"
-
+#, python-format
 msgid ""
-"Do you really want to\n"
-"delete this inbox message ?"
+"Enter a short working name for this new\n"
+"episode under the existing health issue\n"
+"\n"
+"\"%s\":\n"
 msgstr ""
 
-msgid "Deleting inbox message"
+msgid "Creating problem (episode) to save notelet under ..."
 msgstr ""
 
-#, fuzzy
-msgid "Export area: 1 item"
-msgstr "delvis"
+msgid "Cannot save a new problem without a name."
+msgstr ""
+
+msgid "saving progress note"
+msgstr ""
+
+#, python-format
+msgid ""
+"The new episode:\n"
+"\n"
+" \"%s\"\n"
+"\n"
+"will remain unassociated despite the editor\n"
+"having been invoked from the health issue:\n"
+"\n"
+" \"%s\""
+msgstr ""
+
+#, fuzzy
+msgid "Adding substance abuse"
+msgstr "Vaksinasjon"
+
+#, fuzzy
+msgid "Editing substance abuse"
+msgstr "Vaksinasjon"
+
+msgid "Substances abused by the patient:"
+msgstr ""
+
+#, fuzzy
+msgid "Showing abused substances."
+msgstr "Vaksinasjon"
+
+msgid "Intake"
+msgstr ""
+
+msgid "nicotine"
+msgstr ""
+
+#, fuzzy
+msgid "unit"
+msgstr "har allergier"
+
+#, fuzzy, python-format
+msgid "Latest: %s ago (%s %s%s%s%s)"
+msgstr "Pasient: %s (%s), Nr: %s\n"
+
+#, fuzzy, python-format
+msgid "%s %s%s%s (%s ago, %s)"
+msgstr " Status: %s, %s"
+
+#, fuzzy, python-format
+msgid "overdue %s: %s"
+msgstr "Dokumenter: %s"
+
+#, fuzzy, python-format
+msgid "due in %s%s"
+msgstr "Dokumenter: %s"
+
+msgid "suppr'd:"
+msgstr ""
+
+#, fuzzy
+msgid "Suppressed hints:\n"
+msgstr "   Dok: %s"
+
+msgid ""
+"Do you really want to\n"
+"delete this inbox message ?"
+msgstr ""
+
+msgid "Deleting inbox message"
+msgstr ""
+
+#, fuzzy
+msgid "Export area: 1 item"
+msgstr "delvis"
 
 #, fuzzy, python-format
 msgid "Export area: %s items"
@@ -9462,10 +9786,17 @@ msgid ""
 msgstr ""
 
 #, fuzzy, python-format
-msgid "%s Vacc: %s"
+msgid "%s Vacc: %s (latest of %s)"
 msgstr " Status: %s, %s"
 
 #, fuzzy, python-format
+msgid "Hx of addiction: %s"
+msgstr "Dokumenter: %s"
+
+msgid "active substance abuse"
+msgstr ""
+
+#, fuzzy, python-format
 msgid "%s %s %s%s"
 msgstr " Status: %s, %s"
 
@@ -9639,6 +9970,103 @@ msgid ""
 "You will have to add it via the Demographics plugin.\n"
 msgstr ""
 
+msgid "You need to actually set an editor."
+msgstr ""
+
+#, python-format
+msgid "The command [%s] is not found."
+msgstr ""
+
+#, python-format
+msgid ""
+"Enter the shell command with which to start\n"
+"the image editor for visual progress notes.\n"
+"\n"
+"Any \"%(img)s\" included with the arguments\n"
+"will be replaced by the file name of the\n"
+"note template."
+msgstr ""
+
+msgid "Choose file to use as template for new visual progress note"
+msgstr ""
+
+msgid "Visual progress note source"
+msgstr ""
+
+msgid "From which source do you want to pick the image template ?"
+msgstr ""
+
+msgid "Database"
+msgstr ""
+
+msgid "List of templates in the database."
+msgstr ""
+
+msgid "Files in the filesystem."
+msgstr ""
+
+msgid "Device"
+msgstr ""
+
+msgid "Image capture devices (scanners, cameras, etc)"
+msgstr ""
+
+#, python-format
+msgid "Cannot export visual progress note template for [%s]."
+msgstr ""
+
+msgid "Cannot export visual progress note to file."
+msgstr ""
+
+msgid "Editor for visual progress note not configured."
+msgstr ""
+
+#, python-format
+msgid ""
+"There was a problem with running the editor\n"
+"for visual progress notes.\n"
+"\n"
+" [%s]\n"
+"\n"
+msgstr ""
+
+msgid "Editing visual progress note"
+msgstr ""
+
+#, python-format
+msgid ""
+"There was a problem reading the visual\n"
+"progress note from the file:\n"
+"\n"
+" [%s]\n"
+"\n"
+msgstr ""
+
+msgid "Saving visual progress note"
+msgstr ""
+
+msgid ""
+"You either created a visual progress note from a template\n"
+"in the database (rather than from a file on disk) or you\n"
+"edited an existing visual progress note.\n"
+"\n"
+"The template/original was not modified at all, however.\n"
+"\n"
+"Do you still want to save the unmodified image as a\n"
+"visual progress note into the EMR of the patient ?\n"
+msgstr ""
+
+msgid "visual progress notes"
+msgstr ""
+
+#, fuzzy, python-format
+msgid " [part 1 of %s]"
+msgstr " Status: %s, %s"
+
+#, fuzzy, python-format
+msgid "Created: %s%s"
+msgstr "avsluttet"
+
 msgid "You must select a value from the picklist or type an exact match."
 msgstr ""
 
@@ -9719,7 +10147,8 @@ msgstr ""
 
 #, python-format
 msgid ""
-"%(street)s %(number)s, %(postcode)s %(urb)s, %(l10n_state)s, %(l10n_country)s"
+"%(street)s %(number)s, %(postcode)s %(urb)s, %(l10n_region)s, "
+"%(l10n_country)s"
 msgstr ""
 
 #, python-format
@@ -10319,7 +10748,7 @@ msgstr ""
 msgid ""
 "Cannot save address.\n"
 "\n"
-"Does the state [%s]\n"
+"Does the region [%s]\n"
 "exist in country [%s] ?"
 msgstr ""
 
@@ -10747,7 +11176,7 @@ msgstr "Dokumenter: %s"
 msgid "Reminders for the current patient"
 msgstr ""
 
-msgid "Sent"
+msgid "Generated"
 msgstr ""
 
 msgid "Category - Type"
@@ -10795,9 +11224,6 @@ msgid ""
 "Data: %s"
 msgstr ""
 
-msgid "Inbox Message Actions:"
-msgstr ""
-
 #, fuzzy
 msgid "Activate patient"
 msgstr "aktiv"
@@ -11498,7 +11924,7 @@ msgid ""
 msgstr ""
 
 #, python-format
-msgid "Select branch (of praxis [%s]) which you are logging in from.\n"
+msgid "Select the branch of praxis [%s] which you are logging in from.\n"
 msgstr ""
 
 msgid "Praxis branch selection ..."
@@ -11814,6 +12240,13 @@ msgstr ""
 msgid "List of addresses related to this person."
 msgstr "ukjent allergistatus"
 
+#, fuzzy
+msgid "Map"
+msgstr "Herr"
+
+msgid "Show selected address on map"
+msgstr ""
+
 msgid "Adding new address"
 msgstr ""
 
@@ -12004,9 +12437,90 @@ msgid "generic multi choice dialog"
 msgstr ""
 
 #, fuzzy
-msgid "Search in list"
+msgid "Deleting list items"
+msgstr "Dokumenter:"
+
+#, python-format
+msgid ""
+"You have selected %s list items.\n"
+"\n"
+"Really delete all %s items ?"
+msgstr ""
+
+msgid ""
+"Select the items you want to work on.\n"
+"\n"
+"A discontinuous selection may depend on your holding down a platform-"
+"dependent modifier key (<CTRL>, <ALT>, etc) or key combination (eg. <CTRL-"
+"SHIFT> or <CTRL-ALT>) while clicking."
+msgstr ""
+
+#, fuzzy
+msgid "List Item Actions:"
+msgstr "Vaksinasjon"
+
+msgid "Add (<INS>)"
+msgstr ""
+
+msgid "Delete (<DEL>)"
+msgstr ""
+
+msgid "Find (<CTRL-F>)"
+msgstr ""
+
+#, python-format
+msgid "Find next [%s] (<CTRL-N>)"
+msgstr ""
+
+msgid "Row tooltip"
+msgstr ""
+
+msgid "Row data (formatted as text)"
+msgstr ""
+
+msgid "Row content (as one line)"
+msgstr ""
+
+msgid "Row content (one line per column)"
+msgstr ""
+
+#, python-format
+msgid "Column &%s: \"%s\" [#%s]"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "Column &%s: %s"
+msgstr "Dokumenter: %s"
+
+#, fuzzy
+msgid "&Copy to clipboard..."
+msgstr "Vaksinasjon"
+
+#, fuzzy
+msgid "Append (&+) to clipboard..."
+msgstr "Dokumenter:"
+
+#, python-format
+msgid ""
+"%s list items are selected.\n"
+"\n"
+"Really delete all %s items ?"
+msgstr ""
+
+#, fuzzy
+msgid "Enter the search term:"
 msgstr "Lab resultat"
 
+msgid "List search"
+msgstr ""
+
+#, python-format
+msgid ""
+"Current search term: [[%s]]\n"
+"\n"
+"%s"
+msgstr ""
+
 msgid "Monty the Serpent && the FSF Present"
 msgstr ""
 
@@ -12156,6 +12670,9 @@ msgstr ""
 msgid "Unknown: ?"
 msgstr ""
 
+msgid "The text has been copied into the clipboard."
+msgstr ""
+
 msgid "file2clipboard"
 msgstr ""
 
@@ -12163,36 +12680,71 @@ msgstr ""
 msgid "The file [%s] has been copied into the clipboard."
 msgstr ""
 
-#, python-format
-msgid ""
-"Algorithm: %s\n"
-"\n"
-"Source: %s"
+msgid "programmer forgot to specify error message"
 msgstr ""
 
-#, python-format
 msgid ""
-"Current age of pregnancy (%s):\n"
-" day %s = %s weeks %s days = week %s = month %s\n"
 "\n"
+"\n"
+"Please consult the error log for all the gory details !"
 msgstr ""
 
-msgid "Pregnancy Calculator"
+msgid "generic error message"
 msgstr ""
 
-msgid "LMP"
+msgid "programmer forgot to specify info message"
 msgstr ""
 
-msgid "Click on calendar to enter the last menstrual period date"
+msgid "generic info message"
 msgstr ""
 
-msgid "Gest."
+msgid "programmer forgot to specify warning"
 msgstr ""
 
-msgid "18 Week Ultrasound Scan"
+msgid "generic warning message"
 msgstr ""
 
-msgid "Ultrasound Scan - Revised EDC"
+#, fuzzy
+msgid "Editing EDC"
+msgstr "Vaksinasjon"
+
+#, python-format
+msgid ""
+"Really delete the EDC documented previously ?\n"
+"\n"
+" EDC: %s"
+msgstr ""
+
+#, python-format
+msgid ""
+"Algorithm: %s\n"
+"\n"
+"Source: %s"
+msgstr ""
+
+#, python-format
+msgid ""
+"Current age of pregnancy (%s):\n"
+" day %s = %s weeks %s days = week %s = month %s\n"
+"\n"
+msgstr ""
+
+msgid "Pregnancy Calculator"
+msgstr ""
+
+msgid "LMP"
+msgstr ""
+
+msgid "Click on calendar to enter the last menstrual period date"
+msgstr ""
+
+msgid "Gest."
+msgstr ""
+
+msgid "18 Week Ultrasound Scan"
+msgstr ""
+
+msgid "Ultrasound Scan - Revised EDC"
 msgstr ""
 
 msgid "Scan Date"
@@ -12270,15 +12822,15 @@ msgstr ""
 msgid "Firstname"
 msgstr ""
 
-msgid "Nickname"
-msgstr ""
-
 msgid "DOB"
 msgstr ""
 
 msgid "last visit"
 msgstr ""
 
+msgid "Nickname / Comment"
+msgstr ""
+
 msgid "found via"
 msgstr ""
 
@@ -12457,1222 +13009,976 @@ msgstr ""
 msgid "In case of emergency contact:"
 msgstr ""
 
-msgid ""
-"\n"
-"Please select the default drug data source from the list below.\n"
-"\n"
-"Note that to actually use it you need to have the database installed, too."
+msgid "The preparation (form) of the substance or brand."
 msgstr ""
 
-msgid "Drug data source"
+msgid "A substance with optional strength or a brand."
 msgstr ""
 
-msgid "Configuring default drug data source"
+msgid "The medical aim for consuming this substance."
 msgstr ""
 
-msgid "No default drug database configured."
+msgid "not tolerated:"
 msgstr ""
 
-msgid "There is no default drug database configured."
+msgid "discontinued due to allergy or intolerance"
 msgstr ""
 
-msgid "Jumping to drug database"
+msgid "Documented an allergy"
 msgstr ""
 
 #, python-format
-msgid "Cannot call IFAP via [%s]."
+msgid ""
+"An allergy was documented against the substance:\n"
+"\n"
+"  [%s]\n"
+"\n"
+"This substance was taken with the multi-component brand:\n"
+"\n"
+"  [%s (%s)]\n"
+"\n"
+"Note that ALL components of this brand were discontinued."
 msgstr ""
 
-#, python-format
-msgid "Cannot create IFAP <-> GNUmed transfer file [%s]."
+msgid "disapproved"
 msgstr ""
 
-msgid "Current medication"
+msgid "Substances consumed by the patient:"
 msgstr ""
 
-msgid ""
-"\n"
-"The ATC codes as known to GNUmed.\n"
+msgid "Showing consumable substances."
 msgstr ""
 
-msgid "Showing ATC codes."
+#, fuzzy
+msgid "Application"
+msgstr "Vaksinasjon"
+
+msgid "never"
 msgstr ""
 
-msgid "Choose an ATC import config file"
+#, fuzzy, python-format
+msgid "%s, last confirmed %s\n"
+msgstr "etternavn"
+
+#, fuzzy, python-format
+msgid "Comment (%s): %%s\n"
+msgstr "Dokumenter: %s"
+
+msgid "reaction not recorded"
 msgstr ""
 
-msgid "config files"
+#, fuzzy
+msgid "GFR: unknown"
+msgstr "ukjent reaksjon"
+
+msgid "GFR reported by path lab"
 msgstr ""
 
-msgid "importing ATC reference data"
+#, fuzzy
+msgid "<no components>"
+msgstr "Dokumenter:"
+
+msgid "Adding substance intake entry"
 msgstr ""
 
-msgid "Successfully imported ATC reference data."
+#, python-format
+msgid ""
+"The patient is already taking\n"
+"\n"
+" %s\n"
+"\n"
+"You will want to adjust the schedule\n"
+"rather than document the intake twice."
 msgstr ""
 
-msgid "Importing ATC reference data failed."
+msgid "Input incomplete/invalid for saving as substance intake."
 msgstr ""
 
-msgid "Select an ATC (Anatomical-Therapeutic-Chemical) code."
+#, python-format
+msgid "Discontinued (%s) in the future (now: %s)!"
 msgstr ""
 
-msgid "Cannot delete this substance. It is in use."
+#, python-format
+msgid "Discontinued (%s) before started (%s) !"
+msgstr ""
+
+msgid "Cannot add duplicate of (maybe inactive) substance intake."
 msgstr ""
 
+#, python-format
 msgid ""
 "\n"
-"These are the consumable substances registered with GNUmed.\n"
+"[%s]\n"
+"\n"
+"It may be prudent to edit (before deletion) the details\n"
+"of this substance intake entry so as to leave behind\n"
+"some indication of why it was deleted.\n"
 msgstr ""
 
-msgid "Showing consumable substances."
+msgid "Deleting medication / substance intake"
 msgstr ""
 
-msgid "Import"
+msgid "Allow editing of substance intake entry before deletion."
 msgstr ""
 
-msgid "Import consumable substances from a drug database."
+msgid "Delete immediately without editing first."
 msgstr ""
 
-msgid "Cannot edit this substance. It is in use."
+msgid "&Cancel"
 msgstr ""
 
-msgid "Adding new consumable substance"
+msgid "Abort. Do not delete or edit substance intake entry."
 msgstr ""
 
-msgid "Editing consumable substance"
+msgid "Now delete substance intake entry ?"
 msgstr ""
 
-msgid "Cannot save consumable substance. Missing essential input."
+msgid "Adding medication/non-medication substance intake"
 msgstr ""
 
-#, python-format
-msgid "Cannot save consumable substance. %s"
+msgid "Editing medication/non-medication substance intake"
 msgstr ""
 
-msgid "Cannot remove this component from the drug. It is in use."
+msgid "Document an allergy against this substance."
 msgstr ""
 
-msgid ""
-"\n"
-"These are the components in the drug brands known to GNUmed.\n"
+msgid "No medication list template configured."
 msgstr ""
 
-msgid "Showing drug brand components."
+msgid "There is no medication list template configured."
 msgstr ""
 
-msgid "Adding new drug component"
+msgid "Problem loading medication list template."
 msgstr ""
 
-msgid "Editing drug component"
+#, python-format
+msgid "Cannot load medication list template [%s - %s]"
 msgstr ""
 
-msgid "Cannot edit drug component. It is in use."
+msgid "generated medication list document"
 msgstr ""
 
-msgid "Cannot save drug component. Invalid or missing essential input."
+msgid "Select the default prescription template:"
 msgstr ""
 
-msgid "A drug component with optional strength."
+msgid "No prescription template configured."
 msgstr ""
 
-msgid "The preparation (form) of the substance or brand."
+msgid "There is no prescription template configured."
 msgstr ""
 
-msgid "The substance with optional strength."
-msgstr ""
+#, fuzzy
+msgid "Printing prescription"
+msgstr "Vaksinasjon"
 
-msgid "Managing components of a drug"
+msgid "Problem loading prescription template."
 msgstr ""
 
 #, python-format
+msgid "Cannot load prescription template [%s - %s]"
+msgstr ""
+
+#, fuzzy
+msgid "generated prescription"
+msgstr "Vaksinasjon"
+
 msgid ""
-"Cannot manage the components of the branded drug product\n"
-"\n"
-" \"%s\" (%s)\n"
+"These brands have been prescribed but are not listed\n"
+"in the current medication list of this patient.\n"
 "\n"
-"because it is currently taken by patients.\n"
+"Please select those you want added to the medication list."
 msgstr ""
 
-msgid "Pick the substances which are components of this drug."
+msgid "Newly prescribed drugs"
 msgstr ""
 
-msgid "Components of drug"
+msgid "Add to medication list"
+msgstr ""
+
+msgid "Timeframe"
 msgstr ""
 
 #, python-format
+msgid "%s <fake>"
+msgstr ""
+
+msgid "Cannot edit more than one substance at once."
+msgstr ""
+
+msgid "Cannot delete more than one substance at once."
+msgstr ""
+
+msgid "Cannot create allergy from more than one substance at once."
+msgstr ""
+
 msgid ""
-"Adjust the components of \"%s\"\n"
 "\n"
-"The drug must contain at least one component. Any given\n"
-"substance can only be included once per drug."
+"Select the measurements panel to show in the medications plugin.\n"
 msgstr ""
 
-msgid "Managing components of a drug ..."
+#, fuzzy
+msgid "Measurements panel"
+msgstr "Dokumenter:"
+
+msgid "Configuring medications plugin measurements panel"
 msgstr ""
 
-msgid "not in use"
+msgid "EDC (!?!):"
 msgstr ""
 
+#, fuzzy
+msgid "EDC:"
+msgstr "   Dok: %s"
+
 #, fuzzy, python-format
-msgid "ATC: %s\n"
+msgid "%.1f (%s ago)"
 msgstr "   Dok: %s"
 
-msgid "Editing medication"
+msgid "eGFR:"
 msgstr ""
 
 #, python-format
-msgid ""
-"Cannot edit the medication\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is a vaccine. Please edit it\n"
-"from the vaccine management section !\n"
+msgid "eGFR: %.1f (%s)"
 msgstr ""
 
-msgid "Deleting medication"
+msgid "Enter vaccination given"
+msgstr ""
+
+msgid "Unsaved progress note"
 msgstr ""
 
-#, python-format
 msgid ""
-"Cannot delete the medication\n"
+"This progress note has not been saved yet.\n"
 "\n"
-" \"%s\" (%s)\n"
+"Do you want to save it or discard it ?\n"
 "\n"
-"because it is a vaccine. Please delete it\n"
-"from the vaccine management section !\n"
 msgstr ""
 
-msgid ""
-"\n"
-"These are the drug brands known to GNUmed.\n"
+msgid "Save this progress note"
 msgstr ""
 
-msgid "Showing branded drugs."
+msgid "Discard this progress note"
 msgstr ""
 
-msgid "Import substances and brands from a drug database."
+msgid "Save all remaining unsaved progress notes"
 msgstr ""
 
-msgid "Editing drug"
-msgstr ""
-
-#, python-format
 msgid ""
-"Cannot edit the branded drug product\n"
-"\n"
-" \"%s\" (%s)\n"
+"Add editor for a new unassociated progress note.\n"
 "\n"
-"because it is currently taken by patients.\n"
+"There is a configuration option whether or not to\n"
+"allow several new unassociated progress notes at once."
 msgstr ""
 
-msgid "Adding new drug brand"
+msgid "Save progress note into medical record and close this editor."
 msgstr ""
 
-msgid "Editing drug brand"
+msgid "Clear this progress note editor."
 msgstr ""
 
-msgid "Manage consumable substances"
+msgid ""
+"Discard progress note and close this editor. You will loose any data already "
+"typed into this editor !"
 msgstr ""
 
-msgid "Cannot edit drug brand. It is in use."
+msgid "Problem saving progress note: duplicate information ?"
 msgstr ""
 
-msgid "Checking brand data"
+msgid "label missing"
 msgstr ""
 
-#, python-format
-msgid ""
-"The brand information you entered:\n"
-"\n"
-" [%s %s]\n"
-"\n"
-"already exists as a drug product."
+msgid "soap cat missing"
 msgstr ""
 
-msgid ""
-"You have not selected any substances\n"
-"as drug components.\n"
-"\n"
-"Without components you will not be able to\n"
-"use this drug for documenting patient care.\n"
-"\n"
-"Are you sure you want to save\n"
-"it without components ?"
+msgid "Enter a descriptive name for this new problem:"
 msgstr ""
 
-msgid "Cannot save branded drug. Invalid or missing essential input."
+msgid "Creating a problem (episode) to save the notelet under ..."
 msgstr ""
 
-msgid ""
-"The brand name of the drug.\n"
-"\n"
-"Note: a brand name will need to be linked to\n"
-"one or more components before it can be used,\n"
-"except in the case of fake (generic) vaccines."
+msgid "Error saving progress note."
 msgstr ""
 
-msgid "The medical aim for consuming this substance."
+msgid "Error saving embedded data."
 msgstr ""
 
-msgid "not tolerated:"
+msgid "Visit Purpose"
 msgstr ""
 
-msgid "discontinued due to allergy or intolerance"
+msgid "History Taken"
 msgstr ""
 
-msgid "Documented an allergy"
+msgid "Findings"
 msgstr ""
 
-#, python-format
-msgid ""
-"An allergy was documented against the substance:\n"
-"\n"
-"  [%s]\n"
-"\n"
-"This substance was taken with the multi-component brand:\n"
-"\n"
-"  [%s (%s)]\n"
-"\n"
-"Note that ALL components of this brand were discontinued."
+msgid "save"
 msgstr ""
 
-msgid "disapproved"
+msgid "save clinical note in EMR"
 msgstr ""
 
-msgid "Substances consumed by the patient:"
+msgid "discard"
 msgstr ""
 
-msgid "Intake"
+msgid "discard clinical note"
 msgstr ""
 
-#, fuzzy
-msgid "Application"
-msgstr "Vaksinasjon"
+msgid "clinical progress note"
+msgstr ""
 
-msgid "never"
+msgid "Select files to add to the export area"
 msgstr ""
 
-#, fuzzy, python-format
-msgid "%s, last confirmed %s\n"
-msgstr "etternavn"
+#, fuzzy
+msgid "Adding files to export area"
+msgstr "Vaksinasjon"
 
-#, fuzzy, python-format
-msgid "Comment (%s): %%s\n"
-msgstr "Dokumenter: %s"
+#, python-format
+msgid ""
+"Cannot add (some of) the following files to the export area:\n"
+"%s "
+msgstr ""
 
-msgid "reaction not recorded"
+msgid "Select the documents to be put into the export area:"
 msgstr ""
 
-#, fuzzy
-msgid "GFR: unknown"
-msgstr "ukjent reaksjon"
+msgid "clipboard"
+msgstr ""
 
-msgid "GFR reported by path lab"
+msgid "Loading clipboard item (saved to file) into export area"
 msgstr ""
 
-#, python-format
+#, fuzzy, python-format
 msgid ""
-"The patient is already taking\n"
-"\n"
-" %s\n"
-"\n"
-"You will want to adjust the schedule\n"
-"rather than document the intake twice."
-msgstr ""
+"Cannot add the following clip to the export area:\n"
+"%s "
+msgstr "aktiv"
 
-msgid "Adding substance intake entry"
+msgid "scan"
 msgstr ""
 
-msgid "Input incomplete/invalid for saving as substance intake."
+msgid "Scanning files into export area"
 msgstr ""
 
 #, python-format
-msgid "Discontinued (%s) in the future (now: %s)!"
+msgid ""
+"Cannot add (some of) the following scans to the export area:\n"
+"%s "
 msgstr ""
 
+#, fuzzy
+msgid "Deleting document from export area."
+msgstr "Dokumenter:"
+
 #, python-format
-msgid "Discontinued (%s) before started (%s) !"
+msgid ""
+"Really remove %s selected document(s)\n"
+"from the patient export area ?"
 msgstr ""
 
-msgid "Cannot add duplicate of (maybe inactive) substance intake."
+#, fuzzy
+msgid "Error printing documents."
+msgstr "Vaksinasjon"
+
+#, fuzzy, python-format
+msgid "Printing [%s]"
+msgstr "avsluttet"
+
+#, fuzzy, python-format
+msgid ""
+"Printed:\n"
+" - %s"
+msgstr "   Dok: %s"
+
+msgid "Select the directory into which to export the documents."
 msgstr ""
 
+#, fuzzy
+msgid "Saving export area documents"
+msgstr "Dokumenter:"
+
 #, python-format
 msgid ""
+"The chosen export directory\n"
 "\n"
-"[%s]\n"
+" [%s]\n"
 "\n"
-"It may be prudent to edit (before deletion) the details\n"
-"of this substance intake entry so as to leave behind\n"
-"some indication of why it was deleted.\n"
+"already contains files. Do you still want to save the\n"
+"selected export area documents into that directory ?\n"
+"\n"
+"(this is useful for including the external documents\n"
+" already stored in or below this directory)\n"
+"\n"
+"[NO] will create a subdirectory for you and use that."
 msgstr ""
 
-msgid "Deleting medication / substance intake"
+msgid ""
+"Create descriptive metadata files\n"
+"and save them alongside the\n"
+"selected export area documents ?"
 msgstr ""
 
-msgid "Allow editing of substance intake entry before deletion."
-msgstr ""
+#, fuzzy, python-format
+msgid ""
+"Saved to [%s]:\n"
+" - %s"
+msgstr "   Dok: %s"
 
-msgid "Delete immediately without editing first."
+#, python-format
+msgid ""
+"Saved documents into directory:\n"
+"\n"
+" %s"
 msgstr ""
 
-msgid "&Cancel"
+msgid "If you wish to include an existing directory select it here:"
 msgstr ""
 
-msgid "Abort. Do not delete or edit substance intake entry."
-msgstr ""
+#, fuzzy
+msgid "Error burning documents to CD/DVD."
+msgstr "Vaksinasjon"
 
-msgid "Now delete substance intake entry ?"
-msgstr ""
+#, fuzzy
+msgid "Burning documents"
+msgstr "Dokumenter:"
 
-msgid "Adding medication/non-medication substance intake"
+#, python-format
+msgid ""
+"Burned onto CD/DVD:\n"
+" - %s"
 msgstr ""
 
-msgid "Editing medication/non-medication substance intake"
-msgstr ""
+#, fuzzy
+msgid "Error mailing documents."
+msgstr "Dokumenter:"
 
-msgid "Document an allergy against this substance."
-msgstr ""
+#, fuzzy
+msgid "Mailing documents"
+msgstr "Dokumenter:"
 
-msgid "No medication list template configured."
-msgstr ""
+#, fuzzy, python-format
+msgid ""
+"Mailed:\n"
+" - %s"
+msgstr "   Dok: %s"
 
-msgid "There is no medication list template configured."
+msgid ""
+"Please enter the fax number here !\n"
+"\n"
+"It can be left empty if the external\n"
+"fax software knows how to get the number."
 msgstr ""
 
-msgid "Problem loading medication list template."
-msgstr ""
+#, fuzzy
+msgid "Faxing documents"
+msgstr "Dokumenter:"
 
 #, python-format
-msgid "Cannot load medication list template [%s - %s]"
+msgid ""
+"Error faxing documents to\n"
+"\n"
+"  %s"
 msgstr ""
 
-msgid "generated medication list document"
-msgstr ""
+#, fuzzy, python-format
+msgid ""
+"Faxed to [%s]:\n"
+" - %s"
+msgstr " Status: %s, %s"
 
-msgid "Select the default prescription template:"
+msgid "<gm-mail_doc(.bat) not found>"
 msgstr ""
 
-msgid "No prescription template configured."
+msgid "<gm-fax_doc(.bat) not found>"
 msgstr ""
 
-msgid "There is no prescription template configured."
+msgid "<gm-burn_doc(.bat) not found>"
 msgstr ""
 
-#, fuzzy
-msgid "Printing prescription"
-msgstr "Vaksinasjon"
-
-msgid "Problem loading prescription template."
+msgid "Cannot accept new documents. No active patient."
 msgstr ""
 
 #, python-format
-msgid "Cannot load prescription template [%s - %s]"
+msgid "Extracting files from folder [%s] ..."
+msgstr ""
+
+msgid "Drag&Drop"
 msgstr ""
 
 #, fuzzy
-msgid "generated prescription"
-msgstr "Vaksinasjon"
+msgid "Created"
+msgstr "avsluttet"
 
+#, python-format
 msgid ""
-"These brands have been prescribed but are not listed\n"
-"in the current medication list of this patient.\n"
+"Error exporting form template\n"
 "\n"
-"Please select those you want added to the medication list."
+" \"%s\" (%s)"
 msgstr ""
 
-msgid "Newly prescribed drugs"
+msgid "Letter template export"
 msgstr ""
 
-msgid "Add to medication list"
+msgid ""
+"Cannot connect to OpenOffice.\n"
+"\n"
+"The UNO bridge module for Python\n"
+"is not installed."
 msgstr ""
 
-msgid "Duration / Until"
+msgid "Letter writer"
 msgstr ""
 
 #, python-format
-msgid "%s <fake>"
-msgstr ""
-
-msgid "Cannot edit more than one substance at once."
+msgid ""
+"Cannot connect to OpenOffice.\n"
+"\n"
+"You may want to increase the option\n"
+"\n"
+" <%s>"
 msgstr ""
 
-msgid "Cannot delete more than one substance at once."
+msgid "OOo startup time"
 msgstr ""
 
-msgid "Cannot create allergy from more than one substance at once."
+msgid "No document template selected."
 msgstr ""
 
-msgid ""
-"\n"
-"Select the measurements panel to show in the medications plugin.\n"
+#, python-format
+msgid "Invalid document template [%s - %s (%s)]"
 msgstr ""
 
 #, fuzzy
-msgid "Measurements panel"
+msgid "Generating document from template"
 msgstr "Dokumenter:"
 
-msgid "Configuring medications plugin measurements panel"
-msgstr ""
-
-msgid "EDC (!?!):"
-msgstr ""
-
 #, fuzzy
-msgid "EDC:"
-msgstr "   Dok: %s"
-
-#, fuzzy, python-format
-msgid "%.1f (%s ago)"
-msgstr "   Dok: %s"
+msgid "Error generating document printout."
+msgstr "Dokumenter:"
 
-msgid "eGFR:"
-msgstr ""
+#, fuzzy
+msgid "Generating document printout"
+msgstr "Dokumenter:"
 
 #, fuzzy, python-format
-msgid "%s%s%s (%s ago)"
+msgid "Printed: %s"
 msgstr "   Dok: %s"
 
-#, python-format
-msgid "eGFR: %.1f (%s)"
-msgstr ""
+#, fuzzy
+msgid "Adding new form template"
+msgstr "Vaksinasjon"
 
-msgid "Enter vaccination given"
-msgstr ""
+#, fuzzy
+msgid "Editing form template"
+msgstr "Vaksinasjon"
 
-msgid "Unsaved progress note"
+msgid "Deleting form template."
 msgstr ""
 
+#, python-format
 msgid ""
-"This progress note has not been saved yet.\n"
+"Are you sure you want to delete\n"
+"the following form template ?\n"
 "\n"
-"Do you want to save it or discard it ?\n"
+" \"%s (%s)\"\n"
 "\n"
+"You can only delete templates which\n"
+"have not yet been used to generate\n"
+"any forms from."
 msgstr ""
 
-msgid "Save this progress note"
+msgid "Select letter or form template."
 msgstr ""
 
-msgid "Discard this progress note"
+msgid "You must select a template file before saving."
 msgstr ""
 
-msgid "Save all remaining unsaved progress notes"
+msgid "You must enter a type for documents created with this template."
 msgstr ""
 
-msgid ""
-"Add editor for a new unassociated progress note.\n"
-"\n"
-"There is a configuration option whether or not to\n"
-"allow several new unassociated progress notes at once."
+msgid "You must enter a type for this template."
 msgstr ""
 
-msgid "Save progress note into medical record and close this editor."
+msgid "You must enter a version for this template."
 msgstr ""
 
-msgid "Clear this progress note editor."
+msgid "Missing short name for template."
 msgstr ""
 
-msgid ""
-"Discard progress note and close this editor. You will loose any data already "
-"typed into this editor !"
+msgid "Missing long name for template."
 msgstr ""
 
-msgid "Problem saving progress note: duplicate information ?"
-msgstr ""
+#, fuzzy, python-format
+msgid "last modified %s by %s"
+msgstr "etternavn"
 
-msgid "label missing"
+msgid "Choose a form template file"
 msgstr ""
 
-msgid "soap cat missing"
+msgid "Enter a filename to save the template to"
 msgstr ""
 
-msgid "Enter a descriptive name for this new problem:"
+msgid "Emergency contact"
 msgstr ""
 
-msgid "Creating a problem (episode) to save the notelet under ..."
+msgid "Primary doctor"
 msgstr ""
 
-msgid "Error saving progress note."
+msgid "in-praxis primary provider"
 msgstr ""
 
-msgid "Error saving embedded data."
-msgstr ""
+#, fuzzy
+msgid "This praxis"
+msgstr "Vaksinasjon"
 
-msgid "Visit Purpose"
-msgstr ""
+#, fuzzy
+msgid "Bill receiver"
+msgstr "Dokumenter:"
 
-msgid "History Taken"
-msgstr ""
+#, fuzzy
+msgid "Receiver"
+msgstr "Dokumenter: %s"
 
-msgid "Findings"
+msgid ""
+"Are you sure you want to delete this\n"
+"description from the document ?\n"
 msgstr ""
 
-msgid "save"
+msgid "Deleting document description"
 msgstr ""
 
-msgid "save clinical note in EMR"
+msgid "Adding document description"
 msgstr ""
 
-msgid "discard"
+msgid "Below you can add a document description.\n"
 msgstr ""
 
-msgid "discard clinical note"
+msgid "Editing document description"
 msgstr ""
 
-msgid "clinical progress note"
+msgid "Below you can edit the document description.\n"
 msgstr ""
 
-msgid "Select files to add to the export area"
+msgid "Select the description you are interested in.\n"
 msgstr ""
 
-#, fuzzy
-msgid "Adding files to export area"
-msgstr "Vaksinasjon"
-
-#, python-format
-msgid ""
-"Cannot add (some of) the following files to the export area:\n"
-"%s "
+msgid "Managing document descriptions"
 msgstr ""
 
-msgid "Select the documents to be put into the export area:"
+msgid "Select the episode under which to file the document ..."
 msgstr ""
 
-msgid "clipboard"
+msgid "Cannot create new document."
 msgstr ""
 
-msgid "Loading clipboard item (saved to file) into export area"
+msgid "saving document"
 msgstr ""
 
-#, fuzzy, python-format
-msgid ""
-"Cannot add the following clip to the export area:\n"
-"%s "
-msgstr "aktiv"
+#, python-format
+msgid "Imported new document from %s."
+msgstr ""
 
-msgid "scan"
+msgid "Successfully saved new document."
 msgstr ""
 
-msgid "Scanning files into export area"
+msgid "Successfully saved the new document."
 msgstr ""
 
 #, python-format
 msgid ""
-"Cannot add (some of) the following scans to the export area:\n"
-"%s "
+"The reference ID for the new document is:\n"
+"\n"
+" <%s>\n"
+"\n"
+"You probably want to write it down on the\n"
+"original documents.\n"
+"\n"
+"If you don't care about the ID you can switch\n"
+"off this message in the GNUmed configuration.\n"
 msgstr ""
 
 #, fuzzy
-msgid "Deleting document from export area."
+msgid "Saving document"
 msgstr "Dokumenter:"
 
 #, python-format
 msgid ""
-"Really remove %s selected document(s)\n"
-"from the patient export area ?"
+"Successfully imported files as document.\n"
+"\n"
+"Do you want to delete imported files from the filesystem ?\n"
+"\n"
+" %s\n"
+"\n"
+"Note that temporary files will be deleted anyway."
 msgstr ""
 
-#, fuzzy
-msgid "Error printing documents."
-msgstr "Vaksinasjon"
-
-#, fuzzy, python-format
-msgid "Printing [%s]"
-msgstr "avsluttet"
+msgid "Removing files"
+msgstr ""
 
-#, fuzzy, python-format
-msgid ""
-"Printed:\n"
-" - %s"
-msgstr "   Dok: %s"
+msgid "Enter a comment on the document."
+msgstr ""
 
-msgid "Select the directory into which to export the documents."
+msgid "User defined"
 msgstr ""
 
-#, fuzzy
-msgid "Saving export area documents"
-msgstr "Dokumenter:"
+msgid "In use"
+msgstr ""
 
 #, python-format
 msgid ""
-"The chosen export directory\n"
-"\n"
+"Cannot delete document type\n"
 " [%s]\n"
-"\n"
-"is not empty. Do you want to use it for saving the\n"
-"export area documents into, nevertheless ?\n"
-"\n"
-"(this can be useful for including external documents)\n"
-"\n"
-"[NO] will create a subdirectory for you and use that."
+"because it is currently in use."
 msgstr ""
 
-#, fuzzy, python-format
-msgid ""
-"Saved to [%s]:\n"
-" - %s"
-msgstr "   Dok: %s"
+msgid "deleting document type"
+msgstr ""
 
 #, python-format
 msgid ""
-"Saved documents into directory:\n"
+"From the list below select the document type you want\n"
+"all documents currently classified as:\n"
 "\n"
-" %s"
+" \"%s\"\n"
+"\n"
+"to be changed to.\n"
+"\n"
+"Be aware that this change will be applied to ALL such documents. If there\n"
+"are many documents to change it can take quite a while.\n"
+"\n"
+"Make sure this is what you want to happen !\n"
 msgstr ""
 
-msgid "If you wish to include an existing directory select it here:"
+msgid "Reassigning document type"
 msgstr ""
 
-#, fuzzy
-msgid "Error burning documents to CD/DVD."
-msgstr "Vaksinasjon"
+msgid "Select the document type."
+msgstr ""
 
-#, fuzzy
-msgid "Burning documents"
-msgstr "Dokumenter:"
+msgid "Cannot create document type without name."
+msgstr ""
 
-#, python-format
-msgid ""
-"Burned onto CD/DVD:\n"
-" - %s"
+msgid "+/-"
 msgstr ""
 
-#, fuzzy
-msgid "Error mailing documents."
-msgstr "Dokumenter:"
-
-#, fuzzy
-msgid "Mailing documents"
-msgstr "Dokumenter:"
-
-#, fuzzy, python-format
-msgid ""
-"Mailed:\n"
-" - %s"
-msgstr "   Dok: %s"
+msgid "!"
+msgstr ""
 
-msgid ""
-"Please enter the fax number here !\n"
-"\n"
-"It can be left empty if the external\n"
-"fax software knows how to get the number."
+msgid "comment"
 msgstr ""
 
-#, fuzzy
-msgid "Faxing documents"
-msgstr "Dokumenter:"
+msgid "(you are the primary reviewer)"
+msgstr ""
 
 #, python-format
-msgid ""
-"Error faxing documents to\n"
-"\n"
-"  %s"
+msgid "(someone else is the intended reviewer: %s)"
 msgstr ""
 
-#, fuzzy, python-format
+#, python-format
 msgid ""
-"Faxed to [%s]:\n"
-" - %s"
-msgstr " Status: %s, %s"
-
-msgid "<gm-mail_doc(.bat) not found>"
+"Cannot create episode\n"
+" [%s]"
 msgstr ""
 
-msgid "<gm-fax_doc(.bat) not found>"
+msgid "Editing document properties"
 msgstr ""
 
-msgid "<gm-burn_doc(.bat) not found>"
+#, python-format
+msgid "Cannot change document type to [%s]."
 msgstr ""
 
-msgid "Cannot accept new documents. No active patient."
+#, python-format
+msgid ""
+"Cannot link the document to episode\n"
+"\n"
+" [%s]"
 msgstr ""
 
-#, python-format
-msgid "Extracting files from folder [%s] ..."
+msgid "Error setting \"reviewed\" status of this document."
 msgstr ""
 
-msgid "Drag&Drop"
+msgid "Error setting responsible clinician for this document."
 msgstr ""
 
-#, fuzzy
-msgid "Created"
-msgstr "avsluttet"
+msgid "Error setting \"reviewed\" status of this part."
+msgstr ""
 
 #, python-format
 msgid ""
-"Error exporting form template\n"
+"Cannot set page number to [%s] because\n"
+"another page with this number exists.\n"
 "\n"
-" \"%s\" (%s)"
-msgstr ""
-
-msgid "Letter template export"
+"Page numbers in use:\n"
+"\n"
+" %s"
 msgstr ""
 
-msgid ""
-"Cannot connect to OpenOffice.\n"
-"\n"
-"The UNO bridge module for Python\n"
-"is not installed."
+msgid "Editing document part properties"
 msgstr ""
 
-msgid "Letter writer"
+msgid "Error saving part properties."
 msgstr ""
 
-#, python-format
 msgid ""
-"Cannot connect to OpenOffice.\n"
+"No images could be acquired from the source.\n"
 "\n"
-"You may want to increase the option\n"
+"This may mean the scanner driver is not properly installed.\n"
 "\n"
-" <%s>"
+"On Windows you must install the TWAIN Python module\n"
+"while on Linux and MacOSX it is recommended to install\n"
+"the XSane package."
 msgstr ""
 
-msgid "OOo startup time"
+msgid "Acquiring images"
 msgstr ""
 
-msgid "No document template selected."
+msgid "directory dropped on client"
 msgstr ""
 
-#, python-format
-msgid "Invalid document template [%s - %s (%s)]"
+msgid "file dropped on client"
 msgstr ""
 
 #, fuzzy
-msgid "Generating document from template"
-msgstr "Dokumenter:"
-
-#, fuzzy
-msgid "Error generating document printout."
-msgstr "Dokumenter:"
-
-#, fuzzy
-msgid "Generating document printout"
+msgid "other documents"
 msgstr "Dokumenter:"
 
-#, fuzzy, python-format
-msgid "Printed: %s"
-msgstr "   Dok: %s"
-
-#, fuzzy
-msgid "Adding new form template"
-msgstr "Vaksinasjon"
-
-#, fuzzy
-msgid "Editing form template"
-msgstr "Vaksinasjon"
-
-msgid "Deleting form template."
+msgid "path"
 msgstr ""
 
-#, python-format
-msgid ""
-"Are you sure you want to delete\n"
-"the following form template ?\n"
-"\n"
-" \"%s (%s)\"\n"
-"\n"
-"You can only delete templates which\n"
-"have not yet been used to generate\n"
-"any forms from."
+msgid "No parts to save. Really save an empty document as a reference ?"
 msgstr ""
 
-msgid "Select letter or form template."
+msgid "No parts to save. Aquire some parts first."
 msgstr ""
 
-msgid "You must select a template file before saving."
+msgid "No document type applied. Choose a document type"
 msgstr ""
 
-msgid "You must enter a type for documents created with this template."
+msgid "You must select an episode to save this document under."
 msgstr ""
 
-msgid "You must enter a type for this template."
+msgid ""
+"You need to select from the list of staff members the doctor who is intended "
+"to sign the document."
 msgstr ""
 
-msgid "You must enter a version for this template."
+msgid "There is no scanner support installed on this machine."
 msgstr ""
 
-msgid "Missing short name for template."
+msgid "Cannot find an active scanner."
 msgstr ""
 
-msgid "Missing long name for template."
+msgid "Select an image capture device"
 msgstr ""
 
-#, fuzzy, python-format
-msgid "last modified %s by %s"
-msgstr "etternavn"
-
-msgid "Choose a form template file"
+msgid "device selection"
 msgstr ""
 
-msgid "Enter a filename to save the template to"
+msgid ""
+"No pages could be acquired from the source.\n"
+"\n"
+"This may mean the scanner driver is not properly installed.\n"
+"\n"
+"On Windows you must install the TWAIN Python module\n"
+"while on Linux and MacOSX it is recommended to install\n"
+"the XSane package."
 msgstr ""
 
-msgid "Emergency contact"
+msgid "acquiring page"
 msgstr ""
 
-msgid "Primary doctor"
+msgid "captured by imaging device"
 msgstr ""
 
-msgid "in-praxis primary provider"
+msgid "Choose a file"
 msgstr ""
 
-#, fuzzy
-msgid "This praxis"
-msgstr "Vaksinasjon"
-
-msgid "Hospital stay"
+msgid "all files (Win)"
 msgstr ""
 
-#, fuzzy
-msgid "Bill receiver"
-msgstr "Dokumenter:"
-
-#, fuzzy
-msgid "Receiver"
-msgstr "Dokumenter: %s"
-
-msgid ""
-"Are you sure you want to delete this\n"
-"description from the document ?\n"
+msgid "picked from storage media"
 msgstr ""
 
-msgid "Deleting document description"
+msgid "pasted from clipboard"
 msgstr ""
 
-msgid "Adding document description"
+msgid "No part selected for viewing."
 msgstr ""
 
-msgid "Below you can add a document description.\n"
+#, python-format
+msgid ""
+"Cannot display document part:\n"
+"%s"
 msgstr ""
 
-msgid "Editing document description"
+msgid "displaying part"
 msgstr ""
 
-msgid "Below you can edit the document description.\n"
+msgid "No part selected for removal."
 msgstr ""
 
-msgid "Select the description you are interested in.\n"
+msgid "Cannot add document description."
 msgstr ""
 
-msgid "Managing document descriptions"
+msgid "Error setting \"reviewed\" status of new document."
 msgstr ""
 
-msgid "Select the episode under which to file the document ..."
-msgstr ""
+#, fuzzy, python-format
+msgid ""
+"Source: %s\n"
+"File: %s\n"
+"\n"
+"%s"
+msgstr "   Dok: %s"
 
-#, python-format
-msgid "Imported new document from %s."
+msgid "Document part does not seem to exist in database !"
 msgstr ""
 
-msgid "Enter a comment on the document."
+msgid "showing document"
 msgstr ""
 
-msgid "User defined"
+msgid "Document list for this patient."
 msgstr ""
 
-msgid "In use"
-msgstr ""
+#, fuzzy
+msgid "Showing documents."
+msgstr "Dokumenter:"
 
-#, python-format
-msgid ""
-"Cannot delete document type\n"
-" [%s]\n"
-"because it is currently in use."
+msgid "Ref #"
 msgstr ""
 
-msgid "deleting document type"
+#, python-format
+msgid "available documents (%s)"
 msgstr ""
 
 #, python-format
-msgid ""
-"From the list below select the document type you want\n"
-"all documents currently classified as:\n"
-"\n"
-" \"%s\"\n"
-"\n"
-"to be changed to.\n"
-"\n"
-"Be aware that this change will be applied to ALL such documents. If there\n"
-"are many documents to change it can take quite a while.\n"
-"\n"
-"Make sure this is what you want to happen !\n"
+msgid "unsigned (%s) on top"
 msgstr ""
 
-msgid "Reassigning document type"
+msgid "most recent on top"
 msgstr ""
 
-msgid "Select the document type."
+msgid "sorted by episode"
 msgstr ""
 
-msgid "Cannot create document type without name."
+msgid "sorted by health issue"
 msgstr ""
 
-msgid "+/-"
+msgid "sorted by type"
 msgstr ""
 
-msgid "!"
+msgid "Cannot load documents. No active patient."
 msgstr ""
 
-msgid "comment"
-msgstr ""
+#, fuzzy
+msgid "Part Actions:"
+msgstr "Vaksinasjon"
 
-msgid "(you are the primary reviewer)"
+msgid "Display part"
 msgstr ""
 
 #, python-format
-msgid "(someone else is the intended reviewer: %s)"
-msgstr ""
-
-#, python-format
-msgid ""
-"Cannot create episode\n"
-" [%s]"
-msgstr ""
-
-msgid "Editing document properties"
-msgstr ""
-
-#, python-format
-msgid "Cannot change document type to [%s]."
-msgstr ""
-
-#, python-format
-msgid ""
-"Cannot link the document to episode\n"
-"\n"
-" [%s]"
-msgstr ""
-
-msgid "Error setting \"reviewed\" status of this document."
-msgstr ""
-
-msgid "Error setting responsible clinician for this document."
-msgstr ""
-
-msgid "Error setting \"reviewed\" status of this part."
-msgstr ""
-
-#, python-format
-msgid ""
-"Cannot set page number to [%s] because\n"
-"another page with this number exists.\n"
-"\n"
-"Page numbers in use:\n"
-"\n"
-" %s"
-msgstr ""
-
-msgid "Editing document part properties"
-msgstr ""
-
-msgid "Error saving part properties."
-msgstr ""
-
-msgid ""
-"No images could be acquired from the source.\n"
-"\n"
-"This may mean the scanner driver is not properly installed.\n"
-"\n"
-"On Windows you must install the TWAIN Python module\n"
-"while on Linux and MacOSX it is recommended to install\n"
-"the XSane package."
-msgstr ""
-
-msgid "Acquiring images"
-msgstr ""
-
-#, fuzzy
-msgid "other documents"
-msgstr "Dokumenter:"
-
-#, fuzzy, python-format
-msgid "part %s: %s"
-msgstr " Status: %s, %s"
-
-msgid "saving document"
-msgstr ""
-
-msgid "No parts to save. Really save an empty document as a reference ?"
-msgstr ""
-
-msgid "No parts to save. Aquire some parts first."
-msgstr ""
-
-msgid "No document type applied. Choose a document type"
-msgstr ""
-
-msgid "You must select an episode to save this document under."
-msgstr ""
-
-msgid ""
-"You need to select from the list of staff members the doctor who is intended "
-"to sign the document."
-msgstr ""
-
-msgid "There is no scanner support installed on this machine."
-msgstr ""
-
-msgid "Cannot find an active scanner."
-msgstr ""
-
-msgid "Select an image capture device"
-msgstr ""
-
-msgid "device selection"
-msgstr ""
-
-msgid ""
-"No pages could be acquired from the source.\n"
-"\n"
-"This may mean the scanner driver is not properly installed.\n"
-"\n"
-"On Windows you must install the TWAIN Python module\n"
-"while on Linux and MacOSX it is recommended to install\n"
-"the XSane package."
-msgstr ""
-
-msgid "acquiring page"
-msgstr ""
-
-msgid "Choose a file"
-msgstr ""
-
-msgid "all files (Win)"
-msgstr ""
-
-msgid "You must select a part before you can view it."
-msgstr ""
-
-msgid "displaying part"
-msgstr ""
-
-#, python-format
-msgid ""
-"Cannot display document part:\n"
-"%s"
-msgstr ""
-
-msgid "You must select a part before you can delete it."
-msgstr ""
-
-msgid "deleting part"
-msgstr ""
-
-#, python-format
-msgid ""
-"The part has successfully been removed from the document.\n"
-"\n"
-"Do you also want to permanently delete the file\n"
-"\n"
-" [%s]\n"
-"\n"
-"from which this document part was loaded ?\n"
-"\n"
-"If it is a temporary file for a page you just scanned\n"
-"this makes a lot of sense. In other cases you may not\n"
-"want to lose the file.\n"
-"\n"
-"Pressing [YES] will permanently remove the file\n"
-"from your computer.\n"
-msgstr ""
-
-msgid "Removing document part"
-msgstr ""
-
-#, python-format
-msgid ""
-"Cannot delete part in file [%s].\n"
-"\n"
-"You may not have write access to it."
-msgstr ""
-
-msgid "Cannot create new document."
-msgstr ""
-
-msgid "Cannot update document metadata."
-msgstr ""
-
-msgid "Cannot add document description."
-msgstr ""
-
-msgid "Error setting \"reviewed\" status of new document."
-msgstr ""
-
-msgid "Successfully saved the new document."
-msgstr ""
-
-#, python-format
-msgid ""
-"The reference ID for the new document is:\n"
-"\n"
-" <%s>\n"
-"\n"
-"You probably want to write it down on the\n"
-"original documents.\n"
-"\n"
-"If you don't care about the ID you can switch\n"
-"off this message in the GNUmed configuration."
-msgstr ""
-
-#, fuzzy
-msgid "Saving document"
-msgstr "Dokumenter:"
-
-msgid "Successfully saved new document."
-msgstr ""
-
-msgid "Document part does not seem to exist in database !"
-msgstr ""
-
-msgid "showing document"
-msgstr ""
-
-msgid "Document list for this patient."
-msgstr ""
-
-#, fuzzy
-msgid "Showing documents."
-msgstr "Dokumenter:"
-
-msgid "Generated"
-msgstr ""
-
-msgid "Ref #"
-msgstr ""
-
-#, python-format
-msgid "available documents (%s)"
-msgstr ""
-
-#, python-format
-msgid "unsigned (%s) on top"
-msgstr ""
-
-msgid "most recent on top"
-msgstr ""
-
-msgid "sorted by episode"
-msgstr ""
-
-msgid "sorted by health issue"
-msgstr ""
-
-msgid "sorted by type"
-msgstr ""
-
-msgid "Cannot load documents. No active patient."
-msgstr ""
-
-#, fuzzy
-msgid "Part Actions:"
-msgstr "Vaksinasjon"
-
-msgid "Display part"
-msgstr ""
-
-#, python-format
-msgid "%s Sign/Edit properties"
+msgid "%s Sign/Edit properties"
 msgstr ""
 
 #, fuzzy
@@ -13899,44 +14205,184 @@ msgstr ""
 msgid "Deleting document"
 msgstr ""
 
-#, python-format
-msgid "You are logged in as %s%s.%s (%s). DB account <%s>."
+msgid "Study date"
 msgstr ""
 
-msgid "&Go to plugin ..."
+msgid "Study time"
 msgstr ""
 
-msgid "Check for updates"
+msgid "Method"
 msgstr ""
 
-msgid "Check for new releases of the GNUmed client."
+#, fuzzy
+msgid "Body part"
+msgstr "delvis"
+
+msgid "Time"
 msgstr ""
 
-msgid "Announce downtime"
+msgid "Cannot connect without port (try 8042)."
 msgstr ""
 
-msgid "Announce database maintenance downtime to all connected clients."
+#, python-format
+msgid "Connect to [%s] @ port %s as \"%s\"."
 msgstr ""
 
-msgid "All options"
+msgid "Cannot connect to PACS."
 msgstr ""
 
-msgid "List all options as configured in the database."
+#, python-format
+msgid "PACS: Orthanc \"%s\" (AET \"%s\", Version %s, DB v%s)"
 msgstr ""
 
-msgid "Configure the database language"
+#, python-format
+msgid "GNUmed patient: %s (generic PACS ID)"
 msgstr ""
 
-msgid "Welcome message"
+#, python-format
+msgid "GNUmed patient: \"%(value)s\" @ [%(issuer)s] (stored PACS ID)"
 msgstr ""
 
-msgid "Configure the database welcome message (all users)."
+msgid "PACS: no patients with matching IDs found"
 msgstr ""
 
-msgid "Database ..."
+msgid ""
+"PACS: more than one patient with matching IDs found, carefully check studies"
 msgstr ""
 
-msgid "Export chunk size"
+#, python-format
+msgid "%s series"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "%%s (%s series)"
+msgstr "Pasient: %s (%s), Nr: %s\n"
+
+msgid "no studies"
+msgstr ""
+
+#, python-format
+msgid "%s studies"
+msgstr ""
+
+msgid "Exporting DICOM studies"
+msgstr ""
+
+msgid "Unable to export selected studies."
+msgstr ""
+
+#, python-format
+msgid ""
+"The DICOM studies are %s in compressed size.\n"
+"\n"
+"Really copy to export area ?"
+msgstr ""
+
+#, python-format
+msgid "DICOM studies of [%s] from Orthanc PACS \"%s\" (AET \"%s\")"
+msgstr ""
+
+msgid "Select the directory into which to save the DICOM studies."
+msgstr ""
+
+msgid "Saving DICOM studies"
+msgstr ""
+
+msgid "Unable to save selected studies."
+msgstr ""
+
+msgid "Unable to export studies."
+msgstr ""
+
+#, python-format
+msgid "All DICOM studies of [%s] from Orthanc PACS \"%s\" (AET \"%s\")"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "%s%s images"
+msgstr "   Dok: %s"
+
+msgid "Select the directory from which to recursively upload DICOM files."
+msgstr ""
+
+msgid "Delete the uploaded DICOM files now ?"
+msgstr ""
+
+msgid ""
+"Some files have not been uploaded.\n"
+"\n"
+"Do you want to delete those DICOM files which have been sent to the PACS "
+"successfully ?"
+msgstr ""
+
+msgid "Uploading DICOM files"
+msgstr ""
+
+#, fuzzy
+msgid "Editing Orthanc content"
+msgstr "Vaksinasjon"
+
+#, fuzzy
+msgid "Patient ID"
+msgstr "Dokumenter: %s"
+
+msgid "Birth date"
+msgstr ""
+
+msgid "Orthanc"
+msgstr ""
+
+#, fuzzy
+msgid "Modifying patient ID"
+msgstr "Vaksinasjon"
+
+#, python-format
+msgid ""
+"Really modify %s patient(s) to have the new patient ID\n"
+"\n"
+" [%s]\n"
+"\n"
+"stored in the Orthanc DICOM server ?"
+msgstr ""
+
+#, python-format
+msgid "You are logged in as %s%s.%s (%s). DB account <%s>."
+msgstr ""
+
+msgid "&Go to plugin ..."
+msgstr ""
+
+msgid "Check for updates"
+msgstr ""
+
+msgid "Check for new releases of the GNUmed client."
+msgstr ""
+
+msgid "Announce downtime"
+msgstr ""
+
+msgid "Announce database maintenance downtime to all connected clients."
+msgstr ""
+
+msgid "All options"
+msgstr ""
+
+msgid "List all options as configured in the database."
+msgstr ""
+
+msgid "Configure the database language"
+msgstr ""
+
+msgid "Welcome message"
+msgstr ""
+
+msgid "Configure the database welcome message (all users)."
+msgstr ""
+
+msgid "Database ..."
+msgstr ""
+
+msgid "Export chunk size"
 msgstr ""
 
 msgid "Configure the chunk size used when exporting BLOBs from the database."
@@ -13958,6 +14404,14 @@ msgstr "Dokumenter:"
 msgid "Select the measurements panel to show in the medications plugin."
 msgstr ""
 
+#, fuzzy
+msgid "General measurements"
+msgstr "Dokumenter:"
+
+#, fuzzy
+msgid "Select the measurements panel to show in the top pane."
+msgstr "Dokumenter: %s"
+
 msgid "Review dialog"
 msgstr ""
 
@@ -14048,6 +14502,12 @@ msgstr ""
 msgid "Configure auto-opening editors for recent problems."
 msgstr ""
 
+msgid "SOAP fields"
+msgstr ""
+
+msgid "Configure SOAP editor - individual SOAP fields vs text editor like"
+msgstr ""
+
 msgid "Progress notes handling ..."
 msgstr ""
 
@@ -14069,6 +14529,9 @@ msgstr ""
 msgid "URL for measurements encyclopedia."
 msgstr ""
 
+msgid "Drug data source"
+msgstr ""
+
 msgid "Select the drug data source."
 msgstr ""
 
@@ -14436,6 +14899,12 @@ msgstr ""
 msgid "Manage dynamic hints suppressed in this patient."
 msgstr ""
 
+msgid "Substance abuse"
+msgstr ""
+
+msgid "Manage substance abuse documentation of this patient."
+msgstr ""
+
 msgid "&Add / Edit ..."
 msgstr ""
 
@@ -14457,26 +14926,51 @@ msgstr ""
 msgid "Show a high-level statistic summary of the EMR."
 msgstr ""
 
-msgid "Text document"
+msgid "Journal (encounters) to file"
+msgstr ""
+
+msgid ""
+"Save the EMR of the active patient as a chronological journal into a text "
+"file"
 msgstr ""
 
-msgid "Export the EMR of the active patient into a text file"
+#, fuzzy
+msgid "Journal (encounters) to export area"
+msgstr "Vaksinasjon"
+
+msgid ""
+"Copy EMR of the active patient as a chronological journal into export area"
 msgstr ""
 
-msgid "Journal"
+msgid "Journal (mod time) to file"
 msgstr ""
 
 msgid ""
-"Export the EMR of the active patient as a chronological journal into a text "
-"file"
+"Save the EMR of the active patient as journal by last modification time into "
+"a text file"
+msgstr ""
+
+#, fuzzy
+msgid "Journal (mod time) to export area"
+msgstr "Vaksinasjon"
+
+msgid ""
+"Copy EMR of the active patient as journal by last modification time into "
+"export area"
+msgstr ""
+
+msgid "Text document"
+msgstr ""
+
+msgid "Save the EMR of the active patient into a text file"
 msgstr ""
 
 msgid "MEDISTAR import format"
 msgstr ""
 
 msgid ""
-"GNUmed -> MEDISTAR. Export progress notes of active patient's active "
-"encounter into a text file."
+"GNUmed -> MEDISTAR. Save progress notes of active patient's active encounter "
+"into a text file."
 msgstr ""
 
 msgid "Export as ..."
@@ -14649,19 +15143,42 @@ msgstr ""
 msgid "Show log file"
 msgstr ""
 
-msgid "Show the log file in text viewer."
+msgid "Show log file in text viewer."
 msgstr ""
 
 msgid "Backup log file"
 msgstr ""
 
-msgid "Backup the content of the log to another file."
+msgid "Backup content of the log to another file."
 msgstr ""
 
 msgid "Email log file"
 msgstr ""
 
-msgid "Send the log file to the authors for help."
+msgid "Send log file to the authors for help."
+msgstr ""
+
+#, fuzzy
+msgid "Browse tmp dir"
+msgstr "Vaksinasjon"
+
+#, python-format
+msgid "Browse temporary directory [%s]."
+msgstr ""
+
+#, fuzzy
+msgid "Browse work dir"
+msgstr "Vaksinasjon"
+
+#, python-format
+msgid "Browse user working directory [%s]."
+msgstr ""
+
+msgid "Browse internal work dir"
+msgstr ""
+
+#, python-format
+msgid "Browse internal working directory [%s]."
 msgstr ""
 
 msgid "Bug tracker"
@@ -15004,6 +15521,20 @@ msgid "No, only auto-open one editor for a new, unassociated problem."
 msgstr ""
 
 msgid ""
+"When editing progress notes, do you want GNUmed to\n"
+"show individual fields for each of the SOAP categories\n"
+"or do you want to use a text-editor like field for\n"
+"all SOAP categories which can then be set per line\n"
+"of input ?"
+msgstr ""
+
+msgid "Yes, show a dedicated field per SOAP category."
+msgstr ""
+
+msgid "No, use one field for all SOAP categories."
+msgstr ""
+
+msgid ""
 "When a patient is activated GNUmed can\n"
 "be told to switch to a specific plugin.\n"
 "\n"
@@ -15171,653 +15702,1061 @@ msgid ""
 "want to scan in all the pages contained therein."
 msgstr ""
 
-msgid "Yes, allow saving documents without any parts."
+msgid "Yes, allow saving documents without any parts."
+msgstr ""
+
+msgid "No, require documents to have at least one part."
+msgstr ""
+
+msgid ""
+"After importing a new document do you\n"
+"want GNUmed to display the unique ID\n"
+"it auto-generated for that document ?\n"
+"\n"
+"This can be useful if you want to label the\n"
+"originals with that ID for later identification."
+msgstr ""
+
+msgid "Yes, display the ID generated for the new document after importing."
+msgstr ""
+
+msgid ""
+"No, do not display the ID generated for the new document after importing."
+msgstr ""
+
+msgid ""
+"After importing a new document do you\n"
+"want GNUmed to generate a unique ID\n"
+"(UUID) for that document ?\n"
+"\n"
+"This can be useful if you want to label the\n"
+"originals with that ID for later identification."
+msgstr ""
+
+msgid "Yes, generate a UUID for the new document after importing."
+msgstr ""
+
+msgid "No, do not generate a UUID for the new document after importing."
+msgstr ""
+
+msgid ""
+"GNUmed can show the document review dialog after\n"
+"calling the appropriate viewer for that document.\n"
+"\n"
+"Select the conditions under which you want\n"
+"GNUmed to do so:\n"
+"\n"
+" 0: never display the review dialog\n"
+" 1: always display the dialog\n"
+" 2: only if there is no previous review by me\n"
+" 3: only if there is no previous review at all\n"
+" 4: only if there is no review by the responsible reviewer\n"
+"\n"
+"Note that if a viewer is configured to not block\n"
+"GNUmed during document display the review dialog\n"
+"will actually appear in parallel to the viewer."
+msgstr ""
+
+msgid "Addresses (likely slow)"
+msgstr ""
+
+msgid "Branded drugs (as marketed)"
+msgstr ""
+
+msgid "Dynamic automatic hints"
+msgstr ""
+
+msgid "Codes and their respective terms"
+msgstr ""
+
+msgid "Communication channel types"
+msgstr ""
+
+msgid "Components of branded drugs (substances in brands)"
+msgstr ""
+
+msgid "Diagnostic organizations (path labs, ...)"
+msgstr ""
+
+msgid "Document templates (forms, letters, plots, ...)"
+msgstr ""
+
+#, fuzzy
+msgid "Document types"
+msgstr "Dokumenter:"
+
+msgid "Encounter types"
+msgstr ""
+
+msgid "Keyword based text expansion macros"
+msgstr ""
+
+msgid "Meta test/measurement types"
+msgstr ""
+
+msgid "Organizations with their units, addresses, and comm channels"
+msgstr ""
+
+msgid "Patient tags"
+msgstr ""
+
+msgid "Provinces (counties, territories, states, regions, ...)"
+msgstr ""
+
+msgid "String translations in the database"
+msgstr ""
+
+msgid "Test/measurement types"
+msgstr ""
+
+msgid "Vaccination targets (conditions known to be preventable by vaccination)"
+msgstr ""
+
+#, fuzzy
+msgid "Vaccines"
+msgstr "Vaksinasjon"
+
+msgid "Workplace profiles (which plugins to load)"
+msgstr ""
+
+msgid "Consumable substances"
+msgstr ""
+
+msgid "Billable items"
+msgstr ""
+
+msgid "Reference data sources"
+msgstr ""
+
+msgid "Test/measurement panels/profiles"
+msgstr ""
+
+msgid "Master data management"
+msgstr ""
+
+msgid "Select the list you want to manage:"
+msgstr ""
+
+msgid "No DICOM viewer found."
+msgstr ""
+
+msgid "risk assessment"
+msgstr ""
+
+msgid "cardiovascular risk assessment"
+msgstr ""
+
+#, python-format
+msgid "[arriba] XML result not found in [%s]"
+msgstr ""
+
+msgid "ACS risk assessment calculator not configured."
+msgstr ""
+
+#, python-format
+msgid "Cannot run [%s] !"
+msgstr ""
+
+#, python-format
+msgid "There was a problem accessing the [arriba] result in [%s] !"
+msgstr ""
+
+msgid "[-9999]: <access violation test error>"
+msgstr ""
+
+msgid ""
+"This is a deliberate AccessDenied exception thrown to test the handling of "
+"access violations by means of a decorator."
+msgstr ""
+
+msgid "testing access check for non-existant <admin> role"
+msgstr ""
+
+msgid ""
+"This is a deliberate AccessDenied exception. You should not see this message "
+"because the role is checked in a decorator."
+msgstr ""
+
+msgid "pgAdmin III not found."
+msgstr ""
+
+msgid "Error reloading hook script."
+msgstr ""
+
+msgid "Save current log as..."
+msgstr ""
+
+msgid "log files"
+msgstr ""
+
+#, python-format
+msgid "Log file backed up as [%s]."
+msgstr ""
+
+msgid "Cannot start new encounter. No active patient."
+msgstr ""
+
+msgid "Cannot add health issue. No active patient."
+msgstr ""
+
+msgid "Cannot add episode. No active patient."
+msgstr ""
+
+msgid "Cannot add medication. No active patient."
+msgstr ""
+
+msgid "Cannot add allergy. No active patient."
+msgstr ""
+
+msgid "Cannot manage performed procedures. No active patient."
+msgstr ""
+
+msgid "Cannot manage hospitalizations. No active patient."
+msgstr ""
+
+msgid "Cannot manage external care. No active patient."
+msgstr ""
+
+msgid "Cannot edit occupation. No active patient."
+msgstr ""
+
+#, fuzzy
+msgid "manage vaccinations"
+msgstr "Vaksinasjon"
+
+msgid "Cannot add vaccinations. No active patient."
+msgstr ""
+
+#, fuzzy
+msgid "manage family history"
+msgstr "Dokumenter:"
+
+msgid "Cannot manage family history. No active patient."
+msgstr ""
+
+msgid "Cannot manage measurements. No active patient."
+msgstr ""
+
+msgid "calculate EDC"
+msgstr ""
+
+#, fuzzy
+msgid "manage suppressed hints"
+msgstr "har allergier"
+
+msgid "Cannot manage suppressed hints. No active patient."
+msgstr ""
+
+msgid "Cannot manage smoking status. No active patient."
+msgstr ""
+
+msgid "Cannot show EMR summary. No active patient."
+msgstr ""
+
+msgid "EMR Summary"
+msgstr ""
+
+msgid "Cannot export EMR journal by last modification time. No active patient."
+msgstr ""
+
+msgid "journal_by_last_mod_time"
+msgstr ""
+
+msgid "Save patient's EMR journal as..."
+msgstr ""
+
+msgid "Error exporting patient EMR as journal by last modification time."
+msgstr ""
+
+msgid "EMR journal export"
+msgstr ""
+
+#, python-format
+msgid ""
+"Successfully exported EMR as journal by last modification time into file "
+"[%s]."
+msgstr ""
+
+msgid "Cannot export EMR journal. No active patient."
+msgstr ""
+
+msgid "emr-journal"
+msgstr ""
+
+msgid "Error exporting patient EMR as chronological journal."
+msgstr ""
+
+#, python-format
+msgid "Successfully exported EMR as chronological journal into file [%s]."
+msgstr ""
+
+msgid "EMR journal by last modification time"
+msgstr ""
+
+msgid "EMR journal by encounter"
+msgstr ""
+
+msgid "Cannot add tag to person. No active patient."
+msgstr ""
+
+#, python-format
+msgid "Edit the comment on tag [%s]"
+msgstr ""
+
+msgid "Editing tag comment"
+msgstr ""
+
+msgid "Cannot export patient as GDT. No active patient."
+msgstr ""
+
+msgid "Exported demographics as GDT to clipboard."
+msgstr ""
+
+msgid "Cannot export patient as VCARD. No active patient."
+msgstr ""
+
+msgid "Exported demographics as VCARD to clipboard."
+msgstr ""
+
+msgid "Cannot export patient as XML (LinuxMedNews). No active patient."
+msgstr ""
+
+#, python-format
+msgid "Exported demographics to XML file [%s]."
+msgstr ""
+
+#, python-format
+msgid "Exported demographics to GDT file [%s]."
+msgstr ""
+
+#, python-format
+msgid "Exported demographics to VCARD file [%s]."
+msgstr ""
+
+msgid "Cannot add staff member. No active patient."
+msgstr ""
+
+msgid "Cannot delete patient. No patient active."
+msgstr ""
+
+msgid ""
+"You have to manually close this window to finalize shutting down GNUmed."
 msgstr ""
 
-msgid "No, require documents to have at least one part."
+msgid "This is so that you can inspect the console output at your leisure."
 msgstr ""
 
-msgid ""
-"After importing a new document do you\n"
-"want GNUmed to display the unique ID\n"
-"it auto-generated for that document ?\n"
-"\n"
-"This can be useful if you want to label the\n"
-"originals with that ID for later identification."
+msgid "no patient"
 msgstr ""
 
-msgid "Yes, display the ID generated for the new document after importing."
+#, python-format
+msgid "Saved screenshot to file [%s]."
 msgstr ""
 
-msgid ""
-"No, do not display the ID generated for the new document after importing."
+msgid "Python version check"
 msgstr ""
 
+#, python-format
 msgid ""
-"After importing a new document do you\n"
-"want GNUmed to generate a unique ID\n"
-"(UUID) for that document ?\n"
+"You are running Python version\n"
+" %s\n"
 "\n"
-"This can be useful if you want to label the\n"
-"originals with that ID for later identification."
+"However, GNUmed wants Python 2.7 to\n"
+"facilitate migration to Python 3.\n"
+"\n"
+"Please upgrade your Python interpreter !"
 msgstr ""
 
-msgid "Yes, generate a UUID for the new document after importing."
+msgid "GNUmed client"
 msgstr ""
 
-msgid "No, do not generate a UUID for the new document after importing."
+msgid "GNUmed stdout/stderr window"
 msgstr ""
 
+msgid "redirecting STDOUT/STDERR to this log window"
+msgstr ""
+
+#, python-format
 msgid ""
-"GNUmed can show the document review dialog after\n"
-"calling the appropriate viewer for that document.\n"
-"\n"
-"Select the conditions under which you want\n"
-"GNUmed to do so:\n"
-"\n"
-" 0: never display the review dialog\n"
-" 1: always display the dialog\n"
-" 2: only if there is no previous review by me\n"
-" 3: only if there is no previous review at all\n"
-" 4: only if there is no review by the responsible reviewer\n"
+"The database account [%s] cannot be used as a\n"
+"staff member login for GNUmed. There was an\n"
+"error retrieving staff details for it.\n"
 "\n"
-"Note that if a viewer is configured to not block\n"
-"GNUmed during document display the review dialog\n"
-"will actually appear in parallel to the viewer."
+"Please ask your administrator for help.\n"
 msgstr ""
 
-msgid "Addresses (likely slow)"
+msgid "Checking access permissions"
 msgstr ""
 
-msgid "Branded drugs (as marketed)"
+#, python-format
+msgid "Database <%s> on <%s>"
 msgstr ""
 
-msgid "Dynamic automatic hints"
+#, python-format
+msgid "Branch \"%s\" of praxis \"%s\"\n"
 msgstr ""
 
-msgid "Codes and their respective terms"
+msgid "Verifying database"
 msgstr ""
 
-msgid "Communication channel types"
+msgid "Connect"
 msgstr ""
 
-msgid "Components of branded drugs (substances in brands)"
+msgid "Yes, connect to this database."
 msgstr ""
 
-msgid "Diagnostic organizations (path labs, ...)"
+msgid "Disconnect"
 msgstr ""
 
-msgid "Document templates (forms, letters, plots, ...)"
+msgid "No, do not connect to this database."
 msgstr ""
 
-#, fuzzy
-msgid "Document types"
-msgstr "Dokumenter:"
-
-msgid "Encounter types"
+#, python-format
+msgid ""
+"Cannot find configuration file in any of:\n"
+"\n"
+" %s\n"
+"You may need to use the comand line option\n"
+"\n"
+"\t--conf-file=<FILE>"
 msgstr ""
 
-msgid "Keyword based text expansion macros"
+msgid "Checking configuration files"
 msgstr ""
 
-msgid "Meta test/measurement types"
+msgid "GNUmed startup"
 msgstr ""
 
-msgid "Organizations with their units, addresses, and comm channels"
+#, python-format
+msgid ""
+"The currently selected database language ('%s') does\n"
+"not match the current system language ('%s').\n"
+"\n"
+"Do you want to set the database language to '%s' ?\n"
 msgstr ""
 
-msgid "Patient tags"
+msgid "Checking database language settings"
 msgstr ""
 
-msgid "Provinces (counties, territories, states, regions, ...)"
+#, python-format
+msgid "Set your database language to [%s]."
 msgstr ""
 
-msgid "String translations in the database"
+msgid "Don't set"
 msgstr ""
 
-msgid "Test/measurement types"
+msgid "Do not set your database language now."
 msgstr ""
 
-msgid "Vaccination targets (conditions known to be preventable by vaccination)"
+msgid "Remember to ignore language mismatch"
 msgstr ""
 
-#, fuzzy
-msgid "Vaccines"
-msgstr "Vaksinasjon"
+#, python-format
+msgid ""
+"Checking this will make GNUmed remember your decision\n"
+"until the system language is changed.\n"
+"\n"
+"You can also reactivate this inquiry by removing the\n"
+"corresponding \"ignore\" option from the configuration file\n"
+"\n"
+" [%s]"
+msgstr ""
 
-msgid "Workplace profiles (which plugins to load)"
+msgid "generic activity"
 msgstr ""
 
-msgid "Consumable substances"
+msgid "Access denied"
 msgstr ""
 
-msgid "Billable items"
+#, python-format
+msgid ""
+"Your account is not set up to access this part of GNUmed:\n"
+"\n"
+"  [%s]"
 msgstr ""
 
-msgid "Reference data sources"
+msgid "Save timeline as SVG image under..."
 msgstr ""
 
-msgid "Test/measurement panels/profiles"
+msgid "timeline image"
 msgstr ""
 
-msgid "Master data management"
+msgid "timeline data"
 msgstr ""
 
-msgid "Select the list you want to manage:"
+msgid "Cannot change notebook tabs. No active patient."
 msgstr ""
 
-msgid "No DICOM viewer found."
+msgid "add plugin ..."
 msgstr ""
 
-msgid "risk assessment"
+msgid "Cannot activate Allergy Manager. No active patient."
 msgstr ""
 
-msgid "cardiovascular risk assessment"
+msgid "RR ?"
 msgstr ""
 
 #, python-format
-msgid "[arriba] XML result not found in [%s]"
+msgid "BMI %s"
 msgstr ""
 
-msgid "ACS risk assessment calculator not configured."
+msgid "BMI ?"
 msgstr ""
 
-#, python-format
-msgid "Cannot run [%s] !"
+msgid "GFR ?"
 msgstr ""
 
 #, python-format
-msgid "There was a problem accessing the [arriba] result in [%s] !"
+msgid "GFR %s"
 msgstr ""
 
-msgid "[-9999]: <access violation test error>"
+#, python-format
+msgid "?EDC %s"
 msgstr ""
 
-msgid ""
-"This is a deliberate AcessDenied exception thrown to test the handling of "
-"access violations by means of a decorator."
+#, python-format
+msgid "EDC %s"
 msgstr ""
 
-msgid "testing access check for non-existant <admin> role"
+msgid "<Age>"
 msgstr ""
 
-msgid ""
-"This is a deliberate AcessDenied exception. You should not see this message "
-"because the role is checked in a decorator."
-msgstr ""
+#, fuzzy
+msgid "no patient selected"
+msgstr "Vaksinasjon"
 
-msgid "pgAdmin III not found."
-msgstr ""
+#, fuzzy, python-format
+msgid "Gender: %s (%s) - %s\n"
+msgstr "Pasient: %s (%s), Nr: %s\n"
 
-msgid "Error reloading hook script."
-msgstr ""
+#, fuzzy, python-format
+msgid "Born: %s\n"
+msgstr "   Dok: %s"
 
-msgid "Save current log as..."
-msgstr ""
+#, fuzzy, python-format
+msgid "Died: %s\n"
+msgstr "   Dok: %s"
 
-msgid "log files"
+#, fuzzy, python-format
+msgid "At age: %s\n"
+msgstr "   Dok: %s"
+
+msgid " (date of birth and age are estimated)\n"
 msgstr ""
 
 #, python-format
-msgid "Log file backed up as [%s]."
+msgid "%(sex)s  %(dob)s (%(age)s today !)"
 msgstr ""
 
-msgid "Cannot start new encounter. No active patient."
+msgid ""
+"\n"
+"Today is the patient's birthday !\n"
+"\n"
 msgstr ""
 
-msgid "Cannot add health issue. No active patient."
+#, python-format
+msgid "Birthday: %s ago\n"
 msgstr ""
 
-msgid "Cannot add episode. No active patient."
+#, python-format
+msgid "Birthday: in %s\n"
 msgstr ""
 
-msgid "Cannot add medication. No active patient."
+#, fuzzy, python-format
+msgid "Age: %s\n"
+msgstr "   Dok: %s"
+
+#, python-format
+msgid "last confirmed %s\n"
 msgstr ""
 
-msgid "Cannot add allergy. No active patient."
+#, fuzzy, python-format
+msgid "Comment (%s): %%s"
+msgstr "Dokumenter: %s"
+
+#, python-format
+msgid " - expires %s"
 msgstr ""
 
-msgid "Cannot manage performed procedures. No active patient."
+#, python-format
+msgid ""
+"Due for %s (since %s%s):\n"
+"%s%s\n"
+"Patient: %s\n"
+"Reminder by: %s"
 msgstr ""
 
-msgid "Cannot manage hospitalizations. No active patient."
+msgid "Clinical reminder"
 msgstr ""
 
-msgid "Cannot manage external care. No active patient."
+#, fuzzy
+msgid "Adding automatic dynamic hint"
+msgstr "Dokumenter:"
+
+#, fuzzy
+msgid "Editing automatic dynamic hint"
+msgstr "Dokumenter:"
+
+#, fuzzy
+msgid "Deleting automatic dynamic hint"
+msgstr "Dokumenter:"
+
+#, python-format
+msgid ""
+"Really delete this dynamic hint ?\n"
+"\n"
+" [%s]"
 msgstr ""
 
-msgid "Cannot edit occupation. No active patient."
+#, fuzzy
+msgid "deleting a dynamic hint"
+msgstr "Dokumenter:"
+
+msgid ""
+"\n"
+"Dynamic hints registered with GNUmed.\n"
 msgstr ""
 
 #, fuzzy
-msgid "manage vaccinations"
-msgstr "Vaksinasjon"
+msgid "Showing dynamic hints."
+msgstr "Dokumenter:"
 
-msgid "Cannot add vaccinations. No active patient."
+msgid "Hint"
 msgstr ""
 
-msgid "Cannot manage family history. No active patient."
+msgid "Browse and install automatic dynamic hints data packs"
 msgstr ""
 
-msgid "Cannot manage measurements. No active patient."
+#, fuzzy, python-format
+msgid "By: %s"
+msgstr "   Dok: %s"
+
+msgid "No entry in field <Source>."
 msgstr ""
 
-msgid "calculate EDC"
+msgid "No entry in field <Conditions>."
 msgstr ""
 
 #, fuzzy
-msgid "manage suppressed hints"
-msgstr "har allergier"
+msgid "No entry in field <Description>."
+msgstr "Vaksinasjon"
 
-msgid "Cannot manage suppressed hints. No active patient."
+msgid "No entry in field <Title>."
 msgstr ""
 
-msgid "Cannot show EMR summary. No active patient."
-msgstr ""
+#, fuzzy
+msgid "creating a new dynamic hint"
+msgstr "Dokumenter:"
 
-msgid "EMR Summary"
+msgid "updating an existing dynamic hint"
 msgstr ""
 
-msgid "Cannot export EMR journal. No active patient."
-msgstr ""
+#, fuzzy
+msgid "Deleting suppressed dynamic hint"
+msgstr "Dokumenter:"
 
-msgid "Save patient's EMR journal as..."
+#, python-format
+msgid ""
+"Really delete the suppression of this dynamic hint ?\n"
+"\n"
+" [%s]"
 msgstr ""
 
-msgid "Error exporting patient EMR as chronological journal."
+msgid ""
+"\n"
+"Dynamic hints suppressed in this patient.\n"
 msgstr ""
 
-msgid "EMR journal export"
-msgstr ""
+#, fuzzy
+msgid "Showing suppressed dynamic hints."
+msgstr "Dokumenter:"
 
-#, python-format
-msgid "Successfully exported EMR as chronological journal into file [%s]."
+msgid "Rationale"
 msgstr ""
 
-msgid "Cannot add tag to person. No active patient."
-msgstr ""
+#, fuzzy
+msgid "Manage hints"
+msgstr "har allergier"
 
-#, python-format
-msgid "Edit the comment on tag [%s]"
-msgstr ""
+#, fuzzy
+msgid "Manage automatic dynamic hints"
+msgstr "Dokumenter:"
 
-msgid "Editing tag comment"
+msgid "Cannot delete family history item."
 msgstr ""
 
-msgid "Cannot export patient as GDT. No active patient."
+msgid "Family history of this patient."
 msgstr ""
 
-msgid "Exported demographics as GDT to clipboard."
+msgid "Showing family history."
 msgstr ""
 
-msgid "Cannot export patient as VCARD. No active patient."
+msgid "Fatal"
 msgstr ""
 
-msgid "Exported demographics as VCARD to clipboard."
-msgstr ""
+#, fuzzy
+msgid "Noted"
+msgstr "ikke relevant"
 
-msgid "Cannot export patient as XML (LinuxMedNews). No active patient."
+msgid "Died"
 msgstr ""
 
-#, python-format
-msgid "Exported demographics to XML file [%s]."
+msgid "Adding family history"
 msgstr ""
 
-#, python-format
-msgid "Exported demographics to GDT file [%s]."
+msgid "Editing family history"
 msgstr ""
 
-#, python-format
-msgid "Exported demographics to VCARD file [%s]."
+msgid ""
+"\n"
+"Please select the default drug data source from the list below.\n"
+"\n"
+"Note that to actually use it you need to have the database installed, too."
 msgstr ""
 
-msgid "Cannot add staff member. No active patient."
+msgid "Configuring default drug data source"
 msgstr ""
 
-msgid "Cannot delete patient. No patient active."
+msgid "No default drug database configured."
 msgstr ""
 
-msgid ""
-"You have to manually close this window to finalize shutting down GNUmed."
+msgid "There is no default drug database configured."
 msgstr ""
 
-msgid "This is so that you can inspect the console output at your leisure."
+msgid "Jumping to drug database"
 msgstr ""
 
-msgid "no patient"
+msgid "Cannot import drugs from IFAP into chart without chart."
 msgstr ""
 
 #, python-format
-msgid "Saved screenshot to file [%s]."
-msgstr ""
-
-msgid "GNUmed client"
+msgid "Cannot call IFAP via [%s]."
 msgstr ""
 
-msgid "GNUmed stdout/stderr window"
+#, python-format
+msgid "Cannot create IFAP <-> GNUmed transfer file [%s]."
 msgstr ""
 
-msgid "redirecting STDOUT/STDERR to this log window"
+msgid "Current medication"
 msgstr ""
 
-#, python-format
 msgid ""
-"The database account [%s] cannot be used as a\n"
-"staff member login for GNUmed. There was an\n"
-"error retrieving staff details for it.\n"
 "\n"
-"Please ask your administrator for help.\n"
+"The ATC codes as known to GNUmed.\n"
 msgstr ""
 
-msgid "Checking access permissions"
+msgid "Showing ATC codes."
 msgstr ""
 
-#, python-format
-msgid "Database <%s> on <%s>"
+msgid "Choose an ATC import config file"
 msgstr ""
 
-#, python-format
-msgid "Branch \"%s\" of praxis \"%s\"\n"
+msgid "config files"
 msgstr ""
 
-msgid "Verifying database"
+msgid "importing ATC reference data"
 msgstr ""
 
-msgid "Connect"
+msgid "Successfully imported ATC reference data."
 msgstr ""
 
-msgid "Yes, connect to this database."
+msgid "Importing ATC reference data failed."
 msgstr ""
 
-msgid "Disconnect"
+msgid "Select an ATC (Anatomical-Therapeutic-Chemical) code."
 msgstr ""
 
-msgid "No, do not connect to this database."
+msgid "Cannot edit this substance. It is in use."
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot find configuration file in any of:\n"
-"\n"
-" %s\n"
-"You may need to use the comand line option\n"
-"\n"
-"\t--conf-file=<FILE>"
+msgid "Adding new consumable substance"
 msgstr ""
 
-msgid "Checking configuration files"
+msgid "Editing consumable substance"
 msgstr ""
 
-msgid "GNUmed startup"
+msgid "Cannot delete this substance. It is in use."
 msgstr ""
 
-#, python-format
 msgid ""
-"The currently selected database language ('%s') does\n"
-"not match the current system language ('%s').\n"
 "\n"
-"Do you want to set the database language to '%s' ?\n"
+"These are the consumable substances registered with GNUmed.\n"
 msgstr ""
 
-msgid "Checking database language settings"
+msgid "Import"
 msgstr ""
 
-msgid "Set"
+msgid "Import consumable substances from a drug database."
 msgstr ""
 
-#, python-format
-msgid "Set your database language to [%s]."
+msgid "Cannot save consumable substance. Missing essential input."
 msgstr ""
 
-msgid "Don't set"
+#, python-format
+msgid "Cannot save consumable substance. %s"
 msgstr ""
 
-msgid "Do not set your database language now."
+msgid "The substance with optional strength."
 msgstr ""
 
-msgid "Remember to ignore language mismatch"
+msgid "Cannot remove this component from the drug. It is in use."
 msgstr ""
 
-#, python-format
 msgid ""
-"Checking this will make GNUmed remember your decision\n"
-"until the system language is changed.\n"
-"\n"
-"You can also reactivate this inquiry by removing the\n"
-"corresponding \"ignore\" option from the configuration file\n"
 "\n"
-" [%s]"
+"These are the components in the drug brands known to GNUmed.\n"
 msgstr ""
 
-msgid "generic activity"
+msgid "Showing drug brand components."
 msgstr ""
 
-msgid "Access denied"
+msgid "Adding new drug component"
 msgstr ""
 
-#, python-format
-msgid ""
-"Your account is not set up to access this part of GNUmed:\n"
-"\n"
-"  [%s]"
+msgid "Editing drug component"
 msgstr ""
 
-msgid "Save timeline as SVG image under..."
+msgid "Cannot edit drug component. It is in use."
 msgstr ""
 
-msgid "timeline image"
+msgid "Cannot save drug component. Invalid or missing essential input."
 msgstr ""
 
-msgid "timeline data"
+msgid "A drug component with optional strength."
 msgstr ""
 
-msgid "Cannot change notebook tabs. No active patient."
+msgid "Editing drug"
 msgstr ""
 
-msgid "add plugin ..."
+#, python-format
+msgid ""
+"Cannot edit the branded drug product\n"
+"\n"
+" \"%s\" (%s)\n"
+"\n"
+"because it is currently taken by patients.\n"
 msgstr ""
 
-msgid "Cannot activate Allergy Manager. No active patient."
+msgid "Adding new drug brand"
 msgstr ""
 
-msgid "<Age>"
+msgid "Editing drug brand"
 msgstr ""
 
-#, fuzzy
-msgid "no patient selected"
-msgstr "Vaksinasjon"
+msgid "Manage consumable substances"
+msgstr ""
 
-#, fuzzy, python-format
-msgid "Gender: %s (%s) - %s\n"
-msgstr "Pasient: %s (%s), Nr: %s\n"
+msgid "not in use"
+msgstr ""
 
 #, fuzzy, python-format
-msgid "Born: %s\n"
+msgid "ATC: %s\n"
 msgstr "   Dok: %s"
 
-#, fuzzy, python-format
-msgid "Died: %s\n"
-msgstr "   Dok: %s"
+msgid "Editing medication"
+msgstr ""
 
-#, fuzzy, python-format
-msgid "At age: %s\n"
-msgstr "   Dok: %s"
+#, python-format
+msgid ""
+"Cannot edit the medication\n"
+"\n"
+" \"%s\" (%s)\n"
+"\n"
+"because it is a vaccine. Please edit it\n"
+"from the vaccine management section !\n"
+msgstr ""
 
-msgid " (date of birth and age are estimated)\n"
+msgid "Deleting medication"
 msgstr ""
 
 #, python-format
-msgid "%(sex)s  %(dob)s (%(age)s today !)"
+msgid ""
+"Cannot delete the medication\n"
+"\n"
+" \"%s\" (%s)\n"
+"\n"
+"because it is a vaccine. Please delete it\n"
+"from the vaccine management section !\n"
 msgstr ""
 
 msgid ""
 "\n"
-"Today is the patient's birthday !\n"
-"\n"
+"These are the drug brands known to GNUmed.\n"
 msgstr ""
 
-#, python-format
-msgid "Birthday: %s ago\n"
+msgid "Showing branded drugs."
 msgstr ""
 
-#, python-format
-msgid "Birthday: in %s\n"
+msgid "Import substances and brands from a drug database."
 msgstr ""
 
-#, fuzzy, python-format
-msgid "Age: %s\n"
-msgstr "   Dok: %s"
+msgid "Managing components of a drug"
+msgstr ""
 
 #, python-format
-msgid "last confirmed %s\n"
+msgid ""
+"Cannot manage the components of the branded drug product\n"
+"\n"
+" \"%s\" (%s)\n"
+"\n"
+"because it is currently taken by patients.\n"
+msgstr ""
+
+msgid "Pick the substances which are components of this drug."
 msgstr ""
 
-#, fuzzy, python-format
-msgid "Comment (%s): %%s"
-msgstr "Dokumenter: %s"
-
-#, python-format
-msgid " - expires %s"
+msgid "Components of drug"
 msgstr ""
 
 #, python-format
 msgid ""
-"Due for %s (since %s%s):\n"
-"%s%s\n"
-"Patient: %s\n"
-"Reminder by: %s"
+"Adjust the components of \"%s\"\n"
+"\n"
+"The drug must contain at least one component. Any given\n"
+"substance can only be included once per drug."
 msgstr ""
 
-msgid "Clinical reminder"
+msgid "Managing components of a drug ..."
 msgstr ""
 
-#, fuzzy
-msgid "Adding automatic dynamic hint"
-msgstr "Dokumenter:"
-
-#, fuzzy
-msgid "Editing automatic dynamic hint"
-msgstr "Dokumenter:"
+msgid "Cannot edit drug brand. It is in use."
+msgstr ""
 
-#, fuzzy
-msgid "Deleting automatic dynamic hint"
-msgstr "Dokumenter:"
+msgid "Checking brand data"
+msgstr ""
 
 #, python-format
 msgid ""
-"Really delete this dynamic hint ?\n"
+"The brand information you entered:\n"
 "\n"
-" [%s]"
+" [%s %s]\n"
+"\n"
+"already exists as a drug product."
 msgstr ""
 
-#, fuzzy
-msgid "deleting a dynamic hint"
-msgstr "Dokumenter:"
-
 msgid ""
+"You have not selected any substances\n"
+"as drug components.\n"
 "\n"
-"Dynamic hints registered with GNUmed.\n"
+"Without components you will not be able to\n"
+"use this drug for documenting patient care.\n"
+"\n"
+"Are you sure you want to save\n"
+"it without components ?"
 msgstr ""
 
-#, fuzzy
-msgid "Showing dynamic hints."
-msgstr "Dokumenter:"
-
-msgid "Hint"
+msgid "Cannot save branded drug. Invalid or missing essential input."
 msgstr ""
 
-msgid "Browse and install automatic dynamic hints data packs"
+msgid ""
+"The brand name of the drug.\n"
+"\n"
+"Note: a brand name will need to be linked to\n"
+"one or more components before it can be used,\n"
+"except in the case of fake (generic) vaccines."
 msgstr ""
 
-#, fuzzy, python-format
-msgid "By: %s"
-msgstr "   Dok: %s"
+msgid "No EMR data loaded."
+msgstr ""
 
-msgid "No entry in field <Source>."
+msgid "EMR text dump"
 msgstr ""
 
-msgid "No entry in field <Conditions>."
+msgid "Currently there is no active patient. Cannot retrieve EMR text."
 msgstr ""
 
 #, fuzzy
-msgid "No entry in field <Description>."
+msgid "SOAP Editor Actions:"
 msgstr "Vaksinasjon"
 
-msgid "No entry in field <Title>."
-msgstr ""
-
 #, fuzzy
-msgid "creating a new dynamic hint"
-msgstr "Dokumenter:"
+msgid "&Sort lines"
+msgstr "avsluttet"
 
-msgid "updating an existing dynamic hint"
+msgid "Sort lines by SOAP category"
 msgstr ""
 
-#, fuzzy
-msgid "Deleting suppressed dynamic hint"
-msgstr "Dokumenter:"
-
-#, python-format
-msgid ""
-"Really delete the suppression of this dynamic hint ?\n"
-"\n"
-" [%s]"
+msgid "e&Xpand keyword"
 msgstr ""
 
-msgid ""
-"\n"
-"Dynamic hints suppressed in this patient.\n"
+msgid "Expand keyword / macro"
 msgstr ""
 
 #, fuzzy
-msgid "Showing suppressed dynamic hints."
-msgstr "Dokumenter:"
+msgid "as &Subjective"
+msgstr "Subjektiv"
 
-msgid "Rationale"
+msgid "Set line to category \"Subjective\""
 msgstr ""
 
 #, fuzzy
-msgid "Manage hints"
-msgstr "har allergier"
+msgid "as &Objective"
+msgstr "Objektiv"
 
-#, fuzzy
-msgid "Manage automatic dynamic hints"
-msgstr "Dokumenter:"
+msgid "Set line to category \"Objective\""
+msgstr ""
 
-msgid "Cannot delete family history item."
+msgid "as &Assessment"
 msgstr ""
 
-msgid "Family history of this patient."
+msgid "Set line to category \"Assessment\""
 msgstr ""
 
-msgid "Showing family history."
+msgid "as &Plan"
 msgstr ""
 
-msgid "Fatal"
+msgid "Set line to category \"Plan\""
+msgstr ""
+
+msgid "as &Unspecified"
+msgstr ""
+
+msgid "Set line to category \"unspecified\""
 msgstr ""
 
 #, fuzzy
-msgid "Noted"
-msgstr "ikke relevant"
+msgid "as ad&Ministrative"
+msgstr "inaktiv"
 
-msgid "Died"
+msgid "Set line to category \"administrative\""
 msgstr ""
 
-msgid "Adding family history"
+msgid "→ &Clipboard"
 msgstr ""
 
-msgid "Editing family history"
+msgid "Copy line to clipboard"
 msgstr ""
 
-msgid "No EMR data loaded."
+msgid "→ +Clipboard+"
 msgstr ""
 
-msgid "EMR text dump"
+msgid "Add line to clipboard"
 msgstr ""
 
-msgid "Currently there is no active patient. Cannot retrieve EMR text."
+msgid "Copy content to clipboard"
+msgstr ""
+
+msgid "Add content to clipboard"
+msgstr ""
+
+#, fuzzy
+msgid "Copy selection to clipboard"
+msgstr "Vaksinasjon"
+
+#, fuzzy
+msgid "Add selection to clipboard"
+msgstr "Dokumenter:"
+
+msgid "&Line ..."
+msgstr ""
+
+msgid "&Text ..."
 msgstr ""
 
+#, fuzzy
+msgid "&Region ..."
+msgstr "Vaksinasjon"
+
 msgid "Show HL7 file:"
 msgstr ""
 
@@ -15827,6 +16766,10 @@ msgstr ""
 msgid "Extracting HL7 from XML file"
 msgstr ""
 
+#, python-format
+msgid "Unwrapped HL7 into [%s] from [%s]."
+msgstr ""
+
 msgid "Select HL7 file for staging:"
 msgstr ""
 
@@ -15850,6 +16793,10 @@ msgid ""
 " %s"
 msgstr ""
 
+#, python-format
+msgid "Staged HL7 from [%s]."
+msgstr ""
+
 msgid "Importing HL7 data"
 msgstr ""
 
@@ -15895,9 +16842,6 @@ msgstr ""
 msgid "Identification"
 msgstr "Vaksinasjon"
 
-msgid "Show"
-msgstr ""
-
 msgid "Show formatted HL7"
 msgstr ""
 
@@ -15945,6 +16889,20 @@ msgstr ""
 msgid "Plot current selection"
 msgstr "Dokumenter:"
 
+#, fuzzy
+msgid ""
+"Select the measurements panel to show in the top pane for continuous "
+"monitoring."
+msgstr "Dokumenter: %s"
+
+#, fuzzy
+msgid "Lab panel"
+msgstr "etternavn"
+
+#, fuzzy
+msgid "Configuring continuous monitoring measurements panel"
+msgstr "Dokumenter:"
+
 msgid "No default Gnuplot script template selected."
 msgstr ""
 
@@ -15970,10 +16928,25 @@ msgstr ""
 msgid "Cannot plot without a plot script."
 msgstr ""
 
-msgid "Time"
+msgid "Result"
 msgstr ""
 
-msgid "Result"
+msgid "Perform on selected results:"
+msgstr ""
+
+msgid "Review and &sign"
+msgstr ""
+
+msgid "Export to &file"
+msgstr ""
+
+msgid "Export to &clipboard"
+msgstr ""
+
+msgid "Panels"
+msgstr ""
+
+msgid "List"
 msgstr ""
 
 msgid ""
@@ -16050,18 +17023,6 @@ msgstr ""
 msgid "All: by &Day"
 msgstr ""
 
-msgid "Perform on selected results:"
-msgstr ""
-
-msgid "Review and &sign"
-msgstr ""
-
-msgid "Export to &file"
-msgstr ""
-
-msgid "Export to &clipboard"
-msgstr ""
-
 #, python-format
 msgid "%s results selected. Too many to list individually."
 msgstr ""
@@ -16243,6 +17204,10 @@ msgstr ""
 msgid "EMR Actions:"
 msgstr ""
 
+#, fuzzy
+msgid "Print EMR"
+msgstr "avsluttet"
+
 msgid "Create health issue"
 msgstr ""
 
@@ -16398,11 +17363,42 @@ msgstr ""
 msgid "&New notes %s"
 msgstr ""
 
+msgid "Find text in EMR Journal"
+msgstr ""
+
+#, fuzzy
+msgid "Modified"
+msgstr "endret verdi"
+
+#, fuzzy
+msgid "Clinical time"
+msgstr "Vaksinasjon"
+
+msgid "Who / When"
+msgstr ""
+
+#, python-format
 msgid ""
-"An error occurred while retrieving the EMR\n"
-"in journal form for the active patient.\n"
+"Chart entry: %s       [#%s in %s]\n"
+" Modified: %s by %s (%s rev %s)\n"
 "\n"
-"Please check the log file for details."
+"Health issue: %s%s\n"
+"Episode: %s%s\n"
+"Encounter: %s%s"
+msgstr ""
+
+#, python-format
+msgid ""
+"%s\n"
+"\n"
+"                        rev %s (%s) by %s in <%s>"
+msgstr ""
+
+#, python-format
+msgid ""
+"%s\n"
+"%s\n"
+"%s"
 msgstr ""
 
 msgid "Editing tag"
@@ -16532,18 +17528,15 @@ msgid ""
 "%s\n"
 msgstr ""
 
-msgid "This patient DID receive care."
+msgid "This patient DID receive care here."
 msgstr ""
 
-msgid "This person did NOT receive care."
+msgid "This person did NOT receive care here."
 msgstr ""
 
 msgid "Disabling person"
 msgstr ""
 
-msgid "Disabling patient"
-msgstr ""
-
 msgid "Type or select a last name (family name/surname)."
 msgstr ""
 
@@ -16790,6 +17783,9 @@ msgid ""
 "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
 msgstr ""
 
+msgid "Connecting to backend"
+msgstr ""
+
 #, python-format
 msgid ""
 "Unable to connect to database:\n"
@@ -16998,9 +17994,6 @@ msgstr ""
 msgid "Office"
 msgstr ""
 
-msgid "State"
-msgstr ""
-
 msgid "Zip"
 msgstr ""
 
@@ -17057,8 +18050,9 @@ msgstr ""
 msgid "EMR Timeline"
 msgstr ""
 
-msgid "Show &Timeline"
-msgstr ""
+#, fuzzy
+msgid "EMR &Timeline"
+msgstr "avsluttet"
 
 msgid "Overview"
 msgstr ""
@@ -17084,10 +18078,10 @@ msgstr ""
 msgid "&SimpleNotes"
 msgstr ""
 
-msgid "EMR tree"
+msgid "EMR Tree"
 msgstr ""
 
-msgid "EMR &Tree (topical)"
+msgid "EMR &Tree"
 msgstr ""
 
 #, fuzzy
@@ -17098,6 +18092,12 @@ msgstr "avsluttet"
 msgid "&Print Manager"
 msgstr "avsluttet"
 
+msgid "EMR Journal"
+msgstr ""
+
+msgid "EMR &Journal (list)"
+msgstr ""
+
 msgid "Appointments"
 msgstr ""
 
@@ -17110,6 +18110,12 @@ msgstr ""
 msgid "Show &lab journal"
 msgstr ""
 
+msgid "PACS"
+msgstr ""
+
+msgid "&PACS"
+msgstr ""
+
 msgid "Cardiac Devices"
 msgstr ""
 
@@ -17182,10 +18188,7 @@ msgstr ""
 msgid "User &manual (local)"
 msgstr ""
 
-msgid "EMR journal"
-msgstr ""
-
-msgid "EMR &Journal (chronological)"
+msgid "EMR &Journal (text)"
 msgstr ""
 
 msgid "Demographics"
@@ -17348,6 +18351,10 @@ msgstr ""
 msgid "Show &ExamplePlugin"
 msgstr ""
 
+#, fuzzy
+msgid "Find text"
+msgstr "inaktiv"
+
 msgid "gm_ctl_client: starting slave GNUmed client"
 msgstr ""
 
@@ -17375,12 +18382,34 @@ msgid "Abort and do NOT connect to GNUmed."
 msgstr ""
 
 #, fuzzy
-#~ msgid "%s: %s%s%s (%s ago)"
+#~ msgid ""
+#~ "Health issue: %s%s%s (%s versions)\n"
+#~ "\n"
+#~ msgstr "Dokumenter: %s"
+
+#, fuzzy
+#~ msgid ""
+#~ "Episode: %s%s%s (%s versions)\n"
+#~ "\n"
 #~ msgstr " Status: %s, %s"
 
 #, fuzzy
-#~ msgid "file: %s (%s/)"
-#~ msgstr "   Dok: %s"
+#~ msgid ""
+#~ "\n"
+#~ "current values:\n"
+#~ msgstr "ukjent allergistatus"
+
+#, fuzzy
+#~ msgid "Search in list"
+#~ msgstr "Lab resultat"
+
+#, fuzzy
+#~ msgid "&Unknown"
+#~ msgstr "ukjent reaksjon"
+
+#, fuzzy
+#~ msgid "Last confirmed: %s%s"
+#~ msgstr "etternavn"
 
 #, fuzzy
 #~ msgid "Switching clinical hint activation"
@@ -17460,14 +18489,6 @@ msgstr ""
 #~ msgstr "Pasient: %s (%s), Nr: %s\n"
 
 #, fuzzy
-#~ msgid " Type: %s"
-#~ msgstr "   Dok: %s"
-
-#, fuzzy
-#~ msgid "Lab name"
-#~ msgstr "etternavn"
-
-#, fuzzy
 #~ msgid "&Documents review"
 #~ msgstr "Dokumenter: %s"
 
diff --git a/client/po/nl-gnumed.mo b/client/po/nl-gnumed.mo
index 1317254..16c49e9 100644
Binary files a/client/po/nl-gnumed.mo and b/client/po/nl-gnumed.mo differ
diff --git a/client/po/nl.po b/client/po/nl.po
index b176c95..6547cf1 100644
--- a/client/po/nl.po
+++ b/client/po/nl.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gnumed\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-12-26 20:28+0100\n"
+"POT-Creation-Date: 2016-03-17 16:27+0100\n"
 "PO-Revision-Date: 2012-06-01 01:19+0000\n"
 "Last-Translator: Anik ten Have <anik at itchi-go.nl>\n"
 "Language-Team: Dutch <nl at li.org>\n"
@@ -1567,10 +1567,22 @@ msgstr ""
 "Hulp gevraagd\n"
 "--------------------"
 
+#, fuzzy, python-format
+msgid "Revision #%s"
+msgstr "Versie"
+
 #, python-format
 msgid "[%s:%s]: row not updated (nothing returned), row in use ?"
 msgstr ""
 
+#, fuzzy, python-format
+msgid "<%s(.bat)> not found"
+msgstr "pgAdmin III niet gevonden."
+
+#, fuzzy, python-format
+msgid "problem with <%s>"
+msgstr "Probleem"
+
 #, python-format
 msgid "[%s] is not a readable file"
 msgstr "[%s] is geen leesbaar bestand"
@@ -1605,28 +1617,9 @@ msgstr "1 Byte"
 msgid "%s Bytes"
 msgstr "%s Bytes"
 
-#, python-format
-msgid ""
-"Cannot connect to configuration database with:\n"
-"\n"
-"[%s]"
-msgstr ""
-"Kan niet verbinden met configuratie database met:\n"
-"\n"
-"[%s]"
-
-#, python-format
-msgid ""
-"Cannot connect to database with:\n"
-"\n"
-"[%s]"
-msgstr ""
-"Kan niet verbinden met database met:\n"
-"\n"
-"[%s]"
-
-msgid "No product information available."
-msgstr "Geen produktinformatie beschikbaar."
+#, fuzzy
+msgid "<type>"
+msgstr "soort"
 
 #, python-format
 msgid ""
@@ -1986,107 +1979,6 @@ msgstr " optie [%s]: %s"
 msgid "  risk: %s"
 msgstr "  risico: %s"
 
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Are you sure you have got a local database installed ?\n"
-"\n"
-"Please retry with proper credentials or cancel.\n"
-"\n"
-"You may also need to check the PostgreSQL client\n"
-"authentication configuration in pg_hba.conf. For\n"
-"details see:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-msgstr ""
-"Kan geen verbinding maken met de database:\n"
-"\n"
-"%s\n"
-"\n"
-"Weet je zeker dat er een lokale database geïnstalleerd is?\n"
-"\n"
-"Probeer het nogmaals met juiste inloggegevens of annuleer.\n"
-"\n"
-"Mogelijk dient u de authenticatie gegevens in pg_hba.conf \n"
-"van uw PostgreSQL client te controleren. voor meer informatie\n"
-"ga naar:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Please retry with proper credentials or cancel.\n"
-"\n"
-"You may also need to check the PostgreSQL client\n"
-"authentication configuration in pg_hba.conf. For\n"
-"details see:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-msgstr ""
-"Kan geen verbinding maken met de database:\n"
-"\n"
-"%s\n"
-"\n"
-"Probeer het nogmaals met juiste inloggegevens of annuleer.\n"
-"\n"
-"Mogelijk dient u de authenticatie gegevens in pg_hba.conf\n"
-"van uw PostgreSQL client te controleren. voor meer informatie\n"
-"ga naar:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-
-msgid "Connecting to backend"
-msgstr "Verbinden met backend"
-
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Please retry another backend / user / password combination !\n"
-msgstr ""
-"Kan geen verbinding maken met de database\n"
-"\n"
-"%s\n"
-"\n"
-"Probeer het nogmaals met een andere backen / gebruiker / wachtwoord "
-"combinatie !\n"
-
-msgid "programmer forgot to specify error message"
-msgstr "programmeur vergat foutmelding te specificeren"
-
-msgid ""
-"\n"
-"\n"
-"Please consult the error log for all the gory details !"
-msgstr ""
-"\n"
-"\n"
-"Bekijk het foutenlogboek voor alle details!"
-
-msgid "generic error message"
-msgstr "algemene fout"
-
-msgid "programmer forgot to specify info message"
-msgstr "programmeur vergat bericht te specificeren"
-
-msgid "generic info message"
-msgstr "algemeen informatie bericht"
-
-msgid "programmer forgot to specify warning"
-msgstr "programmeur vergat waarschuwing te specificeren"
-
-msgid "generic warning message"
-msgstr "algemene waarschuwing"
-
 msgid "no hook specified, please report bug"
 msgstr "geen aankopingspunt gespecificeerd, rapporteer fout alstublieft."
 
@@ -2444,6 +2336,34 @@ msgstr ""
 msgid "Include:"
 msgstr ""
 
+#, fuzzy
+msgid "&Search"
+msgstr "Zoeken"
+
+msgid "Suggest"
+msgstr ""
+
+msgid "Set"
+msgstr "Instellen"
+
+msgid "dialog_1"
+msgstr ""
+
+msgid "Search patients in Orthanc DICOM store."
+msgstr ""
+
+#, fuzzy
+msgid "Suggest a patient ID based on the active patient."
+msgstr "Begin een niewe ontmoeting voor de actieve patiënt."
+
+#, fuzzy
+msgid "Search term:"
+msgstr "Geef zoekterm in:"
+
+#, fuzzy
+msgid "New patient ID:"
+msgstr "interne patiëntennummer"
+
 msgid "Your review"
 msgstr "Uw beoordeling"
 
@@ -2782,6 +2702,107 @@ msgstr "Stof"
 msgid "Amount"
 msgstr "Account"
 
+#, fuzzy
+msgid "&Connect"
+msgstr "Context"
+
+#, fuzzy
+msgid "&Browse"
+msgstr "GeneesmiddelenBladeraar"
+
+#, fuzzy
+msgid "<not connected>"
+msgstr "instellingen bewaren"
+
+#, fuzzy
+msgid "Browse all"
+msgstr "GeneesmiddelenBladeraar"
+
+#, fuzzy
+msgid "Export all"
+msgstr "teken alle delen af"
+
+#, fuzzy
+msgid "Browse"
+msgstr "GeneesmiddelenBladeraar"
+
+#, fuzzy
+msgid "Export"
+msgstr "Rapport"
+
+#, fuzzy
+msgid "Upload"
+msgstr "Herladen"
+
+#, fuzzy
+msgid "Enter the PACS host address."
+msgstr "Geef het huisnummer voor dit adres in."
+
+msgid "Enter the PACS port."
+msgstr ""
+
+msgid "Enter the PACS user."
+msgstr ""
+
+#, fuzzy
+msgid "Enter the PACS password. It will not be shown."
+msgstr "Kan niet verbinden als de database eigenaar <gm-dbo>"
+
+#, fuzzy
+msgid "Connect to PACS."
+msgstr "Verbinden met GNUmed"
+
+msgid "Browse PACS at top level."
+msgstr ""
+
+msgid "Modify some of Orthanc content (such as patient IDs)."
+msgstr ""
+
+#, fuzzy
+msgid "Browse overview of studies for this patient."
+msgstr "Bewerk details van het beroep voor de huidige patiënt."
+
+#, fuzzy
+msgid "Copy all studies into export area."
+msgstr "patiënt activeren van rapportresultaat"
+
+#, fuzzy
+msgid "Browse topmost selected study."
+msgstr "Bewerk het geselecteerde item."
+
+#, fuzzy
+msgid "Copy selected studies into export area."
+msgstr "patiënt activeren van rapportresultaat"
+
+#, fuzzy
+msgid "Save selected studies to disk."
+msgstr "Verwijder de geselecteerde items van de lijst."
+
+msgid ""
+"Upload DICOM files from a directory, recursively, into the Orthanc PACS\n"
+"\n"
+"The currently active patient does not matter. Orthanc will associate "
+"uploaded files with the patient found within the DICOM metadata. It will "
+"create new patients as needed."
+msgstr ""
+
+msgid "Host:"
+msgstr ""
+
+msgid "Port:"
+msgstr ""
+
+#, fuzzy
+msgid "User:"
+msgstr "Gebruiker1"
+
+msgid "Password"
+msgstr "Wachtwoord"
+
+#, fuzzy
+msgid "Selected studies:"
+msgstr "Patiënt selecteren"
+
 msgid "Fake brand"
 msgstr ""
 
@@ -3138,10 +3159,6 @@ msgstr "algemene fout"
 msgid "&Load"
 msgstr ""
 
-#, fuzzy
-msgid "Export"
-msgstr "Rapport"
-
 msgid "A long, descriptive name for this form template."
 msgstr "Een langere, beschrijvende naam voor dit template."
 
@@ -3241,16 +3258,13 @@ msgid "Document Properties"
 msgstr "Documenteigenschappen"
 
 #, fuzzy
-msgid "Show part"
+msgid "Show"
 msgstr "toon onderdeel"
 
 #, fuzzy
 msgid "Remove part"
 msgstr "verwijder onderdeel"
 
-msgid "Parts"
-msgstr "Onderdelen"
-
 msgid "Discard"
 msgstr "Verwerpen"
 
@@ -3289,6 +3303,10 @@ msgstr ""
 "Benodigd: de primaire episode waar dit document onder vermeld dient te "
 "worden."
 
+#, fuzzy
+msgid "Optional: The organization (unit) this document originated from."
+msgstr "instellingen bewaren"
+
 msgid ""
 "Optional: A short comment identifying the document. Good comments give an "
 "idea of the content and source of the document."
@@ -3323,6 +3341,9 @@ msgstr ""
 "Of dit document klinisch relevante uitslagen rapporteert. Merk op dat zowel "
 "normale en afwijkende resultaten relevant kunnen zijn."
 
+msgid "Optional: A free-text document description."
+msgstr "Optioneel: een documentbeschrijving vrij in te vullen"
+
 msgid "This field lists the parts belonging to the current document."
 msgstr "Dit veld noemt de delen die bij het huidige document horen."
 
@@ -3336,9 +3357,6 @@ msgstr ""
 "Verwijder het hierboven geselecteerde deel uit de lijst. Voordat het van de "
 "harde schijf gewist wordt zal er toestemming gevraagd worden."
 
-msgid "Optional: A free-text document description."
-msgstr "Optioneel: een documentbeschrijving vrij in te vullen"
-
 msgid "Save finished document."
 msgstr "Bewaar voltooid document."
 
@@ -3357,6 +3375,10 @@ msgid "Associate to episode:"
 msgstr "Associeren met episode:"
 
 #, fuzzy
+msgid "Document source:"
+msgstr "Documenten"
+
+#, fuzzy
 msgid "Comment / Identification:"
 msgstr "Huidige medicatie"
 
@@ -3566,8 +3588,9 @@ msgstr ""
 msgid "Messages:"
 msgstr "bericht"
 
-msgid "Only:"
-msgstr ""
+#, fuzzy
+msgid "Limit to:"
+msgstr "Instellen"
 
 msgid "&Myself … or:"
 msgstr ""
@@ -3692,13 +3715,13 @@ msgstr "Beeindigd"
 msgid "Purpose"
 msgstr "Opties ..."
 
-msgid "Details"
-msgstr "Bijzonderheden"
-
 #, fuzzy
-msgid "<Please supply your email address here !>"
+msgid "Please supply your email address here !"
 msgstr "Voer uw emailadres in."
 
+msgid "Details"
+msgstr "Bijzonderheden"
+
 msgid "Keep running"
 msgstr "Blijf draaien"
 
@@ -3721,9 +3744,11 @@ msgstr "Geef overige informatie of commentaar zoals wat u wilde doen."
 
 #, fuzzy
 msgid ""
-"Please enter your email address so we can provide feedback directly to you. "
-"Otherwise, feedback will be given on the GNUmed mailing list (http://lists."
-"gnu.org/mailman/listinfo/gnumed-bugs)."
+"Please enter your email address so we can provide help to you directly.\n"
+"\n"
+"Otherwise, feedback can be given on the GNUmed mailing list (http://lists."
+"gnu.org/mailman/listinfo/gnumed-bugs) ONLY to which you will then have to "
+"subscribe."
 msgstr ""
 "Geef alstublieft uw emailadres in zodat we u feedback kunnen geven. Anders "
 "zal de feedback gegeven worden op de GNUmed mailinglijs (http://lists.gnu."
@@ -3889,9 +3914,6 @@ msgstr "Parameters"
 msgid "Account"
 msgstr "Account"
 
-msgid "Password"
-msgstr "Wachtwoord"
-
 msgid "Password, again"
 msgstr "Wachtwoord, nogmaals"
 
@@ -4441,8 +4463,9 @@ msgstr "Documenteigenschappen bewerken"
 msgid "Acquire images from image source (scanner, ...)."
 msgstr ""
 
-msgid "Acquire images or text from the clipboard."
-msgstr ""
+#, fuzzy
+msgid "Acquire file or text from the clipboard."
+msgstr "Verwijder de geselecteerde items van de lijst."
 
 #, fuzzy
 msgid "Remove the selected documents."
@@ -4607,7 +4630,7 @@ msgid ""
 "- the result list will be artificially limited to the first 1000 rows\n"
 "- you can include a column named \"pk_patient\" to make the result rows "
 "activate the corresponding patient on double-clicking\n"
-"- by inserting $<ID_active_patient>$ you can access the patient ID of the "
+"- by inserting $<ID_ACTIVE_PATIENT>$ you can access the patient ID of the "
 "patient active at the time of running the query"
 msgstr ""
 
@@ -4798,10 +4821,6 @@ msgstr ""
 msgid "Link &new"
 msgstr ""
 
-#, fuzzy
-msgid "Browse"
-msgstr "GeneesmiddelenBladeraar"
-
 msgid ""
 "Search for matches among existing addresses and [Link] a selection, or [Link "
 "(a) new] address."
@@ -4860,29 +4879,17 @@ msgstr ""
 "Vink dit aan als u instemt met de huidige beslissing over de klinische "
 "relevantie van de uitslagen."
 
-msgid "label_1"
-msgstr ""
-
-msgid "→"
-msgstr ""
-
-msgid "←"
-msgstr ""
-
-msgid "Extra"
-msgstr ""
+msgid "Subjective"
+msgstr "Anamnese"
 
-#, fuzzy
-msgid "Move selected items from left to right."
-msgstr "Verwijder de geselecteerde items van de lijst."
+msgid "Objective"
+msgstr "Bevindingen"
 
-#, fuzzy
-msgid "Move selected items from right to left."
-msgstr "Verwijder de geselecteerde items van de lijst."
+msgid "Assessment"
+msgstr "Conclusie"
 
-#, fuzzy
-msgid "Cancel picking items."
-msgstr "Annuleer deze beoordeling."
+msgid "Plan"
+msgstr "Plan"
 
 #, fuzzy
 msgid "Episode synopsis"
@@ -4923,21 +4930,33 @@ msgid ""
 "narrative belongs to."
 msgstr ""
 
-msgid "Subjective"
-msgstr "Anamnese"
-
 #, fuzzy
 msgid "Codes:"
 msgstr "Code"
 
-msgid "Objective"
-msgstr "Bevindingen"
+msgid "label_1"
+msgstr ""
 
-msgid "Assessment"
-msgstr "Conclusie"
+msgid "→"
+msgstr ""
 
-msgid "Plan"
-msgstr "Plan"
+msgid "←"
+msgstr ""
+
+msgid "Extra"
+msgstr ""
+
+#, fuzzy
+msgid "Move selected items from left to right."
+msgstr "Verwijder de geselecteerde items van de lijst."
+
+#, fuzzy
+msgid "Move selected items from right to left."
+msgstr "Verwijder de geselecteerde items van de lijst."
+
+#, fuzzy
+msgid "Cancel picking items."
+msgstr "Annuleer deze beoordeling."
 
 msgid "1"
 msgstr ""
@@ -5127,6 +5146,90 @@ msgstr ""
 msgid "Age range"
 msgstr "bereik"
 
+msgid "&Nicotine"
+msgstr ""
+
+msgid "&Alcohol"
+msgstr ""
+
+#, fuzzy
+msgid "&Other:"
+msgstr "Eigenaar"
+
+msgid "&Non-harmful use"
+msgstr ""
+
+msgid "&Harmful use"
+msgstr ""
+
+msgid "Presently &addicted"
+msgstr ""
+
+#, fuzzy
+msgid "Previously &addicted"
+msgstr "Ontmoeting"
+
+msgid "&Reconfirm as of today"
+msgstr ""
+
+#, fuzzy
+msgid "Select for documenting smoking status."
+msgstr "Bewerk details van het geselecteerde staflid."
+
+msgid "Select for documenting alcohol use status."
+msgstr ""
+
+msgid ""
+"Select for documenting use of substances other than nicotine or alcohol."
+msgstr ""
+
+#, fuzzy
+msgid "Select the abused substance."
+msgstr "Selecteer het soort adres."
+
+msgid ""
+"Select if the substance use is not considered harmful (say, no use or non-"
+"harmful use)."
+msgstr ""
+
+msgid "Select if substance is use considered harmful."
+msgstr ""
+
+#, fuzzy
+msgid "Select if the patient is presently addicted to this substance."
+msgstr "Selecteer dit als de reactie een allergie is."
+
+#, fuzzy
+msgid "Select if the patient was previously addicted to this substance."
+msgstr "Selecteer dit als de reactie een allergie is."
+
+msgid ""
+"A comment on this substance use:\n"
+"- type of product used\n"
+"- frequency\n"
+"- amount\n"
+"- when started\n"
+"- attempts to quit\n"
+"..."
+msgstr ""
+
+msgid ""
+"When did the patient quit?\n"
+"\n"
+"You can also set a target quit date here."
+msgstr ""
+
+msgid "Check here to confirm for today."
+msgstr ""
+
+#, fuzzy
+msgid "Quit date"
+msgstr "datum"
+
+#, fuzzy
+msgid "Last confirmed"
+msgstr "Laatst gewijzigd:"
+
 #, fuzzy
 msgid "Closed episodes"
 msgstr "Oude episode"
@@ -5515,23 +5618,20 @@ msgstr ""
 msgid "Show:"
 msgstr ""
 
-#, fuzzy
-msgid "Brand by component"
-msgstr "Meting bewerken"
+msgid "Kidneys"
+msgstr ""
 
 #, fuzzy
 msgid "Brands"
 msgstr "Branch"
 
-msgid "Kidneys"
-msgstr ""
-
 #, fuzzy
-msgid "Unbranded substance"
+msgid "Substances"
 msgstr "Stof"
 
-msgid "Manage"
-msgstr ""
+#, fuzzy
+msgid "&Unknown or date:"
+msgstr "onbekende reactie"
 
 msgid "Approved of"
 msgstr ""
@@ -5548,23 +5648,20 @@ msgid "... Reason"
 msgstr "Reactie"
 
 msgid ""
-"A component of a drug brand the patient is taking.\n"
+"A drug the patient is taking.\n"
 "\n"
-"Lookup, and select, a single- (or multi-) component drug brand, by active "
-"ingredient name. All components of multi-component drugs will be displayed "
-"and automatically added to the patient's list."
-msgstr ""
-
-msgid ""
-"Manage drug brands.\n"
+"Lookup and select an intake by either of\n"
+"- a generic substance name\n"
+"- a drug brand name\n"
+"- an active ingredient of a drug\n"
 "\n"
-"Note that this will not select a component for you. What it does is to let "
-"you manage (add/edit/delete) the drug products/brands known to GNUmed from "
-"which you can select a component."
+"Note that all components of multi-component drugs will be displayed and "
+"automatically added to the patient's list."
 msgstr ""
 
-msgid "The active ingredients of this brand."
-msgstr ""
+#, fuzzy
+msgid "Details on the selected drug."
+msgstr "moet adres selecteren"
 
 msgid "Show cardiac information relevant to substance selection."
 msgstr ""
@@ -5573,8 +5670,11 @@ msgid "Show renal insufficiency information related to substance selection."
 msgstr ""
 
 msgid ""
-"The non-branded medication or non-medication substance, with optional "
-"strength."
+"Manage drug brands.\n"
+"\n"
+"Note that this will not select a component for you. What it does is to let "
+"you manage (add/edit/delete) the drug products/brands known to GNUmed from "
+"which you can select a component."
 msgstr ""
 
 msgid ""
@@ -5588,11 +5688,20 @@ msgstr ""
 msgid "The preparation or form of the substance."
 msgstr "De eenheid waarin dit resultaat komt."
 
+#, fuzzy
+msgid "Check here if the start date simply isn't known."
+msgstr "Zoek voor gegevens in het EMD van de actieve patiënt"
+
 msgid ""
 "When was this substance started to be consumed or - if not known - the "
 "earliest it is known to have been be consumed."
 msgstr ""
 
+msgid ""
+"A coment on the certainty of the start date, such as \"+/- 3 weeks\", "
+"\"spring of 2002\", \"shortly after Easter 1996\", ...."
+msgstr ""
+
 msgid "Whether this substance is taken by advice."
 msgstr ""
 
@@ -5626,6 +5735,17 @@ msgstr ""
 msgid "Reason for discontinuation."
 msgstr ""
 
+msgid "Drug"
+msgstr "Geneesmiddel"
+
+#, fuzzy
+msgid "Research:"
+msgstr "Zoeken"
+
+#, fuzzy
+msgid "Certainty:"
+msgstr "Zekerheid"
+
 #, fuzzy
 msgid "Schedule"
 msgstr "Actieve Schema"
@@ -5799,6 +5919,34 @@ msgstr ""
 msgid "Channel"
 msgstr "Kanaal"
 
+#, fuzzy
+msgid "&Last modification time"
+msgstr "Laatst gewijzigd:"
+
+#, fuzzy
+msgid "&Entry time"
+msgstr "Begin nieuw"
+
+msgid "Show journal ordered by encounter."
+msgstr ""
+
+msgid "Show journal ordered by time of last modification."
+msgstr ""
+
+msgid "Show journal ordered by actual clinical time of each entry."
+msgstr ""
+
+#, fuzzy
+msgid "Edit the selected chart entry."
+msgstr "Bewerk het geselecteerde item."
+
+#, fuzzy
+msgid "Delete selected chart entry."
+msgstr "Verwijderen van BSN"
+
+msgid "Order by:"
+msgstr ""
+
 msgid "Chec&k"
 msgstr ""
 
@@ -6420,12 +6568,16 @@ msgid "Documents:"
 msgstr "Documenten"
 
 #, fuzzy
+msgid "&L"
+msgstr "L"
+
+#, fuzzy
 msgid "&N"
 msgstr "&Nieuw"
 
 #, fuzzy
-msgid "&L"
-msgstr "L"
+msgid "List all encounters."
+msgstr "%s: ontmoeting (%s)"
 
 #, fuzzy
 msgid "The encounter."
@@ -6435,10 +6587,6 @@ msgstr "%s: ontmoeting (%s)"
 msgid "Start a new encounter for the active patient."
 msgstr "Begin een niewe ontmoeting voor de actieve patiënt."
 
-#, fuzzy
-msgid "List all encounters."
-msgstr "%s: ontmoeting (%s)"
-
 msgid "Clinically relevant"
 msgstr "Klinisch relevant"
 
@@ -6732,10 +6880,12 @@ msgstr ""
 msgid "Manage dynamic hints."
 msgstr "Meting bewerken"
 
+#, fuzzy
 msgid ""
 "Rationale for\n"
-"suppression"
-msgstr ""
+"suppression\n"
+"for this patient"
+msgstr "Lijst met momenteel bestaande stafleden."
 
 #, fuzzy
 msgid "Save &under"
@@ -6797,6 +6947,12 @@ msgstr "Niet relevant"
 msgid "Encounter:"
 msgstr "Ontmoeting"
 
+msgid "Manage"
+msgstr ""
+
+msgid "&Panel:"
+msgstr ""
+
 msgid "&Pick"
 msgstr ""
 
@@ -6846,6 +7002,10 @@ msgstr ""
 "\n"
 "Om dit welkomsscherm uit te zetten kunt u het welkomsbericht leeg laten."
 
+#, fuzzy
+msgid "Show search dialog."
+msgstr "Sluit deze dialoog."
+
 msgid "THIS IS NOT A VERIFIED MEASUREMENT. DO NOT USE FOR ACTUAL CARE."
 msgstr ""
 
@@ -7137,6 +7297,57 @@ msgstr "heeft *wel* allergiën"
 msgid "ERROR: unknown allergy state [%s]"
 msgstr "FOUT: onbekende allergie-status [%s]"
 
+msgid "definite"
+msgstr "zekere"
+
+#, fuzzy
+msgid "indefinite"
+msgstr "zekere"
+
+#, fuzzy
+msgid "Reaction:"
+msgstr "Reactie"
+
+#, fuzzy
+msgid "Noted:"
+msgstr "Aantekening"
+
+#, fuzzy
+msgid "Allergene:"
+msgstr "Allergieën"
+
+#, fuzzy
+msgid "Substance:"
+msgstr "Stof"
+
+#, fuzzy
+msgid "Code:"
+msgstr "Code"
+
+#, fuzzy
+msgid "ATC:"
+msgstr "   MTA: %s"
+
+#, fuzzy
+msgid "Specific to:"
+msgstr "Instellen"
+
+#, fuzzy
+msgid "this substance only"
+msgstr "Naam bewerken"
+
+#, fuzzy
+msgid "drug class"
+msgstr "Medicijn categorie"
+
+#, fuzzy
+msgid "unknown"
+msgstr "Onbekend"
+
+#, fuzzy
+msgid "Generics:"
+msgstr "Generiek"
+
 msgid "Medication history"
 msgstr "Medische geschiedenis"
 
@@ -7149,9 +7360,16 @@ msgid "prescription data"
 msgstr "Voorschrifen"
 
 #, fuzzy
+msgid "Consumable substance"
+msgstr "Naam bewerken"
+
+#, fuzzy
 msgid "in use"
 msgstr "In gebruik"
 
+msgid "w/"
+msgstr ""
+
 msgid "long-term"
 msgstr "Lange termijn"
 
@@ -7170,11 +7388,40 @@ msgstr "inactief"
 msgid "?ongoing"
 msgstr "?doorgaand"
 
-#, python-format
-msgid "Substance intake entry (%s, %s)   [#%s]                     \n"
-msgstr ""
+#, fuzzy, python-format
+msgid ""
+"Substance abuse entry                                              [#%s]\n"
+msgstr "laden lijst van plugins                               "
 
-msgid "active, needs check"
+#, fuzzy, python-format
+msgid "Substance: %s [#%s]%s\n"
+msgstr "Stof"
+
+#, fuzzy, python-format
+msgid "Use type: %s\n"
+msgstr "Geexporteerd: %s\n"
+
+#, fuzzy, python-format
+msgid "Last checked: %s\n"
+msgstr "Laatst gewerkt aan: %s\n"
+
+#, python-format
+msgid " Discontinued %s\n"
+msgstr ""
+
+#, fuzzy, python-format
+msgid " Notes: %s\n"
+msgstr "Geexporteerd: %s\n"
+
+#, python-format
+msgid "Revision: #%(row_ver)s, %(mod_when)s by %(mod_by)s."
+msgstr ""
+
+#, python-format
+msgid "Substance intake entry (%s, %s)   [#%s]                     \n"
+msgstr ""
+
+msgid "active, needs check"
 msgstr ""
 
 #, fuzzy
@@ -7187,9 +7434,6 @@ msgstr ""
 msgid "unapproved"
 msgstr ""
 
-msgid "definite"
-msgstr "zekere"
-
 msgid "suspected"
 msgstr ""
 
@@ -7237,10 +7481,6 @@ msgstr ""
 msgid " (short-term)"
 msgstr ""
 
-#, python-format
-msgid " Discontinued %s\n"
-msgstr ""
-
 #, fuzzy, python-format
 msgid " Reason: %s\n"
 msgstr " Nieuwe versie: \"%s\"\n"
@@ -7261,18 +7501,62 @@ msgstr "gezondheidsprobleem: %s"
 msgid " Advice: %s\n"
 msgstr ""
 
-#, python-format
-msgid "Revision: #%(row_ver)s, %(mod_when)s by %(mod_by)s."
+#, fuzzy
+msgid "medication, not abuse"
+msgstr "Lijst met medicatie"
+
+msgid "no or non-harmful use"
+msgstr ""
+
+msgid "presently harmful use"
+msgstr ""
+
+msgid "presently addicted"
+msgstr ""
+
+msgid "previously addicted"
 msgstr ""
 
 #, fuzzy, python-format
-msgid "%s: %s ago"
+msgid "%s%s: %s ago%s"
 msgstr "Geexporteerd: %s\n"
 
 #, fuzzy, python-format
-msgid "%s: %s ago (%s)"
+msgid "%s%s: %s ago (%s)"
+msgstr "%s%7s %s: %s (%s part(s), %s)"
+
+#, fuzzy, python-format
+msgid "%s%s%s (%s ago)"
+msgstr "%s%7s %s: %s (%s part(s), %s)"
+
+#, fuzzy, python-format
+msgid "%s%s%s (%s ago, %s)"
 msgstr "%s%7s %s: %s (%s part(s), %s)"
 
+#, python-format
+msgid "%s ago"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "in %s"
+msgstr "Documenten: %s"
+
+#, fuzzy, python-format
+msgid ", until %s (%s)"
+msgstr "SQL: %s"
+
+#, fuzzy, python-format
+msgid " (planned for %s%s)"
+msgstr "geen patiënt gevonden voor [%s]/%s"
+
+#, fuzzy, python-format
+msgid ", planned for %s%s"
+msgstr "geen patiënt gevonden voor [%s]/%s"
+
+#, fuzzy, python-format
+msgid "%s ago (for %s: %s %s %s)"
+msgstr "Ontmoetingen: %s (%s - %s):"
+
 msgid "Additional notes"
 msgstr "Overige aantekeningen"
 
@@ -7285,13 +7569,36 @@ msgstr "Lijst met medicatie"
 msgid "ordered by brand"
 msgstr "geordend naar merk"
 
-msgid "Drug"
-msgstr "Geneesmiddel"
-
 #, fuzzy
 msgid "Regimen / Advice"
 msgstr "Regio"
 
+#, fuzzy, python-format
+msgid "Component of %s (%s)"
+msgstr "Afspraken"
+
+#, fuzzy, python-format
+msgid "ATC (substance): %s"
+msgstr "Stof"
+
+#, fuzzy, python-format
+msgid "ATC (brand): %s"
+msgstr "Geexporteerd: %s\n"
+
+msgid "this is a component of a fake brand"
+msgstr ""
+
+#, fuzzy
+msgid "Components:"
+msgstr "Afspraken"
+
+msgid "this is a fake brand"
+msgstr ""
+
+#, fuzzy
+msgid "this is a vaccine"
+msgstr "Vaccin"
+
 msgid "units"
 msgstr "eenheden"
 
@@ -7327,52 +7634,15 @@ msgid "Expires: %s\n"
 msgstr "Geexporteerd: %s\n"
 
 #, fuzzy
-msgid "Active clinical hint"
-msgstr "Actieve problemen"
-
-#, fuzzy
-msgid "Inactive clinical hint"
-msgstr "sla klinische notitie op in EMD"
-
-#, fuzzy, python-format
-msgid "Source: %s\n"
-msgstr "Bron"
-
-#, fuzzy, python-format
-msgid "Language: %s\n"
-msgstr "Taal"
-
-#, fuzzy
-msgid "Suppressed active dynamic hint"
-msgstr "Meting bewerken"
-
-#, fuzzy
-msgid "Suppressed inactive dynamic hint"
-msgstr "Meting bewerken"
-
-#, fuzzy, python-format
-msgid "Suppressed by: %s\n"
-msgstr "uitgegeven door"
-
-#, fuzzy, python-format
-msgid "Suppressed at: %s\n"
-msgstr "Bron"
-
-#, fuzzy, python-format
-msgid "Hint #: %s\n"
-msgstr "Geexporteerd: %s\n"
+msgid "HL7 Source"
+msgstr "HTML-broncode"
 
-#, fuzzy, python-format
-msgid "Patient #: %s\n"
-msgstr "Patiënt"
+msgid "HL7 data size"
+msgstr ""
 
 #, fuzzy, python-format
-msgid "MD5 (currently): %s\n"
-msgstr "Documenten: %s"
-
-#, python-format
-msgid "MD5 (at suppression): %s\n"
-msgstr ""
+msgid "%s bytes"
+msgstr "%s Bytes"
 
 #, fuzzy
 msgid "HL7 Message"
@@ -7430,14 +7700,6 @@ msgid "doc: %s"
 msgstr "   Doc: %s"
 
 #, fuzzy
-msgid "no patient photograph available"
-msgstr "geen toelichting beschikbaar"
-
-#, fuzzy, python-format
-msgid "patient photograph from %s"
-msgstr "Kan patiëntenfoto niet instellen van [%s]."
-
-#, fuzzy
 msgid "Patient data for"
 msgstr "Patiëntendetails"
 
@@ -7448,6 +7710,10 @@ msgstr ""
 msgid "Patient data export"
 msgstr "Patiëntendetails"
 
+#, fuzzy
+msgid "no patient photograph available"
+msgstr "geen toelichting beschikbaar"
+
 msgid "Documents"
 msgstr "Documenten"
 
@@ -7458,6 +7724,10 @@ msgstr ""
 msgid "browse documents area"
 msgstr "alleen documenten toegevoegd"
 
+#, fuzzy, python-format
+msgid "patient photograph from %s"
+msgstr "Kan patiëntenfoto niet instellen van [%s]."
+
 #, fuzzy
 msgid "Browse patient data"
 msgstr "Patiëntendetails"
@@ -7498,24 +7768,24 @@ msgstr ""
 #, python-format
 msgid ""
 "%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s %(suburb)s, "
-"%(code_state)s, %(code_country)s"
+"%(code_region)s, %(code_country)s"
 msgstr ""
 
 #, python-format
 msgid ""
 "%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s %(suburb)s, "
-"%(code_state)s, %(code_country)s"
+"%(code_region)s, %(code_country)s"
 msgstr ""
 
 #, python-format
 msgid ""
-"%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_state)s, "
-"%(code_country)s"
+"%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, "
+"%(code_region)s, %(code_country)s"
 msgstr ""
 
 #, python-format
 msgid ""
-"%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_state)s, "
+"%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_region)s, "
 "%(code_country)s"
 msgstr ""
 
@@ -7525,7 +7795,7 @@ msgid ""
 " Street: %(street)s%(notes_street)s\n"
 " Number/Unit: %(number)s%(subunit)s%(notes_subunit)s\n"
 " Location: %(zip)s %(urb)s%(suburb)s\n"
-" Region: %(l10n_state)s, %(code_state)s\n"
+" Region: %(l10n_region)s, %(code_region)s\n"
 " Country: %(l10n_country)s, %(code_country)s"
 msgstr ""
 
@@ -7535,7 +7805,7 @@ msgid ""
 " Street: %(street)s%(notes_street)s\n"
 " Number/Unit: %(number)s%(subunit)s%(notes_subunit)s\n"
 " Location: %(zip)s %(urb)s%(suburb)s\n"
-" Region: %(l10n_state)s, %(code_state)s\n"
+" Region: %(l10n_region)s, %(code_region)s\n"
 " Country: %(l10n_country)s, %(code_country)s"
 msgstr ""
 
@@ -7608,6 +7878,98 @@ msgstr "verbeterde uitslag"
 msgid "missing, reported later"
 msgstr "vermist, rapport volgt"
 
+#, fuzzy
+msgid "Health issue"
+msgstr "Gezondheidsprobleem"
+
+#, fuzzy
+msgid "External care"
+msgstr "BSN bewerken."
+
+msgid "Vaccination"
+msgstr "Vaccinatie"
+
+#, fuzzy
+msgid "Clinical narrative"
+msgstr "Klinisch"
+
+#, fuzzy
+msgid "Test result"
+msgstr "Onderzoeksresultaten"
+
+#, fuzzy
+msgid "Substance intake"
+msgstr "Stof"
+
+#, fuzzy
+msgid "Hospital stay"
+msgstr "&Vaccinaties"
+
+#, fuzzy
+msgid "Performed procedure"
+msgstr ""
+" %s uitgevoerde behandelingen\n"
+"\n"
+
+#, fuzzy
+msgid "Family history"
+msgstr "medische geschiedenis"
+
+#, fuzzy
+msgid "Document"
+msgstr "Documenten"
+
+#, python-format
+msgid "unmapped entry type from table [%s]"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "cannot instantiate clinical root item <%s(%s)>"
+msgstr "kan patiënt [%s] (%s/%s) niet activeren"
+
+msgid "True"
+msgstr ""
+
+msgid "False"
+msgstr ""
+
+#, fuzzy
+msgid "unknown smoking status"
+msgstr "Bewerk details van het geselecteerde staflid."
+
+msgid "non-smoker"
+msgstr ""
+
+#, fuzzy
+msgid "current smoker"
+msgstr "Huidige medicatie"
+
+msgid "ex-smoker"
+msgstr ""
+
+msgid "tobacco addiction"
+msgstr ""
+
+msgid "no or non-harmful alcohol use"
+msgstr ""
+
+msgid "harmful alcohol use"
+msgstr ""
+
+#, fuzzy
+msgid "unknown alcohol use"
+msgstr "Onbekende allergie status"
+
+msgid "no or non-harmful drug use"
+msgstr ""
+
+msgid "harmful drug use"
+msgstr ""
+
+#, fuzzy
+msgid "unknown drug use"
+msgstr "Onbekende allergie status"
+
 msgid "original entry"
 msgstr "orginele invoer"
 
@@ -7713,14 +8075,6 @@ msgstr "Beroep"
 msgid "Vaccinations"
 msgstr "Vaccinaties"
 
-#, python-format
-msgid "%s ago"
-msgstr ""
-
-#, fuzzy
-msgid "External care"
-msgstr "BSN bewerken."
-
 #, fuzzy
 msgid "Allergies/Intolerances"
 msgstr "allergieën/ intolleranties"
@@ -7814,80 +8168,132 @@ msgid ""
 "The account was deactivated instead."
 msgstr ""
 
-#, python-format
-msgid "Device(%s):"
-msgstr "Toestel(%s):"
+msgid "SOAP_char_S=S"
+msgstr ""
 
-msgid "Battery:"
-msgstr "Batterij:"
+msgid "SOAP_char_O=O"
+msgstr ""
 
-msgid "Implanted:"
-msgstr "Geïmplanteerd:"
+msgid "SOAP_char_A=A"
+msgstr ""
 
-msgid "last check:"
-msgstr "laatste controle:"
+msgid "SOAP_char_P=P"
+msgstr ""
 
-msgid "Sensing:"
-msgstr "Metend:"
+msgid "SOAP_char_U=U"
+msgstr ""
 
-msgid "Threshold"
-msgstr "Drempelwaarde"
+msgid "SOAP_string_Subjective=Subjective"
+msgstr ""
 
-msgid "Impedance:"
+msgid "SOAP_string_Objective=Objective"
 msgstr ""
 
-#, fuzzy, python-format
-msgid "Praxis branch                   #%s\n"
-msgstr "Patiënt: %s (%s), Nee: %s\n"
+msgid "SOAP_string_Assessment=Assessment"
+msgstr ""
 
-#, fuzzy
-msgid "Privacy notice"
-msgstr "Privé"
+msgid "SOAP_string_Plan=Plan"
+msgstr ""
 
-#, python-format
-msgid ""
-"%s: Your chart has been accessed by %s (without user interaction, probably "
-"by a script)."
+msgid "SOAP_string_Unspecified=Unspecified"
 msgstr ""
 
-#, python-format
-msgid "%s: Staff member %s has been notified of your chart access."
+msgid "SOAP_string_Administrative=Administrative"
 msgstr ""
 
-msgid "soap_S"
-msgstr "soap_A"
+#, fuzzy
+msgid "Active clinical hint"
+msgstr "Actieve problemen"
 
-msgid "soap_O"
-msgstr "soap_B"
+#, fuzzy
+msgid "Inactive clinical hint"
+msgstr "sla klinische notitie op in EMD"
 
-msgid "soap_A"
-msgstr "soap_C"
+#, fuzzy, python-format
+msgid "Source: %s\n"
+msgstr "Bron"
 
-msgid "soap_P"
-msgstr "soap_P"
+#, fuzzy, python-format
+msgid "Language: %s\n"
+msgstr "Taal"
 
 #, fuzzy
-msgid "soap_U"
-msgstr "soap_A"
+msgid "Suppressed active dynamic hint"
+msgstr "Meting bewerken"
 
-msgid "soap_Subjective"
-msgstr "soap_Anamnese"
+#, fuzzy
+msgid "Suppressed inactive dynamic hint"
+msgstr "Meting bewerken"
 
-msgid "soap_Objective"
-msgstr "soap_Bevindingen"
+#, fuzzy, python-format
+msgid "Suppressed by: %s\n"
+msgstr "uitgegeven door"
 
-msgid "soap_Assessment"
-msgstr "soap_Conclusie"
+#, fuzzy, python-format
+msgid "Suppressed at: %s\n"
+msgstr "Bron"
+
+#, fuzzy, python-format
+msgid "Hint #: %s\n"
+msgstr "Geexporteerd: %s\n"
+
+#, fuzzy, python-format
+msgid "Patient #: %s\n"
+msgstr "Patiënt"
+
+#, fuzzy, python-format
+msgid "MD5 (currently): %s\n"
+msgstr "Documenten: %s"
+
+#, python-format
+msgid "MD5 (at suppression): %s\n"
+msgstr ""
+
+#, python-format
+msgid "Device(%s):"
+msgstr "Toestel(%s):"
+
+msgid "Battery:"
+msgstr "Batterij:"
+
+msgid "Implanted:"
+msgstr "Geïmplanteerd:"
+
+msgid "last check:"
+msgstr "laatste controle:"
+
+msgid "Sensing:"
+msgstr "Metend:"
+
+msgid "Threshold"
+msgstr "Drempelwaarde"
+
+msgid "Impedance:"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "Praxis branch                   #%s\n"
+msgstr "Patiënt: %s (%s), Nee: %s\n"
 
-msgid "soap_Plan"
-msgstr "soap_Plan"
+#, python-format
+msgid ""
+"FN:%(l10n_unit_category)s %(branch)s of %(l10n_organization_category)s "
+"%(praxis)s"
+msgstr ""
 
 #, fuzzy
-msgid "soap_Unspecified"
-msgstr "soap_Bevindingen"
+msgid "Privacy notice"
+msgstr "Privé"
+
+#, python-format
+msgid ""
+"%s: Your chart has been accessed by %s (without user interaction, probably "
+"by a script)."
+msgstr ""
 
-msgid "soap_Administrative"
-msgstr "soap_Administratie"
+#, python-format
+msgid "%s: Staff member %s has been notified of your chart access."
+msgstr ""
 
 #, fuzzy, python-format
 msgid ""
@@ -7956,9 +8362,17 @@ msgid "%(last)s,%(title)s %(first)s%(nick)s (%(sex)s)"
 msgstr ""
 
 #, python-format
+msgid "%(last)s,%(title)s %(first)s (%(sex)s)"
+msgstr ""
+
+#, python-format
 msgid "%(last)s,%(title)s %(first)s%(nick)s"
 msgstr ""
 
+#, python-format
+msgid "%(last)s,%(title)s %(first)s"
+msgstr ""
+
 msgid "Cannot merge active patient into another patient."
 msgstr "Kan actieve patient niet samenvoegen met andere patient."
 
@@ -7969,9 +8383,6 @@ msgstr ""
 msgid "merged"
 msgstr "bereik"
 
-msgid "preferred name/call name/..."
-msgstr ""
-
 #, fuzzy
 msgid "invalid age: DOB in the future"
 msgstr "Aandoening gediagnosticeerd in de toekomst."
@@ -7987,10 +8398,6 @@ msgid "Mrs"
 msgstr "Mevr"
 
 #, fuzzy
-msgid "unknown"
-msgstr "Onbekend"
-
-#, fuzzy
 msgid "empty status"
 msgstr "status"
 
@@ -8337,7 +8744,7 @@ msgid " Part %s: %s %s(%s Bytes)\n"
 msgstr "%s%7s %s: %s (%s part(s), %s)"
 
 #, fuzzy, python-format
-msgid " Filename: %s\n"
+msgid " Filename: %s%s\n"
 msgstr "Bestandsnaam"
 
 #, fuzzy
@@ -8352,19 +8759,26 @@ msgstr "deel"
 msgid "%s parts"
 msgstr "patiënt"
 
+#, fuzzy, python-format
+msgid "%s of %s"
+msgstr " Uw versie: \"%s\"\n"
+
 #, python-format
 msgid ""
 "%s (%s)   #%s\n"
-"\n"
 " Created: %s\n"
 " Episode: %s\n"
-"%s%s%s"
+"%s%s%s%s"
 msgstr ""
 
 #, python-format
 msgid " External reference: %s\n"
 msgstr ""
 
+#, fuzzy, python-format
+msgid " Organization: %%s @ %s\n"
+msgstr "Organisatie"
+
 msgid "Cannot run [arriba] !"
 msgstr "kan [arriba] niet uitvoeren!"
 
@@ -8726,26 +9140,9 @@ msgid "External care:"
 msgstr "BSN bewerken."
 
 #, fuzzy, python-format
-msgid ""
-"health issue: %s%s%s\n"
-"\n"
+msgid "Health issue: %s%s%s"
 msgstr "gezondheidsprobleem: %s"
 
-#, fuzzy
-msgid ""
-"\n"
-"current values:\n"
-msgstr "onbekende allergiestatus"
-
-msgid "no previous versions of this record"
-msgstr ""
-
-msgid ""
-"\n"
-"all values with <audit_action>, <audit_when>, <audit_by> fields (current "
-"value first):\n"
-msgstr ""
-
 msgid "Unattributed episodes"
 msgstr "Niet toegewezen episodes"
 
@@ -8768,10 +9165,6 @@ msgstr "Ontmoetingen: %s (%s - %s):"
 msgid "finished"
 msgstr "voltooid"
 
-#, fuzzy
-msgid "Health issue"
-msgstr "Gezondheidsprobleem"
-
 msgid "none associated"
 msgstr ""
 
@@ -8808,10 +9201,8 @@ msgid "Measurements and Results:"
 msgstr "Metingen en Uitslagen:"
 
 #, fuzzy, python-format
-msgid ""
-"episode: %s%s%s\n"
-"\n"
-msgstr "Episodes: %s"
+msgid "Episode: %s%s%s"
+msgstr "Episode %s%s%s (%s) [#%s]\n"
 
 #, python-format
 msgid "  your time: %s - %s  (@%s = %s%s)\n"
@@ -8839,9 +9230,7 @@ msgid "%s other episodes touched upon during this encounter:"
 msgstr ""
 
 #, fuzzy, python-format
-msgid ""
-"encounter: %s%s%s\n"
-"\n"
+msgid "Encounter: %s%s%s"
 msgstr "Ontmoetingen: %s (%s - %s):"
 
 msgid " (ongoing)"
@@ -8867,10 +9256,6 @@ msgstr "&Vaccinaties"
 msgid "Procedures"
 msgstr "&Provincies"
 
-#, fuzzy
-msgid "Substances"
-msgstr "Stof"
-
 msgid "Life events"
 msgstr ""
 
@@ -8897,9 +9282,6 @@ msgstr ""
 "Kan documentonderdeel niet weergeven:\n"
 "%s"
 
-msgid "Vaccination"
-msgstr "Vaccinatie"
-
 msgid "Lab result"
 msgstr "Laboratoriumuitslag"
 
@@ -8983,9 +9365,6 @@ msgstr "wanneer"
 msgid "Exported: %s\n"
 msgstr "Geexporteerd: %s\n"
 
-msgid "emr-journal"
-msgstr "EMD-journaal"
-
 msgid "Chronological EMR Journal\n"
 msgstr "Chronologisch EMD-journaal\n"
 
@@ -9325,22 +9704,8 @@ msgstr "Bewerk details van staf"
 msgid "Select one or more codes that apply."
 msgstr ""
 
-#, fuzzy
-msgid "Cannot move progress notes. No active patient."
-msgstr "Kan documenten niet laden. Geen actieve patiënt."
-
-#, fuzzy
-msgid "Moving progress notes between encounters ..."
-msgstr "Voortgangsrapport van laatste ontmoetingen:"
-
-#, fuzzy
-msgid ""
-"\n"
-" Select the progress notes to move from the list !\n"
-"\n"
-msgstr ""
-"\n"
-"Selecteer het ontmoetingstype dat u wilt bewerken!\n"
+msgid "Select the narrative you are interested in ..."
+msgstr "Selecteer het verhaal waarin u geïnteresserd bent..."
 
 msgid "when"
 msgstr "wanneer"
@@ -9351,77 +9716,237 @@ msgstr "wie"
 msgid "entry"
 msgstr "ingave"
 
-#, fuzzy
-msgid "Cannot edit progress notes. No active patient."
-msgstr "Kan beroep niet bewerken. Geen actieve patiënt."
-
-#, fuzzy
-msgid "Deleting progress note"
-msgstr "opslaan voortgangsrapport"
+msgid "There is no narrative for this episode in this encounter."
+msgstr "Er is geen verhaal voor de episode in deze ontmoeting."
 
-msgid ""
-"Are you positively sure you want to delete this\n"
-"progress note from the medical record ?\n"
-"\n"
-"Note that even if you chose to delete the entry it will\n"
-"still be (invisibly) kept in the audit trail to protect\n"
-"you from litigation because physical deletion is known\n"
-"to be unlawful in some jurisdictions.\n"
-msgstr ""
+msgid "Must select episode to move narrative to first."
+msgstr "Moet eerst episode selecteren om verhaal naar te verplaatsen."
 
 #, fuzzy
-msgid "Yes, delete the progress note."
-msgstr "Ja, verwijder alle uitslagen."
+msgid "Last"
+msgstr "Achternaam"
 
 #, fuzzy
-msgid "No, do NOT delete the progress note."
-msgstr "Nee, verwijder GEEN enkele uitslag."
+msgid "In health issue"
+msgstr "Inactief gezondheidsprobleem"
 
 #, fuzzy
-msgid "Editing progress note"
-msgstr "opslaan voortgangsrapport"
+msgid "Most recent notes on selected problem"
+msgstr "meest recente bovenaan"
+
+#, fuzzy, python-format
+msgid "%s (active+potential) problems"
+msgstr "Actieve problemen"
+
+#, fuzzy, python-format
+msgid "%s active problems"
+msgstr "Actieve problemen"
 
 #, fuzzy
-msgid "This is the original progress note:"
-msgstr "Gooi dit voortgangsrapport weg"
+msgid "Current encounter:"
+msgstr "Huidige medicatie"
 
 #, fuzzy
-msgid "Managing progress notes"
-msgstr "opslaan voortgangsrapport"
+msgid "Cumulative summary"
+msgstr "Verzoek samenvatting"
+
+#, fuzzy, python-format
+msgid "Most recent info on %s%s%s"
+msgstr " Meest recent: %s%s%s"
 
 #, python-format
 msgid ""
+"Cannot open progress note editor for\n"
 "\n"
-" This list shows the progress notes by %s.\n"
+"[%s].\n"
 "\n"
 msgstr ""
+"Kan voortgangsrapport editor niet openen voor\n"
+"\n"
+"[%s].\n"
+"\n"
 
-msgid "Enter (regex) term to search for across all EMRs:"
-msgstr ""
+msgid "opening progress note editor"
+msgstr "voortgangsrapporteditor openen"
 
 #, fuzzy
-msgid "Text search across all EMRs"
-msgstr "Tekst zoeken in het gehele EMD"
+msgid "Cannot save all editors. Some were kept open."
+msgstr "Kan allergie niet toevoegen. Geen actieve patiënt."
+
+#, fuzzy
+msgid "new problem"
+msgstr "probleem"
 
-#, fuzzy, python-format
 msgid ""
-"Nothing found for search term:\n"
-" \"%s\""
+"Are you sure you really want to\n"
+"discard this progress note ?\n"
 msgstr ""
-"Fout bij het zoeken van overeenkomstige personen.\n"
-"\n"
-"Zoekterm: \"%s\""
+"Weet u heel zeker dat u dit \n"
+"voortgangsrapport wilt gegooien?\n"
 
-#, fuzzy
-msgid "Search results"
-msgstr "zoekresultaten"
+msgid "Discarding progress note"
+msgstr "Weggooien voortgangsrapport"
 
-#, fuzzy, python-format
-msgid "Search results for [%s]"
-msgstr "zoekresultaten"
+#, fuzzy
+msgid "There are unsaved progress notes !\n"
+msgstr "Bewaar alle overgebleven onopgeslagen voortgangsrapporten."
 
 #, fuzzy
-msgid "Match"
+msgid "Unsaved progress notes"
+msgstr "Niet opgeslagen voortgangsrapport"
+
+#, fuzzy
+msgid "Problem list"
+msgstr "Probleem"
+
+#, fuzzy
+msgid "Saving SOAP note"
+msgstr "opslaan voortgangsrapport"
+
+#, fuzzy
+msgid "Do you want to save the SOAP note ?"
+msgstr ""
+"Weet u zeker dat u dit BSN\n"
+"van deze patiënt wilt verwijderen?"
+
+#, python-format
+msgid "&Filter by problem %s%s%s"
+msgstr ""
+
+#, fuzzy
+msgid "Cannot save SimpleNotes SOAP note."
+msgstr "Kan laboratoriumverzoek niet opslaan"
+
+#, fuzzy, python-format
+msgid "Progress note: %s%s"
+msgstr "Voortgangsrapport"
+
+#, fuzzy
+msgid "Please enter a name for the new problem:"
+msgstr "Geef een beschrijvende naam voor de nieuwe episode:"
+
+#, fuzzy
+msgid "Adding a problem"
+msgstr "Nieuwe episode toevoegen"
+
+#, fuzzy
+msgid "Cannot delete problem. There is still clinical data recorded for it."
+msgstr ""
+"Kan episode niet verwijderen. Er zijn nog klinische gegevens in opgeslagen."
+
+#, python-format
+msgid "GNUmed: configuring [%s] (%s plugins)"
+msgstr "GNUmed: instellen [%s] (%s plugins)"
+
+msgid "loading list of plugins                               "
+msgstr "laden lijst van plugins                               "
+
+msgid "failed"
+msgstr "mislukt"
+
+msgid "success"
+msgstr "succes"
+
+#, python-format
+msgid ""
+"previous: %s (%s)\n"
+"current (%s/%s): %s"
+msgstr ""
+"vorige: %s (%s)\n"
+"huidge: (%s/%s): %s"
+
+#, python-format
+msgid "Cannot switch to [%s]: no patient selected"
+msgstr "Kan niet wisselen naar [%s]: geen patiënt geselecteerd"
+
+#, fuzzy
+msgid "Cannot move progress notes. No active patient."
+msgstr "Kan documenten niet laden. Geen actieve patiënt."
+
+#, fuzzy
+msgid "Moving progress notes between encounters ..."
+msgstr "Voortgangsrapport van laatste ontmoetingen:"
+
+#, fuzzy
+msgid ""
+"\n"
+" Select the progress notes to move from the list !\n"
+"\n"
+msgstr ""
+"\n"
+"Selecteer het ontmoetingstype dat u wilt bewerken!\n"
+
+#, fuzzy
+msgid "Cannot edit progress notes. No active patient."
+msgstr "Kan beroep niet bewerken. Geen actieve patiënt."
+
+#, fuzzy
+msgid "Deleting progress note"
+msgstr "opslaan voortgangsrapport"
+
+msgid ""
+"Are you positively sure you want to delete this\n"
+"progress note from the medical record ?\n"
+"\n"
+"Note that even if you chose to delete the entry it will\n"
+"still be (invisibly) kept in the audit trail to protect\n"
+"you from litigation because physical deletion is known\n"
+"to be unlawful in some jurisdictions.\n"
+msgstr ""
+
+#, fuzzy
+msgid "Yes, delete the progress note."
+msgstr "Ja, verwijder alle uitslagen."
+
+#, fuzzy
+msgid "No, do NOT delete the progress note."
+msgstr "Nee, verwijder GEEN enkele uitslag."
+
+#, fuzzy
+msgid "Editing progress note"
+msgstr "opslaan voortgangsrapport"
+
+#, fuzzy
+msgid "This is the original progress note:"
+msgstr "Gooi dit voortgangsrapport weg"
+
+#, fuzzy
+msgid "Managing progress notes"
+msgstr "opslaan voortgangsrapport"
+
+#, python-format
+msgid ""
+"\n"
+" This list shows the progress notes by %s.\n"
+"\n"
+msgstr ""
+
+msgid "Enter (regex) term to search for across all EMRs:"
+msgstr ""
+
+#, fuzzy
+msgid "Text search across all EMRs"
+msgstr "Tekst zoeken in het gehele EMD"
+
+#, fuzzy, python-format
+msgid ""
+"Nothing found for search term:\n"
+" \"%s\""
+msgstr ""
+"Fout bij het zoeken van overeenkomstige personen.\n"
+"\n"
+"Zoekterm: \"%s\""
+
+#, fuzzy
+msgid "Search results"
+msgstr "zoekresultaten"
+
+#, fuzzy, python-format
+msgid "Search results for [%s]"
+msgstr "zoekresultaten"
+
+#, fuzzy
+msgid "Match"
 msgstr "Batch"
 
 #, fuzzy
@@ -9600,1145 +10125,1042 @@ msgstr ""
 "\n"
 " Markeer nu de ingaven die u in uw rapport wilt.\n"
 
-msgid "Select the narrative you are interested in ..."
-msgstr "Selecteer het verhaal waarin u geïnteresserd bent..."
+msgid "Pick a date ..."
+msgstr ""
 
-msgid "There is no narrative for this episode in this encounter."
-msgstr "Er is geen verhaal voor de episode in deze ontmoeting."
+msgid "<ALT-C/K>: pick from (c/k)alendar"
+msgstr ""
 
-msgid "Must select episode to move narrative to first."
-msgstr "Moet eerst episode selecteren om verhaal naar te verplaatsen."
+msgid "Cannot interpret input as timestamp."
+msgstr "Kan input niet als tijdstempel interpreteren."
 
-#, fuzzy
-msgid "Last"
-msgstr "Achternaam"
+msgid "No vaccines were chosen"
+msgstr "Geen vaccins gekozen"
 
-#, fuzzy
-msgid "In health issue"
-msgstr "Inactief gezondheidsprobleem"
+#, python-format
+msgid "Combination of indications , %s , not found in any vaccine"
+msgstr ""
 
-#, fuzzy
-msgid "Most recent notes on selected problem"
-msgstr "meest recente bovenaan"
+msgid "Sequence"
+msgstr "Volgorde"
 
-#, fuzzy, python-format
-msgid "%s (active+potential) problems"
-msgstr "Actieve problemen"
+msgid "Batch"
+msgstr "Batch"
 
-#, fuzzy, python-format
-msgid "%s active problems"
-msgstr "Actieve problemen"
+msgid "Vaccinator"
+msgstr "Vaccinator"
 
-#, fuzzy
-msgid "Current encounter:"
-msgstr "Huidige medicatie"
+msgid ""
+"Vaccinations by Recommender (X = patient on regime, O = patient not on "
+"regime) "
+msgstr ""
+"Vaccinations per aanbeveling (X = patient op schema, O = patient niet op "
+"schema) "
+
+msgid "enrolled regime vaccinations not yet given"
+msgstr "Nog niet alle vaccinaties van schema gegeven"
 
 #, fuzzy
-msgid "Cumulative summary"
-msgstr "Verzoek samenvatting"
+msgid "Proceed with "
+msgstr "Ga door met aanmeldenn."
 
-#, fuzzy, python-format
-msgid "Most recent info on %s%s%s"
-msgstr " Meest recent: %s%s%s"
+#, python-format
+msgid "Failed to enrol patient in %s"
+msgstr "Niet gelukt om patiënt in te schrijven voor %s"
 
 #, python-format
+msgid "Failed to  delist patient from %s"
+msgstr "Niet gelukt om patiënt iuit te schrijven van %s"
+
+msgid "Missing GNUmed module"
+msgstr "Ontbrekende GNUmed module"
+
+#, fuzzy, python-format
 msgid ""
-"Cannot open progress note editor for\n"
+"GNUmed detected that parts of it are not\n"
+"properly installed. The following message\n"
+"names the missing part:\n"
 "\n"
-"[%s].\n"
+" \"%s\"\n"
 "\n"
+"Please make sure to get the missing\n"
+"parts installed. Otherwise some of the\n"
+"functionality will not be accessible."
 msgstr ""
-"Kan voortgangsrapport editor niet openen voor\n"
+"GNUmed ontdekte dat er onderdelen niet\n"
+"goed geïnstalleerd zijn. Hier volgt het\n"
+"ontbrekende onderdeel:\n"
 "\n"
-"[%s].\n"
+" \"%s\"\n"
 "\n"
+"Zorg ervoor dat de ontbrekende onderdelen\n"
+"geïnstalleerd worden. Anders zal niet\n"
+"alle functionaliteit beschikbaar zijn."
 
-msgid "opening progress note editor"
-msgstr "voortgangsrapporteditor openen"
-
-#, fuzzy
-msgid "Cannot save all editors. Some were kept open."
-msgstr "Kan allergie niet toevoegen. Geen actieve patiënt."
-
-#, fuzzy
-msgid "new problem"
-msgstr "probleem"
+#, fuzzy, python-format
+msgid ""
+"\n"
+" Source: %s"
+msgstr "Bron"
 
+#, fuzzy, python-format
 msgid ""
-"Are you sure you really want to\n"
-"discard this progress note ?\n"
-msgstr ""
-"Weet u heel zeker dat u dit \n"
-"voortgangsrapport wilt gegooien?\n"
-
-msgid "Discarding progress note"
-msgstr "Weggooien voortgangsrapport"
+"\n"
+" Code: %s"
+msgstr "Episodes: %s"
 
-#, fuzzy
-msgid "There are unsaved progress notes !\n"
-msgstr "Bewaar alle overgebleven onopgeslagen voortgangsrapporten."
+#, python-format
+msgid ""
+"\n"
+" Details (first 250 characters):\n"
+"%s\n"
+"%s\n"
+"%s"
+msgstr ""
 
 #, fuzzy
-msgid "Unsaved progress notes"
-msgstr "Niet opgeslagen voortgangsrapport"
+msgid "Access violation"
+msgstr "Kalibreren"
 
 #, python-format
-msgid "Synopsis (%s)"
+msgid ""
+"You do not have access to this part of GNUmed.\n"
+"\n"
+"%s"
 msgstr ""
 
 #, fuzzy
-msgid ""
-"Enter a short working name for this new problem\n"
-"(which will become a new, unassociated episode):\n"
-msgstr "Geef een beschrijvende naam voor de nieuwe episode:"
+msgid "Lost connection"
+msgstr "instellingen bewaren"
 
-#, fuzzy, python-format
 msgid ""
-"Enter a short working name for this new\n"
-"episode under the existing health issue\n"
+"Since you were last working in GNUmed,\n"
+"your database connection timed out.\n"
 "\n"
-"\"%s\":\n"
-msgstr "Geef een beschrijvende naam voor de nieuwe episode:"
+"This GNUmed session is now expired.\n"
+"\n"
+"You will have to close this client and\n"
+"restart a new GNUmed session."
+msgstr ""
 
-#, fuzzy
-msgid "Creating problem (episode) to save notelet under ..."
+msgid ""
+"Please enter a short note on what you\n"
+"were about to do in GNUmed:"
 msgstr ""
-"U moet een episode selecteren waar dit document onder bewaard moet worden."
+"Geef een korte aantekening van wat u in\n"
+"GNUmed wilde doen:"
 
-#, fuzzy
-msgid "Cannot save a new problem without a name."
-msgstr "Kan geen nieuwe episode toevoegen zonder een naam."
+msgid "Sending bug report"
+msgstr "Foutrapport verzendenn"
 
-msgid "saving progress note"
-msgstr "opslaan voortgangsrapport"
+#, fuzzy
+msgid ""
+"Edit the list of email addresses to send the\n"
+"bug report to (separate addresses by spaces).\n"
+"\n"
+"Note that <gnumed-bugs at gnu.org> refers to\n"
+"the public (!) GNUmed bugs mailing list."
+msgstr ""
+"Geen de lijst van emailadressen om het foutrapport \n"
+"naar te verzenden (tussen de adressen spaties).\n"
+"\n"
+"Merk op dat <gnumed-devel at gnu.org> verwijst naar\n"
+"de openbare (!) GNUmed mailinglijst."
 
 #, python-format
 msgid ""
-"The new episode:\n"
+"Your bug report will be sent to:\n"
 "\n"
-" \"%s\"\n"
+"%s\n"
 "\n"
-"will remain unassociated despite the editor\n"
-"having been invoked from the health issue:\n"
+"Make sure you have reviewed the log file for potentially\n"
+"sensitive information before sending out the bug report.\n"
 "\n"
-" \"%s\""
+"Note that emailing the report may take a while depending\n"
+"on the speed of your internet connection.\n"
 msgstr ""
+"Uw foutrapport zal worden verzonden naar:\n"
+"\n"
+"%s\n"
+"\n"
+"Zorg dat u het logboekbestand bekeken heeft voor\n"
+"mogelijk gevoelige informatie voordat u het \n"
+"foutrapport verstuurd.\n"
+"\n"
+"Merk op dat het emailen van het rapport even kan duren\n"
+"afhankelijk van de snelheid van uw internetverbinding.\n"
 
-msgid "You need to actually set an editor."
-msgstr ""
+msgid "Yes, send the bug report."
+msgstr "Ja, stuur het foutrapport."
 
-#, fuzzy, python-format
-msgid "The command [%s] is not found."
-msgstr ""
-"Het commando [%s] werd niet gevonden. Dit kan wel of niet een probleem zijn."
+msgid "No, do not send the bug report."
+msgstr "Nee, stuur het foutrapport  niet op."
+
+msgid "include log file in bug report"
+msgstr "Voeg het logboekbestand bij het foutrapport"
 
-#, python-format
 msgid ""
-"Enter the shell command with which to start\n"
-"the image editor for visual progress notes.\n"
+"The database you are connected to is marked as\n"
+"\"in-production with controlled access\".\n"
 "\n"
-"Any \"%(img)s\" included with the arguments\n"
-"will be replaced by the file name of the\n"
-"note template."
+"You indicated that you want to include the log\n"
+"file in your bug report. While this is often\n"
+"useful for debugging the log file might contain\n"
+"bits of patient data which must not be sent out\n"
+"without de-identification.\n"
+"\n"
+"Please confirm that you want to include the log !"
 msgstr ""
+"De database waar u mee verbonden bent is gemarkeerd\n"
+"als \"in productie met toezicht op toegang\".\n"
+"\n"
+"U gaf aan dat u het logbestand bij het foutrapport\n"
+"wilde voegen. Hoewel dit vaak nuttig is voor debuggen\n"
+"kan het wellicht patiëntgegevens bevatten die niet verzonden\n"
+"moeten worden zonder anonimisering.\n"
+"\n"
+"Bevestig dat u dit logbestand inderdaad wilt toevoegen!"
+
+msgid "<not supplied>"
+msgstr "<niet gegeven>"
+
+msgid "Bug report has been emailed."
+msgstr "Foutrapport is geëmaild."
 
 #, fuzzy
-msgid "Choose file to use as template for new visual progress note"
+msgid "Bug report COULD NOT be emailed."
+msgstr "Foutrapport is geëmaild."
+
+msgid "Underweight"
+msgstr "Ondergewicht"
+
+msgid "63< Normal >79"
+msgstr "63< Normaal >79"
+
+msgid "63 - Normal - 79"
+msgstr "63 - Normaal - 79"
+
+msgid "Overweight"
+msgstr "Overgewicht"
+
+msgid "Obese"
+msgstr "Obesitas"
+
+msgid "Current height/mass"
+msgstr "Huidige lengte/gewicht"
+
+msgid "Height (cm)"
+msgstr "Lengte (cm)"
+
+msgid "Mass (kg)"
+msgstr "Gewicht (kg)"
+
+msgid "Adjusted Values"
+msgstr "Bijgestelde waardes"
+
+msgid "Goal mass"
+msgstr "Streefgewicht"
+
+msgid "kg to lose"
+msgstr "kg af te vallen"
+
+msgid "BMI Calculator"
+msgstr "BMI calculator"
+
+msgid "&Reset"
+msgstr "&Resetten"
+
+msgid "Select a healthcare provider."
+msgstr "Selecteer een behandelaar."
+
+msgid "Public (no clinical or demographic access)"
 msgstr ""
-"Weet u heel zeker dat u dit \n"
-"voortgangsrapport wilt gegooien?\n"
 
-#, fuzzy
-msgid "Visual progress note source"
-msgstr "voortgangsrapport"
+msgid "Staff (demographic access only)"
+msgstr ""
 
-msgid "From which source do you want to pick the image template ?"
+msgid "staff (clerical)"
+msgstr ""
+
+msgid "full clinical access"
 msgstr ""
 
+msgid "DB account"
+msgstr "Database account"
+
+msgid "can login"
+msgstr "kan inloggen"
+
+msgid "can not login"
+msgstr "kan niet inloggen"
+
 #, fuzzy
-msgid "Database"
-msgstr "Database ..."
+msgid "Activating GNUmed user."
+msgstr "GNUmed staflid activeren."
 
 #, fuzzy
-msgid "List of templates in the database."
-msgstr "Bewerk het (eerste of enige) item geselecteerd in de lijst hierboven."
+msgid "Deactivating GNUmed user."
+msgstr "GNUmed staflid deactiveren."
 
-msgid "Files in the filesystem."
-msgstr ""
+#, fuzzy
+msgid "Removing GNUmed user."
+msgstr "GNUmed staflid modificeren."
 
-msgid "Device"
-msgstr "Apparaat"
+#, fuzzy
+msgid "Removing GNUmed user"
+msgstr "GNUmed staflid toevoegen"
 
-msgid "Image capture devices (scanners, cameras, etc)"
-msgstr ""
+#, fuzzy
+msgid "Modifying GNUmed user."
+msgstr "GNUmed staflid modificeren."
 
-#, fuzzy, python-format
-msgid "Cannot export visual progress note template for [%s]."
+msgid "Failed to save changes to GNUmed database user."
 msgstr ""
-"Kan voortgangsrapport editor niet openen voor\n"
-"\n"
-"[%s].\n"
-"\n"
+"Niet gelukt om veranderingen naar de GNUmed database gebruiker op te slaan."
 
 #, fuzzy
-msgid "Cannot export visual progress note to file."
-msgstr "Wis deze editor voor het voortgangsrapport."
+msgid "Modifying GNUmed user"
+msgstr "GNUmed staflid modificeren"
 
-msgid "Editor for visual progress note not configured."
+#, fuzzy, python-format
+msgid "Failed to set role [%s] for GNUmed database user."
 msgstr ""
+"Niet gelukt om veranderingen naar de GNUmed database gebruiker op te slaan."
 
 #, python-format
 msgid ""
-"There was a problem with running the editor\n"
-"for visual progress notes.\n"
-"\n"
-" [%s]\n"
 "\n"
+"  %s \"%s\" %s\n"
+"  born: %s"
 msgstr ""
+"\n"
+"  %s \"%s\" %s\n"
+"geboren: %s"
 
-#, fuzzy
-msgid "Editing visual progress note"
-msgstr "klinisch voortgangsrapport"
-
-#, python-format
 msgid ""
-"There was a problem reading the visual\n"
-"progress note from the file:\n"
-"\n"
-" [%s]\n"
-"\n"
+"Password entries do not match. Please type in the passwords again to rule "
+"out typos."
 msgstr ""
+"Wachtwoorden komen niet overeen. Geef de wachtwoorden opnieuw in om "
+"typefouten te voorkomen."
 
 #, fuzzy
-msgid "Saving visual progress note"
-msgstr "opslaan voortgangsrapport"
+msgid "Adding GNUmed user"
+msgstr "GNUmed staflid toevoegen"
 
 msgid ""
-"You either created a visual progress note from a template\n"
-"in the database (rather than from a file on disk) or you\n"
-"edited an existing visual progress note.\n"
-"\n"
-"The template/original was not modified at all, however.\n"
+"Are you positively sure you want to create\n"
+"a user with an empty password ?\n"
 "\n"
-"Do you still want to save the unmodified image as a\n"
-"visual progress note into the EMR of the patient ?\n"
+"Think about the record access implications !"
 msgstr ""
 
 #, fuzzy
-msgid "visual progress notes"
-msgstr "voortgangsrapport"
+msgid "Enlisting person as user."
+msgstr "Patiënt inschrijven als staf."
 
-#, fuzzy, python-format
-msgid "Created: %s"
-msgstr "Geexporteerd: %s\n"
+msgid "Encrypt"
+msgstr "Versleutelen"
 
-#, fuzzy
-msgid "Problem list"
-msgstr "Probleem"
+msgid "Decrypt"
+msgstr "Ontcijfer"
 
-#, fuzzy
-msgid "Saving SOAP note"
-msgstr "opslaan voortgangsrapport"
+msgid "Set pass phrase"
+msgstr "Zet wachtwoordzin"
 
-#, fuzzy
-msgid "Do you want to save the SOAP note ?"
+msgid "This is not correctly encrypted text!"
+msgstr "Dit is geen correct versleutelde tekst!"
+
+msgid "Please enter your pass phrase:"
+msgstr "Geef uw wachtwoordzin in:"
+
+msgid "Pass phrase expired"
+msgstr "wachtwoordzin verlopen"
+
+msgid ""
+"\n"
+"Conditions preventable by vaccination as currently known to GNUmed.\n"
 msgstr ""
-"Weet u zeker dat u dit BSN\n"
-"van deze patiënt wilt verwijderen?"
 
-#, python-format
-msgid "&Filter by problem %s%s%s"
+msgid "Showing vaccination preventable conditions."
 msgstr ""
 
-#, fuzzy
-msgid "Cannot save SimpleNotes SOAP note."
-msgstr "Kan laboratoriumverzoek niet opslaan"
+msgid "ATCs: single-condition vaccines"
+msgstr ""
 
-#, fuzzy, python-format
-msgid "Progress note: %s%s"
-msgstr "Voortgangsrapport"
+msgid "ATCs: multi-condition vaccines"
+msgstr ""
 
 #, fuzzy
-msgid "Please enter a name for the new problem:"
-msgstr "Geef een beschrijvende naam voor de nieuwe episode:"
+msgid "Pick the relevant indications."
+msgstr "Huidige medicatie"
 
 #, fuzzy
-msgid "Adding a problem"
-msgstr "Nieuwe episode toevoegen"
+msgid "Known indications"
+msgstr "Indicaties"
 
 #, fuzzy
-msgid "Cannot delete problem. There is still clinical data recorded for it."
-msgstr ""
-"Kan episode niet verwijderen. Er zijn nog klinische gegevens in opgeslagen."
-
-#, python-format
-msgid "GNUmed: configuring [%s] (%s plugins)"
-msgstr "GNUmed: instellen [%s] (%s plugins)"
-
-msgid "loading list of plugins                               "
-msgstr "laden lijst van plugins                               "
-
-msgid "failed"
-msgstr "mislukt"
+msgid "Adding new vaccine"
+msgstr "Nieuwe naam toegoegen"
 
-msgid "success"
-msgstr "succes"
+#, fuzzy
+msgid "Editing vaccine"
+msgstr "Provincies bijwerken ..."
 
 #, python-format
 msgid ""
-"previous: %s (%s)\n"
-"current (%s/%s): %s"
+"Cannot delete vaccine\n"
+"\n"
+" %s - %s (#%s)\n"
+"\n"
+"It is probably documented in a vaccination."
 msgstr ""
-"vorige: %s (%s)\n"
-"huidge: (%s/%s): %s"
-
-#, python-format
-msgid "Cannot switch to [%s]: no patient selected"
-msgstr "Kan niet wisselen naar [%s]: geen patiënt geselecteerd"
 
-msgid "Pick a date ..."
-msgstr ""
+#, fuzzy
+msgid "Deleting vaccine"
+msgstr "Naam verwijderen"
 
-msgid "<ALT-C/K>: pick from (c/k)alendar"
+msgid "fake"
 msgstr ""
 
-msgid "Cannot interpret input as timestamp."
-msgstr "Kan input niet als tijdstempel interpreteren."
+#, fuzzy
+msgid ""
+"\n"
+"The vaccines currently known to GNUmed.\n"
+msgstr "Lijst met momenteel bestaande stafleden."
 
-msgid "No vaccines were chosen"
-msgstr "Geen vaccins gekozen"
+#, fuzzy
+msgid "Showing vaccines."
+msgstr "Meting bewerken"
 
-#, python-format
-msgid "Combination of indications , %s , not found in any vaccine"
+msgid "Enter or select the batch/lot number of the vaccine used."
 msgstr ""
 
-msgid "Sequence"
-msgstr "Volgorde"
-
-msgid "Batch"
-msgstr "Batch"
-
-msgid "Vaccinator"
-msgstr "Vaccinator"
+#, fuzzy
+msgid "Saving vaccine"
+msgstr "Adres verwijderen"
 
+#, python-format
 msgid ""
-"Vaccinations by Recommender (X = patient on regime, O = patient not on "
-"regime) "
+"This vaccine is already in use:\n"
+"\n"
+" \"%s\"\n"
+" (%s)\n"
+"\n"
+"Are you absolutely positively sure that\n"
+"you really want to edit this vaccine ?\n"
+"\n"
+"This will change the vaccine name and/or target\n"
+"conditions in each patient this vaccine was\n"
+"used in to document a vaccination with.\n"
 msgstr ""
-"Vaccinations per aanbeveling (X = patient op schema, O = patient niet op "
-"schema) "
 
-msgid "enrolled regime vaccinations not yet given"
-msgstr "Nog niet alle vaccinaties van schema gegeven"
+#, fuzzy
+msgid "You must select at least one indication."
+msgstr "U moet een sjabloonbestand selecteren voordat u opslaat."
+
+msgid "Pick the diseases this vaccine protects against."
+msgstr ""
 
 #, fuzzy
-msgid "Proceed with "
-msgstr "Ga door met aanmeldenn."
+msgid "This vaccine"
+msgstr "Vaccin"
 
-#, python-format
-msgid "Failed to enrol patient in %s"
-msgstr "Niet gelukt om patiënt in te schrijven voor %s"
+#, fuzzy
+msgid "Adding new vaccinations"
+msgstr "Nieuwe patiënt toevoegen"
 
-#, python-format
-msgid "Failed to  delist patient from %s"
-msgstr "Niet gelukt om patiënt iuit te schrijven van %s"
+#, fuzzy
+msgid "Editing vaccination"
+msgstr "Wijzigen beroep"
 
-msgid "Missing GNUmed module"
-msgstr "Ontbrekende GNUmed module"
+#, fuzzy
+msgid "vaccination recall"
+msgstr "Vaccinatie"
 
 #, fuzzy, python-format
-msgid ""
-"GNUmed detected that parts of it are not\n"
-"properly installed. The following message\n"
-"names the missing part:\n"
-"\n"
-" \"%s\"\n"
-"\n"
-"Please make sure to get the missing\n"
-"parts installed. Otherwise some of the\n"
-"functionality will not be accessible."
-msgstr ""
-"GNUmed ontdekte dat er onderdelen niet\n"
-"goed geïnstalleerd zijn. Hier volgt het\n"
-"ontbrekende onderdeel:\n"
-"\n"
-" \"%s\"\n"
-"\n"
-"Zorg ervoor dat de ontbrekende onderdelen\n"
-"geïnstalleerd worden. Anders zal niet\n"
-"alle functionaliteit beschikbaar zijn."
+msgid "vaccination recall (%s)"
+msgstr "Vaccinaties"
 
 #, fuzzy, python-format
 msgid ""
+"Existing vaccination:\n"
 "\n"
-" Source: %s"
-msgstr "Bron"
+"%s"
+msgstr "Wijzigen beroep"
 
-#, fuzzy, python-format
+#, fuzzy
 msgid ""
 "\n"
-" Code: %s"
-msgstr "Episodes: %s"
+"Complete vaccination history for this patient.\n"
+msgstr "Bewerk details van het beroep voor de huidige patiënt."
 
-#, python-format
-msgid ""
-"\n"
-" Details (first 250 characters):\n"
-"%s\n"
-"%s\n"
-"%s"
+#, fuzzy
+msgid "Showing vaccinations."
+msgstr "instellingen bewaren"
+
+msgid "Intended to protect from"
 msgstr ""
 
 #, fuzzy
-msgid "Access violation"
-msgstr "Kalibreren"
+msgid "Print vaccinations or recalls."
+msgstr "Vaccinatie"
 
-#, python-format
-msgid ""
-"You do not have access to this part of GNUmed.\n"
-"\n"
-"%s"
+msgid "Recall"
 msgstr ""
 
 #, fuzzy
-msgid "Lost connection"
-msgstr "instellingen bewaren"
+msgid "Add a recall for a vaccination"
+msgstr "Nieuwe patiënt toevoegen"
 
-msgid ""
-"Since you were last working in GNUmed,\n"
-"your database connection timed out.\n"
-"\n"
-"This GNUmed session is now expired.\n"
-"\n"
-"You will have to close this client and\n"
-"restart a new GNUmed session."
-msgstr ""
+#, fuzzy
+msgid "Vx schedules"
+msgstr "Actieve Schema"
 
-msgid ""
-"Please enter a short note on what you\n"
-"were about to do in GNUmed:"
-msgstr ""
-"Geef een korte aantekening van wat u in\n"
-"GNUmed wilde doen:"
+#, fuzzy
+msgid "Open a browser showing vaccination schedules."
+msgstr "geen actieve vaccinatieschema's"
 
-msgid "Sending bug report"
-msgstr "Foutrapport verzendenn"
+#, fuzzy
+msgid "prevention"
+msgstr "Kalibreren"
 
 #, fuzzy
-msgid ""
-"Edit the list of email addresses to send the\n"
-"bug report to (separate addresses by spaces).\n"
-"\n"
-"Note that <gnumed-bugs at gnu.org> refers to\n"
-"the public (!) GNUmed bugs mailing list."
-msgstr ""
-"Geen de lijst van emailadressen om het foutrapport \n"
-"naar te verzenden (tussen de adressen spaties).\n"
-"\n"
-"Merk op dat <gnumed-devel at gnu.org> verwijst naar\n"
-"de openbare (!) GNUmed mailinglijst."
+msgid "Saving vaccination"
+msgstr "instellingen bewaren"
 
-#, python-format
-msgid ""
-"Your bug report will be sent to:\n"
-"\n"
-"%s\n"
-"\n"
-"Make sure you have reviewed the log file for potentially\n"
-"sensitive information before sending out the bug report.\n"
-"\n"
-"Note that emailing the report may take a while depending\n"
-"on the speed of your internet connection.\n"
+msgid "Pick the diseases this vaccination was given against."
 msgstr ""
-"Uw foutrapport zal worden verzonden naar:\n"
-"\n"
-"%s\n"
-"\n"
-"Zorg dat u het logboekbestand bekeken heeft voor\n"
-"mogelijk gevoelige informatie voordat u het \n"
-"foutrapport verstuurd.\n"
-"\n"
-"Merk op dat het emailen van het rapport even kan duren\n"
-"afhankelijk van de snelheid van uw internetverbinding.\n"
 
-msgid "Yes, send the bug report."
-msgstr "Ja, stuur het foutrapport."
+msgid "  IMMUNISATIONS  "
+msgstr "  INENTINGEN  "
 
-msgid "No, do not send the bug report."
-msgstr "Nee, stuur het foutrapport  niet op."
+msgid "Indications"
+msgstr "Indicaties"
 
-msgid "include log file in bug report"
-msgstr "Voeg het logboekbestand bij het foutrapport"
+msgid "Active Schedules"
+msgstr "Actieve Schema"
 
-msgid ""
-"The database you are connected to is marked as\n"
-"\"in-production with controlled access\".\n"
-"\n"
-"You indicated that you want to include the log\n"
-"file in your bug report. While this is often\n"
-"useful for debugging the log file might contain\n"
-"bits of patient data which must not be sent out\n"
-"without de-identification.\n"
-"\n"
-"Please confirm that you want to include the log !"
-msgstr ""
-"De database waar u mee verbonden bent is gemarkeerd\n"
-"als \"in productie met toezicht op toegang\".\n"
-"\n"
-"U gaf aan dat u het logbestand bij het foutrapport\n"
-"wilde voegen. Hoewel dit vaak nuttig is voor debuggen\n"
-"kan het wellicht patiëntgegevens bevatten die niet verzonden\n"
-"moeten worden zonder anonimisering.\n"
-"\n"
-"Bevestig dat u dit logbestand inderdaad wilt toevoegen!"
+msgid "Missing Immunisations"
+msgstr "Ontbrekende inentingen"
 
-msgid "<not supplied>"
-msgstr "<niet gegeven>"
+msgid "  Alerts  "
+msgstr "  Waarschuwingen  "
 
-msgid "Bug report has been emailed."
-msgstr "Foutrapport is geëmaild."
+msgid "ERROR: cannot retrieve active vaccination schedules"
+msgstr "FOUT: kan actieve vaccinaiteschema's niet ophalen"
 
-#, fuzzy
-msgid "Bug report COULD NOT be emailed."
-msgstr "Foutrapport is geëmaild."
+msgid "no active vaccination schedules"
+msgstr "geen actieve vaccinatieschema's"
 
-msgid "Underweight"
-msgstr "Ondergewicht"
+#, python-format
+msgid "%s for %s (%s shots): %s"
+msgstr "%s voor %s (%s shots): %s"
 
-msgid "63< Normal >79"
-msgstr "63< Normaal >79"
+msgid "ERROR: cannot retrieve due/overdue vaccinations"
+msgstr ""
+"FOUT: kan niet ophalen welke vaccins gepland zijn of al gegeven hadden "
+"moeten zijn"
 
-msgid "63 - Normal - 79"
-msgstr "63 - Normaal - 79"
+#, python-format
+msgid "%.0d weeks left: shot %s for %s in %s, due %s (%s)"
+msgstr "%.0d weken over: spuit %s voor %s in %s, gepland %s (%s)"
 
-msgid "Overweight"
-msgstr "Overgewicht"
+#, python-format
+msgid "overdue %.0dyrs %.0dwks: shot %s for %s in schedule \"%s\" (%s)"
+msgstr "te laat %.0dyrs %.0dwks: spuit %s voor %s in schema \"%s\" (%s)"
 
-msgid "Obese"
-msgstr "Obesitas"
+#, python-format
+msgid "due now: booster for %s in schedule \"%s\" (%s)"
+msgstr "gepland nu: booster voor %s in schema \"%s\" (%s)"
 
-msgid "Current height/mass"
-msgstr "Huidige lengte/gewicht"
+#, python-format
+msgid "Synopsis (%s)"
+msgstr ""
 
-msgid "Height (cm)"
-msgstr "Lengte (cm)"
+#, fuzzy
+msgid ""
+"Enter a short working name for this new problem\n"
+"(which will become a new, unassociated episode):\n"
+msgstr "Geef een beschrijvende naam voor de nieuwe episode:"
 
-msgid "Mass (kg)"
-msgstr "Gewicht (kg)"
+#, fuzzy, python-format
+msgid ""
+"Enter a short working name for this new\n"
+"episode under the existing health issue\n"
+"\n"
+"\"%s\":\n"
+msgstr "Geef een beschrijvende naam voor de nieuwe episode:"
 
-msgid "Adjusted Values"
-msgstr "Bijgestelde waardes"
+#, fuzzy
+msgid "Creating problem (episode) to save notelet under ..."
+msgstr ""
+"U moet een episode selecteren waar dit document onder bewaard moet worden."
 
-msgid "Goal mass"
-msgstr "Streefgewicht"
+#, fuzzy
+msgid "Cannot save a new problem without a name."
+msgstr "Kan geen nieuwe episode toevoegen zonder een naam."
 
-msgid "kg to lose"
-msgstr "kg af te vallen"
+msgid "saving progress note"
+msgstr "opslaan voortgangsrapport"
 
-msgid "BMI Calculator"
-msgstr "BMI calculator"
+#, python-format
+msgid ""
+"The new episode:\n"
+"\n"
+" \"%s\"\n"
+"\n"
+"will remain unassociated despite the editor\n"
+"having been invoked from the health issue:\n"
+"\n"
+" \"%s\""
+msgstr ""
 
-msgid "&Reset"
-msgstr "&Resetten"
+#, fuzzy
+msgid "Adding substance abuse"
+msgstr "Bewerk het geselecteerde item."
 
-msgid "Select a healthcare provider."
-msgstr "Selecteer een behandelaar."
+#, fuzzy
+msgid "Editing substance abuse"
+msgstr "Naam bewerken"
 
-msgid "Public (no clinical or demographic access)"
+msgid "Substances abused by the patient:"
 msgstr ""
 
-msgid "Staff (demographic access only)"
-msgstr ""
+#, fuzzy
+msgid "Showing abused substances."
+msgstr "Meting bewerken"
 
-msgid "staff (clerical)"
+msgid "Intake"
 msgstr ""
 
-msgid "full clinical access"
+msgid "nicotine"
 msgstr ""
 
-msgid "DB account"
-msgstr "Database account"
+#, fuzzy
+msgid "unit"
+msgstr "eenheden"
 
-msgid "can login"
-msgstr "kan inloggen"
+#, fuzzy, python-format
+msgid "Latest: %s ago (%s %s%s%s%s)"
+msgstr "  plaatselijke tijd: %s - %s (@%s = %s%s)\n"
 
-msgid "can not login"
-msgstr "kan niet inloggen"
+#, fuzzy, python-format
+msgid "%s %s%s%s (%s ago, %s)"
+msgstr "%s%7s %s: %s (%s part(s), %s)"
 
-#, fuzzy
-msgid "Activating GNUmed user."
-msgstr "GNUmed staflid activeren."
+#, fuzzy, python-format
+msgid "overdue %s: %s"
+msgstr "Documenten: %s"
 
-#, fuzzy
-msgid "Deactivating GNUmed user."
-msgstr "GNUmed staflid deactiveren."
+#, fuzzy, python-format
+msgid "due in %s%s"
+msgstr "Documenten: %s"
 
-#, fuzzy
-msgid "Removing GNUmed user."
-msgstr "GNUmed staflid modificeren."
+msgid "suppr'd:"
+msgstr ""
 
 #, fuzzy
-msgid "Removing GNUmed user"
-msgstr "GNUmed staflid toevoegen"
+msgid "Suppressed hints:\n"
+msgstr "voortgangsrapport"
 
 #, fuzzy
-msgid "Modifying GNUmed user."
-msgstr "GNUmed staflid modificeren."
-
-msgid "Failed to save changes to GNUmed database user."
+msgid ""
+"Do you really want to\n"
+"delete this inbox message ?"
 msgstr ""
-"Niet gelukt om veranderingen naar de GNUmed database gebruiker op te slaan."
+"Weet u zeker dat u dit BSN\n"
+"van deze patiënt wilt verwijderen?"
 
 #, fuzzy
-msgid "Modifying GNUmed user"
-msgstr "GNUmed staflid modificeren"
+msgid "Deleting inbox message"
+msgstr "Naam bewerken"
+
+#, fuzzy
+msgid "Export area: 1 item"
+msgstr "teken alle delen af"
 
 #, fuzzy, python-format
-msgid "Failed to set role [%s] for GNUmed database user."
-msgstr ""
-"Niet gelukt om veranderingen naar de GNUmed database gebruiker op te slaan."
+msgid "Export area: %s items"
+msgstr "Geexporteerd: %s\n"
 
 #, python-format
-msgid ""
-"\n"
-"  %s \"%s\" %s\n"
-"  born: %s"
+msgid "%s %s more not shown %s"
 msgstr ""
-"\n"
-"  %s \"%s\" %s\n"
-"geboren: %s"
 
-msgid ""
-"Password entries do not match. Please type in the passwords again to rule "
-"out typos."
-msgstr ""
-"Wachtwoorden komen niet overeen. Geef de wachtwoorden opnieuw in om "
-"typefouten te voorkomen."
+#, fuzzy, python-format
+msgid "Currently %s entries in waiting list"
+msgstr "De huidige geselecteerde patiënt is:"
 
-#, fuzzy
-msgid "Adding GNUmed user"
-msgstr "GNUmed staflid toevoegen"
+#, fuzzy, python-format
+msgid "first (in GMd): %s, %s"
+msgstr "prik: %s, %s, %s"
 
-msgid ""
-"Are you positively sure you want to create\n"
-"a user with an empty password ?\n"
-"\n"
-"Think about the record access implications !"
-msgstr ""
+#, fuzzy, python-format
+msgid "last: %s, %s"
+msgstr "prik: %s, %s, %s"
+
+#, fuzzy, python-format
+msgid "Last %s:"
+msgstr "Achternaam"
 
 #, fuzzy
-msgid "Enlisting person as user."
-msgstr "Patiënt inschrijven als staf."
+msgid "Statistics cover period"
+msgstr ""
+"EMD statistieken\n"
+"\n"
 
-msgid "Encrypt"
-msgstr "Versleutelen"
+#, python-format
+msgid "EDC (!?!): %s"
+msgstr ""
 
-msgid "Decrypt"
-msgstr "Ontcijfer"
+msgid ""
+"The Expected Date of Confinement is rather questionable.\n"
+"\n"
+"Please check patient age, patient gender, time until/since EDC."
+msgstr ""
 
-msgid "Set pass phrase"
-msgstr "Zet wachtwoordzin"
+#, fuzzy, python-format
+msgid "%s Vacc: %s (latest of %s)"
+msgstr "part %2s"
 
-msgid "This is not correctly encrypted text!"
-msgstr "Dit is geen correct versleutelde tekst!"
+#, fuzzy, python-format
+msgid "Hx of addiction: %s"
+msgstr "&Vaccinaties"
 
-msgid "Please enter your pass phrase:"
-msgstr "Geef uw wachtwoordzin in:"
+msgid "active substance abuse"
+msgstr ""
 
-msgid "Pass phrase expired"
-msgstr "wachtwoordzin verlopen"
+#, fuzzy, python-format
+msgid "%s %s %s%s"
+msgstr "prik: %s, %s, %s"
 
-msgid ""
-"\n"
-"Conditions preventable by vaccination as currently known to GNUmed.\n"
-msgstr ""
+#, fuzzy, python-format
+msgid "%s %s%s"
+msgstr "prik: %s, %s, %s"
 
-msgid "Showing vaccination preventable conditions."
+#, python-format
+msgid "** Currently hospitalized: %s **"
 msgstr ""
 
-msgid "ATCs: single-condition vaccines"
-msgstr ""
+#, fuzzy, python-format
+msgid "emergency: %s"
+msgstr "voortgangsrapport"
 
-msgid "ATCs: multi-condition vaccines"
-msgstr ""
+#, fuzzy, python-format
+msgid "in-praxis: %s"
+msgstr "   Doc: %s"
 
-#, fuzzy
-msgid "Pick the relevant indications."
-msgstr "Huidige medicatie"
+#, fuzzy, python-format
+msgid "care: %s%s@%s"
+msgstr " Status: %s, %s"
 
 #, fuzzy
-msgid "Known indications"
-msgstr "Indicaties"
+msgid "*** CONFIDENTIAL ***"
+msgstr ""
+"\n"
+"**** VERTROUWELIJK ****\n"
+"\n"
 
 #, fuzzy
-msgid "Adding new vaccine"
-msgstr "Nieuwe naam toegoegen"
+msgid " (confidential !)"
+msgstr "vertrouwelijk"
 
-#, fuzzy
-msgid "Editing vaccine"
-msgstr "Provincies bijwerken ..."
+#, fuzzy, python-format
+msgid "extrnl: %s (%s@%s)"
+msgstr "SQL: %s"
 
 #, python-format
+msgid "aka: %(last)s, %(first)s%(nick)s"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "job: %s (%s)"
+msgstr "SQL: %s"
+
+#, fuzzy, python-format
+msgid "issued by: %s%s"
+msgstr "uitgegeven door"
+
+#, fuzzy, python-format
+msgid "Last modified: %s"
+msgstr "Laatst gewijzigd:"
+
+#, fuzzy, python-format
 msgid ""
-"Cannot delete vaccine\n"
-"\n"
-" %s - %s (#%s)\n"
+"Activities:\n"
 "\n"
-"It is probably documented in a vaccination."
-msgstr ""
+"%s"
+msgstr "Huidige gezondheidsprobleem \"%s\""
 
 #, fuzzy
-msgid "Deleting vaccine"
+msgid "Cloning name"
 msgstr "Naam verwijderen"
 
-msgid "fake"
-msgstr ""
+msgid "Editing external ID"
+msgstr "BSN bewerken."
 
 #, fuzzy
-msgid ""
-"\n"
-"The vaccines currently known to GNUmed.\n"
-msgstr "Lijst met momenteel bestaande stafleden."
+msgid "Adding new translation"
+msgstr "Nieuwe patiënt toevoegen"
 
 #, fuzzy
-msgid "Showing vaccines."
-msgstr "Meting bewerken"
-
-msgid "Enter or select the batch/lot number of the vaccine used."
-msgstr ""
+msgid "Editing translation"
+msgstr "Wijzigen beroep"
 
 #, fuzzy
-msgid "Saving vaccine"
-msgstr "Adres verwijderen"
+msgid "Selecting language for translation"
+msgstr "Set &vertaling"
+
+msgid ""
+"Please select the language the translations for which you want to work on."
+msgstr ""
 
 #, python-format
 msgid ""
-"This vaccine is already in use:\n"
+"Are you sure you want to delete the translation of:\n"
 "\n"
-" \"%s\"\n"
-" (%s)\n"
+"%s\n"
 "\n"
-"Are you absolutely positively sure that\n"
-"you really want to edit this vaccine ?\n"
+"into [%s] as:\n"
 "\n"
-"This will change the vaccine name and/or target\n"
-"conditions in each patient this vaccine was\n"
-"used in to document a vaccination with.\n"
+"%s\n"
+"\n"
+"?  (Note that you must know the database administrator password !)\n"
 msgstr ""
 
 #, fuzzy
-msgid "You must select at least one indication."
-msgstr "U moet een sjabloonbestand selecteren voordat u opslaat."
-
-msgid "Pick the diseases this vaccine protects against."
-msgstr ""
+msgid "Deleting translation from database"
+msgstr "Herladen van database"
 
 #, fuzzy
-msgid "This vaccine"
-msgstr "Vaccin"
+msgid "deleting a translation"
+msgstr "Set &vertaling"
 
 #, fuzzy
-msgid "Adding new vaccinations"
-msgstr "Nieuwe patiënt toevoegen"
+msgid "Contributing translations"
+msgstr "Set &vertaling"
 
 #, fuzzy
-msgid "Editing vaccination"
-msgstr "Wijzigen beroep"
+msgid "Do you want to contribute your translations to the GNUmed project ?"
+msgstr "Dank u voor uw bijdrage aan de GNUmed community!"
 
 #, fuzzy
-msgid "vaccination recall"
-msgstr "Vaccinatie"
-
-#, fuzzy, python-format
-msgid "vaccination recall (%s)"
-msgstr "Vaccinaties"
-
-#, fuzzy, python-format
 msgid ""
-"Existing vaccination:\n"
-"\n"
-"%s"
-msgstr "Wijzigen beroep"
+"Unable to send mail. Cannot contribute translations to GNUmed community."
+msgstr ""
+"Kan geen bericht verzenden. Kan rapport niet bijdragen aan de GNUmed "
+"community."
 
 #, fuzzy
-msgid ""
-"\n"
-"Complete vaccination history for this patient.\n"
-msgstr "Bewerk details van het beroep voor de huidige patiënt."
+msgid "Thank you for your contribution to the GNUmed community!"
+msgstr "Dank u voor uw bijdrage aan de GNUmed community!"
 
-#, fuzzy
-msgid "Showing vaccinations."
-msgstr "instellingen bewaren"
+msgid "Showing translatable database strings for all languages."
+msgstr ""
 
-msgid "Intended to protect from"
+#, python-format
+msgid "Showing translatable database strings for target language [%s]."
 msgstr ""
 
-#, fuzzy
-msgid "Print vaccinations or recalls."
-msgstr "Vaccinatie"
+msgid "Contribute translations to GNUmed community by email."
+msgstr ""
 
-msgid "Recall"
+msgid ""
+"Before creating a new person review the encounter details\n"
+"of the patient you just worked on:\n"
+msgstr ""
+
+msgid "Edit the current encounter of the patient you are ABOUT TO LEAVE:"
 msgstr ""
 
 #, fuzzy
-msgid "Add a recall for a vaccination"
+msgid "Adding new person"
 msgstr "Nieuwe patiënt toevoegen"
 
-#, fuzzy
-msgid "Vx schedules"
-msgstr "Actieve Schema"
+msgid "ID exists !"
+msgstr ""
 
-#, fuzzy
-msgid "Open a browser showing vaccination schedules."
-msgstr "geen actieve vaccinatieschema's"
+#, python-format
+msgid "One \"%s, %s (%s)\" already exists !"
+msgstr ""
 
-#, fuzzy
-msgid "prevention"
-msgstr "Kalibreren"
+#, python-format
+msgid "%s \"%s, %s (%s)\" already exist !"
+msgstr ""
 
-#, fuzzy
-msgid "Saving vaccination"
-msgstr "instellingen bewaren"
-
-msgid "Pick the diseases this vaccination was given against."
-msgstr ""
-
-msgid "  IMMUNISATIONS  "
-msgstr "  INENTINGEN  "
-
-msgid "Indications"
-msgstr "Indicaties"
-
-msgid "Active Schedules"
-msgstr "Actieve Schema"
-
-msgid "Missing Immunisations"
-msgstr "Ontbrekende inentingen"
+msgid "Must enter lastname."
+msgstr "Moet achternaam invoeren."
 
-msgid "  Alerts  "
-msgstr "  Waarschuwingen  "
+msgid "Must enter first name."
+msgstr "Moet voornaam invoeren."
 
-msgid "ERROR: cannot retrieve active vaccination schedules"
-msgstr "FOUT: kan actieve vaccinaiteschema's niet ophalen"
+msgid "Must select gender."
+msgstr "Moet geslacht selecteren."
 
-msgid "no active vaccination schedules"
-msgstr "geen actieve vaccinatieschema's"
+msgid ""
+"To properly create an address, all the related fields must be filled in."
+msgstr ""
+"Om een juist nieuw adres aan te maken, moeten alle gerelateerde velden "
+"ingevuld zijn."
 
-#, python-format
-msgid "%s for %s (%s shots): %s"
-msgstr "%s voor %s (%s shots): %s"
+msgid "Required fields"
+msgstr "Verplichte velden"
 
-msgid "ERROR: cannot retrieve due/overdue vaccinations"
+msgid "This field must contain an item selected from the dropdown list."
 msgstr ""
-"FOUT: kan niet ophalen welke vaccins gepland zijn of al gegeven hadden "
-"moeten zijn"
-
-#, python-format
-msgid "%.0d weeks left: shot %s for %s in %s, due %s (%s)"
-msgstr "%.0d weken over: spuit %s voor %s in %s, gepland %s (%s)"
 
-#, python-format
-msgid "overdue %.0dyrs %.0dwks: shot %s for %s in schedule \"%s\" (%s)"
-msgstr "te laat %.0dyrs %.0dwks: spuit %s voor %s in schema \"%s\" (%s)"
+#, fuzzy
+msgid "Saving address"
+msgstr "Adres verwijderen"
 
-#, python-format
-msgid "due now: booster for %s in schedule \"%s\" (%s)"
-msgstr "gepland nu: booster voor %s in schema \"%s\" (%s)"
+msgid ""
+"Cannot save this address.\n"
+"\n"
+"You will have to add it via the Demographics plugin.\n"
+msgstr ""
 
-#, fuzzy, python-format
-msgid "Latest: %s ago (%s %s %s %s%s)"
-msgstr "  plaatselijke tijd: %s - %s (@%s = %s%s)\n"
+msgid ""
+"Address not saved.\n"
+"\n"
+"You will have to add it via the Demographics plugin.\n"
+msgstr ""
 
-#, fuzzy, python-format
-msgid "%s %s %s %s (%s ago, %s)"
-msgstr "%s%7s %s: %s (%s part(s), %s)"
+msgid "You need to actually set an editor."
+msgstr ""
 
 #, fuzzy, python-format
-msgid "overdue %s: %s"
-msgstr "Documenten: %s"
+msgid "The command [%s] is not found."
+msgstr ""
+"Het commando [%s] werd niet gevonden. Dit kan wel of niet een probleem zijn."
 
-#, fuzzy, python-format
-msgid "due in %s%s"
-msgstr "Documenten: %s"
+#, python-format
+msgid ""
+"Enter the shell command with which to start\n"
+"the image editor for visual progress notes.\n"
+"\n"
+"Any \"%(img)s\" included with the arguments\n"
+"will be replaced by the file name of the\n"
+"note template."
+msgstr ""
 
 #, fuzzy
-msgid ""
-"Do you really want to\n"
-"delete this inbox message ?"
+msgid "Choose file to use as template for new visual progress note"
 msgstr ""
-"Weet u zeker dat u dit BSN\n"
-"van deze patiënt wilt verwijderen?"
+"Weet u heel zeker dat u dit \n"
+"voortgangsrapport wilt gegooien?\n"
 
 #, fuzzy
-msgid "Deleting inbox message"
-msgstr "Naam bewerken"
+msgid "Visual progress note source"
+msgstr "voortgangsrapport"
+
+msgid "From which source do you want to pick the image template ?"
+msgstr ""
 
 #, fuzzy
-msgid "Export area: 1 item"
-msgstr "teken alle delen af"
+msgid "Database"
+msgstr "Database ..."
 
-#, fuzzy, python-format
-msgid "Export area: %s items"
-msgstr "Geexporteerd: %s\n"
+#, fuzzy
+msgid "List of templates in the database."
+msgstr "Bewerk het (eerste of enige) item geselecteerd in de lijst hierboven."
 
-#, python-format
-msgid "%s %s more not shown %s"
+msgid "Files in the filesystem."
 msgstr ""
 
-#, fuzzy, python-format
-msgid "Currently %s entries in waiting list"
-msgstr "De huidige geselecteerde patiënt is:"
-
-#, fuzzy, python-format
-msgid "first (in GMd): %s, %s"
-msgstr "prik: %s, %s, %s"
+msgid "Device"
+msgstr "Apparaat"
 
-#, fuzzy, python-format
-msgid "last: %s, %s"
-msgstr "prik: %s, %s, %s"
+msgid "Image capture devices (scanners, cameras, etc)"
+msgstr ""
 
 #, fuzzy, python-format
-msgid "Last %s:"
-msgstr "Achternaam"
-
-#, fuzzy
-msgid "Statistics cover period"
+msgid "Cannot export visual progress note template for [%s]."
 msgstr ""
-"EMD statistieken\n"
+"Kan voortgangsrapport editor niet openen voor\n"
+"\n"
+"[%s].\n"
 "\n"
 
-#, python-format
-msgid "EDC (!?!): %s"
+#, fuzzy
+msgid "Cannot export visual progress note to file."
+msgstr "Wis deze editor voor het voortgangsrapport."
+
+msgid "Editor for visual progress note not configured."
 msgstr ""
 
+#, python-format
 msgid ""
-"The Expected Date of Confinement is rather questionable.\n"
+"There was a problem with running the editor\n"
+"for visual progress notes.\n"
+"\n"
+" [%s]\n"
 "\n"
-"Please check patient age, patient gender, time until/since EDC."
 msgstr ""
 
-#, fuzzy, python-format
-msgid "%s Vacc: %s"
-msgstr "part %2s"
-
-#, fuzzy, python-format
-msgid "%s %s %s%s"
-msgstr "prik: %s, %s, %s"
-
-#, fuzzy, python-format
-msgid "%s %s%s"
-msgstr "prik: %s, %s, %s"
+#, fuzzy
+msgid "Editing visual progress note"
+msgstr "klinisch voortgangsrapport"
 
 #, python-format
-msgid "** Currently hospitalized: %s **"
+msgid ""
+"There was a problem reading the visual\n"
+"progress note from the file:\n"
+"\n"
+" [%s]\n"
+"\n"
 msgstr ""
 
-#, fuzzy, python-format
-msgid "emergency: %s"
-msgstr "voortgangsrapport"
-
-#, fuzzy, python-format
-msgid "in-praxis: %s"
-msgstr "   Doc: %s"
-
-#, fuzzy, python-format
-msgid "care: %s%s@%s"
-msgstr " Status: %s, %s"
-
 #, fuzzy
-msgid "*** CONFIDENTIAL ***"
-msgstr ""
+msgid "Saving visual progress note"
+msgstr "opslaan voortgangsrapport"
+
+msgid ""
+"You either created a visual progress note from a template\n"
+"in the database (rather than from a file on disk) or you\n"
+"edited an existing visual progress note.\n"
 "\n"
-"**** VERTROUWELIJK ****\n"
+"The template/original was not modified at all, however.\n"
 "\n"
+"Do you still want to save the unmodified image as a\n"
+"visual progress note into the EMR of the patient ?\n"
+msgstr ""
 
 #, fuzzy
-msgid " (confidential !)"
-msgstr "vertrouwelijk"
-
-#, fuzzy, python-format
-msgid "extrnl: %s (%s@%s)"
-msgstr "SQL: %s"
-
-#, python-format
-msgid "aka: %(last)s, %(first)s%(nick)s"
-msgstr ""
+msgid "visual progress notes"
+msgstr "voortgangsrapport"
 
 #, fuzzy, python-format
-msgid "job: %s (%s)"
-msgstr "SQL: %s"
+msgid " [part 1 of %s]"
+msgstr "part %2s"
 
 #, fuzzy, python-format
-msgid "issued by: %s%s"
-msgstr "uitgegeven door"
+msgid "Created: %s%s"
+msgstr "Geexporteerd: %s\n"
 
-#, fuzzy, python-format
-msgid "Last modified: %s"
-msgstr "Laatst gewijzigd:"
+msgid "You must select a value from the picklist or type an exact match."
+msgstr ""
+"U moet een waarde van de keuzelijst selecteren of een precieze overeenkomst."
 
 #, fuzzy, python-format
 msgid ""
-"Activities:\n"
-"\n"
-"%s"
-msgstr "Huidige gezondheidsprobleem \"%s\""
+"The content is invalid. It must match the regular expression: [%%s]. <%s>"
+msgstr "De invoer is ongeldig. Het moet zijn volgens: [%s]"
 
-#, fuzzy
-msgid "Cloning name"
-msgstr "Naam verwijderen"
+msgid "Latin"
+msgstr "Latijn"
 
-msgid "Editing external ID"
-msgstr "BSN bewerken."
+msgid "Greek"
+msgstr "Grieks"
 
-#, fuzzy
-msgid "Adding new translation"
-msgstr "Nieuwe patiënt toevoegen"
+msgid "Cyrillic"
+msgstr "Cyrillisch"
 
-#, fuzzy
-msgid "Editing translation"
-msgstr "Wijzigen beroep"
+msgid "Four Es"
+msgstr "E-en"
 
-#, fuzzy
-msgid "Selecting language for translation"
-msgstr "Set &vertaling"
-
-msgid ""
-"Please select the language the translations for which you want to work on."
-msgstr ""
-
-#, python-format
-msgid ""
-"Are you sure you want to delete the translation of:\n"
-"\n"
-"%s\n"
-"\n"
-"into [%s] as:\n"
-"\n"
-"%s\n"
-"\n"
-"?  (Note that you must know the database administrator password !)\n"
-msgstr ""
-
-#, fuzzy
-msgid "Deleting translation from database"
-msgstr "Herladen van database"
-
-#, fuzzy
-msgid "deleting a translation"
-msgstr "Set &vertaling"
-
-#, fuzzy
-msgid "Contributing translations"
-msgstr "Set &vertaling"
-
-#, fuzzy
-msgid "Do you want to contribute your translations to the GNUmed project ?"
-msgstr "Dank u voor uw bijdrage aan de GNUmed community!"
-
-#, fuzzy
-msgid ""
-"Unable to send mail. Cannot contribute translations to GNUmed community."
-msgstr ""
-"Kan geen bericht verzenden. Kan rapport niet bijdragen aan de GNUmed "
-"community."
-
-#, fuzzy
-msgid "Thank you for your contribution to the GNUmed community!"
-msgstr "Dank u voor uw bijdrage aan de GNUmed community!"
-
-msgid "Showing translatable database strings for all languages."
-msgstr ""
-
-#, python-format
-msgid "Showing translatable database strings for target language [%s]."
-msgstr ""
-
-msgid "Contribute translations to GNUmed community by email."
-msgstr ""
-
-msgid ""
-"Before creating a new person review the encounter details\n"
-"of the patient you just worked on:\n"
-msgstr ""
-
-msgid "Edit the current encounter of the patient you are ABOUT TO LEAVE:"
-msgstr ""
-
-#, fuzzy
-msgid "Adding new person"
-msgstr "Nieuwe patiënt toevoegen"
-
-msgid "ID exists !"
-msgstr ""
-
-#, python-format
-msgid "One \"%s, %s (%s)\" already exists !"
-msgstr ""
-
-#, python-format
-msgid "%s \"%s, %s (%s)\" already exist !"
-msgstr ""
-
-msgid "Must enter lastname."
-msgstr "Moet achternaam invoeren."
-
-msgid "Must enter first name."
-msgstr "Moet voornaam invoeren."
-
-msgid "Must select gender."
-msgstr "Moet geslacht selecteren."
-
-msgid ""
-"To properly create an address, all the related fields must be filled in."
-msgstr ""
-"Om een juist nieuw adres aan te maken, moeten alle gerelateerde velden "
-"ingevuld zijn."
-
-msgid "Required fields"
-msgstr "Verplichte velden"
-
-msgid "This field must contain an item selected from the dropdown list."
-msgstr ""
-
-#, fuzzy
-msgid "Saving address"
-msgstr "Adres verwijderen"
-
-msgid ""
-"Cannot save this address.\n"
-"\n"
-"You will have to add it via the Demographics plugin.\n"
-msgstr ""
-
-msgid ""
-"Address not saved.\n"
-"\n"
-"You will have to add it via the Demographics plugin.\n"
-msgstr ""
-
-msgid "You must select a value from the picklist or type an exact match."
-msgstr ""
-"U moet een waarde van de keuzelijst selecteren of een precieze overeenkomst."
-
-#, fuzzy, python-format
-msgid ""
-"The content is invalid. It must match the regular expression: [%%s]. <%s>"
-msgstr "De invoer is ongeldig. Het moet zijn volgens: [%s]"
-
-msgid "Latin"
-msgstr "Latijn"
-
-msgid "Greek"
-msgstr "Grieks"
-
-msgid "Cyrillic"
-msgstr "Cyrillisch"
-
-msgid "Four Es"
-msgstr "E-en"
-
-msgid "Symbol"
-msgstr "Symbool"
+msgid "Symbol"
+msgstr "Symbool"
 
 msgid "Snellen Chart"
 msgstr "Snellenkaart"
@@ -10806,7 +11228,8 @@ msgstr ""
 
 #, python-format
 msgid ""
-"%(street)s %(number)s, %(postcode)s %(urb)s, %(l10n_state)s, %(l10n_country)s"
+"%(street)s %(number)s, %(postcode)s %(urb)s, %(l10n_region)s, "
+"%(l10n_country)s"
 msgstr ""
 
 #, python-format
@@ -11462,7 +11885,7 @@ msgstr "Contactgegevens bewaren"
 msgid ""
 "Cannot save address.\n"
 "\n"
-"Does the state [%s]\n"
+"Does the region [%s]\n"
 "exist in country [%s] ?"
 msgstr ""
 
@@ -11926,8 +12349,9 @@ msgstr "Documenten: %s"
 msgid "Reminders for the current patient"
 msgstr "Schrijf een brief voor de huidige patiënt."
 
-msgid "Sent"
-msgstr ""
+#, fuzzy
+msgid "Generated"
+msgstr "Veralgemeniseerd"
 
 #, fuzzy
 msgid "Category - Type"
@@ -11978,10 +12402,6 @@ msgstr ""
 "Bericht: %s\n"
 "Gegevens: %s"
 
-#, fuzzy
-msgid "Inbox Message Actions:"
-msgstr "Postvak In Berichten menu"
-
 msgid "Activate patient"
 msgstr ""
 
@@ -12763,7 +13183,7 @@ msgid ""
 msgstr ""
 
 #, python-format
-msgid "Select branch (of praxis [%s]) which you are logging in from.\n"
+msgid "Select the branch of praxis [%s] which you are logging in from.\n"
 msgstr ""
 
 msgid "Praxis branch selection ..."
@@ -13098,6 +13518,14 @@ msgstr "verwijderen documenttype"
 msgid "List of addresses related to this person."
 msgstr "Verplaats gegevens naar andere episode"
 
+#, fuzzy
+msgid "Map"
+msgstr "Dhr"
+
+#, fuzzy
+msgid "Show selected address on map"
+msgstr "moet adres selecteren"
+
 msgid "Adding new address"
 msgstr "Nieuw adres toevoegen"
 
@@ -13311,8 +13739,91 @@ msgid "generic multi choice dialog"
 msgstr "algemene meerkeuze dialoog"
 
 #, fuzzy
-msgid "Search in list"
-msgstr "zoekresultaten"
+msgid "Deleting list items"
+msgstr "Alle items verwijderen"
+
+#, python-format
+msgid ""
+"You have selected %s list items.\n"
+"\n"
+"Really delete all %s items ?"
+msgstr ""
+
+msgid ""
+"Select the items you want to work on.\n"
+"\n"
+"A discontinuous selection may depend on your holding down a platform-"
+"dependent modifier key (<CTRL>, <ALT>, etc) or key combination (eg. <CTRL-"
+"SHIFT> or <CTRL-ALT>) while clicking."
+msgstr ""
+
+#, fuzzy
+msgid "List Item Actions:"
+msgstr "Episode %s"
+
+msgid "Add (<INS>)"
+msgstr ""
+
+#, fuzzy
+msgid "Delete (<DEL>)"
+msgstr " Verwijder "
+
+msgid "Find (<CTRL-F>)"
+msgstr ""
+
+#, python-format
+msgid "Find next [%s] (<CTRL-N>)"
+msgstr ""
+
+msgid "Row tooltip"
+msgstr ""
+
+msgid "Row data (formatted as text)"
+msgstr ""
+
+msgid "Row content (as one line)"
+msgstr ""
+
+msgid "Row content (one line per column)"
+msgstr ""
+
+#, python-format
+msgid "Column &%s: \"%s\" [#%s]"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "Column &%s: %s"
+msgstr "Documenten: %s"
+
+#, fuzzy
+msgid "&Copy to clipboard..."
+msgstr "Exporteren naar &clipboard"
+
+#, fuzzy
+msgid "Append (&+) to clipboard..."
+msgstr "Exporteren naar &clipboard"
+
+#, python-format
+msgid ""
+"%s list items are selected.\n"
+"\n"
+"Really delete all %s items ?"
+msgstr ""
+
+#, fuzzy
+msgid "Enter the search term:"
+msgstr "Geef zoekterm in:"
+
+#, fuzzy
+msgid "List search"
+msgstr "Zoeken"
+
+#, fuzzy, python-format
+msgid ""
+"Current search term: [[%s]]\n"
+"\n"
+"%s"
+msgstr "Geef zoekterm in:"
 
 msgid "Monty the Serpent && the FSF Present"
 msgstr "Monty the Serpent && the FSF presenteren"
@@ -13490,6 +14001,10 @@ msgid "Unknown: ?"
 msgstr "Onbekend"
 
 #, fuzzy
+msgid "The text has been copied into the clipboard."
+msgstr "Verwijder de geselecteerde items van de lijst."
+
+#, fuzzy
 msgid "file2clipboard"
 msgstr "Exporteren naar &clipboard"
 
@@ -13497,6 +14012,44 @@ msgstr "Exporteren naar &clipboard"
 msgid "The file [%s] has been copied into the clipboard."
 msgstr ""
 
+msgid "programmer forgot to specify error message"
+msgstr "programmeur vergat foutmelding te specificeren"
+
+msgid ""
+"\n"
+"\n"
+"Please consult the error log for all the gory details !"
+msgstr ""
+"\n"
+"\n"
+"Bekijk het foutenlogboek voor alle details!"
+
+msgid "generic error message"
+msgstr "algemene fout"
+
+msgid "programmer forgot to specify info message"
+msgstr "programmeur vergat bericht te specificeren"
+
+msgid "generic info message"
+msgstr "algemeen informatie bericht"
+
+msgid "programmer forgot to specify warning"
+msgstr "programmeur vergat waarschuwing te specificeren"
+
+msgid "generic warning message"
+msgstr "algemene waarschuwing"
+
+#, fuzzy
+msgid "Editing EDC"
+msgstr "Naam bewerken"
+
+#, python-format
+msgid ""
+"Really delete the EDC documented previously ?\n"
+"\n"
+" EDC: %s"
+msgstr ""
+
 #, python-format
 msgid ""
 "Algorithm: %s\n"
@@ -13610,15 +14163,16 @@ msgstr "Achternaam"
 msgid "Firstname"
 msgstr "Voornaam"
 
-msgid "Nickname"
-msgstr "Bijnaam"
-
 msgid "DOB"
 msgstr ""
 
 msgid "last visit"
 msgstr "laatste bezoek"
 
+#, fuzzy
+msgid "Nickname / Comment"
+msgstr "Bijnaam"
+
 msgid "found via"
 msgstr "gevonden via"
 
@@ -13848,1968 +14402,1849 @@ msgstr ""
 msgid "In case of emergency contact:"
 msgstr ""
 
-msgid ""
-"\n"
-"Please select the default drug data source from the list below.\n"
-"\n"
-"Note that to actually use it you need to have the database installed, too."
+#, fuzzy
+msgid "The preparation (form) of the substance or brand."
+msgstr "De eenheid waarin dit resultaat komt."
+
+msgid "A substance with optional strength or a brand."
 msgstr ""
 
 #, fuzzy
-msgid "Drug data source"
-msgstr "&Geneesmiddelen Bronnen"
+msgid "The medical aim for consuming this substance."
+msgstr "De eenheid waarin dit resultaat komt."
 
 #, fuzzy
-msgid "Configuring default drug data source"
-msgstr "Database taal instellen"
+msgid "not tolerated:"
+msgstr "niet relevant"
 
-msgid "No default drug database configured."
+#, fuzzy
+msgid "discontinued due to allergy or intolerance"
+msgstr "Het bewerken van allergie/ intollerantie afbreken."
+
+#, fuzzy
+msgid "Documented an allergy"
+msgstr "Document instellingen...."
+
+#, python-format
+msgid ""
+"An allergy was documented against the substance:\n"
+"\n"
+"  [%s]\n"
+"\n"
+"This substance was taken with the multi-component brand:\n"
+"\n"
+"  [%s (%s)]\n"
+"\n"
+"Note that ALL components of this brand were discontinued."
 msgstr ""
 
-msgid "There is no default drug database configured."
+msgid "disapproved"
+msgstr ""
+
+msgid "Substances consumed by the patient:"
 msgstr ""
 
 #, fuzzy
-msgid "Jumping to drug database"
-msgstr "Opstarten van geneesmidellengevens bladeraar"
+msgid "Showing consumable substances."
+msgstr "Meting bewerken"
 
-#, python-format
-msgid "Cannot call IFAP via [%s]."
-msgstr "Kan IFAP niet aanroepen via [%s]."
+#, fuzzy
+msgid "Application"
+msgstr "Indicatie"
+
+#, fuzzy
+msgid "never"
+msgstr "Eigenaar"
 
 #, python-format
-msgid "Cannot create IFAP <-> GNUmed transfer file [%s]."
-msgstr "Kan niet IFAP <-> GNUmed transfer file [%s] creëeren."
+msgid "%s, last confirmed %s\n"
+msgstr ""
 
-msgid "Current medication"
-msgstr "Huidige medicatie"
+#, fuzzy, python-format
+msgid "Comment (%s): %%s\n"
+msgstr "Documenten: %s"
 
-msgid ""
-"\n"
-"The ATC codes as known to GNUmed.\n"
-msgstr ""
+msgid "reaction not recorded"
+msgstr "reactie niet genoteerd"
 
-msgid "Showing ATC codes."
+#, fuzzy
+msgid "GFR: unknown"
+msgstr "Onbekend"
+
+msgid "GFR reported by path lab"
 msgstr ""
 
 #, fuzzy
-msgid "Choose an ATC import config file"
-msgstr "Kies een formuliersjabloon bestand"
+msgid "<no components>"
+msgstr "Afspraken"
 
 #, fuzzy
-msgid "config files"
-msgstr "logboek bestanden"
+msgid "Adding substance intake entry"
+msgstr "Bewerk het geselecteerde item."
 
-msgid "importing ATC reference data"
+#, python-format
+msgid ""
+"The patient is already taking\n"
+"\n"
+" %s\n"
+"\n"
+"You will want to adjust the schedule\n"
+"rather than document the intake twice."
 msgstr ""
 
-#, fuzzy
-msgid "Successfully imported ATC reference data."
-msgstr "Succesvol docment opgeslagen."
+msgid "Input incomplete/invalid for saving as substance intake."
+msgstr ""
 
-msgid "Importing ATC reference data failed."
+#, python-format
+msgid "Discontinued (%s) in the future (now: %s)!"
 msgstr ""
 
-msgid "Select an ATC (Anatomical-Therapeutic-Chemical) code."
+#, python-format
+msgid "Discontinued (%s) before started (%s) !"
 msgstr ""
 
 #, fuzzy
-msgid "Cannot delete this substance. It is in use."
-msgstr "Kan ontmoeting [%s] niet verwijderen. Het is in gebruik."
+msgid "Cannot add duplicate of (maybe inactive) substance intake."
+msgstr "Kan medicatie niet toevoegen. Geen actieve patiënt."
 
+#, python-format
 msgid ""
 "\n"
-"These are the consumable substances registered with GNUmed.\n"
+"[%s]\n"
+"\n"
+"It may be prudent to edit (before deletion) the details\n"
+"of this substance intake entry so as to leave behind\n"
+"some indication of why it was deleted.\n"
 msgstr ""
 
-#, fuzzy
-msgid "Showing consumable substances."
-msgstr "Meting bewerken"
+msgid "Deleting medication / substance intake"
+msgstr ""
 
-#, fuzzy
-msgid "Import"
-msgstr "Rapport"
+msgid "Allow editing of substance intake entry before deletion."
+msgstr ""
 
-msgid "Import consumable substances from a drug database."
+msgid "Delete immediately without editing first."
 msgstr ""
 
+msgid "&Cancel"
+msgstr "&Annuleren"
+
 #, fuzzy
-msgid "Cannot edit this substance. It is in use."
-msgstr "Kan beroep niet bewerken. Geen actieve patiënt."
+msgid "Abort. Do not delete or edit substance intake entry."
+msgstr "Bewerk het geselecteerde item."
 
 #, fuzzy
-msgid "Adding new consumable substance"
-msgstr "Nieuw contmoetingstype toevoegen"
+msgid "Now delete substance intake entry ?"
+msgstr "Bewerk het geselecteerde item."
 
 #, fuzzy
-msgid "Editing consumable substance"
-msgstr "Naam bewerken"
+msgid "Adding medication/non-medication substance intake"
+msgstr "Nieuwe naam toegoegen"
 
 #, fuzzy
-msgid "Cannot save consumable substance. Missing essential input."
-msgstr "Kan uitslag niet bewaren. Essentiele ingave ontbreekt."
+msgid "Editing medication/non-medication substance intake"
+msgstr "Naam bewerken"
+
+msgid "Document an allergy against this substance."
+msgstr ""
+
+msgid "No medication list template configured."
+msgstr ""
+
+msgid "There is no medication list template configured."
+msgstr ""
+
+msgid "Problem loading medication list template."
+msgstr ""
 
 #, fuzzy, python-format
-msgid "Cannot save consumable substance. %s"
-msgstr "Kan laboratoriumverzoek niet opslaan"
+msgid "Cannot load medication list template [%s - %s]"
+msgstr "Kan medicatie niet toevoegen. Geen actieve patiënt."
 
 #, fuzzy
-msgid "Cannot remove this component from the drug. It is in use."
-msgstr "Kan ontmoeting [%s] niet verwijderen. Het is in gebruik."
+msgid "generated medication list document"
+msgstr "Fout bij het verwijderen van de rapportdefinitie [%s]."
 
 #, fuzzy
-msgid ""
-"\n"
-"These are the components in the drug brands known to GNUmed.\n"
-msgstr "Lijst met momenteel bestaande stafleden."
+msgid "Select the default prescription template:"
+msgstr "Selecteer het standaardtype voor nieuwe ontmoetingen.\n"
 
-msgid "Showing drug brand components."
+msgid "No prescription template configured."
 msgstr ""
 
-#, fuzzy
-msgid "Adding new drug component"
-msgstr "Nieuwe patiënt toevoegen"
+msgid "There is no prescription template configured."
+msgstr ""
 
 #, fuzzy
-msgid "Editing drug component"
-msgstr "Meting bewerken"
+msgid "Printing prescription"
+msgstr "Voorschrifen"
 
 #, fuzzy
-msgid "Cannot edit drug component. It is in use."
-msgstr "Kan ontmoeting [%s] niet verwijderen. Het is in gebruik."
+msgid "Problem loading prescription template."
+msgstr "Formuliersjabloon verwijderen."
+
+#, fuzzy, python-format
+msgid "Cannot load prescription template [%s - %s]"
+msgstr "Kan medicatie niet toevoegen. Geen actieve patiënt."
 
 #, fuzzy
-msgid "Cannot save drug component. Invalid or missing essential input."
-msgstr "Kan uitslag niet bewaren. Essentiele ingave ontbreekt."
+msgid "generated prescription"
+msgstr "Voorschrifen"
 
-msgid "A drug component with optional strength."
+msgid ""
+"These brands have been prescribed but are not listed\n"
+"in the current medication list of this patient.\n"
+"\n"
+"Please select those you want added to the medication list."
 msgstr ""
 
 #, fuzzy
-msgid "The preparation (form) of the substance or brand."
-msgstr "De eenheid waarin dit resultaat komt."
+msgid "Newly prescribed drugs"
+msgstr "Voorgeschreven voor"
 
-msgid "The substance with optional strength."
-msgstr ""
+#, fuzzy
+msgid "Add to medication list"
+msgstr "Indicatie"
 
-msgid "Managing components of a drug"
-msgstr ""
+#, fuzzy
+msgid "Timeframe"
+msgstr "Titel"
 
 #, python-format
-msgid ""
-"Cannot manage the components of the branded drug product\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is currently taken by patients.\n"
+msgid "%s <fake>"
 msgstr ""
 
-msgid "Pick the substances which are components of this drug."
+#, fuzzy
+msgid "Cannot edit more than one substance at once."
+msgstr "Kan beroep niet bewerken. Geen actieve patiënt."
+
+msgid "Cannot delete more than one substance at once."
 msgstr ""
 
-msgid "Components of drug"
+msgid "Cannot create allergy from more than one substance at once."
 msgstr ""
 
-#, python-format
+#, fuzzy
 msgid ""
-"Adjust the components of \"%s\"\n"
 "\n"
-"The drug must contain at least one component. Any given\n"
-"substance can only be included once per drug."
-msgstr ""
+"Select the measurements panel to show in the medications plugin.\n"
+msgstr "Selecteer het soort communicatiekanaal."
 
 #, fuzzy
-msgid "Managing components of a drug ..."
-msgstr "Ontmoetingstypes bewerken ..."
+msgid "Measurements panel"
+msgstr "Metingen"
 
-#, fuzzy
-msgid "not in use"
-msgstr "In gebruik"
+msgid "Configuring medications plugin measurements panel"
+msgstr ""
 
-#, fuzzy, python-format
-msgid "ATC: %s\n"
-msgstr "   MTA: %s"
+msgid "EDC (!?!):"
+msgstr ""
 
 #, fuzzy
-msgid "Editing medication"
-msgstr "Kan geen beschrijving van het document toevoegen."
+msgid "EDC:"
+msgstr "   MTA: %s"
 
-#, python-format
-msgid ""
-"Cannot edit the medication\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is a vaccine. Please edit it\n"
-"from the vaccine management section !\n"
-msgstr ""
+#, fuzzy, python-format
+msgid "%.1f (%s ago)"
+msgstr "Geexporteerd: %s\n"
 
-#, fuzzy
-msgid "Deleting medication"
-msgstr "Kan geen beschrijving van het document toevoegen."
+msgid "eGFR:"
+msgstr ""
 
 #, python-format
+msgid "eGFR: %.1f (%s)"
+msgstr ""
+
+msgid "Enter vaccination given"
+msgstr "Geef in welke vaccinatie gegeven is"
+
+msgid "Unsaved progress note"
+msgstr "Niet opgeslagen voortgangsrapport"
+
 msgid ""
-"Cannot delete the medication\n"
+"This progress note has not been saved yet.\n"
 "\n"
-" \"%s\" (%s)\n"
+"Do you want to save it or discard it ?\n"
 "\n"
-"because it is a vaccine. Please delete it\n"
-"from the vaccine management section !\n"
 msgstr ""
+"Dit voortgangsrapport is nog niet opgeslagen.\n"
+"\n"
+"Wilt u het opslaan of weggooien?\n"
+"\n"
+
+msgid "Save this progress note"
+msgstr "Sla dit voortgangsrapport op"
+
+msgid "Discard this progress note"
+msgstr "Gooi dit voortgangsrapport weg"
+
+msgid "Save all remaining unsaved progress notes"
+msgstr "Bewaar alle overgebleven onopgeslagen voortgangsrapporten."
 
 msgid ""
+"Add editor for a new unassociated progress note.\n"
 "\n"
-"These are the drug brands known to GNUmed.\n"
-msgstr ""
-
-msgid "Showing branded drugs."
+"There is a configuration option whether or not to\n"
+"allow several new unassociated progress notes at once."
 msgstr ""
 
-msgid "Import substances and brands from a drug database."
-msgstr ""
+msgid "Save progress note into medical record and close this editor."
+msgstr "Sla voortgangsrapport op in medisch dossier en sluit deze editor."
 
-#, fuzzy
-msgid "Editing drug"
-msgstr "Adres wijzigen"
+msgid "Clear this progress note editor."
+msgstr "Wis deze editor voor het voortgangsrapport."
 
-#, fuzzy, python-format
 msgid ""
-"Cannot edit the branded drug product\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is currently taken by patients.\n"
+"Discard progress note and close this editor. You will loose any data already "
+"typed into this editor !"
 msgstr ""
-"Kan documenttype\n"
-" [%s]\n"
-"niet verwijderen omdat het in gebruik is."
+"Verwerp voortgangsrapport en sluit deze editor. U verliest alle gegevens die "
+"al in deze editor ingevoerd zijn!"
 
-#, fuzzy
-msgid "Adding new drug brand"
-msgstr "Nieuwe patiënt toevoegen"
+msgid "Problem saving progress note: duplicate information ?"
+msgstr "Probleem bij het opslaan van voortgangsrapport: dubbele informatie?"
+
+msgid "label missing"
+msgstr "missend label"
+
+msgid "soap cat missing"
+msgstr "ABCP categorie missend"
 
 #, fuzzy
-msgid "Editing drug brand"
-msgstr "opslaan voortgangsrapport"
+msgid "Enter a descriptive name for this new problem:"
+msgstr "Geef een beschrijvende naam voor de nieuwe episode:"
 
 #, fuzzy
-msgid "Manage consumable substances"
-msgstr "Meting bewerken"
+msgid "Creating a problem (episode) to save the notelet under ..."
+msgstr ""
+"U moet een episode selecteren waar dit document onder bewaard moet worden."
+
+msgid "Error saving progress note."
+msgstr "Fout bij het opslaan van voortgangsrapport."
+
+msgid "Error saving embedded data."
+msgstr "Fout bij het opslaan van ingevoerde gegevens."
 
 #, fuzzy
-msgid "Cannot edit drug brand. It is in use."
-msgstr "Kan ontmoeting [%s] niet verwijderen. Het is in gebruik."
+msgid "Visit Purpose"
+msgstr "Opties ..."
+
+msgid "History Taken"
+msgstr "Geschiedenis opgemaakt"
+
+msgid "Findings"
+msgstr "Bevindingen"
+
+msgid "save"
+msgstr "opslaan"
+
+msgid "save clinical note in EMR"
+msgstr "sla klinische notitie op in EMD"
+
+msgid "discard"
+msgstr "verwerpen"
+
+msgid "discard clinical note"
+msgstr "verwijder notitie"
+
+msgid "clinical progress note"
+msgstr "klinisch voortgangsrapport"
+
+msgid "Select files to add to the export area"
+msgstr ""
 
 #, fuzzy
-msgid "Checking brand data"
-msgstr "Controleren voor frontend updates"
+msgid "Adding files to export area"
+msgstr "Nieuwe naam toegoegen"
 
 #, python-format
 msgid ""
-"The brand information you entered:\n"
-"\n"
-" [%s %s]\n"
+"Cannot add (some of) the following files to the export area:\n"
+"%s "
+msgstr ""
+
+#, fuzzy
+msgid "Select the documents to be put into the export area:"
+msgstr ""
 "\n"
-"already exists as a drug product."
+"Selecteer het ontmoetingstype dat u wilt bewerken!\n"
+
+#, fuzzy
+msgid "clipboard"
+msgstr "Exporteren naar &clipboard"
+
+msgid "Loading clipboard item (saved to file) into export area"
 msgstr ""
 
+#, fuzzy, python-format
 msgid ""
-"You have not selected any substances\n"
-"as drug components.\n"
-"\n"
-"Without components you will not be able to\n"
-"use this drug for documenting patient care.\n"
-"\n"
-"Are you sure you want to save\n"
-"it without components ?"
+"Cannot add the following clip to the export area:\n"
+"%s "
+msgstr "kan patiënt [%s] (%s/%s) niet activeren"
+
+msgid "scan"
 msgstr ""
 
-#, fuzzy
-msgid "Cannot save branded drug. Invalid or missing essential input."
-msgstr "Kan uitslag niet bewaren. Essentiele ingave ontbreekt."
+msgid "Scanning files into export area"
+msgstr ""
 
+#, python-format
 msgid ""
-"The brand name of the drug.\n"
-"\n"
-"Note: a brand name will need to be linked to\n"
-"one or more components before it can be used,\n"
-"except in the case of fake (generic) vaccines."
+"Cannot add (some of) the following scans to the export area:\n"
+"%s "
 msgstr ""
 
 #, fuzzy
-msgid "The medical aim for consuming this substance."
-msgstr "De eenheid waarin dit resultaat komt."
+msgid "Deleting document from export area."
+msgstr "verwijderen documenttype"
+
+#, python-format
+msgid ""
+"Really remove %s selected document(s)\n"
+"from the patient export area ?"
+msgstr ""
 
 #, fuzzy
-msgid "not tolerated:"
-msgstr "niet relevant"
+msgid "Error printing documents."
+msgstr "Document verwerken: %s"
+
+#, fuzzy, python-format
+msgid "Printing [%s]"
+msgstr "Afdrukken"
+
+#, fuzzy, python-format
+msgid ""
+"Printed:\n"
+" - %s"
+msgstr "Geexporteerd: %s\n"
 
 #, fuzzy
-msgid "discontinued due to allergy or intolerance"
-msgstr "Het bewerken van allergie/ intollerantie afbreken."
+msgid "Select the directory into which to export the documents."
+msgstr "Selecteer de episode waaronder dit document bewaard moet worden..."
 
 #, fuzzy
-msgid "Documented an allergy"
-msgstr "Document instellingen...."
+msgid "Saving export area documents"
+msgstr "document bewaren"
 
 #, python-format
 msgid ""
-"An allergy was documented against the substance:\n"
+"The chosen export directory\n"
 "\n"
-"  [%s]\n"
+" [%s]\n"
 "\n"
-"This substance was taken with the multi-component brand:\n"
+"already contains files. Do you still want to save the\n"
+"selected export area documents into that directory ?\n"
 "\n"
-"  [%s (%s)]\n"
+"(this is useful for including the external documents\n"
+" already stored in or below this directory)\n"
 "\n"
-"Note that ALL components of this brand were discontinued."
+"[NO] will create a subdirectory for you and use that."
 msgstr ""
 
-msgid "disapproved"
+msgid ""
+"Create descriptive metadata files\n"
+"and save them alongside the\n"
+"selected export area documents ?"
 msgstr ""
 
-msgid "Substances consumed by the patient:"
-msgstr ""
+#, fuzzy, python-format
+msgid ""
+"Saved to [%s]:\n"
+" - %s"
+msgstr "  risico: %s"
 
-msgid "Intake"
+#, fuzzy, python-format
+msgid ""
+"Saved documents into directory:\n"
+"\n"
+" %s"
+msgstr "Document opslaan in map..."
+
+msgid "If you wish to include an existing directory select it here:"
 msgstr ""
 
 #, fuzzy
-msgid "Application"
-msgstr "Indicatie"
+msgid "Error burning documents to CD/DVD."
+msgstr "Document verwerken: %s"
 
 #, fuzzy
-msgid "never"
-msgstr "Eigenaar"
+msgid "Burning documents"
+msgstr "document bewaren"
 
 #, python-format
-msgid "%s, last confirmed %s\n"
+msgid ""
+"Burned onto CD/DVD:\n"
+" - %s"
 msgstr ""
 
-#, fuzzy, python-format
-msgid "Comment (%s): %%s\n"
-msgstr "Documenten: %s"
-
-msgid "reaction not recorded"
-msgstr "reactie niet genoteerd"
+#, fuzzy
+msgid "Error mailing documents."
+msgstr ""
+"Fout bij het zoeken naar documenten voor patiënt\n"
+"[%s %s]."
 
 #, fuzzy
-msgid "GFR: unknown"
-msgstr "Onbekend"
+msgid "Mailing documents"
+msgstr "document bewaren"
 
-msgid "GFR reported by path lab"
-msgstr ""
+#, fuzzy, python-format
+msgid ""
+"Mailed:\n"
+" - %s"
+msgstr "Geexporteerd: %s\n"
 
-#, python-format
 msgid ""
-"The patient is already taking\n"
-"\n"
-" %s\n"
+"Please enter the fax number here !\n"
 "\n"
-"You will want to adjust the schedule\n"
-"rather than document the intake twice."
+"It can be left empty if the external\n"
+"fax software knows how to get the number."
 msgstr ""
 
 #, fuzzy
-msgid "Adding substance intake entry"
-msgstr "Bewerk het geselecteerde item."
+msgid "Faxing documents"
+msgstr "document bewaren"
 
-msgid "Input incomplete/invalid for saving as substance intake."
+#, fuzzy, python-format
+msgid ""
+"Error faxing documents to\n"
+"\n"
+"  %s"
+msgstr ""
+"Fout bij het zoeken naar documenten voor patiënt\n"
+"[%s %s]."
+
+#, fuzzy, python-format
+msgid ""
+"Faxed to [%s]:\n"
+" - %s"
+msgstr "part %2s"
+
+msgid "<gm-mail_doc(.bat) not found>"
 msgstr ""
 
-#, python-format
-msgid "Discontinued (%s) in the future (now: %s)!"
+msgid "<gm-fax_doc(.bat) not found>"
 msgstr ""
 
+msgid "<gm-burn_doc(.bat) not found>"
+msgstr ""
+
+msgid "Cannot accept new documents. No active patient."
+msgstr "Kan geen nieuwe documenten accepteren. Geen actieve patiënt."
+
 #, python-format
-msgid "Discontinued (%s) before started (%s) !"
+msgid "Extracting files from folder [%s] ..."
+msgstr "Bestanden ophalen uit map [%s] ..."
+
+msgid "Drag&Drop"
 msgstr ""
 
 #, fuzzy
-msgid "Cannot add duplicate of (maybe inactive) substance intake."
-msgstr "Kan medicatie niet toevoegen. Geen actieve patiënt."
+msgid "Created"
+msgstr "Geexporteerd: %s\n"
 
 #, python-format
 msgid ""
+"Error exporting form template\n"
 "\n"
-"[%s]\n"
-"\n"
-"It may be prudent to edit (before deletion) the details\n"
-"of this substance intake entry so as to leave behind\n"
-"some indication of why it was deleted.\n"
+" \"%s\" (%s)"
 msgstr ""
+"Fout bij het exporteren van het formuliersjabloon\n"
+"\n"
+" \"%s\" (%s)"
 
-msgid "Deleting medication / substance intake"
+msgid "Letter template export"
+msgstr "Briefsjabloon exporteren"
+
+msgid ""
+"Cannot connect to OpenOffice.\n"
+"\n"
+"The UNO bridge module for Python\n"
+"is not installed."
 msgstr ""
+"Kan niet verbinden met OpenOffice.\n"
+"\n"
+"De UNO brugmodule voor Python\n"
+"is niet geïnstalleerd."
 
-msgid "Allow editing of substance intake entry before deletion."
+msgid "Letter writer"
+msgstr "Tekstverwerker"
+
+#, python-format
+msgid ""
+"Cannot connect to OpenOffice.\n"
+"\n"
+"You may want to increase the option\n"
+"\n"
+" <%s>"
 msgstr ""
+"Kan niet verbinden met OpenOffice.\n"
+"\n"
+"Wellicht moet u de volgende optie verhogen\n"
+"\n"
+" <%s>"
 
-msgid "Delete immediately without editing first."
+msgid "OOo startup time"
+msgstr "OOo opstart tijd"
+
+msgid "No document template selected."
 msgstr ""
 
-msgid "&Cancel"
-msgstr "&Annuleren"
+#, fuzzy, python-format
+msgid "Invalid document template [%s - %s (%s)]"
+msgstr "Kan medicatie niet toevoegen. Geen actieve patiënt."
 
 #, fuzzy
-msgid "Abort. Do not delete or edit substance intake entry."
-msgstr "Bewerk het geselecteerde item."
+msgid "Generating document from template"
+msgstr "verwijderen documenttype"
 
 #, fuzzy
-msgid "Now delete substance intake entry ?"
-msgstr "Bewerk het geselecteerde item."
+msgid "Error generating document printout."
+msgstr "Fout bij het verwijderen van de rapportdefinitie [%s]."
 
 #, fuzzy
-msgid "Adding medication/non-medication substance intake"
-msgstr "Nieuwe naam toegoegen"
+msgid "Generating document printout"
+msgstr "verwijderen documenttype"
+
+#, fuzzy, python-format
+msgid "Printed: %s"
+msgstr "Geexporteerd: %s\n"
 
 #, fuzzy
-msgid "Editing medication/non-medication substance intake"
-msgstr "Naam bewerken"
+msgid "Adding new form template"
+msgstr "Formuliersjabloon verwijderen."
 
-msgid "Document an allergy against this substance."
-msgstr ""
+#, fuzzy
+msgid "Editing form template"
+msgstr "Formuliersjabloon verwijderen."
 
-msgid "No medication list template configured."
-msgstr ""
+msgid "Deleting form template."
+msgstr "Formuliersjabloon verwijderen."
 
-msgid "There is no medication list template configured."
+#, python-format
+msgid ""
+"Are you sure you want to delete\n"
+"the following form template ?\n"
+"\n"
+" \"%s (%s)\"\n"
+"\n"
+"You can only delete templates which\n"
+"have not yet been used to generate\n"
+"any forms from."
 msgstr ""
+"Weet u zeker dat u het volgende formuliersjabloon \n"
+"wilt verwijderen?\n"
+"\n"
+" \"%s (%s)\"\n"
+"\n"
+"U kunt alleen sjablonen verwijderen die \n"
+"nog niet zijn gebruikt om formulieren te \n"
+"genereren."
 
-msgid "Problem loading medication list template."
-msgstr ""
+msgid "Select letter or form template."
+msgstr "Kies brief of formuliersjabloon."
 
-#, fuzzy, python-format
-msgid "Cannot load medication list template [%s - %s]"
-msgstr "Kan medicatie niet toevoegen. Geen actieve patiënt."
+msgid "You must select a template file before saving."
+msgstr "U moet een sjabloonbestand selecteren voordat u opslaat."
 
-#, fuzzy
-msgid "generated medication list document"
-msgstr "Fout bij het verwijderen van de rapportdefinitie [%s]."
+msgid "You must enter a type for documents created with this template."
+msgstr ""
 
 #, fuzzy
-msgid "Select the default prescription template:"
-msgstr "Selecteer het standaardtype voor nieuwe ontmoetingen.\n"
-
-msgid "No prescription template configured."
-msgstr ""
+msgid "You must enter a type for this template."
+msgstr "Een kortere, handige naam voor dit template."
 
-msgid "There is no prescription template configured."
-msgstr ""
+#, fuzzy
+msgid "You must enter a version for this template."
+msgstr "Een kortere, handige naam voor dit template."
 
 #, fuzzy
-msgid "Printing prescription"
-msgstr "Voorschrifen"
+msgid "Missing short name for template."
+msgstr "Een kortere, handige naam voor dit template."
 
 #, fuzzy
-msgid "Problem loading prescription template."
+msgid "Missing long name for template."
 msgstr "Formuliersjabloon verwijderen."
 
 #, fuzzy, python-format
-msgid "Cannot load prescription template [%s - %s]"
-msgstr "Kan medicatie niet toevoegen. Geen actieve patiënt."
-
-#, fuzzy
-msgid "generated prescription"
-msgstr "Voorschrifen"
+msgid "last modified %s by %s"
+msgstr "Laatst gewijzigd:"
 
-msgid ""
-"These brands have been prescribed but are not listed\n"
-"in the current medication list of this patient.\n"
-"\n"
-"Please select those you want added to the medication list."
-msgstr ""
+msgid "Choose a form template file"
+msgstr "Kies een formuliersjabloon bestand"
 
 #, fuzzy
-msgid "Newly prescribed drugs"
-msgstr "Voorgeschreven voor"
+msgid "Enter a filename to save the template to"
+msgstr "Geef een beschrijvende naam voor de nieuwe werkplek:"
 
 #, fuzzy
-msgid "Add to medication list"
-msgstr "Indicatie"
+msgid "Emergency contact"
+msgstr "voortgangsrapport"
 
 #, fuzzy
-msgid "Duration / Until"
-msgstr "Operatie"
+msgid "Primary doctor"
+msgstr "Toon Arts"
 
-#, python-format
-msgid "%s <fake>"
+msgid "in-praxis primary provider"
 msgstr ""
 
 #, fuzzy
-msgid "Cannot edit more than one substance at once."
-msgstr "Kan beroep niet bewerken. Geen actieve patiënt."
+msgid "This praxis"
+msgstr "Uw beoordeling"
 
-msgid "Cannot delete more than one substance at once."
-msgstr ""
+#, fuzzy
+msgid "Bill receiver"
+msgstr "Patiënt selecteren"
 
-msgid "Cannot create allergy from more than one substance at once."
+#, fuzzy
+msgid "Receiver"
 msgstr ""
+"%s Laatst gezien: %s\n"
+"\n"
 
 #, fuzzy
 msgid ""
+"Are you sure you want to delete this\n"
+"description from the document ?\n"
+msgstr ""
+"Weet u zeker dat u deze episode wilt verwijderen?\n"
 "\n"
-"Select the measurements panel to show in the medications plugin.\n"
-msgstr "Selecteer het soort communicatiekanaal."
+" \"%s\"\n"
 
 #, fuzzy
-msgid "Measurements panel"
-msgstr "Metingen"
-
-msgid "Configuring medications plugin measurements panel"
-msgstr ""
+msgid "Deleting document description"
+msgstr "Kan geen beschrijving van het document toevoegen."
 
-msgid "EDC (!?!):"
-msgstr ""
+#, fuzzy
+msgid "Adding document description"
+msgstr "Kan geen beschrijving van het document toevoegen."
 
 #, fuzzy
-msgid "EDC:"
-msgstr "   MTA: %s"
+msgid "Below you can add a document description.\n"
+msgstr "Kan geen beschrijving van het document toevoegen."
 
-#, fuzzy, python-format
-msgid "%.1f (%s ago)"
-msgstr "Geexporteerd: %s\n"
+#, fuzzy
+msgid "Editing document description"
+msgstr "Kan geen beschrijving van het document toevoegen."
 
-msgid "eGFR:"
-msgstr ""
+#, fuzzy
+msgid "Below you can edit the document description.\n"
+msgstr "Kan geen beschrijving van het document toevoegen."
 
-#, fuzzy, python-format
-msgid "%s%s%s (%s ago)"
-msgstr "%s%7s %s: %s (%s part(s), %s)"
+#, fuzzy
+msgid "Select the description you are interested in.\n"
+msgstr "Selecteer de episodes waar u in geïnteresseerd bent ..."
 
-#, python-format
-msgid "eGFR: %.1f (%s)"
-msgstr ""
+#, fuzzy
+msgid "Managing document descriptions"
+msgstr "Kan geen beschrijving van het document toevoegen."
 
-msgid "Enter vaccination given"
-msgstr "Geef in welke vaccinatie gegeven is"
+msgid "Select the episode under which to file the document ..."
+msgstr "Selecteer de episode waaronder dit document bewaard moet worden..."
 
-msgid "Unsaved progress note"
-msgstr "Niet opgeslagen voortgangsrapport"
+msgid "Cannot create new document."
+msgstr "Kan geen nieuw document creëeren."
+
+msgid "saving document"
+msgstr "document bewaren"
+
+#, fuzzy, python-format
+msgid "Imported new document from %s."
+msgstr "Kan documenttype niet veranderen naar [%s]."
+
+msgid "Successfully saved new document."
+msgstr "Succesvol docment opgeslagen."
 
+#, fuzzy
+msgid "Successfully saved the new document."
+msgstr "Succesvol docment opgeslagen."
+
+#, fuzzy, python-format
 msgid ""
-"This progress note has not been saved yet.\n"
+"The reference ID for the new document is:\n"
 "\n"
-"Do you want to save it or discard it ?\n"
+" <%s>\n"
+"\n"
+"You probably want to write it down on the\n"
+"original documents.\n"
 "\n"
+"If you don't care about the ID you can switch\n"
+"off this message in the GNUmed configuration.\n"
 msgstr ""
-"Dit voortgangsrapport is nog niet opgeslagen.\n"
+"Het referentie ID voor het nieuwe document is:\n"
 "\n"
-"Wilt u het opslaan of weggooien?\n"
+" <%s>\n"
 "\n"
+"U wilt het waarschijnlijk op het originele document \n"
+"schrijven.\n"
+"\n"
+"Als u het ID niet belangrijk vindt kunt u dit bericht\n"
+"uitzetten bij de GNUmed instellingen."
 
-msgid "Save this progress note"
-msgstr "Sla dit voortgangsrapport op"
-
-msgid "Discard this progress note"
-msgstr "Gooi dit voortgangsrapport weg"
-
-msgid "Save all remaining unsaved progress notes"
-msgstr "Bewaar alle overgebleven onopgeslagen voortgangsrapporten."
+#, fuzzy
+msgid "Saving document"
+msgstr "document bewaren"
 
+#, python-format
 msgid ""
-"Add editor for a new unassociated progress note.\n"
+"Successfully imported files as document.\n"
 "\n"
-"There is a configuration option whether or not to\n"
-"allow several new unassociated progress notes at once."
+"Do you want to delete imported files from the filesystem ?\n"
+"\n"
+" %s\n"
+"\n"
+"Note that temporary files will be deleted anyway."
 msgstr ""
 
-msgid "Save progress note into medical record and close this editor."
-msgstr "Sla voortgangsrapport op in medisch dossier en sluit deze editor."
-
-msgid "Clear this progress note editor."
-msgstr "Wis deze editor voor het voortgangsrapport."
+#, fuzzy
+msgid "Removing files"
+msgstr "Adres verwijderen"
 
-msgid ""
-"Discard progress note and close this editor. You will loose any data already "
-"typed into this editor !"
-msgstr ""
-"Verwerp voortgangsrapport en sluit deze editor. U verliest alle gegevens die "
-"al in deze editor ingevoerd zijn!"
+#, fuzzy
+msgid "Enter a comment on the document."
+msgstr "Geef een commentaar in op dit BSN."
 
-msgid "Problem saving progress note: duplicate information ?"
-msgstr "Probleem bij het opslaan van voortgangsrapport: dubbele informatie?"
+msgid "User defined"
+msgstr "Gebruikergedefinieerd"
 
-msgid "label missing"
-msgstr "missend label"
+msgid "In use"
+msgstr "In gebruik"
 
-msgid "soap cat missing"
-msgstr "ABCP categorie missend"
+#, python-format
+msgid ""
+"Cannot delete document type\n"
+" [%s]\n"
+"because it is currently in use."
+msgstr ""
+"Kan documenttype\n"
+" [%s]\n"
+"niet verwijderen omdat het in gebruik is."
 
-#, fuzzy
-msgid "Enter a descriptive name for this new problem:"
-msgstr "Geef een beschrijvende naam voor de nieuwe episode:"
+msgid "deleting document type"
+msgstr "verwijderen documenttype"
 
-#, fuzzy
-msgid "Creating a problem (episode) to save the notelet under ..."
+#, python-format
+msgid ""
+"From the list below select the document type you want\n"
+"all documents currently classified as:\n"
+"\n"
+" \"%s\"\n"
+"\n"
+"to be changed to.\n"
+"\n"
+"Be aware that this change will be applied to ALL such documents. If there\n"
+"are many documents to change it can take quite a while.\n"
+"\n"
+"Make sure this is what you want to happen !\n"
 msgstr ""
-"U moet een episode selecteren waar dit document onder bewaard moet worden."
-
-msgid "Error saving progress note."
-msgstr "Fout bij het opslaan van voortgangsrapport."
+"Selecteer uit onderstaande lijst het documenttype \n"
+"dat u wilt gebruiken voor alle documenten die nu\n"
+"geclassificeerd zijn als:\n"
+"\n"
+" \"%s\"\n"
+"\n"
+"verandert naar\n"
+"\n"
+"Wees er van bewust dat deze verandering\n"
+"van toepassing is op al zulke documenten.\n"
+"Als er veel documenten zijn om te \n"
+"veranderen kan dit wel even duren.\n"
+"\n"
+"Zorg dat u zeker weet dat u dit wilt!\n"
 
-msgid "Error saving embedded data."
-msgstr "Fout bij het opslaan van ingevoerde gegevens."
+msgid "Reassigning document type"
+msgstr "Documenttype opnieuw toepassen"
 
 #, fuzzy
-msgid "Visit Purpose"
-msgstr "Opties ..."
-
-msgid "History Taken"
-msgstr "Geschiedenis opgemaakt"
-
-msgid "Findings"
-msgstr "Bevindingen"
-
-msgid "save"
-msgstr "opslaan"
+msgid "Select the document type."
+msgstr "verwijderen documenttype"
 
-msgid "save clinical note in EMR"
-msgstr "sla klinische notitie op in EMD"
+#, fuzzy
+msgid "Cannot create document type without name."
+msgstr "Kan geen nieuwe episode toevoegen zonder een naam."
 
-msgid "discard"
-msgstr "verwerpen"
+msgid "+/-"
+msgstr "+/-"
 
-msgid "discard clinical note"
-msgstr "verwijder notitie"
+msgid "!"
+msgstr "!"
 
-msgid "clinical progress note"
-msgstr "klinisch voortgangsrapport"
+msgid "comment"
+msgstr "toelichting"
 
-msgid "Select files to add to the export area"
-msgstr ""
+msgid "(you are the primary reviewer)"
+msgstr "(u bent de primaire beoordeler)"
 
-#, fuzzy
-msgid "Adding files to export area"
-msgstr "Nieuwe naam toegoegen"
+#, fuzzy, python-format
+msgid "(someone else is the intended reviewer: %s)"
+msgstr "(iemand anders is de primaire beoordeler)"
 
 #, python-format
 msgid ""
-"Cannot add (some of) the following files to the export area:\n"
-"%s "
+"Cannot create episode\n"
+" [%s]"
 msgstr ""
+"Kan episode niet creëeren\n"
+" [%s]"
 
 #, fuzzy
-msgid "Select the documents to be put into the export area:"
-msgstr ""
-"\n"
-"Selecteer het ontmoetingstype dat u wilt bewerken!\n"
+msgid "Editing document properties"
+msgstr "documenteigenschappen bewerken"
 
-#, fuzzy
-msgid "clipboard"
-msgstr "Exporteren naar &clipboard"
+#, python-format
+msgid "Cannot change document type to [%s]."
+msgstr "Kan documenttype niet veranderen naar [%s]."
 
-msgid "Loading clipboard item (saved to file) into export area"
+#, python-format
+msgid ""
+"Cannot link the document to episode\n"
+"\n"
+" [%s]"
 msgstr ""
+"Kan document niet koppelen aan episode\n"
+"\n"
+" [%s]"
 
-#, fuzzy, python-format
-msgid ""
-"Cannot add the following clip to the export area:\n"
-"%s "
-msgstr "kan patiënt [%s] (%s/%s) niet activeren"
+msgid "Error setting \"reviewed\" status of this document."
+msgstr "Fout bij het instellen van de \"beoordeeld\" status van dit document."
 
-msgid "scan"
+msgid "Error setting responsible clinician for this document."
 msgstr ""
+"Fout bij het instellen van de verantwoordelijke behandelaar voor dit "
+"document."
 
-msgid "Scanning files into export area"
-msgstr ""
+msgid "Error setting \"reviewed\" status of this part."
+msgstr "Fout bij het instellen van de \"beoordeeld\" status van dit onderdeel."
 
 #, python-format
 msgid ""
-"Cannot add (some of) the following scans to the export area:\n"
-"%s "
+"Cannot set page number to [%s] because\n"
+"another page with this number exists.\n"
+"\n"
+"Page numbers in use:\n"
+"\n"
+" %s"
 msgstr ""
 
 #, fuzzy
-msgid "Deleting document from export area."
-msgstr "verwijderen documenttype"
+msgid "Editing document part properties"
+msgstr "documenteigenschappen bewerken"
 
-#, python-format
+msgid "Error saving part properties."
+msgstr "Fout bij het opslaan van onderdeeleigenschappen."
+
+#, fuzzy
 msgid ""
-"Really remove %s selected document(s)\n"
-"from the patient export area ?"
+"No images could be acquired from the source.\n"
+"\n"
+"This may mean the scanner driver is not properly installed.\n"
+"\n"
+"On Windows you must install the TWAIN Python module\n"
+"while on Linux and MacOSX it is recommended to install\n"
+"the XSane package."
 msgstr ""
+"Kan geen pagina's krijgen van de bron.\n"
+"\n"
+"Dit kan betekenen dat de scanner drivers niet \n"
+"goed zijn geïnstalleerd.\n"
+"\n"
+"Op Windows moet u u de TWAIN Python module\n"
+"installeren en op Linux en MacOSX het wordt\n"
+"aangeraden om het XSane pakket te installeren."
 
 #, fuzzy
-msgid "Error printing documents."
-msgstr "Document verwerken: %s"
+msgid "Acquiring images"
+msgstr "pagina ophalen"
 
-#, fuzzy, python-format
-msgid "Printing [%s]"
-msgstr "Afdrukken"
+msgid "directory dropped on client"
+msgstr ""
 
-#, fuzzy, python-format
-msgid ""
-"Printed:\n"
-" - %s"
-msgstr "Geexporteerd: %s\n"
+msgid "file dropped on client"
+msgstr ""
 
 #, fuzzy
-msgid "Select the directory into which to export the documents."
-msgstr "Selecteer de episode waaronder dit document bewaard moet worden..."
+msgid "other documents"
+msgstr "Document bijvoegen"
 
-#, fuzzy
-msgid "Saving export area documents"
-msgstr "document bewaren"
+msgid "path"
+msgstr ""
 
-#, python-format
-msgid ""
-"The chosen export directory\n"
-"\n"
-" [%s]\n"
-"\n"
-"is not empty. Do you want to use it for saving the\n"
-"export area documents into, nevertheless ?\n"
-"\n"
-"(this can be useful for including external documents)\n"
-"\n"
-"[NO] will create a subdirectory for you and use that."
+msgid "No parts to save. Really save an empty document as a reference ?"
 msgstr ""
+"Geen onderdelen om op te slaan. Wilt u een leeg document opslaan ter "
+"referentie?"
 
-#, fuzzy, python-format
-msgid ""
-"Saved to [%s]:\n"
-" - %s"
-msgstr "  risico: %s"
+msgid "No parts to save. Aquire some parts first."
+msgstr "Geen onderdelen om op te slaan. Voeg deze eerst toe."
 
-#, fuzzy, python-format
-msgid ""
-"Saved documents into directory:\n"
-"\n"
-" %s"
-msgstr "Document opslaan in map..."
+msgid "No document type applied. Choose a document type"
+msgstr "Geen documenttype vastgesteld. Kies een documenttype"
 
-msgid "If you wish to include an existing directory select it here:"
+msgid "You must select an episode to save this document under."
 msgstr ""
+"U moet een episode selecteren waar dit document onder bewaard moet worden."
 
-#, fuzzy
-msgid "Error burning documents to CD/DVD."
-msgstr "Document verwerken: %s"
-
-#, fuzzy
-msgid "Burning documents"
-msgstr "document bewaren"
-
-#, python-format
 msgid ""
-"Burned onto CD/DVD:\n"
-" - %s"
+"You need to select from the list of staff members the doctor who is intended "
+"to sign the document."
 msgstr ""
+"U moet van de lijst met stafleden de dokter selecteren die aangewezen is om "
+"het document te ondertekenen."
 
-#, fuzzy
-msgid "Error mailing documents."
+msgid "There is no scanner support installed on this machine."
 msgstr ""
-"Fout bij het zoeken naar documenten voor patiënt\n"
-"[%s %s]."
+"Er is geen ondersteuning voor een scanner op deze machine geïnstalleerd."
 
-#, fuzzy
-msgid "Mailing documents"
-msgstr "document bewaren"
+msgid "Cannot find an active scanner."
+msgstr "Kan geen actieve scanner vinden."
 
-#, fuzzy, python-format
-msgid ""
-"Mailed:\n"
-" - %s"
-msgstr "Geexporteerd: %s\n"
+msgid "Select an image capture device"
+msgstr "Selecteer een beeldapparaat"
 
-msgid ""
-"Please enter the fax number here !\n"
-"\n"
-"It can be left empty if the external\n"
-"fax software knows how to get the number."
-msgstr ""
+msgid "device selection"
+msgstr "apparaat selectie"
 
 #, fuzzy
-msgid "Faxing documents"
-msgstr "document bewaren"
-
-#, fuzzy, python-format
 msgid ""
-"Error faxing documents to\n"
+"No pages could be acquired from the source.\n"
 "\n"
-"  %s"
-msgstr ""
-"Fout bij het zoeken naar documenten voor patiënt\n"
-"[%s %s]."
-
-#, fuzzy, python-format
-msgid ""
-"Faxed to [%s]:\n"
-" - %s"
-msgstr "part %2s"
-
-msgid "<gm-mail_doc(.bat) not found>"
+"This may mean the scanner driver is not properly installed.\n"
+"\n"
+"On Windows you must install the TWAIN Python module\n"
+"while on Linux and MacOSX it is recommended to install\n"
+"the XSane package."
 msgstr ""
+"Kan geen pagina's krijgen van de bron.\n"
+"\n"
+"Dit kan betekenen dat de scanner drivers niet \n"
+"goed zijn geïnstalleerd.\n"
+"\n"
+"Op Windows moet u u de TWAIN Python module\n"
+"installeren en op Linux en MacOSX het wordt\n"
+"aangeraden om het XSane pakket te installeren."
 
-msgid "<gm-fax_doc(.bat) not found>"
-msgstr ""
+msgid "acquiring page"
+msgstr "pagina ophalen"
 
-msgid "<gm-burn_doc(.bat) not found>"
-msgstr ""
+#, fuzzy
+msgid "captured by imaging device"
+msgstr "Inlezen van scanner/ fototoestel"
 
-msgid "Cannot accept new documents. No active patient."
-msgstr "Kan geen nieuwe documenten accepteren. Geen actieve patiënt."
+msgid "Choose a file"
+msgstr "Kies een bestand"
 
-#, python-format
-msgid "Extracting files from folder [%s] ..."
-msgstr "Bestanden ophalen uit map [%s] ..."
+msgid "all files (Win)"
+msgstr "alle bestanden (Win)"
 
-msgid "Drag&Drop"
+msgid "picked from storage media"
 msgstr ""
 
 #, fuzzy
-msgid "Created"
-msgstr "Geexporteerd: %s\n"
-
-#, python-format
-msgid ""
-"Error exporting form template\n"
-"\n"
-" \"%s\" (%s)"
-msgstr ""
-"Fout bij het exporteren van het formuliersjabloon\n"
-"\n"
-" \"%s\" (%s)"
+msgid "pasted from clipboard"
+msgstr "Exporteren naar &clipboard"
 
-msgid "Letter template export"
-msgstr "Briefsjabloon exporteren"
+#, fuzzy
+msgid "No part selected for viewing."
+msgstr "Geen uitslagen geselecteerd voor verwijdering."
 
+#, python-format
 msgid ""
-"Cannot connect to OpenOffice.\n"
-"\n"
-"The UNO bridge module for Python\n"
-"is not installed."
+"Cannot display document part:\n"
+"%s"
 msgstr ""
-"Kan niet verbinden met OpenOffice.\n"
-"\n"
-"De UNO brugmodule voor Python\n"
-"is niet geïnstalleerd."
+"Kan documentonderdeel niet weergeven:\n"
+"%s"
 
-msgid "Letter writer"
-msgstr "Tekstverwerker"
+msgid "displaying part"
+msgstr "deel weergeven"
 
-#, python-format
-msgid ""
-"Cannot connect to OpenOffice.\n"
-"\n"
-"You may want to increase the option\n"
-"\n"
-" <%s>"
-msgstr ""
-"Kan niet verbinden met OpenOffice.\n"
-"\n"
-"Wellicht moet u de volgende optie verhogen\n"
-"\n"
-" <%s>"
+#, fuzzy
+msgid "No part selected for removal."
+msgstr "Geen uitslagen geselecteerd voor verwijdering."
 
-msgid "OOo startup time"
-msgstr "OOo opstart tijd"
+msgid "Cannot add document description."
+msgstr "Kan geen beschrijving van het document toevoegen."
 
-msgid "No document template selected."
+msgid "Error setting \"reviewed\" status of new document."
 msgstr ""
+"Fout bij het instellen van de \"beoordeeld\" status van dit nieuwe document."
 
 #, fuzzy, python-format
-msgid "Invalid document template [%s - %s (%s)]"
-msgstr "Kan medicatie niet toevoegen. Geen actieve patiënt."
+msgid ""
+"Source: %s\n"
+"File: %s\n"
+"\n"
+"%s"
+msgstr "Bron"
 
-#, fuzzy
-msgid "Generating document from template"
-msgstr "verwijderen documenttype"
+msgid "Document part does not seem to exist in database !"
+msgstr "Documentonderdeel lijkt niet te bestaan in de database!"
 
-#, fuzzy
-msgid "Error generating document printout."
-msgstr "Fout bij het verwijderen van de rapportdefinitie [%s]."
+msgid "showing document"
+msgstr "document tonen"
 
 #, fuzzy
-msgid "Generating document printout"
-msgstr "verwijderen documenttype"
-
-#, fuzzy, python-format
-msgid "Printed: %s"
-msgstr "Geexporteerd: %s\n"
+msgid "Document list for this patient."
+msgstr "Een aantekening bij deze patiënt."
 
 #, fuzzy
-msgid "Adding new form template"
-msgstr "Formuliersjabloon verwijderen."
+msgid "Showing documents."
+msgstr "document tonen"
 
-#, fuzzy
-msgid "Editing form template"
-msgstr "Formuliersjabloon verwijderen."
+msgid "Ref #"
+msgstr ""
 
-msgid "Deleting form template."
-msgstr "Formuliersjabloon verwijderen."
+#, python-format
+msgid "available documents (%s)"
+msgstr "beschikbare documenten (%s)"
 
 #, python-format
-msgid ""
-"Are you sure you want to delete\n"
-"the following form template ?\n"
-"\n"
-" \"%s (%s)\"\n"
-"\n"
-"You can only delete templates which\n"
-"have not yet been used to generate\n"
-"any forms from."
-msgstr ""
-"Weet u zeker dat u het volgende formuliersjabloon \n"
-"wilt verwijderen?\n"
-"\n"
-" \"%s (%s)\"\n"
-"\n"
-"U kunt alleen sjablonen verwijderen die \n"
-"nog niet zijn gebruikt om formulieren te \n"
-"genereren."
-
-msgid "Select letter or form template."
-msgstr "Kies brief of formuliersjabloon."
+msgid "unsigned (%s) on top"
+msgstr "ongetekende (%s) bovenaan"
 
-msgid "You must select a template file before saving."
-msgstr "U moet een sjabloonbestand selecteren voordat u opslaat."
+msgid "most recent on top"
+msgstr "meest recente bovenaan"
 
-msgid "You must enter a type for documents created with this template."
-msgstr ""
+msgid "sorted by episode"
+msgstr "gesorteerd op episode"
 
 #, fuzzy
-msgid "You must enter a type for this template."
-msgstr "Een kortere, handige naam voor dit template."
+msgid "sorted by health issue"
+msgstr "Creëer gezondheidsprobleem"
 
-#, fuzzy
-msgid "You must enter a version for this template."
-msgstr "Een kortere, handige naam voor dit template."
+msgid "sorted by type"
+msgstr "gesorteerd op soort"
 
-#, fuzzy
-msgid "Missing short name for template."
-msgstr "Een kortere, handige naam voor dit template."
+msgid "Cannot load documents. No active patient."
+msgstr "Kan documenten niet laden. Geen actieve patiënt."
 
 #, fuzzy
-msgid "Missing long name for template."
-msgstr "Formuliersjabloon verwijderen."
+msgid "Part Actions:"
+msgstr "Vaccinaties"
 
-#, fuzzy, python-format
-msgid "last modified %s by %s"
-msgstr "Laatst gewijzigd:"
+msgid "Display part"
+msgstr "Onderdeel weergeven"
 
-msgid "Choose a form template file"
-msgstr "Kies een formuliersjabloon bestand"
+#, python-format
+msgid "%s Sign/Edit properties"
+msgstr "[%s] Onderteken/ Bewerk eigenschappen"
 
 #, fuzzy
-msgid "Enter a filename to save the template to"
-msgstr "Geef een beschrijvende naam voor de nieuwe werkplek:"
+msgid "Delete part"
+msgstr "deel verwijderen"
 
 #, fuzzy
-msgid "Emergency contact"
-msgstr "voortgangsrapport"
+msgid "Move part"
+msgstr "verwijder onderdeel"
 
-#, fuzzy
-msgid "Primary doctor"
-msgstr "Toon Arts"
+msgid "Print part"
+msgstr "Onderdeel afdrukken"
 
-msgid "in-praxis primary provider"
-msgstr ""
+msgid "Fax part"
+msgstr "Onderdeel faxen"
+
+msgid "Mail part"
+msgstr "Onderdeel mailen"
 
 #, fuzzy
-msgid "This praxis"
-msgstr "Uw beoordeling"
+msgid "Export part"
+msgstr "teken alle delen af"
 
 #, fuzzy
-msgid "Hospital stay"
-msgstr "&Vaccinaties"
+msgid "Document Actions:"
+msgstr "Documenten"
 
 #, fuzzy
-msgid "Bill receiver"
-msgstr "Patiënt selecteren"
+msgid "Delete document"
+msgstr "Tekstdocument"
 
 #, fuzzy
-msgid "Receiver"
-msgstr ""
-"%s Laatst gezien: %s\n"
-"\n"
+msgid "Add parts"
+msgstr "patiënt"
 
 #, fuzzy
-msgid ""
-"Are you sure you want to delete this\n"
-"description from the document ?\n"
-msgstr ""
-"Weet u zeker dat u deze episode wilt verwijderen?\n"
-"\n"
-" \"%s\"\n"
+msgid "Add part from clipboard"
+msgstr "Exporteren naar &clipboard"
 
 #, fuzzy
-msgid "Deleting document description"
-msgstr "Kan geen beschrijving van het document toevoegen."
+msgid "Print all parts"
+msgstr "Onderdelen afdrukken"
 
 #, fuzzy
-msgid "Adding document description"
-msgstr "Kan geen beschrijving van het document toevoegen."
+msgid "Fax all parts"
+msgstr "Onderdelen faxen"
 
 #, fuzzy
-msgid "Below you can add a document description.\n"
-msgstr "Kan geen beschrijving van het document toevoegen."
+msgid "Mail all parts"
+msgstr "Onderdelen mailen"
 
 #, fuzzy
-msgid "Editing document description"
-msgstr "Kan geen beschrijving van het document toevoegen."
+msgid "Export all parts"
+msgstr "teken alle delen af"
+
+msgid "Access external original"
+msgstr "Toegang tot externe origineel"
 
 #, fuzzy
-msgid "Below you can edit the document description.\n"
-msgstr "Kan geen beschrijving van het document toevoegen."
+msgid "Edit corresponding encounter"
+msgstr "Bewerk overeenkomstig consult"
 
 #, fuzzy
-msgid "Select the description you are interested in.\n"
-msgstr "Selecteer de episodes waar u in geïnteresseerd bent ..."
+msgid "Select corresponding encounter"
+msgstr "Bewerk overeenkomstig consult"
 
 #, fuzzy
-msgid "Managing document descriptions"
-msgstr "Kan geen beschrijving van het document toevoegen."
+msgid "Manage descriptions"
+msgstr "Beschrijving van de Parameter"
 
-msgid "Select the episode under which to file the document ..."
-msgstr "Selecteer de episode waaronder dit document bewaard moet worden..."
+#, fuzzy
+msgid "Error searching documents."
+msgstr ""
+"Fout bij het zoeken naar documenten voor patiënt\n"
+"[%s %s]."
 
-#, fuzzy, python-format
-msgid "Imported new document from %s."
-msgstr "Kan documenttype niet veranderen naar [%s]."
+msgid "loading document list"
+msgstr "documentenlijst laden"
 
-#, fuzzy
-msgid "Enter a comment on the document."
-msgstr "Geef een commentaar in op dit BSN."
+#, fuzzy, python-format
+msgid "%s%7s %s:%s (%s)"
+msgstr "%s%7s %s: %s (%s part(s), %s)"
 
-msgid "User defined"
-msgstr "Gebruikergedefinieerd"
+#, fuzzy, python-format
+msgid "%s%7s (%s):%s (%s)"
+msgstr "%s%7s %s: %s (%s part(s), %s)"
 
-msgid "In use"
-msgstr "In gebruik"
+#, fuzzy, python-format
+msgid "%s (unattributed episode)"
+msgstr "Niet toegewezen episodes"
 
 #, python-format
+msgid "part %2s"
+msgstr "part %2s"
+
+msgid "Activate as current photo"
+msgstr "Activeer als huidige foto"
+
+#, fuzzy
 msgid ""
-"Cannot delete document type\n"
-" [%s]\n"
-"because it is currently in use."
+"\n"
+"Select the document into which to move the selected part !\n"
 msgstr ""
-"Kan documenttype\n"
-" [%s]\n"
-"niet verwijderen omdat het in gebruik is."
+"\n"
+"Selecteer het ontmoetingstype dat u wilt bewerken!\n"
 
-msgid "deleting document type"
+#, fuzzy
+msgid "Cannot move document part."
+msgstr ""
+"Kan documentonderdeel niet weergeven:\n"
+"%s"
+
+#, fuzzy
+msgid "Moving document part"
+msgstr "Verwerken documentonderdeel: %s"
+
+#, fuzzy
+msgid "Deleting document part"
 msgstr "verwijderen documenttype"
 
 #, python-format
 msgid ""
-"From the list below select the document type you want\n"
-"all documents currently classified as:\n"
+"Are you sure you want to delete the %s part #%s\n"
 "\n"
-" \"%s\"\n"
+"%sfrom the following document\n"
 "\n"
-"to be changed to.\n"
+" %s (%s)\n"
+"%s\n"
+"Really delete ?\n"
 "\n"
-"Be aware that this change will be applied to ALL such documents. If there\n"
-"are many documents to change it can take quite a while.\n"
+"(this action cannot be reversed)"
+msgstr ""
+
+#, fuzzy, python-format
+msgid ""
+"Cannot %(l10n_action)s document part - %(l10n_action)s command not found.\n"
 "\n"
-"Make sure this is what you want to happen !\n"
+"Either of gm-%(action)s_doc or gm-%(action)s_doc.bat\n"
+"must be in the execution path. The command will\n"
+"be passed the filename to %(l10n_action)s."
 msgstr ""
-"Selecteer uit onderstaande lijst het documenttype \n"
-"dat u wilt gebruiken voor alle documenten die nu\n"
-"geclassificeerd zijn als:\n"
+"Kan niet %(l10n_action)s documentonderdeel - %(l10n_action)s opdracht niet "
+"gevonden.\n"
 "\n"
-" \"%s\"\n"
+"OF gm_%(action)s_doc.sh OF gm_%(action)s_doc.bat\n"
+"moet in het uitvoerpad bestaan. De opdracht zal \n"
+"de bestandsnaam doorgeven aan %(l10n_action)s."
+
+#, python-format
+msgid "Processing document part: %s"
+msgstr "Verwerken documentonderdeel: %s"
+
+#, fuzzy, python-format
+msgid ""
+"Cannot %(l10n_action)s document part - %(l10n_action)s command failed.\n"
 "\n"
-"verandert naar\n"
+"You may need to check and fix either of\n"
+" gm-%(action)s_doc (Unix/Mac) or\n"
+" gm-%(action)s_doc.bat (Windows)\n"
 "\n"
-"Wees er van bewust dat deze verandering\n"
-"van toepassing is op al zulke documenten.\n"
-"Als er veel documenten zijn om te \n"
-"veranderen kan dit wel even duren.\n"
+"The command is passed the filename to %(l10n_action)s."
+msgstr ""
+"Kan niet %(l10n_action)s documentonderdeel  - %(l10n_action)s opdracht "
+"mislukt..\n"
 "\n"
-"Zorg dat u zeker weet dat u dit wilt!\n"
+"Wellicht moet u controleren en oplossen\n"
+" gm_%(action)s_doc.sh (Unix/Linux/Mac) of \n"
+" gm_%(action)s_doc.bat (Windows)"
 
-msgid "Reassigning document type"
-msgstr "Documenttype opnieuw toepassen"
+#, python-format
+msgid "document part handed over to email program: %s"
+msgstr ""
 
-#, fuzzy
-msgid "Select the document type."
-msgstr "verwijderen documenttype"
+msgid "print"
+msgstr "afdrukken"
 
-#, fuzzy
-msgid "Cannot create document type without name."
-msgstr "Kan geen nieuwe episode toevoegen zonder een naam."
-
-msgid "+/-"
-msgstr "+/-"
-
-msgid "!"
-msgstr "!"
+msgid "fax"
+msgstr "fax"
 
-msgid "comment"
-msgstr "toelichting"
+msgid "mail"
+msgstr "mail"
 
-msgid "(you are the primary reviewer)"
-msgstr "(u bent de primaire beoordeler)"
+#, fuzzy
+msgid "Save document part to directory ..."
+msgstr "Document opslaan in map..."
 
 #, fuzzy, python-format
-msgid "(someone else is the intended reviewer: %s)"
-msgstr "(iemand anders is de primaire beoordeler)"
+msgid "Successfully exported document part as [%s]."
+msgstr "Succes bij het exporteren van %s onderdelen in de map [%s]."
 
-#, python-format
+#, fuzzy, python-format
 msgid ""
-"Cannot create episode\n"
-" [%s]"
+"Cannot %(l10n_action)s document - %(l10n_action)s command not found.\n"
+"\n"
+"Either of gm-%(action)s_doc or gm-%(action)s_doc.bat\n"
+"must be in the execution path. The command will\n"
+"be passed a list of filenames to %(l10n_action)s."
 msgstr ""
-"Kan episode niet creëeren\n"
-" [%s]"
-
-#, fuzzy
-msgid "Editing document properties"
-msgstr "documenteigenschappen bewerken"
+"Kan niet %(l10n_action)s document - %(l10n_action)s opdracht niet gevonden.\n"
+"\n"
+"Een van deze: gm_%(action)s_doc.sh  OF  gm_%(action)s_doc.bat\n"
+"moet in het opdrachtpad zijn. De opdracht zal een lijst van bestandsnamen \n"
+"verkrijgen  %(l10n_action)s."
 
 #, python-format
-msgid "Cannot change document type to [%s]."
-msgstr "Kan documenttype niet veranderen naar [%s]."
+msgid "Processing document: %s"
+msgstr "Document verwerken: %s"
 
-#, python-format
+#, fuzzy, python-format
 msgid ""
-"Cannot link the document to episode\n"
+"Cannot %(l10n_action)s document - %(l10n_action)s command failed.\n"
 "\n"
-" [%s]"
+"You may need to check and fix either of\n"
+" gm-%(action)s_doc (Unix/Mac) or\n"
+" gm-%(action)s_doc.bat (Windows)\n"
+"\n"
+"The command is passed a list of filenames to %(l10n_action)s."
 msgstr ""
-"Kan document niet koppelen aan episode\n"
+"Kan niet %(l10n_action)s documenten - %(l10n_action)s opdracht mislukt.\n"
 "\n"
-" [%s]"
-
-msgid "Error setting \"reviewed\" status of this document."
-msgstr "Fout bij het instellen van de \"beoordeeld\" status van dit document."
+"Wellicht moet u controleren en oplossen\n"
+" gm_%(action)s_doc.sh (Unix/Linux/Mac) of \n"
+" gm_%(action)s_doc.bat (Windows)"
 
-msgid "Error setting responsible clinician for this document."
+msgid "Really add the displayed clipboard item into the document ?"
 msgstr ""
-"Fout bij het instellen van de verantwoordelijke behandelaar voor dit "
-"document."
 
-msgid "Error setting \"reviewed\" status of this part."
-msgstr "Fout bij het instellen van de \"beoordeeld\" status van dit onderdeel."
+#, fuzzy
+msgid "Document part from clipboard"
+msgstr "Exporteren naar &clipboard"
 
-#, python-format
 msgid ""
-"Cannot set page number to [%s] because\n"
-"another page with this number exists.\n"
-"\n"
-"Page numbers in use:\n"
+"Cannot access external document - access command not found.\n"
 "\n"
-" %s"
+"Either of gm_access_external_doc.sh or *.bat must be\n"
+"in the execution path. The command will be passed the\n"
+"document type and the reference URL for processing."
 msgstr ""
+"Kan extern document niet lezen - toegangsopdracht niet gevonden.\n"
+"\n"
+"Een van deze: gm_%(action)s_doc.sh  OF  gm_%(action)s_doc.bat\n"
+"moet in het opdrachtpad zijn. De opdracht zal het documentsoort en de \n"
+"URL krijgen voor bewerking."
 
-#, fuzzy
-msgid "Editing document part properties"
-msgstr "documenteigenschappen bewerken"
-
-msgid "Error saving part properties."
-msgstr "Fout bij het opslaan van onderdeeleigenschappen."
+msgid "Accessing external document"
+msgstr "Inlezen van extern document"
 
-#, fuzzy
 msgid ""
-"No images could be acquired from the source.\n"
+"Cannot access external document - access command failed.\n"
 "\n"
-"This may mean the scanner driver is not properly installed.\n"
+"You may need to check and fix either of\n"
+" gm_access_external_doc.sh (Unix/Mac) or\n"
+" gm_access_external_doc.bat (Windows)\n"
 "\n"
-"On Windows you must install the TWAIN Python module\n"
-"while on Linux and MacOSX it is recommended to install\n"
-"the XSane package."
+"The command is passed the document type and the\n"
+"external reference URL on the command line."
 msgstr ""
-"Kan geen pagina's krijgen van de bron.\n"
+"Kan het externe document niet inlezen - toegangsopdracht geweigerd.\n"
 "\n"
-"Dit kan betekenen dat de scanner drivers niet \n"
-"goed zijn geïnstalleerd.\n"
+"Wellicht moet u controleren en oplossen\n"
+" gm_access_external_doc.sh (Unix/Linux/Mac) of \n"
+" gm_access_external_doc.bat (Windows)"
+
+msgid "Save document into directory ..."
+msgstr "Document opslaan in map..."
+
+#, python-format
+msgid "Successfully exported %s parts into the directory [%s]."
+msgstr "Succes bij het exporteren van %s onderdelen in de map [%s]."
+
+#, fuzzy
+msgid "Are you sure you want to delete the document ?"
+msgstr ""
+"Weet u zeker dat u deze episode wilt verwijderen?\n"
 "\n"
-"Op Windows moet u u de TWAIN Python module\n"
-"installeren en op Linux en MacOSX het wordt\n"
-"aangeraden om het XSane pakket te installeren."
+" \"%s\"\n"
 
 #, fuzzy
-msgid "Acquiring images"
-msgstr "pagina ophalen"
+msgid "Deleting document"
+msgstr "verwijderen documenttype"
 
 #, fuzzy
-msgid "other documents"
-msgstr "Document bijvoegen"
+msgid "Study date"
+msgstr "datum"
 
-#, fuzzy, python-format
-msgid "part %s: %s"
-msgstr "part %2s"
+#, fuzzy
+msgid "Study time"
+msgstr "Begin nieuw"
 
-msgid "saving document"
-msgstr "document bewaren"
+msgid "Method"
+msgstr ""
 
-msgid "No parts to save. Really save an empty document as a reference ?"
+#, fuzzy
+msgid "Body part"
+msgstr "patiënt"
+
+#, fuzzy
+msgid "Time"
+msgstr "Titel"
+
+#, fuzzy
+msgid "Cannot connect without port (try 8042)."
+msgstr "Kan patiënt niet verwijderen. Geen actieve patiënt."
+
+#, python-format
+msgid "Connect to [%s] @ port %s as \"%s\"."
 msgstr ""
-"Geen onderdelen om op te slaan. Wilt u een leeg document opslaan ter "
-"referentie?"
 
-msgid "No parts to save. Aquire some parts first."
-msgstr "Geen onderdelen om op te slaan. Voeg deze eerst toe."
+#, fuzzy
+msgid "Cannot connect to PACS."
+msgstr "kan niet verbinden met service [%s]"
 
-msgid "No document type applied. Choose a document type"
-msgstr "Geen documenttype vastgesteld. Kies een documenttype"
+#, python-format
+msgid "PACS: Orthanc \"%s\" (AET \"%s\", Version %s, DB v%s)"
+msgstr ""
 
-msgid "You must select an episode to save this document under."
+#, python-format
+msgid "GNUmed patient: %s (generic PACS ID)"
+msgstr ""
+
+#, python-format
+msgid "GNUmed patient: \"%(value)s\" @ [%(issuer)s] (stored PACS ID)"
+msgstr ""
+
+msgid "PACS: no patients with matching IDs found"
 msgstr ""
-"U moet een episode selecteren waar dit document onder bewaard moet worden."
 
 msgid ""
-"You need to select from the list of staff members the doctor who is intended "
-"to sign the document."
+"PACS: more than one patient with matching IDs found, carefully check studies"
 msgstr ""
-"U moet van de lijst met stafleden de dokter selecteren die aangewezen is om "
-"het document te ondertekenen."
 
-msgid "There is no scanner support installed on this machine."
+#, python-format
+msgid "%s series"
 msgstr ""
-"Er is geen ondersteuning voor een scanner op deze machine geïnstalleerd."
 
-msgid "Cannot find an active scanner."
-msgstr "Kan geen actieve scanner vinden."
+#, fuzzy, python-format
+msgid "%%s (%s series)"
+msgstr "%s (%s dit jaar)"
 
-msgid "Select an image capture device"
-msgstr "Selecteer een beeldapparaat"
+msgid "no studies"
+msgstr ""
 
-msgid "device selection"
-msgstr "apparaat selectie"
+#, python-format
+msgid "%s studies"
+msgstr ""
+
+msgid "Exporting DICOM studies"
+msgstr ""
 
 #, fuzzy
+msgid "Unable to export selected studies."
+msgstr "moet adres selecteren"
+
+#, python-format
 msgid ""
-"No pages could be acquired from the source.\n"
-"\n"
-"This may mean the scanner driver is not properly installed.\n"
+"The DICOM studies are %s in compressed size.\n"
 "\n"
-"On Windows you must install the TWAIN Python module\n"
-"while on Linux and MacOSX it is recommended to install\n"
-"the XSane package."
+"Really copy to export area ?"
 msgstr ""
-"Kan geen pagina's krijgen van de bron.\n"
-"\n"
-"Dit kan betekenen dat de scanner drivers niet \n"
-"goed zijn geïnstalleerd.\n"
-"\n"
-"Op Windows moet u u de TWAIN Python module\n"
-"installeren en op Linux en MacOSX het wordt\n"
-"aangeraden om het XSane pakket te installeren."
 
-msgid "acquiring page"
-msgstr "pagina ophalen"
+#, python-format
+msgid "DICOM studies of [%s] from Orthanc PACS \"%s\" (AET \"%s\")"
+msgstr ""
 
-msgid "Choose a file"
-msgstr "Kies een bestand"
+#, fuzzy
+msgid "Select the directory into which to save the DICOM studies."
+msgstr "Selecteer de episode waaronder dit document bewaard moet worden..."
 
-msgid "all files (Win)"
-msgstr "alle bestanden (Win)"
+#, fuzzy
+msgid "Saving DICOM studies"
+msgstr "opslaan voortgangsrapport"
 
-msgid "You must select a part before you can view it."
-msgstr "U moet een onderdeel selecteren voordat u het kunt bekijken."
+#, fuzzy
+msgid "Unable to save selected studies."
+msgstr "moet adres selecteren"
 
-msgid "displaying part"
-msgstr "deel weergeven"
+#, fuzzy
+msgid "Unable to export studies."
+msgstr "Niet gelukt om patiënt in te schrijven voor %s"
 
 #, python-format
-msgid ""
-"Cannot display document part:\n"
-"%s"
+msgid "All DICOM studies of [%s] from Orthanc PACS \"%s\" (AET \"%s\")"
 msgstr ""
-"Kan documentonderdeel niet weergeven:\n"
-"%s"
 
-msgid "You must select a part before you can delete it."
-msgstr "U moet een onderdeel selecteren voordat u het kunt verwijderen."
+#, fuzzy, python-format
+msgid "%s%s images"
+msgstr "Geexporteerd: %s\n"
 
-msgid "deleting part"
-msgstr "deel verwijderen"
+#, fuzzy
+msgid "Select the directory from which to recursively upload DICOM files."
+msgstr "Selecteer de episode waaronder dit document bewaard moet worden..."
+
+msgid "Delete the uploaded DICOM files now ?"
+msgstr ""
 
-#, fuzzy, python-format
 msgid ""
-"The part has successfully been removed from the document.\n"
-"\n"
-"Do you also want to permanently delete the file\n"
-"\n"
-" [%s]\n"
+"Some files have not been uploaded.\n"
 "\n"
-"from which this document part was loaded ?\n"
-"\n"
-"If it is a temporary file for a page you just scanned\n"
-"this makes a lot of sense. In other cases you may not\n"
-"want to lose the file.\n"
-"\n"
-"Pressing [YES] will permanently remove the file\n"
-"from your computer.\n"
+"Do you want to delete those DICOM files which have been sent to the PACS "
+"successfully ?"
 msgstr ""
-"Wilt u definitief het bestand\n"
-"\n"
-" [%s]\n"
-"\n"
-"van uw computer verwijderen?\n"
-"\n"
-"Als het een tijdelijk bestand is voor een pagina die u\n"
-"zojuist gescand heeft is dit logisch.In andere gevallen\n"
-"wilt u wellicht het bestand niet verliezen.\n"
-"\n"
-"Door op JA te drukken verwijderd u het bestand\n"
-"definitief van uw computer."
 
 #, fuzzy
-msgid "Removing document part"
-msgstr "Verwerken documentonderdeel: %s"
-
-#, python-format
-msgid ""
-"Cannot delete part in file [%s].\n"
-"\n"
-"You may not have write access to it."
-msgstr ""
-"Kan onderdeel in het bestand [%s] niet verwijderen.\n"
-"\n"
-"Wellicht heeft u geen schrijfrechten hiervoor."
+msgid "Uploading DICOM files"
+msgstr "laden xDT bestand"
 
-msgid "Cannot create new document."
-msgstr "Kan geen nieuw document creëeren."
+#, fuzzy
+msgid "Editing Orthanc content"
+msgstr "Naam bewerken"
 
-msgid "Cannot update document metadata."
-msgstr "Kan document metadata niet uploaden."
+#, fuzzy
+msgid "Patient ID"
+msgstr "Patiënt"
 
-msgid "Cannot add document description."
-msgstr "Kan geen beschrijving van het document toevoegen."
+#, fuzzy
+msgid "Birth date"
+msgstr "datum"
 
-msgid "Error setting \"reviewed\" status of new document."
+msgid "Orthanc"
 msgstr ""
-"Fout bij het instellen van de \"beoordeeld\" status van dit nieuwe document."
 
 #, fuzzy
-msgid "Successfully saved the new document."
-msgstr "Succesvol docment opgeslagen."
+msgid "Modifying patient ID"
+msgstr "Patiënt selecteren"
 
 #, python-format
 msgid ""
-"The reference ID for the new document is:\n"
-"\n"
-" <%s>\n"
+"Really modify %s patient(s) to have the new patient ID\n"
 "\n"
-"You probably want to write it down on the\n"
-"original documents.\n"
+" [%s]\n"
 "\n"
-"If you don't care about the ID you can switch\n"
-"off this message in the GNUmed configuration."
+"stored in the Orthanc DICOM server ?"
 msgstr ""
-"Het referentie ID voor het nieuwe document is:\n"
-"\n"
-" <%s>\n"
-"\n"
-"U wilt het waarschijnlijk op het originele document \n"
-"schrijven.\n"
-"\n"
-"Als u het ID niet belangrijk vindt kunt u dit bericht\n"
-"uitzetten bij de GNUmed instellingen."
+
+#, python-format
+msgid "You are logged in as %s%s.%s (%s). DB account <%s>."
+msgstr "U bent ingelogd als %s%s.%s (%s). DB account <%s>."
 
 #, fuzzy
-msgid "Saving document"
-msgstr "document bewaren"
+msgid "&Go to plugin ..."
+msgstr "plugin toevoegen..."
 
-msgid "Successfully saved new document."
-msgstr "Succesvol docment opgeslagen."
+msgid "Check for updates"
+msgstr "Zoeken naar updates"
 
-msgid "Document part does not seem to exist in database !"
-msgstr "Documentonderdeel lijkt niet te bestaan in de database!"
+msgid "Check for new releases of the GNUmed client."
+msgstr "Controleer op nieuwe versies van de GNUmed frontend."
 
-msgid "showing document"
-msgstr "document tonen"
+msgid "Announce downtime"
+msgstr ""
 
-#, fuzzy
-msgid "Document list for this patient."
-msgstr "Een aantekening bij deze patiënt."
+msgid "Announce database maintenance downtime to all connected clients."
+msgstr ""
 
 #, fuzzy
-msgid "Showing documents."
-msgstr "document tonen"
+msgid "All options"
+msgstr "Voorkeuren"
 
 #, fuzzy
-msgid "Generated"
-msgstr "Veralgemeniseerd"
-
-msgid "Ref #"
-msgstr ""
-
-#, python-format
-msgid "available documents (%s)"
-msgstr "beschikbare documenten (%s)"
+msgid "List all options as configured in the database."
+msgstr "Bewerk het (eerste of enige) item geselecteerd in de lijst hierboven."
 
-#, python-format
-msgid "unsigned (%s) on top"
-msgstr "ongetekende (%s) bovenaan"
+msgid "Configure the database language"
+msgstr "Configureer de databasetaal"
 
-msgid "most recent on top"
-msgstr "meest recente bovenaan"
+msgid "Welcome message"
+msgstr "Welkomsbericht"
 
-msgid "sorted by episode"
-msgstr "gesorteerd op episode"
+msgid "Configure the database welcome message (all users)."
+msgstr "Stel welkomsbericht van de database in (voor alle gebruikers)."
 
-#, fuzzy
-msgid "sorted by health issue"
-msgstr "Creëer gezondheidsprobleem"
+msgid "Database ..."
+msgstr "Database ..."
 
-msgid "sorted by type"
-msgstr "gesorteerd op soort"
+msgid "Export chunk size"
+msgstr "Grootte gebruikt voor exporteren"
 
-msgid "Cannot load documents. No active patient."
-msgstr "Kan documenten niet laden. Geen actieve patiënt."
+msgid "Configure the chunk size used when exporting BLOBs from the database."
+msgstr ""
+"Stel de grootte in die gebruikt wordt voor het exporteren van BLOB's vanuit "
+"de database."
 
-#, fuzzy
-msgid "Part Actions:"
-msgstr "Vaccinaties"
+msgid "Email address"
+msgstr "E-mailadres"
 
-msgid "Display part"
-msgstr "Onderdeel weergeven"
+msgid "The email address of the user for sending bug reports, etc."
+msgstr "Het emailadres van de gebruiker die foutrapporten e.d. stuurt."
 
-#, python-format
-msgid "%s Sign/Edit properties"
-msgstr "[%s] Onderteken/ Bewerk eigenschappen"
+msgid "Client parameters ..."
+msgstr "Frontend parameters ..."
 
 #, fuzzy
-msgid "Delete part"
-msgstr "deel verwijderen"
+msgid "Medication measurements"
+msgstr "Meting bewerken"
 
 #, fuzzy
-msgid "Move part"
-msgstr "verwijder onderdeel"
-
-msgid "Print part"
-msgstr "Onderdeel afdrukken"
-
-msgid "Fax part"
-msgstr "Onderdeel faxen"
-
-msgid "Mail part"
-msgstr "Onderdeel mailen"
+msgid "Select the measurements panel to show in the medications plugin."
+msgstr "Selecteer het soort communicatiekanaal."
 
 #, fuzzy
-msgid "Export part"
-msgstr "teken alle delen af"
+msgid "General measurements"
+msgstr "Meting bewerken"
 
 #, fuzzy
-msgid "Document Actions:"
-msgstr "Documenten"
+msgid "Select the measurements panel to show in the top pane."
+msgstr "Selecteer het soort communicatiekanaal."
 
-#, fuzzy
-msgid "Delete document"
-msgstr "Tekstdocument"
+msgid "Review dialog"
+msgstr "Beoordelingsdialoog"
 
-#, fuzzy
-msgid "Add parts"
-msgstr "patiënt"
+msgid "Configure review dialog after document display."
+msgstr "Instellen van de beoordelingsdialoog na documenttonen."
 
-#, fuzzy
-msgid "Add part from clipboard"
-msgstr "Exporteren naar &clipboard"
+msgid "UUID display"
+msgstr ""
 
-#, fuzzy
-msgid "Print all parts"
-msgstr "Onderdelen afdrukken"
+msgid "Configure unique ID dialog on document import."
+msgstr "Instellen van kenmerk-venster bij het importeren van een document."
 
-#, fuzzy
-msgid "Fax all parts"
-msgstr "Onderdelen faxen"
+msgid "Empty documents"
+msgstr "Lege documenten"
 
-#, fuzzy
-msgid "Mail all parts"
-msgstr "Onderdelen mailen"
+msgid "Whether to allow saving documents without parts."
+msgstr "Of het toegestaan is om documenten zonder onderdelen te bewaren."
 
-#, fuzzy
-msgid "Export all parts"
-msgstr "teken alle delen af"
+msgid "Generate UUID"
+msgstr ""
 
-msgid "Access external original"
-msgstr "Toegang tot externe origineel"
+msgid "Whether to generate UUIDs for new documents."
+msgstr ""
 
-#, fuzzy
-msgid "Edit corresponding encounter"
-msgstr "Bewerk overeenkomstig consult"
+msgid "Document handling ..."
+msgstr "Document instellingen...."
 
-#, fuzzy
-msgid "Select corresponding encounter"
-msgstr "Bewerk overeenkomstig consult"
+msgid "Auto-check"
+msgstr "Automatisch controleren"
 
-#, fuzzy
-msgid "Manage descriptions"
-msgstr "Beschrijving van de Parameter"
+msgid "Whether to auto-check for updates at startup."
+msgstr ""
+"Of er bij het opstarten automatsch moet worden gecontroleerd op updates."
 
-#, fuzzy
-msgid "Error searching documents."
+msgid "Check scope"
 msgstr ""
-"Fout bij het zoeken naar documenten voor patiënt\n"
-"[%s %s]."
 
-msgid "loading document list"
-msgstr "documentenlijst laden"
+msgid "When checking for updates, consider latest branch, too ?"
+msgstr "Bij het controleren op updates ook de nieuwste tak meenemen?"
 
-#, fuzzy, python-format
-msgid "%s%7s %s:%s (%s)"
-msgstr "%s%7s %s: %s (%s part(s), %s)"
+msgid "The URL to retrieve version information from."
+msgstr "Het webadres om versieinformatie van op te halen."
 
-#, fuzzy, python-format
-msgid "%s%7s (%s):%s (%s)"
-msgstr "%s%7s %s: %s (%s part(s), %s)"
+msgid "Update handling ..."
+msgstr "Update instellingen ..."
 
-#, fuzzy, python-format
-msgid "%s (unattributed episode)"
-msgstr "Niet toegewezen episodes"
+msgid "Birthday reminder"
+msgstr "Verjaardag herrineren"
 
-#, python-format
-msgid "part %2s"
-msgstr "part %2s"
+msgid "Configure birthday reminder proximity interval."
+msgstr "Instellen verjaardags herrinerings interval."
 
-msgid "Activate as current photo"
-msgstr "Activeer als huidige foto"
+msgid "Immediate source activation"
+msgstr "Onmiddellijke bron activering"
 
 #, fuzzy
-msgid ""
-"\n"
-"Select the document into which to move the selected part !\n"
-msgstr ""
-"\n"
-"Selecteer het ontmoetingstype dat u wilt bewerken!\n"
+msgid "Configure immediate activation of single external person."
+msgstr "Instellen van direct activeren van een enkele externe patiënt."
+
+msgid "Initial plugin"
+msgstr "Eerst getoonde plugin"
 
 #, fuzzy
-msgid "Cannot move document part."
+msgid "Configure which plugin to show right after person activation."
 msgstr ""
-"Kan documentonderdeel niet weergeven:\n"
-"%s"
+"Stel in welke plugin wordt getoond direct na het activeren van een patiënt."
 
 #, fuzzy
-msgid "Moving document part"
-msgstr "Verwerken documentonderdeel: %s"
+msgid "Default region"
+msgstr "Standaard type"
 
 #, fuzzy
-msgid "Deleting document part"
-msgstr "verwijderen documenttype"
+msgid "Configure the default region for person creation."
+msgstr ""
+"Stel in welke plugin wordt getoond direct na het activeren van een patiënt."
 
-#, python-format
-msgid ""
-"Are you sure you want to delete the %s part #%s\n"
-"\n"
-"%sfrom the following document\n"
-"\n"
-" %s (%s)\n"
-"%s\n"
-"Really delete ?\n"
-"\n"
-"(this action cannot be reversed)"
-msgstr ""
+#, fuzzy
+msgid "Default country"
+msgstr "Standaard type"
 
-#, fuzzy, python-format
-msgid ""
-"Cannot %(l10n_action)s document part - %(l10n_action)s command not found.\n"
-"\n"
-"Either of gm-%(action)s_doc or gm-%(action)s_doc.bat\n"
-"must be in the execution path. The command will\n"
-"be passed the filename to %(l10n_action)s."
+msgid "Configure the default country for person creation."
 msgstr ""
-"Kan niet %(l10n_action)s documentonderdeel - %(l10n_action)s opdracht niet "
-"gevonden.\n"
-"\n"
-"OF gm_%(action)s_doc.sh OF gm_%(action)s_doc.bat\n"
-"moet in het uitvoerpad bestaan. De opdracht zal \n"
-"de bestandsnaam doorgeven aan %(l10n_action)s."
 
-#, python-format
-msgid "Processing document part: %s"
-msgstr "Verwerken documentonderdeel: %s"
+#, fuzzy
+msgid "Person ..."
+msgstr "beschrijvingen..."
 
-#, fuzzy, python-format
-msgid ""
-"Cannot %(l10n_action)s document part - %(l10n_action)s command failed.\n"
-"\n"
-"You may need to check and fix either of\n"
-" gm-%(action)s_doc (Unix/Mac) or\n"
-" gm-%(action)s_doc.bat (Windows)\n"
-"\n"
-"The command is passed the filename to %(l10n_action)s."
-msgstr ""
-"Kan niet %(l10n_action)s documentonderdeel  - %(l10n_action)s opdracht "
-"mislukt..\n"
-"\n"
-"Wellicht moet u controleren en oplossen\n"
-" gm_%(action)s_doc.sh (Unix/Linux/Mac) of \n"
-" gm_%(action)s_doc.bat (Windows)"
+msgid "Multiple new episodes"
+msgstr "Meerdere nieuwe episodes"
 
-#, python-format
-msgid "document part handed over to email program: %s"
+msgid "Configure opening multiple new episodes on a patient at once."
 msgstr ""
+"Instellen van meerdere nieuwe episodes per patiënt tegelijkertijd geopend "
+"kunnen worden."
 
-msgid "print"
-msgstr "afdrukken"
-
-msgid "fax"
-msgstr "fax"
+msgid "Auto-open editors"
+msgstr ""
 
-msgid "mail"
-msgstr "mail"
+msgid "Configure auto-opening editors for recent problems."
+msgstr ""
 
 #, fuzzy
-msgid "Save document part to directory ..."
-msgstr "Document opslaan in map..."
-
-#, fuzzy, python-format
-msgid "Successfully exported document part as [%s]."
-msgstr "Succes bij het exporteren van %s onderdelen in de map [%s]."
+msgid "SOAP fields"
+msgstr "XDT veld"
 
-#, fuzzy, python-format
-msgid ""
-"Cannot %(l10n_action)s document - %(l10n_action)s command not found.\n"
-"\n"
-"Either of gm-%(action)s_doc or gm-%(action)s_doc.bat\n"
-"must be in the execution path. The command will\n"
-"be passed a list of filenames to %(l10n_action)s."
+msgid "Configure SOAP editor - individual SOAP fields vs text editor like"
 msgstr ""
-"Kan niet %(l10n_action)s document - %(l10n_action)s opdracht niet gevonden.\n"
-"\n"
-"Een van deze: gm_%(action)s_doc.sh  OF  gm_%(action)s_doc.bat\n"
-"moet in het opdrachtpad zijn. De opdracht zal een lijst van bestandsnamen \n"
-"verkrijgen  %(l10n_action)s."
 
-#, python-format
-msgid "Processing document: %s"
-msgstr "Document verwerken: %s"
+msgid "Progress notes handling ..."
+msgstr "Voortgangsrapport instellingen ..."
 
-#, fuzzy, python-format
-msgid ""
-"Cannot %(l10n_action)s document - %(l10n_action)s command failed.\n"
-"\n"
-"You may need to check and fix either of\n"
-" gm-%(action)s_doc (Unix/Mac) or\n"
-" gm-%(action)s_doc.bat (Windows)\n"
-"\n"
-"The command is passed a list of filenames to %(l10n_action)s."
-msgstr ""
-"Kan niet %(l10n_action)s documenten - %(l10n_action)s opdracht mislukt.\n"
-"\n"
-"Wellicht moet u controleren en oplossen\n"
-" gm_%(action)s_doc.sh (Unix/Linux/Mac) of \n"
-" gm_%(action)s_doc.bat (Windows)"
+msgid "User interface ..."
+msgstr "Gebruikersinterface ..."
 
-msgid "Really add the displayed clipboard item into the document ?"
+msgid "MI/stroke risk calc cmd"
 msgstr ""
 
 #, fuzzy
-msgid "Document part from clipboard"
-msgstr "Exporteren naar &clipboard"
+msgid "Set the command to start the CV risk calculator."
+msgstr "Geef het commando in dat IFAP start."
 
-msgid ""
-"Cannot access external document - access command not found.\n"
-"\n"
-"Either of gm_access_external_doc.sh or *.bat must be\n"
-"in the execution path. The command will be passed the\n"
-"document type and the reference URL for processing."
-msgstr ""
-"Kan extern document niet lezen - toegangsopdracht niet gevonden.\n"
-"\n"
-"Een van deze: gm_%(action)s_doc.sh  OF  gm_%(action)s_doc.bat\n"
-"moet in het opdrachtpad zijn. De opdracht zal het documentsoort en de \n"
-"URL krijgen voor bewerking."
+msgid "Set the time to wait for OpenOffice to settle after startup."
+msgstr "Geeft in hoelang gewacht op OpenOffice om op te starten."
 
-msgid "Accessing external document"
-msgstr "Inlezen van extern document"
+#, fuzzy
+msgid "Measurements URL"
+msgstr "Metingen"
 
-msgid ""
-"Cannot access external document - access command failed.\n"
-"\n"
-"You may need to check and fix either of\n"
-" gm_access_external_doc.sh (Unix/Mac) or\n"
-" gm_access_external_doc.bat (Windows)\n"
-"\n"
-"The command is passed the document type and the\n"
-"external reference URL on the command line."
+msgid "URL for measurements encyclopedia."
 msgstr ""
-"Kan het externe document niet inlezen - toegangsopdracht geweigerd.\n"
-"\n"
-"Wellicht moet u controleren en oplossen\n"
-" gm_access_external_doc.sh (Unix/Linux/Mac) of \n"
-" gm_access_external_doc.bat (Windows)"
-
-msgid "Save document into directory ..."
-msgstr "Document opslaan in map..."
-
-#, python-format
-msgid "Successfully exported %s parts into the directory [%s]."
-msgstr "Succes bij het exporteren van %s onderdelen in de map [%s]."
 
 #, fuzzy
-msgid "Are you sure you want to delete the document ?"
-msgstr ""
-"Weet u zeker dat u deze episode wilt verwijderen?\n"
-"\n"
-" \"%s\"\n"
+msgid "Drug data source"
+msgstr "&Geneesmiddelen Bronnen"
 
 #, fuzzy
-msgid "Deleting document"
-msgstr "verwijderen documenttype"
+msgid "Select the drug data source."
+msgstr "Selecteer het soort adres."
 
-#, python-format
-msgid "You are logged in as %s%s.%s (%s). DB account <%s>."
-msgstr "U bent ingelogd als %s%s.%s (%s). DB account <%s>."
+msgid "ADR URL"
+msgstr ""
 
-#, fuzzy
-msgid "&Go to plugin ..."
-msgstr "plugin toevoegen..."
+msgid "URL for reporting Adverse Drug Reactions."
+msgstr ""
 
-msgid "Check for updates"
-msgstr "Zoeken naar updates"
+msgid "vaccADR URL"
+msgstr ""
 
-msgid "Check for new releases of the GNUmed client."
-msgstr "Controleer op nieuwe versies van de GNUmed frontend."
+msgid "URL for reporting Adverse Drug Reactions to *vaccines*."
+msgstr ""
 
-msgid "Announce downtime"
+msgid "Vacc plans URL"
 msgstr ""
 
-msgid "Announce database maintenance downtime to all connected clients."
+#, fuzzy
+msgid "URL for vaccination plans."
+msgstr "Geef in welke vaccinatie gegeven is"
+
+msgid "Visual SOAP editor"
 msgstr ""
 
 #, fuzzy
-msgid "All options"
-msgstr "Voorkeuren"
+msgid "Set the command for calling the visual progress note editor."
+msgstr "Wis deze editor voor het voortgangsrapport."
+
+msgid "External tools ..."
+msgstr "Externe hulpmiddelen ..."
 
 #, fuzzy
-msgid "List all options as configured in the database."
-msgstr "Bewerk het (eerste of enige) item geselecteerd in de lijst hierboven."
+msgid "Invoice template (no VAT)"
+msgstr "Controleren voor frontend updates"
 
-msgid "Configure the database language"
-msgstr "Configureer de databasetaal"
+#, fuzzy
+msgid "Select the template for printing an invoice without VAT."
+msgstr "Selecteer het soort communicatiekanaal."
 
-msgid "Welcome message"
-msgstr "Welkomsbericht"
+#, fuzzy
+msgid "Invoice template (with VAT)"
+msgstr "apparaat selectie"
 
-msgid "Configure the database welcome message (all users)."
-msgstr "Stel welkomsbericht van de database in (voor alle gebruikers)."
+#, fuzzy
+msgid "Select the template for printing an invoice with VAT."
+msgstr "Selecteer het soort communicatiekanaal."
 
-msgid "Database ..."
-msgstr "Database ..."
+#, fuzzy
+msgid "Catalogs URL"
+msgstr "dodelijk"
 
-msgid "Export chunk size"
-msgstr "Grootte gebruikt voor exporteren"
+msgid "URL for billing catalogs (schedules of fees)."
+msgstr ""
 
-msgid "Configure the chunk size used when exporting BLOBs from the database."
+msgid "Medication list template"
 msgstr ""
-"Stel de grootte in die gebruikt wordt voor het exporteren van BLOB's vanuit "
-"de database."
 
-msgid "Email address"
-msgstr "E-mailadres"
+#, fuzzy
+msgid "Select the template for printing a medication list."
+msgstr "Selecteer het soort communicatiekanaal."
 
-msgid "The email address of the user for sending bug reports, etc."
-msgstr "Het emailadres van de gebruiker die foutrapporten e.d. stuurt."
+#, fuzzy
+msgid "Prescription mode"
+msgstr "Voorschrifen"
 
-msgid "Client parameters ..."
-msgstr "Frontend parameters ..."
+#, fuzzy
+msgid "Select the default mode for creating a prescription."
+msgstr "Selecteer het standaardtype voor nieuwe ontmoetingen.\n"
 
 #, fuzzy
-msgid "Medication measurements"
-msgstr "Meting bewerken"
+msgid "Prescription template"
+msgstr "Voorschrifen"
 
 #, fuzzy
-msgid "Select the measurements panel to show in the medications plugin."
-msgstr "Selecteer het soort communicatiekanaal."
-
-msgid "Review dialog"
-msgstr "Beoordelingsdialoog"
-
-msgid "Configure review dialog after document display."
-msgstr "Instellen van de beoordelingsdialoog na documenttonen."
-
-msgid "UUID display"
-msgstr ""
-
-msgid "Configure unique ID dialog on document import."
-msgstr "Instellen van kenmerk-venster bij het importeren van een document."
-
-msgid "Empty documents"
-msgstr "Lege documenten"
-
-msgid "Whether to allow saving documents without parts."
-msgstr "Of het toegestaan is om documenten zonder onderdelen te bewaren."
-
-msgid "Generate UUID"
-msgstr ""
-
-msgid "Whether to generate UUIDs for new documents."
-msgstr ""
-
-msgid "Document handling ..."
-msgstr "Document instellingen...."
-
-msgid "Auto-check"
-msgstr "Automatisch controleren"
-
-msgid "Whether to auto-check for updates at startup."
-msgstr ""
-"Of er bij het opstarten automatsch moet worden gecontroleerd op updates."
-
-msgid "Check scope"
-msgstr ""
-
-msgid "When checking for updates, consider latest branch, too ?"
-msgstr "Bij het controleren op updates ook de nieuwste tak meenemen?"
-
-msgid "The URL to retrieve version information from."
-msgstr "Het webadres om versieinformatie van op te halen."
-
-msgid "Update handling ..."
-msgstr "Update instellingen ..."
-
-msgid "Birthday reminder"
-msgstr "Verjaardag herrineren"
-
-msgid "Configure birthday reminder proximity interval."
-msgstr "Instellen verjaardags herrinerings interval."
-
-msgid "Immediate source activation"
-msgstr "Onmiddellijke bron activering"
-
-#, fuzzy
-msgid "Configure immediate activation of single external person."
-msgstr "Instellen van direct activeren van een enkele externe patiënt."
-
-msgid "Initial plugin"
-msgstr "Eerst getoonde plugin"
-
-#, fuzzy
-msgid "Configure which plugin to show right after person activation."
-msgstr ""
-"Stel in welke plugin wordt getoond direct na het activeren van een patiënt."
-
-#, fuzzy
-msgid "Default region"
-msgstr "Standaard type"
-
-#, fuzzy
-msgid "Configure the default region for person creation."
-msgstr ""
-"Stel in welke plugin wordt getoond direct na het activeren van een patiënt."
-
-#, fuzzy
-msgid "Default country"
-msgstr "Standaard type"
-
-msgid "Configure the default country for person creation."
-msgstr ""
-
-#, fuzzy
-msgid "Person ..."
-msgstr "beschrijvingen..."
-
-msgid "Multiple new episodes"
-msgstr "Meerdere nieuwe episodes"
-
-msgid "Configure opening multiple new episodes on a patient at once."
-msgstr ""
-"Instellen van meerdere nieuwe episodes per patiënt tegelijkertijd geopend "
-"kunnen worden."
-
-msgid "Auto-open editors"
-msgstr ""
-
-msgid "Configure auto-opening editors for recent problems."
-msgstr ""
-
-msgid "Progress notes handling ..."
-msgstr "Voortgangsrapport instellingen ..."
-
-msgid "User interface ..."
-msgstr "Gebruikersinterface ..."
-
-msgid "MI/stroke risk calc cmd"
-msgstr ""
-
-#, fuzzy
-msgid "Set the command to start the CV risk calculator."
-msgstr "Geef het commando in dat IFAP start."
-
-msgid "Set the time to wait for OpenOffice to settle after startup."
-msgstr "Geeft in hoelang gewacht op OpenOffice om op te starten."
-
-#, fuzzy
-msgid "Measurements URL"
-msgstr "Metingen"
-
-msgid "URL for measurements encyclopedia."
-msgstr ""
-
-#, fuzzy
-msgid "Select the drug data source."
-msgstr "Selecteer het soort adres."
-
-msgid "ADR URL"
-msgstr ""
-
-msgid "URL for reporting Adverse Drug Reactions."
-msgstr ""
-
-msgid "vaccADR URL"
-msgstr ""
-
-msgid "URL for reporting Adverse Drug Reactions to *vaccines*."
-msgstr ""
-
-msgid "Vacc plans URL"
-msgstr ""
-
-#, fuzzy
-msgid "URL for vaccination plans."
-msgstr "Geef in welke vaccinatie gegeven is"
-
-msgid "Visual SOAP editor"
-msgstr ""
-
-#, fuzzy
-msgid "Set the command for calling the visual progress note editor."
-msgstr "Wis deze editor voor het voortgangsrapport."
-
-msgid "External tools ..."
-msgstr "Externe hulpmiddelen ..."
-
-#, fuzzy
-msgid "Invoice template (no VAT)"
-msgstr "Controleren voor frontend updates"
-
-#, fuzzy
-msgid "Select the template for printing an invoice without VAT."
-msgstr "Selecteer het soort communicatiekanaal."
-
-#, fuzzy
-msgid "Invoice template (with VAT)"
-msgstr "apparaat selectie"
-
-#, fuzzy
-msgid "Select the template for printing an invoice with VAT."
-msgstr "Selecteer het soort communicatiekanaal."
-
-#, fuzzy
-msgid "Catalogs URL"
-msgstr "dodelijk"
-
-msgid "URL for billing catalogs (schedules of fees)."
-msgstr ""
-
-msgid "Medication list template"
-msgstr ""
-
-#, fuzzy
-msgid "Select the template for printing a medication list."
-msgstr "Selecteer het soort communicatiekanaal."
-
-#, fuzzy
-msgid "Prescription mode"
-msgstr "Voorschrifen"
-
-#, fuzzy
-msgid "Select the default mode for creating a prescription."
-msgstr "Selecteer het standaardtype voor nieuwe ontmoetingen.\n"
-
-#, fuzzy
-msgid "Prescription template"
-msgstr "Voorschrifen"
-
-#, fuzzy
-msgid "Select the template for printing a prescription."
+msgid "Select the template for printing a prescription."
 msgstr "Selecteer het soort communicatiekanaal."
 
 #, fuzzy
@@ -16173,6 +16608,14 @@ msgstr "voortgangsrapport"
 msgid "Manage dynamic hints suppressed in this patient."
 msgstr "voeg een nieuw verzoek toe voor actieve patiënt"
 
+#, fuzzy
+msgid "Substance abuse"
+msgstr "Stof"
+
+#, fuzzy
+msgid "Manage substance abuse documentation of this patient."
+msgstr "Een aantekening bij deze patiënt."
+
 msgid "&Add / Edit ..."
 msgstr ""
 
@@ -16198,28 +16641,65 @@ msgstr ""
 msgid "Show a high-level statistic summary of the EMR."
 msgstr ""
 
-msgid "Text document"
-msgstr "Tekstdocument"
+msgid "Journal (encounters) to file"
+msgstr ""
 
-msgid "Export the EMR of the active patient into a text file"
-msgstr "Exporteer het EMD van de actieve patiënt in een tekstbestand"
+#, fuzzy
+msgid ""
+"Save the EMR of the active patient as a chronological journal into a text "
+"file"
+msgstr ""
+"Exporteer het EMD van de actieve patiënt als een chronologisch journaal naar "
+"een tekstbestand"
 
-msgid "Journal"
-msgstr "Journaal"
+#, fuzzy
+msgid "Journal (encounters) to export area"
+msgstr "patiënt activeren van rapportresultaat"
 
+#, fuzzy
 msgid ""
-"Export the EMR of the active patient as a chronological journal into a text "
-"file"
+"Copy EMR of the active patient as a chronological journal into export area"
+msgstr ""
+"Exporteer het EMD van de actieve patiënt als een chronologisch journaal naar "
+"een tekstbestand"
+
+msgid "Journal (mod time) to file"
+msgstr ""
+
+#, fuzzy
+msgid ""
+"Save the EMR of the active patient as journal by last modification time into "
+"a text file"
+msgstr ""
+"Exporteer het EMD van de actieve patiënt als een chronologisch journaal naar "
+"een tekstbestand"
+
+#, fuzzy
+msgid "Journal (mod time) to export area"
+msgstr "patiënt activeren van rapportresultaat"
+
+#, fuzzy
+msgid ""
+"Copy EMR of the active patient as journal by last modification time into "
+"export area"
 msgstr ""
 "Exporteer het EMD van de actieve patiënt als een chronologisch journaal naar "
 "een tekstbestand"
 
+msgid "Text document"
+msgstr "Tekstdocument"
+
+#, fuzzy
+msgid "Save the EMR of the active patient into a text file"
+msgstr "Exporteer het EMD van de actieve patiënt in een tekstbestand"
+
 msgid "MEDISTAR import format"
 msgstr "MEDISTAR importeer formaat"
 
+#, fuzzy
 msgid ""
-"GNUmed -> MEDISTAR. Export progress notes of active patient's active "
-"encounter into a text file."
+"GNUmed -> MEDISTAR. Save progress notes of active patient's active encounter "
+"into a text file."
 msgstr ""
 "GNUmed -> MEDISTAR. Exporteer voortgangsrapport van de actieve patiënt's "
 "huidige ontmoeting in een tekstbestand."
@@ -16405,27 +16885,52 @@ msgstr "Bewaar een schermafdruk van deze GNUmed frontend."
 msgid "Show log file"
 msgstr "logboek bestanden"
 
-msgid "Show the log file in text viewer."
-msgstr ""
+#, fuzzy
+msgid "Show log file in text viewer."
+msgstr "logboek bestanden"
 
 msgid "Backup log file"
 msgstr "Logboekbestand backuppen"
 
-msgid "Backup the content of the log to another file."
+#, fuzzy
+msgid "Backup content of the log to another file."
 msgstr "Backup de inhoud van het logboekbestand naar een ander bestand."
 
 #, fuzzy
 msgid "Email log file"
 msgstr "logboek bestanden"
 
-msgid "Send the log file to the authors for help."
+msgid "Send log file to the authors for help."
 msgstr ""
 
-msgid "Bug tracker"
-msgstr "Bug tracker"
+#, fuzzy
+msgid "Browse tmp dir"
+msgstr "Patiëntendetails"
 
-msgid "Go to the GNUmed bug tracker on the web."
-msgstr "Ga naar de GNUmed bug tracker op het web."
+#, python-format
+msgid "Browse temporary directory [%s]."
+msgstr ""
+
+#, fuzzy
+msgid "Browse work dir"
+msgstr "Patiëntendetails"
+
+#, python-format
+msgid "Browse user working directory [%s]."
+msgstr ""
+
+msgid "Browse internal work dir"
+msgstr ""
+
+#, python-format
+msgid "Browse internal working directory [%s]."
+msgstr ""
+
+msgid "Bug tracker"
+msgstr "Bug tracker"
+
+msgid "Go to the GNUmed bug tracker on the web."
+msgstr "Ga naar de GNUmed bug tracker op het web."
 
 msgid "Unlock mouse"
 msgstr "Muis ontgrendelen"
@@ -16852,6 +17357,20 @@ msgid "No, only auto-open one editor for a new, unassociated problem."
 msgstr ""
 
 msgid ""
+"When editing progress notes, do you want GNUmed to\n"
+"show individual fields for each of the SOAP categories\n"
+"or do you want to use a text-editor like field for\n"
+"all SOAP categories which can then be set per line\n"
+"of input ?"
+msgstr ""
+
+msgid "Yes, show a dedicated field per SOAP category."
+msgstr ""
+
+msgid "No, use one field for all SOAP categories."
+msgstr ""
+
+msgid ""
 "When a patient is activated GNUmed can\n"
 "be told to switch to a specific plugin.\n"
 "\n"
@@ -17183,682 +17702,1138 @@ msgid ""
 "GNUmed during document display the review dialog\n"
 "will actually appear in parallel to the viewer."
 msgstr ""
-"GNUmed kan de document beoordelingsdialoog tonen na\n"
-"de toepasselijke viewer voor dat document opgestart te hebben.\n"
-"\n"
-"Selecteer de voorwaarden wanner u wilt dat GNUmed dit\n"
-"doet:\n"
-"\n"
-" 0: nooit de beoordelingsdialoog tonen\n"
-" 1: altijd de beoordelingsdialoog tonen\n"
-" 2: alleen als er geen eerdere beoordeling van mij is\n"
-"\n"
-"Merk op dat als de viewer ingesteld is om GNUmed\n"
-"niet te verhinderen tijdens het tonen van het document\n"
-"de beoordelingsdialoog parallel aan de viewer getoont wordt."
+"GNUmed kan de document beoordelingsdialoog tonen na\n"
+"de toepasselijke viewer voor dat document opgestart te hebben.\n"
+"\n"
+"Selecteer de voorwaarden wanner u wilt dat GNUmed dit\n"
+"doet:\n"
+"\n"
+" 0: nooit de beoordelingsdialoog tonen\n"
+" 1: altijd de beoordelingsdialoog tonen\n"
+" 2: alleen als er geen eerdere beoordeling van mij is\n"
+"\n"
+"Merk op dat als de viewer ingesteld is om GNUmed\n"
+"niet te verhinderen tijdens het tonen van het document\n"
+"de beoordelingsdialoog parallel aan de viewer getoont wordt."
+
+msgid "Addresses (likely slow)"
+msgstr ""
+
+msgid "Branded drugs (as marketed)"
+msgstr ""
+
+msgid "Dynamic automatic hints"
+msgstr ""
+
+msgid "Codes and their respective terms"
+msgstr ""
+
+#, fuzzy
+msgid "Communication channel types"
+msgstr "Communicatiekanaal verwijderen"
+
+msgid "Components of branded drugs (substances in brands)"
+msgstr ""
+
+msgid "Diagnostic organizations (path labs, ...)"
+msgstr ""
+
+#, fuzzy
+msgid "Document templates (forms, letters, plots, ...)"
+msgstr "Organiseer sjablonen voor formulieren en brieven."
+
+#, fuzzy
+msgid "Document types"
+msgstr "&Documenttypen"
+
+#, fuzzy
+msgid "Encounter types"
+msgstr "&Ontmoetingstypen"
+
+#, fuzzy
+msgid "Keyword based text expansion macros"
+msgstr "Beheer op sleutelwoorden gebaseerde tekstuitbreidingsmacro's."
+
+#, fuzzy
+msgid "Meta test/measurement types"
+msgstr "Meting bewerken"
+
+msgid "Organizations with their units, addresses, and comm channels"
+msgstr ""
+
+#, fuzzy
+msgid "Patient tags"
+msgstr "Patiëntendetails"
+
+#, fuzzy
+msgid "Provinces (counties, territories, states, regions, ...)"
+msgstr "Organiseer provincies (landen, gebieden)"
+
+#, fuzzy
+msgid "String translations in the database"
+msgstr "Bewaar de allergie/ intollerantie in de database."
+
+#, fuzzy
+msgid "Test/measurement types"
+msgstr "Meting bewerken"
+
+msgid "Vaccination targets (conditions known to be preventable by vaccination)"
+msgstr ""
+
+#, fuzzy
+msgid "Vaccines"
+msgstr "Vaccin"
+
+#, fuzzy
+msgid "Workplace profiles (which plugins to load)"
+msgstr "Werkplekken"
+
+msgid "Consumable substances"
+msgstr ""
+
+msgid "Billable items"
+msgstr ""
+
+#, fuzzy
+msgid "Reference data sources"
+msgstr "&Geneesmiddelen Bronnen"
+
+#, fuzzy
+msgid "Test/measurement panels/profiles"
+msgstr "Meting bewerken"
+
+#, fuzzy
+msgid "Master data management"
+msgstr "Bewerk &meesterdata ..."
+
+#, fuzzy
+msgid "Select the list you want to manage:"
+msgstr ""
+"\n"
+"Selecteer het ontmoetingstype dat u wilt bewerken!\n"
+
+msgid "No DICOM viewer found."
+msgstr "Geem DICOM viewer gevonden."
+
+#, fuzzy
+msgid "risk assessment"
+msgstr "soap_Conclusie"
+
+msgid "cardiovascular risk assessment"
+msgstr ""
+
+#, python-format
+msgid "[arriba] XML result not found in [%s]"
+msgstr ""
+
+msgid "ACS risk assessment calculator not configured."
+msgstr ""
+
+#, fuzzy, python-format
+msgid "Cannot run [%s] !"
+msgstr "Kan episode [%s] niet beginnen."
+
+#, python-format
+msgid "There was a problem accessing the [arriba] result in [%s] !"
+msgstr ""
+
+msgid "[-9999]: <access violation test error>"
+msgstr ""
+
+msgid ""
+"This is a deliberate AccessDenied exception thrown to test the handling of "
+"access violations by means of a decorator."
+msgstr ""
+
+msgid "testing access check for non-existant <admin> role"
+msgstr ""
+
+msgid ""
+"This is a deliberate AccessDenied exception. You should not see this message "
+"because the role is checked in a decorator."
+msgstr ""
+
+msgid "pgAdmin III not found."
+msgstr "pgAdmin III niet gevonden."
+
+msgid "Error reloading hook script."
+msgstr ""
+
+msgid "Save current log as..."
+msgstr "Sla huidig logboek op als..."
+
+msgid "log files"
+msgstr "logboek bestanden"
+
+#, python-format
+msgid "Log file backed up as [%s]."
+msgstr "Logboek gebackupt als [%s]."
+
+msgid "Cannot start new encounter. No active patient."
+msgstr "Kan geen nieuwe ontmoeting beginnen. Geen actieve patiënt."
+
+msgid "Cannot add health issue. No active patient."
+msgstr "Kan gezondheidsprobleem niet toevoegen. Geen actieve patiënt."
+
+#, fuzzy
+msgid "Cannot add episode. No active patient."
+msgstr "Kan gezondheidsprobleem niet toevoegen. Geen actieve patiënt."
+
+msgid "Cannot add medication. No active patient."
+msgstr "Kan medicatie niet toevoegen. Geen actieve patiënt."
+
+msgid "Cannot add allergy. No active patient."
+msgstr "Kan allergie niet toevoegen. Geen actieve patiënt."
+
+#, fuzzy
+msgid "Cannot manage performed procedures. No active patient."
+msgstr "Kan documenten niet laden. Geen actieve patiënt."
+
+#, fuzzy
+msgid "Cannot manage hospitalizations. No active patient."
+msgstr "Kan niet van tabblad wijzigen. Geen active patiënt."
+
+#, fuzzy
+msgid "Cannot manage external care. No active patient."
+msgstr "Kan meting niet toevoegen. Geen actieve patiënt."
+
+msgid "Cannot edit occupation. No active patient."
+msgstr "Kan beroep niet bewerken. Geen actieve patiënt."
+
+#, fuzzy
+msgid "manage vaccinations"
+msgstr "Kan vaccin %s niet opslaan."
+
+#, fuzzy
+msgid "Cannot add vaccinations. No active patient."
+msgstr "Kan medicatie niet toevoegen. Geen actieve patiënt."
+
+#, fuzzy
+msgid "manage family history"
+msgstr "Allergieën bewerken"
+
+#, fuzzy
+msgid "Cannot manage family history. No active patient."
+msgstr "Kan niet van tabblad wijzigen. Geen active patiënt."
+
+#, fuzzy
+msgid "Cannot manage measurements. No active patient."
+msgstr "Kan meting niet toevoegen. Geen actieve patiënt."
+
+msgid "calculate EDC"
+msgstr ""
+
+#, fuzzy
+msgid "manage suppressed hints"
+msgstr "opslaan voortgangsrapport"
+
+#, fuzzy
+msgid "Cannot manage suppressed hints. No active patient."
+msgstr "Kan meting niet toevoegen. Geen actieve patiënt."
+
+#, fuzzy
+msgid "Cannot manage smoking status. No active patient."
+msgstr "Kan meting niet toevoegen. Geen actieve patiënt."
+
+msgid "Cannot show EMR summary. No active patient."
+msgstr "Kan geen EMD samenvatting tonen. Geen actieve patiënt."
+
+msgid "EMR Summary"
+msgstr "EMD samenvatting"
+
+#, fuzzy
+msgid "Cannot export EMR journal by last modification time. No active patient."
+msgstr "Kan EMD journaal niet exporteren. Geen actieve patiënt."
+
+msgid "journal_by_last_mod_time"
+msgstr ""
+
+msgid "Save patient's EMR journal as..."
+msgstr "Sla EMD van de patiënt op als..."
+
+#, fuzzy
+msgid "Error exporting patient EMR as journal by last modification time."
+msgstr ""
+"Fout bij het exporteren van het patiënt EMD als chronologisch journaal."
+
+msgid "EMR journal export"
+msgstr "EMD-journaal export"
+
+#, fuzzy, python-format
+msgid ""
+"Successfully exported EMR as journal by last modification time into file "
+"[%s]."
+msgstr ""
+"Het EMD succesvol geëxporteerd als chronologisch journaal in bestand [%s]."
+
+msgid "Cannot export EMR journal. No active patient."
+msgstr "Kan EMD journaal niet exporteren. Geen actieve patiënt."
+
+msgid "emr-journal"
+msgstr "EMD-journaal"
+
+msgid "Error exporting patient EMR as chronological journal."
+msgstr ""
+"Fout bij het exporteren van het patiënt EMD als chronologisch journaal."
+
+#, python-format
+msgid "Successfully exported EMR as chronological journal into file [%s]."
+msgstr ""
+"Het EMD succesvol geëxporteerd als chronologisch journaal in bestand [%s]."
+
+msgid "EMR journal by last modification time"
+msgstr ""
+
+#, fuzzy
+msgid "EMR journal by encounter"
+msgstr "EMD-journaal export"
+
+#, fuzzy
+msgid "Cannot add tag to person. No active patient."
+msgstr "Kan allergie niet toevoegen. Geen actieve patiënt."
+
+#, python-format
+msgid "Edit the comment on tag [%s]"
+msgstr ""
+
+#, fuzzy
+msgid "Editing tag comment"
+msgstr "Naam bewerken"
+
+msgid "Cannot export patient as GDT. No active patient."
+msgstr "Kan patiënt niet exporteren als GDT. Geen actieve patiënt."
+
+#, fuzzy
+msgid "Exported demographics as GDT to clipboard."
+msgstr "Voer persoonsgegevens uit naar GDT-bestand [%s]"
+
+#, fuzzy
+msgid "Cannot export patient as VCARD. No active patient."
+msgstr "Kan patiënt niet exporteren als GDT. Geen actieve patiënt."
+
+#, fuzzy
+msgid "Exported demographics as VCARD to clipboard."
+msgstr "Voer persoonsgegevens uit naar GDT-bestand [%s]"
+
+#, fuzzy
+msgid "Cannot export patient as XML (LinuxMedNews). No active patient."
+msgstr "Kan patiënt niet exporteren als GDT. Geen actieve patiënt."
+
+#, fuzzy, python-format
+msgid "Exported demographics to XML file [%s]."
+msgstr "Voer persoonsgegevens uit naar GDT-bestand [%s]"
+
+#, python-format
+msgid "Exported demographics to GDT file [%s]."
+msgstr "Voer persoonsgegevens uit naar GDT-bestand [%s]"
+
+#, fuzzy, python-format
+msgid "Exported demographics to VCARD file [%s]."
+msgstr "Voer persoonsgegevens uit naar GDT-bestand [%s]"
+
+msgid "Cannot add staff member. No active patient."
+msgstr "Kan staflid niet toevoegen. Geen actieve patiënt."
+
+msgid "Cannot delete patient. No patient active."
+msgstr "Kan patiënt niet verwijderen. Geen actieve patiënt."
+
+msgid ""
+"You have to manually close this window to finalize shutting down GNUmed."
+msgstr ""
+
+msgid "This is so that you can inspect the console output at your leisure."
+msgstr ""
+
+msgid "no patient"
+msgstr "geen patiënt"
+
+#, python-format
+msgid "Saved screenshot to file [%s]."
+msgstr "Schermafdruk opgeslagen in bestand [%s]"
+
+msgid "Python version check"
+msgstr ""
+
+#, python-format
+msgid ""
+"You are running Python version\n"
+" %s\n"
+"\n"
+"However, GNUmed wants Python 2.7 to\n"
+"facilitate migration to Python 3.\n"
+"\n"
+"Please upgrade your Python interpreter !"
+msgstr ""
+
+msgid "GNUmed client"
+msgstr "GNUmed frontend"
+
+msgid "GNUmed stdout/stderr window"
+msgstr ""
+
+msgid "redirecting STDOUT/STDERR to this log window"
+msgstr ""
+
+#, python-format
+msgid ""
+"The database account [%s] cannot be used as a\n"
+"staff member login for GNUmed. There was an\n"
+"error retrieving staff details for it.\n"
+"\n"
+"Please ask your administrator for help.\n"
+msgstr ""
+"Het database account [%s] kan niet worden gebruikt om als\n"
+"staflid in te loggen bij GNUmed. Er was een fout bij het \n"
+"ophalen van de details voor het staflid.\n"
+"\n"
+"Vraag uw systeembeheerder om hulp.\n"
+
+msgid "Checking access permissions"
+msgstr "Controleren op toegangsrechten"
+
+#, python-format
+msgid "Database <%s> on <%s>"
+msgstr ""
+
+#, python-format
+msgid "Branch \"%s\" of praxis \"%s\"\n"
+msgstr ""
+
+msgid "Verifying database"
+msgstr "Verifiëren database"
+
+#, fuzzy
+msgid "Connect"
+msgstr "Context"
+
+#, fuzzy
+msgid "Yes, connect to this database."
+msgstr "Een aantekening bij deze patiënt."
+
+msgid "Disconnect"
+msgstr ""
+
+#, fuzzy
+msgid "No, do not connect to this database."
+msgstr "Nee, niet bij het opstarten controleren of er updates zijn."
+
+#, python-format
+msgid ""
+"Cannot find configuration file in any of:\n"
+"\n"
+" %s\n"
+"You may need to use the comand line option\n"
+"\n"
+"\t--conf-file=<FILE>"
+msgstr ""
+"Kan configuratiebestand niet vinden in:\n"
+"\n"
+" %s\n"
+"U moet wellicht de commandline optie gebruiken\n"
+"\n"
+"\t--conf-file=<FILE>"
+
+msgid "Checking configuration files"
+msgstr "Controleren van configuratiebestanden"
+
+msgid "GNUmed startup"
+msgstr "GNUmed startop"
+
+#, python-format
+msgid ""
+"The currently selected database language ('%s') does\n"
+"not match the current system language ('%s').\n"
+"\n"
+"Do you want to set the database language to '%s' ?\n"
+msgstr ""
+"De huidig geselecteerde databasetaal ('%s') komt niet\n"
+"overeen met de huidige systeemtaal ('%s').\n"
+"\n"
+"Wilt ude databasetaal zetten op '%s'?\n"
+
+msgid "Checking database language settings"
+msgstr "Controleren databasetaal instellingen"
+
+#, python-format
+msgid "Set your database language to [%s]."
+msgstr "Stel de taal van de database in op [%s]."
+
+msgid "Don't set"
+msgstr "Niet instellen"
+
+msgid "Do not set your database language now."
+msgstr "Stel de taal van uw database niet nu in."
+
+msgid "Remember to ignore language mismatch"
+msgstr "Onthoud om taalverschil te negeren"
+
+#, python-format
+msgid ""
+"Checking this will make GNUmed remember your decision\n"
+"until the system language is changed.\n"
+"\n"
+"You can also reactivate this inquiry by removing the\n"
+"corresponding \"ignore\" option from the configuration file\n"
+"\n"
+" [%s]"
+msgstr ""
+"Dit aanvinken zorgt dat GNUmed uw beslissing onthoudt totdat \n"
+"de systeemtaal is gewijzigd.\n"
+"\n"
+"U kunt deze vraag ook reactiveren door de overeenkomstige \n"
+"\"ignore\" optie te verwijderen uit het configuratiebestand\n"
+"\n"
+" [%s]"
+
+#, fuzzy
+msgid "generic activity"
+msgstr "Generieke naam"
+
+msgid "Access denied"
+msgstr ""
+
+#, python-format
+msgid ""
+"Your account is not set up to access this part of GNUmed:\n"
+"\n"
+"  [%s]"
+msgstr ""
+
+msgid "Save timeline as SVG image under..."
+msgstr ""
+
+#, fuzzy
+msgid "timeline image"
+msgstr "alle bestanden"
+
+#, fuzzy
+msgid "timeline data"
+msgstr "Titel"
+
+msgid "Cannot change notebook tabs. No active patient."
+msgstr "Kan niet van tabblad wijzigen. Geen active patiënt."
+
+msgid "add plugin ..."
+msgstr "plugin toevoegen..."
+
+msgid "Cannot activate Allergy Manager. No active patient."
+msgstr "Kan allergieorganisator niet activeren. Geen actieve patiënt."
+
+msgid "RR ?"
+msgstr ""
 
-msgid "Addresses (likely slow)"
+#, python-format
+msgid "BMI %s"
 msgstr ""
 
-msgid "Branded drugs (as marketed)"
+msgid "BMI ?"
 msgstr ""
 
-msgid "Dynamic automatic hints"
+msgid "GFR ?"
 msgstr ""
 
-msgid "Codes and their respective terms"
+#, python-format
+msgid "GFR %s"
 msgstr ""
 
-#, fuzzy
-msgid "Communication channel types"
-msgstr "Communicatiekanaal verwijderen"
+#, python-format
+msgid "?EDC %s"
+msgstr ""
 
-msgid "Components of branded drugs (substances in brands)"
+#, python-format
+msgid "EDC %s"
 msgstr ""
 
-msgid "Diagnostic organizations (path labs, ...)"
+msgid "<Age>"
 msgstr ""
 
 #, fuzzy
-msgid "Document templates (forms, letters, plots, ...)"
-msgstr "Organiseer sjablonen voor formulieren en brieven."
+msgid "no patient selected"
+msgstr "apparaat selectie"
 
-#, fuzzy
-msgid "Document types"
-msgstr "&Documenttypen"
+#, fuzzy, python-format
+msgid "Gender: %s (%s) - %s\n"
+msgstr "Ontmoetingen: %s (%s - %s):"
 
-#, fuzzy
-msgid "Encounter types"
-msgstr "&Ontmoetingstypen"
+#, fuzzy, python-format
+msgid "Born: %s\n"
+msgstr "Episodes: %s"
 
-#, fuzzy
-msgid "Keyword based text expansion macros"
-msgstr "Beheer op sleutelwoorden gebaseerde tekstuitbreidingsmacro's."
+#, fuzzy, python-format
+msgid "Died: %s\n"
+msgstr "Geexporteerd: %s\n"
 
-#, fuzzy
-msgid "Meta test/measurement types"
-msgstr "Meting bewerken"
+#, fuzzy, python-format
+msgid "At age: %s\n"
+msgstr "Geexporteerd: %s\n"
 
-msgid "Organizations with their units, addresses, and comm channels"
+msgid " (date of birth and age are estimated)\n"
 msgstr ""
 
-#, fuzzy
-msgid "Patient tags"
-msgstr "Patiëntendetails"
+#, fuzzy, python-format
+msgid "%(sex)s  %(dob)s (%(age)s today !)"
+msgstr "%s %s (%s today !)"
 
-#, fuzzy
-msgid "Provinces (counties, territories, states, regions, ...)"
-msgstr "Organiseer provincies (landen, gebieden)"
+msgid ""
+"\n"
+"Today is the patient's birthday !\n"
+"\n"
+msgstr ""
 
-#, fuzzy
-msgid "String translations in the database"
-msgstr "Bewaar de allergie/ intollerantie in de database."
+#, python-format
+msgid "Birthday: %s ago\n"
+msgstr ""
 
-#, fuzzy
-msgid "Test/measurement types"
-msgstr "Meting bewerken"
+#, fuzzy, python-format
+msgid "Birthday: in %s\n"
+msgstr "Verjaardag herrineren"
 
-msgid "Vaccination targets (conditions known to be preventable by vaccination)"
-msgstr ""
+#, fuzzy, python-format
+msgid "Age: %s\n"
+msgstr "   MTA: %s"
 
-#, fuzzy
-msgid "Vaccines"
-msgstr "Vaccin"
+#, fuzzy, python-format
+msgid "last confirmed %s\n"
+msgstr "Laatst gewerkt aan: %s\n"
 
-#, fuzzy
-msgid "Workplace profiles (which plugins to load)"
-msgstr "Werkplekken"
+#, fuzzy, python-format
+msgid "Comment (%s): %%s"
+msgstr "Documenten: %s"
 
-msgid "Consumable substances"
+#, python-format
+msgid " - expires %s"
 msgstr ""
 
-msgid "Billable items"
+#, python-format
+msgid ""
+"Due for %s (since %s%s):\n"
+"%s%s\n"
+"Patient: %s\n"
+"Reminder by: %s"
 msgstr ""
 
 #, fuzzy
-msgid "Reference data sources"
-msgstr "&Geneesmiddelen Bronnen"
+msgid "Clinical reminder"
+msgstr "Klinische aantekeningen"
 
 #, fuzzy
-msgid "Test/measurement panels/profiles"
+msgid "Adding automatic dynamic hint"
 msgstr "Meting bewerken"
 
 #, fuzzy
-msgid "Master data management"
-msgstr "Bewerk &meesterdata ..."
+msgid "Editing automatic dynamic hint"
+msgstr "Meting bewerken"
 
 #, fuzzy
-msgid "Select the list you want to manage:"
-msgstr ""
+msgid "Deleting automatic dynamic hint"
+msgstr "Meting bewerken"
+
+#, python-format
+msgid ""
+"Really delete this dynamic hint ?\n"
 "\n"
-"Selecteer het ontmoetingstype dat u wilt bewerken!\n"
+" [%s]"
+msgstr ""
 
-msgid "No DICOM viewer found."
-msgstr "Geem DICOM viewer gevonden."
+#, fuzzy
+msgid "deleting a dynamic hint"
+msgstr "Meting bewerken"
 
 #, fuzzy
-msgid "risk assessment"
-msgstr "soap_Conclusie"
+msgid ""
+"\n"
+"Dynamic hints registered with GNUmed.\n"
+msgstr "Lijst met momenteel bestaande stafleden."
 
-msgid "cardiovascular risk assessment"
-msgstr ""
+#, fuzzy
+msgid "Showing dynamic hints."
+msgstr "Meting bewerken"
 
-#, python-format
-msgid "[arriba] XML result not found in [%s]"
+msgid "Hint"
 msgstr ""
 
-msgid "ACS risk assessment calculator not configured."
+msgid "Browse and install automatic dynamic hints data packs"
 msgstr ""
 
 #, fuzzy, python-format
-msgid "Cannot run [%s] !"
-msgstr "Kan episode [%s] niet beginnen."
-
-#, python-format
-msgid "There was a problem accessing the [arriba] result in [%s] !"
-msgstr ""
+msgid "By: %s"
+msgstr "Episodes: %s"
 
-msgid "[-9999]: <access violation test error>"
+msgid "No entry in field <Source>."
 msgstr ""
 
-msgid ""
-"This is a deliberate AcessDenied exception thrown to test the handling of "
-"access violations by means of a decorator."
+msgid "No entry in field <Conditions>."
 msgstr ""
 
-msgid "testing access check for non-existant <admin> role"
-msgstr ""
+#, fuzzy
+msgid "No entry in field <Description>."
+msgstr "Fout bij het verwijderen van de rapportdefinitie [%s]."
 
-msgid ""
-"This is a deliberate AcessDenied exception. You should not see this message "
-"because the role is checked in a decorator."
+msgid "No entry in field <Title>."
 msgstr ""
 
-msgid "pgAdmin III not found."
-msgstr "pgAdmin III niet gevonden."
+#, fuzzy
+msgid "creating a new dynamic hint"
+msgstr "Meting bewerken"
 
-msgid "Error reloading hook script."
+msgid "updating an existing dynamic hint"
 msgstr ""
 
-msgid "Save current log as..."
-msgstr "Sla huidig logboek op als..."
-
-msgid "log files"
-msgstr "logboek bestanden"
+#, fuzzy
+msgid "Deleting suppressed dynamic hint"
+msgstr "Meting bewerken"
 
 #, python-format
-msgid "Log file backed up as [%s]."
-msgstr "Logboek gebackupt als [%s]."
-
-msgid "Cannot start new encounter. No active patient."
-msgstr "Kan geen nieuwe ontmoeting beginnen. Geen actieve patiënt."
+msgid ""
+"Really delete the suppression of this dynamic hint ?\n"
+"\n"
+" [%s]"
+msgstr ""
 
-msgid "Cannot add health issue. No active patient."
-msgstr "Kan gezondheidsprobleem niet toevoegen. Geen actieve patiënt."
+#, fuzzy
+msgid ""
+"\n"
+"Dynamic hints suppressed in this patient.\n"
+msgstr "Lijst met momenteel bestaande stafleden."
 
 #, fuzzy
-msgid "Cannot add episode. No active patient."
-msgstr "Kan gezondheidsprobleem niet toevoegen. Geen actieve patiënt."
+msgid "Showing suppressed dynamic hints."
+msgstr "Meting bewerken"
 
-msgid "Cannot add medication. No active patient."
-msgstr "Kan medicatie niet toevoegen. Geen actieve patiënt."
+#, fuzzy
+msgid "Rationale"
+msgstr "Reactie"
 
-msgid "Cannot add allergy. No active patient."
-msgstr "Kan allergie niet toevoegen. Geen actieve patiënt."
+#, fuzzy
+msgid "Manage hints"
+msgstr "Allergieën bewerken"
 
 #, fuzzy
-msgid "Cannot manage performed procedures. No active patient."
-msgstr "Kan documenten niet laden. Geen actieve patiënt."
+msgid "Manage automatic dynamic hints"
+msgstr "Meting bewerken"
 
 #, fuzzy
-msgid "Cannot manage hospitalizations. No active patient."
-msgstr "Kan niet van tabblad wijzigen. Geen active patiënt."
+msgid "Cannot delete family history item."
+msgstr "Kan patiënt niet verwijderen. Geen actieve patiënt."
 
 #, fuzzy
-msgid "Cannot manage external care. No active patient."
-msgstr "Kan meting niet toevoegen. Geen actieve patiënt."
+msgid "Family history of this patient."
+msgstr "Bewerk details van het beroep voor de huidige patiënt."
 
-msgid "Cannot edit occupation. No active patient."
-msgstr "Kan beroep niet bewerken. Geen actieve patiënt."
+#, fuzzy
+msgid "Showing family history."
+msgstr "Meting bewerken"
 
 #, fuzzy
-msgid "manage vaccinations"
-msgstr "Kan vaccin %s niet opslaan."
+msgid "Fatal"
+msgstr "dodelijk"
 
 #, fuzzy
-msgid "Cannot add vaccinations. No active patient."
-msgstr "Kan medicatie niet toevoegen. Geen actieve patiënt."
+msgid "Noted"
+msgstr "Aantekening"
+
+msgid "Died"
+msgstr ""
 
 #, fuzzy
-msgid "Cannot manage family history. No active patient."
-msgstr "Kan niet van tabblad wijzigen. Geen active patiënt."
+msgid "Adding family history"
+msgstr "Indicatie"
 
 #, fuzzy
-msgid "Cannot manage measurements. No active patient."
-msgstr "Kan meting niet toevoegen. Geen actieve patiënt."
+msgid "Editing family history"
+msgstr "Indicatie"
 
-msgid "calculate EDC"
+msgid ""
+"\n"
+"Please select the default drug data source from the list below.\n"
+"\n"
+"Note that to actually use it you need to have the database installed, too."
 msgstr ""
 
 #, fuzzy
-msgid "manage suppressed hints"
-msgstr "opslaan voortgangsrapport"
+msgid "Configuring default drug data source"
+msgstr "Database taal instellen"
+
+msgid "No default drug database configured."
+msgstr ""
+
+msgid "There is no default drug database configured."
+msgstr ""
 
 #, fuzzy
-msgid "Cannot manage suppressed hints. No active patient."
-msgstr "Kan meting niet toevoegen. Geen actieve patiënt."
+msgid "Jumping to drug database"
+msgstr "Opstarten van geneesmidellengevens bladeraar"
 
-msgid "Cannot show EMR summary. No active patient."
-msgstr "Kan geen EMD samenvatting tonen. Geen actieve patiënt."
+msgid "Cannot import drugs from IFAP into chart without chart."
+msgstr ""
 
-msgid "EMR Summary"
-msgstr "EMD samenvatting"
+#, python-format
+msgid "Cannot call IFAP via [%s]."
+msgstr "Kan IFAP niet aanroepen via [%s]."
 
-msgid "Cannot export EMR journal. No active patient."
-msgstr "Kan EMD journaal niet exporteren. Geen actieve patiënt."
+#, python-format
+msgid "Cannot create IFAP <-> GNUmed transfer file [%s]."
+msgstr "Kan niet IFAP <-> GNUmed transfer file [%s] creëeren."
 
-msgid "Save patient's EMR journal as..."
-msgstr "Sla EMD van de patiënt op als..."
+msgid "Current medication"
+msgstr "Huidige medicatie"
 
-msgid "Error exporting patient EMR as chronological journal."
+msgid ""
+"\n"
+"The ATC codes as known to GNUmed.\n"
 msgstr ""
-"Fout bij het exporteren van het patiënt EMD als chronologisch journaal."
-
-msgid "EMR journal export"
-msgstr "EMD-journaal export"
 
-#, python-format
-msgid "Successfully exported EMR as chronological journal into file [%s]."
+msgid "Showing ATC codes."
 msgstr ""
-"Het EMD succesvol geëxporteerd als chronologisch journaal in bestand [%s]."
 
 #, fuzzy
-msgid "Cannot add tag to person. No active patient."
-msgstr "Kan allergie niet toevoegen. Geen actieve patiënt."
+msgid "Choose an ATC import config file"
+msgstr "Kies een formuliersjabloon bestand"
 
-#, python-format
-msgid "Edit the comment on tag [%s]"
+#, fuzzy
+msgid "config files"
+msgstr "logboek bestanden"
+
+msgid "importing ATC reference data"
 msgstr ""
 
 #, fuzzy
-msgid "Editing tag comment"
-msgstr "Naam bewerken"
+msgid "Successfully imported ATC reference data."
+msgstr "Succesvol docment opgeslagen."
 
-msgid "Cannot export patient as GDT. No active patient."
-msgstr "Kan patiënt niet exporteren als GDT. Geen actieve patiënt."
+msgid "Importing ATC reference data failed."
+msgstr ""
 
-#, fuzzy
-msgid "Exported demographics as GDT to clipboard."
-msgstr "Voer persoonsgegevens uit naar GDT-bestand [%s]"
+msgid "Select an ATC (Anatomical-Therapeutic-Chemical) code."
+msgstr ""
 
 #, fuzzy
-msgid "Cannot export patient as VCARD. No active patient."
-msgstr "Kan patiënt niet exporteren als GDT. Geen actieve patiënt."
+msgid "Cannot edit this substance. It is in use."
+msgstr "Kan beroep niet bewerken. Geen actieve patiënt."
 
 #, fuzzy
-msgid "Exported demographics as VCARD to clipboard."
-msgstr "Voer persoonsgegevens uit naar GDT-bestand [%s]"
+msgid "Adding new consumable substance"
+msgstr "Nieuw contmoetingstype toevoegen"
 
 #, fuzzy
-msgid "Cannot export patient as XML (LinuxMedNews). No active patient."
-msgstr "Kan patiënt niet exporteren als GDT. Geen actieve patiënt."
-
-#, fuzzy, python-format
-msgid "Exported demographics to XML file [%s]."
-msgstr "Voer persoonsgegevens uit naar GDT-bestand [%s]"
-
-#, python-format
-msgid "Exported demographics to GDT file [%s]."
-msgstr "Voer persoonsgegevens uit naar GDT-bestand [%s]"
-
-#, fuzzy, python-format
-msgid "Exported demographics to VCARD file [%s]."
-msgstr "Voer persoonsgegevens uit naar GDT-bestand [%s]"
-
-msgid "Cannot add staff member. No active patient."
-msgstr "Kan staflid niet toevoegen. Geen actieve patiënt."
+msgid "Editing consumable substance"
+msgstr "Naam bewerken"
 
-msgid "Cannot delete patient. No patient active."
-msgstr "Kan patiënt niet verwijderen. Geen actieve patiënt."
+#, fuzzy
+msgid "Cannot delete this substance. It is in use."
+msgstr "Kan ontmoeting [%s] niet verwijderen. Het is in gebruik."
 
 msgid ""
-"You have to manually close this window to finalize shutting down GNUmed."
+"\n"
+"These are the consumable substances registered with GNUmed.\n"
 msgstr ""
 
-msgid "This is so that you can inspect the console output at your leisure."
-msgstr ""
+#, fuzzy
+msgid "Import"
+msgstr "Rapport"
 
-msgid "no patient"
-msgstr "geen patiënt"
+msgid "Import consumable substances from a drug database."
+msgstr ""
 
-#, python-format
-msgid "Saved screenshot to file [%s]."
-msgstr "Schermafdruk opgeslagen in bestand [%s]"
+#, fuzzy
+msgid "Cannot save consumable substance. Missing essential input."
+msgstr "Kan uitslag niet bewaren. Essentiele ingave ontbreekt."
 
-msgid "GNUmed client"
-msgstr "GNUmed frontend"
+#, fuzzy, python-format
+msgid "Cannot save consumable substance. %s"
+msgstr "Kan laboratoriumverzoek niet opslaan"
 
-msgid "GNUmed stdout/stderr window"
+msgid "The substance with optional strength."
 msgstr ""
 
-msgid "redirecting STDOUT/STDERR to this log window"
-msgstr ""
+#, fuzzy
+msgid "Cannot remove this component from the drug. It is in use."
+msgstr "Kan ontmoeting [%s] niet verwijderen. Het is in gebruik."
 
-#, python-format
+#, fuzzy
 msgid ""
-"The database account [%s] cannot be used as a\n"
-"staff member login for GNUmed. There was an\n"
-"error retrieving staff details for it.\n"
-"\n"
-"Please ask your administrator for help.\n"
-msgstr ""
-"Het database account [%s] kan niet worden gebruikt om als\n"
-"staflid in te loggen bij GNUmed. Er was een fout bij het \n"
-"ophalen van de details voor het staflid.\n"
 "\n"
-"Vraag uw systeembeheerder om hulp.\n"
-
-msgid "Checking access permissions"
-msgstr "Controleren op toegangsrechten"
+"These are the components in the drug brands known to GNUmed.\n"
+msgstr "Lijst met momenteel bestaande stafleden."
 
-#, python-format
-msgid "Database <%s> on <%s>"
+msgid "Showing drug brand components."
 msgstr ""
 
-#, python-format
-msgid "Branch \"%s\" of praxis \"%s\"\n"
-msgstr ""
+#, fuzzy
+msgid "Adding new drug component"
+msgstr "Nieuwe patiënt toevoegen"
 
-msgid "Verifying database"
-msgstr "Verifiëren database"
+#, fuzzy
+msgid "Editing drug component"
+msgstr "Meting bewerken"
 
 #, fuzzy
-msgid "Connect"
-msgstr "Context"
+msgid "Cannot edit drug component. It is in use."
+msgstr "Kan ontmoeting [%s] niet verwijderen. Het is in gebruik."
 
 #, fuzzy
-msgid "Yes, connect to this database."
-msgstr "Een aantekening bij deze patiënt."
+msgid "Cannot save drug component. Invalid or missing essential input."
+msgstr "Kan uitslag niet bewaren. Essentiele ingave ontbreekt."
 
-msgid "Disconnect"
+msgid "A drug component with optional strength."
 msgstr ""
 
 #, fuzzy
-msgid "No, do not connect to this database."
-msgstr "Nee, niet bij het opstarten controleren of er updates zijn."
+msgid "Editing drug"
+msgstr "Adres wijzigen"
 
-#, python-format
+#, fuzzy, python-format
 msgid ""
-"Cannot find configuration file in any of:\n"
-"\n"
-" %s\n"
-"You may need to use the comand line option\n"
-"\n"
-"\t--conf-file=<FILE>"
-msgstr ""
-"Kan configuratiebestand niet vinden in:\n"
-"\n"
-" %s\n"
-"U moet wellicht de commandline optie gebruiken\n"
+"Cannot edit the branded drug product\n"
 "\n"
-"\t--conf-file=<FILE>"
-
-msgid "Checking configuration files"
-msgstr "Controleren van configuratiebestanden"
-
-msgid "GNUmed startup"
-msgstr "GNUmed startop"
-
-#, python-format
-msgid ""
-"The currently selected database language ('%s') does\n"
-"not match the current system language ('%s').\n"
+" \"%s\" (%s)\n"
 "\n"
-"Do you want to set the database language to '%s' ?\n"
+"because it is currently taken by patients.\n"
 msgstr ""
-"De huidig geselecteerde databasetaal ('%s') komt niet\n"
-"overeen met de huidige systeemtaal ('%s').\n"
-"\n"
-"Wilt ude databasetaal zetten op '%s'?\n"
+"Kan documenttype\n"
+" [%s]\n"
+"niet verwijderen omdat het in gebruik is."
 
-msgid "Checking database language settings"
-msgstr "Controleren databasetaal instellingen"
+#, fuzzy
+msgid "Adding new drug brand"
+msgstr "Nieuwe patiënt toevoegen"
 
-msgid "Set"
-msgstr "Instellen"
+#, fuzzy
+msgid "Editing drug brand"
+msgstr "opslaan voortgangsrapport"
 
-#, python-format
-msgid "Set your database language to [%s]."
-msgstr "Stel de taal van de database in op [%s]."
+#, fuzzy
+msgid "Manage consumable substances"
+msgstr "Meting bewerken"
 
-msgid "Don't set"
-msgstr "Niet instellen"
+#, fuzzy
+msgid "not in use"
+msgstr "In gebruik"
 
-msgid "Do not set your database language now."
-msgstr "Stel de taal van uw database niet nu in."
+#, fuzzy, python-format
+msgid "ATC: %s\n"
+msgstr "   MTA: %s"
 
-msgid "Remember to ignore language mismatch"
-msgstr "Onthoud om taalverschil te negeren"
+#, fuzzy
+msgid "Editing medication"
+msgstr "Kan geen beschrijving van het document toevoegen."
 
 #, python-format
 msgid ""
-"Checking this will make GNUmed remember your decision\n"
-"until the system language is changed.\n"
+"Cannot edit the medication\n"
 "\n"
-"You can also reactivate this inquiry by removing the\n"
-"corresponding \"ignore\" option from the configuration file\n"
+" \"%s\" (%s)\n"
 "\n"
-" [%s]"
+"because it is a vaccine. Please edit it\n"
+"from the vaccine management section !\n"
 msgstr ""
-"Dit aanvinken zorgt dat GNUmed uw beslissing onthoudt totdat \n"
-"de systeemtaal is gewijzigd.\n"
-"\n"
-"U kunt deze vraag ook reactiveren door de overeenkomstige \n"
-"\"ignore\" optie te verwijderen uit het configuratiebestand\n"
-"\n"
-" [%s]"
 
 #, fuzzy
-msgid "generic activity"
-msgstr "Generieke naam"
-
-msgid "Access denied"
-msgstr ""
+msgid "Deleting medication"
+msgstr "Kan geen beschrijving van het document toevoegen."
 
 #, python-format
 msgid ""
-"Your account is not set up to access this part of GNUmed:\n"
+"Cannot delete the medication\n"
 "\n"
-"  [%s]"
+" \"%s\" (%s)\n"
+"\n"
+"because it is a vaccine. Please delete it\n"
+"from the vaccine management section !\n"
 msgstr ""
 
-msgid "Save timeline as SVG image under..."
+msgid ""
+"\n"
+"These are the drug brands known to GNUmed.\n"
 msgstr ""
 
-#, fuzzy
-msgid "timeline image"
-msgstr "alle bestanden"
-
-#, fuzzy
-msgid "timeline data"
-msgstr "Titel"
-
-msgid "Cannot change notebook tabs. No active patient."
-msgstr "Kan niet van tabblad wijzigen. Geen active patiënt."
-
-msgid "add plugin ..."
-msgstr "plugin toevoegen..."
-
-msgid "Cannot activate Allergy Manager. No active patient."
-msgstr "Kan allergieorganisator niet activeren. Geen actieve patiënt."
-
-msgid "<Age>"
+msgid "Showing branded drugs."
 msgstr ""
 
-#, fuzzy
-msgid "no patient selected"
-msgstr "apparaat selectie"
-
-#, fuzzy, python-format
-msgid "Gender: %s (%s) - %s\n"
-msgstr "Ontmoetingen: %s (%s - %s):"
-
-#, fuzzy, python-format
-msgid "Born: %s\n"
-msgstr "Episodes: %s"
-
-#, fuzzy, python-format
-msgid "Died: %s\n"
-msgstr "Geexporteerd: %s\n"
-
-#, fuzzy, python-format
-msgid "At age: %s\n"
-msgstr "Geexporteerd: %s\n"
-
-msgid " (date of birth and age are estimated)\n"
+msgid "Import substances and brands from a drug database."
 msgstr ""
 
-#, fuzzy, python-format
-msgid "%(sex)s  %(dob)s (%(age)s today !)"
-msgstr "%s %s (%s today !)"
+msgid "Managing components of a drug"
+msgstr ""
 
+#, python-format
 msgid ""
+"Cannot manage the components of the branded drug product\n"
 "\n"
-"Today is the patient's birthday !\n"
+" \"%s\" (%s)\n"
 "\n"
+"because it is currently taken by patients.\n"
 msgstr ""
 
-#, python-format
-msgid "Birthday: %s ago\n"
+msgid "Pick the substances which are components of this drug."
 msgstr ""
 
-#, fuzzy, python-format
-msgid "Birthday: in %s\n"
-msgstr "Verjaardag herrineren"
-
-#, fuzzy, python-format
-msgid "Age: %s\n"
-msgstr "   MTA: %s"
-
-#, fuzzy, python-format
-msgid "last confirmed %s\n"
-msgstr "Laatst gewerkt aan: %s\n"
-
-#, fuzzy, python-format
-msgid "Comment (%s): %%s"
-msgstr "Documenten: %s"
-
-#, python-format
-msgid " - expires %s"
+msgid "Components of drug"
 msgstr ""
 
 #, python-format
 msgid ""
-"Due for %s (since %s%s):\n"
-"%s%s\n"
-"Patient: %s\n"
-"Reminder by: %s"
+"Adjust the components of \"%s\"\n"
+"\n"
+"The drug must contain at least one component. Any given\n"
+"substance can only be included once per drug."
 msgstr ""
 
 #, fuzzy
-msgid "Clinical reminder"
-msgstr "Klinische aantekeningen"
-
-#, fuzzy
-msgid "Adding automatic dynamic hint"
-msgstr "Meting bewerken"
+msgid "Managing components of a drug ..."
+msgstr "Ontmoetingstypes bewerken ..."
 
 #, fuzzy
-msgid "Editing automatic dynamic hint"
-msgstr "Meting bewerken"
+msgid "Cannot edit drug brand. It is in use."
+msgstr "Kan ontmoeting [%s] niet verwijderen. Het is in gebruik."
 
 #, fuzzy
-msgid "Deleting automatic dynamic hint"
-msgstr "Meting bewerken"
+msgid "Checking brand data"
+msgstr "Controleren voor frontend updates"
 
 #, python-format
 msgid ""
-"Really delete this dynamic hint ?\n"
+"The brand information you entered:\n"
 "\n"
-" [%s]"
+" [%s %s]\n"
+"\n"
+"already exists as a drug product."
 msgstr ""
 
-#, fuzzy
-msgid "deleting a dynamic hint"
-msgstr "Meting bewerken"
+msgid ""
+"You have not selected any substances\n"
+"as drug components.\n"
+"\n"
+"Without components you will not be able to\n"
+"use this drug for documenting patient care.\n"
+"\n"
+"Are you sure you want to save\n"
+"it without components ?"
+msgstr ""
 
 #, fuzzy
+msgid "Cannot save branded drug. Invalid or missing essential input."
+msgstr "Kan uitslag niet bewaren. Essentiele ingave ontbreekt."
+
 msgid ""
+"The brand name of the drug.\n"
 "\n"
-"Dynamic hints registered with GNUmed.\n"
-msgstr "Lijst met momenteel bestaande stafleden."
+"Note: a brand name will need to be linked to\n"
+"one or more components before it can be used,\n"
+"except in the case of fake (generic) vaccines."
+msgstr ""
+
+msgid "No EMR data loaded."
+msgstr "Geen EMD gegevens geladen."
+
+msgid "EMR text dump"
+msgstr "EMD tekst dump"
+
+msgid "Currently there is no active patient. Cannot retrieve EMR text."
+msgstr "Er is geen actieve patiënt. Kan geen EMD tekst ophalen."
 
 #, fuzzy
-msgid "Showing dynamic hints."
-msgstr "Meting bewerken"
+msgid "SOAP Editor Actions:"
+msgstr "Vaccinaties"
 
-msgid "Hint"
-msgstr ""
+#, fuzzy
+msgid "&Sort lines"
+msgstr "Nieuw"
 
-msgid "Browse and install automatic dynamic hints data packs"
+msgid "Sort lines by SOAP category"
 msgstr ""
 
-#, fuzzy, python-format
-msgid "By: %s"
-msgstr "Episodes: %s"
-
-msgid "No entry in field <Source>."
+msgid "e&Xpand keyword"
 msgstr ""
 
-msgid "No entry in field <Conditions>."
+msgid "Expand keyword / macro"
 msgstr ""
 
 #, fuzzy
-msgid "No entry in field <Description>."
-msgstr "Fout bij het verwijderen van de rapportdefinitie [%s]."
+msgid "as &Subjective"
+msgstr "Anamnese"
 
-msgid "No entry in field <Title>."
+msgid "Set line to category \"Subjective\""
 msgstr ""
 
 #, fuzzy
-msgid "creating a new dynamic hint"
-msgstr "Meting bewerken"
+msgid "as &Objective"
+msgstr "Bevindingen"
 
-msgid "updating an existing dynamic hint"
+msgid "Set line to category \"Objective\""
 msgstr ""
 
 #, fuzzy
-msgid "Deleting suppressed dynamic hint"
-msgstr "Meting bewerken"
+msgid "as &Assessment"
+msgstr "Conclusie"
 
-#, python-format
-msgid ""
-"Really delete the suppression of this dynamic hint ?\n"
-"\n"
-" [%s]"
+msgid "Set line to category \"Assessment\""
 msgstr ""
 
 #, fuzzy
-msgid ""
-"\n"
-"Dynamic hints suppressed in this patient.\n"
-msgstr "Lijst met momenteel bestaande stafleden."
+msgid "as &Plan"
+msgstr "Plan"
 
-#, fuzzy
-msgid "Showing suppressed dynamic hints."
-msgstr "Meting bewerken"
+msgid "Set line to category \"Plan\""
+msgstr ""
 
 #, fuzzy
-msgid "Rationale"
-msgstr "Reactie"
+msgid "as &Unspecified"
+msgstr "soap_Bevindingen"
 
-#, fuzzy
-msgid "Manage hints"
-msgstr "Allergieën bewerken"
+msgid "Set line to category \"unspecified\""
+msgstr ""
 
 #, fuzzy
-msgid "Manage automatic dynamic hints"
-msgstr "Meting bewerken"
+msgid "as ad&Ministrative"
+msgstr "Beheer"
 
-#, fuzzy
-msgid "Cannot delete family history item."
-msgstr "Kan patiënt niet verwijderen. Geen actieve patiënt."
+msgid "Set line to category \"administrative\""
+msgstr ""
 
 #, fuzzy
-msgid "Family history of this patient."
-msgstr "Bewerk details van het beroep voor de huidige patiënt."
+msgid "→ &Clipboard"
+msgstr "Exporteren naar &clipboard"
 
 #, fuzzy
-msgid "Showing family history."
-msgstr "Meting bewerken"
+msgid "Copy line to clipboard"
+msgstr "Exporteren naar &clipboard"
 
 #, fuzzy
-msgid "Fatal"
-msgstr "dodelijk"
+msgid "→ +Clipboard+"
+msgstr "Exporteren naar &clipboard"
 
 #, fuzzy
-msgid "Noted"
-msgstr "Aantekening"
+msgid "Add line to clipboard"
+msgstr "Exporteren naar &clipboard"
 
-msgid "Died"
-msgstr ""
+#, fuzzy
+msgid "Copy content to clipboard"
+msgstr "Exporteren naar &clipboard"
 
 #, fuzzy
-msgid "Adding family history"
-msgstr "Indicatie"
+msgid "Add content to clipboard"
+msgstr "Exporteren naar &clipboard"
 
 #, fuzzy
-msgid "Editing family history"
-msgstr "Indicatie"
+msgid "Copy selection to clipboard"
+msgstr "Exporteren naar &clipboard"
 
-msgid "No EMR data loaded."
-msgstr "Geen EMD gegevens geladen."
+#, fuzzy
+msgid "Add selection to clipboard"
+msgstr "Exporteren naar &clipboard"
 
-msgid "EMR text dump"
-msgstr "EMD tekst dump"
+#, fuzzy
+msgid "&Line ..."
+msgstr "Vaccin"
 
-msgid "Currently there is no active patient. Cannot retrieve EMR text."
-msgstr "Er is geen actieve patiënt. Kan geen EMD tekst ophalen."
+#, fuzzy
+msgid "&Text ..."
+msgstr "&Waarnemingen"
+
+#, fuzzy
+msgid "&Region ..."
+msgstr "Regio"
 
 #, fuzzy
 msgid "Show HL7 file:"
@@ -17871,6 +18846,10 @@ msgstr ""
 msgid "Extracting HL7 from XML file"
 msgstr "Bestanden ophalen uit map [%s] ..."
 
+#, python-format
+msgid "Unwrapped HL7 into [%s] from [%s]."
+msgstr ""
+
 msgid "Select HL7 file for staging:"
 msgstr ""
 
@@ -17896,6 +18875,10 @@ msgid ""
 " %s"
 msgstr ""
 
+#, fuzzy, python-format
+msgid "Staged HL7 from [%s]."
+msgstr "Template gegevens ophalen uit een bestand."
+
 msgid "Importing HL7 data"
 msgstr ""
 
@@ -17945,10 +18928,6 @@ msgstr ""
 msgid "Identification"
 msgstr "Indicatie"
 
-#, fuzzy
-msgid "Show"
-msgstr "toon onderdeel"
-
 msgid "Show formatted HL7"
 msgstr ""
 
@@ -17997,6 +18976,20 @@ msgstr "apparaat selectie"
 msgid "Plot current selection"
 msgstr "Huidige medicatie"
 
+#, fuzzy
+msgid ""
+"Select the measurements panel to show in the top pane for continuous "
+"monitoring."
+msgstr "Selecteer het soort communicatiekanaal."
+
+#, fuzzy
+msgid "Lab panel"
+msgstr "Allergieën bewerken"
+
+#, fuzzy
+msgid "Configuring continuous monitoring measurements panel"
+msgstr "Meting bewerken"
+
 msgid "No default Gnuplot script template selected."
 msgstr ""
 
@@ -18022,13 +19015,28 @@ msgstr "Kan medicatie niet toevoegen. Geen actieve patiënt."
 msgid "Cannot plot without a plot script."
 msgstr "Kan patiënt niet verwijderen. Geen actieve patiënt."
 
-#, fuzzy
-msgid "Time"
-msgstr "Titel"
-
 msgid "Result"
 msgstr "Uitslag"
 
+#, fuzzy
+msgid "Perform on selected results:"
+msgstr "Handel naar geselecteerde uitslagen"
+
+msgid "Review and &sign"
+msgstr "Beoordeel en &onderteken"
+
+msgid "Export to &file"
+msgstr "Exporteren naar &bestand"
+
+msgid "Export to &clipboard"
+msgstr "Exporteren naar &clipboard"
+
+msgid "Panels"
+msgstr ""
+
+msgid "List"
+msgstr ""
+
 msgid ""
 "lab_grid_date_format::%Y\n"
 "%b %d"
@@ -18118,19 +19126,6 @@ msgstr ""
 msgid "All: by &Day"
 msgstr ""
 
-#, fuzzy
-msgid "Perform on selected results:"
-msgstr "Handel naar geselecteerde uitslagen"
-
-msgid "Review and &sign"
-msgstr "Beoordeel en &onderteken"
-
-msgid "Export to &file"
-msgstr "Exporteren naar &bestand"
-
-msgid "Export to &clipboard"
-msgstr "Exporteren naar &clipboard"
-
 #, python-format
 msgid "%s results selected. Too many to list individually."
 msgstr "%s uitslagen geselecteerd. Te veel om allemaal te tonen."
@@ -18336,6 +19331,10 @@ msgid "EMR Actions:"
 msgstr "Reactie"
 
 #, fuzzy
+msgid "Print EMR"
+msgstr "&Afdrukken"
+
+#, fuzzy
 msgid "Create health issue"
 msgstr "Creëer gezondheidsprobleem"
 
@@ -18518,16 +19517,43 @@ msgstr "GeneesmiddelenBladeraar"
 msgid "&New notes %s"
 msgstr "Notitie"
 
+msgid "Find text in EMR Journal"
+msgstr ""
+
+#, fuzzy
+msgid "Modified"
+msgstr "gewijzigde invoer"
+
+#, fuzzy
+msgid "Clinical time"
+msgstr "Klinische aantekeningen"
+
+msgid "Who / When"
+msgstr ""
+
+#, python-format
 msgid ""
-"An error occurred while retrieving the EMR\n"
-"in journal form for the active patient.\n"
+"Chart entry: %s       [#%s in %s]\n"
+" Modified: %s by %s (%s rev %s)\n"
 "\n"
-"Please check the log file for details."
+"Health issue: %s%s\n"
+"Episode: %s%s\n"
+"Encounter: %s%s"
 msgstr ""
-"Er is een fout opgetreden bij het ophalen van het EMD als\n"
-"journaal voor de actieve patiënt.\n"
+
+#, python-format
+msgid ""
+"%s\n"
 "\n"
-"Controleer het logboek voor de details."
+"                        rev %s (%s) by %s in <%s>"
+msgstr ""
+
+#, python-format
+msgid ""
+"%s\n"
+"%s\n"
+"%s"
+msgstr ""
 
 #, fuzzy
 msgid "Editing tag"
@@ -18684,19 +19710,16 @@ msgstr ""
 " %s %s %s\n"
 " geboren %s\n"
 
-msgid "This patient DID receive care."
+msgid "This patient DID receive care here."
 msgstr ""
 
-msgid "This person did NOT receive care."
+msgid "This person did NOT receive care here."
 msgstr ""
 
 #, fuzzy
 msgid "Disabling person"
 msgstr "Patiënt op non-aktief zetten"
 
-msgid "Disabling patient"
-msgstr "Patiënt op non-aktief zetten"
-
 msgid "Type or select a last name (family name/surname)."
 msgstr "Typ of selecteer een achternaam"
 
@@ -19035,6 +20058,9 @@ msgstr ""
 "\n"
 "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
 
+msgid "Connecting to backend"
+msgstr "Verbinden met backend"
+
 #, fuzzy, python-format
 msgid ""
 "Unable to connect to database:\n"
@@ -19282,9 +20308,6 @@ msgstr "Organisatie"
 msgid "Office"
 msgstr "Kantoor"
 
-msgid "State"
-msgstr "Provincie"
-
 msgid "Zip"
 msgstr "Postcode"
 
@@ -19342,8 +20365,9 @@ msgstr "plugin toevoegen..."
 msgid "EMR Timeline"
 msgstr "EMD-boom"
 
-msgid "Show &Timeline"
-msgstr ""
+#, fuzzy
+msgid "EMR &Timeline"
+msgstr "EMD-boom"
 
 #, fuzzy
 msgid "Overview"
@@ -19374,11 +20398,13 @@ msgstr "Notitie"
 msgid "&SimpleNotes"
 msgstr "Notitie"
 
-msgid "EMR tree"
+#, fuzzy
+msgid "EMR Tree"
 msgstr "EMD-boom"
 
-msgid "EMR &Tree (topical)"
-msgstr ""
+#, fuzzy
+msgid "EMR &Tree"
+msgstr "EMD-boom"
 
 #, fuzzy
 msgid "Print Manager"
@@ -19388,6 +20414,14 @@ msgstr "Onderdeel afdrukken"
 msgid "&Print Manager"
 msgstr "Onderdeel afdrukken"
 
+#, fuzzy
+msgid "EMR Journal"
+msgstr "EMD journaal"
+
+#, fuzzy
+msgid "EMR &Journal (list)"
+msgstr "EMD journaal"
+
 msgid "Appointments"
 msgstr "Afspraken"
 
@@ -19401,6 +20435,12 @@ msgstr "laboratoriumjournaal"
 msgid "Show &lab journal"
 msgstr "Toon &laboratoriumjournaal"
 
+msgid "PACS"
+msgstr ""
+
+msgid "&PACS"
+msgstr ""
+
 msgid "Cardiac Devices"
 msgstr ""
 
@@ -19480,11 +20520,9 @@ msgstr "Handleiding"
 msgid "User &manual (local)"
 msgstr "Gebruikers&handleiding (locaal)"
 
-msgid "EMR journal"
-msgstr "EMD journaal"
-
-msgid "EMR &Journal (chronological)"
-msgstr ""
+#, fuzzy
+msgid "EMR &Journal (text)"
+msgstr "EMD-journaal export"
 
 #, fuzzy
 msgid "Demographics"
@@ -19667,6 +20705,10 @@ msgstr "Sjabloon"
 msgid "Show &ExamplePlugin"
 msgstr ""
 
+#, fuzzy
+msgid "Find text"
+msgstr "Laast toegediend"
+
 msgid "gm_ctl_client: starting slave GNUmed client"
 msgstr "gm_ctl_client: GNUmed frontend wordt opgestart"
 
@@ -19703,6 +20745,274 @@ msgstr "Afbreken"
 msgid "Abort and do NOT connect to GNUmed."
 msgstr "Afbreken en GEEN verbinding maken met GNUmed."
 
+#, fuzzy
+#~ msgid ""
+#~ "Health issue: %s%s%s (%s versions)\n"
+#~ "\n"
+#~ msgstr "gezondheidsprobleem: %s"
+
+#, fuzzy
+#~ msgid ""
+#~ "Episode: %s%s%s (%s versions)\n"
+#~ "\n"
+#~ msgstr "Episodes: %s"
+
+#, fuzzy
+#~ msgid ""
+#~ "Encounter: %s%s%s (%s versions)\n"
+#~ "\n"
+#~ msgstr "Ontmoetingen: %s (%s - %s):"
+
+#, fuzzy
+#~ msgid ""
+#~ "\n"
+#~ "current values:\n"
+#~ msgstr "onbekende allergiestatus"
+
+#~ msgid "soap_S"
+#~ msgstr "soap_A"
+
+#~ msgid "soap_O"
+#~ msgstr "soap_B"
+
+#~ msgid "soap_A"
+#~ msgstr "soap_C"
+
+#~ msgid "soap_P"
+#~ msgstr "soap_P"
+
+#, fuzzy
+#~ msgid "soap_U"
+#~ msgstr "soap_A"
+
+#~ msgid "soap_Subjective"
+#~ msgstr "soap_Anamnese"
+
+#~ msgid "soap_Objective"
+#~ msgstr "soap_Bevindingen"
+
+#~ msgid "soap_Assessment"
+#~ msgstr "soap_Conclusie"
+
+#~ msgid "soap_Plan"
+#~ msgstr "soap_Plan"
+
+#, fuzzy
+#~ msgid "soap_Unspecified"
+#~ msgstr "soap_Bevindingen"
+
+#~ msgid "soap_Administrative"
+#~ msgstr "soap_Administratie"
+
+#, fuzzy
+#~ msgid "Search in list"
+#~ msgstr "zoekresultaten"
+
+#~ msgid "Parts"
+#~ msgstr "Onderdelen"
+
+#~ msgid "You must select a part before you can delete it."
+#~ msgstr "U moet een onderdeel selecteren voordat u het kunt verwijderen."
+
+#~ msgid "deleting part"
+#~ msgstr "deel verwijderen"
+
+#, fuzzy
+#~ msgid ""
+#~ "The part has successfully been removed from the document.\n"
+#~ "\n"
+#~ "Do you also want to permanently delete the file\n"
+#~ "\n"
+#~ " [%s]\n"
+#~ "\n"
+#~ "from which this document part was loaded ?\n"
+#~ "\n"
+#~ "If it is a temporary file for a page you just scanned\n"
+#~ "this makes a lot of sense. In other cases you may not\n"
+#~ "want to lose the file.\n"
+#~ "\n"
+#~ "Pressing [YES] will permanently remove the file\n"
+#~ "from your computer.\n"
+#~ msgstr ""
+#~ "Wilt u definitief het bestand\n"
+#~ "\n"
+#~ " [%s]\n"
+#~ "\n"
+#~ "van uw computer verwijderen?\n"
+#~ "\n"
+#~ "Als het een tijdelijk bestand is voor een pagina die u\n"
+#~ "zojuist gescand heeft is dit logisch.In andere gevallen\n"
+#~ "wilt u wellicht het bestand niet verliezen.\n"
+#~ "\n"
+#~ "Door op JA te drukken verwijderd u het bestand\n"
+#~ "definitief van uw computer."
+
+#, fuzzy
+#~ msgid "Removing document part"
+#~ msgstr "Verwerken documentonderdeel: %s"
+
+#~ msgid ""
+#~ "Cannot delete part in file [%s].\n"
+#~ "\n"
+#~ "You may not have write access to it."
+#~ msgstr ""
+#~ "Kan onderdeel in het bestand [%s] niet verwijderen.\n"
+#~ "\n"
+#~ "Wellicht heeft u geen schrijfrechten hiervoor."
+
+#~ msgid "Cannot update document metadata."
+#~ msgstr "Kan document metadata niet uploaden."
+
+#~ msgid "Disabling patient"
+#~ msgstr "Patiënt op non-aktief zetten"
+
+#, fuzzy
+#~ msgid "&Unknown"
+#~ msgstr "Onbekend"
+
+#, fuzzy
+#~ msgid "Last confirmed: %s%s"
+#~ msgstr "Laatst gewijzigd:"
+
+#, fuzzy
+#~ msgid "Duration / Until"
+#~ msgstr "Operatie"
+
+#, fuzzy
+#~ msgid "Smoking status"
+#~ msgstr "status"
+
+#~ msgid "State"
+#~ msgstr "Provincie"
+
+#~ msgid ""
+#~ "Cannot connect to configuration database with:\n"
+#~ "\n"
+#~ "[%s]"
+#~ msgstr ""
+#~ "Kan niet verbinden met configuratie database met:\n"
+#~ "\n"
+#~ "[%s]"
+
+#~ msgid ""
+#~ "Cannot connect to database with:\n"
+#~ "\n"
+#~ "[%s]"
+#~ msgstr ""
+#~ "Kan niet verbinden met database met:\n"
+#~ "\n"
+#~ "[%s]"
+
+#~ msgid "No product information available."
+#~ msgstr "Geen produktinformatie beschikbaar."
+
+#~ msgid ""
+#~ "Unable to connect to database:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Are you sure you have got a local database installed ?\n"
+#~ "\n"
+#~ "Please retry with proper credentials or cancel.\n"
+#~ "\n"
+#~ "You may also need to check the PostgreSQL client\n"
+#~ "authentication configuration in pg_hba.conf. For\n"
+#~ "details see:\n"
+#~ "\n"
+#~ "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
+#~ msgstr ""
+#~ "Kan geen verbinding maken met de database:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Weet je zeker dat er een lokale database geïnstalleerd is?\n"
+#~ "\n"
+#~ "Probeer het nogmaals met juiste inloggegevens of annuleer.\n"
+#~ "\n"
+#~ "Mogelijk dient u de authenticatie gegevens in pg_hba.conf \n"
+#~ "van uw PostgreSQL client te controleren. voor meer informatie\n"
+#~ "ga naar:\n"
+#~ "\n"
+#~ "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
+
+#~ msgid ""
+#~ "Unable to connect to database:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Please retry with proper credentials or cancel.\n"
+#~ "\n"
+#~ "You may also need to check the PostgreSQL client\n"
+#~ "authentication configuration in pg_hba.conf. For\n"
+#~ "details see:\n"
+#~ "\n"
+#~ "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
+#~ msgstr ""
+#~ "Kan geen verbinding maken met de database:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Probeer het nogmaals met juiste inloggegevens of annuleer.\n"
+#~ "\n"
+#~ "Mogelijk dient u de authenticatie gegevens in pg_hba.conf\n"
+#~ "van uw PostgreSQL client te controleren. voor meer informatie\n"
+#~ "ga naar:\n"
+#~ "\n"
+#~ "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
+
+#~ msgid ""
+#~ "Unable to connect to database:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Please retry another backend / user / password combination !\n"
+#~ msgstr ""
+#~ "Kan geen verbinding maken met de database\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Probeer het nogmaals met een andere backen / gebruiker / wachtwoord "
+#~ "combinatie !\n"
+
+#, fuzzy
+#~ msgid "Show part"
+#~ msgstr "toon onderdeel"
+
+#~ msgid "You must select a part before you can view it."
+#~ msgstr "U moet een onderdeel selecteren voordat u het kunt bekijken."
+
+#~ msgid "Journal"
+#~ msgstr "Journaal"
+
+#~ msgid ""
+#~ "An error occurred while retrieving the EMR\n"
+#~ "in journal form for the active patient.\n"
+#~ "\n"
+#~ "Please check the log file for details."
+#~ msgstr ""
+#~ "Er is een fout opgetreden bij het ophalen van het EMD als\n"
+#~ "journaal voor de actieve patiënt.\n"
+#~ "\n"
+#~ "Controleer het logboek voor de details."
+
+#, fuzzy
+#~ msgid ""
+#~ "\n"
+#~ "Select the measurements panel to show in the top pane.\n"
+#~ msgstr "Selecteer het soort communicatiekanaal."
+
+#, fuzzy
+#~ msgid "Brand by component"
+#~ msgstr "Meting bewerken"
+
+#, fuzzy
+#~ msgid "Unbranded substance"
+#~ msgstr "Stof"
+
+#, fuzzy
+#~ msgid "Inbox Message Actions:"
+#~ msgstr "Postvak In Berichten menu"
+
 #~ msgid "Province"
 #~ msgstr "Provincie"
 
@@ -19762,10 +21072,6 @@ msgstr "Afbreken en GEEN verbinding maken met GNUmed."
 #~ msgstr "%s%7s %s: %s (%s part(s), %s)"
 
 #, fuzzy
-#~ msgid "Clinical hint"
-#~ msgstr "Klinisch"
-
-#, fuzzy
 #~ msgid "More info"
 #~ msgstr "Straat"
 
@@ -19805,10 +21111,6 @@ msgstr "Afbreken en GEEN verbinding maken met GNUmed."
 #~ msgstr "&Aantekenen als:"
 
 #, fuzzy
-#~ msgid "file: %s (%s/)"
-#~ msgstr "SQL: %s"
-
-#, fuzzy
 #~ msgid "Switching clinical hint activation"
 #~ msgstr "Wijzigen beroep"
 
@@ -19887,9 +21189,6 @@ msgstr "Afbreken en GEEN verbinding maken met GNUmed."
 #~ msgid "SQL: %s"
 #~ msgstr "SQL: %s"
 
-#~ msgid "cannot connect to service [%s]"
-#~ msgstr "kan niet verbinden met service [%s]"
-
 #, fuzzy
 #~ msgid "The episode this substance is taken under."
 #~ msgstr ""
@@ -20092,10 +21391,6 @@ msgstr "Afbreken en GEEN verbinding maken met GNUmed."
 #~ msgid "   unreviewed"
 #~ msgstr "   niet bekeken"
 
-#, fuzzy
-#~ msgid "Date: %s\n"
-#~ msgstr "Geexporteerd: %s\n"
-
 #~ msgid "Employees"
 #~ msgstr "Werknemers"
 
@@ -20238,10 +21533,5 @@ msgstr "Afbreken en GEEN verbinding maken met GNUmed."
 #~ msgid "unknown test results table formatting style [%s]"
 #~ msgstr "onbekende test status [%s]"
 
-#, fuzzy
-#~ msgid ""
-#~ "Measurement details:                                               \n"
-#~ msgstr "laden lijst van plugins                               "
-
 #~ msgid "Owner"
 #~ msgstr "Eigenaar"
diff --git a/client/po/pl-gnumed.mo b/client/po/pl-gnumed.mo
index 72f8c67..74984e4 100644
Binary files a/client/po/pl-gnumed.mo and b/client/po/pl-gnumed.mo differ
diff --git a/client/po/pl.po b/client/po/pl.po
index 9b19537..790ab04 100644
--- a/client/po/pl.po
+++ b/client/po/pl.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gnumed\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-12-26 20:28+0100\n"
+"POT-Creation-Date: 2016-03-17 16:27+0100\n"
 "PO-Revision-Date: 2012-06-01 01:17+0000\n"
 "Last-Translator: J.Luszawski <jl at leksoft.com.pl>\n"
 "Language-Team: Polish <pl at li.org>\n"
@@ -1550,10 +1550,22 @@ msgid ""
 "--------------"
 msgstr ""
 
+#, fuzzy, python-format
+msgid "Revision #%s"
+msgstr " Nowa wersja: \"%s\"\n"
+
 #, python-format
 msgid "[%s:%s]: row not updated (nothing returned), row in use ?"
 msgstr ""
 
+#, fuzzy, python-format
+msgid "<%s(.bat)> not found"
+msgstr "Nie znaleziono żądanej strony"
+
+#, fuzzy, python-format
+msgid "problem with <%s>"
+msgstr "Problem"
+
 #, python-format
 msgid "[%s] is not a readable file"
 msgstr ""
@@ -1582,23 +1594,9 @@ msgstr "1 bajt"
 msgid "%s Bytes"
 msgstr "%s bajtów"
 
-#, python-format
-msgid ""
-"Cannot connect to configuration database with:\n"
-"\n"
-"[%s]"
-msgstr ""
-
-#, python-format
-msgid ""
-"Cannot connect to database with:\n"
-"\n"
-"[%s]"
+msgid "<type>"
 msgstr ""
 
-msgid "No product information available."
-msgstr "Brak informacji o produkcie."
-
 #, fuzzy, python-format
 msgid ""
 "Cannot retrieve version information from:\n"
@@ -1940,106 +1938,6 @@ msgstr ""
 msgid "  risk: %s"
 msgstr ""
 
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Are you sure you have got a local database installed ?\n"
-"\n"
-"Please retry with proper credentials or cancel.\n"
-"\n"
-"You may also need to check the PostgreSQL client\n"
-"authentication configuration in pg_hba.conf. For\n"
-"details see:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-msgstr ""
-"Nie można połączyć się z bazą danych\n"
-"\n"
-"%s\n"
-"\n"
-"Czy baza danych na pewno jest zainstalowana lokalnie?\n"
-"\n"
-"Proszę spróbować ponownie używając prawidłowego loginu lub anulować.\n"
-"\n"
-"Być może trzeba sprawdzić konfigurację uwierzytelniania \n"
-"klienta bazy danych PostgreSQL zawartą w pliku pg_hba.conf.\n"
-"Zobacz szczegóły na\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Please retry with proper credentials or cancel.\n"
-"\n"
-"You may also need to check the PostgreSQL client\n"
-"authentication configuration in pg_hba.conf. For\n"
-"details see:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-msgstr ""
-"Nie można połączyć się z bazą danych\n"
-"\n"
-"%s\n"
-"\n"
-"Proszę spróbować ponownie używając prawidłowego loginu lub anulować.\n"
-"\n"
-"Być może trzeba sprawdzić konfigurację uwierzytelniania \n"
-"klienta bazy danych PostgreSQL zawartą w pliku pg_hba.conf.\n"
-"Zobacz szczegóły na\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-
-msgid "Connecting to backend"
-msgstr "Trwa łączenie z bazą"
-
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Please retry another backend / user / password combination !\n"
-msgstr ""
-"Nie można połączyć się z bazą danych.\n"
-"\n"
-"%s\n"
-"\n"
-"Proszę użyć innej kombinacji baza / użytkownik / hasło !\n"
-
-msgid "programmer forgot to specify error message"
-msgstr "programista zapomniał sprecyzować błąd"
-
-msgid ""
-"\n"
-"\n"
-"Please consult the error log for all the gory details !"
-msgstr ""
-"\n"
-"\n"
-"Proszę skonsultować log błędu by zobaczyć szczegóły"
-
-msgid "generic error message"
-msgstr "generyczna, ogólna wiadomość o błędzie"
-
-msgid "programmer forgot to specify info message"
-msgstr "programista zapomniał sprecyzować błąd"
-
-msgid "generic info message"
-msgstr "ogólna informacja"
-
-msgid "programmer forgot to specify warning"
-msgstr "programista zapomniał sprecyzować treść ostrzeżenia"
-
-msgid "generic warning message"
-msgstr "ogólne ostrzeżenie"
-
 msgid "no hook specified, please report bug"
 msgstr ""
 
@@ -2368,6 +2266,33 @@ msgstr ""
 msgid "Include:"
 msgstr ""
 
+msgid "&Search"
+msgstr ""
+
+msgid "Suggest"
+msgstr ""
+
+msgid "Set"
+msgstr ""
+
+msgid "dialog_1"
+msgstr ""
+
+msgid "Search patients in Orthanc DICOM store."
+msgstr ""
+
+#, fuzzy
+msgid "Suggest a patient ID based on the active patient."
+msgstr "Nie można dodać problemu zdrowotnego. Brak aktywnego pacjenta."
+
+#, fuzzy
+msgid "Search term:"
+msgstr "Wynik bad. lab."
+
+#, fuzzy
+msgid "New patient ID:"
+msgstr "wewn. identyfikator pacjenta"
+
 msgid "Your review"
 msgstr ""
 
@@ -2673,6 +2598,101 @@ msgstr "Substancje"
 msgid "Amount"
 msgstr ""
 
+#, fuzzy
+msgid "&Connect"
+msgstr "Zawartość pomocy\tF1"
+
+msgid "&Browse"
+msgstr ""
+
+#, fuzzy
+msgid "<not connected>"
+msgstr "Dodawanie nowego epizodu"
+
+msgid "Browse all"
+msgstr ""
+
+#, fuzzy
+msgid "Export all"
+msgstr "część"
+
+msgid "Browse"
+msgstr ""
+
+msgid "Export"
+msgstr ""
+
+msgid "Upload"
+msgstr ""
+
+#, fuzzy
+msgid "Enter the PACS host address."
+msgstr "Wprowadź numer domu dla tego adresu."
+
+msgid "Enter the PACS port."
+msgstr ""
+
+msgid "Enter the PACS user."
+msgstr ""
+
+#, fuzzy
+msgid "Enter the PACS password. It will not be shown."
+msgstr "Hasło dla nowego konta w bazie danych. Wprowadzone znaki będą ukryte."
+
+#, fuzzy
+msgid "Connect to PACS."
+msgstr "Połącz z GNUmed-em"
+
+msgid "Browse PACS at top level."
+msgstr ""
+
+msgid "Modify some of Orthanc content (such as patient IDs)."
+msgstr ""
+
+#, fuzzy
+msgid "Browse overview of studies for this patient."
+msgstr "Wprowadź opis tego zewnętrznego identyfikatora."
+
+#, fuzzy
+msgid "Copy all studies into export area."
+msgstr "Dodawanie nowego epizodu"
+
+#, fuzzy
+msgid "Browse topmost selected study."
+msgstr "Działaj na elementach wybranych z powyższej listy."
+
+#, fuzzy
+msgid "Copy selected studies into export area."
+msgstr "Dodawanie nowego epizodu"
+
+#, fuzzy
+msgid "Save selected studies to disk."
+msgstr "Brak danych opisowych dla wybranych epizodów."
+
+msgid ""
+"Upload DICOM files from a directory, recursively, into the Orthanc PACS\n"
+"\n"
+"The currently active patient does not matter. Orthanc will associate "
+"uploaded files with the patient found within the DICOM metadata. It will "
+"create new patients as needed."
+msgstr ""
+
+msgid "Host:"
+msgstr ""
+
+msgid "Port:"
+msgstr ""
+
+msgid "User:"
+msgstr ""
+
+msgid "Password"
+msgstr ""
+
+#, fuzzy
+msgid "Selected studies:"
+msgstr "Wybierz zdarzenie"
+
 msgid "Fake brand"
 msgstr ""
 
@@ -3016,9 +3036,6 @@ msgstr "generyczna, ogólna wiadomość o błędzie"
 msgid "&Load"
 msgstr ""
 
-msgid "Export"
-msgstr ""
-
 msgid "A long, descriptive name for this form template."
 msgstr "Długa,opisowa nazwa tego szablonu."
 
@@ -3115,15 +3132,13 @@ msgstr ""
 msgid "Document Properties"
 msgstr ""
 
-msgid "Show part"
-msgstr ""
+#, fuzzy
+msgid "Show"
+msgstr "Pokazuj godzinę"
 
 msgid "Remove part"
 msgstr ""
 
-msgid "Parts"
-msgstr ""
-
 msgid "Discard"
 msgstr ""
 
@@ -3151,6 +3166,10 @@ msgstr ""
 msgid "Required: The primary episode this document is to be listed under."
 msgstr ""
 
+#, fuzzy
+msgid "Optional: The organization (unit) this document originated from."
+msgstr "Wybierz epizod, do którego chcesz przenieść opis."
+
 msgid ""
 "Optional: A short comment identifying the document. Good comments give an "
 "idea of the content and source of the document."
@@ -3181,6 +3200,9 @@ msgstr ""
 "Czy ten dokument opisuje wyniki istotne klinicznie. Zauważ, że zarówno "
 "prawidłowe jak i nieprawidłowe wyniki mogą być klinicznie istotne."
 
+msgid "Optional: A free-text document description."
+msgstr ""
+
 msgid "This field lists the parts belonging to the current document."
 msgstr ""
 
@@ -3192,9 +3214,6 @@ msgid ""
 "deletion from disk."
 msgstr ""
 
-msgid "Optional: A free-text document description."
-msgstr ""
-
 msgid "Save finished document."
 msgstr ""
 
@@ -3212,6 +3231,10 @@ msgstr "Dokumenty:"
 msgid "Associate to episode:"
 msgstr "Powiąż z epizodem:"
 
+#, fuzzy
+msgid "Document source:"
+msgstr "Dokumenty:"
+
 msgid "Comment / Identification:"
 msgstr ""
 
@@ -3400,7 +3423,7 @@ msgstr ""
 msgid "Messages:"
 msgstr ""
 
-msgid "Only:"
+msgid "Limit to:"
 msgstr ""
 
 msgid "&Myself … or:"
@@ -3516,10 +3539,10 @@ msgstr ""
 msgid "Purpose"
 msgstr "Episod ..."
 
-msgid "Details"
+msgid "Please supply your email address here !"
 msgstr ""
 
-msgid "<Please supply your email address here !>"
+msgid "Details"
 msgstr ""
 
 msgid "Keep running"
@@ -3543,9 +3566,11 @@ msgid ""
 msgstr ""
 
 msgid ""
-"Please enter your email address so we can provide feedback directly to you. "
-"Otherwise, feedback will be given on the GNUmed mailing list (http://lists."
-"gnu.org/mailman/listinfo/gnumed-bugs)."
+"Please enter your email address so we can provide help to you directly.\n"
+"\n"
+"Otherwise, feedback can be given on the GNUmed mailing list (http://lists."
+"gnu.org/mailman/listinfo/gnumed-bugs) ONLY to which you will then have to "
+"subscribe."
 msgstr ""
 
 msgid "Find help on http://wiki.gnumed.de, too."
@@ -3677,9 +3702,6 @@ msgstr ""
 msgid "Account"
 msgstr "Konto"
 
-msgid "Password"
-msgstr ""
-
 msgid "Password, again"
 msgstr "Ponownie wprowadź hasło"
 
@@ -4196,7 +4218,7 @@ msgstr ""
 msgid "Acquire images from image source (scanner, ...)."
 msgstr ""
 
-msgid "Acquire images or text from the clipboard."
+msgid "Acquire file or text from the clipboard."
 msgstr ""
 
 #, fuzzy
@@ -4359,7 +4381,7 @@ msgid ""
 "- the result list will be artificially limited to the first 1000 rows\n"
 "- you can include a column named \"pk_patient\" to make the result rows "
 "activate the corresponding patient on double-clicking\n"
-"- by inserting $<ID_active_patient>$ you can access the patient ID of the "
+"- by inserting $<ID_ACTIVE_PATIENT>$ you can access the patient ID of the "
 "patient active at the time of running the query"
 msgstr ""
 
@@ -4529,9 +4551,6 @@ msgstr ""
 msgid "Link &new"
 msgstr ""
 
-msgid "Browse"
-msgstr ""
-
 msgid ""
 "Search for matches among existing addresses and [Link] a selection, or [Link "
 "(a) new] address."
@@ -4585,26 +4604,17 @@ msgid ""
 "left."
 msgstr ""
 
-msgid "label_1"
-msgstr ""
+msgid "Subjective"
+msgstr "Wywiad"
 
-msgid "→"
-msgstr ""
+msgid "Objective"
+msgstr "Wynik badania"
 
-msgid "←"
-msgstr ""
+msgid "Assessment"
+msgstr "Wnioski"
 
-msgid "Extra"
-msgstr ""
-
-msgid "Move selected items from left to right."
-msgstr ""
-
-msgid "Move selected items from right to left."
-msgstr ""
-
-msgid "Cancel picking items."
-msgstr ""
+msgid "Plan"
+msgstr "Zalecenia"
 
 #, fuzzy
 msgid "Episode synopsis"
@@ -4645,20 +4655,29 @@ msgid ""
 "narrative belongs to."
 msgstr ""
 
-msgid "Subjective"
-msgstr "Wywiad"
-
 msgid "Codes:"
 msgstr ""
 
-msgid "Objective"
-msgstr "Wynik badania"
+msgid "label_1"
+msgstr ""
 
-msgid "Assessment"
-msgstr "Wnioski"
+msgid "→"
+msgstr ""
 
-msgid "Plan"
-msgstr "Zalecenia"
+msgid "←"
+msgstr ""
+
+msgid "Extra"
+msgstr ""
+
+msgid "Move selected items from left to right."
+msgstr ""
+
+msgid "Move selected items from right to left."
+msgstr ""
+
+msgid "Cancel picking items."
+msgstr ""
 
 msgid "1"
 msgstr ""
@@ -4832,6 +4851,88 @@ msgstr ""
 msgid "Age range"
 msgstr ""
 
+msgid "&Nicotine"
+msgstr ""
+
+msgid "&Alcohol"
+msgstr ""
+
+msgid "&Other:"
+msgstr ""
+
+msgid "&Non-harmful use"
+msgstr ""
+
+msgid "&Harmful use"
+msgstr ""
+
+msgid "Presently &addicted"
+msgstr ""
+
+msgid "Previously &addicted"
+msgstr ""
+
+msgid "&Reconfirm as of today"
+msgstr ""
+
+#, fuzzy
+msgid "Select for documenting smoking status."
+msgstr "Dodawanie nowego epizodu"
+
+msgid "Select for documenting alcohol use status."
+msgstr ""
+
+msgid ""
+"Select for documenting use of substances other than nicotine or alcohol."
+msgstr ""
+
+#, fuzzy
+msgid "Select the abused substance."
+msgstr "Wybieranie problemu zdrowotnego"
+
+msgid ""
+"Select if the substance use is not considered harmful (say, no use or non-"
+"harmful use)."
+msgstr ""
+
+msgid "Select if substance is use considered harmful."
+msgstr ""
+
+#, fuzzy
+msgid "Select if the patient is presently addicted to this substance."
+msgstr "Tu wybierz typ adresu."
+
+#, fuzzy
+msgid "Select if the patient was previously addicted to this substance."
+msgstr "Tu wybierz typ adresu."
+
+msgid ""
+"A comment on this substance use:\n"
+"- type of product used\n"
+"- frequency\n"
+"- amount\n"
+"- when started\n"
+"- attempts to quit\n"
+"..."
+msgstr ""
+
+msgid ""
+"When did the patient quit?\n"
+"\n"
+"You can also set a target quit date here."
+msgstr ""
+
+#, fuzzy
+msgid "Check here to confirm for today."
+msgstr "Ustawienia drukowania"
+
+msgid "Quit date"
+msgstr ""
+
+#, fuzzy
+msgid "Last confirmed"
+msgstr "nazwisko"
+
 #, fuzzy
 msgid "Closed episodes"
 msgstr "nowy epizod"
@@ -5176,20 +5277,19 @@ msgstr ""
 msgid "Show:"
 msgstr ""
 
-msgid "Brand by component"
+msgid "Kidneys"
 msgstr ""
 
 msgid "Brands"
 msgstr ""
 
-msgid "Kidneys"
-msgstr ""
-
-msgid "Unbranded substance"
-msgstr ""
+#, fuzzy
+msgid "Substances"
+msgstr "Substancje"
 
-msgid "Manage"
-msgstr ""
+#, fuzzy
+msgid "&Unknown or date:"
+msgstr "nieznana reakcja"
 
 msgid "Approved of"
 msgstr ""
@@ -5204,23 +5304,20 @@ msgid "... Reason"
 msgstr ""
 
 msgid ""
-"A component of a drug brand the patient is taking.\n"
+"A drug the patient is taking.\n"
 "\n"
-"Lookup, and select, a single- (or multi-) component drug brand, by active "
-"ingredient name. All components of multi-component drugs will be displayed "
-"and automatically added to the patient's list."
-msgstr ""
-
-msgid ""
-"Manage drug brands.\n"
+"Lookup and select an intake by either of\n"
+"- a generic substance name\n"
+"- a drug brand name\n"
+"- an active ingredient of a drug\n"
 "\n"
-"Note that this will not select a component for you. What it does is to let "
-"you manage (add/edit/delete) the drug products/brands known to GNUmed from "
-"which you can select a component."
+"Note that all components of multi-component drugs will be displayed and "
+"automatically added to the patient's list."
 msgstr ""
 
-msgid "The active ingredients of this brand."
-msgstr ""
+#, fuzzy
+msgid "Details on the selected drug."
+msgstr "To wyświetla listę dostępnych typów dokumentów."
 
 msgid "Show cardiac information relevant to substance selection."
 msgstr ""
@@ -5229,8 +5326,11 @@ msgid "Show renal insufficiency information related to substance selection."
 msgstr ""
 
 msgid ""
-"The non-branded medication or non-medication substance, with optional "
-"strength."
+"Manage drug brands.\n"
+"\n"
+"Note that this will not select a component for you. What it does is to let "
+"you manage (add/edit/delete) the drug products/brands known to GNUmed from "
+"which you can select a component."
 msgstr ""
 
 msgid ""
@@ -5244,11 +5344,20 @@ msgstr ""
 msgid "The preparation or form of the substance."
 msgstr "Jednostki, w których podany jest wynik."
 
+#, fuzzy
+msgid "Check here if the start date simply isn't known."
+msgstr "Wybierz epizod, do którego chcesz przenieść opis."
+
 msgid ""
 "When was this substance started to be consumed or - if not known - the "
 "earliest it is known to have been be consumed."
 msgstr ""
 
+msgid ""
+"A coment on the certainty of the start date, such as \"+/- 3 weeks\", "
+"\"spring of 2002\", \"shortly after Easter 1996\", ...."
+msgstr ""
+
 msgid "Whether this substance is taken by advice."
 msgstr ""
 
@@ -5282,6 +5391,15 @@ msgstr ""
 msgid "Reason for discontinuation."
 msgstr ""
 
+msgid "Drug"
+msgstr "Lek"
+
+msgid "Research:"
+msgstr ""
+
+msgid "Certainty:"
+msgstr ""
+
 msgid "Schedule"
 msgstr ""
 
@@ -5445,6 +5563,34 @@ msgstr ""
 msgid "Channel"
 msgstr ""
 
+#, fuzzy
+msgid "&Last modification time"
+msgstr "nazwisko"
+
+#, fuzzy
+msgid "&Entry time"
+msgstr "Czas zakończenia "
+
+msgid "Show journal ordered by encounter."
+msgstr ""
+
+msgid "Show journal ordered by time of last modification."
+msgstr ""
+
+msgid "Show journal ordered by actual clinical time of each entry."
+msgstr ""
+
+#, fuzzy
+msgid "Edit the selected chart entry."
+msgstr "Działaj na elementach wybranych z powyższej listy."
+
+#, fuzzy
+msgid "Delete selected chart entry."
+msgstr "Usuwanie epizodu"
+
+msgid "Order by:"
+msgstr ""
+
 msgid "Chec&k"
 msgstr ""
 
@@ -6027,13 +6173,17 @@ msgstr "Zmień typy dokumentów"
 msgid "Documents:"
 msgstr "Dokumenty:"
 
-msgid "&N"
+msgid "&L"
 msgstr ""
 
-msgid "&L"
+msgid "&N"
 msgstr ""
 
 #, fuzzy
+msgid "List all encounters."
+msgstr "%s: spotkanie (%s)"
+
+#, fuzzy
 msgid "The encounter."
 msgstr "%s: spotkanie (%s)"
 
@@ -6041,10 +6191,6 @@ msgstr "%s: spotkanie (%s)"
 msgid "Start a new encounter for the active patient."
 msgstr "Nie można dodać problemu zdrowotnego. Brak aktywnego pacjenta."
 
-#, fuzzy
-msgid "List all encounters."
-msgstr "%s: spotkanie (%s)"
-
 msgid "Clinically relevant"
 msgstr "Istotny klinicznie"
 
@@ -6301,10 +6447,12 @@ msgstr ""
 msgid "Manage dynamic hints."
 msgstr "Usuwanie epizodu"
 
+#, fuzzy
 msgid ""
 "Rationale for\n"
-"suppression"
-msgstr ""
+"suppression\n"
+"for this patient"
+msgstr "Wprowadź opis tego zewnętrznego identyfikatora."
 
 msgid "Save &under"
 msgstr ""
@@ -6360,6 +6508,12 @@ msgstr "NIeistotny"
 msgid "Encounter:"
 msgstr ""
 
+msgid "Manage"
+msgstr ""
+
+msgid "&Panel:"
+msgstr ""
+
 msgid "&Pick"
 msgstr ""
 
@@ -6406,6 +6560,10 @@ msgstr ""
 "\n"
 "Aby dezaktywować tą wiadomość pozostaw treść pustą."
 
+#, fuzzy
+msgid "Show search dialog."
+msgstr "Zamknij to okno."
+
 msgid "THIS IS NOT A VERIFIED MEASUREMENT. DO NOT USE FOR ACTUAL CARE."
 msgstr ""
 
@@ -6694,6 +6852,53 @@ msgstr "*ma* alergie"
 msgid "ERROR: unknown allergy state [%s]"
 msgstr "BŁĄD: nieznany stan alergii"
 
+msgid "definite"
+msgstr ""
+
+msgid "indefinite"
+msgstr ""
+
+#, fuzzy
+msgid "Reaction:"
+msgstr "Opis"
+
+#, fuzzy
+msgid "Noted:"
+msgstr "NIeistotny"
+
+#, fuzzy
+msgid "Allergene:"
+msgstr "Alergia"
+
+#, fuzzy
+msgid "Substance:"
+msgstr "Substancje"
+
+#, fuzzy
+msgid "Code:"
+msgstr "Epizod"
+
+msgid "ATC:"
+msgstr ""
+
+msgid "Specific to:"
+msgstr ""
+
+#, fuzzy
+msgid "this substance only"
+msgstr "Dodawanie nowego epizodu"
+
+msgid "drug class"
+msgstr ""
+
+#, fuzzy
+msgid "unknown"
+msgstr "nieznana płeć"
+
+#, fuzzy
+msgid "Generics:"
+msgstr "ogólna informacja"
+
 msgid "Medication history"
 msgstr ""
 
@@ -6705,9 +6910,15 @@ msgstr "Zmień typy dokumentów"
 msgid "prescription data"
 msgstr "Opis"
 
+msgid "Consumable substance"
+msgstr ""
+
 msgid "in use"
 msgstr ""
 
+msgid "w/"
+msgstr ""
+
 msgid "long-term"
 msgstr ""
 
@@ -6727,6 +6938,35 @@ msgid "?ongoing"
 msgstr ""
 
 #, python-format
+msgid ""
+"Substance abuse entry                                              [#%s]\n"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "Substance: %s [#%s]%s\n"
+msgstr "Substancje"
+
+#, fuzzy, python-format
+msgid "Use type: %s\n"
+msgstr "Epizod"
+
+#, fuzzy, python-format
+msgid "Last checked: %s\n"
+msgstr "Ostatnio pracowano %s\n"
+
+#, python-format
+msgid " Discontinued %s\n"
+msgstr ""
+
+#, fuzzy, python-format
+msgid " Notes: %s\n"
+msgstr " Twoja wersja: \"%s\"\n"
+
+#, python-format
+msgid "Revision: #%(row_ver)s, %(mod_when)s by %(mod_by)s."
+msgstr ""
+
+#, python-format
 msgid "Substance intake entry (%s, %s)   [#%s]                     \n"
 msgstr ""
 
@@ -6742,9 +6982,6 @@ msgstr ""
 msgid "unapproved"
 msgstr ""
 
-msgid "definite"
-msgstr ""
-
 msgid "suspected"
 msgstr ""
 
@@ -6791,10 +7028,6 @@ msgid " (short-term)"
 msgstr ""
 
 #, python-format
-msgid " Discontinued %s\n"
-msgstr ""
-
-#, python-format
 msgid " Reason: %s\n"
 msgstr ""
 
@@ -6814,23 +7047,71 @@ msgstr "problem zdrowotny: %s"
 msgid " Advice: %s\n"
 msgstr ""
 
-#, python-format
-msgid "Revision: #%(row_ver)s, %(mod_when)s by %(mod_by)s."
+#, fuzzy
+msgid "medication, not abuse"
+msgstr "Często zadawane pytania"
+
+msgid "no or non-harmful use"
+msgstr ""
+
+msgid "presently harmful use"
+msgstr ""
+
+msgid "presently addicted"
+msgstr ""
+
+msgid "previously addicted"
 msgstr ""
 
 #, fuzzy, python-format
-msgid "%s: %s ago"
+msgid "%s%s: %s ago%s"
 msgstr "Wystawca"
 
 #, fuzzy, python-format
-msgid "%s: %s ago (%s)"
+msgid "%s%s: %s ago (%s)"
 msgstr ""
 "%s:%s przez %.8s\n"
 "%s"
 
-msgid "Additional notes"
+#, fuzzy, python-format
+msgid "%s%s%s (%s ago)"
 msgstr ""
-
+"%s:%s przez %.8s\n"
+"%s"
+
+#, fuzzy, python-format
+msgid "%s%s%s (%s ago, %s)"
+msgstr ""
+"%s:%s przez %.8s\n"
+"%s"
+
+#, python-format
+msgid "%s ago"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "in %s"
+msgstr "Epizod"
+
+#, fuzzy, python-format
+msgid ", until %s (%s)"
+msgstr "SQL: %s"
+
+#, python-format
+msgid " (planned for %s%s)"
+msgstr ""
+
+#, python-format
+msgid ", planned for %s%s"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "%s ago (for %s: %s %s %s)"
+msgstr " Czas trwania: %s (%s - %s)"
+
+msgid "Additional notes"
+msgstr ""
+
 msgid "Strength"
 msgstr ""
 
@@ -6840,12 +7121,35 @@ msgstr ""
 msgid "ordered by brand"
 msgstr "według marki"
 
-msgid "Drug"
-msgstr "Lek"
-
 msgid "Regimen / Advice"
 msgstr ""
 
+#, fuzzy, python-format
+msgid "Component of %s (%s)"
+msgstr "SQL: %s"
+
+#, fuzzy, python-format
+msgid "ATC (substance): %s"
+msgstr "Substancje"
+
+#, python-format
+msgid "ATC (brand): %s"
+msgstr ""
+
+msgid "this is a component of a fake brand"
+msgstr ""
+
+#, fuzzy
+msgid "Components:"
+msgstr "Zawartość pomocy\tF1"
+
+msgid "this is a fake brand"
+msgstr ""
+
+#, fuzzy
+msgid "this is a vaccine"
+msgstr "Szczepionka"
+
 msgid "units"
 msgstr ""
 
@@ -6879,52 +7183,15 @@ msgid "Expires: %s\n"
 msgstr "Epizod"
 
 #, fuzzy
-msgid "Active clinical hint"
-msgstr " %s znanych problemów\n"
-
-#, fuzzy
-msgid "Inactive clinical hint"
-msgstr "klinicznie nieistotne"
-
-#, python-format
-msgid "Source: %s\n"
-msgstr ""
-
-#, fuzzy, python-format
-msgid "Language: %s\n"
-msgstr " Twoja wersja: \"%s\"\n"
-
-#, fuzzy
-msgid "Suppressed active dynamic hint"
-msgstr "Usuwanie epizodu"
-
-#, fuzzy
-msgid "Suppressed inactive dynamic hint"
-msgstr "Usuwanie epizodu"
-
-#, fuzzy, python-format
-msgid "Suppressed by: %s\n"
-msgstr "Wystawca"
-
-#, fuzzy, python-format
-msgid "Suppressed at: %s\n"
+msgid "HL7 Source"
 msgstr "Epizod"
 
-#, fuzzy, python-format
-msgid "Hint #: %s\n"
-msgstr " Twoja wersja: \"%s\"\n"
-
-#, fuzzy, python-format
-msgid "Patient #: %s\n"
-msgstr " Twoja wersja: \"%s\"\n"
+msgid "HL7 data size"
+msgstr ""
 
 #, fuzzy, python-format
-msgid "MD5 (currently): %s\n"
-msgstr "Dokumenty: %s"
-
-#, python-format
-msgid "MD5 (at suppression): %s\n"
-msgstr ""
+msgid "%s bytes"
+msgstr "%s bajtów"
 
 msgid "HL7 Message"
 msgstr ""
@@ -6979,14 +7246,6 @@ msgstr ""
 msgid "doc: %s"
 msgstr "Epizod"
 
-#, fuzzy
-msgid "no patient photograph available"
-msgstr "brak opisu"
-
-#, python-format
-msgid "patient photograph from %s"
-msgstr ""
-
 msgid "Patient data for"
 msgstr ""
 
@@ -6996,6 +7255,10 @@ msgstr ""
 msgid "Patient data export"
 msgstr ""
 
+#, fuzzy
+msgid "no patient photograph available"
+msgstr "brak opisu"
+
 msgid "Documents"
 msgstr ""
 
@@ -7006,6 +7269,10 @@ msgstr ""
 msgid "browse documents area"
 msgstr " %s dokumentów\n"
 
+#, python-format
+msgid "patient photograph from %s"
+msgstr ""
+
 #, fuzzy
 msgid "Browse patient data"
 msgstr "wewn. identyfikator pacjenta"
@@ -7041,24 +7308,24 @@ msgstr ""
 #, python-format
 msgid ""
 "%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s %(suburb)s, "
-"%(code_state)s, %(code_country)s"
+"%(code_region)s, %(code_country)s"
 msgstr ""
 
 #, python-format
 msgid ""
 "%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s %(suburb)s, "
-"%(code_state)s, %(code_country)s"
+"%(code_region)s, %(code_country)s"
 msgstr ""
 
 #, python-format
 msgid ""
-"%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_state)s, "
-"%(code_country)s"
+"%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, "
+"%(code_region)s, %(code_country)s"
 msgstr ""
 
 #, python-format
 msgid ""
-"%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_state)s, "
+"%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_region)s, "
 "%(code_country)s"
 msgstr ""
 
@@ -7068,7 +7335,7 @@ msgid ""
 " Street: %(street)s%(notes_street)s\n"
 " Number/Unit: %(number)s%(subunit)s%(notes_subunit)s\n"
 " Location: %(zip)s %(urb)s%(suburb)s\n"
-" Region: %(l10n_state)s, %(code_state)s\n"
+" Region: %(l10n_region)s, %(code_region)s\n"
 " Country: %(l10n_country)s, %(code_country)s"
 msgstr ""
 
@@ -7078,7 +7345,7 @@ msgid ""
 " Street: %(street)s%(notes_street)s\n"
 " Number/Unit: %(number)s%(subunit)s%(notes_subunit)s\n"
 " Location: %(zip)s %(urb)s%(suburb)s\n"
-" Region: %(l10n_state)s, %(code_state)s\n"
+" Region: %(l10n_region)s, %(code_region)s\n"
 " Country: %(l10n_country)s, %(code_country)s"
 msgstr ""
 
@@ -7147,6 +7414,97 @@ msgstr "poprawiony wynik"
 msgid "missing, reported later"
 msgstr "brakujący, zgłoszony później"
 
+#, fuzzy
+msgid "Health issue"
+msgstr "Problem zdrowotny"
+
+#, fuzzy
+msgid "External care"
+msgstr "zewn. identyfikator pacjenta"
+
+msgid "Vaccination"
+msgstr "Szczepienie"
+
+#, fuzzy
+msgid "Clinical narrative"
+msgstr "Istotny klinicznie"
+
+#, fuzzy
+msgid "Test result"
+msgstr " %s Wyniki badań\n"
+
+#, fuzzy
+msgid "Substance intake"
+msgstr "Substancje"
+
+#, fuzzy
+msgid "Hospital stay"
+msgstr "Pobyty w szpitalu: %s"
+
+#, fuzzy
+msgid "Performed procedure"
+msgstr ""
+" Wykonane procedury: %s\n"
+"\n"
+
+#, fuzzy
+msgid "Family history"
+msgstr "Dodawanie nowego epizodu"
+
+#, fuzzy
+msgid "Document"
+msgstr "Dokumenty:"
+
+#, python-format
+msgid "unmapped entry type from table [%s]"
+msgstr ""
+
+#, python-format
+msgid "cannot instantiate clinical root item <%s(%s)>"
+msgstr ""
+
+msgid "True"
+msgstr ""
+
+msgid "False"
+msgstr ""
+
+#, fuzzy
+msgid "unknown smoking status"
+msgstr "Dodawanie nowego epizodu"
+
+msgid "non-smoker"
+msgstr ""
+
+msgid "current smoker"
+msgstr ""
+
+msgid "ex-smoker"
+msgstr ""
+
+msgid "tobacco addiction"
+msgstr ""
+
+msgid "no or non-harmful alcohol use"
+msgstr ""
+
+msgid "harmful alcohol use"
+msgstr ""
+
+#, fuzzy
+msgid "unknown alcohol use"
+msgstr "Brak informacji o alergiach"
+
+msgid "no or non-harmful drug use"
+msgstr ""
+
+msgid "harmful drug use"
+msgstr ""
+
+#, fuzzy
+msgid "unknown drug use"
+msgstr "Brak informacji o alergiach"
+
 msgid "original entry"
 msgstr "pierwotny wpis"
 
@@ -7250,14 +7608,6 @@ msgstr "Zawody"
 msgid "Vaccinations"
 msgstr "Szczepienia"
 
-#, python-format
-msgid "%s ago"
-msgstr ""
-
-#, fuzzy
-msgid "External care"
-msgstr "zewn. identyfikator pacjenta"
-
 #, fuzzy
 msgid "Allergies/Intolerances"
 msgstr "alergie/nietolerancje"
@@ -7346,87 +7696,139 @@ msgid ""
 "The account was deactivated instead."
 msgstr ""
 
-#, python-format
-msgid "Device(%s):"
-msgstr "Urządzenie(%s)"
-
-msgid "Battery:"
-msgstr "Akumulator:"
-
-msgid "Implanted:"
-msgstr "Implantowany"
-
-msgid "last check:"
-msgstr "ostatnio sprawdzany:"
-
-msgid "Sensing:"
-msgstr "Czułość"
+msgid "SOAP_char_S=S"
+msgstr ""
 
-msgid "Threshold"
-msgstr "Próg"
+msgid "SOAP_char_O=O"
+msgstr ""
 
-msgid "Impedance:"
-msgstr "Oporność"
+msgid "SOAP_char_A=A"
+msgstr ""
 
-#, fuzzy, python-format
-msgid "Praxis branch                   #%s\n"
-msgstr "Pacjent: %s (%s), nr %s\n"
+msgid "SOAP_char_P=P"
+msgstr ""
 
-msgid "Privacy notice"
+msgid "SOAP_char_U=U"
 msgstr ""
 
-#, python-format
-msgid ""
-"%s: Your chart has been accessed by %s (without user interaction, probably "
-"by a script)."
+msgid "SOAP_string_Subjective=Subjective"
 msgstr ""
 
-#, python-format
-msgid "%s: Staff member %s has been notified of your chart access."
+msgid "SOAP_string_Objective=Objective"
 msgstr ""
 
-msgid "soap_S"
-msgstr "soap_S"
+msgid "SOAP_string_Assessment=Assessment"
+msgstr ""
 
-msgid "soap_O"
-msgstr "soap_O"
+msgid "SOAP_string_Plan=Plan"
+msgstr ""
 
-msgid "soap_A"
-msgstr "soap_A"
+msgid "SOAP_string_Unspecified=Unspecified"
+msgstr ""
 
-msgid "soap_P"
-msgstr "soap_P"
+msgid "SOAP_string_Administrative=Administrative"
+msgstr ""
 
 #, fuzzy
-msgid "soap_U"
-msgstr "soap_S"
-
-msgid "soap_Subjective"
-msgstr "soap_Subiektywny"
+msgid "Active clinical hint"
+msgstr " %s znanych problemów\n"
 
-msgid "soap_Objective"
-msgstr "soap_Objektywny"
+#, fuzzy
+msgid "Inactive clinical hint"
+msgstr "klinicznie nieistotne"
 
-msgid "soap_Assessment"
-msgstr "soap_Oszacowanie"
+#, python-format
+msgid "Source: %s\n"
+msgstr ""
 
-msgid "soap_Plan"
-msgstr "soap_Plan"
+#, fuzzy, python-format
+msgid "Language: %s\n"
+msgstr " Twoja wersja: \"%s\"\n"
 
 #, fuzzy
-msgid "soap_Unspecified"
-msgstr "soap_Objektywny"
+msgid "Suppressed active dynamic hint"
+msgstr "Usuwanie epizodu"
 
-msgid "soap_Administrative"
-msgstr "soap_Administracyjny"
+#, fuzzy
+msgid "Suppressed inactive dynamic hint"
+msgstr "Usuwanie epizodu"
 
 #, fuzzy, python-format
-msgid ""
-"%s: %s by %.8s (v%s)\n"
-"%s"
-msgstr ""
-"%s:%s przez %.8s\n"
-"%s"
+msgid "Suppressed by: %s\n"
+msgstr "Wystawca"
+
+#, fuzzy, python-format
+msgid "Suppressed at: %s\n"
+msgstr "Epizod"
+
+#, fuzzy, python-format
+msgid "Hint #: %s\n"
+msgstr " Twoja wersja: \"%s\"\n"
+
+#, fuzzy, python-format
+msgid "Patient #: %s\n"
+msgstr " Twoja wersja: \"%s\"\n"
+
+#, fuzzy, python-format
+msgid "MD5 (currently): %s\n"
+msgstr "Dokumenty: %s"
+
+#, python-format
+msgid "MD5 (at suppression): %s\n"
+msgstr ""
+
+#, python-format
+msgid "Device(%s):"
+msgstr "Urządzenie(%s)"
+
+msgid "Battery:"
+msgstr "Akumulator:"
+
+msgid "Implanted:"
+msgstr "Implantowany"
+
+msgid "last check:"
+msgstr "ostatnio sprawdzany:"
+
+msgid "Sensing:"
+msgstr "Czułość"
+
+msgid "Threshold"
+msgstr "Próg"
+
+msgid "Impedance:"
+msgstr "Oporność"
+
+#, fuzzy, python-format
+msgid "Praxis branch                   #%s\n"
+msgstr "Pacjent: %s (%s), nr %s\n"
+
+#, python-format
+msgid ""
+"FN:%(l10n_unit_category)s %(branch)s of %(l10n_organization_category)s "
+"%(praxis)s"
+msgstr ""
+
+msgid "Privacy notice"
+msgstr ""
+
+#, python-format
+msgid ""
+"%s: Your chart has been accessed by %s (without user interaction, probably "
+"by a script)."
+msgstr ""
+
+#, python-format
+msgid "%s: Staff member %s has been notified of your chart access."
+msgstr ""
+
+#, fuzzy, python-format
+msgid ""
+"%s: %s by %.8s (v%s)\n"
+"%s"
+msgstr ""
+"%s:%s przez %.8s\n"
+"%s"
 
 #, fuzzy, python-format
 msgid "External care               #%s"
@@ -7486,9 +7888,17 @@ msgid "%(last)s,%(title)s %(first)s%(nick)s (%(sex)s)"
 msgstr ""
 
 #, python-format
+msgid "%(last)s,%(title)s %(first)s (%(sex)s)"
+msgstr ""
+
+#, python-format
 msgid "%(last)s,%(title)s %(first)s%(nick)s"
 msgstr ""
 
+#, python-format
+msgid "%(last)s,%(title)s %(first)s"
+msgstr ""
+
 msgid "Cannot merge active patient into another patient."
 msgstr "Nie mogę połączyć aktywnego pacjenta z innym pacjentem"
 
@@ -7498,9 +7908,6 @@ msgstr ""
 msgid "merged"
 msgstr ""
 
-msgid "preferred name/call name/..."
-msgstr ""
-
 msgid "invalid age: DOB in the future"
 msgstr ""
 
@@ -7513,10 +7920,6 @@ msgstr "Pan"
 msgid "Mrs"
 msgstr "Pani"
 
-#, fuzzy
-msgid "unknown"
-msgstr "nieznana płeć"
-
 msgid "empty status"
 msgstr ""
 
@@ -7856,7 +8259,7 @@ msgstr ""
 "%s"
 
 #, fuzzy, python-format
-msgid " Filename: %s\n"
+msgid " Filename: %s%s\n"
 msgstr "Nazwa pliku"
 
 #, fuzzy
@@ -7871,19 +8274,26 @@ msgstr "część"
 msgid "%s parts"
 msgstr "część"
 
+#, fuzzy, python-format
+msgid "%s of %s"
+msgstr " Twoja wersja: \"%s\"\n"
+
 #, python-format
 msgid ""
 "%s (%s)   #%s\n"
-"\n"
 " Created: %s\n"
 " Episode: %s\n"
-"%s%s%s"
+"%s%s%s%s"
 msgstr ""
 
 #, python-format
 msgid " External reference: %s\n"
 msgstr ""
 
+#, fuzzy, python-format
+msgid " Organization: %%s @ %s\n"
+msgstr " Twoja wersja: \"%s\"\n"
+
 msgid "Cannot run [arriba] !"
 msgstr "Nie można uruchomić [arriba]!"
 
@@ -8241,25 +8651,9 @@ msgid "External care:"
 msgstr "zewn. identyfikator pacjenta"
 
 #, fuzzy, python-format
-msgid ""
-"health issue: %s%s%s\n"
-"\n"
+msgid "Health issue: %s%s%s"
 msgstr "problem zdrowotny: %s"
 
-msgid ""
-"\n"
-"current values:\n"
-msgstr ""
-
-msgid "no previous versions of this record"
-msgstr ""
-
-msgid ""
-"\n"
-"all values with <audit_action>, <audit_when>, <audit_by> fields (current "
-"value first):\n"
-msgstr ""
-
 msgid "Unattributed episodes"
 msgstr "Niesklasyfikowane epizody"
 
@@ -8282,10 +8676,6 @@ msgstr " Czas trwania: %s (%s - %s)"
 msgid "finished"
 msgstr "zakończono"
 
-#, fuzzy
-msgid "Health issue"
-msgstr "Problem zdrowotny"
-
 msgid "none associated"
 msgstr ""
 
@@ -8322,10 +8712,8 @@ msgid "Measurements and Results:"
 msgstr "Wyniki:"
 
 #, fuzzy, python-format
-msgid ""
-"episode: %s%s%s\n"
-"\n"
-msgstr "Epizod"
+msgid "Episode: %s%s%s"
+msgstr "Epizody %s%s%s (%s%s) [#%s]\n"
 
 #, python-format
 msgid "  your time: %s - %s  (@%s = %s%s)\n"
@@ -8353,9 +8741,7 @@ msgid "%s other episodes touched upon during this encounter:"
 msgstr ""
 
 #, fuzzy, python-format
-msgid ""
-"encounter: %s%s%s\n"
-"\n"
+msgid "Encounter: %s%s%s"
 msgstr "Konsultacje: %s (%s - %s):"
 
 msgid " (ongoing)"
@@ -8379,10 +8765,6 @@ msgstr ""
 msgid "Procedures"
 msgstr ""
 
-#, fuzzy
-msgid "Substances"
-msgstr "Substancje"
-
 msgid "Life events"
 msgstr ""
 
@@ -8406,9 +8788,6 @@ msgstr ""
 msgid "Cannot display timeline."
 msgstr "Utworzenie nowego problemu zdrowotnego jest niedozwolone."
 
-msgid "Vaccination"
-msgstr "Szczepienie"
-
 msgid "Lab result"
 msgstr "Wynik bad. lab."
 
@@ -8482,9 +8861,6 @@ msgstr ""
 msgid "Exported: %s\n"
 msgstr ""
 
-msgid "emr-journal"
-msgstr ""
-
 msgid "Chronological EMR Journal\n"
 msgstr ""
 
@@ -8793,20 +9169,9 @@ msgstr ""
 msgid "Select one or more codes that apply."
 msgstr ""
 
-#, fuzzy
-msgid "Cannot move progress notes. No active patient."
-msgstr "Nie można dodać problemu zdrowotnego. Brak aktywnego pacjenta."
-
-msgid "Moving progress notes between encounters ..."
+msgid "Select the narrative you are interested in ..."
 msgstr ""
 
-#, fuzzy
-msgid ""
-"\n"
-" Select the progress notes to move from the list !\n"
-"\n"
-msgstr "Wybierz epizod, do którego chcesz przenieść opis."
-
 msgid "when"
 msgstr ""
 
@@ -8816,108 +9181,249 @@ msgstr ""
 msgid "entry"
 msgstr ""
 
-#, fuzzy
-msgid "Cannot edit progress notes. No active patient."
-msgstr "Nie można dodać problemu zdrowotnego. Brak aktywnego pacjenta."
-
-#, fuzzy
-msgid "Deleting progress note"
-msgstr "Usuwanie epizodu"
+msgid "There is no narrative for this episode in this encounter."
+msgstr ""
 
-msgid ""
-"Are you positively sure you want to delete this\n"
-"progress note from the medical record ?\n"
-"\n"
-"Note that even if you chose to delete the entry it will\n"
-"still be (invisibly) kept in the audit trail to protect\n"
-"you from litigation because physical deletion is known\n"
-"to be unlawful in some jurisdictions.\n"
+msgid "Must select episode to move narrative to first."
 msgstr ""
 
-msgid "Yes, delete the progress note."
+msgid "Last"
 msgstr ""
 
 #, fuzzy
-msgid "No, do NOT delete the progress note."
-msgstr "Anuluj i NIE USUWAJ epizodu"
+msgid "In health issue"
+msgstr "Nieaktywny problem zdrowotny"
 
-msgid "Editing progress note"
+msgid "Most recent notes on selected problem"
 msgstr ""
 
-msgid "This is the original progress note:"
+#, python-format
+msgid "%s (active+potential) problems"
 msgstr ""
 
-msgid "Managing progress notes"
+#, fuzzy, python-format
+msgid "%s active problems"
+msgstr " %s znanych problemów\n"
+
+msgid "Current encounter:"
+msgstr ""
+
+msgid "Cumulative summary"
 msgstr ""
 
+#, fuzzy, python-format
+msgid "Most recent info on %s%s%s"
+msgstr " Ostatnio: %s - %s"
+
 #, python-format
 msgid ""
+"Cannot open progress note editor for\n"
 "\n"
-" This list shows the progress notes by %s.\n"
+"[%s].\n"
 "\n"
 msgstr ""
 
-msgid "Enter (regex) term to search for across all EMRs:"
+msgid "opening progress note editor"
 msgstr ""
 
-msgid "Text search across all EMRs"
+msgid "Cannot save all editors. Some were kept open."
 msgstr ""
 
-#, python-format
+#, fuzzy
+msgid "new problem"
+msgstr " %s znanych problemów\n"
+
 msgid ""
-"Nothing found for search term:\n"
-" \"%s\""
+"Are you sure you really want to\n"
+"discard this progress note ?\n"
 msgstr ""
 
-#, fuzzy
-msgid "Search results"
-msgstr "Wynik bad. lab."
+msgid "Discarding progress note"
+msgstr ""
 
-#, fuzzy, python-format
-msgid "Search results for [%s]"
-msgstr "Wynik bad. lab."
+msgid "There are unsaved progress notes !\n"
+msgstr ""
 
-msgid "Match"
+msgid "Unsaved progress notes"
 msgstr ""
 
 #, fuzzy
-msgid "Match location"
-msgstr "Szczepienie"
-
-msgid "Cannot search EMR. No active patient."
-msgstr ""
+msgid "Problem list"
+msgstr "Problem"
 
-msgid "Enter search term:"
+msgid "Saving SOAP note"
 msgstr ""
 
-msgid "Text search of entire EMR of active patient"
+#, fuzzy
+msgid "Do you want to save the SOAP note ?"
 msgstr ""
+"Czy jesteś pewny, że chcesz usunąć ten epizod?\n"
+" \"%s\"\n"
 
 #, python-format
-msgid ""
-"Search term was: \"%s\"\n"
-"\n"
-"Search results:\n"
-"\n"
-"%s\n"
+msgid "&Filter by problem %s%s%s"
 msgstr ""
 
-msgid "Cannot export EMR for Medistar. No active patient."
-msgstr ""
+#, fuzzy
+msgid "Cannot save SimpleNotes SOAP note."
+msgstr "Nie można rozpocząć epizodu [%s]."
 
-msgid "text files"
+#, fuzzy, python-format
+msgid "Progress note: %s%s"
+msgstr "Usuwanie epizodu"
+
+#, fuzzy
+msgid "Please enter a name for the new problem:"
+msgstr "Wprować opisową nazwę dla nowego epizodu:"
+
+#, fuzzy
+msgid "Adding a problem"
+msgstr "Dodawanie nowego epizodu"
+
+#, fuzzy
+msgid "Cannot delete problem. There is still clinical data recorded for it."
 msgstr ""
+"Nie można usunąć epizodu. Nadal są w nim zarejestrowane dane kliniczne."
 
-msgid "all files"
+#, python-format
+msgid "GNUmed: configuring [%s] (%s plugins)"
 msgstr ""
 
-msgid "Save EMR extract for MEDISTAR import as..."
+msgid "loading list of plugins                               "
 msgstr ""
 
-msgid "Error exporting progress notes for MEDISTAR import."
+msgid "failed"
 msgstr ""
 
-msgid "MEDISTAR progress notes export"
+msgid "success"
+msgstr ""
+
+#, python-format
+msgid ""
+"previous: %s (%s)\n"
+"current (%s/%s): %s"
+msgstr ""
+
+#, python-format
+msgid "Cannot switch to [%s]: no patient selected"
+msgstr ""
+
+#, fuzzy
+msgid "Cannot move progress notes. No active patient."
+msgstr "Nie można dodać problemu zdrowotnego. Brak aktywnego pacjenta."
+
+msgid "Moving progress notes between encounters ..."
+msgstr ""
+
+#, fuzzy
+msgid ""
+"\n"
+" Select the progress notes to move from the list !\n"
+"\n"
+msgstr "Wybierz epizod, do którego chcesz przenieść opis."
+
+#, fuzzy
+msgid "Cannot edit progress notes. No active patient."
+msgstr "Nie można dodać problemu zdrowotnego. Brak aktywnego pacjenta."
+
+#, fuzzy
+msgid "Deleting progress note"
+msgstr "Usuwanie epizodu"
+
+msgid ""
+"Are you positively sure you want to delete this\n"
+"progress note from the medical record ?\n"
+"\n"
+"Note that even if you chose to delete the entry it will\n"
+"still be (invisibly) kept in the audit trail to protect\n"
+"you from litigation because physical deletion is known\n"
+"to be unlawful in some jurisdictions.\n"
+msgstr ""
+
+msgid "Yes, delete the progress note."
+msgstr ""
+
+#, fuzzy
+msgid "No, do NOT delete the progress note."
+msgstr "Anuluj i NIE USUWAJ epizodu"
+
+msgid "Editing progress note"
+msgstr ""
+
+msgid "This is the original progress note:"
+msgstr ""
+
+msgid "Managing progress notes"
+msgstr ""
+
+#, python-format
+msgid ""
+"\n"
+" This list shows the progress notes by %s.\n"
+"\n"
+msgstr ""
+
+msgid "Enter (regex) term to search for across all EMRs:"
+msgstr ""
+
+msgid "Text search across all EMRs"
+msgstr ""
+
+#, python-format
+msgid ""
+"Nothing found for search term:\n"
+" \"%s\""
+msgstr ""
+
+#, fuzzy
+msgid "Search results"
+msgstr "Wynik bad. lab."
+
+#, fuzzy, python-format
+msgid "Search results for [%s]"
+msgstr "Wynik bad. lab."
+
+msgid "Match"
+msgstr ""
+
+#, fuzzy
+msgid "Match location"
+msgstr "Szczepienie"
+
+msgid "Cannot search EMR. No active patient."
+msgstr ""
+
+msgid "Enter search term:"
+msgstr ""
+
+msgid "Text search of entire EMR of active patient"
+msgstr ""
+
+#, python-format
+msgid ""
+"Search term was: \"%s\"\n"
+"\n"
+"Search results:\n"
+"\n"
+"%s\n"
+msgstr ""
+
+msgid "Cannot export EMR for Medistar. No active patient."
+msgstr ""
+
+msgid "text files"
+msgstr ""
+
+msgid "all files"
+msgstr ""
+
+msgid "Save EMR extract for MEDISTAR import as..."
+msgstr ""
+
+msgid "Error exporting progress notes for MEDISTAR import."
+msgstr ""
+
+msgid "MEDISTAR progress notes export"
 msgstr ""
 
 #, python-format
@@ -9030,829 +9536,642 @@ msgid ""
 " Now, mark the entries you want to include in your report.\n"
 msgstr ""
 
-msgid "Select the narrative you are interested in ..."
-msgstr ""
-
-msgid "There is no narrative for this episode in this encounter."
+msgid "Pick a date ..."
 msgstr ""
 
-msgid "Must select episode to move narrative to first."
+msgid "<ALT-C/K>: pick from (c/k)alendar"
 msgstr ""
 
-msgid "Last"
+msgid "Cannot interpret input as timestamp."
 msgstr ""
 
-#, fuzzy
-msgid "In health issue"
-msgstr "Nieaktywny problem zdrowotny"
-
-msgid "Most recent notes on selected problem"
+msgid "No vaccines were chosen"
 msgstr ""
 
 #, python-format
-msgid "%s (active+potential) problems"
+msgid "Combination of indications , %s , not found in any vaccine"
 msgstr ""
 
-#, fuzzy, python-format
-msgid "%s active problems"
-msgstr " %s znanych problemów\n"
-
-msgid "Current encounter:"
+msgid "Sequence"
 msgstr ""
 
-msgid "Cumulative summary"
+msgid "Batch"
 msgstr ""
 
-#, fuzzy, python-format
-msgid "Most recent info on %s%s%s"
-msgstr " Ostatnio: %s - %s"
-
-#, python-format
-msgid ""
-"Cannot open progress note editor for\n"
-"\n"
-"[%s].\n"
-"\n"
+msgid "Vaccinator"
 msgstr ""
 
-msgid "opening progress note editor"
+msgid ""
+"Vaccinations by Recommender (X = patient on regime, O = patient not on "
+"regime) "
 msgstr ""
 
-msgid "Cannot save all editors. Some were kept open."
+msgid "enrolled regime vaccinations not yet given"
 msgstr ""
 
-#, fuzzy
-msgid "new problem"
-msgstr " %s znanych problemów\n"
-
-msgid ""
-"Are you sure you really want to\n"
-"discard this progress note ?\n"
+msgid "Proceed with "
 msgstr ""
 
-msgid "Discarding progress note"
+#, python-format
+msgid "Failed to enrol patient in %s"
 msgstr ""
 
-msgid "There are unsaved progress notes !\n"
+#, python-format
+msgid "Failed to  delist patient from %s"
 msgstr ""
 
-msgid "Unsaved progress notes"
+msgid "Missing GNUmed module"
 msgstr ""
 
 #, python-format
-msgid "Synopsis (%s)"
+msgid ""
+"GNUmed detected that parts of it are not\n"
+"properly installed. The following message\n"
+"names the missing part:\n"
+"\n"
+" \"%s\"\n"
+"\n"
+"Please make sure to get the missing\n"
+"parts installed. Otherwise some of the\n"
+"functionality will not be accessible."
 msgstr ""
 
-#, fuzzy
+#, fuzzy, python-format
 msgid ""
-"Enter a short working name for this new problem\n"
-"(which will become a new, unassociated episode):\n"
-msgstr "Wprować opisową nazwę dla nowego epizodu:"
+"\n"
+" Source: %s"
+msgstr "Epizod"
 
 #, fuzzy, python-format
 msgid ""
-"Enter a short working name for this new\n"
-"episode under the existing health issue\n"
 "\n"
-"\"%s\":\n"
-msgstr "Wprować opisową nazwę dla nowego epizodu:"
-
-#, fuzzy
-msgid "Creating problem (episode) to save notelet under ..."
-msgstr "Musisz wybrać epizod, w ramach którego ten dokument ma być zapisany."
+" Code: %s"
+msgstr "Epizod"
 
-#, fuzzy
-msgid "Cannot save a new problem without a name."
-msgstr "NIe można zapisać epizodu bez nazwy."
+#, python-format
+msgid ""
+"\n"
+" Details (first 250 characters):\n"
+"%s\n"
+"%s\n"
+"%s"
+msgstr ""
 
-msgid "saving progress note"
+msgid "Access violation"
 msgstr ""
 
 #, python-format
 msgid ""
-"The new episode:\n"
+"You do not have access to this part of GNUmed.\n"
 "\n"
-" \"%s\"\n"
+"%s"
+msgstr ""
+
+msgid "Lost connection"
+msgstr ""
+
+msgid ""
+"Since you were last working in GNUmed,\n"
+"your database connection timed out.\n"
 "\n"
-"will remain unassociated despite the editor\n"
-"having been invoked from the health issue:\n"
+"This GNUmed session is now expired.\n"
 "\n"
-" \"%s\""
+"You will have to close this client and\n"
+"restart a new GNUmed session."
 msgstr ""
 
-msgid "You need to actually set an editor."
+msgid ""
+"Please enter a short note on what you\n"
+"were about to do in GNUmed:"
 msgstr ""
 
-#, python-format
-msgid "The command [%s] is not found."
+msgid "Sending bug report"
 msgstr ""
 
-#, python-format
 msgid ""
-"Enter the shell command with which to start\n"
-"the image editor for visual progress notes.\n"
+"Edit the list of email addresses to send the\n"
+"bug report to (separate addresses by spaces).\n"
 "\n"
-"Any \"%(img)s\" included with the arguments\n"
-"will be replaced by the file name of the\n"
-"note template."
+"Note that <gnumed-bugs at gnu.org> refers to\n"
+"the public (!) GNUmed bugs mailing list."
 msgstr ""
 
-msgid "Choose file to use as template for new visual progress note"
+#, python-format
+msgid ""
+"Your bug report will be sent to:\n"
+"\n"
+"%s\n"
+"\n"
+"Make sure you have reviewed the log file for potentially\n"
+"sensitive information before sending out the bug report.\n"
+"\n"
+"Note that emailing the report may take a while depending\n"
+"on the speed of your internet connection.\n"
 msgstr ""
 
-#, fuzzy
-msgid "Visual progress note source"
-msgstr "Usuwanie epizodu"
+msgid "Yes, send the bug report."
+msgstr ""
 
-msgid "From which source do you want to pick the image template ?"
+msgid "No, do not send the bug report."
 msgstr ""
 
-#, fuzzy
-msgid "Database"
-msgstr "Konto w bazie danych"
+msgid "include log file in bug report"
+msgstr ""
 
-#, fuzzy
-msgid "List of templates in the database."
-msgstr "Zapisz wprowadzone dane do bazy."
+msgid ""
+"The database you are connected to is marked as\n"
+"\"in-production with controlled access\".\n"
+"\n"
+"You indicated that you want to include the log\n"
+"file in your bug report. While this is often\n"
+"useful for debugging the log file might contain\n"
+"bits of patient data which must not be sent out\n"
+"without de-identification.\n"
+"\n"
+"Please confirm that you want to include the log !"
+msgstr ""
 
-msgid "Files in the filesystem."
+msgid "<not supplied>"
 msgstr ""
 
-msgid "Device"
+msgid "Bug report has been emailed."
 msgstr ""
 
-msgid "Image capture devices (scanners, cameras, etc)"
+msgid "Bug report COULD NOT be emailed."
 msgstr ""
 
-#, python-format
-msgid "Cannot export visual progress note template for [%s]."
+msgid "Underweight"
 msgstr ""
 
-msgid "Cannot export visual progress note to file."
+msgid "63< Normal >79"
 msgstr ""
 
-msgid "Editor for visual progress note not configured."
+msgid "63 - Normal - 79"
 msgstr ""
 
-#, python-format
-msgid ""
-"There was a problem with running the editor\n"
-"for visual progress notes.\n"
-"\n"
-" [%s]\n"
-"\n"
+msgid "Overweight"
 msgstr ""
 
-msgid "Editing visual progress note"
+msgid "Obese"
 msgstr ""
 
-#, python-format
-msgid ""
-"There was a problem reading the visual\n"
-"progress note from the file:\n"
-"\n"
-" [%s]\n"
-"\n"
+msgid "Current height/mass"
 msgstr ""
 
-msgid "Saving visual progress note"
+msgid "Height (cm)"
 msgstr ""
 
-msgid ""
-"You either created a visual progress note from a template\n"
-"in the database (rather than from a file on disk) or you\n"
-"edited an existing visual progress note.\n"
-"\n"
-"The template/original was not modified at all, however.\n"
-"\n"
-"Do you still want to save the unmodified image as a\n"
-"visual progress note into the EMR of the patient ?\n"
+msgid "Mass (kg)"
 msgstr ""
 
-msgid "visual progress notes"
+msgid "Adjusted Values"
 msgstr ""
 
-#, python-format
-msgid "Created: %s"
+msgid "Goal mass"
 msgstr ""
 
-#, fuzzy
-msgid "Problem list"
-msgstr "Problem"
+msgid "kg to lose"
+msgstr ""
 
-msgid "Saving SOAP note"
+msgid "BMI Calculator"
 msgstr ""
 
-#, fuzzy
-msgid "Do you want to save the SOAP note ?"
+msgid "&Reset"
 msgstr ""
-"Czy jesteś pewny, że chcesz usunąć ten epizod?\n"
-" \"%s\"\n"
 
-#, python-format
-msgid "&Filter by problem %s%s%s"
+msgid "Select a healthcare provider."
 msgstr ""
 
-#, fuzzy
-msgid "Cannot save SimpleNotes SOAP note."
-msgstr "Nie można rozpocząć epizodu [%s]."
+msgid "Public (no clinical or demographic access)"
+msgstr ""
 
-#, fuzzy, python-format
-msgid "Progress note: %s%s"
-msgstr "Usuwanie epizodu"
+msgid "Staff (demographic access only)"
+msgstr ""
 
-#, fuzzy
-msgid "Please enter a name for the new problem:"
-msgstr "Wprować opisową nazwę dla nowego epizodu:"
+msgid "staff (clerical)"
+msgstr ""
+
+msgid "full clinical access"
+msgstr ""
+
+msgid "DB account"
+msgstr ""
+
+msgid "can login"
+msgstr ""
+
+msgid "can not login"
+msgstr ""
+
+msgid "Activating GNUmed user."
+msgstr ""
+
+msgid "Deactivating GNUmed user."
+msgstr ""
 
 #, fuzzy
-msgid "Adding a problem"
+msgid "Removing GNUmed user."
 msgstr "Dodawanie nowego epizodu"
 
 #, fuzzy
-msgid "Cannot delete problem. There is still clinical data recorded for it."
-msgstr ""
-"Nie można usunąć epizodu. Nadal są w nim zarejestrowane dane kliniczne."
+msgid "Removing GNUmed user"
+msgstr "Dodawanie nowego epizodu"
 
-#, python-format
-msgid "GNUmed: configuring [%s] (%s plugins)"
+msgid "Modifying GNUmed user."
 msgstr ""
 
-msgid "loading list of plugins                               "
+msgid "Failed to save changes to GNUmed database user."
 msgstr ""
 
-msgid "failed"
+msgid "Modifying GNUmed user"
 msgstr ""
 
-msgid "success"
+#, python-format
+msgid "Failed to set role [%s] for GNUmed database user."
 msgstr ""
 
 #, python-format
 msgid ""
-"previous: %s (%s)\n"
-"current (%s/%s): %s"
+"\n"
+"  %s \"%s\" %s\n"
+"  born: %s"
 msgstr ""
 
-#, python-format
-msgid "Cannot switch to [%s]: no patient selected"
+msgid ""
+"Password entries do not match. Please type in the passwords again to rule "
+"out typos."
 msgstr ""
 
-msgid "Pick a date ..."
+msgid "Adding GNUmed user"
 msgstr ""
 
-msgid "<ALT-C/K>: pick from (c/k)alendar"
+msgid ""
+"Are you positively sure you want to create\n"
+"a user with an empty password ?\n"
+"\n"
+"Think about the record access implications !"
 msgstr ""
 
-msgid "Cannot interpret input as timestamp."
+msgid "Enlisting person as user."
 msgstr ""
 
-msgid "No vaccines were chosen"
+msgid "Encrypt"
 msgstr ""
 
-#, python-format
-msgid "Combination of indications , %s , not found in any vaccine"
+msgid "Decrypt"
 msgstr ""
 
-msgid "Sequence"
+msgid "Set pass phrase"
 msgstr ""
 
-msgid "Batch"
+msgid "This is not correctly encrypted text!"
 msgstr ""
 
-msgid "Vaccinator"
+msgid "Please enter your pass phrase:"
+msgstr ""
+
+msgid "Pass phrase expired"
 msgstr ""
 
 msgid ""
-"Vaccinations by Recommender (X = patient on regime, O = patient not on "
-"regime) "
+"\n"
+"Conditions preventable by vaccination as currently known to GNUmed.\n"
 msgstr ""
 
-msgid "enrolled regime vaccinations not yet given"
+msgid "Showing vaccination preventable conditions."
 msgstr ""
 
-msgid "Proceed with "
+msgid "ATCs: single-condition vaccines"
 msgstr ""
 
-#, python-format
-msgid "Failed to enrol patient in %s"
+msgid "ATCs: multi-condition vaccines"
 msgstr ""
 
-#, python-format
-msgid "Failed to  delist patient from %s"
+msgid "Pick the relevant indications."
 msgstr ""
 
-msgid "Missing GNUmed module"
+#, fuzzy
+msgid "Known indications"
+msgstr "nieznana reakcja"
+
+msgid "Adding new vaccine"
+msgstr ""
+
+msgid "Editing vaccine"
 msgstr ""
 
 #, python-format
 msgid ""
-"GNUmed detected that parts of it are not\n"
-"properly installed. The following message\n"
-"names the missing part:\n"
+"Cannot delete vaccine\n"
 "\n"
-" \"%s\"\n"
+" %s - %s (#%s)\n"
 "\n"
-"Please make sure to get the missing\n"
-"parts installed. Otherwise some of the\n"
-"functionality will not be accessible."
+"It is probably documented in a vaccination."
 msgstr ""
 
-#, fuzzy, python-format
-msgid ""
-"\n"
-" Source: %s"
-msgstr "Epizod"
+msgid "Deleting vaccine"
+msgstr ""
 
-#, fuzzy, python-format
-msgid ""
-"\n"
-" Code: %s"
-msgstr "Epizod"
+msgid "fake"
+msgstr ""
 
-#, python-format
 msgid ""
 "\n"
-" Details (first 250 characters):\n"
-"%s\n"
-"%s\n"
-"%s"
+"The vaccines currently known to GNUmed.\n"
 msgstr ""
 
-msgid "Access violation"
+msgid "Showing vaccines."
 msgstr ""
 
-#, python-format
-msgid ""
-"You do not have access to this part of GNUmed.\n"
-"\n"
-"%s"
+msgid "Enter or select the batch/lot number of the vaccine used."
 msgstr ""
 
-msgid "Lost connection"
+msgid "Saving vaccine"
 msgstr ""
 
+#, python-format
 msgid ""
-"Since you were last working in GNUmed,\n"
-"your database connection timed out.\n"
+"This vaccine is already in use:\n"
 "\n"
-"This GNUmed session is now expired.\n"
+" \"%s\"\n"
+" (%s)\n"
 "\n"
-"You will have to close this client and\n"
-"restart a new GNUmed session."
+"Are you absolutely positively sure that\n"
+"you really want to edit this vaccine ?\n"
+"\n"
+"This will change the vaccine name and/or target\n"
+"conditions in each patient this vaccine was\n"
+"used in to document a vaccination with.\n"
 msgstr ""
 
-msgid ""
-"Please enter a short note on what you\n"
-"were about to do in GNUmed:"
-msgstr ""
+#, fuzzy
+msgid "You must select at least one indication."
+msgstr "Musisz wybrać epizod, w ramach którego ten dokument ma być zapisany."
 
-msgid "Sending bug report"
+msgid "Pick the diseases this vaccine protects against."
 msgstr ""
 
-msgid ""
-"Edit the list of email addresses to send the\n"
-"bug report to (separate addresses by spaces).\n"
-"\n"
-"Note that <gnumed-bugs at gnu.org> refers to\n"
-"the public (!) GNUmed bugs mailing list."
-msgstr ""
+#, fuzzy
+msgid "This vaccine"
+msgstr "Szczepionka"
 
-#, python-format
-msgid ""
-"Your bug report will be sent to:\n"
-"\n"
-"%s\n"
-"\n"
-"Make sure you have reviewed the log file for potentially\n"
-"sensitive information before sending out the bug report.\n"
-"\n"
-"Note that emailing the report may take a while depending\n"
-"on the speed of your internet connection.\n"
+msgid "Adding new vaccinations"
 msgstr ""
 
-msgid "Yes, send the bug report."
+msgid "Editing vaccination"
 msgstr ""
 
-msgid "No, do not send the bug report."
-msgstr ""
+#, fuzzy
+msgid "vaccination recall"
+msgstr "Szczepienie"
 
-msgid "include log file in bug report"
-msgstr ""
+#, fuzzy, python-format
+msgid "vaccination recall (%s)"
+msgstr "Szczepienia"
 
+#, fuzzy, python-format
 msgid ""
-"The database you are connected to is marked as\n"
-"\"in-production with controlled access\".\n"
+"Existing vaccination:\n"
 "\n"
-"You indicated that you want to include the log\n"
-"file in your bug report. While this is often\n"
-"useful for debugging the log file might contain\n"
-"bits of patient data which must not be sent out\n"
-"without de-identification.\n"
+"%s"
+msgstr "Szczepienie"
+
+msgid ""
 "\n"
-"Please confirm that you want to include the log !"
+"Complete vaccination history for this patient.\n"
 msgstr ""
 
-msgid "<not supplied>"
+msgid "Showing vaccinations."
 msgstr ""
 
-msgid "Bug report has been emailed."
+msgid "Intended to protect from"
 msgstr ""
 
-msgid "Bug report COULD NOT be emailed."
-msgstr ""
+#, fuzzy
+msgid "Print vaccinations or recalls."
+msgstr "Szczepienie"
 
-msgid "Underweight"
+msgid "Recall"
 msgstr ""
 
-msgid "63< Normal >79"
+msgid "Add a recall for a vaccination"
 msgstr ""
 
-msgid "63 - Normal - 79"
+msgid "Vx schedules"
 msgstr ""
 
-msgid "Overweight"
+msgid "Open a browser showing vaccination schedules."
 msgstr ""
 
-msgid "Obese"
+msgid "prevention"
 msgstr ""
 
-msgid "Current height/mass"
-msgstr ""
+#, fuzzy
+msgid "Saving vaccination"
+msgstr "Szczepienie"
 
-msgid "Height (cm)"
+msgid "Pick the diseases this vaccination was given against."
 msgstr ""
 
-msgid "Mass (kg)"
+msgid "  IMMUNISATIONS  "
 msgstr ""
 
-msgid "Adjusted Values"
+msgid "Indications"
 msgstr ""
 
-msgid "Goal mass"
+msgid "Active Schedules"
 msgstr ""
 
-msgid "kg to lose"
+msgid "Missing Immunisations"
 msgstr ""
 
-msgid "BMI Calculator"
+msgid "  Alerts  "
 msgstr ""
 
-msgid "&Reset"
+msgid "ERROR: cannot retrieve active vaccination schedules"
 msgstr ""
 
-msgid "Select a healthcare provider."
+msgid "no active vaccination schedules"
 msgstr ""
 
-msgid "Public (no clinical or demographic access)"
+#, python-format
+msgid "%s for %s (%s shots): %s"
 msgstr ""
 
-msgid "Staff (demographic access only)"
+msgid "ERROR: cannot retrieve due/overdue vaccinations"
 msgstr ""
 
-msgid "staff (clerical)"
+#, python-format
+msgid "%.0d weeks left: shot %s for %s in %s, due %s (%s)"
 msgstr ""
 
-msgid "full clinical access"
+#, python-format
+msgid "overdue %.0dyrs %.0dwks: shot %s for %s in schedule \"%s\" (%s)"
 msgstr ""
 
-msgid "DB account"
+#, python-format
+msgid "due now: booster for %s in schedule \"%s\" (%s)"
 msgstr ""
 
-msgid "can login"
+#, python-format
+msgid "Synopsis (%s)"
 msgstr ""
 
-msgid "can not login"
-msgstr ""
+#, fuzzy
+msgid ""
+"Enter a short working name for this new problem\n"
+"(which will become a new, unassociated episode):\n"
+msgstr "Wprować opisową nazwę dla nowego epizodu:"
 
-msgid "Activating GNUmed user."
+#, fuzzy, python-format
+msgid ""
+"Enter a short working name for this new\n"
+"episode under the existing health issue\n"
+"\n"
+"\"%s\":\n"
+msgstr "Wprować opisową nazwę dla nowego epizodu:"
+
+#, fuzzy
+msgid "Creating problem (episode) to save notelet under ..."
+msgstr "Musisz wybrać epizod, w ramach którego ten dokument ma być zapisany."
+
+#, fuzzy
+msgid "Cannot save a new problem without a name."
+msgstr "NIe można zapisać epizodu bez nazwy."
+
+msgid "saving progress note"
 msgstr ""
 
-msgid "Deactivating GNUmed user."
+#, python-format
+msgid ""
+"The new episode:\n"
+"\n"
+" \"%s\"\n"
+"\n"
+"will remain unassociated despite the editor\n"
+"having been invoked from the health issue:\n"
+"\n"
+" \"%s\""
 msgstr ""
 
 #, fuzzy
-msgid "Removing GNUmed user."
-msgstr "Dodawanie nowego epizodu"
+msgid "Adding substance abuse"
+msgstr "Substancje"
 
 #, fuzzy
-msgid "Removing GNUmed user"
+msgid "Editing substance abuse"
 msgstr "Dodawanie nowego epizodu"
 
-msgid "Modifying GNUmed user."
+msgid "Substances abused by the patient:"
 msgstr ""
 
-msgid "Failed to save changes to GNUmed database user."
-msgstr ""
+#, fuzzy
+msgid "Showing abused substances."
+msgstr "wewn. identyfikator pacjenta"
 
-msgid "Modifying GNUmed user"
+msgid "Intake"
 msgstr ""
 
-#, python-format
-msgid "Failed to set role [%s] for GNUmed database user."
+msgid "nicotine"
 msgstr ""
 
-#, python-format
-msgid ""
-"\n"
-"  %s \"%s\" %s\n"
-"  born: %s"
-msgstr ""
+#, fuzzy
+msgid "unit"
+msgstr "Opis"
 
-msgid ""
-"Password entries do not match. Please type in the passwords again to rule "
-"out typos."
+#, fuzzy, python-format
+msgid "Latest: %s ago (%s %s%s%s%s)"
+msgstr " Czas trwania: %s (%s - %s)"
+
+#, fuzzy, python-format
+msgid "%s %s%s%s (%s ago, %s)"
 msgstr ""
+"%s:%s przez %.8s\n"
+"%s"
 
-msgid "Adding GNUmed user"
+#, fuzzy, python-format
+msgid "overdue %s: %s"
+msgstr "Epizod"
+
+#, fuzzy, python-format
+msgid "due in %s%s"
+msgstr "Epizod"
+
+msgid "suppr'd:"
 msgstr ""
 
+#, fuzzy
+msgid "Suppressed hints:\n"
+msgstr "Epizod"
+
+#, fuzzy
 msgid ""
-"Are you positively sure you want to create\n"
-"a user with an empty password ?\n"
-"\n"
-"Think about the record access implications !"
+"Do you really want to\n"
+"delete this inbox message ?"
 msgstr ""
+"Czy jesteś pewny, że chcesz usunąć ten epizod?\n"
+" \"%s\"\n"
 
-msgid "Enlisting person as user."
-msgstr ""
+#, fuzzy
+msgid "Deleting inbox message"
+msgstr "Dodawanie nowego epizodu"
 
-msgid "Encrypt"
+#, fuzzy
+msgid "Export area: 1 item"
+msgstr "część"
+
+#, fuzzy, python-format
+msgid "Export area: %s items"
+msgstr "część"
+
+#, python-format
+msgid "%s %s more not shown %s"
 msgstr ""
 
-msgid "Decrypt"
+#, fuzzy, python-format
+msgid "Currently %s entries in waiting list"
+msgstr "Aktualnie wybrany pacjent to:"
+
+#, python-format
+msgid "first (in GMd): %s, %s"
 msgstr ""
 
-msgid "Set pass phrase"
+#, python-format
+msgid "last: %s, %s"
 msgstr ""
 
-msgid "This is not correctly encrypted text!"
+#, python-format
+msgid "Last %s:"
 msgstr ""
 
-msgid "Please enter your pass phrase:"
+#, fuzzy
+msgid "Statistics cover period"
 msgstr ""
+"Statystyki EMR\n"
+"\n"
 
-msgid "Pass phrase expired"
+#, python-format
+msgid "EDC (!?!): %s"
 msgstr ""
 
 msgid ""
+"The Expected Date of Confinement is rather questionable.\n"
 "\n"
-"Conditions preventable by vaccination as currently known to GNUmed.\n"
+"Please check patient age, patient gender, time until/since EDC."
 msgstr ""
 
-msgid "Showing vaccination preventable conditions."
-msgstr ""
-
-msgid "ATCs: single-condition vaccines"
-msgstr ""
-
-msgid "ATCs: multi-condition vaccines"
-msgstr ""
-
-msgid "Pick the relevant indications."
-msgstr ""
-
-#, fuzzy
-msgid "Known indications"
-msgstr "nieznana reakcja"
-
-msgid "Adding new vaccine"
-msgstr ""
-
-msgid "Editing vaccine"
-msgstr ""
-
-#, python-format
-msgid ""
-"Cannot delete vaccine\n"
-"\n"
-" %s - %s (#%s)\n"
-"\n"
-"It is probably documented in a vaccination."
-msgstr ""
-
-msgid "Deleting vaccine"
-msgstr ""
-
-msgid "fake"
-msgstr ""
-
-msgid ""
-"\n"
-"The vaccines currently known to GNUmed.\n"
-msgstr ""
-
-msgid "Showing vaccines."
-msgstr ""
-
-msgid "Enter or select the batch/lot number of the vaccine used."
-msgstr ""
-
-msgid "Saving vaccine"
-msgstr ""
-
-#, python-format
-msgid ""
-"This vaccine is already in use:\n"
-"\n"
-" \"%s\"\n"
-" (%s)\n"
-"\n"
-"Are you absolutely positively sure that\n"
-"you really want to edit this vaccine ?\n"
-"\n"
-"This will change the vaccine name and/or target\n"
-"conditions in each patient this vaccine was\n"
-"used in to document a vaccination with.\n"
-msgstr ""
-
-#, fuzzy
-msgid "You must select at least one indication."
-msgstr "Musisz wybrać epizod, w ramach którego ten dokument ma być zapisany."
-
-msgid "Pick the diseases this vaccine protects against."
-msgstr ""
-
-#, fuzzy
-msgid "This vaccine"
-msgstr "Szczepionka"
-
-msgid "Adding new vaccinations"
-msgstr ""
-
-msgid "Editing vaccination"
-msgstr ""
-
-#, fuzzy
-msgid "vaccination recall"
-msgstr "Szczepienie"
-
-#, fuzzy, python-format
-msgid "vaccination recall (%s)"
-msgstr "Szczepienia"
-
-#, fuzzy, python-format
-msgid ""
-"Existing vaccination:\n"
-"\n"
-"%s"
-msgstr "Szczepienie"
-
-msgid ""
-"\n"
-"Complete vaccination history for this patient.\n"
-msgstr ""
-
-msgid "Showing vaccinations."
-msgstr ""
-
-msgid "Intended to protect from"
-msgstr ""
-
-#, fuzzy
-msgid "Print vaccinations or recalls."
-msgstr "Szczepienie"
-
-msgid "Recall"
-msgstr ""
-
-msgid "Add a recall for a vaccination"
-msgstr ""
-
-msgid "Vx schedules"
-msgstr ""
-
-msgid "Open a browser showing vaccination schedules."
-msgstr ""
-
-msgid "prevention"
-msgstr ""
-
-#, fuzzy
-msgid "Saving vaccination"
-msgstr "Szczepienie"
-
-msgid "Pick the diseases this vaccination was given against."
-msgstr ""
-
-msgid "  IMMUNISATIONS  "
-msgstr ""
-
-msgid "Indications"
-msgstr ""
-
-msgid "Active Schedules"
-msgstr ""
-
-msgid "Missing Immunisations"
-msgstr ""
-
-msgid "  Alerts  "
-msgstr ""
-
-msgid "ERROR: cannot retrieve active vaccination schedules"
-msgstr ""
-
-msgid "no active vaccination schedules"
-msgstr ""
-
-#, python-format
-msgid "%s for %s (%s shots): %s"
-msgstr ""
-
-msgid "ERROR: cannot retrieve due/overdue vaccinations"
-msgstr ""
-
-#, python-format
-msgid "%.0d weeks left: shot %s for %s in %s, due %s (%s)"
-msgstr ""
-
-#, python-format
-msgid "overdue %.0dyrs %.0dwks: shot %s for %s in schedule \"%s\" (%s)"
-msgstr ""
-
-#, python-format
-msgid "due now: booster for %s in schedule \"%s\" (%s)"
-msgstr ""
-
-#, python-format
-msgid "Latest: %s ago (%s %s %s %s%s)"
-msgstr ""
-
-#, fuzzy, python-format
-msgid "%s %s %s %s (%s ago, %s)"
-msgstr ""
-"%s:%s przez %.8s\n"
-"%s"
-
-#, fuzzy, python-format
-msgid "overdue %s: %s"
-msgstr "Epizod"
-
 #, fuzzy, python-format
-msgid "due in %s%s"
+msgid "%s Vacc: %s (latest of %s)"
 msgstr "Epizod"
 
-#, fuzzy
-msgid ""
-"Do you really want to\n"
-"delete this inbox message ?"
-msgstr ""
-"Czy jesteś pewny, że chcesz usunąć ten epizod?\n"
-" \"%s\"\n"
-
-#, fuzzy
-msgid "Deleting inbox message"
-msgstr "Dodawanie nowego epizodu"
-
-#, fuzzy
-msgid "Export area: 1 item"
-msgstr "część"
-
-#, fuzzy, python-format
-msgid "Export area: %s items"
-msgstr "część"
-
-#, python-format
-msgid "%s %s more not shown %s"
-msgstr ""
-
 #, fuzzy, python-format
-msgid "Currently %s entries in waiting list"
-msgstr "Aktualnie wybrany pacjent to:"
-
-#, python-format
-msgid "first (in GMd): %s, %s"
-msgstr ""
-
-#, python-format
-msgid "last: %s, %s"
-msgstr ""
-
-#, python-format
-msgid "Last %s:"
-msgstr ""
-
-#, fuzzy
-msgid "Statistics cover period"
-msgstr ""
-"Statystyki EMR\n"
-"\n"
-
-#, python-format
-msgid "EDC (!?!): %s"
-msgstr ""
+msgid "Hx of addiction: %s"
+msgstr "Pobyty w szpitalu: %s"
 
-msgid ""
-"The Expected Date of Confinement is rather questionable.\n"
-"\n"
-"Please check patient age, patient gender, time until/since EDC."
+msgid "active substance abuse"
 msgstr ""
 
 #, fuzzy, python-format
-msgid "%s Vacc: %s"
-msgstr "Epizod"
-
-#, fuzzy, python-format
 msgid "%s %s %s%s"
 msgstr ""
 "%s:%s przez %.8s\n"
@@ -10034,21 +10353,121 @@ msgid ""
 "You will have to add it via the Demographics plugin.\n"
 msgstr ""
 
-msgid "You must select a value from the picklist or type an exact match."
+msgid "You need to actually set an editor."
 msgstr ""
 
 #, python-format
-msgid ""
-"The content is invalid. It must match the regular expression: [%%s]. <%s>"
-msgstr ""
-
-msgid "Latin"
-msgstr ""
-
-msgid "Greek"
+msgid "The command [%s] is not found."
 msgstr ""
 
-msgid "Cyrillic"
+#, python-format
+msgid ""
+"Enter the shell command with which to start\n"
+"the image editor for visual progress notes.\n"
+"\n"
+"Any \"%(img)s\" included with the arguments\n"
+"will be replaced by the file name of the\n"
+"note template."
+msgstr ""
+
+msgid "Choose file to use as template for new visual progress note"
+msgstr ""
+
+#, fuzzy
+msgid "Visual progress note source"
+msgstr "Usuwanie epizodu"
+
+msgid "From which source do you want to pick the image template ?"
+msgstr ""
+
+#, fuzzy
+msgid "Database"
+msgstr "Konto w bazie danych"
+
+#, fuzzy
+msgid "List of templates in the database."
+msgstr "Zapisz wprowadzone dane do bazy."
+
+msgid "Files in the filesystem."
+msgstr ""
+
+msgid "Device"
+msgstr ""
+
+msgid "Image capture devices (scanners, cameras, etc)"
+msgstr ""
+
+#, python-format
+msgid "Cannot export visual progress note template for [%s]."
+msgstr ""
+
+msgid "Cannot export visual progress note to file."
+msgstr ""
+
+msgid "Editor for visual progress note not configured."
+msgstr ""
+
+#, python-format
+msgid ""
+"There was a problem with running the editor\n"
+"for visual progress notes.\n"
+"\n"
+" [%s]\n"
+"\n"
+msgstr ""
+
+msgid "Editing visual progress note"
+msgstr ""
+
+#, python-format
+msgid ""
+"There was a problem reading the visual\n"
+"progress note from the file:\n"
+"\n"
+" [%s]\n"
+"\n"
+msgstr ""
+
+msgid "Saving visual progress note"
+msgstr ""
+
+msgid ""
+"You either created a visual progress note from a template\n"
+"in the database (rather than from a file on disk) or you\n"
+"edited an existing visual progress note.\n"
+"\n"
+"The template/original was not modified at all, however.\n"
+"\n"
+"Do you still want to save the unmodified image as a\n"
+"visual progress note into the EMR of the patient ?\n"
+msgstr ""
+
+msgid "visual progress notes"
+msgstr ""
+
+#, python-format
+msgid " [part 1 of %s]"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "Created: %s%s"
+msgstr "Epizod docelowy"
+
+msgid "You must select a value from the picklist or type an exact match."
+msgstr ""
+
+#, python-format
+msgid ""
+"The content is invalid. It must match the regular expression: [%%s]. <%s>"
+msgstr ""
+
+msgid "Latin"
+msgstr ""
+
+msgid "Greek"
+msgstr ""
+
+msgid "Cyrillic"
 msgstr ""
 
 msgid "Four Es"
@@ -10116,7 +10535,8 @@ msgstr ""
 
 #, python-format
 msgid ""
-"%(street)s %(number)s, %(postcode)s %(urb)s, %(l10n_state)s, %(l10n_country)s"
+"%(street)s %(number)s, %(postcode)s %(urb)s, %(l10n_region)s, "
+"%(l10n_country)s"
 msgstr ""
 
 #, python-format
@@ -10733,7 +11153,7 @@ msgstr ""
 msgid ""
 "Cannot save address.\n"
 "\n"
-"Does the state [%s]\n"
+"Does the region [%s]\n"
 "exist in country [%s] ?"
 msgstr ""
 
@@ -11177,8 +11597,9 @@ msgstr "Epizod"
 msgid "Reminders for the current patient"
 msgstr "Nie można dodać problemu zdrowotnego. Brak aktywnego pacjenta."
 
-msgid "Sent"
-msgstr ""
+#, fuzzy
+msgid "Generated"
+msgstr "utworzony automatycznie"
 
 #, fuzzy
 msgid "Category - Type"
@@ -11226,9 +11647,6 @@ msgid ""
 "Data: %s"
 msgstr ""
 
-msgid "Inbox Message Actions:"
-msgstr ""
-
 msgid "Activate patient"
 msgstr ""
 
@@ -11951,7 +12369,7 @@ msgid ""
 msgstr ""
 
 #, python-format
-msgid "Select branch (of praxis [%s]) which you are logging in from.\n"
+msgid "Select the branch of praxis [%s] which you are logging in from.\n"
 msgstr ""
 
 msgid "Praxis branch selection ..."
@@ -12269,6 +12687,14 @@ msgstr "To wyświetla listę dostępnych typów dokumentów."
 msgid "List of addresses related to this person."
 msgstr "Przenieś dane do innego epizodu"
 
+#, fuzzy
+msgid "Map"
+msgstr "Pan"
+
+#, fuzzy
+msgid "Show selected address on map"
+msgstr "To wyświetla listę dostępnych typów dokumentów."
+
 msgid "Adding new address"
 msgstr ""
 
@@ -12462,9 +12888,91 @@ msgid "generic multi choice dialog"
 msgstr ""
 
 #, fuzzy
-msgid "Search in list"
+msgid "Deleting list items"
+msgstr "Usuwanie problemu zdrowotnego"
+
+#, python-format
+msgid ""
+"You have selected %s list items.\n"
+"\n"
+"Really delete all %s items ?"
+msgstr ""
+
+msgid ""
+"Select the items you want to work on.\n"
+"\n"
+"A discontinuous selection may depend on your holding down a platform-"
+"dependent modifier key (<CTRL>, <ALT>, etc) or key combination (eg. <CTRL-"
+"SHIFT> or <CTRL-ALT>) while clicking."
+msgstr ""
+
+#, fuzzy
+msgid "List Item Actions:"
+msgstr "Menu epizodu"
+
+msgid "Add (<INS>)"
+msgstr ""
+
+#, fuzzy
+msgid "Delete (<DEL>)"
+msgstr "Usuń"
+
+msgid "Find (<CTRL-F>)"
+msgstr ""
+
+#, python-format
+msgid "Find next [%s] (<CTRL-N>)"
+msgstr ""
+
+msgid "Row tooltip"
+msgstr ""
+
+msgid "Row data (formatted as text)"
+msgstr ""
+
+msgid "Row content (as one line)"
+msgstr ""
+
+msgid "Row content (one line per column)"
+msgstr ""
+
+#, python-format
+msgid "Column &%s: \"%s\" [#%s]"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "Column &%s: %s"
+msgstr "Dokumenty: %s"
+
+#, fuzzy
+msgid "&Copy to clipboard..."
+msgstr "Dodawanie nowego epizodu"
+
+#, fuzzy
+msgid "Append (&+) to clipboard..."
+msgstr "Aktualnie wybrany pacjent to:"
+
+#, python-format
+msgid ""
+"%s list items are selected.\n"
+"\n"
+"Really delete all %s items ?"
+msgstr ""
+
+#, fuzzy
+msgid "Enter the search term:"
 msgstr "Wynik bad. lab."
 
+msgid "List search"
+msgstr ""
+
+#, python-format
+msgid ""
+"Current search term: [[%s]]\n"
+"\n"
+"%s"
+msgstr ""
+
 msgid "Monty the Serpent && the FSF Present"
 msgstr ""
 
@@ -12621,6 +13129,9 @@ msgstr ""
 msgid "Unknown: ?"
 msgstr ""
 
+msgid "The text has been copied into the clipboard."
+msgstr ""
+
 msgid "file2clipboard"
 msgstr ""
 
@@ -12628,6 +13139,44 @@ msgstr ""
 msgid "The file [%s] has been copied into the clipboard."
 msgstr ""
 
+msgid "programmer forgot to specify error message"
+msgstr "programista zapomniał sprecyzować błąd"
+
+msgid ""
+"\n"
+"\n"
+"Please consult the error log for all the gory details !"
+msgstr ""
+"\n"
+"\n"
+"Proszę skonsultować log błędu by zobaczyć szczegóły"
+
+msgid "generic error message"
+msgstr "generyczna, ogólna wiadomość o błędzie"
+
+msgid "programmer forgot to specify info message"
+msgstr "programista zapomniał sprecyzować błąd"
+
+msgid "generic info message"
+msgstr "ogólna informacja"
+
+msgid "programmer forgot to specify warning"
+msgstr "programista zapomniał sprecyzować treść ostrzeżenia"
+
+msgid "generic warning message"
+msgstr "ogólne ostrzeżenie"
+
+#, fuzzy
+msgid "Editing EDC"
+msgstr "Dodawanie nowego epizodu"
+
+#, python-format
+msgid ""
+"Really delete the EDC documented previously ?\n"
+"\n"
+" EDC: %s"
+msgstr ""
+
 #, python-format
 msgid ""
 "Algorithm: %s\n"
@@ -12739,15 +13288,15 @@ msgstr ""
 msgid "Firstname"
 msgstr ""
 
-msgid "Nickname"
-msgstr ""
-
 msgid "DOB"
 msgstr ""
 
 msgid "last visit"
 msgstr ""
 
+msgid "Nickname / Comment"
+msgstr ""
+
 msgid "found via"
 msgstr ""
 
@@ -12928,538 +13477,288 @@ msgstr ""
 msgid "In case of emergency contact:"
 msgstr ""
 
-msgid ""
-"\n"
-"Please select the default drug data source from the list below.\n"
-"\n"
-"Note that to actually use it you need to have the database installed, too."
+msgid "The preparation (form) of the substance or brand."
 msgstr ""
 
-msgid "Drug data source"
+msgid "A substance with optional strength or a brand."
 msgstr ""
 
-msgid "Configuring default drug data source"
-msgstr ""
+#, fuzzy
+msgid "The medical aim for consuming this substance."
+msgstr "Jednostki, w których podany jest wynik."
 
-msgid "No default drug database configured."
+msgid "not tolerated:"
 msgstr ""
 
-msgid "There is no default drug database configured."
+msgid "discontinued due to allergy or intolerance"
 msgstr ""
 
-msgid "Jumping to drug database"
+msgid "Documented an allergy"
 msgstr ""
 
 #, python-format
-msgid "Cannot call IFAP via [%s]."
+msgid ""
+"An allergy was documented against the substance:\n"
+"\n"
+"  [%s]\n"
+"\n"
+"This substance was taken with the multi-component brand:\n"
+"\n"
+"  [%s (%s)]\n"
+"\n"
+"Note that ALL components of this brand were discontinued."
 msgstr ""
 
-#, python-format
-msgid "Cannot create IFAP <-> GNUmed transfer file [%s]."
+msgid "disapproved"
 msgstr ""
 
-msgid "Current medication"
+msgid "Substances consumed by the patient:"
 msgstr ""
 
-msgid ""
-"\n"
-"The ATC codes as known to GNUmed.\n"
+msgid "Showing consumable substances."
 msgstr ""
 
-msgid "Showing ATC codes."
-msgstr ""
+#, fuzzy
+msgid "Application"
+msgstr "Szczepienie"
 
-msgid "Choose an ATC import config file"
+msgid "never"
 msgstr ""
 
-msgid "config files"
+#, python-format
+msgid "%s, last confirmed %s\n"
 msgstr ""
 
-msgid "importing ATC reference data"
+#, python-format
+msgid "Comment (%s): %%s\n"
 msgstr ""
 
-msgid "Successfully imported ATC reference data."
+msgid "reaction not recorded"
 msgstr ""
 
-msgid "Importing ATC reference data failed."
-msgstr ""
+#, fuzzy
+msgid "GFR: unknown"
+msgstr "nieznana płeć"
 
-msgid "Select an ATC (Anatomical-Therapeutic-Chemical) code."
+msgid "GFR reported by path lab"
 msgstr ""
 
-msgid "Cannot delete this substance. It is in use."
+#, fuzzy
+msgid "<no components>"
+msgstr "Zawartość pomocy\tF1"
+
+msgid "Adding substance intake entry"
 msgstr ""
 
+#, python-format
 msgid ""
+"The patient is already taking\n"
 "\n"
-"These are the consumable substances registered with GNUmed.\n"
-msgstr ""
-
-msgid "Showing consumable substances."
-msgstr ""
-
-msgid "Import"
-msgstr ""
-
-msgid "Import consumable substances from a drug database."
+" %s\n"
+"\n"
+"You will want to adjust the schedule\n"
+"rather than document the intake twice."
 msgstr ""
 
-msgid "Cannot edit this substance. It is in use."
+msgid "Input incomplete/invalid for saving as substance intake."
 msgstr ""
 
-msgid "Adding new consumable substance"
+#, python-format
+msgid "Discontinued (%s) in the future (now: %s)!"
 msgstr ""
 
-msgid "Editing consumable substance"
+#, python-format
+msgid "Discontinued (%s) before started (%s) !"
 msgstr ""
 
-msgid "Cannot save consumable substance. Missing essential input."
+msgid "Cannot add duplicate of (maybe inactive) substance intake."
 msgstr ""
 
 #, python-format
-msgid "Cannot save consumable substance. %s"
+msgid ""
+"\n"
+"[%s]\n"
+"\n"
+"It may be prudent to edit (before deletion) the details\n"
+"of this substance intake entry so as to leave behind\n"
+"some indication of why it was deleted.\n"
 msgstr ""
 
-msgid "Cannot remove this component from the drug. It is in use."
+msgid "Deleting medication / substance intake"
 msgstr ""
 
-msgid ""
-"\n"
-"These are the components in the drug brands known to GNUmed.\n"
+msgid "Allow editing of substance intake entry before deletion."
 msgstr ""
 
-msgid "Showing drug brand components."
+msgid "Delete immediately without editing first."
 msgstr ""
 
-msgid "Adding new drug component"
+msgid "&Cancel"
 msgstr ""
 
-msgid "Editing drug component"
+msgid "Abort. Do not delete or edit substance intake entry."
 msgstr ""
 
-msgid "Cannot edit drug component. It is in use."
+msgid "Now delete substance intake entry ?"
 msgstr ""
 
-msgid "Cannot save drug component. Invalid or missing essential input."
+#, fuzzy
+msgid "Adding medication/non-medication substance intake"
+msgstr "Dodawanie nowego epizodu"
+
+msgid "Editing medication/non-medication substance intake"
 msgstr ""
 
-msgid "A drug component with optional strength."
+msgid "Document an allergy against this substance."
 msgstr ""
 
-msgid "The preparation (form) of the substance or brand."
+msgid "No medication list template configured."
 msgstr ""
 
-msgid "The substance with optional strength."
+msgid "There is no medication list template configured."
 msgstr ""
 
-msgid "Managing components of a drug"
+msgid "Problem loading medication list template."
 msgstr ""
 
 #, python-format
-msgid ""
-"Cannot manage the components of the branded drug product\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is currently taken by patients.\n"
+msgid "Cannot load medication list template [%s - %s]"
 msgstr ""
 
-msgid "Pick the substances which are components of this drug."
-msgstr ""
+#, fuzzy
+msgid "generated medication list document"
+msgstr "Wprowadź opis tego zewnętrznego identyfikatora."
 
-msgid "Components of drug"
-msgstr ""
+#, fuzzy
+msgid "Select the default prescription template:"
+msgstr "Wybierz problem zdrowotny, który cię interesuje ..."
 
-#, python-format
-msgid ""
-"Adjust the components of \"%s\"\n"
-"\n"
-"The drug must contain at least one component. Any given\n"
-"substance can only be included once per drug."
+msgid "No prescription template configured."
 msgstr ""
 
-msgid "Managing components of a drug ..."
+msgid "There is no prescription template configured."
 msgstr ""
 
-msgid "not in use"
+#, fuzzy
+msgid "Printing prescription"
+msgstr "Zmień typy dokumentów"
+
+msgid "Problem loading prescription template."
 msgstr ""
 
 #, python-format
-msgid "ATC: %s\n"
+msgid "Cannot load prescription template [%s - %s]"
 msgstr ""
 
-msgid "Editing medication"
-msgstr ""
+#, fuzzy
+msgid "generated prescription"
+msgstr "Zmień typy dokumentów"
 
-#, python-format
 msgid ""
-"Cannot edit the medication\n"
-"\n"
-" \"%s\" (%s)\n"
+"These brands have been prescribed but are not listed\n"
+"in the current medication list of this patient.\n"
 "\n"
-"because it is a vaccine. Please edit it\n"
-"from the vaccine management section !\n"
+"Please select those you want added to the medication list."
 msgstr ""
 
-msgid "Deleting medication"
+msgid "Newly prescribed drugs"
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot delete the medication\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is a vaccine. Please delete it\n"
-"from the vaccine management section !\n"
-msgstr ""
+#, fuzzy
+msgid "Add to medication list"
+msgstr "Aktywne leki: %s"
 
-msgid ""
-"\n"
-"These are the drug brands known to GNUmed.\n"
+#, fuzzy
+msgid "Timeframe"
+msgstr "Linia czasu"
+
+#, python-format
+msgid "%s <fake>"
 msgstr ""
 
-msgid "Showing branded drugs."
+msgid "Cannot edit more than one substance at once."
 msgstr ""
 
-msgid "Import substances and brands from a drug database."
+msgid "Cannot delete more than one substance at once."
 msgstr ""
 
-msgid "Editing drug"
+msgid "Cannot create allergy from more than one substance at once."
 msgstr ""
 
-#, python-format
 msgid ""
-"Cannot edit the branded drug product\n"
 "\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is currently taken by patients.\n"
+"Select the measurements panel to show in the medications plugin.\n"
 msgstr ""
 
-msgid "Adding new drug brand"
-msgstr ""
+#, fuzzy
+msgid "Measurements panel"
+msgstr "Wyniki:"
 
-msgid "Editing drug brand"
+msgid "Configuring medications plugin measurements panel"
 msgstr ""
 
-msgid "Manage consumable substances"
+msgid "EDC (!?!):"
 msgstr ""
 
-msgid "Cannot edit drug brand. It is in use."
-msgstr ""
+#, fuzzy
+msgid "EDC:"
+msgstr "Epizod"
 
-msgid "Checking brand data"
+#, fuzzy, python-format
+msgid "%.1f (%s ago)"
+msgstr "Wystawca"
+
+msgid "eGFR:"
 msgstr ""
 
 #, python-format
-msgid ""
-"The brand information you entered:\n"
-"\n"
-" [%s %s]\n"
-"\n"
-"already exists as a drug product."
+msgid "eGFR: %.1f (%s)"
 msgstr ""
 
-msgid ""
-"You have not selected any substances\n"
-"as drug components.\n"
-"\n"
-"Without components you will not be able to\n"
-"use this drug for documenting patient care.\n"
-"\n"
-"Are you sure you want to save\n"
-"it without components ?"
+msgid "Enter vaccination given"
 msgstr ""
 
-msgid "Cannot save branded drug. Invalid or missing essential input."
+msgid "Unsaved progress note"
 msgstr ""
 
 msgid ""
-"The brand name of the drug.\n"
+"This progress note has not been saved yet.\n"
+"\n"
+"Do you want to save it or discard it ?\n"
 "\n"
-"Note: a brand name will need to be linked to\n"
-"one or more components before it can be used,\n"
-"except in the case of fake (generic) vaccines."
 msgstr ""
 
-#, fuzzy
-msgid "The medical aim for consuming this substance."
-msgstr "Jednostki, w których podany jest wynik."
-
-msgid "not tolerated:"
+msgid "Save this progress note"
 msgstr ""
 
-msgid "discontinued due to allergy or intolerance"
+msgid "Discard this progress note"
 msgstr ""
 
-msgid "Documented an allergy"
+msgid "Save all remaining unsaved progress notes"
 msgstr ""
 
-#, python-format
 msgid ""
-"An allergy was documented against the substance:\n"
-"\n"
-"  [%s]\n"
-"\n"
-"This substance was taken with the multi-component brand:\n"
-"\n"
-"  [%s (%s)]\n"
+"Add editor for a new unassociated progress note.\n"
 "\n"
-"Note that ALL components of this brand were discontinued."
+"There is a configuration option whether or not to\n"
+"allow several new unassociated progress notes at once."
 msgstr ""
 
-msgid "disapproved"
+msgid "Save progress note into medical record and close this editor."
 msgstr ""
 
-msgid "Substances consumed by the patient:"
+msgid "Clear this progress note editor."
 msgstr ""
 
-msgid "Intake"
+msgid ""
+"Discard progress note and close this editor. You will loose any data already "
+"typed into this editor !"
 msgstr ""
 
-#, fuzzy
-msgid "Application"
-msgstr "Szczepienie"
+msgid "Problem saving progress note: duplicate information ?"
+msgstr ""
 
-msgid "never"
-msgstr ""
-
-#, python-format
-msgid "%s, last confirmed %s\n"
-msgstr ""
-
-#, python-format
-msgid "Comment (%s): %%s\n"
-msgstr ""
-
-msgid "reaction not recorded"
-msgstr ""
-
-#, fuzzy
-msgid "GFR: unknown"
-msgstr "nieznana płeć"
-
-msgid "GFR reported by path lab"
-msgstr ""
-
-#, python-format
-msgid ""
-"The patient is already taking\n"
-"\n"
-" %s\n"
-"\n"
-"You will want to adjust the schedule\n"
-"rather than document the intake twice."
-msgstr ""
-
-msgid "Adding substance intake entry"
-msgstr ""
-
-msgid "Input incomplete/invalid for saving as substance intake."
-msgstr ""
-
-#, python-format
-msgid "Discontinued (%s) in the future (now: %s)!"
-msgstr ""
-
-#, python-format
-msgid "Discontinued (%s) before started (%s) !"
-msgstr ""
-
-msgid "Cannot add duplicate of (maybe inactive) substance intake."
-msgstr ""
-
-#, python-format
-msgid ""
-"\n"
-"[%s]\n"
-"\n"
-"It may be prudent to edit (before deletion) the details\n"
-"of this substance intake entry so as to leave behind\n"
-"some indication of why it was deleted.\n"
-msgstr ""
-
-msgid "Deleting medication / substance intake"
-msgstr ""
-
-msgid "Allow editing of substance intake entry before deletion."
-msgstr ""
-
-msgid "Delete immediately without editing first."
-msgstr ""
-
-msgid "&Cancel"
-msgstr ""
-
-msgid "Abort. Do not delete or edit substance intake entry."
-msgstr ""
-
-msgid "Now delete substance intake entry ?"
-msgstr ""
-
-#, fuzzy
-msgid "Adding medication/non-medication substance intake"
-msgstr "Dodawanie nowego epizodu"
-
-msgid "Editing medication/non-medication substance intake"
-msgstr ""
-
-msgid "Document an allergy against this substance."
-msgstr ""
-
-msgid "No medication list template configured."
-msgstr ""
-
-msgid "There is no medication list template configured."
-msgstr ""
-
-msgid "Problem loading medication list template."
-msgstr ""
-
-#, python-format
-msgid "Cannot load medication list template [%s - %s]"
-msgstr ""
-
-#, fuzzy
-msgid "generated medication list document"
-msgstr "Wprowadź opis tego zewnętrznego identyfikatora."
-
-#, fuzzy
-msgid "Select the default prescription template:"
-msgstr "Wybierz problem zdrowotny, który cię interesuje ..."
-
-msgid "No prescription template configured."
-msgstr ""
-
-msgid "There is no prescription template configured."
-msgstr ""
-
-#, fuzzy
-msgid "Printing prescription"
-msgstr "Zmień typy dokumentów"
-
-msgid "Problem loading prescription template."
-msgstr ""
-
-#, python-format
-msgid "Cannot load prescription template [%s - %s]"
-msgstr ""
-
-#, fuzzy
-msgid "generated prescription"
-msgstr "Zmień typy dokumentów"
-
-msgid ""
-"These brands have been prescribed but are not listed\n"
-"in the current medication list of this patient.\n"
-"\n"
-"Please select those you want added to the medication list."
-msgstr ""
-
-msgid "Newly prescribed drugs"
-msgstr ""
-
-#, fuzzy
-msgid "Add to medication list"
-msgstr "Aktywne leki: %s"
-
-msgid "Duration / Until"
-msgstr ""
-
-#, python-format
-msgid "%s <fake>"
-msgstr ""
-
-msgid "Cannot edit more than one substance at once."
-msgstr ""
-
-msgid "Cannot delete more than one substance at once."
-msgstr ""
-
-msgid "Cannot create allergy from more than one substance at once."
-msgstr ""
-
-msgid ""
-"\n"
-"Select the measurements panel to show in the medications plugin.\n"
-msgstr ""
-
-#, fuzzy
-msgid "Measurements panel"
-msgstr "Wyniki:"
-
-msgid "Configuring medications plugin measurements panel"
-msgstr ""
-
-msgid "EDC (!?!):"
-msgstr ""
-
-#, fuzzy
-msgid "EDC:"
-msgstr "Epizod"
-
-#, fuzzy, python-format
-msgid "%.1f (%s ago)"
-msgstr "Wystawca"
-
-msgid "eGFR:"
-msgstr ""
-
-#, fuzzy, python-format
-msgid "%s%s%s (%s ago)"
-msgstr ""
-"%s:%s przez %.8s\n"
-"%s"
-
-#, python-format
-msgid "eGFR: %.1f (%s)"
-msgstr ""
-
-msgid "Enter vaccination given"
-msgstr ""
-
-msgid "Unsaved progress note"
-msgstr ""
-
-msgid ""
-"This progress note has not been saved yet.\n"
-"\n"
-"Do you want to save it or discard it ?\n"
-"\n"
-msgstr ""
-
-msgid "Save this progress note"
-msgstr ""
-
-msgid "Discard this progress note"
-msgstr ""
-
-msgid "Save all remaining unsaved progress notes"
-msgstr ""
-
-msgid ""
-"Add editor for a new unassociated progress note.\n"
-"\n"
-"There is a configuration option whether or not to\n"
-"allow several new unassociated progress notes at once."
-msgstr ""
-
-msgid "Save progress note into medical record and close this editor."
-msgstr ""
-
-msgid "Clear this progress note editor."
-msgstr ""
-
-msgid ""
-"Discard progress note and close this editor. You will loose any data already "
-"typed into this editor !"
-msgstr ""
-
-msgid "Problem saving progress note: duplicate information ?"
-msgstr ""
-
-msgid "label missing"
+msgid "label missing"
 msgstr ""
 
 msgid "soap cat missing"
@@ -13583,14 +13882,21 @@ msgid ""
 "\n"
 " [%s]\n"
 "\n"
-"is not empty. Do you want to use it for saving the\n"
-"export area documents into, nevertheless ?\n"
+"already contains files. Do you still want to save the\n"
+"selected export area documents into that directory ?\n"
 "\n"
-"(this can be useful for including external documents)\n"
+"(this is useful for including the external documents\n"
+" already stored in or below this directory)\n"
 "\n"
 "[NO] will create a subdirectory for you and use that."
 msgstr ""
 
+msgid ""
+"Create descriptive metadata files\n"
+"and save them alongside the\n"
+"selected export area documents ?"
+msgstr ""
+
 #, fuzzy, python-format
 msgid ""
 "Saved to [%s]:\n"
@@ -13809,10 +14115,6 @@ msgid "This praxis"
 msgstr "Szczepionka"
 
 #, fuzzy
-msgid "Hospital stay"
-msgstr "Pobyty w szpitalu: %s"
-
-#, fuzzy
 msgid "Bill receiver"
 msgstr "Wybierz zdarzenie"
 
@@ -13854,18 +14156,62 @@ msgstr ""
 msgid "Select the episode under which to file the document ..."
 msgstr "Wybierz epizod, w ramach którego ma być zachowany dokument ..."
 
+msgid "Cannot create new document."
+msgstr ""
+
+msgid "saving document"
+msgstr ""
+
 #, python-format
 msgid "Imported new document from %s."
 msgstr ""
 
-#, fuzzy
-msgid "Enter a comment on the document."
-msgstr "Wprowadź opis tego zewnętrznego identyfikatora."
-
-msgid "User defined"
+msgid "Successfully saved new document."
 msgstr ""
 
-msgid "In use"
+msgid "Successfully saved the new document."
+msgstr ""
+
+#, python-format
+msgid ""
+"The reference ID for the new document is:\n"
+"\n"
+" <%s>\n"
+"\n"
+"You probably want to write it down on the\n"
+"original documents.\n"
+"\n"
+"If you don't care about the ID you can switch\n"
+"off this message in the GNUmed configuration.\n"
+msgstr ""
+
+#, fuzzy
+msgid "Saving document"
+msgstr "Usuwanie epizodu"
+
+#, python-format
+msgid ""
+"Successfully imported files as document.\n"
+"\n"
+"Do you want to delete imported files from the filesystem ?\n"
+"\n"
+" %s\n"
+"\n"
+"Note that temporary files will be deleted anyway."
+msgstr ""
+
+#, fuzzy
+msgid "Removing files"
+msgstr "Dodawanie nowego epizodu"
+
+#, fuzzy
+msgid "Enter a comment on the document."
+msgstr "Wprowadź opis tego zewnętrznego identyfikatora."
+
+msgid "User defined"
+msgstr ""
+
+msgid "In use"
 msgstr ""
 
 #, python-format
@@ -13985,15 +14331,17 @@ msgstr ""
 msgid "Acquiring images"
 msgstr ""
 
+msgid "directory dropped on client"
+msgstr ""
+
+msgid "file dropped on client"
+msgstr ""
+
 #, fuzzy
 msgid "other documents"
 msgstr " %s dokumentów\n"
 
-#, python-format
-msgid "part %s: %s"
-msgstr ""
-
-msgid "saving document"
+msgid "path"
 msgstr ""
 
 msgid "No parts to save. Really save an empty document as a reference ?"
@@ -14038,63 +14386,37 @@ msgstr ""
 msgid "acquiring page"
 msgstr ""
 
+msgid "captured by imaging device"
+msgstr ""
+
 msgid "Choose a file"
 msgstr ""
 
 msgid "all files (Win)"
 msgstr ""
 
-msgid "You must select a part before you can view it."
+msgid "picked from storage media"
 msgstr ""
 
-msgid "displaying part"
+msgid "pasted from clipboard"
 msgstr ""
 
+#, fuzzy
+msgid "No part selected for viewing."
+msgstr "Działaj na elementach wybranych z powyższej listy."
+
 #, python-format
 msgid ""
 "Cannot display document part:\n"
 "%s"
 msgstr ""
 
-msgid "You must select a part before you can delete it."
-msgstr ""
-
-msgid "deleting part"
-msgstr ""
-
-#, python-format
-msgid ""
-"The part has successfully been removed from the document.\n"
-"\n"
-"Do you also want to permanently delete the file\n"
-"\n"
-" [%s]\n"
-"\n"
-"from which this document part was loaded ?\n"
-"\n"
-"If it is a temporary file for a page you just scanned\n"
-"this makes a lot of sense. In other cases you may not\n"
-"want to lose the file.\n"
-"\n"
-"Pressing [YES] will permanently remove the file\n"
-"from your computer.\n"
-msgstr ""
-
-msgid "Removing document part"
-msgstr ""
-
-#, python-format
-msgid ""
-"Cannot delete part in file [%s].\n"
-"\n"
-"You may not have write access to it."
-msgstr ""
-
-msgid "Cannot create new document."
+msgid "displaying part"
 msgstr ""
 
-msgid "Cannot update document metadata."
-msgstr ""
+#, fuzzy
+msgid "No part selected for removal."
+msgstr "Działaj na elementach wybranych z powyższej listy."
 
 msgid "Cannot add document description."
 msgstr ""
@@ -14102,27 +14424,12 @@ msgstr ""
 msgid "Error setting \"reviewed\" status of new document."
 msgstr ""
 
-msgid "Successfully saved the new document."
-msgstr ""
-
 #, python-format
 msgid ""
-"The reference ID for the new document is:\n"
-"\n"
-" <%s>\n"
-"\n"
-"You probably want to write it down on the\n"
-"original documents.\n"
+"Source: %s\n"
+"File: %s\n"
 "\n"
-"If you don't care about the ID you can switch\n"
-"off this message in the GNUmed configuration."
-msgstr ""
-
-#, fuzzy
-msgid "Saving document"
-msgstr "Usuwanie epizodu"
-
-msgid "Successfully saved new document."
+"%s"
 msgstr ""
 
 msgid "Document part does not seem to exist in database !"
@@ -14139,10 +14446,6 @@ msgstr "Wprowadź opis tego zewnętrznego identyfikatora."
 msgid "Showing documents."
 msgstr "Usuwanie epizodu"
 
-#, fuzzy
-msgid "Generated"
-msgstr "utworzony automatycznie"
-
 msgid "Ref #"
 msgstr ""
 
@@ -14417,6 +14720,156 @@ msgstr ""
 msgid "Deleting document"
 msgstr "Usuwanie epizodu"
 
+msgid "Study date"
+msgstr ""
+
+#, fuzzy
+msgid "Study time"
+msgstr "Czas rozpoczęcia "
+
+msgid "Method"
+msgstr ""
+
+#, fuzzy
+msgid "Body part"
+msgstr "część"
+
+#, fuzzy
+msgid "Time"
+msgstr "Linia czasu"
+
+msgid "Cannot connect without port (try 8042)."
+msgstr ""
+
+#, python-format
+msgid "Connect to [%s] @ port %s as \"%s\"."
+msgstr ""
+
+#, fuzzy
+msgid "Cannot connect to PACS."
+msgstr "nie można się połączyć z usługą [%s]"
+
+#, python-format
+msgid "PACS: Orthanc \"%s\" (AET \"%s\", Version %s, DB v%s)"
+msgstr ""
+
+#, python-format
+msgid "GNUmed patient: %s (generic PACS ID)"
+msgstr ""
+
+#, python-format
+msgid "GNUmed patient: \"%(value)s\" @ [%(issuer)s] (stored PACS ID)"
+msgstr ""
+
+msgid "PACS: no patients with matching IDs found"
+msgstr ""
+
+msgid ""
+"PACS: more than one patient with matching IDs found, carefully check studies"
+msgstr ""
+
+#, python-format
+msgid "%s series"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "%%s (%s series)"
+msgstr ""
+"%s:%s przez %.8s\n"
+"%s"
+
+msgid "no studies"
+msgstr ""
+
+#, python-format
+msgid "%s studies"
+msgstr ""
+
+msgid "Exporting DICOM studies"
+msgstr ""
+
+#, fuzzy
+msgid "Unable to export selected studies."
+msgstr "To wyświetla listę dostępnych typów dokumentów."
+
+#, python-format
+msgid ""
+"The DICOM studies are %s in compressed size.\n"
+"\n"
+"Really copy to export area ?"
+msgstr ""
+
+#, python-format
+msgid "DICOM studies of [%s] from Orthanc PACS \"%s\" (AET \"%s\")"
+msgstr ""
+
+#, fuzzy
+msgid "Select the directory into which to save the DICOM studies."
+msgstr "Wybierz epizod, w ramach którego ma być zachowany dokument ..."
+
+msgid "Saving DICOM studies"
+msgstr ""
+
+#, fuzzy
+msgid "Unable to save selected studies."
+msgstr "To wyświetla listę dostępnych typów dokumentów."
+
+#, fuzzy
+msgid "Unable to export studies."
+msgstr "Błąd otwarcia linii czasu '%s'."
+
+#, python-format
+msgid "All DICOM studies of [%s] from Orthanc PACS \"%s\" (AET \"%s\")"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "%s%s images"
+msgstr "Wystawca"
+
+#, fuzzy
+msgid "Select the directory from which to recursively upload DICOM files."
+msgstr "Wybierz epizod, w ramach którego ma być zachowany dokument ..."
+
+msgid "Delete the uploaded DICOM files now ?"
+msgstr ""
+
+msgid ""
+"Some files have not been uploaded.\n"
+"\n"
+"Do you want to delete those DICOM files which have been sent to the PACS "
+"successfully ?"
+msgstr ""
+
+msgid "Uploading DICOM files"
+msgstr ""
+
+#, fuzzy
+msgid "Editing Orthanc content"
+msgstr "Dodawanie nowego epizodu"
+
+#, fuzzy
+msgid "Patient ID"
+msgstr " Twoja wersja: \"%s\"\n"
+
+msgid "Birth date"
+msgstr ""
+
+msgid "Orthanc"
+msgstr ""
+
+#, fuzzy
+msgid "Modifying patient ID"
+msgstr "wewn. identyfikator pacjenta"
+
+#, python-format
+msgid ""
+"Really modify %s patient(s) to have the new patient ID\n"
+"\n"
+" [%s]\n"
+"\n"
+"stored in the Orthanc DICOM server ?"
+msgstr ""
+
 #, python-format
 msgid "You are logged in as %s%s.%s (%s). DB account <%s>."
 msgstr ""
@@ -14478,6 +14931,14 @@ msgstr "Zmień typy dokumentów"
 msgid "Select the measurements panel to show in the medications plugin."
 msgstr ""
 
+#, fuzzy
+msgid "General measurements"
+msgstr "Zmień typy dokumentów"
+
+#, fuzzy
+msgid "Select the measurements panel to show in the top pane."
+msgstr "Wprowadź opis tego zewnętrznego identyfikatora."
+
 msgid "Review dialog"
 msgstr ""
 
@@ -14568,6 +15029,12 @@ msgstr ""
 msgid "Configure auto-opening editors for recent problems."
 msgstr ""
 
+msgid "SOAP fields"
+msgstr ""
+
+msgid "Configure SOAP editor - individual SOAP fields vs text editor like"
+msgstr ""
+
 msgid "Progress notes handling ..."
 msgstr ""
 
@@ -14589,6 +15056,9 @@ msgstr ""
 msgid "URL for measurements encyclopedia."
 msgstr ""
 
+msgid "Drug data source"
+msgstr ""
+
 #, fuzzy
 msgid "Select the drug data source."
 msgstr "Wybieranie problemu zdrowotnego"
@@ -14971,6 +15441,14 @@ msgstr ""
 msgid "Manage dynamic hints suppressed in this patient."
 msgstr ""
 
+#, fuzzy
+msgid "Substance abuse"
+msgstr "Substancje"
+
+#, fuzzy
+msgid "Manage substance abuse documentation of this patient."
+msgstr "Wprowadź opis tego zewnętrznego identyfikatora."
+
 msgid "&Add / Edit ..."
 msgstr ""
 
@@ -14995,26 +15473,52 @@ msgstr ""
 msgid "Show a high-level statistic summary of the EMR."
 msgstr ""
 
-msgid "Text document"
+msgid "Journal (encounters) to file"
+msgstr ""
+
+msgid ""
+"Save the EMR of the active patient as a chronological journal into a text "
+"file"
 msgstr ""
 
-msgid "Export the EMR of the active patient into a text file"
+#, fuzzy
+msgid "Journal (encounters) to export area"
+msgstr "Dodawanie nowego epizodu"
+
+msgid ""
+"Copy EMR of the active patient as a chronological journal into export area"
 msgstr ""
 
-msgid "Journal"
+msgid "Journal (mod time) to file"
 msgstr ""
 
 msgid ""
-"Export the EMR of the active patient as a chronological journal into a text "
-"file"
+"Save the EMR of the active patient as journal by last modification time into "
+"a text file"
+msgstr ""
+
+#, fuzzy
+msgid "Journal (mod time) to export area"
+msgstr "Dodawanie nowego epizodu"
+
+msgid ""
+"Copy EMR of the active patient as journal by last modification time into "
+"export area"
+msgstr ""
+
+msgid "Text document"
 msgstr ""
 
+#, fuzzy
+msgid "Save the EMR of the active patient into a text file"
+msgstr "Nie mogę połączyć aktywnego pacjenta z innym pacjentem"
+
 msgid "MEDISTAR import format"
 msgstr ""
 
 msgid ""
-"GNUmed -> MEDISTAR. Export progress notes of active patient's active "
-"encounter into a text file."
+"GNUmed -> MEDISTAR. Save progress notes of active patient's active encounter "
+"into a text file."
 msgstr ""
 
 msgid "Export as ..."
@@ -15191,28 +15695,51 @@ msgstr ""
 msgid "Show log file"
 msgstr ""
 
-msgid "Show the log file in text viewer."
+msgid "Show log file in text viewer."
 msgstr ""
 
 msgid "Backup log file"
 msgstr ""
 
-msgid "Backup the content of the log to another file."
+msgid "Backup content of the log to another file."
 msgstr ""
 
 msgid "Email log file"
 msgstr ""
 
-msgid "Send the log file to the authors for help."
+msgid "Send log file to the authors for help."
 msgstr ""
 
-msgid "Bug tracker"
-msgstr ""
+#, fuzzy
+msgid "Browse tmp dir"
+msgstr "wewn. identyfikator pacjenta"
 
-msgid "Go to the GNUmed bug tracker on the web."
+#, python-format
+msgid "Browse temporary directory [%s]."
 msgstr ""
 
-msgid "Unlock mouse"
+#, fuzzy
+msgid "Browse work dir"
+msgstr "wewn. identyfikator pacjenta"
+
+#, python-format
+msgid "Browse user working directory [%s]."
+msgstr ""
+
+msgid "Browse internal work dir"
+msgstr ""
+
+#, python-format
+msgid "Browse internal working directory [%s]."
+msgstr ""
+
+msgid "Bug tracker"
+msgstr ""
+
+msgid "Go to the GNUmed bug tracker on the web."
+msgstr ""
+
+msgid "Unlock mouse"
 msgstr ""
 
 msgid "Unlock mouse pointer in case it got stuck in hourglass mode."
@@ -15547,6 +16074,20 @@ msgid "No, only auto-open one editor for a new, unassociated problem."
 msgstr ""
 
 msgid ""
+"When editing progress notes, do you want GNUmed to\n"
+"show individual fields for each of the SOAP categories\n"
+"or do you want to use a text-editor like field for\n"
+"all SOAP categories which can then be set per line\n"
+"of input ?"
+msgstr ""
+
+msgid "Yes, show a dedicated field per SOAP category."
+msgstr ""
+
+msgid "No, use one field for all SOAP categories."
+msgstr ""
+
+msgid ""
 "When a patient is activated GNUmed can\n"
 "be told to switch to a specific plugin.\n"
 "\n"
@@ -15769,612 +16310,1027 @@ msgid ""
 "will actually appear in parallel to the viewer."
 msgstr ""
 
-msgid "Addresses (likely slow)"
+msgid "Addresses (likely slow)"
+msgstr ""
+
+msgid "Branded drugs (as marketed)"
+msgstr ""
+
+msgid "Dynamic automatic hints"
+msgstr ""
+
+msgid "Codes and their respective terms"
+msgstr ""
+
+msgid "Communication channel types"
+msgstr ""
+
+msgid "Components of branded drugs (substances in brands)"
+msgstr ""
+
+msgid "Diagnostic organizations (path labs, ...)"
+msgstr ""
+
+msgid "Document templates (forms, letters, plots, ...)"
+msgstr ""
+
+msgid "Document types"
+msgstr ""
+
+msgid "Encounter types"
+msgstr ""
+
+msgid "Keyword based text expansion macros"
+msgstr ""
+
+msgid "Meta test/measurement types"
+msgstr ""
+
+msgid "Organizations with their units, addresses, and comm channels"
+msgstr ""
+
+msgid "Patient tags"
+msgstr ""
+
+msgid "Provinces (counties, territories, states, regions, ...)"
+msgstr ""
+
+msgid "String translations in the database"
+msgstr ""
+
+msgid "Test/measurement types"
+msgstr ""
+
+msgid "Vaccination targets (conditions known to be preventable by vaccination)"
+msgstr ""
+
+msgid "Vaccines"
+msgstr ""
+
+msgid "Workplace profiles (which plugins to load)"
+msgstr ""
+
+msgid "Consumable substances"
+msgstr ""
+
+msgid "Billable items"
+msgstr ""
+
+#, fuzzy
+msgid "Reference data sources"
+msgstr "Wybieranie problemu zdrowotnego"
+
+msgid "Test/measurement panels/profiles"
+msgstr ""
+
+msgid "Master data management"
+msgstr ""
+
+msgid "Select the list you want to manage:"
+msgstr ""
+
+msgid "No DICOM viewer found."
+msgstr ""
+
+msgid "risk assessment"
+msgstr ""
+
+msgid "cardiovascular risk assessment"
+msgstr ""
+
+#, python-format
+msgid "[arriba] XML result not found in [%s]"
+msgstr ""
+
+msgid "ACS risk assessment calculator not configured."
+msgstr ""
+
+#, python-format
+msgid "Cannot run [%s] !"
+msgstr ""
+
+#, python-format
+msgid "There was a problem accessing the [arriba] result in [%s] !"
+msgstr ""
+
+msgid "[-9999]: <access violation test error>"
+msgstr ""
+
+msgid ""
+"This is a deliberate AccessDenied exception thrown to test the handling of "
+"access violations by means of a decorator."
+msgstr ""
+
+msgid "testing access check for non-existant <admin> role"
+msgstr ""
+
+msgid ""
+"This is a deliberate AccessDenied exception. You should not see this message "
+"because the role is checked in a decorator."
+msgstr ""
+
+msgid "pgAdmin III not found."
+msgstr ""
+
+msgid "Error reloading hook script."
+msgstr ""
+
+msgid "Save current log as..."
+msgstr ""
+
+msgid "log files"
+msgstr ""
+
+#, python-format
+msgid "Log file backed up as [%s]."
+msgstr ""
+
+msgid "Cannot start new encounter. No active patient."
+msgstr ""
+
+msgid "Cannot add health issue. No active patient."
+msgstr "Nie można dodać problemu zdrowotnego. Brak aktywnego pacjenta."
+
+#, fuzzy
+msgid "Cannot add episode. No active patient."
+msgstr "Nie można dodać problemu zdrowotnego. Brak aktywnego pacjenta."
+
+msgid "Cannot add medication. No active patient."
+msgstr ""
+
+msgid "Cannot add allergy. No active patient."
+msgstr ""
+
+#, fuzzy
+msgid "Cannot manage performed procedures. No active patient."
+msgstr "Nie można dodać problemu zdrowotnego. Brak aktywnego pacjenta."
+
+#, fuzzy
+msgid "Cannot manage hospitalizations. No active patient."
+msgstr "Nie można dodać problemu zdrowotnego. Brak aktywnego pacjenta."
+
+#, fuzzy
+msgid "Cannot manage external care. No active patient."
+msgstr "Nie można dodać problemu zdrowotnego. Brak aktywnego pacjenta."
+
+msgid "Cannot edit occupation. No active patient."
+msgstr ""
+
+#, fuzzy
+msgid "manage vaccinations"
+msgstr "Szczepienie"
+
+msgid "Cannot add vaccinations. No active patient."
+msgstr ""
+
+#, fuzzy
+msgid "manage family history"
+msgstr "Dodawanie nowego epizodu"
+
+#, fuzzy
+msgid "Cannot manage family history. No active patient."
+msgstr "Nie można dodać problemu zdrowotnego. Brak aktywnego pacjenta."
+
+#, fuzzy
+msgid "Cannot manage measurements. No active patient."
+msgstr "Nie można dodać problemu zdrowotnego. Brak aktywnego pacjenta."
+
+msgid "calculate EDC"
+msgstr ""
+
+#, fuzzy
+msgid "manage suppressed hints"
+msgstr "Opis"
+
+#, fuzzy
+msgid "Cannot manage suppressed hints. No active patient."
+msgstr "Nie można dodać problemu zdrowotnego. Brak aktywnego pacjenta."
+
+#, fuzzy
+msgid "Cannot manage smoking status. No active patient."
+msgstr "Nie można dodać problemu zdrowotnego. Brak aktywnego pacjenta."
+
+msgid "Cannot show EMR summary. No active patient."
+msgstr ""
+
+msgid "EMR Summary"
+msgstr ""
+
+#, fuzzy
+msgid "Cannot export EMR journal by last modification time. No active patient."
+msgstr "Nie można dodać problemu zdrowotnego. Brak aktywnego pacjenta."
+
+msgid "journal_by_last_mod_time"
+msgstr ""
+
+msgid "Save patient's EMR journal as..."
+msgstr ""
+
+msgid "Error exporting patient EMR as journal by last modification time."
+msgstr ""
+
+msgid "EMR journal export"
+msgstr ""
+
+#, python-format
+msgid ""
+"Successfully exported EMR as journal by last modification time into file "
+"[%s]."
+msgstr ""
+
+msgid "Cannot export EMR journal. No active patient."
+msgstr ""
+
+msgid "emr-journal"
+msgstr ""
+
+msgid "Error exporting patient EMR as chronological journal."
+msgstr ""
+
+#, python-format
+msgid "Successfully exported EMR as chronological journal into file [%s]."
+msgstr ""
+
+msgid "EMR journal by last modification time"
+msgstr ""
+
+msgid "EMR journal by encounter"
+msgstr ""
+
+msgid "Cannot add tag to person. No active patient."
+msgstr ""
+
+#, python-format
+msgid "Edit the comment on tag [%s]"
+msgstr ""
+
+msgid "Editing tag comment"
+msgstr ""
+
+msgid "Cannot export patient as GDT. No active patient."
+msgstr ""
+
+msgid "Exported demographics as GDT to clipboard."
+msgstr ""
+
+#, fuzzy
+msgid "Cannot export patient as VCARD. No active patient."
+msgstr "Nie można dodać problemu zdrowotnego. Brak aktywnego pacjenta."
+
+msgid "Exported demographics as VCARD to clipboard."
+msgstr ""
+
+#, fuzzy
+msgid "Cannot export patient as XML (LinuxMedNews). No active patient."
+msgstr "Nie można dodać problemu zdrowotnego. Brak aktywnego pacjenta."
+
+#, python-format
+msgid "Exported demographics to XML file [%s]."
+msgstr ""
+
+#, python-format
+msgid "Exported demographics to GDT file [%s]."
+msgstr ""
+
+#, python-format
+msgid "Exported demographics to VCARD file [%s]."
+msgstr ""
+
+msgid "Cannot add staff member. No active patient."
+msgstr ""
+
+msgid "Cannot delete patient. No patient active."
+msgstr ""
+
+msgid ""
+"You have to manually close this window to finalize shutting down GNUmed."
+msgstr ""
+
+msgid "This is so that you can inspect the console output at your leisure."
+msgstr ""
+
+msgid "no patient"
+msgstr ""
+
+#, python-format
+msgid "Saved screenshot to file [%s]."
+msgstr ""
+
+msgid "Python version check"
+msgstr ""
+
+#, python-format
+msgid ""
+"You are running Python version\n"
+" %s\n"
+"\n"
+"However, GNUmed wants Python 2.7 to\n"
+"facilitate migration to Python 3.\n"
+"\n"
+"Please upgrade your Python interpreter !"
+msgstr ""
+
+msgid "GNUmed client"
+msgstr ""
+
+msgid "GNUmed stdout/stderr window"
+msgstr ""
+
+msgid "redirecting STDOUT/STDERR to this log window"
+msgstr ""
+
+#, python-format
+msgid ""
+"The database account [%s] cannot be used as a\n"
+"staff member login for GNUmed. There was an\n"
+"error retrieving staff details for it.\n"
+"\n"
+"Please ask your administrator for help.\n"
+msgstr ""
+
+msgid "Checking access permissions"
+msgstr ""
+
+#, python-format
+msgid "Database <%s> on <%s>"
+msgstr ""
+
+#, python-format
+msgid "Branch \"%s\" of praxis \"%s\"\n"
+msgstr ""
+
+msgid "Verifying database"
+msgstr ""
+
+msgid "Connect"
+msgstr ""
+
+#, fuzzy
+msgid "Yes, connect to this database."
+msgstr "Zapisz wprowadzone dane do bazy."
+
+msgid "Disconnect"
+msgstr ""
+
+msgid "No, do not connect to this database."
+msgstr ""
+
+#, python-format
+msgid ""
+"Cannot find configuration file in any of:\n"
+"\n"
+" %s\n"
+"You may need to use the comand line option\n"
+"\n"
+"\t--conf-file=<FILE>"
+msgstr ""
+
+msgid "Checking configuration files"
+msgstr ""
+
+msgid "GNUmed startup"
 msgstr ""
 
-msgid "Branded drugs (as marketed)"
+#, python-format
+msgid ""
+"The currently selected database language ('%s') does\n"
+"not match the current system language ('%s').\n"
+"\n"
+"Do you want to set the database language to '%s' ?\n"
 msgstr ""
 
-msgid "Dynamic automatic hints"
+msgid "Checking database language settings"
 msgstr ""
 
-msgid "Codes and their respective terms"
+#, python-format
+msgid "Set your database language to [%s]."
 msgstr ""
 
-msgid "Communication channel types"
+msgid "Don't set"
 msgstr ""
 
-msgid "Components of branded drugs (substances in brands)"
+msgid "Do not set your database language now."
 msgstr ""
 
-msgid "Diagnostic organizations (path labs, ...)"
+msgid "Remember to ignore language mismatch"
 msgstr ""
 
-msgid "Document templates (forms, letters, plots, ...)"
+#, python-format
+msgid ""
+"Checking this will make GNUmed remember your decision\n"
+"until the system language is changed.\n"
+"\n"
+"You can also reactivate this inquiry by removing the\n"
+"corresponding \"ignore\" option from the configuration file\n"
+"\n"
+" [%s]"
 msgstr ""
 
-msgid "Document types"
+msgid "generic activity"
 msgstr ""
 
-msgid "Encounter types"
+msgid "Access denied"
 msgstr ""
 
-msgid "Keyword based text expansion macros"
+#, python-format
+msgid ""
+"Your account is not set up to access this part of GNUmed:\n"
+"\n"
+"  [%s]"
 msgstr ""
 
-msgid "Meta test/measurement types"
+msgid "Save timeline as SVG image under..."
 msgstr ""
 
-msgid "Organizations with their units, addresses, and comm channels"
+#, fuzzy
+msgid "timeline image"
+msgstr "Pliki programu Timeline"
+
+#, fuzzy
+msgid "timeline data"
+msgstr "Nie wybrano linii czasu"
+
+msgid "Cannot change notebook tabs. No active patient."
 msgstr ""
 
-msgid "Patient tags"
+msgid "add plugin ..."
 msgstr ""
 
-msgid "Provinces (counties, territories, states, regions, ...)"
+msgid "Cannot activate Allergy Manager. No active patient."
 msgstr ""
 
-msgid "String translations in the database"
+msgid "RR ?"
 msgstr ""
 
-msgid "Test/measurement types"
+#, python-format
+msgid "BMI %s"
 msgstr ""
 
-msgid "Vaccination targets (conditions known to be preventable by vaccination)"
+msgid "BMI ?"
 msgstr ""
 
-msgid "Vaccines"
+msgid "GFR ?"
 msgstr ""
 
-msgid "Workplace profiles (which plugins to load)"
+#, python-format
+msgid "GFR %s"
 msgstr ""
 
-msgid "Consumable substances"
+#, python-format
+msgid "?EDC %s"
 msgstr ""
 
-msgid "Billable items"
+#, python-format
+msgid "EDC %s"
+msgstr ""
+
+msgid "<Age>"
 msgstr ""
 
 #, fuzzy
-msgid "Reference data sources"
-msgstr "Wybieranie problemu zdrowotnego"
+msgid "no patient selected"
+msgstr "Dodawanie nowego epizodu"
 
-msgid "Test/measurement panels/profiles"
-msgstr ""
+#, fuzzy, python-format
+msgid "Gender: %s (%s) - %s\n"
+msgstr "Konsultacje: %s (%s - %s):"
 
-msgid "Master data management"
-msgstr ""
+#, fuzzy, python-format
+msgid "Born: %s\n"
+msgstr "Epizod"
 
-msgid "Select the list you want to manage:"
-msgstr ""
+#, fuzzy, python-format
+msgid "Died: %s\n"
+msgstr "Epizod"
 
-msgid "No DICOM viewer found."
+#, fuzzy, python-format
+msgid "At age: %s\n"
+msgstr " Twoja wersja: \"%s\"\n"
+
+msgid " (date of birth and age are estimated)\n"
 msgstr ""
 
-msgid "risk assessment"
+#, python-format
+msgid "%(sex)s  %(dob)s (%(age)s today !)"
 msgstr ""
 
-msgid "cardiovascular risk assessment"
+msgid ""
+"\n"
+"Today is the patient's birthday !\n"
+"\n"
 msgstr ""
 
 #, python-format
-msgid "[arriba] XML result not found in [%s]"
+msgid "Birthday: %s ago\n"
 msgstr ""
 
-msgid "ACS risk assessment calculator not configured."
+#, python-format
+msgid "Birthday: in %s\n"
 msgstr ""
 
+#, fuzzy, python-format
+msgid "Age: %s\n"
+msgstr "Epizod"
+
 #, python-format
-msgid "Cannot run [%s] !"
+msgid "last confirmed %s\n"
 msgstr ""
 
 #, python-format
-msgid "There was a problem accessing the [arriba] result in [%s] !"
+msgid "Comment (%s): %%s"
 msgstr ""
 
-msgid "[-9999]: <access violation test error>"
+#, python-format
+msgid " - expires %s"
 msgstr ""
 
+#, python-format
 msgid ""
-"This is a deliberate AcessDenied exception thrown to test the handling of "
-"access violations by means of a decorator."
+"Due for %s (since %s%s):\n"
+"%s%s\n"
+"Patient: %s\n"
+"Reminder by: %s"
 msgstr ""
 
-msgid "testing access check for non-existant <admin> role"
-msgstr ""
+#, fuzzy
+msgid "Clinical reminder"
+msgstr "Istotny klinicznie"
+
+#, fuzzy
+msgid "Adding automatic dynamic hint"
+msgstr "Usuwanie epizodu"
+
+#, fuzzy
+msgid "Editing automatic dynamic hint"
+msgstr "Usuwanie epizodu"
+
+#, fuzzy
+msgid "Deleting automatic dynamic hint"
+msgstr "Usuwanie epizodu"
 
+#, python-format
 msgid ""
-"This is a deliberate AcessDenied exception. You should not see this message "
-"because the role is checked in a decorator."
+"Really delete this dynamic hint ?\n"
+"\n"
+" [%s]"
 msgstr ""
 
-msgid "pgAdmin III not found."
+#, fuzzy
+msgid "deleting a dynamic hint"
+msgstr "Usuwanie epizodu"
+
+msgid ""
+"\n"
+"Dynamic hints registered with GNUmed.\n"
 msgstr ""
 
-msgid "Error reloading hook script."
+#, fuzzy
+msgid "Showing dynamic hints."
+msgstr "Usuwanie epizodu"
+
+msgid "Hint"
 msgstr ""
 
-msgid "Save current log as..."
+msgid "Browse and install automatic dynamic hints data packs"
 msgstr ""
 
-msgid "log files"
+#, fuzzy, python-format
+msgid "By: %s"
+msgstr "Epizod"
+
+msgid "No entry in field <Source>."
 msgstr ""
 
-#, python-format
-msgid "Log file backed up as [%s]."
+msgid "No entry in field <Conditions>."
 msgstr ""
 
-msgid "Cannot start new encounter. No active patient."
+#, fuzzy
+msgid "No entry in field <Description>."
+msgstr "Zmień typy dokumentów"
+
+msgid "No entry in field <Title>."
 msgstr ""
 
-msgid "Cannot add health issue. No active patient."
-msgstr "Nie można dodać problemu zdrowotnego. Brak aktywnego pacjenta."
+#, fuzzy
+msgid "creating a new dynamic hint"
+msgstr "Usuwanie epizodu"
 
 #, fuzzy
-msgid "Cannot add episode. No active patient."
-msgstr "Nie można dodać problemu zdrowotnego. Brak aktywnego pacjenta."
+msgid "updating an existing dynamic hint"
+msgstr "Otwórz istniejącą linię czasu"
 
-msgid "Cannot add medication. No active patient."
+#, fuzzy
+msgid "Deleting suppressed dynamic hint"
+msgstr "Usuwanie epizodu"
+
+#, python-format
+msgid ""
+"Really delete the suppression of this dynamic hint ?\n"
+"\n"
+" [%s]"
 msgstr ""
 
-msgid "Cannot add allergy. No active patient."
+msgid ""
+"\n"
+"Dynamic hints suppressed in this patient.\n"
 msgstr ""
 
 #, fuzzy
-msgid "Cannot manage performed procedures. No active patient."
-msgstr "Nie można dodać problemu zdrowotnego. Brak aktywnego pacjenta."
+msgid "Showing suppressed dynamic hints."
+msgstr "Usuwanie epizodu"
+
+msgid "Rationale"
+msgstr ""
 
 #, fuzzy
-msgid "Cannot manage hospitalizations. No active patient."
-msgstr "Nie można dodać problemu zdrowotnego. Brak aktywnego pacjenta."
+msgid "Manage hints"
+msgstr "Opis"
 
 #, fuzzy
-msgid "Cannot manage external care. No active patient."
+msgid "Manage automatic dynamic hints"
+msgstr "Usuwanie epizodu"
+
+#, fuzzy
+msgid "Cannot delete family history item."
 msgstr "Nie można dodać problemu zdrowotnego. Brak aktywnego pacjenta."
 
-msgid "Cannot edit occupation. No active patient."
+msgid "Family history of this patient."
 msgstr ""
 
-#, fuzzy
-msgid "manage vaccinations"
-msgstr "Szczepienie"
+msgid "Showing family history."
+msgstr ""
 
-msgid "Cannot add vaccinations. No active patient."
+msgid "Fatal"
 msgstr ""
 
 #, fuzzy
-msgid "Cannot manage family history. No active patient."
-msgstr "Nie można dodać problemu zdrowotnego. Brak aktywnego pacjenta."
+msgid "Noted"
+msgstr "NIeistotny"
 
-#, fuzzy
-msgid "Cannot manage measurements. No active patient."
-msgstr "Nie można dodać problemu zdrowotnego. Brak aktywnego pacjenta."
+msgid "Died"
+msgstr ""
 
-msgid "calculate EDC"
+msgid "Adding family history"
 msgstr ""
 
 #, fuzzy
-msgid "manage suppressed hints"
-msgstr "Opis"
+msgid "Editing family history"
+msgstr "Dodawanie nowego epizodu"
 
-#, fuzzy
-msgid "Cannot manage suppressed hints. No active patient."
-msgstr "Nie można dodać problemu zdrowotnego. Brak aktywnego pacjenta."
+msgid ""
+"\n"
+"Please select the default drug data source from the list below.\n"
+"\n"
+"Note that to actually use it you need to have the database installed, too."
+msgstr ""
 
-msgid "Cannot show EMR summary. No active patient."
+msgid "Configuring default drug data source"
 msgstr ""
 
-msgid "EMR Summary"
+msgid "No default drug database configured."
 msgstr ""
 
-msgid "Cannot export EMR journal. No active patient."
+msgid "There is no default drug database configured."
 msgstr ""
 
-msgid "Save patient's EMR journal as..."
+msgid "Jumping to drug database"
 msgstr ""
 
-msgid "Error exporting patient EMR as chronological journal."
+msgid "Cannot import drugs from IFAP into chart without chart."
 msgstr ""
 
-msgid "EMR journal export"
+#, python-format
+msgid "Cannot call IFAP via [%s]."
 msgstr ""
 
 #, python-format
-msgid "Successfully exported EMR as chronological journal into file [%s]."
+msgid "Cannot create IFAP <-> GNUmed transfer file [%s]."
 msgstr ""
 
-msgid "Cannot add tag to person. No active patient."
+msgid "Current medication"
 msgstr ""
 
-#, python-format
-msgid "Edit the comment on tag [%s]"
+msgid ""
+"\n"
+"The ATC codes as known to GNUmed.\n"
 msgstr ""
 
-msgid "Editing tag comment"
+msgid "Showing ATC codes."
 msgstr ""
 
-msgid "Cannot export patient as GDT. No active patient."
+msgid "Choose an ATC import config file"
 msgstr ""
 
-msgid "Exported demographics as GDT to clipboard."
+msgid "config files"
 msgstr ""
 
-#, fuzzy
-msgid "Cannot export patient as VCARD. No active patient."
-msgstr "Nie można dodać problemu zdrowotnego. Brak aktywnego pacjenta."
+msgid "importing ATC reference data"
+msgstr ""
 
-msgid "Exported demographics as VCARD to clipboard."
+msgid "Successfully imported ATC reference data."
 msgstr ""
 
-#, fuzzy
-msgid "Cannot export patient as XML (LinuxMedNews). No active patient."
-msgstr "Nie można dodać problemu zdrowotnego. Brak aktywnego pacjenta."
+msgid "Importing ATC reference data failed."
+msgstr ""
 
-#, python-format
-msgid "Exported demographics to XML file [%s]."
+msgid "Select an ATC (Anatomical-Therapeutic-Chemical) code."
 msgstr ""
 
-#, python-format
-msgid "Exported demographics to GDT file [%s]."
+msgid "Cannot edit this substance. It is in use."
 msgstr ""
 
-#, python-format
-msgid "Exported demographics to VCARD file [%s]."
+msgid "Adding new consumable substance"
 msgstr ""
 
-msgid "Cannot add staff member. No active patient."
+msgid "Editing consumable substance"
 msgstr ""
 
-msgid "Cannot delete patient. No patient active."
+msgid "Cannot delete this substance. It is in use."
 msgstr ""
 
 msgid ""
-"You have to manually close this window to finalize shutting down GNUmed."
+"\n"
+"These are the consumable substances registered with GNUmed.\n"
 msgstr ""
 
-msgid "This is so that you can inspect the console output at your leisure."
+msgid "Import"
 msgstr ""
 
-msgid "no patient"
+msgid "Import consumable substances from a drug database."
 msgstr ""
 
-#, python-format
-msgid "Saved screenshot to file [%s]."
+msgid "Cannot save consumable substance. Missing essential input."
 msgstr ""
 
-msgid "GNUmed client"
+#, python-format
+msgid "Cannot save consumable substance. %s"
 msgstr ""
 
-msgid "GNUmed stdout/stderr window"
+msgid "The substance with optional strength."
 msgstr ""
 
-msgid "redirecting STDOUT/STDERR to this log window"
+msgid "Cannot remove this component from the drug. It is in use."
 msgstr ""
 
-#, python-format
 msgid ""
-"The database account [%s] cannot be used as a\n"
-"staff member login for GNUmed. There was an\n"
-"error retrieving staff details for it.\n"
 "\n"
-"Please ask your administrator for help.\n"
+"These are the components in the drug brands known to GNUmed.\n"
 msgstr ""
 
-msgid "Checking access permissions"
+msgid "Showing drug brand components."
 msgstr ""
 
-#, python-format
-msgid "Database <%s> on <%s>"
+msgid "Adding new drug component"
 msgstr ""
 
-#, python-format
-msgid "Branch \"%s\" of praxis \"%s\"\n"
+msgid "Editing drug component"
 msgstr ""
 
-msgid "Verifying database"
+msgid "Cannot edit drug component. It is in use."
 msgstr ""
 
-msgid "Connect"
+msgid "Cannot save drug component. Invalid or missing essential input."
 msgstr ""
 
-#, fuzzy
-msgid "Yes, connect to this database."
-msgstr "Zapisz wprowadzone dane do bazy."
-
-msgid "Disconnect"
+msgid "A drug component with optional strength."
 msgstr ""
 
-msgid "No, do not connect to this database."
+msgid "Editing drug"
 msgstr ""
 
 #, python-format
 msgid ""
-"Cannot find configuration file in any of:\n"
+"Cannot edit the branded drug product\n"
 "\n"
-" %s\n"
-"You may need to use the comand line option\n"
+" \"%s\" (%s)\n"
 "\n"
-"\t--conf-file=<FILE>"
-msgstr ""
-
-msgid "Checking configuration files"
+"because it is currently taken by patients.\n"
 msgstr ""
 
-msgid "GNUmed startup"
+msgid "Adding new drug brand"
 msgstr ""
 
-#, python-format
-msgid ""
-"The currently selected database language ('%s') does\n"
-"not match the current system language ('%s').\n"
-"\n"
-"Do you want to set the database language to '%s' ?\n"
+msgid "Editing drug brand"
 msgstr ""
 
-msgid "Checking database language settings"
+msgid "Manage consumable substances"
 msgstr ""
 
-msgid "Set"
+msgid "not in use"
 msgstr ""
 
 #, python-format
-msgid "Set your database language to [%s]."
-msgstr ""
-
-msgid "Don't set"
-msgstr ""
-
-msgid "Do not set your database language now."
+msgid "ATC: %s\n"
 msgstr ""
 
-msgid "Remember to ignore language mismatch"
+msgid "Editing medication"
 msgstr ""
 
 #, python-format
 msgid ""
-"Checking this will make GNUmed remember your decision\n"
-"until the system language is changed.\n"
+"Cannot edit the medication\n"
 "\n"
-"You can also reactivate this inquiry by removing the\n"
-"corresponding \"ignore\" option from the configuration file\n"
+" \"%s\" (%s)\n"
 "\n"
-" [%s]"
-msgstr ""
-
-msgid "generic activity"
+"because it is a vaccine. Please edit it\n"
+"from the vaccine management section !\n"
 msgstr ""
 
-msgid "Access denied"
+msgid "Deleting medication"
 msgstr ""
 
 #, python-format
 msgid ""
-"Your account is not set up to access this part of GNUmed:\n"
+"Cannot delete the medication\n"
 "\n"
-"  [%s]"
-msgstr ""
-
-msgid "Save timeline as SVG image under..."
-msgstr ""
-
-#, fuzzy
-msgid "timeline image"
-msgstr "Pliki programu Timeline"
-
-#, fuzzy
-msgid "timeline data"
-msgstr "Nie wybrano linii czasu"
-
-msgid "Cannot change notebook tabs. No active patient."
+" \"%s\" (%s)\n"
+"\n"
+"because it is a vaccine. Please delete it\n"
+"from the vaccine management section !\n"
 msgstr ""
 
-msgid "add plugin ..."
+msgid ""
+"\n"
+"These are the drug brands known to GNUmed.\n"
 msgstr ""
 
-msgid "Cannot activate Allergy Manager. No active patient."
+msgid "Showing branded drugs."
 msgstr ""
 
-msgid "<Age>"
+msgid "Import substances and brands from a drug database."
 msgstr ""
 
-#, fuzzy
-msgid "no patient selected"
-msgstr "Dodawanie nowego epizodu"
-
-#, fuzzy, python-format
-msgid "Gender: %s (%s) - %s\n"
-msgstr "Konsultacje: %s (%s - %s):"
-
-#, fuzzy, python-format
-msgid "Born: %s\n"
-msgstr "Epizod"
-
-#, fuzzy, python-format
-msgid "Died: %s\n"
-msgstr "Epizod"
-
-#, fuzzy, python-format
-msgid "At age: %s\n"
-msgstr " Twoja wersja: \"%s\"\n"
-
-msgid " (date of birth and age are estimated)\n"
+msgid "Managing components of a drug"
 msgstr ""
 
 #, python-format
-msgid "%(sex)s  %(dob)s (%(age)s today !)"
-msgstr ""
-
 msgid ""
+"Cannot manage the components of the branded drug product\n"
 "\n"
-"Today is the patient's birthday !\n"
+" \"%s\" (%s)\n"
 "\n"
+"because it is currently taken by patients.\n"
 msgstr ""
 
-#, python-format
-msgid "Birthday: %s ago\n"
+msgid "Pick the substances which are components of this drug."
 msgstr ""
 
-#, python-format
-msgid "Birthday: in %s\n"
+msgid "Components of drug"
 msgstr ""
 
-#, fuzzy, python-format
-msgid "Age: %s\n"
-msgstr "Epizod"
-
 #, python-format
-msgid "last confirmed %s\n"
+msgid ""
+"Adjust the components of \"%s\"\n"
+"\n"
+"The drug must contain at least one component. Any given\n"
+"substance can only be included once per drug."
 msgstr ""
 
-#, python-format
-msgid "Comment (%s): %%s"
+msgid "Managing components of a drug ..."
 msgstr ""
 
-#, python-format
-msgid " - expires %s"
+msgid "Cannot edit drug brand. It is in use."
+msgstr ""
+
+msgid "Checking brand data"
 msgstr ""
 
 #, python-format
 msgid ""
-"Due for %s (since %s%s):\n"
-"%s%s\n"
-"Patient: %s\n"
-"Reminder by: %s"
+"The brand information you entered:\n"
+"\n"
+" [%s %s]\n"
+"\n"
+"already exists as a drug product."
 msgstr ""
 
-#, fuzzy
-msgid "Clinical reminder"
-msgstr "Istotny klinicznie"
-
-#, fuzzy
-msgid "Adding automatic dynamic hint"
-msgstr "Usuwanie epizodu"
-
-#, fuzzy
-msgid "Editing automatic dynamic hint"
-msgstr "Usuwanie epizodu"
-
-#, fuzzy
-msgid "Deleting automatic dynamic hint"
-msgstr "Usuwanie epizodu"
-
-#, python-format
 msgid ""
-"Really delete this dynamic hint ?\n"
+"You have not selected any substances\n"
+"as drug components.\n"
 "\n"
-" [%s]"
+"Without components you will not be able to\n"
+"use this drug for documenting patient care.\n"
+"\n"
+"Are you sure you want to save\n"
+"it without components ?"
 msgstr ""
 
-#, fuzzy
-msgid "deleting a dynamic hint"
-msgstr "Usuwanie epizodu"
+msgid "Cannot save branded drug. Invalid or missing essential input."
+msgstr ""
 
 msgid ""
+"The brand name of the drug.\n"
 "\n"
-"Dynamic hints registered with GNUmed.\n"
+"Note: a brand name will need to be linked to\n"
+"one or more components before it can be used,\n"
+"except in the case of fake (generic) vaccines."
 msgstr ""
 
-#, fuzzy
-msgid "Showing dynamic hints."
-msgstr "Usuwanie epizodu"
+msgid "No EMR data loaded."
+msgstr ""
 
-msgid "Hint"
+msgid "EMR text dump"
 msgstr ""
 
-msgid "Browse and install automatic dynamic hints data packs"
+msgid "Currently there is no active patient. Cannot retrieve EMR text."
 msgstr ""
 
-#, fuzzy, python-format
-msgid "By: %s"
-msgstr "Epizod"
+#, fuzzy
+msgid "SOAP Editor Actions:"
+msgstr "Szczepienia:"
 
-msgid "No entry in field <Source>."
-msgstr ""
+#, fuzzy
+msgid "&Sort lines"
+msgstr "Nie wybrano linii czasu"
 
-msgid "No entry in field <Conditions>."
+msgid "Sort lines by SOAP category"
 msgstr ""
 
-#, fuzzy
-msgid "No entry in field <Description>."
-msgstr "Zmień typy dokumentów"
+msgid "e&Xpand keyword"
+msgstr ""
 
-msgid "No entry in field <Title>."
+msgid "Expand keyword / macro"
 msgstr ""
 
 #, fuzzy
-msgid "creating a new dynamic hint"
-msgstr "Usuwanie epizodu"
+msgid "as &Subjective"
+msgstr "Wywiad"
 
-#, fuzzy
-msgid "updating an existing dynamic hint"
-msgstr "Otwórz istniejącą linię czasu"
+msgid "Set line to category \"Subjective\""
+msgstr ""
 
 #, fuzzy
-msgid "Deleting suppressed dynamic hint"
-msgstr "Usuwanie epizodu"
+msgid "as &Objective"
+msgstr "Wynik badania"
 
-#, python-format
-msgid ""
-"Really delete the suppression of this dynamic hint ?\n"
-"\n"
-" [%s]"
+msgid "Set line to category \"Objective\""
 msgstr ""
 
-msgid ""
-"\n"
-"Dynamic hints suppressed in this patient.\n"
+#, fuzzy
+msgid "as &Assessment"
+msgstr "Wnioski"
+
+msgid "Set line to category \"Assessment\""
 msgstr ""
 
 #, fuzzy
-msgid "Showing suppressed dynamic hints."
-msgstr "Usuwanie epizodu"
+msgid "as &Plan"
+msgstr "Zalecenia"
 
-msgid "Rationale"
+msgid "Set line to category \"Plan\""
 msgstr ""
 
 #, fuzzy
-msgid "Manage hints"
-msgstr "Opis"
+msgid "as &Unspecified"
+msgstr "soap_Objektywny"
 
-#, fuzzy
-msgid "Manage automatic dynamic hints"
-msgstr "Usuwanie epizodu"
+msgid "Set line to category \"unspecified\""
+msgstr ""
 
 #, fuzzy
-msgid "Cannot delete family history item."
-msgstr "Nie można dodać problemu zdrowotnego. Brak aktywnego pacjenta."
+msgid "as ad&Ministrative"
+msgstr "soap_Administracyjny"
 
-msgid "Family history of this patient."
+msgid "Set line to category \"administrative\""
 msgstr ""
 
-msgid "Showing family history."
+msgid "→ &Clipboard"
 msgstr ""
 
-msgid "Fatal"
+msgid "Copy line to clipboard"
 msgstr ""
 
-#, fuzzy
-msgid "Noted"
-msgstr "NIeistotny"
+msgid "→ +Clipboard+"
+msgstr ""
 
-msgid "Died"
+msgid "Add line to clipboard"
 msgstr ""
 
-msgid "Adding family history"
+msgid "Copy content to clipboard"
+msgstr ""
+
+msgid "Add content to clipboard"
 msgstr ""
 
 #, fuzzy
-msgid "Editing family history"
+msgid "Copy selection to clipboard"
 msgstr "Dodawanie nowego epizodu"
 
-msgid "No EMR data loaded."
-msgstr ""
+#, fuzzy
+msgid "Add selection to clipboard"
+msgstr "Aktualnie wybrany pacjent to:"
 
-msgid "EMR text dump"
-msgstr ""
+#, fuzzy
+msgid "&Line ..."
+msgstr "Episod ..."
 
-msgid "Currently there is no active patient. Cannot retrieve EMR text."
-msgstr ""
+#, fuzzy
+msgid "&Text ..."
+msgstr "Tekst"
+
+#, fuzzy
+msgid "&Region ..."
+msgstr "Dodawanie nowego epizodu"
 
 #, fuzzy
 msgid "Show HL7 file:"
@@ -16386,6 +17342,10 @@ msgstr ""
 msgid "Extracting HL7 from XML file"
 msgstr ""
 
+#, python-format
+msgid "Unwrapped HL7 into [%s] from [%s]."
+msgstr ""
+
 msgid "Select HL7 file for staging:"
 msgstr ""
 
@@ -16410,6 +17370,10 @@ msgid ""
 " %s"
 msgstr ""
 
+#, fuzzy, python-format
+msgid "Staged HL7 from [%s]."
+msgstr "Załaduj dane szablonu z pliku."
+
 msgid "Importing HL7 data"
 msgstr ""
 
@@ -16458,10 +17422,6 @@ msgstr ""
 msgid "Identification"
 msgstr "Opis"
 
-#, fuzzy
-msgid "Show"
-msgstr "Pokazuj godzinę"
-
 msgid "Show formatted HL7"
 msgstr ""
 
@@ -16510,6 +17470,20 @@ msgstr "Aktualnie wybrany pacjent to:"
 msgid "Plot current selection"
 msgstr "Aktualnie wybrany pacjent to:"
 
+#, fuzzy
+msgid ""
+"Select the measurements panel to show in the top pane for continuous "
+"monitoring."
+msgstr "Wprowadź opis tego zewnętrznego identyfikatora."
+
+#, fuzzy
+msgid "Lab panel"
+msgstr "Opis"
+
+#, fuzzy
+msgid "Configuring continuous monitoring measurements panel"
+msgstr "Zmień typy dokumentów"
+
 msgid "No default Gnuplot script template selected."
 msgstr ""
 
@@ -16532,11 +17506,26 @@ msgstr ""
 msgid "Cannot plot without a plot script."
 msgstr ""
 
+msgid "Result"
+msgstr ""
+
 #, fuzzy
-msgid "Time"
-msgstr "Linia czasu"
+msgid "Perform on selected results:"
+msgstr "poprawiony wynik"
 
-msgid "Result"
+msgid "Review and &sign"
+msgstr ""
+
+msgid "Export to &file"
+msgstr ""
+
+msgid "Export to &clipboard"
+msgstr ""
+
+msgid "Panels"
+msgstr ""
+
+msgid "List"
 msgstr ""
 
 msgid ""
@@ -16613,19 +17602,6 @@ msgstr ""
 msgid "All: by &Day"
 msgstr ""
 
-#, fuzzy
-msgid "Perform on selected results:"
-msgstr "poprawiony wynik"
-
-msgid "Review and &sign"
-msgstr ""
-
-msgid "Export to &file"
-msgstr ""
-
-msgid "Export to &clipboard"
-msgstr ""
-
 #, python-format
 msgid "%s results selected. Too many to list individually."
 msgstr ""
@@ -16814,6 +17790,10 @@ msgstr "Zbiór niesklasyfikowanych epizodów"
 msgid "EMR Actions:"
 msgstr ""
 
+#, fuzzy
+msgid "Print EMR"
+msgstr "Drukuj"
+
 msgid "Create health issue"
 msgstr ""
 
@@ -16980,11 +17960,42 @@ msgstr ""
 msgid "&New notes %s"
 msgstr ""
 
+msgid "Find text in EMR Journal"
+msgstr ""
+
+#, fuzzy
+msgid "Modified"
+msgstr "zmieniony wpis"
+
+#, fuzzy
+msgid "Clinical time"
+msgstr "Istotny klinicznie"
+
+msgid "Who / When"
+msgstr ""
+
+#, python-format
 msgid ""
-"An error occurred while retrieving the EMR\n"
-"in journal form for the active patient.\n"
+"Chart entry: %s       [#%s in %s]\n"
+" Modified: %s by %s (%s rev %s)\n"
 "\n"
-"Please check the log file for details."
+"Health issue: %s%s\n"
+"Episode: %s%s\n"
+"Encounter: %s%s"
+msgstr ""
+
+#, python-format
+msgid ""
+"%s\n"
+"\n"
+"                        rev %s (%s) by %s in <%s>"
+msgstr ""
+
+#, python-format
+msgid ""
+"%s\n"
+"%s\n"
+"%s"
 msgstr ""
 
 msgid "Editing tag"
@@ -17118,18 +18129,15 @@ msgid ""
 "%s\n"
 msgstr ""
 
-msgid "This patient DID receive care."
+msgid "This patient DID receive care here."
 msgstr ""
 
-msgid "This person did NOT receive care."
+msgid "This person did NOT receive care here."
 msgstr ""
 
 msgid "Disabling person"
 msgstr ""
 
-msgid "Disabling patient"
-msgstr ""
-
 msgid "Type or select a last name (family name/surname)."
 msgstr ""
 
@@ -17401,6 +18409,9 @@ msgstr ""
 "\n"
 "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
 
+msgid "Connecting to backend"
+msgstr "Trwa łączenie z bazą"
+
 #, fuzzy, python-format
 msgid ""
 "Unable to connect to database:\n"
@@ -17615,9 +18626,6 @@ msgstr ""
 msgid "Office"
 msgstr ""
 
-msgid "State"
-msgstr "Województwo"
-
 msgid "Zip"
 msgstr ""
 
@@ -17674,8 +18682,9 @@ msgstr ""
 msgid "EMR Timeline"
 msgstr ""
 
-msgid "Show &Timeline"
-msgstr ""
+#, fuzzy
+msgid "EMR &Timeline"
+msgstr "&Linia czasu"
 
 msgid "Overview"
 msgstr ""
@@ -17702,10 +18711,10 @@ msgstr ""
 msgid "&SimpleNotes"
 msgstr ""
 
-msgid "EMR tree"
+msgid "EMR Tree"
 msgstr ""
 
-msgid "EMR &Tree (topical)"
+msgid "EMR &Tree"
 msgstr ""
 
 #, fuzzy
@@ -17716,6 +18725,12 @@ msgstr "Epizod docelowy"
 msgid "&Print Manager"
 msgstr "Epizod docelowy"
 
+msgid "EMR Journal"
+msgstr ""
+
+msgid "EMR &Journal (list)"
+msgstr ""
+
 msgid "Appointments"
 msgstr ""
 
@@ -17728,6 +18743,12 @@ msgstr ""
 msgid "Show &lab journal"
 msgstr ""
 
+msgid "PACS"
+msgstr ""
+
+msgid "&PACS"
+msgstr ""
+
 msgid "Cardiac Devices"
 msgstr ""
 
@@ -17800,10 +18821,7 @@ msgstr ""
 msgid "User &manual (local)"
 msgstr ""
 
-msgid "EMR journal"
-msgstr ""
-
-msgid "EMR &Journal (chronological)"
+msgid "EMR &Journal (text)"
 msgstr ""
 
 msgid "Demographics"
@@ -17966,6 +18984,10 @@ msgstr ""
 msgid "Show &ExamplePlugin"
 msgstr ""
 
+#, fuzzy
+msgid "Find text"
+msgstr "Ostatnio podany"
+
 msgid "gm_ctl_client: starting slave GNUmed client"
 msgstr ""
 
@@ -17993,6 +19015,154 @@ msgid "Abort and do NOT connect to GNUmed."
 msgstr "Przerwij i NIE łącz z GNUmed-em"
 
 #, fuzzy
+#~ msgid ""
+#~ "Health issue: %s%s%s (%s versions)\n"
+#~ "\n"
+#~ msgstr "problem zdrowotny: %s"
+
+#, fuzzy
+#~ msgid ""
+#~ "Episode: %s%s%s (%s versions)\n"
+#~ "\n"
+#~ msgstr "Epizod"
+
+#, fuzzy
+#~ msgid ""
+#~ "Encounter: %s%s%s (%s versions)\n"
+#~ "\n"
+#~ msgstr "Konsultacje: %s (%s - %s):"
+
+#~ msgid "soap_S"
+#~ msgstr "soap_S"
+
+#~ msgid "soap_O"
+#~ msgstr "soap_O"
+
+#~ msgid "soap_A"
+#~ msgstr "soap_A"
+
+#~ msgid "soap_P"
+#~ msgstr "soap_P"
+
+#, fuzzy
+#~ msgid "soap_U"
+#~ msgstr "soap_S"
+
+#~ msgid "soap_Subjective"
+#~ msgstr "soap_Subiektywny"
+
+#~ msgid "soap_Objective"
+#~ msgstr "soap_Objektywny"
+
+#~ msgid "soap_Assessment"
+#~ msgstr "soap_Oszacowanie"
+
+#~ msgid "soap_Plan"
+#~ msgstr "soap_Plan"
+
+#, fuzzy
+#~ msgid "soap_Unspecified"
+#~ msgstr "soap_Objektywny"
+
+#~ msgid "soap_Administrative"
+#~ msgstr "soap_Administracyjny"
+
+#, fuzzy
+#~ msgid "Search in list"
+#~ msgstr "Wynik bad. lab."
+
+#, fuzzy
+#~ msgid "&Unknown"
+#~ msgstr "nieznana płeć"
+
+#, fuzzy
+#~ msgid "Last confirmed: %s%s"
+#~ msgstr " (potwierdzone ostatnio %s)"
+
+#, fuzzy
+#~ msgid "Smoking status"
+#~ msgstr "Stan"
+
+#~ msgid "State"
+#~ msgstr "Województwo"
+
+#~ msgid "No product information available."
+#~ msgstr "Brak informacji o produkcie."
+
+#~ msgid ""
+#~ "Unable to connect to database:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Are you sure you have got a local database installed ?\n"
+#~ "\n"
+#~ "Please retry with proper credentials or cancel.\n"
+#~ "\n"
+#~ "You may also need to check the PostgreSQL client\n"
+#~ "authentication configuration in pg_hba.conf. For\n"
+#~ "details see:\n"
+#~ "\n"
+#~ "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
+#~ msgstr ""
+#~ "Nie można połączyć się z bazą danych\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Czy baza danych na pewno jest zainstalowana lokalnie?\n"
+#~ "\n"
+#~ "Proszę spróbować ponownie używając prawidłowego loginu lub anulować.\n"
+#~ "\n"
+#~ "Być może trzeba sprawdzić konfigurację uwierzytelniania \n"
+#~ "klienta bazy danych PostgreSQL zawartą w pliku pg_hba.conf.\n"
+#~ "Zobacz szczegóły na\n"
+#~ "\n"
+#~ "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
+
+#~ msgid ""
+#~ "Unable to connect to database:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Please retry with proper credentials or cancel.\n"
+#~ "\n"
+#~ "You may also need to check the PostgreSQL client\n"
+#~ "authentication configuration in pg_hba.conf. For\n"
+#~ "details see:\n"
+#~ "\n"
+#~ "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
+#~ msgstr ""
+#~ "Nie można połączyć się z bazą danych\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Proszę spróbować ponownie używając prawidłowego loginu lub anulować.\n"
+#~ "\n"
+#~ "Być może trzeba sprawdzić konfigurację uwierzytelniania \n"
+#~ "klienta bazy danych PostgreSQL zawartą w pliku pg_hba.conf.\n"
+#~ "Zobacz szczegóły na\n"
+#~ "\n"
+#~ "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
+
+#~ msgid ""
+#~ "Unable to connect to database:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Please retry another backend / user / password combination !\n"
+#~ msgstr ""
+#~ "Nie można połączyć się z bazą danych.\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Proszę użyć innej kombinacji baza / użytkownik / hasło !\n"
+
+#, fuzzy
+#~ msgid ""
+#~ "\n"
+#~ "Select the measurements panel to show in the top pane.\n"
+#~ msgstr "Wprowadź opis tego zewnętrznego identyfikatora."
+
+#, fuzzy
 #~ msgid "Deleting province"
 #~ msgstr "Usuwanie epizodu"
 
@@ -18003,22 +19173,10 @@ msgstr "Przerwij i NIE łącz z GNUmed-em"
 #~ "%s"
 
 #, fuzzy
-#~ msgid "Clinical hint"
-#~ msgstr "Istotny klinicznie"
-
-#, fuzzy
-#~ msgid "Check here for printing."
-#~ msgstr "Ustawienia drukowania"
-
-#, fuzzy
 #~ msgid "Act on the document(s) according to the above."
 #~ msgstr "Działaj na elementach wybranych z powyższej listy."
 
 #, fuzzy
-#~ msgid "file: %s (%s/)"
-#~ msgstr "SQL: %s"
-
-#, fuzzy
 #~ msgid "Switching clinical hint activation"
 #~ msgstr "Dodawanie nowego epizodu"
 
@@ -18066,9 +19224,6 @@ msgstr "Przerwij i NIE łącz z GNUmed-em"
 #~ msgid "SQL: %s"
 #~ msgstr "SQL: %s"
 
-#~ msgid "cannot connect to service [%s]"
-#~ msgstr "nie można się połączyć z usługą [%s]"
-
 #, fuzzy
 #~ msgid "Save the form template definition."
 #~ msgstr "zmień szczegóły szablonu"
diff --git a/client/po/pt-gnumed.mo b/client/po/pt-gnumed.mo
index 8526a18..666a80c 100644
Binary files a/client/po/pt-gnumed.mo and b/client/po/pt-gnumed.mo differ
diff --git a/client/po/pt.po b/client/po/pt.po
index b16a1ed..b95c452 100644
--- a/client/po/pt.po
+++ b/client/po/pt.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gnumed\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-12-26 20:28+0100\n"
+"POT-Creation-Date: 2016-03-17 16:27+0100\n"
 "PO-Revision-Date: 2010-07-17 11:08+0000\n"
 "Last-Translator: Luis Mendonça <Unknown>\n"
 "Language-Team: Portuguese <pt at li.org>\n"
@@ -1522,11 +1522,23 @@ msgid ""
 "--------------"
 msgstr "Solicitada ajuda"
 
+#, fuzzy, python-format
+msgid "Revision #%s"
+msgstr " Nova versão: \"%s\""
+
 #, python-format
 msgid "[%s:%s]: row not updated (nothing returned), row in use ?"
 msgstr ""
 
 #, python-format
+msgid "<%s(.bat)> not found"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "problem with <%s>"
+msgstr "Problema"
+
+#, python-format
 msgid "[%s] is not a readable file"
 msgstr "[%s] não é um ficheiro legível"
 
@@ -1563,25 +1575,9 @@ msgstr "1 Byte"
 msgid "%s Bytes"
 msgstr "%s Bytes"
 
-#, python-format
-msgid ""
-"Cannot connect to configuration database with:\n"
-"\n"
-"[%s]"
-msgstr "Script não pode ser uma ligação (link): [%s]"
-
-#, python-format
-msgid ""
-"Cannot connect to database with:\n"
-"\n"
-"[%s]"
-msgstr ""
-"Não foi possível ligar à base de dados com:\n"
-"\n"
-"[%s]"
-
-msgid "No product information available."
-msgstr "Não há informação disponível sobre o produto"
+#, fuzzy
+msgid "<type>"
+msgstr "tipo"
 
 #, python-format
 msgid ""
@@ -1937,101 +1933,6 @@ msgstr " opção [%s]: %s"
 msgid "  risk: %s"
 msgstr "  risco: %s"
 
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Are you sure you have got a local database installed ?\n"
-"\n"
-"Please retry with proper credentials or cancel.\n"
-"\n"
-"You may also need to check the PostgreSQL client\n"
-"authentication configuration in pg_hba.conf. For\n"
-"details see:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-msgstr ""
-"Não foi posível ligar à base de dados:\n"
-"\n"
-"%s\n"
-"\n"
-"Certifique-se de que tem uma base de dados local instalada.\n"
-"\n"
-"Por favor volte a tentar com as credenciais adequadas ou cancele.\n"
-"\n"
-"Também pode verificar a autenticação do cliente PostgreSQL\n"
-"no arquivo de configuração pg_hba.conf. Para\n"
-"mais informações, consulte:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Please retry with proper credentials or cancel.\n"
-"\n"
-"You may also need to check the PostgreSQL client\n"
-"authentication configuration in pg_hba.conf. For\n"
-"details see:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-msgstr ""
-"Não foi posível ligar à base de dados:\n"
-"\n"
-"%s\n"
-"\n"
-"É favor voltar a tentar com as credenciais adequadas ou cancelar.\n"
-"\n"
-"Também pode verificar a autenticação do cliente PostgreSQL\n"
-"no arquivo de configuração pg_hba.conf. Para\n"
-"mais informações, consulte:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-
-msgid "Connecting to backend"
-msgstr "Ligando a backend"
-
-#, fuzzy, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Please retry another backend / user / password combination !\n"
-msgstr "Não foi possível ligar à base de dados\n"
-
-msgid "programmer forgot to specify error message"
-msgstr "falta mensagem de erro"
-
-msgid ""
-"\n"
-"\n"
-"Please consult the error log for all the gory details !"
-msgstr ""
-"\n"
-"\n"
-"Por favor consulte o log de mensagens de erro para mais detalhes !"
-
-msgid "generic error message"
-msgstr "mensagem de erro genérica"
-
-msgid "programmer forgot to specify info message"
-msgstr "falta mensagem informativa"
-
-msgid "generic info message"
-msgstr "mensagem informativa genérica"
-
-msgid "programmer forgot to specify warning"
-msgstr "falta mensagem de aviso"
-
-msgid "generic warning message"
-msgstr "mensagem de aviso genérica"
-
 msgid "no hook specified, please report bug"
 msgstr "não há hook especificado, favor reportar esse bug."
 
@@ -2366,6 +2267,34 @@ msgstr ""
 msgid "Include:"
 msgstr ""
 
+#, fuzzy
+msgid "&Search"
+msgstr "Pesquisa"
+
+msgid "Suggest"
+msgstr ""
+
+msgid "Set"
+msgstr ""
+
+msgid "dialog_1"
+msgstr ""
+
+msgid "Search patients in Orthanc DICOM store."
+msgstr ""
+
+#, fuzzy
+msgid "Suggest a patient ID based on the active patient."
+msgstr "Iniciado nova consulta para o paciente ativo."
+
+#, fuzzy
+msgid "Search term:"
+msgstr "Pesquisa"
+
+#, fuzzy
+msgid "New patient ID:"
+msgstr "ID interna do paciente"
+
 msgid "Your review"
 msgstr "Sua revisão"
 
@@ -2702,6 +2631,105 @@ msgstr "Substância"
 msgid "Amount"
 msgstr ""
 
+#, fuzzy
+msgid "&Connect"
+msgstr "&Contactos"
+
+msgid "&Browse"
+msgstr ""
+
+#, fuzzy
+msgid "<not connected>"
+msgstr "Acrescenta uma empresa"
+
+msgid "Browse all"
+msgstr ""
+
+#, fuzzy
+msgid "Export all"
+msgstr "Relatório"
+
+msgid "Browse"
+msgstr ""
+
+#, fuzzy
+msgid "Export"
+msgstr "Relatório"
+
+#, fuzzy
+msgid "Upload"
+msgstr "Atualizar"
+
+#, fuzzy
+msgid "Enter the PACS host address."
+msgstr "Preencha o número para esse endereço."
+
+msgid "Enter the PACS port."
+msgstr ""
+
+#, fuzzy
+msgid "Enter the PACS user."
+msgstr "Digite a quantidade de substância."
+
+#, fuzzy
+msgid "Enter the PACS password. It will not be shown."
+msgstr "Não foi possível conectar como o dono do banco de dados <gm-dbo>."
+
+#, fuzzy
+msgid "Connect to PACS."
+msgstr "Ligação ao GNUmed"
+
+msgid "Browse PACS at top level."
+msgstr ""
+
+msgid "Modify some of Orthanc content (such as patient IDs)."
+msgstr ""
+
+#, fuzzy
+msgid "Browse overview of studies for this patient."
+msgstr "Detalhes da fila de espera para esse paciente."
+
+#, fuzzy
+msgid "Copy all studies into export area."
+msgstr "Adicionando novo nome"
+
+#, fuzzy
+msgid "Browse topmost selected study."
+msgstr "Editar o item selecionado."
+
+#, fuzzy
+msgid "Copy selected studies into export area."
+msgstr "Adicionando novo nome"
+
+#, fuzzy
+msgid "Save selected studies to disk."
+msgstr "Invocar Inspetor"
+
+msgid ""
+"Upload DICOM files from a directory, recursively, into the Orthanc PACS\n"
+"\n"
+"The currently active patient does not matter. Orthanc will associate "
+"uploaded files with the patient found within the DICOM metadata. It will "
+"create new patients as needed."
+msgstr ""
+
+msgid "Host:"
+msgstr ""
+
+msgid "Port:"
+msgstr ""
+
+#, fuzzy
+msgid "User:"
+msgstr "Utilizador1"
+
+msgid "Password"
+msgstr "Senha"
+
+#, fuzzy
+msgid "Selected studies:"
+msgstr "Selecione"
+
 msgid "Fake brand"
 msgstr "Marca falsa"
 
@@ -3056,10 +3084,6 @@ msgstr "mensagem de erro genérica"
 msgid "&Load"
 msgstr ""
 
-#, fuzzy
-msgid "Export"
-msgstr "Relatório"
-
 msgid "A long, descriptive name for this form template."
 msgstr "Um nome longo descrevendo esse modelo."
 
@@ -3156,15 +3180,13 @@ msgstr "&clinicamente relevante"
 msgid "Document Properties"
 msgstr "Propriedades do Documento"
 
-msgid "Show part"
-msgstr ""
+#, fuzzy
+msgid "Show"
+msgstr "Mostrar arquivo de Log"
 
 msgid "Remove part"
 msgstr ""
 
-msgid "Parts"
-msgstr "Porção"
-
 msgid "Discard"
 msgstr "Descartar"
 
@@ -3201,6 +3223,10 @@ msgstr ""
 msgid "Required: The primary episode this document is to be listed under."
 msgstr "Obrigatório: Episódio primário sob o qual esse documento será listado."
 
+#, fuzzy
+msgid "Optional: The organization (unit) this document originated from."
+msgstr "Nome da organização"
+
 msgid ""
 "Optional: A short comment identifying the document. Good comments give an "
 "idea of the content and source of the document."
@@ -3235,6 +3261,9 @@ msgstr ""
 "Se esse documento retrata resultados clinicamente relevantes. Lembrar que "
 "tanto resultados normais quanto anormais podem ser clinicamente relevantes."
 
+msgid "Optional: A free-text document description."
+msgstr "Opcional: Uma descrição livre sobre o documento."
+
 msgid "This field lists the parts belonging to the current document."
 msgstr "Esse campo lista as porções que pertencem ao documento atual."
 
@@ -3248,9 +3277,6 @@ msgstr ""
 "Remover a porção selecionada na lista acima. Será perguntado se deverá ser "
 "apagado fisicamente do disco."
 
-msgid "Optional: A free-text document description."
-msgstr "Opcional: Uma descrição livre sobre o documento."
-
 msgid "Save finished document."
 msgstr "Salvar documento pronto"
 
@@ -3269,6 +3295,10 @@ msgid "Associate to episode:"
 msgstr "Associar ao episódio:"
 
 #, fuzzy
+msgid "Document source:"
+msgstr "Documentos:"
+
+#, fuzzy
 msgid "Comment / Identification:"
 msgstr "Medicação atual"
 
@@ -3467,8 +3497,9 @@ msgstr "Isso mostra todas as mensagens de sua caixa de entrada."
 msgid "Messages:"
 msgstr ""
 
-msgid "Only:"
-msgstr ""
+#, fuzzy
+msgid "Limit to:"
+msgstr "Definido como:"
 
 msgid "&Myself … or:"
 msgstr ""
@@ -3588,12 +3619,13 @@ msgstr "Terminou"
 msgid "Purpose"
 msgstr ""
 
+#, fuzzy
+msgid "Please supply your email address here !"
+msgstr "Por favor informe seu endereço de email."
+
 msgid "Details"
 msgstr "Detalhes"
 
-msgid "<Please supply your email address here !>"
-msgstr ""
-
 msgid "Keep running"
 msgstr "Continuar executando"
 
@@ -3617,9 +3649,11 @@ msgstr ""
 "que estava fazendo."
 
 msgid ""
-"Please enter your email address so we can provide feedback directly to you. "
-"Otherwise, feedback will be given on the GNUmed mailing list (http://lists."
-"gnu.org/mailman/listinfo/gnumed-bugs)."
+"Please enter your email address so we can provide help to you directly.\n"
+"\n"
+"Otherwise, feedback can be given on the GNUmed mailing list (http://lists."
+"gnu.org/mailman/listinfo/gnumed-bugs) ONLY to which you will then have to "
+"subscribe."
 msgstr ""
 
 msgid "Find help on http://wiki.gnumed.de, too."
@@ -3769,9 +3803,6 @@ msgstr "Parâmetros do utilizador:"
 msgid "Account"
 msgstr "Conta"
 
-msgid "Password"
-msgstr "Senha"
-
 msgid "Password, again"
 msgstr "Senha, de novo"
 
@@ -4299,8 +4330,9 @@ msgstr "Editar propriedades do documento"
 msgid "Acquire images from image source (scanner, ...)."
 msgstr ""
 
-msgid "Acquire images or text from the clipboard."
-msgstr ""
+#, fuzzy
+msgid "Acquire file or text from the clipboard."
+msgstr "Remover o(s) item(s) selecionado(s) da lista."
 
 #, fuzzy
 msgid "Remove the selected documents."
@@ -4460,7 +4492,7 @@ msgid ""
 "- the result list will be artificially limited to the first 1000 rows\n"
 "- you can include a column named \"pk_patient\" to make the result rows "
 "activate the corresponding patient on double-clicking\n"
-"- by inserting $<ID_active_patient>$ you can access the patient ID of the "
+"- by inserting $<ID_ACTIVE_PATIENT>$ you can access the patient ID of the "
 "patient active at the time of running the query"
 msgstr ""
 
@@ -4637,9 +4669,6 @@ msgstr ""
 msgid "Link &new"
 msgstr ""
 
-msgid "Browse"
-msgstr ""
-
 msgid ""
 "Search for matches among existing addresses and [Link] a selection, or [Link "
 "(a) new] address."
@@ -4696,26 +4725,17 @@ msgstr ""
 "Selecione se você concorda com a opinião atual de resultado clinicamente "
 "relevante."
 
-msgid "label_1"
-msgstr ""
-
-msgid "→"
-msgstr ""
-
-msgid "←"
-msgstr ""
-
-msgid "Extra"
-msgstr ""
+msgid "Subjective"
+msgstr "Subjectivo"
 
-msgid "Move selected items from left to right."
-msgstr ""
+msgid "Objective"
+msgstr "Objectivo"
 
-msgid "Move selected items from right to left."
-msgstr ""
+msgid "Assessment"
+msgstr "Avaliação"
 
-msgid "Cancel picking items."
-msgstr ""
+msgid "Plan"
+msgstr "Plano"
 
 #, fuzzy
 msgid "Episode synopsis"
@@ -4756,20 +4776,29 @@ msgid ""
 "narrative belongs to."
 msgstr ""
 
-msgid "Subjective"
-msgstr "Subjectivo"
-
 msgid "Codes:"
 msgstr ""
 
-msgid "Objective"
-msgstr "Objectivo"
+msgid "label_1"
+msgstr ""
 
-msgid "Assessment"
-msgstr "Avaliação"
+msgid "→"
+msgstr ""
 
-msgid "Plan"
-msgstr "Plano"
+msgid "←"
+msgstr ""
+
+msgid "Extra"
+msgstr ""
+
+msgid "Move selected items from left to right."
+msgstr ""
+
+msgid "Move selected items from right to left."
+msgstr ""
+
+msgid "Cancel picking items."
+msgstr ""
 
 msgid "1"
 msgstr ""
@@ -4944,6 +4973,89 @@ msgstr ""
 msgid "Age range"
 msgstr ""
 
+msgid "&Nicotine"
+msgstr ""
+
+msgid "&Alcohol"
+msgstr ""
+
+msgid "&Other:"
+msgstr ""
+
+msgid "&Non-harmful use"
+msgstr ""
+
+msgid "&Harmful use"
+msgstr ""
+
+msgid "Presently &addicted"
+msgstr ""
+
+#, fuzzy
+msgid "Previously &addicted"
+msgstr "Consultas anteriores"
+
+msgid "&Reconfirm as of today"
+msgstr ""
+
+#, fuzzy
+msgid "Select for documenting smoking status."
+msgstr "Editando canal de comunicações"
+
+msgid "Select for documenting alcohol use status."
+msgstr ""
+
+msgid ""
+"Select for documenting use of substances other than nicotine or alcohol."
+msgstr ""
+
+#, fuzzy
+msgid "Select the abused substance."
+msgstr "Digite a quantidade de substância."
+
+msgid ""
+"Select if the substance use is not considered harmful (say, no use or non-"
+"harmful use)."
+msgstr ""
+
+msgid "Select if substance is use considered harmful."
+msgstr ""
+
+#, fuzzy
+msgid "Select if the patient is presently addicted to this substance."
+msgstr "Seleccione se este paciente não tem alergias conhecidas."
+
+#, fuzzy
+msgid "Select if the patient was previously addicted to this substance."
+msgstr "Seleccione se este paciente não tem alergias conhecidas."
+
+msgid ""
+"A comment on this substance use:\n"
+"- type of product used\n"
+"- frequency\n"
+"- amount\n"
+"- when started\n"
+"- attempts to quit\n"
+"..."
+msgstr ""
+
+msgid ""
+"When did the patient quit?\n"
+"\n"
+"You can also set a target quit date here."
+msgstr ""
+
+msgid "Check here to confirm for today."
+msgstr ""
+
+#, fuzzy
+msgid "Quit date"
+msgstr "Exsudato"
+
+#, fuzzy
+msgid "Last confirmed"
+msgstr "Última confirmação:"
+
 msgid "Closed episodes"
 msgstr ""
 
@@ -5315,21 +5427,20 @@ msgstr ""
 msgid "Show:"
 msgstr ""
 
-msgid "Brand by component"
+msgid "Kidneys"
 msgstr ""
 
 #, fuzzy
 msgid "Brands"
 msgstr "Marca"
 
-msgid "Kidneys"
-msgstr ""
-
-msgid "Unbranded substance"
-msgstr ""
+#, fuzzy
+msgid "Substances"
+msgstr "Substância"
 
-msgid "Manage"
-msgstr ""
+#, fuzzy
+msgid "&Unknown or date:"
+msgstr "reação desconhecida"
 
 msgid "Approved of"
 msgstr "Aprovado de"
@@ -5344,23 +5455,20 @@ msgid "... Reason"
 msgstr "... Motivo"
 
 msgid ""
-"A component of a drug brand the patient is taking.\n"
+"A drug the patient is taking.\n"
 "\n"
-"Lookup, and select, a single- (or multi-) component drug brand, by active "
-"ingredient name. All components of multi-component drugs will be displayed "
-"and automatically added to the patient's list."
-msgstr ""
-
-msgid ""
-"Manage drug brands.\n"
+"Lookup and select an intake by either of\n"
+"- a generic substance name\n"
+"- a drug brand name\n"
+"- an active ingredient of a drug\n"
 "\n"
-"Note that this will not select a component for you. What it does is to let "
-"you manage (add/edit/delete) the drug products/brands known to GNUmed from "
-"which you can select a component."
+"Note that all components of multi-component drugs will be displayed and "
+"automatically added to the patient's list."
 msgstr ""
 
-msgid "The active ingredients of this brand."
-msgstr "Os ingredientes ativos da marca."
+#, fuzzy
+msgid "Details on the selected drug."
+msgstr "obrigatório selecionar endereço"
 
 msgid "Show cardiac information relevant to substance selection."
 msgstr ""
@@ -5369,8 +5477,11 @@ msgid "Show renal insufficiency information related to substance selection."
 msgstr ""
 
 msgid ""
-"The non-branded medication or non-medication substance, with optional "
-"strength."
+"Manage drug brands.\n"
+"\n"
+"Note that this will not select a component for you. What it does is to let "
+"you manage (add/edit/delete) the drug products/brands known to GNUmed from "
+"which you can select a component."
 msgstr ""
 
 msgid ""
@@ -5384,11 +5495,20 @@ msgstr ""
 msgid "The preparation or form of the substance."
 msgstr "A preparação na qual a substância é apresentada."
 
+#, fuzzy
+msgid "Check here if the start date simply isn't known."
+msgstr "Pesquisar dados do Prontuário do paciente ativo"
+
 msgid ""
 "When was this substance started to be consumed or - if not known - the "
 "earliest it is known to have been be consumed."
 msgstr ""
 
+msgid ""
+"A coment on the certainty of the start date, such as \"+/- 3 weeks\", "
+"\"spring of 2002\", \"shortly after Easter 1996\", ...."
+msgstr ""
+
 msgid "Whether this substance is taken by advice."
 msgstr ""
 
@@ -5422,6 +5542,17 @@ msgstr "Pressione se a interrupção foi como o planejado."
 msgid "Reason for discontinuation."
 msgstr "Motivo da interrupção."
 
+msgid "Drug"
+msgstr "Medicamento"
+
+#, fuzzy
+msgid "Research:"
+msgstr "Pesquisa"
+
+#, fuzzy
+msgid "Certainty:"
+msgstr "Certamente"
+
 msgid "Schedule"
 msgstr ""
 
@@ -5585,6 +5716,34 @@ msgid "Channel"
 msgstr "Canal"
 
 #, fuzzy
+msgid "&Last modification time"
+msgstr "Modificado em:"
+
+#, fuzzy
+msgid "&Entry time"
+msgstr "Iniciar Nova"
+
+msgid "Show journal ordered by encounter."
+msgstr ""
+
+msgid "Show journal ordered by time of last modification."
+msgstr ""
+
+msgid "Show journal ordered by actual clinical time of each entry."
+msgstr ""
+
+#, fuzzy
+msgid "Edit the selected chart entry."
+msgstr "Editar o item selecionado."
+
+#, fuzzy
+msgid "Delete selected chart entry."
+msgstr "Apagando ID externo"
+
+msgid "Order by:"
+msgstr ""
+
+#, fuzzy
 msgid "Chec&k"
 msgstr "Checar abrangência"
 
@@ -6180,12 +6339,16 @@ msgid "Documents:"
 msgstr "Documentos:"
 
 #, fuzzy
+msgid "&L"
+msgstr "E"
+
+#, fuzzy
 msgid "&N"
 msgstr "&Novo"
 
 #, fuzzy
-msgid "&L"
-msgstr "E"
+msgid "List all encounters."
+msgstr "%s: consulta (%s)"
 
 #, fuzzy
 msgid "The encounter."
@@ -6195,10 +6358,6 @@ msgstr "Consulta"
 msgid "Start a new encounter for the active patient."
 msgstr "Iniciado nova consulta para o paciente ativo."
 
-#, fuzzy
-msgid "List all encounters."
-msgstr "%s: consulta (%s)"
-
 msgid "Clinically relevant"
 msgstr "Relevante Clinicamente"
 
@@ -6481,10 +6640,12 @@ msgstr ""
 msgid "Manage dynamic hints."
 msgstr "Apagando documento"
 
+#, fuzzy
 msgid ""
 "Rationale for\n"
-"suppression"
-msgstr ""
+"suppression\n"
+"for this patient"
+msgstr "Detalhes da fila de espera para esse paciente."
 
 #, fuzzy
 msgid "Save &under"
@@ -6555,6 +6716,12 @@ msgstr ""
 msgid "Encounter:"
 msgstr ""
 
+msgid "Manage"
+msgstr ""
+
+msgid "&Panel:"
+msgstr ""
+
 msgid "&Pick"
 msgstr ""
 
@@ -6601,6 +6768,10 @@ msgstr ""
 "o banco de dados a qual está conectando.\n"
 "Para desabilitar essa mensagem é só deixá-la em branco."
 
+#, fuzzy
+msgid "Show search dialog."
+msgstr "Fechar essa janela"
+
 msgid "THIS IS NOT A VERIFIED MEASUREMENT. DO NOT USE FOR ACTUAL CARE."
 msgstr ""
 
@@ -6888,6 +7059,56 @@ msgstr "Tem alergia(s)"
 msgid "ERROR: unknown allergy state [%s]"
 msgstr "ERRO: Alergia de origem desconhecida"
 
+msgid "definite"
+msgstr "definitivo"
+
+#, fuzzy
+msgid "indefinite"
+msgstr "definitivo"
+
+#, fuzzy
+msgid "Reaction:"
+msgstr "Reacção"
+
+#, fuzzy
+msgid "Noted:"
+msgstr "&Nota"
+
+#, fuzzy
+msgid "Allergene:"
+msgstr "Alergia"
+
+#, fuzzy
+msgid "Substance:"
+msgstr "Substância"
+
+#, fuzzy
+msgid "Code:"
+msgstr "Fechado"
+
+msgid "ATC:"
+msgstr ""
+
+#, fuzzy
+msgid "Specific to:"
+msgstr "Definido como:"
+
+#, fuzzy
+msgid "this substance only"
+msgstr "Editando endereço"
+
+#, fuzzy
+msgid "drug class"
+msgstr "Classe da Droga"
+
+#, fuzzy
+msgid "unknown"
+msgstr "Desconhecido"
+
+#, fuzzy
+msgid "Generics:"
+msgstr "Genéricos"
+
 msgid "Medication history"
 msgstr ""
 
@@ -6899,9 +7120,15 @@ msgstr "Erro ao executar o script de hook [%s]"
 msgid "prescription data"
 msgstr "Prescrições"
 
+msgid "Consumable substance"
+msgstr ""
+
 msgid "in use"
 msgstr ""
 
+msgid "w/"
+msgstr ""
+
 msgid "long-term"
 msgstr "longo-prazo"
 
@@ -6921,6 +7148,35 @@ msgid "?ongoing"
 msgstr "?em progresso"
 
 #, python-format
+msgid ""
+"Substance abuse entry                                              [#%s]\n"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "Substance: %s [#%s]%s\n"
+msgstr "Substância"
+
+#, fuzzy, python-format
+msgid "Use type: %s\n"
+msgstr "Tipo:"
+
+#, fuzzy, python-format
+msgid "Last checked: %s\n"
+msgstr "Última consulta a: %s\n"
+
+#, python-format
+msgid " Discontinued %s\n"
+msgstr ""
+
+#, fuzzy, python-format
+msgid " Notes: %s\n"
+msgstr "Paciente"
+
+#, python-format
+msgid "Revision: #%(row_ver)s, %(mod_when)s by %(mod_by)s."
+msgstr ""
+
+#, python-format
 msgid "Substance intake entry (%s, %s)   [#%s]                     \n"
 msgstr ""
 
@@ -6936,9 +7192,6 @@ msgstr ""
 msgid "unapproved"
 msgstr ""
 
-msgid "definite"
-msgstr "definitivo"
-
 msgid "suspected"
 msgstr ""
 
@@ -6985,10 +7238,6 @@ msgid " (short-term)"
 msgstr ""
 
 #, python-format
-msgid " Discontinued %s\n"
-msgstr ""
-
-#, python-format
 msgid " Reason: %s\n"
 msgstr ""
 
@@ -7008,20 +7257,68 @@ msgstr "problema de saúde: %s"
 msgid " Advice: %s\n"
 msgstr ""
 
-#, python-format
-msgid "Revision: #%(row_ver)s, %(mod_when)s by %(mod_by)s."
+#, fuzzy
+msgid "medication, not abuse"
+msgstr "Lista de medicamentos"
+
+msgid "no or non-harmful use"
+msgstr ""
+
+msgid "presently harmful use"
+msgstr ""
+
+msgid "presently addicted"
+msgstr ""
+
+msgid "previously addicted"
 msgstr ""
 
 #, fuzzy, python-format
-msgid "%s: %s ago"
+msgid "%s%s: %s ago%s"
 msgstr "&Local"
 
 #, fuzzy, python-format
-msgid "%s: %s ago (%s)"
+msgid "%s%s: %s ago (%s)"
 msgstr ""
 "%s: %s by %.8s\n"
 "%s"
 
+#, fuzzy, python-format
+msgid "%s%s%s (%s ago)"
+msgstr ""
+"%s: %s by %.8s\n"
+"%s"
+
+#, fuzzy, python-format
+msgid "%s%s%s (%s ago, %s)"
+msgstr ""
+"%s: %s by %.8s\n"
+"%s"
+
+#, python-format
+msgid "%s ago"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "in %s"
+msgstr "Comentário: %s"
+
+#, fuzzy, python-format
+msgid ", until %s (%s)"
+msgstr "&Local"
+
+#, python-format
+msgid " (planned for %s%s)"
+msgstr ""
+
+#, python-format
+msgid ", planned for %s%s"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "%s ago (for %s: %s %s %s)"
+msgstr "Consultas: %s (%s - %s):"
+
 msgid "Additional notes"
 msgstr "Notas adicionais"
 
@@ -7034,13 +7331,37 @@ msgstr "Lista de medicamentos"
 msgid "ordered by brand"
 msgstr "ordenado por marca"
 
-msgid "Drug"
-msgstr "Medicamento"
-
 #, fuzzy
 msgid "Regimen / Advice"
 msgstr "Regime"
 
+#, fuzzy, python-format
+msgid "Component of %s (%s)"
+msgstr "Comentário: %s"
+
+#, fuzzy, python-format
+msgid "ATC (substance): %s"
+msgstr "Substância"
+
+#, python-format
+msgid "ATC (brand): %s"
+msgstr ""
+
+msgid "this is a component of a fake brand"
+msgstr ""
+
+#, fuzzy
+msgid "Components:"
+msgstr "&Contactos"
+
+#, fuzzy
+msgid "this is a fake brand"
+msgstr "Marca falsa"
+
+#, fuzzy
+msgid "this is a vaccine"
+msgstr "vacina"
+
 msgid "units"
 msgstr "unidades"
 
@@ -7075,52 +7396,15 @@ msgid "Expires: %s\n"
 msgstr "Exportado: %s\n"
 
 #, fuzzy
-msgid "Active clinical hint"
-msgstr "Problemas activos"
-
-#, fuzzy
-msgid "Inactive clinical hint"
-msgstr "Clinicamente não relevante"
+msgid "HL7 Source"
+msgstr "Fontes das Porções"
 
-#, python-format
-msgid "Source: %s\n"
+msgid "HL7 data size"
 msgstr ""
 
 #, fuzzy, python-format
-msgid "Language: %s\n"
-msgstr "Idioma"
-
-#, fuzzy
-msgid "Suppressed active dynamic hint"
-msgstr "Apagando documento"
-
-#, fuzzy
-msgid "Suppressed inactive dynamic hint"
-msgstr "Apagando documento"
-
-#, fuzzy, python-format
-msgid "Suppressed by: %s\n"
-msgstr "emitido por"
-
-#, fuzzy, python-format
-msgid "Suppressed at: %s\n"
-msgstr "Exportado: %s\n"
-
-#, fuzzy, python-format
-msgid "Hint #: %s\n"
-msgstr "Paciente"
-
-#, fuzzy, python-format
-msgid "Patient #: %s\n"
-msgstr "Paciente"
-
-#, fuzzy, python-format
-msgid "MD5 (currently): %s\n"
-msgstr "Documentos: %s"
-
-#, python-format
-msgid "MD5 (at suppression): %s\n"
-msgstr ""
+msgid "%s bytes"
+msgstr "%s Bytes"
 
 msgid "HL7 Message"
 msgstr ""
@@ -7176,13 +7460,6 @@ msgstr "Arquivo de Log"
 msgid "doc: %s"
 msgstr "   Doc: %s"
 
-msgid "no patient photograph available"
-msgstr ""
-
-#, python-format
-msgid "patient photograph from %s"
-msgstr ""
-
 #, fuzzy
 msgid "Patient data for"
 msgstr "Paciente"
@@ -7194,6 +7471,9 @@ msgstr ""
 msgid "Patient data export"
 msgstr "Enviar relatório"
 
+msgid "no patient photograph available"
+msgstr ""
+
 msgid "Documents"
 msgstr ""
 
@@ -7204,6 +7484,10 @@ msgstr ""
 msgid "browse documents area"
 msgstr "somente documentos adicionados"
 
+#, python-format
+msgid "patient photograph from %s"
+msgstr ""
+
 #, fuzzy
 msgid "Browse patient data"
 msgstr "Agrupar pacientes"
@@ -7250,24 +7534,24 @@ msgstr ""
 #, python-format
 msgid ""
 "%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s %(suburb)s, "
-"%(code_state)s, %(code_country)s"
+"%(code_region)s, %(code_country)s"
 msgstr ""
 
 #, python-format
 msgid ""
 "%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s %(suburb)s, "
-"%(code_state)s, %(code_country)s"
+"%(code_region)s, %(code_country)s"
 msgstr ""
 
 #, python-format
 msgid ""
-"%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_state)s, "
-"%(code_country)s"
+"%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, "
+"%(code_region)s, %(code_country)s"
 msgstr ""
 
 #, python-format
 msgid ""
-"%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_state)s, "
+"%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_region)s, "
 "%(code_country)s"
 msgstr ""
 
@@ -7277,7 +7561,7 @@ msgid ""
 " Street: %(street)s%(notes_street)s\n"
 " Number/Unit: %(number)s%(subunit)s%(notes_subunit)s\n"
 " Location: %(zip)s %(urb)s%(suburb)s\n"
-" Region: %(l10n_state)s, %(code_state)s\n"
+" Region: %(l10n_region)s, %(code_region)s\n"
 " Country: %(l10n_country)s, %(code_country)s"
 msgstr ""
 
@@ -7287,7 +7571,7 @@ msgid ""
 " Street: %(street)s%(notes_street)s\n"
 " Number/Unit: %(number)s%(subunit)s%(notes_subunit)s\n"
 " Location: %(zip)s %(urb)s%(suburb)s\n"
-" Region: %(l10n_state)s, %(code_state)s\n"
+" Region: %(l10n_region)s, %(code_region)s\n"
 " Country: %(l10n_country)s, %(code_country)s"
 msgstr ""
 
@@ -7358,6 +7642,97 @@ msgstr "resultado corrigido"
 msgid "missing, reported later"
 msgstr "em falta, relatado mais tarde"
 
+msgid "Health issue"
+msgstr "Problema de Saúde"
+
+#, fuzzy
+msgid "External care"
+msgstr "ID externa do paciente"
+
+msgid "Vaccination"
+msgstr "Vacinação"
+
+#, fuzzy
+msgid "Clinical narrative"
+msgstr "Anotações Clínicas"
+
+#, fuzzy
+msgid "Test result"
+msgstr "Resultados dos exames"
+
+#, fuzzy
+msgid "Substance intake"
+msgstr "Substância"
+
+#, fuzzy
+msgid "Hospital stay"
+msgstr "População"
+
+#, fuzzy
+msgid "Performed procedure"
+msgstr ""
+" %s Procedimentos efectuados\n"
+"\n"
+
+#, fuzzy
+msgid "Family history"
+msgstr "Apagando documento"
+
+#, fuzzy
+msgid "Document"
+msgstr "Documentos:"
+
+#, python-format
+msgid "unmapped entry type from table [%s]"
+msgstr ""
+
+#, python-format
+msgid "cannot instantiate clinical root item <%s(%s)>"
+msgstr ""
+
+msgid "True"
+msgstr ""
+
+msgid "False"
+msgstr ""
+
+#, fuzzy
+msgid "unknown smoking status"
+msgstr "Editando canal de comunicações"
+
+msgid "non-smoker"
+msgstr ""
+
+#, fuzzy
+msgid "current smoker"
+msgstr "Consulta Atual"
+
+msgid "ex-smoker"
+msgstr ""
+
+msgid "tobacco addiction"
+msgstr ""
+
+msgid "no or non-harmful alcohol use"
+msgstr ""
+
+msgid "harmful alcohol use"
+msgstr ""
+
+#, fuzzy
+msgid "unknown alcohol use"
+msgstr "Alergia de origem desconhecida"
+
+msgid "no or non-harmful drug use"
+msgstr ""
+
+msgid "harmful drug use"
+msgstr ""
+
+#, fuzzy
+msgid "unknown drug use"
+msgstr "Alergia de origem desconhecida"
+
 msgid "original entry"
 msgstr "entrada original"
 
@@ -7465,14 +7840,6 @@ msgstr "Profissão"
 msgid "Vaccinations"
 msgstr "Vacinas"
 
-#, python-format
-msgid "%s ago"
-msgstr ""
-
-#, fuzzy
-msgid "External care"
-msgstr "ID externa do paciente"
-
 #, fuzzy
 msgid "Allergies/Intolerances"
 msgstr "alergias/intolerâncias"
@@ -7561,79 +7928,131 @@ msgid ""
 "The account was deactivated instead."
 msgstr ""
 
-#, python-format
-msgid "Device(%s):"
-msgstr "Dispositivo(%s):"
+msgid "SOAP_char_S=S"
+msgstr ""
 
-msgid "Battery:"
-msgstr "Bateria:"
+msgid "SOAP_char_O=O"
+msgstr ""
 
-msgid "Implanted:"
-msgstr "Implantado:"
+msgid "SOAP_char_A=A"
+msgstr ""
 
-msgid "last check:"
-msgstr "Última verificação:"
+msgid "SOAP_char_P=P"
+msgstr ""
 
-msgid "Sensing:"
-msgstr "Sensorial:"
+msgid "SOAP_char_U=U"
+msgstr ""
 
-msgid "Threshold"
-msgstr "Limiar"
+msgid "SOAP_string_Subjective=Subjective"
+msgstr ""
 
-msgid "Impedance:"
-msgstr "Impedância:"
+msgid "SOAP_string_Objective=Objective"
+msgstr ""
 
-#, fuzzy, python-format
-msgid "Praxis branch                   #%s\n"
-msgstr "Episódio %s%s%s (%s%s)   [#%s]\n"
+msgid "SOAP_string_Assessment=Assessment"
+msgstr ""
 
-msgid "Privacy notice"
+msgid "SOAP_string_Plan=Plan"
 msgstr ""
 
-#, python-format
-msgid ""
-"%s: Your chart has been accessed by %s (without user interaction, probably "
-"by a script)."
+msgid "SOAP_string_Unspecified=Unspecified"
 msgstr ""
 
-#, python-format
-msgid "%s: Staff member %s has been notified of your chart access."
+msgid "SOAP_string_Administrative=Administrative"
 msgstr ""
 
-msgid "soap_S"
-msgstr "soap_S"
+#, fuzzy
+msgid "Active clinical hint"
+msgstr "Problemas activos"
 
-msgid "soap_O"
-msgstr "soap_O"
+#, fuzzy
+msgid "Inactive clinical hint"
+msgstr "Clinicamente não relevante"
 
-msgid "soap_A"
-msgstr "soap_A"
+#, python-format
+msgid "Source: %s\n"
+msgstr ""
 
-msgid "soap_P"
-msgstr "soap_P"
+#, fuzzy, python-format
+msgid "Language: %s\n"
+msgstr "Idioma"
 
 #, fuzzy
-msgid "soap_U"
-msgstr "soap_S"
+msgid "Suppressed active dynamic hint"
+msgstr "Apagando documento"
 
-msgid "soap_Subjective"
-msgstr "soap_Subjectivo"
+#, fuzzy
+msgid "Suppressed inactive dynamic hint"
+msgstr "Apagando documento"
 
-msgid "soap_Objective"
-msgstr "soap_Objective"
+#, fuzzy, python-format
+msgid "Suppressed by: %s\n"
+msgstr "emitido por"
+
+#, fuzzy, python-format
+msgid "Suppressed at: %s\n"
+msgstr "Exportado: %s\n"
 
-msgid "soap_Assessment"
-msgstr "soap_Assessment"
+#, fuzzy, python-format
+msgid "Hint #: %s\n"
+msgstr "Paciente"
 
-msgid "soap_Plan"
-msgstr "soap_Plan"
+#, fuzzy, python-format
+msgid "Patient #: %s\n"
+msgstr "Paciente"
 
-#, fuzzy
-msgid "soap_Unspecified"
-msgstr "soap_Objective"
+#, fuzzy, python-format
+msgid "MD5 (currently): %s\n"
+msgstr "Documentos: %s"
+
+#, python-format
+msgid "MD5 (at suppression): %s\n"
+msgstr ""
+
+#, python-format
+msgid "Device(%s):"
+msgstr "Dispositivo(%s):"
+
+msgid "Battery:"
+msgstr "Bateria:"
+
+msgid "Implanted:"
+msgstr "Implantado:"
+
+msgid "last check:"
+msgstr "Última verificação:"
+
+msgid "Sensing:"
+msgstr "Sensorial:"
+
+msgid "Threshold"
+msgstr "Limiar"
+
+msgid "Impedance:"
+msgstr "Impedância:"
+
+#, fuzzy, python-format
+msgid "Praxis branch                   #%s\n"
+msgstr "Episódio %s%s%s (%s%s)   [#%s]\n"
+
+#, python-format
+msgid ""
+"FN:%(l10n_unit_category)s %(branch)s of %(l10n_organization_category)s "
+"%(praxis)s"
+msgstr ""
+
+msgid "Privacy notice"
+msgstr ""
 
-msgid "soap_Administrative"
-msgstr "soap_Administrativo"
+#, python-format
+msgid ""
+"%s: Your chart has been accessed by %s (without user interaction, probably "
+"by a script)."
+msgstr ""
+
+#, python-format
+msgid "%s: Staff member %s has been notified of your chart access."
+msgstr ""
 
 #, fuzzy, python-format
 msgid ""
@@ -7703,9 +8122,17 @@ msgid "%(last)s,%(title)s %(first)s%(nick)s (%(sex)s)"
 msgstr ""
 
 #, python-format
+msgid "%(last)s,%(title)s %(first)s (%(sex)s)"
+msgstr ""
+
+#, python-format
 msgid "%(last)s,%(title)s %(first)s%(nick)s"
 msgstr ""
 
+#, python-format
+msgid "%(last)s,%(title)s %(first)s"
+msgstr ""
+
 msgid "Cannot merge active patient into another patient."
 msgstr "Não é possível fundir informação do paciente activo com outro"
 
@@ -7716,9 +8143,6 @@ msgstr ""
 msgid "merged"
 msgstr "Agrupar"
 
-msgid "preferred name/call name/..."
-msgstr ""
-
 #, fuzzy
 msgid "invalid age: DOB in the future"
 msgstr "Condição diagnosticada no futuro."
@@ -7733,10 +8157,6 @@ msgid "Mrs"
 msgstr "Sra"
 
 #, fuzzy
-msgid "unknown"
-msgstr "Desconhecido"
-
-#, fuzzy
 msgid "empty status"
 msgstr "rever estado"
 
@@ -8082,7 +8502,7 @@ msgstr ""
 "%s"
 
 #, fuzzy, python-format
-msgid " Filename: %s\n"
+msgid " Filename: %s%s\n"
 msgstr "Arquivo"
 
 #, fuzzy
@@ -8097,19 +8517,26 @@ msgstr "parte"
 msgid "%s parts"
 msgstr "(%s pacientes)"
 
+#, fuzzy, python-format
+msgid "%s of %s"
+msgstr " %s documentos\n"
+
 #, python-format
 msgid ""
 "%s (%s)   #%s\n"
-"\n"
 " Created: %s\n"
 " Episode: %s\n"
-"%s%s%s"
+"%s%s%s%s"
 msgstr ""
 
 #, python-format
 msgid " External reference: %s\n"
 msgstr ""
 
+#, fuzzy, python-format
+msgid " Organization: %%s @ %s\n"
+msgstr "Organização"
+
 msgid "Cannot run [arriba] !"
 msgstr ""
 
@@ -8469,26 +8896,9 @@ msgid "External care:"
 msgstr "ID externa do paciente"
 
 #, fuzzy, python-format
-msgid ""
-"health issue: %s%s%s\n"
-"\n"
+msgid "Health issue: %s%s%s"
 msgstr "problema de saúde: %s"
 
-#, fuzzy
-msgid ""
-"\n"
-"current values:\n"
-msgstr "<estado alérgico atual>"
-
-msgid "no previous versions of this record"
-msgstr ""
-
-msgid ""
-"\n"
-"all values with <audit_action>, <audit_when>, <audit_by> fields (current "
-"value first):\n"
-msgstr ""
-
 msgid "Unattributed episodes"
 msgstr "Unattributed episodes"
 
@@ -8511,9 +8921,6 @@ msgstr "Consultas: %s (%s - %s):"
 msgid "finished"
 msgstr "terminado"
 
-msgid "Health issue"
-msgstr "Problema de Saúde"
-
 msgid "none associated"
 msgstr ""
 
@@ -8550,9 +8957,7 @@ msgid "Measurements and Results:"
 msgstr "Medidas e resultados:"
 
 #, fuzzy, python-format
-msgid ""
-"episode: %s%s%s\n"
-"\n"
+msgid "Episode: %s%s%s"
 msgstr "Episódio %s%s%s (%s%s)   [#%s]\n"
 
 #, python-format
@@ -8581,9 +8986,7 @@ msgid "%s other episodes touched upon during this encounter:"
 msgstr ""
 
 #, fuzzy, python-format
-msgid ""
-"encounter: %s%s%s\n"
-"\n"
+msgid "Encounter: %s%s%s"
 msgstr "Consultas: %s (%s - %s):"
 
 msgid " (ongoing)"
@@ -8608,10 +9011,6 @@ msgstr "População"
 msgid "Procedures"
 msgstr ""
 
-#, fuzzy
-msgid "Substances"
-msgstr "Substância"
-
 msgid "Life events"
 msgstr ""
 
@@ -8636,9 +9035,6 @@ msgstr ""
 msgid "Cannot display timeline."
 msgstr "Criando um novo problema de saúde ..."
 
-msgid "Vaccination"
-msgstr "Vacinação"
-
 msgid "Lab result"
 msgstr "Resultado exame"
 
@@ -8721,9 +9117,6 @@ msgstr ""
 msgid "Exported: %s\n"
 msgstr "Exportado: %s\n"
 
-msgid "emr-journal"
-msgstr "rme-diário"
-
 msgid "Chronological EMR Journal\n"
 msgstr "Diário cronológico do registo médico electrónico\n"
 
@@ -9033,25 +9426,154 @@ msgstr ""
 msgid "Select one or more codes that apply."
 msgstr ""
 
-msgid "Cannot move progress notes. No active patient."
+msgid "Select the narrative you are interested in ..."
 msgstr ""
 
-msgid "Moving progress notes between encounters ..."
+msgid "when"
+msgstr ""
+
+msgid "who"
+msgstr ""
+
+msgid "entry"
+msgstr ""
+
+msgid "There is no narrative for this episode in this encounter."
+msgstr "Não há narrativa para esse episódio nessa consulta."
+
+msgid "Must select episode to move narrative to first."
+msgstr ""
+
+msgid "Last"
+msgstr "Sobrenome"
+
+#, fuzzy
+msgid "In health issue"
+msgstr "Problema de Saúde"
+
+msgid "Most recent notes on selected problem"
+msgstr ""
+
+#, python-format
+msgid "%s (active+potential) problems"
 msgstr ""
 
+#, python-format
+msgid "%s active problems"
+msgstr ""
+
+msgid "Current encounter:"
+msgstr "Consulta Atual"
+
+msgid "Cumulative summary"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "Most recent info on %s%s%s"
+msgstr " Mais recente: %s - %s"
+
+#, python-format
 msgid ""
+"Cannot open progress note editor for\n"
 "\n"
-" Select the progress notes to move from the list !\n"
+"[%s].\n"
 "\n"
 msgstr ""
 
-msgid "when"
+msgid "opening progress note editor"
 msgstr ""
 
-msgid "who"
+msgid "Cannot save all editors. Some were kept open."
 msgstr ""
 
-msgid "entry"
+msgid "new problem"
+msgstr ""
+
+msgid ""
+"Are you sure you really want to\n"
+"discard this progress note ?\n"
+msgstr ""
+
+msgid "Discarding progress note"
+msgstr ""
+
+msgid "There are unsaved progress notes !\n"
+msgstr ""
+
+msgid "Unsaved progress notes"
+msgstr ""
+
+#, fuzzy
+msgid "Problem list"
+msgstr "Problema"
+
+msgid "Saving SOAP note"
+msgstr ""
+
+#, fuzzy
+msgid "Do you want to save the SOAP note ?"
+msgstr ""
+"Você realmente quer apagar esse\n"
+"ID externo do paciente?"
+
+#, python-format
+msgid "&Filter by problem %s%s%s"
+msgstr ""
+
+#, fuzzy
+msgid "Cannot save SimpleNotes SOAP note."
+msgstr "Não foi possível salvar a consulta: tipo não foi deinido"
+
+#, fuzzy, python-format
+msgid "Progress note: %s%s"
+msgstr "Notas de Evolução"
+
+#, fuzzy
+msgid "Please enter a name for the new problem:"
+msgstr "Por favor digite sua frase senha:"
+
+msgid "Adding a problem"
+msgstr ""
+
+#, fuzzy
+msgid "Cannot delete problem. There is still clinical data recorded for it."
+msgstr ""
+"Não foi possível apagar o episódio. Ainda há dados clínicos armazenados para "
+"ele."
+
+#, python-format
+msgid "GNUmed: configuring [%s] (%s plugins)"
+msgstr ""
+
+msgid "loading list of plugins                               "
+msgstr ""
+
+msgid "failed"
+msgstr ""
+
+msgid "success"
+msgstr ""
+
+#, python-format
+msgid ""
+"previous: %s (%s)\n"
+"current (%s/%s): %s"
+msgstr ""
+
+#, python-format
+msgid "Cannot switch to [%s]: no patient selected"
+msgstr ""
+
+msgid "Cannot move progress notes. No active patient."
+msgstr ""
+
+msgid "Moving progress notes between encounters ..."
+msgstr ""
+
+msgid ""
+"\n"
+" Select the progress notes to move from the list !\n"
+"\n"
 msgstr ""
 
 msgid "Cannot edit progress notes. No active patient."
@@ -9268,672 +9790,401 @@ msgid ""
 " Now, mark the entries you want to include in your report.\n"
 msgstr ""
 
-msgid "Select the narrative you are interested in ..."
+msgid "Pick a date ..."
 msgstr ""
 
-msgid "There is no narrative for this episode in this encounter."
-msgstr "Não há narrativa para esse episódio nessa consulta."
-
-msgid "Must select episode to move narrative to first."
+msgid "<ALT-C/K>: pick from (c/k)alendar"
 msgstr ""
 
-msgid "Last"
-msgstr "Sobrenome"
-
-#, fuzzy
-msgid "In health issue"
-msgstr "Problema de Saúde"
+msgid "Cannot interpret input as timestamp."
+msgstr "Não foi possível interpretar a digitação como data válida."
 
-msgid "Most recent notes on selected problem"
-msgstr ""
+msgid "No vaccines were chosen"
+msgstr "Não foram selecionadas vacinas"
 
 #, python-format
-msgid "%s (active+potential) problems"
+msgid "Combination of indications , %s , not found in any vaccine"
 msgstr ""
 
-#, python-format
-msgid "%s active problems"
-msgstr ""
+msgid "Sequence"
+msgstr "Sequencia"
 
-msgid "Current encounter:"
-msgstr "Consulta Atual"
+msgid "Batch"
+msgstr "Lote"
 
-msgid "Cumulative summary"
+msgid "Vaccinator"
+msgstr "Vacinador"
+
+msgid ""
+"Vaccinations by Recommender (X = patient on regime, O = patient not on "
+"regime) "
 msgstr ""
+"Vacinações Recomendadas (X = paciente está atualizado, 0 = paciente não está "
+"atualizado) "
 
-#, fuzzy, python-format
-msgid "Most recent info on %s%s%s"
-msgstr " Mais recente: %s - %s"
+msgid "enrolled regime vaccinations not yet given"
+msgstr "vacinações para esse paciente ainda não disponíveis"
+
+#, fuzzy
+msgid "Proceed with "
+msgstr "Proceda com o login."
 
 #, python-format
-msgid ""
-"Cannot open progress note editor for\n"
-"\n"
-"[%s].\n"
-"\n"
-msgstr ""
+msgid "Failed to enrol patient in %s"
+msgstr "Falha ao alocar paciente ao regime de %s"
 
-msgid "opening progress note editor"
-msgstr ""
+#, python-format
+msgid "Failed to  delist patient from %s"
+msgstr "Falha ao remover o paciente de %s"
 
-msgid "Cannot save all editors. Some were kept open."
-msgstr ""
+msgid "Missing GNUmed module"
+msgstr "Fala o Módulo GNUmed"
 
-msgid "new problem"
+#, python-format
+msgid ""
+"GNUmed detected that parts of it are not\n"
+"properly installed. The following message\n"
+"names the missing part:\n"
+"\n"
+" \"%s\"\n"
+"\n"
+"Please make sure to get the missing\n"
+"parts installed. Otherwise some of the\n"
+"functionality will not be accessible."
 msgstr ""
 
+#, fuzzy, python-format
 msgid ""
-"Are you sure you really want to\n"
-"discard this progress note ?\n"
-msgstr ""
+"\n"
+" Source: %s"
+msgstr "Fontes das Porções"
 
-msgid "Discarding progress note"
-msgstr ""
+#, fuzzy, python-format
+msgid ""
+"\n"
+" Code: %s"
+msgstr "Fechado"
 
-msgid "There are unsaved progress notes !\n"
+#, python-format
+msgid ""
+"\n"
+" Details (first 250 characters):\n"
+"%s\n"
+"%s\n"
+"%s"
 msgstr ""
 
-msgid "Unsaved progress notes"
+msgid "Access violation"
 msgstr ""
 
 #, python-format
-msgid "Synopsis (%s)"
+msgid ""
+"You do not have access to this part of GNUmed.\n"
+"\n"
+"%s"
 msgstr ""
 
-msgid ""
-"Enter a short working name for this new problem\n"
-"(which will become a new, unassociated episode):\n"
+msgid "Lost connection"
 msgstr ""
 
-#, fuzzy, python-format
 msgid ""
-"Enter a short working name for this new\n"
-"episode under the existing health issue\n"
+"Since you were last working in GNUmed,\n"
+"your database connection timed out.\n"
 "\n"
-"\"%s\":\n"
-msgstr "Digite um nome para esse novo problema de saúde"
-
-msgid "Creating problem (episode) to save notelet under ..."
+"This GNUmed session is now expired.\n"
+"\n"
+"You will have to close this client and\n"
+"restart a new GNUmed session."
 msgstr ""
 
-msgid "Cannot save a new problem without a name."
+msgid ""
+"Please enter a short note on what you\n"
+"were about to do in GNUmed:"
 msgstr ""
+"Coloque uma pequena discrição do que\n"
+"estava fazendo com o GNUmed:"
 
-msgid "saving progress note"
+msgid "Sending bug report"
+msgstr "Enviando relatório de erro"
+
+msgid ""
+"Edit the list of email addresses to send the\n"
+"bug report to (separate addresses by spaces).\n"
+"\n"
+"Note that <gnumed-bugs at gnu.org> refers to\n"
+"the public (!) GNUmed bugs mailing list."
 msgstr ""
 
 #, python-format
 msgid ""
-"The new episode:\n"
+"Your bug report will be sent to:\n"
 "\n"
-" \"%s\"\n"
+"%s\n"
 "\n"
-"will remain unassociated despite the editor\n"
-"having been invoked from the health issue:\n"
+"Make sure you have reviewed the log file for potentially\n"
+"sensitive information before sending out the bug report.\n"
 "\n"
-" \"%s\""
+"Note that emailing the report may take a while depending\n"
+"on the speed of your internet connection.\n"
 msgstr ""
-"O novo episódio:\n"
+"Seu relatório de erros será enviado para: \n"
 "\n"
-" \"%s\"\n"
+"%s\n"
 "\n"
-"continuará não associado mesmo sendo iniciado\n"
-"de dentro do problema de saúde:\n"
+"Tenha certeza que você já editou o arquivo de log para que não\n"
+"envie informações potencialmente perigosas antes de mandar o relatório\n"
 "\n"
-" \"%s\""
+"Repare que enviar o relatório de erro pode demorar, dependendo de sua\n"
+"velocidade de internet.\n"
 
-msgid "You need to actually set an editor."
-msgstr ""
+msgid "Yes, send the bug report."
+msgstr "Sim enviar o relatório de erro."
 
-#, python-format
-msgid "The command [%s] is not found."
-msgstr ""
+msgid "No, do not send the bug report."
+msgstr "Não, não enviar o relatório de erro."
+
+msgid "include log file in bug report"
+msgstr "incluir o arquivo de log no relatório de erro"
 
-#, python-format
 msgid ""
-"Enter the shell command with which to start\n"
-"the image editor for visual progress notes.\n"
+"The database you are connected to is marked as\n"
+"\"in-production with controlled access\".\n"
 "\n"
-"Any \"%(img)s\" included with the arguments\n"
-"will be replaced by the file name of the\n"
-"note template."
+"You indicated that you want to include the log\n"
+"file in your bug report. While this is often\n"
+"useful for debugging the log file might contain\n"
+"bits of patient data which must not be sent out\n"
+"without de-identification.\n"
+"\n"
+"Please confirm that you want to include the log !"
 msgstr ""
+"O banco de dados ao qual você está conectado está\n"
+"marcado como \"em produção com controle de acesso\".\n"
+"\n"
+"Você indicou que quer incluir o arquivo de log no relatório\n"
+"de erro. Embora isso ajude na hora de consertar o erro,\n"
+"o log pode conter informações do paciente que não devem ser\n"
+"enviadas sem se retirar a identificação do mesmo.\n"
+"\n"
+"\n"
+"Confirme que mesmo assim quer incluir o log !"
 
-msgid "Choose file to use as template for new visual progress note"
-msgstr ""
+msgid "<not supplied>"
+msgstr "<not supplied>"
 
-#, fuzzy
-msgid "Visual progress note source"
-msgstr "Editar Notas de Evolução"
+msgid "Bug report has been emailed."
+msgstr "Relatório de Erro foi enviado."
 
-msgid "From which source do you want to pick the image template ?"
+msgid "Bug report COULD NOT be emailed."
 msgstr ""
 
-#, fuzzy
-msgid "Database"
-msgstr "Banco de Dados ..."
-
-#, fuzzy
-msgid "List of templates in the database."
-msgstr "Salvar os dados no banco de dados"
+msgid "Underweight"
+msgstr "Magreza"
 
-msgid "Files in the filesystem."
-msgstr ""
+msgid "63< Normal >79"
+msgstr "63< Normal >79"
 
-msgid "Device"
-msgstr ""
+msgid "63 - Normal - 79"
+msgstr "63 - Normal - 79"
 
-msgid "Image capture devices (scanners, cameras, etc)"
-msgstr ""
+msgid "Overweight"
+msgstr "Sobrepeso"
 
-#, python-format
-msgid "Cannot export visual progress note template for [%s]."
-msgstr ""
+msgid "Obese"
+msgstr "Obesidade"
 
-msgid "Cannot export visual progress note to file."
-msgstr ""
+msgid "Current height/mass"
+msgstr "Atual altura/peso"
 
-msgid "Editor for visual progress note not configured."
-msgstr ""
+msgid "Height (cm)"
+msgstr "Altura (cm)"
 
-#, python-format
-msgid ""
-"There was a problem with running the editor\n"
-"for visual progress notes.\n"
-"\n"
-" [%s]\n"
-"\n"
-msgstr ""
+msgid "Mass (kg)"
+msgstr "Peso (kg)"
 
-msgid "Editing visual progress note"
-msgstr ""
+msgid "Adjusted Values"
+msgstr "Valores ajustados"
 
-#, python-format
-msgid ""
-"There was a problem reading the visual\n"
-"progress note from the file:\n"
-"\n"
-" [%s]\n"
-"\n"
-msgstr ""
+msgid "Goal mass"
+msgstr "Peso ideal"
 
-msgid "Saving visual progress note"
+msgid "kg to lose"
+msgstr "kg a perder"
+
+msgid "BMI Calculator"
+msgstr "Calculadora de IMC"
+
+msgid "&Reset"
+msgstr "&Limpar"
+
+msgid "Select a healthcare provider."
 msgstr ""
 
-msgid ""
-"You either created a visual progress note from a template\n"
-"in the database (rather than from a file on disk) or you\n"
-"edited an existing visual progress note.\n"
-"\n"
-"The template/original was not modified at all, however.\n"
-"\n"
-"Do you still want to save the unmodified image as a\n"
-"visual progress note into the EMR of the patient ?\n"
+msgid "Public (no clinical or demographic access)"
 msgstr ""
 
-msgid "visual progress notes"
+msgid "Staff (demographic access only)"
 msgstr ""
 
-#, python-format
-msgid "Created: %s"
+msgid "staff (clerical)"
 msgstr ""
 
-#, fuzzy
-msgid "Problem list"
-msgstr "Problema"
+msgid "full clinical access"
+msgstr ""
 
-msgid "Saving SOAP note"
+msgid "DB account"
 msgstr ""
 
-#, fuzzy
-msgid "Do you want to save the SOAP note ?"
+msgid "can login"
 msgstr ""
-"Você realmente quer apagar esse\n"
-"ID externo do paciente?"
 
-#, python-format
-msgid "&Filter by problem %s%s%s"
+msgid "can not login"
 msgstr ""
 
-#, fuzzy
-msgid "Cannot save SimpleNotes SOAP note."
-msgstr "Não foi possível salvar a consulta: tipo não foi deinido"
+msgid "Activating GNUmed user."
+msgstr ""
 
-#, fuzzy, python-format
-msgid "Progress note: %s%s"
-msgstr "Notas de Evolução"
+msgid "Deactivating GNUmed user."
+msgstr ""
 
 #, fuzzy
-msgid "Please enter a name for the new problem:"
-msgstr "Por favor digite sua frase senha:"
-
-msgid "Adding a problem"
-msgstr ""
+msgid "Removing GNUmed user."
+msgstr "Fala o Módulo GNUmed"
 
 #, fuzzy
-msgid "Cannot delete problem. There is still clinical data recorded for it."
-msgstr ""
-"Não foi possível apagar o episódio. Ainda há dados clínicos armazenados para "
-"ele."
+msgid "Removing GNUmed user"
+msgstr "Fala o Módulo GNUmed"
 
-#, python-format
-msgid "GNUmed: configuring [%s] (%s plugins)"
+msgid "Modifying GNUmed user."
 msgstr ""
 
-msgid "loading list of plugins                               "
+msgid "Failed to save changes to GNUmed database user."
 msgstr ""
 
-msgid "failed"
+msgid "Modifying GNUmed user"
 msgstr ""
 
-msgid "success"
+#, python-format
+msgid "Failed to set role [%s] for GNUmed database user."
 msgstr ""
 
 #, python-format
 msgid ""
-"previous: %s (%s)\n"
-"current (%s/%s): %s"
+"\n"
+"  %s \"%s\" %s\n"
+"  born: %s"
 msgstr ""
 
-#, python-format
-msgid "Cannot switch to [%s]: no patient selected"
+msgid ""
+"Password entries do not match. Please type in the passwords again to rule "
+"out typos."
 msgstr ""
 
-msgid "Pick a date ..."
+msgid "Adding GNUmed user"
 msgstr ""
 
-msgid "<ALT-C/K>: pick from (c/k)alendar"
+msgid ""
+"Are you positively sure you want to create\n"
+"a user with an empty password ?\n"
+"\n"
+"Think about the record access implications !"
 msgstr ""
 
-msgid "Cannot interpret input as timestamp."
-msgstr "Não foi possível interpretar a digitação como data válida."
-
-msgid "No vaccines were chosen"
-msgstr "Não foram selecionadas vacinas"
-
-#, python-format
-msgid "Combination of indications , %s , not found in any vaccine"
+msgid "Enlisting person as user."
 msgstr ""
 
-msgid "Sequence"
-msgstr "Sequencia"
+msgid "Encrypt"
+msgstr "Encriptar"
 
-msgid "Batch"
-msgstr "Lote"
+msgid "Decrypt"
+msgstr "Decriptar"
 
-msgid "Vaccinator"
-msgstr "Vacinador"
+msgid "Set pass phrase"
+msgstr "Configurar a frase / senha"
 
-msgid ""
-"Vaccinations by Recommender (X = patient on regime, O = patient not on "
-"regime) "
-msgstr ""
-"Vacinações Recomendadas (X = paciente está atualizado, 0 = paciente não está "
-"atualizado) "
+msgid "This is not correctly encrypted text!"
+msgstr "Esse texto não foi encriptado corretamente"
 
-msgid "enrolled regime vaccinations not yet given"
-msgstr "vacinações para esse paciente ainda não disponíveis"
+msgid "Please enter your pass phrase:"
+msgstr "Por favor digite sua frase senha:"
 
-#, fuzzy
-msgid "Proceed with "
-msgstr "Proceda com o login."
+msgid "Pass phrase expired"
+msgstr "Frase senha expirou"
 
-#, python-format
-msgid "Failed to enrol patient in %s"
-msgstr "Falha ao alocar paciente ao regime de %s"
+msgid ""
+"\n"
+"Conditions preventable by vaccination as currently known to GNUmed.\n"
+msgstr ""
 
-#, python-format
-msgid "Failed to  delist patient from %s"
-msgstr "Falha ao remover o paciente de %s"
+msgid "Showing vaccination preventable conditions."
+msgstr ""
 
-msgid "Missing GNUmed module"
-msgstr "Fala o Módulo GNUmed"
+msgid "ATCs: single-condition vaccines"
+msgstr ""
 
-#, python-format
-msgid ""
-"GNUmed detected that parts of it are not\n"
-"properly installed. The following message\n"
-"names the missing part:\n"
-"\n"
-" \"%s\"\n"
-"\n"
-"Please make sure to get the missing\n"
-"parts installed. Otherwise some of the\n"
-"functionality will not be accessible."
+msgid "ATCs: multi-condition vaccines"
 msgstr ""
 
-#, fuzzy, python-format
-msgid ""
-"\n"
-" Source: %s"
-msgstr "Fontes das Porções"
+msgid "Pick the relevant indications."
+msgstr ""
 
-#, fuzzy, python-format
-msgid ""
-"\n"
-" Code: %s"
-msgstr "Fechado"
+#, fuzzy
+msgid "Known indications"
+msgstr "Condição"
 
-#, python-format
-msgid ""
-"\n"
-" Details (first 250 characters):\n"
-"%s\n"
-"%s\n"
-"%s"
+msgid "Adding new vaccine"
 msgstr ""
 
-msgid "Access violation"
+msgid "Editing vaccine"
 msgstr ""
 
 #, python-format
 msgid ""
-"You do not have access to this part of GNUmed.\n"
+"Cannot delete vaccine\n"
 "\n"
-"%s"
+" %s - %s (#%s)\n"
+"\n"
+"It is probably documented in a vaccination."
 msgstr ""
 
-msgid "Lost connection"
+msgid "Deleting vaccine"
+msgstr ""
+
+msgid "fake"
 msgstr ""
 
 msgid ""
-"Since you were last working in GNUmed,\n"
-"your database connection timed out.\n"
-"\n"
-"This GNUmed session is now expired.\n"
 "\n"
-"You will have to close this client and\n"
-"restart a new GNUmed session."
+"The vaccines currently known to GNUmed.\n"
 msgstr ""
 
-msgid ""
-"Please enter a short note on what you\n"
-"were about to do in GNUmed:"
+msgid "Showing vaccines."
 msgstr ""
-"Coloque uma pequena discrição do que\n"
-"estava fazendo com o GNUmed:"
 
-msgid "Sending bug report"
-msgstr "Enviando relatório de erro"
+msgid "Enter or select the batch/lot number of the vaccine used."
+msgstr ""
 
-msgid ""
-"Edit the list of email addresses to send the\n"
-"bug report to (separate addresses by spaces).\n"
-"\n"
-"Note that <gnumed-bugs at gnu.org> refers to\n"
-"the public (!) GNUmed bugs mailing list."
+msgid "Saving vaccine"
 msgstr ""
 
 #, python-format
 msgid ""
-"Your bug report will be sent to:\n"
+"This vaccine is already in use:\n"
 "\n"
-"%s\n"
+" \"%s\"\n"
+" (%s)\n"
 "\n"
-"Make sure you have reviewed the log file for potentially\n"
-"sensitive information before sending out the bug report.\n"
+"Are you absolutely positively sure that\n"
+"you really want to edit this vaccine ?\n"
 "\n"
-"Note that emailing the report may take a while depending\n"
-"on the speed of your internet connection.\n"
+"This will change the vaccine name and/or target\n"
+"conditions in each patient this vaccine was\n"
+"used in to document a vaccination with.\n"
 msgstr ""
-"Seu relatório de erros será enviado para: \n"
-"\n"
-"%s\n"
-"\n"
-"Tenha certeza que você já editou o arquivo de log para que não\n"
-"envie informações potencialmente perigosas antes de mandar o relatório\n"
-"\n"
-"Repare que enviar o relatório de erro pode demorar, dependendo de sua\n"
-"velocidade de internet.\n"
 
-msgid "Yes, send the bug report."
-msgstr "Sim enviar o relatório de erro."
-
-msgid "No, do not send the bug report."
-msgstr "Não, não enviar o relatório de erro."
-
-msgid "include log file in bug report"
-msgstr "incluir o arquivo de log no relatório de erro"
-
-msgid ""
-"The database you are connected to is marked as\n"
-"\"in-production with controlled access\".\n"
-"\n"
-"You indicated that you want to include the log\n"
-"file in your bug report. While this is often\n"
-"useful for debugging the log file might contain\n"
-"bits of patient data which must not be sent out\n"
-"without de-identification.\n"
-"\n"
-"Please confirm that you want to include the log !"
-msgstr ""
-"O banco de dados ao qual você está conectado está\n"
-"marcado como \"em produção com controle de acesso\".\n"
-"\n"
-"Você indicou que quer incluir o arquivo de log no relatório\n"
-"de erro. Embora isso ajude na hora de consertar o erro,\n"
-"o log pode conter informações do paciente que não devem ser\n"
-"enviadas sem se retirar a identificação do mesmo.\n"
-"\n"
-"\n"
-"Confirme que mesmo assim quer incluir o log !"
-
-msgid "<not supplied>"
-msgstr "<not supplied>"
-
-msgid "Bug report has been emailed."
-msgstr "Relatório de Erro foi enviado."
-
-msgid "Bug report COULD NOT be emailed."
-msgstr ""
-
-msgid "Underweight"
-msgstr "Magreza"
-
-msgid "63< Normal >79"
-msgstr "63< Normal >79"
-
-msgid "63 - Normal - 79"
-msgstr "63 - Normal - 79"
-
-msgid "Overweight"
-msgstr "Sobrepeso"
-
-msgid "Obese"
-msgstr "Obesidade"
-
-msgid "Current height/mass"
-msgstr "Atual altura/peso"
-
-msgid "Height (cm)"
-msgstr "Altura (cm)"
-
-msgid "Mass (kg)"
-msgstr "Peso (kg)"
-
-msgid "Adjusted Values"
-msgstr "Valores ajustados"
-
-msgid "Goal mass"
-msgstr "Peso ideal"
-
-msgid "kg to lose"
-msgstr "kg a perder"
-
-msgid "BMI Calculator"
-msgstr "Calculadora de IMC"
-
-msgid "&Reset"
-msgstr "&Limpar"
-
-msgid "Select a healthcare provider."
-msgstr ""
-
-msgid "Public (no clinical or demographic access)"
-msgstr ""
-
-msgid "Staff (demographic access only)"
-msgstr ""
-
-msgid "staff (clerical)"
-msgstr ""
-
-msgid "full clinical access"
-msgstr ""
-
-msgid "DB account"
-msgstr ""
-
-msgid "can login"
-msgstr ""
-
-msgid "can not login"
-msgstr ""
-
-msgid "Activating GNUmed user."
-msgstr ""
-
-msgid "Deactivating GNUmed user."
-msgstr ""
-
-#, fuzzy
-msgid "Removing GNUmed user."
-msgstr "Fala o Módulo GNUmed"
-
-#, fuzzy
-msgid "Removing GNUmed user"
-msgstr "Fala o Módulo GNUmed"
-
-msgid "Modifying GNUmed user."
-msgstr ""
-
-msgid "Failed to save changes to GNUmed database user."
-msgstr ""
-
-msgid "Modifying GNUmed user"
-msgstr ""
-
-#, python-format
-msgid "Failed to set role [%s] for GNUmed database user."
-msgstr ""
-
-#, python-format
-msgid ""
-"\n"
-"  %s \"%s\" %s\n"
-"  born: %s"
-msgstr ""
-
-msgid ""
-"Password entries do not match. Please type in the passwords again to rule "
-"out typos."
-msgstr ""
-
-msgid "Adding GNUmed user"
-msgstr ""
-
-msgid ""
-"Are you positively sure you want to create\n"
-"a user with an empty password ?\n"
-"\n"
-"Think about the record access implications !"
-msgstr ""
-
-msgid "Enlisting person as user."
-msgstr ""
-
-msgid "Encrypt"
-msgstr "Encriptar"
-
-msgid "Decrypt"
-msgstr "Decriptar"
-
-msgid "Set pass phrase"
-msgstr "Configurar a frase / senha"
-
-msgid "This is not correctly encrypted text!"
-msgstr "Esse texto não foi encriptado corretamente"
-
-msgid "Please enter your pass phrase:"
-msgstr "Por favor digite sua frase senha:"
-
-msgid "Pass phrase expired"
-msgstr "Frase senha expirou"
-
-msgid ""
-"\n"
-"Conditions preventable by vaccination as currently known to GNUmed.\n"
-msgstr ""
-
-msgid "Showing vaccination preventable conditions."
-msgstr ""
-
-msgid "ATCs: single-condition vaccines"
-msgstr ""
-
-msgid "ATCs: multi-condition vaccines"
-msgstr ""
-
-msgid "Pick the relevant indications."
-msgstr ""
-
-#, fuzzy
-msgid "Known indications"
-msgstr "Condição"
-
-msgid "Adding new vaccine"
-msgstr ""
-
-msgid "Editing vaccine"
-msgstr ""
-
-#, python-format
-msgid ""
-"Cannot delete vaccine\n"
-"\n"
-" %s - %s (#%s)\n"
-"\n"
-"It is probably documented in a vaccination."
-msgstr ""
-
-msgid "Deleting vaccine"
-msgstr ""
-
-msgid "fake"
-msgstr ""
-
-msgid ""
-"\n"
-"The vaccines currently known to GNUmed.\n"
-msgstr ""
-
-msgid "Showing vaccines."
-msgstr ""
-
-msgid "Enter or select the batch/lot number of the vaccine used."
-msgstr ""
-
-msgid "Saving vaccine"
-msgstr ""
-
-#, python-format
-msgid ""
-"This vaccine is already in use:\n"
-"\n"
-" \"%s\"\n"
-" (%s)\n"
-"\n"
-"Are you absolutely positively sure that\n"
-"you really want to edit this vaccine ?\n"
-"\n"
-"This will change the vaccine name and/or target\n"
-"conditions in each patient this vaccine was\n"
-"used in to document a vaccination with.\n"
-msgstr ""
-
-#, fuzzy
-msgid "You must select at least one indication."
-msgstr "Você deve selecionar um modelo de aquivo antes de salvar."
+#, fuzzy
+msgid "You must select at least one indication."
+msgstr "Você deve selecionar um modelo de aquivo antes de salvar."
 
 msgid "Pick the diseases this vaccine protects against."
 msgstr ""
@@ -10041,15 +10292,86 @@ msgstr ""
 msgid "due now: booster for %s in schedule \"%s\" (%s)"
 msgstr ""
 
-#, fuzzy, python-format
-msgid "Latest: %s ago (%s %s %s %s%s)"
-msgstr "  Seu horário: %s - %s (@%s = %s%s)\n"
+#, python-format
+msgid "Synopsis (%s)"
+msgstr ""
 
-#, fuzzy, python-format
-msgid "%s %s %s %s (%s ago, %s)"
+msgid ""
+"Enter a short working name for this new problem\n"
+"(which will become a new, unassociated episode):\n"
 msgstr ""
-"%s: %s by %.8s\n"
-"%s"
+
+#, fuzzy, python-format
+msgid ""
+"Enter a short working name for this new\n"
+"episode under the existing health issue\n"
+"\n"
+"\"%s\":\n"
+msgstr "Digite um nome para esse novo problema de saúde"
+
+msgid "Creating problem (episode) to save notelet under ..."
+msgstr ""
+
+msgid "Cannot save a new problem without a name."
+msgstr ""
+
+msgid "saving progress note"
+msgstr ""
+
+#, python-format
+msgid ""
+"The new episode:\n"
+"\n"
+" \"%s\"\n"
+"\n"
+"will remain unassociated despite the editor\n"
+"having been invoked from the health issue:\n"
+"\n"
+" \"%s\""
+msgstr ""
+"O novo episódio:\n"
+"\n"
+" \"%s\"\n"
+"\n"
+"continuará não associado mesmo sendo iniciado\n"
+"de dentro do problema de saúde:\n"
+"\n"
+" \"%s\""
+
+#, fuzzy
+msgid "Adding substance abuse"
+msgstr "Adicionando novo nome"
+
+#, fuzzy
+msgid "Editing substance abuse"
+msgstr "Editando endereço"
+
+msgid "Substances abused by the patient:"
+msgstr ""
+
+#, fuzzy
+msgid "Showing abused substances."
+msgstr "Agrupar pacientes"
+
+msgid "Intake"
+msgstr ""
+
+msgid "nicotine"
+msgstr ""
+
+#, fuzzy
+msgid "unit"
+msgstr "unidades"
+
+#, fuzzy, python-format
+msgid "Latest: %s ago (%s %s%s%s%s)"
+msgstr "  Seu horário: %s - %s (@%s = %s%s)\n"
+
+#, fuzzy, python-format
+msgid "%s %s%s%s (%s ago, %s)"
+msgstr ""
+"%s: %s by %.8s\n"
+"%s"
 
 #, fuzzy, python-format
 msgid "overdue %s: %s"
@@ -10059,6 +10381,13 @@ msgstr "Comentário: %s"
 msgid "due in %s%s"
 msgstr "Comentário: %s"
 
+msgid "suppr'd:"
+msgstr ""
+
+#, fuzzy
+msgid "Suppressed hints:\n"
+msgstr "Exportado: %s\n"
+
 #, fuzzy
 msgid ""
 "Do you really want to\n"
@@ -10116,10 +10445,17 @@ msgid ""
 msgstr ""
 
 #, fuzzy, python-format
-msgid "%s Vacc: %s"
+msgid "%s Vacc: %s (latest of %s)"
 msgstr "Fechado"
 
 #, fuzzy, python-format
+msgid "Hx of addiction: %s"
+msgstr "Hospitalizações: %s"
+
+msgid "active substance abuse"
+msgstr ""
+
+#, fuzzy, python-format
 msgid "%s %s %s%s"
 msgstr " Estado: %s, %s%s"
 
@@ -10294,6 +10630,106 @@ msgid ""
 "You will have to add it via the Demographics plugin.\n"
 msgstr ""
 
+msgid "You need to actually set an editor."
+msgstr ""
+
+#, python-format
+msgid "The command [%s] is not found."
+msgstr ""
+
+#, python-format
+msgid ""
+"Enter the shell command with which to start\n"
+"the image editor for visual progress notes.\n"
+"\n"
+"Any \"%(img)s\" included with the arguments\n"
+"will be replaced by the file name of the\n"
+"note template."
+msgstr ""
+
+msgid "Choose file to use as template for new visual progress note"
+msgstr ""
+
+#, fuzzy
+msgid "Visual progress note source"
+msgstr "Editar Notas de Evolução"
+
+msgid "From which source do you want to pick the image template ?"
+msgstr ""
+
+#, fuzzy
+msgid "Database"
+msgstr "Banco de Dados ..."
+
+#, fuzzy
+msgid "List of templates in the database."
+msgstr "Salvar os dados no banco de dados"
+
+msgid "Files in the filesystem."
+msgstr ""
+
+msgid "Device"
+msgstr ""
+
+msgid "Image capture devices (scanners, cameras, etc)"
+msgstr ""
+
+#, python-format
+msgid "Cannot export visual progress note template for [%s]."
+msgstr ""
+
+msgid "Cannot export visual progress note to file."
+msgstr ""
+
+msgid "Editor for visual progress note not configured."
+msgstr ""
+
+#, python-format
+msgid ""
+"There was a problem with running the editor\n"
+"for visual progress notes.\n"
+"\n"
+" [%s]\n"
+"\n"
+msgstr ""
+
+msgid "Editing visual progress note"
+msgstr ""
+
+#, python-format
+msgid ""
+"There was a problem reading the visual\n"
+"progress note from the file:\n"
+"\n"
+" [%s]\n"
+"\n"
+msgstr ""
+
+msgid "Saving visual progress note"
+msgstr ""
+
+msgid ""
+"You either created a visual progress note from a template\n"
+"in the database (rather than from a file on disk) or you\n"
+"edited an existing visual progress note.\n"
+"\n"
+"The template/original was not modified at all, however.\n"
+"\n"
+"Do you still want to save the unmodified image as a\n"
+"visual progress note into the EMR of the patient ?\n"
+msgstr ""
+
+msgid "visual progress notes"
+msgstr ""
+
+#, python-format
+msgid " [part 1 of %s]"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "Created: %s%s"
+msgstr "Episódio Selecionado."
+
 msgid "You must select a value from the picklist or type an exact match."
 msgstr ""
 
@@ -10375,7 +10811,8 @@ msgstr ""
 
 #, python-format
 msgid ""
-"%(street)s %(number)s, %(postcode)s %(urb)s, %(l10n_state)s, %(l10n_country)s"
+"%(street)s %(number)s, %(postcode)s %(urb)s, %(l10n_region)s, "
+"%(l10n_country)s"
 msgstr ""
 
 #, python-format
@@ -11008,7 +11445,7 @@ msgstr "Salvando dados do contato"
 msgid ""
 "Cannot save address.\n"
 "\n"
-"Does the state [%s]\n"
+"Does the region [%s]\n"
 "exist in country [%s] ?"
 msgstr ""
 
@@ -11465,8 +11902,9 @@ msgstr "Comentário: %s"
 msgid "Reminders for the current patient"
 msgstr "Escrever uma carta para o paciente atual."
 
-msgid "Sent"
-msgstr ""
+#, fuzzy
+msgid "Generated"
+msgstr "Generalizado"
 
 #, fuzzy
 msgid "Category - Type"
@@ -11515,9 +11953,6 @@ msgid ""
 "Data: %s"
 msgstr ""
 
-msgid "Inbox Message Actions:"
-msgstr ""
-
 msgid "Activate patient"
 msgstr ""
 
@@ -12244,7 +12679,7 @@ msgid ""
 msgstr ""
 
 #, python-format
-msgid "Select branch (of praxis [%s]) which you are logging in from.\n"
+msgid "Select the branch of praxis [%s] which you are logging in from.\n"
 msgstr ""
 
 msgid "Praxis branch selection ..."
@@ -12571,6 +13006,14 @@ msgstr "Selecione um endereço por CEP ou nome da rua."
 msgid "List of addresses related to this person."
 msgstr "Mover dados para outro episódio"
 
+#, fuzzy
+msgid "Map"
+msgstr "Sr"
+
+#, fuzzy
+msgid "Show selected address on map"
+msgstr "obrigatório selecionar endereço"
+
 msgid "Adding new address"
 msgstr "Adicionando novo endereço"
 
@@ -12785,8 +13228,91 @@ msgid "generic multi choice dialog"
 msgstr ""
 
 #, fuzzy
-msgid "Search in list"
-msgstr "Lista de medicamentos"
+msgid "Deleting list items"
+msgstr "Apagar todos itens"
+
+#, python-format
+msgid ""
+"You have selected %s list items.\n"
+"\n"
+"Really delete all %s items ?"
+msgstr ""
+
+msgid ""
+"Select the items you want to work on.\n"
+"\n"
+"A discontinuous selection may depend on your holding down a platform-"
+"dependent modifier key (<CTRL>, <ALT>, etc) or key combination (eg. <CTRL-"
+"SHIFT> or <CTRL-ALT>) while clicking."
+msgstr ""
+
+#, fuzzy
+msgid "List Item Actions:"
+msgstr "Episódio %s"
+
+msgid "Add (<INS>)"
+msgstr ""
+
+#, fuzzy
+msgid "Delete (<DEL>)"
+msgstr "Apagar"
+
+msgid "Find (<CTRL-F>)"
+msgstr ""
+
+#, python-format
+msgid "Find next [%s] (<CTRL-N>)"
+msgstr ""
+
+msgid "Row tooltip"
+msgstr ""
+
+msgid "Row data (formatted as text)"
+msgstr ""
+
+msgid "Row content (as one line)"
+msgstr ""
+
+msgid "Row content (one line per column)"
+msgstr ""
+
+#, python-format
+msgid "Column &%s: \"%s\" [#%s]"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "Column &%s: %s"
+msgstr "Documentos: %s"
+
+#, fuzzy
+msgid "&Copy to clipboard..."
+msgstr "Mover o paciente para cima."
+
+#, fuzzy
+msgid "Append (&+) to clipboard..."
+msgstr "Mover o paciente para cima."
+
+#, python-format
+msgid ""
+"%s list items are selected.\n"
+"\n"
+"Really delete all %s items ?"
+msgstr ""
+
+#, fuzzy
+msgid "Enter the search term:"
+msgstr "Pesquisa"
+
+#, fuzzy
+msgid "List search"
+msgstr "Pesquisa"
+
+#, python-format
+msgid ""
+"Current search term: [[%s]]\n"
+"\n"
+"%s"
+msgstr ""
 
 msgid "Monty the Serpent && the FSF Present"
 msgstr "Monty a Serpente && o FSF Apresentam"
@@ -12954,6 +13480,10 @@ msgstr ""
 msgid "Unknown: ?"
 msgstr "Desconhecido"
 
+#, fuzzy
+msgid "The text has been copied into the clipboard."
+msgstr "Remover o(s) item(s) selecionado(s) da lista."
+
 msgid "file2clipboard"
 msgstr ""
 
@@ -12961,11 +13491,49 @@ msgstr ""
 msgid "The file [%s] has been copied into the clipboard."
 msgstr ""
 
-#, python-format
+msgid "programmer forgot to specify error message"
+msgstr "falta mensagem de erro"
+
 msgid ""
-"Algorithm: %s\n"
 "\n"
-"Source: %s"
+"\n"
+"Please consult the error log for all the gory details !"
+msgstr ""
+"\n"
+"\n"
+"Por favor consulte o log de mensagens de erro para mais detalhes !"
+
+msgid "generic error message"
+msgstr "mensagem de erro genérica"
+
+msgid "programmer forgot to specify info message"
+msgstr "falta mensagem informativa"
+
+msgid "generic info message"
+msgstr "mensagem informativa genérica"
+
+msgid "programmer forgot to specify warning"
+msgstr "falta mensagem de aviso"
+
+msgid "generic warning message"
+msgstr "mensagem de aviso genérica"
+
+#, fuzzy
+msgid "Editing EDC"
+msgstr "Lista de espera"
+
+#, python-format
+msgid ""
+"Really delete the EDC documented previously ?\n"
+"\n"
+" EDC: %s"
+msgstr ""
+
+#, python-format
+msgid ""
+"Algorithm: %s\n"
+"\n"
+"Source: %s"
 msgstr ""
 
 #, python-format
@@ -13071,15 +13639,15 @@ msgstr "Sobrenome"
 msgid "Firstname"
 msgstr ""
 
-msgid "Nickname"
-msgstr ""
-
 msgid "DOB"
 msgstr ""
 
 msgid "last visit"
 msgstr ""
 
+msgid "Nickname / Comment"
+msgstr ""
+
 msgid "found via"
 msgstr ""
 
@@ -13261,460 +13829,214 @@ msgstr ""
 msgid "In case of emergency contact:"
 msgstr ""
 
-msgid ""
-"\n"
-"Please select the default drug data source from the list below.\n"
-"\n"
-"Note that to actually use it you need to have the database installed, too."
-msgstr ""
-
-msgid "Drug data source"
+msgid "The preparation (form) of the substance or brand."
 msgstr ""
 
-msgid "Configuring default drug data source"
+msgid "A substance with optional strength or a brand."
 msgstr ""
 
-msgid "No default drug database configured."
-msgstr ""
+#, fuzzy
+msgid "The medical aim for consuming this substance."
+msgstr "A preparação na qual a substância é apresentada."
 
-msgid "There is no default drug database configured."
+msgid "not tolerated:"
 msgstr ""
 
-msgid "Jumping to drug database"
+msgid "discontinued due to allergy or intolerance"
 msgstr ""
 
-#, python-format
-msgid "Cannot call IFAP via [%s]."
-msgstr "Cannot call IFAP via [%s]."
+#, fuzzy
+msgid "Documented an allergy"
+msgstr "Administração de documentos ..."
 
 #, python-format
-msgid "Cannot create IFAP <-> GNUmed transfer file [%s]."
-msgstr "Cannot create IFAP <-> GNUmed transfer file [%s]."
-
-msgid "Current medication"
-msgstr "Medicação atual"
-
 msgid ""
+"An allergy was documented against the substance:\n"
 "\n"
-"The ATC codes as known to GNUmed.\n"
-msgstr ""
-
-msgid "Showing ATC codes."
+"  [%s]\n"
+"\n"
+"This substance was taken with the multi-component brand:\n"
+"\n"
+"  [%s (%s)]\n"
+"\n"
+"Note that ALL components of this brand were discontinued."
 msgstr ""
 
-msgid "Choose an ATC import config file"
-msgstr ""
+#, fuzzy
+msgid "disapproved"
+msgstr "Aprovado de"
 
-msgid "config files"
+msgid "Substances consumed by the patient:"
 msgstr ""
 
-msgid "importing ATC reference data"
+msgid "Showing consumable substances."
 msgstr ""
 
-msgid "Successfully imported ATC reference data."
-msgstr ""
+#, fuzzy
+msgid "Application"
+msgstr "Medicação"
 
-msgid "Importing ATC reference data failed."
+msgid "never"
 msgstr ""
 
-msgid "Select an ATC (Anatomical-Therapeutic-Chemical) code."
+#, python-format
+msgid "%s, last confirmed %s\n"
 msgstr ""
 
-msgid "Cannot delete this substance. It is in use."
+#, python-format
+msgid "Comment (%s): %%s\n"
 msgstr ""
 
-msgid ""
-"\n"
-"These are the consumable substances registered with GNUmed.\n"
+msgid "reaction not recorded"
 msgstr ""
 
-msgid "Showing consumable substances."
-msgstr ""
+#, fuzzy
+msgid "GFR: unknown"
+msgstr "Desconhecido"
 
-msgid "Import"
+msgid "GFR reported by path lab"
 msgstr ""
 
-msgid "Import consumable substances from a drug database."
-msgstr ""
+#, fuzzy
+msgid "<no components>"
+msgstr "&Contactos"
 
-msgid "Cannot edit this substance. It is in use."
+msgid "Adding substance intake entry"
 msgstr ""
 
-msgid "Adding new consumable substance"
+#, python-format
+msgid ""
+"The patient is already taking\n"
+"\n"
+" %s\n"
+"\n"
+"You will want to adjust the schedule\n"
+"rather than document the intake twice."
 msgstr ""
 
-msgid "Editing consumable substance"
+msgid "Input incomplete/invalid for saving as substance intake."
 msgstr ""
 
-msgid "Cannot save consumable substance. Missing essential input."
+#, python-format
+msgid "Discontinued (%s) in the future (now: %s)!"
 msgstr ""
 
 #, python-format
-msgid "Cannot save consumable substance. %s"
+msgid "Discontinued (%s) before started (%s) !"
 msgstr ""
 
-msgid "Cannot remove this component from the drug. It is in use."
+msgid "Cannot add duplicate of (maybe inactive) substance intake."
 msgstr ""
 
+#, python-format
 msgid ""
 "\n"
-"These are the components in the drug brands known to GNUmed.\n"
+"[%s]\n"
+"\n"
+"It may be prudent to edit (before deletion) the details\n"
+"of this substance intake entry so as to leave behind\n"
+"some indication of why it was deleted.\n"
 msgstr ""
 
-msgid "Showing drug brand components."
+msgid "Deleting medication / substance intake"
 msgstr ""
 
-msgid "Adding new drug component"
+msgid "Allow editing of substance intake entry before deletion."
 msgstr ""
 
-msgid "Editing drug component"
+msgid "Delete immediately without editing first."
 msgstr ""
 
-msgid "Cannot edit drug component. It is in use."
-msgstr ""
+msgid "&Cancel"
+msgstr "&Cancelar"
 
-msgid "Cannot save drug component. Invalid or missing essential input."
+msgid "Abort. Do not delete or edit substance intake entry."
 msgstr ""
 
-msgid "A drug component with optional strength."
+msgid "Now delete substance intake entry ?"
 msgstr ""
 
-msgid "The preparation (form) of the substance or brand."
+msgid "Adding medication/non-medication substance intake"
 msgstr ""
 
-msgid "The substance with optional strength."
+msgid "Editing medication/non-medication substance intake"
 msgstr ""
 
-msgid "Managing components of a drug"
+msgid "Document an allergy against this substance."
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot manage the components of the branded drug product\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is currently taken by patients.\n"
+msgid "No medication list template configured."
 msgstr ""
 
-msgid "Pick the substances which are components of this drug."
+msgid "There is no medication list template configured."
 msgstr ""
 
-msgid "Components of drug"
+msgid "Problem loading medication list template."
 msgstr ""
 
 #, python-format
-msgid ""
-"Adjust the components of \"%s\"\n"
-"\n"
-"The drug must contain at least one component. Any given\n"
-"substance can only be included once per drug."
+msgid "Cannot load medication list template [%s - %s]"
 msgstr ""
 
-msgid "Managing components of a drug ..."
-msgstr ""
+#, fuzzy
+msgid "generated medication list document"
+msgstr "Lista de medicamentos"
 
-msgid "not in use"
-msgstr ""
+#, fuzzy
+msgid "Select the default prescription template:"
+msgstr "Selecione o tipo padrão para novas consultas.\n"
 
-#, python-format
-msgid "ATC: %s\n"
+msgid "No prescription template configured."
 msgstr ""
 
-msgid "Editing medication"
+msgid "There is no prescription template configured."
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot edit the medication\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is a vaccine. Please edit it\n"
-"from the vaccine management section !\n"
-msgstr ""
+#, fuzzy
+msgid "Printing prescription"
+msgstr "Prescrições"
 
-msgid "Deleting medication"
-msgstr ""
+#, fuzzy
+msgid "Problem loading prescription template."
+msgstr "Apagar do modelo"
 
 #, python-format
-msgid ""
-"Cannot delete the medication\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is a vaccine. Please delete it\n"
-"from the vaccine management section !\n"
+msgid "Cannot load prescription template [%s - %s]"
 msgstr ""
 
+#, fuzzy
+msgid "generated prescription"
+msgstr "Prescrições"
+
 msgid ""
+"These brands have been prescribed but are not listed\n"
+"in the current medication list of this patient.\n"
 "\n"
-"These are the drug brands known to GNUmed.\n"
+"Please select those you want added to the medication list."
 msgstr ""
 
-msgid "Showing branded drugs."
-msgstr ""
+#, fuzzy
+msgid "Newly prescribed drugs"
+msgstr "Prescrito para"
 
-msgid "Import substances and brands from a drug database."
-msgstr ""
+#, fuzzy
+msgid "Add to medication list"
+msgstr "Lista de medicamentos"
 
-msgid "Editing drug"
+msgid "Timeframe"
 msgstr ""
 
 #, python-format
-msgid ""
-"Cannot edit the branded drug product\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is currently taken by patients.\n"
+msgid "%s <fake>"
 msgstr ""
 
-msgid "Adding new drug brand"
+msgid "Cannot edit more than one substance at once."
 msgstr ""
 
-msgid "Editing drug brand"
+msgid "Cannot delete more than one substance at once."
 msgstr ""
 
-msgid "Manage consumable substances"
-msgstr ""
-
-msgid "Cannot edit drug brand. It is in use."
-msgstr ""
-
-#, fuzzy
-msgid "Checking brand data"
-msgstr "Checando por atualizações do cliente"
-
-#, python-format
-msgid ""
-"The brand information you entered:\n"
-"\n"
-" [%s %s]\n"
-"\n"
-"already exists as a drug product."
-msgstr ""
-
-msgid ""
-"You have not selected any substances\n"
-"as drug components.\n"
-"\n"
-"Without components you will not be able to\n"
-"use this drug for documenting patient care.\n"
-"\n"
-"Are you sure you want to save\n"
-"it without components ?"
-msgstr ""
-
-msgid "Cannot save branded drug. Invalid or missing essential input."
-msgstr ""
-
-msgid ""
-"The brand name of the drug.\n"
-"\n"
-"Note: a brand name will need to be linked to\n"
-"one or more components before it can be used,\n"
-"except in the case of fake (generic) vaccines."
-msgstr ""
-
-#, fuzzy
-msgid "The medical aim for consuming this substance."
-msgstr "A preparação na qual a substância é apresentada."
-
-msgid "not tolerated:"
-msgstr ""
-
-msgid "discontinued due to allergy or intolerance"
-msgstr ""
-
-#, fuzzy
-msgid "Documented an allergy"
-msgstr "Administração de documentos ..."
-
-#, python-format
-msgid ""
-"An allergy was documented against the substance:\n"
-"\n"
-"  [%s]\n"
-"\n"
-"This substance was taken with the multi-component brand:\n"
-"\n"
-"  [%s (%s)]\n"
-"\n"
-"Note that ALL components of this brand were discontinued."
-msgstr ""
-
-#, fuzzy
-msgid "disapproved"
-msgstr "Aprovado de"
-
-msgid "Substances consumed by the patient:"
-msgstr ""
-
-msgid "Intake"
-msgstr ""
-
-#, fuzzy
-msgid "Application"
-msgstr "Medicação"
-
-msgid "never"
-msgstr ""
-
-#, python-format
-msgid "%s, last confirmed %s\n"
-msgstr ""
-
-#, python-format
-msgid "Comment (%s): %%s\n"
-msgstr ""
-
-msgid "reaction not recorded"
-msgstr ""
-
-#, fuzzy
-msgid "GFR: unknown"
-msgstr "Desconhecido"
-
-msgid "GFR reported by path lab"
-msgstr ""
-
-#, python-format
-msgid ""
-"The patient is already taking\n"
-"\n"
-" %s\n"
-"\n"
-"You will want to adjust the schedule\n"
-"rather than document the intake twice."
-msgstr ""
-
-msgid "Adding substance intake entry"
-msgstr ""
-
-msgid "Input incomplete/invalid for saving as substance intake."
-msgstr ""
-
-#, python-format
-msgid "Discontinued (%s) in the future (now: %s)!"
-msgstr ""
-
-#, python-format
-msgid "Discontinued (%s) before started (%s) !"
-msgstr ""
-
-msgid "Cannot add duplicate of (maybe inactive) substance intake."
-msgstr ""
-
-#, python-format
-msgid ""
-"\n"
-"[%s]\n"
-"\n"
-"It may be prudent to edit (before deletion) the details\n"
-"of this substance intake entry so as to leave behind\n"
-"some indication of why it was deleted.\n"
-msgstr ""
-
-msgid "Deleting medication / substance intake"
-msgstr ""
-
-msgid "Allow editing of substance intake entry before deletion."
-msgstr ""
-
-msgid "Delete immediately without editing first."
-msgstr ""
-
-msgid "&Cancel"
-msgstr "&Cancelar"
-
-msgid "Abort. Do not delete or edit substance intake entry."
-msgstr ""
-
-msgid "Now delete substance intake entry ?"
-msgstr ""
-
-msgid "Adding medication/non-medication substance intake"
-msgstr ""
-
-msgid "Editing medication/non-medication substance intake"
-msgstr ""
-
-msgid "Document an allergy against this substance."
-msgstr ""
-
-msgid "No medication list template configured."
-msgstr ""
-
-msgid "There is no medication list template configured."
-msgstr ""
-
-msgid "Problem loading medication list template."
-msgstr ""
-
-#, python-format
-msgid "Cannot load medication list template [%s - %s]"
-msgstr ""
-
-#, fuzzy
-msgid "generated medication list document"
-msgstr "Lista de medicamentos"
-
-#, fuzzy
-msgid "Select the default prescription template:"
-msgstr "Selecione o tipo padrão para novas consultas.\n"
-
-msgid "No prescription template configured."
-msgstr ""
-
-msgid "There is no prescription template configured."
-msgstr ""
-
-#, fuzzy
-msgid "Printing prescription"
-msgstr "Prescrições"
-
-#, fuzzy
-msgid "Problem loading prescription template."
-msgstr "Apagar do modelo"
-
-#, python-format
-msgid "Cannot load prescription template [%s - %s]"
-msgstr ""
-
-#, fuzzy
-msgid "generated prescription"
-msgstr "Prescrições"
-
-msgid ""
-"These brands have been prescribed but are not listed\n"
-"in the current medication list of this patient.\n"
-"\n"
-"Please select those you want added to the medication list."
-msgstr ""
-
-#, fuzzy
-msgid "Newly prescribed drugs"
-msgstr "Prescrito para"
-
-#, fuzzy
-msgid "Add to medication list"
-msgstr "Lista de medicamentos"
-
-msgid "Duration / Until"
-msgstr ""
-
-#, python-format
-msgid "%s <fake>"
-msgstr ""
-
-msgid "Cannot edit more than one substance at once."
-msgstr ""
-
-msgid "Cannot delete more than one substance at once."
-msgstr ""
-
-msgid "Cannot create allergy from more than one substance at once."
+msgid "Cannot create allergy from more than one substance at once."
 msgstr ""
 
 msgid ""
@@ -13743,12 +14065,6 @@ msgstr "&Local"
 msgid "eGFR:"
 msgstr ""
 
-#, fuzzy, python-format
-msgid "%s%s%s (%s ago)"
-msgstr ""
-"%s: %s by %.8s\n"
-"%s"
-
 #, python-format
 msgid "eGFR: %.1f (%s)"
 msgstr ""
@@ -13917,14 +14233,21 @@ msgid ""
 "\n"
 " [%s]\n"
 "\n"
-"is not empty. Do you want to use it for saving the\n"
-"export area documents into, nevertheless ?\n"
+"already contains files. Do you still want to save the\n"
+"selected export area documents into that directory ?\n"
 "\n"
-"(this can be useful for including external documents)\n"
+"(this is useful for including the external documents\n"
+" already stored in or below this directory)\n"
 "\n"
 "[NO] will create a subdirectory for you and use that."
 msgstr ""
 
+msgid ""
+"Create descriptive metadata files\n"
+"and save them alongside the\n"
+"selected export area documents ?"
+msgstr ""
+
 #, fuzzy, python-format
 msgid ""
 "Saved to [%s]:\n"
@@ -14164,10 +14487,6 @@ msgid "This praxis"
 msgstr "Sua revisão"
 
 #, fuzzy
-msgid "Hospital stay"
-msgstr "População"
-
-#, fuzzy
 msgid "Bill receiver"
 msgstr "Selecione"
 
@@ -14206,14 +14525,58 @@ msgstr "Administrar descrições de documentos"
 msgid "Select the episode under which to file the document ..."
 msgstr ""
 
-#, python-format
-msgid "Imported new document from %s."
+msgid "Cannot create new document."
 msgstr ""
 
-msgid "Enter a comment on the document."
+msgid "saving document"
 msgstr ""
 
-msgid "User defined"
+#, python-format
+msgid "Imported new document from %s."
+msgstr ""
+
+msgid "Successfully saved new document."
+msgstr ""
+
+msgid "Successfully saved the new document."
+msgstr ""
+
+#, python-format
+msgid ""
+"The reference ID for the new document is:\n"
+"\n"
+" <%s>\n"
+"\n"
+"You probably want to write it down on the\n"
+"original documents.\n"
+"\n"
+"If you don't care about the ID you can switch\n"
+"off this message in the GNUmed configuration.\n"
+msgstr ""
+
+#, fuzzy
+msgid "Saving document"
+msgstr "Apagando documento"
+
+#, python-format
+msgid ""
+"Successfully imported files as document.\n"
+"\n"
+"Do you want to delete imported files from the filesystem ?\n"
+"\n"
+" %s\n"
+"\n"
+"Note that temporary files will be deleted anyway."
+msgstr ""
+
+#, fuzzy
+msgid "Removing files"
+msgstr "Removendo endereço"
+
+msgid "Enter a comment on the document."
+msgstr ""
+
+msgid "User defined"
 msgstr ""
 
 msgid "In use"
@@ -14330,15 +14693,17 @@ msgstr ""
 msgid "Acquiring images"
 msgstr ""
 
+msgid "directory dropped on client"
+msgstr ""
+
+msgid "file dropped on client"
+msgstr ""
+
 #, fuzzy
 msgid "other documents"
 msgstr "Organizar documentos por"
 
-#, python-format
-msgid "part %s: %s"
-msgstr ""
-
-msgid "saving document"
+msgid "path"
 msgstr ""
 
 msgid "No parts to save. Really save an empty document as a reference ?"
@@ -14383,17 +14748,25 @@ msgstr ""
 msgid "acquiring page"
 msgstr ""
 
+msgid "captured by imaging device"
+msgstr ""
+
 msgid "Choose a file"
 msgstr ""
 
 msgid "all files (Win)"
 msgstr "todos os arquivos (Win)"
 
-msgid "You must select a part before you can view it."
+msgid "picked from storage media"
 msgstr ""
 
-msgid "displaying part"
-msgstr ""
+#, fuzzy
+msgid "pasted from clipboard"
+msgstr "Mover o paciente para cima."
+
+#, fuzzy
+msgid "No part selected for viewing."
+msgstr "Editar os itens selecionados na lista acima"
 
 #, python-format
 msgid ""
@@ -14401,45 +14774,12 @@ msgid ""
 "%s"
 msgstr ""
 
-msgid "You must select a part before you can delete it."
-msgstr ""
-
-msgid "deleting part"
-msgstr ""
-
-#, python-format
-msgid ""
-"The part has successfully been removed from the document.\n"
-"\n"
-"Do you also want to permanently delete the file\n"
-"\n"
-" [%s]\n"
-"\n"
-"from which this document part was loaded ?\n"
-"\n"
-"If it is a temporary file for a page you just scanned\n"
-"this makes a lot of sense. In other cases you may not\n"
-"want to lose the file.\n"
-"\n"
-"Pressing [YES] will permanently remove the file\n"
-"from your computer.\n"
-msgstr ""
-
-msgid "Removing document part"
-msgstr ""
-
-#, python-format
-msgid ""
-"Cannot delete part in file [%s].\n"
-"\n"
-"You may not have write access to it."
-msgstr ""
-
-msgid "Cannot create new document."
+msgid "displaying part"
 msgstr ""
 
-msgid "Cannot update document metadata."
-msgstr ""
+#, fuzzy
+msgid "No part selected for removal."
+msgstr "Editar os itens selecionados na lista acima"
 
 msgid "Cannot add document description."
 msgstr ""
@@ -14447,27 +14787,12 @@ msgstr ""
 msgid "Error setting \"reviewed\" status of new document."
 msgstr ""
 
-msgid "Successfully saved the new document."
-msgstr ""
-
 #, python-format
 msgid ""
-"The reference ID for the new document is:\n"
+"Source: %s\n"
+"File: %s\n"
 "\n"
-" <%s>\n"
-"\n"
-"You probably want to write it down on the\n"
-"original documents.\n"
-"\n"
-"If you don't care about the ID you can switch\n"
-"off this message in the GNUmed configuration."
-msgstr ""
-
-#, fuzzy
-msgid "Saving document"
-msgstr "Apagando documento"
-
-msgid "Successfully saved new document."
+"%s"
 msgstr ""
 
 msgid "Document part does not seem to exist in database !"
@@ -14484,10 +14809,6 @@ msgstr "Um comentário sobre esse paciente."
 msgid "Showing documents."
 msgstr "Apagando documento"
 
-#, fuzzy
-msgid "Generated"
-msgstr "Generalizado"
-
 msgid "Ref #"
 msgstr ""
 
@@ -14756,6 +15077,156 @@ msgstr "Você realmente quer apagar esse documento?"
 msgid "Deleting document"
 msgstr "Apagando documento"
 
+#, fuzzy
+msgid "Study date"
+msgstr "Exsudato"
+
+#, fuzzy
+msgid "Study time"
+msgstr "Iniciar Nova"
+
+msgid "Method"
+msgstr ""
+
+#, fuzzy
+msgid "Body part"
+msgstr "(%s pacientes)"
+
+msgid "Time"
+msgstr ""
+
+msgid "Cannot connect without port (try 8042)."
+msgstr ""
+
+#, python-format
+msgid "Connect to [%s] @ port %s as \"%s\"."
+msgstr ""
+
+#, fuzzy
+msgid "Cannot connect to PACS."
+msgstr "não foi possível obter ligação ao serviço [%s]"
+
+#, python-format
+msgid "PACS: Orthanc \"%s\" (AET \"%s\", Version %s, DB v%s)"
+msgstr ""
+
+#, python-format
+msgid "GNUmed patient: %s (generic PACS ID)"
+msgstr ""
+
+#, python-format
+msgid "GNUmed patient: \"%(value)s\" @ [%(issuer)s] (stored PACS ID)"
+msgstr ""
+
+msgid "PACS: no patients with matching IDs found"
+msgstr ""
+
+msgid ""
+"PACS: more than one patient with matching IDs found, carefully check studies"
+msgstr ""
+
+#, python-format
+msgid "%s series"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "%%s (%s series)"
+msgstr "%s (%s este ano)"
+
+msgid "no studies"
+msgstr ""
+
+#, python-format
+msgid "%s studies"
+msgstr ""
+
+msgid "Exporting DICOM studies"
+msgstr ""
+
+#, fuzzy
+msgid "Unable to export selected studies."
+msgstr "obrigatório selecionar endereço"
+
+#, python-format
+msgid ""
+"The DICOM studies are %s in compressed size.\n"
+"\n"
+"Really copy to export area ?"
+msgstr ""
+
+#, python-format
+msgid "DICOM studies of [%s] from Orthanc PACS \"%s\" (AET \"%s\")"
+msgstr ""
+
+#, fuzzy
+msgid "Select the directory into which to save the DICOM studies."
+msgstr "Selecione o episódio para o qual você quer mover a descrição"
+
+msgid "Saving DICOM studies"
+msgstr ""
+
+#, fuzzy
+msgid "Unable to save selected studies."
+msgstr "obrigatório selecionar endereço"
+
+#, fuzzy
+msgid "Unable to export studies."
+msgstr "Falha ao alocar paciente ao regime de %s"
+
+#, python-format
+msgid "All DICOM studies of [%s] from Orthanc PACS \"%s\" (AET \"%s\")"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "%s%s images"
+msgstr "&Local"
+
+#, fuzzy
+msgid "Select the directory from which to recursively upload DICOM files."
+msgstr "Selecione o episódio para o qual você quer mover a descrição"
+
+msgid "Delete the uploaded DICOM files now ?"
+msgstr ""
+
+msgid ""
+"Some files have not been uploaded.\n"
+"\n"
+"Do you want to delete those DICOM files which have been sent to the PACS "
+"successfully ?"
+msgstr ""
+
+#, fuzzy
+msgid "Uploading DICOM files"
+msgstr "Carregando ficheiro xDT"
+
+#, fuzzy
+msgid "Editing Orthanc content"
+msgstr "Editar os detalhes da consulta abaixo:"
+
+#, fuzzy
+msgid "Patient ID"
+msgstr "Paciente"
+
+#, fuzzy
+msgid "Birth date"
+msgstr "Exsudato"
+
+msgid "Orthanc"
+msgstr ""
+
+#, fuzzy
+msgid "Modifying patient ID"
+msgstr "Agrupar pacientes"
+
+#, python-format
+msgid ""
+"Really modify %s patient(s) to have the new patient ID\n"
+"\n"
+" [%s]\n"
+"\n"
+"stored in the Orthanc DICOM server ?"
+msgstr ""
+
 #, python-format
 msgid "You are logged in as %s%s.%s (%s). DB account <%s>."
 msgstr "Você está logado como %s%s.%s (%s). Conta BD <%s>."
@@ -14821,6 +15292,14 @@ msgstr "Lista de medicamentos"
 msgid "Select the measurements panel to show in the medications plugin."
 msgstr ""
 
+#, fuzzy
+msgid "General measurements"
+msgstr "Lista de medicamentos"
+
+#, fuzzy
+msgid "Select the measurements panel to show in the top pane."
+msgstr "Um comentário sobre esse paciente."
+
 msgid "Review dialog"
 msgstr "Janela de revisão"
 
@@ -14915,6 +15394,13 @@ msgstr ""
 msgid "Configure auto-opening editors for recent problems."
 msgstr ""
 
+#, fuzzy
+msgid "SOAP fields"
+msgstr "campo XDT"
+
+msgid "Configure SOAP editor - individual SOAP fields vs text editor like"
+msgstr ""
+
 msgid "Progress notes handling ..."
 msgstr "Editor de Evolução ..."
 
@@ -14936,6 +15422,9 @@ msgstr ""
 msgid "URL for measurements encyclopedia."
 msgstr ""
 
+msgid "Drug data source"
+msgstr ""
+
 msgid "Select the drug data source."
 msgstr ""
 
@@ -15325,6 +15814,14 @@ msgstr ""
 msgid "Manage dynamic hints suppressed in this patient."
 msgstr ""
 
+#, fuzzy
+msgid "Substance abuse"
+msgstr "Substância"
+
+#, fuzzy
+msgid "Manage substance abuse documentation of this patient."
+msgstr "Um comentário sobre esse paciente."
+
 msgid "&Add / Edit ..."
 msgstr ""
 
@@ -15349,36 +15846,73 @@ msgstr ""
 msgid "Show a high-level statistic summary of the EMR."
 msgstr ""
 
-msgid "Text document"
-msgstr "Documento de Texto"
-
-msgid "Export the EMR of the active patient into a text file"
-msgstr "Exportar o Prontuário do paciente ativo em um arquivo de texto"
-
-msgid "Journal"
-msgstr "Diário"
+msgid "Journal (encounters) to file"
+msgstr ""
 
+#, fuzzy
 msgid ""
-"Export the EMR of the active patient as a chronological journal into a text "
+"Save the EMR of the active patient as a chronological journal into a text "
 "file"
 msgstr ""
 "Exportar o Prontuário do paciente ativo como um diário cronológico para um "
 "arquivo de texto"
 
-msgid "MEDISTAR import format"
-msgstr "Formato para importação pelo MEDISTAR"
+#, fuzzy
+msgid "Journal (encounters) to export area"
+msgstr "Adicionando novo nome"
 
+#, fuzzy
 msgid ""
-"GNUmed -> MEDISTAR. Export progress notes of active patient's active "
-"encounter into a text file."
+"Copy EMR of the active patient as a chronological journal into export area"
 msgstr ""
-"GNUmed -> MEDISTAR. Exportar as notas de evolução da consulta ativa do "
-"paciente atual para um arquivo de texto."
+"Exportar o Prontuário do paciente ativo como um diário cronológico para um "
+"arquivo de texto"
 
-msgid "Export as ..."
-msgstr "Exportar como ..."
+msgid "Journal (mod time) to file"
+msgstr ""
 
-msgid "&EMR"
+#, fuzzy
+msgid ""
+"Save the EMR of the active patient as journal by last modification time into "
+"a text file"
+msgstr ""
+"Exportar o Prontuário do paciente ativo como um diário cronológico para um "
+"arquivo de texto"
+
+#, fuzzy
+msgid "Journal (mod time) to export area"
+msgstr "Adicionando novo nome"
+
+#, fuzzy
+msgid ""
+"Copy EMR of the active patient as journal by last modification time into "
+"export area"
+msgstr ""
+"Exportar o Prontuário do paciente ativo como um diário cronológico para um "
+"arquivo de texto"
+
+msgid "Text document"
+msgstr "Documento de Texto"
+
+#, fuzzy
+msgid "Save the EMR of the active patient into a text file"
+msgstr "Exportar o Prontuário do paciente ativo em um arquivo de texto"
+
+msgid "MEDISTAR import format"
+msgstr "Formato para importação pelo MEDISTAR"
+
+#, fuzzy
+msgid ""
+"GNUmed -> MEDISTAR. Save progress notes of active patient's active encounter "
+"into a text file."
+msgstr ""
+"GNUmed -> MEDISTAR. Exportar as notas de evolução da consulta ativa do "
+"paciente atual para um arquivo de texto."
+
+msgid "Export as ..."
+msgstr "Exportar como ..."
+
+msgid "&EMR"
 msgstr "&Prontuário"
 
 msgid "&Write letter"
@@ -15552,19 +16086,44 @@ msgstr "Salvar uma screenshot (imagem da tela atual) desse cliente GNUmed."
 msgid "Show log file"
 msgstr "Mostrar arquivo de Log"
 
-msgid "Show the log file in text viewer."
+#, fuzzy
+msgid "Show log file in text viewer."
 msgstr "Mostre o arquivo de log no visualizador de texto"
 
 msgid "Backup log file"
 msgstr "Faça um backup do arquivo de log"
 
-msgid "Backup the content of the log to another file."
+#, fuzzy
+msgid "Backup content of the log to another file."
 msgstr "Faça um backup do conteúdo do log para outro arquivo."
 
 msgid "Email log file"
 msgstr ""
 
-msgid "Send the log file to the authors for help."
+msgid "Send log file to the authors for help."
+msgstr ""
+
+#, fuzzy
+msgid "Browse tmp dir"
+msgstr "Agrupar pacientes"
+
+#, fuzzy, python-format
+msgid "Browse temporary directory [%s]."
+msgstr "Diretório de arquivos temporários"
+
+#, fuzzy
+msgid "Browse work dir"
+msgstr "Agrupar pacientes"
+
+#, python-format
+msgid "Browse user working directory [%s]."
+msgstr ""
+
+msgid "Browse internal work dir"
+msgstr ""
+
+#, python-format
+msgid "Browse internal working directory [%s]."
 msgstr ""
 
 msgid "Bug tracker"
@@ -15981,6 +16540,20 @@ msgid "No, only auto-open one editor for a new, unassociated problem."
 msgstr ""
 
 msgid ""
+"When editing progress notes, do you want GNUmed to\n"
+"show individual fields for each of the SOAP categories\n"
+"or do you want to use a text-editor like field for\n"
+"all SOAP categories which can then be set per line\n"
+"of input ?"
+msgstr ""
+
+msgid "Yes, show a dedicated field per SOAP category."
+msgstr ""
+
+msgid "No, use one field for all SOAP categories."
+msgstr ""
+
+msgid ""
 "When a patient is activated GNUmed can\n"
 "be told to switch to a specific plugin.\n"
 "\n"
@@ -16058,787 +16631,1208 @@ msgid ""
 " started, or else GNUmed will ask you.)\n"
 msgstr ""
 
-msgid ""
-"When a patient is activated GNUmed checks the\n"
-"age of the most recent encounter.\n"
-"\n"
-"If that encounter is older than this age\n"
-"GNUmed will always start a new encounter.\n"
-"\n"
-"(If it is very recent the existing encounter\n"
-" is continued, or else GNUmed will ask you.)\n"
+msgid ""
+"When a patient is activated GNUmed checks the\n"
+"age of the most recent encounter.\n"
+"\n"
+"If that encounter is older than this age\n"
+"GNUmed will always start a new encounter.\n"
+"\n"
+"(If it is very recent the existing encounter\n"
+" is continued, or else GNUmed will ask you.)\n"
+msgstr ""
+
+msgid ""
+"At any time there can only be one open (ongoing)\n"
+"episode for each health issue.\n"
+"\n"
+"When you try to open (add data to) an episode on a health\n"
+"issue GNUmed will check for an existing open episode on\n"
+"that issue. If there is any it will check the age of that\n"
+"episode. The episode is closed if it has been dormant (no\n"
+"data added, that is) for the period of time (in days) you\n"
+"set here.\n"
+"\n"
+"If the existing episode hasn't been dormant long enough\n"
+"GNUmed will consult you what to do.\n"
+"\n"
+"Enter maximum episode dormancy in DAYS:"
+msgstr ""
+"Só pode haver um episódio (ativo) para qualquer problema de saúde.\n"
+"\n"
+"\n"
+"Quando tentar abrir (adicionar dados) a um episódio de um problema\n"
+"de saúde o GNUmed checará se existe um episódio aberto para esse \n"
+"problema. Se existir consultará a idade daquele episódio. O episódio \n"
+"será fechado se estiver suspenso (i.e. nenhum dado adicionado) pelo\n"
+"período de tempo (em dias) que será configurado aqui.\n"
+"\n"
+"\n"
+"Se um episódio não esteve suspenso por tempo suficiente o GNUmed\n"
+"perguntará o que deve fazer.\n"
+"\n"
+"Configure o número máximo de DIAS para suspensão de episódios:"
+
+msgid ""
+"If you want the GNUmed developers to be able to\n"
+"contact you directly - rather than via the public\n"
+"mailing list only - you can enter your preferred\n"
+"email address here.\n"
+"\n"
+"This address will then be included with bug reports\n"
+"or contributions to the GNUmed community you may\n"
+"choose to send from within the GNUmed client.\n"
+"\n"
+"Leave this blank if you wish to stay anonymous.\n"
+msgstr ""
+
+msgid "Please enter your email address."
+msgstr "Por favor informe seu endereço de email."
+
+msgid ""
+"Do you want GNUmed to check for updates at startup ?\n"
+"\n"
+"You will still need your system administrator to\n"
+"actually install any updates for you.\n"
+msgstr ""
+
+msgid "Yes, check for updates at startup."
+msgstr ""
+
+msgid "No, do not check for updates at startup."
+msgstr ""
+
+msgid ""
+"When checking for updates do you want GNUmed to\n"
+"look for bug fix updates only or do you want to\n"
+"know about features updates, too ?\n"
+"\n"
+"Minor updates (x.y.z.a -> x.y.z.b) contain bug fixes\n"
+"only. They can usually be installed without much\n"
+"preparation. They never require a database upgrade.\n"
+"\n"
+"Major updates (x.y.a -> x..y.b or y.a -> x.b) come\n"
+"with new features. They need more preparation and\n"
+"often require a database upgrade.\n"
+"\n"
+"You will still need your system administrator to\n"
+"actually install any updates for you.\n"
+msgstr ""
+
+msgid "Yes, check for feature updates, too."
+msgstr ""
+
+msgid "No, check for bug-fix updates only."
+msgstr ""
+
+msgid ""
+"GNUmed can check for new releases being available. To do\n"
+"so it needs to load version information from an URL.\n"
+"\n"
+"The default URL is:\n"
+"\n"
+" http://www.gnumed.de/downloads/gnumed-versions.txt\n"
+"\n"
+"but you can configure any other URL locally. Note\n"
+"that you must enter the location as a valid URL.\n"
+"Depending on the URL the client will need online\n"
+"access when checking for updates."
+msgstr ""
+
+msgid ""
+"Do you want to allow saving of new documents without\n"
+"any parts or do you want GNUmed to enforce that they\n"
+"contain at least one part before they can be saved ?\n"
+"\n"
+"Part-less documents can be useful if you want to build\n"
+"up an index of, say, archived documents but do not\n"
+"want to scan in all the pages contained therein."
+msgstr ""
+
+msgid "Yes, allow saving documents without any parts."
+msgstr ""
+
+msgid "No, require documents to have at least one part."
+msgstr ""
+
+msgid ""
+"After importing a new document do you\n"
+"want GNUmed to display the unique ID\n"
+"it auto-generated for that document ?\n"
+"\n"
+"This can be useful if you want to label the\n"
+"originals with that ID for later identification."
+msgstr ""
+
+msgid "Yes, display the ID generated for the new document after importing."
+msgstr ""
+
+msgid ""
+"No, do not display the ID generated for the new document after importing."
+msgstr ""
+
+msgid ""
+"After importing a new document do you\n"
+"want GNUmed to generate a unique ID\n"
+"(UUID) for that document ?\n"
+"\n"
+"This can be useful if you want to label the\n"
+"originals with that ID for later identification."
+msgstr ""
+
+msgid "Yes, generate a UUID for the new document after importing."
+msgstr ""
+
+msgid "No, do not generate a UUID for the new document after importing."
+msgstr ""
+
+msgid ""
+"GNUmed can show the document review dialog after\n"
+"calling the appropriate viewer for that document.\n"
+"\n"
+"Select the conditions under which you want\n"
+"GNUmed to do so:\n"
+"\n"
+" 0: never display the review dialog\n"
+" 1: always display the dialog\n"
+" 2: only if there is no previous review by me\n"
+" 3: only if there is no previous review at all\n"
+" 4: only if there is no review by the responsible reviewer\n"
+"\n"
+"Note that if a viewer is configured to not block\n"
+"GNUmed during document display the review dialog\n"
+"will actually appear in parallel to the viewer."
+msgstr ""
+
+msgid "Addresses (likely slow)"
+msgstr ""
+
+msgid "Branded drugs (as marketed)"
+msgstr ""
+
+msgid "Dynamic automatic hints"
+msgstr ""
+
+msgid "Codes and their respective terms"
+msgstr ""
+
+#, fuzzy
+msgid "Communication channel types"
+msgstr "Removendo canal de comunicações."
+
+msgid "Components of branded drugs (substances in brands)"
+msgstr ""
+
+msgid "Diagnostic organizations (path labs, ...)"
+msgstr ""
+
+msgid "Document templates (forms, letters, plots, ...)"
+msgstr ""
+
+msgid "Document types"
+msgstr ""
+
+msgid "Encounter types"
+msgstr ""
+
+msgid "Keyword based text expansion macros"
+msgstr ""
+
+msgid "Meta test/measurement types"
+msgstr ""
+
+msgid "Organizations with their units, addresses, and comm channels"
+msgstr ""
+
+msgid "Patient tags"
+msgstr ""
+
+msgid "Provinces (counties, territories, states, regions, ...)"
+msgstr ""
+
+msgid "String translations in the database"
+msgstr ""
+
+msgid "Test/measurement types"
+msgstr ""
+
+msgid "Vaccination targets (conditions known to be preventable by vaccination)"
+msgstr ""
+
+msgid "Vaccines"
+msgstr ""
+
+msgid "Workplace profiles (which plugins to load)"
+msgstr ""
+
+msgid "Consumable substances"
+msgstr ""
+
+msgid "Billable items"
+msgstr ""
+
+#, fuzzy
+msgid "Reference data sources"
+msgstr "Informação referente"
+
+msgid "Test/measurement panels/profiles"
+msgstr ""
+
+msgid "Master data management"
+msgstr ""
+
+msgid "Select the list you want to manage:"
+msgstr ""
+
+msgid "No DICOM viewer found."
+msgstr ""
+
+msgid "risk assessment"
+msgstr ""
+
+msgid "cardiovascular risk assessment"
+msgstr ""
+
+#, python-format
+msgid "[arriba] XML result not found in [%s]"
+msgstr ""
+
+msgid "ACS risk assessment calculator not configured."
+msgstr ""
+
+#, python-format
+msgid "Cannot run [%s] !"
+msgstr ""
+
+#, python-format
+msgid "There was a problem accessing the [arriba] result in [%s] !"
+msgstr ""
+
+msgid "[-9999]: <access violation test error>"
+msgstr ""
+
+msgid ""
+"This is a deliberate AccessDenied exception thrown to test the handling of "
+"access violations by means of a decorator."
+msgstr ""
+
+msgid "testing access check for non-existant <admin> role"
+msgstr ""
+
+msgid ""
+"This is a deliberate AccessDenied exception. You should not see this message "
+"because the role is checked in a decorator."
+msgstr ""
+
+msgid "pgAdmin III not found."
+msgstr ""
+
+msgid "Error reloading hook script."
+msgstr ""
+
+msgid "Save current log as..."
+msgstr ""
+
+msgid "log files"
+msgstr ""
+
+#, python-format
+msgid "Log file backed up as [%s]."
+msgstr ""
+
+msgid "Cannot start new encounter. No active patient."
+msgstr "Não foi possível iniciar nova consulta. Não há um paciente ativo."
+
+msgid "Cannot add health issue. No active patient."
+msgstr "Não foi possível adicionar problema de saúde. Não há paciente ativo."
+
+#, fuzzy
+msgid "Cannot add episode. No active patient."
+msgstr "Não foi possível adicionar problema de saúde. Não há paciente ativo."
+
+msgid "Cannot add medication. No active patient."
+msgstr ""
+
+msgid "Cannot add allergy. No active patient."
+msgstr ""
+
+msgid "Cannot manage performed procedures. No active patient."
+msgstr ""
+
+#, fuzzy
+msgid "Cannot manage hospitalizations. No active patient."
+msgstr "Não foi possível adicionar problema de saúde. Não há paciente ativo."
+
+#, fuzzy
+msgid "Cannot manage external care. No active patient."
+msgstr "Não foi possível adicionar problema de saúde. Não há paciente ativo."
+
+msgid "Cannot edit occupation. No active patient."
+msgstr ""
+
+#, fuzzy
+msgid "manage vaccinations"
+msgstr "Últimas vacinações"
+
+msgid "Cannot add vaccinations. No active patient."
+msgstr ""
+
+#, fuzzy
+msgid "manage family history"
+msgstr "Apagando documento"
+
+#, fuzzy
+msgid "Cannot manage family history. No active patient."
+msgstr "Não foi possível adicionar problema de saúde. Não há paciente ativo."
+
+#, fuzzy
+msgid "Cannot manage measurements. No active patient."
+msgstr "Não foi possível adicionar problema de saúde. Não há paciente ativo."
+
+msgid "calculate EDC"
+msgstr ""
+
+#, fuzzy
+msgid "manage suppressed hints"
+msgstr "Adicionando novo endereço"
+
+#, fuzzy
+msgid "Cannot manage suppressed hints. No active patient."
+msgstr "Não foi possível adicionar problema de saúde. Não há paciente ativo."
+
+#, fuzzy
+msgid "Cannot manage smoking status. No active patient."
+msgstr "Não foi possível adicionar problema de saúde. Não há paciente ativo."
+
+msgid "Cannot show EMR summary. No active patient."
+msgstr "Não é possível mostrar resumo de Prontuário. Não há paciente ativo."
+
+msgid "EMR Summary"
+msgstr "Resumo do Prontuário"
+
+#, fuzzy
+msgid "Cannot export EMR journal by last modification time. No active patient."
+msgstr "Não é possível exportar Prontuário Eletrônico. Não há paciente ativo."
+
+msgid "journal_by_last_mod_time"
+msgstr ""
+
+msgid "Save patient's EMR journal as..."
+msgstr ""
+
+msgid "Error exporting patient EMR as journal by last modification time."
+msgstr ""
+
+msgid "EMR journal export"
+msgstr ""
+
+#, python-format
+msgid ""
+"Successfully exported EMR as journal by last modification time into file "
+"[%s]."
+msgstr ""
+
+msgid "Cannot export EMR journal. No active patient."
+msgstr ""
+
+msgid "emr-journal"
+msgstr "rme-diário"
+
+msgid "Error exporting patient EMR as chronological journal."
+msgstr ""
+
+#, python-format
+msgid "Successfully exported EMR as chronological journal into file [%s]."
+msgstr ""
+
+msgid "EMR journal by last modification time"
+msgstr ""
+
+#, fuzzy
+msgid "EMR journal by encounter"
+msgstr "Consulta Atual"
+
+msgid "Cannot add tag to person. No active patient."
+msgstr ""
+
+#, python-format
+msgid "Edit the comment on tag [%s]"
+msgstr ""
+
+msgid "Editing tag comment"
+msgstr ""
+
+msgid "Cannot export patient as GDT. No active patient."
+msgstr ""
+
+msgid "Exported demographics as GDT to clipboard."
+msgstr ""
+
+#, fuzzy
+msgid "Cannot export patient as VCARD. No active patient."
+msgstr "Não é possível exportar Prontuário Eletrônico. Não há paciente ativo."
+
+msgid "Exported demographics as VCARD to clipboard."
+msgstr ""
+
+#, fuzzy
+msgid "Cannot export patient as XML (LinuxMedNews). No active patient."
+msgstr "Não é possível exportar Prontuário Eletrônico. Não há paciente ativo."
+
+#, python-format
+msgid "Exported demographics to XML file [%s]."
+msgstr ""
+
+#, python-format
+msgid "Exported demographics to GDT file [%s]."
 msgstr ""
 
-msgid ""
-"At any time there can only be one open (ongoing)\n"
-"episode for each health issue.\n"
-"\n"
-"When you try to open (add data to) an episode on a health\n"
-"issue GNUmed will check for an existing open episode on\n"
-"that issue. If there is any it will check the age of that\n"
-"episode. The episode is closed if it has been dormant (no\n"
-"data added, that is) for the period of time (in days) you\n"
-"set here.\n"
-"\n"
-"If the existing episode hasn't been dormant long enough\n"
-"GNUmed will consult you what to do.\n"
-"\n"
-"Enter maximum episode dormancy in DAYS:"
+#, python-format
+msgid "Exported demographics to VCARD file [%s]."
 msgstr ""
-"Só pode haver um episódio (ativo) para qualquer problema de saúde.\n"
-"\n"
-"\n"
-"Quando tentar abrir (adicionar dados) a um episódio de um problema\n"
-"de saúde o GNUmed checará se existe um episódio aberto para esse \n"
-"problema. Se existir consultará a idade daquele episódio. O episódio \n"
-"será fechado se estiver suspenso (i.e. nenhum dado adicionado) pelo\n"
-"período de tempo (em dias) que será configurado aqui.\n"
-"\n"
-"\n"
-"Se um episódio não esteve suspenso por tempo suficiente o GNUmed\n"
-"perguntará o que deve fazer.\n"
-"\n"
-"Configure o número máximo de DIAS para suspensão de episódios:"
 
-msgid ""
-"If you want the GNUmed developers to be able to\n"
-"contact you directly - rather than via the public\n"
-"mailing list only - you can enter your preferred\n"
-"email address here.\n"
-"\n"
-"This address will then be included with bug reports\n"
-"or contributions to the GNUmed community you may\n"
-"choose to send from within the GNUmed client.\n"
-"\n"
-"Leave this blank if you wish to stay anonymous.\n"
+msgid "Cannot add staff member. No active patient."
 msgstr ""
 
-msgid "Please enter your email address."
-msgstr "Por favor informe seu endereço de email."
+msgid "Cannot delete patient. No patient active."
+msgstr ""
 
 msgid ""
-"Do you want GNUmed to check for updates at startup ?\n"
-"\n"
-"You will still need your system administrator to\n"
-"actually install any updates for you.\n"
+"You have to manually close this window to finalize shutting down GNUmed."
 msgstr ""
 
-msgid "Yes, check for updates at startup."
+msgid "This is so that you can inspect the console output at your leisure."
 msgstr ""
 
-msgid "No, do not check for updates at startup."
+msgid "no patient"
+msgstr ""
+
+#, python-format
+msgid "Saved screenshot to file [%s]."
+msgstr ""
+
+msgid "Python version check"
 msgstr ""
 
+#, python-format
 msgid ""
-"When checking for updates do you want GNUmed to\n"
-"look for bug fix updates only or do you want to\n"
-"know about features updates, too ?\n"
-"\n"
-"Minor updates (x.y.z.a -> x.y.z.b) contain bug fixes\n"
-"only. They can usually be installed without much\n"
-"preparation. They never require a database upgrade.\n"
+"You are running Python version\n"
+" %s\n"
 "\n"
-"Major updates (x.y.a -> x..y.b or y.a -> x.b) come\n"
-"with new features. They need more preparation and\n"
-"often require a database upgrade.\n"
+"However, GNUmed wants Python 2.7 to\n"
+"facilitate migration to Python 3.\n"
 "\n"
-"You will still need your system administrator to\n"
-"actually install any updates for you.\n"
+"Please upgrade your Python interpreter !"
 msgstr ""
 
-msgid "Yes, check for feature updates, too."
+msgid "GNUmed client"
 msgstr ""
 
-msgid "No, check for bug-fix updates only."
+msgid "GNUmed stdout/stderr window"
 msgstr ""
 
-msgid ""
-"GNUmed can check for new releases being available. To do\n"
-"so it needs to load version information from an URL.\n"
-"\n"
-"The default URL is:\n"
-"\n"
-" http://www.gnumed.de/downloads/gnumed-versions.txt\n"
-"\n"
-"but you can configure any other URL locally. Note\n"
-"that you must enter the location as a valid URL.\n"
-"Depending on the URL the client will need online\n"
-"access when checking for updates."
+msgid "redirecting STDOUT/STDERR to this log window"
 msgstr ""
 
+#, python-format
 msgid ""
-"Do you want to allow saving of new documents without\n"
-"any parts or do you want GNUmed to enforce that they\n"
-"contain at least one part before they can be saved ?\n"
+"The database account [%s] cannot be used as a\n"
+"staff member login for GNUmed. There was an\n"
+"error retrieving staff details for it.\n"
 "\n"
-"Part-less documents can be useful if you want to build\n"
-"up an index of, say, archived documents but do not\n"
-"want to scan in all the pages contained therein."
+"Please ask your administrator for help.\n"
 msgstr ""
 
-msgid "Yes, allow saving documents without any parts."
+msgid "Checking access permissions"
 msgstr ""
 
-msgid "No, require documents to have at least one part."
+#, python-format
+msgid "Database <%s> on <%s>"
 msgstr ""
 
-msgid ""
-"After importing a new document do you\n"
-"want GNUmed to display the unique ID\n"
-"it auto-generated for that document ?\n"
-"\n"
-"This can be useful if you want to label the\n"
-"originals with that ID for later identification."
+#, python-format
+msgid "Branch \"%s\" of praxis \"%s\"\n"
 msgstr ""
 
-msgid "Yes, display the ID generated for the new document after importing."
+msgid "Verifying database"
 msgstr ""
 
-msgid ""
-"No, do not display the ID generated for the new document after importing."
+msgid "Connect"
 msgstr ""
 
-msgid ""
-"After importing a new document do you\n"
-"want GNUmed to generate a unique ID\n"
-"(UUID) for that document ?\n"
-"\n"
-"This can be useful if you want to label the\n"
-"originals with that ID for later identification."
+msgid "Yes, connect to this database."
 msgstr ""
 
-msgid "Yes, generate a UUID for the new document after importing."
+msgid "Disconnect"
 msgstr ""
 
-msgid "No, do not generate a UUID for the new document after importing."
+msgid "No, do not connect to this database."
 msgstr ""
 
+#, python-format
 msgid ""
-"GNUmed can show the document review dialog after\n"
-"calling the appropriate viewer for that document.\n"
-"\n"
-"Select the conditions under which you want\n"
-"GNUmed to do so:\n"
+"Cannot find configuration file in any of:\n"
 "\n"
-" 0: never display the review dialog\n"
-" 1: always display the dialog\n"
-" 2: only if there is no previous review by me\n"
-" 3: only if there is no previous review at all\n"
-" 4: only if there is no review by the responsible reviewer\n"
+" %s\n"
+"You may need to use the comand line option\n"
 "\n"
-"Note that if a viewer is configured to not block\n"
-"GNUmed during document display the review dialog\n"
-"will actually appear in parallel to the viewer."
+"\t--conf-file=<FILE>"
 msgstr ""
 
-msgid "Addresses (likely slow)"
+msgid "Checking configuration files"
 msgstr ""
 
-msgid "Branded drugs (as marketed)"
+msgid "GNUmed startup"
 msgstr ""
 
-msgid "Dynamic automatic hints"
+#, python-format
+msgid ""
+"The currently selected database language ('%s') does\n"
+"not match the current system language ('%s').\n"
+"\n"
+"Do you want to set the database language to '%s' ?\n"
 msgstr ""
 
-msgid "Codes and their respective terms"
+msgid "Checking database language settings"
 msgstr ""
 
-#, fuzzy
-msgid "Communication channel types"
-msgstr "Removendo canal de comunicações."
+#, python-format
+msgid "Set your database language to [%s]."
+msgstr ""
 
-msgid "Components of branded drugs (substances in brands)"
+msgid "Don't set"
 msgstr ""
 
-msgid "Diagnostic organizations (path labs, ...)"
+msgid "Do not set your database language now."
 msgstr ""
 
-msgid "Document templates (forms, letters, plots, ...)"
+msgid "Remember to ignore language mismatch"
 msgstr ""
 
-msgid "Document types"
+#, python-format
+msgid ""
+"Checking this will make GNUmed remember your decision\n"
+"until the system language is changed.\n"
+"\n"
+"You can also reactivate this inquiry by removing the\n"
+"corresponding \"ignore\" option from the configuration file\n"
+"\n"
+" [%s]"
 msgstr ""
 
-msgid "Encounter types"
+#, fuzzy
+msgid "generic activity"
+msgstr "Genéricos"
+
+msgid "Access denied"
 msgstr ""
 
-msgid "Keyword based text expansion macros"
+#, python-format
+msgid ""
+"Your account is not set up to access this part of GNUmed:\n"
+"\n"
+"  [%s]"
 msgstr ""
 
-msgid "Meta test/measurement types"
+msgid "Save timeline as SVG image under..."
 msgstr ""
 
-msgid "Organizations with their units, addresses, and comm channels"
+#, fuzzy
+msgid "timeline image"
+msgstr "todos os arquivos"
+
+#, fuzzy
+msgid "timeline data"
+msgstr "Paciente"
+
+msgid "Cannot change notebook tabs. No active patient."
 msgstr ""
 
-msgid "Patient tags"
+msgid "add plugin ..."
 msgstr ""
 
-msgid "Provinces (counties, territories, states, regions, ...)"
+msgid "Cannot activate Allergy Manager. No active patient."
 msgstr ""
 
-msgid "String translations in the database"
+msgid "RR ?"
 msgstr ""
 
-msgid "Test/measurement types"
+#, python-format
+msgid "BMI %s"
 msgstr ""
 
-msgid "Vaccination targets (conditions known to be preventable by vaccination)"
+msgid "BMI ?"
 msgstr ""
 
-msgid "Vaccines"
+msgid "GFR ?"
 msgstr ""
 
-msgid "Workplace profiles (which plugins to load)"
+#, python-format
+msgid "GFR %s"
 msgstr ""
 
-msgid "Consumable substances"
+#, python-format
+msgid "?EDC %s"
 msgstr ""
 
-msgid "Billable items"
+#, python-format
+msgid "EDC %s"
+msgstr ""
+
+msgid "<Age>"
 msgstr ""
 
 #, fuzzy
-msgid "Reference data sources"
-msgstr "Informação referente"
+msgid "no patient selected"
+msgstr "Invocar Inspetor"
+
+#, fuzzy, python-format
+msgid "Gender: %s (%s) - %s\n"
+msgstr "Consultas: %s (%s - %s):"
+
+#, fuzzy, python-format
+msgid "Born: %s\n"
+msgstr "&Local"
+
+#, fuzzy, python-format
+msgid "Died: %s\n"
+msgstr "Fechado"
 
-msgid "Test/measurement panels/profiles"
-msgstr ""
+#, fuzzy, python-format
+msgid "At age: %s\n"
+msgstr "Paciente"
 
-msgid "Master data management"
+msgid " (date of birth and age are estimated)\n"
 msgstr ""
 
-msgid "Select the list you want to manage:"
+#, python-format
+msgid "%(sex)s  %(dob)s (%(age)s today !)"
 msgstr ""
 
-msgid "No DICOM viewer found."
+msgid ""
+"\n"
+"Today is the patient's birthday !\n"
+"\n"
 msgstr ""
 
-msgid "risk assessment"
+#, python-format
+msgid "Birthday: %s ago\n"
 msgstr ""
 
-msgid "cardiovascular risk assessment"
-msgstr ""
+#, fuzzy, python-format
+msgid "Birthday: in %s\n"
+msgstr "Lembrete de aniversário"
+
+#, fuzzy, python-format
+msgid "Age: %s\n"
+msgstr "&Local"
 
 #, python-format
-msgid "[arriba] XML result not found in [%s]"
-msgstr ""
+msgid "last confirmed %s\n"
+msgstr "atualizado: %s\n"
 
-msgid "ACS risk assessment calculator not configured."
-msgstr ""
+#, python-format
+msgid "Comment (%s): %%s"
+msgstr "Comentário: %s"
 
 #, python-format
-msgid "Cannot run [%s] !"
+msgid " - expires %s"
 msgstr ""
 
 #, python-format
-msgid "There was a problem accessing the [arriba] result in [%s] !"
+msgid ""
+"Due for %s (since %s%s):\n"
+"%s%s\n"
+"Patient: %s\n"
+"Reminder by: %s"
 msgstr ""
 
-msgid "[-9999]: <access violation test error>"
-msgstr ""
+#, fuzzy
+msgid "Clinical reminder"
+msgstr "Relevante Clinicamente"
+
+#, fuzzy
+msgid "Adding automatic dynamic hint"
+msgstr "Apagando documento"
+
+#, fuzzy
+msgid "Editing automatic dynamic hint"
+msgstr "Apagando documento"
+
+#, fuzzy
+msgid "Deleting automatic dynamic hint"
+msgstr "Apagando documento"
 
+#, python-format
 msgid ""
-"This is a deliberate AcessDenied exception thrown to test the handling of "
-"access violations by means of a decorator."
+"Really delete this dynamic hint ?\n"
+"\n"
+" [%s]"
 msgstr ""
 
-msgid "testing access check for non-existant <admin> role"
-msgstr ""
+#, fuzzy
+msgid "deleting a dynamic hint"
+msgstr "Apagando documento"
 
 msgid ""
-"This is a deliberate AcessDenied exception. You should not see this message "
-"because the role is checked in a decorator."
+"\n"
+"Dynamic hints registered with GNUmed.\n"
 msgstr ""
 
-msgid "pgAdmin III not found."
-msgstr ""
+#, fuzzy
+msgid "Showing dynamic hints."
+msgstr "Apagando documento"
 
-msgid "Error reloading hook script."
+msgid "Hint"
 msgstr ""
 
-msgid "Save current log as..."
+msgid "Browse and install automatic dynamic hints data packs"
 msgstr ""
 
-msgid "log files"
+#, fuzzy, python-format
+msgid "By: %s"
+msgstr "&Local"
+
+msgid "No entry in field <Source>."
 msgstr ""
 
-#, python-format
-msgid "Log file backed up as [%s]."
+msgid "No entry in field <Conditions>."
 msgstr ""
 
-msgid "Cannot start new encounter. No active patient."
-msgstr "Não foi possível iniciar nova consulta. Não há um paciente ativo."
+#, fuzzy
+msgid "No entry in field <Description>."
+msgstr "Erro ao executar o script de hook [%s]"
 
-msgid "Cannot add health issue. No active patient."
-msgstr "Não foi possível adicionar problema de saúde. Não há paciente ativo."
+msgid "No entry in field <Title>."
+msgstr ""
 
 #, fuzzy
-msgid "Cannot add episode. No active patient."
-msgstr "Não foi possível adicionar problema de saúde. Não há paciente ativo."
+msgid "creating a new dynamic hint"
+msgstr "Apagando documento"
 
-msgid "Cannot add medication. No active patient."
+msgid "updating an existing dynamic hint"
 msgstr ""
 
-msgid "Cannot add allergy. No active patient."
-msgstr ""
+#, fuzzy
+msgid "Deleting suppressed dynamic hint"
+msgstr "Apagando documento"
 
-msgid "Cannot manage performed procedures. No active patient."
+#, python-format
+msgid ""
+"Really delete the suppression of this dynamic hint ?\n"
+"\n"
+" [%s]"
 msgstr ""
 
 #, fuzzy
-msgid "Cannot manage hospitalizations. No active patient."
-msgstr "Não foi possível adicionar problema de saúde. Não há paciente ativo."
+msgid ""
+"\n"
+"Dynamic hints suppressed in this patient.\n"
+msgstr "Detalhes da fila de espera para esse paciente."
 
 #, fuzzy
-msgid "Cannot manage external care. No active patient."
-msgstr "Não foi possível adicionar problema de saúde. Não há paciente ativo."
-
-msgid "Cannot edit occupation. No active patient."
-msgstr ""
+msgid "Showing suppressed dynamic hints."
+msgstr "Apagando documento"
 
 #, fuzzy
-msgid "manage vaccinations"
-msgstr "Últimas vacinações"
-
-msgid "Cannot add vaccinations. No active patient."
-msgstr ""
+msgid "Rationale"
+msgstr "Reacção"
 
 #, fuzzy
-msgid "Cannot manage family history. No active patient."
-msgstr "Não foi possível adicionar problema de saúde. Não há paciente ativo."
+msgid "Manage hints"
+msgstr "Administrar as descrições."
 
 #, fuzzy
-msgid "Cannot manage measurements. No active patient."
-msgstr "Não foi possível adicionar problema de saúde. Não há paciente ativo."
+msgid "Manage automatic dynamic hints"
+msgstr "Apagando documento"
 
-msgid "calculate EDC"
+msgid "Cannot delete family history item."
 msgstr ""
 
 #, fuzzy
-msgid "manage suppressed hints"
-msgstr "Adicionando novo endereço"
-
-#, fuzzy
-msgid "Cannot manage suppressed hints. No active patient."
-msgstr "Não foi possível adicionar problema de saúde. Não há paciente ativo."
+msgid "Family history of this patient."
+msgstr "Detalhes da fila de espera para esse paciente."
 
-msgid "Cannot show EMR summary. No active patient."
-msgstr "Não é possível mostrar resumo de Prontuário. Não há paciente ativo."
+msgid "Showing family history."
+msgstr ""
 
-msgid "EMR Summary"
-msgstr "Resumo do Prontuário"
+#, fuzzy
+msgid "Fatal"
+msgstr "fatal"
 
-msgid "Cannot export EMR journal. No active patient."
-msgstr ""
+#, fuzzy
+msgid "Noted"
+msgstr "&Nota"
 
-msgid "Save patient's EMR journal as..."
+msgid "Died"
 msgstr ""
 
-msgid "Error exporting patient EMR as chronological journal."
+msgid "Adding family history"
 msgstr ""
 
-msgid "EMR journal export"
+msgid "Editing family history"
 msgstr ""
 
-#, python-format
-msgid "Successfully exported EMR as chronological journal into file [%s]."
+msgid ""
+"\n"
+"Please select the default drug data source from the list below.\n"
+"\n"
+"Note that to actually use it you need to have the database installed, too."
 msgstr ""
 
-msgid "Cannot add tag to person. No active patient."
+msgid "Configuring default drug data source"
 msgstr ""
 
-#, python-format
-msgid "Edit the comment on tag [%s]"
+msgid "No default drug database configured."
 msgstr ""
 
-msgid "Editing tag comment"
+msgid "There is no default drug database configured."
 msgstr ""
 
-msgid "Cannot export patient as GDT. No active patient."
+msgid "Jumping to drug database"
 msgstr ""
 
-msgid "Exported demographics as GDT to clipboard."
+msgid "Cannot import drugs from IFAP into chart without chart."
 msgstr ""
 
-#, fuzzy
-msgid "Cannot export patient as VCARD. No active patient."
-msgstr "Não é possível exportar Prontuário Eletrônico. Não há paciente ativo."
+#, python-format
+msgid "Cannot call IFAP via [%s]."
+msgstr "Cannot call IFAP via [%s]."
 
-msgid "Exported demographics as VCARD to clipboard."
-msgstr ""
+#, python-format
+msgid "Cannot create IFAP <-> GNUmed transfer file [%s]."
+msgstr "Cannot create IFAP <-> GNUmed transfer file [%s]."
 
-#, fuzzy
-msgid "Cannot export patient as XML (LinuxMedNews). No active patient."
-msgstr "Não é possível exportar Prontuário Eletrônico. Não há paciente ativo."
+msgid "Current medication"
+msgstr "Medicação atual"
 
-#, python-format
-msgid "Exported demographics to XML file [%s]."
+msgid ""
+"\n"
+"The ATC codes as known to GNUmed.\n"
 msgstr ""
 
-#, python-format
-msgid "Exported demographics to GDT file [%s]."
+msgid "Showing ATC codes."
 msgstr ""
 
-#, python-format
-msgid "Exported demographics to VCARD file [%s]."
+msgid "Choose an ATC import config file"
 msgstr ""
 
-msgid "Cannot add staff member. No active patient."
+msgid "config files"
 msgstr ""
 
-msgid "Cannot delete patient. No patient active."
+msgid "importing ATC reference data"
 msgstr ""
 
-msgid ""
-"You have to manually close this window to finalize shutting down GNUmed."
+msgid "Successfully imported ATC reference data."
 msgstr ""
 
-msgid "This is so that you can inspect the console output at your leisure."
+msgid "Importing ATC reference data failed."
 msgstr ""
 
-msgid "no patient"
+msgid "Select an ATC (Anatomical-Therapeutic-Chemical) code."
 msgstr ""
 
-#, python-format
-msgid "Saved screenshot to file [%s]."
+msgid "Cannot edit this substance. It is in use."
 msgstr ""
 
-msgid "GNUmed client"
+msgid "Adding new consumable substance"
 msgstr ""
 
-msgid "GNUmed stdout/stderr window"
+msgid "Editing consumable substance"
 msgstr ""
 
-msgid "redirecting STDOUT/STDERR to this log window"
+msgid "Cannot delete this substance. It is in use."
 msgstr ""
 
-#, python-format
 msgid ""
-"The database account [%s] cannot be used as a\n"
-"staff member login for GNUmed. There was an\n"
-"error retrieving staff details for it.\n"
 "\n"
-"Please ask your administrator for help.\n"
+"These are the consumable substances registered with GNUmed.\n"
+msgstr ""
+
+msgid "Import"
+msgstr ""
+
+msgid "Import consumable substances from a drug database."
+msgstr ""
+
+msgid "Cannot save consumable substance. Missing essential input."
 msgstr ""
 
-msgid "Checking access permissions"
+#, python-format
+msgid "Cannot save consumable substance. %s"
 msgstr ""
 
-#, python-format
-msgid "Database <%s> on <%s>"
+msgid "The substance with optional strength."
 msgstr ""
 
-#, python-format
-msgid "Branch \"%s\" of praxis \"%s\"\n"
+msgid "Cannot remove this component from the drug. It is in use."
 msgstr ""
 
-msgid "Verifying database"
+msgid ""
+"\n"
+"These are the components in the drug brands known to GNUmed.\n"
 msgstr ""
 
-msgid "Connect"
+msgid "Showing drug brand components."
 msgstr ""
 
-msgid "Yes, connect to this database."
+msgid "Adding new drug component"
 msgstr ""
 
-msgid "Disconnect"
+msgid "Editing drug component"
 msgstr ""
 
-msgid "No, do not connect to this database."
+msgid "Cannot edit drug component. It is in use."
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot find configuration file in any of:\n"
-"\n"
-" %s\n"
-"You may need to use the comand line option\n"
-"\n"
-"\t--conf-file=<FILE>"
+msgid "Cannot save drug component. Invalid or missing essential input."
 msgstr ""
 
-msgid "Checking configuration files"
+msgid "A drug component with optional strength."
 msgstr ""
 
-msgid "GNUmed startup"
+msgid "Editing drug"
 msgstr ""
 
 #, python-format
 msgid ""
-"The currently selected database language ('%s') does\n"
-"not match the current system language ('%s').\n"
+"Cannot edit the branded drug product\n"
 "\n"
-"Do you want to set the database language to '%s' ?\n"
+" \"%s\" (%s)\n"
+"\n"
+"because it is currently taken by patients.\n"
 msgstr ""
 
-msgid "Checking database language settings"
+msgid "Adding new drug brand"
 msgstr ""
 
-msgid "Set"
+msgid "Editing drug brand"
 msgstr ""
 
-#, python-format
-msgid "Set your database language to [%s]."
+msgid "Manage consumable substances"
 msgstr ""
 
-msgid "Don't set"
+msgid "not in use"
 msgstr ""
 
-msgid "Do not set your database language now."
+#, python-format
+msgid "ATC: %s\n"
 msgstr ""
 
-msgid "Remember to ignore language mismatch"
+msgid "Editing medication"
 msgstr ""
 
 #, python-format
 msgid ""
-"Checking this will make GNUmed remember your decision\n"
-"until the system language is changed.\n"
+"Cannot edit the medication\n"
 "\n"
-"You can also reactivate this inquiry by removing the\n"
-"corresponding \"ignore\" option from the configuration file\n"
+" \"%s\" (%s)\n"
 "\n"
-" [%s]"
+"because it is a vaccine. Please edit it\n"
+"from the vaccine management section !\n"
 msgstr ""
 
-#, fuzzy
-msgid "generic activity"
-msgstr "Genéricos"
-
-msgid "Access denied"
+msgid "Deleting medication"
 msgstr ""
 
 #, python-format
 msgid ""
-"Your account is not set up to access this part of GNUmed:\n"
+"Cannot delete the medication\n"
 "\n"
-"  [%s]"
-msgstr ""
-
-msgid "Save timeline as SVG image under..."
-msgstr ""
-
-#, fuzzy
-msgid "timeline image"
-msgstr "todos os arquivos"
-
-#, fuzzy
-msgid "timeline data"
-msgstr "Paciente"
-
-msgid "Cannot change notebook tabs. No active patient."
+" \"%s\" (%s)\n"
+"\n"
+"because it is a vaccine. Please delete it\n"
+"from the vaccine management section !\n"
 msgstr ""
 
-msgid "add plugin ..."
+msgid ""
+"\n"
+"These are the drug brands known to GNUmed.\n"
 msgstr ""
 
-msgid "Cannot activate Allergy Manager. No active patient."
+msgid "Showing branded drugs."
 msgstr ""
 
-msgid "<Age>"
+msgid "Import substances and brands from a drug database."
 msgstr ""
 
-#, fuzzy
-msgid "no patient selected"
-msgstr "Invocar Inspetor"
-
-#, fuzzy, python-format
-msgid "Gender: %s (%s) - %s\n"
-msgstr "Consultas: %s (%s - %s):"
-
-#, fuzzy, python-format
-msgid "Born: %s\n"
-msgstr "&Local"
-
-#, fuzzy, python-format
-msgid "Died: %s\n"
-msgstr "Fechado"
-
-#, fuzzy, python-format
-msgid "At age: %s\n"
-msgstr "Paciente"
-
-msgid " (date of birth and age are estimated)\n"
+msgid "Managing components of a drug"
 msgstr ""
 
 #, python-format
-msgid "%(sex)s  %(dob)s (%(age)s today !)"
-msgstr ""
-
 msgid ""
+"Cannot manage the components of the branded drug product\n"
 "\n"
-"Today is the patient's birthday !\n"
+" \"%s\" (%s)\n"
 "\n"
+"because it is currently taken by patients.\n"
 msgstr ""
 
-#, python-format
-msgid "Birthday: %s ago\n"
+msgid "Pick the substances which are components of this drug."
 msgstr ""
 
-#, fuzzy, python-format
-msgid "Birthday: in %s\n"
-msgstr "Lembrete de aniversário"
-
-#, fuzzy, python-format
-msgid "Age: %s\n"
-msgstr "&Local"
-
-#, python-format
-msgid "last confirmed %s\n"
-msgstr "atualizado: %s\n"
-
-#, python-format
-msgid "Comment (%s): %%s"
-msgstr "Comentário: %s"
-
-#, python-format
-msgid " - expires %s"
+msgid "Components of drug"
 msgstr ""
 
 #, python-format
 msgid ""
-"Due for %s (since %s%s):\n"
-"%s%s\n"
-"Patient: %s\n"
-"Reminder by: %s"
+"Adjust the components of \"%s\"\n"
+"\n"
+"The drug must contain at least one component. Any given\n"
+"substance can only be included once per drug."
 msgstr ""
 
-#, fuzzy
-msgid "Clinical reminder"
-msgstr "Relevante Clinicamente"
-
-#, fuzzy
-msgid "Adding automatic dynamic hint"
-msgstr "Apagando documento"
+msgid "Managing components of a drug ..."
+msgstr ""
 
-#, fuzzy
-msgid "Editing automatic dynamic hint"
-msgstr "Apagando documento"
+msgid "Cannot edit drug brand. It is in use."
+msgstr ""
 
 #, fuzzy
-msgid "Deleting automatic dynamic hint"
-msgstr "Apagando documento"
+msgid "Checking brand data"
+msgstr "Checando por atualizações do cliente"
 
 #, python-format
 msgid ""
-"Really delete this dynamic hint ?\n"
+"The brand information you entered:\n"
 "\n"
-" [%s]"
+" [%s %s]\n"
+"\n"
+"already exists as a drug product."
 msgstr ""
 
-#, fuzzy
-msgid "deleting a dynamic hint"
-msgstr "Apagando documento"
-
 msgid ""
+"You have not selected any substances\n"
+"as drug components.\n"
 "\n"
-"Dynamic hints registered with GNUmed.\n"
+"Without components you will not be able to\n"
+"use this drug for documenting patient care.\n"
+"\n"
+"Are you sure you want to save\n"
+"it without components ?"
 msgstr ""
 
-#, fuzzy
-msgid "Showing dynamic hints."
-msgstr "Apagando documento"
-
-msgid "Hint"
+msgid "Cannot save branded drug. Invalid or missing essential input."
 msgstr ""
 
-msgid "Browse and install automatic dynamic hints data packs"
+msgid ""
+"The brand name of the drug.\n"
+"\n"
+"Note: a brand name will need to be linked to\n"
+"one or more components before it can be used,\n"
+"except in the case of fake (generic) vaccines."
 msgstr ""
 
-#, fuzzy, python-format
-msgid "By: %s"
-msgstr "&Local"
+msgid "No EMR data loaded."
+msgstr "Não há dados abertos no Prontuário."
 
-msgid "No entry in field <Source>."
-msgstr ""
+msgid "EMR text dump"
+msgstr "Saída em forma de texto do Prontuário"
 
-msgid "No entry in field <Conditions>."
+msgid "Currently there is no active patient. Cannot retrieve EMR text."
 msgstr ""
+"Atualmente não há paciente ativo. Não é possível abrir texto do Prontuário."
 
 #, fuzzy
-msgid "No entry in field <Description>."
-msgstr "Erro ao executar o script de hook [%s]"
+msgid "SOAP Editor Actions:"
+msgstr "Vacinas:"
 
-msgid "No entry in field <Title>."
+#, fuzzy
+msgid "&Sort lines"
+msgstr "Episódio Selecionado."
+
+msgid "Sort lines by SOAP category"
 msgstr ""
 
-#, fuzzy
-msgid "creating a new dynamic hint"
-msgstr "Apagando documento"
+msgid "e&Xpand keyword"
+msgstr ""
 
-msgid "updating an existing dynamic hint"
+msgid "Expand keyword / macro"
 msgstr ""
 
 #, fuzzy
-msgid "Deleting suppressed dynamic hint"
-msgstr "Apagando documento"
+msgid "as &Subjective"
+msgstr "Subjectivo"
 
-#, python-format
-msgid ""
-"Really delete the suppression of this dynamic hint ?\n"
-"\n"
-" [%s]"
+msgid "Set line to category \"Subjective\""
 msgstr ""
 
 #, fuzzy
-msgid ""
-"\n"
-"Dynamic hints suppressed in this patient.\n"
-msgstr "Detalhes da fila de espera para esse paciente."
+msgid "as &Objective"
+msgstr "Objectivo"
+
+msgid "Set line to category \"Objective\""
+msgstr ""
 
 #, fuzzy
-msgid "Showing suppressed dynamic hints."
-msgstr "Apagando documento"
+msgid "as &Assessment"
+msgstr "Avaliação"
+
+msgid "Set line to category \"Assessment\""
+msgstr ""
 
 #, fuzzy
-msgid "Rationale"
-msgstr "Reacção"
+msgid "as &Plan"
+msgstr "Plano"
+
+msgid "Set line to category \"Plan\""
+msgstr ""
 
 #, fuzzy
-msgid "Manage hints"
-msgstr "Administrar as descrições."
+msgid "as &Unspecified"
+msgstr "soap_Objective"
+
+msgid "Set line to category \"unspecified\""
+msgstr ""
 
 #, fuzzy
-msgid "Manage automatic dynamic hints"
-msgstr "Apagando documento"
+msgid "as ad&Ministrative"
+msgstr "Administrativo"
 
-msgid "Cannot delete family history item."
+msgid "Set line to category \"administrative\""
+msgstr ""
+
+msgid "→ &Clipboard"
 msgstr ""
 
 #, fuzzy
-msgid "Family history of this patient."
-msgstr "Detalhes da fila de espera para esse paciente."
+msgid "Copy line to clipboard"
+msgstr "Mover o paciente para cima."
 
-msgid "Showing family history."
+msgid "→ +Clipboard+"
 msgstr ""
 
 #, fuzzy
-msgid "Fatal"
-msgstr "fatal"
+msgid "Add line to clipboard"
+msgstr "Mover o paciente para cima."
 
 #, fuzzy
-msgid "Noted"
-msgstr "&Nota"
+msgid "Copy content to clipboard"
+msgstr "Mover o paciente para cima."
 
-msgid "Died"
-msgstr ""
+#, fuzzy
+msgid "Add content to clipboard"
+msgstr "Mover o paciente para cima."
 
-msgid "Adding family history"
-msgstr ""
+#, fuzzy
+msgid "Copy selection to clipboard"
+msgstr "Mover o paciente para cima."
 
-msgid "Editing family history"
-msgstr ""
+#, fuzzy
+msgid "Add selection to clipboard"
+msgstr "Mover o paciente para cima."
 
-msgid "No EMR data loaded."
-msgstr "Não há dados abertos no Prontuário."
+#, fuzzy
+msgid "&Line ..."
+msgstr "&Ações ... "
 
-msgid "EMR text dump"
-msgstr "Saída em forma de texto do Prontuário"
+#, fuzzy
+msgid "&Text ..."
+msgstr "Texto"
 
-msgid "Currently there is no active patient. Cannot retrieve EMR text."
-msgstr ""
-"Atualmente não há paciente ativo. Não é possível abrir texto do Prontuário."
+#, fuzzy
+msgid "&Region ..."
+msgstr "Estado"
 
 #, fuzzy
 msgid "Show HL7 file:"
@@ -16850,6 +17844,10 @@ msgstr ""
 msgid "Extracting HL7 from XML file"
 msgstr ""
 
+#, python-format
+msgid "Unwrapped HL7 into [%s] from [%s]."
+msgstr ""
+
 msgid "Select HL7 file for staging:"
 msgstr ""
 
@@ -16875,6 +17873,10 @@ msgid ""
 " %s"
 msgstr ""
 
+#, fuzzy, python-format
+msgid "Staged HL7 from [%s]."
+msgstr "Abrir dados de modelo de um arquivo."
+
 msgid "Importing HL7 data"
 msgstr ""
 
@@ -16924,10 +17926,6 @@ msgid "Identification"
 msgstr "Medicação atual"
 
 #, fuzzy
-msgid "Show"
-msgstr "Mostrar arquivo de Log"
-
-#, fuzzy
 msgid "Show formatted HL7"
 msgstr "editar os detalhes do modelo de formulário"
 
@@ -16976,6 +17974,20 @@ msgstr "O paciente correntemente seleccionado é:"
 msgid "Plot current selection"
 msgstr "Medicação atual"
 
+#, fuzzy
+msgid ""
+"Select the measurements panel to show in the top pane for continuous "
+"monitoring."
+msgstr "Um comentário sobre esse paciente."
+
+#, fuzzy
+msgid "Lab panel"
+msgstr "Administrar as descrições."
+
+#, fuzzy
+msgid "Configuring continuous monitoring measurements panel"
+msgstr "Medidas e resultados:"
+
 msgid "No default Gnuplot script template selected."
 msgstr ""
 
@@ -16999,12 +18011,29 @@ msgstr ""
 msgid "Cannot plot without a plot script."
 msgstr ""
 
-msgid "Time"
+msgid "Result"
 msgstr ""
 
-msgid "Result"
+#, fuzzy
+msgid "Perform on selected results:"
+msgstr "resultado corrigido"
+
+msgid "Review and &sign"
+msgstr ""
+
+msgid "Export to &file"
+msgstr ""
+
+msgid "Export to &clipboard"
 msgstr ""
 
+msgid "Panels"
+msgstr ""
+
+#, fuzzy
+msgid "List"
+msgstr "Lista de espera"
+
 msgid ""
 "lab_grid_date_format::%Y\n"
 "%b %d"
@@ -17080,19 +18109,6 @@ msgstr ""
 msgid "All: by &Day"
 msgstr ""
 
-#, fuzzy
-msgid "Perform on selected results:"
-msgstr "resultado corrigido"
-
-msgid "Review and &sign"
-msgstr ""
-
-msgid "Export to &file"
-msgstr ""
-
-msgid "Export to &clipboard"
-msgstr ""
-
 #, python-format
 msgid "%s results selected. Too many to list individually."
 msgstr ""
@@ -17286,6 +18302,10 @@ msgstr ""
 msgid "EMR Actions:"
 msgstr "Reacção"
 
+#, fuzzy
+msgid "Print EMR"
+msgstr "Imprimir"
+
 msgid "Create health issue"
 msgstr "Criar Problema de Saúde"
 
@@ -17450,16 +18470,43 @@ msgstr ""
 msgid "&New notes %s"
 msgstr ""
 
+msgid "Find text in EMR Journal"
+msgstr ""
+
+#, fuzzy
+msgid "Modified"
+msgstr "Dados modificados"
+
+#, fuzzy
+msgid "Clinical time"
+msgstr "Anotações Clínicas"
+
+msgid "Who / When"
+msgstr ""
+
+#, python-format
 msgid ""
-"An error occurred while retrieving the EMR\n"
-"in journal form for the active patient.\n"
+"Chart entry: %s       [#%s in %s]\n"
+" Modified: %s by %s (%s rev %s)\n"
 "\n"
-"Please check the log file for details."
+"Health issue: %s%s\n"
+"Episode: %s%s\n"
+"Encounter: %s%s"
 msgstr ""
-"Um erro ocorreu ao abrir o Prontuário\n"
-"na forma de diário par ao paciente ativo.\n"
+
+#, python-format
+msgid ""
+"%s\n"
 "\n"
-"Veja o arquivo de log para os detalhes."
+"                        rev %s (%s) by %s in <%s>"
+msgstr ""
+
+#, python-format
+msgid ""
+"%s\n"
+"%s\n"
+"%s"
+msgstr ""
 
 msgid "Editing tag"
 msgstr ""
@@ -17597,18 +18644,15 @@ msgid ""
 "%s\n"
 msgstr ""
 
-msgid "This patient DID receive care."
+msgid "This patient DID receive care here."
 msgstr ""
 
-msgid "This person did NOT receive care."
+msgid "This person did NOT receive care here."
 msgstr ""
 
 msgid "Disabling person"
 msgstr ""
 
-msgid "Disabling patient"
-msgstr "Desabilitando paciente"
-
 msgid "Type or select a last name (family name/surname)."
 msgstr "Digite ou selecione um sobrenome."
 
@@ -17940,6 +18984,9 @@ msgstr ""
 "\n"
 "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
 
+msgid "Connecting to backend"
+msgstr "Ligando a backend"
+
 #, fuzzy, python-format
 msgid ""
 "Unable to connect to database:\n"
@@ -18163,9 +19210,6 @@ msgstr "Organização"
 msgid "Office"
 msgstr "Escritório"
 
-msgid "State"
-msgstr "Estado"
-
 msgid "Zip"
 msgstr "Código postal"
 
@@ -18223,8 +19267,9 @@ msgstr ""
 msgid "EMR Timeline"
 msgstr "Menu do Prontuário"
 
-msgid "Show &Timeline"
-msgstr ""
+#, fuzzy
+msgid "EMR &Timeline"
+msgstr "Menu do Prontuário"
 
 #, fuzzy
 msgid "Overview"
@@ -18253,11 +19298,13 @@ msgstr "Notas"
 msgid "&SimpleNotes"
 msgstr ""
 
-msgid "EMR tree"
-msgstr ""
+#, fuzzy
+msgid "EMR Tree"
+msgstr "Menu do Prontuário"
 
-msgid "EMR &Tree (topical)"
-msgstr ""
+#, fuzzy
+msgid "EMR &Tree"
+msgstr "Menu do Prontuário"
 
 #, fuzzy
 msgid "Print Manager"
@@ -18267,6 +19314,13 @@ msgstr "Imprimir"
 msgid "&Print Manager"
 msgstr "Imprimir"
 
+#, fuzzy
+msgid "EMR Journal"
+msgstr "Diário"
+
+msgid "EMR &Journal (list)"
+msgstr ""
+
 msgid "Appointments"
 msgstr ""
 
@@ -18279,6 +19333,12 @@ msgstr ""
 msgid "Show &lab journal"
 msgstr ""
 
+msgid "PACS"
+msgstr ""
+
+msgid "&PACS"
+msgstr ""
+
 msgid "Cardiac Devices"
 msgstr ""
 
@@ -18351,11 +19411,9 @@ msgstr ""
 msgid "User &manual (local)"
 msgstr ""
 
-msgid "EMR journal"
-msgstr ""
-
-msgid "EMR &Journal (chronological)"
-msgstr ""
+#, fuzzy
+msgid "EMR &Journal (text)"
+msgstr "Consulta Atual"
 
 msgid "Demographics"
 msgstr ""
@@ -18523,6 +19581,10 @@ msgstr ""
 msgid "Show &ExamplePlugin"
 msgstr ""
 
+#, fuzzy
+msgid "Find text"
+msgstr "Última"
+
 msgid "gm_ctl_client: starting slave GNUmed client"
 msgstr "gm_ctl_client: iniciando cliente GNUmed escravo"
 
@@ -18557,6 +19619,195 @@ msgstr "Interromper"
 msgid "Abort and do NOT connect to GNUmed."
 msgstr "Imterromper e NÃO ligar ao GNUmed"
 
+#, fuzzy
+#~ msgid ""
+#~ "Health issue: %s%s%s (%s versions)\n"
+#~ "\n"
+#~ msgstr "problema de saúde: %s"
+
+#, fuzzy
+#~ msgid ""
+#~ "Episode: %s%s%s (%s versions)\n"
+#~ "\n"
+#~ msgstr "Episódio %s%s%s (%s%s)   [#%s]\n"
+
+#, fuzzy
+#~ msgid ""
+#~ "Encounter: %s%s%s (%s versions)\n"
+#~ "\n"
+#~ msgstr "Consultas: %s (%s - %s):"
+
+#, fuzzy
+#~ msgid ""
+#~ "\n"
+#~ "current values:\n"
+#~ msgstr "<estado alérgico atual>"
+
+#~ msgid "soap_S"
+#~ msgstr "soap_S"
+
+#~ msgid "soap_O"
+#~ msgstr "soap_O"
+
+#~ msgid "soap_A"
+#~ msgstr "soap_A"
+
+#~ msgid "soap_P"
+#~ msgstr "soap_P"
+
+#, fuzzy
+#~ msgid "soap_U"
+#~ msgstr "soap_S"
+
+#~ msgid "soap_Subjective"
+#~ msgstr "soap_Subjectivo"
+
+#~ msgid "soap_Objective"
+#~ msgstr "soap_Objective"
+
+#~ msgid "soap_Assessment"
+#~ msgstr "soap_Assessment"
+
+#~ msgid "soap_Plan"
+#~ msgstr "soap_Plan"
+
+#, fuzzy
+#~ msgid "soap_Unspecified"
+#~ msgstr "soap_Objective"
+
+#~ msgid "soap_Administrative"
+#~ msgstr "soap_Administrativo"
+
+#, fuzzy
+#~ msgid "Search in list"
+#~ msgstr "Lista de medicamentos"
+
+#~ msgid "Parts"
+#~ msgstr "Porção"
+
+#~ msgid "Disabling patient"
+#~ msgstr "Desabilitando paciente"
+
+#, fuzzy
+#~ msgid "&Unknown"
+#~ msgstr "Desconhecido"
+
+#, fuzzy
+#~ msgid "When was smoking status last confirmed (mostly \"today\") ?"
+#~ msgstr "Quando foi que o estado alérgico foi confirmado pela última vez."
+
+#, fuzzy
+#~ msgid "Last confirmed: %s%s"
+#~ msgstr "Última confirmação:"
+
+#, fuzzy
+#~ msgid "Smoking status"
+#~ msgstr "rever estado"
+
+#~ msgid "State"
+#~ msgstr "Estado"
+
+#~ msgid ""
+#~ "Cannot connect to configuration database with:\n"
+#~ "\n"
+#~ "[%s]"
+#~ msgstr "Script não pode ser uma ligação (link): [%s]"
+
+#~ msgid ""
+#~ "Cannot connect to database with:\n"
+#~ "\n"
+#~ "[%s]"
+#~ msgstr ""
+#~ "Não foi possível ligar à base de dados com:\n"
+#~ "\n"
+#~ "[%s]"
+
+#~ msgid "No product information available."
+#~ msgstr "Não há informação disponível sobre o produto"
+
+#~ msgid ""
+#~ "Unable to connect to database:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Are you sure you have got a local database installed ?\n"
+#~ "\n"
+#~ "Please retry with proper credentials or cancel.\n"
+#~ "\n"
+#~ "You may also need to check the PostgreSQL client\n"
+#~ "authentication configuration in pg_hba.conf. For\n"
+#~ "details see:\n"
+#~ "\n"
+#~ "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
+#~ msgstr ""
+#~ "Não foi posível ligar à base de dados:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Certifique-se de que tem uma base de dados local instalada.\n"
+#~ "\n"
+#~ "Por favor volte a tentar com as credenciais adequadas ou cancele.\n"
+#~ "\n"
+#~ "Também pode verificar a autenticação do cliente PostgreSQL\n"
+#~ "no arquivo de configuração pg_hba.conf. Para\n"
+#~ "mais informações, consulte:\n"
+#~ "\n"
+#~ "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
+
+#~ msgid ""
+#~ "Unable to connect to database:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Please retry with proper credentials or cancel.\n"
+#~ "\n"
+#~ "You may also need to check the PostgreSQL client\n"
+#~ "authentication configuration in pg_hba.conf. For\n"
+#~ "details see:\n"
+#~ "\n"
+#~ "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
+#~ msgstr ""
+#~ "Não foi posível ligar à base de dados:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "É favor voltar a tentar com as credenciais adequadas ou cancelar.\n"
+#~ "\n"
+#~ "Também pode verificar a autenticação do cliente PostgreSQL\n"
+#~ "no arquivo de configuração pg_hba.conf. Para\n"
+#~ "mais informações, consulte:\n"
+#~ "\n"
+#~ "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
+
+#, fuzzy
+#~ msgid ""
+#~ "Unable to connect to database:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Please retry another backend / user / password combination !\n"
+#~ msgstr "Não foi possível ligar à base de dados\n"
+
+#~ msgid ""
+#~ "An error occurred while retrieving the EMR\n"
+#~ "in journal form for the active patient.\n"
+#~ "\n"
+#~ "Please check the log file for details."
+#~ msgstr ""
+#~ "Um erro ocorreu ao abrir o Prontuário\n"
+#~ "na forma de diário par ao paciente ativo.\n"
+#~ "\n"
+#~ "Veja o arquivo de log para os detalhes."
+
+#, fuzzy
+#~ msgid ""
+#~ "\n"
+#~ "Select the measurements panel to show in the top pane.\n"
+#~ msgstr "Um comentário sobre esse paciente."
+
+#~ msgid "The active ingredients of this brand."
+#~ msgstr "Os ingredientes ativos da marca."
+
 #~ msgid "Province"
 #~ msgstr "Província"
 
@@ -18591,10 +19842,6 @@ msgstr "Imterromper e NÃO ligar ao GNUmed"
 #~ "%s"
 
 #, fuzzy
-#~ msgid "Clinical hint"
-#~ msgstr "Anotações Clínicas"
-
-#, fuzzy
 #~ msgid "More info"
 #~ msgstr "Informação da rua"
 
@@ -18622,10 +19869,6 @@ msgstr "Imterromper e NÃO ligar ao GNUmed"
 #~ msgstr "&Assinar como:"
 
 #, fuzzy
-#~ msgid "file: %s (%s/)"
-#~ msgstr "&Local"
-
-#, fuzzy
 #~ msgid "Switching clinical hint activation"
 #~ msgstr "Acrescenta uma empresa"
 
@@ -18672,9 +19915,6 @@ msgstr "Imterromper e NÃO ligar ao GNUmed"
 #~ msgid "SQL: %s"
 #~ msgstr "SQL: %s"
 
-#~ msgid "cannot connect to service [%s]"
-#~ msgstr "não foi possível obter ligação ao serviço [%s]"
-
 #~ msgid "When was this substance started to be consumed."
 #~ msgstr "Quando foi que a substância começou a ser consumida."
 
@@ -18905,10 +20145,6 @@ msgstr "Imterromper e NÃO ligar ao GNUmed"
 #~ msgstr "S/P"
 
 #, fuzzy
-#~ msgid " Type: %s"
-#~ msgstr "Tipo:"
-
-#, fuzzy
 #~ msgid "Do you truly want to irrevocably delete this bill ?"
 #~ msgstr ""
 #~ "Você realmente quer apagar esse\n"
@@ -19191,8 +20427,5 @@ msgstr "Imterromper e NÃO ligar ao GNUmed"
 #~ msgstr ""
 #~ "Configure um diretório para usar como rascunho para arquivos temporários."
 
-#~ msgid "Temporary directory"
-#~ msgstr "Diretório de arquivos temporários"
-
 #~ msgid "error"
 #~ msgstr "erro"
diff --git a/client/po/pt_BR-gnumed.mo b/client/po/pt_BR-gnumed.mo
index cecc433..c50faf0 100644
Binary files a/client/po/pt_BR-gnumed.mo and b/client/po/pt_BR-gnumed.mo differ
diff --git a/client/po/pt_BR.po b/client/po/pt_BR.po
index e8af311..dab22dc 100644
--- a/client/po/pt_BR.po
+++ b/client/po/pt_BR.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gnumed\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-12-26 20:28+0100\n"
+"POT-Creation-Date: 2016-03-17 16:27+0100\n"
 "PO-Revision-Date: 2012-06-01 01:18+0000\n"
 "Last-Translator: Rogerio Luz Coelho <dr.rogerioluzcoelho at gmail.com>\n"
 "Language-Team: Brazilian Portuguese <pt_BR at li.org>\n"
@@ -1614,10 +1614,22 @@ msgstr ""
 "Pedido de ajuda\n"
 "---------------------"
 
+#, fuzzy, python-format
+msgid "Revision #%s"
+msgstr " Nova versão: \"%s\""
+
 #, python-format
 msgid "[%s:%s]: row not updated (nothing returned), row in use ?"
 msgstr "[%s:%s]: linha não atualizada (não houve retorno), linha está em uso?"
 
+#, fuzzy, python-format
+msgid "<%s(.bat)> not found"
+msgstr "Página não encontrada"
+
+#, fuzzy, python-format
+msgid "problem with <%s>"
+msgstr "Problema"
+
 #, python-format
 msgid "[%s] is not a readable file"
 msgstr "[%s] não é um arquivo legível"
@@ -1654,28 +1666,9 @@ msgstr "1 Byte"
 msgid "%s Bytes"
 msgstr "%s Bytes"
 
-#, python-format
-msgid ""
-"Cannot connect to configuration database with:\n"
-"\n"
-"[%s]"
-msgstr ""
-"Não é possível conectar ao banco de dados com:\n"
-"\n"
-"[%s]"
-
-#, python-format
-msgid ""
-"Cannot connect to database with:\n"
-"\n"
-"[%s]"
-msgstr ""
-"Não é possível conectar ao banco de dados com:\n"
-"\n"
-"[%s]"
-
-msgid "No product information available."
-msgstr "Sem informações sobre o produto"
+#, fuzzy
+msgid "<type>"
+msgstr "tipo"
 
 #, python-format
 msgid ""
@@ -2029,104 +2022,6 @@ msgstr " opção [%s]: %s"
 msgid "  risk: %s"
 msgstr "  risco: %s"
 
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Are you sure you have got a local database installed ?\n"
-"\n"
-"Please retry with proper credentials or cancel.\n"
-"\n"
-"You may also need to check the PostgreSQL client\n"
-"authentication configuration in pg_hba.conf. For\n"
-"details see:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-msgstr ""
-"Não foi possíivel conectar ao Banco de Dados:\n"
-"%s\n"
-"\n"
-"Você tem certeza que tem um banco de dados local instalado ?\n"
-"\n"
-"Por favor tente novamente com o login e senha corretas ou cancele.\n"
-"\n"
-"Você também pode checar o arquivo pg_hba.conf na configuração de "
-"autenticação do PostgreSQL. Mais detalhes em:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Please retry with proper credentials or cancel.\n"
-"\n"
-"You may also need to check the PostgreSQL client\n"
-"authentication configuration in pg_hba.conf. For\n"
-"details see:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-msgstr ""
-"Não foi possível conectar ao Banco de Dados:\n"
-"\n"
-"%s\n"
-"\n"
-"Favor tentar com o login e senha adequados ou cancelar.\n"
-"\n"
-"Você também pode verificar a autenticação do cliente PostgreSQL\n"
-"no arquivo de configuração pg_hba.conf. Para\n"
-"mais informações, veja:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-
-msgid "Connecting to backend"
-msgstr "Conectando ao servidor."
-
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Please retry another backend / user / password combination !\n"
-msgstr ""
-"Não foi possivel conectar ao Banco de Dados:\n"
-"\n"
-"%s\n"
-"\n"
-"Favor tentar outro Servidor / Usuário / Senha!\n"
-
-msgid "programmer forgot to specify error message"
-msgstr "programador esqueceu de especificar mensagem de erro"
-
-msgid ""
-"\n"
-"\n"
-"Please consult the error log for all the gory details !"
-msgstr ""
-"\n"
-"\n"
-"Favor consulte o log de erro para todos os detalhes sórdidos !"
-
-msgid "generic error message"
-msgstr "mensagem de erro genérica"
-
-msgid "programmer forgot to specify info message"
-msgstr "programador esqueceu de especificar mensagem de erro"
-
-msgid "generic info message"
-msgstr "mensagem de informação genérica"
-
-msgid "programmer forgot to specify warning"
-msgstr "programador esqueceu de especificar mensagem de aviso"
-
-msgid "generic warning message"
-msgstr "mensagem de aviso genérica"
-
 msgid "no hook specified, please report bug"
 msgstr "não há hook especificado, favor reportar esse bug."
 
@@ -2477,6 +2372,34 @@ msgstr "Ordenar por:"
 msgid "Include:"
 msgstr "Incluir:"
 
+#, fuzzy
+msgid "&Search"
+msgstr "Pesquisa"
+
+msgid "Suggest"
+msgstr ""
+
+msgid "Set"
+msgstr ""
+
+msgid "dialog_1"
+msgstr ""
+
+msgid "Search patients in Orthanc DICOM store."
+msgstr ""
+
+#, fuzzy
+msgid "Suggest a patient ID based on the active patient."
+msgstr "Iniciado nova consulta para o paciente ativo."
+
+#, fuzzy
+msgid "Search term:"
+msgstr "Pesquisa"
+
+#, fuzzy
+msgid "New patient ID:"
+msgstr "ID do paciente interno"
+
 msgid "Your review"
 msgstr "Sua revisão"
 
@@ -2834,6 +2757,105 @@ msgstr "Substância"
 msgid "Amount"
 msgstr "Quantidade"
 
+#, fuzzy
+msgid "&Connect"
+msgstr "Componentes"
+
+msgid "&Browse"
+msgstr ""
+
+#, fuzzy
+msgid "<not connected>"
+msgstr "= selected =>"
+
+msgid "Browse all"
+msgstr ""
+
+#, fuzzy
+msgid "Export all"
+msgstr "Relatório"
+
+msgid "Browse"
+msgstr ""
+
+#, fuzzy
+msgid "Export"
+msgstr "Relatório"
+
+#, fuzzy
+msgid "Upload"
+msgstr "Atualizar"
+
+#, fuzzy
+msgid "Enter the PACS host address."
+msgstr "Preencha o número para esse endereço."
+
+msgid "Enter the PACS port."
+msgstr ""
+
+#, fuzzy
+msgid "Enter the PACS user."
+msgstr "Digite a quantidade de substância."
+
+#, fuzzy
+msgid "Enter the PACS password. It will not be shown."
+msgstr "Não foi possível conectar como o dono do banco de dados <gm-dbo>."
+
+#, fuzzy
+msgid "Connect to PACS."
+msgstr "Conectar ao GNUmed"
+
+msgid "Browse PACS at top level."
+msgstr ""
+
+msgid "Modify some of Orthanc content (such as patient IDs)."
+msgstr ""
+
+#, fuzzy
+msgid "Browse overview of studies for this patient."
+msgstr "Detalhes da fila de espera para esse paciente."
+
+#, fuzzy
+msgid "Copy all studies into export area."
+msgstr "Adicionando novo nome"
+
+#, fuzzy
+msgid "Browse topmost selected study."
+msgstr "Editar o item selecionado."
+
+#, fuzzy
+msgid "Copy selected studies into export area."
+msgstr "Adicionando novo nome"
+
+#, fuzzy
+msgid "Save selected studies to disk."
+msgstr "= selected =>"
+
+msgid ""
+"Upload DICOM files from a directory, recursively, into the Orthanc PACS\n"
+"\n"
+"The currently active patient does not matter. Orthanc will associate "
+"uploaded files with the patient found within the DICOM metadata. It will "
+"create new patients as needed."
+msgstr ""
+
+msgid "Host:"
+msgstr ""
+
+msgid "Port:"
+msgstr ""
+
+#, fuzzy
+msgid "User:"
+msgstr "Nome de Usuário"
+
+msgid "Password"
+msgstr "Senha"
+
+#, fuzzy
+msgid "Selected studies:"
+msgstr "Selecionando paciente"
+
 msgid "Fake brand"
 msgstr "Marca falsa"
 
@@ -3190,10 +3212,6 @@ msgstr "mensagem de erro genérica"
 msgid "&Load"
 msgstr ""
 
-#, fuzzy
-msgid "Export"
-msgstr "Relatório"
-
 msgid "A long, descriptive name for this form template."
 msgstr "Um nome longo descrevendo esse modelo."
 
@@ -3290,15 +3308,13 @@ msgstr "&clinicamente relevante"
 msgid "Document Properties"
 msgstr "Propriedades do Documento"
 
-msgid "Show part"
-msgstr ""
+#, fuzzy
+msgid "Show"
+msgstr "Mostrar arquivo de Log"
 
 msgid "Remove part"
 msgstr ""
 
-msgid "Parts"
-msgstr "Porção"
-
 msgid "Discard"
 msgstr "Descartar"
 
@@ -3335,6 +3351,10 @@ msgstr ""
 msgid "Required: The primary episode this document is to be listed under."
 msgstr "Obrigatório: Episódio primário sob o qual esse documento será listado."
 
+#, fuzzy
+msgid "Optional: The organization (unit) this document originated from."
+msgstr "Selecione o episódio para o qual você quer mover a descrição"
+
 msgid ""
 "Optional: A short comment identifying the document. Good comments give an "
 "idea of the content and source of the document."
@@ -3369,6 +3389,9 @@ msgstr ""
 "Se esse documento retrata resultados clinicamente relevantes. Lembrar que "
 "tanto resultados normais quanto anormais podem ser clinicamente relevantes."
 
+msgid "Optional: A free-text document description."
+msgstr "Opcional: Uma descrição livre sobre o documento."
+
 msgid "This field lists the parts belonging to the current document."
 msgstr "Esse campo lista as porções que pertencem ao documento atual."
 
@@ -3382,9 +3405,6 @@ msgstr ""
 "Remover a porção selecionada na lista acima. Será perguntado se deverá ser "
 "apagado fisicamente do disco."
 
-msgid "Optional: A free-text document description."
-msgstr "Opcional: Uma descrição livre sobre o documento."
-
 msgid "Save finished document."
 msgstr "Salvar documento pronto"
 
@@ -3403,6 +3423,10 @@ msgid "Associate to episode:"
 msgstr "Associar ao episódio:"
 
 #, fuzzy
+msgid "Document source:"
+msgstr "Documentos"
+
+#, fuzzy
 msgid "Comment / Identification:"
 msgstr "Medicação atual"
 
@@ -3604,8 +3628,9 @@ msgstr "Isso mostra todas as mensagens de sua caixa de entrada."
 msgid "Messages:"
 msgstr "mensagem"
 
-msgid "Only:"
-msgstr ""
+#, fuzzy
+msgid "Limit to:"
+msgstr "Modificado para:"
 
 msgid "&Myself … or:"
 msgstr ""
@@ -3725,12 +3750,13 @@ msgstr "Terminou"
 msgid "Purpose"
 msgstr ""
 
+#, fuzzy
+msgid "Please supply your email address here !"
+msgstr "Por favor informe seu endereço de email."
+
 msgid "Details"
 msgstr "Detalhes"
 
-msgid "<Please supply your email address here !>"
-msgstr ""
-
 msgid "Keep running"
 msgstr "Continuar executando"
 
@@ -3754,9 +3780,11 @@ msgstr ""
 "que estava fazendo."
 
 msgid ""
-"Please enter your email address so we can provide feedback directly to you. "
-"Otherwise, feedback will be given on the GNUmed mailing list (http://lists."
-"gnu.org/mailman/listinfo/gnumed-bugs)."
+"Please enter your email address so we can provide help to you directly.\n"
+"\n"
+"Otherwise, feedback can be given on the GNUmed mailing list (http://lists."
+"gnu.org/mailman/listinfo/gnumed-bugs) ONLY to which you will then have to "
+"subscribe."
 msgstr ""
 
 msgid "Find help on http://wiki.gnumed.de, too."
@@ -3903,9 +3931,6 @@ msgstr "Parâmetros do usuário"
 msgid "Account"
 msgstr "Conta"
 
-msgid "Password"
-msgstr "Senha"
-
 msgid "Password, again"
 msgstr "Senha novamente"
 
@@ -4435,8 +4460,9 @@ msgstr "Editar propriedades do documento"
 msgid "Acquire images from image source (scanner, ...)."
 msgstr ""
 
-msgid "Acquire images or text from the clipboard."
-msgstr ""
+#, fuzzy
+msgid "Acquire file or text from the clipboard."
+msgstr "Remover o(s) item(s) selecionado(s) da lista."
 
 #, fuzzy
 msgid "Remove the selected documents."
@@ -4599,7 +4625,7 @@ msgid ""
 "- the result list will be artificially limited to the first 1000 rows\n"
 "- you can include a column named \"pk_patient\" to make the result rows "
 "activate the corresponding patient on double-clicking\n"
-"- by inserting $<ID_active_patient>$ you can access the patient ID of the "
+"- by inserting $<ID_ACTIVE_PATIENT>$ you can access the patient ID of the "
 "patient active at the time of running the query"
 msgstr ""
 "Digite aqui os comandos SQL a serem executados. Não faz diferença se você "
@@ -4782,9 +4808,6 @@ msgstr ""
 msgid "Link &new"
 msgstr ""
 
-msgid "Browse"
-msgstr ""
-
 msgid ""
 "Search for matches among existing addresses and [Link] a selection, or [Link "
 "(a) new] address."
@@ -4842,26 +4865,17 @@ msgstr ""
 "Selecione se você concorda com a opinião atual de resultado clinicamente "
 "relevante."
 
-msgid "label_1"
-msgstr ""
-
-msgid "→"
-msgstr ""
-
-msgid "←"
-msgstr ""
-
-msgid "Extra"
-msgstr ""
+msgid "Subjective"
+msgstr "Subjetivo"
 
-msgid "Move selected items from left to right."
-msgstr ""
+msgid "Objective"
+msgstr "Objetivo"
 
-msgid "Move selected items from right to left."
-msgstr ""
+msgid "Assessment"
+msgstr "Avaliação / Diagnósticos"
 
-msgid "Cancel picking items."
-msgstr ""
+msgid "Plan"
+msgstr "Plano"
 
 #, fuzzy
 msgid "Episode synopsis"
@@ -4902,20 +4916,29 @@ msgid ""
 "narrative belongs to."
 msgstr ""
 
-msgid "Subjective"
-msgstr "Subjetivo"
-
 msgid "Codes:"
 msgstr ""
 
-msgid "Objective"
-msgstr "Objetivo"
+msgid "label_1"
+msgstr ""
 
-msgid "Assessment"
-msgstr "Avaliação / Diagnósticos"
+msgid "→"
+msgstr ""
 
-msgid "Plan"
-msgstr "Plano"
+msgid "←"
+msgstr ""
+
+msgid "Extra"
+msgstr ""
+
+msgid "Move selected items from left to right."
+msgstr ""
+
+msgid "Move selected items from right to left."
+msgstr ""
+
+msgid "Cancel picking items."
+msgstr ""
 
 msgid "1"
 msgstr ""
@@ -5093,6 +5116,90 @@ msgstr ""
 msgid "Age range"
 msgstr ""
 
+msgid "&Nicotine"
+msgstr ""
+
+msgid "&Alcohol"
+msgstr ""
+
+msgid "&Other:"
+msgstr ""
+
+msgid "&Non-harmful use"
+msgstr ""
+
+msgid "&Harmful use"
+msgstr ""
+
+msgid "Presently &addicted"
+msgstr ""
+
+#, fuzzy
+msgid "Previously &addicted"
+msgstr "Consultas prévias"
+
+msgid "&Reconfirm as of today"
+msgstr ""
+
+#, fuzzy
+msgid "Select for documenting smoking status."
+msgstr "lista de espera"
+
+msgid "Select for documenting alcohol use status."
+msgstr ""
+
+msgid ""
+"Select for documenting use of substances other than nicotine or alcohol."
+msgstr ""
+
+#, fuzzy
+msgid "Select the abused substance."
+msgstr "Digite a quantidade de substância."
+
+msgid ""
+"Select if the substance use is not considered harmful (say, no use or non-"
+"harmful use)."
+msgstr ""
+
+msgid "Select if substance is use considered harmful."
+msgstr ""
+
+#, fuzzy
+msgid "Select if the patient is presently addicted to this substance."
+msgstr "Selecione se o paciente não tem alergias conhecidas."
+
+#, fuzzy
+msgid "Select if the patient was previously addicted to this substance."
+msgstr "Selecione se o paciente não tem alergias conhecidas."
+
+msgid ""
+"A comment on this substance use:\n"
+"- type of product used\n"
+"- frequency\n"
+"- amount\n"
+"- when started\n"
+"- attempts to quit\n"
+"..."
+msgstr ""
+
+msgid ""
+"When did the patient quit?\n"
+"\n"
+"You can also set a target quit date here."
+msgstr ""
+
+#, fuzzy
+msgid "Check here to confirm for today."
+msgstr "Configurar página para impressão"
+
+#, fuzzy
+msgid "Quit date"
+msgstr "Exsudato"
+
+#, fuzzy
+msgid "Last confirmed"
+msgstr "Confirmado em:"
+
 msgid "Closed episodes"
 msgstr ""
 
@@ -5465,21 +5572,19 @@ msgstr ""
 msgid "Show:"
 msgstr ""
 
-msgid "Brand by component"
-msgstr "Marca por componentes"
-
-msgid "Brands"
-msgstr "Marcas"
-
 #, fuzzy
 msgid "Kidneys"
 msgstr "Rim"
 
-msgid "Unbranded substance"
-msgstr "Substância sem marca"
+msgid "Brands"
+msgstr "Marcas"
 
-msgid "Manage"
-msgstr "Gerenciar"
+msgid "Substances"
+msgstr "Substâncias"
+
+#, fuzzy
+msgid "&Unknown or date:"
+msgstr "reação desconhecida"
 
 msgid "Approved of"
 msgstr "Aprovado de"
@@ -5494,23 +5599,20 @@ msgid "... Reason"
 msgstr "... Motivo"
 
 msgid ""
-"A component of a drug brand the patient is taking.\n"
+"A drug the patient is taking.\n"
 "\n"
-"Lookup, and select, a single- (or multi-) component drug brand, by active "
-"ingredient name. All components of multi-component drugs will be displayed "
-"and automatically added to the patient's list."
-msgstr ""
-
-msgid ""
-"Manage drug brands.\n"
+"Lookup and select an intake by either of\n"
+"- a generic substance name\n"
+"- a drug brand name\n"
+"- an active ingredient of a drug\n"
 "\n"
-"Note that this will not select a component for you. What it does is to let "
-"you manage (add/edit/delete) the drug products/brands known to GNUmed from "
-"which you can select a component."
+"Note that all components of multi-component drugs will be displayed and "
+"automatically added to the patient's list."
 msgstr ""
 
-msgid "The active ingredients of this brand."
-msgstr "Os ingredientes ativos da marca."
+#, fuzzy
+msgid "Details on the selected drug."
+msgstr "obrigatório selecionar endereço"
 
 #, fuzzy
 msgid "Show cardiac information relevant to substance selection."
@@ -5523,8 +5625,11 @@ msgstr ""
 "Mostrar informações detalhadas da substância selecionada se disponível. "
 
 msgid ""
-"The non-branded medication or non-medication substance, with optional "
-"strength."
+"Manage drug brands.\n"
+"\n"
+"Note that this will not select a component for you. What it does is to let "
+"you manage (add/edit/delete) the drug products/brands known to GNUmed from "
+"which you can select a component."
 msgstr ""
 
 msgid ""
@@ -5543,11 +5648,20 @@ msgstr ""
 msgid "The preparation or form of the substance."
 msgstr "A preparação na qual a substância é apresentada."
 
+#, fuzzy
+msgid "Check here if the start date simply isn't known."
+msgstr "Pesquisar dados do Prontuário do paciente ativo"
+
 msgid ""
 "When was this substance started to be consumed or - if not known - the "
 "earliest it is known to have been be consumed."
 msgstr ""
 
+msgid ""
+"A coment on the certainty of the start date, such as \"+/- 3 weeks\", "
+"\"spring of 2002\", \"shortly after Easter 1996\", ...."
+msgstr ""
+
 msgid "Whether this substance is taken by advice."
 msgstr "Se essa substância está sendo usada sob supervisão."
 
@@ -5583,6 +5697,17 @@ msgstr "Pressione se a interrupção foi como o planejado."
 msgid "Reason for discontinuation."
 msgstr "Motivo da interrupção."
 
+msgid "Drug"
+msgstr "Medicamento"
+
+#, fuzzy
+msgid "Research:"
+msgstr "Pesquisa"
+
+#, fuzzy
+msgid "Certainty:"
+msgstr "Certamente"
+
 msgid "Schedule"
 msgstr "Posologia"
 
@@ -5746,6 +5871,34 @@ msgid "Channel"
 msgstr "Canal"
 
 #, fuzzy
+msgid "&Last modification time"
+msgstr "Modificado em:"
+
+#, fuzzy
+msgid "&Entry time"
+msgstr "Tempo de fim "
+
+msgid "Show journal ordered by encounter."
+msgstr ""
+
+msgid "Show journal ordered by time of last modification."
+msgstr ""
+
+msgid "Show journal ordered by actual clinical time of each entry."
+msgstr ""
+
+#, fuzzy
+msgid "Edit the selected chart entry."
+msgstr "Editar o item selecionado."
+
+#, fuzzy
+msgid "Delete selected chart entry."
+msgstr "Apagando ID externo"
+
+msgid "Order by:"
+msgstr ""
+
+#, fuzzy
 msgid "Chec&k"
 msgstr "Checar abrangência"
 
@@ -6350,12 +6503,16 @@ msgid "Documents:"
 msgstr "Documentos"
 
 #, fuzzy
+msgid "&L"
+msgstr "E"
+
+#, fuzzy
 msgid "&N"
 msgstr "&Novo"
 
 #, fuzzy
-msgid "&L"
-msgstr "E"
+msgid "List all encounters."
+msgstr "%s: consulta (%s)"
 
 #, fuzzy
 msgid "The encounter."
@@ -6365,10 +6522,6 @@ msgstr "Consulta"
 msgid "Start a new encounter for the active patient."
 msgstr "Iniciado nova consulta para o paciente ativo."
 
-#, fuzzy
-msgid "List all encounters."
-msgstr "%s: consulta (%s)"
-
 msgid "Clinically relevant"
 msgstr "Relevante Clinicamente"
 
@@ -6652,10 +6805,12 @@ msgstr ""
 msgid "Manage dynamic hints."
 msgstr "Apagando documento"
 
+#, fuzzy
 msgid ""
 "Rationale for\n"
-"suppression"
-msgstr ""
+"suppression\n"
+"for this patient"
+msgstr "Detalhes da fila de espera para esse paciente."
 
 #, fuzzy
 msgid "Save &under"
@@ -6726,6 +6881,12 @@ msgstr ""
 msgid "Encounter:"
 msgstr ""
 
+msgid "Manage"
+msgstr "Gerenciar"
+
+msgid "&Panel:"
+msgstr ""
+
 msgid "&Pick"
 msgstr ""
 
@@ -6772,6 +6933,10 @@ msgstr ""
 "o banco de dados a qual está conectando.\n"
 "Para desabilitar essa mensagem é só deixá-la em branco."
 
+#, fuzzy
+msgid "Show search dialog."
+msgstr "Fechar essa janela"
+
 msgid "THIS IS NOT A VERIFIED MEASUREMENT. DO NOT USE FOR ACTUAL CARE."
 msgstr ""
 
@@ -7062,6 +7227,56 @@ msgstr "*tem* alergias"
 msgid "ERROR: unknown allergy state [%s]"
 msgstr "ERRO: estado alérgico desconhecido [%s]"
 
+msgid "definite"
+msgstr "definitivo"
+
+#, fuzzy
+msgid "indefinite"
+msgstr "definitivo"
+
+#, fuzzy
+msgid "Reaction:"
+msgstr "Reação"
+
+#, fuzzy
+msgid "Noted:"
+msgstr "Nota"
+
+#, fuzzy
+msgid "Allergene:"
+msgstr "Alergia"
+
+#, fuzzy
+msgid "Substance:"
+msgstr "Substância"
+
+#, fuzzy
+msgid "Code:"
+msgstr " Fechada: %s\n"
+
+msgid "ATC:"
+msgstr ""
+
+#, fuzzy
+msgid "Specific to:"
+msgstr "Modificado para:"
+
+#, fuzzy
+msgid "this substance only"
+msgstr "Editar a entrada da atual substância."
+
+#, fuzzy
+msgid "drug class"
+msgstr "Classe da Droga"
+
+#, fuzzy
+msgid "unknown"
+msgstr "Desconhecida"
+
+#, fuzzy
+msgid "Generics:"
+msgstr "Genéricos"
+
 msgid "Medication history"
 msgstr "Histórico de medicações"
 
@@ -7073,9 +7288,16 @@ msgstr "Erro ao executar o script de hook [%s]"
 msgid "prescription data"
 msgstr "Prescrições"
 
+#, fuzzy
+msgid "Consumable substance"
+msgstr "Editar as substâncias consumíveis."
+
 msgid "in use"
 msgstr ""
 
+msgid "w/"
+msgstr ""
+
 msgid "long-term"
 msgstr "longo prazo"
 
@@ -7095,23 +7317,49 @@ msgid "?ongoing"
 msgstr "?contínuo"
 
 #, python-format
-msgid "Substance intake entry (%s, %s)   [#%s]                     \n"
+msgid ""
+"Substance abuse entry                                              [#%s]\n"
 msgstr ""
 
-msgid "active, needs check"
-msgstr "ativo, precisa verificar"
+#, fuzzy, python-format
+msgid "Substance: %s [#%s]%s\n"
+msgstr "Substâncias"
 
-msgid "assumed active"
-msgstr ""
+#, fuzzy, python-format
+msgid "Use type: %s\n"
+msgstr "Paciente"
 
-msgid "approved"
-msgstr "aprovado"
+#, fuzzy, python-format
+msgid "Last checked: %s\n"
+msgstr "Editado pela última vez em: %s\n"
 
-msgid "unapproved"
-msgstr "reprovado"
+#, python-format
+msgid " Discontinued %s\n"
+msgstr " Descontinuado %s\n"
 
-msgid "definite"
-msgstr "definitivo"
+#, fuzzy, python-format
+msgid " Notes: %s\n"
+msgstr "Paciente"
+
+#, python-format
+msgid "Revision: #%(row_ver)s, %(mod_when)s by %(mod_by)s."
+msgstr "Revisão: #%(row_ver)s, %(mod_when)s por %(mod_by)s."
+
+#, python-format
+msgid "Substance intake entry (%s, %s)   [#%s]                     \n"
+msgstr ""
+
+msgid "active, needs check"
+msgstr "ativo, precisa verificar"
+
+msgid "assumed active"
+msgstr ""
+
+msgid "approved"
+msgstr "aprovado"
+
+msgid "unapproved"
+msgstr "reprovado"
 
 msgid "suspected"
 msgstr ""
@@ -7159,10 +7407,6 @@ msgid " (short-term)"
 msgstr ""
 
 #, python-format
-msgid " Discontinued %s\n"
-msgstr " Descontinuado %s\n"
-
-#, python-format
 msgid " Reason: %s\n"
 msgstr " Razão: %s\n"
 
@@ -7182,20 +7426,68 @@ msgstr "problema de saúde: %s"
 msgid " Advice: %s\n"
 msgstr ""
 
-#, python-format
-msgid "Revision: #%(row_ver)s, %(mod_when)s by %(mod_by)s."
-msgstr "Revisão: #%(row_ver)s, %(mod_when)s por %(mod_by)s."
+#, fuzzy
+msgid "medication, not abuse"
+msgstr "Perguntas e respostas"
+
+msgid "no or non-harmful use"
+msgstr ""
+
+msgid "presently harmful use"
+msgstr ""
+
+msgid "presently addicted"
+msgstr ""
+
+msgid "previously addicted"
+msgstr ""
 
 #, fuzzy, python-format
-msgid "%s: %s ago"
+msgid "%s%s: %s ago%s"
 msgstr "%s atrás"
 
 #, fuzzy, python-format
-msgid "%s: %s ago (%s)"
+msgid "%s%s: %s ago (%s)"
+msgstr ""
+"%s: %s by %.8s\n"
+"%s"
+
+#, fuzzy, python-format
+msgid "%s%s%s (%s ago)"
+msgstr ""
+"%s: %s by %.8s\n"
+"%s"
+
+#, fuzzy, python-format
+msgid "%s%s%s (%s ago, %s)"
 msgstr ""
 "%s: %s by %.8s\n"
 "%s"
 
+#, python-format
+msgid "%s ago"
+msgstr "%s atrás"
+
+#, fuzzy, python-format
+msgid "in %s"
+msgstr "Comentário: %s"
+
+#, fuzzy, python-format
+msgid ", until %s (%s)"
+msgstr "Local"
+
+#, python-format
+msgid " (planned for %s%s)"
+msgstr ""
+
+#, python-format
+msgid ", planned for %s%s"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "%s ago (for %s: %s %s %s)"
+msgstr " Duração: %s (%s - %s)"
+
 msgid "Additional notes"
 msgstr "Notas adicionais"
 
@@ -7208,13 +7500,37 @@ msgstr "Lista de medicamentos"
 msgid "ordered by brand"
 msgstr "ordenado por marca"
 
-msgid "Drug"
-msgstr "Medicamento"
-
 #, fuzzy
 msgid "Regimen / Advice"
 msgstr "Posologia"
 
+#, fuzzy, python-format
+msgid "Component of %s (%s)"
+msgstr "Componentes"
+
+#, fuzzy, python-format
+msgid "ATC (substance): %s"
+msgstr "Adicionar uma substância."
+
+#, python-format
+msgid "ATC (brand): %s"
+msgstr ""
+
+msgid "this is a component of a fake brand"
+msgstr ""
+
+#, fuzzy
+msgid "Components:"
+msgstr "Componentes"
+
+#, fuzzy
+msgid "this is a fake brand"
+msgstr "Marca falsa"
+
+#, fuzzy
+msgid "this is a vaccine"
+msgstr "vacina"
+
 msgid "units"
 msgstr "unidades"
 
@@ -7249,52 +7565,15 @@ msgid "Expires: %s\n"
 msgstr "Exportado: %s\n"
 
 #, fuzzy
-msgid "Active clinical hint"
-msgstr "Problemas Ativos"
-
-#, fuzzy
-msgid "Inactive clinical hint"
-msgstr "não relevante clinicamente"
-
-#, python-format
-msgid "Source: %s\n"
-msgstr "Fonte: %s\n"
-
-#, fuzzy, python-format
-msgid "Language: %s\n"
-msgstr "Idioma"
-
-#, fuzzy
-msgid "Suppressed active dynamic hint"
-msgstr "Apagando documento"
-
-#, fuzzy
-msgid "Suppressed inactive dynamic hint"
-msgstr "Apagando documento"
-
-#, fuzzy, python-format
-msgid "Suppressed by: %s\n"
-msgstr "emitido por"
-
-#, fuzzy, python-format
-msgid "Suppressed at: %s\n"
-msgstr "Fonte: %s\n"
-
-#, fuzzy, python-format
-msgid "Hint #: %s\n"
-msgstr "Paciente"
+msgid "HL7 Source"
+msgstr "Fontes das Porções"
 
-#, fuzzy, python-format
-msgid "Patient #: %s\n"
-msgstr "Paciente"
+msgid "HL7 data size"
+msgstr ""
 
 #, fuzzy, python-format
-msgid "MD5 (currently): %s\n"
-msgstr "Documentos: %s"
-
-#, python-format
-msgid "MD5 (at suppression): %s\n"
-msgstr ""
+msgid "%s bytes"
+msgstr "%s Bytes"
 
 #, fuzzy
 msgid "HL7 Message"
@@ -7352,14 +7631,6 @@ msgid "doc: %s"
 msgstr "   Doc: %s"
 
 #, fuzzy
-msgid "no patient photograph available"
-msgstr "não disponível"
-
-#, python-format
-msgid "patient photograph from %s"
-msgstr ""
-
-#, fuzzy
 msgid "Patient data for"
 msgstr "Paciente"
 
@@ -7370,6 +7641,10 @@ msgstr ""
 msgid "Patient data export"
 msgstr "Enviar relatório"
 
+#, fuzzy
+msgid "no patient photograph available"
+msgstr "não disponível"
+
 msgid "Documents"
 msgstr ""
 
@@ -7380,6 +7655,10 @@ msgstr ""
 msgid "browse documents area"
 msgstr "somente documentos adicionados"
 
+#, python-format
+msgid "patient photograph from %s"
+msgstr ""
+
 #, fuzzy
 msgid "Browse patient data"
 msgstr "Agrupar pacientes"
@@ -7425,36 +7704,36 @@ msgstr ""
 "Erro ao tentar executar pdflatex. Impossível gerar o PDF a partir do modelo "
 "LaTeX."
 
-#, python-format
+#, fuzzy, python-format
 msgid ""
 "%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s %(suburb)s, "
-"%(code_state)s, %(code_country)s"
+"%(code_region)s, %(code_country)s"
 msgstr ""
 "%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s %(suburb)s, "
-"%(code_state)s, %(code_country)s"
+"%(code_region)s, %(code_country)s"
 
-#, python-format
+#, fuzzy, python-format
 msgid ""
 "%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s %(suburb)s, "
-"%(code_state)s, %(code_country)s"
+"%(code_region)s, %(code_country)s"
 msgstr ""
 "%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s %(suburb)s, "
-"%(code_state)s, %(code_country)s"
+"%(code_region)s, %(code_country)s"
 
-#, python-format
+#, fuzzy, python-format
 msgid ""
-"%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_state)s, "
-"%(code_country)s"
+"%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, "
+"%(code_region)s, %(code_country)s"
 msgstr ""
-"%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_state)s, "
-"%(code_country)s"
+"%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, "
+"%(code_region)s, %(code_country)s"
 
-#, python-format
+#, fuzzy, python-format
 msgid ""
-"%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_state)s, "
+"%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_region)s, "
 "%(code_country)s"
 msgstr ""
-"%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_state)s, "
+"%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_region)s, "
 "%(code_country)s"
 
 #, python-format
@@ -7463,7 +7742,7 @@ msgid ""
 " Street: %(street)s%(notes_street)s\n"
 " Number/Unit: %(number)s%(subunit)s%(notes_subunit)s\n"
 " Location: %(zip)s %(urb)s%(suburb)s\n"
-" Region: %(l10n_state)s, %(code_state)s\n"
+" Region: %(l10n_region)s, %(code_region)s\n"
 " Country: %(l10n_country)s, %(code_country)s"
 msgstr ""
 
@@ -7473,7 +7752,7 @@ msgid ""
 " Street: %(street)s%(notes_street)s\n"
 " Number/Unit: %(number)s%(subunit)s%(notes_subunit)s\n"
 " Location: %(zip)s %(urb)s%(suburb)s\n"
-" Region: %(l10n_state)s, %(code_state)s\n"
+" Region: %(l10n_region)s, %(code_region)s\n"
 " Country: %(l10n_country)s, %(code_country)s"
 msgstr ""
 
@@ -7544,6 +7823,95 @@ msgstr "resultado corrigido"
 msgid "missing, reported later"
 msgstr "faltando, será registrado posteriormente"
 
+msgid "Health issue"
+msgstr "Problema de Saúde"
+
+#, fuzzy
+msgid "External care"
+msgstr "Código externo"
+
+msgid "Vaccination"
+msgstr "Vacinação"
+
+#, fuzzy
+msgid "Clinical narrative"
+msgstr "Anotações Clínicas"
+
+#, fuzzy
+msgid "Test result"
+msgstr "Resultado de Exames"
+
+#, fuzzy
+msgid "Substance intake"
+msgstr "Substâncias"
+
+#, fuzzy
+msgid "Hospital stay"
+msgstr "População"
+
+#, fuzzy
+msgid "Performed procedure"
+msgstr " %s procedimentos realizados"
+
+#, fuzzy
+msgid "Family history"
+msgstr "Histórico Familiar"
+
+#, fuzzy
+msgid "Document"
+msgstr "Documentos"
+
+#, python-format
+msgid "unmapped entry type from table [%s]"
+msgstr ""
+
+#, python-format
+msgid "cannot instantiate clinical root item <%s(%s)>"
+msgstr ""
+
+msgid "True"
+msgstr ""
+
+msgid "False"
+msgstr ""
+
+#, fuzzy
+msgid "unknown smoking status"
+msgstr "lista de espera"
+
+msgid "non-smoker"
+msgstr ""
+
+#, fuzzy
+msgid "current smoker"
+msgstr "Consulta Atual"
+
+msgid "ex-smoker"
+msgstr ""
+
+msgid "tobacco addiction"
+msgstr ""
+
+msgid "no or non-harmful alcohol use"
+msgstr ""
+
+msgid "harmful alcohol use"
+msgstr ""
+
+#, fuzzy
+msgid "unknown alcohol use"
+msgstr "estado alérgico desconhecido"
+
+msgid "no or non-harmful drug use"
+msgstr ""
+
+msgid "harmful drug use"
+msgstr ""
+
+#, fuzzy
+msgid "unknown drug use"
+msgstr "estado alérgico desconhecido"
+
 msgid "original entry"
 msgstr "registro original"
 
@@ -7647,14 +8015,6 @@ msgstr "Ocupações"
 msgid "Vaccinations"
 msgstr "Vacinas"
 
-#, python-format
-msgid "%s ago"
-msgstr "%s atrás"
-
-#, fuzzy
-msgid "External care"
-msgstr "Código externo"
-
 msgid "Allergies/Intolerances"
 msgstr "Alergias/Intolerâncias"
 
@@ -7741,20 +8101,101 @@ msgid ""
 "The account was deactivated instead."
 msgstr ""
 
-#, python-format
-msgid "Device(%s):"
-msgstr "Dispositivo(%s):"
+msgid "SOAP_char_S=S"
+msgstr ""
 
-msgid "Battery:"
-msgstr "Bateria:"
+msgid "SOAP_char_O=O"
+msgstr ""
 
-msgid "Implanted:"
-msgstr "Implantado"
+msgid "SOAP_char_A=A"
+msgstr ""
 
-msgid "last check:"
-msgstr "checagem mais recente:"
+msgid "SOAP_char_P=P"
+msgstr ""
 
-msgid "Sensing:"
+msgid "SOAP_char_U=U"
+msgstr ""
+
+msgid "SOAP_string_Subjective=Subjective"
+msgstr ""
+
+msgid "SOAP_string_Objective=Objective"
+msgstr ""
+
+msgid "SOAP_string_Assessment=Assessment"
+msgstr ""
+
+msgid "SOAP_string_Plan=Plan"
+msgstr ""
+
+msgid "SOAP_string_Unspecified=Unspecified"
+msgstr ""
+
+msgid "SOAP_string_Administrative=Administrative"
+msgstr ""
+
+#, fuzzy
+msgid "Active clinical hint"
+msgstr "Problemas Ativos"
+
+#, fuzzy
+msgid "Inactive clinical hint"
+msgstr "não relevante clinicamente"
+
+#, python-format
+msgid "Source: %s\n"
+msgstr "Fonte: %s\n"
+
+#, fuzzy, python-format
+msgid "Language: %s\n"
+msgstr "Idioma"
+
+#, fuzzy
+msgid "Suppressed active dynamic hint"
+msgstr "Apagando documento"
+
+#, fuzzy
+msgid "Suppressed inactive dynamic hint"
+msgstr "Apagando documento"
+
+#, fuzzy, python-format
+msgid "Suppressed by: %s\n"
+msgstr "emitido por"
+
+#, fuzzy, python-format
+msgid "Suppressed at: %s\n"
+msgstr "Fonte: %s\n"
+
+#, fuzzy, python-format
+msgid "Hint #: %s\n"
+msgstr "Paciente"
+
+#, fuzzy, python-format
+msgid "Patient #: %s\n"
+msgstr "Paciente"
+
+#, fuzzy, python-format
+msgid "MD5 (currently): %s\n"
+msgstr "Documentos: %s"
+
+#, python-format
+msgid "MD5 (at suppression): %s\n"
+msgstr ""
+
+#, python-format
+msgid "Device(%s):"
+msgstr "Dispositivo(%s):"
+
+msgid "Battery:"
+msgstr "Bateria:"
+
+msgid "Implanted:"
+msgstr "Implantado"
+
+msgid "last check:"
+msgstr "checagem mais recente:"
+
+msgid "Sensing:"
 msgstr "Sensibilidade:"
 
 msgid "Threshold"
@@ -7767,6 +8208,12 @@ msgstr "Impedância:"
 msgid "Praxis branch                   #%s\n"
 msgstr ""
 
+#, python-format
+msgid ""
+"FN:%(l10n_unit_category)s %(branch)s of %(l10n_organization_category)s "
+"%(praxis)s"
+msgstr ""
+
 msgid "Privacy notice"
 msgstr ""
 
@@ -7780,40 +8227,6 @@ msgstr ""
 msgid "%s: Staff member %s has been notified of your chart access."
 msgstr ""
 
-msgid "soap_S"
-msgstr "soap_S"
-
-msgid "soap_O"
-msgstr "soap_O"
-
-msgid "soap_A"
-msgstr "soap_A"
-
-msgid "soap_P"
-msgstr "soap_P"
-
-#, fuzzy
-msgid "soap_U"
-msgstr "soap_S"
-
-msgid "soap_Subjective"
-msgstr "soap_Subjetivo"
-
-msgid "soap_Objective"
-msgstr "soap_Objetivo"
-
-msgid "soap_Assessment"
-msgstr "soap_Avaliação"
-
-msgid "soap_Plan"
-msgstr "soap_Plano"
-
-msgid "soap_Unspecified"
-msgstr "soap_Unspecified"
-
-msgid "soap_Administrative"
-msgstr "soap_Administrativo"
-
 #, python-format
 msgid ""
 "%s: %s by %.8s (v%s)\n"
@@ -7881,10 +8294,18 @@ msgstr "<country> não pode ser vazio"
 msgid "%(last)s,%(title)s %(first)s%(nick)s (%(sex)s)"
 msgstr ""
 
+#, fuzzy, python-format
+msgid "%(last)s,%(title)s %(first)s (%(sex)s)"
+msgstr "%(last)s,%(title)s %(first)s%(nick)s"
+
 #, python-format
 msgid "%(last)s,%(title)s %(first)s%(nick)s"
 msgstr "%(last)s,%(title)s %(first)s%(nick)s"
 
+#, fuzzy, python-format
+msgid "%(last)s,%(title)s %(first)s"
+msgstr "%(last)s,%(title)s %(first)s%(nick)s"
+
 msgid "Cannot merge active patient into another patient."
 msgstr "Não é possível mesclar o paciente ativo com outro paciente."
 
@@ -7896,9 +8317,6 @@ msgstr "não associado"
 msgid "merged"
 msgstr "Agrupar"
 
-msgid "preferred name/call name/..."
-msgstr ""
-
 #, fuzzy
 msgid "invalid age: DOB in the future"
 msgstr "Condição diagnosticada no futuro."
@@ -7913,10 +8331,6 @@ msgid "Mrs"
 msgstr "Sra"
 
 #, fuzzy
-msgid "unknown"
-msgstr "Desconhecida"
-
-#, fuzzy
 msgid "empty status"
 msgstr "rever estado"
 
@@ -8262,7 +8676,7 @@ msgstr ""
 "%s"
 
 #, fuzzy, python-format
-msgid " Filename: %s\n"
+msgid " Filename: %s%s\n"
 msgstr "Arquivo"
 
 #, fuzzy
@@ -8277,19 +8691,26 @@ msgstr "parte"
 msgid "%s parts"
 msgstr "mostrar porção"
 
+#, fuzzy, python-format
+msgid "%s of %s"
+msgstr " %s de unidades: %s\n"
+
 #, python-format
 msgid ""
 "%s (%s)   #%s\n"
-"\n"
 " Created: %s\n"
 " Episode: %s\n"
-"%s%s%s"
+"%s%s%s%s"
 msgstr ""
 
 #, fuzzy, python-format
 msgid " External reference: %s\n"
 msgstr "Sem ID de referência"
 
+#, fuzzy, python-format
+msgid " Organization: %%s @ %s\n"
+msgstr "Consultas: %s (%s - %s):"
+
 msgid "Cannot run [arriba] !"
 msgstr "Não foi possível executar [arriba] !"
 
@@ -8649,26 +9070,9 @@ msgid "External care:"
 msgstr "Código externo"
 
 #, fuzzy, python-format
-msgid ""
-"health issue: %s%s%s\n"
-"\n"
+msgid "Health issue: %s%s%s"
 msgstr "problema de saúde: %s"
 
-#, fuzzy
-msgid ""
-"\n"
-"current values:\n"
-msgstr "<estado alérgico atual>"
-
-msgid "no previous versions of this record"
-msgstr ""
-
-msgid ""
-"\n"
-"all values with <audit_action>, <audit_when>, <audit_by> fields (current "
-"value first):\n"
-msgstr ""
-
 msgid "Unattributed episodes"
 msgstr "Episódios Sem Definição."
 
@@ -8690,9 +9094,6 @@ msgstr " Duração: %s (%s - %s)"
 msgid "finished"
 msgstr "terminado"
 
-msgid "Health issue"
-msgstr "Problema de Saúde"
-
 msgid "none associated"
 msgstr "não associado"
 
@@ -8729,9 +9130,7 @@ msgid "Measurements and Results:"
 msgstr "Medidas e Resultados"
 
 #, fuzzy, python-format
-msgid ""
-"episode: %s%s%s\n"
-"\n"
+msgid "Episode: %s%s%s"
 msgstr "Consulta %s%s%s   [#%s]"
 
 #, python-format
@@ -8759,9 +9158,7 @@ msgid "%s other episodes touched upon during this encounter:"
 msgstr "%s outros episódios tocados durante essa consulta:"
 
 #, fuzzy, python-format
-msgid ""
-"encounter: %s%s%s\n"
-"\n"
+msgid "Encounter: %s%s%s"
 msgstr "Consultas: %s (%s - %s):"
 
 msgid " (ongoing)"
@@ -8786,9 +9183,6 @@ msgstr "População"
 msgid "Procedures"
 msgstr ""
 
-msgid "Substances"
-msgstr "Substâncias"
-
 msgid "Life events"
 msgstr ""
 
@@ -8813,9 +9207,6 @@ msgstr ""
 msgid "Cannot display timeline."
 msgstr "Criando um novo problema de saúde ..."
 
-msgid "Vaccination"
-msgstr "Vacinação"
-
 msgid "Lab result"
 msgstr "Resultado Laboratorial"
 
@@ -8898,9 +9289,6 @@ msgstr ""
 msgid "Exported: %s\n"
 msgstr "Exportado: %s\n"
 
-msgid "emr-journal"
-msgstr "pme-diário"
-
 msgid "Chronological EMR Journal\n"
 msgstr "Diário Cronológico do PME\n"
 
@@ -9210,16 +9598,7 @@ msgstr ""
 msgid "Select one or more codes that apply."
 msgstr ""
 
-msgid "Cannot move progress notes. No active patient."
-msgstr ""
-
-msgid "Moving progress notes between encounters ..."
-msgstr ""
-
-msgid ""
-"\n"
-" Select the progress notes to move from the list !\n"
-"\n"
+msgid "Select the narrative you are interested in ..."
 msgstr ""
 
 msgid "when"
@@ -9231,100 +9610,239 @@ msgstr ""
 msgid "entry"
 msgstr ""
 
-msgid "Cannot edit progress notes. No active patient."
-msgstr ""
+msgid "There is no narrative for this episode in this encounter."
+msgstr "Não há narrativa para esse episódio nessa consulta."
 
-msgid "Deleting progress note"
+msgid "Must select episode to move narrative to first."
 msgstr ""
 
-msgid ""
-"Are you positively sure you want to delete this\n"
-"progress note from the medical record ?\n"
-"\n"
-"Note that even if you chose to delete the entry it will\n"
-"still be (invisibly) kept in the audit trail to protect\n"
-"you from litigation because physical deletion is known\n"
-"to be unlawful in some jurisdictions.\n"
-msgstr ""
+msgid "Last"
+msgstr "Sobrenome"
 
-msgid "Yes, delete the progress note."
+#, fuzzy
+msgid "In health issue"
+msgstr "Problema de Saúde Inativo"
+
+#, fuzzy
+msgid "Most recent notes on selected problem"
+msgstr "Notas Relacionadas Mais Recentes"
+
+#, python-format
+msgid "%s (active+potential) problems"
 msgstr ""
 
-msgid "No, do NOT delete the progress note."
+#, python-format
+msgid "%s active problems"
 msgstr ""
 
-msgid "Editing progress note"
-msgstr "Editando Notas de Evolução"
+msgid "Current encounter:"
+msgstr "Consulta Atual"
 
-msgid "This is the original progress note:"
+msgid "Cumulative summary"
 msgstr ""
 
-msgid "Managing progress notes"
-msgstr ""
+#, fuzzy, python-format
+msgid "Most recent info on %s%s%s"
+msgstr " Mais recente: %s - %s"
 
 #, python-format
 msgid ""
+"Cannot open progress note editor for\n"
 "\n"
-" This list shows the progress notes by %s.\n"
+"[%s].\n"
 "\n"
 msgstr ""
 
-msgid "Enter (regex) term to search for across all EMRs:"
+msgid "opening progress note editor"
 msgstr ""
 
-msgid "Text search across all EMRs"
+msgid "Cannot save all editors. Some were kept open."
 msgstr ""
 
-#, python-format
-msgid ""
-"Nothing found for search term:\n"
-" \"%s\""
+msgid "new problem"
 msgstr ""
 
-msgid "Search results"
+msgid ""
+"Are you sure you really want to\n"
+"discard this progress note ?\n"
 msgstr ""
 
-#, fuzzy, python-format
-msgid "Search results for [%s]"
-msgstr "Resultados da pesquisa por '%s'"
-
-msgid "Match"
+msgid "Discarding progress note"
 msgstr ""
 
-msgid "Match location"
+msgid "There are unsaved progress notes !\n"
 msgstr ""
 
-msgid "Cannot search EMR. No active patient."
+msgid "Unsaved progress notes"
 msgstr ""
 
-msgid "Enter search term:"
+#, fuzzy
+msgid "Problem list"
+msgstr "Problema"
+
+msgid "Saving SOAP note"
 msgstr ""
 
-msgid "Text search of entire EMR of active patient"
+#, fuzzy
+msgid "Do you want to save the SOAP note ?"
 msgstr ""
+"Você realmente quer apagar esse\n"
+"ID externo do paciente?"
 
 #, python-format
-msgid ""
-"Search term was: \"%s\"\n"
-"\n"
-"Search results:\n"
-"\n"
-"%s\n"
+msgid "&Filter by problem %s%s%s"
 msgstr ""
 
-msgid "Cannot export EMR for Medistar. No active patient."
-msgstr ""
+#, fuzzy
+msgid "Cannot save SimpleNotes SOAP note."
+msgstr "Não foi possível salvar a consulta: tipo não foi deinido"
 
-msgid "text files"
-msgstr "arquivos de texto"
+#, fuzzy, python-format
+msgid "Progress note: %s%s"
+msgstr "Notas de Evolução"
 
-msgid "all files"
-msgstr "todos os arquivos"
+#, fuzzy
+msgid "Please enter a name for the new problem:"
+msgstr "Por favor digite sua frase senha:"
 
-msgid "Save EMR extract for MEDISTAR import as..."
+msgid "Adding a problem"
 msgstr ""
 
-msgid "Error exporting progress notes for MEDISTAR import."
+#, fuzzy
+msgid "Cannot delete problem. There is still clinical data recorded for it."
+msgstr ""
+"Não foi possível apagar o episódio. Ainda há dados clínicos armazenados para "
+"ele."
+
+#, python-format
+msgid "GNUmed: configuring [%s] (%s plugins)"
+msgstr ""
+
+msgid "loading list of plugins                               "
+msgstr ""
+
+msgid "failed"
+msgstr ""
+
+msgid "success"
+msgstr ""
+
+#, python-format
+msgid ""
+"previous: %s (%s)\n"
+"current (%s/%s): %s"
+msgstr ""
+
+#, python-format
+msgid "Cannot switch to [%s]: no patient selected"
+msgstr ""
+
+msgid "Cannot move progress notes. No active patient."
+msgstr ""
+
+msgid "Moving progress notes between encounters ..."
+msgstr ""
+
+msgid ""
+"\n"
+" Select the progress notes to move from the list !\n"
+"\n"
+msgstr ""
+
+msgid "Cannot edit progress notes. No active patient."
+msgstr ""
+
+msgid "Deleting progress note"
+msgstr ""
+
+msgid ""
+"Are you positively sure you want to delete this\n"
+"progress note from the medical record ?\n"
+"\n"
+"Note that even if you chose to delete the entry it will\n"
+"still be (invisibly) kept in the audit trail to protect\n"
+"you from litigation because physical deletion is known\n"
+"to be unlawful in some jurisdictions.\n"
+msgstr ""
+
+msgid "Yes, delete the progress note."
+msgstr ""
+
+msgid "No, do NOT delete the progress note."
+msgstr ""
+
+msgid "Editing progress note"
+msgstr "Editando Notas de Evolução"
+
+msgid "This is the original progress note:"
+msgstr ""
+
+msgid "Managing progress notes"
+msgstr ""
+
+#, python-format
+msgid ""
+"\n"
+" This list shows the progress notes by %s.\n"
+"\n"
+msgstr ""
+
+msgid "Enter (regex) term to search for across all EMRs:"
+msgstr ""
+
+msgid "Text search across all EMRs"
+msgstr ""
+
+#, python-format
+msgid ""
+"Nothing found for search term:\n"
+" \"%s\""
+msgstr ""
+
+msgid "Search results"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "Search results for [%s]"
+msgstr "Resultados da pesquisa por '%s'"
+
+msgid "Match"
+msgstr ""
+
+msgid "Match location"
+msgstr ""
+
+msgid "Cannot search EMR. No active patient."
+msgstr ""
+
+msgid "Enter search term:"
+msgstr ""
+
+msgid "Text search of entire EMR of active patient"
+msgstr ""
+
+#, python-format
+msgid ""
+"Search term was: \"%s\"\n"
+"\n"
+"Search results:\n"
+"\n"
+"%s\n"
+msgstr ""
+
+msgid "Cannot export EMR for Medistar. No active patient."
+msgstr ""
+
+msgid "text files"
+msgstr "arquivos de texto"
+
+msgid "all files"
+msgstr "todos os arquivos"
+
+msgid "Save EMR extract for MEDISTAR import as..."
+msgstr ""
+
+msgid "Error exporting progress notes for MEDISTAR import."
 msgstr ""
 
 msgid "MEDISTAR progress notes export"
@@ -9445,788 +9963,587 @@ msgid ""
 " Now, mark the entries you want to include in your report.\n"
 msgstr ""
 
-msgid "Select the narrative you are interested in ..."
+msgid "Pick a date ..."
 msgstr ""
 
-msgid "There is no narrative for this episode in this encounter."
-msgstr "Não há narrativa para esse episódio nessa consulta."
+msgid "<ALT-C/K>: pick from (c/k)alendar"
+msgstr ""
 
-msgid "Must select episode to move narrative to first."
+msgid "Cannot interpret input as timestamp."
+msgstr "Não foi possível interpretar a digitação como data válida."
+
+msgid "No vaccines were chosen"
+msgstr "Não foram selecionadas vacinas"
+
+#, python-format
+msgid "Combination of indications , %s , not found in any vaccine"
 msgstr ""
 
-msgid "Last"
-msgstr "Sobrenome"
+msgid "Sequence"
+msgstr "Sequencia"
 
-#, fuzzy
-msgid "In health issue"
-msgstr "Problema de Saúde Inativo"
+msgid "Batch"
+msgstr "Lote"
+
+msgid "Vaccinator"
+msgstr "Vacinador"
+
+msgid ""
+"Vaccinations by Recommender (X = patient on regime, O = patient not on "
+"regime) "
+msgstr ""
+"Vacinações Recomendadas (X = paciente está atualizado, 0 = paciente não está "
+"atualizado) "
+
+msgid "enrolled regime vaccinations not yet given"
+msgstr "vacinações para esse paciente ainda não disponíveis"
 
 #, fuzzy
-msgid "Most recent notes on selected problem"
-msgstr "Notas Relacionadas Mais Recentes"
+msgid "Proceed with "
+msgstr "Proceda com o login."
 
 #, python-format
-msgid "%s (active+potential) problems"
-msgstr ""
+msgid "Failed to enrol patient in %s"
+msgstr "Falha ao alocar paciente ao regime de %s"
 
 #, python-format
-msgid "%s active problems"
-msgstr ""
+msgid "Failed to  delist patient from %s"
+msgstr "Falha ao remover o paciente de %s"
 
-msgid "Current encounter:"
-msgstr "Consulta Atual"
+msgid "Missing GNUmed module"
+msgstr "Fala o Módulo GNUmed"
 
-msgid "Cumulative summary"
+#, python-format
+msgid ""
+"GNUmed detected that parts of it are not\n"
+"properly installed. The following message\n"
+"names the missing part:\n"
+"\n"
+" \"%s\"\n"
+"\n"
+"Please make sure to get the missing\n"
+"parts installed. Otherwise some of the\n"
+"functionality will not be accessible."
 msgstr ""
 
 #, fuzzy, python-format
-msgid "Most recent info on %s%s%s"
-msgstr " Mais recente: %s - %s"
+msgid ""
+"\n"
+" Source: %s"
+msgstr "Fontes das Porções"
 
-#, python-format
+#, fuzzy, python-format
 msgid ""
-"Cannot open progress note editor for\n"
 "\n"
-"[%s].\n"
+" Code: %s"
+msgstr " Fechada: %s\n"
+
+#, python-format
+msgid ""
 "\n"
+" Details (first 250 characters):\n"
+"%s\n"
+"%s\n"
+"%s"
 msgstr ""
 
-msgid "opening progress note editor"
+msgid "Access violation"
 msgstr ""
 
-msgid "Cannot save all editors. Some were kept open."
+#, python-format
+msgid ""
+"You do not have access to this part of GNUmed.\n"
+"\n"
+"%s"
 msgstr ""
 
-msgid "new problem"
+msgid "Lost connection"
 msgstr ""
 
 msgid ""
-"Are you sure you really want to\n"
-"discard this progress note ?\n"
+"Since you were last working in GNUmed,\n"
+"your database connection timed out.\n"
+"\n"
+"This GNUmed session is now expired.\n"
+"\n"
+"You will have to close this client and\n"
+"restart a new GNUmed session."
 msgstr ""
 
-msgid "Discarding progress note"
+msgid ""
+"Please enter a short note on what you\n"
+"were about to do in GNUmed:"
 msgstr ""
+"Coloque uma pequena discrição do que\n"
+"estava fazendo com o GNUmed:"
 
-msgid "There are unsaved progress notes !\n"
-msgstr ""
+msgid "Sending bug report"
+msgstr "Enviando relatório de erro"
 
-msgid "Unsaved progress notes"
+msgid ""
+"Edit the list of email addresses to send the\n"
+"bug report to (separate addresses by spaces).\n"
+"\n"
+"Note that <gnumed-bugs at gnu.org> refers to\n"
+"the public (!) GNUmed bugs mailing list."
 msgstr ""
 
 #, python-format
-msgid "Synopsis (%s)"
-msgstr ""
-
 msgid ""
-"Enter a short working name for this new problem\n"
-"(which will become a new, unassociated episode):\n"
+"Your bug report will be sent to:\n"
+"\n"
+"%s\n"
+"\n"
+"Make sure you have reviewed the log file for potentially\n"
+"sensitive information before sending out the bug report.\n"
+"\n"
+"Note that emailing the report may take a while depending\n"
+"on the speed of your internet connection.\n"
 msgstr ""
-
-#, fuzzy, python-format
-msgid ""
-"Enter a short working name for this new\n"
-"episode under the existing health issue\n"
+"Seu relatório de erros será enviado para: \n"
 "\n"
-"\"%s\":\n"
-msgstr "Digite um nome para esse novo problema de saúde"
+"%s\n"
+"\n"
+"Tenha certeza que você já editou o arquivo de log para que não\n"
+"envie informações potencialmente perigosas antes de mandar o relatório\n"
+"\n"
+"Repare que enviar o relatório de erro pode demorar, dependendo de sua\n"
+"velocidade de internet.\n"
 
-msgid "Creating problem (episode) to save notelet under ..."
-msgstr ""
+msgid "Yes, send the bug report."
+msgstr "Sim enviar o relatório de erro."
 
-msgid "Cannot save a new problem without a name."
-msgstr ""
+msgid "No, do not send the bug report."
+msgstr "Não, não enviar o relatório de erro."
 
-msgid "saving progress note"
-msgstr ""
+msgid "include log file in bug report"
+msgstr "incluir o arquivo de log no relatório de erro"
 
-#, python-format
 msgid ""
-"The new episode:\n"
-"\n"
-" \"%s\"\n"
+"The database you are connected to is marked as\n"
+"\"in-production with controlled access\".\n"
 "\n"
-"will remain unassociated despite the editor\n"
-"having been invoked from the health issue:\n"
+"You indicated that you want to include the log\n"
+"file in your bug report. While this is often\n"
+"useful for debugging the log file might contain\n"
+"bits of patient data which must not be sent out\n"
+"without de-identification.\n"
 "\n"
-" \"%s\""
+"Please confirm that you want to include the log !"
 msgstr ""
-"O novo episódio:\n"
+"O banco de dados ao qual você está conectado está\n"
+"marcado como \"em produção com controle de acesso\".\n"
 "\n"
-" \"%s\"\n"
+"Você indicou que quer incluir o arquivo de log no relatório\n"
+"de erro. Embora isso ajude na hora de consertar o erro,\n"
+"o log pode conter informações do paciente que não devem ser\n"
+"enviadas sem se retirar a identificação do mesmo.\n"
 "\n"
-"continuará não associado mesmo sendo iniciado\n"
-"de dentro do problema de saúde:\n"
 "\n"
-" \"%s\""
+"Confirme que mesmo assim quer incluir o log !"
 
-msgid "You need to actually set an editor."
-msgstr ""
+msgid "<not supplied>"
+msgstr "<not supplied>"
 
-#, python-format
-msgid "The command [%s] is not found."
-msgstr ""
+msgid "Bug report has been emailed."
+msgstr "Relatório de Erro foi enviado."
 
-#, python-format
-msgid ""
-"Enter the shell command with which to start\n"
-"the image editor for visual progress notes.\n"
-"\n"
-"Any \"%(img)s\" included with the arguments\n"
-"will be replaced by the file name of the\n"
-"note template."
+msgid "Bug report COULD NOT be emailed."
 msgstr ""
 
-msgid "Choose file to use as template for new visual progress note"
-msgstr ""
+msgid "Underweight"
+msgstr "Magreza"
 
-#, fuzzy
-msgid "Visual progress note source"
-msgstr "Editar Notas de Evolução"
+msgid "63< Normal >79"
+msgstr "63< Normal >79"
 
-msgid "From which source do you want to pick the image template ?"
-msgstr ""
+msgid "63 - Normal - 79"
+msgstr "63 - Normal - 79"
 
-#, fuzzy
-msgid "Database"
-msgstr "Banco de Dados ..."
+msgid "Overweight"
+msgstr "Sobrepeso"
 
-#, fuzzy
-msgid "List of templates in the database."
-msgstr "Salvar os dados no banco de dados"
+msgid "Obese"
+msgstr "Obesidade"
 
-msgid "Files in the filesystem."
-msgstr ""
+msgid "Current height/mass"
+msgstr "Atual altura/peso"
 
-msgid "Device"
-msgstr ""
+msgid "Height (cm)"
+msgstr "Altura (cm)"
 
-msgid "Image capture devices (scanners, cameras, etc)"
-msgstr ""
+msgid "Mass (kg)"
+msgstr "Peso (kg)"
 
-#, python-format
-msgid "Cannot export visual progress note template for [%s]."
-msgstr ""
+msgid "Adjusted Values"
+msgstr "Valores ajustados"
 
-msgid "Cannot export visual progress note to file."
-msgstr ""
+msgid "Goal mass"
+msgstr "Peso ideal"
 
-msgid "Editor for visual progress note not configured."
-msgstr ""
+msgid "kg to lose"
+msgstr "kg a perder"
 
-#, python-format
-msgid ""
-"There was a problem with running the editor\n"
-"for visual progress notes.\n"
-"\n"
-" [%s]\n"
-"\n"
-msgstr ""
+msgid "BMI Calculator"
+msgstr "Calculadora de IMC"
 
-msgid "Editing visual progress note"
-msgstr ""
+msgid "&Reset"
+msgstr "&Limpar"
 
-#, python-format
-msgid ""
-"There was a problem reading the visual\n"
-"progress note from the file:\n"
-"\n"
-" [%s]\n"
-"\n"
+msgid "Select a healthcare provider."
 msgstr ""
 
-msgid "Saving visual progress note"
+msgid "Public (no clinical or demographic access)"
 msgstr ""
 
-msgid ""
-"You either created a visual progress note from a template\n"
-"in the database (rather than from a file on disk) or you\n"
-"edited an existing visual progress note.\n"
-"\n"
-"The template/original was not modified at all, however.\n"
-"\n"
-"Do you still want to save the unmodified image as a\n"
-"visual progress note into the EMR of the patient ?\n"
+msgid "Staff (demographic access only)"
 msgstr ""
 
-msgid "visual progress notes"
+msgid "staff (clerical)"
 msgstr ""
 
-#, python-format
-msgid "Created: %s"
+msgid "full clinical access"
 msgstr ""
 
-#, fuzzy
-msgid "Problem list"
-msgstr "Problema"
-
-msgid "Saving SOAP note"
+msgid "DB account"
 msgstr ""
 
-#, fuzzy
-msgid "Do you want to save the SOAP note ?"
+msgid "can login"
 msgstr ""
-"Você realmente quer apagar esse\n"
-"ID externo do paciente?"
 
-#, python-format
-msgid "&Filter by problem %s%s%s"
+msgid "can not login"
 msgstr ""
 
-#, fuzzy
-msgid "Cannot save SimpleNotes SOAP note."
-msgstr "Não foi possível salvar a consulta: tipo não foi deinido"
+msgid "Activating GNUmed user."
+msgstr ""
 
-#, fuzzy, python-format
-msgid "Progress note: %s%s"
-msgstr "Notas de Evolução"
+msgid "Deactivating GNUmed user."
+msgstr ""
 
 #, fuzzy
-msgid "Please enter a name for the new problem:"
-msgstr "Por favor digite sua frase senha:"
-
-msgid "Adding a problem"
-msgstr ""
+msgid "Removing GNUmed user."
+msgstr "Fala o Módulo GNUmed"
 
 #, fuzzy
-msgid "Cannot delete problem. There is still clinical data recorded for it."
-msgstr ""
-"Não foi possível apagar o episódio. Ainda há dados clínicos armazenados para "
-"ele."
+msgid "Removing GNUmed user"
+msgstr "Fala o Módulo GNUmed"
 
-#, python-format
-msgid "GNUmed: configuring [%s] (%s plugins)"
+msgid "Modifying GNUmed user."
 msgstr ""
 
-msgid "loading list of plugins                               "
+msgid "Failed to save changes to GNUmed database user."
 msgstr ""
 
-msgid "failed"
+msgid "Modifying GNUmed user"
 msgstr ""
 
-msgid "success"
+#, python-format
+msgid "Failed to set role [%s] for GNUmed database user."
 msgstr ""
 
 #, python-format
 msgid ""
-"previous: %s (%s)\n"
-"current (%s/%s): %s"
+"\n"
+"  %s \"%s\" %s\n"
+"  born: %s"
 msgstr ""
 
-#, python-format
-msgid "Cannot switch to [%s]: no patient selected"
+msgid ""
+"Password entries do not match. Please type in the passwords again to rule "
+"out typos."
 msgstr ""
 
-msgid "Pick a date ..."
+msgid "Adding GNUmed user"
 msgstr ""
 
-msgid "<ALT-C/K>: pick from (c/k)alendar"
+msgid ""
+"Are you positively sure you want to create\n"
+"a user with an empty password ?\n"
+"\n"
+"Think about the record access implications !"
 msgstr ""
 
-msgid "Cannot interpret input as timestamp."
-msgstr "Não foi possível interpretar a digitação como data válida."
-
-msgid "No vaccines were chosen"
-msgstr "Não foram selecionadas vacinas"
+msgid "Enlisting person as user."
+msgstr "Incluindo pessoa como usuário."
 
-#, python-format
-msgid "Combination of indications , %s , not found in any vaccine"
-msgstr ""
+msgid "Encrypt"
+msgstr "Encriptar"
 
-msgid "Sequence"
-msgstr "Sequencia"
+msgid "Decrypt"
+msgstr "Decriptar"
 
-msgid "Batch"
-msgstr "Lote"
+msgid "Set pass phrase"
+msgstr "Configurar a frase / senha"
 
-msgid "Vaccinator"
-msgstr "Vacinador"
-
-msgid ""
-"Vaccinations by Recommender (X = patient on regime, O = patient not on "
-"regime) "
-msgstr ""
-"Vacinações Recomendadas (X = paciente está atualizado, 0 = paciente não está "
-"atualizado) "
+msgid "This is not correctly encrypted text!"
+msgstr "Esse texto não foi encriptado corretamente"
 
-msgid "enrolled regime vaccinations not yet given"
-msgstr "vacinações para esse paciente ainda não disponíveis"
+msgid "Please enter your pass phrase:"
+msgstr "Por favor digite sua frase senha:"
 
-#, fuzzy
-msgid "Proceed with "
-msgstr "Proceda com o login."
+msgid "Pass phrase expired"
+msgstr "Frase senha expirou"
 
-#, python-format
-msgid "Failed to enrol patient in %s"
-msgstr "Falha ao alocar paciente ao regime de %s"
+msgid ""
+"\n"
+"Conditions preventable by vaccination as currently known to GNUmed.\n"
+msgstr ""
 
-#, python-format
-msgid "Failed to  delist patient from %s"
-msgstr "Falha ao remover o paciente de %s"
+msgid "Showing vaccination preventable conditions."
+msgstr ""
 
-msgid "Missing GNUmed module"
-msgstr "Fala o Módulo GNUmed"
+msgid "ATCs: single-condition vaccines"
+msgstr ""
 
-#, python-format
-msgid ""
-"GNUmed detected that parts of it are not\n"
-"properly installed. The following message\n"
-"names the missing part:\n"
-"\n"
-" \"%s\"\n"
-"\n"
-"Please make sure to get the missing\n"
-"parts installed. Otherwise some of the\n"
-"functionality will not be accessible."
+msgid "ATCs: multi-condition vaccines"
 msgstr ""
 
-#, fuzzy, python-format
-msgid ""
-"\n"
-" Source: %s"
-msgstr "Fontes das Porções"
+#, fuzzy
+msgid "Pick the relevant indications."
+msgstr "Imprimir a lista de medicações."
 
-#, fuzzy, python-format
-msgid ""
-"\n"
-" Code: %s"
-msgstr " Fechada: %s\n"
+#, fuzzy
+msgid "Known indications"
+msgstr "Condição"
 
-#, python-format
-msgid ""
-"\n"
-" Details (first 250 characters):\n"
-"%s\n"
-"%s\n"
-"%s"
+msgid "Adding new vaccine"
 msgstr ""
 
-msgid "Access violation"
+msgid "Editing vaccine"
 msgstr ""
 
 #, python-format
 msgid ""
-"You do not have access to this part of GNUmed.\n"
+"Cannot delete vaccine\n"
 "\n"
-"%s"
+" %s - %s (#%s)\n"
+"\n"
+"It is probably documented in a vaccination."
 msgstr ""
 
-msgid "Lost connection"
+msgid "Deleting vaccine"
+msgstr ""
+
+msgid "fake"
 msgstr ""
 
 msgid ""
-"Since you were last working in GNUmed,\n"
-"your database connection timed out.\n"
-"\n"
-"This GNUmed session is now expired.\n"
 "\n"
-"You will have to close this client and\n"
-"restart a new GNUmed session."
+"The vaccines currently known to GNUmed.\n"
 msgstr ""
 
-msgid ""
-"Please enter a short note on what you\n"
-"were about to do in GNUmed:"
+msgid "Showing vaccines."
 msgstr ""
-"Coloque uma pequena discrição do que\n"
-"estava fazendo com o GNUmed:"
 
-msgid "Sending bug report"
-msgstr "Enviando relatório de erro"
+msgid "Enter or select the batch/lot number of the vaccine used."
+msgstr ""
 
-msgid ""
-"Edit the list of email addresses to send the\n"
-"bug report to (separate addresses by spaces).\n"
-"\n"
-"Note that <gnumed-bugs at gnu.org> refers to\n"
-"the public (!) GNUmed bugs mailing list."
+msgid "Saving vaccine"
 msgstr ""
 
 #, python-format
 msgid ""
-"Your bug report will be sent to:\n"
+"This vaccine is already in use:\n"
 "\n"
-"%s\n"
+" \"%s\"\n"
+" (%s)\n"
 "\n"
-"Make sure you have reviewed the log file for potentially\n"
-"sensitive information before sending out the bug report.\n"
+"Are you absolutely positively sure that\n"
+"you really want to edit this vaccine ?\n"
 "\n"
-"Note that emailing the report may take a while depending\n"
-"on the speed of your internet connection.\n"
+"This will change the vaccine name and/or target\n"
+"conditions in each patient this vaccine was\n"
+"used in to document a vaccination with.\n"
 msgstr ""
-"Seu relatório de erros será enviado para: \n"
-"\n"
-"%s\n"
-"\n"
-"Tenha certeza que você já editou o arquivo de log para que não\n"
-"envie informações potencialmente perigosas antes de mandar o relatório\n"
-"\n"
-"Repare que enviar o relatório de erro pode demorar, dependendo de sua\n"
-"velocidade de internet.\n"
-
-msgid "Yes, send the bug report."
-msgstr "Sim enviar o relatório de erro."
-
-msgid "No, do not send the bug report."
-msgstr "Não, não enviar o relatório de erro."
 
-msgid "include log file in bug report"
-msgstr "incluir o arquivo de log no relatório de erro"
+#, fuzzy
+msgid "You must select at least one indication."
+msgstr "Você deve selecionar um modelo de aquivo antes de salvar."
 
-msgid ""
-"The database you are connected to is marked as\n"
-"\"in-production with controlled access\".\n"
-"\n"
-"You indicated that you want to include the log\n"
-"file in your bug report. While this is often\n"
-"useful for debugging the log file might contain\n"
-"bits of patient data which must not be sent out\n"
-"without de-identification.\n"
-"\n"
-"Please confirm that you want to include the log !"
+msgid "Pick the diseases this vaccine protects against."
 msgstr ""
-"O banco de dados ao qual você está conectado está\n"
-"marcado como \"em produção com controle de acesso\".\n"
-"\n"
-"Você indicou que quer incluir o arquivo de log no relatório\n"
-"de erro. Embora isso ajude na hora de consertar o erro,\n"
-"o log pode conter informações do paciente que não devem ser\n"
-"enviadas sem se retirar a identificação do mesmo.\n"
-"\n"
-"\n"
-"Confirme que mesmo assim quer incluir o log !"
 
-msgid "<not supplied>"
-msgstr "<not supplied>"
+#, fuzzy
+msgid "This vaccine"
+msgstr "vacina"
 
-msgid "Bug report has been emailed."
-msgstr "Relatório de Erro foi enviado."
+msgid "Adding new vaccinations"
+msgstr ""
 
-msgid "Bug report COULD NOT be emailed."
+msgid "Editing vaccination"
 msgstr ""
 
-msgid "Underweight"
-msgstr "Magreza"
+#, fuzzy
+msgid "vaccination recall"
+msgstr "Vacinação"
 
-msgid "63< Normal >79"
-msgstr "63< Normal >79"
+#, fuzzy, python-format
+msgid "vaccination recall (%s)"
+msgstr "Vacinas"
 
-msgid "63 - Normal - 79"
-msgstr "63 - Normal - 79"
+#, fuzzy, python-format
+msgid ""
+"Existing vaccination:\n"
+"\n"
+"%s"
+msgstr "Últimas vacinas"
 
-msgid "Overweight"
-msgstr "Sobrepeso"
+msgid ""
+"\n"
+"Complete vaccination history for this patient.\n"
+msgstr ""
 
-msgid "Obese"
-msgstr "Obesidade"
+msgid "Showing vaccinations."
+msgstr ""
 
-msgid "Current height/mass"
-msgstr "Atual altura/peso"
+msgid "Intended to protect from"
+msgstr ""
 
-msgid "Height (cm)"
-msgstr "Altura (cm)"
+#, fuzzy
+msgid "Print vaccinations or recalls."
+msgstr "Vacinação"
 
-msgid "Mass (kg)"
-msgstr "Peso (kg)"
+#, fuzzy
+msgid "Recall"
+msgstr "Detalhes da Reconsulta"
 
-msgid "Adjusted Values"
-msgstr "Valores ajustados"
+msgid "Add a recall for a vaccination"
+msgstr ""
 
-msgid "Goal mass"
-msgstr "Peso ideal"
+#, fuzzy
+msgid "Vx schedules"
+msgstr "Posologia"
 
-msgid "kg to lose"
-msgstr "kg a perder"
+msgid "Open a browser showing vaccination schedules."
+msgstr ""
 
-msgid "BMI Calculator"
-msgstr "Calculadora de IMC"
+msgid "prevention"
+msgstr ""
 
-msgid "&Reset"
-msgstr "&Limpar"
+#, fuzzy
+msgid "Saving vaccination"
+msgstr "Últimas vacinas"
 
-msgid "Select a healthcare provider."
+msgid "Pick the diseases this vaccination was given against."
 msgstr ""
 
-msgid "Public (no clinical or demographic access)"
+msgid "  IMMUNISATIONS  "
 msgstr ""
 
-msgid "Staff (demographic access only)"
+msgid "Indications"
 msgstr ""
 
-msgid "staff (clerical)"
+msgid "Active Schedules"
 msgstr ""
 
-msgid "full clinical access"
+msgid "Missing Immunisations"
 msgstr ""
 
-msgid "DB account"
+msgid "  Alerts  "
 msgstr ""
 
-msgid "can login"
+msgid "ERROR: cannot retrieve active vaccination schedules"
 msgstr ""
 
-msgid "can not login"
+msgid "no active vaccination schedules"
 msgstr ""
 
-msgid "Activating GNUmed user."
-msgstr ""
-
-msgid "Deactivating GNUmed user."
-msgstr ""
-
-#, fuzzy
-msgid "Removing GNUmed user."
-msgstr "Fala o Módulo GNUmed"
-
-#, fuzzy
-msgid "Removing GNUmed user"
-msgstr "Fala o Módulo GNUmed"
-
-msgid "Modifying GNUmed user."
-msgstr ""
-
-msgid "Failed to save changes to GNUmed database user."
+#, python-format
+msgid "%s for %s (%s shots): %s"
 msgstr ""
 
-msgid "Modifying GNUmed user"
+msgid "ERROR: cannot retrieve due/overdue vaccinations"
 msgstr ""
 
 #, python-format
-msgid "Failed to set role [%s] for GNUmed database user."
+msgid "%.0d weeks left: shot %s for %s in %s, due %s (%s)"
 msgstr ""
 
 #, python-format
-msgid ""
-"\n"
-"  %s \"%s\" %s\n"
-"  born: %s"
+msgid "overdue %.0dyrs %.0dwks: shot %s for %s in schedule \"%s\" (%s)"
 msgstr ""
 
-msgid ""
-"Password entries do not match. Please type in the passwords again to rule "
-"out typos."
+#, python-format
+msgid "due now: booster for %s in schedule \"%s\" (%s)"
 msgstr ""
 
-msgid "Adding GNUmed user"
+#, python-format
+msgid "Synopsis (%s)"
 msgstr ""
 
 msgid ""
-"Are you positively sure you want to create\n"
-"a user with an empty password ?\n"
-"\n"
-"Think about the record access implications !"
+"Enter a short working name for this new problem\n"
+"(which will become a new, unassociated episode):\n"
 msgstr ""
 
-msgid "Enlisting person as user."
-msgstr "Incluindo pessoa como usuário."
-
-msgid "Encrypt"
-msgstr "Encriptar"
-
-msgid "Decrypt"
-msgstr "Decriptar"
-
-msgid "Set pass phrase"
-msgstr "Configurar a frase / senha"
-
-msgid "This is not correctly encrypted text!"
-msgstr "Esse texto não foi encriptado corretamente"
-
-msgid "Please enter your pass phrase:"
-msgstr "Por favor digite sua frase senha:"
-
-msgid "Pass phrase expired"
-msgstr "Frase senha expirou"
-
+#, fuzzy, python-format
 msgid ""
+"Enter a short working name for this new\n"
+"episode under the existing health issue\n"
 "\n"
-"Conditions preventable by vaccination as currently known to GNUmed.\n"
-msgstr ""
-
-msgid "Showing vaccination preventable conditions."
-msgstr ""
-
-msgid "ATCs: single-condition vaccines"
-msgstr ""
+"\"%s\":\n"
+msgstr "Digite um nome para esse novo problema de saúde"
 
-msgid "ATCs: multi-condition vaccines"
+msgid "Creating problem (episode) to save notelet under ..."
 msgstr ""
 
-#, fuzzy
-msgid "Pick the relevant indications."
-msgstr "Imprimir a lista de medicações."
-
-#, fuzzy
-msgid "Known indications"
-msgstr "Condição"
-
-msgid "Adding new vaccine"
+msgid "Cannot save a new problem without a name."
 msgstr ""
 
-msgid "Editing vaccine"
+msgid "saving progress note"
 msgstr ""
 
 #, python-format
 msgid ""
-"Cannot delete vaccine\n"
+"The new episode:\n"
 "\n"
-" %s - %s (#%s)\n"
+" \"%s\"\n"
 "\n"
-"It is probably documented in a vaccination."
-msgstr ""
-
-msgid "Deleting vaccine"
-msgstr ""
-
-msgid "fake"
-msgstr ""
-
-msgid ""
+"will remain unassociated despite the editor\n"
+"having been invoked from the health issue:\n"
 "\n"
-"The vaccines currently known to GNUmed.\n"
-msgstr ""
-
-msgid "Showing vaccines."
-msgstr ""
-
-msgid "Enter or select the batch/lot number of the vaccine used."
-msgstr ""
-
-msgid "Saving vaccine"
+" \"%s\""
 msgstr ""
-
-#, python-format
-msgid ""
-"This vaccine is already in use:\n"
+"O novo episódio:\n"
 "\n"
 " \"%s\"\n"
-" (%s)\n"
-"\n"
-"Are you absolutely positively sure that\n"
-"you really want to edit this vaccine ?\n"
-"\n"
-"This will change the vaccine name and/or target\n"
-"conditions in each patient this vaccine was\n"
-"used in to document a vaccination with.\n"
-msgstr ""
-
-#, fuzzy
-msgid "You must select at least one indication."
-msgstr "Você deve selecionar um modelo de aquivo antes de salvar."
-
-msgid "Pick the diseases this vaccine protects against."
-msgstr ""
-
-#, fuzzy
-msgid "This vaccine"
-msgstr "vacina"
-
-msgid "Adding new vaccinations"
-msgstr ""
-
-msgid "Editing vaccination"
-msgstr ""
-
-#, fuzzy
-msgid "vaccination recall"
-msgstr "Vacinação"
-
-#, fuzzy, python-format
-msgid "vaccination recall (%s)"
-msgstr "Vacinas"
-
-#, fuzzy, python-format
-msgid ""
-"Existing vaccination:\n"
 "\n"
-"%s"
-msgstr "Últimas vacinas"
-
-msgid ""
+"continuará não associado mesmo sendo iniciado\n"
+"de dentro do problema de saúde:\n"
 "\n"
-"Complete vaccination history for this patient.\n"
-msgstr ""
-
-msgid "Showing vaccinations."
-msgstr ""
-
-msgid "Intended to protect from"
-msgstr ""
+" \"%s\""
 
 #, fuzzy
-msgid "Print vaccinations or recalls."
-msgstr "Vacinação"
+msgid "Adding substance abuse"
+msgstr "Editar a entrada da atual substância."
 
 #, fuzzy
-msgid "Recall"
-msgstr "Detalhes da Reconsulta"
+msgid "Editing substance abuse"
+msgstr "Editar a entrada da atual substância."
 
-msgid "Add a recall for a vaccination"
+msgid "Substances abused by the patient:"
 msgstr ""
 
 #, fuzzy
-msgid "Vx schedules"
-msgstr "Posologia"
+msgid "Showing abused substances."
+msgstr "Agrupar pacientes"
 
-msgid "Open a browser showing vaccination schedules."
+msgid "Intake"
 msgstr ""
 
-msgid "prevention"
+msgid "nicotine"
 msgstr ""
 
 #, fuzzy
-msgid "Saving vaccination"
-msgstr "Últimas vacinas"
-
-msgid "Pick the diseases this vaccination was given against."
-msgstr ""
-
-msgid "  IMMUNISATIONS  "
-msgstr ""
-
-msgid "Indications"
-msgstr ""
-
-msgid "Active Schedules"
-msgstr ""
-
-msgid "Missing Immunisations"
-msgstr ""
-
-msgid "  Alerts  "
-msgstr ""
-
-msgid "ERROR: cannot retrieve active vaccination schedules"
-msgstr ""
-
-msgid "no active vaccination schedules"
-msgstr ""
-
-#, python-format
-msgid "%s for %s (%s shots): %s"
-msgstr ""
-
-msgid "ERROR: cannot retrieve due/overdue vaccinations"
-msgstr ""
-
-#, python-format
-msgid "%.0d weeks left: shot %s for %s in %s, due %s (%s)"
-msgstr ""
-
-#, python-format
-msgid "overdue %.0dyrs %.0dwks: shot %s for %s in schedule \"%s\" (%s)"
-msgstr ""
-
-#, python-format
-msgid "due now: booster for %s in schedule \"%s\" (%s)"
-msgstr ""
+msgid "unit"
+msgstr "unidades"
 
 #, fuzzy, python-format
-msgid "Latest: %s ago (%s %s %s %s%s)"
+msgid "Latest: %s ago (%s %s%s%s%s)"
 msgstr "  Seu horário: %s - %s (@%s = %s%s)\n"
 
 #, fuzzy, python-format
-msgid "%s %s %s %s (%s ago, %s)"
+msgid "%s %s%s%s (%s ago, %s)"
 msgstr ""
 "%s: %s by %.8s\n"
 "%s"
@@ -10239,6 +10556,13 @@ msgstr "Comentário: %s"
 msgid "due in %s%s"
 msgstr "Comentário: %s"
 
+msgid "suppr'd:"
+msgstr ""
+
+#, fuzzy
+msgid "Suppressed hints:\n"
+msgstr "Fonte: %s\n"
+
 #, fuzzy
 msgid ""
 "Do you really want to\n"
@@ -10296,10 +10620,17 @@ msgid ""
 msgstr ""
 
 #, fuzzy, python-format
-msgid "%s Vacc: %s"
+msgid "%s Vacc: %s (latest of %s)"
 msgstr "Fechado"
 
 #, fuzzy, python-format
+msgid "Hx of addiction: %s"
+msgstr "Internações hospitalares: %s"
+
+msgid "active substance abuse"
+msgstr ""
+
+#, fuzzy, python-format
 msgid "%s %s %s%s"
 msgstr " Estado: %s, %s%s"
 
@@ -10474,18 +10805,118 @@ msgid ""
 "You will have to add it via the Demographics plugin.\n"
 msgstr ""
 
-msgid "You must select a value from the picklist or type an exact match."
+msgid "You need to actually set an editor."
 msgstr ""
 
 #, python-format
-msgid ""
-"The content is invalid. It must match the regular expression: [%%s]. <%s>"
-msgstr ""
-
-msgid "Latin"
-msgstr ""
-
-msgid "Greek"
+msgid "The command [%s] is not found."
+msgstr ""
+
+#, python-format
+msgid ""
+"Enter the shell command with which to start\n"
+"the image editor for visual progress notes.\n"
+"\n"
+"Any \"%(img)s\" included with the arguments\n"
+"will be replaced by the file name of the\n"
+"note template."
+msgstr ""
+
+msgid "Choose file to use as template for new visual progress note"
+msgstr ""
+
+#, fuzzy
+msgid "Visual progress note source"
+msgstr "Editar Notas de Evolução"
+
+msgid "From which source do you want to pick the image template ?"
+msgstr ""
+
+#, fuzzy
+msgid "Database"
+msgstr "Banco de Dados ..."
+
+#, fuzzy
+msgid "List of templates in the database."
+msgstr "Salvar os dados no banco de dados"
+
+msgid "Files in the filesystem."
+msgstr ""
+
+msgid "Device"
+msgstr ""
+
+msgid "Image capture devices (scanners, cameras, etc)"
+msgstr ""
+
+#, python-format
+msgid "Cannot export visual progress note template for [%s]."
+msgstr ""
+
+msgid "Cannot export visual progress note to file."
+msgstr ""
+
+msgid "Editor for visual progress note not configured."
+msgstr ""
+
+#, python-format
+msgid ""
+"There was a problem with running the editor\n"
+"for visual progress notes.\n"
+"\n"
+" [%s]\n"
+"\n"
+msgstr ""
+
+msgid "Editing visual progress note"
+msgstr ""
+
+#, python-format
+msgid ""
+"There was a problem reading the visual\n"
+"progress note from the file:\n"
+"\n"
+" [%s]\n"
+"\n"
+msgstr ""
+
+msgid "Saving visual progress note"
+msgstr ""
+
+msgid ""
+"You either created a visual progress note from a template\n"
+"in the database (rather than from a file on disk) or you\n"
+"edited an existing visual progress note.\n"
+"\n"
+"The template/original was not modified at all, however.\n"
+"\n"
+"Do you still want to save the unmodified image as a\n"
+"visual progress note into the EMR of the patient ?\n"
+msgstr ""
+
+msgid "visual progress notes"
+msgstr ""
+
+#, python-format
+msgid " [part 1 of %s]"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "Created: %s%s"
+msgstr "Episódio Selecionado."
+
+msgid "You must select a value from the picklist or type an exact match."
+msgstr ""
+
+#, python-format
+msgid ""
+"The content is invalid. It must match the regular expression: [%%s]. <%s>"
+msgstr ""
+
+msgid "Latin"
+msgstr ""
+
+msgid "Greek"
 msgstr ""
 
 msgid "Cyrillic"
@@ -10553,10 +10984,13 @@ msgstr "Selecione o episódio para o qual você quer mover a descrição"
 msgid "no address type replacement selected"
 msgstr ""
 
-#, python-format
+#, fuzzy, python-format
 msgid ""
-"%(street)s %(number)s, %(postcode)s %(urb)s, %(l10n_state)s, %(l10n_country)s"
+"%(street)s %(number)s, %(postcode)s %(urb)s, %(l10n_region)s, "
+"%(l10n_country)s"
 msgstr ""
+"%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_region)s, "
+"%(code_country)s"
 
 #, python-format
 msgid "no URL for comm channel [%s]"
@@ -11190,7 +11624,7 @@ msgstr "Salvando dados do contato"
 msgid ""
 "Cannot save address.\n"
 "\n"
-"Does the state [%s]\n"
+"Does the region [%s]\n"
 "exist in country [%s] ?"
 msgstr ""
 
@@ -11646,8 +12080,9 @@ msgstr "Comentário: %s"
 msgid "Reminders for the current patient"
 msgstr "Escrever uma carta para o paciente atual."
 
-msgid "Sent"
-msgstr ""
+#, fuzzy
+msgid "Generated"
+msgstr "Generalizado"
 
 #, fuzzy
 msgid "Category - Type"
@@ -11696,9 +12131,6 @@ msgid ""
 "Data: %s"
 msgstr ""
 
-msgid "Inbox Message Actions:"
-msgstr ""
-
 #, fuzzy
 msgid "Activate patient"
 msgstr "Paciente ativo"
@@ -12426,7 +12858,7 @@ msgid ""
 msgstr ""
 
 #, python-format
-msgid "Select branch (of praxis [%s]) which you are logging in from.\n"
+msgid "Select the branch of praxis [%s] which you are logging in from.\n"
 msgstr ""
 
 msgid "Praxis branch selection ..."
@@ -12754,6 +13186,14 @@ msgstr "Selecionando paciente"
 msgid "List of addresses related to this person."
 msgstr "Um comentário livre sobre essa pessoa."
 
+#, fuzzy
+msgid "Map"
+msgstr "Sr"
+
+#, fuzzy
+msgid "Show selected address on map"
+msgstr "obrigatório selecionar endereço"
+
 msgid "Adding new address"
 msgstr "Adicionando novo endereço"
 
@@ -12966,8 +13406,91 @@ msgid "generic multi choice dialog"
 msgstr ""
 
 #, fuzzy
-msgid "Search in list"
-msgstr "Lista de medicamentos"
+msgid "Deleting list items"
+msgstr "Apagar todos itens"
+
+#, python-format
+msgid ""
+"You have selected %s list items.\n"
+"\n"
+"Really delete all %s items ?"
+msgstr ""
+
+msgid ""
+"Select the items you want to work on.\n"
+"\n"
+"A discontinuous selection may depend on your holding down a platform-"
+"dependent modifier key (<CTRL>, <ALT>, etc) or key combination (eg. <CTRL-"
+"SHIFT> or <CTRL-ALT>) while clicking."
+msgstr ""
+
+#, fuzzy
+msgid "List Item Actions:"
+msgstr "Episódio %s"
+
+msgid "Add (<INS>)"
+msgstr ""
+
+#, fuzzy
+msgid "Delete (<DEL>)"
+msgstr "Apagar"
+
+msgid "Find (<CTRL-F>)"
+msgstr ""
+
+#, python-format
+msgid "Find next [%s] (<CTRL-N>)"
+msgstr ""
+
+msgid "Row tooltip"
+msgstr ""
+
+msgid "Row data (formatted as text)"
+msgstr ""
+
+msgid "Row content (as one line)"
+msgstr ""
+
+msgid "Row content (one line per column)"
+msgstr ""
+
+#, python-format
+msgid "Column &%s: \"%s\" [#%s]"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "Column &%s: %s"
+msgstr "Documentos: %s"
+
+#, fuzzy
+msgid "&Copy to clipboard..."
+msgstr "Mover o paciente para cima."
+
+#, fuzzy
+msgid "Append (&+) to clipboard..."
+msgstr "Mover o paciente para cima."
+
+#, python-format
+msgid ""
+"%s list items are selected.\n"
+"\n"
+"Really delete all %s items ?"
+msgstr ""
+
+#, fuzzy
+msgid "Enter the search term:"
+msgstr "Pesquisa"
+
+#, fuzzy
+msgid "List search"
+msgstr "Pesquisa"
+
+#, python-format
+msgid ""
+"Current search term: [[%s]]\n"
+"\n"
+"%s"
+msgstr ""
 
 msgid "Monty the Serpent && the FSF Present"
 msgstr "Monty a Serpente && o FSF Apresentam"
@@ -13135,6 +13658,10 @@ msgstr ""
 msgid "Unknown: ?"
 msgstr "Desconhecida"
 
+#, fuzzy
+msgid "The text has been copied into the clipboard."
+msgstr "Remover o(s) item(s) selecionado(s) da lista."
+
 msgid "file2clipboard"
 msgstr ""
 
@@ -13142,6 +13669,44 @@ msgstr ""
 msgid "The file [%s] has been copied into the clipboard."
 msgstr ""
 
+msgid "programmer forgot to specify error message"
+msgstr "programador esqueceu de especificar mensagem de erro"
+
+msgid ""
+"\n"
+"\n"
+"Please consult the error log for all the gory details !"
+msgstr ""
+"\n"
+"\n"
+"Favor consulte o log de erro para todos os detalhes sórdidos !"
+
+msgid "generic error message"
+msgstr "mensagem de erro genérica"
+
+msgid "programmer forgot to specify info message"
+msgstr "programador esqueceu de especificar mensagem de erro"
+
+msgid "generic info message"
+msgstr "mensagem de informação genérica"
+
+msgid "programmer forgot to specify warning"
+msgstr "programador esqueceu de especificar mensagem de aviso"
+
+msgid "generic warning message"
+msgstr "mensagem de aviso genérica"
+
+#, fuzzy
+msgid "Editing EDC"
+msgstr "História de Medicação "
+
+#, python-format
+msgid ""
+"Really delete the EDC documented previously ?\n"
+"\n"
+" EDC: %s"
+msgstr ""
+
 #, python-format
 msgid ""
 "Algorithm: %s\n"
@@ -13252,15 +13817,15 @@ msgstr "Sobrenome"
 msgid "Firstname"
 msgstr ""
 
-msgid "Nickname"
-msgstr ""
-
 msgid "DOB"
 msgstr ""
 
 msgid "last visit"
 msgstr ""
 
+msgid "Nickname / Comment"
+msgstr ""
+
 msgid "found via"
 msgstr ""
 
@@ -13443,276 +14008,25 @@ msgstr ""
 msgid "In case of emergency contact:"
 msgstr ""
 
-msgid ""
-"\n"
-"Please select the default drug data source from the list below.\n"
-"\n"
-"Note that to actually use it you need to have the database installed, too."
-msgstr ""
-
-msgid "Drug data source"
+msgid "The preparation (form) of the substance or brand."
 msgstr ""
 
-msgid "Configuring default drug data source"
+msgid "A substance with optional strength or a brand."
 msgstr ""
 
-msgid "No default drug database configured."
-msgstr ""
+#, fuzzy
+msgid "The medical aim for consuming this substance."
+msgstr "O objetivo do consumo desta substância."
 
-msgid "There is no default drug database configured."
+msgid "not tolerated:"
 msgstr ""
 
-msgid "Jumping to drug database"
+msgid "discontinued due to allergy or intolerance"
 msgstr ""
 
-#, python-format
-msgid "Cannot call IFAP via [%s]."
-msgstr "Cannot call IFAP via [%s]."
-
-#, python-format
-msgid "Cannot create IFAP <-> GNUmed transfer file [%s]."
-msgstr "Cannot create IFAP <-> GNUmed transfer file [%s]."
-
-msgid "Current medication"
-msgstr "Medicação atual"
-
-msgid ""
-"\n"
-"The ATC codes as known to GNUmed.\n"
-msgstr ""
-
-msgid "Showing ATC codes."
-msgstr ""
-
-msgid "Choose an ATC import config file"
-msgstr ""
-
-msgid "config files"
-msgstr ""
-
-msgid "importing ATC reference data"
-msgstr ""
-
-msgid "Successfully imported ATC reference data."
-msgstr ""
-
-msgid "Importing ATC reference data failed."
-msgstr ""
-
-msgid "Select an ATC (Anatomical-Therapeutic-Chemical) code."
-msgstr ""
-
-msgid "Cannot delete this substance. It is in use."
-msgstr ""
-
-msgid ""
-"\n"
-"These are the consumable substances registered with GNUmed.\n"
-msgstr ""
-
-msgid "Showing consumable substances."
-msgstr ""
-
-msgid "Import"
-msgstr ""
-
-msgid "Import consumable substances from a drug database."
-msgstr ""
-
-msgid "Cannot edit this substance. It is in use."
-msgstr ""
-
-msgid "Adding new consumable substance"
-msgstr ""
-
-msgid "Editing consumable substance"
-msgstr ""
-
-msgid "Cannot save consumable substance. Missing essential input."
-msgstr ""
-
-#, python-format
-msgid "Cannot save consumable substance. %s"
-msgstr ""
-
-msgid "Cannot remove this component from the drug. It is in use."
-msgstr ""
-
-msgid ""
-"\n"
-"These are the components in the drug brands known to GNUmed.\n"
-msgstr ""
-
-msgid "Showing drug brand components."
-msgstr ""
-
-msgid "Adding new drug component"
-msgstr ""
-
-msgid "Editing drug component"
-msgstr ""
-
-msgid "Cannot edit drug component. It is in use."
-msgstr ""
-
-msgid "Cannot save drug component. Invalid or missing essential input."
-msgstr ""
-
-msgid "A drug component with optional strength."
-msgstr ""
-
-msgid "The preparation (form) of the substance or brand."
-msgstr ""
-
-msgid "The substance with optional strength."
-msgstr ""
-
-msgid "Managing components of a drug"
-msgstr ""
-
-#, python-format
-msgid ""
-"Cannot manage the components of the branded drug product\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is currently taken by patients.\n"
-msgstr ""
-
-msgid "Pick the substances which are components of this drug."
-msgstr ""
-
-msgid "Components of drug"
-msgstr ""
-
-#, python-format
-msgid ""
-"Adjust the components of \"%s\"\n"
-"\n"
-"The drug must contain at least one component. Any given\n"
-"substance can only be included once per drug."
-msgstr ""
-
-msgid "Managing components of a drug ..."
-msgstr ""
-
-msgid "not in use"
-msgstr ""
-
-#, python-format
-msgid "ATC: %s\n"
-msgstr ""
-
-msgid "Editing medication"
-msgstr ""
-
-#, python-format
-msgid ""
-"Cannot edit the medication\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is a vaccine. Please edit it\n"
-"from the vaccine management section !\n"
-msgstr ""
-
-msgid "Deleting medication"
-msgstr ""
-
-#, python-format
-msgid ""
-"Cannot delete the medication\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is a vaccine. Please delete it\n"
-"from the vaccine management section !\n"
-msgstr ""
-
-msgid ""
-"\n"
-"These are the drug brands known to GNUmed.\n"
-msgstr ""
-
-msgid "Showing branded drugs."
-msgstr ""
-
-msgid "Import substances and brands from a drug database."
-msgstr ""
-
-msgid "Editing drug"
-msgstr ""
-
-#, python-format
-msgid ""
-"Cannot edit the branded drug product\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is currently taken by patients.\n"
-msgstr ""
-
-msgid "Adding new drug brand"
-msgstr ""
-
-msgid "Editing drug brand"
-msgstr ""
-
-#, fuzzy
-msgid "Manage consumable substances"
-msgstr "Editar as substâncias consumíveis."
-
-msgid "Cannot edit drug brand. It is in use."
-msgstr ""
-
-#, fuzzy
-msgid "Checking brand data"
-msgstr "Checando por atualizações do cliente"
-
-#, python-format
-msgid ""
-"The brand information you entered:\n"
-"\n"
-" [%s %s]\n"
-"\n"
-"already exists as a drug product."
-msgstr ""
-
-msgid ""
-"You have not selected any substances\n"
-"as drug components.\n"
-"\n"
-"Without components you will not be able to\n"
-"use this drug for documenting patient care.\n"
-"\n"
-"Are you sure you want to save\n"
-"it without components ?"
-msgstr ""
-
-msgid "Cannot save branded drug. Invalid or missing essential input."
-msgstr ""
-
-msgid ""
-"The brand name of the drug.\n"
-"\n"
-"Note: a brand name will need to be linked to\n"
-"one or more components before it can be used,\n"
-"except in the case of fake (generic) vaccines."
-msgstr ""
-
-#, fuzzy
-msgid "The medical aim for consuming this substance."
-msgstr "O objetivo do consumo desta substância."
-
-msgid "not tolerated:"
-msgstr ""
-
-msgid "discontinued due to allergy or intolerance"
-msgstr ""
-
-#, fuzzy
-msgid "Documented an allergy"
-msgstr "Administração de documentos ..."
+#, fuzzy
+msgid "Documented an allergy"
+msgstr "Administração de documentos ..."
 
 #, python-format
 msgid ""
@@ -13734,7 +14048,7 @@ msgstr "Não Aprovado"
 msgid "Substances consumed by the patient:"
 msgstr ""
 
-msgid "Intake"
+msgid "Showing consumable substances."
 msgstr ""
 
 #, fuzzy
@@ -13762,6 +14076,14 @@ msgstr "Desconhecida"
 msgid "GFR reported by path lab"
 msgstr ""
 
+#, fuzzy
+msgid "<no components>"
+msgstr "Componentes"
+
+#, fuzzy
+msgid "Adding substance intake entry"
+msgstr "Editar a entrada da atual substância."
+
 #, python-format
 msgid ""
 "The patient is already taking\n"
@@ -13772,10 +14094,6 @@ msgid ""
 "rather than document the intake twice."
 msgstr ""
 
-#, fuzzy
-msgid "Adding substance intake entry"
-msgstr "Editar a entrada da atual substância."
-
 msgid "Input incomplete/invalid for saving as substance intake."
 msgstr ""
 
@@ -13886,8 +14204,9 @@ msgstr "Prescrito Para"
 msgid "Add to medication list"
 msgstr "Lista de medicamentos"
 
-msgid "Duration / Until"
-msgstr ""
+#, fuzzy
+msgid "Timeframe"
+msgstr "Timeline"
 
 #, python-format
 msgid "%s <fake>"
@@ -13928,12 +14247,6 @@ msgstr "Local"
 msgid "eGFR:"
 msgstr ""
 
-#, fuzzy, python-format
-msgid "%s%s%s (%s ago)"
-msgstr ""
-"%s: %s by %.8s\n"
-"%s"
-
 #, python-format
 msgid "eGFR: %.1f (%s)"
 msgstr ""
@@ -14102,14 +14415,21 @@ msgid ""
 "\n"
 " [%s]\n"
 "\n"
-"is not empty. Do you want to use it for saving the\n"
-"export area documents into, nevertheless ?\n"
+"already contains files. Do you still want to save the\n"
+"selected export area documents into that directory ?\n"
 "\n"
-"(this can be useful for including external documents)\n"
+"(this is useful for including the external documents\n"
+" already stored in or below this directory)\n"
 "\n"
 "[NO] will create a subdirectory for you and use that."
 msgstr ""
 
+msgid ""
+"Create descriptive metadata files\n"
+"and save them alongside the\n"
+"selected export area documents ?"
+msgstr ""
+
 #, fuzzy, python-format
 msgid ""
 "Saved to [%s]:\n"
@@ -14348,10 +14668,6 @@ msgid "This praxis"
 msgstr "Sua revisão"
 
 #, fuzzy
-msgid "Hospital stay"
-msgstr "População"
-
-#, fuzzy
 msgid "Bill receiver"
 msgstr "Selecionando paciente"
 
@@ -14390,10 +14706,54 @@ msgstr "Administrar descrições de documentos"
 msgid "Select the episode under which to file the document ..."
 msgstr ""
 
+msgid "Cannot create new document."
+msgstr ""
+
+msgid "saving document"
+msgstr ""
+
 #, python-format
 msgid "Imported new document from %s."
 msgstr ""
 
+msgid "Successfully saved new document."
+msgstr ""
+
+msgid "Successfully saved the new document."
+msgstr ""
+
+#, python-format
+msgid ""
+"The reference ID for the new document is:\n"
+"\n"
+" <%s>\n"
+"\n"
+"You probably want to write it down on the\n"
+"original documents.\n"
+"\n"
+"If you don't care about the ID you can switch\n"
+"off this message in the GNUmed configuration.\n"
+msgstr ""
+
+#, fuzzy
+msgid "Saving document"
+msgstr "Apagando documento"
+
+#, python-format
+msgid ""
+"Successfully imported files as document.\n"
+"\n"
+"Do you want to delete imported files from the filesystem ?\n"
+"\n"
+" %s\n"
+"\n"
+"Note that temporary files will be deleted anyway."
+msgstr ""
+
+#, fuzzy
+msgid "Removing files"
+msgstr "Removendo endereço"
+
 msgid "Enter a comment on the document."
 msgstr ""
 
@@ -14514,15 +14874,17 @@ msgstr ""
 msgid "Acquiring images"
 msgstr ""
 
+msgid "directory dropped on client"
+msgstr ""
+
+msgid "file dropped on client"
+msgstr ""
+
 #, fuzzy
 msgid "other documents"
 msgstr "Organizar documentos por"
 
-#, python-format
-msgid "part %s: %s"
-msgstr ""
-
-msgid "saving document"
+msgid "path"
 msgstr ""
 
 msgid "No parts to save. Really save an empty document as a reference ?"
@@ -14567,17 +14929,25 @@ msgstr ""
 msgid "acquiring page"
 msgstr ""
 
+msgid "captured by imaging device"
+msgstr ""
+
 msgid "Choose a file"
 msgstr ""
 
 msgid "all files (Win)"
 msgstr "todos os arquivos (Win)"
 
-msgid "You must select a part before you can view it."
+msgid "picked from storage media"
 msgstr ""
 
-msgid "displaying part"
-msgstr ""
+#, fuzzy
+msgid "pasted from clipboard"
+msgstr "Mover o paciente para cima."
+
+#, fuzzy
+msgid "No part selected for viewing."
+msgstr "Editar os itens selecionados na lista acima"
 
 #, python-format
 msgid ""
@@ -14585,45 +14955,12 @@ msgid ""
 "%s"
 msgstr ""
 
-msgid "You must select a part before you can delete it."
-msgstr ""
-
-msgid "deleting part"
-msgstr ""
-
-#, python-format
-msgid ""
-"The part has successfully been removed from the document.\n"
-"\n"
-"Do you also want to permanently delete the file\n"
-"\n"
-" [%s]\n"
-"\n"
-"from which this document part was loaded ?\n"
-"\n"
-"If it is a temporary file for a page you just scanned\n"
-"this makes a lot of sense. In other cases you may not\n"
-"want to lose the file.\n"
-"\n"
-"Pressing [YES] will permanently remove the file\n"
-"from your computer.\n"
-msgstr ""
-
-msgid "Removing document part"
-msgstr ""
-
-#, python-format
-msgid ""
-"Cannot delete part in file [%s].\n"
-"\n"
-"You may not have write access to it."
-msgstr ""
-
-msgid "Cannot create new document."
+msgid "displaying part"
 msgstr ""
 
-msgid "Cannot update document metadata."
-msgstr ""
+#, fuzzy
+msgid "No part selected for removal."
+msgstr "Editar os itens selecionados na lista acima"
 
 msgid "Cannot add document description."
 msgstr ""
@@ -14631,28 +14968,13 @@ msgstr ""
 msgid "Error setting \"reviewed\" status of new document."
 msgstr ""
 
-msgid "Successfully saved the new document."
-msgstr ""
-
-#, python-format
+#, fuzzy, python-format
 msgid ""
-"The reference ID for the new document is:\n"
-"\n"
-" <%s>\n"
-"\n"
-"You probably want to write it down on the\n"
-"original documents.\n"
+"Source: %s\n"
+"File: %s\n"
 "\n"
-"If you don't care about the ID you can switch\n"
-"off this message in the GNUmed configuration."
-msgstr ""
-
-#, fuzzy
-msgid "Saving document"
-msgstr "Apagando documento"
-
-msgid "Successfully saved new document."
-msgstr ""
+"%s"
+msgstr "Fonte: %s\n"
 
 msgid "Document part does not seem to exist in database !"
 msgstr ""
@@ -14668,10 +14990,6 @@ msgstr "Um comentário sobre esse paciente."
 msgid "Showing documents."
 msgstr "Apagando documento"
 
-#, fuzzy
-msgid "Generated"
-msgstr "Generalizado"
-
 msgid "Ref #"
 msgstr ""
 
@@ -14939,6 +15257,157 @@ msgstr "Você realmente quer apagar esse documento?"
 msgid "Deleting document"
 msgstr "Apagando documento"
 
+#, fuzzy
+msgid "Study date"
+msgstr "Exsudato"
+
+#, fuzzy
+msgid "Study time"
+msgstr "Iniciar Nova"
+
+msgid "Method"
+msgstr ""
+
+#, fuzzy
+msgid "Body part"
+msgstr "mostrar porção"
+
+#, fuzzy
+msgid "Time"
+msgstr "Timeline"
+
+msgid "Cannot connect without port (try 8042)."
+msgstr ""
+
+#, python-format
+msgid "Connect to [%s] @ port %s as \"%s\"."
+msgstr ""
+
+#, fuzzy
+msgid "Cannot connect to PACS."
+msgstr "não é possível conectar com o serviço [%s]"
+
+#, python-format
+msgid "PACS: Orthanc \"%s\" (AET \"%s\", Version %s, DB v%s)"
+msgstr ""
+
+#, python-format
+msgid "GNUmed patient: %s (generic PACS ID)"
+msgstr ""
+
+#, python-format
+msgid "GNUmed patient: \"%(value)s\" @ [%(issuer)s] (stored PACS ID)"
+msgstr ""
+
+msgid "PACS: no patients with matching IDs found"
+msgstr ""
+
+msgid ""
+"PACS: more than one patient with matching IDs found, carefully check studies"
+msgstr ""
+
+#, python-format
+msgid "%s series"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "%%s (%s series)"
+msgstr "%s (%s desse ano)"
+
+msgid "no studies"
+msgstr ""
+
+#, python-format
+msgid "%s studies"
+msgstr ""
+
+msgid "Exporting DICOM studies"
+msgstr ""
+
+#, fuzzy
+msgid "Unable to export selected studies."
+msgstr "obrigatório selecionar endereço"
+
+#, python-format
+msgid ""
+"The DICOM studies are %s in compressed size.\n"
+"\n"
+"Really copy to export area ?"
+msgstr ""
+
+#, python-format
+msgid "DICOM studies of [%s] from Orthanc PACS \"%s\" (AET \"%s\")"
+msgstr ""
+
+#, fuzzy
+msgid "Select the directory into which to save the DICOM studies."
+msgstr "Selecione o episódio para o qual você quer mover a descrição"
+
+msgid "Saving DICOM studies"
+msgstr ""
+
+#, fuzzy
+msgid "Unable to save selected studies."
+msgstr "obrigatório selecionar endereço"
+
+#, fuzzy
+msgid "Unable to export studies."
+msgstr "Falha ao alocar paciente ao regime de %s"
+
+#, python-format
+msgid "All DICOM studies of [%s] from Orthanc PACS \"%s\" (AET \"%s\")"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "%s%s images"
+msgstr "%s atrás"
+
+#, fuzzy
+msgid "Select the directory from which to recursively upload DICOM files."
+msgstr "Selecione o episódio para o qual você quer mover a descrição"
+
+msgid "Delete the uploaded DICOM files now ?"
+msgstr ""
+
+msgid ""
+"Some files have not been uploaded.\n"
+"\n"
+"Do you want to delete those DICOM files which have been sent to the PACS "
+"successfully ?"
+msgstr ""
+
+#, fuzzy
+msgid "Uploading DICOM files"
+msgstr "carregando arquivo xDT"
+
+#, fuzzy
+msgid "Editing Orthanc content"
+msgstr "Editar os detalhes da consulta abaixo:"
+
+#, fuzzy
+msgid "Patient ID"
+msgstr "Paciente"
+
+#, fuzzy
+msgid "Birth date"
+msgstr "Exsudato"
+
+msgid "Orthanc"
+msgstr ""
+
+#, fuzzy
+msgid "Modifying patient ID"
+msgstr "Agrupar pacientes"
+
+#, python-format
+msgid ""
+"Really modify %s patient(s) to have the new patient ID\n"
+"\n"
+" [%s]\n"
+"\n"
+"stored in the Orthanc DICOM server ?"
+msgstr ""
+
 #, python-format
 msgid "You are logged in as %s%s.%s (%s). DB account <%s>."
 msgstr "Você está logado como %s%s.%s (%s). Conta BD <%s>."
@@ -15004,6 +15473,14 @@ msgstr "Lista de medicamentos"
 msgid "Select the measurements panel to show in the medications plugin."
 msgstr ""
 
+#, fuzzy
+msgid "General measurements"
+msgstr "Lista de medicamentos"
+
+#, fuzzy
+msgid "Select the measurements panel to show in the top pane."
+msgstr "Um comentário sobre esse paciente."
+
 msgid "Review dialog"
 msgstr "Janela de revisão"
 
@@ -15099,6 +15576,12 @@ msgstr ""
 msgid "Configure auto-opening editors for recent problems."
 msgstr ""
 
+msgid "SOAP fields"
+msgstr ""
+
+msgid "Configure SOAP editor - individual SOAP fields vs text editor like"
+msgstr ""
+
 msgid "Progress notes handling ..."
 msgstr "Editor de Evolução ..."
 
@@ -15120,6 +15603,9 @@ msgstr ""
 msgid "URL for measurements encyclopedia."
 msgstr ""
 
+msgid "Drug data source"
+msgstr ""
+
 msgid "Select the drug data source."
 msgstr ""
 
@@ -15513,6 +15999,14 @@ msgstr ""
 msgid "Manage dynamic hints suppressed in this patient."
 msgstr ""
 
+#, fuzzy
+msgid "Substance abuse"
+msgstr "Substâncias"
+
+#, fuzzy
+msgid "Manage substance abuse documentation of this patient."
+msgstr "Um comentário sobre esse paciente."
+
 msgid "&Add / Edit ..."
 msgstr ""
 
@@ -15537,28 +16031,65 @@ msgstr ""
 msgid "Show a high-level statistic summary of the EMR."
 msgstr ""
 
-msgid "Text document"
-msgstr "Documento de Texto"
-
-msgid "Export the EMR of the active patient into a text file"
-msgstr "Exportar o Prontuário do paciente ativo em um arquivo de texto"
-
-msgid "Journal"
-msgstr "Diário"
+msgid "Journal (encounters) to file"
+msgstr ""
 
+#, fuzzy
 msgid ""
-"Export the EMR of the active patient as a chronological journal into a text "
+"Save the EMR of the active patient as a chronological journal into a text "
 "file"
 msgstr ""
 "Exportar o Prontuário do paciente ativo como um diário cronológico para um "
 "arquivo de texto"
 
+#, fuzzy
+msgid "Journal (encounters) to export area"
+msgstr "Adicionando novo nome"
+
+#, fuzzy
+msgid ""
+"Copy EMR of the active patient as a chronological journal into export area"
+msgstr ""
+"Exportar o Prontuário do paciente ativo como um diário cronológico para um "
+"arquivo de texto"
+
+msgid "Journal (mod time) to file"
+msgstr ""
+
+#, fuzzy
+msgid ""
+"Save the EMR of the active patient as journal by last modification time into "
+"a text file"
+msgstr ""
+"Exportar o Prontuário do paciente ativo como um diário cronológico para um "
+"arquivo de texto"
+
+#, fuzzy
+msgid "Journal (mod time) to export area"
+msgstr "Adicionando novo nome"
+
+#, fuzzy
+msgid ""
+"Copy EMR of the active patient as journal by last modification time into "
+"export area"
+msgstr ""
+"Exportar o Prontuário do paciente ativo como um diário cronológico para um "
+"arquivo de texto"
+
+msgid "Text document"
+msgstr "Documento de Texto"
+
+#, fuzzy
+msgid "Save the EMR of the active patient into a text file"
+msgstr "Exportar o Prontuário do paciente ativo em um arquivo de texto"
+
 msgid "MEDISTAR import format"
 msgstr "Formato para importação pelo MEDISTAR"
 
+#, fuzzy
 msgid ""
-"GNUmed -> MEDISTAR. Export progress notes of active patient's active "
-"encounter into a text file."
+"GNUmed -> MEDISTAR. Save progress notes of active patient's active encounter "
+"into a text file."
 msgstr ""
 "GNUmed -> MEDISTAR. Exportar as notas de evolução da consulta ativa do "
 "paciente atual para um arquivo de texto."
@@ -15740,19 +16271,44 @@ msgstr "Salvar uma screenshot (imagem da tela atual) desse cliente GNUmed."
 msgid "Show log file"
 msgstr "Mostrar arquivo de Log"
 
-msgid "Show the log file in text viewer."
+#, fuzzy
+msgid "Show log file in text viewer."
 msgstr "Mostre o arquivo de log no visualizador de texto"
 
 msgid "Backup log file"
 msgstr "Faça um backup do arquivo de log"
 
-msgid "Backup the content of the log to another file."
+#, fuzzy
+msgid "Backup content of the log to another file."
 msgstr "Faça um backup do conteúdo do log para outro arquivo."
 
 msgid "Email log file"
 msgstr ""
 
-msgid "Send the log file to the authors for help."
+msgid "Send log file to the authors for help."
+msgstr ""
+
+#, fuzzy
+msgid "Browse tmp dir"
+msgstr "Agrupar pacientes"
+
+#, python-format
+msgid "Browse temporary directory [%s]."
+msgstr ""
+
+#, fuzzy
+msgid "Browse work dir"
+msgstr "Agrupar pacientes"
+
+#, python-format
+msgid "Browse user working directory [%s]."
+msgstr ""
+
+msgid "Browse internal work dir"
+msgstr ""
+
+#, python-format
+msgid "Browse internal working directory [%s]."
 msgstr ""
 
 msgid "Bug tracker"
@@ -16169,6 +16725,20 @@ msgid "No, only auto-open one editor for a new, unassociated problem."
 msgstr ""
 
 msgid ""
+"When editing progress notes, do you want GNUmed to\n"
+"show individual fields for each of the SOAP categories\n"
+"or do you want to use a text-editor like field for\n"
+"all SOAP categories which can then be set per line\n"
+"of input ?"
+msgstr ""
+
+msgid "Yes, show a dedicated field per SOAP category."
+msgstr ""
+
+msgid "No, use one field for all SOAP categories."
+msgstr ""
+
+msgid ""
 "When a patient is activated GNUmed can\n"
 "be told to switch to a specific plugin.\n"
 "\n"
@@ -16246,790 +16816,1212 @@ msgid ""
 " started, or else GNUmed will ask you.)\n"
 msgstr ""
 
-msgid ""
-"When a patient is activated GNUmed checks the\n"
-"age of the most recent encounter.\n"
-"\n"
-"If that encounter is older than this age\n"
-"GNUmed will always start a new encounter.\n"
-"\n"
-"(If it is very recent the existing encounter\n"
-" is continued, or else GNUmed will ask you.)\n"
+msgid ""
+"When a patient is activated GNUmed checks the\n"
+"age of the most recent encounter.\n"
+"\n"
+"If that encounter is older than this age\n"
+"GNUmed will always start a new encounter.\n"
+"\n"
+"(If it is very recent the existing encounter\n"
+" is continued, or else GNUmed will ask you.)\n"
+msgstr ""
+
+msgid ""
+"At any time there can only be one open (ongoing)\n"
+"episode for each health issue.\n"
+"\n"
+"When you try to open (add data to) an episode on a health\n"
+"issue GNUmed will check for an existing open episode on\n"
+"that issue. If there is any it will check the age of that\n"
+"episode. The episode is closed if it has been dormant (no\n"
+"data added, that is) for the period of time (in days) you\n"
+"set here.\n"
+"\n"
+"If the existing episode hasn't been dormant long enough\n"
+"GNUmed will consult you what to do.\n"
+"\n"
+"Enter maximum episode dormancy in DAYS:"
+msgstr ""
+"Só pode haver um episódio (ativo) para qualquer problema de saúde.\n"
+"\n"
+"\n"
+"Quando tentar abrir (adicionar dados) a um episódio de um problema\n"
+"de saúde o GNUmed checará se existe um episódio aberto para esse \n"
+"problema. Se existir consultará a idade daquele episódio. O episódio \n"
+"será fechado se estiver suspenso (i.e. nenhum dado adicionado) pelo\n"
+"período de tempo (em dias) que será configurado aqui.\n"
+"\n"
+"\n"
+"Se um episódio não esteve suspenso por tempo suficiente o GNUmed\n"
+"perguntará o que deve fazer.\n"
+"\n"
+"Configure o número máximo de DIAS para suspensão de episódios:"
+
+msgid ""
+"If you want the GNUmed developers to be able to\n"
+"contact you directly - rather than via the public\n"
+"mailing list only - you can enter your preferred\n"
+"email address here.\n"
+"\n"
+"This address will then be included with bug reports\n"
+"or contributions to the GNUmed community you may\n"
+"choose to send from within the GNUmed client.\n"
+"\n"
+"Leave this blank if you wish to stay anonymous.\n"
+msgstr ""
+
+msgid "Please enter your email address."
+msgstr "Por favor informe seu endereço de email."
+
+msgid ""
+"Do you want GNUmed to check for updates at startup ?\n"
+"\n"
+"You will still need your system administrator to\n"
+"actually install any updates for you.\n"
+msgstr ""
+
+msgid "Yes, check for updates at startup."
+msgstr ""
+
+msgid "No, do not check for updates at startup."
+msgstr ""
+
+msgid ""
+"When checking for updates do you want GNUmed to\n"
+"look for bug fix updates only or do you want to\n"
+"know about features updates, too ?\n"
+"\n"
+"Minor updates (x.y.z.a -> x.y.z.b) contain bug fixes\n"
+"only. They can usually be installed without much\n"
+"preparation. They never require a database upgrade.\n"
+"\n"
+"Major updates (x.y.a -> x..y.b or y.a -> x.b) come\n"
+"with new features. They need more preparation and\n"
+"often require a database upgrade.\n"
+"\n"
+"You will still need your system administrator to\n"
+"actually install any updates for you.\n"
+msgstr ""
+
+msgid "Yes, check for feature updates, too."
+msgstr ""
+
+msgid "No, check for bug-fix updates only."
+msgstr ""
+
+msgid ""
+"GNUmed can check for new releases being available. To do\n"
+"so it needs to load version information from an URL.\n"
+"\n"
+"The default URL is:\n"
+"\n"
+" http://www.gnumed.de/downloads/gnumed-versions.txt\n"
+"\n"
+"but you can configure any other URL locally. Note\n"
+"that you must enter the location as a valid URL.\n"
+"Depending on the URL the client will need online\n"
+"access when checking for updates."
+msgstr ""
+
+msgid ""
+"Do you want to allow saving of new documents without\n"
+"any parts or do you want GNUmed to enforce that they\n"
+"contain at least one part before they can be saved ?\n"
+"\n"
+"Part-less documents can be useful if you want to build\n"
+"up an index of, say, archived documents but do not\n"
+"want to scan in all the pages contained therein."
+msgstr ""
+
+msgid "Yes, allow saving documents without any parts."
+msgstr ""
+
+msgid "No, require documents to have at least one part."
+msgstr ""
+
+msgid ""
+"After importing a new document do you\n"
+"want GNUmed to display the unique ID\n"
+"it auto-generated for that document ?\n"
+"\n"
+"This can be useful if you want to label the\n"
+"originals with that ID for later identification."
+msgstr ""
+
+msgid "Yes, display the ID generated for the new document after importing."
+msgstr ""
+
+msgid ""
+"No, do not display the ID generated for the new document after importing."
+msgstr ""
+
+msgid ""
+"After importing a new document do you\n"
+"want GNUmed to generate a unique ID\n"
+"(UUID) for that document ?\n"
+"\n"
+"This can be useful if you want to label the\n"
+"originals with that ID for later identification."
+msgstr ""
+
+msgid "Yes, generate a UUID for the new document after importing."
+msgstr ""
+
+msgid "No, do not generate a UUID for the new document after importing."
+msgstr ""
+
+msgid ""
+"GNUmed can show the document review dialog after\n"
+"calling the appropriate viewer for that document.\n"
+"\n"
+"Select the conditions under which you want\n"
+"GNUmed to do so:\n"
+"\n"
+" 0: never display the review dialog\n"
+" 1: always display the dialog\n"
+" 2: only if there is no previous review by me\n"
+" 3: only if there is no previous review at all\n"
+" 4: only if there is no review by the responsible reviewer\n"
+"\n"
+"Note that if a viewer is configured to not block\n"
+"GNUmed during document display the review dialog\n"
+"will actually appear in parallel to the viewer."
+msgstr ""
+
+msgid "Addresses (likely slow)"
+msgstr ""
+
+msgid "Branded drugs (as marketed)"
+msgstr ""
+
+msgid "Dynamic automatic hints"
+msgstr ""
+
+msgid "Codes and their respective terms"
+msgstr ""
+
+#, fuzzy
+msgid "Communication channel types"
+msgstr "Removendo canal de comunicações."
+
+msgid "Components of branded drugs (substances in brands)"
+msgstr ""
+
+msgid "Diagnostic organizations (path labs, ...)"
+msgstr ""
+
+msgid "Document templates (forms, letters, plots, ...)"
+msgstr ""
+
+msgid "Document types"
+msgstr ""
+
+msgid "Encounter types"
+msgstr ""
+
+msgid "Keyword based text expansion macros"
+msgstr ""
+
+msgid "Meta test/measurement types"
+msgstr ""
+
+msgid "Organizations with their units, addresses, and comm channels"
+msgstr ""
+
+msgid "Patient tags"
+msgstr ""
+
+msgid "Provinces (counties, territories, states, regions, ...)"
+msgstr ""
+
+msgid "String translations in the database"
+msgstr ""
+
+msgid "Test/measurement types"
+msgstr ""
+
+msgid "Vaccination targets (conditions known to be preventable by vaccination)"
+msgstr ""
+
+msgid "Vaccines"
+msgstr ""
+
+msgid "Workplace profiles (which plugins to load)"
+msgstr ""
+
+msgid "Consumable substances"
+msgstr ""
+
+msgid "Billable items"
+msgstr ""
+
+#, fuzzy
+msgid "Reference data sources"
+msgstr "Informação referente"
+
+msgid "Test/measurement panels/profiles"
+msgstr ""
+
+msgid "Master data management"
+msgstr ""
+
+msgid "Select the list you want to manage:"
+msgstr ""
+
+msgid "No DICOM viewer found."
+msgstr ""
+
+msgid "risk assessment"
+msgstr ""
+
+msgid "cardiovascular risk assessment"
+msgstr ""
+
+#, python-format
+msgid "[arriba] XML result not found in [%s]"
+msgstr ""
+
+msgid "ACS risk assessment calculator not configured."
+msgstr ""
+
+#, python-format
+msgid "Cannot run [%s] !"
+msgstr ""
+
+#, python-format
+msgid "There was a problem accessing the [arriba] result in [%s] !"
+msgstr ""
+
+msgid "[-9999]: <access violation test error>"
+msgstr ""
+
+msgid ""
+"This is a deliberate AccessDenied exception thrown to test the handling of "
+"access violations by means of a decorator."
+msgstr ""
+
+msgid "testing access check for non-existant <admin> role"
+msgstr ""
+
+msgid ""
+"This is a deliberate AccessDenied exception. You should not see this message "
+"because the role is checked in a decorator."
+msgstr ""
+
+msgid "pgAdmin III not found."
+msgstr ""
+
+msgid "Error reloading hook script."
+msgstr ""
+
+msgid "Save current log as..."
+msgstr ""
+
+msgid "log files"
+msgstr ""
+
+#, python-format
+msgid "Log file backed up as [%s]."
+msgstr ""
+
+msgid "Cannot start new encounter. No active patient."
+msgstr "Não foi possível iniciar nova consulta. Não há um paciente ativo."
+
+msgid "Cannot add health issue. No active patient."
+msgstr "Não foi possível adicionar problema de saúde. Não há paciente ativo."
+
+#, fuzzy
+msgid "Cannot add episode. No active patient."
+msgstr "Não foi possível adicionar problema de saúde. Não há paciente ativo."
+
+msgid "Cannot add medication. No active patient."
+msgstr ""
+
+msgid "Cannot add allergy. No active patient."
+msgstr ""
+
+msgid "Cannot manage performed procedures. No active patient."
+msgstr ""
+
+#, fuzzy
+msgid "Cannot manage hospitalizations. No active patient."
+msgstr "Não foi possível adicionar problema de saúde. Não há paciente ativo."
+
+#, fuzzy
+msgid "Cannot manage external care. No active patient."
+msgstr "Não foi possível adicionar problema de saúde. Não há paciente ativo."
+
+msgid "Cannot edit occupation. No active patient."
+msgstr ""
+
+#, fuzzy
+msgid "manage vaccinations"
+msgstr "Últimas vacinas"
+
+msgid "Cannot add vaccinations. No active patient."
+msgstr ""
+
+#, fuzzy
+msgid "manage family history"
+msgstr "hsitória médica pregressa"
+
+#, fuzzy
+msgid "Cannot manage family history. No active patient."
+msgstr "Não foi possível adicionar problema de saúde. Não há paciente ativo."
+
+#, fuzzy
+msgid "Cannot manage measurements. No active patient."
+msgstr "Não foi possível adicionar problema de saúde. Não há paciente ativo."
+
+msgid "calculate EDC"
+msgstr ""
+
+#, fuzzy
+msgid "manage suppressed hints"
+msgstr "Administrar as descrições."
+
+#, fuzzy
+msgid "Cannot manage suppressed hints. No active patient."
+msgstr "Não foi possível adicionar problema de saúde. Não há paciente ativo."
+
+#, fuzzy
+msgid "Cannot manage smoking status. No active patient."
+msgstr "Não foi possível adicionar problema de saúde. Não há paciente ativo."
+
+msgid "Cannot show EMR summary. No active patient."
+msgstr "Não é possível mostrar resumo de Prontuário. Não há paciente ativo."
+
+msgid "EMR Summary"
+msgstr "Resumo do Prontuário"
+
+#, fuzzy
+msgid "Cannot export EMR journal by last modification time. No active patient."
+msgstr "Não é possível exportar Prontuário Eletrônico. Não há paciente ativo."
+
+msgid "journal_by_last_mod_time"
+msgstr ""
+
+msgid "Save patient's EMR journal as..."
+msgstr ""
+
+msgid "Error exporting patient EMR as journal by last modification time."
+msgstr ""
+
+msgid "EMR journal export"
+msgstr ""
+
+#, python-format
+msgid ""
+"Successfully exported EMR as journal by last modification time into file "
+"[%s]."
+msgstr ""
+
+msgid "Cannot export EMR journal. No active patient."
+msgstr ""
+
+msgid "emr-journal"
+msgstr "pme-diário"
+
+msgid "Error exporting patient EMR as chronological journal."
+msgstr ""
+
+#, python-format
+msgid "Successfully exported EMR as chronological journal into file [%s]."
+msgstr ""
+
+msgid "EMR journal by last modification time"
+msgstr ""
+
+#, fuzzy
+msgid "EMR journal by encounter"
+msgstr "Consulta Atual"
+
+msgid "Cannot add tag to person. No active patient."
+msgstr ""
+
+#, python-format
+msgid "Edit the comment on tag [%s]"
+msgstr ""
+
+msgid "Editing tag comment"
+msgstr ""
+
+msgid "Cannot export patient as GDT. No active patient."
+msgstr ""
+
+msgid "Exported demographics as GDT to clipboard."
+msgstr ""
+
+#, fuzzy
+msgid "Cannot export patient as VCARD. No active patient."
+msgstr "Não é possível exportar Prontuário Eletrônico. Não há paciente ativo."
+
+msgid "Exported demographics as VCARD to clipboard."
+msgstr ""
+
+#, fuzzy
+msgid "Cannot export patient as XML (LinuxMedNews). No active patient."
+msgstr "Não é possível exportar Prontuário Eletrônico. Não há paciente ativo."
+
+#, python-format
+msgid "Exported demographics to XML file [%s]."
+msgstr ""
+
+#, python-format
+msgid "Exported demographics to GDT file [%s]."
+msgstr ""
+
+#, python-format
+msgid "Exported demographics to VCARD file [%s]."
 msgstr ""
 
-msgid ""
-"At any time there can only be one open (ongoing)\n"
-"episode for each health issue.\n"
-"\n"
-"When you try to open (add data to) an episode on a health\n"
-"issue GNUmed will check for an existing open episode on\n"
-"that issue. If there is any it will check the age of that\n"
-"episode. The episode is closed if it has been dormant (no\n"
-"data added, that is) for the period of time (in days) you\n"
-"set here.\n"
-"\n"
-"If the existing episode hasn't been dormant long enough\n"
-"GNUmed will consult you what to do.\n"
-"\n"
-"Enter maximum episode dormancy in DAYS:"
+msgid "Cannot add staff member. No active patient."
+msgstr ""
+
+msgid "Cannot delete patient. No patient active."
 msgstr ""
-"Só pode haver um episódio (ativo) para qualquer problema de saúde.\n"
-"\n"
-"\n"
-"Quando tentar abrir (adicionar dados) a um episódio de um problema\n"
-"de saúde o GNUmed checará se existe um episódio aberto para esse \n"
-"problema. Se existir consultará a idade daquele episódio. O episódio \n"
-"será fechado se estiver suspenso (i.e. nenhum dado adicionado) pelo\n"
-"período de tempo (em dias) que será configurado aqui.\n"
-"\n"
-"\n"
-"Se um episódio não esteve suspenso por tempo suficiente o GNUmed\n"
-"perguntará o que deve fazer.\n"
-"\n"
-"Configure o número máximo de DIAS para suspensão de episódios:"
 
 msgid ""
-"If you want the GNUmed developers to be able to\n"
-"contact you directly - rather than via the public\n"
-"mailing list only - you can enter your preferred\n"
-"email address here.\n"
-"\n"
-"This address will then be included with bug reports\n"
-"or contributions to the GNUmed community you may\n"
-"choose to send from within the GNUmed client.\n"
-"\n"
-"Leave this blank if you wish to stay anonymous.\n"
+"You have to manually close this window to finalize shutting down GNUmed."
 msgstr ""
 
-msgid "Please enter your email address."
-msgstr "Por favor informe seu endereço de email."
+msgid "This is so that you can inspect the console output at your leisure."
+msgstr ""
 
-msgid ""
-"Do you want GNUmed to check for updates at startup ?\n"
-"\n"
-"You will still need your system administrator to\n"
-"actually install any updates for you.\n"
+msgid "no patient"
 msgstr ""
 
-msgid "Yes, check for updates at startup."
+#, python-format
+msgid "Saved screenshot to file [%s]."
 msgstr ""
 
-msgid "No, do not check for updates at startup."
+msgid "Python version check"
 msgstr ""
 
+#, python-format
 msgid ""
-"When checking for updates do you want GNUmed to\n"
-"look for bug fix updates only or do you want to\n"
-"know about features updates, too ?\n"
-"\n"
-"Minor updates (x.y.z.a -> x.y.z.b) contain bug fixes\n"
-"only. They can usually be installed without much\n"
-"preparation. They never require a database upgrade.\n"
+"You are running Python version\n"
+" %s\n"
 "\n"
-"Major updates (x.y.a -> x..y.b or y.a -> x.b) come\n"
-"with new features. They need more preparation and\n"
-"often require a database upgrade.\n"
+"However, GNUmed wants Python 2.7 to\n"
+"facilitate migration to Python 3.\n"
 "\n"
-"You will still need your system administrator to\n"
-"actually install any updates for you.\n"
+"Please upgrade your Python interpreter !"
 msgstr ""
 
-msgid "Yes, check for feature updates, too."
+msgid "GNUmed client"
 msgstr ""
 
-msgid "No, check for bug-fix updates only."
+msgid "GNUmed stdout/stderr window"
 msgstr ""
 
-msgid ""
-"GNUmed can check for new releases being available. To do\n"
-"so it needs to load version information from an URL.\n"
-"\n"
-"The default URL is:\n"
-"\n"
-" http://www.gnumed.de/downloads/gnumed-versions.txt\n"
-"\n"
-"but you can configure any other URL locally. Note\n"
-"that you must enter the location as a valid URL.\n"
-"Depending on the URL the client will need online\n"
-"access when checking for updates."
+msgid "redirecting STDOUT/STDERR to this log window"
 msgstr ""
 
+#, python-format
 msgid ""
-"Do you want to allow saving of new documents without\n"
-"any parts or do you want GNUmed to enforce that they\n"
-"contain at least one part before they can be saved ?\n"
+"The database account [%s] cannot be used as a\n"
+"staff member login for GNUmed. There was an\n"
+"error retrieving staff details for it.\n"
 "\n"
-"Part-less documents can be useful if you want to build\n"
-"up an index of, say, archived documents but do not\n"
-"want to scan in all the pages contained therein."
+"Please ask your administrator for help.\n"
 msgstr ""
 
-msgid "Yes, allow saving documents without any parts."
+msgid "Checking access permissions"
 msgstr ""
 
-msgid "No, require documents to have at least one part."
+#, python-format
+msgid "Database <%s> on <%s>"
 msgstr ""
 
-msgid ""
-"After importing a new document do you\n"
-"want GNUmed to display the unique ID\n"
-"it auto-generated for that document ?\n"
-"\n"
-"This can be useful if you want to label the\n"
-"originals with that ID for later identification."
+#, python-format
+msgid "Branch \"%s\" of praxis \"%s\"\n"
 msgstr ""
 
-msgid "Yes, display the ID generated for the new document after importing."
+msgid "Verifying database"
 msgstr ""
 
-msgid ""
-"No, do not display the ID generated for the new document after importing."
+msgid "Connect"
 msgstr ""
 
-msgid ""
-"After importing a new document do you\n"
-"want GNUmed to generate a unique ID\n"
-"(UUID) for that document ?\n"
-"\n"
-"This can be useful if you want to label the\n"
-"originals with that ID for later identification."
+msgid "Yes, connect to this database."
 msgstr ""
 
-msgid "Yes, generate a UUID for the new document after importing."
+msgid "Disconnect"
 msgstr ""
 
-msgid "No, do not generate a UUID for the new document after importing."
+msgid "No, do not connect to this database."
 msgstr ""
 
+#, python-format
 msgid ""
-"GNUmed can show the document review dialog after\n"
-"calling the appropriate viewer for that document.\n"
-"\n"
-"Select the conditions under which you want\n"
-"GNUmed to do so:\n"
+"Cannot find configuration file in any of:\n"
 "\n"
-" 0: never display the review dialog\n"
-" 1: always display the dialog\n"
-" 2: only if there is no previous review by me\n"
-" 3: only if there is no previous review at all\n"
-" 4: only if there is no review by the responsible reviewer\n"
+" %s\n"
+"You may need to use the comand line option\n"
 "\n"
-"Note that if a viewer is configured to not block\n"
-"GNUmed during document display the review dialog\n"
-"will actually appear in parallel to the viewer."
+"\t--conf-file=<FILE>"
 msgstr ""
 
-msgid "Addresses (likely slow)"
+msgid "Checking configuration files"
 msgstr ""
 
-msgid "Branded drugs (as marketed)"
+msgid "GNUmed startup"
 msgstr ""
 
-msgid "Dynamic automatic hints"
+#, python-format
+msgid ""
+"The currently selected database language ('%s') does\n"
+"not match the current system language ('%s').\n"
+"\n"
+"Do you want to set the database language to '%s' ?\n"
 msgstr ""
 
-msgid "Codes and their respective terms"
+msgid "Checking database language settings"
 msgstr ""
 
-#, fuzzy
-msgid "Communication channel types"
-msgstr "Removendo canal de comunicações."
+#, python-format
+msgid "Set your database language to [%s]."
+msgstr ""
 
-msgid "Components of branded drugs (substances in brands)"
+msgid "Don't set"
 msgstr ""
 
-msgid "Diagnostic organizations (path labs, ...)"
+msgid "Do not set your database language now."
 msgstr ""
 
-msgid "Document templates (forms, letters, plots, ...)"
+msgid "Remember to ignore language mismatch"
 msgstr ""
 
-msgid "Document types"
+#, python-format
+msgid ""
+"Checking this will make GNUmed remember your decision\n"
+"until the system language is changed.\n"
+"\n"
+"You can also reactivate this inquiry by removing the\n"
+"corresponding \"ignore\" option from the configuration file\n"
+"\n"
+" [%s]"
 msgstr ""
 
-msgid "Encounter types"
+#, fuzzy
+msgid "generic activity"
+msgstr "Genéricos"
+
+msgid "Access denied"
 msgstr ""
 
-msgid "Keyword based text expansion macros"
+#, python-format
+msgid ""
+"Your account is not set up to access this part of GNUmed:\n"
+"\n"
+"  [%s]"
 msgstr ""
 
-msgid "Meta test/measurement types"
+msgid "Save timeline as SVG image under..."
 msgstr ""
 
-msgid "Organizations with their units, addresses, and comm channels"
+#, fuzzy
+msgid "timeline image"
+msgstr "todos os arquivos"
+
+#, fuzzy
+msgid "timeline data"
+msgstr "Nenhum cronograma definido"
+
+msgid "Cannot change notebook tabs. No active patient."
 msgstr ""
 
-msgid "Patient tags"
+msgid "add plugin ..."
 msgstr ""
 
-msgid "Provinces (counties, territories, states, regions, ...)"
+msgid "Cannot activate Allergy Manager. No active patient."
 msgstr ""
 
-msgid "String translations in the database"
+msgid "RR ?"
 msgstr ""
 
-msgid "Test/measurement types"
+#, python-format
+msgid "BMI %s"
 msgstr ""
 
-msgid "Vaccination targets (conditions known to be preventable by vaccination)"
+msgid "BMI ?"
 msgstr ""
 
-msgid "Vaccines"
+msgid "GFR ?"
 msgstr ""
 
-msgid "Workplace profiles (which plugins to load)"
+#, python-format
+msgid "GFR %s"
 msgstr ""
 
-msgid "Consumable substances"
+#, python-format
+msgid "?EDC %s"
 msgstr ""
 
-msgid "Billable items"
+#, python-format
+msgid "EDC %s"
+msgstr ""
+
+msgid "<Age>"
 msgstr ""
 
 #, fuzzy
-msgid "Reference data sources"
-msgstr "Informação referente"
+msgid "no patient selected"
+msgstr "= selected =>"
+
+#, fuzzy, python-format
+msgid "Gender: %s (%s) - %s\n"
+msgstr "Consultas: %s (%s - %s):"
+
+#, fuzzy, python-format
+msgid "Born: %s\n"
+msgstr "Local"
+
+#, fuzzy, python-format
+msgid "Died: %s\n"
+msgstr "Fechado"
+
+#, fuzzy, python-format
+msgid "At age: %s\n"
+msgstr "Paciente"
 
-msgid "Test/measurement panels/profiles"
+msgid " (date of birth and age are estimated)\n"
 msgstr ""
 
-msgid "Master data management"
+#, python-format
+msgid "%(sex)s  %(dob)s (%(age)s today !)"
 msgstr ""
 
-msgid "Select the list you want to manage:"
+msgid ""
+"\n"
+"Today is the patient's birthday !\n"
+"\n"
 msgstr ""
 
-msgid "No DICOM viewer found."
+#, python-format
+msgid "Birthday: %s ago\n"
 msgstr ""
 
-msgid "risk assessment"
-msgstr ""
+#, fuzzy, python-format
+msgid "Birthday: in %s\n"
+msgstr "Lembrete de aniversário"
 
-msgid "cardiovascular risk assessment"
-msgstr ""
+#, fuzzy, python-format
+msgid "Age: %s\n"
+msgstr "Local"
 
 #, python-format
-msgid "[arriba] XML result not found in [%s]"
-msgstr ""
+msgid "last confirmed %s\n"
+msgstr "atualizado: %s\n"
 
-msgid "ACS risk assessment calculator not configured."
-msgstr ""
+#, python-format
+msgid "Comment (%s): %%s"
+msgstr "Comentário: %s"
 
 #, python-format
-msgid "Cannot run [%s] !"
+msgid " - expires %s"
 msgstr ""
 
 #, python-format
-msgid "There was a problem accessing the [arriba] result in [%s] !"
+msgid ""
+"Due for %s (since %s%s):\n"
+"%s%s\n"
+"Patient: %s\n"
+"Reminder by: %s"
 msgstr ""
 
-msgid "[-9999]: <access violation test error>"
-msgstr ""
+#, fuzzy
+msgid "Clinical reminder"
+msgstr "Contexto Clínico"
 
+#, fuzzy
+msgid "Adding automatic dynamic hint"
+msgstr "Apagando documento"
+
+#, fuzzy
+msgid "Editing automatic dynamic hint"
+msgstr "Apagando documento"
+
+#, fuzzy
+msgid "Deleting automatic dynamic hint"
+msgstr "Apagando documento"
+
+#, python-format
 msgid ""
-"This is a deliberate AcessDenied exception thrown to test the handling of "
-"access violations by means of a decorator."
+"Really delete this dynamic hint ?\n"
+"\n"
+" [%s]"
 msgstr ""
 
-msgid "testing access check for non-existant <admin> role"
-msgstr ""
+#, fuzzy
+msgid "deleting a dynamic hint"
+msgstr "Apagando documento"
 
 msgid ""
-"This is a deliberate AcessDenied exception. You should not see this message "
-"because the role is checked in a decorator."
+"\n"
+"Dynamic hints registered with GNUmed.\n"
 msgstr ""
 
-msgid "pgAdmin III not found."
+#, fuzzy
+msgid "Showing dynamic hints."
+msgstr "Apagando documento"
+
+msgid "Hint"
 msgstr ""
 
-msgid "Error reloading hook script."
+msgid "Browse and install automatic dynamic hints data packs"
 msgstr ""
 
-msgid "Save current log as..."
+#, fuzzy, python-format
+msgid "By: %s"
+msgstr "Local"
+
+msgid "No entry in field <Source>."
 msgstr ""
 
-msgid "log files"
+msgid "No entry in field <Conditions>."
 msgstr ""
 
-#, python-format
-msgid "Log file backed up as [%s]."
+#, fuzzy
+msgid "No entry in field <Description>."
+msgstr "Erro ao executar o script de hook [%s]"
+
+msgid "No entry in field <Title>."
 msgstr ""
 
-msgid "Cannot start new encounter. No active patient."
-msgstr "Não foi possível iniciar nova consulta. Não há um paciente ativo."
+#, fuzzy
+msgid "creating a new dynamic hint"
+msgstr "Apagando documento"
 
-msgid "Cannot add health issue. No active patient."
-msgstr "Não foi possível adicionar problema de saúde. Não há paciente ativo."
+#, fuzzy
+msgid "updating an existing dynamic hint"
+msgstr "Abrir um cronograma existente"
 
 #, fuzzy
-msgid "Cannot add episode. No active patient."
-msgstr "Não foi possível adicionar problema de saúde. Não há paciente ativo."
+msgid "Deleting suppressed dynamic hint"
+msgstr "Apagando documento"
 
-msgid "Cannot add medication. No active patient."
+#, python-format
+msgid ""
+"Really delete the suppression of this dynamic hint ?\n"
+"\n"
+" [%s]"
 msgstr ""
 
-msgid "Cannot add allergy. No active patient."
-msgstr ""
+#, fuzzy
+msgid ""
+"\n"
+"Dynamic hints suppressed in this patient.\n"
+msgstr "Detalhes da fila de espera para esse paciente."
 
-msgid "Cannot manage performed procedures. No active patient."
-msgstr ""
+#, fuzzy
+msgid "Showing suppressed dynamic hints."
+msgstr "Apagando documento"
 
 #, fuzzy
-msgid "Cannot manage hospitalizations. No active patient."
-msgstr "Não foi possível adicionar problema de saúde. Não há paciente ativo."
+msgid "Rationale"
+msgstr "Reação"
 
 #, fuzzy
-msgid "Cannot manage external care. No active patient."
-msgstr "Não foi possível adicionar problema de saúde. Não há paciente ativo."
+msgid "Manage hints"
+msgstr "&Editar"
 
-msgid "Cannot edit occupation. No active patient."
+#, fuzzy
+msgid "Manage automatic dynamic hints"
+msgstr "Apagando documento"
+
+msgid "Cannot delete family history item."
 msgstr ""
 
 #, fuzzy
-msgid "manage vaccinations"
-msgstr "Últimas vacinas"
+msgid "Family history of this patient."
+msgstr "Detalhes da fila de espera para esse paciente."
 
-msgid "Cannot add vaccinations. No active patient."
+msgid "Showing family history."
 msgstr ""
 
 #, fuzzy
-msgid "Cannot manage family history. No active patient."
-msgstr "Não foi possível adicionar problema de saúde. Não há paciente ativo."
+msgid "Fatal"
+msgstr "fatal"
 
 #, fuzzy
-msgid "Cannot manage measurements. No active patient."
-msgstr "Não foi possível adicionar problema de saúde. Não há paciente ativo."
+msgid "Noted"
+msgstr "Nota"
 
-msgid "calculate EDC"
+msgid "Died"
 msgstr ""
 
 #, fuzzy
-msgid "manage suppressed hints"
-msgstr "Administrar as descrições."
+msgid "Adding family history"
+msgstr "História de Medicação "
 
 #, fuzzy
-msgid "Cannot manage suppressed hints. No active patient."
-msgstr "Não foi possível adicionar problema de saúde. Não há paciente ativo."
-
-msgid "Cannot show EMR summary. No active patient."
-msgstr "Não é possível mostrar resumo de Prontuário. Não há paciente ativo."
-
-msgid "EMR Summary"
-msgstr "Resumo do Prontuário"
+msgid "Editing family history"
+msgstr "História de Medicação "
 
-msgid "Cannot export EMR journal. No active patient."
+msgid ""
+"\n"
+"Please select the default drug data source from the list below.\n"
+"\n"
+"Note that to actually use it you need to have the database installed, too."
 msgstr ""
 
-msgid "Save patient's EMR journal as..."
+msgid "Configuring default drug data source"
 msgstr ""
 
-msgid "Error exporting patient EMR as chronological journal."
+msgid "No default drug database configured."
 msgstr ""
 
-msgid "EMR journal export"
+msgid "There is no default drug database configured."
 msgstr ""
 
-#, python-format
-msgid "Successfully exported EMR as chronological journal into file [%s]."
+msgid "Jumping to drug database"
 msgstr ""
 
-msgid "Cannot add tag to person. No active patient."
+msgid "Cannot import drugs from IFAP into chart without chart."
 msgstr ""
 
 #, python-format
-msgid "Edit the comment on tag [%s]"
-msgstr ""
+msgid "Cannot call IFAP via [%s]."
+msgstr "Cannot call IFAP via [%s]."
 
-msgid "Editing tag comment"
-msgstr ""
+#, python-format
+msgid "Cannot create IFAP <-> GNUmed transfer file [%s]."
+msgstr "Cannot create IFAP <-> GNUmed transfer file [%s]."
 
-msgid "Cannot export patient as GDT. No active patient."
-msgstr ""
+msgid "Current medication"
+msgstr "Medicação atual"
 
-msgid "Exported demographics as GDT to clipboard."
+msgid ""
+"\n"
+"The ATC codes as known to GNUmed.\n"
 msgstr ""
 
-#, fuzzy
-msgid "Cannot export patient as VCARD. No active patient."
-msgstr "Não é possível exportar Prontuário Eletrônico. Não há paciente ativo."
-
-msgid "Exported demographics as VCARD to clipboard."
+msgid "Showing ATC codes."
 msgstr ""
 
-#, fuzzy
-msgid "Cannot export patient as XML (LinuxMedNews). No active patient."
-msgstr "Não é possível exportar Prontuário Eletrônico. Não há paciente ativo."
-
-#, python-format
-msgid "Exported demographics to XML file [%s]."
+msgid "Choose an ATC import config file"
 msgstr ""
 
-#, python-format
-msgid "Exported demographics to GDT file [%s]."
+msgid "config files"
 msgstr ""
 
-#, python-format
-msgid "Exported demographics to VCARD file [%s]."
+msgid "importing ATC reference data"
 msgstr ""
 
-msgid "Cannot add staff member. No active patient."
+msgid "Successfully imported ATC reference data."
 msgstr ""
 
-msgid "Cannot delete patient. No patient active."
+msgid "Importing ATC reference data failed."
 msgstr ""
 
-msgid ""
-"You have to manually close this window to finalize shutting down GNUmed."
+msgid "Select an ATC (Anatomical-Therapeutic-Chemical) code."
 msgstr ""
 
-msgid "This is so that you can inspect the console output at your leisure."
+msgid "Cannot edit this substance. It is in use."
 msgstr ""
 
-msgid "no patient"
+msgid "Adding new consumable substance"
 msgstr ""
 
-#, python-format
-msgid "Saved screenshot to file [%s]."
+msgid "Editing consumable substance"
 msgstr ""
 
-msgid "GNUmed client"
+msgid "Cannot delete this substance. It is in use."
 msgstr ""
 
-msgid "GNUmed stdout/stderr window"
+msgid ""
+"\n"
+"These are the consumable substances registered with GNUmed.\n"
 msgstr ""
 
-msgid "redirecting STDOUT/STDERR to this log window"
+msgid "Import"
 msgstr ""
 
-#, python-format
-msgid ""
-"The database account [%s] cannot be used as a\n"
-"staff member login for GNUmed. There was an\n"
-"error retrieving staff details for it.\n"
-"\n"
-"Please ask your administrator for help.\n"
+msgid "Import consumable substances from a drug database."
 msgstr ""
 
-msgid "Checking access permissions"
+msgid "Cannot save consumable substance. Missing essential input."
 msgstr ""
 
 #, python-format
-msgid "Database <%s> on <%s>"
+msgid "Cannot save consumable substance. %s"
 msgstr ""
 
-#, python-format
-msgid "Branch \"%s\" of praxis \"%s\"\n"
+msgid "The substance with optional strength."
 msgstr ""
 
-msgid "Verifying database"
+msgid "Cannot remove this component from the drug. It is in use."
 msgstr ""
 
-msgid "Connect"
+msgid ""
+"\n"
+"These are the components in the drug brands known to GNUmed.\n"
 msgstr ""
 
-msgid "Yes, connect to this database."
+msgid "Showing drug brand components."
 msgstr ""
 
-msgid "Disconnect"
+msgid "Adding new drug component"
 msgstr ""
 
-msgid "No, do not connect to this database."
+msgid "Editing drug component"
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot find configuration file in any of:\n"
-"\n"
-" %s\n"
-"You may need to use the comand line option\n"
-"\n"
-"\t--conf-file=<FILE>"
+msgid "Cannot edit drug component. It is in use."
 msgstr ""
 
-msgid "Checking configuration files"
+msgid "Cannot save drug component. Invalid or missing essential input."
 msgstr ""
 
-msgid "GNUmed startup"
+msgid "A drug component with optional strength."
+msgstr ""
+
+msgid "Editing drug"
 msgstr ""
 
 #, python-format
 msgid ""
-"The currently selected database language ('%s') does\n"
-"not match the current system language ('%s').\n"
+"Cannot edit the branded drug product\n"
 "\n"
-"Do you want to set the database language to '%s' ?\n"
+" \"%s\" (%s)\n"
+"\n"
+"because it is currently taken by patients.\n"
 msgstr ""
 
-msgid "Checking database language settings"
+msgid "Adding new drug brand"
 msgstr ""
 
-msgid "Set"
+msgid "Editing drug brand"
 msgstr ""
 
-#, python-format
-msgid "Set your database language to [%s]."
-msgstr ""
+#, fuzzy
+msgid "Manage consumable substances"
+msgstr "Editar as substâncias consumíveis."
 
-msgid "Don't set"
+msgid "not in use"
 msgstr ""
 
-msgid "Do not set your database language now."
+#, python-format
+msgid "ATC: %s\n"
 msgstr ""
 
-msgid "Remember to ignore language mismatch"
+msgid "Editing medication"
 msgstr ""
 
 #, python-format
 msgid ""
-"Checking this will make GNUmed remember your decision\n"
-"until the system language is changed.\n"
+"Cannot edit the medication\n"
 "\n"
-"You can also reactivate this inquiry by removing the\n"
-"corresponding \"ignore\" option from the configuration file\n"
+" \"%s\" (%s)\n"
 "\n"
-" [%s]"
+"because it is a vaccine. Please edit it\n"
+"from the vaccine management section !\n"
 msgstr ""
 
-#, fuzzy
-msgid "generic activity"
-msgstr "Genéricos"
-
-msgid "Access denied"
+msgid "Deleting medication"
 msgstr ""
 
 #, python-format
 msgid ""
-"Your account is not set up to access this part of GNUmed:\n"
+"Cannot delete the medication\n"
 "\n"
-"  [%s]"
-msgstr ""
-
-msgid "Save timeline as SVG image under..."
-msgstr ""
-
-#, fuzzy
-msgid "timeline image"
-msgstr "todos os arquivos"
-
-#, fuzzy
-msgid "timeline data"
-msgstr "Nenhum cronograma definido"
-
-msgid "Cannot change notebook tabs. No active patient."
+" \"%s\" (%s)\n"
+"\n"
+"because it is a vaccine. Please delete it\n"
+"from the vaccine management section !\n"
 msgstr ""
 
-msgid "add plugin ..."
+msgid ""
+"\n"
+"These are the drug brands known to GNUmed.\n"
 msgstr ""
 
-msgid "Cannot activate Allergy Manager. No active patient."
+msgid "Showing branded drugs."
 msgstr ""
 
-msgid "<Age>"
+msgid "Import substances and brands from a drug database."
 msgstr ""
 
-#, fuzzy
-msgid "no patient selected"
-msgstr "= selected =>"
-
-#, fuzzy, python-format
-msgid "Gender: %s (%s) - %s\n"
-msgstr "Consultas: %s (%s - %s):"
-
-#, fuzzy, python-format
-msgid "Born: %s\n"
-msgstr "Local"
-
-#, fuzzy, python-format
-msgid "Died: %s\n"
-msgstr "Fechado"
-
-#, fuzzy, python-format
-msgid "At age: %s\n"
-msgstr "Paciente"
-
-msgid " (date of birth and age are estimated)\n"
+msgid "Managing components of a drug"
 msgstr ""
 
 #, python-format
-msgid "%(sex)s  %(dob)s (%(age)s today !)"
-msgstr ""
-
 msgid ""
+"Cannot manage the components of the branded drug product\n"
 "\n"
-"Today is the patient's birthday !\n"
+" \"%s\" (%s)\n"
 "\n"
+"because it is currently taken by patients.\n"
 msgstr ""
 
-#, python-format
-msgid "Birthday: %s ago\n"
+msgid "Pick the substances which are components of this drug."
 msgstr ""
 
-#, fuzzy, python-format
-msgid "Birthday: in %s\n"
-msgstr "Lembrete de aniversário"
-
-#, fuzzy, python-format
-msgid "Age: %s\n"
-msgstr "Local"
-
-#, python-format
-msgid "last confirmed %s\n"
-msgstr "atualizado: %s\n"
-
-#, python-format
-msgid "Comment (%s): %%s"
-msgstr "Comentário: %s"
-
-#, python-format
-msgid " - expires %s"
+msgid "Components of drug"
 msgstr ""
 
 #, python-format
 msgid ""
-"Due for %s (since %s%s):\n"
-"%s%s\n"
-"Patient: %s\n"
-"Reminder by: %s"
+"Adjust the components of \"%s\"\n"
+"\n"
+"The drug must contain at least one component. Any given\n"
+"substance can only be included once per drug."
 msgstr ""
 
-#, fuzzy
-msgid "Clinical reminder"
-msgstr "Contexto Clínico"
-
-#, fuzzy
-msgid "Adding automatic dynamic hint"
-msgstr "Apagando documento"
+msgid "Managing components of a drug ..."
+msgstr ""
 
-#, fuzzy
-msgid "Editing automatic dynamic hint"
-msgstr "Apagando documento"
+msgid "Cannot edit drug brand. It is in use."
+msgstr ""
 
 #, fuzzy
-msgid "Deleting automatic dynamic hint"
-msgstr "Apagando documento"
+msgid "Checking brand data"
+msgstr "Checando por atualizações do cliente"
 
 #, python-format
 msgid ""
-"Really delete this dynamic hint ?\n"
+"The brand information you entered:\n"
 "\n"
-" [%s]"
+" [%s %s]\n"
+"\n"
+"already exists as a drug product."
 msgstr ""
 
-#, fuzzy
-msgid "deleting a dynamic hint"
-msgstr "Apagando documento"
-
 msgid ""
+"You have not selected any substances\n"
+"as drug components.\n"
 "\n"
-"Dynamic hints registered with GNUmed.\n"
+"Without components you will not be able to\n"
+"use this drug for documenting patient care.\n"
+"\n"
+"Are you sure you want to save\n"
+"it without components ?"
 msgstr ""
 
-#, fuzzy
-msgid "Showing dynamic hints."
-msgstr "Apagando documento"
+msgid "Cannot save branded drug. Invalid or missing essential input."
+msgstr ""
 
-msgid "Hint"
+msgid ""
+"The brand name of the drug.\n"
+"\n"
+"Note: a brand name will need to be linked to\n"
+"one or more components before it can be used,\n"
+"except in the case of fake (generic) vaccines."
 msgstr ""
 
-msgid "Browse and install automatic dynamic hints data packs"
+msgid "No EMR data loaded."
+msgstr "Não há dados abertos no Prontuário."
+
+msgid "EMR text dump"
+msgstr "Saída em forma de texto do Prontuário"
+
+msgid "Currently there is no active patient. Cannot retrieve EMR text."
 msgstr ""
+"Atualmente não há paciente ativo. Não é possível abrir texto do Prontuário."
 
-#, fuzzy, python-format
-msgid "By: %s"
-msgstr "Local"
+#, fuzzy
+msgid "SOAP Editor Actions:"
+msgstr "Vacinas:"
 
-msgid "No entry in field <Source>."
+#, fuzzy
+msgid "&Sort lines"
+msgstr "Nenhum cronograma definido"
+
+msgid "Sort lines by SOAP category"
 msgstr ""
 
-msgid "No entry in field <Conditions>."
+msgid "e&Xpand keyword"
+msgstr ""
+
+msgid "Expand keyword / macro"
 msgstr ""
 
 #, fuzzy
-msgid "No entry in field <Description>."
-msgstr "Erro ao executar o script de hook [%s]"
+msgid "as &Subjective"
+msgstr "Subjetivo"
 
-msgid "No entry in field <Title>."
+msgid "Set line to category \"Subjective\""
 msgstr ""
 
 #, fuzzy
-msgid "creating a new dynamic hint"
-msgstr "Apagando documento"
+msgid "as &Objective"
+msgstr "Objetivo"
 
-#, fuzzy
-msgid "updating an existing dynamic hint"
-msgstr "Abrir um cronograma existente"
+msgid "Set line to category \"Objective\""
+msgstr ""
 
 #, fuzzy
-msgid "Deleting suppressed dynamic hint"
-msgstr "Apagando documento"
+msgid "as &Assessment"
+msgstr "Avaliação / Diagnósticos"
 
-#, python-format
-msgid ""
-"Really delete the suppression of this dynamic hint ?\n"
-"\n"
-" [%s]"
+msgid "Set line to category \"Assessment\""
 msgstr ""
 
 #, fuzzy
-msgid ""
-"\n"
-"Dynamic hints suppressed in this patient.\n"
-msgstr "Detalhes da fila de espera para esse paciente."
+msgid "as &Plan"
+msgstr "Plano"
 
-#, fuzzy
-msgid "Showing suppressed dynamic hints."
-msgstr "Apagando documento"
+msgid "Set line to category \"Plan\""
+msgstr ""
 
 #, fuzzy
-msgid "Rationale"
-msgstr "Reação"
+msgid "as &Unspecified"
+msgstr "soap_Unspecified"
 
-#, fuzzy
-msgid "Manage hints"
-msgstr "&Editar"
+msgid "Set line to category \"unspecified\""
+msgstr ""
 
 #, fuzzy
-msgid "Manage automatic dynamic hints"
-msgstr "Apagando documento"
+msgid "as ad&Ministrative"
+msgstr "Administrativo"
 
-msgid "Cannot delete family history item."
+msgid "Set line to category \"administrative\""
+msgstr ""
+
+msgid "→ &Clipboard"
 msgstr ""
 
 #, fuzzy
-msgid "Family history of this patient."
-msgstr "Detalhes da fila de espera para esse paciente."
+msgid "Copy line to clipboard"
+msgstr "Mover o paciente para cima."
 
-msgid "Showing family history."
+msgid "→ +Clipboard+"
 msgstr ""
 
 #, fuzzy
-msgid "Fatal"
-msgstr "fatal"
+msgid "Add line to clipboard"
+msgstr "Mover o paciente para cima."
 
 #, fuzzy
-msgid "Noted"
-msgstr "Nota"
+msgid "Copy content to clipboard"
+msgstr "Mover o paciente para cima."
 
-msgid "Died"
-msgstr ""
+#, fuzzy
+msgid "Add content to clipboard"
+msgstr "Mover o paciente para cima."
 
 #, fuzzy
-msgid "Adding family history"
-msgstr "História de Medicação "
+msgid "Copy selection to clipboard"
+msgstr "Mover o paciente para cima."
 
 #, fuzzy
-msgid "Editing family history"
-msgstr "História de Medicação "
+msgid "Add selection to clipboard"
+msgstr "Mover o paciente para cima."
 
-msgid "No EMR data loaded."
-msgstr "Não há dados abertos no Prontuário."
+#, fuzzy
+msgid "&Line ..."
+msgstr "&Ações ... "
 
-msgid "EMR text dump"
-msgstr "Saída em forma de texto do Prontuário"
+#, fuzzy
+msgid "&Text ..."
+msgstr "Texto"
 
-msgid "Currently there is no active patient. Cannot retrieve EMR text."
-msgstr ""
-"Atualmente não há paciente ativo. Não é possível abrir texto do Prontuário."
+#, fuzzy
+msgid "&Region ..."
+msgstr "Estado"
 
 #, fuzzy
 msgid "Show HL7 file:"
@@ -17041,6 +18033,10 @@ msgstr ""
 msgid "Extracting HL7 from XML file"
 msgstr ""
 
+#, python-format
+msgid "Unwrapped HL7 into [%s] from [%s]."
+msgstr ""
+
 msgid "Select HL7 file for staging:"
 msgstr ""
 
@@ -17066,6 +18062,10 @@ msgid ""
 " %s"
 msgstr ""
 
+#, fuzzy, python-format
+msgid "Staged HL7 from [%s]."
+msgstr "Abrir dados de modelo de um arquivo."
+
 msgid "Importing HL7 data"
 msgstr ""
 
@@ -17114,10 +18114,6 @@ msgstr ""
 msgid "Identification"
 msgstr "Medicação atual"
 
-#, fuzzy
-msgid "Show"
-msgstr "Mostrar arquivo de Log"
-
 msgid "Show formatted HL7"
 msgstr ""
 
@@ -17166,6 +18162,20 @@ msgstr "O paciente atual é:"
 msgid "Plot current selection"
 msgstr "Medicação atual"
 
+#, fuzzy
+msgid ""
+"Select the measurements panel to show in the top pane for continuous "
+"monitoring."
+msgstr "Um comentário sobre esse paciente."
+
+#, fuzzy
+msgid "Lab panel"
+msgstr "Administrar as descrições."
+
+#, fuzzy
+msgid "Configuring continuous monitoring measurements panel"
+msgstr "Medidas e Resultados"
+
 msgid "No default Gnuplot script template selected."
 msgstr ""
 
@@ -17189,13 +18199,29 @@ msgstr ""
 msgid "Cannot plot without a plot script."
 msgstr ""
 
+msgid "Result"
+msgstr ""
+
 #, fuzzy
-msgid "Time"
-msgstr "Timeline"
+msgid "Perform on selected results:"
+msgstr "resultado corrigido"
 
-msgid "Result"
+msgid "Review and &sign"
+msgstr ""
+
+msgid "Export to &file"
+msgstr ""
+
+msgid "Export to &clipboard"
+msgstr ""
+
+msgid "Panels"
 msgstr ""
 
+#, fuzzy
+msgid "List"
+msgstr "Lista de espera"
+
 msgid ""
 "lab_grid_date_format::%Y\n"
 "%b %d"
@@ -17271,19 +18297,6 @@ msgstr ""
 msgid "All: by &Day"
 msgstr ""
 
-#, fuzzy
-msgid "Perform on selected results:"
-msgstr "resultado corrigido"
-
-msgid "Review and &sign"
-msgstr ""
-
-msgid "Export to &file"
-msgstr ""
-
-msgid "Export to &clipboard"
-msgstr ""
-
 #, python-format
 msgid "%s results selected. Too many to list individually."
 msgstr ""
@@ -17478,6 +18491,10 @@ msgstr ""
 msgid "EMR Actions:"
 msgstr "Reação"
 
+#, fuzzy
+msgid "Print EMR"
+msgstr "Imprimir"
+
 msgid "Create health issue"
 msgstr "Criar Problema de Saúde"
 
@@ -17643,16 +18660,43 @@ msgstr ""
 msgid "&New notes %s"
 msgstr ""
 
+msgid "Find text in EMR Journal"
+msgstr ""
+
+#, fuzzy
+msgid "Modified"
+msgstr "registro modificado"
+
+#, fuzzy
+msgid "Clinical time"
+msgstr "Anotações Clínicas"
+
+msgid "Who / When"
+msgstr ""
+
+#, python-format
 msgid ""
-"An error occurred while retrieving the EMR\n"
-"in journal form for the active patient.\n"
+"Chart entry: %s       [#%s in %s]\n"
+" Modified: %s by %s (%s rev %s)\n"
 "\n"
-"Please check the log file for details."
+"Health issue: %s%s\n"
+"Episode: %s%s\n"
+"Encounter: %s%s"
 msgstr ""
-"Um erro ocorreu ao abrir o Prontuário\n"
-"na forma de diário par ao paciente ativo.\n"
+
+#, python-format
+msgid ""
+"%s\n"
 "\n"
-"Veja o arquivo de log para os detalhes."
+"                        rev %s (%s) by %s in <%s>"
+msgstr ""
+
+#, python-format
+msgid ""
+"%s\n"
+"%s\n"
+"%s"
+msgstr ""
 
 msgid "Editing tag"
 msgstr ""
@@ -17791,18 +18835,15 @@ msgid ""
 "%s\n"
 msgstr ""
 
-msgid "This patient DID receive care."
+msgid "This patient DID receive care here."
 msgstr ""
 
-msgid "This person did NOT receive care."
+msgid "This person did NOT receive care here."
 msgstr ""
 
 msgid "Disabling person"
 msgstr ""
 
-msgid "Disabling patient"
-msgstr "Desabilitando paciente"
-
 msgid "Type or select a last name (family name/surname)."
 msgstr "Digite ou selecione um sobrenome."
 
@@ -18132,6 +19173,9 @@ msgstr ""
 "\n"
 "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
 
+msgid "Connecting to backend"
+msgstr "Conectando ao servidor."
+
 #, fuzzy, python-format
 msgid ""
 "Unable to connect to database:\n"
@@ -18360,9 +19404,6 @@ msgstr ""
 msgid "Office"
 msgstr ""
 
-msgid "State"
-msgstr "Estado"
-
 msgid "Zip"
 msgstr ""
 
@@ -18419,8 +19460,9 @@ msgstr ""
 msgid "EMR Timeline"
 msgstr ""
 
-msgid "Show &Timeline"
-msgstr ""
+#, fuzzy
+msgid "EMR &Timeline"
+msgstr "&Cronograma"
 
 #, fuzzy
 msgid "Overview"
@@ -18449,10 +19491,10 @@ msgstr "Notas"
 msgid "&SimpleNotes"
 msgstr ""
 
-msgid "EMR tree"
+msgid "EMR Tree"
 msgstr ""
 
-msgid "EMR &Tree (topical)"
+msgid "EMR &Tree"
 msgstr ""
 
 #, fuzzy
@@ -18463,6 +19505,13 @@ msgstr "Imprimir"
 msgid "&Print Manager"
 msgstr "&Gerenciar"
 
+#, fuzzy
+msgid "EMR Journal"
+msgstr "Diário"
+
+msgid "EMR &Journal (list)"
+msgstr ""
+
 msgid "Appointments"
 msgstr ""
 
@@ -18475,6 +19524,12 @@ msgstr ""
 msgid "Show &lab journal"
 msgstr ""
 
+msgid "PACS"
+msgstr ""
+
+msgid "&PACS"
+msgstr ""
+
 msgid "Cardiac Devices"
 msgstr ""
 
@@ -18547,11 +19602,9 @@ msgstr ""
 msgid "User &manual (local)"
 msgstr ""
 
-msgid "EMR journal"
-msgstr ""
-
-msgid "EMR &Journal (chronological)"
-msgstr ""
+#, fuzzy
+msgid "EMR &Journal (text)"
+msgstr "Consulta Atual"
 
 msgid "Demographics"
 msgstr ""
@@ -18712,6 +19765,10 @@ msgstr ""
 msgid "Show &ExamplePlugin"
 msgstr ""
 
+#, fuzzy
+msgid "Find text"
+msgstr "Última"
+
 msgid "gm_ctl_client: starting slave GNUmed client"
 msgstr "gm_ctl_client: iniciando client GNUmed escravo"
 
@@ -18745,6 +19802,205 @@ msgstr "Cancelar"
 msgid "Abort and do NOT connect to GNUmed."
 msgstr "Cancelar e NÃO conectar ao GNUmed."
 
+#, fuzzy
+#~ msgid ""
+#~ "Health issue: %s%s%s (%s versions)\n"
+#~ "\n"
+#~ msgstr "problema de saúde: %s"
+
+#, fuzzy
+#~ msgid ""
+#~ "Episode: %s%s%s (%s versions)\n"
+#~ "\n"
+#~ msgstr "Consulta %s%s%s   [#%s]"
+
+#, fuzzy
+#~ msgid ""
+#~ "Encounter: %s%s%s (%s versions)\n"
+#~ "\n"
+#~ msgstr "Consultas: %s (%s - %s):"
+
+#, fuzzy
+#~ msgid ""
+#~ "\n"
+#~ "current values:\n"
+#~ msgstr "<estado alérgico atual>"
+
+#~ msgid "soap_S"
+#~ msgstr "soap_S"
+
+#~ msgid "soap_O"
+#~ msgstr "soap_O"
+
+#~ msgid "soap_A"
+#~ msgstr "soap_A"
+
+#~ msgid "soap_P"
+#~ msgstr "soap_P"
+
+#, fuzzy
+#~ msgid "soap_U"
+#~ msgstr "soap_S"
+
+#~ msgid "soap_Subjective"
+#~ msgstr "soap_Subjetivo"
+
+#~ msgid "soap_Objective"
+#~ msgstr "soap_Objetivo"
+
+#~ msgid "soap_Assessment"
+#~ msgstr "soap_Avaliação"
+
+#~ msgid "soap_Plan"
+#~ msgstr "soap_Plano"
+
+#~ msgid "soap_Unspecified"
+#~ msgstr "soap_Unspecified"
+
+#~ msgid "soap_Administrative"
+#~ msgstr "soap_Administrativo"
+
+#, fuzzy
+#~ msgid "Search in list"
+#~ msgstr "Lista de medicamentos"
+
+#~ msgid "Parts"
+#~ msgstr "Porção"
+
+#~ msgid "Disabling patient"
+#~ msgstr "Desabilitando paciente"
+
+#, fuzzy
+#~ msgid "&Unknown"
+#~ msgstr "Desconhecida"
+
+#, fuzzy
+#~ msgid "When was smoking status last confirmed (mostly \"today\") ?"
+#~ msgstr "Quando foi que o estado alérgico foi confirmado pela última vez."
+
+#, fuzzy
+#~ msgid "Last confirmed: %s%s"
+#~ msgstr "Confirmado em:"
+
+#, fuzzy
+#~ msgid "Smoking status"
+#~ msgstr "rever estado"
+
+#~ msgid "State"
+#~ msgstr "Estado"
+
+#~ msgid ""
+#~ "Cannot connect to configuration database with:\n"
+#~ "\n"
+#~ "[%s]"
+#~ msgstr ""
+#~ "Não é possível conectar ao banco de dados com:\n"
+#~ "\n"
+#~ "[%s]"
+
+#~ msgid ""
+#~ "Cannot connect to database with:\n"
+#~ "\n"
+#~ "[%s]"
+#~ msgstr ""
+#~ "Não é possível conectar ao banco de dados com:\n"
+#~ "\n"
+#~ "[%s]"
+
+#~ msgid "No product information available."
+#~ msgstr "Sem informações sobre o produto"
+
+#~ msgid ""
+#~ "Unable to connect to database:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Are you sure you have got a local database installed ?\n"
+#~ "\n"
+#~ "Please retry with proper credentials or cancel.\n"
+#~ "\n"
+#~ "You may also need to check the PostgreSQL client\n"
+#~ "authentication configuration in pg_hba.conf. For\n"
+#~ "details see:\n"
+#~ "\n"
+#~ "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
+#~ msgstr ""
+#~ "Não foi possíivel conectar ao Banco de Dados:\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Você tem certeza que tem um banco de dados local instalado ?\n"
+#~ "\n"
+#~ "Por favor tente novamente com o login e senha corretas ou cancele.\n"
+#~ "\n"
+#~ "Você também pode checar o arquivo pg_hba.conf na configuração de "
+#~ "autenticação do PostgreSQL. Mais detalhes em:\n"
+#~ "\n"
+#~ "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
+
+#~ msgid ""
+#~ "Unable to connect to database:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Please retry with proper credentials or cancel.\n"
+#~ "\n"
+#~ "You may also need to check the PostgreSQL client\n"
+#~ "authentication configuration in pg_hba.conf. For\n"
+#~ "details see:\n"
+#~ "\n"
+#~ "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
+#~ msgstr ""
+#~ "Não foi possível conectar ao Banco de Dados:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Favor tentar com o login e senha adequados ou cancelar.\n"
+#~ "\n"
+#~ "Você também pode verificar a autenticação do cliente PostgreSQL\n"
+#~ "no arquivo de configuração pg_hba.conf. Para\n"
+#~ "mais informações, veja:\n"
+#~ "\n"
+#~ "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
+
+#~ msgid ""
+#~ "Unable to connect to database:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Please retry another backend / user / password combination !\n"
+#~ msgstr ""
+#~ "Não foi possivel conectar ao Banco de Dados:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Favor tentar outro Servidor / Usuário / Senha!\n"
+
+#~ msgid ""
+#~ "An error occurred while retrieving the EMR\n"
+#~ "in journal form for the active patient.\n"
+#~ "\n"
+#~ "Please check the log file for details."
+#~ msgstr ""
+#~ "Um erro ocorreu ao abrir o Prontuário\n"
+#~ "na forma de diário par ao paciente ativo.\n"
+#~ "\n"
+#~ "Veja o arquivo de log para os detalhes."
+
+#, fuzzy
+#~ msgid ""
+#~ "\n"
+#~ "Select the measurements panel to show in the top pane.\n"
+#~ msgstr "Um comentário sobre esse paciente."
+
+#~ msgid "Brand by component"
+#~ msgstr "Marca por componentes"
+
+#~ msgid "Unbranded substance"
+#~ msgstr "Substância sem marca"
+
+#~ msgid "The active ingredients of this brand."
+#~ msgstr "Os ingredientes ativos da marca."
+
 #~ msgid "Province"
 #~ msgstr "Província"
 
@@ -18791,10 +20047,6 @@ msgstr "Cancelar e NÃO conectar ao GNUmed."
 #~ "%s"
 
 #, fuzzy
-#~ msgid "Clinical hint"
-#~ msgstr "Anotações Clínicas"
-
-#, fuzzy
 #~ msgid "More info"
 #~ msgstr "Informação da rua"
 
@@ -18811,10 +20063,6 @@ msgstr "Cancelar e NÃO conectar ao GNUmed."
 #~ msgstr "arquivos de texto"
 
 #, fuzzy
-#~ msgid "Check here for printing."
-#~ msgstr "Configurar página para impressão"
-
-#, fuzzy
 #~ msgid "Enter a fax number here."
 #~ msgstr "Digite sua tradução aqui. "
 
@@ -18826,10 +20074,6 @@ msgstr "Cancelar e NÃO conectar ao GNUmed."
 #~ msgstr "&Assinar como:"
 
 #, fuzzy
-#~ msgid "file: %s (%s/)"
-#~ msgstr "Local"
-
-#, fuzzy
 #~ msgid "Switching clinical hint activation"
 #~ msgstr "Editando a profissão"
 
@@ -18898,9 +20142,6 @@ msgstr "Cancelar e NÃO conectar ao GNUmed."
 #~ msgid "SQL: %s"
 #~ msgstr "SQL: %s"
 
-#~ msgid "cannot connect to service [%s]"
-#~ msgstr "não é possível conectar com o serviço [%s]"
-
 #~ msgid "When was this substance started to be consumed."
 #~ msgstr "Quando foi que a substância começou a ser consumida."
 
diff --git a/client/po/ro-gnumed.mo b/client/po/ro-gnumed.mo
index f533686..fc07daa 100644
Binary files a/client/po/ro-gnumed.mo and b/client/po/ro-gnumed.mo differ
diff --git a/client/po/ro.po b/client/po/ro.po
index 97cfe75..77199f9 100644
--- a/client/po/ro.po
+++ b/client/po/ro.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: GNUmed\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-12-26 20:28+0100\n"
+"POT-Creation-Date: 2016-03-17 16:27+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <LL at li.org>\n"
@@ -1405,10 +1405,22 @@ msgid ""
 msgstr ""
 
 #, python-format
+msgid "Revision #%s"
+msgstr ""
+
+#, python-format
 msgid "[%s:%s]: row not updated (nothing returned), row in use ?"
 msgstr ""
 
 #, python-format
+msgid "<%s(.bat)> not found"
+msgstr ""
+
+#, python-format
+msgid "problem with <%s>"
+msgstr ""
+
+#, python-format
 msgid "[%s] is not a readable file"
 msgstr ""
 
@@ -1436,21 +1448,7 @@ msgstr ""
 msgid "%s Bytes"
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot connect to configuration database with:\n"
-"\n"
-"[%s]"
-msgstr ""
-
-#, python-format
-msgid ""
-"Cannot connect to database with:\n"
-"\n"
-"[%s]"
-msgstr ""
-
-msgid "No product information available."
+msgid "<type>"
 msgstr ""
 
 #, python-format
@@ -1786,105 +1784,6 @@ msgstr ""
 msgid "  risk: %s"
 msgstr ""
 
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Are you sure you have got a local database installed ?\n"
-"\n"
-"Please retry with proper credentials or cancel.\n"
-"\n"
-"You may also need to check the PostgreSQL client\n"
-"authentication configuration in pg_hba.conf. For\n"
-"details see:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-msgstr ""
-"Imposibil de conectat la baza de date\n"
-"\n"
-"%s\n"
-"\n"
-"Sunteți sigur că aveţi o bază de date locală instalată?\n"
-"\n"
-"Vă rugăm să reîncercaţi cu alte drepturi sau anulați.\n"
-"\n"
-"Verificați deasemenea PostgreSQL setarile\n"
-"de autentificare configurate în fișierul pg_hba.conf. Pentru\n"
-"detalii a se vedea:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Please retry with proper credentials or cancel.\n"
-"\n"
-"You may also need to check the PostgreSQL client\n"
-"authentication configuration in pg_hba.conf. For\n"
-"details see:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-msgstr ""
-"Imposibil de conectat la baza de date\n"
-"\n"
-"%s\n"
-"\n"
-"Sunteți sigur că aveţi o bază de date locală instalată?\n"
-"\n"
-"Vă rugăm să reîncercaţi cu alte drepturi sau anulați.\n"
-"\n"
-"Verificați deasemenea PostgreSQL setarile\n"
-"de autentificare configurate în fișierul pg_hba.conf. Pentru\n"
-"detalii a se vedea:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-
-msgid "Connecting to backend"
-msgstr "Conectarea la backend"
-
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Please retry another backend / user / password combination !\n"
-msgstr ""
-"Imposibil de conectat la baza de date:\n"
-"\n"
-"%s\n"
-"\n"
-"Vă rugăm să reîncercaţi un o altă  combinaţie backend / user / parolă!\n"
-
-msgid "programmer forgot to specify error message"
-msgstr "Programatorul a uitat sa specifice un mesaj de eroare"
-
-msgid ""
-"\n"
-"\n"
-"Please consult the error log for all the gory details !"
-msgstr ""
-
-msgid "generic error message"
-msgstr "mesaj generic de eroare"
-
-msgid "programmer forgot to specify info message"
-msgstr "Programatorul a uitat sa specifice un mesaj de informare"
-
-msgid "generic info message"
-msgstr "mesaj generic de informare"
-
-msgid "programmer forgot to specify warning"
-msgstr "Programatorul a uitat sa specifice un avertisment"
-
-msgid "generic warning message"
-msgstr "mesaj generic de avertizare"
-
 msgid "no hook specified, please report bug"
 msgstr ""
 
@@ -2201,6 +2100,30 @@ msgstr ""
 msgid "Include:"
 msgstr ""
 
+msgid "&Search"
+msgstr ""
+
+msgid "Suggest"
+msgstr ""
+
+msgid "Set"
+msgstr ""
+
+msgid "dialog_1"
+msgstr ""
+
+msgid "Search patients in Orthanc DICOM store."
+msgstr ""
+
+msgid "Suggest a patient ID based on the active patient."
+msgstr ""
+
+msgid "Search term:"
+msgstr ""
+
+msgid "New patient ID:"
+msgstr ""
+
 msgid "Your review"
 msgstr ""
 
@@ -2502,6 +2425,89 @@ msgstr ""
 msgid "Amount"
 msgstr ""
 
+msgid "&Connect"
+msgstr ""
+
+msgid "&Browse"
+msgstr ""
+
+msgid "<not connected>"
+msgstr ""
+
+msgid "Browse all"
+msgstr ""
+
+msgid "Export all"
+msgstr ""
+
+msgid "Browse"
+msgstr ""
+
+msgid "Export"
+msgstr ""
+
+msgid "Upload"
+msgstr ""
+
+msgid "Enter the PACS host address."
+msgstr ""
+
+msgid "Enter the PACS port."
+msgstr ""
+
+msgid "Enter the PACS user."
+msgstr ""
+
+msgid "Enter the PACS password. It will not be shown."
+msgstr ""
+
+msgid "Connect to PACS."
+msgstr ""
+
+msgid "Browse PACS at top level."
+msgstr ""
+
+msgid "Modify some of Orthanc content (such as patient IDs)."
+msgstr ""
+
+msgid "Browse overview of studies for this patient."
+msgstr ""
+
+msgid "Copy all studies into export area."
+msgstr ""
+
+msgid "Browse topmost selected study."
+msgstr ""
+
+msgid "Copy selected studies into export area."
+msgstr ""
+
+msgid "Save selected studies to disk."
+msgstr ""
+
+msgid ""
+"Upload DICOM files from a directory, recursively, into the Orthanc PACS\n"
+"\n"
+"The currently active patient does not matter. Orthanc will associate "
+"uploaded files with the patient found within the DICOM metadata. It will "
+"create new patients as needed."
+msgstr ""
+
+msgid "Host:"
+msgstr ""
+
+msgid "Port:"
+msgstr ""
+
+msgid "User:"
+msgstr ""
+
+msgid "Password"
+msgstr ""
+
+msgid "Selected studies:"
+msgstr ""
+
 msgid "Fake brand"
 msgstr ""
 
@@ -2817,9 +2823,6 @@ msgstr ""
 msgid "&Load"
 msgstr ""
 
-msgid "Export"
-msgstr ""
-
 msgid "A long, descriptive name for this form template."
 msgstr ""
 
@@ -2907,15 +2910,12 @@ msgstr ""
 msgid "Document Properties"
 msgstr ""
 
-msgid "Show part"
+msgid "Show"
 msgstr ""
 
 msgid "Remove part"
 msgstr ""
 
-msgid "Parts"
-msgstr ""
-
 msgid "Discard"
 msgstr ""
 
@@ -2943,6 +2943,9 @@ msgstr ""
 msgid "Required: The primary episode this document is to be listed under."
 msgstr ""
 
+msgid "Optional: The organization (unit) this document originated from."
+msgstr ""
+
 msgid ""
 "Optional: A short comment identifying the document. Good comments give an "
 "idea of the content and source of the document."
@@ -2967,6 +2970,9 @@ msgid ""
 "normal and abnormal resuslts can be relevant."
 msgstr ""
 
+msgid "Optional: A free-text document description."
+msgstr ""
+
 msgid "This field lists the parts belonging to the current document."
 msgstr ""
 
@@ -2978,9 +2984,6 @@ msgid ""
 "deletion from disk."
 msgstr ""
 
-msgid "Optional: A free-text document description."
-msgstr ""
-
 msgid "Save finished document."
 msgstr ""
 
@@ -2996,6 +2999,9 @@ msgstr ""
 msgid "Associate to episode:"
 msgstr ""
 
+msgid "Document source:"
+msgstr ""
+
 msgid "Comment / Identification:"
 msgstr ""
 
@@ -3176,7 +3182,7 @@ msgstr ""
 msgid "Messages:"
 msgstr ""
 
-msgid "Only:"
+msgid "Limit to:"
 msgstr ""
 
 msgid "&Myself … or:"
@@ -3286,10 +3292,10 @@ msgstr ""
 msgid "Purpose"
 msgstr ""
 
-msgid "Details"
+msgid "Please supply your email address here !"
 msgstr ""
 
-msgid "<Please supply your email address here !>"
+msgid "Details"
 msgstr ""
 
 msgid "Keep running"
@@ -3313,9 +3319,11 @@ msgid ""
 msgstr ""
 
 msgid ""
-"Please enter your email address so we can provide feedback directly to you. "
-"Otherwise, feedback will be given on the GNUmed mailing list (http://lists."
-"gnu.org/mailman/listinfo/gnumed-bugs)."
+"Please enter your email address so we can provide help to you directly.\n"
+"\n"
+"Otherwise, feedback can be given on the GNUmed mailing list (http://lists."
+"gnu.org/mailman/listinfo/gnumed-bugs) ONLY to which you will then have to "
+"subscribe."
 msgstr ""
 
 msgid "Find help on http://wiki.gnumed.de, too."
@@ -3430,9 +3438,6 @@ msgstr ""
 msgid "Account"
 msgstr ""
 
-msgid "Password"
-msgstr ""
-
 msgid "Password, again"
 msgstr ""
 
@@ -3918,7 +3923,7 @@ msgstr ""
 msgid "Acquire images from image source (scanner, ...)."
 msgstr ""
 
-msgid "Acquire images or text from the clipboard."
+msgid "Acquire file or text from the clipboard."
 msgstr ""
 
 msgid "Remove the selected documents."
@@ -4061,7 +4066,7 @@ msgid ""
 "- the result list will be artificially limited to the first 1000 rows\n"
 "- you can include a column named \"pk_patient\" to make the result rows "
 "activate the corresponding patient on double-clicking\n"
-"- by inserting $<ID_active_patient>$ you can access the patient ID of the "
+"- by inserting $<ID_ACTIVE_PATIENT>$ you can access the patient ID of the "
 "patient active at the time of running the query"
 msgstr ""
 
@@ -4220,9 +4225,6 @@ msgstr ""
 msgid "Link &new"
 msgstr ""
 
-msgid "Browse"
-msgstr ""
-
 msgid ""
 "Search for matches among existing addresses and [Link] a selection, or [Link "
 "(a) new] address."
@@ -4271,25 +4273,16 @@ msgid ""
 "left."
 msgstr ""
 
-msgid "label_1"
-msgstr ""
-
-msgid "→"
-msgstr ""
-
-msgid "←"
-msgstr ""
-
-msgid "Extra"
+msgid "Subjective"
 msgstr ""
 
-msgid "Move selected items from left to right."
+msgid "Objective"
 msgstr ""
 
-msgid "Move selected items from right to left."
+msgid "Assessment"
 msgstr ""
 
-msgid "Cancel picking items."
+msgid "Plan"
 msgstr ""
 
 msgid "Episode synopsis"
@@ -4325,19 +4318,28 @@ msgid ""
 "narrative belongs to."
 msgstr ""
 
-msgid "Subjective"
+msgid "Codes:"
 msgstr ""
 
-msgid "Codes:"
+msgid "label_1"
 msgstr ""
 
-msgid "Objective"
+msgid "→"
 msgstr ""
 
-msgid "Assessment"
+msgid "←"
 msgstr ""
 
-msgid "Plan"
+msgid "Extra"
+msgstr ""
+
+msgid "Move selected items from left to right."
+msgstr ""
+
+msgid "Move selected items from right to left."
+msgstr ""
+
+msgid "Cancel picking items."
 msgstr ""
 
 msgid "1"
@@ -4506,37 +4508,113 @@ msgstr ""
 msgid "Age range"
 msgstr ""
 
-msgid "Closed episodes"
+msgid "&Nicotine"
 msgstr ""
 
-msgid "Non-relevant issues"
+msgid "&Alcohol"
 msgstr ""
 
-msgid "Active problems"
+msgid "&Other:"
 msgstr ""
 
-msgid "Notes only"
+msgid "&Non-harmful use"
 msgstr ""
 
-msgid "Everything"
+msgid "&Harmful use"
 msgstr ""
 
-msgid ""
-"In this area GNUmed will place the notes of the\n"
-"previous encounter as well as notes by other\n"
-"staff for the current encounter.\n"
-"\n"
-"Note that this may change depending on which\n"
-"active problem is selected in the editor below."
+msgid "Presently &addicted"
 msgstr ""
 
-msgid "Most recent info on above problem"
+msgid "Previously &addicted"
 msgstr ""
 
-msgid "Show closed episodes as pseudo-problems ?"
+msgid "&Reconfirm as of today"
 msgstr ""
 
-msgid "Show issues marked clinically NOT relevant."
+msgid "Select for documenting smoking status."
+msgstr ""
+
+msgid "Select for documenting alcohol use status."
+msgstr ""
+
+msgid ""
+"Select for documenting use of substances other than nicotine or alcohol."
+msgstr ""
+
+msgid "Select the abused substance."
+msgstr ""
+
+msgid ""
+"Select if the substance use is not considered harmful (say, no use or non-"
+"harmful use)."
+msgstr ""
+
+msgid "Select if substance is use considered harmful."
+msgstr ""
+
+msgid "Select if the patient is presently addicted to this substance."
+msgstr ""
+
+msgid "Select if the patient was previously addicted to this substance."
+msgstr ""
+
+msgid ""
+"A comment on this substance use:\n"
+"- type of product used\n"
+"- frequency\n"
+"- amount\n"
+"- when started\n"
+"- attempts to quit\n"
+"..."
+msgstr ""
+
+msgid ""
+"When did the patient quit?\n"
+"\n"
+"You can also set a target quit date here."
+msgstr ""
+
+msgid "Check here to confirm for today."
+msgstr ""
+
+msgid "Quit date"
+msgstr ""
+
+msgid "Last confirmed"
+msgstr ""
+
+msgid "Closed episodes"
+msgstr ""
+
+msgid "Non-relevant issues"
+msgstr ""
+
+msgid "Active problems"
+msgstr ""
+
+msgid "Notes only"
+msgstr ""
+
+msgid "Everything"
+msgstr ""
+
+msgid ""
+"In this area GNUmed will place the notes of the\n"
+"previous encounter as well as notes by other\n"
+"staff for the current encounter.\n"
+"\n"
+"Note that this may change depending on which\n"
+"active problem is selected in the editor below."
+msgstr ""
+
+msgid "Most recent info on above problem"
+msgstr ""
+
+msgid "Show closed episodes as pseudo-problems ?"
+msgstr ""
+
+msgid "Show issues marked clinically NOT relevant."
 msgstr ""
 
 msgid ""
@@ -4842,20 +4920,18 @@ msgstr ""
 msgid "Show:"
 msgstr ""
 
-msgid "Brand by component"
+msgid "Kidneys"
 msgstr ""
 
 msgid "Brands"
 msgstr ""
 
-msgid "Kidneys"
-msgstr ""
-
-msgid "Unbranded substance"
+msgid "Substances"
 msgstr ""
 
-msgid "Manage"
-msgstr ""
+#, fuzzy
+msgid "&Unknown or date:"
+msgstr "statiu de alergie necunoscut"
 
 msgid "Approved of"
 msgstr ""
@@ -4870,22 +4946,18 @@ msgid "... Reason"
 msgstr ""
 
 msgid ""
-"A component of a drug brand the patient is taking.\n"
+"A drug the patient is taking.\n"
 "\n"
-"Lookup, and select, a single- (or multi-) component drug brand, by active "
-"ingredient name. All components of multi-component drugs will be displayed "
-"and automatically added to the patient's list."
-msgstr ""
-
-msgid ""
-"Manage drug brands.\n"
+"Lookup and select an intake by either of\n"
+"- a generic substance name\n"
+"- a drug brand name\n"
+"- an active ingredient of a drug\n"
 "\n"
-"Note that this will not select a component for you. What it does is to let "
-"you manage (add/edit/delete) the drug products/brands known to GNUmed from "
-"which you can select a component."
+"Note that all components of multi-component drugs will be displayed and "
+"automatically added to the patient's list."
 msgstr ""
 
-msgid "The active ingredients of this brand."
+msgid "Details on the selected drug."
 msgstr ""
 
 msgid "Show cardiac information relevant to substance selection."
@@ -4895,8 +4967,11 @@ msgid "Show renal insufficiency information related to substance selection."
 msgstr ""
 
 msgid ""
-"The non-branded medication or non-medication substance, with optional "
-"strength."
+"Manage drug brands.\n"
+"\n"
+"Note that this will not select a component for you. What it does is to let "
+"you manage (add/edit/delete) the drug products/brands known to GNUmed from "
+"which you can select a component."
 msgstr ""
 
 msgid ""
@@ -4909,11 +4984,19 @@ msgstr ""
 msgid "The preparation or form of the substance."
 msgstr ""
 
+msgid "Check here if the start date simply isn't known."
+msgstr ""
+
 msgid ""
 "When was this substance started to be consumed or - if not known - the "
 "earliest it is known to have been be consumed."
 msgstr ""
 
+msgid ""
+"A coment on the certainty of the start date, such as \"+/- 3 weeks\", "
+"\"spring of 2002\", \"shortly after Easter 1996\", ...."
+msgstr ""
+
 msgid "Whether this substance is taken by advice."
 msgstr ""
 
@@ -4947,6 +5030,15 @@ msgstr ""
 msgid "Reason for discontinuation."
 msgstr ""
 
+msgid "Drug"
+msgstr ""
+
+msgid "Research:"
+msgstr ""
+
+msgid "Certainty:"
+msgstr ""
+
 msgid "Schedule"
 msgstr ""
 
@@ -5098,6 +5190,30 @@ msgstr ""
 msgid "Channel"
 msgstr ""
 
+msgid "&Last modification time"
+msgstr ""
+
+msgid "&Entry time"
+msgstr ""
+
+msgid "Show journal ordered by encounter."
+msgstr ""
+
+msgid "Show journal ordered by time of last modification."
+msgstr ""
+
+msgid "Show journal ordered by actual clinical time of each entry."
+msgstr ""
+
+msgid "Edit the selected chart entry."
+msgstr ""
+
+msgid "Delete selected chart entry."
+msgstr ""
+
+msgid "Order by:"
+msgstr ""
+
 msgid "Chec&k"
 msgstr ""
 
@@ -5639,10 +5755,13 @@ msgstr ""
 msgid "Documents:"
 msgstr ""
 
+msgid "&L"
+msgstr ""
+
 msgid "&N"
 msgstr ""
 
-msgid "&L"
+msgid "List all encounters."
 msgstr ""
 
 msgid "The encounter."
@@ -5651,9 +5770,6 @@ msgstr ""
 msgid "Start a new encounter for the active patient."
 msgstr ""
 
-msgid "List all encounters."
-msgstr ""
-
 msgid "Clinically relevant"
 msgstr ""
 
@@ -5902,7 +6018,8 @@ msgstr ""
 
 msgid ""
 "Rationale for\n"
-"suppression"
+"suppression\n"
+"for this patient"
 msgstr ""
 
 msgid "Save &under"
@@ -5958,6 +6075,12 @@ msgstr ""
 msgid "Encounter:"
 msgstr ""
 
+msgid "Manage"
+msgstr ""
+
+msgid "&Panel:"
+msgstr ""
+
 msgid "&Pick"
 msgstr ""
 
@@ -6000,6 +6123,9 @@ msgid ""
 "To disable that popup leave the message empty."
 msgstr ""
 
+msgid "Show search dialog."
+msgstr ""
+
 msgid "THIS IS NOT A VERIFIED MEASUREMENT. DO NOT USE FOR ACTUAL CARE."
 msgstr ""
 
@@ -6280,6 +6406,46 @@ msgstr "*are* au alergii"
 msgid "ERROR: unknown allergy state [%s]"
 msgstr "EROARE: statiu de alergie necunoscut [% s]"
 
+msgid "definite"
+msgstr ""
+
+msgid "indefinite"
+msgstr ""
+
+msgid "Reaction:"
+msgstr ""
+
+msgid "Noted:"
+msgstr ""
+
+msgid "Allergene:"
+msgstr ""
+
+msgid "Substance:"
+msgstr ""
+
+msgid "Code:"
+msgstr ""
+
+msgid "ATC:"
+msgstr ""
+
+msgid "Specific to:"
+msgstr ""
+
+msgid "this substance only"
+msgstr ""
+
+msgid "drug class"
+msgstr ""
+
+msgid "unknown"
+msgstr ""
+
+#, fuzzy
+msgid "Generics:"
+msgstr "mesaj generic de informare"
+
 msgid "Medication history"
 msgstr ""
 
@@ -6289,9 +6455,15 @@ msgstr ""
 msgid "prescription data"
 msgstr ""
 
+msgid "Consumable substance"
+msgstr ""
+
 msgid "in use"
 msgstr ""
 
+msgid "w/"
+msgstr ""
+
 msgid "long-term"
 msgstr ""
 
@@ -6311,6 +6483,35 @@ msgid "?ongoing"
 msgstr ""
 
 #, python-format
+msgid ""
+"Substance abuse entry                                              [#%s]\n"
+msgstr ""
+
+#, python-format
+msgid "Substance: %s [#%s]%s\n"
+msgstr ""
+
+#, python-format
+msgid "Use type: %s\n"
+msgstr ""
+
+#, python-format
+msgid "Last checked: %s\n"
+msgstr ""
+
+#, python-format
+msgid " Discontinued %s\n"
+msgstr ""
+
+#, python-format
+msgid " Notes: %s\n"
+msgstr ""
+
+#, python-format
+msgid "Revision: #%(row_ver)s, %(mod_when)s by %(mod_by)s."
+msgstr ""
+
+#, python-format
 msgid "Substance intake entry (%s, %s)   [#%s]                     \n"
 msgstr ""
 
@@ -6326,9 +6527,6 @@ msgstr ""
 msgid "unapproved"
 msgstr ""
 
-msgid "definite"
-msgstr ""
-
 msgid "suspected"
 msgstr ""
 
@@ -6375,10 +6573,6 @@ msgid " (short-term)"
 msgstr ""
 
 #, python-format
-msgid " Discontinued %s\n"
-msgstr ""
-
-#, python-format
 msgid " Reason: %s\n"
 msgstr ""
 
@@ -6398,16 +6592,59 @@ msgstr ""
 msgid " Advice: %s\n"
 msgstr ""
 
+msgid "medication, not abuse"
+msgstr ""
+
+msgid "no or non-harmful use"
+msgstr ""
+
+msgid "presently harmful use"
+msgstr ""
+
+msgid "presently addicted"
+msgstr ""
+
+msgid "previously addicted"
+msgstr ""
+
 #, python-format
-msgid "Revision: #%(row_ver)s, %(mod_when)s by %(mod_by)s."
+msgid "%s%s: %s ago%s"
+msgstr ""
+
+#, python-format
+msgid "%s%s: %s ago (%s)"
+msgstr ""
+
+#, python-format
+msgid "%s%s%s (%s ago)"
+msgstr ""
+
+#, python-format
+msgid "%s%s%s (%s ago, %s)"
+msgstr ""
+
+#, python-format
+msgid "%s ago"
+msgstr ""
+
+#, python-format
+msgid "in %s"
+msgstr ""
+
+#, python-format
+msgid ", until %s (%s)"
+msgstr ""
+
+#, python-format
+msgid " (planned for %s%s)"
 msgstr ""
 
 #, python-format
-msgid "%s: %s ago"
+msgid ", planned for %s%s"
 msgstr ""
 
 #, python-format
-msgid "%s: %s ago (%s)"
+msgid "%s ago (for %s: %s %s %s)"
 msgstr ""
 
 msgid "Additional notes"
@@ -6422,10 +6659,31 @@ msgstr ""
 msgid "ordered by brand"
 msgstr ""
 
-msgid "Drug"
+msgid "Regimen / Advice"
 msgstr ""
 
-msgid "Regimen / Advice"
+#, python-format
+msgid "Component of %s (%s)"
+msgstr ""
+
+#, python-format
+msgid "ATC (substance): %s"
+msgstr ""
+
+#, python-format
+msgid "ATC (brand): %s"
+msgstr ""
+
+msgid "this is a component of a fake brand"
+msgstr ""
+
+msgid "Components:"
+msgstr ""
+
+msgid "this is a fake brand"
+msgstr ""
+
+msgid "this is a vaccine"
 msgstr ""
 
 msgid "units"
@@ -6460,62 +6718,28 @@ msgstr ""
 msgid "Expires: %s\n"
 msgstr ""
 
-msgid "Active clinical hint"
+msgid "HL7 Source"
 msgstr ""
 
-msgid "Inactive clinical hint"
+msgid "HL7 data size"
 msgstr ""
 
 #, python-format
-msgid "Source: %s\n"
+msgid "%s bytes"
 msgstr ""
 
-#, python-format
-msgid "Language: %s\n"
+msgid "HL7 Message"
 msgstr ""
 
-msgid "Suppressed active dynamic hint"
+#, python-format
+msgid " %s segments (lines)%s"
 msgstr ""
 
-msgid "Suppressed inactive dynamic hint"
+msgid ", skipping empty fields"
 msgstr ""
 
 #, python-format
-msgid "Suppressed by: %s\n"
-msgstr ""
-
-#, python-format
-msgid "Suppressed at: %s\n"
-msgstr ""
-
-#, python-format
-msgid "Hint #: %s\n"
-msgstr ""
-
-#, python-format
-msgid "Patient #: %s\n"
-msgstr ""
-
-#, python-format
-msgid "MD5 (currently): %s\n"
-msgstr ""
-
-#, python-format
-msgid "MD5 (at suppression): %s\n"
-msgstr ""
-
-msgid "HL7 Message"
-msgstr ""
-
-#, python-format
-msgid " %s segments (lines)%s"
-msgstr ""
-
-msgid ", skipping empty fields"
-msgstr ""
-
-#, python-format
-msgid "Segment #%s <%s>"
+msgid "Segment #%s <%s>"
 msgstr ""
 
 #, python-format
@@ -6557,13 +6781,6 @@ msgstr ""
 msgid "doc: %s"
 msgstr ""
 
-msgid "no patient photograph available"
-msgstr ""
-
-#, python-format
-msgid "patient photograph from %s"
-msgstr ""
-
 msgid "Patient data for"
 msgstr ""
 
@@ -6573,6 +6790,9 @@ msgstr ""
 msgid "Patient data export"
 msgstr ""
 
+msgid "no patient photograph available"
+msgstr ""
+
 msgid "Documents"
 msgstr ""
 
@@ -6582,6 +6802,10 @@ msgstr ""
 msgid "browse documents area"
 msgstr ""
 
+#, python-format
+msgid "patient photograph from %s"
+msgstr ""
+
 msgid "Browse patient data"
 msgstr ""
 
@@ -6616,24 +6840,24 @@ msgstr ""
 #, python-format
 msgid ""
 "%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s %(suburb)s, "
-"%(code_state)s, %(code_country)s"
+"%(code_region)s, %(code_country)s"
 msgstr ""
 
 #, python-format
 msgid ""
 "%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s %(suburb)s, "
-"%(code_state)s, %(code_country)s"
+"%(code_region)s, %(code_country)s"
 msgstr ""
 
 #, python-format
 msgid ""
-"%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_state)s, "
-"%(code_country)s"
+"%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, "
+"%(code_region)s, %(code_country)s"
 msgstr ""
 
 #, python-format
 msgid ""
-"%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_state)s, "
+"%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_region)s, "
 "%(code_country)s"
 msgstr ""
 
@@ -6643,7 +6867,7 @@ msgid ""
 " Street: %(street)s%(notes_street)s\n"
 " Number/Unit: %(number)s%(subunit)s%(notes_subunit)s\n"
 " Location: %(zip)s %(urb)s%(suburb)s\n"
-" Region: %(l10n_state)s, %(code_state)s\n"
+" Region: %(l10n_region)s, %(code_region)s\n"
 " Country: %(l10n_country)s, %(code_country)s"
 msgstr ""
 
@@ -6653,7 +6877,7 @@ msgid ""
 " Street: %(street)s%(notes_street)s\n"
 " Number/Unit: %(number)s%(subunit)s%(notes_subunit)s\n"
 " Location: %(zip)s %(urb)s%(suburb)s\n"
-" Region: %(l10n_state)s, %(code_state)s\n"
+" Region: %(l10n_region)s, %(code_region)s\n"
 " Country: %(l10n_country)s, %(code_country)s"
 msgstr ""
 
@@ -6722,6 +6946,86 @@ msgstr ""
 msgid "missing, reported later"
 msgstr ""
 
+msgid "Health issue"
+msgstr ""
+
+msgid "External care"
+msgstr ""
+
+msgid "Vaccination"
+msgstr ""
+
+msgid "Clinical narrative"
+msgstr ""
+
+msgid "Test result"
+msgstr ""
+
+msgid "Substance intake"
+msgstr ""
+
+msgid "Hospital stay"
+msgstr ""
+
+msgid "Performed procedure"
+msgstr ""
+
+msgid "Family history"
+msgstr ""
+
+msgid "Document"
+msgstr ""
+
+#, python-format
+msgid "unmapped entry type from table [%s]"
+msgstr ""
+
+#, python-format
+msgid "cannot instantiate clinical root item <%s(%s)>"
+msgstr ""
+
+msgid "True"
+msgstr ""
+
+msgid "False"
+msgstr ""
+
+#, fuzzy
+msgid "unknown smoking status"
+msgstr "statiu de alergie necunoscut"
+
+msgid "non-smoker"
+msgstr ""
+
+msgid "current smoker"
+msgstr ""
+
+msgid "ex-smoker"
+msgstr ""
+
+msgid "tobacco addiction"
+msgstr ""
+
+msgid "no or non-harmful alcohol use"
+msgstr ""
+
+msgid "harmful alcohol use"
+msgstr ""
+
+#, fuzzy
+msgid "unknown alcohol use"
+msgstr "statiu de alergie necunoscut"
+
+msgid "no or non-harmful drug use"
+msgstr ""
+
+msgid "harmful drug use"
+msgstr ""
+
+#, fuzzy
+msgid "unknown drug use"
+msgstr "statiu de alergie necunoscut"
+
 msgid "original entry"
 msgstr ""
 
@@ -6813,13 +7117,6 @@ msgstr ""
 msgid "Vaccinations"
 msgstr ""
 
-#, python-format
-msgid "%s ago"
-msgstr ""
-
-msgid "External care"
-msgstr ""
-
 msgid "Allergies/Intolerances"
 msgstr ""
 
@@ -6893,76 +7190,126 @@ msgid ""
 "The account was deactivated instead."
 msgstr ""
 
+msgid "SOAP_char_S=S"
+msgstr ""
+
+msgid "SOAP_char_O=O"
+msgstr ""
+
+msgid "SOAP_char_A=A"
+msgstr ""
+
+msgid "SOAP_char_P=P"
+msgstr ""
+
+msgid "SOAP_char_U=U"
+msgstr ""
+
+msgid "SOAP_string_Subjective=Subjective"
+msgstr ""
+
+msgid "SOAP_string_Objective=Objective"
+msgstr ""
+
+msgid "SOAP_string_Assessment=Assessment"
+msgstr ""
+
+msgid "SOAP_string_Plan=Plan"
+msgstr ""
+
+msgid "SOAP_string_Unspecified=Unspecified"
+msgstr ""
+
+msgid "SOAP_string_Administrative=Administrative"
+msgstr ""
+
+msgid "Active clinical hint"
+msgstr ""
+
+msgid "Inactive clinical hint"
+msgstr ""
+
 #, python-format
-msgid "Device(%s):"
+msgid "Source: %s\n"
 msgstr ""
 
-msgid "Battery:"
+#, python-format
+msgid "Language: %s\n"
 msgstr ""
 
-msgid "Implanted:"
+msgid "Suppressed active dynamic hint"
 msgstr ""
 
-msgid "last check:"
+msgid "Suppressed inactive dynamic hint"
 msgstr ""
 
-msgid "Sensing:"
+#, python-format
+msgid "Suppressed by: %s\n"
 msgstr ""
 
-msgid "Threshold"
+#, python-format
+msgid "Suppressed at: %s\n"
 msgstr ""
 
-msgid "Impedance:"
+#, python-format
+msgid "Hint #: %s\n"
 msgstr ""
 
 #, python-format
-msgid "Praxis branch                   #%s\n"
+msgid "Patient #: %s\n"
 msgstr ""
 
-msgid "Privacy notice"
+#, python-format
+msgid "MD5 (currently): %s\n"
 msgstr ""
 
 #, python-format
-msgid ""
-"%s: Your chart has been accessed by %s (without user interaction, probably "
-"by a script)."
+msgid "MD5 (at suppression): %s\n"
 msgstr ""
 
 #, python-format
-msgid "%s: Staff member %s has been notified of your chart access."
+msgid "Device(%s):"
 msgstr ""
 
-msgid "soap_S"
+msgid "Battery:"
 msgstr ""
 
-msgid "soap_O"
+msgid "Implanted:"
 msgstr ""
 
-msgid "soap_A"
+msgid "last check:"
 msgstr ""
 
-msgid "soap_P"
+msgid "Sensing:"
 msgstr ""
 
-msgid "soap_U"
+msgid "Threshold"
 msgstr ""
 
-msgid "soap_Subjective"
+msgid "Impedance:"
 msgstr ""
 
-msgid "soap_Objective"
+#, python-format
+msgid "Praxis branch                   #%s\n"
 msgstr ""
 
-msgid "soap_Assessment"
+#, python-format
+msgid ""
+"FN:%(l10n_unit_category)s %(branch)s of %(l10n_organization_category)s "
+"%(praxis)s"
 msgstr ""
 
-msgid "soap_Plan"
+msgid "Privacy notice"
 msgstr ""
 
-msgid "soap_Unspecified"
+#, python-format
+msgid ""
+"%s: Your chart has been accessed by %s (without user interaction, probably "
+"by a script)."
 msgstr ""
 
-msgid "soap_Administrative"
+#, python-format
+msgid "%s: Staff member %s has been notified of your chart access."
 msgstr ""
 
 #, python-format
@@ -7029,9 +7376,17 @@ msgid "%(last)s,%(title)s %(first)s%(nick)s (%(sex)s)"
 msgstr ""
 
 #, python-format
+msgid "%(last)s,%(title)s %(first)s (%(sex)s)"
+msgstr ""
+
+#, python-format
 msgid "%(last)s,%(title)s %(first)s%(nick)s"
 msgstr ""
 
+#, python-format
+msgid "%(last)s,%(title)s %(first)s"
+msgstr ""
+
 msgid "Cannot merge active patient into another patient."
 msgstr ""
 
@@ -7041,9 +7396,6 @@ msgstr ""
 msgid "merged"
 msgstr ""
 
-msgid "preferred name/call name/..."
-msgstr ""
-
 msgid "invalid age: DOB in the future"
 msgstr ""
 
@@ -7056,9 +7408,6 @@ msgstr ""
 msgid "Mrs"
 msgstr ""
 
-msgid "unknown"
-msgstr ""
-
 msgid "empty status"
 msgstr ""
 
@@ -7389,7 +7738,7 @@ msgid " Part %s: %s %s(%s Bytes)\n"
 msgstr ""
 
 #, python-format
-msgid " Filename: %s\n"
+msgid " Filename: %s%s\n"
 msgstr ""
 
 msgid "no parts"
@@ -7403,18 +7752,25 @@ msgid "%s parts"
 msgstr ""
 
 #, python-format
+msgid "%s of %s"
+msgstr ""
+
+#, python-format
 msgid ""
 "%s (%s)   #%s\n"
-"\n"
 " Created: %s\n"
 " Episode: %s\n"
-"%s%s%s"
+"%s%s%s%s"
 msgstr ""
 
 #, python-format
 msgid " External reference: %s\n"
 msgstr ""
 
+#, python-format
+msgid " Organization: %%s @ %s\n"
+msgstr ""
+
 msgid "Cannot run [arriba] !"
 msgstr ""
 
@@ -7759,23 +8115,7 @@ msgid "External care:"
 msgstr ""
 
 #, python-format
-msgid ""
-"health issue: %s%s%s\n"
-"\n"
-msgstr ""
-
-msgid ""
-"\n"
-"current values:\n"
-msgstr ""
-
-msgid "no previous versions of this record"
-msgstr ""
-
-msgid ""
-"\n"
-"all values with <audit_action>, <audit_when>, <audit_by> fields (current "
-"value first):\n"
+msgid "Health issue: %s%s%s"
 msgstr ""
 
 msgid "Unattributed episodes"
@@ -7799,9 +8139,6 @@ msgstr ""
 msgid "finished"
 msgstr ""
 
-msgid "Health issue"
-msgstr ""
-
 msgid "none associated"
 msgstr ""
 
@@ -7837,9 +8174,7 @@ msgid "Measurements and Results:"
 msgstr ""
 
 #, python-format
-msgid ""
-"episode: %s%s%s\n"
-"\n"
+msgid "Episode: %s%s%s"
 msgstr ""
 
 #, python-format
@@ -7867,9 +8202,7 @@ msgid "%s other episodes touched upon during this encounter:"
 msgstr ""
 
 #, python-format
-msgid ""
-"encounter: %s%s%s\n"
-"\n"
+msgid "Encounter: %s%s%s"
 msgstr ""
 
 msgid " (ongoing)"
@@ -7890,9 +8223,6 @@ msgstr ""
 msgid "Procedures"
 msgstr ""
 
-msgid "Substances"
-msgstr ""
-
 msgid "Life events"
 msgstr ""
 
@@ -7914,9 +8244,6 @@ msgstr ""
 msgid "Cannot display timeline."
 msgstr ""
 
-msgid "Vaccination"
-msgstr ""
-
 msgid "Lab result"
 msgstr ""
 
@@ -7984,9 +8311,6 @@ msgstr ""
 msgid "Exported: %s\n"
 msgstr ""
 
-msgid "emr-journal"
-msgstr ""
-
 msgid "Chronological EMR Journal\n"
 msgstr ""
 
@@ -8254,36 +8578,155 @@ msgstr ""
 msgid "Select one or more codes that apply."
 msgstr ""
 
-msgid "Cannot move progress notes. No active patient."
+msgid "Select the narrative you are interested in ..."
 msgstr ""
 
-msgid "Moving progress notes between encounters ..."
+msgid "when"
 msgstr ""
 
-msgid ""
-"\n"
-" Select the progress notes to move from the list !\n"
-"\n"
+msgid "who"
 msgstr ""
 
-msgid "when"
+msgid "entry"
 msgstr ""
 
-msgid "who"
+msgid "There is no narrative for this episode in this encounter."
 msgstr ""
 
-msgid "entry"
+msgid "Must select episode to move narrative to first."
 msgstr ""
 
-msgid "Cannot edit progress notes. No active patient."
+msgid "Last"
 msgstr ""
 
-msgid "Deleting progress note"
+msgid "In health issue"
 msgstr ""
 
-msgid ""
-"Are you positively sure you want to delete this\n"
-"progress note from the medical record ?\n"
+msgid "Most recent notes on selected problem"
+msgstr ""
+
+#, python-format
+msgid "%s (active+potential) problems"
+msgstr ""
+
+#, python-format
+msgid "%s active problems"
+msgstr ""
+
+msgid "Current encounter:"
+msgstr ""
+
+msgid "Cumulative summary"
+msgstr ""
+
+#, python-format
+msgid "Most recent info on %s%s%s"
+msgstr ""
+
+#, python-format
+msgid ""
+"Cannot open progress note editor for\n"
+"\n"
+"[%s].\n"
+"\n"
+msgstr ""
+
+msgid "opening progress note editor"
+msgstr ""
+
+msgid "Cannot save all editors. Some were kept open."
+msgstr ""
+
+msgid "new problem"
+msgstr ""
+
+msgid ""
+"Are you sure you really want to\n"
+"discard this progress note ?\n"
+msgstr ""
+
+msgid "Discarding progress note"
+msgstr ""
+
+msgid "There are unsaved progress notes !\n"
+msgstr ""
+
+msgid "Unsaved progress notes"
+msgstr ""
+
+msgid "Problem list"
+msgstr ""
+
+msgid "Saving SOAP note"
+msgstr ""
+
+msgid "Do you want to save the SOAP note ?"
+msgstr ""
+
+#, python-format
+msgid "&Filter by problem %s%s%s"
+msgstr ""
+
+msgid "Cannot save SimpleNotes SOAP note."
+msgstr ""
+
+#, python-format
+msgid "Progress note: %s%s"
+msgstr ""
+
+msgid "Please enter a name for the new problem:"
+msgstr ""
+
+msgid "Adding a problem"
+msgstr ""
+
+msgid "Cannot delete problem. There is still clinical data recorded for it."
+msgstr ""
+
+#, python-format
+msgid "GNUmed: configuring [%s] (%s plugins)"
+msgstr ""
+
+msgid "loading list of plugins                               "
+msgstr ""
+
+msgid "failed"
+msgstr ""
+
+msgid "success"
+msgstr ""
+
+#, python-format
+msgid ""
+"previous: %s (%s)\n"
+"current (%s/%s): %s"
+msgstr ""
+
+#, python-format
+msgid "Cannot switch to [%s]: no patient selected"
+msgstr ""
+
+msgid "Cannot move progress notes. No active patient."
+msgstr ""
+
+msgid "Moving progress notes between encounters ..."
+msgstr ""
+
+msgid ""
+"\n"
+" Select the progress notes to move from the list !\n"
+"\n"
+msgstr ""
+
+msgid "Cannot edit progress notes. No active patient."
+msgstr ""
+
+msgid "Deleting progress note"
+msgstr ""
+
+msgid ""
+"Are you positively sure you want to delete this\n"
+"progress note from the medical record ?\n"
 "\n"
 "Note that even if you chose to delete the entry it will\n"
 "still be (invisibly) kept in the audit trail to protect\n"
@@ -8474,965 +8917,884 @@ msgid ""
 " Now, mark the entries you want to include in your report.\n"
 msgstr ""
 
-msgid "Select the narrative you are interested in ..."
+msgid "Pick a date ..."
 msgstr ""
 
-msgid "There is no narrative for this episode in this encounter."
+msgid "<ALT-C/K>: pick from (c/k)alendar"
 msgstr ""
 
-msgid "Must select episode to move narrative to first."
+msgid "Cannot interpret input as timestamp."
 msgstr ""
 
-msgid "Last"
+msgid "No vaccines were chosen"
 msgstr ""
 
-msgid "In health issue"
+#, python-format
+msgid "Combination of indications , %s , not found in any vaccine"
 msgstr ""
 
-msgid "Most recent notes on selected problem"
+msgid "Sequence"
 msgstr ""
 
-#, python-format
-msgid "%s (active+potential) problems"
+msgid "Batch"
 msgstr ""
 
-#, python-format
-msgid "%s active problems"
+msgid "Vaccinator"
 msgstr ""
 
-msgid "Current encounter:"
+msgid ""
+"Vaccinations by Recommender (X = patient on regime, O = patient not on "
+"regime) "
 msgstr ""
 
-msgid "Cumulative summary"
+msgid "enrolled regime vaccinations not yet given"
 msgstr ""
 
-#, python-format
-msgid "Most recent info on %s%s%s"
+msgid "Proceed with "
 msgstr ""
 
 #, python-format
-msgid ""
-"Cannot open progress note editor for\n"
-"\n"
-"[%s].\n"
-"\n"
+msgid "Failed to enrol patient in %s"
 msgstr ""
 
-msgid "opening progress note editor"
+#, python-format
+msgid "Failed to  delist patient from %s"
 msgstr ""
 
-msgid "Cannot save all editors. Some were kept open."
+msgid "Missing GNUmed module"
 msgstr ""
 
-msgid "new problem"
+#, python-format
+msgid ""
+"GNUmed detected that parts of it are not\n"
+"properly installed. The following message\n"
+"names the missing part:\n"
+"\n"
+" \"%s\"\n"
+"\n"
+"Please make sure to get the missing\n"
+"parts installed. Otherwise some of the\n"
+"functionality will not be accessible."
 msgstr ""
 
+#, python-format
 msgid ""
-"Are you sure you really want to\n"
-"discard this progress note ?\n"
+"\n"
+" Source: %s"
 msgstr ""
 
-msgid "Discarding progress note"
+#, python-format
+msgid ""
+"\n"
+" Code: %s"
 msgstr ""
 
-msgid "There are unsaved progress notes !\n"
+#, python-format
+msgid ""
+"\n"
+" Details (first 250 characters):\n"
+"%s\n"
+"%s\n"
+"%s"
 msgstr ""
 
-msgid "Unsaved progress notes"
+msgid "Access violation"
 msgstr ""
 
 #, python-format
-msgid "Synopsis (%s)"
+msgid ""
+"You do not have access to this part of GNUmed.\n"
+"\n"
+"%s"
 msgstr ""
 
-msgid ""
-"Enter a short working name for this new problem\n"
-"(which will become a new, unassociated episode):\n"
+msgid "Lost connection"
 msgstr ""
 
-#, python-format
 msgid ""
-"Enter a short working name for this new\n"
-"episode under the existing health issue\n"
+"Since you were last working in GNUmed,\n"
+"your database connection timed out.\n"
 "\n"
-"\"%s\":\n"
+"This GNUmed session is now expired.\n"
+"\n"
+"You will have to close this client and\n"
+"restart a new GNUmed session."
 msgstr ""
 
-msgid "Creating problem (episode) to save notelet under ..."
+msgid ""
+"Please enter a short note on what you\n"
+"were about to do in GNUmed:"
 msgstr ""
 
-msgid "Cannot save a new problem without a name."
+msgid "Sending bug report"
 msgstr ""
 
-msgid "saving progress note"
+msgid ""
+"Edit the list of email addresses to send the\n"
+"bug report to (separate addresses by spaces).\n"
+"\n"
+"Note that <gnumed-bugs at gnu.org> refers to\n"
+"the public (!) GNUmed bugs mailing list."
 msgstr ""
 
 #, python-format
 msgid ""
-"The new episode:\n"
+"Your bug report will be sent to:\n"
 "\n"
-" \"%s\"\n"
+"%s\n"
 "\n"
-"will remain unassociated despite the editor\n"
-"having been invoked from the health issue:\n"
+"Make sure you have reviewed the log file for potentially\n"
+"sensitive information before sending out the bug report.\n"
 "\n"
-" \"%s\""
-msgstr ""
-
-msgid "You need to actually set an editor."
+"Note that emailing the report may take a while depending\n"
+"on the speed of your internet connection.\n"
 msgstr ""
 
-#, python-format
-msgid "The command [%s] is not found."
+msgid "Yes, send the bug report."
 msgstr ""
 
-#, python-format
-msgid ""
-"Enter the shell command with which to start\n"
-"the image editor for visual progress notes.\n"
-"\n"
-"Any \"%(img)s\" included with the arguments\n"
-"will be replaced by the file name of the\n"
-"note template."
+msgid "No, do not send the bug report."
 msgstr ""
 
-msgid "Choose file to use as template for new visual progress note"
+msgid "include log file in bug report"
 msgstr ""
 
-msgid "Visual progress note source"
+msgid ""
+"The database you are connected to is marked as\n"
+"\"in-production with controlled access\".\n"
+"\n"
+"You indicated that you want to include the log\n"
+"file in your bug report. While this is often\n"
+"useful for debugging the log file might contain\n"
+"bits of patient data which must not be sent out\n"
+"without de-identification.\n"
+"\n"
+"Please confirm that you want to include the log !"
 msgstr ""
 
-msgid "From which source do you want to pick the image template ?"
+msgid "<not supplied>"
 msgstr ""
 
-msgid "Database"
+msgid "Bug report has been emailed."
 msgstr ""
 
-msgid "List of templates in the database."
+msgid "Bug report COULD NOT be emailed."
 msgstr ""
 
-msgid "Files in the filesystem."
+msgid "Underweight"
 msgstr ""
 
-msgid "Device"
+msgid "63< Normal >79"
 msgstr ""
 
-msgid "Image capture devices (scanners, cameras, etc)"
+msgid "63 - Normal - 79"
 msgstr ""
 
-#, python-format
-msgid "Cannot export visual progress note template for [%s]."
+msgid "Overweight"
 msgstr ""
 
-msgid "Cannot export visual progress note to file."
+msgid "Obese"
 msgstr ""
 
-msgid "Editor for visual progress note not configured."
+msgid "Current height/mass"
 msgstr ""
 
-#, python-format
-msgid ""
-"There was a problem with running the editor\n"
-"for visual progress notes.\n"
-"\n"
-" [%s]\n"
-"\n"
+msgid "Height (cm)"
 msgstr ""
 
-msgid "Editing visual progress note"
+msgid "Mass (kg)"
 msgstr ""
 
-#, python-format
-msgid ""
-"There was a problem reading the visual\n"
-"progress note from the file:\n"
-"\n"
-" [%s]\n"
-"\n"
+msgid "Adjusted Values"
 msgstr ""
 
-msgid "Saving visual progress note"
+msgid "Goal mass"
 msgstr ""
 
-msgid ""
-"You either created a visual progress note from a template\n"
-"in the database (rather than from a file on disk) or you\n"
-"edited an existing visual progress note.\n"
-"\n"
-"The template/original was not modified at all, however.\n"
-"\n"
-"Do you still want to save the unmodified image as a\n"
-"visual progress note into the EMR of the patient ?\n"
+msgid "kg to lose"
 msgstr ""
 
-msgid "visual progress notes"
+msgid "BMI Calculator"
 msgstr ""
 
-#, python-format
-msgid "Created: %s"
+msgid "&Reset"
 msgstr ""
 
-msgid "Problem list"
+msgid "Select a healthcare provider."
 msgstr ""
 
-msgid "Saving SOAP note"
+msgid "Public (no clinical or demographic access)"
 msgstr ""
 
-msgid "Do you want to save the SOAP note ?"
+msgid "Staff (demographic access only)"
 msgstr ""
 
-#, python-format
-msgid "&Filter by problem %s%s%s"
+msgid "staff (clerical)"
 msgstr ""
 
-msgid "Cannot save SimpleNotes SOAP note."
+msgid "full clinical access"
 msgstr ""
 
-#, python-format
-msgid "Progress note: %s%s"
+msgid "DB account"
 msgstr ""
 
-msgid "Please enter a name for the new problem:"
+msgid "can login"
 msgstr ""
 
-msgid "Adding a problem"
+msgid "can not login"
 msgstr ""
 
-msgid "Cannot delete problem. There is still clinical data recorded for it."
+msgid "Activating GNUmed user."
 msgstr ""
 
-#, python-format
-msgid "GNUmed: configuring [%s] (%s plugins)"
+msgid "Deactivating GNUmed user."
 msgstr ""
 
-msgid "loading list of plugins                               "
+msgid "Removing GNUmed user."
 msgstr ""
 
-msgid "failed"
+msgid "Removing GNUmed user"
 msgstr ""
 
-msgid "success"
+msgid "Modifying GNUmed user."
 msgstr ""
 
-#, python-format
-msgid ""
-"previous: %s (%s)\n"
-"current (%s/%s): %s"
+msgid "Failed to save changes to GNUmed database user."
+msgstr ""
+
+msgid "Modifying GNUmed user"
 msgstr ""
 
 #, python-format
-msgid "Cannot switch to [%s]: no patient selected"
+msgid "Failed to set role [%s] for GNUmed database user."
 msgstr ""
 
-msgid "Pick a date ..."
+#, python-format
+msgid ""
+"\n"
+"  %s \"%s\" %s\n"
+"  born: %s"
 msgstr ""
 
-msgid "<ALT-C/K>: pick from (c/k)alendar"
+msgid ""
+"Password entries do not match. Please type in the passwords again to rule "
+"out typos."
 msgstr ""
 
-msgid "Cannot interpret input as timestamp."
+msgid "Adding GNUmed user"
 msgstr ""
 
-msgid "No vaccines were chosen"
+msgid ""
+"Are you positively sure you want to create\n"
+"a user with an empty password ?\n"
+"\n"
+"Think about the record access implications !"
 msgstr ""
 
-#, python-format
-msgid "Combination of indications , %s , not found in any vaccine"
+msgid "Enlisting person as user."
 msgstr ""
 
-msgid "Sequence"
+msgid "Encrypt"
 msgstr ""
 
-msgid "Batch"
+msgid "Decrypt"
 msgstr ""
 
-msgid "Vaccinator"
+msgid "Set pass phrase"
 msgstr ""
 
-msgid ""
-"Vaccinations by Recommender (X = patient on regime, O = patient not on "
-"regime) "
+msgid "This is not correctly encrypted text!"
 msgstr ""
 
-msgid "enrolled regime vaccinations not yet given"
+msgid "Please enter your pass phrase:"
 msgstr ""
 
-msgid "Proceed with "
+msgid "Pass phrase expired"
 msgstr ""
 
-#, python-format
-msgid "Failed to enrol patient in %s"
+msgid ""
+"\n"
+"Conditions preventable by vaccination as currently known to GNUmed.\n"
 msgstr ""
 
-#, python-format
-msgid "Failed to  delist patient from %s"
+msgid "Showing vaccination preventable conditions."
 msgstr ""
 
-msgid "Missing GNUmed module"
+msgid "ATCs: single-condition vaccines"
 msgstr ""
 
-#, python-format
-msgid ""
-"GNUmed detected that parts of it are not\n"
-"properly installed. The following message\n"
-"names the missing part:\n"
-"\n"
-" \"%s\"\n"
-"\n"
-"Please make sure to get the missing\n"
-"parts installed. Otherwise some of the\n"
-"functionality will not be accessible."
+msgid "ATCs: multi-condition vaccines"
 msgstr ""
 
-#, python-format
-msgid ""
-"\n"
-" Source: %s"
+msgid "Pick the relevant indications."
 msgstr ""
 
-#, python-format
-msgid ""
-"\n"
-" Code: %s"
+msgid "Known indications"
 msgstr ""
 
-#, python-format
-msgid ""
-"\n"
-" Details (first 250 characters):\n"
-"%s\n"
-"%s\n"
-"%s"
+msgid "Adding new vaccine"
 msgstr ""
 
-msgid "Access violation"
+msgid "Editing vaccine"
 msgstr ""
 
 #, python-format
 msgid ""
-"You do not have access to this part of GNUmed.\n"
+"Cannot delete vaccine\n"
 "\n"
-"%s"
+" %s - %s (#%s)\n"
+"\n"
+"It is probably documented in a vaccination."
 msgstr ""
 
-msgid "Lost connection"
+msgid "Deleting vaccine"
+msgstr ""
+
+msgid "fake"
 msgstr ""
 
 msgid ""
-"Since you were last working in GNUmed,\n"
-"your database connection timed out.\n"
-"\n"
-"This GNUmed session is now expired.\n"
 "\n"
-"You will have to close this client and\n"
-"restart a new GNUmed session."
+"The vaccines currently known to GNUmed.\n"
 msgstr ""
 
-msgid ""
-"Please enter a short note on what you\n"
-"were about to do in GNUmed:"
+msgid "Showing vaccines."
 msgstr ""
 
-msgid "Sending bug report"
+msgid "Enter or select the batch/lot number of the vaccine used."
 msgstr ""
 
-msgid ""
-"Edit the list of email addresses to send the\n"
-"bug report to (separate addresses by spaces).\n"
-"\n"
-"Note that <gnumed-bugs at gnu.org> refers to\n"
-"the public (!) GNUmed bugs mailing list."
+msgid "Saving vaccine"
 msgstr ""
 
 #, python-format
 msgid ""
-"Your bug report will be sent to:\n"
+"This vaccine is already in use:\n"
 "\n"
-"%s\n"
+" \"%s\"\n"
+" (%s)\n"
 "\n"
-"Make sure you have reviewed the log file for potentially\n"
-"sensitive information before sending out the bug report.\n"
+"Are you absolutely positively sure that\n"
+"you really want to edit this vaccine ?\n"
 "\n"
-"Note that emailing the report may take a while depending\n"
-"on the speed of your internet connection.\n"
-msgstr ""
-
-msgid "Yes, send the bug report."
+"This will change the vaccine name and/or target\n"
+"conditions in each patient this vaccine was\n"
+"used in to document a vaccination with.\n"
 msgstr ""
 
-msgid "No, do not send the bug report."
+msgid "You must select at least one indication."
 msgstr ""
 
-msgid "include log file in bug report"
+msgid "Pick the diseases this vaccine protects against."
 msgstr ""
 
-msgid ""
-"The database you are connected to is marked as\n"
-"\"in-production with controlled access\".\n"
-"\n"
-"You indicated that you want to include the log\n"
-"file in your bug report. While this is often\n"
-"useful for debugging the log file might contain\n"
-"bits of patient data which must not be sent out\n"
-"without de-identification.\n"
-"\n"
-"Please confirm that you want to include the log !"
+msgid "This vaccine"
 msgstr ""
 
-msgid "<not supplied>"
+msgid "Adding new vaccinations"
 msgstr ""
 
-msgid "Bug report has been emailed."
+msgid "Editing vaccination"
 msgstr ""
 
-msgid "Bug report COULD NOT be emailed."
+msgid "vaccination recall"
 msgstr ""
 
-msgid "Underweight"
+#, python-format
+msgid "vaccination recall (%s)"
 msgstr ""
 
-msgid "63< Normal >79"
-msgstr ""
-
-msgid "63 - Normal - 79"
-msgstr ""
-
-msgid "Overweight"
+#, python-format
+msgid ""
+"Existing vaccination:\n"
+"\n"
+"%s"
 msgstr ""
 
-msgid "Obese"
+msgid ""
+"\n"
+"Complete vaccination history for this patient.\n"
 msgstr ""
 
-msgid "Current height/mass"
+msgid "Showing vaccinations."
 msgstr ""
 
-msgid "Height (cm)"
+msgid "Intended to protect from"
 msgstr ""
 
-msgid "Mass (kg)"
+msgid "Print vaccinations or recalls."
 msgstr ""
 
-msgid "Adjusted Values"
+msgid "Recall"
 msgstr ""
 
-msgid "Goal mass"
+msgid "Add a recall for a vaccination"
 msgstr ""
 
-msgid "kg to lose"
+msgid "Vx schedules"
 msgstr ""
 
-msgid "BMI Calculator"
+msgid "Open a browser showing vaccination schedules."
 msgstr ""
 
-msgid "&Reset"
+msgid "prevention"
 msgstr ""
 
-msgid "Select a healthcare provider."
+msgid "Saving vaccination"
 msgstr ""
 
-msgid "Public (no clinical or demographic access)"
+msgid "Pick the diseases this vaccination was given against."
 msgstr ""
 
-msgid "Staff (demographic access only)"
+msgid "  IMMUNISATIONS  "
 msgstr ""
 
-msgid "staff (clerical)"
+msgid "Indications"
 msgstr ""
 
-msgid "full clinical access"
+msgid "Active Schedules"
 msgstr ""
 
-msgid "DB account"
+msgid "Missing Immunisations"
 msgstr ""
 
-msgid "can login"
+msgid "  Alerts  "
 msgstr ""
 
-msgid "can not login"
+msgid "ERROR: cannot retrieve active vaccination schedules"
 msgstr ""
 
-msgid "Activating GNUmed user."
+msgid "no active vaccination schedules"
 msgstr ""
 
-msgid "Deactivating GNUmed user."
+#, python-format
+msgid "%s for %s (%s shots): %s"
 msgstr ""
 
-msgid "Removing GNUmed user."
+msgid "ERROR: cannot retrieve due/overdue vaccinations"
 msgstr ""
 
-msgid "Removing GNUmed user"
+#, python-format
+msgid "%.0d weeks left: shot %s for %s in %s, due %s (%s)"
 msgstr ""
 
-msgid "Modifying GNUmed user."
+#, python-format
+msgid "overdue %.0dyrs %.0dwks: shot %s for %s in schedule \"%s\" (%s)"
 msgstr ""
 
-msgid "Failed to save changes to GNUmed database user."
+#, python-format
+msgid "due now: booster for %s in schedule \"%s\" (%s)"
 msgstr ""
 
-msgid "Modifying GNUmed user"
+#, python-format
+msgid "Synopsis (%s)"
 msgstr ""
 
-#, python-format
-msgid "Failed to set role [%s] for GNUmed database user."
+msgid ""
+"Enter a short working name for this new problem\n"
+"(which will become a new, unassociated episode):\n"
 msgstr ""
 
 #, python-format
 msgid ""
+"Enter a short working name for this new\n"
+"episode under the existing health issue\n"
 "\n"
-"  %s \"%s\" %s\n"
-"  born: %s"
+"\"%s\":\n"
 msgstr ""
 
-msgid ""
-"Password entries do not match. Please type in the passwords again to rule "
-"out typos."
+msgid "Creating problem (episode) to save notelet under ..."
 msgstr ""
 
-msgid "Adding GNUmed user"
+msgid "Cannot save a new problem without a name."
+msgstr ""
+
+msgid "saving progress note"
 msgstr ""
 
+#, python-format
 msgid ""
-"Are you positively sure you want to create\n"
-"a user with an empty password ?\n"
+"The new episode:\n"
 "\n"
-"Think about the record access implications !"
+" \"%s\"\n"
+"\n"
+"will remain unassociated despite the editor\n"
+"having been invoked from the health issue:\n"
+"\n"
+" \"%s\""
 msgstr ""
 
-msgid "Enlisting person as user."
+msgid "Adding substance abuse"
 msgstr ""
 
-msgid "Encrypt"
+msgid "Editing substance abuse"
 msgstr ""
 
-msgid "Decrypt"
+msgid "Substances abused by the patient:"
 msgstr ""
 
-msgid "Set pass phrase"
+msgid "Showing abused substances."
 msgstr ""
 
-msgid "This is not correctly encrypted text!"
+msgid "Intake"
 msgstr ""
 
-msgid "Please enter your pass phrase:"
+msgid "nicotine"
 msgstr ""
 
-msgid "Pass phrase expired"
+msgid "unit"
 msgstr ""
 
-msgid ""
-"\n"
-"Conditions preventable by vaccination as currently known to GNUmed.\n"
+#, python-format
+msgid "Latest: %s ago (%s %s%s%s%s)"
 msgstr ""
 
-msgid "Showing vaccination preventable conditions."
+#, python-format
+msgid "%s %s%s%s (%s ago, %s)"
 msgstr ""
 
-msgid "ATCs: single-condition vaccines"
+#, python-format
+msgid "overdue %s: %s"
 msgstr ""
 
-msgid "ATCs: multi-condition vaccines"
+#, python-format
+msgid "due in %s%s"
 msgstr ""
 
-msgid "Pick the relevant indications."
+msgid "suppr'd:"
 msgstr ""
 
-msgid "Known indications"
+msgid "Suppressed hints:\n"
 msgstr ""
 
-msgid "Adding new vaccine"
+msgid ""
+"Do you really want to\n"
+"delete this inbox message ?"
 msgstr ""
 
-msgid "Editing vaccine"
+msgid "Deleting inbox message"
+msgstr ""
+
+msgid "Export area: 1 item"
 msgstr ""
 
 #, python-format
-msgid ""
-"Cannot delete vaccine\n"
-"\n"
-" %s - %s (#%s)\n"
-"\n"
-"It is probably documented in a vaccination."
+msgid "Export area: %s items"
 msgstr ""
 
-msgid "Deleting vaccine"
+#, python-format
+msgid "%s %s more not shown %s"
 msgstr ""
 
-msgid "fake"
+#, python-format
+msgid "Currently %s entries in waiting list"
 msgstr ""
 
-msgid ""
-"\n"
-"The vaccines currently known to GNUmed.\n"
+#, python-format
+msgid "first (in GMd): %s, %s"
 msgstr ""
 
-msgid "Showing vaccines."
+#, python-format
+msgid "last: %s, %s"
 msgstr ""
 
-msgid "Enter or select the batch/lot number of the vaccine used."
+#, python-format
+msgid "Last %s:"
 msgstr ""
 
-msgid "Saving vaccine"
+msgid "Statistics cover period"
 msgstr ""
 
 #, python-format
+msgid "EDC (!?!): %s"
+msgstr ""
+
 msgid ""
-"This vaccine is already in use:\n"
-"\n"
-" \"%s\"\n"
-" (%s)\n"
-"\n"
-"Are you absolutely positively sure that\n"
-"you really want to edit this vaccine ?\n"
+"The Expected Date of Confinement is rather questionable.\n"
 "\n"
-"This will change the vaccine name and/or target\n"
-"conditions in each patient this vaccine was\n"
-"used in to document a vaccination with.\n"
+"Please check patient age, patient gender, time until/since EDC."
 msgstr ""
 
-msgid "You must select at least one indication."
+#, python-format
+msgid "%s Vacc: %s (latest of %s)"
 msgstr ""
 
-msgid "Pick the diseases this vaccine protects against."
+#, python-format
+msgid "Hx of addiction: %s"
 msgstr ""
 
-msgid "This vaccine"
+msgid "active substance abuse"
 msgstr ""
 
-msgid "Adding new vaccinations"
+#, python-format
+msgid "%s %s %s%s"
 msgstr ""
 
-msgid "Editing vaccination"
+#, python-format
+msgid "%s %s%s"
 msgstr ""
 
-msgid "vaccination recall"
+#, python-format
+msgid "** Currently hospitalized: %s **"
 msgstr ""
 
 #, python-format
-msgid "vaccination recall (%s)"
+msgid "emergency: %s"
 msgstr ""
 
 #, python-format
-msgid ""
-"Existing vaccination:\n"
-"\n"
-"%s"
+msgid "in-praxis: %s"
 msgstr ""
 
-msgid ""
-"\n"
-"Complete vaccination history for this patient.\n"
+#, python-format
+msgid "care: %s%s@%s"
 msgstr ""
 
-msgid "Showing vaccinations."
+msgid "*** CONFIDENTIAL ***"
 msgstr ""
 
-msgid "Intended to protect from"
+msgid " (confidential !)"
 msgstr ""
 
-msgid "Print vaccinations or recalls."
+#, python-format
+msgid "extrnl: %s (%s@%s)"
 msgstr ""
 
-msgid "Recall"
+#, python-format
+msgid "aka: %(last)s, %(first)s%(nick)s"
 msgstr ""
 
-msgid "Add a recall for a vaccination"
+#, python-format
+msgid "job: %s (%s)"
 msgstr ""
 
-msgid "Vx schedules"
+#, python-format
+msgid "issued by: %s%s"
 msgstr ""
 
-msgid "Open a browser showing vaccination schedules."
+#, python-format
+msgid "Last modified: %s"
 msgstr ""
 
-msgid "prevention"
+#, python-format
+msgid ""
+"Activities:\n"
+"\n"
+"%s"
 msgstr ""
 
-msgid "Saving vaccination"
+msgid "Cloning name"
 msgstr ""
 
-msgid "Pick the diseases this vaccination was given against."
+msgid "Editing external ID"
 msgstr ""
 
-msgid "  IMMUNISATIONS  "
+msgid "Adding new translation"
 msgstr ""
 
-msgid "Indications"
+msgid "Editing translation"
 msgstr ""
 
-msgid "Active Schedules"
+msgid "Selecting language for translation"
 msgstr ""
 
-msgid "Missing Immunisations"
+msgid ""
+"Please select the language the translations for which you want to work on."
 msgstr ""
 
-msgid "  Alerts  "
+#, python-format
+msgid ""
+"Are you sure you want to delete the translation of:\n"
+"\n"
+"%s\n"
+"\n"
+"into [%s] as:\n"
+"\n"
+"%s\n"
+"\n"
+"?  (Note that you must know the database administrator password !)\n"
 msgstr ""
 
-msgid "ERROR: cannot retrieve active vaccination schedules"
+msgid "Deleting translation from database"
 msgstr ""
 
-msgid "no active vaccination schedules"
+msgid "deleting a translation"
 msgstr ""
 
-#, python-format
-msgid "%s for %s (%s shots): %s"
+msgid "Contributing translations"
 msgstr ""
 
-msgid "ERROR: cannot retrieve due/overdue vaccinations"
+msgid "Do you want to contribute your translations to the GNUmed project ?"
 msgstr ""
 
-#, python-format
-msgid "%.0d weeks left: shot %s for %s in %s, due %s (%s)"
+msgid ""
+"Unable to send mail. Cannot contribute translations to GNUmed community."
 msgstr ""
 
-#, python-format
-msgid "overdue %.0dyrs %.0dwks: shot %s for %s in schedule \"%s\" (%s)"
-msgstr ""
-
-#, python-format
-msgid "due now: booster for %s in schedule \"%s\" (%s)"
-msgstr ""
-
-#, python-format
-msgid "Latest: %s ago (%s %s %s %s%s)"
+msgid "Thank you for your contribution to the GNUmed community!"
 msgstr ""
 
-#, python-format
-msgid "%s %s %s %s (%s ago, %s)"
+msgid "Showing translatable database strings for all languages."
 msgstr ""
 
 #, python-format
-msgid "overdue %s: %s"
+msgid "Showing translatable database strings for target language [%s]."
 msgstr ""
 
-#, python-format
-msgid "due in %s%s"
+msgid "Contribute translations to GNUmed community by email."
 msgstr ""
 
 msgid ""
-"Do you really want to\n"
-"delete this inbox message ?"
-msgstr ""
-
-msgid "Deleting inbox message"
-msgstr ""
-
-msgid "Export area: 1 item"
+"Before creating a new person review the encounter details\n"
+"of the patient you just worked on:\n"
 msgstr ""
 
-#, python-format
-msgid "Export area: %s items"
+msgid "Edit the current encounter of the patient you are ABOUT TO LEAVE:"
 msgstr ""
 
-#, python-format
-msgid "%s %s more not shown %s"
+msgid "Adding new person"
 msgstr ""
 
-#, python-format
-msgid "Currently %s entries in waiting list"
+msgid "ID exists !"
 msgstr ""
 
 #, python-format
-msgid "first (in GMd): %s, %s"
+msgid "One \"%s, %s (%s)\" already exists !"
 msgstr ""
 
 #, python-format
-msgid "last: %s, %s"
+msgid "%s \"%s, %s (%s)\" already exist !"
 msgstr ""
 
-#, python-format
-msgid "Last %s:"
+msgid "Must enter lastname."
 msgstr ""
 
-msgid "Statistics cover period"
+msgid "Must enter first name."
 msgstr ""
 
-#, python-format
-msgid "EDC (!?!): %s"
+msgid "Must select gender."
 msgstr ""
 
 msgid ""
-"The Expected Date of Confinement is rather questionable.\n"
-"\n"
-"Please check patient age, patient gender, time until/since EDC."
+"To properly create an address, all the related fields must be filled in."
 msgstr ""
 
-#, python-format
-msgid "%s Vacc: %s"
+msgid "Required fields"
 msgstr ""
 
-#, python-format
-msgid "%s %s %s%s"
+msgid "This field must contain an item selected from the dropdown list."
 msgstr ""
 
-#, python-format
-msgid "%s %s%s"
+msgid "Saving address"
 msgstr ""
 
-#, python-format
-msgid "** Currently hospitalized: %s **"
+msgid ""
+"Cannot save this address.\n"
+"\n"
+"You will have to add it via the Demographics plugin.\n"
 msgstr ""
 
-#, python-format
-msgid "emergency: %s"
+msgid ""
+"Address not saved.\n"
+"\n"
+"You will have to add it via the Demographics plugin.\n"
 msgstr ""
 
-#, python-format
-msgid "in-praxis: %s"
+msgid "You need to actually set an editor."
 msgstr ""
 
 #, python-format
-msgid "care: %s%s@%s"
-msgstr ""
-
-msgid "*** CONFIDENTIAL ***"
-msgstr ""
-
-msgid " (confidential !)"
+msgid "The command [%s] is not found."
 msgstr ""
 
 #, python-format
-msgid "extrnl: %s (%s@%s)"
+msgid ""
+"Enter the shell command with which to start\n"
+"the image editor for visual progress notes.\n"
+"\n"
+"Any \"%(img)s\" included with the arguments\n"
+"will be replaced by the file name of the\n"
+"note template."
 msgstr ""
 
-#, python-format
-msgid "aka: %(last)s, %(first)s%(nick)s"
+msgid "Choose file to use as template for new visual progress note"
 msgstr ""
 
-#, python-format
-msgid "job: %s (%s)"
+msgid "Visual progress note source"
 msgstr ""
 
-#, python-format
-msgid "issued by: %s%s"
+msgid "From which source do you want to pick the image template ?"
 msgstr ""
 
-#, python-format
-msgid "Last modified: %s"
+msgid "Database"
 msgstr ""
 
-#, python-format
-msgid ""
-"Activities:\n"
-"\n"
-"%s"
+msgid "List of templates in the database."
 msgstr ""
 
-msgid "Cloning name"
+msgid "Files in the filesystem."
 msgstr ""
 
-msgid "Editing external ID"
+msgid "Device"
 msgstr ""
 
-msgid "Adding new translation"
+msgid "Image capture devices (scanners, cameras, etc)"
 msgstr ""
 
-msgid "Editing translation"
+#, python-format
+msgid "Cannot export visual progress note template for [%s]."
 msgstr ""
 
-msgid "Selecting language for translation"
+msgid "Cannot export visual progress note to file."
 msgstr ""
 
-msgid ""
-"Please select the language the translations for which you want to work on."
+msgid "Editor for visual progress note not configured."
 msgstr ""
 
 #, python-format
 msgid ""
-"Are you sure you want to delete the translation of:\n"
-"\n"
-"%s\n"
-"\n"
-"into [%s] as:\n"
+"There was a problem with running the editor\n"
+"for visual progress notes.\n"
 "\n"
-"%s\n"
+" [%s]\n"
 "\n"
-"?  (Note that you must know the database administrator password !)\n"
-msgstr ""
-
-msgid "Deleting translation from database"
-msgstr ""
-
-msgid "deleting a translation"
-msgstr ""
-
-msgid "Contributing translations"
-msgstr ""
-
-msgid "Do you want to contribute your translations to the GNUmed project ?"
-msgstr ""
-
-msgid ""
-"Unable to send mail. Cannot contribute translations to GNUmed community."
-msgstr ""
-
-msgid "Thank you for your contribution to the GNUmed community!"
 msgstr ""
 
-msgid "Showing translatable database strings for all languages."
+msgid "Editing visual progress note"
 msgstr ""
 
 #, python-format
-msgid "Showing translatable database strings for target language [%s]."
-msgstr ""
-
-msgid "Contribute translations to GNUmed community by email."
-msgstr ""
-
 msgid ""
-"Before creating a new person review the encounter details\n"
-"of the patient you just worked on:\n"
+"There was a problem reading the visual\n"
+"progress note from the file:\n"
+"\n"
+" [%s]\n"
+"\n"
 msgstr ""
 
-msgid "Edit the current encounter of the patient you are ABOUT TO LEAVE:"
+msgid "Saving visual progress note"
 msgstr ""
 
-msgid "Adding new person"
+msgid ""
+"You either created a visual progress note from a template\n"
+"in the database (rather than from a file on disk) or you\n"
+"edited an existing visual progress note.\n"
+"\n"
+"The template/original was not modified at all, however.\n"
+"\n"
+"Do you still want to save the unmodified image as a\n"
+"visual progress note into the EMR of the patient ?\n"
 msgstr ""
 
-msgid "ID exists !"
+msgid "visual progress notes"
 msgstr ""
 
 #, python-format
-msgid "One \"%s, %s (%s)\" already exists !"
+msgid " [part 1 of %s]"
 msgstr ""
 
 #, python-format
-msgid "%s \"%s, %s (%s)\" already exist !"
-msgstr ""
-
-msgid "Must enter lastname."
-msgstr ""
-
-msgid "Must enter first name."
-msgstr ""
-
-msgid "Must select gender."
-msgstr ""
-
-msgid ""
-"To properly create an address, all the related fields must be filled in."
-msgstr ""
-
-msgid "Required fields"
-msgstr ""
-
-msgid "This field must contain an item selected from the dropdown list."
-msgstr ""
-
-msgid "Saving address"
-msgstr ""
-
-msgid ""
-"Cannot save this address.\n"
-"\n"
-"You will have to add it via the Demographics plugin.\n"
-msgstr ""
-
-msgid ""
-"Address not saved.\n"
-"\n"
-"You will have to add it via the Demographics plugin.\n"
+msgid "Created: %s%s"
 msgstr ""
 
 msgid "You must select a value from the picklist or type an exact match."
@@ -9515,7 +9877,8 @@ msgstr ""
 
 #, python-format
 msgid ""
-"%(street)s %(number)s, %(postcode)s %(urb)s, %(l10n_state)s, %(l10n_country)s"
+"%(street)s %(number)s, %(postcode)s %(urb)s, %(l10n_region)s, "
+"%(l10n_country)s"
 msgstr ""
 
 #, python-format
@@ -10102,7 +10465,7 @@ msgstr ""
 msgid ""
 "Cannot save address.\n"
 "\n"
-"Does the state [%s]\n"
+"Does the region [%s]\n"
 "exist in country [%s] ?"
 msgstr ""
 
@@ -10525,7 +10888,7 @@ msgstr ""
 msgid "Reminders for the current patient"
 msgstr ""
 
-msgid "Sent"
+msgid "Generated"
 msgstr ""
 
 msgid "Category - Type"
@@ -10573,9 +10936,6 @@ msgid ""
 "Data: %s"
 msgstr ""
 
-msgid "Inbox Message Actions:"
-msgstr ""
-
 msgid "Activate patient"
 msgstr ""
 
@@ -11263,7 +11623,7 @@ msgid ""
 msgstr ""
 
 #, python-format
-msgid "Select branch (of praxis [%s]) which you are logging in from.\n"
+msgid "Select the branch of praxis [%s] which you are logging in from.\n"
 msgstr ""
 
 msgid "Praxis branch selection ..."
@@ -11570,6 +11930,12 @@ msgstr ""
 msgid "List of addresses related to this person."
 msgstr ""
 
+msgid "Map"
+msgstr ""
+
+msgid "Show selected address on map"
+msgstr ""
+
 msgid "Adding new address"
 msgstr ""
 
@@ -11750,51 +12116,128 @@ msgstr ""
 msgid "generic multi choice dialog"
 msgstr ""
 
-msgid "Search in list"
+msgid "Deleting list items"
 msgstr ""
 
-msgid "Monty the Serpent && the FSF Present"
+#, python-format
+msgid ""
+"You have selected %s list items.\n"
+"\n"
+"Really delete all %s items ?"
 msgstr ""
 
-msgid "Free eMedicine"
+msgid ""
+"Select the items you want to work on.\n"
+"\n"
+"A discontinuous selection may depend on your holding down a platform-"
+"dependent modifier key (<CTRL>, <ALT>, etc) or key combination (eg. <CTRL-"
+"SHIFT> or <CTRL-ALT>) while clicking."
 msgstr ""
 
-#, python-format
-msgid "Version %s%s brought to you by"
+msgid "List Item Actions:"
 msgstr ""
 
-msgid "debug"
+msgid "Add (<INS>)"
 msgstr ""
 
-msgid "Please visit http://www.gnumed.org"
+msgid "Delete (<DEL>)"
+msgstr ""
+
+msgid "Find (<CTRL-F>)"
 msgstr ""
 
 #, python-format
-msgid ""
-"The following people kindly contributed to GNUmed.\n"
-"Please write to <gnumed-devel at gnu.org> to have your\n"
-"contribution duly recognized in this list or to have\n"
-"your name removed from it for, say, privacy reasons.\n"
-"\n"
-"Note that this list is sorted alphabetically by last\n"
-"name, first name. If the only identifier is an email\n"
-"address it is sorted under the first character of\n"
-"the user name.\n"
-"%s"
+msgid "Find next [%s] (<CTRL-N>)"
 msgstr ""
 
-msgid "Started a new encounter for the active patient."
+msgid "Row tooltip"
 msgstr ""
 
-msgid ""
-"\n"
-"A new encounter was started for the active patient.\n"
+msgid "Row data (formatted as text)"
 msgstr ""
 
-msgid "Start of new encounter"
+msgid "Row content (as one line)"
 msgstr ""
 
-msgid "only documents added"
+msgid "Row content (one line per column)"
+msgstr ""
+
+#, python-format
+msgid "Column &%s: \"%s\" [#%s]"
+msgstr ""
+
+#, python-format
+msgid "Column &%s: %s"
+msgstr ""
+
+msgid "&Copy to clipboard..."
+msgstr ""
+
+msgid "Append (&+) to clipboard..."
+msgstr ""
+
+#, python-format
+msgid ""
+"%s list items are selected.\n"
+"\n"
+"Really delete all %s items ?"
+msgstr ""
+
+msgid "Enter the search term:"
+msgstr ""
+
+msgid "List search"
+msgstr ""
+
+#, python-format
+msgid ""
+"Current search term: [[%s]]\n"
+"\n"
+"%s"
+msgstr ""
+
+msgid "Monty the Serpent && the FSF Present"
+msgstr ""
+
+msgid "Free eMedicine"
+msgstr ""
+
+#, python-format
+msgid "Version %s%s brought to you by"
+msgstr ""
+
+msgid "debug"
+msgstr ""
+
+msgid "Please visit http://www.gnumed.org"
+msgstr ""
+
+#, python-format
+msgid ""
+"The following people kindly contributed to GNUmed.\n"
+"Please write to <gnumed-devel at gnu.org> to have your\n"
+"contribution duly recognized in this list or to have\n"
+"your name removed from it for, say, privacy reasons.\n"
+"\n"
+"Note that this list is sorted alphabetically by last\n"
+"name, first name. If the only identifier is an email\n"
+"address it is sorted under the first character of\n"
+"the user name.\n"
+"%s"
+msgstr ""
+
+msgid "Started a new encounter for the active patient."
+msgstr ""
+
+msgid ""
+"\n"
+"A new encounter was started for the active patient.\n"
+msgstr ""
+
+msgid "Start of new encounter"
+msgstr ""
+
+msgid "only documents added"
 msgstr ""
 
 msgid "Edit the encounter details of the active patient before moving on:"
@@ -11900,6 +12343,9 @@ msgstr ""
 msgid "Unknown: ?"
 msgstr ""
 
+msgid "The text has been copied into the clipboard."
+msgstr ""
+
 msgid "file2clipboard"
 msgstr ""
 
@@ -11907,6 +12353,40 @@ msgstr ""
 msgid "The file [%s] has been copied into the clipboard."
 msgstr ""
 
+msgid "programmer forgot to specify error message"
+msgstr "Programatorul a uitat sa specifice un mesaj de eroare"
+
+msgid ""
+"\n"
+"\n"
+"Please consult the error log for all the gory details !"
+msgstr ""
+
+msgid "generic error message"
+msgstr "mesaj generic de eroare"
+
+msgid "programmer forgot to specify info message"
+msgstr "Programatorul a uitat sa specifice un mesaj de informare"
+
+msgid "generic info message"
+msgstr "mesaj generic de informare"
+
+msgid "programmer forgot to specify warning"
+msgstr "Programatorul a uitat sa specifice un avertisment"
+
+msgid "generic warning message"
+msgstr "mesaj generic de avertizare"
+
+msgid "Editing EDC"
+msgstr ""
+
+#, python-format
+msgid ""
+"Really delete the EDC documented previously ?\n"
+"\n"
+" EDC: %s"
+msgstr ""
+
 #, python-format
 msgid ""
 "Algorithm: %s\n"
@@ -12014,15 +12494,15 @@ msgstr ""
 msgid "Firstname"
 msgstr ""
 
-msgid "Nickname"
-msgstr ""
-
 msgid "DOB"
 msgstr ""
 
 msgid "last visit"
 msgstr ""
 
+msgid "Nickname / Comment"
+msgstr ""
+
 msgid "found via"
 msgstr ""
 
@@ -12200,702 +12680,459 @@ msgstr ""
 msgid "In case of emergency contact:"
 msgstr ""
 
+msgid "The preparation (form) of the substance or brand."
+msgstr ""
+
+msgid "A substance with optional strength or a brand."
+msgstr ""
+
+msgid "The medical aim for consuming this substance."
+msgstr ""
+
+msgid "not tolerated:"
+msgstr ""
+
+msgid "discontinued due to allergy or intolerance"
+msgstr ""
+
+msgid "Documented an allergy"
+msgstr ""
+
+#, python-format
 msgid ""
+"An allergy was documented against the substance:\n"
 "\n"
-"Please select the default drug data source from the list below.\n"
+"  [%s]\n"
 "\n"
-"Note that to actually use it you need to have the database installed, too."
+"This substance was taken with the multi-component brand:\n"
+"\n"
+"  [%s (%s)]\n"
+"\n"
+"Note that ALL components of this brand were discontinued."
 msgstr ""
 
-msgid "Drug data source"
+msgid "disapproved"
 msgstr ""
 
-msgid "Configuring default drug data source"
+msgid "Substances consumed by the patient:"
 msgstr ""
 
-msgid "No default drug database configured."
+msgid "Showing consumable substances."
 msgstr ""
 
-msgid "There is no default drug database configured."
+msgid "Application"
 msgstr ""
 
-msgid "Jumping to drug database"
+msgid "never"
 msgstr ""
 
 #, python-format
-msgid "Cannot call IFAP via [%s]."
+msgid "%s, last confirmed %s\n"
 msgstr ""
 
 #, python-format
-msgid "Cannot create IFAP <-> GNUmed transfer file [%s]."
+msgid "Comment (%s): %%s\n"
 msgstr ""
 
-msgid "Current medication"
+msgid "reaction not recorded"
 msgstr ""
 
-msgid ""
-"\n"
-"The ATC codes as known to GNUmed.\n"
+msgid "GFR: unknown"
 msgstr ""
 
-msgid "Showing ATC codes."
+msgid "GFR reported by path lab"
 msgstr ""
 
-msgid "Choose an ATC import config file"
+msgid "<no components>"
 msgstr ""
 
-msgid "config files"
+msgid "Adding substance intake entry"
 msgstr ""
 
-msgid "importing ATC reference data"
+#, python-format
+msgid ""
+"The patient is already taking\n"
+"\n"
+" %s\n"
+"\n"
+"You will want to adjust the schedule\n"
+"rather than document the intake twice."
 msgstr ""
 
-msgid "Successfully imported ATC reference data."
+msgid "Input incomplete/invalid for saving as substance intake."
 msgstr ""
 
-msgid "Importing ATC reference data failed."
+#, python-format
+msgid "Discontinued (%s) in the future (now: %s)!"
 msgstr ""
 
-msgid "Select an ATC (Anatomical-Therapeutic-Chemical) code."
+#, python-format
+msgid "Discontinued (%s) before started (%s) !"
 msgstr ""
 
-msgid "Cannot delete this substance. It is in use."
+msgid "Cannot add duplicate of (maybe inactive) substance intake."
 msgstr ""
 
+#, python-format
 msgid ""
 "\n"
-"These are the consumable substances registered with GNUmed.\n"
+"[%s]\n"
+"\n"
+"It may be prudent to edit (before deletion) the details\n"
+"of this substance intake entry so as to leave behind\n"
+"some indication of why it was deleted.\n"
 msgstr ""
 
-msgid "Showing consumable substances."
+msgid "Deleting medication / substance intake"
 msgstr ""
 
-msgid "Import"
+msgid "Allow editing of substance intake entry before deletion."
 msgstr ""
 
-msgid "Import consumable substances from a drug database."
+msgid "Delete immediately without editing first."
 msgstr ""
 
-msgid "Cannot edit this substance. It is in use."
+msgid "&Cancel"
 msgstr ""
 
-msgid "Adding new consumable substance"
+msgid "Abort. Do not delete or edit substance intake entry."
 msgstr ""
 
-msgid "Editing consumable substance"
+msgid "Now delete substance intake entry ?"
 msgstr ""
 
-msgid "Cannot save consumable substance. Missing essential input."
+msgid "Adding medication/non-medication substance intake"
 msgstr ""
 
-#, python-format
-msgid "Cannot save consumable substance. %s"
+msgid "Editing medication/non-medication substance intake"
 msgstr ""
 
-msgid "Cannot remove this component from the drug. It is in use."
+msgid "Document an allergy against this substance."
 msgstr ""
 
-msgid ""
-"\n"
-"These are the components in the drug brands known to GNUmed.\n"
+msgid "No medication list template configured."
 msgstr ""
 
-msgid "Showing drug brand components."
+msgid "There is no medication list template configured."
 msgstr ""
 
-msgid "Adding new drug component"
+msgid "Problem loading medication list template."
 msgstr ""
 
-msgid "Editing drug component"
+#, python-format
+msgid "Cannot load medication list template [%s - %s]"
 msgstr ""
 
-msgid "Cannot edit drug component. It is in use."
+msgid "generated medication list document"
 msgstr ""
 
-msgid "Cannot save drug component. Invalid or missing essential input."
+msgid "Select the default prescription template:"
 msgstr ""
 
-msgid "A drug component with optional strength."
+msgid "No prescription template configured."
 msgstr ""
 
-msgid "The preparation (form) of the substance or brand."
+msgid "There is no prescription template configured."
 msgstr ""
 
-msgid "The substance with optional strength."
+msgid "Printing prescription"
 msgstr ""
 
-msgid "Managing components of a drug"
+msgid "Problem loading prescription template."
 msgstr ""
 
 #, python-format
-msgid ""
-"Cannot manage the components of the branded drug product\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is currently taken by patients.\n"
-msgstr ""
-
-msgid "Pick the substances which are components of this drug."
+msgid "Cannot load prescription template [%s - %s]"
 msgstr ""
 
-msgid "Components of drug"
+msgid "generated prescription"
 msgstr ""
 
-#, python-format
 msgid ""
-"Adjust the components of \"%s\"\n"
+"These brands have been prescribed but are not listed\n"
+"in the current medication list of this patient.\n"
 "\n"
-"The drug must contain at least one component. Any given\n"
-"substance can only be included once per drug."
+"Please select those you want added to the medication list."
 msgstr ""
 
-msgid "Managing components of a drug ..."
+msgid "Newly prescribed drugs"
 msgstr ""
 
-msgid "not in use"
+msgid "Add to medication list"
+msgstr ""
+
+msgid "Timeframe"
 msgstr ""
 
 #, python-format
-msgid "ATC: %s\n"
+msgid "%s <fake>"
 msgstr ""
 
-msgid "Editing medication"
+msgid "Cannot edit more than one substance at once."
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot edit the medication\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is a vaccine. Please edit it\n"
-"from the vaccine management section !\n"
+msgid "Cannot delete more than one substance at once."
 msgstr ""
 
-msgid "Deleting medication"
+msgid "Cannot create allergy from more than one substance at once."
 msgstr ""
 
-#, python-format
 msgid ""
-"Cannot delete the medication\n"
 "\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is a vaccine. Please delete it\n"
-"from the vaccine management section !\n"
+"Select the measurements panel to show in the medications plugin.\n"
 msgstr ""
 
-msgid ""
-"\n"
-"These are the drug brands known to GNUmed.\n"
+msgid "Measurements panel"
 msgstr ""
 
-msgid "Showing branded drugs."
+msgid "Configuring medications plugin measurements panel"
 msgstr ""
 
-msgid "Import substances and brands from a drug database."
+msgid "EDC (!?!):"
 msgstr ""
 
-msgid "Editing drug"
+msgid "EDC:"
 msgstr ""
 
 #, python-format
-msgid ""
-"Cannot edit the branded drug product\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is currently taken by patients.\n"
-msgstr ""
-
-msgid "Adding new drug brand"
+msgid "%.1f (%s ago)"
 msgstr ""
 
-msgid "Editing drug brand"
+msgid "eGFR:"
 msgstr ""
 
-msgid "Manage consumable substances"
+#, python-format
+msgid "eGFR: %.1f (%s)"
 msgstr ""
 
-msgid "Cannot edit drug brand. It is in use."
+msgid "Enter vaccination given"
 msgstr ""
 
-msgid "Checking brand data"
+msgid "Unsaved progress note"
 msgstr ""
 
-#, python-format
 msgid ""
-"The brand information you entered:\n"
+"This progress note has not been saved yet.\n"
 "\n"
-" [%s %s]\n"
+"Do you want to save it or discard it ?\n"
 "\n"
-"already exists as a drug product."
 msgstr ""
 
-msgid ""
-"You have not selected any substances\n"
-"as drug components.\n"
-"\n"
-"Without components you will not be able to\n"
-"use this drug for documenting patient care.\n"
-"\n"
-"Are you sure you want to save\n"
-"it without components ?"
+msgid "Save this progress note"
 msgstr ""
 
-msgid "Cannot save branded drug. Invalid or missing essential input."
+msgid "Discard this progress note"
 msgstr ""
 
-msgid ""
-"The brand name of the drug.\n"
-"\n"
-"Note: a brand name will need to be linked to\n"
-"one or more components before it can be used,\n"
-"except in the case of fake (generic) vaccines."
+msgid "Save all remaining unsaved progress notes"
 msgstr ""
 
-msgid "The medical aim for consuming this substance."
+msgid ""
+"Add editor for a new unassociated progress note.\n"
+"\n"
+"There is a configuration option whether or not to\n"
+"allow several new unassociated progress notes at once."
 msgstr ""
 
-msgid "not tolerated:"
+msgid "Save progress note into medical record and close this editor."
 msgstr ""
 
-msgid "discontinued due to allergy or intolerance"
+msgid "Clear this progress note editor."
 msgstr ""
 
-msgid "Documented an allergy"
+msgid ""
+"Discard progress note and close this editor. You will loose any data already "
+"typed into this editor !"
 msgstr ""
 
-#, python-format
-msgid ""
-"An allergy was documented against the substance:\n"
-"\n"
-"  [%s]\n"
-"\n"
-"This substance was taken with the multi-component brand:\n"
-"\n"
-"  [%s (%s)]\n"
-"\n"
-"Note that ALL components of this brand were discontinued."
+msgid "Problem saving progress note: duplicate information ?"
 msgstr ""
 
-msgid "disapproved"
+msgid "label missing"
 msgstr ""
 
-msgid "Substances consumed by the patient:"
+msgid "soap cat missing"
 msgstr ""
 
-msgid "Intake"
+msgid "Enter a descriptive name for this new problem:"
 msgstr ""
 
-msgid "Application"
+msgid "Creating a problem (episode) to save the notelet under ..."
 msgstr ""
 
-msgid "never"
+msgid "Error saving progress note."
 msgstr ""
 
-#, python-format
-msgid "%s, last confirmed %s\n"
+msgid "Error saving embedded data."
 msgstr ""
 
-#, python-format
-msgid "Comment (%s): %%s\n"
+msgid "Visit Purpose"
 msgstr ""
 
-msgid "reaction not recorded"
+msgid "History Taken"
 msgstr ""
 
-msgid "GFR: unknown"
+msgid "Findings"
 msgstr ""
 
-msgid "GFR reported by path lab"
+msgid "save"
 msgstr ""
 
-#, python-format
-msgid ""
-"The patient is already taking\n"
-"\n"
-" %s\n"
-"\n"
-"You will want to adjust the schedule\n"
-"rather than document the intake twice."
+msgid "save clinical note in EMR"
 msgstr ""
 
-msgid "Adding substance intake entry"
+msgid "discard"
 msgstr ""
 
-msgid "Input incomplete/invalid for saving as substance intake."
+msgid "discard clinical note"
 msgstr ""
 
-#, python-format
-msgid "Discontinued (%s) in the future (now: %s)!"
+msgid "clinical progress note"
 msgstr ""
 
-#, python-format
-msgid "Discontinued (%s) before started (%s) !"
+msgid "Select files to add to the export area"
 msgstr ""
 
-msgid "Cannot add duplicate of (maybe inactive) substance intake."
+msgid "Adding files to export area"
 msgstr ""
 
 #, python-format
 msgid ""
-"\n"
-"[%s]\n"
-"\n"
-"It may be prudent to edit (before deletion) the details\n"
-"of this substance intake entry so as to leave behind\n"
-"some indication of why it was deleted.\n"
-msgstr ""
-
-msgid "Deleting medication / substance intake"
-msgstr ""
-
-msgid "Allow editing of substance intake entry before deletion."
+"Cannot add (some of) the following files to the export area:\n"
+"%s "
 msgstr ""
 
-msgid "Delete immediately without editing first."
+msgid "Select the documents to be put into the export area:"
 msgstr ""
 
-msgid "&Cancel"
+msgid "clipboard"
 msgstr ""
 
-msgid "Abort. Do not delete or edit substance intake entry."
+msgid "Loading clipboard item (saved to file) into export area"
 msgstr ""
 
-msgid "Now delete substance intake entry ?"
+#, python-format
+msgid ""
+"Cannot add the following clip to the export area:\n"
+"%s "
 msgstr ""
 
-msgid "Adding medication/non-medication substance intake"
+msgid "scan"
 msgstr ""
 
-msgid "Editing medication/non-medication substance intake"
+msgid "Scanning files into export area"
 msgstr ""
 
-msgid "Document an allergy against this substance."
+#, python-format
+msgid ""
+"Cannot add (some of) the following scans to the export area:\n"
+"%s "
 msgstr ""
 
-msgid "No medication list template configured."
+msgid "Deleting document from export area."
 msgstr ""
 
-msgid "There is no medication list template configured."
+#, python-format
+msgid ""
+"Really remove %s selected document(s)\n"
+"from the patient export area ?"
 msgstr ""
 
-msgid "Problem loading medication list template."
+msgid "Error printing documents."
 msgstr ""
 
 #, python-format
-msgid "Cannot load medication list template [%s - %s]"
-msgstr ""
-
-msgid "generated medication list document"
+msgid "Printing [%s]"
 msgstr ""
 
-msgid "Select the default prescription template:"
+#, python-format
+msgid ""
+"Printed:\n"
+" - %s"
 msgstr ""
 
-msgid "No prescription template configured."
+msgid "Select the directory into which to export the documents."
 msgstr ""
 
-msgid "There is no prescription template configured."
+msgid "Saving export area documents"
 msgstr ""
 
-msgid "Printing prescription"
+#, python-format
+msgid ""
+"The chosen export directory\n"
+"\n"
+" [%s]\n"
+"\n"
+"already contains files. Do you still want to save the\n"
+"selected export area documents into that directory ?\n"
+"\n"
+"(this is useful for including the external documents\n"
+" already stored in or below this directory)\n"
+"\n"
+"[NO] will create a subdirectory for you and use that."
 msgstr ""
 
-msgid "Problem loading prescription template."
+msgid ""
+"Create descriptive metadata files\n"
+"and save them alongside the\n"
+"selected export area documents ?"
 msgstr ""
 
 #, python-format
-msgid "Cannot load prescription template [%s - %s]"
-msgstr ""
-
-msgid "generated prescription"
+msgid ""
+"Saved to [%s]:\n"
+" - %s"
 msgstr ""
 
+#, python-format
 msgid ""
-"These brands have been prescribed but are not listed\n"
-"in the current medication list of this patient.\n"
+"Saved documents into directory:\n"
 "\n"
-"Please select those you want added to the medication list."
+" %s"
 msgstr ""
 
-msgid "Newly prescribed drugs"
+msgid "If you wish to include an existing directory select it here:"
 msgstr ""
 
-msgid "Add to medication list"
+msgid "Error burning documents to CD/DVD."
 msgstr ""
 
-msgid "Duration / Until"
+msgid "Burning documents"
 msgstr ""
 
 #, python-format
-msgid "%s <fake>"
+msgid ""
+"Burned onto CD/DVD:\n"
+" - %s"
 msgstr ""
 
-msgid "Cannot edit more than one substance at once."
+msgid "Error mailing documents."
 msgstr ""
 
-msgid "Cannot delete more than one substance at once."
+msgid "Mailing documents"
 msgstr ""
 
-msgid "Cannot create allergy from more than one substance at once."
+#, python-format
+msgid ""
+"Mailed:\n"
+" - %s"
 msgstr ""
 
 msgid ""
+"Please enter the fax number here !\n"
 "\n"
-"Select the measurements panel to show in the medications plugin.\n"
-msgstr ""
-
-msgid "Measurements panel"
+"It can be left empty if the external\n"
+"fax software knows how to get the number."
 msgstr ""
 
-msgid "Configuring medications plugin measurements panel"
+msgid "Faxing documents"
 msgstr ""
 
-msgid "EDC (!?!):"
-msgstr ""
-
-msgid "EDC:"
-msgstr ""
-
-#, python-format
-msgid "%.1f (%s ago)"
-msgstr ""
-
-msgid "eGFR:"
-msgstr ""
-
-#, python-format
-msgid "%s%s%s (%s ago)"
-msgstr ""
-
-#, python-format
-msgid "eGFR: %.1f (%s)"
-msgstr ""
-
-msgid "Enter vaccination given"
-msgstr ""
-
-msgid "Unsaved progress note"
-msgstr ""
-
-msgid ""
-"This progress note has not been saved yet.\n"
-"\n"
-"Do you want to save it or discard it ?\n"
-"\n"
-msgstr ""
-
-msgid "Save this progress note"
-msgstr ""
-
-msgid "Discard this progress note"
-msgstr ""
-
-msgid "Save all remaining unsaved progress notes"
-msgstr ""
-
-msgid ""
-"Add editor for a new unassociated progress note.\n"
-"\n"
-"There is a configuration option whether or not to\n"
-"allow several new unassociated progress notes at once."
-msgstr ""
-
-msgid "Save progress note into medical record and close this editor."
-msgstr ""
-
-msgid "Clear this progress note editor."
-msgstr ""
-
-msgid ""
-"Discard progress note and close this editor. You will loose any data already "
-"typed into this editor !"
-msgstr ""
-
-msgid "Problem saving progress note: duplicate information ?"
-msgstr ""
-
-msgid "label missing"
-msgstr ""
-
-msgid "soap cat missing"
-msgstr ""
-
-msgid "Enter a descriptive name for this new problem:"
-msgstr ""
-
-msgid "Creating a problem (episode) to save the notelet under ..."
-msgstr ""
-
-msgid "Error saving progress note."
-msgstr ""
-
-msgid "Error saving embedded data."
-msgstr ""
-
-msgid "Visit Purpose"
-msgstr ""
-
-msgid "History Taken"
-msgstr ""
-
-msgid "Findings"
-msgstr ""
-
-msgid "save"
-msgstr ""
-
-msgid "save clinical note in EMR"
-msgstr ""
-
-msgid "discard"
-msgstr ""
-
-msgid "discard clinical note"
-msgstr ""
-
-msgid "clinical progress note"
-msgstr ""
-
-msgid "Select files to add to the export area"
-msgstr ""
-
-msgid "Adding files to export area"
-msgstr ""
-
-#, python-format
-msgid ""
-"Cannot add (some of) the following files to the export area:\n"
-"%s "
-msgstr ""
-
-msgid "Select the documents to be put into the export area:"
-msgstr ""
-
-msgid "clipboard"
-msgstr ""
-
-msgid "Loading clipboard item (saved to file) into export area"
-msgstr ""
-
-#, python-format
-msgid ""
-"Cannot add the following clip to the export area:\n"
-"%s "
-msgstr ""
-
-msgid "scan"
-msgstr ""
-
-msgid "Scanning files into export area"
-msgstr ""
-
-#, python-format
-msgid ""
-"Cannot add (some of) the following scans to the export area:\n"
-"%s "
-msgstr ""
-
-msgid "Deleting document from export area."
-msgstr ""
-
-#, python-format
-msgid ""
-"Really remove %s selected document(s)\n"
-"from the patient export area ?"
-msgstr ""
-
-msgid "Error printing documents."
-msgstr ""
-
-#, python-format
-msgid "Printing [%s]"
-msgstr ""
-
-#, python-format
-msgid ""
-"Printed:\n"
-" - %s"
-msgstr ""
-
-msgid "Select the directory into which to export the documents."
-msgstr ""
-
-msgid "Saving export area documents"
-msgstr ""
-
-#, python-format
-msgid ""
-"The chosen export directory\n"
-"\n"
-" [%s]\n"
-"\n"
-"is not empty. Do you want to use it for saving the\n"
-"export area documents into, nevertheless ?\n"
-"\n"
-"(this can be useful for including external documents)\n"
-"\n"
-"[NO] will create a subdirectory for you and use that."
-msgstr ""
-
-#, python-format
-msgid ""
-"Saved to [%s]:\n"
-" - %s"
-msgstr ""
-
-#, python-format
-msgid ""
-"Saved documents into directory:\n"
-"\n"
-" %s"
-msgstr ""
-
-msgid "If you wish to include an existing directory select it here:"
-msgstr ""
-
-msgid "Error burning documents to CD/DVD."
-msgstr ""
-
-msgid "Burning documents"
-msgstr ""
-
-#, python-format
-msgid ""
-"Burned onto CD/DVD:\n"
-" - %s"
-msgstr ""
-
-msgid "Error mailing documents."
-msgstr ""
-
-msgid "Mailing documents"
-msgstr ""
-
-#, python-format
-msgid ""
-"Mailed:\n"
-" - %s"
-msgstr ""
-
-msgid ""
-"Please enter the fax number here !\n"
-"\n"
-"It can be left empty if the external\n"
-"fax software knows how to get the number."
-msgstr ""
-
-msgid "Faxing documents"
-msgstr ""
-
-#, python-format
-msgid ""
-"Error faxing documents to\n"
-"\n"
-"  %s"
+#, python-format
+msgid ""
+"Error faxing documents to\n"
+"\n"
+"  %s"
 msgstr ""
 
 #, python-format
@@ -13042,9 +13279,6 @@ msgstr ""
 msgid "This praxis"
 msgstr ""
 
-msgid "Hospital stay"
-msgstr ""
-
 msgid "Bill receiver"
 msgstr ""
 
@@ -13080,24 +13314,66 @@ msgstr ""
 msgid "Select the episode under which to file the document ..."
 msgstr ""
 
-#, python-format
-msgid "Imported new document from %s."
+msgid "Cannot create new document."
 msgstr ""
 
-msgid "Enter a comment on the document."
+msgid "saving document"
 msgstr ""
 
-msgid "User defined"
+#, python-format
+msgid "Imported new document from %s."
 msgstr ""
 
-msgid "In use"
+msgid "Successfully saved new document."
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot delete document type\n"
-" [%s]\n"
-"because it is currently in use."
+msgid "Successfully saved the new document."
+msgstr ""
+
+#, python-format
+msgid ""
+"The reference ID for the new document is:\n"
+"\n"
+" <%s>\n"
+"\n"
+"You probably want to write it down on the\n"
+"original documents.\n"
+"\n"
+"If you don't care about the ID you can switch\n"
+"off this message in the GNUmed configuration.\n"
+msgstr ""
+
+msgid "Saving document"
+msgstr ""
+
+#, python-format
+msgid ""
+"Successfully imported files as document.\n"
+"\n"
+"Do you want to delete imported files from the filesystem ?\n"
+"\n"
+" %s\n"
+"\n"
+"Note that temporary files will be deleted anyway."
+msgstr ""
+
+msgid "Removing files"
+msgstr ""
+
+msgid "Enter a comment on the document."
+msgstr ""
+
+msgid "User defined"
+msgstr ""
+
+msgid "In use"
+msgstr ""
+
+#, python-format
+msgid ""
+"Cannot delete document type\n"
+" [%s]\n"
+"because it is currently in use."
 msgstr ""
 
 msgid "deleting document type"
@@ -13201,14 +13477,16 @@ msgstr ""
 msgid "Acquiring images"
 msgstr ""
 
-msgid "other documents"
+msgid "directory dropped on client"
 msgstr ""
 
-#, python-format
-msgid "part %s: %s"
+msgid "file dropped on client"
 msgstr ""
 
-msgid "saving document"
+msgid "other documents"
+msgstr ""
+
+msgid "path"
 msgstr ""
 
 msgid "No parts to save. Really save an empty document as a reference ?"
@@ -13253,62 +13531,34 @@ msgstr ""
 msgid "acquiring page"
 msgstr ""
 
-msgid "Choose a file"
-msgstr ""
-
-msgid "all files (Win)"
-msgstr ""
-
-msgid "You must select a part before you can view it."
-msgstr ""
-
-msgid "displaying part"
+msgid "captured by imaging device"
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot display document part:\n"
-"%s"
+msgid "Choose a file"
 msgstr ""
 
-msgid "You must select a part before you can delete it."
+msgid "all files (Win)"
 msgstr ""
 
-msgid "deleting part"
+msgid "picked from storage media"
 msgstr ""
 
-#, python-format
-msgid ""
-"The part has successfully been removed from the document.\n"
-"\n"
-"Do you also want to permanently delete the file\n"
-"\n"
-" [%s]\n"
-"\n"
-"from which this document part was loaded ?\n"
-"\n"
-"If it is a temporary file for a page you just scanned\n"
-"this makes a lot of sense. In other cases you may not\n"
-"want to lose the file.\n"
-"\n"
-"Pressing [YES] will permanently remove the file\n"
-"from your computer.\n"
+msgid "pasted from clipboard"
 msgstr ""
 
-msgid "Removing document part"
+msgid "No part selected for viewing."
 msgstr ""
 
 #, python-format
 msgid ""
-"Cannot delete part in file [%s].\n"
-"\n"
-"You may not have write access to it."
+"Cannot display document part:\n"
+"%s"
 msgstr ""
 
-msgid "Cannot create new document."
+msgid "displaying part"
 msgstr ""
 
-msgid "Cannot update document metadata."
+msgid "No part selected for removal."
 msgstr ""
 
 msgid "Cannot add document description."
@@ -13317,26 +13567,12 @@ msgstr ""
 msgid "Error setting \"reviewed\" status of new document."
 msgstr ""
 
-msgid "Successfully saved the new document."
-msgstr ""
-
 #, python-format
 msgid ""
-"The reference ID for the new document is:\n"
-"\n"
-" <%s>\n"
-"\n"
-"You probably want to write it down on the\n"
-"original documents.\n"
+"Source: %s\n"
+"File: %s\n"
 "\n"
-"If you don't care about the ID you can switch\n"
-"off this message in the GNUmed configuration."
-msgstr ""
-
-msgid "Saving document"
-msgstr ""
-
-msgid "Successfully saved new document."
+"%s"
 msgstr ""
 
 msgid "Document part does not seem to exist in database !"
@@ -13351,9 +13587,6 @@ msgstr ""
 msgid "Showing documents."
 msgstr ""
 
-msgid "Generated"
-msgstr ""
-
 msgid "Ref #"
 msgstr ""
 
@@ -13605,6 +13838,142 @@ msgstr ""
 msgid "Deleting document"
 msgstr ""
 
+msgid "Study date"
+msgstr ""
+
+msgid "Study time"
+msgstr ""
+
+msgid "Method"
+msgstr ""
+
+msgid "Body part"
+msgstr ""
+
+msgid "Time"
+msgstr ""
+
+msgid "Cannot connect without port (try 8042)."
+msgstr ""
+
+#, python-format
+msgid "Connect to [%s] @ port %s as \"%s\"."
+msgstr ""
+
+msgid "Cannot connect to PACS."
+msgstr ""
+
+#, python-format
+msgid "PACS: Orthanc \"%s\" (AET \"%s\", Version %s, DB v%s)"
+msgstr ""
+
+#, python-format
+msgid "GNUmed patient: %s (generic PACS ID)"
+msgstr ""
+
+#, python-format
+msgid "GNUmed patient: \"%(value)s\" @ [%(issuer)s] (stored PACS ID)"
+msgstr ""
+
+msgid "PACS: no patients with matching IDs found"
+msgstr ""
+
+msgid ""
+"PACS: more than one patient with matching IDs found, carefully check studies"
+msgstr ""
+
+#, python-format
+msgid "%s series"
+msgstr ""
+
+#, python-format
+msgid "%%s (%s series)"
+msgstr ""
+
+msgid "no studies"
+msgstr ""
+
+#, python-format
+msgid "%s studies"
+msgstr ""
+
+msgid "Exporting DICOM studies"
+msgstr ""
+
+msgid "Unable to export selected studies."
+msgstr ""
+
+#, python-format
+msgid ""
+"The DICOM studies are %s in compressed size.\n"
+"\n"
+"Really copy to export area ?"
+msgstr ""
+
+#, python-format
+msgid "DICOM studies of [%s] from Orthanc PACS \"%s\" (AET \"%s\")"
+msgstr ""
+
+msgid "Select the directory into which to save the DICOM studies."
+msgstr ""
+
+msgid "Saving DICOM studies"
+msgstr ""
+
+msgid "Unable to save selected studies."
+msgstr ""
+
+msgid "Unable to export studies."
+msgstr ""
+
+#, python-format
+msgid "All DICOM studies of [%s] from Orthanc PACS \"%s\" (AET \"%s\")"
+msgstr ""
+
+#, python-format
+msgid "%s%s images"
+msgstr ""
+
+msgid "Select the directory from which to recursively upload DICOM files."
+msgstr ""
+
+msgid "Delete the uploaded DICOM files now ?"
+msgstr ""
+
+msgid ""
+"Some files have not been uploaded.\n"
+"\n"
+"Do you want to delete those DICOM files which have been sent to the PACS "
+"successfully ?"
+msgstr ""
+
+msgid "Uploading DICOM files"
+msgstr ""
+
+msgid "Editing Orthanc content"
+msgstr ""
+
+msgid "Patient ID"
+msgstr ""
+
+msgid "Birth date"
+msgstr ""
+
+msgid "Orthanc"
+msgstr ""
+
+msgid "Modifying patient ID"
+msgstr ""
+
+#, python-format
+msgid ""
+"Really modify %s patient(s) to have the new patient ID\n"
+"\n"
+" [%s]\n"
+"\n"
+"stored in the Orthanc DICOM server ?"
+msgstr ""
+
 #, python-format
 msgid "You are logged in as %s%s.%s (%s). DB account <%s>."
 msgstr ""
@@ -13663,6 +14032,12 @@ msgstr ""
 msgid "Select the measurements panel to show in the medications plugin."
 msgstr ""
 
+msgid "General measurements"
+msgstr ""
+
+msgid "Select the measurements panel to show in the top pane."
+msgstr ""
+
 msgid "Review dialog"
 msgstr ""
 
@@ -13753,6 +14128,12 @@ msgstr ""
 msgid "Configure auto-opening editors for recent problems."
 msgstr ""
 
+msgid "SOAP fields"
+msgstr ""
+
+msgid "Configure SOAP editor - individual SOAP fields vs text editor like"
+msgstr ""
+
 msgid "Progress notes handling ..."
 msgstr ""
 
@@ -13774,6 +14155,9 @@ msgstr ""
 msgid "URL for measurements encyclopedia."
 msgstr ""
 
+msgid "Drug data source"
+msgstr ""
+
 msgid "Select the drug data source."
 msgstr ""
 
@@ -14137,6 +14521,12 @@ msgstr ""
 msgid "Manage dynamic hints suppressed in this patient."
 msgstr ""
 
+msgid "Substance abuse"
+msgstr ""
+
+msgid "Manage substance abuse documentation of this patient."
+msgstr ""
+
 msgid "&Add / Edit ..."
 msgstr ""
 
@@ -14158,26 +14548,49 @@ msgstr ""
 msgid "Show a high-level statistic summary of the EMR."
 msgstr ""
 
-msgid "Text document"
+msgid "Journal (encounters) to file"
+msgstr ""
+
+msgid ""
+"Save the EMR of the active patient as a chronological journal into a text "
+"file"
+msgstr ""
+
+msgid "Journal (encounters) to export area"
 msgstr ""
 
-msgid "Export the EMR of the active patient into a text file"
+msgid ""
+"Copy EMR of the active patient as a chronological journal into export area"
 msgstr ""
 
-msgid "Journal"
+msgid "Journal (mod time) to file"
 msgstr ""
 
 msgid ""
-"Export the EMR of the active patient as a chronological journal into a text "
-"file"
+"Save the EMR of the active patient as journal by last modification time into "
+"a text file"
+msgstr ""
+
+msgid "Journal (mod time) to export area"
+msgstr ""
+
+msgid ""
+"Copy EMR of the active patient as journal by last modification time into "
+"export area"
+msgstr ""
+
+msgid "Text document"
+msgstr ""
+
+msgid "Save the EMR of the active patient into a text file"
 msgstr ""
 
 msgid "MEDISTAR import format"
 msgstr ""
 
 msgid ""
-"GNUmed -> MEDISTAR. Export progress notes of active patient's active "
-"encounter into a text file."
+"GNUmed -> MEDISTAR. Save progress notes of active patient's active encounter "
+"into a text file."
 msgstr ""
 
 msgid "Export as ..."
@@ -14346,19 +14759,40 @@ msgstr ""
 msgid "Show log file"
 msgstr ""
 
-msgid "Show the log file in text viewer."
+msgid "Show log file in text viewer."
 msgstr ""
 
 msgid "Backup log file"
 msgstr ""
 
-msgid "Backup the content of the log to another file."
+msgid "Backup content of the log to another file."
 msgstr ""
 
 msgid "Email log file"
 msgstr ""
 
-msgid "Send the log file to the authors for help."
+msgid "Send log file to the authors for help."
+msgstr ""
+
+msgid "Browse tmp dir"
+msgstr ""
+
+#, python-format
+msgid "Browse temporary directory [%s]."
+msgstr ""
+
+msgid "Browse work dir"
+msgstr ""
+
+#, python-format
+msgid "Browse user working directory [%s]."
+msgstr ""
+
+msgid "Browse internal work dir"
+msgstr ""
+
+#, python-format
+msgid "Browse internal working directory [%s]."
 msgstr ""
 
 msgid "Bug tracker"
@@ -14701,6 +15135,20 @@ msgid "No, only auto-open one editor for a new, unassociated problem."
 msgstr ""
 
 msgid ""
+"When editing progress notes, do you want GNUmed to\n"
+"show individual fields for each of the SOAP categories\n"
+"or do you want to use a text-editor like field for\n"
+"all SOAP categories which can then be set per line\n"
+"of input ?"
+msgstr ""
+
+msgid "Yes, show a dedicated field per SOAP category."
+msgstr ""
+
+msgid "No, use one field for all SOAP categories."
+msgstr ""
+
+msgid ""
 "When a patient is activated GNUmed can\n"
 "be told to switch to a specific plugin.\n"
 "\n"
@@ -14955,546 +15403,945 @@ msgstr ""
 msgid "Keyword based text expansion macros"
 msgstr ""
 
-msgid "Meta test/measurement types"
+msgid "Meta test/measurement types"
+msgstr ""
+
+msgid "Organizations with their units, addresses, and comm channels"
+msgstr ""
+
+msgid "Patient tags"
+msgstr ""
+
+msgid "Provinces (counties, territories, states, regions, ...)"
+msgstr ""
+
+msgid "String translations in the database"
+msgstr ""
+
+msgid "Test/measurement types"
+msgstr ""
+
+msgid "Vaccination targets (conditions known to be preventable by vaccination)"
+msgstr ""
+
+msgid "Vaccines"
+msgstr ""
+
+msgid "Workplace profiles (which plugins to load)"
+msgstr ""
+
+msgid "Consumable substances"
+msgstr ""
+
+msgid "Billable items"
+msgstr ""
+
+msgid "Reference data sources"
+msgstr ""
+
+msgid "Test/measurement panels/profiles"
+msgstr ""
+
+msgid "Master data management"
+msgstr ""
+
+msgid "Select the list you want to manage:"
+msgstr ""
+
+msgid "No DICOM viewer found."
+msgstr ""
+
+msgid "risk assessment"
+msgstr ""
+
+msgid "cardiovascular risk assessment"
+msgstr ""
+
+#, python-format
+msgid "[arriba] XML result not found in [%s]"
+msgstr ""
+
+msgid "ACS risk assessment calculator not configured."
+msgstr ""
+
+#, python-format
+msgid "Cannot run [%s] !"
+msgstr ""
+
+#, python-format
+msgid "There was a problem accessing the [arriba] result in [%s] !"
+msgstr ""
+
+msgid "[-9999]: <access violation test error>"
+msgstr ""
+
+msgid ""
+"This is a deliberate AccessDenied exception thrown to test the handling of "
+"access violations by means of a decorator."
+msgstr ""
+
+msgid "testing access check for non-existant <admin> role"
+msgstr ""
+
+msgid ""
+"This is a deliberate AccessDenied exception. You should not see this message "
+"because the role is checked in a decorator."
+msgstr ""
+
+msgid "pgAdmin III not found."
+msgstr ""
+
+msgid "Error reloading hook script."
+msgstr ""
+
+msgid "Save current log as..."
+msgstr ""
+
+msgid "log files"
+msgstr ""
+
+#, python-format
+msgid "Log file backed up as [%s]."
+msgstr ""
+
+msgid "Cannot start new encounter. No active patient."
+msgstr ""
+
+msgid "Cannot add health issue. No active patient."
+msgstr ""
+
+msgid "Cannot add episode. No active patient."
+msgstr ""
+
+msgid "Cannot add medication. No active patient."
+msgstr ""
+
+msgid "Cannot add allergy. No active patient."
+msgstr ""
+
+msgid "Cannot manage performed procedures. No active patient."
+msgstr ""
+
+msgid "Cannot manage hospitalizations. No active patient."
+msgstr ""
+
+msgid "Cannot manage external care. No active patient."
+msgstr ""
+
+msgid "Cannot edit occupation. No active patient."
+msgstr ""
+
+msgid "manage vaccinations"
+msgstr ""
+
+msgid "Cannot add vaccinations. No active patient."
+msgstr ""
+
+msgid "manage family history"
+msgstr ""
+
+msgid "Cannot manage family history. No active patient."
+msgstr ""
+
+msgid "Cannot manage measurements. No active patient."
+msgstr ""
+
+msgid "calculate EDC"
+msgstr ""
+
+msgid "manage suppressed hints"
+msgstr ""
+
+msgid "Cannot manage suppressed hints. No active patient."
+msgstr ""
+
+msgid "Cannot manage smoking status. No active patient."
+msgstr ""
+
+msgid "Cannot show EMR summary. No active patient."
+msgstr ""
+
+msgid "EMR Summary"
+msgstr ""
+
+msgid "Cannot export EMR journal by last modification time. No active patient."
+msgstr ""
+
+msgid "journal_by_last_mod_time"
+msgstr ""
+
+msgid "Save patient's EMR journal as..."
+msgstr ""
+
+msgid "Error exporting patient EMR as journal by last modification time."
+msgstr ""
+
+msgid "EMR journal export"
+msgstr ""
+
+#, python-format
+msgid ""
+"Successfully exported EMR as journal by last modification time into file "
+"[%s]."
+msgstr ""
+
+msgid "Cannot export EMR journal. No active patient."
+msgstr ""
+
+msgid "emr-journal"
+msgstr ""
+
+msgid "Error exporting patient EMR as chronological journal."
+msgstr ""
+
+#, python-format
+msgid "Successfully exported EMR as chronological journal into file [%s]."
+msgstr ""
+
+msgid "EMR journal by last modification time"
+msgstr ""
+
+msgid "EMR journal by encounter"
+msgstr ""
+
+msgid "Cannot add tag to person. No active patient."
+msgstr ""
+
+#, python-format
+msgid "Edit the comment on tag [%s]"
+msgstr ""
+
+msgid "Editing tag comment"
+msgstr ""
+
+msgid "Cannot export patient as GDT. No active patient."
+msgstr ""
+
+msgid "Exported demographics as GDT to clipboard."
+msgstr ""
+
+msgid "Cannot export patient as VCARD. No active patient."
+msgstr ""
+
+msgid "Exported demographics as VCARD to clipboard."
+msgstr ""
+
+msgid "Cannot export patient as XML (LinuxMedNews). No active patient."
+msgstr ""
+
+#, python-format
+msgid "Exported demographics to XML file [%s]."
+msgstr ""
+
+#, python-format
+msgid "Exported demographics to GDT file [%s]."
+msgstr ""
+
+#, python-format
+msgid "Exported demographics to VCARD file [%s]."
+msgstr ""
+
+msgid "Cannot add staff member. No active patient."
+msgstr ""
+
+msgid "Cannot delete patient. No patient active."
+msgstr ""
+
+msgid ""
+"You have to manually close this window to finalize shutting down GNUmed."
+msgstr ""
+
+msgid "This is so that you can inspect the console output at your leisure."
+msgstr ""
+
+msgid "no patient"
+msgstr ""
+
+#, python-format
+msgid "Saved screenshot to file [%s]."
+msgstr ""
+
+msgid "Python version check"
+msgstr ""
+
+#, python-format
+msgid ""
+"You are running Python version\n"
+" %s\n"
+"\n"
+"However, GNUmed wants Python 2.7 to\n"
+"facilitate migration to Python 3.\n"
+"\n"
+"Please upgrade your Python interpreter !"
+msgstr ""
+
+msgid "GNUmed client"
+msgstr ""
+
+msgid "GNUmed stdout/stderr window"
+msgstr ""
+
+msgid "redirecting STDOUT/STDERR to this log window"
+msgstr ""
+
+#, python-format
+msgid ""
+"The database account [%s] cannot be used as a\n"
+"staff member login for GNUmed. There was an\n"
+"error retrieving staff details for it.\n"
+"\n"
+"Please ask your administrator for help.\n"
+msgstr ""
+
+msgid "Checking access permissions"
+msgstr ""
+
+#, python-format
+msgid "Database <%s> on <%s>"
+msgstr ""
+
+#, python-format
+msgid "Branch \"%s\" of praxis \"%s\"\n"
+msgstr ""
+
+msgid "Verifying database"
+msgstr ""
+
+msgid "Connect"
+msgstr ""
+
+msgid "Yes, connect to this database."
+msgstr ""
+
+msgid "Disconnect"
+msgstr ""
+
+msgid "No, do not connect to this database."
+msgstr ""
+
+#, python-format
+msgid ""
+"Cannot find configuration file in any of:\n"
+"\n"
+" %s\n"
+"You may need to use the comand line option\n"
+"\n"
+"\t--conf-file=<FILE>"
+msgstr ""
+
+msgid "Checking configuration files"
+msgstr ""
+
+msgid "GNUmed startup"
+msgstr ""
+
+#, python-format
+msgid ""
+"The currently selected database language ('%s') does\n"
+"not match the current system language ('%s').\n"
+"\n"
+"Do you want to set the database language to '%s' ?\n"
+msgstr ""
+
+msgid "Checking database language settings"
+msgstr ""
+
+#, python-format
+msgid "Set your database language to [%s]."
+msgstr ""
+
+msgid "Don't set"
+msgstr ""
+
+msgid "Do not set your database language now."
+msgstr ""
+
+msgid "Remember to ignore language mismatch"
+msgstr ""
+
+#, python-format
+msgid ""
+"Checking this will make GNUmed remember your decision\n"
+"until the system language is changed.\n"
+"\n"
+"You can also reactivate this inquiry by removing the\n"
+"corresponding \"ignore\" option from the configuration file\n"
+"\n"
+" [%s]"
+msgstr ""
+
+msgid "generic activity"
 msgstr ""
 
-msgid "Organizations with their units, addresses, and comm channels"
+msgid "Access denied"
 msgstr ""
 
-msgid "Patient tags"
+#, python-format
+msgid ""
+"Your account is not set up to access this part of GNUmed:\n"
+"\n"
+"  [%s]"
 msgstr ""
 
-msgid "Provinces (counties, territories, states, regions, ...)"
+msgid "Save timeline as SVG image under..."
 msgstr ""
 
-msgid "String translations in the database"
+msgid "timeline image"
 msgstr ""
 
-msgid "Test/measurement types"
+msgid "timeline data"
 msgstr ""
 
-msgid "Vaccination targets (conditions known to be preventable by vaccination)"
+msgid "Cannot change notebook tabs. No active patient."
 msgstr ""
 
-msgid "Vaccines"
+msgid "add plugin ..."
 msgstr ""
 
-msgid "Workplace profiles (which plugins to load)"
+msgid "Cannot activate Allergy Manager. No active patient."
 msgstr ""
 
-msgid "Consumable substances"
+msgid "RR ?"
 msgstr ""
 
-msgid "Billable items"
+#, python-format
+msgid "BMI %s"
 msgstr ""
 
-msgid "Reference data sources"
+msgid "BMI ?"
 msgstr ""
 
-msgid "Test/measurement panels/profiles"
+msgid "GFR ?"
 msgstr ""
 
-msgid "Master data management"
+#, python-format
+msgid "GFR %s"
 msgstr ""
 
-msgid "Select the list you want to manage:"
+#, python-format
+msgid "?EDC %s"
 msgstr ""
 
-msgid "No DICOM viewer found."
+#, python-format
+msgid "EDC %s"
 msgstr ""
 
-msgid "risk assessment"
+msgid "<Age>"
 msgstr ""
 
-msgid "cardiovascular risk assessment"
+msgid "no patient selected"
 msgstr ""
 
 #, python-format
-msgid "[arriba] XML result not found in [%s]"
-msgstr ""
-
-msgid "ACS risk assessment calculator not configured."
+msgid "Gender: %s (%s) - %s\n"
 msgstr ""
 
 #, python-format
-msgid "Cannot run [%s] !"
+msgid "Born: %s\n"
 msgstr ""
 
 #, python-format
-msgid "There was a problem accessing the [arriba] result in [%s] !"
+msgid "Died: %s\n"
 msgstr ""
 
-msgid "[-9999]: <access violation test error>"
+#, python-format
+msgid "At age: %s\n"
 msgstr ""
 
-msgid ""
-"This is a deliberate AcessDenied exception thrown to test the handling of "
-"access violations by means of a decorator."
+msgid " (date of birth and age are estimated)\n"
 msgstr ""
 
-msgid "testing access check for non-existant <admin> role"
+#, python-format
+msgid "%(sex)s  %(dob)s (%(age)s today !)"
 msgstr ""
 
 msgid ""
-"This is a deliberate AcessDenied exception. You should not see this message "
-"because the role is checked in a decorator."
+"\n"
+"Today is the patient's birthday !\n"
+"\n"
 msgstr ""
 
-msgid "pgAdmin III not found."
+#, python-format
+msgid "Birthday: %s ago\n"
 msgstr ""
 
-msgid "Error reloading hook script."
+#, python-format
+msgid "Birthday: in %s\n"
 msgstr ""
 
-msgid "Save current log as..."
+#, python-format
+msgid "Age: %s\n"
 msgstr ""
 
-msgid "log files"
+#, python-format
+msgid "last confirmed %s\n"
 msgstr ""
 
 #, python-format
-msgid "Log file backed up as [%s]."
+msgid "Comment (%s): %%s"
 msgstr ""
 
-msgid "Cannot start new encounter. No active patient."
+#, python-format
+msgid " - expires %s"
 msgstr ""
 
-msgid "Cannot add health issue. No active patient."
+#, python-format
+msgid ""
+"Due for %s (since %s%s):\n"
+"%s%s\n"
+"Patient: %s\n"
+"Reminder by: %s"
 msgstr ""
 
-msgid "Cannot add episode. No active patient."
+msgid "Clinical reminder"
 msgstr ""
 
-msgid "Cannot add medication. No active patient."
+msgid "Adding automatic dynamic hint"
 msgstr ""
 
-msgid "Cannot add allergy. No active patient."
+msgid "Editing automatic dynamic hint"
 msgstr ""
 
-msgid "Cannot manage performed procedures. No active patient."
+msgid "Deleting automatic dynamic hint"
 msgstr ""
 
-msgid "Cannot manage hospitalizations. No active patient."
+#, python-format
+msgid ""
+"Really delete this dynamic hint ?\n"
+"\n"
+" [%s]"
 msgstr ""
 
-msgid "Cannot manage external care. No active patient."
+msgid "deleting a dynamic hint"
 msgstr ""
 
-msgid "Cannot edit occupation. No active patient."
+msgid ""
+"\n"
+"Dynamic hints registered with GNUmed.\n"
 msgstr ""
 
-msgid "manage vaccinations"
+msgid "Showing dynamic hints."
 msgstr ""
 
-msgid "Cannot add vaccinations. No active patient."
+msgid "Hint"
 msgstr ""
 
-msgid "Cannot manage family history. No active patient."
+msgid "Browse and install automatic dynamic hints data packs"
 msgstr ""
 
-msgid "Cannot manage measurements. No active patient."
+#, python-format
+msgid "By: %s"
 msgstr ""
 
-msgid "calculate EDC"
+msgid "No entry in field <Source>."
 msgstr ""
 
-msgid "manage suppressed hints"
+msgid "No entry in field <Conditions>."
 msgstr ""
 
-msgid "Cannot manage suppressed hints. No active patient."
+msgid "No entry in field <Description>."
 msgstr ""
 
-msgid "Cannot show EMR summary. No active patient."
+msgid "No entry in field <Title>."
 msgstr ""
 
-msgid "EMR Summary"
+msgid "creating a new dynamic hint"
 msgstr ""
 
-msgid "Cannot export EMR journal. No active patient."
+msgid "updating an existing dynamic hint"
 msgstr ""
 
-msgid "Save patient's EMR journal as..."
+msgid "Deleting suppressed dynamic hint"
 msgstr ""
 
-msgid "Error exporting patient EMR as chronological journal."
+#, python-format
+msgid ""
+"Really delete the suppression of this dynamic hint ?\n"
+"\n"
+" [%s]"
 msgstr ""
 
-msgid "EMR journal export"
+msgid ""
+"\n"
+"Dynamic hints suppressed in this patient.\n"
 msgstr ""
 
-#, python-format
-msgid "Successfully exported EMR as chronological journal into file [%s]."
+msgid "Showing suppressed dynamic hints."
 msgstr ""
 
-msgid "Cannot add tag to person. No active patient."
+msgid "Rationale"
 msgstr ""
 
-#, python-format
-msgid "Edit the comment on tag [%s]"
+msgid "Manage hints"
 msgstr ""
 
-msgid "Editing tag comment"
+msgid "Manage automatic dynamic hints"
 msgstr ""
 
-msgid "Cannot export patient as GDT. No active patient."
+msgid "Cannot delete family history item."
 msgstr ""
 
-msgid "Exported demographics as GDT to clipboard."
+msgid "Family history of this patient."
 msgstr ""
 
-msgid "Cannot export patient as VCARD. No active patient."
+msgid "Showing family history."
 msgstr ""
 
-msgid "Exported demographics as VCARD to clipboard."
+msgid "Fatal"
 msgstr ""
 
-msgid "Cannot export patient as XML (LinuxMedNews). No active patient."
+msgid "Noted"
 msgstr ""
 
-#, python-format
-msgid "Exported demographics to XML file [%s]."
+msgid "Died"
 msgstr ""
 
-#, python-format
-msgid "Exported demographics to GDT file [%s]."
+msgid "Adding family history"
 msgstr ""
 
-#, python-format
-msgid "Exported demographics to VCARD file [%s]."
+msgid "Editing family history"
 msgstr ""
 
-msgid "Cannot add staff member. No active patient."
+msgid ""
+"\n"
+"Please select the default drug data source from the list below.\n"
+"\n"
+"Note that to actually use it you need to have the database installed, too."
 msgstr ""
 
-msgid "Cannot delete patient. No patient active."
+msgid "Configuring default drug data source"
 msgstr ""
 
-msgid ""
-"You have to manually close this window to finalize shutting down GNUmed."
+msgid "No default drug database configured."
 msgstr ""
 
-msgid "This is so that you can inspect the console output at your leisure."
+msgid "There is no default drug database configured."
 msgstr ""
 
-msgid "no patient"
+msgid "Jumping to drug database"
 msgstr ""
 
-#, python-format
-msgid "Saved screenshot to file [%s]."
+msgid "Cannot import drugs from IFAP into chart without chart."
 msgstr ""
 
-msgid "GNUmed client"
+#, python-format
+msgid "Cannot call IFAP via [%s]."
 msgstr ""
 
-msgid "GNUmed stdout/stderr window"
+#, python-format
+msgid "Cannot create IFAP <-> GNUmed transfer file [%s]."
 msgstr ""
 
-msgid "redirecting STDOUT/STDERR to this log window"
+msgid "Current medication"
 msgstr ""
 
-#, python-format
 msgid ""
-"The database account [%s] cannot be used as a\n"
-"staff member login for GNUmed. There was an\n"
-"error retrieving staff details for it.\n"
 "\n"
-"Please ask your administrator for help.\n"
+"The ATC codes as known to GNUmed.\n"
 msgstr ""
 
-msgid "Checking access permissions"
+msgid "Showing ATC codes."
 msgstr ""
 
-#, python-format
-msgid "Database <%s> on <%s>"
+msgid "Choose an ATC import config file"
 msgstr ""
 
-#, python-format
-msgid "Branch \"%s\" of praxis \"%s\"\n"
+msgid "config files"
 msgstr ""
 
-msgid "Verifying database"
+msgid "importing ATC reference data"
 msgstr ""
 
-msgid "Connect"
+msgid "Successfully imported ATC reference data."
 msgstr ""
 
-msgid "Yes, connect to this database."
+msgid "Importing ATC reference data failed."
 msgstr ""
 
-msgid "Disconnect"
+msgid "Select an ATC (Anatomical-Therapeutic-Chemical) code."
 msgstr ""
 
-msgid "No, do not connect to this database."
+msgid "Cannot edit this substance. It is in use."
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot find configuration file in any of:\n"
-"\n"
-" %s\n"
-"You may need to use the comand line option\n"
-"\n"
-"\t--conf-file=<FILE>"
+msgid "Adding new consumable substance"
 msgstr ""
 
-msgid "Checking configuration files"
+msgid "Editing consumable substance"
 msgstr ""
 
-msgid "GNUmed startup"
+msgid "Cannot delete this substance. It is in use."
 msgstr ""
 
-#, python-format
 msgid ""
-"The currently selected database language ('%s') does\n"
-"not match the current system language ('%s').\n"
 "\n"
-"Do you want to set the database language to '%s' ?\n"
+"These are the consumable substances registered with GNUmed.\n"
 msgstr ""
 
-msgid "Checking database language settings"
+msgid "Import"
 msgstr ""
 
-msgid "Set"
+msgid "Import consumable substances from a drug database."
 msgstr ""
 
-#, python-format
-msgid "Set your database language to [%s]."
+msgid "Cannot save consumable substance. Missing essential input."
 msgstr ""
 
-msgid "Don't set"
+#, python-format
+msgid "Cannot save consumable substance. %s"
 msgstr ""
 
-msgid "Do not set your database language now."
+msgid "The substance with optional strength."
 msgstr ""
 
-msgid "Remember to ignore language mismatch"
+msgid "Cannot remove this component from the drug. It is in use."
 msgstr ""
 
-#, python-format
 msgid ""
-"Checking this will make GNUmed remember your decision\n"
-"until the system language is changed.\n"
-"\n"
-"You can also reactivate this inquiry by removing the\n"
-"corresponding \"ignore\" option from the configuration file\n"
 "\n"
-" [%s]"
+"These are the components in the drug brands known to GNUmed.\n"
 msgstr ""
 
-msgid "generic activity"
+msgid "Showing drug brand components."
 msgstr ""
 
-msgid "Access denied"
+msgid "Adding new drug component"
 msgstr ""
 
-#, python-format
-msgid ""
-"Your account is not set up to access this part of GNUmed:\n"
-"\n"
-"  [%s]"
+msgid "Editing drug component"
 msgstr ""
 
-msgid "Save timeline as SVG image under..."
+msgid "Cannot edit drug component. It is in use."
 msgstr ""
 
-msgid "timeline image"
+msgid "Cannot save drug component. Invalid or missing essential input."
 msgstr ""
 
-msgid "timeline data"
+msgid "A drug component with optional strength."
 msgstr ""
 
-msgid "Cannot change notebook tabs. No active patient."
+msgid "Editing drug"
 msgstr ""
 
-msgid "add plugin ..."
+#, python-format
+msgid ""
+"Cannot edit the branded drug product\n"
+"\n"
+" \"%s\" (%s)\n"
+"\n"
+"because it is currently taken by patients.\n"
 msgstr ""
 
-msgid "Cannot activate Allergy Manager. No active patient."
+msgid "Adding new drug brand"
 msgstr ""
 
-msgid "<Age>"
+msgid "Editing drug brand"
 msgstr ""
 
-msgid "no patient selected"
+msgid "Manage consumable substances"
 msgstr ""
 
-#, python-format
-msgid "Gender: %s (%s) - %s\n"
+msgid "not in use"
 msgstr ""
 
 #, python-format
-msgid "Born: %s\n"
+msgid "ATC: %s\n"
 msgstr ""
 
-#, python-format
-msgid "Died: %s\n"
+msgid "Editing medication"
 msgstr ""
 
 #, python-format
-msgid "At age: %s\n"
+msgid ""
+"Cannot edit the medication\n"
+"\n"
+" \"%s\" (%s)\n"
+"\n"
+"because it is a vaccine. Please edit it\n"
+"from the vaccine management section !\n"
 msgstr ""
 
-msgid " (date of birth and age are estimated)\n"
+msgid "Deleting medication"
 msgstr ""
 
 #, python-format
-msgid "%(sex)s  %(dob)s (%(age)s today !)"
+msgid ""
+"Cannot delete the medication\n"
+"\n"
+" \"%s\" (%s)\n"
+"\n"
+"because it is a vaccine. Please delete it\n"
+"from the vaccine management section !\n"
 msgstr ""
 
 msgid ""
 "\n"
-"Today is the patient's birthday !\n"
-"\n"
+"These are the drug brands known to GNUmed.\n"
 msgstr ""
 
-#, python-format
-msgid "Birthday: %s ago\n"
+msgid "Showing branded drugs."
 msgstr ""
 
-#, python-format
-msgid "Birthday: in %s\n"
+msgid "Import substances and brands from a drug database."
 msgstr ""
 
-#, python-format
-msgid "Age: %s\n"
+msgid "Managing components of a drug"
 msgstr ""
 
 #, python-format
-msgid "last confirmed %s\n"
+msgid ""
+"Cannot manage the components of the branded drug product\n"
+"\n"
+" \"%s\" (%s)\n"
+"\n"
+"because it is currently taken by patients.\n"
 msgstr ""
 
-#, python-format
-msgid "Comment (%s): %%s"
+msgid "Pick the substances which are components of this drug."
 msgstr ""
 
-#, python-format
-msgid " - expires %s"
+msgid "Components of drug"
 msgstr ""
 
 #, python-format
 msgid ""
-"Due for %s (since %s%s):\n"
-"%s%s\n"
-"Patient: %s\n"
-"Reminder by: %s"
+"Adjust the components of \"%s\"\n"
+"\n"
+"The drug must contain at least one component. Any given\n"
+"substance can only be included once per drug."
 msgstr ""
 
-msgid "Clinical reminder"
+msgid "Managing components of a drug ..."
 msgstr ""
 
-msgid "Adding automatic dynamic hint"
+msgid "Cannot edit drug brand. It is in use."
 msgstr ""
 
-msgid "Editing automatic dynamic hint"
+msgid "Checking brand data"
 msgstr ""
 
-msgid "Deleting automatic dynamic hint"
+#, python-format
+msgid ""
+"The brand information you entered:\n"
+"\n"
+" [%s %s]\n"
+"\n"
+"already exists as a drug product."
 msgstr ""
 
-#, python-format
 msgid ""
-"Really delete this dynamic hint ?\n"
+"You have not selected any substances\n"
+"as drug components.\n"
 "\n"
-" [%s]"
+"Without components you will not be able to\n"
+"use this drug for documenting patient care.\n"
+"\n"
+"Are you sure you want to save\n"
+"it without components ?"
 msgstr ""
 
-msgid "deleting a dynamic hint"
+msgid "Cannot save branded drug. Invalid or missing essential input."
 msgstr ""
 
 msgid ""
+"The brand name of the drug.\n"
 "\n"
-"Dynamic hints registered with GNUmed.\n"
+"Note: a brand name will need to be linked to\n"
+"one or more components before it can be used,\n"
+"except in the case of fake (generic) vaccines."
 msgstr ""
 
-msgid "Showing dynamic hints."
+msgid "No EMR data loaded."
 msgstr ""
 
-msgid "Hint"
+msgid "EMR text dump"
 msgstr ""
 
-msgid "Browse and install automatic dynamic hints data packs"
+msgid "Currently there is no active patient. Cannot retrieve EMR text."
 msgstr ""
 
-#, python-format
-msgid "By: %s"
+msgid "SOAP Editor Actions:"
 msgstr ""
 
-msgid "No entry in field <Source>."
+msgid "&Sort lines"
 msgstr ""
 
-msgid "No entry in field <Conditions>."
+msgid "Sort lines by SOAP category"
 msgstr ""
 
-msgid "No entry in field <Description>."
+msgid "e&Xpand keyword"
 msgstr ""
 
-msgid "No entry in field <Title>."
+msgid "Expand keyword / macro"
 msgstr ""
 
-msgid "creating a new dynamic hint"
+msgid "as &Subjective"
 msgstr ""
 
-msgid "updating an existing dynamic hint"
+msgid "Set line to category \"Subjective\""
 msgstr ""
 
-msgid "Deleting suppressed dynamic hint"
+msgid "as &Objective"
 msgstr ""
 
-#, python-format
-msgid ""
-"Really delete the suppression of this dynamic hint ?\n"
-"\n"
-" [%s]"
+msgid "Set line to category \"Objective\""
 msgstr ""
 
-msgid ""
-"\n"
-"Dynamic hints suppressed in this patient.\n"
+msgid "as &Assessment"
 msgstr ""
 
-msgid "Showing suppressed dynamic hints."
+msgid "Set line to category \"Assessment\""
 msgstr ""
 
-msgid "Rationale"
+msgid "as &Plan"
 msgstr ""
 
-msgid "Manage hints"
+msgid "Set line to category \"Plan\""
 msgstr ""
 
-msgid "Manage automatic dynamic hints"
+msgid "as &Unspecified"
 msgstr ""
 
-msgid "Cannot delete family history item."
+msgid "Set line to category \"unspecified\""
 msgstr ""
 
-msgid "Family history of this patient."
+msgid "as ad&Ministrative"
 msgstr ""
 
-msgid "Showing family history."
+msgid "Set line to category \"administrative\""
 msgstr ""
 
-msgid "Fatal"
+msgid "→ &Clipboard"
 msgstr ""
 
-msgid "Noted"
+msgid "Copy line to clipboard"
 msgstr ""
 
-msgid "Died"
+msgid "→ +Clipboard+"
 msgstr ""
 
-msgid "Adding family history"
+msgid "Add line to clipboard"
 msgstr ""
 
-msgid "Editing family history"
+msgid "Copy content to clipboard"
 msgstr ""
 
-msgid "No EMR data loaded."
+msgid "Add content to clipboard"
 msgstr ""
 
-msgid "EMR text dump"
+msgid "Copy selection to clipboard"
 msgstr ""
 
-msgid "Currently there is no active patient. Cannot retrieve EMR text."
+msgid "Add selection to clipboard"
+msgstr ""
+
+msgid "&Line ..."
+msgstr ""
+
+msgid "&Text ..."
+msgstr ""
+
+msgid "&Region ..."
 msgstr ""
 
 msgid "Show HL7 file:"
@@ -15506,6 +16353,10 @@ msgstr ""
 msgid "Extracting HL7 from XML file"
 msgstr ""
 
+#, python-format
+msgid "Unwrapped HL7 into [%s] from [%s]."
+msgstr ""
+
 msgid "Select HL7 file for staging:"
 msgstr ""
 
@@ -15530,6 +16381,10 @@ msgid ""
 " %s"
 msgstr ""
 
+#, python-format
+msgid "Staged HL7 from [%s]."
+msgstr ""
+
 msgid "Importing HL7 data"
 msgstr ""
 
@@ -15572,9 +16427,6 @@ msgstr ""
 msgid "Identification"
 msgstr ""
 
-msgid "Show"
-msgstr ""
-
 msgid "Show formatted HL7"
 msgstr ""
 
@@ -15620,6 +16472,17 @@ msgstr ""
 msgid "Plot current selection"
 msgstr ""
 
+msgid ""
+"Select the measurements panel to show in the top pane for continuous "
+"monitoring."
+msgstr ""
+
+msgid "Lab panel"
+msgstr ""
+
+msgid "Configuring continuous monitoring measurements panel"
+msgstr ""
+
 msgid "No default Gnuplot script template selected."
 msgstr ""
 
@@ -15642,10 +16505,25 @@ msgstr ""
 msgid "Cannot plot without a plot script."
 msgstr ""
 
-msgid "Time"
+msgid "Result"
 msgstr ""
 
-msgid "Result"
+msgid "Perform on selected results:"
+msgstr ""
+
+msgid "Review and &sign"
+msgstr ""
+
+msgid "Export to &file"
+msgstr ""
+
+msgid "Export to &clipboard"
+msgstr ""
+
+msgid "Panels"
+msgstr ""
+
+msgid "List"
 msgstr ""
 
 msgid ""
@@ -15722,18 +16600,6 @@ msgstr ""
 msgid "All: by &Day"
 msgstr ""
 
-msgid "Perform on selected results:"
-msgstr ""
-
-msgid "Review and &sign"
-msgstr ""
-
-msgid "Export to &file"
-msgstr ""
-
-msgid "Export to &clipboard"
-msgstr ""
-
 #, python-format
 msgid "%s results selected. Too many to list individually."
 msgstr ""
@@ -15907,6 +16773,9 @@ msgstr ""
 msgid "EMR Actions:"
 msgstr ""
 
+msgid "Print EMR"
+msgstr ""
+
 msgid "Create health issue"
 msgstr ""
 
@@ -16055,11 +16924,40 @@ msgstr ""
 msgid "&New notes %s"
 msgstr ""
 
+msgid "Find text in EMR Journal"
+msgstr ""
+
+msgid "Modified"
+msgstr ""
+
+msgid "Clinical time"
+msgstr ""
+
+msgid "Who / When"
+msgstr ""
+
+#, python-format
 msgid ""
-"An error occurred while retrieving the EMR\n"
-"in journal form for the active patient.\n"
+"Chart entry: %s       [#%s in %s]\n"
+" Modified: %s by %s (%s rev %s)\n"
 "\n"
-"Please check the log file for details."
+"Health issue: %s%s\n"
+"Episode: %s%s\n"
+"Encounter: %s%s"
+msgstr ""
+
+#, python-format
+msgid ""
+"%s\n"
+"\n"
+"                        rev %s (%s) by %s in <%s>"
+msgstr ""
+
+#, python-format
+msgid ""
+"%s\n"
+"%s\n"
+"%s"
 msgstr ""
 
 msgid "Editing tag"
@@ -16186,18 +17084,15 @@ msgid ""
 "%s\n"
 msgstr ""
 
-msgid "This patient DID receive care."
+msgid "This patient DID receive care here."
 msgstr ""
 
-msgid "This person did NOT receive care."
+msgid "This person did NOT receive care here."
 msgstr ""
 
 msgid "Disabling person"
 msgstr ""
 
-msgid "Disabling patient"
-msgstr ""
-
 msgid "Type or select a last name (family name/surname)."
 msgstr ""
 
@@ -16440,6 +17335,9 @@ msgid ""
 "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
 msgstr ""
 
+msgid "Connecting to backend"
+msgstr "Conectarea la backend"
+
 #, python-format
 msgid ""
 "Unable to connect to database:\n"
@@ -16648,9 +17546,6 @@ msgstr ""
 msgid "Office"
 msgstr ""
 
-msgid "State"
-msgstr ""
-
 msgid "Zip"
 msgstr ""
 
@@ -16706,7 +17601,7 @@ msgstr ""
 msgid "EMR Timeline"
 msgstr ""
 
-msgid "Show &Timeline"
+msgid "EMR &Timeline"
 msgstr ""
 
 msgid "Overview"
@@ -16733,10 +17628,10 @@ msgstr ""
 msgid "&SimpleNotes"
 msgstr ""
 
-msgid "EMR tree"
+msgid "EMR Tree"
 msgstr ""
 
-msgid "EMR &Tree (topical)"
+msgid "EMR &Tree"
 msgstr ""
 
 msgid "Print Manager"
@@ -16745,6 +17640,12 @@ msgstr ""
 msgid "&Print Manager"
 msgstr ""
 
+msgid "EMR Journal"
+msgstr ""
+
+msgid "EMR &Journal (list)"
+msgstr ""
+
 msgid "Appointments"
 msgstr ""
 
@@ -16757,6 +17658,12 @@ msgstr ""
 msgid "Show &lab journal"
 msgstr ""
 
+msgid "PACS"
+msgstr ""
+
+msgid "&PACS"
+msgstr ""
+
 msgid "Cardiac Devices"
 msgstr ""
 
@@ -16829,10 +17736,7 @@ msgstr ""
 msgid "User &manual (local)"
 msgstr ""
 
-msgid "EMR journal"
-msgstr ""
-
-msgid "EMR &Journal (chronological)"
+msgid "EMR &Journal (text)"
 msgstr ""
 
 msgid "Demographics"
@@ -16993,6 +17897,9 @@ msgstr ""
 msgid "Show &ExamplePlugin"
 msgstr ""
 
+msgid "Find text"
+msgstr ""
+
 msgid "gm_ctl_client: starting slave GNUmed client"
 msgstr ""
 
@@ -17018,3 +17925,76 @@ msgstr ""
 
 msgid "Abort and do NOT connect to GNUmed."
 msgstr ""
+
+#, fuzzy
+#~ msgid "&Unknown"
+#~ msgstr "statiu de alergie necunoscut"
+
+#~ msgid ""
+#~ "Unable to connect to database:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Are you sure you have got a local database installed ?\n"
+#~ "\n"
+#~ "Please retry with proper credentials or cancel.\n"
+#~ "\n"
+#~ "You may also need to check the PostgreSQL client\n"
+#~ "authentication configuration in pg_hba.conf. For\n"
+#~ "details see:\n"
+#~ "\n"
+#~ "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
+#~ msgstr ""
+#~ "Imposibil de conectat la baza de date\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Sunteți sigur că aveţi o bază de date locală instalată?\n"
+#~ "\n"
+#~ "Vă rugăm să reîncercaţi cu alte drepturi sau anulați.\n"
+#~ "\n"
+#~ "Verificați deasemenea PostgreSQL setarile\n"
+#~ "de autentificare configurate în fișierul pg_hba.conf. Pentru\n"
+#~ "detalii a se vedea:\n"
+#~ "\n"
+#~ "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
+
+#~ msgid ""
+#~ "Unable to connect to database:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Please retry with proper credentials or cancel.\n"
+#~ "\n"
+#~ "You may also need to check the PostgreSQL client\n"
+#~ "authentication configuration in pg_hba.conf. For\n"
+#~ "details see:\n"
+#~ "\n"
+#~ "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
+#~ msgstr ""
+#~ "Imposibil de conectat la baza de date\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Sunteți sigur că aveţi o bază de date locală instalată?\n"
+#~ "\n"
+#~ "Vă rugăm să reîncercaţi cu alte drepturi sau anulați.\n"
+#~ "\n"
+#~ "Verificați deasemenea PostgreSQL setarile\n"
+#~ "de autentificare configurate în fișierul pg_hba.conf. Pentru\n"
+#~ "detalii a se vedea:\n"
+#~ "\n"
+#~ "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
+
+#~ msgid ""
+#~ "Unable to connect to database:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Please retry another backend / user / password combination !\n"
+#~ msgstr ""
+#~ "Imposibil de conectat la baza de date:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Vă rugăm să reîncercaţi un o altă  combinaţie backend / user / parolă!\n"
diff --git a/client/po/ru-gnumed.mo b/client/po/ru-gnumed.mo
index a2f9bfd..c8759ab 100644
Binary files a/client/po/ru-gnumed.mo and b/client/po/ru-gnumed.mo differ
diff --git a/client/po/ru.po b/client/po/ru.po
index 8e59d19..d8fd183 100644
--- a/client/po/ru.po
+++ b/client/po/ru.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gnumed\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-12-26 20:29+0100\n"
+"POT-Creation-Date: 2016-03-17 16:27+0100\n"
 "PO-Revision-Date: 2012-01-21 13:50+0000\n"
 "Last-Translator: YvLy <Unknown>\n"
 "Language-Team: Russian <ru at li.org>\n"
@@ -1646,11 +1646,23 @@ msgstr ""
 "Запрошенная помощь\n"
 "--------------"
 
+#, fuzzy, python-format
+msgid "Revision #%s"
+msgstr "Проверки"
+
 #, python-format
 msgid "[%s:%s]: row not updated (nothing returned), row in use ?"
 msgstr ""
 "[%s:%s]: строка не обновлена (ничего не возвращено), она используется ?"
 
+#, fuzzy, python-format
+msgid "<%s(.bat)> not found"
+msgstr "pgAdmin III не найден."
+
+#, fuzzy, python-format
+msgid "problem with <%s>"
+msgstr "Список проблем"
+
 #, python-format
 msgid "[%s] is not a readable file"
 msgstr "[%s] не читаемый файл"
@@ -1687,28 +1699,9 @@ msgstr "1 байт"
 msgid "%s Bytes"
 msgstr "%s Байты"
 
-#, python-format
-msgid ""
-"Cannot connect to configuration database with:\n"
-"\n"
-"[%s]"
-msgstr ""
-"Невозможно подключить к конфигурационной базе данных с:\n"
-"\n"
-"[%s]"
-
-#, python-format
-msgid ""
-"Cannot connect to database with:\n"
-"\n"
-"[%s]"
-msgstr ""
-"Невозможно подключить к базе данных с:\n"
-"\n"
-"[%s]"
-
-msgid "No product information available."
-msgstr "Не доступна информация о продукте"
+#, fuzzy
+msgid "<type>"
+msgstr "тип"
 
 #, python-format
 msgid ""
@@ -2065,106 +2058,6 @@ msgstr " опция [%s]: %s"
 msgid "  risk: %s"
 msgstr "  риск: %s"
 
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Are you sure you have got a local database installed ?\n"
-"\n"
-"Please retry with proper credentials or cancel.\n"
-"\n"
-"You may also need to check the PostgreSQL client\n"
-"authentication configuration in pg_hba.conf. For\n"
-"details see:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-msgstr ""
-"Невозможно подключиться к базе данных:\n"
-"\n"
-"%s\n"
-"\n"
-"Уверены, что локальная база данных установлена?\n"
-"\n"
-"Повторите попытку, указав точную информацию или отмените.\n"
-"\n"
-"Возможно, также необходимо проверить конфигурацию\n"
-"проверки клиентов PostgreSQL в файле pg_hba.conf.\n"
-"Подробнее см.:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Please retry with proper credentials or cancel.\n"
-"\n"
-"You may also need to check the PostgreSQL client\n"
-"authentication configuration in pg_hba.conf. For\n"
-"details see:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-msgstr ""
-"Невозможно подключиться к базе данных:\n"
-"\n"
-"%s\n"
-"\n"
-"Повторите попытку, указав точную информацию или отмените.\n"
-"\n"
-"Возможно, также необходимо проверить настройку\n"
-"идентификации клиентов PostgreSQL в файле pg_hba.conf.\n"
-"Подробнее см.:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-
-msgid "Connecting to backend"
-msgstr "Подключение к серверному приложению"
-
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Please retry another backend / user / password combination !\n"
-msgstr ""
-"Невозможно подключиться к базе данных:\n"
-"\n"
-"%s\n"
-"\n"
-"Попробуйте другую комбинацию серверное приложение/пользователь/пароль!\n"
-
-msgid "programmer forgot to specify error message"
-msgstr "программист забыл указать сообщение об ошибке"
-
-msgid ""
-"\n"
-"\n"
-"Please consult the error log for all the gory details !"
-msgstr ""
-"\n"
-"\n"
-"Обратитесь к журналу ошибок для уточнения всех этих подробностей!"
-
-msgid "generic error message"
-msgstr "общее сообщение об ошибке"
-
-msgid "programmer forgot to specify info message"
-msgstr "программист забыл указать информационное сообщение"
-
-msgid "generic info message"
-msgstr "общее информационное сообщение"
-
-msgid "programmer forgot to specify warning"
-msgstr "программист забыл указать предупреждение"
-
-msgid "generic warning message"
-msgstr "общее предупреждающее сообщение"
-
 msgid "no hook specified, please report bug"
 msgstr "Не указан обработчик прерываний, сообщите об ошибке"
 
@@ -2524,6 +2417,34 @@ msgstr "Сортировать по:"
 msgid "Include:"
 msgstr "Включить:"
 
+#, fuzzy
+msgid "&Search"
+msgstr "Найти"
+
+msgid "Suggest"
+msgstr ""
+
+msgid "Set"
+msgstr "Установить"
+
+msgid "dialog_1"
+msgstr ""
+
+msgid "Search patients in Orthanc DICOM store."
+msgstr ""
+
+#, fuzzy
+msgid "Suggest a patient ID based on the active patient."
+msgstr "Запустите новое обращение для активного пациента."
+
+#, fuzzy
+msgid "Search term:"
+msgstr "Ввод условия для писка:"
+
+#, fuzzy
+msgid "New patient ID:"
+msgstr "внутренний ID пациента"
+
 msgid "Your review"
 msgstr "Ваше заключение"
 
@@ -2915,6 +2836,107 @@ msgstr "Вещество"
 msgid "Amount"
 msgstr "Количество"
 
+#, fuzzy
+msgid "&Connect"
+msgstr "Подключить"
+
+#, fuzzy
+msgid "&Browse"
+msgstr "Обзор"
+
+#, fuzzy
+msgid "<not connected>"
+msgstr "Потеря подключения"
+
+#, fuzzy
+msgid "Browse all"
+msgstr "Обзор"
+
+#, fuzzy
+msgid "Export all"
+msgstr "Экспорт всех частей"
+
+msgid "Browse"
+msgstr "Обзор"
+
+msgid "Export"
+msgstr "Экспорт"
+
+#, fuzzy
+msgid "Upload"
+msgstr "Перезагрузить"
+
+#, fuzzy
+msgid "Enter the PACS host address."
+msgstr "Введите номер дома для этого адреса."
+
+#, fuzzy
+msgid "Enter the PACS port."
+msgstr "Очистить примечание SOAP."
+
+#, fuzzy
+msgid "Enter the PACS user."
+msgstr "Введите количество вещества."
+
+#, fuzzy
+msgid "Enter the PACS password. It will not be shown."
+msgstr "Введите НОВЫЙ пароль для владельца базы данных GNUmed."
+
+#, fuzzy
+msgid "Connect to PACS."
+msgstr "Подключение к GNUmed"
+
+msgid "Browse PACS at top level."
+msgstr ""
+
+msgid "Modify some of Orthanc content (such as patient IDs)."
+msgstr ""
+
+#, fuzzy
+msgid "Browse overview of studies for this patient."
+msgstr "Семейный анамнез этого пациента."
+
+#, fuzzy
+msgid "Copy all studies into export area."
+msgstr "Активирование пациента из  полученного списка"
+
+#, fuzzy
+msgid "Browse topmost selected study."
+msgstr "Редактировать выбранное заболевание."
+
+#, fuzzy
+msgid "Copy selected studies into export area."
+msgstr "Активирование пациента из  полученного списка"
+
+#, fuzzy
+msgid "Save selected studies to disk."
+msgstr "Перемещает выбранный пункт слева направо."
+
+msgid ""
+"Upload DICOM files from a directory, recursively, into the Orthanc PACS\n"
+"\n"
+"The currently active patient does not matter. Orthanc will associate "
+"uploaded files with the patient found within the DICOM metadata. It will "
+"create new patients as needed."
+msgstr ""
+
+msgid "Host:"
+msgstr ""
+
+msgid "Port:"
+msgstr ""
+
+#, fuzzy
+msgid "User:"
+msgstr "Пользователь"
+
+msgid "Password"
+msgstr "Пароль"
+
+#, fuzzy
+msgid "Selected studies:"
+msgstr "Выбор пациента"
+
 msgid "Fake brand"
 msgstr "Подделка под патентованный препарат"
 
@@ -3289,9 +3311,6 @@ msgstr "общее сообщение об ошибке"
 msgid "&Load"
 msgstr "&Загрузить"
 
-msgid "Export"
-msgstr "Экспорт"
-
 msgid "A long, descriptive name for this form template."
 msgstr "Длинное описательное имя для этой формы шаблона."
 
@@ -3389,15 +3408,13 @@ msgstr "&clinically значимо"
 msgid "Document Properties"
 msgstr "Свойства документа"
 
-msgid "Show part"
-msgstr "Показать часть"
+#, fuzzy
+msgid "Show"
+msgstr "Показать:"
 
 msgid "Remove part"
 msgstr "Удалить часть"
 
-msgid "Parts"
-msgstr "Части"
-
 msgid "Discard"
 msgstr "Отклонить"
 
@@ -3434,6 +3451,12 @@ msgstr ""
 msgid "Required: The primary episode this document is to be listed under."
 msgstr "Обязательно: основной эпизод этого документа вносится ниже."
 
+#, fuzzy
+msgid "Optional: The organization (unit) this document originated from."
+msgstr ""
+"\n"
+"Выберите нужное пребывание в стационаре для редактирования!\n"
+
 msgid ""
 "Optional: A short comment identifying the document. Good comments give an "
 "idea of the content and source of the document."
@@ -3469,6 +3492,9 @@ msgstr ""
 "Предоставляет ли этот документ выводы о клинической значимости. Учтите, что "
 "вывод и о норме, и об отклонении от нормы может быть значимым."
 
+msgid "Optional: A free-text document description."
+msgstr "Нобязательно: свободно-текстовое описание документа."
+
 msgid "This field lists the parts belonging to the current document."
 msgstr "Это поле перечисляет части текущего документа."
 
@@ -3482,9 +3508,6 @@ msgstr ""
 "Удаление части, выбранной в списке выше. Перед физическим удалением с диска "
 "будет запрошено подтверждение."
 
-msgid "Optional: A free-text document description."
-msgstr "Нобязательно: свободно-текстовое описание документа."
-
 msgid "Save finished document."
 msgstr "Сохраняет окончательный документ."
 
@@ -3500,6 +3523,10 @@ msgstr "Дата создания документа:"
 msgid "Associate to episode:"
 msgstr "Объединить с эпизодом:"
 
+#, fuzzy
+msgid "Document source:"
+msgstr "Документы:"
+
 msgid "Comment / Identification:"
 msgstr "Комментарий или идентификация:"
 
@@ -3702,8 +3729,9 @@ msgstr "Показывает все выбранные в вашем почто
 msgid "Messages:"
 msgstr "Сообщение"
 
-msgid "Only:"
-msgstr ""
+#, fuzzy
+msgid "Limit to:"
+msgstr "(ограничить последним:"
 
 msgid "&Myself … or:"
 msgstr "&Myself ... или:"
@@ -3822,12 +3850,13 @@ msgstr "Завершение"
 msgid "Purpose"
 msgstr "Цель"
 
+#, fuzzy
+msgid "Please supply your email address here !"
+msgstr "<Вставьте здесь свой адрес email>"
+
 msgid "Details"
 msgstr "Сведения"
 
-msgid "<Please supply your email address here !>"
-msgstr "<Вставьте здесь свой адрес email>"
-
 msgid "Keep running"
 msgstr "Запуск  ведения"
 
@@ -3850,10 +3879,13 @@ msgstr ""
 "Введите любые дополнительные данные или комментарии, которые хотите "
 "предоставить, например, что вы готовы сделать."
 
+#, fuzzy
 msgid ""
-"Please enter your email address so we can provide feedback directly to you. "
-"Otherwise, feedback will be given on the GNUmed mailing list (http://lists."
-"gnu.org/mailman/listinfo/gnumed-bugs)."
+"Please enter your email address so we can provide help to you directly.\n"
+"\n"
+"Otherwise, feedback can be given on the GNUmed mailing list (http://lists."
+"gnu.org/mailman/listinfo/gnumed-bugs) ONLY to which you will then have to "
+"subscribe."
 msgstr ""
 "Введите свой email адрес для обратной связи. Иначе, она будет через список "
 "рассылки GNUmed (http://lists.gnu.org/mailman/listinfo/gnumed-bugs)."
@@ -4003,9 +4035,6 @@ msgstr "Пользовательские параметры:"
 msgid "Account"
 msgstr "Учетная запись"
 
-msgid "Password"
-msgstr "Пароль"
-
 msgid "Password, again"
 msgstr "Повторите пароль"
 
@@ -4575,8 +4604,9 @@ msgstr "Изменить свойства документа"
 msgid "Acquire images from image source (scanner, ...)."
 msgstr ""
 
-msgid "Acquire images or text from the clipboard."
-msgstr ""
+#, fuzzy
+msgid "Acquire file or text from the clipboard."
+msgstr "Удаление выбранного пункта(в) из списка."
 
 #, fuzzy
 msgid "Remove the selected documents."
@@ -4743,7 +4773,7 @@ msgid ""
 "- the result list will be artificially limited to the first 1000 rows\n"
 "- you can include a column named \"pk_patient\" to make the result rows "
 "activate the corresponding patient on double-clicking\n"
-"- by inserting $<ID_active_patient>$ you can access the patient ID of the "
+"- by inserting $<ID_ACTIVE_PATIENT>$ you can access the patient ID of the "
 "patient active at the time of running the query"
 msgstr ""
 "Введите здесь команды SQL для запуска. Не имеет значение, вводите или нет "
@@ -4937,9 +4967,6 @@ msgstr "&Link"
 msgid "Link &new"
 msgstr "Ссылка &new"
 
-msgid "Browse"
-msgstr "Обзор"
-
 msgid ""
 "Search for matches among existing addresses and [Link] a selection, or [Link "
 "(a) new] address."
@@ -4994,27 +5021,17 @@ msgstr ""
 "Отметьте здесь, если нужно отфильтровать журнал по заболеванию, выбранному "
 "слева."
 
-msgid "label_1"
-msgstr "label_1"
-
-msgid "→"
-msgstr "→"
-
-#, fuzzy
-msgid "←"
-msgstr "→"
-
-msgid "Extra"
-msgstr "Дополнительно"
+msgid "Subjective"
+msgstr "Субъективный"
 
-msgid "Move selected items from left to right."
-msgstr "Перемещает выбранный пункт слева направо."
+msgid "Objective"
+msgstr "Объективный"
 
-msgid "Move selected items from right to left."
-msgstr "Перемещает выбранный пункт справа налево."
+msgid "Assessment"
+msgstr "Оценка"
 
-msgid "Cancel picking items."
-msgstr "Отменяет выбранные пункты."
+msgid "Plan"
+msgstr "План"
 
 msgid "Episode synopsis"
 msgstr "Синопсис эпизода"
@@ -5061,20 +5078,30 @@ msgstr ""
 "Здесь можно изменить совокупное резюме (состояние) по эпизоду, которому "
 "принадлежит изложение SOAP."
 
-msgid "Subjective"
-msgstr "Субъективный"
-
 msgid "Codes:"
 msgstr "Коды"
 
-msgid "Objective"
-msgstr "Объективный"
+msgid "label_1"
+msgstr "label_1"
 
-msgid "Assessment"
-msgstr "Оценка"
+msgid "→"
+msgstr "→"
 
-msgid "Plan"
-msgstr "План"
+#, fuzzy
+msgid "←"
+msgstr "→"
+
+msgid "Extra"
+msgstr "Дополнительно"
+
+msgid "Move selected items from left to right."
+msgstr "Перемещает выбранный пункт слева направо."
+
+msgid "Move selected items from right to left."
+msgstr "Перемещает выбранный пункт справа налево."
+
+msgid "Cancel picking items."
+msgstr "Отменяет выбранные пункты."
 
 msgid "1"
 msgstr "1"
@@ -5273,6 +5300,91 @@ msgstr "ATC"
 msgid "Age range"
 msgstr "Возрастная категория"
 
+msgid "&Nicotine"
+msgstr ""
+
+msgid "&Alcohol"
+msgstr ""
+
+#, fuzzy
+msgid "&Other:"
+msgstr "Другой:"
+
+msgid "&Non-harmful use"
+msgstr ""
+
+msgid "&Harmful use"
+msgstr ""
+
+msgid "Presently &addicted"
+msgstr ""
+
+#, fuzzy
+msgid "Previously &addicted"
+msgstr "Предыдущие обращения"
+
+msgid "&Reconfirm as of today"
+msgstr ""
+
+#, fuzzy
+msgid "Select for documenting smoking status."
+msgstr "Удалить ввод из списка ожидания"
+
+msgid "Select for documenting alcohol use status."
+msgstr ""
+
+msgid ""
+"Select for documenting use of substances other than nicotine or alcohol."
+msgstr ""
+
+#, fuzzy
+msgid "Select the abused substance."
+msgstr "Выбирает источник данных по препаратам."
+
+msgid ""
+"Select if the substance use is not considered harmful (say, no use or non-"
+"harmful use)."
+msgstr ""
+
+msgid "Select if substance is use considered harmful."
+msgstr ""
+
+#, fuzzy
+msgid "Select if the patient is presently addicted to this substance."
+msgstr "Отметьте здесь, если у пациента не было никакой известной аллергии."
+
+#, fuzzy
+msgid "Select if the patient was previously addicted to this substance."
+msgstr "Отметьте здесь, если у пациента не было никакой известной аллергии."
+
+msgid ""
+"A comment on this substance use:\n"
+"- type of product used\n"
+"- frequency\n"
+"- amount\n"
+"- when started\n"
+"- attempts to quit\n"
+"..."
+msgstr ""
+
+msgid ""
+"When did the patient quit?\n"
+"\n"
+"You can also set a target quit date here."
+msgstr ""
+
+#, fuzzy
+msgid "Check here to confirm for today."
+msgstr "Настройка страницы для печати"
+
+#, fuzzy
+msgid "Quit date"
+msgstr "Эксудативный"
+
+#, fuzzy
+msgid "Last confirmed"
+msgstr "Ранее подтвержденная"
+
 msgid "Closed episodes"
 msgstr "Закрытые эпизоды"
 
@@ -5671,21 +5783,20 @@ msgstr ""
 msgid "Show:"
 msgstr "Показать:"
 
-msgid "Brand by component"
-msgstr "Марка компонента"
+#, fuzzy
+msgid "Kidneys"
+msgstr "Почка"
 
 msgid "Brands"
 msgstr "Фирмы"
 
 #, fuzzy
-msgid "Kidneys"
-msgstr "Почка"
-
-msgid "Unbranded substance"
-msgstr "Непатентованное вещество"
+msgid "Substances"
+msgstr "Вещество"
 
-msgid "Manage"
-msgstr "Редактор"
+#, fuzzy
+msgid "&Unknown or date:"
+msgstr "неизвестная реакция"
 
 msgid "Approved of"
 msgstr "Принять"
@@ -5699,12 +5810,17 @@ msgstr "По плану"
 msgid "... Reason"
 msgstr "... Причина"
 
+#, fuzzy
 msgid ""
-"A component of a drug brand the patient is taking.\n"
+"A drug the patient is taking.\n"
+"\n"
+"Lookup and select an intake by either of\n"
+"- a generic substance name\n"
+"- a drug brand name\n"
+"- an active ingredient of a drug\n"
 "\n"
-"Lookup, and select, a single- (or multi-) component drug brand, by active "
-"ingredient name. All components of multi-component drugs will be displayed "
-"and automatically added to the patient's list."
+"Note that all components of multi-component drugs will be displayed and "
+"automatically added to the patient's list."
 msgstr ""
 "Компонент принимаемого пациентом препарата.\n"
 "\n"
@@ -5712,6 +5828,18 @@ msgstr ""
 "наименование. Все составляющие многокомпонентных препаратов отобразятся и "
 "будут автоматически добавлены в список пациента."
 
+#, fuzzy
+msgid "Details on the selected drug."
+msgstr "должен выбрать адрес"
+
+#, fuzzy
+msgid "Show cardiac information relevant to substance selection."
+msgstr "Показать подробную информацию по выбранному веществу, если имеется."
+
+#, fuzzy
+msgid "Show renal insufficiency information related to substance selection."
+msgstr "Показать подробную информацию по выбранному веществу, если имеется."
+
 msgid ""
 "Manage drug brands.\n"
 "\n"
@@ -5725,24 +5853,6 @@ msgstr ""
 "(добавление/редактирование/удаление) изделием или маркой препарата,  "
 "известными GNUmed, из которого можно выбрать компонент."
 
-msgid "The active ingredients of this brand."
-msgstr "Действующее вещество этой марки."
-
-#, fuzzy
-msgid "Show cardiac information relevant to substance selection."
-msgstr "Показать подробную информацию по выбранному веществу, если имеется."
-
-#, fuzzy
-msgid "Show renal insufficiency information related to substance selection."
-msgstr "Показать подробную информацию по выбранному веществу, если имеется."
-
-msgid ""
-"The non-branded medication or non-medication substance, with optional "
-"strength."
-msgstr ""
-"Незарегистрированное лекарство или нелекарственное вещество, с "
-"необязательной дозировкой."
-
 msgid ""
 "Manage consumable substances.\n"
 "\n"
@@ -5757,11 +5867,20 @@ msgstr ""
 msgid "The preparation or form of the substance."
 msgstr "Приготовление или форма вещества"
 
+#, fuzzy
+msgid "Check here if the start date simply isn't known."
+msgstr "Если касается активного пациента, то отметьте."
+
 msgid ""
 "When was this substance started to be consumed or - if not known - the "
 "earliest it is known to have been be consumed."
 msgstr ""
 
+msgid ""
+"A coment on the certainty of the start date, such as \"+/- 3 weeks\", "
+"\"spring of 2002\", \"shortly after Easter 1996\", ...."
+msgstr ""
+
 msgid "Whether this substance is taken by advice."
 msgstr "Принималось ли вещество по рекомендации."
 
@@ -5797,6 +5916,17 @@ msgstr "Отметьте, если прекращение было заплан
 msgid "Reason for discontinuation."
 msgstr "Причина прекращения."
 
+msgid "Drug"
+msgstr "Препараты"
+
+#, fuzzy
+msgid "Research:"
+msgstr "Найти"
+
+#, fuzzy
+msgid "Certainty:"
+msgstr "Подтвердить"
+
 msgid "Schedule"
 msgstr "Запланировано"
 
@@ -5969,6 +6099,34 @@ msgid "Channel"
 msgstr "Канал"
 
 #, fuzzy
+msgid "&Last modification time"
+msgstr "Последнее изменение:"
+
+#, fuzzy
+msgid "&Entry time"
+msgstr "Время окончания "
+
+msgid "Show journal ordered by encounter."
+msgstr ""
+
+msgid "Show journal ordered by time of last modification."
+msgstr ""
+
+msgid "Show journal ordered by actual clinical time of each entry."
+msgstr ""
+
+#, fuzzy
+msgid "Edit the selected chart entry."
+msgstr "Изменение выбранного пункта."
+
+#, fuzzy
+msgid "Delete selected chart entry."
+msgstr "Удаление внешнего ID"
+
+msgid "Order by:"
+msgstr ""
+
+#, fuzzy
 msgid "Chec&k"
 msgstr "Возможность проверки"
 
@@ -6616,11 +6774,14 @@ msgstr "Исследования:"
 msgid "Documents:"
 msgstr "Документы:"
 
+msgid "&L"
+msgstr "&L"
+
 msgid "&N"
 msgstr "&N"
 
-msgid "&L"
-msgstr "&L"
+msgid "List all encounters."
+msgstr "Список всех обращений"
 
 msgid "The encounter."
 msgstr "Обращение"
@@ -6628,9 +6789,6 @@ msgstr "Обращение"
 msgid "Start a new encounter for the active patient."
 msgstr "Запустите новое обращение для активного пациента."
 
-msgid "List all encounters."
-msgstr "Список всех обращений"
-
 msgid "Clinically relevant"
 msgstr "Клинически значимо"
 
@@ -6934,10 +7092,12 @@ msgstr ""
 msgid "Manage dynamic hints."
 msgstr "Отображение вакцин."
 
+#, fuzzy
 msgid ""
 "Rationale for\n"
-"suppression"
-msgstr ""
+"suppression\n"
+"for this patient"
+msgstr "Введите имя файла для сохранения этого шаблона в"
 
 msgid "Save &under"
 msgstr "Сохранить &under"
@@ -7008,6 +7168,12 @@ msgstr "записочка:"
 msgid "Encounter:"
 msgstr "обращение:"
 
+msgid "Manage"
+msgstr "Редактор"
+
+msgid "&Panel:"
+msgstr ""
+
 msgid "&Pick"
 msgstr "&Pick"
 
@@ -7063,6 +7229,10 @@ msgstr ""
 "\n"
 "Для отключения этого всплывающего приветствия оставьте его пустым."
 
+#, fuzzy
+msgid "Show search dialog."
+msgstr "Закрывает этот диалог."
+
 msgid "THIS IS NOT A VERIFIED MEASUREMENT. DO NOT USE FOR ACTUAL CARE."
 msgstr ""
 
@@ -7355,6 +7525,56 @@ msgstr "*есть* аллергия"
 msgid "ERROR: unknown allergy state [%s]"
 msgstr "Ошибка: аллергологический статус неизвестен  [%s]"
 
+msgid "definite"
+msgstr "достоверный"
+
+#, fuzzy
+msgid "indefinite"
+msgstr "достоверный"
+
+#, fuzzy
+msgid "Reaction:"
+msgstr "Реакция"
+
+#, fuzzy
+msgid "Noted:"
+msgstr "Отмеченное"
+
+#, fuzzy
+msgid "Allergene:"
+msgstr "Аллергия"
+
+#, fuzzy
+msgid "Substance:"
+msgstr "Вещество"
+
+#, fuzzy
+msgid "Code:"
+msgstr "Коды"
+
+#, fuzzy
+msgid "ATC:"
+msgstr "ATC: %s\n"
+
+#, fuzzy
+msgid "Specific to:"
+msgstr "Установите на:"
+
+#, fuzzy
+msgid "this substance only"
+msgstr "Применяемые вещества"
+
+#, fuzzy
+msgid "drug class"
+msgstr "Классы препаратов"
+
+msgid "unknown"
+msgstr "неизвестно"
+
+#, fuzzy
+msgid "Generics:"
+msgstr "Дженерики (непатентованные препараты)"
+
 msgid "Medication history"
 msgstr "Анамнез заболевания"
 
@@ -7366,9 +7586,16 @@ msgstr "Ошибка печати списка лекарств."
 msgid "prescription data"
 msgstr "Рецепты"
 
+#, fuzzy
+msgid "Consumable substance"
+msgstr "Применяемые вещества"
+
 msgid "in use"
 msgstr "используются"
 
+msgid "w/"
+msgstr ""
+
 msgid "long-term"
 msgstr "долгосрочный"
 
@@ -7387,9 +7614,40 @@ msgstr "неактивный"
 msgid "?ongoing"
 msgstr "?постоянный"
 
-#, python-format
-msgid "Substance intake entry (%s, %s)   [#%s]                     \n"
-msgstr "Ввод использованного вещества (%s, %s) [#%s]                     \n"
+#, fuzzy, python-format
+msgid ""
+"Substance abuse entry                                              [#%s]\n"
+msgstr ""
+"Сведения об\n"
+"исследовании:                                               \n"
+
+#, fuzzy, python-format
+msgid "Substance: %s [#%s]%s\n"
+msgstr "Вещество: %s [#%s]\n"
+
+#, fuzzy, python-format
+msgid "Use type: %s\n"
+msgstr " Введите: %s"
+
+#, fuzzy, python-format
+msgid "Last checked: %s\n"
+msgstr "Последнее обработанное: %s\n"
+
+#, python-format
+msgid " Discontinued %s\n"
+msgstr " Прекращение %s\n"
+
+#, fuzzy, python-format
+msgid " Notes: %s\n"
+msgstr "Дата:%s\n"
+
+#, python-format
+msgid "Revision: #%(row_ver)s, %(mod_when)s by %(mod_by)s."
+msgstr "Пересмотр: #%(row_ver)s, %(mod_when)s by %(mod_by)s."
+
+#, python-format
+msgid "Substance intake entry (%s, %s)   [#%s]                     \n"
+msgstr "Ввод использованного вещества (%s, %s) [#%s]                     \n"
 
 msgid "active, needs check"
 msgstr "активный, нуждается в проверке"
@@ -7403,9 +7661,6 @@ msgstr "зарегистрированный"
 msgid "unapproved"
 msgstr "незарегистрированный"
 
-msgid "definite"
-msgstr "достоверный"
-
 msgid "suspected"
 msgstr "предполагаемый"
 
@@ -7452,10 +7707,6 @@ msgid " (short-term)"
 msgstr " (кратковременный)"
 
 #, python-format
-msgid " Discontinued %s\n"
-msgstr " Прекращение %s\n"
-
-#, python-format
 msgid " Reason: %s\n"
 msgstr " Причина: %s\n"
 
@@ -7475,18 +7726,62 @@ msgstr "заболевание: %s"
 msgid " Advice: %s\n"
 msgstr " Консультация: %s\n"
 
-#, python-format
-msgid "Revision: #%(row_ver)s, %(mod_when)s by %(mod_by)s."
-msgstr "Пересмотр: #%(row_ver)s, %(mod_when)s by %(mod_by)s."
+#, fuzzy
+msgid "medication, not abuse"
+msgstr "Вопросы и ответы"
+
+msgid "no or non-harmful use"
+msgstr ""
+
+msgid "presently harmful use"
+msgstr ""
+
+msgid "presently addicted"
+msgstr ""
+
+msgid "previously addicted"
+msgstr ""
 
 #, fuzzy, python-format
-msgid "%s: %s ago"
+msgid "%s%s: %s ago%s"
 msgstr "%s тому назад"
 
 #, fuzzy, python-format
-msgid "%s: %s ago (%s)"
+msgid "%s%s: %s ago (%s)"
+msgstr "%s%7s %s:%s (%s часть(и)%s)"
+
+#, fuzzy, python-format
+msgid "%s%s%s (%s ago)"
+msgstr "%s%7s %s:%s (%s часть(и)%s)"
+
+#, fuzzy, python-format
+msgid "%s%s%s (%s ago, %s)"
 msgstr "%s%7s %s:%s (%s часть(и)%s)"
 
+#, python-format
+msgid "%s ago"
+msgstr "%s тому назад"
+
+#, fuzzy, python-format
+msgid "in %s"
+msgstr "Комментарий (%s): %%s"
+
+#, fuzzy, python-format
+msgid ", until %s (%s)"
+msgstr "работа: %s"
+
+#, fuzzy, python-format
+msgid " (planned for %s%s)"
+msgstr "для [%s]/%s пациент не найден"
+
+#, fuzzy, python-format
+msgid ", planned for %s%s"
+msgstr "для [%s]/%s пациент не найден"
+
+#, fuzzy, python-format
+msgid "%s ago (for %s: %s %s %s)"
+msgstr " Продолжительность: %s (%s - %s)"
+
 msgid "Additional notes"
 msgstr "Дополнительные заметки"
 
@@ -7499,13 +7794,37 @@ msgstr "Лист назначений"
 msgid "ordered by brand"
 msgstr "отсортировано по брендам"
 
-msgid "Drug"
-msgstr "Препараты"
-
 #, fuzzy
 msgid "Regimen / Advice"
 msgstr "Режим/Диета"
 
+#, fuzzy, python-format
+msgid "Component of %s (%s)"
+msgstr "Компоненты препарата"
+
+#, fuzzy, python-format
+msgid "ATC (substance): %s"
+msgstr " ATC (вещество): %s\n"
+
+#, fuzzy, python-format
+msgid "ATC (brand): %s"
+msgstr " ATC (патентованный): %s\n"
+
+msgid "this is a component of a fake brand"
+msgstr ""
+
+#, fuzzy
+msgid "Components:"
+msgstr "Компоненты"
+
+#, fuzzy
+msgid "this is a fake brand"
+msgstr "Подделка под патентованный препарат"
+
+#, fuzzy
+msgid "this is a vaccine"
+msgstr "вакцина"
+
 msgid "units"
 msgstr "единицы измерения"
 
@@ -7539,52 +7858,15 @@ msgid "Expires: %s\n"
 msgstr "Экспортированный: %s\n"
 
 #, fuzzy
-msgid "Active clinical hint"
-msgstr "Текущие заболевания"
-
-#, fuzzy
-msgid "Inactive clinical hint"
-msgstr "сохранить клиническую запись в EMR"
-
-#, python-format
-msgid "Source: %s\n"
-msgstr "Источник:%s\n"
-
-#, fuzzy, python-format
-msgid "Language: %s\n"
-msgstr "Язык"
-
-#, fuzzy
-msgid "Suppressed active dynamic hint"
-msgstr "Отображение вакцин."
-
-#, fuzzy
-msgid "Suppressed inactive dynamic hint"
-msgstr "Отображение вакцин."
-
-#, fuzzy, python-format
-msgid "Suppressed by: %s\n"
-msgstr "выпущено посредством: %s%s"
-
-#, fuzzy, python-format
-msgid "Suppressed at: %s\n"
-msgstr "Источник:%s\n"
-
-#, fuzzy, python-format
-msgid "Hint #: %s\n"
-msgstr "Дата:%s\n"
+msgid "HL7 Source"
+msgstr "Исходный код HTML"
 
-#, fuzzy, python-format
-msgid "Patient #: %s\n"
-msgstr "Пациент #%s"
+msgid "HL7 data size"
+msgstr ""
 
 #, fuzzy, python-format
-msgid "MD5 (currently): %s\n"
-msgstr "Документы: %s"
-
-#, python-format
-msgid "MD5 (at suppression): %s\n"
-msgstr ""
+msgid "%s bytes"
+msgstr "%s Байты"
 
 #, fuzzy
 msgid "HL7 Message"
@@ -7642,14 +7924,6 @@ msgid "doc: %s"
 msgstr "Doc: %s\n"
 
 #, fuzzy
-msgid "no patient photograph available"
-msgstr "Нет доступных лабораторных данных."
-
-#, fuzzy, python-format
-msgid "patient photograph from %s"
-msgstr "Невозможно установить изображение пациента из [%s]."
-
-#, fuzzy
 msgid "Patient data for"
 msgstr "Тэги пациента"
 
@@ -7660,6 +7934,10 @@ msgstr ""
 msgid "Patient data export"
 msgstr "Тэги пациента"
 
+#, fuzzy
+msgid "no patient photograph available"
+msgstr "Нет доступных лабораторных данных."
+
 msgid "Documents"
 msgstr "Документы"
 
@@ -7670,6 +7948,10 @@ msgstr ""
 msgid "browse documents area"
 msgstr "добавлены только документы"
 
+#, fuzzy, python-format
+msgid "patient photograph from %s"
+msgstr "Невозможно установить изображение пациента из [%s]."
+
 #, fuzzy
 msgid "Browse patient data"
 msgstr "Тэги пациента"
@@ -7707,30 +7989,34 @@ msgstr "Ошибка запуска pdftk. Невозможно выровнят
 #, fuzzy, python-format
 msgid ""
 "%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s %(suburb)s, "
-"%(code_state)s, %(code_country)s"
+"%(code_region)s, %(code_country)s"
 msgstr ""
-"%(typ)s: %(street)s %(no)s%(sub)s, %(zip)s %(urb)s, %(cstate)s, %(ccountry)s"
+"%(typ)s: %(street)s %(no)s%(sub)s, %(zip)s %(urb)s, %(code_region)s, "
+"%(ccountry)s"
 
 #, fuzzy, python-format
 msgid ""
 "%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s %(suburb)s, "
-"%(code_state)s, %(code_country)s"
+"%(code_region)s, %(code_country)s"
 msgstr ""
-"%(typ)s: %(street)s %(no)s%(sub)s, %(zip)s %(urb)s, %(cstate)s, %(ccountry)s"
+"%(typ)s: %(street)s %(no)s%(sub)s, %(zip)s %(urb)s, %(code_region)s, "
+"%(ccountry)s"
 
 #, fuzzy, python-format
 msgid ""
-"%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_state)s, "
-"%(code_country)s"
+"%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, "
+"%(code_region)s, %(code_country)s"
 msgstr ""
-"%(typ)s: %(street)s %(no)s%(sub)s, %(zip)s %(urb)s, %(cstate)s, %(ccountry)s"
+"%(typ)s: %(street)s %(no)s%(sub)s, %(zip)s %(urb)s, %(code_region)s, "
+"%(ccountry)s"
 
 #, fuzzy, python-format
 msgid ""
-"%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_state)s, "
+"%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_region)s, "
 "%(code_country)s"
 msgstr ""
-"%(typ)s: %(street)s %(no)s%(sub)s, %(zip)s %(urb)s, %(cstate)s, %(ccountry)s"
+"%(typ)s: %(street)s %(no)s%(sub)s, %(zip)s %(urb)s, %(code_region)s, "
+"%(ccountry)s"
 
 #, fuzzy, python-format
 msgid ""
@@ -7738,30 +8024,30 @@ msgid ""
 " Street: %(street)s%(notes_street)s\n"
 " Number/Unit: %(number)s%(subunit)s%(notes_subunit)s\n"
 " Location: %(zip)s %(urb)s%(suburb)s\n"
-" Region: %(l10n_state)s, %(code_state)s\n"
+" Region: %(l10n_region)s, %(code_region)s\n"
 " Country: %(l10n_country)s, %(code_country)s"
 msgstr ""
 "Адрес [#%(pk_adr)s]\n"
 "Улица: %(street)s%(notes_street)s\n"
 "Номер/Корпус: %(number)s%(subunit)s%(notes_subunit)s\n"
 "Расположение: %(zip)s %(urb)s%(suburb)s\n"
-"Регион: %(l10n_state)s, %(code_state)s\n"
+"Регион: %(l10n_region)s, %(code_region)s\n"
 "Страна: %(l10n_country)s, %(code_country)s"
 
-#, python-format
+#, fuzzy, python-format
 msgid ""
 "Address [#%(pk_adr)s]\n"
 " Street: %(street)s%(notes_street)s\n"
 " Number/Unit: %(number)s%(subunit)s%(notes_subunit)s\n"
 " Location: %(zip)s %(urb)s%(suburb)s\n"
-" Region: %(l10n_state)s, %(code_state)s\n"
+" Region: %(l10n_region)s, %(code_region)s\n"
 " Country: %(l10n_country)s, %(code_country)s"
 msgstr ""
 "Адрес [#%(pk_adr)s]\n"
 "Улица: %(street)s%(notes_street)s\n"
 "Номер/Корпус: %(number)s%(subunit)s%(notes_subunit)s\n"
 "Расположение: %(zip)s %(urb)s%(suburb)s\n"
-"Регион: %(l10n_state)s, %(code_state)s\n"
+"Регион: %(l10n_region)s, %(code_region)s\n"
 "Страна: %(l10n_country)s, %(code_country)s"
 
 msgid "Textual keyword expansion"
@@ -7833,6 +8119,95 @@ msgstr "скорректированный результат"
 msgid "missing, reported later"
 msgstr "отсутсвует, будет сообщено позже"
 
+msgid "Health issue"
+msgstr "Заболевание"
+
+#, fuzzy
+msgid "External care"
+msgstr "Внешний код"
+
+msgid "Vaccination"
+msgstr "Вакцинация"
+
+#, fuzzy
+msgid "Clinical narrative"
+msgstr "Клинический"
+
+#, fuzzy
+msgid "Test result"
+msgstr "Результаты анализов"
+
+#, fuzzy
+msgid "Substance intake"
+msgstr "Вещество"
+
+#, fuzzy
+msgid "Hospital stay"
+msgstr "Госпитализация"
+
+#, fuzzy
+msgid "Performed procedure"
+msgstr " %s выполненных процедур"
+
+#, fuzzy
+msgid "Family history"
+msgstr "Семейный анамнез"
+
+#, fuzzy
+msgid "Document"
+msgstr "Документы"
+
+#, python-format
+msgid "unmapped entry type from table [%s]"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "cannot instantiate clinical root item <%s(%s)>"
+msgstr "невозможно активировать пациента [%s] (%s/%s)"
+
+msgid "True"
+msgstr ""
+
+msgid "False"
+msgstr ""
+
+#, fuzzy
+msgid "unknown smoking status"
+msgstr "Удалить ввод из списка ожидания"
+
+msgid "non-smoker"
+msgstr ""
+
+#, fuzzy
+msgid "current smoker"
+msgstr "Текущее обращение:"
+
+msgid "ex-smoker"
+msgstr ""
+
+msgid "tobacco addiction"
+msgstr ""
+
+msgid "no or non-harmful alcohol use"
+msgstr ""
+
+msgid "harmful alcohol use"
+msgstr ""
+
+#, fuzzy
+msgid "unknown alcohol use"
+msgstr "аллергологический статус неизвестен"
+
+msgid "no or non-harmful drug use"
+msgstr ""
+
+msgid "harmful drug use"
+msgstr ""
+
+#, fuzzy
+msgid "unknown drug use"
+msgstr "аллергологический статус неизвестен"
+
 msgid "original entry"
 msgstr "первоначальная запись"
 
@@ -7936,14 +8311,6 @@ msgstr "Род занятий"
 msgid "Vaccinations"
 msgstr "Прививки"
 
-#, python-format
-msgid "%s ago"
-msgstr "%s тому назад"
-
-#, fuzzy
-msgid "External care"
-msgstr "Внешний код"
-
 #, fuzzy
 msgid "Allergies/Intolerances"
 msgstr "аллергия/непереносимость"
@@ -8040,78 +8407,131 @@ msgstr ""
 "\n"
 "Вместо этого была удалена учетная запись."
 
-#, python-format
-msgid "Device(%s):"
-msgstr "Устройство(%s):"
+msgid "SOAP_char_S=S"
+msgstr ""
 
-msgid "Battery:"
-msgstr "Батарея:"
+msgid "SOAP_char_O=O"
+msgstr ""
 
-msgid "Implanted:"
-msgstr "Имплантированный:"
+msgid "SOAP_char_A=A"
+msgstr ""
 
-msgid "last check:"
-msgstr "Последняя проверка:"
+msgid "SOAP_char_P=P"
+msgstr ""
 
-msgid "Sensing:"
-msgstr "Чувствительность:"
+msgid "SOAP_char_U=U"
+msgstr ""
 
-msgid "Threshold"
-msgstr "Порог"
+msgid "SOAP_string_Subjective=Subjective"
+msgstr ""
 
-msgid "Impedance:"
-msgstr "Импеданс (сопротивление)"
+msgid "SOAP_string_Objective=Objective"
+msgstr ""
+
+msgid "SOAP_string_Assessment=Assessment"
+msgstr ""
+
+msgid "SOAP_string_Plan=Plan"
+msgstr ""
+
+msgid "SOAP_string_Unspecified=Unspecified"
+msgstr ""
+
+msgid "SOAP_string_Administrative=Administrative"
+msgstr ""
+
+#, fuzzy
+msgid "Active clinical hint"
+msgstr "Текущие заболевания"
+
+#, fuzzy
+msgid "Inactive clinical hint"
+msgstr "сохранить клиническую запись в EMR"
+
+#, python-format
+msgid "Source: %s\n"
+msgstr "Источник:%s\n"
 
 #, fuzzy, python-format
-msgid "Praxis branch                   #%s\n"
-msgstr "Обострение %s%s%s [#%s]"
+msgid "Language: %s\n"
+msgstr "Язык"
 
-msgid "Privacy notice"
-msgstr "Уведомление о приватности"
+#, fuzzy
+msgid "Suppressed active dynamic hint"
+msgstr "Отображение вакцин."
+
+#, fuzzy
+msgid "Suppressed inactive dynamic hint"
+msgstr "Отображение вакцин."
 
 #, fuzzy, python-format
-msgid ""
-"%s: Your chart has been accessed by %s (without user interaction, probably "
-"by a script)."
-msgstr "Ваша карта доступна через %s."
+msgid "Suppressed by: %s\n"
+msgstr "выпущено посредством: %s%s"
 
 #, fuzzy, python-format
-msgid "%s: Staff member %s has been notified of your chart access."
-msgstr "Сотрудник %s имеет уведомление о доступе к вашей карте."
+msgid "Suppressed at: %s\n"
+msgstr "Источник:%s\n"
+
+#, fuzzy, python-format
+msgid "Hint #: %s\n"
+msgstr "Дата:%s\n"
 
-msgid "soap_S"
-msgstr "soap_S"
+#, fuzzy, python-format
+msgid "Patient #: %s\n"
+msgstr "Пациент #%s"
 
-msgid "soap_O"
-msgstr "soap_O"
+#, fuzzy, python-format
+msgid "MD5 (currently): %s\n"
+msgstr "Документы: %s"
 
-msgid "soap_A"
-msgstr "soap_A"
+#, python-format
+msgid "MD5 (at suppression): %s\n"
+msgstr ""
 
-msgid "soap_P"
-msgstr "soap_P"
+#, python-format
+msgid "Device(%s):"
+msgstr "Устройство(%s):"
 
-#, fuzzy
-msgid "soap_U"
-msgstr "soap_S"
+msgid "Battery:"
+msgstr "Батарея:"
 
-msgid "soap_Subjective"
-msgstr "soap_Subjective"
+msgid "Implanted:"
+msgstr "Имплантированный:"
+
+msgid "last check:"
+msgstr "Последняя проверка:"
+
+msgid "Sensing:"
+msgstr "Чувствительность:"
 
-msgid "soap_Objective"
-msgstr "soap_Objective"
+msgid "Threshold"
+msgstr "Порог"
 
-msgid "soap_Assessment"
-msgstr "soap_Assessment"
+msgid "Impedance:"
+msgstr "Импеданс (сопротивление)"
 
-msgid "soap_Plan"
-msgstr "soap_Plan"
+#, fuzzy, python-format
+msgid "Praxis branch                   #%s\n"
+msgstr "Обострение %s%s%s [#%s]"
 
-msgid "soap_Unspecified"
-msgstr "soap_Unspecified"
+#, python-format
+msgid ""
+"FN:%(l10n_unit_category)s %(branch)s of %(l10n_organization_category)s "
+"%(praxis)s"
+msgstr ""
+
+msgid "Privacy notice"
+msgstr "Уведомление о приватности"
+
+#, fuzzy, python-format
+msgid ""
+"%s: Your chart has been accessed by %s (without user interaction, probably "
+"by a script)."
+msgstr "Ваша карта доступна через %s."
 
-msgid "soap_Administrative"
-msgstr "soap_Administrative"
+#, fuzzy, python-format
+msgid "%s: Staff member %s has been notified of your chart access."
+msgstr "Сотрудник %s имеет уведомление о доступе к вашей карте."
 
 #, python-format
 msgid ""
@@ -8180,10 +8600,18 @@ msgstr "<страна> не может быть пустой"
 msgid "%(last)s,%(title)s %(first)s%(nick)s (%(sex)s)"
 msgstr "%(last)s,%(title)s %(first)s%(nick)s (%(sex)s)"
 
+#, fuzzy, python-format
+msgid "%(last)s,%(title)s %(first)s (%(sex)s)"
+msgstr "%(last)s,%(title)s %(first)s%(nick)s (%(sex)s)"
+
 #, python-format
 msgid "%(last)s,%(title)s %(first)s%(nick)s"
 msgstr "%(last)s,%(title)s %(first)s%(nick)s"
 
+#, fuzzy, python-format
+msgid "%(last)s,%(title)s %(first)s"
+msgstr "%(last)s,%(title)s %(first)s%(nick)s"
+
 msgid "Cannot merge active patient into another patient."
 msgstr "Невозможно объединить активного пациента с другим пациентом."
 
@@ -8195,9 +8623,6 @@ msgstr "связанные отсутствуют"
 msgid "merged"
 msgstr "Объединить"
 
-msgid "preferred name/call name/..."
-msgstr ""
-
 msgid "invalid age: DOB in the future"
 msgstr "неверный возраст: дата рождения в будущем"
 
@@ -8210,9 +8635,6 @@ msgstr "Мистер"
 msgid "Mrs"
 msgstr "Гражданка"
 
-msgid "unknown"
-msgstr "неизвестно"
-
 #, fuzzy
 msgid "empty status"
 msgstr "статус"
@@ -8567,7 +8989,7 @@ msgid " Part %s: %s %s(%s Bytes)\n"
 msgstr "%s%7s %s:%s (%s часть(и)%s)"
 
 #, fuzzy, python-format
-msgid " Filename: %s\n"
+msgid " Filename: %s%s\n"
 msgstr "Имя файла"
 
 #, fuzzy
@@ -8582,12 +9004,15 @@ msgid "%s parts"
 msgstr "%s частей"
 
 #, fuzzy, python-format
+msgid "%s of %s"
+msgstr "Единицы: %s"
+
+#, fuzzy, python-format
 msgid ""
 "%s (%s)   #%s\n"
-"\n"
 " Created: %s\n"
 " Episode: %s\n"
-"%s%s%s"
+"%s%s%s%s"
 msgstr ""
 "%s (%s) #%s\n"
 "\n"
@@ -8599,6 +9024,10 @@ msgstr ""
 msgid " External reference: %s\n"
 msgstr " Внешняя ссылка: %s\n"
 
+#, fuzzy, python-format
+msgid " Organization: %%s @ %s\n"
+msgstr "Организация: %s (%s)"
+
 msgid "Cannot run [arriba] !"
 msgstr "Невозможно запустить [arriba]!"
 
@@ -8961,26 +9390,9 @@ msgid "External care:"
 msgstr "Внешний код"
 
 #, fuzzy, python-format
-msgid ""
-"health issue: %s%s%s\n"
-"\n"
+msgid "Health issue: %s%s%s"
 msgstr "заболевание: %s"
 
-#, fuzzy
-msgid ""
-"\n"
-"current values:\n"
-msgstr "<текущая установленная аллергия>"
-
-msgid "no previous versions of this record"
-msgstr ""
-
-msgid ""
-"\n"
-"all values with <audit_action>, <audit_when>, <audit_by> fields (current "
-"value first):\n"
-msgstr ""
-
 msgid "Unattributed episodes"
 msgstr "Эпизоды без аттрибутов"
 
@@ -9003,9 +9415,6 @@ msgstr " Продолжительность: %s (%s - %s)"
 msgid "finished"
 msgstr "готово"
 
-msgid "Health issue"
-msgstr "Заболевание"
-
 msgid "none associated"
 msgstr "связанные отсутствуют"
 
@@ -9042,10 +9451,8 @@ msgid "Measurements and Results:"
 msgstr "Исследования и результаты"
 
 #, fuzzy, python-format
-msgid ""
-"episode: %s%s%s\n"
-"\n"
-msgstr "Эпизод:%s\n"
+msgid "Episode: %s%s%s"
+msgstr "Обострение %s%s%s [#%s]"
 
 #, python-format
 msgid "  your time: %s - %s  (@%s = %s%s)\n"
@@ -9072,9 +9479,7 @@ msgid "%s other episodes touched upon during this encounter:"
 msgstr "%s другие обострения, выявленные при этом обращении:"
 
 #, fuzzy, python-format
-msgid ""
-"encounter: %s%s%s\n"
-"\n"
+msgid "Encounter: %s%s%s"
 msgstr "Обращения: %s (%s - %s):"
 
 msgid " (ongoing)"
@@ -9100,10 +9505,6 @@ msgstr "Госпитализация"
 msgid "Procedures"
 msgstr "&Procedures"
 
-#, fuzzy
-msgid "Substances"
-msgstr "Вещество"
-
 msgid "Life events"
 msgstr "Биографические события"
 
@@ -9128,9 +9529,6 @@ msgstr "Смерть"
 msgid "Cannot display timeline."
 msgstr "Воспроизведение хронологии"
 
-msgid "Vaccination"
-msgstr "Вакцинация"
-
 msgid "Lab result"
 msgstr "Лабораторный результат"
 
@@ -9213,9 +9611,6 @@ msgstr "Когда"
 msgid "Exported: %s\n"
 msgstr "Экспортированный: %s\n"
 
-msgid "emr-journal"
-msgstr "emr-journal"
-
 msgid "Chronological EMR Journal\n"
 msgstr "Журнал истории EMR\n"
 
@@ -9548,20 +9943,8 @@ msgstr "Системные сведения по кодированию"
 msgid "Select one or more codes that apply."
 msgstr "Выберите один или более кодов для применения."
 
-msgid "Cannot move progress notes. No active patient."
-msgstr "Невозможно переместить рабочие записи. Нет активного пациента."
-
-msgid "Moving progress notes between encounters ..."
-msgstr "Перемещение рабочих записей между обращениями ..."
-
-msgid ""
-"\n"
-" Select the progress notes to move from the list !\n"
-"\n"
-msgstr ""
-"\n"
-" Выберите рабочие записи для перемещения из списка!\n"
-"\n"
+msgid "Select the narrative you are interested in ..."
+msgstr "Выберите текстовую часть, в которой заинтересованы ..."
 
 msgid "when"
 msgstr "когда"
@@ -9572,78 +9955,220 @@ msgstr "кто"
 msgid "entry"
 msgstr "запись"
 
-msgid "Cannot edit progress notes. No active patient."
-msgstr "Невозможно редактировать рабочие записи. Нет активного пациента."
+msgid "There is no narrative for this episode in this encounter."
+msgstr "Для этих эпизодов в этом обращении нет текстовой части."
 
-msgid "Deleting progress note"
-msgstr "Удаление рабочей записи"
+msgid "Must select episode to move narrative to first."
+msgstr "Сначала необходимо выбрать эпизод для перемещения текстовой части."
 
-msgid ""
-"Are you positively sure you want to delete this\n"
-"progress note from the medical record ?\n"
-"\n"
-"Note that even if you chose to delete the entry it will\n"
-"still be (invisibly) kept in the audit trail to protect\n"
-"you from litigation because physical deletion is known\n"
-"to be unlawful in some jurisdictions.\n"
-msgstr ""
-"Действительно уверены, что нужно удалить\n"
-"эти рабочие записи из истории болезни?\n"
-"\n"
-"Учтите, что даже при выборе записи на удаление\n"
-"она по-прежнему будет храниться (невидимо) в\n"
-"аудиторском следе для вашей защиты от обвинений,\n"
-"потому что физическое удаление, как известно,\n"
-"в некоторых юрисдикциях незаконно.\n"
+msgid "Last"
+msgstr "Последний"
 
-msgid "Yes, delete the progress note."
-msgstr "Да, удалить рабочую запись."
+msgid "In health issue"
+msgstr "В заболевании"
 
-msgid "No, do NOT delete the progress note."
-msgstr "Нет, НЕ удалять рабочую запись."
+msgid "Most recent notes on selected problem"
+msgstr "Самая последняя запись по выбранному заболеванию"
 
-msgid "Editing progress note"
-msgstr "Редактирование рабочей записи"
+#, python-format
+msgid "%s (active+potential) problems"
+msgstr "%s (активных+потенциальных) заболеваний"
 
-msgid "This is the original progress note:"
-msgstr "Это исходная рабочая запись:"
+#, python-format
+msgid "%s active problems"
+msgstr "%s активных заболеваний"
 
-msgid "Managing progress notes"
-msgstr "Управление рабочими записями"
+msgid "Current encounter:"
+msgstr "Текущее обращение:"
+
+msgid "Cumulative summary"
+msgstr "Общий итог"
+
+#, fuzzy, python-format
+msgid "Most recent info on %s%s%s"
+msgstr "Самые последние записи в %s%s%s"
 
 #, python-format
 msgid ""
+"Cannot open progress note editor for\n"
 "\n"
-" This list shows the progress notes by %s.\n"
+"[%s].\n"
 "\n"
 msgstr ""
+"Невозможно открыть редактор рабочей записи для\n"
 "\n"
-" Этот список показывает рабочие записи через %s.\n"
+"[%s].\n"
 "\n"
 
-msgid "Enter (regex) term to search for across all EMRs:"
-msgstr "Введите условие (regex) для поиска по всем EMR:"
+msgid "opening progress note editor"
+msgstr "открытие  редактора рабочей записи"
 
-msgid "Text search across all EMRs"
-msgstr "Текстовой поиск по всем EMR"
+msgid "Cannot save all editors. Some were kept open."
+msgstr ""
+"Невозможно сохранить все редакторы. Некоторые были оставлены открытыми."
+
+msgid "new problem"
+msgstr "новое заболевание"
 
-#, python-format
 msgid ""
-"Nothing found for search term:\n"
-" \"%s\""
+"Are you sure you really want to\n"
+"discard this progress note ?\n"
 msgstr ""
-"Ничего не найдено для поиска условия:\n"
-" \"%s\""
-
-msgid "Search results"
-msgstr "Результаты поиска"
+"Уверены действительно, что\n"
+"нужно сбросить эту рабочую запись?\n"
 
-#, fuzzy, python-format
-msgid "Search results for [%s]"
-msgstr "Результаты поиска для %s"
+msgid "Discarding progress note"
+msgstr "Сбросить рабочую запись"
 
-msgid "Match"
-msgstr "Соответствует"
+msgid "There are unsaved progress notes !\n"
+msgstr "Это несохраненные рабочие записи!\n"
+
+msgid "Unsaved progress notes"
+msgstr "Несохраненные рабочие записи"
+
+msgid "Problem list"
+msgstr "Список проблем"
+
+msgid "Saving SOAP note"
+msgstr "Сохранение записи SOAP"
+
+msgid "Do you want to save the SOAP note ?"
+msgstr "Сохранить запись SOAP?"
+
+#, python-format
+msgid "&Filter by problem %s%s%s"
+msgstr "&Filter по проблемам %s%s%s"
+
+msgid "Cannot save SimpleNotes SOAP note."
+msgstr "Невозможно сохранить запись SimpleNotes SOAP."
+
+#, python-format
+msgid "Progress note: %s%s"
+msgstr "Рабочая запись: %s%s"
+
+msgid "Please enter a name for the new problem:"
+msgstr "Введите имя для новой проблемы:"
+
+msgid "Adding a problem"
+msgstr "Добавление проблемы"
+
+msgid "Cannot delete problem. There is still clinical data recorded for it."
+msgstr ""
+"Невозможно удалить проблему. По-прежнему, для нее имеются записанные "
+"клинические данные."
+
+#, python-format
+msgid "GNUmed: configuring [%s] (%s plugins)"
+msgstr "GNUmed: настройка [%s] (%s плагины)"
+
+msgid "loading list of plugins                               "
+msgstr "загрузка списка плагинов                               "
+
+msgid "failed"
+msgstr "сбой"
+
+msgid "success"
+msgstr "успешно"
+
+#, python-format
+msgid ""
+"previous: %s (%s)\n"
+"current (%s/%s): %s"
+msgstr ""
+"предыдущий: %s (%s)\n"
+"текущий (%s/%s): %s"
+
+#, python-format
+msgid "Cannot switch to [%s]: no patient selected"
+msgstr "Невозможно переключиться на [%s]: нет выбранного пациента"
+
+msgid "Cannot move progress notes. No active patient."
+msgstr "Невозможно переместить рабочие записи. Нет активного пациента."
+
+msgid "Moving progress notes between encounters ..."
+msgstr "Перемещение рабочих записей между обращениями ..."
+
+msgid ""
+"\n"
+" Select the progress notes to move from the list !\n"
+"\n"
+msgstr ""
+"\n"
+" Выберите рабочие записи для перемещения из списка!\n"
+"\n"
+
+msgid "Cannot edit progress notes. No active patient."
+msgstr "Невозможно редактировать рабочие записи. Нет активного пациента."
+
+msgid "Deleting progress note"
+msgstr "Удаление рабочей записи"
+
+msgid ""
+"Are you positively sure you want to delete this\n"
+"progress note from the medical record ?\n"
+"\n"
+"Note that even if you chose to delete the entry it will\n"
+"still be (invisibly) kept in the audit trail to protect\n"
+"you from litigation because physical deletion is known\n"
+"to be unlawful in some jurisdictions.\n"
+msgstr ""
+"Действительно уверены, что нужно удалить\n"
+"эти рабочие записи из истории болезни?\n"
+"\n"
+"Учтите, что даже при выборе записи на удаление\n"
+"она по-прежнему будет храниться (невидимо) в\n"
+"аудиторском следе для вашей защиты от обвинений,\n"
+"потому что физическое удаление, как известно,\n"
+"в некоторых юрисдикциях незаконно.\n"
+
+msgid "Yes, delete the progress note."
+msgstr "Да, удалить рабочую запись."
+
+msgid "No, do NOT delete the progress note."
+msgstr "Нет, НЕ удалять рабочую запись."
+
+msgid "Editing progress note"
+msgstr "Редактирование рабочей записи"
+
+msgid "This is the original progress note:"
+msgstr "Это исходная рабочая запись:"
+
+msgid "Managing progress notes"
+msgstr "Управление рабочими записями"
+
+#, python-format
+msgid ""
+"\n"
+" This list shows the progress notes by %s.\n"
+"\n"
+msgstr ""
+"\n"
+" Этот список показывает рабочие записи через %s.\n"
+"\n"
+
+msgid "Enter (regex) term to search for across all EMRs:"
+msgstr "Введите условие (regex) для поиска по всем EMR:"
+
+msgid "Text search across all EMRs"
+msgstr "Текстовой поиск по всем EMR"
+
+#, python-format
+msgid ""
+"Nothing found for search term:\n"
+" \"%s\""
+msgstr ""
+"Ничего не найдено для поиска условия:\n"
+" \"%s\""
+
+msgid "Search results"
+msgstr "Результаты поиска"
+
+#, fuzzy, python-format
+msgid "Search results for [%s]"
+msgstr "Результаты поиска для %s"
+
+msgid "Match"
+msgstr "Соответствует"
 
 msgid "Match location"
 msgstr "Расположение соответствия"
@@ -9812,873 +10337,647 @@ msgstr ""
 "\n"
 "Теперь отметьте записи, нужные для включения в сводку.\n"
 
-msgid "Select the narrative you are interested in ..."
-msgstr "Выберите текстовую часть, в которой заинтересованы ..."
+msgid "Pick a date ..."
+msgstr "Выбрать данные ..."
 
-msgid "There is no narrative for this episode in this encounter."
-msgstr "Для этих эпизодов в этом обращении нет текстовой части."
+msgid "<ALT-C/K>: pick from (c/k)alendar"
+msgstr "<ALT-C/K>: выбрать из (c/k)alendar"
 
-msgid "Must select episode to move narrative to first."
-msgstr "Сначала необходимо выбрать эпизод для перемещения текстовой части."
+msgid "Cannot interpret input as timestamp."
+msgstr "Невозможно интерпретировать ввод как  временную метку."
 
-msgid "Last"
-msgstr "Последний"
+msgid "No vaccines were chosen"
+msgstr "Вакцина не выбрана"
 
-msgid "In health issue"
-msgstr "В заболевании"
+#, python-format
+msgid "Combination of indications , %s , not found in any vaccine"
+msgstr ""
 
-msgid "Most recent notes on selected problem"
-msgstr "Самая последняя запись по выбранному заболеванию"
+msgid "Sequence"
+msgstr "Последовательность"
 
-#, python-format
-msgid "%s (active+potential) problems"
-msgstr "%s (активных+потенциальных) заболеваний"
+msgid "Batch"
+msgstr "Партия"
 
-#, python-format
-msgid "%s active problems"
-msgstr "%s активных заболеваний"
+msgid "Vaccinator"
+msgstr "Вакцинатор"
 
-msgid "Current encounter:"
-msgstr "Текущее обращение:"
+msgid ""
+"Vaccinations by Recommender (X = patient on regime, O = patient not on "
+"regime) "
+msgstr ""
+"Прививки по рекомендации (X = пациент на режиме, O = пациент не на режиме) "
 
-msgid "Cumulative summary"
-msgstr "Общий итог"
+msgid "enrolled regime vaccinations not yet given"
+msgstr "зарегистрированный режим вакцинации еще не заявлен"
 
-#, fuzzy, python-format
-msgid "Most recent info on %s%s%s"
-msgstr "Самые последние записи в %s%s%s"
+#, fuzzy
+msgid "Proceed with "
+msgstr "Совершить вход в систему."
+
+#, python-format
+msgid "Failed to enrol patient in %s"
+msgstr "Сбой регистрации пациента в %s"
+
+#, python-format
+msgid "Failed to  delist patient from %s"
+msgstr "Сбой удаления пациента из списка %s"
+
+msgid "Missing GNUmed module"
+msgstr "Пропущенный модуль GNUmed"
 
 #, python-format
 msgid ""
-"Cannot open progress note editor for\n"
+"GNUmed detected that parts of it are not\n"
+"properly installed. The following message\n"
+"names the missing part:\n"
 "\n"
-"[%s].\n"
+" \"%s\"\n"
 "\n"
+"Please make sure to get the missing\n"
+"parts installed. Otherwise some of the\n"
+"functionality will not be accessible."
 msgstr ""
-"Невозможно открыть редактор рабочей записи для\n"
+"GNUmed выявил, что его разделы установлены\n"
+"неправильно. Следующие имена сообщены\n"
+"в пропущенной части:\n"
 "\n"
-"[%s].\n"
+"\"%s\"\n"
 "\n"
+"Убедитесь, что осуществили установку\n"
+"пропущенных разделов. Иначе некоторые\n"
+"функции могут быть недоступны."
 
-msgid "opening progress note editor"
-msgstr "открытие  редактора рабочей записи"
-
-msgid "Cannot save all editors. Some were kept open."
-msgstr ""
-"Невозможно сохранить все редакторы. Некоторые были оставлены открытыми."
+#, fuzzy, python-format
+msgid ""
+"\n"
+" Source: %s"
+msgstr "Источник:%s\n"
 
-msgid "new problem"
-msgstr "новое заболевание"
+#, fuzzy, python-format
+msgid ""
+"\n"
+" Code: %s"
+msgstr " Код: %s\n"
 
+#, python-format
 msgid ""
-"Are you sure you really want to\n"
-"discard this progress note ?\n"
+"\n"
+" Details (first 250 characters):\n"
+"%s\n"
+"%s\n"
+"%s"
 msgstr ""
-"Уверены действительно, что\n"
-"нужно сбросить эту рабочую запись?\n"
-
-msgid "Discarding progress note"
-msgstr "Сбросить рабочую запись"
-
-msgid "There are unsaved progress notes !\n"
-msgstr "Это несохраненные рабочие записи!\n"
-
-msgid "Unsaved progress notes"
-msgstr "Несохраненные рабочие записи"
-
-#, python-format
-msgid "Synopsis (%s)"
-msgstr "Синопсис (%s)"
-
-#, fuzzy
-msgid ""
-"Enter a short working name for this new problem\n"
-"(which will become a new, unassociated episode):\n"
-msgstr "Введите короткое рабочее название для этого нового заболевания:"
-
-#, fuzzy, python-format
-msgid ""
-"Enter a short working name for this new\n"
-"episode under the existing health issue\n"
-"\n"
-"\"%s\":\n"
-msgstr "Введите короткое рабочее название для этого нового заболевания:"
 
 #, fuzzy
-msgid "Creating problem (episode) to save notelet under ..."
-msgstr "Создание заболевания (эпизода) для сохранения записочки под ..."
-
-msgid "Cannot save a new problem without a name."
-msgstr "Невозможно сохранить новую задачу без имени."
-
-msgid "saving progress note"
-msgstr "сохранение рабочей записи"
+msgid "Access violation"
+msgstr "Аббревиатура"
 
 #, python-format
 msgid ""
-"The new episode:\n"
-"\n"
-" \"%s\"\n"
-"\n"
-"will remain unassociated despite the editor\n"
-"having been invoked from the health issue:\n"
+"You do not have access to this part of GNUmed.\n"
 "\n"
-" \"%s\""
+"%s"
 msgstr ""
-"Новый эпизод:\n"
-"\n"
-" \"%s\"\n"
-"\n"
-"останется несвязанным, несмотря на то,\n"
-"что редактор был вызван из заболевания:\n"
+"У вас нет прав доступа к этому компоненту GNUmed.\n"
 "\n"
-" \"%s\""
-
-msgid "You need to actually set an editor."
-msgstr "Действительно нужно установить редактор."
+"%s"
 
-#, python-format
-msgid "The command [%s] is not found."
-msgstr "Команда [%s] не найдена."
+msgid "Lost connection"
+msgstr "Потеря подключения"
 
-#, python-format
 msgid ""
-"Enter the shell command with which to start\n"
-"the image editor for visual progress notes.\n"
+"Since you were last working in GNUmed,\n"
+"your database connection timed out.\n"
 "\n"
-"Any \"%(img)s\" included with the arguments\n"
-"will be replaced by the file name of the\n"
-"note template."
+"This GNUmed session is now expired.\n"
+"\n"
+"You will have to close this client and\n"
+"restart a new GNUmed session."
 msgstr ""
-"Введите команду оболочки, с которой\n"
-"запускать редактор изображений для\n"
-"визуализации рабочих записей.\n"
+"Поскольку вы последний работающий в GNUmed,\n"
+"подключение к базе данных истекло.\n"
 "\n"
-"Любые \"%(img)s\" , включенные с\n"
-"аргументами, будут перемещены через\n"
-"имя файла для шаблона записи."
+"Эта сессия GNUmed теперь истекла.\n"
+"\n"
+"Вам придется закрыть этого клиента и\n"
+"перезапустить новую сессию GNUmed."
 
-msgid "Choose file to use as template for new visual progress note"
+msgid ""
+"Please enter a short note on what you\n"
+"were about to do in GNUmed:"
 msgstr ""
-"Выберите файл для использования в качестве шаблона для новой рабочей записи "
-"изображения"
-
-msgid "Visual progress note source"
-msgstr "Источник рабочей записи изображения"
-
-msgid "From which source do you want to pick the image template ?"
-msgstr "Из какого источника нужно выбрать шаблон изображения?"
-
-msgid "Database"
-msgstr "База данных"
-
-msgid "List of templates in the database."
-msgstr "Список шаблонов в базе данных."
-
-msgid "Files in the filesystem."
-msgstr "Файлы в файловой системе."
-
-msgid "Device"
-msgstr "Устройство"
-
-msgid "Image capture devices (scanners, cameras, etc)"
-msgstr "Устройство захвата изображения (сканеры, камеры и проч.)"
-
-#, python-format
-msgid "Cannot export visual progress note template for [%s]."
-msgstr "Невозможно экспортировать шаблон рабочей записи изображения для [%s]."
-
-msgid "Cannot export visual progress note to file."
-msgstr "Невозможно экспортировать рабочую запись изображения в файл."
+"Введите короткое примечание,\n"
+"где Вы работали в GNUmed:"
 
-msgid "Editor for visual progress note not configured."
-msgstr "Редактор для рабочей записи изображения не настроен."
+msgid "Sending bug report"
+msgstr "Отправка отчета об ошибке"
 
-#, python-format
 msgid ""
-"There was a problem with running the editor\n"
-"for visual progress notes.\n"
-"\n"
-" [%s]\n"
+"Edit the list of email addresses to send the\n"
+"bug report to (separate addresses by spaces).\n"
 "\n"
+"Note that <gnumed-bugs at gnu.org> refers to\n"
+"the public (!) GNUmed bugs mailing list."
 msgstr ""
-"Имелась проблема с запуском редактора для рабочих записей изображений.\n"
-"\n"
-" [%s]\n"
+"Отредактируйте список адресов электронной почты\n"
+"для отправки отчета об ошибке (разделите адреса\n"
+"пробелами).\n"
 "\n"
-
-msgid "Editing visual progress note"
-msgstr "Редактирование рабочей записи изображения"
+"Обратите внимание, что <gnumed-bugs at gnu.org>\n"
+"относится к публичному (!) списку рассылок GNUmed."
 
 #, python-format
 msgid ""
-"There was a problem reading the visual\n"
-"progress note from the file:\n"
+"Your bug report will be sent to:\n"
 "\n"
-" [%s]\n"
+"%s\n"
 "\n"
+"Make sure you have reviewed the log file for potentially\n"
+"sensitive information before sending out the bug report.\n"
+"\n"
+"Note that emailing the report may take a while depending\n"
+"on the speed of your internet connection.\n"
 msgstr ""
-"Имелась проблема чтения рабочей\n"
-"записи изображения из файла:\n"
+"Отчет об ошибках будет отослан на:\n"
 "\n"
-" [%s]\n"
+"%s\n"
+"\n"
+"Убедитесь, что просмотрели лог-файл на предмет\n"
+"потенциально важной информации перед отправкой\n"
+"сообщения об ошибке.\n"
 "\n"
+"Обратите внимание, что отправка отчета может занять\n"
+"некоторое время в зависимости от скорости подключения\n"
+"к Интернету.\n"
 
-msgid "Saving visual progress note"
-msgstr "Сохранение рабочей записи изображения"
+msgid "Yes, send the bug report."
+msgstr "Да, отправить отчет об ошибках."
+
+msgid "No, do not send the bug report."
+msgstr "Нет, не отправлять отчет об ошибках."
+
+msgid "include log file in bug report"
+msgstr "включить лог-файл в отчет об ошибках"
 
 msgid ""
-"You either created a visual progress note from a template\n"
-"in the database (rather than from a file on disk) or you\n"
-"edited an existing visual progress note.\n"
+"The database you are connected to is marked as\n"
+"\"in-production with controlled access\".\n"
 "\n"
-"The template/original was not modified at all, however.\n"
+"You indicated that you want to include the log\n"
+"file in your bug report. While this is often\n"
+"useful for debugging the log file might contain\n"
+"bits of patient data which must not be sent out\n"
+"without de-identification.\n"
 "\n"
-"Do you still want to save the unmodified image as a\n"
-"visual progress note into the EMR of the patient ?\n"
+"Please confirm that you want to include the log !"
 msgstr ""
-"Вы, либо создали рабочую запись изображения из\n"
-"шаблона в базе данных (а не из файла на диске),\n"
-"либо редактировали существующую.\n"
+"База данных, к которой вы подключены, помечена\n"
+"как \"выполнение с контролируемым доступом\".\n"
 "\n"
-"Как бы то ни было, шаблон или оригинал\n"
-"совсем не изменились.\n"
+"Вы указали, что хотите включить лог-файл в\n"
+"отчет об ошибке. Хотя это часто полезно для\n"
+"отладки, лог-файл может содержать биты данных\n"
+"о пациентах, которые не должны отправляться без\n"
+"обезличивания.\n"
 "\n"
-"По-прежнему нужно сохранить неизмененное\n"
-"изображение, как рабочую запись\n"
-"изображения в EMR пациента?\n"
-
-msgid "visual progress notes"
-msgstr "рабочие записи изображения"
+"Подтвердите, что хотите включить журнал!"
 
-#, python-format
-msgid "Created: %s"
-msgstr "Создано: %s"
+msgid "<not supplied>"
+msgstr "<не включать>"
 
-msgid "Problem list"
-msgstr "Список проблем"
+msgid "Bug report has been emailed."
+msgstr "Отчет об ошибках был отправлен."
 
-msgid "Saving SOAP note"
-msgstr "Сохранение записи SOAP"
+msgid "Bug report COULD NOT be emailed."
+msgstr "Отчет об ошибках НЕ МОЖЕТ быть отправлен."
 
-msgid "Do you want to save the SOAP note ?"
-msgstr "Сохранить запись SOAP?"
+msgid "Underweight"
+msgstr "Вес ниже нормы"
 
-#, python-format
-msgid "&Filter by problem %s%s%s"
-msgstr "&Filter по проблемам %s%s%s"
+msgid "63< Normal >79"
+msgstr "63< Normal >79"
 
-msgid "Cannot save SimpleNotes SOAP note."
-msgstr "Невозможно сохранить запись SimpleNotes SOAP."
+msgid "63 - Normal - 79"
+msgstr "63 - Норма - 79"
 
-#, python-format
-msgid "Progress note: %s%s"
-msgstr "Рабочая запись: %s%s"
+msgid "Overweight"
+msgstr "Избыточный вес"
 
-msgid "Please enter a name for the new problem:"
-msgstr "Введите имя для новой проблемы:"
+msgid "Obese"
+msgstr "Тучный"
 
-msgid "Adding a problem"
-msgstr "Добавление проблемы"
+msgid "Current height/mass"
+msgstr "Текущий рост/масса"
 
-msgid "Cannot delete problem. There is still clinical data recorded for it."
-msgstr ""
-"Невозможно удалить проблему. По-прежнему, для нее имеются записанные "
-"клинические данные."
+msgid "Height (cm)"
+msgstr "Рост (см)"
 
-#, python-format
-msgid "GNUmed: configuring [%s] (%s plugins)"
-msgstr "GNUmed: настройка [%s] (%s плагины)"
+msgid "Mass (kg)"
+msgstr "Масса (кг)"
 
-msgid "loading list of plugins                               "
-msgstr "загрузка списка плагинов                               "
+msgid "Adjusted Values"
+msgstr "Регулируемые значения"
 
-msgid "failed"
-msgstr "сбой"
+msgid "Goal mass"
+msgstr "Искомая масса"
 
-msgid "success"
-msgstr "успешно"
+msgid "kg to lose"
+msgstr "потеря кг"
 
-#, python-format
-msgid ""
-"previous: %s (%s)\n"
-"current (%s/%s): %s"
-msgstr ""
-"предыдущий: %s (%s)\n"
-"текущий (%s/%s): %s"
+msgid "BMI Calculator"
+msgstr "Калькулятор BMI"
 
-#, python-format
-msgid "Cannot switch to [%s]: no patient selected"
-msgstr "Невозможно переключиться на [%s]: нет выбранного пациента"
+msgid "&Reset"
+msgstr "&Reset"
 
-msgid "Pick a date ..."
-msgstr "Выбрать данные ..."
+msgid "Select a healthcare provider."
+msgstr "Выберите специалиста."
 
-msgid "<ALT-C/K>: pick from (c/k)alendar"
-msgstr "<ALT-C/K>: выбрать из (c/k)alendar"
+msgid "Public (no clinical or demographic access)"
+msgstr ""
 
-msgid "Cannot interpret input as timestamp."
-msgstr "Невозможно интерпретировать ввод как  временную метку."
+msgid "Staff (demographic access only)"
+msgstr ""
 
-msgid "No vaccines were chosen"
-msgstr "Вакцина не выбрана"
+msgid "staff (clerical)"
+msgstr ""
 
-#, python-format
-msgid "Combination of indications , %s , not found in any vaccine"
+msgid "full clinical access"
 msgstr ""
 
-msgid "Sequence"
-msgstr "Последовательность"
+msgid "DB account"
+msgstr "учетная запись ДБ"
 
-msgid "Batch"
-msgstr "Партия"
+msgid "can login"
+msgstr "возможен вход в систему"
 
-msgid "Vaccinator"
-msgstr "Вакцинатор"
+msgid "can not login"
+msgstr "вход в систему не возможен"
 
-msgid ""
-"Vaccinations by Recommender (X = patient on regime, O = patient not on "
-"regime) "
-msgstr ""
-"Прививки по рекомендации (X = пациент на режиме, O = пациент не на режиме) "
+msgid "Activating GNUmed user."
+msgstr "Активированный пользователь GNUmed."
 
-msgid "enrolled regime vaccinations not yet given"
-msgstr "зарегистрированный режим вакцинации еще не заявлен"
+msgid "Deactivating GNUmed user."
+msgstr "Отключеный пользователь GNUmed."
 
-#, fuzzy
-msgid "Proceed with "
-msgstr "Совершить вход в систему."
+msgid "Removing GNUmed user."
+msgstr "Удаленный пользователь GNUmed."
 
-#, python-format
-msgid "Failed to enrol patient in %s"
-msgstr "Сбой регистрации пациента в %s"
+msgid "Removing GNUmed user"
+msgstr "Удаленный пользователь GNUmed"
 
-#, python-format
-msgid "Failed to  delist patient from %s"
-msgstr "Сбой удаления пациента из списка %s"
+msgid "Modifying GNUmed user."
+msgstr "Измененный пользователь GNUmed."
 
-msgid "Missing GNUmed module"
-msgstr "Пропущенный модуль GNUmed"
+msgid "Failed to save changes to GNUmed database user."
+msgstr "Сбой сохранения изменений для пользователя GNUmed."
+
+msgid "Modifying GNUmed user"
+msgstr "Измененный пользователь GNUmed"
+
+#, fuzzy, python-format
+msgid "Failed to set role [%s] for GNUmed database user."
+msgstr "Сбой сохранения изменений для пользователя GNUmed."
 
 #, python-format
 msgid ""
-"GNUmed detected that parts of it are not\n"
-"properly installed. The following message\n"
-"names the missing part:\n"
-"\n"
-" \"%s\"\n"
 "\n"
-"Please make sure to get the missing\n"
-"parts installed. Otherwise some of the\n"
-"functionality will not be accessible."
+"  %s \"%s\" %s\n"
+"  born: %s"
 msgstr ""
-"GNUmed выявил, что его разделы установлены\n"
-"неправильно. Следующие имена сообщены\n"
-"в пропущенной части:\n"
 "\n"
-"\"%s\"\n"
-"\n"
-"Убедитесь, что осуществили установку\n"
-"пропущенных разделов. Иначе некоторые\n"
-"функции могут быть недоступны."
+"  %s \"%s\" %s\n"
+"  родившийся: %s"
 
-#, fuzzy, python-format
 msgid ""
-"\n"
-" Source: %s"
-msgstr "Источник:%s\n"
+"Password entries do not match. Please type in the passwords again to rule "
+"out typos."
+msgstr ""
+"Ввод пароля не совпадает. Введите пароль снова для исправления опечаток."
 
-#, fuzzy, python-format
-msgid ""
-"\n"
-" Code: %s"
-msgstr " Код: %s\n"
+msgid "Adding GNUmed user"
+msgstr "Добавление пользователя GNUmed"
 
-#, python-format
 msgid ""
+"Are you positively sure you want to create\n"
+"a user with an empty password ?\n"
 "\n"
-" Details (first 250 characters):\n"
-"%s\n"
-"%s\n"
-"%s"
+"Think about the record access implications !"
 msgstr ""
+"Действительно уверены, что нужно\n"
+"создать пользователя с пустым паролем?\n"
+"\n"
+"Подумайте о последствиях записи доступа!"
 
-#, fuzzy
-msgid "Access violation"
-msgstr "Аббревиатура"
+msgid "Enlisting person as user."
+msgstr "Зарегистрировать персону как пользователь."
+
+msgid "Encrypt"
+msgstr "Шифровать"
+
+msgid "Decrypt"
+msgstr "Расшифровать"
+
+msgid "Set pass phrase"
+msgstr "Установить пароль"
+
+msgid "This is not correctly encrypted text!"
+msgstr "Этот текст неправильно зашифрован!"
+
+msgid "Please enter your pass phrase:"
+msgstr "Введите пароль:"
+
+msgid "Pass phrase expired"
+msgstr "Истекло время на пароль"
 
-#, python-format
 msgid ""
-"You do not have access to this part of GNUmed.\n"
 "\n"
-"%s"
+"Conditions preventable by vaccination as currently known to GNUmed.\n"
 msgstr ""
-"У вас нет прав доступа к этому компоненту GNUmed.\n"
 "\n"
-"%s"
+"Условия, предупреждаемые через вакцинации, в настоящее время известные "
+"GNUmed.\n"
 
-msgid "Lost connection"
-msgstr "Потеря подключения"
+msgid "Showing vaccination preventable conditions."
+msgstr "Отображение условий, предотвращаемых вакцинациями."
+
+msgid "ATCs: single-condition vaccines"
+msgstr "ATC: однокомпонентные вакцины"
+
+msgid "ATCs: multi-condition vaccines"
+msgstr "ATC: многокомпонентные вакцины"
+
+#, fuzzy
+msgid "Pick the relevant indications."
+msgstr "Печать листа назначений."
+
+#, fuzzy
+msgid "Known indications"
+msgstr "обозначения"
+
+msgid "Adding new vaccine"
+msgstr "Добавление новой вакцины"
+
+msgid "Editing vaccine"
+msgstr "Редактирование вакцины"
 
+#, python-format
 msgid ""
-"Since you were last working in GNUmed,\n"
-"your database connection timed out.\n"
+"Cannot delete vaccine\n"
 "\n"
-"This GNUmed session is now expired.\n"
+" %s - %s (#%s)\n"
 "\n"
-"You will have to close this client and\n"
-"restart a new GNUmed session."
+"It is probably documented in a vaccination."
 msgstr ""
-"Поскольку вы последний работающий в GNUmed,\n"
-"подключение к базе данных истекло.\n"
+"Невозможно удалить вакцину\n"
 "\n"
-"Эта сессия GNUmed теперь истекла.\n"
+" %s - %s (#%s)\n"
 "\n"
-"Вам придется закрыть этого клиента и\n"
-"перезапустить новую сессию GNUmed."
+"Вероятно, зарегистрирована в прививках."
 
-msgid ""
-"Please enter a short note on what you\n"
-"were about to do in GNUmed:"
-msgstr ""
-"Введите короткое примечание,\n"
-"где Вы работали в GNUmed:"
+msgid "Deleting vaccine"
+msgstr "Удаление вакцины"
 
-msgid "Sending bug report"
-msgstr "Отправка отчета об ошибке"
+msgid "fake"
+msgstr "фальсификат"
 
 msgid ""
-"Edit the list of email addresses to send the\n"
-"bug report to (separate addresses by spaces).\n"
 "\n"
-"Note that <gnumed-bugs at gnu.org> refers to\n"
-"the public (!) GNUmed bugs mailing list."
+"The vaccines currently known to GNUmed.\n"
 msgstr ""
-"Отредактируйте список адресов электронной почты\n"
-"для отправки отчета об ошибке (разделите адреса\n"
-"пробелами).\n"
 "\n"
-"Обратите внимание, что <gnumed-bugs at gnu.org>\n"
-"относится к публичному (!) списку рассылок GNUmed."
+"Вакцины, в настоящее время известные в GNUmed.\n"
+
+msgid "Showing vaccines."
+msgstr "Отображение вакцин."
+
+msgid "Enter or select the batch/lot number of the vaccine used."
+msgstr "Введите или выберите номер пакета/партии используемой вакцины."
+
+msgid "Saving vaccine"
+msgstr "Сохранение вакцины"
 
 #, python-format
 msgid ""
-"Your bug report will be sent to:\n"
+"This vaccine is already in use:\n"
 "\n"
-"%s\n"
+" \"%s\"\n"
+" (%s)\n"
 "\n"
-"Make sure you have reviewed the log file for potentially\n"
-"sensitive information before sending out the bug report.\n"
+"Are you absolutely positively sure that\n"
+"you really want to edit this vaccine ?\n"
 "\n"
-"Note that emailing the report may take a while depending\n"
-"on the speed of your internet connection.\n"
+"This will change the vaccine name and/or target\n"
+"conditions in each patient this vaccine was\n"
+"used in to document a vaccination with.\n"
 msgstr ""
-"Отчет об ошибках будет отослан на:\n"
+"Эта вакцина уже в использовании:\n"
 "\n"
-"%s\n"
+" \"%s\"\n"
+" (%s)\n"
 "\n"
-"Убедитесь, что просмотрели лог-файл на предмет\n"
-"потенциально важной информации перед отправкой\n"
-"сообщения об ошибке.\n"
+"Действительно уверены, что нужно\n"
+"редактировать эту вакцину?\n"
 "\n"
-"Обратите внимание, что отправка отчета может занять\n"
-"некоторое время в зависимости от скорости подключения\n"
-"к Интернету.\n"
+"Это изменит название вакцины и/или\n"
+"условия назначения по каждому пациенту,\n"
+"который использовал эту вакцину,\n"
+"в документе по прививкам.\n"
 
-msgid "Yes, send the bug report."
-msgstr "Да, отправить отчет об ошибках."
+#, fuzzy
+msgid "You must select at least one indication."
+msgstr "Перед сохранением нужно выбрать файл шаблона."
 
-msgid "No, do not send the bug report."
-msgstr "Нет, не отправлять отчет об ошибках."
+msgid "Pick the diseases this vaccine protects against."
+msgstr "Выберите заболевания, от которых защищает эта вакцина."
 
-msgid "include log file in bug report"
-msgstr "включить лог-файл в отчет об ошибках"
+#, fuzzy
+msgid "This vaccine"
+msgstr "вакцина"
+
+msgid "Adding new vaccinations"
+msgstr "Добавление новых прививок"
+
+msgid "Editing vaccination"
+msgstr "Редактирование прививки"
+
+#, fuzzy
+msgid "vaccination recall"
+msgstr "Вакцинация"
+
+#, fuzzy, python-format
+msgid "vaccination recall (%s)"
+msgstr "График прививок"
 
+#, fuzzy, python-format
 msgid ""
-"The database you are connected to is marked as\n"
-"\"in-production with controlled access\".\n"
+"Existing vaccination:\n"
 "\n"
-"You indicated that you want to include the log\n"
-"file in your bug report. While this is often\n"
-"useful for debugging the log file might contain\n"
-"bits of patient data which must not be sent out\n"
-"without de-identification.\n"
+"%s"
+msgstr "Редактирование прививки"
+
+msgid ""
 "\n"
-"Please confirm that you want to include the log !"
+"Complete vaccination history for this patient.\n"
 msgstr ""
-"База данных, к которой вы подключены, помечена\n"
-"как \"выполнение с контролируемым доступом\".\n"
-"\n"
-"Вы указали, что хотите включить лог-файл в\n"
-"отчет об ошибке. Хотя это часто полезно для\n"
-"отладки, лог-файл может содержать биты данных\n"
-"о пациентах, которые не должны отправляться без\n"
-"обезличивания.\n"
 "\n"
-"Подтвердите, что хотите включить журнал!"
-
-msgid "<not supplied>"
-msgstr "<не включать>"
-
-msgid "Bug report has been emailed."
-msgstr "Отчет об ошибках был отправлен."
-
-msgid "Bug report COULD NOT be emailed."
-msgstr "Отчет об ошибках НЕ МОЖЕТ быть отправлен."
-
-msgid "Underweight"
-msgstr "Вес ниже нормы"
+"Завершите анамнез прививок для этого пациента.\n"
 
-msgid "63< Normal >79"
-msgstr "63< Normal >79"
+msgid "Showing vaccinations."
+msgstr "Отображение прививок."
 
-msgid "63 - Normal - 79"
-msgstr "63 - Норма - 79"
+msgid "Intended to protect from"
+msgstr "Предназначен для защиты от"
 
-msgid "Overweight"
-msgstr "Избыточный вес"
+#, fuzzy
+msgid "Print vaccinations or recalls."
+msgstr "Вакцинация"
 
-msgid "Obese"
-msgstr "Тучный"
+#, fuzzy
+msgid "Recall"
+msgstr "Сведения о повторном вызове"
 
-msgid "Current height/mass"
-msgstr "Текущий рост/масса"
+#, fuzzy
+msgid "Add a recall for a vaccination"
+msgstr "Добавление новых прививок"
 
-msgid "Height (cm)"
-msgstr "Рост (см)"
+#, fuzzy
+msgid "Vx schedules"
+msgstr "Запланировано"
 
-msgid "Mass (kg)"
-msgstr "Масса (кг)"
+msgid "Open a browser showing vaccination schedules."
+msgstr "Открывает браузер, показывающий график прививок."
 
-msgid "Adjusted Values"
-msgstr "Регулируемые значения"
+msgid "prevention"
+msgstr "предотвращение"
 
-msgid "Goal mass"
-msgstr "Искомая масса"
+#, fuzzy
+msgid "Saving vaccination"
+msgstr "Отображение прививок."
 
-msgid "kg to lose"
-msgstr "потеря кг"
+msgid "Pick the diseases this vaccination was given against."
+msgstr "Выберите заболевания, против которых была применена эта прививка."
 
-msgid "BMI Calculator"
-msgstr "Калькулятор BMI"
+msgid "  IMMUNISATIONS  "
+msgstr "  ИММУНИЗАЦИЯ  "
 
-msgid "&Reset"
-msgstr "&Reset"
+msgid "Indications"
+msgstr "обозначения"
 
-msgid "Select a healthcare provider."
-msgstr "Выберите специалиста."
+msgid "Active Schedules"
+msgstr "Активные графики"
 
-msgid "Public (no clinical or demographic access)"
-msgstr ""
+msgid "Missing Immunisations"
+msgstr "Пропущенные иммунизации"
 
-msgid "Staff (demographic access only)"
-msgstr ""
+msgid "  Alerts  "
+msgstr "  Противопоказания  "
 
-msgid "staff (clerical)"
-msgstr ""
+msgid "ERROR: cannot retrieve active vaccination schedules"
+msgstr "ОШИБКА: невозможно восстановить активные графики прививок"
 
-msgid "full clinical access"
-msgstr ""
+msgid "no active vaccination schedules"
+msgstr "нет активных графиков прививок"
 
-msgid "DB account"
-msgstr "учетная запись ДБ"
+#, python-format
+msgid "%s for %s (%s shots): %s"
+msgstr "%s для %s (%s введений): %s"
 
-msgid "can login"
-msgstr "возможен вход в систему"
+msgid "ERROR: cannot retrieve due/overdue vaccinations"
+msgstr "ОШИБКА: невозможно восстановить ожидаемые/просроченные прививки"
 
-msgid "can not login"
-msgstr "вход в систему не возможен"
+#, python-format
+msgid "%.0d weeks left: shot %s for %s in %s, due %s (%s)"
+msgstr "%.0d недель спустя: введение %s для %s в %s, ожидаемое %s (%s)"
 
-msgid "Activating GNUmed user."
-msgstr "Активированный пользователь GNUmed."
+#, python-format
+msgid "overdue %.0dyrs %.0dwks: shot %s for %s in schedule \"%s\" (%s)"
+msgstr "просроченные %.0dyrs %.0dwks: введение %s для %s в графике \"%s\" (%s)"
 
-msgid "Deactivating GNUmed user."
-msgstr "Отключеный пользователь GNUmed."
+#, python-format
+msgid "due now: booster for %s in schedule \"%s\" (%s)"
+msgstr "ожидается сейчас: ревакцинация %s в графике \"%s\" (%s)"
 
-msgid "Removing GNUmed user."
-msgstr "Удаленный пользователь GNUmed."
+#, python-format
+msgid "Synopsis (%s)"
+msgstr "Синопсис (%s)"
 
-msgid "Removing GNUmed user"
-msgstr "Удаленный пользователь GNUmed"
+#, fuzzy
+msgid ""
+"Enter a short working name for this new problem\n"
+"(which will become a new, unassociated episode):\n"
+msgstr "Введите короткое рабочее название для этого нового заболевания:"
 
-msgid "Modifying GNUmed user."
-msgstr "Измененный пользователь GNUmed."
+#, fuzzy, python-format
+msgid ""
+"Enter a short working name for this new\n"
+"episode under the existing health issue\n"
+"\n"
+"\"%s\":\n"
+msgstr "Введите короткое рабочее название для этого нового заболевания:"
 
-msgid "Failed to save changes to GNUmed database user."
-msgstr "Сбой сохранения изменений для пользователя GNUmed."
+#, fuzzy
+msgid "Creating problem (episode) to save notelet under ..."
+msgstr "Создание заболевания (эпизода) для сохранения записочки под ..."
 
-msgid "Modifying GNUmed user"
-msgstr "Измененный пользователь GNUmed"
+msgid "Cannot save a new problem without a name."
+msgstr "Невозможно сохранить новую задачу без имени."
 
-#, fuzzy, python-format
-msgid "Failed to set role [%s] for GNUmed database user."
-msgstr "Сбой сохранения изменений для пользователя GNUmed."
+msgid "saving progress note"
+msgstr "сохранение рабочей записи"
 
 #, python-format
 msgid ""
+"The new episode:\n"
 "\n"
-"  %s \"%s\" %s\n"
-"  born: %s"
+" \"%s\"\n"
+"\n"
+"will remain unassociated despite the editor\n"
+"having been invoked from the health issue:\n"
+"\n"
+" \"%s\""
 msgstr ""
+"Новый эпизод:\n"
 "\n"
-"  %s \"%s\" %s\n"
-"  родившийся: %s"
+" \"%s\"\n"
+"\n"
+"останется несвязанным, несмотря на то,\n"
+"что редактор был вызван из заболевания:\n"
+"\n"
+" \"%s\""
 
-msgid ""
-"Password entries do not match. Please type in the passwords again to rule "
-"out typos."
-msgstr ""
-"Ввод пароля не совпадает. Введите пароль снова для исправления опечаток."
+#, fuzzy
+msgid "Adding substance abuse"
+msgstr "Добавление способа введения вещества"
 
-msgid "Adding GNUmed user"
-msgstr "Добавление пользователя GNUmed"
+#, fuzzy
+msgid "Editing substance abuse"
+msgstr "Редактировани применяемого вещества"
 
-msgid ""
-"Are you positively sure you want to create\n"
-"a user with an empty password ?\n"
-"\n"
-"Think about the record access implications !"
+msgid "Substances abused by the patient:"
 msgstr ""
-"Действительно уверены, что нужно\n"
-"создать пользователя с пустым паролем?\n"
-"\n"
-"Подумайте о последствиях записи доступа!"
-
-msgid "Enlisting person as user."
-msgstr "Зарегистрировать персону как пользователь."
-
-msgid "Encrypt"
-msgstr "Шифровать"
-
-msgid "Decrypt"
-msgstr "Расшифровать"
-
-msgid "Set pass phrase"
-msgstr "Установить пароль"
-
-msgid "This is not correctly encrypted text!"
-msgstr "Этот текст неправильно зашифрован!"
-
-msgid "Please enter your pass phrase:"
-msgstr "Введите пароль:"
-
-msgid "Pass phrase expired"
-msgstr "Истекло время на пароль"
-
-msgid ""
-"\n"
-"Conditions preventable by vaccination as currently known to GNUmed.\n"
-msgstr ""
-"\n"
-"Условия, предупреждаемые через вакцинации, в настоящее время известные "
-"GNUmed.\n"
-
-msgid "Showing vaccination preventable conditions."
-msgstr "Отображение условий, предотвращаемых вакцинациями."
-
-msgid "ATCs: single-condition vaccines"
-msgstr "ATC: однокомпонентные вакцины"
-
-msgid "ATCs: multi-condition vaccines"
-msgstr "ATC: многокомпонентные вакцины"
-
-#, fuzzy
-msgid "Pick the relevant indications."
-msgstr "Печать листа назначений."
 
 #, fuzzy
-msgid "Known indications"
-msgstr "обозначения"
-
-msgid "Adding new vaccine"
-msgstr "Добавление новой вакцины"
-
-msgid "Editing vaccine"
-msgstr "Редактирование вакцины"
-
-#, python-format
-msgid ""
-"Cannot delete vaccine\n"
-"\n"
-" %s - %s (#%s)\n"
-"\n"
-"It is probably documented in a vaccination."
-msgstr ""
-"Невозможно удалить вакцину\n"
-"\n"
-" %s - %s (#%s)\n"
-"\n"
-"Вероятно, зарегистрирована в прививках."
-
-msgid "Deleting vaccine"
-msgstr "Удаление вакцины"
-
-msgid "fake"
-msgstr "фальсификат"
-
-msgid ""
-"\n"
-"The vaccines currently known to GNUmed.\n"
-msgstr ""
-"\n"
-"Вакцины, в настоящее время известные в GNUmed.\n"
-
-msgid "Showing vaccines."
-msgstr "Отображение вакцин."
-
-msgid "Enter or select the batch/lot number of the vaccine used."
-msgstr "Введите или выберите номер пакета/партии используемой вакцины."
-
-msgid "Saving vaccine"
-msgstr "Сохранение вакцины"
+msgid "Showing abused substances."
+msgstr "Отображение веществ для применения."
 
-#, python-format
-msgid ""
-"This vaccine is already in use:\n"
-"\n"
-" \"%s\"\n"
-" (%s)\n"
-"\n"
-"Are you absolutely positively sure that\n"
-"you really want to edit this vaccine ?\n"
-"\n"
-"This will change the vaccine name and/or target\n"
-"conditions in each patient this vaccine was\n"
-"used in to document a vaccination with.\n"
+msgid "Intake"
 msgstr ""
-"Эта вакцина уже в использовании:\n"
-"\n"
-" \"%s\"\n"
-" (%s)\n"
-"\n"
-"Действительно уверены, что нужно\n"
-"редактировать эту вакцину?\n"
-"\n"
-"Это изменит название вакцины и/или\n"
-"условия назначения по каждому пациенту,\n"
-"который использовал эту вакцину,\n"
-"в документе по прививкам.\n"
-
-#, fuzzy
-msgid "You must select at least one indication."
-msgstr "Перед сохранением нужно выбрать файл шаблона."
-
-msgid "Pick the diseases this vaccine protects against."
-msgstr "Выберите заболевания, от которых защищает эта вакцина."
-
-#, fuzzy
-msgid "This vaccine"
-msgstr "вакцина"
 
-msgid "Adding new vaccinations"
-msgstr "Добавление новых прививок"
-
-msgid "Editing vaccination"
-msgstr "Редактирование прививки"
-
-#, fuzzy
-msgid "vaccination recall"
-msgstr "Вакцинация"
-
-#, fuzzy, python-format
-msgid "vaccination recall (%s)"
-msgstr "График прививок"
-
-#, fuzzy, python-format
-msgid ""
-"Existing vaccination:\n"
-"\n"
-"%s"
-msgstr "Редактирование прививки"
-
-msgid ""
-"\n"
-"Complete vaccination history for this patient.\n"
+msgid "nicotine"
 msgstr ""
-"\n"
-"Завершите анамнез прививок для этого пациента.\n"
-
-msgid "Showing vaccinations."
-msgstr "Отображение прививок."
-
-msgid "Intended to protect from"
-msgstr "Предназначен для защиты от"
 
 #, fuzzy
-msgid "Print vaccinations or recalls."
-msgstr "Вакцинация"
-
-#, fuzzy
-msgid "Recall"
-msgstr "Сведения о повторном вызове"
-
-#, fuzzy
-msgid "Add a recall for a vaccination"
-msgstr "Добавление новых прививок"
-
-#, fuzzy
-msgid "Vx schedules"
-msgstr "Запланировано"
-
-msgid "Open a browser showing vaccination schedules."
-msgstr "Открывает браузер, показывающий график прививок."
-
-msgid "prevention"
-msgstr "предотвращение"
-
-#, fuzzy
-msgid "Saving vaccination"
-msgstr "Отображение прививок."
-
-msgid "Pick the diseases this vaccination was given against."
-msgstr "Выберите заболевания, против которых была применена эта прививка."
-
-msgid "  IMMUNISATIONS  "
-msgstr "  ИММУНИЗАЦИЯ  "
-
-msgid "Indications"
-msgstr "обозначения"
-
-msgid "Active Schedules"
-msgstr "Активные графики"
-
-msgid "Missing Immunisations"
-msgstr "Пропущенные иммунизации"
-
-msgid "  Alerts  "
-msgstr "  Противопоказания  "
-
-msgid "ERROR: cannot retrieve active vaccination schedules"
-msgstr "ОШИБКА: невозможно восстановить активные графики прививок"
-
-msgid "no active vaccination schedules"
-msgstr "нет активных графиков прививок"
-
-#, python-format
-msgid "%s for %s (%s shots): %s"
-msgstr "%s для %s (%s введений): %s"
-
-msgid "ERROR: cannot retrieve due/overdue vaccinations"
-msgstr "ОШИБКА: невозможно восстановить ожидаемые/просроченные прививки"
-
-#, python-format
-msgid "%.0d weeks left: shot %s for %s in %s, due %s (%s)"
-msgstr "%.0d недель спустя: введение %s для %s в %s, ожидаемое %s (%s)"
-
-#, python-format
-msgid "overdue %.0dyrs %.0dwks: shot %s for %s in schedule \"%s\" (%s)"
-msgstr "просроченные %.0dyrs %.0dwks: введение %s для %s в графике \"%s\" (%s)"
-
-#, python-format
-msgid "due now: booster for %s in schedule \"%s\" (%s)"
-msgstr "ожидается сейчас: ревакцинация %s в графике \"%s\" (%s)"
+msgid "unit"
+msgstr "единицы измерения"
 
 #, fuzzy, python-format
-msgid "Latest: %s ago (%s %s %s %s%s)"
+msgid "Latest: %s ago (%s %s%s%s%s)"
 msgstr "  текущее время: %s - %s  (@%s = %s%s)\n"
 
 #, fuzzy, python-format
-msgid "%s %s %s %s (%s ago, %s)"
+msgid "%s %s%s%s (%s ago, %s)"
 msgstr "%s%7s %s:%s (%s часть(и)%s)"
 
 #, fuzzy, python-format
@@ -10689,6 +10988,13 @@ msgstr "Комментарий (%s): %%s"
 msgid "due in %s%s"
 msgstr "Комментарий (%s): %%s"
 
+msgid "suppr'd:"
+msgstr ""
+
+#, fuzzy
+msgid "Suppressed hints:\n"
+msgstr "рабочие записи"
+
 #, fuzzy
 msgid ""
 "Do you really want to\n"
@@ -10742,9 +11048,17 @@ msgid ""
 msgstr ""
 
 #, fuzzy, python-format
-msgid "%s Vacc: %s"
+msgid "%s Vacc: %s (latest of %s)"
 msgstr "часть %s: %s"
 
+#, fuzzy, python-format
+msgid "Hx of addiction: %s"
+msgstr "&Hospitalizations"
+
+#, fuzzy
+msgid "active substance abuse"
+msgstr "Применяемые вещества"
+
 #, python-format
 msgid "%s %s %s%s"
 msgstr "%s %s %s%s"
@@ -10940,14 +11254,139 @@ msgstr ""
 "\n"
 "Нужно добавить его через вкладку сведений о пациенте.\n"
 
-msgid "You must select a value from the picklist or type an exact match."
-msgstr ""
-"Необходимо выбрать значение из выпадающего списка или ввести точно "
-"соответствующий."
+msgid "You need to actually set an editor."
+msgstr "Действительно нужно установить редактор."
+
+#, python-format
+msgid "The command [%s] is not found."
+msgstr "Команда [%s] не найдена."
 
 #, python-format
 msgid ""
-"The content is invalid. It must match the regular expression: [%%s]. <%s>"
+"Enter the shell command with which to start\n"
+"the image editor for visual progress notes.\n"
+"\n"
+"Any \"%(img)s\" included with the arguments\n"
+"will be replaced by the file name of the\n"
+"note template."
+msgstr ""
+"Введите команду оболочки, с которой\n"
+"запускать редактор изображений для\n"
+"визуализации рабочих записей.\n"
+"\n"
+"Любые \"%(img)s\" , включенные с\n"
+"аргументами, будут перемещены через\n"
+"имя файла для шаблона записи."
+
+msgid "Choose file to use as template for new visual progress note"
+msgstr ""
+"Выберите файл для использования в качестве шаблона для новой рабочей записи "
+"изображения"
+
+msgid "Visual progress note source"
+msgstr "Источник рабочей записи изображения"
+
+msgid "From which source do you want to pick the image template ?"
+msgstr "Из какого источника нужно выбрать шаблон изображения?"
+
+msgid "Database"
+msgstr "База данных"
+
+msgid "List of templates in the database."
+msgstr "Список шаблонов в базе данных."
+
+msgid "Files in the filesystem."
+msgstr "Файлы в файловой системе."
+
+msgid "Device"
+msgstr "Устройство"
+
+msgid "Image capture devices (scanners, cameras, etc)"
+msgstr "Устройство захвата изображения (сканеры, камеры и проч.)"
+
+#, python-format
+msgid "Cannot export visual progress note template for [%s]."
+msgstr "Невозможно экспортировать шаблон рабочей записи изображения для [%s]."
+
+msgid "Cannot export visual progress note to file."
+msgstr "Невозможно экспортировать рабочую запись изображения в файл."
+
+msgid "Editor for visual progress note not configured."
+msgstr "Редактор для рабочей записи изображения не настроен."
+
+#, python-format
+msgid ""
+"There was a problem with running the editor\n"
+"for visual progress notes.\n"
+"\n"
+" [%s]\n"
+"\n"
+msgstr ""
+"Имелась проблема с запуском редактора для рабочих записей изображений.\n"
+"\n"
+" [%s]\n"
+"\n"
+
+msgid "Editing visual progress note"
+msgstr "Редактирование рабочей записи изображения"
+
+#, python-format
+msgid ""
+"There was a problem reading the visual\n"
+"progress note from the file:\n"
+"\n"
+" [%s]\n"
+"\n"
+msgstr ""
+"Имелась проблема чтения рабочей\n"
+"записи изображения из файла:\n"
+"\n"
+" [%s]\n"
+"\n"
+
+msgid "Saving visual progress note"
+msgstr "Сохранение рабочей записи изображения"
+
+msgid ""
+"You either created a visual progress note from a template\n"
+"in the database (rather than from a file on disk) or you\n"
+"edited an existing visual progress note.\n"
+"\n"
+"The template/original was not modified at all, however.\n"
+"\n"
+"Do you still want to save the unmodified image as a\n"
+"visual progress note into the EMR of the patient ?\n"
+msgstr ""
+"Вы, либо создали рабочую запись изображения из\n"
+"шаблона в базе данных (а не из файла на диске),\n"
+"либо редактировали существующую.\n"
+"\n"
+"Как бы то ни было, шаблон или оригинал\n"
+"совсем не изменились.\n"
+"\n"
+"По-прежнему нужно сохранить неизмененное\n"
+"изображение, как рабочую запись\n"
+"изображения в EMR пациента?\n"
+
+msgid "visual progress notes"
+msgstr "рабочие записи изображения"
+
+#, fuzzy, python-format
+msgid " [part 1 of %s]"
+msgstr "часть %s: %s"
+
+#, fuzzy, python-format
+msgid "Created: %s%s"
+msgstr "Создано: %s"
+
+msgid "You must select a value from the picklist or type an exact match."
+msgstr ""
+"Необходимо выбрать значение из выпадающего списка или ввести точно "
+"соответствующий."
+
+#, python-format
+msgid ""
+"The content is invalid. It must match the regular expression: [%%s]. <%s>"
 msgstr ""
 "Содержание неверно. Оно должно соответствовать регулярному выражению: [%%s]. "
 "<%s>"
@@ -11031,11 +11470,13 @@ msgstr ""
 msgid "no address type replacement selected"
 msgstr "Не выбран шаблон документа."
 
-#, python-format
+#, fuzzy, python-format
 msgid ""
-"%(street)s %(number)s, %(postcode)s %(urb)s, %(l10n_state)s, %(l10n_country)s"
+"%(street)s %(number)s, %(postcode)s %(urb)s, %(l10n_region)s, "
+"%(l10n_country)s"
 msgstr ""
-"%(street)s %(number)s, %(postcode)s %(urb)s, %(l10n_state)s, %(l10n_country)s"
+"%(street)s %(number)s, %(postcode)s %(urb)s, %(l10n_region)s, "
+"%(l10n_country)s"
 
 #, python-format
 msgid "no URL for comm channel [%s]"
@@ -11703,11 +12144,11 @@ msgstr "Адресные сведения должны быть внесены 
 msgid "Saving contact data"
 msgstr "Сохранение данных по контакту"
 
-#, python-format
+#, fuzzy, python-format
 msgid ""
 "Cannot save address.\n"
 "\n"
-"Does the state [%s]\n"
+"Does the region [%s]\n"
 "exist in country [%s] ?"
 msgstr ""
 "Невозможно сохранить адрес.\n"
@@ -12189,8 +12630,9 @@ msgstr "Комментарий (%s): %%s"
 msgid "Reminders for the current patient"
 msgstr "Написать письмо для текущего пациента."
 
-msgid "Sent"
-msgstr "Отправить"
+#, fuzzy
+msgid "Generated"
+msgstr "Генерализованный"
 
 #, fuzzy
 msgid "Category - Type"
@@ -12247,9 +12689,6 @@ msgid ""
 "Data: %s"
 msgstr "Сообщение: %s"
 
-msgid "Inbox Message Actions:"
-msgstr "Действия сообщений в почтовом ящике"
-
 msgid "Activate patient"
 msgstr "Активировать пациента"
 
@@ -13094,7 +13533,7 @@ msgid ""
 msgstr ""
 
 #, python-format
-msgid "Select branch (of praxis [%s]) which you are logging in from.\n"
+msgid "Select the branch of praxis [%s] which you are logging in from.\n"
 msgstr ""
 
 msgid "Praxis branch selection ..."
@@ -13496,6 +13935,14 @@ msgstr "Выберите тип сообщения."
 msgid "List of addresses related to this person."
 msgstr "Список адресов, связанных с этой персоной."
 
+#, fuzzy
+msgid "Map"
+msgstr "Мистер"
+
+#, fuzzy
+msgid "Show selected address on map"
+msgstr "должен выбрать адрес"
+
 msgid "Adding new address"
 msgstr "Добавление нового адреса."
 
@@ -13699,8 +14146,94 @@ msgid "generic multi choice dialog"
 msgstr "диалоговое окно выбора нескольких дженериков"
 
 #, fuzzy
-msgid "Search in list"
-msgstr "Наличие поиска"
+msgid "Deleting list items"
+msgstr "Удалить все элементы"
+
+#, python-format
+msgid ""
+"You have selected %s list items.\n"
+"\n"
+"Really delete all %s items ?"
+msgstr ""
+
+#, fuzzy
+msgid ""
+"Select the items you want to work on.\n"
+"\n"
+"A discontinuous selection may depend on your holding down a platform-"
+"dependent modifier key (<CTRL>, <ALT>, etc) or key combination (eg. <CTRL-"
+"SHIFT> or <CTRL-ALT>) while clicking."
+msgstr "Выбирите пункты, под которыми хотите работать."
+
+#, fuzzy
+msgid "List Item Actions:"
+msgstr "Операции с эпизодом:"
+
+msgid "Add (<INS>)"
+msgstr ""
+
+#, fuzzy
+msgid "Delete (<DEL>)"
+msgstr " Удалить "
+
+msgid "Find (<CTRL-F>)"
+msgstr ""
+
+#, python-format
+msgid "Find next [%s] (<CTRL-N>)"
+msgstr ""
+
+msgid "Row tooltip"
+msgstr ""
+
+#, fuzzy
+msgid "Row data (formatted as text)"
+msgstr "Не переформатировать текст"
+
+#, fuzzy
+msgid "Row content (as one line)"
+msgstr "Не переформатировать текст"
+
+msgid "Row content (one line per column)"
+msgstr ""
+
+#, python-format
+msgid "Column &%s: \"%s\" [#%s]"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "Column &%s: %s"
+msgstr "Документы: %s"
+
+#, fuzzy
+msgid "&Copy to clipboard..."
+msgstr "Невозможно скопировать в буфер."
+
+#, fuzzy
+msgid "Append (&+) to clipboard..."
+msgstr "Невозможно скопировать в буфер."
+
+#, python-format
+msgid ""
+"%s list items are selected.\n"
+"\n"
+"Really delete all %s items ?"
+msgstr ""
+
+#, fuzzy
+msgid "Enter the search term:"
+msgstr "Ввод условия для писка:"
+
+#, fuzzy
+msgid "List search"
+msgstr "Найти"
+
+#, fuzzy, python-format
+msgid ""
+"Current search term: [[%s]]\n"
+"\n"
+"%s"
+msgstr "Ввод условия для писка:"
 
 msgid "Monty the Serpent && the FSF Present"
 msgstr "Змея Monty && существующий FSF"
@@ -13868,6 +14401,10 @@ msgid "Unknown: ?"
 msgstr "Неизвестно: ?"
 
 #, fuzzy
+msgid "The text has been copied into the clipboard."
+msgstr "Удаление выбранного пункта(в) из списка."
+
+#, fuzzy
 msgid "file2clipboard"
 msgstr "Экспорт в &clipboard"
 
@@ -13875,6 +14412,44 @@ msgstr "Экспорт в &clipboard"
 msgid "The file [%s] has been copied into the clipboard."
 msgstr ""
 
+msgid "programmer forgot to specify error message"
+msgstr "программист забыл указать сообщение об ошибке"
+
+msgid ""
+"\n"
+"\n"
+"Please consult the error log for all the gory details !"
+msgstr ""
+"\n"
+"\n"
+"Обратитесь к журналу ошибок для уточнения всех этих подробностей!"
+
+msgid "generic error message"
+msgstr "общее сообщение об ошибке"
+
+msgid "programmer forgot to specify info message"
+msgstr "программист забыл указать информационное сообщение"
+
+msgid "generic info message"
+msgstr "общее информационное сообщение"
+
+msgid "programmer forgot to specify warning"
+msgstr "программист забыл указать предупреждение"
+
+msgid "generic warning message"
+msgstr "общее предупреждающее сообщение"
+
+#, fuzzy
+msgid "Editing EDC"
+msgstr "Тэг редактирования"
+
+#, python-format
+msgid ""
+"Really delete the EDC documented previously ?\n"
+"\n"
+" EDC: %s"
+msgstr ""
+
 #, python-format
 msgid ""
 "Algorithm: %s\n"
@@ -14008,15 +14583,16 @@ msgstr "Фамилия"
 msgid "Firstname"
 msgstr "Имя"
 
-msgid "Nickname"
-msgstr "Никнейм"
-
 msgid "DOB"
 msgstr "Дата рождения"
 
 msgid "last visit"
 msgstr "последнее посещение"
 
+#, fuzzy
+msgid "Nickname / Comment"
+msgstr "Никнейм"
+
 msgid "found via"
 msgstr "найти через"
 
@@ -14259,457 +14835,153 @@ msgstr "<введите здесь поиск пациента>"
 msgid "In case of emergency contact:"
 msgstr "В экстренном случае свяжитесь с:"
 
-msgid ""
-"\n"
-"Please select the default drug data source from the list below.\n"
-"\n"
-"Note that to actually use it you need to have the database installed, too."
-msgstr ""
-"\n"
-"Выберите источник данных по препаратам\n"
-"по умолчанию из списка ниже.\n"
-"\n"
-"Учтите, что для его практического использования\n"
-"также необходима инсталляция базы данных."
-
-msgid "Drug data source"
-msgstr "Источник данных по препаратам"
+msgid "The preparation (form) of the substance or brand."
+msgstr "Лекарственная (форма) вещества или патентованного препарата."
 
-msgid "Configuring default drug data source"
-msgstr "Настройка источника данных по препаратам по умолчанию"
+#, fuzzy
+msgid "A substance with optional strength or a brand."
+msgstr "Вещество с необязательной активностью."
 
-msgid "No default drug database configured."
-msgstr "База данных по препаратам не настроена по умолчанию."
+#, fuzzy
+msgid "The medical aim for consuming this substance."
+msgstr "Цель употребления этого вещества."
 
-msgid "There is no default drug database configured."
-msgstr "Отсутствует настройка по умолчанию для базы данных по препаратам."
+msgid "not tolerated:"
+msgstr "недопустимый:"
 
-msgid "Jumping to drug database"
-msgstr "Переход к базе данных по препаратам."
+msgid "discontinued due to allergy or intolerance"
+msgstr "предотвратить возможность аллергии или непереносимости"
 
-#, python-format
-msgid "Cannot call IFAP via [%s]."
-msgstr "Невозможно вызвать IFAP через [%s]."
+msgid "Documented an allergy"
+msgstr "Зарегистрированная аллергия"
 
 #, python-format
-msgid "Cannot create IFAP <-> GNUmed transfer file [%s]."
-msgstr "Невозможно создать файл передачи IFAP <-> GNUmed [%s]."
-
-msgid "Current medication"
-msgstr "Текущее лекарство"
-
 msgid ""
+"An allergy was documented against the substance:\n"
 "\n"
-"The ATC codes as known to GNUmed.\n"
+"  [%s]\n"
+"\n"
+"This substance was taken with the multi-component brand:\n"
+"\n"
+"  [%s (%s)]\n"
+"\n"
+"Note that ALL components of this brand were discontinued."
 msgstr ""
+"Была зарегистрирована аллергия на вещество:\n"
 "\n"
-"Коды ATC, известные в GNUmed.\n"
-
-msgid "Showing ATC codes."
-msgstr "Отображение кодов ATC"
-
-msgid "Choose an ATC import config file"
-msgstr "Выбрать конфигурационный файл для импорта ATC"
-
-msgid "config files"
-msgstr "конфигурационные файлы"
-
-msgid "importing ATC reference data"
-msgstr "импорт справочных данных ATC"
-
-msgid "Successfully imported ATC reference data."
-msgstr "Справочные данные ATC успешно импортированы."
-
-msgid "Importing ATC reference data failed."
-msgstr "Импорт справочных данных ATC дал сбой."
-
-msgid "Select an ATC (Anatomical-Therapeutic-Chemical) code."
-msgstr "Выберите код ATC (Anatomical-Therapeutic-Chemical)"
+"  [%s]\n"
+"\n"
+"Это вещество включено в многокомпонентный патентованный препарат:\n"
+"\n"
+"  [%s (%s)]\n"
+"\n"
+"Учтите, что ВСЕ компоненты этого препарата были отменены."
 
-msgid "Cannot delete this substance. It is in use."
-msgstr "Невозможно удалить это вещество. Оно в использовании."
+#, fuzzy
+msgid "disapproved"
+msgstr "зарегистрированный"
 
-msgid ""
-"\n"
-"These are the consumable substances registered with GNUmed.\n"
+msgid "Substances consumed by the patient:"
 msgstr ""
-"\n"
-"Вот зарегистрированные в GNUmed вещества для применения.\n"
 
 msgid "Showing consumable substances."
 msgstr "Отображение веществ для применения."
 
-msgid "Import"
-msgstr "Импортировать"
-
-msgid "Import consumable substances from a drug database."
-msgstr "Импорт веществ для применения из базы данных по препаратам."
-
-msgid "Cannot edit this substance. It is in use."
-msgstr "Невозможно редактировать это вещество. Оно в использовании."
-
-msgid "Adding new consumable substance"
-msgstr "Добавление нового применяемого вещества"
-
-msgid "Editing consumable substance"
-msgstr "Редактировани применяемого вещества"
+#, fuzzy
+msgid "Application"
+msgstr "Лекарства"
 
-msgid "Cannot save consumable substance. Missing essential input."
-msgstr "Невозможно сохранить применяемое вещество. Пропущен основной ввод."
+msgid "never"
+msgstr "никогда"
 
 #, python-format
-msgid "Cannot save consumable substance. %s"
-msgstr "Невозможно сохранить применяемое вещество. %s"
-
-msgid "Cannot remove this component from the drug. It is in use."
-msgstr "Невозможно удалить этот компонент из препарата. Он в использовании."
-
-msgid ""
-"\n"
-"These are the components in the drug brands known to GNUmed.\n"
-msgstr ""
-"\n"
-"Вот компоненты препаратов, известные GNUmed.\n"
-
-msgid "Showing drug brand components."
-msgstr "Отображение патентованных компонентов препаратов."
+msgid "%s, last confirmed %s\n"
+msgstr "%s, последнее подтвержденное %s\n"
 
-msgid "Adding new drug component"
-msgstr "Добавление нового компонента препарата."
+#, python-format
+msgid "Comment (%s): %%s\n"
+msgstr "Комментарий (%s): %%s\n"
 
-msgid "Editing drug component"
-msgstr "Редактировани компонента препарата"
+msgid "reaction not recorded"
+msgstr "реакция не записана"
 
-msgid "Cannot edit drug component. It is in use."
-msgstr "Невозможно редактировать компонент препарата. Он в использовании."
+#, fuzzy
+msgid "GFR: unknown"
+msgstr "неизвестно"
 
-msgid "Cannot save drug component. Invalid or missing essential input."
+msgid "GFR reported by path lab"
 msgstr ""
-"Невозможно сохранить компонент препарата. Неправильный или пропущенный "
-"основной ввод."
-
-msgid "A drug component with optional strength."
-msgstr "Компонент препарата с необязательным содержанием активного вещества."
-
-msgid "The preparation (form) of the substance or brand."
-msgstr "Лекарственная (форма) вещества или патентованного препарата."
 
-msgid "The substance with optional strength."
-msgstr "Вещество с необязательной активностью."
+#, fuzzy
+msgid "<no components>"
+msgstr "Компоненты"
 
-msgid "Managing components of a drug"
-msgstr "Составление компонентов препарата."
+msgid "Adding substance intake entry"
+msgstr "Добавление способа введения вещества"
 
 #, python-format
 msgid ""
-"Cannot manage the components of the branded drug product\n"
+"The patient is already taking\n"
 "\n"
-" \"%s\" (%s)\n"
+" %s\n"
 "\n"
-"because it is currently taken by patients.\n"
+"You will want to adjust the schedule\n"
+"rather than document the intake twice."
 msgstr ""
-"Невозможно составить компоненты патентованного препарата\n"
+"Пациент уже принимает\n"
 "\n"
-" \"%s\" (%s)\n"
+" %s\n"
 "\n"
-"так как его в настоящее время принимают пациенты.\n"
-
-msgid "Pick the substances which are components of this drug."
-msgstr "Выберите вещества, которые являютмя компонентами этого препарата."
+"Желательно настроить назначение,\n"
+"а не документировать дважды."
 
-msgid "Components of drug"
-msgstr "Компоненты препарата"
+msgid "Input incomplete/invalid for saving as substance intake."
+msgstr "Сохранение способа введения вещества не выполнено или дало сбой."
 
 #, python-format
-msgid ""
-"Adjust the components of \"%s\"\n"
-"\n"
-"The drug must contain at least one component. Any given\n"
-"substance can only be included once per drug."
+msgid "Discontinued (%s) in the future (now: %s)!"
 msgstr ""
-"Состав компонентов \"%s\"\n"
-"\n"
-"Препарат должен содержать, по крайней мере,\n"
-"один компонент. Любое предоставленное вещество\n"
-"может быть включено в препарат только однократно."
-
-msgid "Managing components of a drug ..."
-msgstr "Составление компонентов препарата ..."
-
-msgid "not in use"
-msgstr "не используются"
 
 #, python-format
-msgid "ATC: %s\n"
-msgstr "ATC: %s\n"
+msgid "Discontinued (%s) before started (%s) !"
+msgstr ""
 
-msgid "Editing medication"
-msgstr "Редактирование лекарства"
+msgid "Cannot add duplicate of (maybe inactive) substance intake."
+msgstr "Невозможно дважды добавить способ введения вещества."
 
 #, python-format
 msgid ""
-"Cannot edit the medication\n"
 "\n"
-" \"%s\" (%s)\n"
+"[%s]\n"
 "\n"
-"because it is a vaccine. Please edit it\n"
-"from the vaccine management section !\n"
+"It may be prudent to edit (before deletion) the details\n"
+"of this substance intake entry so as to leave behind\n"
+"some indication of why it was deleted.\n"
 msgstr ""
-"Невозможно редактировать это лекарство\n"
 "\n"
-" \"%s\" (%s)\n"
+"[%s]\n"
 "\n"
-"так как это вакцина. Редактируйте\n"
-"его в резделе настройки вакцин!\n"
+"Возможно, разумнее редактировать (до удаления)\n"
+"сведения по этому способу введения вещества,\n"
+"так как остаются некоторые указатели причины его удаления.\n"
 
-msgid "Deleting medication"
-msgstr "Удаление лекарства"
+msgid "Deleting medication / substance intake"
+msgstr "Удаление способа введения лекарства или вещества"
 
-#, python-format
-msgid ""
-"Cannot delete the medication\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is a vaccine. Please delete it\n"
-"from the vaccine management section !\n"
-msgstr ""
-"Невозможно удалить лекарство\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"так как это вакцина. Удаляйте\n"
-"его в резделе настройки вакцин!\n"
+msgid "Allow editing of substance intake entry before deletion."
+msgstr "Разрешить редактирование способа введения вещества до удаления."
 
-msgid ""
-"\n"
-"These are the drug brands known to GNUmed.\n"
-msgstr ""
-"\n"
-"Вот патентированный препараты, известные GNUmed.\n"
+msgid "Delete immediately without editing first."
+msgstr "Удаляет немедленно без предварительного редактирования."
 
-msgid "Showing branded drugs."
-msgstr "Отображение патентированных препаратов."
+msgid "&Cancel"
+msgstr "&Cancel"
 
-msgid "Import substances and brands from a drug database."
-msgstr "Импорт веществ и патентированных препаратов из базы данных препаратов."
+msgid "Abort. Do not delete or edit substance intake entry."
+msgstr "Прервать. Не удалять и не редактировать способ введения вещества."
 
-msgid "Editing drug"
-msgstr "Редактирование препаратов"
-
-#, python-format
-msgid ""
-"Cannot edit the branded drug product\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is currently taken by patients.\n"
-msgstr ""
-"Невозможно редактировать патентированный препарат\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"так как его в настоящее время принимают пациенты.\n"
-
-msgid "Adding new drug brand"
-msgstr "Добавление нового патентированного препарата"
-
-msgid "Editing drug brand"
-msgstr "Редактирование патентированного препарата"
-
-#, fuzzy
-msgid "Manage consumable substances"
-msgstr "Отображение веществ для применения."
-
-msgid "Cannot edit drug brand. It is in use."
-msgstr ""
-"Невозможно редактирование патентированного препарата. Он в использовании."
-
-msgid "Checking brand data"
-msgstr "Проверка патентированного препарата"
-
-#, python-format
-msgid ""
-"The brand information you entered:\n"
-"\n"
-" [%s %s]\n"
-"\n"
-"already exists as a drug product."
-msgstr ""
-
-msgid ""
-"You have not selected any substances\n"
-"as drug components.\n"
-"\n"
-"Without components you will not be able to\n"
-"use this drug for documenting patient care.\n"
-"\n"
-"Are you sure you want to save\n"
-"it without components ?"
-msgstr ""
-"Ни одно вещество не выбрано\n"
-"как компонент препарата.\n"
-"\n"
-"Без компонентов невозможно использовать этот\n"
-"препарат для документированного лечения пациента.\n"
-"\n"
-"Уверены, что нужно сохранить его без компонентов?"
-
-msgid "Cannot save branded drug. Invalid or missing essential input."
-msgstr ""
-"Невозможно сохранить патентированный препарат.\r\n"
-"Неправильный или пропущенный основной ввод."
-
-msgid ""
-"The brand name of the drug.\n"
-"\n"
-"Note: a brand name will need to be linked to\n"
-"one or more components before it can be used,\n"
-"except in the case of fake (generic) vaccines."
-msgstr ""
-"Патентированное название препарата.\n"
-"\n"
-"Примечание: патентированное название\n"
-"необходимо связать с одним или более\n"
-"компонентом до возможного использования,\n"
-"кроме случаев непатентованных вакцин (дженерик)."
-
-#, fuzzy
-msgid "The medical aim for consuming this substance."
-msgstr "Цель употребления этого вещества."
-
-msgid "not tolerated:"
-msgstr "недопустимый:"
-
-msgid "discontinued due to allergy or intolerance"
-msgstr "предотвратить возможность аллергии или непереносимости"
-
-msgid "Documented an allergy"
-msgstr "Зарегистрированная аллергия"
-
-#, python-format
-msgid ""
-"An allergy was documented against the substance:\n"
-"\n"
-"  [%s]\n"
-"\n"
-"This substance was taken with the multi-component brand:\n"
-"\n"
-"  [%s (%s)]\n"
-"\n"
-"Note that ALL components of this brand were discontinued."
-msgstr ""
-"Была зарегистрирована аллергия на вещество:\n"
-"\n"
-"  [%s]\n"
-"\n"
-"Это вещество включено в многокомпонентный патентованный препарат:\n"
-"\n"
-"  [%s (%s)]\n"
-"\n"
-"Учтите, что ВСЕ компоненты этого препарата были отменены."
-
-#, fuzzy
-msgid "disapproved"
-msgstr "зарегистрированный"
-
-msgid "Substances consumed by the patient:"
-msgstr ""
-
-msgid "Intake"
-msgstr ""
-
-#, fuzzy
-msgid "Application"
-msgstr "Лекарства"
-
-msgid "never"
-msgstr "никогда"
-
-#, python-format
-msgid "%s, last confirmed %s\n"
-msgstr "%s, последнее подтвержденное %s\n"
-
-#, python-format
-msgid "Comment (%s): %%s\n"
-msgstr "Комментарий (%s): %%s\n"
-
-msgid "reaction not recorded"
-msgstr "реакция не записана"
-
-#, fuzzy
-msgid "GFR: unknown"
-msgstr "неизвестно"
-
-msgid "GFR reported by path lab"
-msgstr ""
-
-#, python-format
-msgid ""
-"The patient is already taking\n"
-"\n"
-" %s\n"
-"\n"
-"You will want to adjust the schedule\n"
-"rather than document the intake twice."
-msgstr ""
-"Пациент уже принимает\n"
-"\n"
-" %s\n"
-"\n"
-"Желательно настроить назначение,\n"
-"а не документировать дважды."
-
-msgid "Adding substance intake entry"
-msgstr "Добавление способа введения вещества"
-
-msgid "Input incomplete/invalid for saving as substance intake."
-msgstr "Сохранение способа введения вещества не выполнено или дало сбой."
-
-#, python-format
-msgid "Discontinued (%s) in the future (now: %s)!"
-msgstr ""
-
-#, python-format
-msgid "Discontinued (%s) before started (%s) !"
-msgstr ""
-
-msgid "Cannot add duplicate of (maybe inactive) substance intake."
-msgstr "Невозможно дважды добавить способ введения вещества."
-
-#, python-format
-msgid ""
-"\n"
-"[%s]\n"
-"\n"
-"It may be prudent to edit (before deletion) the details\n"
-"of this substance intake entry so as to leave behind\n"
-"some indication of why it was deleted.\n"
-msgstr ""
-"\n"
-"[%s]\n"
-"\n"
-"Возможно, разумнее редактировать (до удаления)\n"
-"сведения по этому способу введения вещества,\n"
-"так как остаются некоторые указатели причины его удаления.\n"
-
-msgid "Deleting medication / substance intake"
-msgstr "Удаление способа введения лекарства или вещества"
-
-msgid "Allow editing of substance intake entry before deletion."
-msgstr "Разрешить редактирование способа введения вещества до удаления."
-
-msgid "Delete immediately without editing first."
-msgstr "Удаляет немедленно без предварительного редактирования."
-
-msgid "&Cancel"
-msgstr "&Cancel"
-
-msgid "Abort. Do not delete or edit substance intake entry."
-msgstr "Прервать. Не удалять и не редактировать способ введения вещества."
-
-msgid "Now delete substance intake entry ?"
-msgstr "Способ введения вещества удалить сейчас?"
+msgid "Now delete substance intake entry ?"
+msgstr "Способ введения вещества удалить сейчас?"
 
 msgid "Adding medication/non-medication substance intake"
 msgstr ""
@@ -14784,8 +15056,9 @@ msgstr "Недавно назначенные препараты"
 msgid "Add to medication list"
 msgstr "Добавить в лист назначений"
 
-msgid "Duration / Until"
-msgstr "Продолжительность / до"
+#, fuzzy
+msgid "Timeframe"
+msgstr "Время:"
 
 #, fuzzy, python-format
 msgid "%s <fake>"
@@ -14827,10 +15100,6 @@ msgstr "Дата:%s\n"
 msgid "eGFR:"
 msgstr ""
 
-#, fuzzy, python-format
-msgid "%s%s%s (%s ago)"
-msgstr "%s%7s %s:%s (%s часть(и)%s)"
-
 #, python-format
 msgid "eGFR: %.1f (%s)"
 msgstr ""
@@ -15014,14 +15283,21 @@ msgid ""
 "\n"
 " [%s]\n"
 "\n"
-"is not empty. Do you want to use it for saving the\n"
-"export area documents into, nevertheless ?\n"
+"already contains files. Do you still want to save the\n"
+"selected export area documents into that directory ?\n"
 "\n"
-"(this can be useful for including external documents)\n"
+"(this is useful for including the external documents\n"
+" already stored in or below this directory)\n"
 "\n"
 "[NO] will create a subdirectory for you and use that."
 msgstr ""
 
+msgid ""
+"Create descriptive metadata files\n"
+"and save them alongside the\n"
+"selected export area documents ?"
+msgstr ""
+
 #, fuzzy, python-format
 msgid ""
 "Saved to [%s]:\n"
@@ -15262,10 +15538,6 @@ msgid "This praxis"
 msgstr "Ваше заключение"
 
 #, fuzzy
-msgid "Hospital stay"
-msgstr "Госпитализация"
-
-#, fuzzy
 msgid "Bill receiver"
 msgstr "Выбор пациента"
 
@@ -15304,29 +15576,81 @@ msgstr "Управление описаниями в документе"
 msgid "Select the episode under which to file the document ..."
 msgstr "Выберите эпизод, в котором зарегистрировать этот документ ..."
 
+msgid "Cannot create new document."
+msgstr "Невозможно создать новый документ."
+
+msgid "saving document"
+msgstr "сохранение документа"
+
 #, python-format
 msgid "Imported new document from %s."
 msgstr "Импортированный новый документ из %s."
 
-msgid "Enter a comment on the document."
-msgstr "Введите комментарий в этот документ."
-
-msgid "User defined"
-msgstr "Задано пользователем"
+msgid "Successfully saved new document."
+msgstr "Новый документ успешно сохранен."
 
-msgid "In use"
-msgstr "В использовании"
+msgid "Successfully saved the new document."
+msgstr "Новый документ успешно сохранен."
 
-#, python-format
+#, fuzzy, python-format
 msgid ""
-"Cannot delete document type\n"
-" [%s]\n"
-"because it is currently in use."
+"The reference ID for the new document is:\n"
+"\n"
+" <%s>\n"
+"\n"
+"You probably want to write it down on the\n"
+"original documents.\n"
+"\n"
+"If you don't care about the ID you can switch\n"
+"off this message in the GNUmed configuration.\n"
 msgstr ""
-"Невозможно удалить тип документа\n"
-" [%s]\n"
-"из-за того, что он в настоящее время используется."
-
+"Рекомендуемым ID для нового документа является:\n"
+"\n"
+" <%s>\n"
+"\n"
+"Возможно, захотите внести его в\n"
+"первоначальные документы.\n"
+"\n"
+"Если ID не интересует, то можете отключить\n"
+"это сообщение в конфигурации GNUmed."
+
+msgid "Saving document"
+msgstr "Сохраняемый документ"
+
+#, python-format
+msgid ""
+"Successfully imported files as document.\n"
+"\n"
+"Do you want to delete imported files from the filesystem ?\n"
+"\n"
+" %s\n"
+"\n"
+"Note that temporary files will be deleted anyway."
+msgstr ""
+
+#, fuzzy
+msgid "Removing files"
+msgstr "Уудаление адреса"
+
+msgid "Enter a comment on the document."
+msgstr "Введите комментарий в этот документ."
+
+msgid "User defined"
+msgstr "Задано пользователем"
+
+msgid "In use"
+msgstr "В использовании"
+
+#, python-format
+msgid ""
+"Cannot delete document type\n"
+" [%s]\n"
+"because it is currently in use."
+msgstr ""
+"Невозможно удалить тип документа\n"
+" [%s]\n"
+"из-за того, что он в настоящее время используется."
+
 msgid "deleting document type"
 msgstr "удаление типа документа"
 
@@ -15458,15 +15782,17 @@ msgstr ""
 msgid "Acquiring images"
 msgstr "Полученные изображения"
 
+msgid "directory dropped on client"
+msgstr ""
+
+msgid "file dropped on client"
+msgstr ""
+
 msgid "other documents"
 msgstr "другие документы"
 
-#, python-format
-msgid "part %s: %s"
-msgstr "часть %s: %s"
-
-msgid "saving document"
-msgstr "сохранение документа"
+msgid "path"
+msgstr ""
 
 msgid "No parts to save. Really save an empty document as a reference ?"
 msgstr ""
@@ -15520,17 +15846,26 @@ msgstr ""
 msgid "acquiring page"
 msgstr "полученная страница"
 
+#, fuzzy
+msgid "captured by imaging device"
+msgstr "Получить с устройства изображения"
+
 msgid "Choose a file"
 msgstr "Выбрать файл"
 
 msgid "all files (Win)"
 msgstr "все файлы (Win)"
 
-msgid "You must select a part before you can view it."
-msgstr "Перед просмотром части ее необходимо выбрать"
+msgid "picked from storage media"
+msgstr ""
 
-msgid "displaying part"
-msgstr "отображаемая часть"
+#, fuzzy
+msgid "pasted from clipboard"
+msgstr "Экспорт в &clipboard"
+
+#, fuzzy
+msgid "No part selected for viewing."
+msgstr "Нет результатов, выделенных для удаления."
 
 #, python-format
 msgid ""
@@ -15540,60 +15875,12 @@ msgstr ""
 "Невозможно отобразить часть документа:\n"
 "%s"
 
-msgid "You must select a part before you can delete it."
-msgstr "Перед удалением части ее необходимо выбрать."
-
-msgid "deleting part"
-msgstr "удаляемая часть"
-
-#, python-format
-msgid ""
-"The part has successfully been removed from the document.\n"
-"\n"
-"Do you also want to permanently delete the file\n"
-"\n"
-" [%s]\n"
-"\n"
-"from which this document part was loaded ?\n"
-"\n"
-"If it is a temporary file for a page you just scanned\n"
-"this makes a lot of sense. In other cases you may not\n"
-"want to lose the file.\n"
-"\n"
-"Pressing [YES] will permanently remove the file\n"
-"from your computer.\n"
-msgstr ""
-"Часть была успешно удалена из документа.\n"
-"\n"
-"Хотите также навсегда удалить файл\n"
-" [%s]\n"
-", из которого была загружена часть этого документа?\n"
-"\n"
-"Если это просто временный файл для сканированной\n"
-"страницы, тогда удаление имеет смысл. В других\n"
-"случаях нежелательно терять этот файл.\n"
-"\n"
-"Нажатие [YES] окончательно удалит этот файл\n"
-"с вашего компьютера.\n"
-
-msgid "Removing document part"
-msgstr "Удаляемая часть документа"
-
-#, python-format
-msgid ""
-"Cannot delete part in file [%s].\n"
-"\n"
-"You may not have write access to it."
-msgstr ""
-"Невозможно удалить часть в файле [%s].\n"
-"\n"
-"Нет права доступа на запись к нему."
-
-msgid "Cannot create new document."
-msgstr "Невозможно создать новый документ."
+msgid "displaying part"
+msgstr "отображаемая часть"
 
-msgid "Cannot update document metadata."
-msgstr "Невозможно обновление метаданных документа."
+#, fuzzy
+msgid "No part selected for removal."
+msgstr "Нет результатов, выделенных для удаления."
 
 msgid "Cannot add document description."
 msgstr "Невозможно добавить описание документа."
@@ -15601,36 +15888,13 @@ msgstr "Невозможно добавить описание документ
 msgid "Error setting \"reviewed\" status of new document."
 msgstr "Ошибка настройки \"рассматриваемого\" состояния нового документа."
 
-msgid "Successfully saved the new document."
-msgstr "Новый документ успешно сохранен."
-
-#, python-format
+#, fuzzy, python-format
 msgid ""
-"The reference ID for the new document is:\n"
-"\n"
-" <%s>\n"
-"\n"
-"You probably want to write it down on the\n"
-"original documents.\n"
-"\n"
-"If you don't care about the ID you can switch\n"
-"off this message in the GNUmed configuration."
-msgstr ""
-"Рекомендуемым ID для нового документа является:\n"
-"\n"
-" <%s>\n"
+"Source: %s\n"
+"File: %s\n"
 "\n"
-"Возможно, захотите внести его в\n"
-"первоначальные документы.\n"
-"\n"
-"Если ID не интересует, то можете отключить\n"
-"это сообщение в конфигурации GNUmed."
-
-msgid "Saving document"
-msgstr "Сохраняемый документ"
-
-msgid "Successfully saved new document."
-msgstr "Новый документ успешно сохранен."
+"%s"
+msgstr "Источник:%s\n"
 
 msgid "Document part does not seem to exist in database !"
 msgstr "Кажется, часть документа отсутствует в базе данных!"
@@ -15646,10 +15910,6 @@ msgstr "Сведения из списка ожидания для этого п
 msgid "Showing documents."
 msgstr "просматриваемый документ"
 
-#, fuzzy
-msgid "Generated"
-msgstr "Генерализованный"
-
 msgid "Ref #"
 msgstr "Исх. №"
 
@@ -15965,6 +16225,159 @@ msgstr "Уверены, что нужно удалить этот докумен
 msgid "Deleting document"
 msgstr "Удаление документа"
 
+#, fuzzy
+msgid "Study date"
+msgstr "Эксудативный"
+
+#, fuzzy
+msgid "Study time"
+msgstr "Запустить новое"
+
+msgid "Method"
+msgstr ""
+
+#, fuzzy
+msgid "Body part"
+msgstr "%s частей"
+
+#, fuzzy
+msgid "Time"
+msgstr "Время:"
+
+#, fuzzy
+msgid "Cannot connect without port (try 8042)."
+msgstr "Невозможно подготовить без сценария подготовки."
+
+#, python-format
+msgid "Connect to [%s] @ port %s as \"%s\"."
+msgstr ""
+
+#, fuzzy
+msgid "Cannot connect to PACS."
+msgstr "Невозможно подключить к службе [%s]"
+
+#, python-format
+msgid "PACS: Orthanc \"%s\" (AET \"%s\", Version %s, DB v%s)"
+msgstr ""
+
+#, python-format
+msgid "GNUmed patient: %s (generic PACS ID)"
+msgstr ""
+
+#, python-format
+msgid "GNUmed patient: \"%(value)s\" @ [%(issuer)s] (stored PACS ID)"
+msgstr ""
+
+msgid "PACS: no patients with matching IDs found"
+msgstr ""
+
+msgid ""
+"PACS: more than one patient with matching IDs found, carefully check studies"
+msgstr ""
+
+#, python-format
+msgid "%s series"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "%%s (%s series)"
+msgstr "%s (%s текущий год)"
+
+msgid "no studies"
+msgstr ""
+
+#, python-format
+msgid "%s studies"
+msgstr ""
+
+msgid "Exporting DICOM studies"
+msgstr ""
+
+#, fuzzy
+msgid "Unable to export selected studies."
+msgstr "должен выбрать адрес"
+
+#, python-format
+msgid ""
+"The DICOM studies are %s in compressed size.\n"
+"\n"
+"Really copy to export area ?"
+msgstr ""
+
+#, python-format
+msgid "DICOM studies of [%s] from Orthanc PACS \"%s\" (AET \"%s\")"
+msgstr ""
+
+#, fuzzy
+msgid "Select the directory into which to save the DICOM studies."
+msgstr "Выберите эпизод, в котором зарегистрировать этот документ ..."
+
+#, fuzzy
+msgid "Saving DICOM studies"
+msgstr "Сохранение записи SOAP"
+
+#, fuzzy
+msgid "Unable to save selected studies."
+msgstr "должен выбрать адрес"
+
+#, fuzzy
+msgid "Unable to export studies."
+msgstr "Сбой регистрации пациента в %s"
+
+#, python-format
+msgid "All DICOM studies of [%s] from Orthanc PACS \"%s\" (AET \"%s\")"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "%s%s images"
+msgstr "%s тому назад"
+
+#, fuzzy
+msgid "Select the directory from which to recursively upload DICOM files."
+msgstr "Выберите эпизод, в котором зарегистрировать этот документ ..."
+
+msgid "Delete the uploaded DICOM files now ?"
+msgstr ""
+
+msgid ""
+"Some files have not been uploaded.\n"
+"\n"
+"Do you want to delete those DICOM files which have been sent to the PACS "
+"successfully ?"
+msgstr ""
+
+#, fuzzy
+msgid "Uploading DICOM files"
+msgstr "загрузка файла xDT"
+
+#, fuzzy
+msgid "Editing Orthanc content"
+msgstr "Редактируемый комментарий тэга"
+
+#, fuzzy
+msgid "Patient ID"
+msgstr "Пациент"
+
+#, fuzzy
+msgid "Birth date"
+msgstr "Эксудативный"
+
+msgid "Orthanc"
+msgstr ""
+
+#, fuzzy
+msgid "Modifying patient ID"
+msgstr "Объединенные пациенты"
+
+#, python-format
+msgid ""
+"Really modify %s patient(s) to have the new patient ID\n"
+"\n"
+" [%s]\n"
+"\n"
+"stored in the Orthanc DICOM server ?"
+msgstr ""
+
 #, python-format
 msgid "You are logged in as %s%s.%s (%s). DB account <%s>."
 msgstr "Вы вошли в систему как %s%s.%s (%s). Учетная запись БД <%s>."
@@ -16031,6 +16444,14 @@ msgstr "Редактирование исследования"
 msgid "Select the measurements panel to show in the medications plugin."
 msgstr "Выбирите шаблон для вывода списка лекарств."
 
+#, fuzzy
+msgid "General measurements"
+msgstr "Редактирование исследования"
+
+#, fuzzy
+msgid "Select the measurements panel to show in the top pane."
+msgstr "Выбирите шаблон для вывода списка лекарств."
+
 msgid "Review dialog"
 msgstr "Диалоговое окно рецензирования"
 
@@ -16123,6 +16544,13 @@ msgstr "Автоматическое открытие редакторов"
 msgid "Configure auto-opening editors for recent problems."
 msgstr "Настраивает автоматическое открытие редакторов для последних случаев."
 
+#, fuzzy
+msgid "SOAP fields"
+msgstr "поле xDT"
+
+msgid "Configure SOAP editor - individual SOAP fields vs text editor like"
+msgstr ""
+
 msgid "Progress notes handling ..."
 msgstr "Управление работой с записями ..."
 
@@ -16145,6 +16573,9 @@ msgstr "URL по исследованиям"
 msgid "URL for measurements encyclopedia."
 msgstr "URL для исследовательской энциклопедии."
 
+msgid "Drug data source"
+msgstr "Источник данных по препаратам"
+
 msgid "Select the drug data source."
 msgstr "Выбирает источник данных по препаратам."
 
@@ -16549,7 +16980,15 @@ msgstr "рабочие записи"
 msgid "Manage dynamic hints suppressed in this patient."
 msgstr "Управляет процедурами, которые прошел пациент."
 
-msgid "&Add / Edit ..."
+#, fuzzy
+msgid "Substance abuse"
+msgstr "Вещество"
+
+#, fuzzy
+msgid "Manage substance abuse documentation of this patient."
+msgstr "Сведения из списка ожидания для этого пациента."
+
+msgid "&Add / Edit ..."
 msgstr "&Add / Редактировать ..."
 
 msgid "Search this EMR"
@@ -16570,26 +17009,57 @@ msgstr "Статистика"
 msgid "Show a high-level statistic summary of the EMR."
 msgstr "Показывает итоговую высокоуровневую статистику для  EMR."
 
-msgid "Text document"
-msgstr "Текстовый документ"
+msgid "Journal (encounters) to file"
+msgstr ""
 
-msgid "Export the EMR of the active patient into a text file"
-msgstr "Экспорт EMR активного пациента в текстовый файл"
+#, fuzzy
+msgid ""
+"Save the EMR of the active patient as a chronological journal into a text "
+"file"
+msgstr "Экспорт EMR активного пациента в текстовый файл как журнал хронологии"
 
-msgid "Journal"
-msgstr "Журнал"
+#, fuzzy
+msgid "Journal (encounters) to export area"
+msgstr "Активирование пациента из  полученного списка"
 
+#, fuzzy
 msgid ""
-"Export the EMR of the active patient as a chronological journal into a text "
-"file"
+"Copy EMR of the active patient as a chronological journal into export area"
 msgstr "Экспорт EMR активного пациента в текстовый файл как журнал хронологии"
 
+msgid "Journal (mod time) to file"
+msgstr ""
+
+#, fuzzy
+msgid ""
+"Save the EMR of the active patient as journal by last modification time into "
+"a text file"
+msgstr "Экспорт EMR активного пациента в текстовый файл как журнал хронологии"
+
+#, fuzzy
+msgid "Journal (mod time) to export area"
+msgstr "Активирование пациента из  полученного списка"
+
+#, fuzzy
+msgid ""
+"Copy EMR of the active patient as journal by last modification time into "
+"export area"
+msgstr "Экспорт EMR активного пациента в текстовый файл как журнал хронологии"
+
+msgid "Text document"
+msgstr "Текстовый документ"
+
+#, fuzzy
+msgid "Save the EMR of the active patient into a text file"
+msgstr "Экспорт EMR активного пациента в текстовый файл"
+
 msgid "MEDISTAR import format"
 msgstr "Формат импорта MEDISTAR"
 
+#, fuzzy
 msgid ""
-"GNUmed -> MEDISTAR. Export progress notes of active patient's active "
-"encounter into a text file."
+"GNUmed -> MEDISTAR. Save progress notes of active patient's active encounter "
+"into a text file."
 msgstr ""
 "GNUmed -> MEDISTAR. Экспортирует комментарии по выполнению активного "
 "обращения для активного пациента в текстовый файл."
@@ -16773,21 +17243,47 @@ msgstr "Сохраняет скриншот этого клиента GNUmed."
 msgid "Show log file"
 msgstr "Показать лог-файл"
 
-msgid "Show the log file in text viewer."
+#, fuzzy
+msgid "Show log file in text viewer."
 msgstr "Показывает лог-файл в программе просмотра текста."
 
 msgid "Backup log file"
 msgstr "Резервный лог-файл"
 
-msgid "Backup the content of the log to another file."
+#, fuzzy
+msgid "Backup content of the log to another file."
 msgstr "Резервирует содержимое журнала в другой файл."
 
 msgid "Email log file"
 msgstr "Лог-файл по электронной почте"
 
-msgid "Send the log file to the authors for help."
+#, fuzzy
+msgid "Send log file to the authors for help."
 msgstr "Отправляет лог-файл разработчикам для получения поддержки."
 
+#, fuzzy
+msgid "Browse tmp dir"
+msgstr "Тэги пациента"
+
+#, python-format
+msgid "Browse temporary directory [%s]."
+msgstr ""
+
+#, fuzzy
+msgid "Browse work dir"
+msgstr "Тэги пациента"
+
+#, python-format
+msgid "Browse user working directory [%s]."
+msgstr ""
+
+msgid "Browse internal work dir"
+msgstr ""
+
+#, python-format
+msgid "Browse internal working directory [%s]."
+msgstr ""
+
 msgid "Bug tracker"
 msgstr "Отслеживание ошибок"
 
@@ -17266,6 +17762,20 @@ msgstr ""
 "Нет, открывать редактор автоматически только для новой, несвязанной проблемы."
 
 msgid ""
+"When editing progress notes, do you want GNUmed to\n"
+"show individual fields for each of the SOAP categories\n"
+"or do you want to use a text-editor like field for\n"
+"all SOAP categories which can then be set per line\n"
+"of input ?"
+msgstr ""
+
+msgid "Yes, show a dedicated field per SOAP category."
+msgstr ""
+
+msgid "No, use one field for all SOAP categories."
+msgstr ""
+
+msgid ""
 "When a patient is activated GNUmed can\n"
 "be told to switch to a specific plugin.\n"
 "\n"
@@ -17534,738 +18044,1221 @@ msgstr ""
 "документов, но не желательно проверять\n"
 "все содержащиеся в них страницы."
 
-msgid "Yes, allow saving documents without any parts."
-msgstr "Да, разрешить сохранение документов без частей."
+msgid "Yes, allow saving documents without any parts."
+msgstr "Да, разрешить сохранение документов без частей."
+
+msgid "No, require documents to have at least one part."
+msgstr "Нет, требовать, чтобы документы имели, по крайней мере одну часть."
+
+msgid ""
+"After importing a new document do you\n"
+"want GNUmed to display the unique ID\n"
+"it auto-generated for that document ?\n"
+"\n"
+"This can be useful if you want to label the\n"
+"originals with that ID for later identification."
+msgstr ""
+"После импорта нового документа нужно ли,\n"
+"чтобы GNUmed отображал автоматически\n"
+"созданный для него уникальный ID ?\n"
+"\n"
+"Может быть полезно при необходимости\n"
+"маркировать оригиналы по этому ID для\n"
+"последующего распознавания."
+
+msgid "Yes, display the ID generated for the new document after importing."
+msgstr "Да, отображать созданный ID для нового документа после импорта."
+
+msgid ""
+"No, do not display the ID generated for the new document after importing."
+msgstr "Нет, не отображать созданный ID для нового документа после импорта."
+
+msgid ""
+"After importing a new document do you\n"
+"want GNUmed to generate a unique ID\n"
+"(UUID) for that document ?\n"
+"\n"
+"This can be useful if you want to label the\n"
+"originals with that ID for later identification."
+msgstr ""
+"Нужно ли, чтобы после импорта нового\n"
+"документа GNUmed создавал уникальный\n"
+"ID (UUID) для него?\n"
+"\n"
+"Может быть полезным при необходимости\n"
+"маркировки оригиналов по этому ID для\n"
+"последующего распознавания."
+
+msgid "Yes, generate a UUID for the new document after importing."
+msgstr "Да, создавать UUID для нового документа после импорта."
+
+msgid "No, do not generate a UUID for the new document after importing."
+msgstr "Нет, не создавать UUID для нового документа после импорта."
+
+msgid ""
+"GNUmed can show the document review dialog after\n"
+"calling the appropriate viewer for that document.\n"
+"\n"
+"Select the conditions under which you want\n"
+"GNUmed to do so:\n"
+"\n"
+" 0: never display the review dialog\n"
+" 1: always display the dialog\n"
+" 2: only if there is no previous review by me\n"
+" 3: only if there is no previous review at all\n"
+" 4: only if there is no review by the responsible reviewer\n"
+"\n"
+"Note that if a viewer is configured to not block\n"
+"GNUmed during document display the review dialog\n"
+"will actually appear in parallel to the viewer."
+msgstr ""
+"GNUmed может показывать диалоговое\n"
+"окно для рецензирования документа после\n"
+"вызова соответствующего средства\n"
+"просмотра для этого документа. \n"
+"\n"
+"Выберите условия, при которых\n"
+"GNUmed будет это делать:\n"
+"\n"
+"0: никогда не отображать диалогового окно обзора\n"
+"1: всегда показывать диалоговое окно\n"
+"2: только если не было никакого предыдущего моего рецензирования\n"
+"3: только если не было никакого предыдущего рецензирования всеми\n"
+"4: только если не было никакого рецензирования ответственным\n"
+"\n"
+"Обратите внимание, что если средство просмотра\n"
+"настроено не блокировать отображение диалогового\n"
+"окна для рецензирования документа, на самом деле\n"
+"GNUmed предоставит параллельно для рецензирования."
+
+msgid "Addresses (likely slow)"
+msgstr "Адреса (вероятно медленно)"
+
+msgid "Branded drugs (as marketed)"
+msgstr "Патентованные препараты (как отмечено)"
+
+msgid "Dynamic automatic hints"
+msgstr ""
+
+msgid "Codes and their respective terms"
+msgstr "Коды и их соответствующие условия"
+
+msgid "Communication channel types"
+msgstr "Типы каналов связи"
+
+msgid "Components of branded drugs (substances in brands)"
+msgstr "Компоненты патентованных препаратов (составные вещества)"
+
+msgid "Diagnostic organizations (path labs, ...)"
+msgstr "Диагностические организации (направление в лаборатории ...)"
+
+msgid "Document templates (forms, letters, plots, ...)"
+msgstr "Шаблоны документов (формы, письма, заготовки ...)"
+
+msgid "Document types"
+msgstr "Типы документов"
+
+msgid "Encounter types"
+msgstr "Типы обращений"
+
+msgid "Keyword based text expansion macros"
+msgstr "Ключевые слова на основе расширенных текстовых макросов"
+
+msgid "Meta test/measurement types"
+msgstr "Метатипы анализов или исследований"
+
+msgid "Organizations with their units, addresses, and comm channels"
+msgstr "Организации с их страндартами, адресами и каналами связи"
+
+msgid "Patient tags"
+msgstr "Тэги пациента"
+
+msgid "Provinces (counties, territories, states, regions, ...)"
+msgstr "Области (графства, территории, штаты, регионы ...)"
+
+msgid "String translations in the database"
+msgstr "Переводы строк в базе данных"
+
+msgid "Test/measurement types"
+msgstr "Типы анализов или исследований"
+
+msgid "Vaccination targets (conditions known to be preventable by vaccination)"
+msgstr "Назначения вакцинаций (условия, известные для показаний на вакцинацию)"
+
+msgid "Vaccines"
+msgstr "Вакцины"
+
+msgid "Workplace profiles (which plugins to load)"
+msgstr "Профили рабочих областей (расширяемые для загрузки)"
+
+msgid "Consumable substances"
+msgstr "Применяемые вещества"
+
+msgid "Billable items"
+msgstr "Пункты, подлежащие оплате"
+
+#, fuzzy
+msgid "Reference data sources"
+msgstr "Источник данных по препаратам"
+
+#, fuzzy
+msgid "Test/measurement panels/profiles"
+msgstr "Типы анализов или исследований"
+
+msgid "Master data management"
+msgstr "Управление основными данными"
+
+msgid "Select the list you want to manage:"
+msgstr "Выберите список для управления:"
+
+msgid "No DICOM viewer found."
+msgstr "Обозреватель DICOM не найден."
+
+msgid "risk assessment"
+msgstr "оценка риска"
+
+msgid "cardiovascular risk assessment"
+msgstr "оценка кардиоваскулярного риска"
+
+#, python-format
+msgid "[arriba] XML result not found in [%s]"
+msgstr "[arriba] результат XML в [%s] не найден"
+
+msgid "ACS risk assessment calculator not configured."
+msgstr "Калькулятор оценки риска ACS не настроен."
+
+#, python-format
+msgid "Cannot run [%s] !"
+msgstr "Невозможно запустить [%s] !"
+
+#, python-format
+msgid "There was a problem accessing the [arriba] result in [%s] !"
+msgstr "Имелась проблема доступа к этому [arriba] результату в [%s] !"
+
+msgid "[-9999]: <access violation test error>"
+msgstr ""
+
+msgid ""
+"This is a deliberate AccessDenied exception thrown to test the handling of "
+"access violations by means of a decorator."
+msgstr ""
+
+msgid "testing access check for non-existant <admin> role"
+msgstr ""
+
+msgid ""
+"This is a deliberate AccessDenied exception. You should not see this message "
+"because the role is checked in a decorator."
+msgstr ""
+
+msgid "pgAdmin III not found."
+msgstr "pgAdmin III не найден."
+
+msgid "Error reloading hook script."
+msgstr "Ошибка повторной загрузки обработчика сценария."
+
+msgid "Save current log as..."
+msgstr "Сохранить текущий журнал как ..."
+
+msgid "log files"
+msgstr "Лог-файлы"
+
+#, python-format
+msgid "Log file backed up as [%s]."
+msgstr "Лог-файл зарезервирован как [%s]."
+
+msgid "Cannot start new encounter. No active patient."
+msgstr "Невозможно открыть новое обращение. Нет активного пациента."
+
+msgid "Cannot add health issue. No active patient."
+msgstr "Невозможно добавить заболевание. Нет активного пациента."
+
+msgid "Cannot add episode. No active patient."
+msgstr "Невозможно добавить эпизод. Нет активного пациента."
+
+msgid "Cannot add medication. No active patient."
+msgstr "Невозможно добавить лечение. Нет активного пациента."
+
+msgid "Cannot add allergy. No active patient."
+msgstr "Невозможно добавить аллергию. Нет активного пациента."
+
+msgid "Cannot manage performed procedures. No active patient."
+msgstr "Невозможна регистрация выполненных процедур. Нет активного пациента."
+
+#, fuzzy
+msgid "Cannot manage hospitalizations. No active patient."
+msgstr ""
+"Невозможна регистрация пребывания в стационаре. Нет активного пациента."
+
+#, fuzzy
+msgid "Cannot manage external care. No active patient."
+msgstr "Невозможно добавить исследования. Нет активного пациента."
+
+msgid "Cannot edit occupation. No active patient."
+msgstr "Невозможно редактировать род занятий. Нет активного пациента."
+
+#, fuzzy
+msgid "manage vaccinations"
+msgstr "Управление вакцинациями"
+
+msgid "Cannot add vaccinations. No active patient."
+msgstr "Невозможно добавить вакцинации. Нет активного пациента."
+
+#, fuzzy
+msgid "manage family history"
+msgstr "Управление семейным анамнезом"
+
+msgid "Cannot manage family history. No active patient."
+msgstr "Невозможно управление семейным анамнезом. Нет активного пациента."
+
+#, fuzzy
+msgid "Cannot manage measurements. No active patient."
+msgstr "Невозможно добавить исследования. Нет активного пациента."
+
+msgid "calculate EDC"
+msgstr ""
+
+#, fuzzy
+msgid "manage suppressed hints"
+msgstr "Управление рабочими записями"
+
+#, fuzzy
+msgid "Cannot manage suppressed hints. No active patient."
+msgstr "Невозможно добавить исследования. Нет активного пациента."
+
+#, fuzzy
+msgid "Cannot manage smoking status. No active patient."
+msgstr "Невозможно добавить исследования. Нет активного пациента."
+
+msgid "Cannot show EMR summary. No active patient."
+msgstr "Невозможно показать итоговую EMR. Нет активного пациента."
+
+msgid "EMR Summary"
+msgstr "Итоговая EMR"
+
+#, fuzzy
+msgid "Cannot export EMR journal by last modification time. No active patient."
+msgstr "Невозможно экспортировать журнал EMR. Нет активного пациента."
+
+msgid "journal_by_last_mod_time"
+msgstr ""
+
+msgid "Save patient's EMR journal as..."
+msgstr "Сохранить журнал EMR пациента как ..."
+
+#, fuzzy
+msgid "Error exporting patient EMR as journal by last modification time."
+msgstr "Ошибка экспорта EMR пациента как журнала хронологий."
+
+msgid "EMR journal export"
+msgstr "Экспорт журнала EMR"
+
+#, fuzzy, python-format
+msgid ""
+"Successfully exported EMR as journal by last modification time into file "
+"[%s]."
+msgstr "EMR успешно экспортирован как журнал хронологий в файл [%s]."
+
+msgid "Cannot export EMR journal. No active patient."
+msgstr "Невозможно экспортировать журнал EMR. Нет активного пациента."
+
+msgid "emr-journal"
+msgstr "emr-journal"
+
+msgid "Error exporting patient EMR as chronological journal."
+msgstr "Ошибка экспорта EMR пациента как журнала хронологий."
+
+#, python-format
+msgid "Successfully exported EMR as chronological journal into file [%s]."
+msgstr "EMR успешно экспортирован как журнал хронологий в файл [%s]."
+
+msgid "EMR journal by last modification time"
+msgstr ""
+
+#, fuzzy
+msgid "EMR journal by encounter"
+msgstr "Экспорт журнала EMR"
+
+msgid "Cannot add tag to person. No active patient."
+msgstr "Невозможно добавить тэг для персоны. Нет активного пациента."
+
+#, python-format
+msgid "Edit the comment on tag [%s]"
+msgstr "Редактировать комментарий к тэгу [%s]"
+
+msgid "Editing tag comment"
+msgstr "Редактируемый комментарий тэга"
+
+msgid "Cannot export patient as GDT. No active patient."
+msgstr "Невозможно экспортировать пациента как GDT. Нет активного пациента."
+
+#, fuzzy
+msgid "Exported demographics as GDT to clipboard."
+msgstr "Демографические сведения экспортированы в файл GDT [%s]."
+
+#, fuzzy
+msgid "Cannot export patient as VCARD. No active patient."
+msgstr "Невозможно экспортировать пациента как GDT. Нет активного пациента."
+
+#, fuzzy
+msgid "Exported demographics as VCARD to clipboard."
+msgstr "Демографические сведения экспортированы в файл GDT [%s]."
+
+#, fuzzy
+msgid "Cannot export patient as XML (LinuxMedNews). No active patient."
+msgstr "Невозможно экспортировать пациента как GDT. Нет активного пациента."
+
+#, fuzzy, python-format
+msgid "Exported demographics to XML file [%s]."
+msgstr "Демографические сведения экспортированы в файл GDT [%s]."
+
+#, python-format
+msgid "Exported demographics to GDT file [%s]."
+msgstr "Демографические сведения экспортированы в файл GDT [%s]."
+
+#, fuzzy, python-format
+msgid "Exported demographics to VCARD file [%s]."
+msgstr "Демографические сведения экспортированы в файл GDT [%s]."
+
+msgid "Cannot add staff member. No active patient."
+msgstr "Невозможно добавить сотрудника. Нет активного пациента."
+
+msgid "Cannot delete patient. No patient active."
+msgstr "Невозможно удалить пациента. Нет активного пациента."
+
+msgid ""
+"You have to manually close this window to finalize shutting down GNUmed."
+msgstr "Это окно можно закрыть вручную для окончательного завершения GNUmed."
+
+msgid "This is so that you can inspect the console output at your leisure."
+msgstr ""
+"Для того, чтобы в свободное время можно было проверить вывод на консоль."
+
+msgid "no patient"
+msgstr "нет пациента"
+
+#, python-format
+msgid "Saved screenshot to file [%s]."
+msgstr "Сохраненный скриншот в файле [%s]."
+
+msgid "Python version check"
+msgstr ""
+
+#, python-format
+msgid ""
+"You are running Python version\n"
+" %s\n"
+"\n"
+"However, GNUmed wants Python 2.7 to\n"
+"facilitate migration to Python 3.\n"
+"\n"
+"Please upgrade your Python interpreter !"
+msgstr ""
+
+msgid "GNUmed client"
+msgstr "клиент GNUmed"
+
+msgid "GNUmed stdout/stderr window"
+msgstr "окно GNUmed stdout/stderr"
 
-msgid "No, require documents to have at least one part."
-msgstr "Нет, требовать, чтобы документы имели, по крайней мере одну часть."
+msgid "redirecting STDOUT/STDERR to this log window"
+msgstr "перенаправление STDOUT/STDERR в это регистрационное окно"
 
+#, python-format
 msgid ""
-"After importing a new document do you\n"
-"want GNUmed to display the unique ID\n"
-"it auto-generated for that document ?\n"
+"The database account [%s] cannot be used as a\n"
+"staff member login for GNUmed. There was an\n"
+"error retrieving staff details for it.\n"
 "\n"
-"This can be useful if you want to label the\n"
-"originals with that ID for later identification."
+"Please ask your administrator for help.\n"
 msgstr ""
-"После импорта нового документа нужно ли,\n"
-"чтобы GNUmed отображал автоматически\n"
-"созданный для него уникальный ID ?\n"
+"Невозможно использовать учетную запись базы данных [%s] как\n"
+"вход в систему для сотрудника GNUmed. Имелась\n"
+"ошибка при получении сведений по сотруднику.\n"
 "\n"
-"Может быть полезно при необходимости\n"
-"маркировать оригиналы по этому ID для\n"
-"последующего распознавания."
+"Для поддержки обратитесь к администратору.\n"
 
-msgid "Yes, display the ID generated for the new document after importing."
-msgstr "Да, отображать созданный ID для нового документа после импорта."
+msgid "Checking access permissions"
+msgstr "Проверка разрешений на права доступа"
 
-msgid ""
-"No, do not display the ID generated for the new document after importing."
-msgstr "Нет, не отображать созданный ID для нового документа после импорта."
+#, python-format
+msgid "Database <%s> on <%s>"
+msgstr "База данных <%s> в <%s>"
 
-msgid ""
-"After importing a new document do you\n"
-"want GNUmed to generate a unique ID\n"
-"(UUID) for that document ?\n"
-"\n"
-"This can be useful if you want to label the\n"
-"originals with that ID for later identification."
+#, python-format
+msgid "Branch \"%s\" of praxis \"%s\"\n"
 msgstr ""
-"Нужно ли, чтобы после импорта нового\n"
-"документа GNUmed создавал уникальный\n"
-"ID (UUID) для него?\n"
-"\n"
-"Может быть полезным при необходимости\n"
-"маркировки оригиналов по этому ID для\n"
-"последующего распознавания."
 
-msgid "Yes, generate a UUID for the new document after importing."
-msgstr "Да, создавать UUID для нового документа после импорта."
+msgid "Verifying database"
+msgstr "Проверка базы данных"
 
-msgid "No, do not generate a UUID for the new document after importing."
-msgstr "Нет, не создавать UUID для нового документа после импорта."
+msgid "Connect"
+msgstr "Подключить"
+
+msgid "Yes, connect to this database."
+msgstr "Да, подключить к этой базе данных."
+
+msgid "Disconnect"
+msgstr "Отключить"
+
+msgid "No, do not connect to this database."
+msgstr "Нет, не подключать к этой базе данных."
 
+#, python-format
 msgid ""
-"GNUmed can show the document review dialog after\n"
-"calling the appropriate viewer for that document.\n"
-"\n"
-"Select the conditions under which you want\n"
-"GNUmed to do so:\n"
+"Cannot find configuration file in any of:\n"
 "\n"
-" 0: never display the review dialog\n"
-" 1: always display the dialog\n"
-" 2: only if there is no previous review by me\n"
-" 3: only if there is no previous review at all\n"
-" 4: only if there is no review by the responsible reviewer\n"
+" %s\n"
+"You may need to use the comand line option\n"
 "\n"
-"Note that if a viewer is configured to not block\n"
-"GNUmed during document display the review dialog\n"
-"will actually appear in parallel to the viewer."
+"\t--conf-file=<FILE>"
 msgstr ""
-"GNUmed может показывать диалоговое\n"
-"окно для рецензирования документа после\n"
-"вызова соответствующего средства\n"
-"просмотра для этого документа. \n"
-"\n"
-"Выберите условия, при которых\n"
-"GNUmed будет это делать:\n"
+"Невозможно найти конфигурационный файл в любом:\n"
 "\n"
-"0: никогда не отображать диалогового окно обзора\n"
-"1: всегда показывать диалоговое окно\n"
-"2: только если не было никакого предыдущего моего рецензирования\n"
-"3: только если не было никакого предыдущего рецензирования всеми\n"
-"4: только если не было никакого рецензирования ответственным\n"
+"%s\n"
+"Возможно, необходимо использовать опцию командной строки\n"
 "\n"
-"Обратите внимание, что если средство просмотра\n"
-"настроено не блокировать отображение диалогового\n"
-"окна для рецензирования документа, на самом деле\n"
-"GNUmed предоставит параллельно для рецензирования."
+"\t--conf-file=<FILE>"
 
-msgid "Addresses (likely slow)"
-msgstr "Адреса (вероятно медленно)"
+msgid "Checking configuration files"
+msgstr "Проверка конфигурационного файла"
 
-msgid "Branded drugs (as marketed)"
-msgstr "Патентованные препараты (как отмечено)"
+msgid "GNUmed startup"
+msgstr "Запуск GNUmed"
 
-msgid "Dynamic automatic hints"
+#, python-format
+msgid ""
+"The currently selected database language ('%s') does\n"
+"not match the current system language ('%s').\n"
+"\n"
+"Do you want to set the database language to '%s' ?\n"
 msgstr ""
+"Текущий выбранный язык базы данных ('%s')\n"
+"не соответствует текущему системному языку ('%s').\n"
+"\n"
+"Хотие установить язык базы данных на '%s' ?\n"
 
-msgid "Codes and their respective terms"
-msgstr "Коды и их соответствующие условия"
-
-msgid "Communication channel types"
-msgstr "Типы каналов связи"
-
-msgid "Components of branded drugs (substances in brands)"
-msgstr "Компоненты патентованных препаратов (составные вещества)"
+msgid "Checking database language settings"
+msgstr "Проверка настроек языка базы данных"
 
-msgid "Diagnostic organizations (path labs, ...)"
-msgstr "Диагностические организации (направление в лаборатории ...)"
+#, python-format
+msgid "Set your database language to [%s]."
+msgstr "Установить язык базы данных на [%s]."
 
-msgid "Document templates (forms, letters, plots, ...)"
-msgstr "Шаблоны документов (формы, письма, заготовки ...)"
+msgid "Don't set"
+msgstr "Не устанавливать"
 
-msgid "Document types"
-msgstr "Типы документов"
+msgid "Do not set your database language now."
+msgstr "Не устанавливать пока язык базы данных."
 
-msgid "Encounter types"
-msgstr "Типы обращений"
+msgid "Remember to ignore language mismatch"
+msgstr "Запомнить для игнорирования соответствия языка"
 
-msgid "Keyword based text expansion macros"
-msgstr "Ключевые слова на основе расширенных текстовых макросов"
+#, python-format
+msgid ""
+"Checking this will make GNUmed remember your decision\n"
+"until the system language is changed.\n"
+"\n"
+"You can also reactivate this inquiry by removing the\n"
+"corresponding \"ignore\" option from the configuration file\n"
+"\n"
+" [%s]"
+msgstr ""
+"При этой проверке GNUmed будет помнить\n"
+"ваше решение до тех пор, пока не\n"
+"изменится системный язык.\n"
+"\n"
+"Это запрос можно вызвать повторно\n"
+"удалением соответствующей \"отклоненной\"\n"
+"опции в конфигурационном файле\n"
+"\n"
+"[%s]"
 
-msgid "Meta test/measurement types"
-msgstr "Метатипы анализов или исследований"
+#, fuzzy
+msgid "generic activity"
+msgstr "текст дженерика"
 
-msgid "Organizations with their units, addresses, and comm channels"
-msgstr "Организации с их страндартами, адресами и каналами связи"
+msgid "Access denied"
+msgstr ""
 
-msgid "Patient tags"
-msgstr "Тэги пациента"
+#, python-format
+msgid ""
+"Your account is not set up to access this part of GNUmed:\n"
+"\n"
+"  [%s]"
+msgstr ""
 
-msgid "Provinces (counties, territories, states, regions, ...)"
-msgstr "Области (графства, территории, штаты, регионы ...)"
+msgid "Save timeline as SVG image under..."
+msgstr ""
 
-msgid "String translations in the database"
-msgstr "Переводы строк в базе данных"
+#, fuzzy
+msgid "timeline image"
+msgstr "все файлы"
 
-msgid "Test/measurement types"
-msgstr "Типы анализов или исследований"
+#, fuzzy
+msgid "timeline data"
+msgstr "Нет установленны сроки для"
 
-msgid "Vaccination targets (conditions known to be preventable by vaccination)"
-msgstr "Назначения вакцинаций (условия, известные для показаний на вакцинацию)"
+msgid "Cannot change notebook tabs. No active patient."
+msgstr "Невозможно изменить закладку записной книжки. Нет активного пациента."
 
-msgid "Vaccines"
-msgstr "Вакцины"
+msgid "add plugin ..."
+msgstr "добавить плагин ..."
 
-msgid "Workplace profiles (which plugins to load)"
-msgstr "Профили рабочих областей (расширяемые для загрузки)"
+msgid "Cannot activate Allergy Manager. No active patient."
+msgstr "Невозможно активировать менеджер по аллергии. Нет активного пациента."
 
-msgid "Consumable substances"
-msgstr "Применяемые вещества"
+msgid "RR ?"
+msgstr ""
 
-msgid "Billable items"
-msgstr "Пункты, подлежащие оплате"
+#, python-format
+msgid "BMI %s"
+msgstr ""
 
-#, fuzzy
-msgid "Reference data sources"
-msgstr "Источник данных по препаратам"
+msgid "BMI ?"
+msgstr ""
 
-#, fuzzy
-msgid "Test/measurement panels/profiles"
-msgstr "Типы анализов или исследований"
+msgid "GFR ?"
+msgstr ""
 
-msgid "Master data management"
-msgstr "Управление основными данными"
+#, python-format
+msgid "GFR %s"
+msgstr ""
 
-msgid "Select the list you want to manage:"
-msgstr "Выберите список для управления:"
+#, python-format
+msgid "?EDC %s"
+msgstr ""
 
-msgid "No DICOM viewer found."
-msgstr "Обозреватель DICOM не найден."
+#, python-format
+msgid "EDC %s"
+msgstr ""
 
-msgid "risk assessment"
-msgstr "оценка риска"
+msgid "<Age>"
+msgstr ""
 
-msgid "cardiovascular risk assessment"
-msgstr "оценка кардиоваскулярного риска"
+#, fuzzy
+msgid "no patient selected"
+msgstr "<не выбрана единица>"
 
-#, python-format
-msgid "[arriba] XML result not found in [%s]"
-msgstr "[arriba] результат XML в [%s] не найден"
+#, fuzzy, python-format
+msgid "Gender: %s (%s) - %s\n"
+msgstr "Обращения: %s (%s - %s):"
 
-msgid "ACS risk assessment calculator not configured."
-msgstr "Калькулятор оценки риска ACS не настроен."
+#, fuzzy, python-format
+msgid "Born: %s\n"
+msgstr "Зона: %s\n"
 
-#, python-format
-msgid "Cannot run [%s] !"
-msgstr "Невозможно запустить [%s] !"
+#, fuzzy, python-format
+msgid "Died: %s\n"
+msgstr "Дата:%s\n"
 
-#, python-format
-msgid "There was a problem accessing the [arriba] result in [%s] !"
-msgstr "Имелась проблема доступа к этому [arriba] результату в [%s] !"
+#, fuzzy, python-format
+msgid "At age: %s\n"
+msgstr "Дата:%s\n"
 
-msgid "[-9999]: <access violation test error>"
-msgstr ""
+msgid " (date of birth and age are estimated)\n"
+msgstr " (дата рождения и возраст приблизительны)\n"
+
+#, fuzzy, python-format
+msgid "%(sex)s  %(dob)s (%(age)s today !)"
+msgstr "%s %s (%s сегодня !)"
 
+#, fuzzy
 msgid ""
-"This is a deliberate AcessDenied exception thrown to test the handling of "
-"access violations by means of a decorator."
+"\n"
+"Today is the patient's birthday !\n"
+"\n"
 msgstr ""
+"\n"
+"Сегодня у пациента день рождения!\n"
+"\n"
 
-msgid "testing access check for non-existant <admin> role"
+#, python-format
+msgid "Birthday: %s ago\n"
 msgstr ""
 
-msgid ""
-"This is a deliberate AcessDenied exception. You should not see this message "
-"because the role is checked in a decorator."
-msgstr ""
+#, fuzzy, python-format
+msgid "Birthday: in %s\n"
+msgstr "Уведомитель дней рождения"
 
-msgid "pgAdmin III not found."
-msgstr "pgAdmin III не найден."
+#, fuzzy, python-format
+msgid "Age: %s\n"
+msgstr "ATC: %s\n"
 
-msgid "Error reloading hook script."
-msgstr "Ошибка повторной загрузки обработчика сценария."
+#, python-format
+msgid "last confirmed %s\n"
+msgstr "Последний подтвержденный %s\n"
 
-msgid "Save current log as..."
-msgstr "Сохранить текущий журнал как ..."
+#, python-format
+msgid "Comment (%s): %%s"
+msgstr "Комментарий (%s): %%s"
 
-msgid "log files"
-msgstr "Лог-файлы"
+#, python-format
+msgid " - expires %s"
+msgstr " - срок истечения %s"
 
 #, python-format
-msgid "Log file backed up as [%s]."
-msgstr "Лог-файл зарезервирован как [%s]."
+msgid ""
+"Due for %s (since %s%s):\n"
+"%s%s\n"
+"Patient: %s\n"
+"Reminder by: %s"
+msgstr ""
+"Подлежит для %s (с %s%s):\n"
+"%s%s\n"
+"Пациент: %s\n"
+"Напоминание через: %s"
 
-msgid "Cannot start new encounter. No active patient."
-msgstr "Невозможно открыть новое обращение. Нет активного пациента."
+#, fuzzy
+msgid "Clinical reminder"
+msgstr "Клинические особенности"
 
-msgid "Cannot add health issue. No active patient."
-msgstr "Невозможно добавить заболевание. Нет активного пациента."
+#, fuzzy
+msgid "Adding automatic dynamic hint"
+msgstr "Отображение вакцин."
 
-msgid "Cannot add episode. No active patient."
-msgstr "Невозможно добавить эпизод. Нет активного пациента."
+#, fuzzy
+msgid "Editing automatic dynamic hint"
+msgstr "Отображение вакцин."
 
-msgid "Cannot add medication. No active patient."
-msgstr "Невозможно добавить лечение. Нет активного пациента."
+#, fuzzy
+msgid "Deleting automatic dynamic hint"
+msgstr "Отображение вакцин."
 
-msgid "Cannot add allergy. No active patient."
-msgstr "Невозможно добавить аллергию. Нет активного пациента."
+#, python-format
+msgid ""
+"Really delete this dynamic hint ?\n"
+"\n"
+" [%s]"
+msgstr ""
 
-msgid "Cannot manage performed procedures. No active patient."
-msgstr "Невозможна регистрация выполненных процедур. Нет активного пациента."
+#, fuzzy
+msgid "deleting a dynamic hint"
+msgstr "Отображение вакцин."
 
 #, fuzzy
-msgid "Cannot manage hospitalizations. No active patient."
+msgid ""
+"\n"
+"Dynamic hints registered with GNUmed.\n"
 msgstr ""
-"Невозможна регистрация пребывания в стационаре. Нет активного пациента."
+"\n"
+"Тэги с изображениями, зарегистрированные в GNUmed.\n"
 
 #, fuzzy
-msgid "Cannot manage external care. No active patient."
-msgstr "Невозможно добавить исследования. Нет активного пациента."
+msgid "Showing dynamic hints."
+msgstr "Отображение вакцин."
 
-msgid "Cannot edit occupation. No active patient."
-msgstr "Невозможно редактировать род занятий. Нет активного пациента."
+msgid "Hint"
+msgstr "Информация"
 
 #, fuzzy
-msgid "manage vaccinations"
-msgstr "Управление вакцинациями"
+msgid "Browse and install automatic dynamic hints data packs"
+msgstr "Отображение и установка пакетов данных для клинической информации"
 
-msgid "Cannot add vaccinations. No active patient."
-msgstr "Невозможно добавить вакцинации. Нет активного пациента."
+#, fuzzy, python-format
+msgid "By: %s"
+msgstr "Зона: %s\n"
 
-msgid "Cannot manage family history. No active patient."
-msgstr "Невозможно управление семейным анамнезом. Нет активного пациента."
+msgid "No entry in field <Source>."
+msgstr ""
+
+msgid "No entry in field <Conditions>."
+msgstr ""
 
 #, fuzzy
-msgid "Cannot manage measurements. No active patient."
-msgstr "Невозможно добавить исследования. Нет активного пациента."
+msgid "No entry in field <Description>."
+msgstr "Ошибка печати списка лекарств."
 
-msgid "calculate EDC"
+msgid "No entry in field <Title>."
 msgstr ""
 
 #, fuzzy
-msgid "manage suppressed hints"
-msgstr "Управление рабочими записями"
+msgid "creating a new dynamic hint"
+msgstr "Отображение вакцин."
 
 #, fuzzy
-msgid "Cannot manage suppressed hints. No active patient."
-msgstr "Невозможно добавить исследования. Нет активного пациента."
-
-msgid "Cannot show EMR summary. No active patient."
-msgstr "Невозможно показать итоговую EMR. Нет активного пациента."
+msgid "updating an existing dynamic hint"
+msgstr "Открыть существующую хронологию"
 
-msgid "EMR Summary"
-msgstr "Итоговая EMR"
+#, fuzzy
+msgid "Deleting suppressed dynamic hint"
+msgstr "Отображение вакцин."
 
-msgid "Cannot export EMR journal. No active patient."
-msgstr "Невозможно экспортировать журнал EMR. Нет активного пациента."
+#, python-format
+msgid ""
+"Really delete the suppression of this dynamic hint ?\n"
+"\n"
+" [%s]"
+msgstr ""
 
-msgid "Save patient's EMR journal as..."
-msgstr "Сохранить журнал EMR пациента как ..."
+#, fuzzy
+msgid ""
+"\n"
+"Dynamic hints suppressed in this patient.\n"
+msgstr ""
+"\n"
+"Тэги с изображениями, зарегистрированные в GNUmed.\n"
 
-msgid "Error exporting patient EMR as chronological journal."
-msgstr "Ошибка экспорта EMR пациента как журнала хронологий."
+#, fuzzy
+msgid "Showing suppressed dynamic hints."
+msgstr "Отображение вакцин."
 
-msgid "EMR journal export"
-msgstr "Экспорт журнала EMR"
+#, fuzzy
+msgid "Rationale"
+msgstr "Реакция"
 
-#, python-format
-msgid "Successfully exported EMR as chronological journal into file [%s]."
-msgstr "EMR успешно экспортирован как журнал хронологий в файл [%s]."
+#, fuzzy
+msgid "Manage hints"
+msgstr "Списки по управлению"
 
-msgid "Cannot add tag to person. No active patient."
-msgstr "Невозможно добавить тэг для персоны. Нет активного пациента."
+#, fuzzy
+msgid "Manage automatic dynamic hints"
+msgstr "Отображение вакцин."
 
-#, python-format
-msgid "Edit the comment on tag [%s]"
-msgstr "Редактировать комментарий к тэгу [%s]"
+msgid "Cannot delete family history item."
+msgstr "Невозможно удалить пункт семейного анамнеза."
 
-msgid "Editing tag comment"
-msgstr "Редактируемый комментарий тэга"
+msgid "Family history of this patient."
+msgstr "Семейный анамнез этого пациента."
 
-msgid "Cannot export patient as GDT. No active patient."
-msgstr "Невозможно экспортировать пациента как GDT. Нет активного пациента."
+msgid "Showing family history."
+msgstr "Отображение семейного анамнеза."
 
-#, fuzzy
-msgid "Exported demographics as GDT to clipboard."
-msgstr "Демографические сведения экспортированы в файл GDT [%s]."
+msgid "Fatal"
+msgstr "Критическое"
 
-#, fuzzy
-msgid "Cannot export patient as VCARD. No active patient."
-msgstr "Невозможно экспортировать пациента как GDT. Нет активного пациента."
+msgid "Noted"
+msgstr "Отмеченное"
 
-#, fuzzy
-msgid "Exported demographics as VCARD to clipboard."
-msgstr "Демографические сведения экспортированы в файл GDT [%s]."
+msgid "Died"
+msgstr "Умершие"
 
-#, fuzzy
-msgid "Cannot export patient as XML (LinuxMedNews). No active patient."
-msgstr "Невозможно экспортировать пациента как GDT. Нет активного пациента."
+msgid "Adding family history"
+msgstr "Добавление семейного анамнеза"
 
-#, fuzzy, python-format
-msgid "Exported demographics to XML file [%s]."
-msgstr "Демографические сведения экспортированы в файл GDT [%s]."
+msgid "Editing family history"
+msgstr "Редактировани семейного анамнеза."
 
-#, python-format
-msgid "Exported demographics to GDT file [%s]."
-msgstr "Демографические сведения экспортированы в файл GDT [%s]."
+msgid ""
+"\n"
+"Please select the default drug data source from the list below.\n"
+"\n"
+"Note that to actually use it you need to have the database installed, too."
+msgstr ""
+"\n"
+"Выберите источник данных по препаратам\n"
+"по умолчанию из списка ниже.\n"
+"\n"
+"Учтите, что для его практического использования\n"
+"также необходима инсталляция базы данных."
 
-#, fuzzy, python-format
-msgid "Exported demographics to VCARD file [%s]."
-msgstr "Демографические сведения экспортированы в файл GDT [%s]."
+msgid "Configuring default drug data source"
+msgstr "Настройка источника данных по препаратам по умолчанию"
 
-msgid "Cannot add staff member. No active patient."
-msgstr "Невозможно добавить сотрудника. Нет активного пациента."
+msgid "No default drug database configured."
+msgstr "База данных по препаратам не настроена по умолчанию."
 
-msgid "Cannot delete patient. No patient active."
-msgstr "Невозможно удалить пациента. Нет активного пациента."
+msgid "There is no default drug database configured."
+msgstr "Отсутствует настройка по умолчанию для базы данных по препаратам."
 
-msgid ""
-"You have to manually close this window to finalize shutting down GNUmed."
-msgstr "Это окно можно закрыть вручную для окончательного завершения GNUmed."
+msgid "Jumping to drug database"
+msgstr "Переход к базе данных по препаратам."
 
-msgid "This is so that you can inspect the console output at your leisure."
+msgid "Cannot import drugs from IFAP into chart without chart."
 msgstr ""
-"Для того, чтобы в свободное время можно было проверить вывод на консоль."
-
-msgid "no patient"
-msgstr "нет пациента"
 
 #, python-format
-msgid "Saved screenshot to file [%s]."
-msgstr "Сохраненный скриншот в файле [%s]."
-
-msgid "GNUmed client"
-msgstr "клиент GNUmed"
+msgid "Cannot call IFAP via [%s]."
+msgstr "Невозможно вызвать IFAP через [%s]."
 
-msgid "GNUmed stdout/stderr window"
-msgstr "окно GNUmed stdout/stderr"
+#, python-format
+msgid "Cannot create IFAP <-> GNUmed transfer file [%s]."
+msgstr "Невозможно создать файл передачи IFAP <-> GNUmed [%s]."
 
-msgid "redirecting STDOUT/STDERR to this log window"
-msgstr "перенаправление STDOUT/STDERR в это регистрационное окно"
+msgid "Current medication"
+msgstr "Текущее лекарство"
 
-#, python-format
 msgid ""
-"The database account [%s] cannot be used as a\n"
-"staff member login for GNUmed. There was an\n"
-"error retrieving staff details for it.\n"
 "\n"
-"Please ask your administrator for help.\n"
+"The ATC codes as known to GNUmed.\n"
 msgstr ""
-"Невозможно использовать учетную запись базы данных [%s] как\n"
-"вход в систему для сотрудника GNUmed. Имелась\n"
-"ошибка при получении сведений по сотруднику.\n"
 "\n"
-"Для поддержки обратитесь к администратору.\n"
+"Коды ATC, известные в GNUmed.\n"
 
-msgid "Checking access permissions"
-msgstr "Проверка разрешений на права доступа"
+msgid "Showing ATC codes."
+msgstr "Отображение кодов ATC"
 
-#, python-format
-msgid "Database <%s> on <%s>"
-msgstr "База данных <%s> в <%s>"
+msgid "Choose an ATC import config file"
+msgstr "Выбрать конфигурационный файл для импорта ATC"
 
-#, python-format
-msgid "Branch \"%s\" of praxis \"%s\"\n"
-msgstr ""
+msgid "config files"
+msgstr "конфигурационные файлы"
 
-msgid "Verifying database"
-msgstr "Проверка базы данных"
+msgid "importing ATC reference data"
+msgstr "импорт справочных данных ATC"
 
-msgid "Connect"
-msgstr "Подключить"
+msgid "Successfully imported ATC reference data."
+msgstr "Справочные данные ATC успешно импортированы."
 
-msgid "Yes, connect to this database."
-msgstr "Да, подключить к этой базе данных."
+msgid "Importing ATC reference data failed."
+msgstr "Импорт справочных данных ATC дал сбой."
 
-msgid "Disconnect"
-msgstr "Отключить"
+msgid "Select an ATC (Anatomical-Therapeutic-Chemical) code."
+msgstr "Выберите код ATC (Anatomical-Therapeutic-Chemical)"
 
-msgid "No, do not connect to this database."
-msgstr "Нет, не подключать к этой базе данных."
+msgid "Cannot edit this substance. It is in use."
+msgstr "Невозможно редактировать это вещество. Оно в использовании."
 
-#, python-format
-msgid ""
-"Cannot find configuration file in any of:\n"
-"\n"
-" %s\n"
-"You may need to use the comand line option\n"
-"\n"
-"\t--conf-file=<FILE>"
-msgstr ""
-"Невозможно найти конфигурационный файл в любом:\n"
-"\n"
-"%s\n"
-"Возможно, необходимо использовать опцию командной строки\n"
-"\n"
-"\t--conf-file=<FILE>"
+msgid "Adding new consumable substance"
+msgstr "Добавление нового применяемого вещества"
 
-msgid "Checking configuration files"
-msgstr "Проверка конфигурационного файла"
+msgid "Editing consumable substance"
+msgstr "Редактировани применяемого вещества"
 
-msgid "GNUmed startup"
-msgstr "Запуск GNUmed"
+msgid "Cannot delete this substance. It is in use."
+msgstr "Невозможно удалить это вещество. Оно в использовании."
 
-#, python-format
 msgid ""
-"The currently selected database language ('%s') does\n"
-"not match the current system language ('%s').\n"
 "\n"
-"Do you want to set the database language to '%s' ?\n"
+"These are the consumable substances registered with GNUmed.\n"
 msgstr ""
-"Текущий выбранный язык базы данных ('%s')\n"
-"не соответствует текущему системному языку ('%s').\n"
 "\n"
-"Хотие установить язык базы данных на '%s' ?\n"
+"Вот зарегистрированные в GNUmed вещества для применения.\n"
 
-msgid "Checking database language settings"
-msgstr "Проверка настроек языка базы данных"
+msgid "Import"
+msgstr "Импортировать"
 
-msgid "Set"
-msgstr "Установить"
+msgid "Import consumable substances from a drug database."
+msgstr "Импорт веществ для применения из базы данных по препаратам."
 
-#, python-format
-msgid "Set your database language to [%s]."
-msgstr "Установить язык базы данных на [%s]."
+msgid "Cannot save consumable substance. Missing essential input."
+msgstr "Невозможно сохранить применяемое вещество. Пропущен основной ввод."
 
-msgid "Don't set"
-msgstr "Не устанавливать"
+#, python-format
+msgid "Cannot save consumable substance. %s"
+msgstr "Невозможно сохранить применяемое вещество. %s"
 
-msgid "Do not set your database language now."
-msgstr "Не устанавливать пока язык базы данных."
+msgid "The substance with optional strength."
+msgstr "Вещество с необязательной активностью."
 
-msgid "Remember to ignore language mismatch"
-msgstr "Запомнить для игнорирования соответствия языка"
+msgid "Cannot remove this component from the drug. It is in use."
+msgstr "Невозможно удалить этот компонент из препарата. Он в использовании."
 
-#, python-format
 msgid ""
-"Checking this will make GNUmed remember your decision\n"
-"until the system language is changed.\n"
 "\n"
-"You can also reactivate this inquiry by removing the\n"
-"corresponding \"ignore\" option from the configuration file\n"
-"\n"
-" [%s]"
+"These are the components in the drug brands known to GNUmed.\n"
 msgstr ""
-"При этой проверке GNUmed будет помнить\n"
-"ваше решение до тех пор, пока не\n"
-"изменится системный язык.\n"
-"\n"
-"Это запрос можно вызвать повторно\n"
-"удалением соответствующей \"отклоненной\"\n"
-"опции в конфигурационном файле\n"
 "\n"
-"[%s]"
+"Вот компоненты препаратов, известные GNUmed.\n"
 
-#, fuzzy
-msgid "generic activity"
-msgstr "текст дженерика"
+msgid "Showing drug brand components."
+msgstr "Отображение патентованных компонентов препаратов."
 
-msgid "Access denied"
+msgid "Adding new drug component"
+msgstr "Добавление нового компонента препарата."
+
+msgid "Editing drug component"
+msgstr "Редактировани компонента препарата"
+
+msgid "Cannot edit drug component. It is in use."
+msgstr "Невозможно редактировать компонент препарата. Он в использовании."
+
+msgid "Cannot save drug component. Invalid or missing essential input."
 msgstr ""
+"Невозможно сохранить компонент препарата. Неправильный или пропущенный "
+"основной ввод."
+
+msgid "A drug component with optional strength."
+msgstr "Компонент препарата с необязательным содержанием активного вещества."
+
+msgid "Editing drug"
+msgstr "Редактирование препаратов"
 
 #, python-format
 msgid ""
-"Your account is not set up to access this part of GNUmed:\n"
+"Cannot edit the branded drug product\n"
 "\n"
-"  [%s]"
+" \"%s\" (%s)\n"
+"\n"
+"because it is currently taken by patients.\n"
 msgstr ""
+"Невозможно редактировать патентированный препарат\n"
+"\n"
+" \"%s\" (%s)\n"
+"\n"
+"так как его в настоящее время принимают пациенты.\n"
 
-msgid "Save timeline as SVG image under..."
-msgstr ""
+msgid "Adding new drug brand"
+msgstr "Добавление нового патентированного препарата"
 
-#, fuzzy
-msgid "timeline image"
-msgstr "все файлы"
+msgid "Editing drug brand"
+msgstr "Редактирование патентированного препарата"
 
 #, fuzzy
-msgid "timeline data"
-msgstr "Нет установленны сроки для"
+msgid "Manage consumable substances"
+msgstr "Отображение веществ для применения."
 
-msgid "Cannot change notebook tabs. No active patient."
-msgstr "Невозможно изменить закладку записной книжки. Нет активного пациента."
+msgid "not in use"
+msgstr "не используются"
 
-msgid "add plugin ..."
-msgstr "добавить плагин ..."
+#, python-format
+msgid "ATC: %s\n"
+msgstr "ATC: %s\n"
 
-msgid "Cannot activate Allergy Manager. No active patient."
-msgstr "Невозможно активировать менеджер по аллергии. Нет активного пациента."
+msgid "Editing medication"
+msgstr "Редактирование лекарства"
 
-msgid "<Age>"
+#, python-format
+msgid ""
+"Cannot edit the medication\n"
+"\n"
+" \"%s\" (%s)\n"
+"\n"
+"because it is a vaccine. Please edit it\n"
+"from the vaccine management section !\n"
 msgstr ""
+"Невозможно редактировать это лекарство\n"
+"\n"
+" \"%s\" (%s)\n"
+"\n"
+"так как это вакцина. Редактируйте\n"
+"его в резделе настройки вакцин!\n"
 
-#, fuzzy
-msgid "no patient selected"
-msgstr "<не выбрана единица>"
-
-#, fuzzy, python-format
-msgid "Gender: %s (%s) - %s\n"
-msgstr "Обращения: %s (%s - %s):"
-
-#, fuzzy, python-format
-msgid "Born: %s\n"
-msgstr "Зона: %s\n"
-
-#, fuzzy, python-format
-msgid "Died: %s\n"
-msgstr "Дата:%s\n"
-
-#, fuzzy, python-format
-msgid "At age: %s\n"
-msgstr "Дата:%s\n"
-
-msgid " (date of birth and age are estimated)\n"
-msgstr " (дата рождения и возраст приблизительны)\n"
-
-#, fuzzy, python-format
-msgid "%(sex)s  %(dob)s (%(age)s today !)"
-msgstr "%s %s (%s сегодня !)"
+msgid "Deleting medication"
+msgstr "Удаление лекарства"
 
-#, fuzzy
+#, python-format
 msgid ""
+"Cannot delete the medication\n"
 "\n"
-"Today is the patient's birthday !\n"
+" \"%s\" (%s)\n"
 "\n"
+"because it is a vaccine. Please delete it\n"
+"from the vaccine management section !\n"
 msgstr ""
+"Невозможно удалить лекарство\n"
 "\n"
-"Сегодня у пациента день рождения!\n"
+" \"%s\" (%s)\n"
 "\n"
+"так как это вакцина. Удаляйте\n"
+"его в резделе настройки вакцин!\n"
 
-#, python-format
-msgid "Birthday: %s ago\n"
+msgid ""
+"\n"
+"These are the drug brands known to GNUmed.\n"
 msgstr ""
+"\n"
+"Вот патентированный препараты, известные GNUmed.\n"
 
-#, fuzzy, python-format
-msgid "Birthday: in %s\n"
-msgstr "Уведомитель дней рождения"
+msgid "Showing branded drugs."
+msgstr "Отображение патентированных препаратов."
 
-#, fuzzy, python-format
-msgid "Age: %s\n"
-msgstr "ATC: %s\n"
+msgid "Import substances and brands from a drug database."
+msgstr "Импорт веществ и патентированных препаратов из базы данных препаратов."
 
-#, python-format
-msgid "last confirmed %s\n"
-msgstr "Последний подтвержденный %s\n"
+msgid "Managing components of a drug"
+msgstr "Составление компонентов препарата."
 
 #, python-format
-msgid "Comment (%s): %%s"
-msgstr "Комментарий (%s): %%s"
+msgid ""
+"Cannot manage the components of the branded drug product\n"
+"\n"
+" \"%s\" (%s)\n"
+"\n"
+"because it is currently taken by patients.\n"
+msgstr ""
+"Невозможно составить компоненты патентованного препарата\n"
+"\n"
+" \"%s\" (%s)\n"
+"\n"
+"так как его в настоящее время принимают пациенты.\n"
 
-#, python-format
-msgid " - expires %s"
-msgstr " - срок истечения %s"
+msgid "Pick the substances which are components of this drug."
+msgstr "Выберите вещества, которые являютмя компонентами этого препарата."
+
+msgid "Components of drug"
+msgstr "Компоненты препарата"
 
 #, python-format
 msgid ""
-"Due for %s (since %s%s):\n"
-"%s%s\n"
-"Patient: %s\n"
-"Reminder by: %s"
+"Adjust the components of \"%s\"\n"
+"\n"
+"The drug must contain at least one component. Any given\n"
+"substance can only be included once per drug."
 msgstr ""
-"Подлежит для %s (с %s%s):\n"
-"%s%s\n"
-"Пациент: %s\n"
-"Напоминание через: %s"
-
-#, fuzzy
-msgid "Clinical reminder"
-msgstr "Клинические особенности"
+"Состав компонентов \"%s\"\n"
+"\n"
+"Препарат должен содержать, по крайней мере,\n"
+"один компонент. Любое предоставленное вещество\n"
+"может быть включено в препарат только однократно."
 
-#, fuzzy
-msgid "Adding automatic dynamic hint"
-msgstr "Отображение вакцин."
+msgid "Managing components of a drug ..."
+msgstr "Составление компонентов препарата ..."
 
-#, fuzzy
-msgid "Editing automatic dynamic hint"
-msgstr "Отображение вакцин."
+msgid "Cannot edit drug brand. It is in use."
+msgstr ""
+"Невозможно редактирование патентированного препарата. Он в использовании."
 
-#, fuzzy
-msgid "Deleting automatic dynamic hint"
-msgstr "Отображение вакцин."
+msgid "Checking brand data"
+msgstr "Проверка патентированного препарата"
 
 #, python-format
 msgid ""
-"Really delete this dynamic hint ?\n"
+"The brand information you entered:\n"
 "\n"
-" [%s]"
+" [%s %s]\n"
+"\n"
+"already exists as a drug product."
 msgstr ""
 
-#, fuzzy
-msgid "deleting a dynamic hint"
-msgstr "Отображение вакцин."
+msgid ""
+"You have not selected any substances\n"
+"as drug components.\n"
+"\n"
+"Without components you will not be able to\n"
+"use this drug for documenting patient care.\n"
+"\n"
+"Are you sure you want to save\n"
+"it without components ?"
+msgstr ""
+"Ни одно вещество не выбрано\n"
+"как компонент препарата.\n"
+"\n"
+"Без компонентов невозможно использовать этот\n"
+"препарат для документированного лечения пациента.\n"
+"\n"
+"Уверены, что нужно сохранить его без компонентов?"
+
+msgid "Cannot save branded drug. Invalid or missing essential input."
+msgstr ""
+"Невозможно сохранить патентированный препарат.\r\n"
+"Неправильный или пропущенный основной ввод."
 
-#, fuzzy
 msgid ""
+"The brand name of the drug.\n"
 "\n"
-"Dynamic hints registered with GNUmed.\n"
+"Note: a brand name will need to be linked to\n"
+"one or more components before it can be used,\n"
+"except in the case of fake (generic) vaccines."
 msgstr ""
+"Патентированное название препарата.\n"
 "\n"
-"Тэги с изображениями, зарегистрированные в GNUmed.\n"
+"Примечание: патентированное название\n"
+"необходимо связать с одним или более\n"
+"компонентом до возможного использования,\n"
+"кроме случаев непатентованных вакцин (дженерик)."
 
-#, fuzzy
-msgid "Showing dynamic hints."
-msgstr "Отображение вакцин."
+msgid "No EMR data loaded."
+msgstr "Данные EMR не загружены."
 
-msgid "Hint"
-msgstr "Информация"
+msgid "EMR text dump"
+msgstr "Текстовой дамп EMR"
+
+msgid "Currently there is no active patient. Cannot retrieve EMR text."
+msgstr "Нет текущего активного пациента. Невозможно восстановить текст EMR."
 
 #, fuzzy
-msgid "Browse and install automatic dynamic hints data packs"
-msgstr "Отображение и установка пакетов данных для клинической информации"
+msgid "SOAP Editor Actions:"
+msgstr "Операции с частью:"
 
-#, fuzzy, python-format
-msgid "By: %s"
-msgstr "Зона: %s\n"
+#, fuzzy
+msgid "&Sort lines"
+msgstr "Нет установленны сроки для"
 
-msgid "No entry in field <Source>."
+msgid "Sort lines by SOAP category"
 msgstr ""
 
-msgid "No entry in field <Conditions>."
+msgid "e&Xpand keyword"
+msgstr ""
+
+msgid "Expand keyword / macro"
 msgstr ""
 
 #, fuzzy
-msgid "No entry in field <Description>."
-msgstr "Ошибка печати списка лекарств."
+msgid "as &Subjective"
+msgstr "Субъективный"
 
-msgid "No entry in field <Title>."
+msgid "Set line to category \"Subjective\""
 msgstr ""
 
 #, fuzzy
-msgid "creating a new dynamic hint"
-msgstr "Отображение вакцин."
+msgid "as &Objective"
+msgstr "Объективный"
 
-#, fuzzy
-msgid "updating an existing dynamic hint"
-msgstr "Открыть существующую хронологию"
+msgid "Set line to category \"Objective\""
+msgstr ""
 
 #, fuzzy
-msgid "Deleting suppressed dynamic hint"
-msgstr "Отображение вакцин."
+msgid "as &Assessment"
+msgstr "Оценка"
 
-#, python-format
-msgid ""
-"Really delete the suppression of this dynamic hint ?\n"
-"\n"
-" [%s]"
+msgid "Set line to category \"Assessment\""
 msgstr ""
 
 #, fuzzy
-msgid ""
-"\n"
-"Dynamic hints suppressed in this patient.\n"
+msgid "as &Plan"
+msgstr "План"
+
+msgid "Set line to category \"Plan\""
 msgstr ""
-"\n"
-"Тэги с изображениями, зарегистрированные в GNUmed.\n"
 
 #, fuzzy
-msgid "Showing suppressed dynamic hints."
-msgstr "Отображение вакцин."
+msgid "as &Unspecified"
+msgstr "soap_Unspecified"
 
-#, fuzzy
-msgid "Rationale"
-msgstr "Реакция"
+msgid "Set line to category \"unspecified\""
+msgstr ""
 
 #, fuzzy
-msgid "Manage hints"
-msgstr "Списки по управлению"
+msgid "as ad&Ministrative"
+msgstr "Административный"
 
-#, fuzzy
-msgid "Manage automatic dynamic hints"
-msgstr "Отображение вакцин."
+msgid "Set line to category \"administrative\""
+msgstr ""
 
-msgid "Cannot delete family history item."
-msgstr "Невозможно удалить пункт семейного анамнеза."
+#, fuzzy
+msgid "→ &Clipboard"
+msgstr "Экспорт в &clipboard"
 
-msgid "Family history of this patient."
-msgstr "Семейный анамнез этого пациента."
+#, fuzzy
+msgid "Copy line to clipboard"
+msgstr "Невозможно скопировать в буфер."
 
-msgid "Showing family history."
-msgstr "Отображение семейного анамнеза."
+#, fuzzy
+msgid "→ +Clipboard+"
+msgstr "Экспорт в &clipboard"
 
-msgid "Fatal"
-msgstr "Критическое"
+#, fuzzy
+msgid "Add line to clipboard"
+msgstr "Экспорт в &clipboard"
 
-msgid "Noted"
-msgstr "Отмеченное"
+#, fuzzy
+msgid "Copy content to clipboard"
+msgstr "Невозможно скопировать в буфер."
 
-msgid "Died"
-msgstr "Умершие"
+#, fuzzy
+msgid "Add content to clipboard"
+msgstr "Экспорт в &clipboard"
 
-msgid "Adding family history"
-msgstr "Добавление семейного анамнеза"
+#, fuzzy
+msgid "Copy selection to clipboard"
+msgstr "Невозможно скопировать в буфер."
 
-msgid "Editing family history"
-msgstr "Редактировани семейного анамнеза."
+#, fuzzy
+msgid "Add selection to clipboard"
+msgstr "Экспорт в &clipboard"
 
-msgid "No EMR data loaded."
-msgstr "Данные EMR не загружены."
+#, fuzzy
+msgid "&Line ..."
+msgstr "Вакцина ..."
 
-msgid "EMR text dump"
-msgstr "Текстовой дамп EMR"
+#, fuzzy
+msgid "&Text ..."
+msgstr "&Users ..."
 
-msgid "Currently there is no active patient. Cannot retrieve EMR text."
-msgstr "Нет текущего активного пациента. Невозможно восстановить текст EMR."
+#, fuzzy
+msgid "&Region ..."
+msgstr "Регион"
 
 #, fuzzy
 msgid "Show HL7 file:"
@@ -18278,6 +19271,10 @@ msgstr ""
 msgid "Extracting HL7 from XML file"
 msgstr "Извлечение файлов из папки [%s] ..."
 
+#, python-format
+msgid "Unwrapped HL7 into [%s] from [%s]."
+msgstr ""
+
 msgid "Select HL7 file for staging:"
 msgstr ""
 
@@ -18311,6 +19308,10 @@ msgstr ""
 " [%s]\n"
 "\n"
 
+#, fuzzy, python-format
+msgid "Staged HL7 from [%s]."
+msgstr "Загружает данные шаблона из файла."
+
 #, fuzzy
 msgid "Importing HL7 data"
 msgstr "импортирование ссылочных данных LOINC"
@@ -18361,10 +19362,6 @@ msgstr ""
 msgid "Identification"
 msgstr "Обозначение"
 
-#, fuzzy
-msgid "Show"
-msgstr "Показать:"
-
 msgid "Show formatted HL7"
 msgstr ""
 
@@ -18414,6 +19411,20 @@ msgid "Plot current selection"
 msgstr "Текущее лекарство"
 
 #, fuzzy
+msgid ""
+"Select the measurements panel to show in the top pane for continuous "
+"monitoring."
+msgstr "Выбирите шаблон для вывода списка лекарств."
+
+#, fuzzy
+msgid "Lab panel"
+msgstr "Списки по управлению"
+
+#, fuzzy
+msgid "Configuring continuous monitoring measurements panel"
+msgstr "Редактирование типа исследования"
+
+#, fuzzy
 msgid "No default Gnuplot script template selected."
 msgstr "Не выбран шаблон документа."
 
@@ -18439,13 +19450,28 @@ msgstr "Невозможно загрузить шаблон для списка
 msgid "Cannot plot without a plot script."
 msgstr "Невозможно подготовить без сценария подготовки."
 
-#, fuzzy
-msgid "Time"
-msgstr "Время:"
-
 msgid "Result"
 msgstr "Результат"
 
+msgid "Perform on selected results:"
+msgstr "Выполнить по выбранным результатам:"
+
+msgid "Review and &sign"
+msgstr "Проверка и &sign"
+
+msgid "Export to &file"
+msgstr "Экспорт в &file"
+
+msgid "Export to &clipboard"
+msgstr "Экспорт в &clipboard"
+
+msgid "Panels"
+msgstr ""
+
+#, fuzzy
+msgid "List"
+msgstr "Список ожидания"
+
 msgid ""
 "lab_grid_date_format::%Y\n"
 "%b %d"
@@ -18541,18 +19567,6 @@ msgstr ""
 msgid "All: by &Day"
 msgstr ""
 
-msgid "Perform on selected results:"
-msgstr "Выполнить по выбранным результатам:"
-
-msgid "Review and &sign"
-msgstr "Проверка и &sign"
-
-msgid "Export to &file"
-msgstr "Экспорт в &file"
-
-msgid "Export to &clipboard"
-msgstr "Экспорт в &clipboard"
-
 #, python-format
 msgid "%s results selected. Too many to list individually."
 msgstr "Выбрано %s результатов. Слишком много для отдельного списка."
@@ -18772,6 +19786,10 @@ msgstr ""
 msgid "EMR Actions:"
 msgstr "Операции с EMR:"
 
+#, fuzzy
+msgid "Print EMR"
+msgstr "&Print"
+
 msgid "Create health issue"
 msgstr "Создать заболевание"
 
@@ -18934,16 +19952,43 @@ msgstr "Обзор"
 msgid "&New notes %s"
 msgstr "&Notes"
 
+msgid "Find text in EMR Journal"
+msgstr ""
+
+#, fuzzy
+msgid "Modified"
+msgstr "измененная запись"
+
+#, fuzzy
+msgid "Clinical time"
+msgstr "Медицинские записи"
+
+msgid "Who / When"
+msgstr ""
+
+#, python-format
 msgid ""
-"An error occurred while retrieving the EMR\n"
-"in journal form for the active patient.\n"
+"Chart entry: %s       [#%s in %s]\n"
+" Modified: %s by %s (%s rev %s)\n"
 "\n"
-"Please check the log file for details."
+"Health issue: %s%s\n"
+"Episode: %s%s\n"
+"Encounter: %s%s"
 msgstr ""
-"Во время восстановления EMR произошла ошибка\n"
-"при формировании журнала для активного пациента.\n"
+
+#, python-format
+msgid ""
+"%s\n"
 "\n"
-"Для подробной информации проверьте лог-файл."
+"                        rev %s (%s) by %s in <%s>"
+msgstr ""
+
+#, python-format
+msgid ""
+"%s\n"
+"%s\n"
+"%s"
+msgstr ""
 
 msgid "Editing tag"
 msgstr "Тэг редактирования"
@@ -19093,18 +20138,17 @@ msgstr ""
 "\n"
 "%s\n"
 
-msgid "This patient DID receive care."
+#, fuzzy
+msgid "This patient DID receive care here."
 msgstr "Этот пациент ПОЛУЧИЛ лечение."
 
-msgid "This person did NOT receive care."
+#, fuzzy
+msgid "This person did NOT receive care here."
 msgstr "Этот пациент НЕ ПОЛУЧИЛ лечение."
 
 msgid "Disabling person"
 msgstr "Удаление персоны"
 
-msgid "Disabling patient"
-msgstr "Удаление пациента"
-
 msgid "Type or select a last name (family name/surname)."
 msgstr "Введите или выберите последнее имя (фамилия)"
 
@@ -19459,6 +20503,9 @@ msgstr ""
 "\n"
 "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
 
+msgid "Connecting to backend"
+msgstr "Подключение к серверному приложению"
+
 #, fuzzy, python-format
 msgid ""
 "Unable to connect to database:\n"
@@ -19714,9 +20761,6 @@ msgstr "Организация"
 msgid "Office"
 msgstr "Офис"
 
-msgid "State"
-msgstr "Штат/область"
-
 msgid "Zip"
 msgstr "Почтовых индекс"
 
@@ -19775,8 +20819,8 @@ msgid "EMR Timeline"
 msgstr "Дерево EMR"
 
 #, fuzzy
-msgid "Show &Timeline"
-msgstr "Показать &ExamplePlugin"
+msgid "EMR &Timeline"
+msgstr "Дерево EMR"
 
 msgid "Overview"
 msgstr "Обзор"
@@ -19802,11 +20846,13 @@ msgstr "SimpleNotes"
 msgid "&SimpleNotes"
 msgstr "&SimpleNotes"
 
-msgid "EMR tree"
+#, fuzzy
+msgid "EMR Tree"
 msgstr "Дерево EMR"
 
-msgid "EMR &Tree (topical)"
-msgstr "&Tree EMR (актуальные)"
+#, fuzzy
+msgid "EMR &Tree"
+msgstr "Дерево EMR"
 
 #, fuzzy
 msgid "Print Manager"
@@ -19816,6 +20862,14 @@ msgstr "Печать части"
 msgid "&Print Manager"
 msgstr "&Управление"
 
+#, fuzzy
+msgid "EMR Journal"
+msgstr "Журнал EMR"
+
+#, fuzzy
+msgid "EMR &Journal (list)"
+msgstr "EMR &Journal (хронологический)"
+
 msgid "Appointments"
 msgstr "Должности"
 
@@ -19828,6 +20882,12 @@ msgstr "лабораторный журнал"
 msgid "Show &lab journal"
 msgstr "Показать &lab журнал"
 
+msgid "PACS"
+msgstr ""
+
+msgid "&PACS"
+msgstr ""
+
 msgid "Cardiac Devices"
 msgstr "Кардиостимуляторы"
 
@@ -19903,11 +20963,9 @@ msgstr "Руководство"
 msgid "User &manual (local)"
 msgstr "&manual пользователя (локальное)"
 
-msgid "EMR journal"
-msgstr "Журнал EMR"
-
-msgid "EMR &Journal (chronological)"
-msgstr "EMR &Journal (хронологический)"
+#, fuzzy
+msgid "EMR &Journal (text)"
+msgstr "Экспорт журнала EMR"
 
 msgid "Demographics"
 msgstr "Демографические сведения"
@@ -20078,6 +21136,10 @@ msgstr "Модуль шаблонов"
 msgid "Show &ExamplePlugin"
 msgstr "Показать &ExamplePlugin"
 
+#, fuzzy
+msgid "Find text"
+msgstr "Вакцина"
+
 msgid "gm_ctl_client: starting slave GNUmed client"
 msgstr "gm_ctl_client: запуск подчиненного клиента GNUmed"
 
@@ -20112,6 +21174,293 @@ msgstr "Отменить"
 msgid "Abort and do NOT connect to GNUmed."
 msgstr "Отменить и НЕ подключаться к GNUmed."
 
+#, fuzzy
+#~ msgid ""
+#~ "Health issue: %s%s%s (%s versions)\n"
+#~ "\n"
+#~ msgstr "заболевание: %s"
+
+#, fuzzy
+#~ msgid ""
+#~ "Episode: %s%s%s (%s versions)\n"
+#~ "\n"
+#~ msgstr "Эпизод:%s\n"
+
+#, fuzzy
+#~ msgid ""
+#~ "Encounter: %s%s%s (%s versions)\n"
+#~ "\n"
+#~ msgstr "Обращения: %s (%s - %s):"
+
+#, fuzzy
+#~ msgid ""
+#~ "\n"
+#~ "current values:\n"
+#~ msgstr "<текущая установленная аллергия>"
+
+#~ msgid "soap_S"
+#~ msgstr "soap_S"
+
+#~ msgid "soap_O"
+#~ msgstr "soap_O"
+
+#~ msgid "soap_A"
+#~ msgstr "soap_A"
+
+#~ msgid "soap_P"
+#~ msgstr "soap_P"
+
+#, fuzzy
+#~ msgid "soap_U"
+#~ msgstr "soap_S"
+
+#~ msgid "soap_Subjective"
+#~ msgstr "soap_Subjective"
+
+#~ msgid "soap_Objective"
+#~ msgstr "soap_Objective"
+
+#~ msgid "soap_Assessment"
+#~ msgstr "soap_Assessment"
+
+#~ msgid "soap_Plan"
+#~ msgstr "soap_Plan"
+
+#~ msgid "soap_Unspecified"
+#~ msgstr "soap_Unspecified"
+
+#~ msgid "soap_Administrative"
+#~ msgstr "soap_Administrative"
+
+#, fuzzy
+#~ msgid "Row fields (as multiple lines)"
+#~ msgstr "Не переформатировать текст"
+
+#, fuzzy
+#~ msgid "Search in list"
+#~ msgstr "Наличие поиска"
+
+#, fuzzy
+#~ msgid "Show &Timeline"
+#~ msgstr "Показать &ExamplePlugin"
+
+#~ msgid "EMR &Tree (topical)"
+#~ msgstr "&Tree EMR (актуальные)"
+
+#~ msgid "Parts"
+#~ msgstr "Части"
+
+#~ msgid "You must select a part before you can delete it."
+#~ msgstr "Перед удалением части ее необходимо выбрать."
+
+#~ msgid "deleting part"
+#~ msgstr "удаляемая часть"
+
+#~ msgid ""
+#~ "The part has successfully been removed from the document.\n"
+#~ "\n"
+#~ "Do you also want to permanently delete the file\n"
+#~ "\n"
+#~ " [%s]\n"
+#~ "\n"
+#~ "from which this document part was loaded ?\n"
+#~ "\n"
+#~ "If it is a temporary file for a page you just scanned\n"
+#~ "this makes a lot of sense. In other cases you may not\n"
+#~ "want to lose the file.\n"
+#~ "\n"
+#~ "Pressing [YES] will permanently remove the file\n"
+#~ "from your computer.\n"
+#~ msgstr ""
+#~ "Часть была успешно удалена из документа.\n"
+#~ "\n"
+#~ "Хотите также навсегда удалить файл\n"
+#~ " [%s]\n"
+#~ ", из которого была загружена часть этого документа?\n"
+#~ "\n"
+#~ "Если это просто временный файл для сканированной\n"
+#~ "страницы, тогда удаление имеет смысл. В других\n"
+#~ "случаях нежелательно терять этот файл.\n"
+#~ "\n"
+#~ "Нажатие [YES] окончательно удалит этот файл\n"
+#~ "с вашего компьютера.\n"
+
+#~ msgid "Removing document part"
+#~ msgstr "Удаляемая часть документа"
+
+#~ msgid ""
+#~ "Cannot delete part in file [%s].\n"
+#~ "\n"
+#~ "You may not have write access to it."
+#~ msgstr ""
+#~ "Невозможно удалить часть в файле [%s].\n"
+#~ "\n"
+#~ "Нет права доступа на запись к нему."
+
+#~ msgid "Cannot update document metadata."
+#~ msgstr "Невозможно обновление метаданных документа."
+
+#~ msgid "Disabling patient"
+#~ msgstr "Удаление пациента"
+
+#, fuzzy
+#~ msgid "&Unknown"
+#~ msgstr "Неизвестно"
+
+#, fuzzy
+#~ msgid "When was smoking status last confirmed (mostly \"today\") ?"
+#~ msgstr "Когда установленная аллергия была подтверждена последний раз."
+
+#, fuzzy
+#~ msgid "Last confirmed: %s%s"
+#~ msgstr "Ранее подтвержденная"
+
+#~ msgid "Duration / Until"
+#~ msgstr "Продолжительность / до"
+
+#, fuzzy
+#~ msgid "Smoking status"
+#~ msgstr "статус"
+
+#~ msgid "State"
+#~ msgstr "Штат/область"
+
+#~ msgid ""
+#~ "Cannot connect to configuration database with:\n"
+#~ "\n"
+#~ "[%s]"
+#~ msgstr ""
+#~ "Невозможно подключить к конфигурационной базе данных с:\n"
+#~ "\n"
+#~ "[%s]"
+
+#~ msgid ""
+#~ "Cannot connect to database with:\n"
+#~ "\n"
+#~ "[%s]"
+#~ msgstr ""
+#~ "Невозможно подключить к базе данных с:\n"
+#~ "\n"
+#~ "[%s]"
+
+#~ msgid "No product information available."
+#~ msgstr "Не доступна информация о продукте"
+
+#~ msgid ""
+#~ "Unable to connect to database:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Are you sure you have got a local database installed ?\n"
+#~ "\n"
+#~ "Please retry with proper credentials or cancel.\n"
+#~ "\n"
+#~ "You may also need to check the PostgreSQL client\n"
+#~ "authentication configuration in pg_hba.conf. For\n"
+#~ "details see:\n"
+#~ "\n"
+#~ "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
+#~ msgstr ""
+#~ "Невозможно подключиться к базе данных:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Уверены, что локальная база данных установлена?\n"
+#~ "\n"
+#~ "Повторите попытку, указав точную информацию или отмените.\n"
+#~ "\n"
+#~ "Возможно, также необходимо проверить конфигурацию\n"
+#~ "проверки клиентов PostgreSQL в файле pg_hba.conf.\n"
+#~ "Подробнее см.:\n"
+#~ "\n"
+#~ "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
+
+#~ msgid ""
+#~ "Unable to connect to database:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Please retry with proper credentials or cancel.\n"
+#~ "\n"
+#~ "You may also need to check the PostgreSQL client\n"
+#~ "authentication configuration in pg_hba.conf. For\n"
+#~ "details see:\n"
+#~ "\n"
+#~ "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
+#~ msgstr ""
+#~ "Невозможно подключиться к базе данных:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Повторите попытку, указав точную информацию или отмените.\n"
+#~ "\n"
+#~ "Возможно, также необходимо проверить настройку\n"
+#~ "идентификации клиентов PostgreSQL в файле pg_hba.conf.\n"
+#~ "Подробнее см.:\n"
+#~ "\n"
+#~ "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
+
+#~ msgid ""
+#~ "Unable to connect to database:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Please retry another backend / user / password combination !\n"
+#~ msgstr ""
+#~ "Невозможно подключиться к базе данных:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Попробуйте другую комбинацию серверное приложение/пользователь/пароль!\n"
+
+#~ msgid "Show part"
+#~ msgstr "Показать часть"
+
+#~ msgid "You must select a part before you can view it."
+#~ msgstr "Перед просмотром части ее необходимо выбрать"
+
+#~ msgid "Journal"
+#~ msgstr "Журнал"
+
+#~ msgid ""
+#~ "An error occurred while retrieving the EMR\n"
+#~ "in journal form for the active patient.\n"
+#~ "\n"
+#~ "Please check the log file for details."
+#~ msgstr ""
+#~ "Во время восстановления EMR произошла ошибка\n"
+#~ "при формировании журнала для активного пациента.\n"
+#~ "\n"
+#~ "Для подробной информации проверьте лог-файл."
+
+#, fuzzy
+#~ msgid ""
+#~ "\n"
+#~ "Select the measurements panel to show in the top pane.\n"
+#~ msgstr "Выбирите шаблон для вывода списка лекарств."
+
+#~ msgid "Brand by component"
+#~ msgstr "Марка компонента"
+
+#~ msgid "Unbranded substance"
+#~ msgstr "Непатентованное вещество"
+
+#~ msgid "The active ingredients of this brand."
+#~ msgstr "Действующее вещество этой марки."
+
+#~ msgid ""
+#~ "The non-branded medication or non-medication substance, with optional "
+#~ "strength."
+#~ msgstr ""
+#~ "Незарегистрированное лекарство или нелекарственное вещество, с "
+#~ "необязательной дозировкой."
+
+#~ msgid "Sent"
+#~ msgstr "Отправить"
+
+#~ msgid "Inbox Message Actions:"
+#~ msgstr "Действия сообщений в почтовом ящике"
+
 #~ msgid "Province"
 #~ msgstr "Область"
 
@@ -20234,10 +21583,6 @@ msgstr "Отменить и НЕ подключаться к GNUmed."
 #~ msgstr "%s%7s %s:%s (%s часть(и)%s)"
 
 #, fuzzy
-#~ msgid "Clinical hint"
-#~ msgstr "Клинический"
-
-#, fuzzy
 #~ msgid "More info"
 #~ msgstr "Информация об улице"
 
@@ -20270,10 +21615,6 @@ msgstr "Отменить и НЕ подключаться к GNUmed."
 #~ msgstr "Лог-файлы"
 
 #, fuzzy
-#~ msgid "Check here for printing."
-#~ msgstr "Настройка страницы для печати"
-
-#, fuzzy
 #~ msgid "Print immediately without further ado."
 #~ msgstr "Удаляет немедленно без предварительного редактирования."
 
@@ -20305,10 +21646,6 @@ msgstr "Отменить и НЕ подключаться к GNUmed."
 #~ msgstr "&Sign как:"
 
 #, fuzzy
-#~ msgid "file: %s (%s/)"
-#~ msgstr "работа: %s"
-
-#, fuzzy
 #~ msgid "Switching clinical hint activation"
 #~ msgstr "Редактирование пребывания в стационаре"
 
@@ -20446,9 +21783,6 @@ msgstr "Отменить и НЕ подключаться к GNUmed."
 #~ msgid "SQL: %s"
 #~ msgstr "SQL: %s"
 
-#~ msgid "cannot connect to service [%s]"
-#~ msgstr "Невозможно подключить к службе [%s]"
-
 #~ msgid "When was this substance started to be consumed."
 #~ msgstr "Когда был начат прием этого вещества."
 
@@ -20864,12 +22198,6 @@ msgstr "Отменить и НЕ подключаться к GNUmed."
 #~ msgid "Details about %s (%s)%s\n"
 #~ msgstr "Сведения о %s (%s)%s\n"
 
-#~ msgid ""
-#~ "Measurement details:                                               \n"
-#~ msgstr ""
-#~ "Сведения об\n"
-#~ "исследовании:                                               \n"
-
 #~ msgid "Amount per dose: %s%s"
 #~ msgstr "Содержание в дозе: %s%s"
 
@@ -20917,9 +22245,6 @@ msgstr "Отменить и НЕ подключаться к GNUmed."
 #~ msgid " %s hospital stays"
 #~ msgstr " %s пребываний в стационаре"
 
-#~ msgid " Type: %s"
-#~ msgstr " Введите: %s"
-
 #~ msgid "Hospital stays: %s"
 #~ msgstr "Находится в стационаре: %s"
 
@@ -21218,6 +22543,3 @@ msgstr "Отменить и НЕ подключаться к GNUmed."
 
 #~ msgid "<--GI-->"
 #~ msgstr "<--GI-->"
-
-#~ msgid "Other:"
-#~ msgstr "Другой:"
diff --git a/client/po/ru_RU-gnumed.mo b/client/po/ru_RU-gnumed.mo
index c473fce..64d3316 100644
Binary files a/client/po/ru_RU-gnumed.mo and b/client/po/ru_RU-gnumed.mo differ
diff --git a/client/po/ru_RU.po b/client/po/ru_RU.po
index 208f103..092b94b 100644
--- a/client/po/ru_RU.po
+++ b/client/po/ru_RU.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gnumed\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-12-26 20:29+0100\n"
+"POT-Creation-Date: 2016-03-17 16:27+0100\n"
 "PO-Revision-Date: 2012-05-30 18:43+0000\n"
 "Last-Translator: YvLy <Unknown>\n"
 "Language-Team: Russian <ru at li.org>\n"
@@ -1653,10 +1653,22 @@ msgstr ""
 "Запрошенная помощь\n"
 "--------------"
 
+#, fuzzy, python-format
+msgid "Revision #%s"
+msgstr "Проверки"
+
 #, python-format
 msgid "[%s:%s]: row not updated (nothing returned), row in use ?"
 msgstr "[%s:%s]: строка не обновлена (ничего не возвращено), она используется?"
 
+#, fuzzy, python-format
+msgid "<%s(.bat)> not found"
+msgstr "pgAdmin III не найден."
+
+#, fuzzy, python-format
+msgid "problem with <%s>"
+msgstr "Список проблем"
+
 #, python-format
 msgid "[%s] is not a readable file"
 msgstr "[%s] нечитаемый файл"
@@ -1693,28 +1705,9 @@ msgstr "1 байт"
 msgid "%s Bytes"
 msgstr "%s байты"
 
-#, python-format
-msgid ""
-"Cannot connect to configuration database with:\n"
-"\n"
-"[%s]"
-msgstr ""
-"Не удалось подключить к конфигурационной базе данных с:\n"
-"\n"
-"[%s]"
-
-#, python-format
-msgid ""
-"Cannot connect to database with:\n"
-"\n"
-"[%s]"
-msgstr ""
-"Не удалось подключить к базе данных с:\n"
-"\n"
-"[%s]"
-
-msgid "No product information available."
-msgstr "Не доступна информация о продукте"
+#, fuzzy
+msgid "<type>"
+msgstr "тип"
 
 #, python-format
 msgid ""
@@ -2071,106 +2064,6 @@ msgstr " опция [%s]: %s"
 msgid "  risk: %s"
 msgstr "  риск: %s"
 
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Are you sure you have got a local database installed ?\n"
-"\n"
-"Please retry with proper credentials or cancel.\n"
-"\n"
-"You may also need to check the PostgreSQL client\n"
-"authentication configuration in pg_hba.conf. For\n"
-"details see:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-msgstr ""
-"Не удалось подключиться к базе данных:\n"
-"\n"
-"%s\n"
-"\n"
-"Уверены, что локальная база данных установлена?\n"
-"\n"
-"Повторите попытку, указав точную информацию или отмените.\n"
-"\n"
-"Возможно, также необходимо проверить настройку\n"
-"идентификации клиентов PostgreSQL в файле pg_hba.conf.\n"
-"Подробнее см.:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Please retry with proper credentials or cancel.\n"
-"\n"
-"You may also need to check the PostgreSQL client\n"
-"authentication configuration in pg_hba.conf. For\n"
-"details see:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-msgstr ""
-"Не удалось подключиться к базе данных:\n"
-"\n"
-"%s\n"
-"\n"
-"Повторите попытку, указав точную информацию или отмените.\n"
-"\n"
-"Возможно, также необходимо проверить настройку\n"
-"идентификации клиентов PostgreSQL в файле pg_hba.conf.\n"
-"Подробнее см.:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-
-msgid "Connecting to backend"
-msgstr "Подключение к серверной СУБД"
-
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Please retry another backend / user / password combination !\n"
-msgstr ""
-"Не удалось подключиться к базе данных:\n"
-"\n"
-"%s\n"
-"\n"
-"Попробуйте другую комбинацию серверная СУБД/пользователь/пароль !\n"
-
-msgid "programmer forgot to specify error message"
-msgstr "программист забыл указать сообщение об ошибке"
-
-msgid ""
-"\n"
-"\n"
-"Please consult the error log for all the gory details !"
-msgstr ""
-"\n"
-"\n"
-"Обратитесь к журналу ошибок для уточнения всех этих подробностей!"
-
-msgid "generic error message"
-msgstr "общее сообщение об ошибке"
-
-msgid "programmer forgot to specify info message"
-msgstr "программист забыл указать информационное сообщение"
-
-msgid "generic info message"
-msgstr "общее информационное сообщение"
-
-msgid "programmer forgot to specify warning"
-msgstr "программист забыл указать предупреждение"
-
-msgid "generic warning message"
-msgstr "общее предупреждающее сообщение"
-
 msgid "no hook specified, please report bug"
 msgstr "Не указан обработчик прерываний, сообщите об ошибке"
 
@@ -2529,6 +2422,34 @@ msgstr "Сортировать по:"
 msgid "Include:"
 msgstr "Включить:"
 
+#, fuzzy
+msgid "&Search"
+msgstr "Найти"
+
+msgid "Suggest"
+msgstr ""
+
+msgid "Set"
+msgstr "Установить"
+
+msgid "dialog_1"
+msgstr ""
+
+msgid "Search patients in Orthanc DICOM store."
+msgstr ""
+
+#, fuzzy
+msgid "Suggest a patient ID based on the active patient."
+msgstr "Запустите новое обращение для активного пациента."
+
+#, fuzzy
+msgid "Search term:"
+msgstr "Ввод условия для писка:"
+
+#, fuzzy
+msgid "New patient ID:"
+msgstr "внутренний ID пациента"
+
 msgid "Your review"
 msgstr "Ваше заключение"
 
@@ -2920,6 +2841,107 @@ msgstr "Вещество"
 msgid "Amount"
 msgstr "Количество"
 
+#, fuzzy
+msgid "&Connect"
+msgstr "Подключить"
+
+#, fuzzy
+msgid "&Browse"
+msgstr "Обзор"
+
+#, fuzzy
+msgid "<not connected>"
+msgstr "Потеря подключения"
+
+#, fuzzy
+msgid "Browse all"
+msgstr "Обзор"
+
+#, fuzzy
+msgid "Export all"
+msgstr "Экспорт всех частей"
+
+msgid "Browse"
+msgstr "Обзор"
+
+msgid "Export"
+msgstr "Экспорт"
+
+#, fuzzy
+msgid "Upload"
+msgstr "Перезагрузить"
+
+#, fuzzy
+msgid "Enter the PACS host address."
+msgstr "Введите номер дома для этого адреса."
+
+#, fuzzy
+msgid "Enter the PACS port."
+msgstr "Очистить примечание SOAP."
+
+#, fuzzy
+msgid "Enter the PACS user."
+msgstr "Введите количество вещества."
+
+#, fuzzy
+msgid "Enter the PACS password. It will not be shown."
+msgstr "Введите НОВЫЙ пароль для владельца базы данных GNUmed."
+
+#, fuzzy
+msgid "Connect to PACS."
+msgstr "Подключение к GNUmed"
+
+msgid "Browse PACS at top level."
+msgstr ""
+
+msgid "Modify some of Orthanc content (such as patient IDs)."
+msgstr ""
+
+#, fuzzy
+msgid "Browse overview of studies for this patient."
+msgstr "Отображает счета для этого пациента."
+
+#, fuzzy
+msgid "Copy all studies into export area."
+msgstr "Активирование пациента из  полученного списка"
+
+#, fuzzy
+msgid "Browse topmost selected study."
+msgstr "Изменить выбранное заболевание."
+
+#, fuzzy
+msgid "Copy selected studies into export area."
+msgstr "Активирование пациента из  полученного списка"
+
+#, fuzzy
+msgid "Save selected studies to disk."
+msgstr "Перемещает выбранный пункт слева направо."
+
+msgid ""
+"Upload DICOM files from a directory, recursively, into the Orthanc PACS\n"
+"\n"
+"The currently active patient does not matter. Orthanc will associate "
+"uploaded files with the patient found within the DICOM metadata. It will "
+"create new patients as needed."
+msgstr ""
+
+msgid "Host:"
+msgstr ""
+
+msgid "Port:"
+msgstr ""
+
+#, fuzzy
+msgid "User:"
+msgstr "Пользователь"
+
+msgid "Password"
+msgstr "Пароль"
+
+#, fuzzy
+msgid "Selected studies:"
+msgstr "Выбор пациента"
+
 msgid "Fake brand"
 msgstr "Непатентованный препарат"
 
@@ -3293,9 +3315,6 @@ msgstr "общее сообщение об ошибке"
 msgid "&Load"
 msgstr "&Загрузить"
 
-msgid "Export"
-msgstr "Экспорт"
-
 msgid "A long, descriptive name for this form template."
 msgstr "Длинное описательное имя для этой формы шаблона."
 
@@ -3393,15 +3412,13 @@ msgstr "&clinically значимо"
 msgid "Document Properties"
 msgstr "Свойства документа"
 
-msgid "Show part"
-msgstr "Показать часть"
+#, fuzzy
+msgid "Show"
+msgstr "Показать:"
 
 msgid "Remove part"
 msgstr "Удалить часть"
 
-msgid "Parts"
-msgstr "Части"
-
 msgid "Discard"
 msgstr "Отклонить"
 
@@ -3438,6 +3455,10 @@ msgstr ""
 msgid "Required: The primary episode this document is to be listed under."
 msgstr "Обязательно: основной эпизод этого документа вносится ниже."
 
+#, fuzzy
+msgid "Optional: The organization (unit) this document originated from."
+msgstr "Выберите единицу организации."
+
 msgid ""
 "Optional: A short comment identifying the document. Good comments give an "
 "idea of the content and source of the document."
@@ -3473,6 +3494,9 @@ msgstr ""
 "Предоставляет ли этот документ выводы о клинической значимости. Учтите, что "
 "вывод и о норме, и об отклонении от нормы может быть значимым."
 
+msgid "Optional: A free-text document description."
+msgstr "Нобязательно: свободно-текстовое описание документа."
+
 msgid "This field lists the parts belonging to the current document."
 msgstr "Это поле перечисляет части текущего документа."
 
@@ -3486,9 +3510,6 @@ msgstr ""
 "Удаление части, выбранной в списке выше. Перед физическим удалением с диска "
 "будет запрошено подтверждение."
 
-msgid "Optional: A free-text document description."
-msgstr "Нобязательно: свободно-текстовое описание документа."
-
 msgid "Save finished document."
 msgstr "Сохраняет окончательный документ."
 
@@ -3504,6 +3525,10 @@ msgstr "Дата создания документа:"
 msgid "Associate to episode:"
 msgstr "Объединить с эпизодом:"
 
+#, fuzzy
+msgid "Document source:"
+msgstr "Документы:"
+
 msgid "Comment / Identification:"
 msgstr "Комментарий или идентификация:"
 
@@ -3710,8 +3735,9 @@ msgstr "Показывает все выбранные в вашем почто
 msgid "Messages:"
 msgstr "Сообщение"
 
-msgid "Only:"
-msgstr ""
+#, fuzzy
+msgid "Limit to:"
+msgstr "(ограничить последним:"
 
 msgid "&Myself … or:"
 msgstr "&Myself ... или:"
@@ -3830,12 +3856,13 @@ msgstr "Завершение"
 msgid "Purpose"
 msgstr "Цель"
 
+#, fuzzy
+msgid "Please supply your email address here !"
+msgstr "<Вставьте здесь свой адрес email!>"
+
 msgid "Details"
 msgstr "Сведения"
 
-msgid "<Please supply your email address here !>"
-msgstr "<Вставьте здесь свой адрес email!>"
-
 msgid "Keep running"
 msgstr "Запуск  ведения"
 
@@ -3858,10 +3885,13 @@ msgstr ""
 "Введите любые дополнительные данные или комментарии, которые хотите "
 "предоставить, например, что вы готовы сделать."
 
+#, fuzzy
 msgid ""
-"Please enter your email address so we can provide feedback directly to you. "
-"Otherwise, feedback will be given on the GNUmed mailing list (http://lists."
-"gnu.org/mailman/listinfo/gnumed-bugs)."
+"Please enter your email address so we can provide help to you directly.\n"
+"\n"
+"Otherwise, feedback can be given on the GNUmed mailing list (http://lists."
+"gnu.org/mailman/listinfo/gnumed-bugs) ONLY to which you will then have to "
+"subscribe."
 msgstr ""
 "Введите свой email адрес для обратной связи. Иначе, она будет через список "
 "рассылки GNUmed (http://lists.gnu.org/mailman/listinfo/gnumed-bugs)."
@@ -4019,9 +4049,6 @@ msgstr "Пользовательские параметры:"
 msgid "Account"
 msgstr "Учетная запись"
 
-msgid "Password"
-msgstr "Пароль"
-
 msgid "Password, again"
 msgstr "Повторите пароль"
 
@@ -4584,8 +4611,9 @@ msgstr "Изменить свойства документа"
 msgid "Acquire images from image source (scanner, ...)."
 msgstr ""
 
-msgid "Acquire images or text from the clipboard."
-msgstr ""
+#, fuzzy
+msgid "Acquire file or text from the clipboard."
+msgstr "Удаление выбранного пункта(в) из списка."
 
 #, fuzzy
 msgid "Remove the selected documents."
@@ -4750,7 +4778,7 @@ msgid ""
 "- the result list will be artificially limited to the first 1000 rows\n"
 "- you can include a column named \"pk_patient\" to make the result rows "
 "activate the corresponding patient on double-clicking\n"
-"- by inserting $<ID_active_patient>$ you can access the patient ID of the "
+"- by inserting $<ID_ACTIVE_PATIENT>$ you can access the patient ID of the "
 "patient active at the time of running the query"
 msgstr ""
 "Введите здесь команды SQL для запуска. Не имеет значение, вводите или нет "
@@ -4942,9 +4970,6 @@ msgstr "&Link"
 msgid "Link &new"
 msgstr "Ссылка &new"
 
-msgid "Browse"
-msgstr "Обзор"
-
 msgid ""
 "Search for matches among existing addresses and [Link] a selection, or [Link "
 "(a) new] address."
@@ -4999,26 +5024,17 @@ msgstr ""
 "Отметьте здесь, если нужно отфильтровать журнал по заболеванию, выбранному "
 "слева."
 
-msgid "label_1"
-msgstr "label_1"
-
-msgid "→"
-msgstr "→"
-
-msgid "←"
-msgstr "←"
-
-msgid "Extra"
-msgstr "Дополнительно"
+msgid "Subjective"
+msgstr "Субъективный"
 
-msgid "Move selected items from left to right."
-msgstr "Перемещает выбранный пункт слева направо."
+msgid "Objective"
+msgstr "Объективный"
 
-msgid "Move selected items from right to left."
-msgstr "Перемещает выбранный пункт справа налево."
+msgid "Assessment"
+msgstr "Оценка"
 
-msgid "Cancel picking items."
-msgstr "Отменяет выбранные пункты."
+msgid "Plan"
+msgstr "План"
 
 msgid "Episode synopsis"
 msgstr "Описание эпизода"
@@ -5065,20 +5081,29 @@ msgstr ""
 "Здесь можно изменить резюме (статус) эпизода, которому принадлежит описание "
 "SOAP."
 
-msgid "Subjective"
-msgstr "Субъективный"
-
 msgid "Codes:"
 msgstr "Коды"
 
-msgid "Objective"
-msgstr "Объективный"
+msgid "label_1"
+msgstr "label_1"
 
-msgid "Assessment"
-msgstr "Оценка"
+msgid "→"
+msgstr "→"
 
-msgid "Plan"
-msgstr "План"
+msgid "←"
+msgstr "←"
+
+msgid "Extra"
+msgstr "Дополнительно"
+
+msgid "Move selected items from left to right."
+msgstr "Перемещает выбранный пункт слева направо."
+
+msgid "Move selected items from right to left."
+msgstr "Перемещает выбранный пункт справа налево."
+
+msgid "Cancel picking items."
+msgstr "Отменяет выбранные пункты."
 
 msgid "1"
 msgstr "1"
@@ -5281,6 +5306,91 @@ msgstr "ATC"
 msgid "Age range"
 msgstr "Возрастная категория"
 
+msgid "&Nicotine"
+msgstr ""
+
+msgid "&Alcohol"
+msgstr ""
+
+#, fuzzy
+msgid "&Other:"
+msgstr "Другой"
+
+msgid "&Non-harmful use"
+msgstr ""
+
+msgid "&Harmful use"
+msgstr ""
+
+msgid "Presently &addicted"
+msgstr ""
+
+#, fuzzy
+msgid "Previously &addicted"
+msgstr "Предыдущие обращения"
+
+msgid "&Reconfirm as of today"
+msgstr ""
+
+#, fuzzy
+msgid "Select for documenting smoking status."
+msgstr "Удалить ввод из списка ожидания"
+
+msgid "Select for documenting alcohol use status."
+msgstr ""
+
+msgid ""
+"Select for documenting use of substances other than nicotine or alcohol."
+msgstr ""
+
+#, fuzzy
+msgid "Select the abused substance."
+msgstr "Выбирает источник данных по препаратам."
+
+msgid ""
+"Select if the substance use is not considered harmful (say, no use or non-"
+"harmful use)."
+msgstr ""
+
+msgid "Select if substance is use considered harmful."
+msgstr ""
+
+#, fuzzy
+msgid "Select if the patient is presently addicted to this substance."
+msgstr "Отметьте здесь, если у пациента не было никакой известной аллергии."
+
+#, fuzzy
+msgid "Select if the patient was previously addicted to this substance."
+msgstr "Отметьте здесь, если у пациента не было никакой известной аллергии."
+
+msgid ""
+"A comment on this substance use:\n"
+"- type of product used\n"
+"- frequency\n"
+"- amount\n"
+"- when started\n"
+"- attempts to quit\n"
+"..."
+msgstr ""
+
+msgid ""
+"When did the patient quit?\n"
+"\n"
+"You can also set a target quit date here."
+msgstr ""
+
+#, fuzzy
+msgid "Check here to confirm for today."
+msgstr "Настройка страницы для печати"
+
+#, fuzzy
+msgid "Quit date"
+msgstr "Эксудативный"
+
+#, fuzzy
+msgid "Last confirmed"
+msgstr "Ранее подтвержденная"
+
 msgid "Closed episodes"
 msgstr "Закрытые эпизоды"
 
@@ -5680,20 +5790,18 @@ msgstr ""
 msgid "Show:"
 msgstr "Показать:"
 
-msgid "Brand by component"
-msgstr "Марка компонента"
+msgid "Kidneys"
+msgstr "Почки"
 
 msgid "Brands"
 msgstr "Фирмы"
 
-msgid "Kidneys"
-msgstr "Почки"
-
-msgid "Unbranded substance"
-msgstr "Непатентованное вещество"
+msgid "Substances"
+msgstr "Компоненты"
 
-msgid "Manage"
-msgstr "Редактор"
+#, fuzzy
+msgid "&Unknown or date:"
+msgstr "неизвестная реакция"
 
 msgid "Approved of"
 msgstr "Принять"
@@ -5707,12 +5815,17 @@ msgstr "По плану"
 msgid "... Reason"
 msgstr "... Причина"
 
+#, fuzzy
 msgid ""
-"A component of a drug brand the patient is taking.\n"
+"A drug the patient is taking.\n"
+"\n"
+"Lookup and select an intake by either of\n"
+"- a generic substance name\n"
+"- a drug brand name\n"
+"- an active ingredient of a drug\n"
 "\n"
-"Lookup, and select, a single- (or multi-) component drug brand, by active "
-"ingredient name. All components of multi-component drugs will be displayed "
-"and automatically added to the patient's list."
+"Note that all components of multi-component drugs will be displayed and "
+"automatically added to the patient's list."
 msgstr ""
 "Компонент принимаемого пациентом препарата.\n"
 "\n"
@@ -5720,6 +5833,16 @@ msgstr ""
 "наименование. Все составляющие многокомпонентных препаратов отобразятся и "
 "будут автоматически добавлены в список пациента."
 
+#, fuzzy
+msgid "Details on the selected drug."
+msgstr "должен выбрать адрес"
+
+msgid "Show cardiac information relevant to substance selection."
+msgstr "Показывает сведения по ССС, относящиеся к выбранному веществу."
+
+msgid "Show renal insufficiency information related to substance selection."
+msgstr "Показывает сведения по ХПН, относящиеся к выбранному веществу."
+
 msgid ""
 "Manage drug brands.\n"
 "\n"
@@ -5733,22 +5856,6 @@ msgstr ""
 "(добавление/изменение/удаление) изделием или маркой препарата,  известными "
 "GNUmed, из которого можно выбрать компонент."
 
-msgid "The active ingredients of this brand."
-msgstr "Действующее вещество этой марки."
-
-msgid "Show cardiac information relevant to substance selection."
-msgstr "Показывает сведения по ССС, относящиеся к выбранному веществу."
-
-msgid "Show renal insufficiency information related to substance selection."
-msgstr "Показывает сведения по ХПН, относящиеся к выбранному веществу."
-
-msgid ""
-"The non-branded medication or non-medication substance, with optional "
-"strength."
-msgstr ""
-"Незарегистрированное лекарство или нелекарственное вещество, с "
-"необязательной дозировкой."
-
 msgid ""
 "Manage consumable substances.\n"
 "\n"
@@ -5763,11 +5870,20 @@ msgstr ""
 msgid "The preparation or form of the substance."
 msgstr "Приготовление или форма вещества"
 
+#, fuzzy
+msgid "Check here if the start date simply isn't known."
+msgstr "Если касается активного пациента, то отметьте."
+
 msgid ""
 "When was this substance started to be consumed or - if not known - the "
 "earliest it is known to have been be consumed."
 msgstr ""
 
+msgid ""
+"A coment on the certainty of the start date, such as \"+/- 3 weeks\", "
+"\"spring of 2002\", \"shortly after Easter 1996\", ...."
+msgstr ""
+
 msgid "Whether this substance is taken by advice."
 msgstr "Принималось ли вещество по рекомендации."
 
@@ -5803,6 +5919,17 @@ msgstr "Отметьте, если прекращение было заплан
 msgid "Reason for discontinuation."
 msgstr "Причина прекращения."
 
+msgid "Drug"
+msgstr "Препараты"
+
+#, fuzzy
+msgid "Research:"
+msgstr "Найти"
+
+#, fuzzy
+msgid "Certainty:"
+msgstr "Подтвердить"
+
 msgid "Schedule"
 msgstr "Запланировано"
 
@@ -5970,6 +6097,34 @@ msgid "Channel"
 msgstr "Канал"
 
 #, fuzzy
+msgid "&Last modification time"
+msgstr "Последнее изменение:"
+
+#, fuzzy
+msgid "&Entry time"
+msgstr "Время окончания "
+
+msgid "Show journal ordered by encounter."
+msgstr ""
+
+msgid "Show journal ordered by time of last modification."
+msgstr ""
+
+msgid "Show journal ordered by actual clinical time of each entry."
+msgstr ""
+
+#, fuzzy
+msgid "Edit the selected chart entry."
+msgstr "Изменение выбранного пункта."
+
+#, fuzzy
+msgid "Delete selected chart entry."
+msgstr "Удаление внешнего ID"
+
+msgid "Order by:"
+msgstr ""
+
+#, fuzzy
 msgid "Chec&k"
 msgstr "Возможность проверки"
 
@@ -6612,11 +6767,14 @@ msgstr "Исследования:"
 msgid "Documents:"
 msgstr "Документы:"
 
+msgid "&L"
+msgstr "&L"
+
 msgid "&N"
 msgstr "&N"
 
-msgid "&L"
-msgstr "&L"
+msgid "List all encounters."
+msgstr "Список всех обращений"
 
 msgid "The encounter."
 msgstr "Обращение"
@@ -6624,9 +6782,6 @@ msgstr "Обращение"
 msgid "Start a new encounter for the active patient."
 msgstr "Запустите новое обращение для активного пациента."
 
-msgid "List all encounters."
-msgstr "Список всех обращений"
-
 msgid "Clinically relevant"
 msgstr "Клинически значимо"
 
@@ -6926,10 +7081,12 @@ msgstr ""
 msgid "Manage dynamic hints."
 msgstr "Отображение динамических подсказок."
 
+#, fuzzy
 msgid ""
 "Rationale for\n"
-"suppression"
-msgstr ""
+"suppression\n"
+"for this patient"
+msgstr "Введите имя файла для сохранения этого шаблона в"
 
 msgid "Save &under"
 msgstr "Сохранить &under"
@@ -7000,6 +7157,12 @@ msgstr "записочка:"
 msgid "Encounter:"
 msgstr "обращение:"
 
+msgid "Manage"
+msgstr "Редактор"
+
+msgid "&Panel:"
+msgstr ""
+
 msgid "&Pick"
 msgstr "&Pick"
 
@@ -7055,6 +7218,10 @@ msgstr ""
 "\n"
 "Для отключения этого всплывающего приветствия оставьте его пустым."
 
+#, fuzzy
+msgid "Show search dialog."
+msgstr "Закрывает этот диалог."
+
 msgid "THIS IS NOT A VERIFIED MEASUREMENT. DO NOT USE FOR ACTUAL CARE."
 msgstr ""
 
@@ -7348,6 +7515,56 @@ msgstr "*наличие* аллергии"
 msgid "ERROR: unknown allergy state [%s]"
 msgstr "Ошибка: аллергологический статус неизвестен  [%s]"
 
+msgid "definite"
+msgstr "достоверный"
+
+#, fuzzy
+msgid "indefinite"
+msgstr "достоверный"
+
+#, fuzzy
+msgid "Reaction:"
+msgstr "Реакция"
+
+#, fuzzy
+msgid "Noted:"
+msgstr "Отмеченное"
+
+#, fuzzy
+msgid "Allergene:"
+msgstr "Аллергия"
+
+#, fuzzy
+msgid "Substance:"
+msgstr "Вещество"
+
+#, fuzzy
+msgid "Code:"
+msgstr "Коды"
+
+#, fuzzy
+msgid "ATC:"
+msgstr "ATC: %s\n"
+
+#, fuzzy
+msgid "Specific to:"
+msgstr "Установите на:"
+
+#, fuzzy
+msgid "this substance only"
+msgstr "Применяемые вещества"
+
+#, fuzzy
+msgid "drug class"
+msgstr "Классы препаратов"
+
+msgid "unknown"
+msgstr "неизвестно"
+
+#, fuzzy
+msgid "Generics:"
+msgstr "Дженерики (непатентованные препараты)"
+
 msgid "Medication history"
 msgstr "Анамнез заболевания"
 
@@ -7359,9 +7576,16 @@ msgstr "Ошибка печати списка лекарств."
 msgid "prescription data"
 msgstr "Рецепты"
 
+#, fuzzy
+msgid "Consumable substance"
+msgstr "Применяемые вещества"
+
 msgid "in use"
 msgstr "используются"
 
+msgid "w/"
+msgstr ""
+
 msgid "long-term"
 msgstr "долгосрочный"
 
@@ -7380,14 +7604,45 @@ msgstr "неактивный"
 msgid "?ongoing"
 msgstr "?постоянный"
 
-#, python-format
-msgid "Substance intake entry (%s, %s)   [#%s]                     \n"
-msgstr "Запись введенного вещества (%s, %s) [#%s]                     \n"
+#, fuzzy, python-format
+msgid ""
+"Substance abuse entry                                              [#%s]\n"
+msgstr ""
+"Сведения об\n"
+"исследовании:                                               \n"
 
-msgid "active, needs check"
-msgstr "активный, нуждается в проверке"
+#, fuzzy, python-format
+msgid "Substance: %s [#%s]%s\n"
+msgstr "Вещество: %s [#%s]\n"
 
-msgid "assumed active"
+#, fuzzy, python-format
+msgid "Use type: %s\n"
+msgstr "Дата:%s\n"
+
+#, fuzzy, python-format
+msgid "Last checked: %s\n"
+msgstr "Последнее место работы: %s\n"
+
+#, python-format
+msgid " Discontinued %s\n"
+msgstr " Прекращение %s\n"
+
+#, fuzzy, python-format
+msgid " Notes: %s\n"
+msgstr "В возрасте: %s\n"
+
+#, python-format
+msgid "Revision: #%(row_ver)s, %(mod_when)s by %(mod_by)s."
+msgstr "Пересмотр: #%(row_ver)s, %(mod_when)s посредством %(mod_by)s."
+
+#, python-format
+msgid "Substance intake entry (%s, %s)   [#%s]                     \n"
+msgstr "Запись введенного вещества (%s, %s) [#%s]                     \n"
+
+msgid "active, needs check"
+msgstr "активный, нуждается в проверке"
+
+msgid "assumed active"
 msgstr "предполагается активный"
 
 msgid "approved"
@@ -7396,9 +7651,6 @@ msgstr "зарегистрированный"
 msgid "unapproved"
 msgstr "незарегистрированный"
 
-msgid "definite"
-msgstr "достоверный"
-
 msgid "suspected"
 msgstr "предполагаемый"
 
@@ -7445,10 +7697,6 @@ msgid " (short-term)"
 msgstr " (кратковременный)"
 
 #, python-format
-msgid " Discontinued %s\n"
-msgstr " Прекращение %s\n"
-
-#, python-format
 msgid " Reason: %s\n"
 msgstr " Причина: %s\n"
 
@@ -7468,18 +7716,62 @@ msgstr " Медицинская проблема: %s\n"
 msgid " Advice: %s\n"
 msgstr " Рекомендация: %s\n"
 
-#, python-format
-msgid "Revision: #%(row_ver)s, %(mod_when)s by %(mod_by)s."
-msgstr "Пересмотр: #%(row_ver)s, %(mod_when)s посредством %(mod_by)s."
+#, fuzzy
+msgid "medication, not abuse"
+msgstr "Вопросы и ответы"
+
+msgid "no or non-harmful use"
+msgstr ""
+
+msgid "presently harmful use"
+msgstr ""
+
+msgid "presently addicted"
+msgstr ""
+
+msgid "previously addicted"
+msgstr ""
 
 #, fuzzy, python-format
-msgid "%s: %s ago"
+msgid "%s%s: %s ago%s"
 msgstr "%s тому назад"
 
 #, fuzzy, python-format
-msgid "%s: %s ago (%s)"
+msgid "%s%s: %s ago (%s)"
+msgstr "%s %s %s %s (%s тому назад, %s)"
+
+#, fuzzy, python-format
+msgid "%s%s%s (%s ago)"
+msgstr "%s %s %s %s (%s тому назад, %s)"
+
+#, fuzzy, python-format
+msgid "%s%s%s (%s ago, %s)"
 msgstr "%s %s %s %s (%s тому назад, %s)"
 
+#, python-format
+msgid "%s ago"
+msgstr "%s тому назад"
+
+#, fuzzy, python-format
+msgid "in %s"
+msgstr "подлежит %s: %s"
+
+#, fuzzy, python-format
+msgid ", until %s (%s)"
+msgstr "работа: %s"
+
+#, fuzzy, python-format
+msgid " (planned for %s%s)"
+msgstr "для [%s]/%s пациент не найден"
+
+#, fuzzy, python-format
+msgid ", planned for %s%s"
+msgstr "для [%s]/%s пациент не найден"
+
+#, fuzzy, python-format
+msgid "%s ago (for %s: %s %s %s)"
+msgstr " Продолжительность: %s (%s - %s)"
+
 msgid "Additional notes"
 msgstr "Дополнительные записи"
 
@@ -7492,12 +7784,36 @@ msgstr "Лист назначений"
 msgid "ordered by brand"
 msgstr "отсортировано по брендам"
 
-msgid "Drug"
-msgstr "Препараты"
-
 msgid "Regimen / Advice"
 msgstr "Режим/рекомендация"
 
+#, fuzzy, python-format
+msgid "Component of %s (%s)"
+msgstr "Компоненты препарата"
+
+#, fuzzy, python-format
+msgid "ATC (substance): %s"
+msgstr " ATC (вещество): %s\n"
+
+#, fuzzy, python-format
+msgid "ATC (brand): %s"
+msgstr " ATC (патентованный): %s\n"
+
+msgid "this is a component of a fake brand"
+msgstr ""
+
+#, fuzzy
+msgid "Components:"
+msgstr "Компоненты"
+
+#, fuzzy
+msgid "this is a fake brand"
+msgstr "Непатентованный препарат"
+
+#, fuzzy
+msgid "this is a vaccine"
+msgstr "Эта вакцина"
+
 msgid "units"
 msgstr "единицы измерения"
 
@@ -7530,51 +7846,16 @@ msgstr "Экспортированный: %s\n"
 msgid "Expires: %s\n"
 msgstr "Окончание: %s\n"
 
-msgid "Active clinical hint"
-msgstr "Активный клинический случай"
-
-msgid "Inactive clinical hint"
-msgstr "Неактивный клинический случай"
-
-#, python-format
-msgid "Source: %s\n"
-msgstr "Источник:%s\n"
-
-#, python-format
-msgid "Language: %s\n"
-msgstr "Язык: %s\n"
-
-#, fuzzy
-msgid "Suppressed active dynamic hint"
-msgstr "Отображение динамических подсказок."
-
 #, fuzzy
-msgid "Suppressed inactive dynamic hint"
-msgstr "Отображение динамических подсказок."
-
-#, fuzzy, python-format
-msgid "Suppressed by: %s\n"
-msgstr "выпущено посредством: %s%s"
-
-#, fuzzy, python-format
-msgid "Suppressed at: %s\n"
-msgstr "Источник:%s\n"
-
-#, fuzzy, python-format
-msgid "Hint #: %s\n"
-msgstr "В возрасте: %s\n"
+msgid "HL7 Source"
+msgstr "Исходный код HTML"
 
-#, fuzzy, python-format
-msgid "Patient #: %s\n"
-msgstr "Пациент #%s"
+msgid "HL7 data size"
+msgstr ""
 
 #, fuzzy, python-format
-msgid "MD5 (currently): %s\n"
-msgstr "Документы: %s"
-
-#, python-format
-msgid "MD5 (at suppression): %s\n"
-msgstr ""
+msgid "%s bytes"
+msgstr "%s байты"
 
 #, fuzzy
 msgid "HL7 Message"
@@ -7632,14 +7913,6 @@ msgid "doc: %s"
 msgstr "Doc: %s\n"
 
 #, fuzzy
-msgid "no patient photograph available"
-msgstr "недоступно"
-
-#, fuzzy, python-format
-msgid "patient photograph from %s"
-msgstr "Не удалось установить изображение пациента из [%s]."
-
-#, fuzzy
 msgid "Patient data for"
 msgstr "Тэги пациента"
 
@@ -7650,6 +7923,10 @@ msgstr ""
 msgid "Patient data export"
 msgstr "Тэги пациента"
 
+#, fuzzy
+msgid "no patient photograph available"
+msgstr "недоступно"
+
 msgid "Documents"
 msgstr "Документы"
 
@@ -7660,6 +7937,10 @@ msgstr ""
 msgid "browse documents area"
 msgstr "добавлены только документы"
 
+#, fuzzy, python-format
+msgid "patient photograph from %s"
+msgstr "Не удалось установить изображение пациента из [%s]."
+
 #, fuzzy
 msgid "Browse patient data"
 msgstr "Отображение тэгов пациента"
@@ -7694,68 +7975,68 @@ msgstr "Ошибка запуска pdftk. Не удалось заполнит
 msgid "Error running pdftk. Cannot flatten filled in PDF form."
 msgstr "Ошибка запуска pdftk. Не удалось выровнять заполнение в форме PDF."
 
-#, python-format
+#, fuzzy, python-format
 msgid ""
 "%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s %(suburb)s, "
-"%(code_state)s, %(code_country)s"
+"%(code_region)s, %(code_country)s"
 msgstr ""
 "%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s %(suburb)s, "
-"%(code_state)s, %(code_country)s"
+"%(code_region)s, %(code_country)s"
 
-#, python-format
+#, fuzzy, python-format
 msgid ""
 "%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s %(suburb)s, "
-"%(code_state)s, %(code_country)s"
+"%(code_region)s, %(code_country)s"
 msgstr ""
 "%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s %(suburb)s, "
-"%(code_state)s, %(code_country)s"
+"%(code_region)s, %(code_country)s"
 
-#, python-format
+#, fuzzy, python-format
 msgid ""
-"%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_state)s, "
-"%(code_country)s"
+"%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, "
+"%(code_region)s, %(code_country)s"
 msgstr ""
-"%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_state)s, "
-"%(code_country)s"
+"%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, "
+"%(code_region)s, %(code_country)s"
 
-#, python-format
+#, fuzzy, python-format
 msgid ""
-"%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_state)s, "
+"%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_region)s, "
 "%(code_country)s"
 msgstr ""
-"%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_state)s, "
+"%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_region)s, "
 "%(code_country)s"
 
-#, python-format
+#, fuzzy, python-format
 msgid ""
 "Address (%(type)s) [#%(pk_adr)s]\n"
 " Street: %(street)s%(notes_street)s\n"
 " Number/Unit: %(number)s%(subunit)s%(notes_subunit)s\n"
 " Location: %(zip)s %(urb)s%(suburb)s\n"
-" Region: %(l10n_state)s, %(code_state)s\n"
+" Region: %(l10n_region)s, %(code_region)s\n"
 " Country: %(l10n_country)s, %(code_country)s"
 msgstr ""
 "Адрес (%(type)s) [#%(pk_adr)s]\n"
 "Улица: %(street)s%(notes_street)s\n"
 "Номер/Дом: %(number)s%(subunit)s%(notes_subunit)s\n"
 "Расположение: %(zip)s %(urb)s%(suburb)s\n"
-"Регион: %(l10n_state)s, %(code_state)s\n"
+"Регион: %(l10n_region)s, %(code_region)s\n"
 "Страна: %(l10n_country)s, %(code_country)s"
 
-#, python-format
+#, fuzzy, python-format
 msgid ""
 "Address [#%(pk_adr)s]\n"
 " Street: %(street)s%(notes_street)s\n"
 " Number/Unit: %(number)s%(subunit)s%(notes_subunit)s\n"
 " Location: %(zip)s %(urb)s%(suburb)s\n"
-" Region: %(l10n_state)s, %(code_state)s\n"
+" Region: %(l10n_region)s, %(code_region)s\n"
 " Country: %(l10n_country)s, %(code_country)s"
 msgstr ""
 "Адрес [#%(pk_adr)s]\n"
 "Улица: %(street)s%(notes_street)s\n"
 "Номер/Корпус: %(number)s%(subunit)s%(notes_subunit)s\n"
 "Расположение: %(zip)s %(urb)s%(suburb)s\n"
-"Регион: %(l10n_state)s, %(code_state)s\n"
+"Регион: %(l10n_region)s, %(code_region)s\n"
 "Страна: %(l10n_country)s, %(code_country)s"
 
 msgid "Textual keyword expansion"
@@ -7827,6 +8108,95 @@ msgstr "скорректированный результат"
 msgid "missing, reported later"
 msgstr "отсутсвует, будет сообщено позже"
 
+msgid "Health issue"
+msgstr "Медицинская проблема"
+
+#, fuzzy
+msgid "External care"
+msgstr "Внешний код"
+
+msgid "Vaccination"
+msgstr "Прививка"
+
+#, fuzzy
+msgid "Clinical narrative"
+msgstr "Клинический совет"
+
+#, fuzzy
+msgid "Test result"
+msgstr "Результаты анализов"
+
+#, fuzzy
+msgid "Substance intake"
+msgstr "Компоненты"
+
+#, fuzzy
+msgid "Hospital stay"
+msgstr "Больница"
+
+#, fuzzy
+msgid "Performed procedure"
+msgstr " %s выполненных процедур"
+
+#, fuzzy
+msgid "Family history"
+msgstr "Семейный анамнез"
+
+#, fuzzy
+msgid "Document"
+msgstr "Документы"
+
+#, python-format
+msgid "unmapped entry type from table [%s]"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "cannot instantiate clinical root item <%s(%s)>"
+msgstr "невозможно активировать пациента [%s] (%s/%s)"
+
+msgid "True"
+msgstr ""
+
+msgid "False"
+msgstr ""
+
+#, fuzzy
+msgid "unknown smoking status"
+msgstr "Удалить ввод из списка ожидания"
+
+msgid "non-smoker"
+msgstr ""
+
+#, fuzzy
+msgid "current smoker"
+msgstr "Текущее обращение:"
+
+msgid "ex-smoker"
+msgstr ""
+
+msgid "tobacco addiction"
+msgstr ""
+
+msgid "no or non-harmful alcohol use"
+msgstr ""
+
+msgid "harmful alcohol use"
+msgstr ""
+
+#, fuzzy
+msgid "unknown alcohol use"
+msgstr "аллергологический статус неизвестен"
+
+msgid "no or non-harmful drug use"
+msgstr ""
+
+msgid "harmful drug use"
+msgstr ""
+
+#, fuzzy
+msgid "unknown drug use"
+msgstr "аллергологический статус неизвестен"
+
 msgid "original entry"
 msgstr "исходная запись"
 
@@ -7930,14 +8300,6 @@ msgstr "Род занятий"
 msgid "Vaccinations"
 msgstr "Прививки"
 
-#, python-format
-msgid "%s ago"
-msgstr "%s тому назад"
-
-#, fuzzy
-msgid "External care"
-msgstr "Внешний код"
-
 msgid "Allergies/Intolerances"
 msgstr "Аллергии/непереносимости"
 
@@ -8034,20 +8396,99 @@ msgstr ""
 "\n"
 "Вместо этого была удалена учетная запись."
 
-#, python-format
-msgid "Device(%s):"
-msgstr "Устройство(%s):"
+msgid "SOAP_char_S=S"
+msgstr ""
 
-msgid "Battery:"
-msgstr "Комплект:"
+msgid "SOAP_char_O=O"
+msgstr ""
 
-msgid "Implanted:"
-msgstr "имплантированный:"
+msgid "SOAP_char_A=A"
+msgstr ""
 
-msgid "last check:"
-msgstr "Последняя проверка:"
+msgid "SOAP_char_P=P"
+msgstr ""
 
-msgid "Sensing:"
+msgid "SOAP_char_U=U"
+msgstr ""
+
+msgid "SOAP_string_Subjective=Subjective"
+msgstr ""
+
+msgid "SOAP_string_Objective=Objective"
+msgstr ""
+
+msgid "SOAP_string_Assessment=Assessment"
+msgstr ""
+
+msgid "SOAP_string_Plan=Plan"
+msgstr ""
+
+msgid "SOAP_string_Unspecified=Unspecified"
+msgstr ""
+
+msgid "SOAP_string_Administrative=Administrative"
+msgstr ""
+
+msgid "Active clinical hint"
+msgstr "Активный клинический случай"
+
+msgid "Inactive clinical hint"
+msgstr "Неактивный клинический случай"
+
+#, python-format
+msgid "Source: %s\n"
+msgstr "Источник:%s\n"
+
+#, python-format
+msgid "Language: %s\n"
+msgstr "Язык: %s\n"
+
+#, fuzzy
+msgid "Suppressed active dynamic hint"
+msgstr "Отображение динамических подсказок."
+
+#, fuzzy
+msgid "Suppressed inactive dynamic hint"
+msgstr "Отображение динамических подсказок."
+
+#, fuzzy, python-format
+msgid "Suppressed by: %s\n"
+msgstr "выпущено посредством: %s%s"
+
+#, fuzzy, python-format
+msgid "Suppressed at: %s\n"
+msgstr "Источник:%s\n"
+
+#, fuzzy, python-format
+msgid "Hint #: %s\n"
+msgstr "В возрасте: %s\n"
+
+#, fuzzy, python-format
+msgid "Patient #: %s\n"
+msgstr "Пациент #%s"
+
+#, fuzzy, python-format
+msgid "MD5 (currently): %s\n"
+msgstr "Документы: %s"
+
+#, python-format
+msgid "MD5 (at suppression): %s\n"
+msgstr ""
+
+#, python-format
+msgid "Device(%s):"
+msgstr "Устройство(%s):"
+
+msgid "Battery:"
+msgstr "Комплект:"
+
+msgid "Implanted:"
+msgstr "имплантированный:"
+
+msgid "last check:"
+msgstr "Последняя проверка:"
+
+msgid "Sensing:"
 msgstr "Чувствительность:"
 
 msgid "Threshold"
@@ -8060,6 +8501,12 @@ msgstr "Импеданс:"
 msgid "Praxis branch                   #%s\n"
 msgstr " Имя: %s (%s)%s #%s\n"
 
+#, python-format
+msgid ""
+"FN:%(l10n_unit_category)s %(branch)s of %(l10n_organization_category)s "
+"%(praxis)s"
+msgstr ""
+
 msgid "Privacy notice"
 msgstr "Уведомление о приватности"
 
@@ -8073,40 +8520,6 @@ msgstr "Ваша карта доступна через %s."
 msgid "%s: Staff member %s has been notified of your chart access."
 msgstr "Сотрудник %s имеет уведомление о доступе к вашей карте."
 
-msgid "soap_S"
-msgstr "soap_S"
-
-msgid "soap_O"
-msgstr "soap_O"
-
-msgid "soap_A"
-msgstr "soap_A"
-
-msgid "soap_P"
-msgstr "soap_P"
-
-#, fuzzy
-msgid "soap_U"
-msgstr "soap_S"
-
-msgid "soap_Subjective"
-msgstr "soap_Subjective"
-
-msgid "soap_Objective"
-msgstr "soap_Objective"
-
-msgid "soap_Assessment"
-msgstr "soap_Assessment"
-
-msgid "soap_Plan"
-msgstr "soap_Plan"
-
-msgid "soap_Unspecified"
-msgstr "soap_Unspecified"
-
-msgid "soap_Administrative"
-msgstr "soap_Administrative"
-
 #, python-format
 msgid ""
 "%s: %s by %.8s (v%s)\n"
@@ -8174,10 +8587,18 @@ msgstr "<страна> не может быть пустой"
 msgid "%(last)s,%(title)s %(first)s%(nick)s (%(sex)s)"
 msgstr "%(last)s,%(title)s %(first)s%(nick)s (%(sex)s)"
 
+#, fuzzy, python-format
+msgid "%(last)s,%(title)s %(first)s (%(sex)s)"
+msgstr "%(last)s,%(title)s %(first)s%(nick)s (%(sex)s)"
+
 #, python-format
 msgid "%(last)s,%(title)s %(first)s%(nick)s"
 msgstr "%(last)s,%(title)s %(first)s%(nick)s"
 
+#, fuzzy, python-format
+msgid "%(last)s,%(title)s %(first)s"
+msgstr "%(last)s,%(title)s %(first)s%(nick)s"
+
 msgid "Cannot merge active patient into another patient."
 msgstr "Не удалось объединить активного пациента с другим пациентом."
 
@@ -8189,9 +8610,6 @@ msgstr "Предполагаемый"
 msgid "merged"
 msgstr "Объединить"
 
-msgid "preferred name/call name/..."
-msgstr ""
-
 msgid "invalid age: DOB in the future"
 msgstr "неверный возраст: дата рождения в будущем"
 
@@ -8204,9 +8622,6 @@ msgstr "Гражданин"
 msgid "Mrs"
 msgstr "Гражданка"
 
-msgid "unknown"
-msgstr "неизвестно"
-
 #, fuzzy
 msgid "empty status"
 msgstr "статус"
@@ -8560,7 +8975,7 @@ msgid " Part %s: %s %s(%s Bytes)\n"
 msgstr "%s %s %s %s (%s тому назад, %s)"
 
 #, fuzzy, python-format
-msgid " Filename: %s\n"
+msgid " Filename: %s%s\n"
 msgstr "Имя файла"
 
 #, fuzzy
@@ -8575,12 +8990,15 @@ msgid "%s parts"
 msgstr "%s частей"
 
 #, fuzzy, python-format
+msgid "%s of %s"
+msgstr "Единицы: %s"
+
+#, fuzzy, python-format
 msgid ""
 "%s (%s)   #%s\n"
-"\n"
 " Created: %s\n"
 " Episode: %s\n"
-"%s%s%s"
+"%s%s%s%s"
 msgstr ""
 "%s (%s) #%s\n"
 "\n"
@@ -8592,6 +9010,10 @@ msgstr ""
 msgid " External reference: %s\n"
 msgstr " Внешняя ссылка: %s\n"
 
+#, fuzzy, python-format
+msgid " Organization: %%s @ %s\n"
+msgstr "Организация: %s (%s)"
+
 msgid "Cannot run [arriba] !"
 msgstr "Не удалось запустить [arriba] !"
 
@@ -8952,25 +9374,8 @@ msgid "External care:"
 msgstr "Внешний код"
 
 #, fuzzy, python-format
-msgid ""
-"health issue: %s%s%s\n"
-"\n"
-msgstr "медицинская проблема: %s"
-
-#, fuzzy
-msgid ""
-"\n"
-"current values:\n"
-msgstr "<Статус текущей аллергии>"
-
-msgid "no previous versions of this record"
-msgstr ""
-
-msgid ""
-"\n"
-"all values with <audit_action>, <audit_when>, <audit_by> fields (current "
-"value first):\n"
-msgstr ""
+msgid "Health issue: %s%s%s"
+msgstr " Медицинская проблема: %s\n"
 
 msgid "Unattributed episodes"
 msgstr "Эпизоды без принадлежности"
@@ -8993,9 +9398,6 @@ msgstr " Продолжительность: %s (%s - %s)"
 msgid "finished"
 msgstr "готово"
 
-msgid "Health issue"
-msgstr "Медицинская проблема"
-
 msgid "none associated"
 msgstr "связанные отсутствуют"
 
@@ -9032,10 +9434,8 @@ msgid "Measurements and Results:"
 msgstr "Исследования и результаты"
 
 #, fuzzy, python-format
-msgid ""
-"episode: %s%s%s\n"
-"\n"
-msgstr "Эпизод:%s\n"
+msgid "Episode: %s%s%s"
+msgstr "Эпизод %s%s%s [#%s]"
 
 #, python-format
 msgid "  your time: %s - %s  (@%s = %s%s)\n"
@@ -9062,9 +9462,7 @@ msgid "%s other episodes touched upon during this encounter:"
 msgstr "%s другие эпизоды, затронутые при этом обращении:"
 
 #, fuzzy, python-format
-msgid ""
-"encounter: %s%s%s\n"
-"\n"
+msgid "Encounter: %s%s%s"
 msgstr "Обращения: %s (%s - %s):"
 
 msgid " (ongoing)"
@@ -9090,9 +9488,6 @@ msgstr "Больница"
 msgid "Procedures"
 msgstr "&Procedures"
 
-msgid "Substances"
-msgstr "Компоненты"
-
 msgid "Life events"
 msgstr "Биографические события"
 
@@ -9117,9 +9512,6 @@ msgstr "Смерть"
 msgid "Cannot display timeline."
 msgstr "Воспроизведение хронологии"
 
-msgid "Vaccination"
-msgstr "Прививка"
-
 msgid "Lab result"
 msgstr "Лабораторный результат"
 
@@ -9202,9 +9594,6 @@ msgstr "Когда"
 msgid "Exported: %s\n"
 msgstr "Экспортированный: %s\n"
 
-msgid "emr-journal"
-msgstr "emr-journal"
-
 msgid "Chronological EMR Journal\n"
 msgstr "Журнал истории EMR\n"
 
@@ -9525,20 +9914,8 @@ msgstr "Системные сведения по кодированию"
 msgid "Select one or more codes that apply."
 msgstr "Выберите один или более кодов для применения."
 
-msgid "Cannot move progress notes. No active patient."
-msgstr "Не удалось переместить рабочие записи. Нет активного пациента."
-
-msgid "Moving progress notes between encounters ..."
-msgstr "Перемещение рабочих записей между обращениями ..."
-
-msgid ""
-"\n"
-" Select the progress notes to move from the list !\n"
-"\n"
-msgstr ""
-"\n"
-" Выберите из списка рабочие записи для перемещения!\n"
-"\n"
+msgid "Select the narrative you are interested in ..."
+msgstr "Выберите текстовую часть, в которой заинтересованы ..."
 
 msgid "when"
 msgstr "когда"
@@ -9549,81 +9926,223 @@ msgstr "кто"
 msgid "entry"
 msgstr "запись"
 
-msgid "Cannot edit progress notes. No active patient."
-msgstr "Не удалось изменить рабочие записи. Нет активного пациента."
+msgid "There is no narrative for this episode in this encounter."
+msgstr "Для этого эпизода в этом обращении нет описания."
 
-msgid "Deleting progress note"
-msgstr "Удаление рабочей записи"
+msgid "Must select episode to move narrative to first."
+msgstr "Сначала необходимо выбрать эпизод для перемещения описания."
 
-msgid ""
-"Are you positively sure you want to delete this\n"
-"progress note from the medical record ?\n"
-"\n"
-"Note that even if you chose to delete the entry it will\n"
-"still be (invisibly) kept in the audit trail to protect\n"
-"you from litigation because physical deletion is known\n"
-"to be unlawful in some jurisdictions.\n"
-msgstr ""
-"Действительно уверены, что нужно удалить\n"
-"эту рабочую запись из истории болезни?\n"
-"\n"
-"Учтите, что даже при выборе записи на удаление\n"
-"она по-прежнему будет храниться (невидимо) в\n"
-"аудиторском следе для вашей защиты от обвинений,\n"
-"потому что физическое удаление, как известно,\n"
-"в некоторых юрисдикциях незаконно.\n"
+msgid "Last"
+msgstr "Последний"
 
-msgid "Yes, delete the progress note."
-msgstr "Да, удалить рабочую запись."
+msgid "In health issue"
+msgstr "В медицинской проблеме"
 
-msgid "No, do NOT delete the progress note."
-msgstr "Нет, НЕ удалять рабочую запись."
+msgid "Most recent notes on selected problem"
+msgstr "Самая последняя запись по выбранному заболеванию"
 
-msgid "Editing progress note"
-msgstr "Изменение рабочей записи"
+#, python-format
+msgid "%s (active+potential) problems"
+msgstr "%s (активных+потенциальных) заболеваний"
 
-msgid "This is the original progress note:"
-msgstr "Это исходная рабочая запись:"
+#, python-format
+msgid "%s active problems"
+msgstr "%s активных заболеваний"
 
-msgid "Managing progress notes"
-msgstr "Управление рабочими записями"
+msgid "Current encounter:"
+msgstr "Текущее обращение:"
+
+msgid "Cumulative summary"
+msgstr "Общий итог"
+
+#, fuzzy, python-format
+msgid "Most recent info on %s%s%s"
+msgstr "Самые последние записи в %s%s%s"
 
 #, python-format
 msgid ""
+"Cannot open progress note editor for\n"
 "\n"
-" This list shows the progress notes by %s.\n"
+"[%s].\n"
 "\n"
 msgstr ""
+"Не удалось открыть редактор рабочей записи для\n"
 "\n"
-" Этот список показывает рабочие записи по %s.\n"
+"[%s].\n"
 "\n"
 
-msgid "Enter (regex) term to search for across all EMRs:"
-msgstr "Введите условие (regex) для поиска по всем EMR:"
+msgid "opening progress note editor"
+msgstr "открытие  редактора рабочей записи"
 
-msgid "Text search across all EMRs"
-msgstr "Текстовой поиск по всем EMR"
+msgid "Cannot save all editors. Some were kept open."
+msgstr ""
+"Не удалось сохранить все редакторы. Некоторые были оставлены открытыми."
+
+msgid "new problem"
+msgstr "новое заболевание"
 
-#, python-format
 msgid ""
-"Nothing found for search term:\n"
-" \"%s\""
+"Are you sure you really want to\n"
+"discard this progress note ?\n"
 msgstr ""
-"Ничего не найдено для поиска условия:\n"
-" \"%s\""
+"Уверены действительно, что\n"
+"нужно сбросить эту рабочую запись?\n"
 
-msgid "Search results"
-msgstr "Результаты поиска"
+msgid "Discarding progress note"
+msgstr "Сбросить рабочую запись"
 
-#, fuzzy, python-format
-msgid "Search results for [%s]"
-msgstr "Результаты поиска для %s"
+msgid "There are unsaved progress notes !\n"
+msgstr "Это несохраненные рабочие записи!\n"
 
-msgid "Match"
-msgstr "Соответствует"
+msgid "Unsaved progress notes"
+msgstr "Несохраненные рабочие записи"
 
-msgid "Match location"
-msgstr "Расположение соответствия"
+msgid "Problem list"
+msgstr "Список проблем"
+
+msgid "Saving SOAP note"
+msgstr "Сохранение записи SOAP"
+
+msgid "Do you want to save the SOAP note ?"
+msgstr "Сохранить запись SOAP?"
+
+#, python-format
+msgid "&Filter by problem %s%s%s"
+msgstr "&Filter по проблемам %s%s%s"
+
+msgid "Cannot save SimpleNotes SOAP note."
+msgstr "Не удалось сохранить запись SimpleNotes SOAP."
+
+#, python-format
+msgid "Progress note: %s%s"
+msgstr "Рабочая запись: %s%s"
+
+msgid "Please enter a name for the new problem:"
+msgstr "Введите имя для новой проблемы:"
+
+msgid "Adding a problem"
+msgstr "Добавление проблемы"
+
+msgid "Cannot delete problem. There is still clinical data recorded for it."
+msgstr ""
+"Не удалось удалить проблему. По-прежнему, для нее имеются зарегистрированные "
+"клинические данные."
+
+#, python-format
+msgid "GNUmed: configuring [%s] (%s plugins)"
+msgstr "GNUmed: настройка [%s] (%s плагины)"
+
+msgid "loading list of plugins                               "
+msgstr "загрузка списка плагинов                               "
+
+msgid "failed"
+msgstr "сбой"
+
+msgid "success"
+msgstr "успешно"
+
+#, python-format
+msgid ""
+"previous: %s (%s)\n"
+"current (%s/%s): %s"
+msgstr ""
+"предыдущий: %s (%s)\n"
+"текущий (%s/%s): %s"
+
+#, python-format
+msgid "Cannot switch to [%s]: no patient selected"
+msgstr "Не удалось переключиться на [%s]: нет выбранного пациента"
+
+msgid "Cannot move progress notes. No active patient."
+msgstr "Не удалось переместить рабочие записи. Нет активного пациента."
+
+msgid "Moving progress notes between encounters ..."
+msgstr "Перемещение рабочих записей между обращениями ..."
+
+msgid ""
+"\n"
+" Select the progress notes to move from the list !\n"
+"\n"
+msgstr ""
+"\n"
+" Выберите из списка рабочие записи для перемещения!\n"
+"\n"
+
+msgid "Cannot edit progress notes. No active patient."
+msgstr "Не удалось изменить рабочие записи. Нет активного пациента."
+
+msgid "Deleting progress note"
+msgstr "Удаление рабочей записи"
+
+msgid ""
+"Are you positively sure you want to delete this\n"
+"progress note from the medical record ?\n"
+"\n"
+"Note that even if you chose to delete the entry it will\n"
+"still be (invisibly) kept in the audit trail to protect\n"
+"you from litigation because physical deletion is known\n"
+"to be unlawful in some jurisdictions.\n"
+msgstr ""
+"Действительно уверены, что нужно удалить\n"
+"эту рабочую запись из истории болезни?\n"
+"\n"
+"Учтите, что даже при выборе записи на удаление\n"
+"она по-прежнему будет храниться (невидимо) в\n"
+"аудиторском следе для вашей защиты от обвинений,\n"
+"потому что физическое удаление, как известно,\n"
+"в некоторых юрисдикциях незаконно.\n"
+
+msgid "Yes, delete the progress note."
+msgstr "Да, удалить рабочую запись."
+
+msgid "No, do NOT delete the progress note."
+msgstr "Нет, НЕ удалять рабочую запись."
+
+msgid "Editing progress note"
+msgstr "Изменение рабочей записи"
+
+msgid "This is the original progress note:"
+msgstr "Это исходная рабочая запись:"
+
+msgid "Managing progress notes"
+msgstr "Управление рабочими записями"
+
+#, python-format
+msgid ""
+"\n"
+" This list shows the progress notes by %s.\n"
+"\n"
+msgstr ""
+"\n"
+" Этот список показывает рабочие записи по %s.\n"
+"\n"
+
+msgid "Enter (regex) term to search for across all EMRs:"
+msgstr "Введите условие (regex) для поиска по всем EMR:"
+
+msgid "Text search across all EMRs"
+msgstr "Текстовой поиск по всем EMR"
+
+#, python-format
+msgid ""
+"Nothing found for search term:\n"
+" \"%s\""
+msgstr ""
+"Ничего не найдено для поиска условия:\n"
+" \"%s\""
+
+msgid "Search results"
+msgstr "Результаты поиска"
+
+#, fuzzy, python-format
+msgid "Search results for [%s]"
+msgstr "Результаты поиска для %s"
+
+msgid "Match"
+msgstr "Соответствует"
+
+msgid "Match location"
+msgstr "Расположение соответствия"
 
 msgid "Cannot search EMR. No active patient."
 msgstr "Поиск EMR невозможен. Нет активного пациента."
@@ -9790,866 +10309,641 @@ msgstr ""
 "\n"
 "Теперь отметьте записи, нужные для включения в сводку.\n"
 
-msgid "Select the narrative you are interested in ..."
-msgstr "Выберите текстовую часть, в которой заинтересованы ..."
+msgid "Pick a date ..."
+msgstr "Выбрать данные ..."
 
-msgid "There is no narrative for this episode in this encounter."
-msgstr "Для этого эпизода в этом обращении нет описания."
+msgid "<ALT-C/K>: pick from (c/k)alendar"
+msgstr "<ALT-C/K>: выбрать из (c/k)alendar"
 
-msgid "Must select episode to move narrative to first."
-msgstr "Сначала необходимо выбрать эпизод для перемещения описания."
+msgid "Cannot interpret input as timestamp."
+msgstr "Не удалось интерпретировать ввод как  временную метку."
 
-msgid "Last"
-msgstr "Последний"
+msgid "No vaccines were chosen"
+msgstr "Вакцина не выбрана"
 
-msgid "In health issue"
-msgstr "В медицинской проблеме"
+#, python-format
+msgid "Combination of indications , %s , not found in any vaccine"
+msgstr ""
 
-msgid "Most recent notes on selected problem"
-msgstr "Самая последняя запись по выбранному заболеванию"
+msgid "Sequence"
+msgstr "Последовательность"
 
-#, python-format
-msgid "%s (active+potential) problems"
-msgstr "%s (активных+потенциальных) заболеваний"
+msgid "Batch"
+msgstr "Партия"
 
-#, python-format
-msgid "%s active problems"
-msgstr "%s активных заболеваний"
+msgid "Vaccinator"
+msgstr "Вакцинатор"
 
-msgid "Current encounter:"
-msgstr "Текущее обращение:"
+msgid ""
+"Vaccinations by Recommender (X = patient on regime, O = patient not on "
+"regime) "
+msgstr ""
+"Прививки по рекомендации (X = пациент на режиме, O = пациент не на режиме) "
 
-msgid "Cumulative summary"
-msgstr "Общий итог"
+msgid "enrolled regime vaccinations not yet given"
+msgstr "зарегистрированный режим прививок еще не заявлен"
 
-#, fuzzy, python-format
-msgid "Most recent info on %s%s%s"
-msgstr "Самые последние записи в %s%s%s"
+#, fuzzy
+msgid "Proceed with "
+msgstr "Совершить вход в систему."
+
+#, python-format
+msgid "Failed to enrol patient in %s"
+msgstr "Сбой регистрации пациента в %s"
+
+#, python-format
+msgid "Failed to  delist patient from %s"
+msgstr "Сбой удаления пациента из списка %s"
+
+msgid "Missing GNUmed module"
+msgstr "Пропущенный модуль GNUmed"
 
 #, python-format
 msgid ""
-"Cannot open progress note editor for\n"
+"GNUmed detected that parts of it are not\n"
+"properly installed. The following message\n"
+"names the missing part:\n"
 "\n"
-"[%s].\n"
+" \"%s\"\n"
 "\n"
+"Please make sure to get the missing\n"
+"parts installed. Otherwise some of the\n"
+"functionality will not be accessible."
 msgstr ""
-"Не удалось открыть редактор рабочей записи для\n"
+"GNUmed выявил, что его разделы установлены неправильно.\n"
+"Следующие имена сообщены в пропущенной части:\n"
 "\n"
-"[%s].\n"
+"\"%s\"\n"
 "\n"
+"Убедитесь, что осуществили установку\n"
+"пропущенных разделов. Иначе некоторые\n"
+"функции могут быть недоступны."
 
-msgid "opening progress note editor"
-msgstr "открытие  редактора рабочей записи"
-
-msgid "Cannot save all editors. Some were kept open."
-msgstr ""
-"Не удалось сохранить все редакторы. Некоторые были оставлены открытыми."
+#, fuzzy, python-format
+msgid ""
+"\n"
+" Source: %s"
+msgstr "Источник:%s\n"
 
-msgid "new problem"
-msgstr "новое заболевание"
+#, fuzzy, python-format
+msgid ""
+"\n"
+" Code: %s"
+msgstr " Код: %s\n"
 
+#, python-format
 msgid ""
-"Are you sure you really want to\n"
-"discard this progress note ?\n"
+"\n"
+" Details (first 250 characters):\n"
+"%s\n"
+"%s\n"
+"%s"
 msgstr ""
-"Уверены действительно, что\n"
-"нужно сбросить эту рабочую запись?\n"
-
-msgid "Discarding progress note"
-msgstr "Сбросить рабочую запись"
-
-msgid "There are unsaved progress notes !\n"
-msgstr "Это несохраненные рабочие записи!\n"
-
-msgid "Unsaved progress notes"
-msgstr "Несохраненные рабочие записи"
-
-#, python-format
-msgid "Synopsis (%s)"
-msgstr "Синопсис (%s)"
-
-#, fuzzy
-msgid ""
-"Enter a short working name for this new problem\n"
-"(which will become a new, unassociated episode):\n"
-msgstr "Введите короткое рабочее название для этого нового заболевания:"
-
-#, fuzzy, python-format
-msgid ""
-"Enter a short working name for this new\n"
-"episode under the existing health issue\n"
-"\n"
-"\"%s\":\n"
-msgstr "Введите короткое рабочее название для этого нового заболевания:"
 
 #, fuzzy
-msgid "Creating problem (episode) to save notelet under ..."
-msgstr "Создание проблемы (эпизода) для сохранения заметки под ..."
-
-msgid "Cannot save a new problem without a name."
-msgstr "Не удалось сохранить новую задачу без имени."
-
-msgid "saving progress note"
-msgstr "сохранение рабочей записи"
+msgid "Access violation"
+msgstr "Аббревиатура"
 
 #, python-format
 msgid ""
-"The new episode:\n"
-"\n"
-" \"%s\"\n"
-"\n"
-"will remain unassociated despite the editor\n"
-"having been invoked from the health issue:\n"
+"You do not have access to this part of GNUmed.\n"
 "\n"
-" \"%s\""
+"%s"
 msgstr ""
-"Новый эпизод:\n"
-"\n"
-" \"%s\"\n"
-"\n"
-"останется несвязанным, несмотря на то, что\n"
-"редактор был вызван из медицинской проблемы:\n"
+"У вас нет прав доступа к этому компоненту GNUmed.\n"
 "\n"
-" \"%s\""
-
-msgid "You need to actually set an editor."
-msgstr "Действительно нужно установить редактор."
+"%s"
 
-#, python-format
-msgid "The command [%s] is not found."
-msgstr "Команда [%s] не найдена."
+msgid "Lost connection"
+msgstr "Потеря подключения"
 
-#, python-format
 msgid ""
-"Enter the shell command with which to start\n"
-"the image editor for visual progress notes.\n"
+"Since you were last working in GNUmed,\n"
+"your database connection timed out.\n"
 "\n"
-"Any \"%(img)s\" included with the arguments\n"
-"will be replaced by the file name of the\n"
-"note template."
+"This GNUmed session is now expired.\n"
+"\n"
+"You will have to close this client and\n"
+"restart a new GNUmed session."
 msgstr ""
-"Введите команду shell, с которой запускать\n"
-"редактор изображений для рабочих записей.\n"
+"Поскольку вы последний работающий в GNUmed,\n"
+"подключение к базе данных истекло.\n"
 "\n"
-"Любые \"%(img)s\" , включенные с аргументами,\n"
-"будут перемещены посредством имени\n"
-"файла из шаблона записи."
+"Эта сессия GNUmed теперь истекла.\n"
+"\n"
+"Вам придется закрыть этого клиента и\n"
+"перезапустить новую сессию GNUmed."
 
-msgid "Choose file to use as template for new visual progress note"
+msgid ""
+"Please enter a short note on what you\n"
+"were about to do in GNUmed:"
 msgstr ""
-"Выберите файл для использования в качестве шаблона для новой визуальной\n"
-"рабочей записи"
-
-msgid "Visual progress note source"
-msgstr "Источник визуальной рабочей записи"
-
-msgid "From which source do you want to pick the image template ?"
-msgstr "Из какого источника нужно выбрать шаблон изображения?"
-
-msgid "Database"
-msgstr "База данных"
-
-msgid "List of templates in the database."
-msgstr "Список шаблонов в базе данных."
-
-msgid "Files in the filesystem."
-msgstr "Файлы в файловой системе."
-
-msgid "Device"
-msgstr "Устройство"
-
-msgid "Image capture devices (scanners, cameras, etc)"
-msgstr "Устройство захвата изображения (сканеры, камеры и проч.)"
-
-#, python-format
-msgid "Cannot export visual progress note template for [%s]."
-msgstr "Не удалось экспортировать шаблон рабочей записи изображения для [%s]."
-
-msgid "Cannot export visual progress note to file."
-msgstr "Не удалось экспортировать визуальную рабочую запись в файл."
+"Введите короткое примечание,\n"
+"где Вы работали в GNUmed:"
 
-msgid "Editor for visual progress note not configured."
-msgstr "Редактор для визуальной рабочей записи не настроен."
+msgid "Sending bug report"
+msgstr "Отправка отчета об ошибке"
 
-#, python-format
 msgid ""
-"There was a problem with running the editor\n"
-"for visual progress notes.\n"
-"\n"
-" [%s]\n"
+"Edit the list of email addresses to send the\n"
+"bug report to (separate addresses by spaces).\n"
 "\n"
+"Note that <gnumed-bugs at gnu.org> refers to\n"
+"the public (!) GNUmed bugs mailing list."
 msgstr ""
-"Имелась проблема с запуском редактора для визуальных рабочих записей.\n"
-"\n"
-" [%s]\n"
+"Измените список адресов электронной почты\n"
+"для отправки отчета об ошибке (разделите адреса\n"
+"пробелами).\n"
 "\n"
-
-msgid "Editing visual progress note"
-msgstr "Изменение визуальной рабочей записи"
+"Обратите внимание, что <gnumed-bugs at gnu.org>\n"
+"относится к публичному (!) списку рассылок GNUmed."
 
 #, python-format
 msgid ""
-"There was a problem reading the visual\n"
-"progress note from the file:\n"
+"Your bug report will be sent to:\n"
 "\n"
-" [%s]\n"
+"%s\n"
+"\n"
+"Make sure you have reviewed the log file for potentially\n"
+"sensitive information before sending out the bug report.\n"
 "\n"
+"Note that emailing the report may take a while depending\n"
+"on the speed of your internet connection.\n"
 msgstr ""
-"Имелась проблема чтения визуальной\n"
-"рабочей записи из файла:\n"
+"Отчет об ошибках будет отослан на:\n"
 "\n"
-" [%s]\n"
+"%s\n"
+"\n"
+"Убедитесь, что просмотрели лог-файл на предмет\n"
+"потенциально важной информации перед отправкой\n"
+"сообщения об ошибке.\n"
 "\n"
+"Обратите внимание, что отправка отчета может занять\n"
+"некоторое время в зависимости от скорости подключения\n"
+"к Интернету.\n"
 
-msgid "Saving visual progress note"
-msgstr "Сохранение визуальной рабочей записи"
+msgid "Yes, send the bug report."
+msgstr "Да, отправить отчет об ошибках."
+
+msgid "No, do not send the bug report."
+msgstr "Нет, не отправлять отчет об ошибках."
+
+msgid "include log file in bug report"
+msgstr "включить лог-файл в отчет об ошибках"
 
 msgid ""
-"You either created a visual progress note from a template\n"
-"in the database (rather than from a file on disk) or you\n"
-"edited an existing visual progress note.\n"
+"The database you are connected to is marked as\n"
+"\"in-production with controlled access\".\n"
 "\n"
-"The template/original was not modified at all, however.\n"
+"You indicated that you want to include the log\n"
+"file in your bug report. While this is often\n"
+"useful for debugging the log file might contain\n"
+"bits of patient data which must not be sent out\n"
+"without de-identification.\n"
 "\n"
-"Do you still want to save the unmodified image as a\n"
-"visual progress note into the EMR of the patient ?\n"
+"Please confirm that you want to include the log !"
 msgstr ""
-"Вы, либо создали визуальную рабочую запись из\n"
-"шаблона в базе данных (а не из файла на диске),\n"
-"либо изменили существующую.\n"
+"База данных, к которой вы подключены, помечена\n"
+"как \"выполнение с контролируемым доступом\".\n"
 "\n"
-"Как бы то ни было, шаблон или оригинал\n"
-"совсем не изменились.\n"
+"Вы указали, что хотите включить лог-файл в\n"
+"отчет об ошибке. Хотя это часто полезно для\n"
+"отладки, лог-файл может содержать биты данных\n"
+"о пациентах, которые не должны отправляться без\n"
+"обезличивания.\n"
 "\n"
-"По-прежнему нужно сохранить как неизмененную\n"
-"визуальную рабочую запись\n"
-"изображения в EMR пациента?\n"
+"Подтвердите, что хотите включить журнал!"
 
-msgid "visual progress notes"
-msgstr "визуальные рабочие записи"
+msgid "<not supplied>"
+msgstr "<не включать>"
 
-#, python-format
-msgid "Created: %s"
-msgstr "Создано: %s"
+msgid "Bug report has been emailed."
+msgstr "Отчет об ошибках был отправлен."
 
-msgid "Problem list"
-msgstr "Список проблем"
+msgid "Bug report COULD NOT be emailed."
+msgstr "Отчет об ошибках НЕ МОЖЕТ быть отправлен."
 
-msgid "Saving SOAP note"
-msgstr "Сохранение записи SOAP"
+msgid "Underweight"
+msgstr "Вес ниже нормы"
 
-msgid "Do you want to save the SOAP note ?"
-msgstr "Сохранить запись SOAP?"
+msgid "63< Normal >79"
+msgstr "63< Normal >79"
 
-#, python-format
-msgid "&Filter by problem %s%s%s"
-msgstr "&Filter по проблемам %s%s%s"
+msgid "63 - Normal - 79"
+msgstr "63 - Норма - 79"
 
-msgid "Cannot save SimpleNotes SOAP note."
-msgstr "Не удалось сохранить запись SimpleNotes SOAP."
+msgid "Overweight"
+msgstr "Избыточный вес"
 
-#, python-format
-msgid "Progress note: %s%s"
-msgstr "Рабочая запись: %s%s"
+msgid "Obese"
+msgstr "Тучный"
 
-msgid "Please enter a name for the new problem:"
-msgstr "Введите имя для новой проблемы:"
+msgid "Current height/mass"
+msgstr "Текущий рост/масса"
 
-msgid "Adding a problem"
-msgstr "Добавление проблемы"
+msgid "Height (cm)"
+msgstr "Рост (см)"
 
-msgid "Cannot delete problem. There is still clinical data recorded for it."
-msgstr ""
-"Не удалось удалить проблему. По-прежнему, для нее имеются зарегистрированные "
-"клинические данные."
+msgid "Mass (kg)"
+msgstr "Масса (кг)"
 
-#, python-format
-msgid "GNUmed: configuring [%s] (%s plugins)"
-msgstr "GNUmed: настройка [%s] (%s плагины)"
-
-msgid "loading list of plugins                               "
-msgstr "загрузка списка плагинов                               "
+msgid "Adjusted Values"
+msgstr "Регулируемые значения"
 
-msgid "failed"
-msgstr "сбой"
+msgid "Goal mass"
+msgstr "Искомая масса"
 
-msgid "success"
-msgstr "успешно"
+msgid "kg to lose"
+msgstr "потеря кг"
 
-#, python-format
-msgid ""
-"previous: %s (%s)\n"
-"current (%s/%s): %s"
-msgstr ""
-"предыдущий: %s (%s)\n"
-"текущий (%s/%s): %s"
+msgid "BMI Calculator"
+msgstr "Калькулятор BMI"
 
-#, python-format
-msgid "Cannot switch to [%s]: no patient selected"
-msgstr "Не удалось переключиться на [%s]: нет выбранного пациента"
+msgid "&Reset"
+msgstr "&Reset"
 
-msgid "Pick a date ..."
-msgstr "Выбрать данные ..."
+msgid "Select a healthcare provider."
+msgstr "Выберите специалиста."
 
-msgid "<ALT-C/K>: pick from (c/k)alendar"
-msgstr "<ALT-C/K>: выбрать из (c/k)alendar"
+msgid "Public (no clinical or demographic access)"
+msgstr ""
 
-msgid "Cannot interpret input as timestamp."
-msgstr "Не удалось интерпретировать ввод как  временную метку."
+msgid "Staff (demographic access only)"
+msgstr ""
 
-msgid "No vaccines were chosen"
-msgstr "Вакцина не выбрана"
+msgid "staff (clerical)"
+msgstr ""
 
-#, python-format
-msgid "Combination of indications , %s , not found in any vaccine"
+msgid "full clinical access"
 msgstr ""
 
-msgid "Sequence"
-msgstr "Последовательность"
+msgid "DB account"
+msgstr "учетная запись ДБ"
 
-msgid "Batch"
-msgstr "Партия"
+msgid "can login"
+msgstr "возможен вход в систему"
 
-msgid "Vaccinator"
-msgstr "Вакцинатор"
+msgid "can not login"
+msgstr "вход в систему не возможен"
 
-msgid ""
-"Vaccinations by Recommender (X = patient on regime, O = patient not on "
-"regime) "
-msgstr ""
-"Прививки по рекомендации (X = пациент на режиме, O = пациент не на режиме) "
+msgid "Activating GNUmed user."
+msgstr "Активированный пользователь GNUmed."
 
-msgid "enrolled regime vaccinations not yet given"
-msgstr "зарегистрированный режим прививок еще не заявлен"
+msgid "Deactivating GNUmed user."
+msgstr "Отключеный пользователь GNUmed."
 
-#, fuzzy
-msgid "Proceed with "
-msgstr "Совершить вход в систему."
+msgid "Removing GNUmed user."
+msgstr "Удаленный пользователь GNUmed."
 
-#, python-format
-msgid "Failed to enrol patient in %s"
-msgstr "Сбой регистрации пациента в %s"
+msgid "Removing GNUmed user"
+msgstr "Удаленный пользователь GNUmed"
 
-#, python-format
-msgid "Failed to  delist patient from %s"
-msgstr "Сбой удаления пациента из списка %s"
+msgid "Modifying GNUmed user."
+msgstr "Измененный пользователь GNUmed."
 
-msgid "Missing GNUmed module"
-msgstr "Пропущенный модуль GNUmed"
+msgid "Failed to save changes to GNUmed database user."
+msgstr "Сбой сохранения изменений для пользователя GNUmed."
+
+msgid "Modifying GNUmed user"
+msgstr "Измененный пользователь GNUmed"
+
+#, fuzzy, python-format
+msgid "Failed to set role [%s] for GNUmed database user."
+msgstr "Сбой сохранения изменений для пользователя GNUmed."
 
 #, python-format
 msgid ""
-"GNUmed detected that parts of it are not\n"
-"properly installed. The following message\n"
-"names the missing part:\n"
-"\n"
-" \"%s\"\n"
 "\n"
-"Please make sure to get the missing\n"
-"parts installed. Otherwise some of the\n"
-"functionality will not be accessible."
+"  %s \"%s\" %s\n"
+"  born: %s"
 msgstr ""
-"GNUmed выявил, что его разделы установлены неправильно.\n"
-"Следующие имена сообщены в пропущенной части:\n"
 "\n"
-"\"%s\"\n"
-"\n"
-"Убедитесь, что осуществили установку\n"
-"пропущенных разделов. Иначе некоторые\n"
-"функции могут быть недоступны."
+"  %s \"%s\" %s\n"
+"  родившийся: %s"
 
-#, fuzzy, python-format
 msgid ""
-"\n"
-" Source: %s"
-msgstr "Источник:%s\n"
+"Password entries do not match. Please type in the passwords again to rule "
+"out typos."
+msgstr ""
+"Ввод пароля не совпадает. Введите пароль снова для исправления опечаток."
 
-#, fuzzy, python-format
-msgid ""
-"\n"
-" Code: %s"
-msgstr " Код: %s\n"
+msgid "Adding GNUmed user"
+msgstr "Добавление пользователя GNUmed"
 
-#, python-format
 msgid ""
+"Are you positively sure you want to create\n"
+"a user with an empty password ?\n"
 "\n"
-" Details (first 250 characters):\n"
-"%s\n"
-"%s\n"
-"%s"
+"Think about the record access implications !"
 msgstr ""
+"Действительно уверены, что нужно\n"
+"создать пользователя с пустым паролем?\n"
+"\n"
+"Подумайте о последствиях доступа к регистрации!"
 
-#, fuzzy
-msgid "Access violation"
-msgstr "Аббревиатура"
+msgid "Enlisting person as user."
+msgstr "Зарегистрировать персону как пользователь."
+
+msgid "Encrypt"
+msgstr "Шифровать"
+
+msgid "Decrypt"
+msgstr "Расшифровать"
+
+msgid "Set pass phrase"
+msgstr "Установить пароль"
+
+msgid "This is not correctly encrypted text!"
+msgstr "Этот текст неправильно зашифрован!"
+
+msgid "Please enter your pass phrase:"
+msgstr "Введите пароль:"
+
+msgid "Pass phrase expired"
+msgstr "Истекло время на пароль"
 
-#, python-format
 msgid ""
-"You do not have access to this part of GNUmed.\n"
 "\n"
-"%s"
+"Conditions preventable by vaccination as currently known to GNUmed.\n"
 msgstr ""
-"У вас нет прав доступа к этому компоненту GNUmed.\n"
 "\n"
-"%s"
+"Условия, предупреждаемые через прививки, в настоящее время известные "
+"GNUmed.\n"
 
-msgid "Lost connection"
-msgstr "Потеря подключения"
+msgid "Showing vaccination preventable conditions."
+msgstr "Отображение условий, предотвращаемых прививками."
+
+msgid "ATCs: single-condition vaccines"
+msgstr "ATC: однокомпонентные вакцины"
+
+msgid "ATCs: multi-condition vaccines"
+msgstr "ATC: многокомпонентные вакцины"
+
+msgid "Pick the relevant indications."
+msgstr "Выберите подходящие показания."
+
+msgid "Known indications"
+msgstr "Известные показания"
+
+msgid "Adding new vaccine"
+msgstr "Добавление новой вакцины"
 
+msgid "Editing vaccine"
+msgstr "Изменение вакцины"
+
+#, python-format
 msgid ""
-"Since you were last working in GNUmed,\n"
-"your database connection timed out.\n"
+"Cannot delete vaccine\n"
 "\n"
-"This GNUmed session is now expired.\n"
+" %s - %s (#%s)\n"
 "\n"
-"You will have to close this client and\n"
-"restart a new GNUmed session."
+"It is probably documented in a vaccination."
 msgstr ""
-"Поскольку вы последний работающий в GNUmed,\n"
-"подключение к базе данных истекло.\n"
+"Не удалось удалить прививку\n"
 "\n"
-"Эта сессия GNUmed теперь истекла.\n"
+" %s - %s (#%s)\n"
 "\n"
-"Вам придется закрыть этого клиента и\n"
-"перезапустить новую сессию GNUmed."
+"Вероятно, зарегистрирована в прививках."
 
-msgid ""
-"Please enter a short note on what you\n"
-"were about to do in GNUmed:"
-msgstr ""
-"Введите короткое примечание,\n"
-"где Вы работали в GNUmed:"
+msgid "Deleting vaccine"
+msgstr "Удаление вакцины"
 
-msgid "Sending bug report"
-msgstr "Отправка отчета об ошибке"
+msgid "fake"
+msgstr "фальсификат"
 
 msgid ""
-"Edit the list of email addresses to send the\n"
-"bug report to (separate addresses by spaces).\n"
 "\n"
-"Note that <gnumed-bugs at gnu.org> refers to\n"
-"the public (!) GNUmed bugs mailing list."
+"The vaccines currently known to GNUmed.\n"
 msgstr ""
-"Измените список адресов электронной почты\n"
-"для отправки отчета об ошибке (разделите адреса\n"
-"пробелами).\n"
 "\n"
-"Обратите внимание, что <gnumed-bugs at gnu.org>\n"
-"относится к публичному (!) списку рассылок GNUmed."
+"Вакцины, в настоящее время известные в GNUmed.\n"
+
+msgid "Showing vaccines."
+msgstr "Отображение вакцин."
+
+msgid "Enter or select the batch/lot number of the vaccine used."
+msgstr "Введите или выберите номер пакета/партии используемой вакцины."
+
+msgid "Saving vaccine"
+msgstr "Сохранение вакцины"
 
 #, python-format
 msgid ""
-"Your bug report will be sent to:\n"
+"This vaccine is already in use:\n"
 "\n"
-"%s\n"
+" \"%s\"\n"
+" (%s)\n"
 "\n"
-"Make sure you have reviewed the log file for potentially\n"
-"sensitive information before sending out the bug report.\n"
+"Are you absolutely positively sure that\n"
+"you really want to edit this vaccine ?\n"
 "\n"
-"Note that emailing the report may take a while depending\n"
-"on the speed of your internet connection.\n"
-msgstr ""
-"Отчет об ошибках будет отослан на:\n"
+"This will change the vaccine name and/or target\n"
+"conditions in each patient this vaccine was\n"
+"used in to document a vaccination with.\n"
+msgstr ""
+"Эта вакцина уже в использовании:\n"
 "\n"
-"%s\n"
+" \"%s\"\n"
+" (%s)\n"
 "\n"
-"Убедитесь, что просмотрели лог-файл на предмет\n"
-"потенциально важной информации перед отправкой\n"
-"сообщения об ошибке.\n"
+"Действительно уверены, что нужно\n"
+"изменить эту вакцину?\n"
 "\n"
-"Обратите внимание, что отправка отчета может занять\n"
-"некоторое время в зависимости от скорости подключения\n"
-"к Интернету.\n"
+"Будет изменено название вакцины и/или\n"
+"условия назначения по каждому пациенту,\n"
+"который использовал эту вакцину,\n"
+"в документе по прививкам.\n"
 
-msgid "Yes, send the bug report."
-msgstr "Да, отправить отчет об ошибках."
+msgid "You must select at least one indication."
+msgstr "Необходимо выбрать, по крайней мере, одно показание."
 
-msgid "No, do not send the bug report."
-msgstr "Нет, не отправлять отчет об ошибках."
+msgid "Pick the diseases this vaccine protects against."
+msgstr "Выберите заболевания, от которых защищает эта вакцина."
 
-msgid "include log file in bug report"
-msgstr "включить лог-файл в отчет об ошибках"
+msgid "This vaccine"
+msgstr "Эта вакцина"
+
+msgid "Adding new vaccinations"
+msgstr "Добавление новых прививок"
+
+msgid "Editing vaccination"
+msgstr "Изменение прививки"
+
+#, fuzzy
+msgid "vaccination recall"
+msgstr "Прививка"
+
+#, fuzzy, python-format
+msgid "vaccination recall (%s)"
+msgstr "График прививок"
 
+#, fuzzy, python-format
 msgid ""
-"The database you are connected to is marked as\n"
-"\"in-production with controlled access\".\n"
+"Existing vaccination:\n"
 "\n"
-"You indicated that you want to include the log\n"
-"file in your bug report. While this is often\n"
-"useful for debugging the log file might contain\n"
-"bits of patient data which must not be sent out\n"
-"without de-identification.\n"
+"%s"
+msgstr "Изменение прививки"
+
+msgid ""
 "\n"
-"Please confirm that you want to include the log !"
+"Complete vaccination history for this patient.\n"
 msgstr ""
-"База данных, к которой вы подключены, помечена\n"
-"как \"выполнение с контролируемым доступом\".\n"
 "\n"
-"Вы указали, что хотите включить лог-файл в\n"
-"отчет об ошибке. Хотя это часто полезно для\n"
-"отладки, лог-файл может содержать биты данных\n"
-"о пациентах, которые не должны отправляться без\n"
-"обезличивания.\n"
-"\n"
-"Подтвердите, что хотите включить журнал!"
-
-msgid "<not supplied>"
-msgstr "<не включать>"
-
-msgid "Bug report has been emailed."
-msgstr "Отчет об ошибках был отправлен."
-
-msgid "Bug report COULD NOT be emailed."
-msgstr "Отчет об ошибках НЕ МОЖЕТ быть отправлен."
-
-msgid "Underweight"
-msgstr "Вес ниже нормы"
+"Завершите анамнез прививок для этого пациента.\n"
 
-msgid "63< Normal >79"
-msgstr "63< Normal >79"
+msgid "Showing vaccinations."
+msgstr "Отображение прививок."
 
-msgid "63 - Normal - 79"
-msgstr "63 - Норма - 79"
+msgid "Intended to protect from"
+msgstr "Предназначен для защиты от"
 
-msgid "Overweight"
-msgstr "Избыточный вес"
+#, fuzzy
+msgid "Print vaccinations or recalls."
+msgstr "Прививка"
 
-msgid "Obese"
-msgstr "Тучный"
+#, fuzzy
+msgid "Recall"
+msgstr "Сведения о повторном вызове"
 
-msgid "Current height/mass"
-msgstr "Текущий рост/масса"
+#, fuzzy
+msgid "Add a recall for a vaccination"
+msgstr "Добавление новых прививок"
 
-msgid "Height (cm)"
-msgstr "Рост (см)"
+#, fuzzy
+msgid "Vx schedules"
+msgstr "Запланировано"
 
-msgid "Mass (kg)"
-msgstr "Масса (кг)"
+msgid "Open a browser showing vaccination schedules."
+msgstr "Открывает браузер, показывающий график прививок."
 
-msgid "Adjusted Values"
-msgstr "Регулируемые значения"
+msgid "prevention"
+msgstr "предотвращение"
 
-msgid "Goal mass"
-msgstr "Искомая масса"
+msgid "Saving vaccination"
+msgstr "Сохранение вакцинации"
 
-msgid "kg to lose"
-msgstr "потеря кг"
+msgid "Pick the diseases this vaccination was given against."
+msgstr "Выберите заболевания, против которых была применена эта вакцинация."
 
-msgid "BMI Calculator"
-msgstr "Калькулятор BMI"
+msgid "  IMMUNISATIONS  "
+msgstr "  ИММУНИЗАЦИЯ  "
 
-msgid "&Reset"
-msgstr "&Reset"
+msgid "Indications"
+msgstr "обозначения"
 
-msgid "Select a healthcare provider."
-msgstr "Выберите специалиста."
+msgid "Active Schedules"
+msgstr "Активные графики"
 
-msgid "Public (no clinical or demographic access)"
-msgstr ""
+msgid "Missing Immunisations"
+msgstr "Пропущенные иммунизации"
 
-msgid "Staff (demographic access only)"
-msgstr ""
+msgid "  Alerts  "
+msgstr "  Противопоказания  "
 
-msgid "staff (clerical)"
-msgstr ""
+msgid "ERROR: cannot retrieve active vaccination schedules"
+msgstr "ОШИБКА: невозможно восстановить активные графики прививок"
 
-msgid "full clinical access"
-msgstr ""
+msgid "no active vaccination schedules"
+msgstr "нет активных графиков прививок"
 
-msgid "DB account"
-msgstr "учетная запись ДБ"
+#, python-format
+msgid "%s for %s (%s shots): %s"
+msgstr "%s для %s (%s введений): %s"
 
-msgid "can login"
-msgstr "возможен вход в систему"
+msgid "ERROR: cannot retrieve due/overdue vaccinations"
+msgstr "ОШИБКА: невозможно восстановить ожидаемые/просроченные прививки"
 
-msgid "can not login"
-msgstr "вход в систему не возможен"
+#, python-format
+msgid "%.0d weeks left: shot %s for %s in %s, due %s (%s)"
+msgstr "%.0d недель спустя: введение %s для %s в %s, ожидаемое %s (%s)"
 
-msgid "Activating GNUmed user."
-msgstr "Активированный пользователь GNUmed."
+#, python-format
+msgid "overdue %.0dyrs %.0dwks: shot %s for %s in schedule \"%s\" (%s)"
+msgstr "просроченные %.0dyrs %.0dwks: введение %s для %s в графике \"%s\" (%s)"
 
-msgid "Deactivating GNUmed user."
-msgstr "Отключеный пользователь GNUmed."
+#, python-format
+msgid "due now: booster for %s in schedule \"%s\" (%s)"
+msgstr "ожидается сейчас: ревакцинация %s в графике \"%s\" (%s)"
 
-msgid "Removing GNUmed user."
-msgstr "Удаленный пользователь GNUmed."
+#, python-format
+msgid "Synopsis (%s)"
+msgstr "Синопсис (%s)"
 
-msgid "Removing GNUmed user"
-msgstr "Удаленный пользователь GNUmed"
+#, fuzzy
+msgid ""
+"Enter a short working name for this new problem\n"
+"(which will become a new, unassociated episode):\n"
+msgstr "Введите короткое рабочее название для этого нового заболевания:"
 
-msgid "Modifying GNUmed user."
-msgstr "Измененный пользователь GNUmed."
+#, fuzzy, python-format
+msgid ""
+"Enter a short working name for this new\n"
+"episode under the existing health issue\n"
+"\n"
+"\"%s\":\n"
+msgstr "Введите короткое рабочее название для этого нового заболевания:"
 
-msgid "Failed to save changes to GNUmed database user."
-msgstr "Сбой сохранения изменений для пользователя GNUmed."
+#, fuzzy
+msgid "Creating problem (episode) to save notelet under ..."
+msgstr "Создание проблемы (эпизода) для сохранения заметки под ..."
 
-msgid "Modifying GNUmed user"
-msgstr "Измененный пользователь GNUmed"
+msgid "Cannot save a new problem without a name."
+msgstr "Не удалось сохранить новую задачу без имени."
 
-#, fuzzy, python-format
-msgid "Failed to set role [%s] for GNUmed database user."
-msgstr "Сбой сохранения изменений для пользователя GNUmed."
+msgid "saving progress note"
+msgstr "сохранение рабочей записи"
 
 #, python-format
 msgid ""
+"The new episode:\n"
 "\n"
-"  %s \"%s\" %s\n"
-"  born: %s"
+" \"%s\"\n"
+"\n"
+"will remain unassociated despite the editor\n"
+"having been invoked from the health issue:\n"
+"\n"
+" \"%s\""
 msgstr ""
+"Новый эпизод:\n"
 "\n"
-"  %s \"%s\" %s\n"
-"  родившийся: %s"
+" \"%s\"\n"
+"\n"
+"останется несвязанным, несмотря на то, что\n"
+"редактор был вызван из медицинской проблемы:\n"
+"\n"
+" \"%s\""
 
-msgid ""
-"Password entries do not match. Please type in the passwords again to rule "
-"out typos."
-msgstr ""
-"Ввод пароля не совпадает. Введите пароль снова для исправления опечаток."
+#, fuzzy
+msgid "Adding substance abuse"
+msgstr "Добавление способа введения вещества"
 
-msgid "Adding GNUmed user"
-msgstr "Добавление пользователя GNUmed"
+#, fuzzy
+msgid "Editing substance abuse"
+msgstr "Изменение применяемого вещества"
 
-msgid ""
-"Are you positively sure you want to create\n"
-"a user with an empty password ?\n"
-"\n"
-"Think about the record access implications !"
+msgid "Substances abused by the patient:"
 msgstr ""
-"Действительно уверены, что нужно\n"
-"создать пользователя с пустым паролем?\n"
-"\n"
-"Подумайте о последствиях доступа к регистрации!"
-
-msgid "Enlisting person as user."
-msgstr "Зарегистрировать персону как пользователь."
 
-msgid "Encrypt"
-msgstr "Шифровать"
-
-msgid "Decrypt"
-msgstr "Расшифровать"
-
-msgid "Set pass phrase"
-msgstr "Установить пароль"
-
-msgid "This is not correctly encrypted text!"
-msgstr "Этот текст неправильно зашифрован!"
-
-msgid "Please enter your pass phrase:"
-msgstr "Введите пароль:"
-
-msgid "Pass phrase expired"
-msgstr "Истекло время на пароль"
-
-msgid ""
-"\n"
-"Conditions preventable by vaccination as currently known to GNUmed.\n"
-msgstr ""
-"\n"
-"Условия, предупреждаемые через прививки, в настоящее время известные "
-"GNUmed.\n"
-
-msgid "Showing vaccination preventable conditions."
-msgstr "Отображение условий, предотвращаемых прививками."
-
-msgid "ATCs: single-condition vaccines"
-msgstr "ATC: однокомпонентные вакцины"
-
-msgid "ATCs: multi-condition vaccines"
-msgstr "ATC: многокомпонентные вакцины"
-
-msgid "Pick the relevant indications."
-msgstr "Выберите подходящие показания."
-
-msgid "Known indications"
-msgstr "Известные показания"
-
-msgid "Adding new vaccine"
-msgstr "Добавление новой вакцины"
-
-msgid "Editing vaccine"
-msgstr "Изменение вакцины"
-
-#, python-format
-msgid ""
-"Cannot delete vaccine\n"
-"\n"
-" %s - %s (#%s)\n"
-"\n"
-"It is probably documented in a vaccination."
-msgstr ""
-"Не удалось удалить прививку\n"
-"\n"
-" %s - %s (#%s)\n"
-"\n"
-"Вероятно, зарегистрирована в прививках."
-
-msgid "Deleting vaccine"
-msgstr "Удаление вакцины"
-
-msgid "fake"
-msgstr "фальсификат"
+#, fuzzy
+msgid "Showing abused substances."
+msgstr "Отображение веществ для применения."
 
-msgid ""
-"\n"
-"The vaccines currently known to GNUmed.\n"
+msgid "Intake"
 msgstr ""
-"\n"
-"Вакцины, в настоящее время известные в GNUmed.\n"
-
-msgid "Showing vaccines."
-msgstr "Отображение вакцин."
-
-msgid "Enter or select the batch/lot number of the vaccine used."
-msgstr "Введите или выберите номер пакета/партии используемой вакцины."
 
-msgid "Saving vaccine"
-msgstr "Сохранение вакцины"
-
-#, python-format
-msgid ""
-"This vaccine is already in use:\n"
-"\n"
-" \"%s\"\n"
-" (%s)\n"
-"\n"
-"Are you absolutely positively sure that\n"
-"you really want to edit this vaccine ?\n"
-"\n"
-"This will change the vaccine name and/or target\n"
-"conditions in each patient this vaccine was\n"
-"used in to document a vaccination with.\n"
+msgid "nicotine"
 msgstr ""
-"Эта вакцина уже в использовании:\n"
-"\n"
-" \"%s\"\n"
-" (%s)\n"
-"\n"
-"Действительно уверены, что нужно\n"
-"изменить эту вакцину?\n"
-"\n"
-"Будет изменено название вакцины и/или\n"
-"условия назначения по каждому пациенту,\n"
-"который использовал эту вакцину,\n"
-"в документе по прививкам.\n"
-
-msgid "You must select at least one indication."
-msgstr "Необходимо выбрать, по крайней мере, одно показание."
-
-msgid "Pick the diseases this vaccine protects against."
-msgstr "Выберите заболевания, от которых защищает эта вакцина."
-
-msgid "This vaccine"
-msgstr "Эта вакцина"
-
-msgid "Adding new vaccinations"
-msgstr "Добавление новых прививок"
-
-msgid "Editing vaccination"
-msgstr "Изменение прививки"
 
 #, fuzzy
-msgid "vaccination recall"
-msgstr "Прививка"
-
-#, fuzzy, python-format
-msgid "vaccination recall (%s)"
-msgstr "График прививок"
+msgid "unit"
+msgstr "единицы измерения"
 
 #, fuzzy, python-format
-msgid ""
-"Existing vaccination:\n"
-"\n"
-"%s"
-msgstr "Изменение прививки"
-
-msgid ""
-"\n"
-"Complete vaccination history for this patient.\n"
-msgstr ""
-"\n"
-"Завершите анамнез прививок для этого пациента.\n"
-
-msgid "Showing vaccinations."
-msgstr "Отображение прививок."
-
-msgid "Intended to protect from"
-msgstr "Предназначен для защиты от"
-
-#, fuzzy
-msgid "Print vaccinations or recalls."
-msgstr "Прививка"
-
-#, fuzzy
-msgid "Recall"
-msgstr "Сведения о повторном вызове"
-
-#, fuzzy
-msgid "Add a recall for a vaccination"
-msgstr "Добавление новых прививок"
-
-#, fuzzy
-msgid "Vx schedules"
-msgstr "Запланировано"
-
-msgid "Open a browser showing vaccination schedules."
-msgstr "Открывает браузер, показывающий график прививок."
-
-msgid "prevention"
-msgstr "предотвращение"
-
-msgid "Saving vaccination"
-msgstr "Сохранение вакцинации"
-
-msgid "Pick the diseases this vaccination was given against."
-msgstr "Выберите заболевания, против которых была применена эта вакцинация."
-
-msgid "  IMMUNISATIONS  "
-msgstr "  ИММУНИЗАЦИЯ  "
-
-msgid "Indications"
-msgstr "обозначения"
-
-msgid "Active Schedules"
-msgstr "Активные графики"
-
-msgid "Missing Immunisations"
-msgstr "Пропущенные иммунизации"
-
-msgid "  Alerts  "
-msgstr "  Противопоказания  "
-
-msgid "ERROR: cannot retrieve active vaccination schedules"
-msgstr "ОШИБКА: невозможно восстановить активные графики прививок"
-
-msgid "no active vaccination schedules"
-msgstr "нет активных графиков прививок"
-
-#, python-format
-msgid "%s for %s (%s shots): %s"
-msgstr "%s для %s (%s введений): %s"
-
-msgid "ERROR: cannot retrieve due/overdue vaccinations"
-msgstr "ОШИБКА: невозможно восстановить ожидаемые/просроченные прививки"
-
-#, python-format
-msgid "%.0d weeks left: shot %s for %s in %s, due %s (%s)"
-msgstr "%.0d недель спустя: введение %s для %s в %s, ожидаемое %s (%s)"
-
-#, python-format
-msgid "overdue %.0dyrs %.0dwks: shot %s for %s in schedule \"%s\" (%s)"
-msgstr "просроченные %.0dyrs %.0dwks: введение %s для %s в графике \"%s\" (%s)"
-
-#, python-format
-msgid "due now: booster for %s in schedule \"%s\" (%s)"
-msgstr "ожидается сейчас: ревакцинация %s в графике \"%s\" (%s)"
-
-#, python-format
-msgid "Latest: %s ago (%s %s %s %s%s)"
+msgid "Latest: %s ago (%s %s%s%s%s)"
 msgstr "Последний: %s тому назад (%s %s %s %s%s)"
 
-#, python-format
-msgid "%s %s %s %s (%s ago, %s)"
+#, fuzzy, python-format
+msgid "%s %s%s%s (%s ago, %s)"
 msgstr "%s %s %s %s (%s тому назад, %s)"
 
 #, fuzzy, python-format
@@ -10660,6 +10954,13 @@ msgstr "подлежит %s: %s"
 msgid "due in %s%s"
 msgstr "подлежит %s: %s"
 
+msgid "suppr'd:"
+msgstr ""
+
+#, fuzzy
+msgid "Suppressed hints:\n"
+msgstr "рабочие записи"
+
 msgid ""
 "Do you really want to\n"
 "delete this inbox message ?"
@@ -10712,10 +11013,18 @@ msgid ""
 "Please check patient age, patient gender, time until/since EDC."
 msgstr ""
 
-#, python-format
-msgid "%s Vacc: %s"
+#, fuzzy, python-format
+msgid "%s Vacc: %s (latest of %s)"
 msgstr "%s Вакц: %s"
 
+#, fuzzy, python-format
+msgid "Hx of addiction: %s"
+msgstr "Госпитализации: %s"
+
+#, fuzzy
+msgid "active substance abuse"
+msgstr "Применяемые вещества"
+
 #, python-format
 msgid "%s %s %s%s"
 msgstr "%s %s %s%s"
@@ -10911,21 +11220,145 @@ msgstr ""
 "\n"
 "Нужно добавить его через вкладку сведений о пациенте.\n"
 
-msgid "You must select a value from the picklist or type an exact match."
-msgstr ""
-"Необходимо выбрать значение из выпадающего списка или ввести точно "
-"соответствующий."
+msgid "You need to actually set an editor."
+msgstr "Действительно нужно установить редактор."
+
+#, python-format
+msgid "The command [%s] is not found."
+msgstr "Команда [%s] не найдена."
 
 #, python-format
 msgid ""
-"The content is invalid. It must match the regular expression: [%%s]. <%s>"
+"Enter the shell command with which to start\n"
+"the image editor for visual progress notes.\n"
+"\n"
+"Any \"%(img)s\" included with the arguments\n"
+"will be replaced by the file name of the\n"
+"note template."
 msgstr ""
-"Содержание неверно. Оно должно соответствовать регулярному выражению: [%%s]. "
-"<%s>"
-
-msgid "Latin"
-msgstr "Латинский"
-
+"Введите команду shell, с которой запускать\n"
+"редактор изображений для рабочих записей.\n"
+"\n"
+"Любые \"%(img)s\" , включенные с аргументами,\n"
+"будут перемещены посредством имени\n"
+"файла из шаблона записи."
+
+msgid "Choose file to use as template for new visual progress note"
+msgstr ""
+"Выберите файл для использования в качестве шаблона для новой визуальной\n"
+"рабочей записи"
+
+msgid "Visual progress note source"
+msgstr "Источник визуальной рабочей записи"
+
+msgid "From which source do you want to pick the image template ?"
+msgstr "Из какого источника нужно выбрать шаблон изображения?"
+
+msgid "Database"
+msgstr "База данных"
+
+msgid "List of templates in the database."
+msgstr "Список шаблонов в базе данных."
+
+msgid "Files in the filesystem."
+msgstr "Файлы в файловой системе."
+
+msgid "Device"
+msgstr "Устройство"
+
+msgid "Image capture devices (scanners, cameras, etc)"
+msgstr "Устройство захвата изображения (сканеры, камеры и проч.)"
+
+#, python-format
+msgid "Cannot export visual progress note template for [%s]."
+msgstr "Не удалось экспортировать шаблон рабочей записи изображения для [%s]."
+
+msgid "Cannot export visual progress note to file."
+msgstr "Не удалось экспортировать визуальную рабочую запись в файл."
+
+msgid "Editor for visual progress note not configured."
+msgstr "Редактор для визуальной рабочей записи не настроен."
+
+#, python-format
+msgid ""
+"There was a problem with running the editor\n"
+"for visual progress notes.\n"
+"\n"
+" [%s]\n"
+"\n"
+msgstr ""
+"Имелась проблема с запуском редактора для визуальных рабочих записей.\n"
+"\n"
+" [%s]\n"
+"\n"
+
+msgid "Editing visual progress note"
+msgstr "Изменение визуальной рабочей записи"
+
+#, python-format
+msgid ""
+"There was a problem reading the visual\n"
+"progress note from the file:\n"
+"\n"
+" [%s]\n"
+"\n"
+msgstr ""
+"Имелась проблема чтения визуальной\n"
+"рабочей записи из файла:\n"
+"\n"
+" [%s]\n"
+"\n"
+
+msgid "Saving visual progress note"
+msgstr "Сохранение визуальной рабочей записи"
+
+msgid ""
+"You either created a visual progress note from a template\n"
+"in the database (rather than from a file on disk) or you\n"
+"edited an existing visual progress note.\n"
+"\n"
+"The template/original was not modified at all, however.\n"
+"\n"
+"Do you still want to save the unmodified image as a\n"
+"visual progress note into the EMR of the patient ?\n"
+msgstr ""
+"Вы, либо создали визуальную рабочую запись из\n"
+"шаблона в базе данных (а не из файла на диске),\n"
+"либо изменили существующую.\n"
+"\n"
+"Как бы то ни было, шаблон или оригинал\n"
+"совсем не изменились.\n"
+"\n"
+"По-прежнему нужно сохранить как неизмененную\n"
+"визуальную рабочую запись\n"
+"изображения в EMR пациента?\n"
+
+msgid "visual progress notes"
+msgstr "визуальные рабочие записи"
+
+#, fuzzy, python-format
+msgid " [part 1 of %s]"
+msgstr "часть %s: %s"
+
+#, fuzzy, python-format
+msgid "Created: %s%s"
+msgstr "Создано: %s"
+
+msgid "You must select a value from the picklist or type an exact match."
+msgstr ""
+"Необходимо выбрать значение из выпадающего списка или ввести точно "
+"соответствующий."
+
+#, python-format
+msgid ""
+"The content is invalid. It must match the regular expression: [%%s]. <%s>"
+msgstr ""
+"Содержание неверно. Оно должно соответствовать регулярному выражению: [%%s]. "
+"<%s>"
+
+msgid "Latin"
+msgstr "Латинский"
+
 msgid "Greek"
 msgstr "Греческий"
 
@@ -11001,11 +11434,13 @@ msgstr ""
 msgid "no address type replacement selected"
 msgstr "не выбрана замена типа адреса"
 
-#, python-format
+#, fuzzy, python-format
 msgid ""
-"%(street)s %(number)s, %(postcode)s %(urb)s, %(l10n_state)s, %(l10n_country)s"
+"%(street)s %(number)s, %(postcode)s %(urb)s, %(l10n_region)s, "
+"%(l10n_country)s"
 msgstr ""
-"%(street)s %(number)s, %(postcode)s %(urb)s, %(l10n_state)s, %(l10n_country)s"
+"%(street)s %(number)s, %(postcode)s %(urb)s, %(l10n_region)s, "
+"%(l10n_country)s"
 
 #, python-format
 msgid "no URL for comm channel [%s]"
@@ -11665,11 +12100,11 @@ msgstr "Адресные сведения должны быть внесены 
 msgid "Saving contact data"
 msgstr "Сохранение данных по контакту"
 
-#, python-format
+#, fuzzy, python-format
 msgid ""
 "Cannot save address.\n"
 "\n"
-"Does the state [%s]\n"
+"Does the region [%s]\n"
 "exist in country [%s] ?"
 msgstr ""
 "Не удалось сохранить адрес.\n"
@@ -12147,8 +12582,8 @@ msgstr "подлежит %s: %s"
 msgid "Reminders for the current patient"
 msgstr "Написать письмо для текущего пациента."
 
-msgid "Sent"
-msgstr "Отправить"
+msgid "Generated"
+msgstr "Создано"
 
 #, fuzzy
 msgid "Category - Type"
@@ -12205,9 +12640,6 @@ msgid ""
 "Data: %s"
 msgstr "Сообщение: %s"
 
-msgid "Inbox Message Actions:"
-msgstr "Действия сообщений в почтовом ящике"
-
 msgid "Activate patient"
 msgstr "Активировать пациента"
 
@@ -13021,7 +13453,7 @@ msgid ""
 msgstr ""
 
 #, python-format
-msgid "Select branch (of praxis [%s]) which you are logging in from.\n"
+msgid "Select the branch of praxis [%s] which you are logging in from.\n"
 msgstr ""
 
 msgid "Praxis branch selection ..."
@@ -13422,6 +13854,14 @@ msgstr "Выбор адреса посредством ввода"
 msgid "List of addresses related to this person."
 msgstr "Список адресов, связанных с этой персоной."
 
+#, fuzzy
+msgid "Map"
+msgstr "Гражданин"
+
+#, fuzzy
+msgid "Show selected address on map"
+msgstr "должен выбрать адрес"
+
 msgid "Adding new address"
 msgstr "Добавление нового адреса."
 
@@ -13623,8 +14063,99 @@ msgid "generic multi choice dialog"
 msgstr "диалоговое окно выбора нескольких дженериков"
 
 #, fuzzy
-msgid "Search in list"
-msgstr "Наличие поиска"
+msgid "Deleting list items"
+msgstr "Удаление пункта счета"
+
+#, python-format
+msgid ""
+"You have selected %s list items.\n"
+"\n"
+"Really delete all %s items ?"
+msgstr ""
+
+#, fuzzy
+msgid ""
+"Select the items you want to work on.\n"
+"\n"
+"A discontinuous selection may depend on your holding down a platform-"
+"dependent modifier key (<CTRL>, <ALT>, etc) or key combination (eg. <CTRL-"
+"SHIFT> or <CTRL-ALT>) while clicking."
+msgstr ""
+"Выбирите пункты, под которыми хотите работать.\n"
+"\n"
+"Прерывистый выбор может зависеть от платформо-зависимыхключей модификаторов "
+"(<ctrl>, <alt>, etc) или комбинации ключей\n"
+"(например, <ctrl-shift> или <ctrl-alt>) при нажатии."
+
+#, fuzzy
+msgid "List Item Actions:"
+msgstr "Действия с эпизодом:"
+
+msgid "Add (<INS>)"
+msgstr ""
+
+#, fuzzy
+msgid "Delete (<DEL>)"
+msgstr " Удалить "
+
+msgid "Find (<CTRL-F>)"
+msgstr ""
+
+#, python-format
+msgid "Find next [%s] (<CTRL-N>)"
+msgstr ""
+
+msgid "Row tooltip"
+msgstr ""
+
+#, fuzzy
+msgid "Row data (formatted as text)"
+msgstr "Не переформатировать текст"
+
+#, fuzzy
+msgid "Row content (as one line)"
+msgstr "Не переформатировать текст"
+
+msgid "Row content (one line per column)"
+msgstr ""
+
+#, python-format
+msgid "Column &%s: \"%s\" [#%s]"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "Column &%s: %s"
+msgstr "Документы: %s"
+
+#, fuzzy
+msgid "&Copy to clipboard..."
+msgstr "Невозможно скопировать в буфер."
+
+#, fuzzy
+msgid "Append (&+) to clipboard..."
+msgstr "Невозможно скопировать в буфер."
+
+#, python-format
+msgid ""
+"%s list items are selected.\n"
+"\n"
+"Really delete all %s items ?"
+msgstr ""
+
+#, fuzzy
+msgid "Enter the search term:"
+msgstr "Ввод условия для писка:"
+
+#, fuzzy
+msgid "List search"
+msgstr "Найти"
+
+#, fuzzy, python-format
+msgid ""
+"Current search term: [[%s]]\n"
+"\n"
+"%s"
+msgstr "Ввод условия для писка:"
 
 msgid "Monty the Serpent && the FSF Present"
 msgstr "Змея Monty && существующий FSF"
@@ -13791,6 +14322,10 @@ msgid "Unknown: ?"
 msgstr "Неизвестно: ?"
 
 #, fuzzy
+msgid "The text has been copied into the clipboard."
+msgstr "Удаление выбранного пункта(в) из списка."
+
+#, fuzzy
 msgid "file2clipboard"
 msgstr "Экспорт в &clipboard"
 
@@ -13798,6 +14333,44 @@ msgstr "Экспорт в &clipboard"
 msgid "The file [%s] has been copied into the clipboard."
 msgstr ""
 
+msgid "programmer forgot to specify error message"
+msgstr "программист забыл указать сообщение об ошибке"
+
+msgid ""
+"\n"
+"\n"
+"Please consult the error log for all the gory details !"
+msgstr ""
+"\n"
+"\n"
+"Обратитесь к журналу ошибок для уточнения всех этих подробностей!"
+
+msgid "generic error message"
+msgstr "общее сообщение об ошибке"
+
+msgid "programmer forgot to specify info message"
+msgstr "программист забыл указать информационное сообщение"
+
+msgid "generic info message"
+msgstr "общее информационное сообщение"
+
+msgid "programmer forgot to specify warning"
+msgstr "программист забыл указать предупреждение"
+
+msgid "generic warning message"
+msgstr "общее предупреждающее сообщение"
+
+#, fuzzy
+msgid "Editing EDC"
+msgstr "Тэг изменения"
+
+#, python-format
+msgid ""
+"Really delete the EDC documented previously ?\n"
+"\n"
+" EDC: %s"
+msgstr ""
+
 #, python-format
 msgid ""
 "Algorithm: %s\n"
@@ -13931,15 +14504,16 @@ msgstr "Фамилия"
 msgid "Firstname"
 msgstr "Имя"
 
-msgid "Nickname"
-msgstr "Никнейм"
-
 msgid "DOB"
 msgstr "Дата рождения"
 
 msgid "last visit"
 msgstr "последнее посещение"
 
+#, fuzzy
+msgid "Nickname / Comment"
+msgstr "Никнейм"
+
 msgid "found via"
 msgstr "найти через"
 
@@ -14182,446 +14756,144 @@ msgstr "<введите здесь поиск пациента>"
 msgid "In case of emergency contact:"
 msgstr "В экстренном случае свяжитесь с:"
 
-msgid ""
-"\n"
-"Please select the default drug data source from the list below.\n"
-"\n"
-"Note that to actually use it you need to have the database installed, too."
-msgstr ""
-"\n"
-"Выберите источник данных по препаратам\n"
-"по умолчанию из списка ниже.\n"
-"\n"
-"Учтите, что для его практического использования\n"
-"также необходима инсталляция базы данных."
-
-msgid "Drug data source"
-msgstr "Источник данных по препаратам"
+msgid "The preparation (form) of the substance or brand."
+msgstr "Лекарственная (форма) вещества или патентованного препарата."
 
-msgid "Configuring default drug data source"
-msgstr "Настройка источника данных по препаратам по умолчанию"
+#, fuzzy
+msgid "A substance with optional strength or a brand."
+msgstr "Вещество с необязательной активностью."
 
-msgid "No default drug database configured."
-msgstr "База данных по препаратам не настроена по умолчанию."
+#, fuzzy
+msgid "The medical aim for consuming this substance."
+msgstr "Цель употребления этого вещества."
 
-msgid "There is no default drug database configured."
-msgstr "Отсутствует настройка по умолчанию для базы данных по препаратам."
+msgid "not tolerated:"
+msgstr "недопустимый:"
 
-msgid "Jumping to drug database"
-msgstr "Переход к базе данных по препаратам."
+msgid "discontinued due to allergy or intolerance"
+msgstr "предотвратить возможность аллергии или непереносимости"
 
-#, python-format
-msgid "Cannot call IFAP via [%s]."
-msgstr "Не удалось вызвать IFAP через [%s]."
+msgid "Documented an allergy"
+msgstr "Зарегистрированная аллергия"
 
 #, python-format
-msgid "Cannot create IFAP <-> GNUmed transfer file [%s]."
-msgstr "Не удалось создать файл передачи IFAP <-> GNUmed [%s]."
-
-msgid "Current medication"
-msgstr "Текущее лекарство"
-
 msgid ""
+"An allergy was documented against the substance:\n"
 "\n"
-"The ATC codes as known to GNUmed.\n"
+"  [%s]\n"
+"\n"
+"This substance was taken with the multi-component brand:\n"
+"\n"
+"  [%s (%s)]\n"
+"\n"
+"Note that ALL components of this brand were discontinued."
 msgstr ""
+"Была зарегистрирована аллергия на вещество:\n"
 "\n"
-"Коды ATC, известные в GNUmed.\n"
-
-msgid "Showing ATC codes."
-msgstr "Отображение кодов ATC"
-
-msgid "Choose an ATC import config file"
-msgstr "Выбрать конфигурационный файл для импорта ATC"
-
-msgid "config files"
-msgstr "конфигурационные файлы"
-
-msgid "importing ATC reference data"
-msgstr "импорт справочных данных ATC"
-
-msgid "Successfully imported ATC reference data."
-msgstr "Справочные данные ATC успешно импортированы."
-
-msgid "Importing ATC reference data failed."
-msgstr "Импорт справочных данных ATC дал сбой."
-
-msgid "Select an ATC (Anatomical-Therapeutic-Chemical) code."
-msgstr "Выберите код ATC (Anatomical-Therapeutic-Chemical)"
+"  [%s]\n"
+"\n"
+"Это вещество включено в многокомпонентный патентованный препарат:\n"
+"\n"
+"  [%s (%s)]\n"
+"\n"
+"Учтите, что ВСЕ компоненты этого препарата были отменены."
 
-msgid "Cannot delete this substance. It is in use."
-msgstr "Не удалось удалить это вещество. Оно в использовании."
+#, fuzzy
+msgid "disapproved"
+msgstr "зарегистрированный"
 
-msgid ""
-"\n"
-"These are the consumable substances registered with GNUmed.\n"
+msgid "Substances consumed by the patient:"
 msgstr ""
-"\n"
-"Это зарегистрированные в GNUmed вещества для применения.\n"
 
 msgid "Showing consumable substances."
 msgstr "Отображение веществ для применения."
 
-msgid "Import"
-msgstr "Импортировать"
-
-msgid "Import consumable substances from a drug database."
-msgstr "Импорт веществ для применения из базы данных по препаратам."
-
-msgid "Cannot edit this substance. It is in use."
-msgstr "Не удалось изменить это вещество. Оно в использовании."
-
-msgid "Adding new consumable substance"
-msgstr "Добавление нового применяемого вещества"
-
-msgid "Editing consumable substance"
-msgstr "Изменение применяемого вещества"
+#, fuzzy
+msgid "Application"
+msgstr "Лекарства"
 
-msgid "Cannot save consumable substance. Missing essential input."
-msgstr "Не удалось сохранить применяемое вещество. Пропущен основной ввод."
+msgid "never"
+msgstr "никогда"
 
 #, python-format
-msgid "Cannot save consumable substance. %s"
-msgstr "Не удалось сохранить применяемое вещество. %s"
-
-msgid "Cannot remove this component from the drug. It is in use."
-msgstr "Не удалось удалить этот компонент из препарата. Он в использовании."
-
-msgid ""
-"\n"
-"These are the components in the drug brands known to GNUmed.\n"
-msgstr ""
-"\n"
-"Это компоненты препаратов, известные GNUmed.\n"
-
-msgid "Showing drug brand components."
-msgstr "Отображение патентованных компонентов препаратов."
+msgid "%s, last confirmed %s\n"
+msgstr "%s, последнее подтвержденное %s\n"
 
-msgid "Adding new drug component"
-msgstr "Добавление нового компонента препарата."
+#, python-format
+msgid "Comment (%s): %%s\n"
+msgstr "Комментарий (%s): %%s\n"
 
-msgid "Editing drug component"
-msgstr "Изменение компонента препарата"
+msgid "reaction not recorded"
+msgstr "реакция не зарегистрирована"
 
-msgid "Cannot edit drug component. It is in use."
-msgstr "Не удалось изменить компонент препарата. Он в использовании."
+#, fuzzy
+msgid "GFR: unknown"
+msgstr "неизвестно"
 
-msgid "Cannot save drug component. Invalid or missing essential input."
+msgid "GFR reported by path lab"
 msgstr ""
-"Не удалось сохранить компонент препарата. Неправильный или пропущенный "
-"основной ввод."
 
-msgid "A drug component with optional strength."
-msgstr "Компонент препарата с необязательным содержанием активного вещества."
-
-msgid "The preparation (form) of the substance or brand."
-msgstr "Лекарственная (форма) вещества или патентованного препарата."
-
-msgid "The substance with optional strength."
-msgstr "Вещество с необязательной активностью."
+#, fuzzy
+msgid "<no components>"
+msgstr "Компоненты"
 
-msgid "Managing components of a drug"
-msgstr "Составление компонентов препарата."
+msgid "Adding substance intake entry"
+msgstr "Добавление способа введения вещества"
 
 #, python-format
 msgid ""
-"Cannot manage the components of the branded drug product\n"
+"The patient is already taking\n"
 "\n"
-" \"%s\" (%s)\n"
+" %s\n"
 "\n"
-"because it is currently taken by patients.\n"
+"You will want to adjust the schedule\n"
+"rather than document the intake twice."
 msgstr ""
-"Не удалось составить компоненты патентованного препарата\n"
+"Пациент уже принимает\n"
 "\n"
-" \"%s\" (%s)\n"
+" %s\n"
 "\n"
-"так как его в настоящее время принимают пациенты.\n"
-
-msgid "Pick the substances which are components of this drug."
-msgstr "Выберите вещества, которые являютмя компонентами этого препарата."
+"Желательно настроить назначение,\n"
+"а не документировать дважды."
 
-msgid "Components of drug"
-msgstr "Компоненты препарата"
+msgid "Input incomplete/invalid for saving as substance intake."
+msgstr "Сохранение способа введения вещества не выполнено или дало сбой."
 
 #, python-format
-msgid ""
-"Adjust the components of \"%s\"\n"
-"\n"
-"The drug must contain at least one component. Any given\n"
-"substance can only be included once per drug."
+msgid "Discontinued (%s) in the future (now: %s)!"
 msgstr ""
-"Состав компонентов \"%s\"\n"
-"\n"
-"Препарат должен содержать, по крайней мере,\n"
-"один компонент. Любое предоставленное вещество\n"
-"может быть включено в препарат только однократно."
-
-msgid "Managing components of a drug ..."
-msgstr "Составление компонентов препарата ..."
-
-msgid "not in use"
-msgstr "не используются"
-
-#, python-format
-msgid "ATC: %s\n"
-msgstr "ATC: %s\n"
-
-msgid "Editing medication"
-msgstr "Изменение лекарства"
 
 #, python-format
-msgid ""
-"Cannot edit the medication\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is a vaccine. Please edit it\n"
-"from the vaccine management section !\n"
+msgid "Discontinued (%s) before started (%s) !"
 msgstr ""
-"Не удалось изменить это лекарство\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"так как это вакцина. Редактируйте\n"
-"его в резделе настройки вакцин!\n"
 
-msgid "Deleting medication"
-msgstr "Удаление лекарства"
+msgid "Cannot add duplicate of (maybe inactive) substance intake."
+msgstr "Не удалось дважды добавить способ введения вещества."
 
 #, python-format
 msgid ""
-"Cannot delete the medication\n"
 "\n"
-" \"%s\" (%s)\n"
+"[%s]\n"
 "\n"
-"because it is a vaccine. Please delete it\n"
-"from the vaccine management section !\n"
+"It may be prudent to edit (before deletion) the details\n"
+"of this substance intake entry so as to leave behind\n"
+"some indication of why it was deleted.\n"
 msgstr ""
-"Не удалось удалить лекарство\n"
-"\n"
-" \"%s\" (%s)\n"
 "\n"
-"так как это вакцина. Удаляйте\n"
-"его в резделе настройки вакцин!\n"
-
-msgid ""
-"\n"
-"These are the drug brands known to GNUmed.\n"
-msgstr ""
+"[%s]\n"
 "\n"
-"Это патентированный препараты, известные GNUmed.\n"
+"Возможно, разумнее изменить (до удаления)\n"
+"сведения по этому способу введения вещества,\n"
+"так как остаются некоторые указатели причины его удаления.\n"
 
-msgid "Showing branded drugs."
-msgstr "Отображение патентированных препаратов."
+msgid "Deleting medication / substance intake"
+msgstr "Удаление способа введения лекарства или вещества"
 
-msgid "Import substances and brands from a drug database."
-msgstr "Импорт веществ и патентированных препаратов из базы данных препаратов."
+msgid "Allow editing of substance intake entry before deletion."
+msgstr "Разрешить изменение способа введения вещества до удаления."
 
-msgid "Editing drug"
-msgstr "Изменение препаратов"
-
-#, python-format
-msgid ""
-"Cannot edit the branded drug product\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is currently taken by patients.\n"
-msgstr ""
-"Не удалось изменить патентированный препарат\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"так как его в настоящее время принимают пациенты.\n"
-
-msgid "Adding new drug brand"
-msgstr "Добавление нового патентированного препарата"
-
-msgid "Editing drug brand"
-msgstr "Изменение патентированного препарата"
-
-msgid "Manage consumable substances"
-msgstr "Управление вводимыми компонентами"
-
-msgid "Cannot edit drug brand. It is in use."
-msgstr "Не удалось изменить патентированный препарат. Он в использовании."
-
-msgid "Checking brand data"
-msgstr "Проверка патентированного препарата"
-
-#, python-format
-msgid ""
-"The brand information you entered:\n"
-"\n"
-" [%s %s]\n"
-"\n"
-"already exists as a drug product."
-msgstr ""
-
-msgid ""
-"You have not selected any substances\n"
-"as drug components.\n"
-"\n"
-"Without components you will not be able to\n"
-"use this drug for documenting patient care.\n"
-"\n"
-"Are you sure you want to save\n"
-"it without components ?"
-msgstr ""
-"Ни одно вещество не выбрано\n"
-"как компонент препарата.\n"
-"\n"
-"Без компонентов невозможно использовать этот\n"
-"препарат для документированного лечения пациента.\n"
-"\n"
-"Уверены, что нужно сохранить его без компонентов?"
-
-msgid "Cannot save branded drug. Invalid or missing essential input."
-msgstr ""
-"Не удалось сохранить патентированный препарат.\r\n"
-"Неправильный или пропущенный основной ввод."
-
-msgid ""
-"The brand name of the drug.\n"
-"\n"
-"Note: a brand name will need to be linked to\n"
-"one or more components before it can be used,\n"
-"except in the case of fake (generic) vaccines."
-msgstr ""
-"Патентированное название препарата.\n"
-"\n"
-"Примечание: патентированное название\n"
-"необходимо связать с одним или более\n"
-"компонентом до возможного использования,\n"
-"кроме случаев непатентованных вакцин (дженерик)."
-
-#, fuzzy
-msgid "The medical aim for consuming this substance."
-msgstr "Цель употребления этого вещества."
-
-msgid "not tolerated:"
-msgstr "недопустимый:"
-
-msgid "discontinued due to allergy or intolerance"
-msgstr "предотвратить возможность аллергии или непереносимости"
-
-msgid "Documented an allergy"
-msgstr "Зарегистрированная аллергия"
-
-#, python-format
-msgid ""
-"An allergy was documented against the substance:\n"
-"\n"
-"  [%s]\n"
-"\n"
-"This substance was taken with the multi-component brand:\n"
-"\n"
-"  [%s (%s)]\n"
-"\n"
-"Note that ALL components of this brand were discontinued."
-msgstr ""
-"Была зарегистрирована аллергия на вещество:\n"
-"\n"
-"  [%s]\n"
-"\n"
-"Это вещество включено в многокомпонентный патентованный препарат:\n"
-"\n"
-"  [%s (%s)]\n"
-"\n"
-"Учтите, что ВСЕ компоненты этого препарата были отменены."
-
-#, fuzzy
-msgid "disapproved"
-msgstr "зарегистрированный"
-
-msgid "Substances consumed by the patient:"
-msgstr ""
-
-msgid "Intake"
-msgstr ""
-
-#, fuzzy
-msgid "Application"
-msgstr "Лекарства"
-
-msgid "never"
-msgstr "никогда"
-
-#, python-format
-msgid "%s, last confirmed %s\n"
-msgstr "%s, последнее подтвержденное %s\n"
-
-#, python-format
-msgid "Comment (%s): %%s\n"
-msgstr "Комментарий (%s): %%s\n"
-
-msgid "reaction not recorded"
-msgstr "реакция не зарегистрирована"
-
-#, fuzzy
-msgid "GFR: unknown"
-msgstr "неизвестно"
-
-msgid "GFR reported by path lab"
-msgstr ""
-
-#, python-format
-msgid ""
-"The patient is already taking\n"
-"\n"
-" %s\n"
-"\n"
-"You will want to adjust the schedule\n"
-"rather than document the intake twice."
-msgstr ""
-"Пациент уже принимает\n"
-"\n"
-" %s\n"
-"\n"
-"Желательно настроить назначение,\n"
-"а не документировать дважды."
-
-msgid "Adding substance intake entry"
-msgstr "Добавление способа введения вещества"
-
-msgid "Input incomplete/invalid for saving as substance intake."
-msgstr "Сохранение способа введения вещества не выполнено или дало сбой."
-
-#, python-format
-msgid "Discontinued (%s) in the future (now: %s)!"
-msgstr ""
-
-#, python-format
-msgid "Discontinued (%s) before started (%s) !"
-msgstr ""
-
-msgid "Cannot add duplicate of (maybe inactive) substance intake."
-msgstr "Не удалось дважды добавить способ введения вещества."
-
-#, python-format
-msgid ""
-"\n"
-"[%s]\n"
-"\n"
-"It may be prudent to edit (before deletion) the details\n"
-"of this substance intake entry so as to leave behind\n"
-"some indication of why it was deleted.\n"
-msgstr ""
-"\n"
-"[%s]\n"
-"\n"
-"Возможно, разумнее изменить (до удаления)\n"
-"сведения по этому способу введения вещества,\n"
-"так как остаются некоторые указатели причины его удаления.\n"
-
-msgid "Deleting medication / substance intake"
-msgstr "Удаление способа введения лекарства или вещества"
-
-msgid "Allow editing of substance intake entry before deletion."
-msgstr "Разрешить изменение способа введения вещества до удаления."
-
-msgid "Delete immediately without editing first."
-msgstr "Удаляет немедленно без предварительного изменения."
+msgid "Delete immediately without editing first."
+msgstr "Удаляет немедленно без предварительного изменения."
 
 msgid "&Cancel"
 msgstr "&Cancel"
@@ -14705,8 +14977,9 @@ msgstr "Недавно назначенные препараты"
 msgid "Add to medication list"
 msgstr "Добавить в лист назначений"
 
-msgid "Duration / Until"
-msgstr "Продолжительность / до"
+#, fuzzy
+msgid "Timeframe"
+msgstr "Время:"
 
 #, fuzzy, python-format
 msgid "%s <fake>"
@@ -14748,10 +15021,6 @@ msgstr "Подлежит: %s\n"
 msgid "eGFR:"
 msgstr ""
 
-#, fuzzy, python-format
-msgid "%s%s%s (%s ago)"
-msgstr "%s %s %s %s (%s тому назад, %s)"
-
 #, python-format
 msgid "eGFR: %.1f (%s)"
 msgstr ""
@@ -14934,14 +15203,21 @@ msgid ""
 "\n"
 " [%s]\n"
 "\n"
-"is not empty. Do you want to use it for saving the\n"
-"export area documents into, nevertheless ?\n"
+"already contains files. Do you still want to save the\n"
+"selected export area documents into that directory ?\n"
 "\n"
-"(this can be useful for including external documents)\n"
+"(this is useful for including the external documents\n"
+" already stored in or below this directory)\n"
 "\n"
 "[NO] will create a subdirectory for you and use that."
 msgstr ""
 
+msgid ""
+"Create descriptive metadata files\n"
+"and save them alongside the\n"
+"selected export area documents ?"
+msgstr ""
+
 #, fuzzy, python-format
 msgid ""
 "Saved to [%s]:\n"
@@ -15181,10 +15457,6 @@ msgid "This praxis"
 msgstr "Ваше заключение"
 
 #, fuzzy
-msgid "Hospital stay"
-msgstr "Больница"
-
-#, fuzzy
 msgid "Bill receiver"
 msgstr "Выбор пациента"
 
@@ -15223,40 +15495,92 @@ msgstr "Управление описаниями в документе"
 msgid "Select the episode under which to file the document ..."
 msgstr "Выберите эпизод, в котором зарегистрировать этот документ ..."
 
+msgid "Cannot create new document."
+msgstr "Не удалось создать новый документ."
+
+msgid "saving document"
+msgstr "сохранение документа"
+
 #, python-format
 msgid "Imported new document from %s."
 msgstr "Импортированный новый документ из %s."
 
-msgid "Enter a comment on the document."
-msgstr "Введите комментарий в этот документ."
-
-msgid "User defined"
-msgstr "Задано пользователем"
-
-msgid "In use"
-msgstr "В использовании"
-
-#, python-format
-msgid ""
-"Cannot delete document type\n"
-" [%s]\n"
-"because it is currently in use."
-msgstr ""
-"Не удалось удалить тип документа\n"
-" [%s]\n"
-"из-за того, что он в настоящее время используется."
+msgid "Successfully saved new document."
+msgstr "Новый документ успешно сохранен."
 
-msgid "deleting document type"
-msgstr "удаление типа документа"
+msgid "Successfully saved the new document."
+msgstr "Новый документ успешно сохранен."
 
-#, python-format
+#, fuzzy, python-format
 msgid ""
-"From the list below select the document type you want\n"
-"all documents currently classified as:\n"
+"The reference ID for the new document is:\n"
 "\n"
-" \"%s\"\n"
+" <%s>\n"
 "\n"
-"to be changed to.\n"
+"You probably want to write it down on the\n"
+"original documents.\n"
+"\n"
+"If you don't care about the ID you can switch\n"
+"off this message in the GNUmed configuration.\n"
+msgstr ""
+"Рекомендуемым ID для нового документа является:\n"
+"\n"
+" <%s>\n"
+"\n"
+"Возможно, захотите внести его в\n"
+"первоначальные документы.\n"
+"\n"
+"Если ID не интересует, то можете отключить\n"
+"это сообщение в конфигурации GNUmed."
+
+msgid "Saving document"
+msgstr "Сохраняемый документ"
+
+#, python-format
+msgid ""
+"Successfully imported files as document.\n"
+"\n"
+"Do you want to delete imported files from the filesystem ?\n"
+"\n"
+" %s\n"
+"\n"
+"Note that temporary files will be deleted anyway."
+msgstr ""
+
+#, fuzzy
+msgid "Removing files"
+msgstr "Уудаление адреса"
+
+msgid "Enter a comment on the document."
+msgstr "Введите комментарий в этот документ."
+
+msgid "User defined"
+msgstr "Задано пользователем"
+
+msgid "In use"
+msgstr "В использовании"
+
+#, python-format
+msgid ""
+"Cannot delete document type\n"
+" [%s]\n"
+"because it is currently in use."
+msgstr ""
+"Не удалось удалить тип документа\n"
+" [%s]\n"
+"из-за того, что он в настоящее время используется."
+
+msgid "deleting document type"
+msgstr "удаление типа документа"
+
+#, python-format
+msgid ""
+"From the list below select the document type you want\n"
+"all documents currently classified as:\n"
+"\n"
+" \"%s\"\n"
+"\n"
+"to be changed to.\n"
 "\n"
 "Be aware that this change will be applied to ALL such documents. If there\n"
 "are many documents to change it can take quite a while.\n"
@@ -15377,15 +15701,17 @@ msgstr ""
 msgid "Acquiring images"
 msgstr "Полученные изображения"
 
+msgid "directory dropped on client"
+msgstr ""
+
+msgid "file dropped on client"
+msgstr ""
+
 msgid "other documents"
 msgstr "другие документы"
 
-#, python-format
-msgid "part %s: %s"
-msgstr "часть %s: %s"
-
-msgid "saving document"
-msgstr "сохранение документа"
+msgid "path"
+msgstr ""
 
 msgid "No parts to save. Really save an empty document as a reference ?"
 msgstr ""
@@ -15439,17 +15765,26 @@ msgstr ""
 msgid "acquiring page"
 msgstr "полученная страница"
 
+#, fuzzy
+msgid "captured by imaging device"
+msgstr "Получить с устройства изображения"
+
 msgid "Choose a file"
 msgstr "Выбрать файл"
 
 msgid "all files (Win)"
 msgstr "все файлы (Win)"
 
-msgid "You must select a part before you can view it."
-msgstr "Перед просмотром части ее необходимо выбрать"
+msgid "picked from storage media"
+msgstr ""
 
-msgid "displaying part"
-msgstr "отображаемая часть"
+#, fuzzy
+msgid "pasted from clipboard"
+msgstr "Экспорт в &clipboard"
+
+#, fuzzy
+msgid "No part selected for viewing."
+msgstr "Нет результатов, выделенных для удаления."
 
 #, python-format
 msgid ""
@@ -15459,60 +15794,12 @@ msgstr ""
 "Не удалось отобразить часть документа:\n"
 "%s"
 
-msgid "You must select a part before you can delete it."
-msgstr "Перед удалением части ее необходимо выбрать."
-
-msgid "deleting part"
-msgstr "удаляемая часть"
-
-#, python-format
-msgid ""
-"The part has successfully been removed from the document.\n"
-"\n"
-"Do you also want to permanently delete the file\n"
-"\n"
-" [%s]\n"
-"\n"
-"from which this document part was loaded ?\n"
-"\n"
-"If it is a temporary file for a page you just scanned\n"
-"this makes a lot of sense. In other cases you may not\n"
-"want to lose the file.\n"
-"\n"
-"Pressing [YES] will permanently remove the file\n"
-"from your computer.\n"
-msgstr ""
-"Часть была успешно удалена из документа.\n"
-"\n"
-"Хотите также навсегда удалить файл\n"
-" [%s]\n"
-", из которого была загружена часть этого документа?\n"
-"\n"
-"Если это просто временный файл для сканированной\n"
-"страницы, тогда удаление имеет смысл. В других\n"
-"случаях нежелательно терять этот файл.\n"
-"\n"
-"Нажатие [YES] окончательно удалит этот файл\n"
-"с вашего компьютера.\n"
-
-msgid "Removing document part"
-msgstr "Удаляемая часть документа"
-
-#, python-format
-msgid ""
-"Cannot delete part in file [%s].\n"
-"\n"
-"You may not have write access to it."
-msgstr ""
-"Не удалось удалить часть в файле [%s].\n"
-"\n"
-"Нет права доступа на запись к нему."
-
-msgid "Cannot create new document."
-msgstr "Не удалось создать новый документ."
+msgid "displaying part"
+msgstr "отображаемая часть"
 
-msgid "Cannot update document metadata."
-msgstr "Не удалось обновление метаданных документа."
+#, fuzzy
+msgid "No part selected for removal."
+msgstr "Нет результатов, выделенных для удаления."
 
 msgid "Cannot add document description."
 msgstr "Не удалось добавить описание документа."
@@ -15520,36 +15807,13 @@ msgstr "Не удалось добавить описание документа
 msgid "Error setting \"reviewed\" status of new document."
 msgstr "Ошибка настройки \"рассматриваемого\" состояния нового документа."
 
-msgid "Successfully saved the new document."
-msgstr "Новый документ успешно сохранен."
-
-#, python-format
+#, fuzzy, python-format
 msgid ""
-"The reference ID for the new document is:\n"
-"\n"
-" <%s>\n"
-"\n"
-"You probably want to write it down on the\n"
-"original documents.\n"
-"\n"
-"If you don't care about the ID you can switch\n"
-"off this message in the GNUmed configuration."
-msgstr ""
-"Рекомендуемым ID для нового документа является:\n"
-"\n"
-" <%s>\n"
-"\n"
-"Возможно, захотите внести его в\n"
-"первоначальные документы.\n"
+"Source: %s\n"
+"File: %s\n"
 "\n"
-"Если ID не интересует, то можете отключить\n"
-"это сообщение в конфигурации GNUmed."
-
-msgid "Saving document"
-msgstr "Сохраняемый документ"
-
-msgid "Successfully saved new document."
-msgstr "Новый документ успешно сохранен."
+"%s"
+msgstr "Источник:%s\n"
 
 msgid "Document part does not seem to exist in database !"
 msgstr "Кажется, часть документа отсутствует в базе данных!"
@@ -15563,9 +15827,6 @@ msgstr "Список документов для этого пациента."
 msgid "Showing documents."
 msgstr "Отображает документы."
 
-msgid "Generated"
-msgstr "Создано"
-
 msgid "Ref #"
 msgstr "Ref #"
 
@@ -15875,6 +16136,159 @@ msgstr "Уверены, что нужно удалить этот докумен
 msgid "Deleting document"
 msgstr "Удаление документа"
 
+#, fuzzy
+msgid "Study date"
+msgstr "Эксудативный"
+
+#, fuzzy
+msgid "Study time"
+msgstr "Запустить новое"
+
+msgid "Method"
+msgstr ""
+
+#, fuzzy
+msgid "Body part"
+msgstr "%s частей"
+
+#, fuzzy
+msgid "Time"
+msgstr "Время:"
+
+#, fuzzy
+msgid "Cannot connect without port (try 8042)."
+msgstr "Не удалось подготовить без сценария подготовки."
+
+#, python-format
+msgid "Connect to [%s] @ port %s as \"%s\"."
+msgstr ""
+
+#, fuzzy
+msgid "Cannot connect to PACS."
+msgstr "не удалось подключить к службе [%s]"
+
+#, python-format
+msgid "PACS: Orthanc \"%s\" (AET \"%s\", Version %s, DB v%s)"
+msgstr ""
+
+#, python-format
+msgid "GNUmed patient: %s (generic PACS ID)"
+msgstr ""
+
+#, python-format
+msgid "GNUmed patient: \"%(value)s\" @ [%(issuer)s] (stored PACS ID)"
+msgstr ""
+
+msgid "PACS: no patients with matching IDs found"
+msgstr ""
+
+msgid ""
+"PACS: more than one patient with matching IDs found, carefully check studies"
+msgstr ""
+
+#, python-format
+msgid "%s series"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "%%s (%s series)"
+msgstr "%s (%s текущий год)"
+
+msgid "no studies"
+msgstr ""
+
+#, python-format
+msgid "%s studies"
+msgstr ""
+
+msgid "Exporting DICOM studies"
+msgstr ""
+
+#, fuzzy
+msgid "Unable to export selected studies."
+msgstr "должен выбрать адрес"
+
+#, python-format
+msgid ""
+"The DICOM studies are %s in compressed size.\n"
+"\n"
+"Really copy to export area ?"
+msgstr ""
+
+#, python-format
+msgid "DICOM studies of [%s] from Orthanc PACS \"%s\" (AET \"%s\")"
+msgstr ""
+
+#, fuzzy
+msgid "Select the directory into which to save the DICOM studies."
+msgstr "Выберите эпизод, в котором зарегистрировать этот документ ..."
+
+#, fuzzy
+msgid "Saving DICOM studies"
+msgstr "Сохранение записи SOAP"
+
+#, fuzzy
+msgid "Unable to save selected studies."
+msgstr "должен выбрать адрес"
+
+#, fuzzy
+msgid "Unable to export studies."
+msgstr "Сбой регистрации пациента в %s"
+
+#, python-format
+msgid "All DICOM studies of [%s] from Orthanc PACS \"%s\" (AET \"%s\")"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "%s%s images"
+msgstr "%s тому назад"
+
+#, fuzzy
+msgid "Select the directory from which to recursively upload DICOM files."
+msgstr "Выберите эпизод, в котором зарегистрировать этот документ ..."
+
+msgid "Delete the uploaded DICOM files now ?"
+msgstr ""
+
+msgid ""
+"Some files have not been uploaded.\n"
+"\n"
+"Do you want to delete those DICOM files which have been sent to the PACS "
+"successfully ?"
+msgstr ""
+
+#, fuzzy
+msgid "Uploading DICOM files"
+msgstr "загрузка файла xDT"
+
+#, fuzzy
+msgid "Editing Orthanc content"
+msgstr "Изменяемый комментарий тэга"
+
+#, fuzzy
+msgid "Patient ID"
+msgstr "Пациент"
+
+#, fuzzy
+msgid "Birth date"
+msgstr "Эксудативный"
+
+msgid "Orthanc"
+msgstr ""
+
+#, fuzzy
+msgid "Modifying patient ID"
+msgstr "Объединенные пациенты"
+
+#, python-format
+msgid ""
+"Really modify %s patient(s) to have the new patient ID\n"
+"\n"
+" [%s]\n"
+"\n"
+"stored in the Orthanc DICOM server ?"
+msgstr ""
+
 #, python-format
 msgid "You are logged in as %s%s.%s (%s). DB account <%s>."
 msgstr "Вы вошли в систему как %s%s.%s (%s). Учетная запись БД <%s>."
@@ -15939,9 +16353,17 @@ msgstr "Изменение исследования"
 msgid "Select the measurements panel to show in the medications plugin."
 msgstr "Выбирите шаблон для вывода списка лекарств."
 
-msgid "Review dialog"
-msgstr "Диалоговое окно рецензирования"
-
+#, fuzzy
+msgid "General measurements"
+msgstr "Изменение исследования"
+
+#, fuzzy
+msgid "Select the measurements panel to show in the top pane."
+msgstr "Выбирите шаблон для вывода списка лекарств."
+
+msgid "Review dialog"
+msgstr "Диалоговое окно рецензирования"
+
 msgid "Configure review dialog after document display."
 msgstr ""
 "Конфигурировать диалоговое окно рецензирования после отображения документа."
@@ -16032,6 +16454,13 @@ msgstr "Автоматическое открытие редакторов"
 msgid "Configure auto-opening editors for recent problems."
 msgstr "Настраивает автоматическое открытие редакторов для последних случаев."
 
+#, fuzzy
+msgid "SOAP fields"
+msgstr "поле xDT"
+
+msgid "Configure SOAP editor - individual SOAP fields vs text editor like"
+msgstr ""
+
 msgid "Progress notes handling ..."
 msgstr "Управление рабочими записями ..."
 
@@ -16054,6 +16483,9 @@ msgstr "URL по исследованиям"
 msgid "URL for measurements encyclopedia."
 msgstr "URL для исследовательской энциклопедии."
 
+msgid "Drug data source"
+msgstr "Источник данных по препаратам"
+
 msgid "Select the drug data source."
 msgstr "Выбирает источник данных по препаратам."
 
@@ -16449,6 +16881,14 @@ msgstr "рабочие записи"
 msgid "Manage dynamic hints suppressed in this patient."
 msgstr "Управляет процедурами, которые прошел пациент."
 
+#, fuzzy
+msgid "Substance abuse"
+msgstr "Компоненты"
+
+#, fuzzy
+msgid "Manage substance abuse documentation of this patient."
+msgstr "для этого пациента нет тэгов"
+
 msgid "&Add / Edit ..."
 msgstr "&Add / Изменить ..."
 
@@ -16470,26 +16910,57 @@ msgstr "Статистика"
 msgid "Show a high-level statistic summary of the EMR."
 msgstr "Показывает итоговую высокоуровневую статистику для  EMR."
 
-msgid "Text document"
-msgstr "Текстовый документ"
+msgid "Journal (encounters) to file"
+msgstr ""
 
-msgid "Export the EMR of the active patient into a text file"
-msgstr "Экспорт EMR активного пациента в текстовый файл"
+#, fuzzy
+msgid ""
+"Save the EMR of the active patient as a chronological journal into a text "
+"file"
+msgstr "Экспорт EMR активного пациента в текстовый файл как журнал хронологии"
 
-msgid "Journal"
-msgstr "Журнал"
+#, fuzzy
+msgid "Journal (encounters) to export area"
+msgstr "Активирование пациента из  полученного списка"
 
+#, fuzzy
 msgid ""
-"Export the EMR of the active patient as a chronological journal into a text "
-"file"
+"Copy EMR of the active patient as a chronological journal into export area"
+msgstr "Экспорт EMR активного пациента в текстовый файл как журнал хронологии"
+
+msgid "Journal (mod time) to file"
+msgstr ""
+
+#, fuzzy
+msgid ""
+"Save the EMR of the active patient as journal by last modification time into "
+"a text file"
+msgstr "Экспорт EMR активного пациента в текстовый файл как журнал хронологии"
+
+#, fuzzy
+msgid "Journal (mod time) to export area"
+msgstr "Активирование пациента из  полученного списка"
+
+#, fuzzy
+msgid ""
+"Copy EMR of the active patient as journal by last modification time into "
+"export area"
 msgstr "Экспорт EMR активного пациента в текстовый файл как журнал хронологии"
 
+msgid "Text document"
+msgstr "Текстовый документ"
+
+#, fuzzy
+msgid "Save the EMR of the active patient into a text file"
+msgstr "Экспорт EMR активного пациента в текстовый файл"
+
 msgid "MEDISTAR import format"
 msgstr "Формат импорта MEDISTAR"
 
+#, fuzzy
 msgid ""
-"GNUmed -> MEDISTAR. Export progress notes of active patient's active "
-"encounter into a text file."
+"GNUmed -> MEDISTAR. Save progress notes of active patient's active encounter "
+"into a text file."
 msgstr ""
 "GNUmed -> MEDISTAR. Экспортирует рабочие записи активного обращения для "
 "активного пациента в текстовый файл."
@@ -16673,21 +17144,47 @@ msgstr "Сохраняет скриншот этого клиента GNUmed."
 msgid "Show log file"
 msgstr "Показать лог-файл"
 
-msgid "Show the log file in text viewer."
+#, fuzzy
+msgid "Show log file in text viewer."
 msgstr "Показывает лог-файл в программе просмотра текста."
 
 msgid "Backup log file"
 msgstr "Резервный лог-файл"
 
-msgid "Backup the content of the log to another file."
+#, fuzzy
+msgid "Backup content of the log to another file."
 msgstr "Резервирует содержимое журнала в другой файл."
 
 msgid "Email log file"
 msgstr "Лог-файл по электронной почте"
 
-msgid "Send the log file to the authors for help."
+#, fuzzy
+msgid "Send log file to the authors for help."
 msgstr "Отправляет лог-файл разработчикам для получения поддержки."
 
+#, fuzzy
+msgid "Browse tmp dir"
+msgstr "Отображение тэгов пациента"
+
+#, python-format
+msgid "Browse temporary directory [%s]."
+msgstr ""
+
+#, fuzzy
+msgid "Browse work dir"
+msgstr "Отображение тэгов пациента"
+
+#, python-format
+msgid "Browse user working directory [%s]."
+msgstr ""
+
+msgid "Browse internal work dir"
+msgstr ""
+
+#, python-format
+msgid "Browse internal working directory [%s]."
+msgstr ""
+
 msgid "Bug tracker"
 msgstr "Отслеживание ошибок"
 
@@ -17166,6 +17663,20 @@ msgstr ""
 "Нет, открывать редактор автоматически только для новой, несвязанной проблемы."
 
 msgid ""
+"When editing progress notes, do you want GNUmed to\n"
+"show individual fields for each of the SOAP categories\n"
+"or do you want to use a text-editor like field for\n"
+"all SOAP categories which can then be set per line\n"
+"of input ?"
+msgstr ""
+
+msgid "Yes, show a dedicated field per SOAP category."
+msgstr ""
+
+msgid "No, use one field for all SOAP categories."
+msgstr ""
+
+msgid ""
 "When a patient is activated GNUmed can\n"
 "be told to switch to a specific plugin.\n"
 "\n"
@@ -17611,557 +18122,1038 @@ msgstr "оценка риска"
 msgid "cardiovascular risk assessment"
 msgstr "оценка кардиоваскулярного риска"
 
-#, python-format
-msgid "[arriba] XML result not found in [%s]"
-msgstr "[arriba] результат XML в [%s] не найден"
+#, python-format
+msgid "[arriba] XML result not found in [%s]"
+msgstr "[arriba] результат XML в [%s] не найден"
+
+msgid "ACS risk assessment calculator not configured."
+msgstr "Калькулятор оценки риска ACS не настроен."
+
+#, python-format
+msgid "Cannot run [%s] !"
+msgstr "Не удалось запустить [%s] !"
+
+#, python-format
+msgid "There was a problem accessing the [arriba] result in [%s] !"
+msgstr "Имелась проблема доступа к этому [arriba] результату в [%s] !"
+
+msgid "[-9999]: <access violation test error>"
+msgstr ""
+
+msgid ""
+"This is a deliberate AccessDenied exception thrown to test the handling of "
+"access violations by means of a decorator."
+msgstr ""
+
+msgid "testing access check for non-existant <admin> role"
+msgstr ""
+
+msgid ""
+"This is a deliberate AccessDenied exception. You should not see this message "
+"because the role is checked in a decorator."
+msgstr ""
+
+msgid "pgAdmin III not found."
+msgstr "pgAdmin III не найден."
+
+msgid "Error reloading hook script."
+msgstr "Ошибка повторной загрузки обработчика сценария."
+
+msgid "Save current log as..."
+msgstr "Сохранить текущий журнал как ..."
+
+msgid "log files"
+msgstr "Лог-файлы"
+
+#, python-format
+msgid "Log file backed up as [%s]."
+msgstr "Лог-файл зарезервирован как [%s]."
+
+msgid "Cannot start new encounter. No active patient."
+msgstr "Не удалось открыть новое обращение. Нет активного пациента."
+
+msgid "Cannot add health issue. No active patient."
+msgstr "Не удалось добавить медицинскую проблему. Нет активного пациента."
+
+msgid "Cannot add episode. No active patient."
+msgstr "Не удалось добавить эпизод. Нет активного пациента."
+
+msgid "Cannot add medication. No active patient."
+msgstr "Не удалось добавить лечение. Нет активного пациента."
+
+msgid "Cannot add allergy. No active patient."
+msgstr "Не удалось добавить аллергию. Нет активного пациента."
+
+msgid "Cannot manage performed procedures. No active patient."
+msgstr "Невозможна регистрация выполненных процедур. Нет активного пациента."
+
+msgid "Cannot manage hospitalizations. No active patient."
+msgstr "Невозможно управлять госпитализациями. Нет активного пациента."
+
+#, fuzzy
+msgid "Cannot manage external care. No active patient."
+msgstr "Не удалось добавить исследования. Нет активного пациента."
+
+msgid "Cannot edit occupation. No active patient."
+msgstr "Не удалось изменить род занятий. Нет активного пациента."
+
+#, fuzzy
+msgid "manage vaccinations"
+msgstr "Управление прививками"
+
+msgid "Cannot add vaccinations. No active patient."
+msgstr "Не удалось добавить прививку. Нет активного пациента."
+
+#, fuzzy
+msgid "manage family history"
+msgstr "Управление семейным анамнезом"
+
+msgid "Cannot manage family history. No active patient."
+msgstr "Не удалось управление семейным анамнезом. Нет активного пациента."
+
+#, fuzzy
+msgid "Cannot manage measurements. No active patient."
+msgstr "Не удалось добавить исследования. Нет активного пациента."
+
+msgid "calculate EDC"
+msgstr ""
+
+#, fuzzy
+msgid "manage suppressed hints"
+msgstr "Управление рабочими записями"
+
+#, fuzzy
+msgid "Cannot manage suppressed hints. No active patient."
+msgstr "Не удалось добавить исследования. Нет активного пациента."
+
+#, fuzzy
+msgid "Cannot manage smoking status. No active patient."
+msgstr "Не удалось добавить исследования. Нет активного пациента."
+
+msgid "Cannot show EMR summary. No active patient."
+msgstr "Не удалось показать итоговую EMR. Нет активного пациента."
+
+msgid "EMR Summary"
+msgstr "Итоговая EMR"
+
+#, fuzzy
+msgid "Cannot export EMR journal by last modification time. No active patient."
+msgstr "Не удалось экспортировать журнал EMR. Нет активного пациента."
+
+msgid "journal_by_last_mod_time"
+msgstr ""
+
+msgid "Save patient's EMR journal as..."
+msgstr "Сохранить журнал EMR пациента как ..."
+
+#, fuzzy
+msgid "Error exporting patient EMR as journal by last modification time."
+msgstr "Ошибка экспорта EMR пациента как журнала хронологий."
+
+msgid "EMR journal export"
+msgstr "Экспорт журнала EMR"
+
+#, fuzzy, python-format
+msgid ""
+"Successfully exported EMR as journal by last modification time into file "
+"[%s]."
+msgstr "EMR успешно экспортирован как журнал хронологий в файл [%s]."
+
+msgid "Cannot export EMR journal. No active patient."
+msgstr "Не удалось экспортировать журнал EMR. Нет активного пациента."
+
+msgid "emr-journal"
+msgstr "emr-journal"
+
+msgid "Error exporting patient EMR as chronological journal."
+msgstr "Ошибка экспорта EMR пациента как журнала хронологий."
+
+#, python-format
+msgid "Successfully exported EMR as chronological journal into file [%s]."
+msgstr "EMR успешно экспортирован как журнал хронологий в файл [%s]."
+
+msgid "EMR journal by last modification time"
+msgstr ""
+
+#, fuzzy
+msgid "EMR journal by encounter"
+msgstr "Экспорт журнала EMR"
+
+msgid "Cannot add tag to person. No active patient."
+msgstr "Не удалось добавить тэг для персоны. Нет активного пациента."
+
+#, python-format
+msgid "Edit the comment on tag [%s]"
+msgstr "Изменить комментарий к тэгу [%s]"
+
+msgid "Editing tag comment"
+msgstr "Изменяемый комментарий тэга"
+
+msgid "Cannot export patient as GDT. No active patient."
+msgstr "Не удалось экспортировать пациента как GDT. Нет активного пациента."
+
+#, fuzzy
+msgid "Exported demographics as GDT to clipboard."
+msgstr "Демографические сведения экспортированы в файл GDT [%s]."
+
+#, fuzzy
+msgid "Cannot export patient as VCARD. No active patient."
+msgstr "Не удалось экспортировать пациента как GDT. Нет активного пациента."
+
+#, fuzzy
+msgid "Exported demographics as VCARD to clipboard."
+msgstr "Демографические сведения экспортированы в файл GDT [%s]."
+
+#, fuzzy
+msgid "Cannot export patient as XML (LinuxMedNews). No active patient."
+msgstr "Не удалось экспортировать пациента как GDT. Нет активного пациента."
+
+#, fuzzy, python-format
+msgid "Exported demographics to XML file [%s]."
+msgstr "Демографические сведения экспортированы в файл GDT [%s]."
+
+#, python-format
+msgid "Exported demographics to GDT file [%s]."
+msgstr "Демографические сведения экспортированы в файл GDT [%s]."
+
+#, fuzzy, python-format
+msgid "Exported demographics to VCARD file [%s]."
+msgstr "Демографические сведения экспортированы в файл GDT [%s]."
+
+msgid "Cannot add staff member. No active patient."
+msgstr "Не удалось добавить сотрудника. Нет активного пациента."
+
+msgid "Cannot delete patient. No patient active."
+msgstr "Не удалось удалить пациента. Нет активного пациента."
+
+msgid ""
+"You have to manually close this window to finalize shutting down GNUmed."
+msgstr "Это окно можно закрыть вручную для окончательного завершения GNUmed."
+
+msgid "This is so that you can inspect the console output at your leisure."
+msgstr ""
+"Для того, чтобы в свободное время можно было проверить вывод на консоль."
+
+msgid "no patient"
+msgstr "нет пациента"
+
+#, python-format
+msgid "Saved screenshot to file [%s]."
+msgstr "Сохраненный скриншот в файле [%s]."
+
+msgid "Python version check"
+msgstr ""
+
+#, python-format
+msgid ""
+"You are running Python version\n"
+" %s\n"
+"\n"
+"However, GNUmed wants Python 2.7 to\n"
+"facilitate migration to Python 3.\n"
+"\n"
+"Please upgrade your Python interpreter !"
+msgstr ""
+
+msgid "GNUmed client"
+msgstr "клиент GNUmed"
+
+msgid "GNUmed stdout/stderr window"
+msgstr "окно GNUmed stdout/stderr"
+
+msgid "redirecting STDOUT/STDERR to this log window"
+msgstr "перенаправление STDOUT/STDERR в это регистрационное окно"
+
+#, python-format
+msgid ""
+"The database account [%s] cannot be used as a\n"
+"staff member login for GNUmed. There was an\n"
+"error retrieving staff details for it.\n"
+"\n"
+"Please ask your administrator for help.\n"
+msgstr ""
+"Не удалось использовать учетную запись базы данных [%s] как\n"
+"вход в систему для сотрудника GNUmed. Имелась\n"
+"ошибка при получении сведений по сотруднику.\n"
+"\n"
+"Для поддержки обратитесь к администратору.\n"
+
+msgid "Checking access permissions"
+msgstr "Проверка разрешений на права доступа"
+
+#, python-format
+msgid "Database <%s> on <%s>"
+msgstr "База данных <%s> в <%s>"
+
+#, python-format
+msgid "Branch \"%s\" of praxis \"%s\"\n"
+msgstr ""
+
+msgid "Verifying database"
+msgstr "Проверка базы данных"
+
+msgid "Connect"
+msgstr "Подключить"
+
+msgid "Yes, connect to this database."
+msgstr "Да, подключить к этой базе данных."
+
+msgid "Disconnect"
+msgstr "Отключить"
+
+msgid "No, do not connect to this database."
+msgstr "Нет, не подключать к этой базе данных."
+
+#, python-format
+msgid ""
+"Cannot find configuration file in any of:\n"
+"\n"
+" %s\n"
+"You may need to use the comand line option\n"
+"\n"
+"\t--conf-file=<FILE>"
+msgstr ""
+"Не удалось найти конфигурационный файл в любом:\n"
+"\n"
+"%s\n"
+"Возможно, необходимо использовать опцию командной строки\n"
+"\n"
+"\t--conf-file=<FILE>"
+
+msgid "Checking configuration files"
+msgstr "Проверка конфигурационного файла"
+
+msgid "GNUmed startup"
+msgstr "Запуск GNUmed"
+
+#, python-format
+msgid ""
+"The currently selected database language ('%s') does\n"
+"not match the current system language ('%s').\n"
+"\n"
+"Do you want to set the database language to '%s' ?\n"
+msgstr ""
+"Текущий выбранный язык базы данных ('%s')\n"
+"не соответствует текущему системному языку ('%s').\n"
+"\n"
+"Хотие установить язык базы данных на '%s'?\n"
+
+msgid "Checking database language settings"
+msgstr "Проверка настроек языка базы данных"
+
+#, python-format
+msgid "Set your database language to [%s]."
+msgstr "Установить язык базы данных на [%s]."
+
+msgid "Don't set"
+msgstr "Не устанавливать"
+
+msgid "Do not set your database language now."
+msgstr "Не устанавливать пока язык базы данных."
+
+msgid "Remember to ignore language mismatch"
+msgstr "Запомнить для игнорирования соответствия языка"
+
+#, python-format
+msgid ""
+"Checking this will make GNUmed remember your decision\n"
+"until the system language is changed.\n"
+"\n"
+"You can also reactivate this inquiry by removing the\n"
+"corresponding \"ignore\" option from the configuration file\n"
+"\n"
+" [%s]"
+msgstr ""
+"При этой проверке GNUmed будет помнить\n"
+"ваше решение до тех пор, пока не\n"
+"изменится системный язык.\n"
+"\n"
+"Это запрос можно вызвать повторно\n"
+"удалением соответствующей \"отклоненной\"\n"
+"опции в конфигурационном файле\n"
+"\n"
+"[%s]"
+
+#, fuzzy
+msgid "generic activity"
+msgstr "текст дженерика"
+
+msgid "Access denied"
+msgstr ""
+
+#, python-format
+msgid ""
+"Your account is not set up to access this part of GNUmed:\n"
+"\n"
+"  [%s]"
+msgstr ""
+
+msgid "Save timeline as SVG image under..."
+msgstr ""
+
+#, fuzzy
+msgid "timeline image"
+msgstr "все файлы"
+
+#, fuzzy
+msgid "timeline data"
+msgstr "Хронология не установлена"
+
+msgid "Cannot change notebook tabs. No active patient."
+msgstr "Не удалось изменить закладку записной книжки. Нет активного пациента."
+
+msgid "add plugin ..."
+msgstr "добавить плагин ..."
+
+msgid "Cannot activate Allergy Manager. No active patient."
+msgstr "Не удалось активировать менеджер по аллергии. Нет активного пациента."
 
-msgid "ACS risk assessment calculator not configured."
-msgstr "Калькулятор оценки риска ACS не настроен."
+msgid "RR ?"
+msgstr ""
 
 #, python-format
-msgid "Cannot run [%s] !"
-msgstr "Не удалось запустить [%s] !"
+msgid "BMI %s"
+msgstr ""
 
-#, python-format
-msgid "There was a problem accessing the [arriba] result in [%s] !"
-msgstr "Имелась проблема доступа к этому [arriba] результату в [%s] !"
+msgid "BMI ?"
+msgstr ""
 
-msgid "[-9999]: <access violation test error>"
+msgid "GFR ?"
 msgstr ""
 
-msgid ""
-"This is a deliberate AcessDenied exception thrown to test the handling of "
-"access violations by means of a decorator."
+#, python-format
+msgid "GFR %s"
 msgstr ""
 
-msgid "testing access check for non-existant <admin> role"
+#, python-format
+msgid "?EDC %s"
 msgstr ""
 
-msgid ""
-"This is a deliberate AcessDenied exception. You should not see this message "
-"because the role is checked in a decorator."
+#, python-format
+msgid "EDC %s"
 msgstr ""
 
-msgid "pgAdmin III not found."
-msgstr "pgAdmin III не найден."
+msgid "<Age>"
+msgstr ""
 
-msgid "Error reloading hook script."
-msgstr "Ошибка повторной загрузки обработчика сценария."
+#, fuzzy
+msgid "no patient selected"
+msgstr "<не выбрана единица>"
 
-msgid "Save current log as..."
-msgstr "Сохранить текущий журнал как ..."
+#, python-format
+msgid "Gender: %s (%s) - %s\n"
+msgstr "Пол: %s (%s) - %s\n"
 
-msgid "log files"
-msgstr "Лог-файлы"
+#, python-format
+msgid "Born: %s\n"
+msgstr "Родился: %s\n"
 
 #, python-format
-msgid "Log file backed up as [%s]."
-msgstr "Лог-файл зарезервирован как [%s]."
+msgid "Died: %s\n"
+msgstr "Умер: %s\n"
 
-msgid "Cannot start new encounter. No active patient."
-msgstr "Не удалось открыть новое обращение. Нет активного пациента."
+#, python-format
+msgid "At age: %s\n"
+msgstr "В возрасте: %s\n"
 
-msgid "Cannot add health issue. No active patient."
-msgstr "Не удалось добавить медицинскую проблему. Нет активного пациента."
+msgid " (date of birth and age are estimated)\n"
+msgstr " (дата рождения и возраст приблизительны)\n"
 
-msgid "Cannot add episode. No active patient."
-msgstr "Не удалось добавить эпизод. Нет активного пациента."
+#, fuzzy, python-format
+msgid "%(sex)s  %(dob)s (%(age)s today !)"
+msgstr "%s %s (%s сегодня !)"
 
-msgid "Cannot add medication. No active patient."
-msgstr "Не удалось добавить лечение. Нет активного пациента."
+#, fuzzy
+msgid ""
+"\n"
+"Today is the patient's birthday !\n"
+"\n"
+msgstr ""
+"\n"
+"Сегодня у пациента день рождения!\n"
+"\n"
 
-msgid "Cannot add allergy. No active patient."
-msgstr "Не удалось добавить аллергию. Нет активного пациента."
+#, python-format
+msgid "Birthday: %s ago\n"
+msgstr ""
 
-msgid "Cannot manage performed procedures. No active patient."
-msgstr "Невозможна регистрация выполненных процедур. Нет активного пациента."
+#, fuzzy, python-format
+msgid "Birthday: in %s\n"
+msgstr "Уведомитель дней рождения"
 
-msgid "Cannot manage hospitalizations. No active patient."
-msgstr "Невозможно управлять госпитализациями. Нет активного пациента."
+#, python-format
+msgid "Age: %s\n"
+msgstr "Возраст: %s\n"
 
-#, fuzzy
-msgid "Cannot manage external care. No active patient."
-msgstr "Не удалось добавить исследования. Нет активного пациента."
+#, python-format
+msgid "last confirmed %s\n"
+msgstr "Последний подтвержденный %s\n"
 
-msgid "Cannot edit occupation. No active patient."
-msgstr "Не удалось изменить род занятий. Нет активного пациента."
+#, python-format
+msgid "Comment (%s): %%s"
+msgstr "Комментарий (%s): %%s"
 
-#, fuzzy
-msgid "manage vaccinations"
-msgstr "Управление прививками"
+#, python-format
+msgid " - expires %s"
+msgstr " - истек срок годности %s"
 
-msgid "Cannot add vaccinations. No active patient."
-msgstr "Не удалось добавить прививку. Нет активного пациента."
+#, python-format
+msgid ""
+"Due for %s (since %s%s):\n"
+"%s%s\n"
+"Patient: %s\n"
+"Reminder by: %s"
+msgstr ""
+"Подлежит для %s (с %s%s):\n"
+"%s%s\n"
+"Пациент: %s\n"
+"Напоминание через: %s"
 
-msgid "Cannot manage family history. No active patient."
-msgstr "Не удалось управление семейным анамнезом. Нет активного пациента."
+msgid "Clinical reminder"
+msgstr "Клиническое напоминание"
 
 #, fuzzy
-msgid "Cannot manage measurements. No active patient."
-msgstr "Не удалось добавить исследования. Нет активного пациента."
-
-msgid "calculate EDC"
-msgstr ""
+msgid "Adding automatic dynamic hint"
+msgstr "Отображение динамических подсказок."
 
 #, fuzzy
-msgid "manage suppressed hints"
-msgstr "Управление рабочими записями"
+msgid "Editing automatic dynamic hint"
+msgstr "Отображение динамических подсказок."
 
 #, fuzzy
-msgid "Cannot manage suppressed hints. No active patient."
-msgstr "Не удалось добавить исследования. Нет активного пациента."
+msgid "Deleting automatic dynamic hint"
+msgstr "Отображение динамических подсказок."
 
-msgid "Cannot show EMR summary. No active patient."
-msgstr "Не удалось показать итоговую EMR. Нет активного пациента."
+#, python-format
+msgid ""
+"Really delete this dynamic hint ?\n"
+"\n"
+" [%s]"
+msgstr ""
 
-msgid "EMR Summary"
-msgstr "Итоговая EMR"
+#, fuzzy
+msgid "deleting a dynamic hint"
+msgstr "Отображение динамических подсказок."
 
-msgid "Cannot export EMR journal. No active patient."
-msgstr "Не удалось экспортировать журнал EMR. Нет активного пациента."
+msgid ""
+"\n"
+"Dynamic hints registered with GNUmed.\n"
+msgstr ""
+"\n"
+"Динамические подсказки, зарегистрированные с GNUmed.\n"
 
-msgid "Save patient's EMR journal as..."
-msgstr "Сохранить журнал EMR пациента как ..."
+msgid "Showing dynamic hints."
+msgstr "Отображение динамических подсказок."
 
-msgid "Error exporting patient EMR as chronological journal."
-msgstr "Ошибка экспорта EMR пациента как журнала хронологий."
+msgid "Hint"
+msgstr "Подсказка"
 
-msgid "EMR journal export"
-msgstr "Экспорт журнала EMR"
+#, fuzzy
+msgid "Browse and install automatic dynamic hints data packs"
+msgstr "Отображение и установка пакетов данных для клинических подсказок"
 
-#, python-format
-msgid "Successfully exported EMR as chronological journal into file [%s]."
-msgstr "EMR успешно экспортирован как журнал хронологий в файл [%s]."
+#, fuzzy, python-format
+msgid "By: %s"
+msgstr "Родился: %s\n"
 
-msgid "Cannot add tag to person. No active patient."
-msgstr "Не удалось добавить тэг для персоны. Нет активного пациента."
+msgid "No entry in field <Source>."
+msgstr ""
 
-#, python-format
-msgid "Edit the comment on tag [%s]"
-msgstr "Изменить комментарий к тэгу [%s]"
+msgid "No entry in field <Conditions>."
+msgstr ""
 
-msgid "Editing tag comment"
-msgstr "Изменяемый комментарий тэга"
+#, fuzzy
+msgid "No entry in field <Description>."
+msgstr "Ошибка печати списка лекарств."
 
-msgid "Cannot export patient as GDT. No active patient."
-msgstr "Не удалось экспортировать пациента как GDT. Нет активного пациента."
+msgid "No entry in field <Title>."
+msgstr ""
 
 #, fuzzy
-msgid "Exported demographics as GDT to clipboard."
-msgstr "Демографические сведения экспортированы в файл GDT [%s]."
+msgid "creating a new dynamic hint"
+msgstr "Отображение динамических подсказок."
 
 #, fuzzy
-msgid "Cannot export patient as VCARD. No active patient."
-msgstr "Не удалось экспортировать пациента как GDT. Нет активного пациента."
+msgid "updating an existing dynamic hint"
+msgstr "Открыть существующую хронологию"
 
 #, fuzzy
-msgid "Exported demographics as VCARD to clipboard."
-msgstr "Демографические сведения экспортированы в файл GDT [%s]."
+msgid "Deleting suppressed dynamic hint"
+msgstr "Отображение динамических подсказок."
 
-#, fuzzy
-msgid "Cannot export patient as XML (LinuxMedNews). No active patient."
-msgstr "Не удалось экспортировать пациента как GDT. Нет активного пациента."
+#, python-format
+msgid ""
+"Really delete the suppression of this dynamic hint ?\n"
+"\n"
+" [%s]"
+msgstr ""
 
-#, fuzzy, python-format
-msgid "Exported demographics to XML file [%s]."
-msgstr "Демографические сведения экспортированы в файл GDT [%s]."
+#, fuzzy
+msgid ""
+"\n"
+"Dynamic hints suppressed in this patient.\n"
+msgstr ""
+"\n"
+"Динамические подсказки, зарегистрированные с GNUmed.\n"
 
-#, python-format
-msgid "Exported demographics to GDT file [%s]."
-msgstr "Демографические сведения экспортированы в файл GDT [%s]."
+#, fuzzy
+msgid "Showing suppressed dynamic hints."
+msgstr "Отображение динамических подсказок."
 
-#, fuzzy, python-format
-msgid "Exported demographics to VCARD file [%s]."
-msgstr "Демографические сведения экспортированы в файл GDT [%s]."
+#, fuzzy
+msgid "Rationale"
+msgstr "Реакция"
 
-msgid "Cannot add staff member. No active patient."
-msgstr "Не удалось добавить сотрудника. Нет активного пациента."
+#, fuzzy
+msgid "Manage hints"
+msgstr "Списки по управлению"
 
-msgid "Cannot delete patient. No patient active."
-msgstr "Не удалось удалить пациента. Нет активного пациента."
+#, fuzzy
+msgid "Manage automatic dynamic hints"
+msgstr "Отображение динамических подсказок."
 
-msgid ""
-"You have to manually close this window to finalize shutting down GNUmed."
-msgstr "Это окно можно закрыть вручную для окончательного завершения GNUmed."
+msgid "Cannot delete family history item."
+msgstr "Не удалось удалить пункт семейного анамнеза."
 
-msgid "This is so that you can inspect the console output at your leisure."
-msgstr ""
-"Для того, чтобы в свободное время можно было проверить вывод на консоль."
+msgid "Family history of this patient."
+msgstr "Семейный анамнез этого пациента."
 
-msgid "no patient"
-msgstr "нет пациента"
+msgid "Showing family history."
+msgstr "Отображение семейного анамнеза."
 
-#, python-format
-msgid "Saved screenshot to file [%s]."
-msgstr "Сохраненный скриншот в файле [%s]."
+msgid "Fatal"
+msgstr "Критическое"
 
-msgid "GNUmed client"
-msgstr "клиент GNUmed"
+msgid "Noted"
+msgstr "Отмеченное"
 
-msgid "GNUmed stdout/stderr window"
-msgstr "окно GNUmed stdout/stderr"
+msgid "Died"
+msgstr "Умершие"
 
-msgid "redirecting STDOUT/STDERR to this log window"
-msgstr "перенаправление STDOUT/STDERR в это регистрационное окно"
+msgid "Adding family history"
+msgstr "Добавление семейного анамнеза"
+
+msgid "Editing family history"
+msgstr "Изменение семейного анамнеза."
 
-#, python-format
 msgid ""
-"The database account [%s] cannot be used as a\n"
-"staff member login for GNUmed. There was an\n"
-"error retrieving staff details for it.\n"
 "\n"
-"Please ask your administrator for help.\n"
+"Please select the default drug data source from the list below.\n"
+"\n"
+"Note that to actually use it you need to have the database installed, too."
 msgstr ""
-"Не удалось использовать учетную запись базы данных [%s] как\n"
-"вход в систему для сотрудника GNUmed. Имелась\n"
-"ошибка при получении сведений по сотруднику.\n"
 "\n"
-"Для поддержки обратитесь к администратору.\n"
+"Выберите источник данных по препаратам\n"
+"по умолчанию из списка ниже.\n"
+"\n"
+"Учтите, что для его практического использования\n"
+"также необходима инсталляция базы данных."
 
-msgid "Checking access permissions"
-msgstr "Проверка разрешений на права доступа"
+msgid "Configuring default drug data source"
+msgstr "Настройка источника данных по препаратам по умолчанию"
 
-#, python-format
-msgid "Database <%s> on <%s>"
-msgstr "База данных <%s> в <%s>"
+msgid "No default drug database configured."
+msgstr "База данных по препаратам не настроена по умолчанию."
 
-#, python-format
-msgid "Branch \"%s\" of praxis \"%s\"\n"
-msgstr ""
+msgid "There is no default drug database configured."
+msgstr "Отсутствует настройка по умолчанию для базы данных по препаратам."
 
-msgid "Verifying database"
-msgstr "Проверка базы данных"
+msgid "Jumping to drug database"
+msgstr "Переход к базе данных по препаратам."
 
-msgid "Connect"
-msgstr "Подключить"
+msgid "Cannot import drugs from IFAP into chart without chart."
+msgstr ""
 
-msgid "Yes, connect to this database."
-msgstr "Да, подключить к этой базе данных."
+#, python-format
+msgid "Cannot call IFAP via [%s]."
+msgstr "Не удалось вызвать IFAP через [%s]."
 
-msgid "Disconnect"
-msgstr "Отключить"
+#, python-format
+msgid "Cannot create IFAP <-> GNUmed transfer file [%s]."
+msgstr "Не удалось создать файл передачи IFAP <-> GNUmed [%s]."
 
-msgid "No, do not connect to this database."
-msgstr "Нет, не подключать к этой базе данных."
+msgid "Current medication"
+msgstr "Текущее лекарство"
 
-#, python-format
 msgid ""
-"Cannot find configuration file in any of:\n"
-"\n"
-" %s\n"
-"You may need to use the comand line option\n"
 "\n"
-"\t--conf-file=<FILE>"
+"The ATC codes as known to GNUmed.\n"
 msgstr ""
-"Не удалось найти конфигурационный файл в любом:\n"
-"\n"
-"%s\n"
-"Возможно, необходимо использовать опцию командной строки\n"
 "\n"
-"\t--conf-file=<FILE>"
+"Коды ATC, известные в GNUmed.\n"
 
-msgid "Checking configuration files"
-msgstr "Проверка конфигурационного файла"
+msgid "Showing ATC codes."
+msgstr "Отображение кодов ATC"
 
-msgid "GNUmed startup"
-msgstr "Запуск GNUmed"
+msgid "Choose an ATC import config file"
+msgstr "Выбрать конфигурационный файл для импорта ATC"
 
-#, python-format
-msgid ""
-"The currently selected database language ('%s') does\n"
-"not match the current system language ('%s').\n"
-"\n"
-"Do you want to set the database language to '%s' ?\n"
-msgstr ""
-"Текущий выбранный язык базы данных ('%s')\n"
-"не соответствует текущему системному языку ('%s').\n"
-"\n"
-"Хотие установить язык базы данных на '%s'?\n"
+msgid "config files"
+msgstr "конфигурационные файлы"
 
-msgid "Checking database language settings"
-msgstr "Проверка настроек языка базы данных"
+msgid "importing ATC reference data"
+msgstr "импорт справочных данных ATC"
 
-msgid "Set"
-msgstr "Установить"
+msgid "Successfully imported ATC reference data."
+msgstr "Справочные данные ATC успешно импортированы."
 
-#, python-format
-msgid "Set your database language to [%s]."
-msgstr "Установить язык базы данных на [%s]."
+msgid "Importing ATC reference data failed."
+msgstr "Импорт справочных данных ATC дал сбой."
 
-msgid "Don't set"
-msgstr "Не устанавливать"
+msgid "Select an ATC (Anatomical-Therapeutic-Chemical) code."
+msgstr "Выберите код ATC (Anatomical-Therapeutic-Chemical)"
 
-msgid "Do not set your database language now."
-msgstr "Не устанавливать пока язык базы данных."
+msgid "Cannot edit this substance. It is in use."
+msgstr "Не удалось изменить это вещество. Оно в использовании."
 
-msgid "Remember to ignore language mismatch"
-msgstr "Запомнить для игнорирования соответствия языка"
+msgid "Adding new consumable substance"
+msgstr "Добавление нового применяемого вещества"
+
+msgid "Editing consumable substance"
+msgstr "Изменение применяемого вещества"
+
+msgid "Cannot delete this substance. It is in use."
+msgstr "Не удалось удалить это вещество. Оно в использовании."
 
-#, python-format
 msgid ""
-"Checking this will make GNUmed remember your decision\n"
-"until the system language is changed.\n"
-"\n"
-"You can also reactivate this inquiry by removing the\n"
-"corresponding \"ignore\" option from the configuration file\n"
 "\n"
-" [%s]"
+"These are the consumable substances registered with GNUmed.\n"
 msgstr ""
-"При этой проверке GNUmed будет помнить\n"
-"ваше решение до тех пор, пока не\n"
-"изменится системный язык.\n"
-"\n"
-"Это запрос можно вызвать повторно\n"
-"удалением соответствующей \"отклоненной\"\n"
-"опции в конфигурационном файле\n"
 "\n"
-"[%s]"
+"Это зарегистрированные в GNUmed вещества для применения.\n"
 
-#, fuzzy
-msgid "generic activity"
-msgstr "текст дженерика"
+msgid "Import"
+msgstr "Импортировать"
 
-msgid "Access denied"
-msgstr ""
+msgid "Import consumable substances from a drug database."
+msgstr "Импорт веществ для применения из базы данных по препаратам."
+
+msgid "Cannot save consumable substance. Missing essential input."
+msgstr "Не удалось сохранить применяемое вещество. Пропущен основной ввод."
 
 #, python-format
+msgid "Cannot save consumable substance. %s"
+msgstr "Не удалось сохранить применяемое вещество. %s"
+
+msgid "The substance with optional strength."
+msgstr "Вещество с необязательной активностью."
+
+msgid "Cannot remove this component from the drug. It is in use."
+msgstr "Не удалось удалить этот компонент из препарата. Он в использовании."
+
 msgid ""
-"Your account is not set up to access this part of GNUmed:\n"
 "\n"
-"  [%s]"
+"These are the components in the drug brands known to GNUmed.\n"
 msgstr ""
+"\n"
+"Это компоненты препаратов, известные GNUmed.\n"
 
-msgid "Save timeline as SVG image under..."
-msgstr ""
+msgid "Showing drug brand components."
+msgstr "Отображение патентованных компонентов препаратов."
 
-#, fuzzy
-msgid "timeline image"
-msgstr "все файлы"
+msgid "Adding new drug component"
+msgstr "Добавление нового компонента препарата."
 
-#, fuzzy
-msgid "timeline data"
-msgstr "Хронология не установлена"
+msgid "Editing drug component"
+msgstr "Изменение компонента препарата"
 
-msgid "Cannot change notebook tabs. No active patient."
-msgstr "Не удалось изменить закладку записной книжки. Нет активного пациента."
+msgid "Cannot edit drug component. It is in use."
+msgstr "Не удалось изменить компонент препарата. Он в использовании."
 
-msgid "add plugin ..."
-msgstr "добавить плагин ..."
+msgid "Cannot save drug component. Invalid or missing essential input."
+msgstr ""
+"Не удалось сохранить компонент препарата. Неправильный или пропущенный "
+"основной ввод."
 
-msgid "Cannot activate Allergy Manager. No active patient."
-msgstr "Не удалось активировать менеджер по аллергии. Нет активного пациента."
+msgid "A drug component with optional strength."
+msgstr "Компонент препарата с необязательным содержанием активного вещества."
 
-msgid "<Age>"
+msgid "Editing drug"
+msgstr "Изменение препаратов"
+
+#, python-format
+msgid ""
+"Cannot edit the branded drug product\n"
+"\n"
+" \"%s\" (%s)\n"
+"\n"
+"because it is currently taken by patients.\n"
 msgstr ""
+"Не удалось изменить патентированный препарат\n"
+"\n"
+" \"%s\" (%s)\n"
+"\n"
+"так как его в настоящее время принимают пациенты.\n"
 
-#, fuzzy
-msgid "no patient selected"
-msgstr "<не выбрана единица>"
+msgid "Adding new drug brand"
+msgstr "Добавление нового патентированного препарата"
 
-#, python-format
-msgid "Gender: %s (%s) - %s\n"
-msgstr "Пол: %s (%s) - %s\n"
+msgid "Editing drug brand"
+msgstr "Изменение патентированного препарата"
 
-#, python-format
-msgid "Born: %s\n"
-msgstr "Родился: %s\n"
+msgid "Manage consumable substances"
+msgstr "Управление вводимыми компонентами"
 
-#, python-format
-msgid "Died: %s\n"
-msgstr "Умер: %s\n"
+msgid "not in use"
+msgstr "не используются"
 
 #, python-format
-msgid "At age: %s\n"
-msgstr "В возрасте: %s\n"
-
-msgid " (date of birth and age are estimated)\n"
-msgstr " (дата рождения и возраст приблизительны)\n"
+msgid "ATC: %s\n"
+msgstr "ATC: %s\n"
 
-#, fuzzy, python-format
-msgid "%(sex)s  %(dob)s (%(age)s today !)"
-msgstr "%s %s (%s сегодня !)"
+msgid "Editing medication"
+msgstr "Изменение лекарства"
 
-#, fuzzy
+#, python-format
 msgid ""
+"Cannot edit the medication\n"
 "\n"
-"Today is the patient's birthday !\n"
+" \"%s\" (%s)\n"
 "\n"
+"because it is a vaccine. Please edit it\n"
+"from the vaccine management section !\n"
 msgstr ""
+"Не удалось изменить это лекарство\n"
 "\n"
-"Сегодня у пациента день рождения!\n"
+" \"%s\" (%s)\n"
 "\n"
+"так как это вакцина. Редактируйте\n"
+"его в резделе настройки вакцин!\n"
+
+msgid "Deleting medication"
+msgstr "Удаление лекарства"
 
 #, python-format
-msgid "Birthday: %s ago\n"
+msgid ""
+"Cannot delete the medication\n"
+"\n"
+" \"%s\" (%s)\n"
+"\n"
+"because it is a vaccine. Please delete it\n"
+"from the vaccine management section !\n"
 msgstr ""
+"Не удалось удалить лекарство\n"
+"\n"
+" \"%s\" (%s)\n"
+"\n"
+"так как это вакцина. Удаляйте\n"
+"его в резделе настройки вакцин!\n"
 
-#, fuzzy, python-format
-msgid "Birthday: in %s\n"
-msgstr "Уведомитель дней рождения"
+msgid ""
+"\n"
+"These are the drug brands known to GNUmed.\n"
+msgstr ""
+"\n"
+"Это патентированный препараты, известные GNUmed.\n"
 
-#, python-format
-msgid "Age: %s\n"
-msgstr "Возраст: %s\n"
+msgid "Showing branded drugs."
+msgstr "Отображение патентированных препаратов."
 
-#, python-format
-msgid "last confirmed %s\n"
-msgstr "Последний подтвержденный %s\n"
+msgid "Import substances and brands from a drug database."
+msgstr "Импорт веществ и патентированных препаратов из базы данных препаратов."
 
-#, python-format
-msgid "Comment (%s): %%s"
-msgstr "Комментарий (%s): %%s"
+msgid "Managing components of a drug"
+msgstr "Составление компонентов препарата."
 
 #, python-format
-msgid " - expires %s"
-msgstr " - истек срок годности %s"
+msgid ""
+"Cannot manage the components of the branded drug product\n"
+"\n"
+" \"%s\" (%s)\n"
+"\n"
+"because it is currently taken by patients.\n"
+msgstr ""
+"Не удалось составить компоненты патентованного препарата\n"
+"\n"
+" \"%s\" (%s)\n"
+"\n"
+"так как его в настоящее время принимают пациенты.\n"
+
+msgid "Pick the substances which are components of this drug."
+msgstr "Выберите вещества, которые являютмя компонентами этого препарата."
+
+msgid "Components of drug"
+msgstr "Компоненты препарата"
 
 #, python-format
 msgid ""
-"Due for %s (since %s%s):\n"
-"%s%s\n"
-"Patient: %s\n"
-"Reminder by: %s"
+"Adjust the components of \"%s\"\n"
+"\n"
+"The drug must contain at least one component. Any given\n"
+"substance can only be included once per drug."
 msgstr ""
-"Подлежит для %s (с %s%s):\n"
-"%s%s\n"
-"Пациент: %s\n"
-"Напоминание через: %s"
-
-msgid "Clinical reminder"
-msgstr "Клиническое напоминание"
+"Состав компонентов \"%s\"\n"
+"\n"
+"Препарат должен содержать, по крайней мере,\n"
+"один компонент. Любое предоставленное вещество\n"
+"может быть включено в препарат только однократно."
 
-#, fuzzy
-msgid "Adding automatic dynamic hint"
-msgstr "Отображение динамических подсказок."
+msgid "Managing components of a drug ..."
+msgstr "Составление компонентов препарата ..."
 
-#, fuzzy
-msgid "Editing automatic dynamic hint"
-msgstr "Отображение динамических подсказок."
+msgid "Cannot edit drug brand. It is in use."
+msgstr "Не удалось изменить патентированный препарат. Он в использовании."
 
-#, fuzzy
-msgid "Deleting automatic dynamic hint"
-msgstr "Отображение динамических подсказок."
+msgid "Checking brand data"
+msgstr "Проверка патентированного препарата"
 
 #, python-format
 msgid ""
-"Really delete this dynamic hint ?\n"
+"The brand information you entered:\n"
 "\n"
-" [%s]"
+" [%s %s]\n"
+"\n"
+"already exists as a drug product."
 msgstr ""
 
-#, fuzzy
-msgid "deleting a dynamic hint"
-msgstr "Отображение динамических подсказок."
+msgid ""
+"You have not selected any substances\n"
+"as drug components.\n"
+"\n"
+"Without components you will not be able to\n"
+"use this drug for documenting patient care.\n"
+"\n"
+"Are you sure you want to save\n"
+"it without components ?"
+msgstr ""
+"Ни одно вещество не выбрано\n"
+"как компонент препарата.\n"
+"\n"
+"Без компонентов невозможно использовать этот\n"
+"препарат для документированного лечения пациента.\n"
+"\n"
+"Уверены, что нужно сохранить его без компонентов?"
+
+msgid "Cannot save branded drug. Invalid or missing essential input."
+msgstr ""
+"Не удалось сохранить патентированный препарат.\r\n"
+"Неправильный или пропущенный основной ввод."
 
 msgid ""
+"The brand name of the drug.\n"
 "\n"
-"Dynamic hints registered with GNUmed.\n"
+"Note: a brand name will need to be linked to\n"
+"one or more components before it can be used,\n"
+"except in the case of fake (generic) vaccines."
 msgstr ""
+"Патентированное название препарата.\n"
 "\n"
-"Динамические подсказки, зарегистрированные с GNUmed.\n"
+"Примечание: патентированное название\n"
+"необходимо связать с одним или более\n"
+"компонентом до возможного использования,\n"
+"кроме случаев непатентованных вакцин (дженерик)."
 
-msgid "Showing dynamic hints."
-msgstr "Отображение динамических подсказок."
+msgid "No EMR data loaded."
+msgstr "Данные EMR не загружены."
 
-msgid "Hint"
-msgstr "Подсказка"
+msgid "EMR text dump"
+msgstr "Текстовой дамп EMR"
+
+msgid "Currently there is no active patient. Cannot retrieve EMR text."
+msgstr "Нет текущего активного пациента. Не удалось восстановить текст EMR."
 
 #, fuzzy
-msgid "Browse and install automatic dynamic hints data packs"
-msgstr "Отображение и установка пакетов данных для клинических подсказок"
+msgid "SOAP Editor Actions:"
+msgstr "Операции с частью:"
 
-#, fuzzy, python-format
-msgid "By: %s"
-msgstr "Родился: %s\n"
+#, fuzzy
+msgid "&Sort lines"
+msgstr "Хронология не установлена"
 
-msgid "No entry in field <Source>."
+msgid "Sort lines by SOAP category"
 msgstr ""
 
-msgid "No entry in field <Conditions>."
+msgid "e&Xpand keyword"
+msgstr ""
+
+msgid "Expand keyword / macro"
 msgstr ""
 
 #, fuzzy
-msgid "No entry in field <Description>."
-msgstr "Ошибка печати списка лекарств."
+msgid "as &Subjective"
+msgstr "Субъективный"
 
-msgid "No entry in field <Title>."
+msgid "Set line to category \"Subjective\""
 msgstr ""
 
 #, fuzzy
-msgid "creating a new dynamic hint"
-msgstr "Отображение динамических подсказок."
+msgid "as &Objective"
+msgstr "Объективный"
 
-#, fuzzy
-msgid "updating an existing dynamic hint"
-msgstr "Открыть существующую хронологию"
+msgid "Set line to category \"Objective\""
+msgstr ""
 
 #, fuzzy
-msgid "Deleting suppressed dynamic hint"
-msgstr "Отображение динамических подсказок."
+msgid "as &Assessment"
+msgstr "Оценка"
 
-#, python-format
-msgid ""
-"Really delete the suppression of this dynamic hint ?\n"
-"\n"
-" [%s]"
+msgid "Set line to category \"Assessment\""
 msgstr ""
 
 #, fuzzy
-msgid ""
-"\n"
-"Dynamic hints suppressed in this patient.\n"
+msgid "as &Plan"
+msgstr "План"
+
+msgid "Set line to category \"Plan\""
 msgstr ""
-"\n"
-"Динамические подсказки, зарегистрированные с GNUmed.\n"
 
 #, fuzzy
-msgid "Showing suppressed dynamic hints."
-msgstr "Отображение динамических подсказок."
+msgid "as &Unspecified"
+msgstr "soap_Unspecified"
 
-#, fuzzy
-msgid "Rationale"
-msgstr "Реакция"
+msgid "Set line to category \"unspecified\""
+msgstr ""
 
 #, fuzzy
-msgid "Manage hints"
-msgstr "Списки по управлению"
+msgid "as ad&Ministrative"
+msgstr "Назначения"
 
-#, fuzzy
-msgid "Manage automatic dynamic hints"
-msgstr "Отображение динамических подсказок."
+msgid "Set line to category \"administrative\""
+msgstr ""
 
-msgid "Cannot delete family history item."
-msgstr "Не удалось удалить пункт семейного анамнеза."
+#, fuzzy
+msgid "→ &Clipboard"
+msgstr "Экспорт в &clipboard"
 
-msgid "Family history of this patient."
-msgstr "Семейный анамнез этого пациента."
+#, fuzzy
+msgid "Copy line to clipboard"
+msgstr "Невозможно скопировать в буфер."
 
-msgid "Showing family history."
-msgstr "Отображение семейного анамнеза."
+#, fuzzy
+msgid "→ +Clipboard+"
+msgstr "Экспорт в &clipboard"
 
-msgid "Fatal"
-msgstr "Критическое"
+#, fuzzy
+msgid "Add line to clipboard"
+msgstr "Экспорт в &clipboard"
 
-msgid "Noted"
-msgstr "Отмеченное"
+#, fuzzy
+msgid "Copy content to clipboard"
+msgstr "Невозможно скопировать в буфер."
 
-msgid "Died"
-msgstr "Умершие"
+#, fuzzy
+msgid "Add content to clipboard"
+msgstr "Экспорт в &clipboard"
 
-msgid "Adding family history"
-msgstr "Добавление семейного анамнеза"
+#, fuzzy
+msgid "Copy selection to clipboard"
+msgstr "Невозможно скопировать в буфер."
 
-msgid "Editing family history"
-msgstr "Изменение семейного анамнеза."
+#, fuzzy
+msgid "Add selection to clipboard"
+msgstr "Экспорт в &clipboard"
 
-msgid "No EMR data loaded."
-msgstr "Данные EMR не загружены."
+#, fuzzy
+msgid "&Line ..."
+msgstr "Вакцина ..."
 
-msgid "EMR text dump"
-msgstr "Текстовой дамп EMR"
+#, fuzzy
+msgid "&Text ..."
+msgstr "&Users ..."
 
-msgid "Currently there is no active patient. Cannot retrieve EMR text."
-msgstr "Нет текущего активного пациента. Не удалось восстановить текст EMR."
+#, fuzzy
+msgid "&Region ..."
+msgstr "Регион"
 
 #, fuzzy
 msgid "Show HL7 file:"
@@ -18174,6 +19166,10 @@ msgstr ""
 msgid "Extracting HL7 from XML file"
 msgstr "Извлечение файлов из папки [%s] ..."
 
+#, python-format
+msgid "Unwrapped HL7 into [%s] from [%s]."
+msgstr ""
+
 msgid "Select HL7 file for staging:"
 msgstr ""
 
@@ -18207,6 +19203,10 @@ msgstr ""
 " [%s]\n"
 "\n"
 
+#, fuzzy, python-format
+msgid "Staged HL7 from [%s]."
+msgstr "Загружает данные шаблона из файла."
+
 #, fuzzy
 msgid "Importing HL7 data"
 msgstr "импортирование ссылочных данных LOINC"
@@ -18257,10 +19257,6 @@ msgstr ""
 msgid "Identification"
 msgstr "Обозначение"
 
-#, fuzzy
-msgid "Show"
-msgstr "Показать:"
-
 msgid "Show formatted HL7"
 msgstr ""
 
@@ -18310,6 +19306,20 @@ msgid "Plot current selection"
 msgstr "Текущее лекарство"
 
 #, fuzzy
+msgid ""
+"Select the measurements panel to show in the top pane for continuous "
+"monitoring."
+msgstr "Выбирите шаблон для вывода списка лекарств."
+
+#, fuzzy
+msgid "Lab panel"
+msgstr "Списки по управлению"
+
+#, fuzzy
+msgid "Configuring continuous monitoring measurements panel"
+msgstr "Изменение типа исследования"
+
+#, fuzzy
 msgid "No default Gnuplot script template selected."
 msgstr "Не выбран шаблон документа."
 
@@ -18335,13 +19345,28 @@ msgstr "Не удалось загрузить шаблон для списка
 msgid "Cannot plot without a plot script."
 msgstr "Не удалось подготовить без сценария подготовки."
 
-#, fuzzy
-msgid "Time"
-msgstr "Время:"
-
 msgid "Result"
 msgstr "Результат"
 
+msgid "Perform on selected results:"
+msgstr "Выполнить по выбранным результатам:"
+
+msgid "Review and &sign"
+msgstr "Проверка и &sign"
+
+msgid "Export to &file"
+msgstr "Экспорт в &file"
+
+msgid "Export to &clipboard"
+msgstr "Экспорт в &clipboard"
+
+msgid "Panels"
+msgstr ""
+
+#, fuzzy
+msgid "List"
+msgstr "Список ожидания"
+
 msgid ""
 "lab_grid_date_format::%Y\n"
 "%b %d"
@@ -18437,18 +19462,6 @@ msgstr ""
 msgid "All: by &Day"
 msgstr ""
 
-msgid "Perform on selected results:"
-msgstr "Выполнить по выбранным результатам:"
-
-msgid "Review and &sign"
-msgstr "Проверка и &sign"
-
-msgid "Export to &file"
-msgstr "Экспорт в &file"
-
-msgid "Export to &clipboard"
-msgstr "Экспорт в &clipboard"
-
 #, python-format
 msgid "%s results selected. Too many to list individually."
 msgstr "Выбрано %s результатов. Слишком много для отдельного списка."
@@ -18668,6 +19681,10 @@ msgstr ""
 msgid "EMR Actions:"
 msgstr "Операции с EMR:"
 
+#, fuzzy
+msgid "Print EMR"
+msgstr "&Print"
+
 msgid "Create health issue"
 msgstr "Создать медицинскую проблему"
 
@@ -18831,16 +19848,43 @@ msgstr "Обзор"
 msgid "&New notes %s"
 msgstr "&Notes"
 
+msgid "Find text in EMR Journal"
+msgstr ""
+
+#, fuzzy
+msgid "Modified"
+msgstr "измененный элемент"
+
+#, fuzzy
+msgid "Clinical time"
+msgstr "Медицинские записи"
+
+msgid "Who / When"
+msgstr ""
+
+#, python-format
 msgid ""
-"An error occurred while retrieving the EMR\n"
-"in journal form for the active patient.\n"
+"Chart entry: %s       [#%s in %s]\n"
+" Modified: %s by %s (%s rev %s)\n"
 "\n"
-"Please check the log file for details."
+"Health issue: %s%s\n"
+"Episode: %s%s\n"
+"Encounter: %s%s"
 msgstr ""
-"Во время восстановления EMR произошла ошибка\n"
-"при формировании журнала для активного пациента.\n"
+
+#, python-format
+msgid ""
+"%s\n"
 "\n"
-"Для подробной информации проверьте лог-файл."
+"                        rev %s (%s) by %s in <%s>"
+msgstr ""
+
+#, python-format
+msgid ""
+"%s\n"
+"%s\n"
+"%s"
+msgstr ""
 
 msgid "Editing tag"
 msgstr "Тэг изменения"
@@ -18985,18 +20029,17 @@ msgstr ""
 "\n"
 "%s\n"
 
-msgid "This patient DID receive care."
+#, fuzzy
+msgid "This patient DID receive care here."
 msgstr "Этот пациент ПОЛУЧИЛ лечение."
 
-msgid "This person did NOT receive care."
+#, fuzzy
+msgid "This person did NOT receive care here."
 msgstr "Этот пациент НЕ ПОЛУЧИЛ лечение."
 
 msgid "Disabling person"
 msgstr "Удаление персоны"
 
-msgid "Disabling patient"
-msgstr "Удаление пациента"
-
 msgid "Type or select a last name (family name/surname)."
 msgstr "Введите или выберите последнее имя (фамилия)"
 
@@ -19350,6 +20393,9 @@ msgstr ""
 "\n"
 "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
 
+msgid "Connecting to backend"
+msgstr "Подключение к серверной СУБД"
+
 #, fuzzy, python-format
 msgid ""
 "Unable to connect to database:\n"
@@ -19605,9 +20651,6 @@ msgstr "Организация"
 msgid "Office"
 msgstr "Офис"
 
-msgid "State"
-msgstr "Штат/область"
-
 msgid "Zip"
 msgstr "Почтовых индекс"
 
@@ -19666,8 +20709,8 @@ msgid "EMR Timeline"
 msgstr "Дерево EMR"
 
 #, fuzzy
-msgid "Show &Timeline"
-msgstr "Показать &ExamplePlugin"
+msgid "EMR &Timeline"
+msgstr "Дерево EMR"
 
 msgid "Overview"
 msgstr "Обзор"
@@ -19693,11 +20736,13 @@ msgstr "SimpleNotes"
 msgid "&SimpleNotes"
 msgstr "&SimpleNotes"
 
-msgid "EMR tree"
+#, fuzzy
+msgid "EMR Tree"
 msgstr "Дерево EMR"
 
-msgid "EMR &Tree (topical)"
-msgstr "&Tree EMR (актуальные)"
+#, fuzzy
+msgid "EMR &Tree"
+msgstr "Дерево EMR"
 
 #, fuzzy
 msgid "Print Manager"
@@ -19707,6 +20752,14 @@ msgstr "Печать части"
 msgid "&Print Manager"
 msgstr "&Manage"
 
+#, fuzzy
+msgid "EMR Journal"
+msgstr "Журнал EMR"
+
+#, fuzzy
+msgid "EMR &Journal (list)"
+msgstr "EMR &Journal (хронологический)"
+
 msgid "Appointments"
 msgstr "Должности"
 
@@ -19719,6 +20772,12 @@ msgstr "лабораторный журнал"
 msgid "Show &lab journal"
 msgstr "Показать &lab журнал"
 
+msgid "PACS"
+msgstr ""
+
+msgid "&PACS"
+msgstr ""
+
 msgid "Cardiac Devices"
 msgstr "Кардиостимуляторы"
 
@@ -19794,11 +20853,9 @@ msgstr "Руководство"
 msgid "User &manual (local)"
 msgstr "&manual пользователя (локальное)"
 
-msgid "EMR journal"
-msgstr "Журнал EMR"
-
-msgid "EMR &Journal (chronological)"
-msgstr "EMR &Journal (хронологический)"
+#, fuzzy
+msgid "EMR &Journal (text)"
+msgstr "Экспорт журнала EMR"
 
 msgid "Demographics"
 msgstr "Демографические сведения"
@@ -19969,6 +21026,10 @@ msgstr "Модуль шаблонов"
 msgid "Show &ExamplePlugin"
 msgstr "Показать &ExamplePlugin"
 
+#, fuzzy
+msgid "Find text"
+msgstr "Последний предоставленный"
+
 msgid "gm_ctl_client: starting slave GNUmed client"
 msgstr "gm_ctl_client: запуск вторичного клиента GNUmed"
 
@@ -20003,6 +21064,293 @@ msgstr "Отменить"
 msgid "Abort and do NOT connect to GNUmed."
 msgstr "Отменить и НЕ подключаться к GNUmed."
 
+#, fuzzy
+#~ msgid ""
+#~ "Health issue: %s%s%s (%s versions)\n"
+#~ "\n"
+#~ msgstr "медицинская проблема: %s"
+
+#, fuzzy
+#~ msgid ""
+#~ "Episode: %s%s%s (%s versions)\n"
+#~ "\n"
+#~ msgstr "Эпизод:%s\n"
+
+#, fuzzy
+#~ msgid ""
+#~ "Encounter: %s%s%s (%s versions)\n"
+#~ "\n"
+#~ msgstr "Обращения: %s (%s - %s):"
+
+#, fuzzy
+#~ msgid ""
+#~ "\n"
+#~ "current values:\n"
+#~ msgstr "<Статус текущей аллергии>"
+
+#~ msgid "soap_S"
+#~ msgstr "soap_S"
+
+#~ msgid "soap_O"
+#~ msgstr "soap_O"
+
+#~ msgid "soap_A"
+#~ msgstr "soap_A"
+
+#~ msgid "soap_P"
+#~ msgstr "soap_P"
+
+#, fuzzy
+#~ msgid "soap_U"
+#~ msgstr "soap_S"
+
+#~ msgid "soap_Subjective"
+#~ msgstr "soap_Subjective"
+
+#~ msgid "soap_Objective"
+#~ msgstr "soap_Objective"
+
+#~ msgid "soap_Assessment"
+#~ msgstr "soap_Assessment"
+
+#~ msgid "soap_Plan"
+#~ msgstr "soap_Plan"
+
+#~ msgid "soap_Unspecified"
+#~ msgstr "soap_Unspecified"
+
+#~ msgid "soap_Administrative"
+#~ msgstr "soap_Administrative"
+
+#, fuzzy
+#~ msgid "Row fields (as multiple lines)"
+#~ msgstr "Не переформатировать текст"
+
+#, fuzzy
+#~ msgid "Search in list"
+#~ msgstr "Наличие поиска"
+
+#, fuzzy
+#~ msgid "Show &Timeline"
+#~ msgstr "Показать &ExamplePlugin"
+
+#~ msgid "EMR &Tree (topical)"
+#~ msgstr "&Tree EMR (актуальные)"
+
+#~ msgid "Parts"
+#~ msgstr "Части"
+
+#~ msgid "You must select a part before you can delete it."
+#~ msgstr "Перед удалением части ее необходимо выбрать."
+
+#~ msgid "deleting part"
+#~ msgstr "удаляемая часть"
+
+#~ msgid ""
+#~ "The part has successfully been removed from the document.\n"
+#~ "\n"
+#~ "Do you also want to permanently delete the file\n"
+#~ "\n"
+#~ " [%s]\n"
+#~ "\n"
+#~ "from which this document part was loaded ?\n"
+#~ "\n"
+#~ "If it is a temporary file for a page you just scanned\n"
+#~ "this makes a lot of sense. In other cases you may not\n"
+#~ "want to lose the file.\n"
+#~ "\n"
+#~ "Pressing [YES] will permanently remove the file\n"
+#~ "from your computer.\n"
+#~ msgstr ""
+#~ "Часть была успешно удалена из документа.\n"
+#~ "\n"
+#~ "Хотите также навсегда удалить файл\n"
+#~ " [%s]\n"
+#~ ", из которого была загружена часть этого документа?\n"
+#~ "\n"
+#~ "Если это просто временный файл для сканированной\n"
+#~ "страницы, тогда удаление имеет смысл. В других\n"
+#~ "случаях нежелательно терять этот файл.\n"
+#~ "\n"
+#~ "Нажатие [YES] окончательно удалит этот файл\n"
+#~ "с вашего компьютера.\n"
+
+#~ msgid "Removing document part"
+#~ msgstr "Удаляемая часть документа"
+
+#~ msgid ""
+#~ "Cannot delete part in file [%s].\n"
+#~ "\n"
+#~ "You may not have write access to it."
+#~ msgstr ""
+#~ "Не удалось удалить часть в файле [%s].\n"
+#~ "\n"
+#~ "Нет права доступа на запись к нему."
+
+#~ msgid "Cannot update document metadata."
+#~ msgstr "Не удалось обновление метаданных документа."
+
+#~ msgid "Disabling patient"
+#~ msgstr "Удаление пациента"
+
+#, fuzzy
+#~ msgid "&Unknown"
+#~ msgstr "Неизвестно"
+
+#, fuzzy
+#~ msgid "When was smoking status last confirmed (mostly \"today\") ?"
+#~ msgstr "Когда статус аллергии был подтвержден последний раз."
+
+#, fuzzy
+#~ msgid "Last confirmed: %s%s"
+#~ msgstr "Ранее подтвержденная"
+
+#~ msgid "Duration / Until"
+#~ msgstr "Продолжительность / до"
+
+#, fuzzy
+#~ msgid "Smoking status"
+#~ msgstr "статус"
+
+#~ msgid "State"
+#~ msgstr "Штат/область"
+
+#~ msgid ""
+#~ "Cannot connect to configuration database with:\n"
+#~ "\n"
+#~ "[%s]"
+#~ msgstr ""
+#~ "Не удалось подключить к конфигурационной базе данных с:\n"
+#~ "\n"
+#~ "[%s]"
+
+#~ msgid ""
+#~ "Cannot connect to database with:\n"
+#~ "\n"
+#~ "[%s]"
+#~ msgstr ""
+#~ "Не удалось подключить к базе данных с:\n"
+#~ "\n"
+#~ "[%s]"
+
+#~ msgid "No product information available."
+#~ msgstr "Не доступна информация о продукте"
+
+#~ msgid ""
+#~ "Unable to connect to database:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Are you sure you have got a local database installed ?\n"
+#~ "\n"
+#~ "Please retry with proper credentials or cancel.\n"
+#~ "\n"
+#~ "You may also need to check the PostgreSQL client\n"
+#~ "authentication configuration in pg_hba.conf. For\n"
+#~ "details see:\n"
+#~ "\n"
+#~ "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
+#~ msgstr ""
+#~ "Не удалось подключиться к базе данных:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Уверены, что локальная база данных установлена?\n"
+#~ "\n"
+#~ "Повторите попытку, указав точную информацию или отмените.\n"
+#~ "\n"
+#~ "Возможно, также необходимо проверить настройку\n"
+#~ "идентификации клиентов PostgreSQL в файле pg_hba.conf.\n"
+#~ "Подробнее см.:\n"
+#~ "\n"
+#~ "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
+
+#~ msgid ""
+#~ "Unable to connect to database:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Please retry with proper credentials or cancel.\n"
+#~ "\n"
+#~ "You may also need to check the PostgreSQL client\n"
+#~ "authentication configuration in pg_hba.conf. For\n"
+#~ "details see:\n"
+#~ "\n"
+#~ "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
+#~ msgstr ""
+#~ "Не удалось подключиться к базе данных:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Повторите попытку, указав точную информацию или отмените.\n"
+#~ "\n"
+#~ "Возможно, также необходимо проверить настройку\n"
+#~ "идентификации клиентов PostgreSQL в файле pg_hba.conf.\n"
+#~ "Подробнее см.:\n"
+#~ "\n"
+#~ "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
+
+#~ msgid ""
+#~ "Unable to connect to database:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Please retry another backend / user / password combination !\n"
+#~ msgstr ""
+#~ "Не удалось подключиться к базе данных:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Попробуйте другую комбинацию серверная СУБД/пользователь/пароль !\n"
+
+#~ msgid "Show part"
+#~ msgstr "Показать часть"
+
+#~ msgid "You must select a part before you can view it."
+#~ msgstr "Перед просмотром части ее необходимо выбрать"
+
+#~ msgid "Journal"
+#~ msgstr "Журнал"
+
+#~ msgid ""
+#~ "An error occurred while retrieving the EMR\n"
+#~ "in journal form for the active patient.\n"
+#~ "\n"
+#~ "Please check the log file for details."
+#~ msgstr ""
+#~ "Во время восстановления EMR произошла ошибка\n"
+#~ "при формировании журнала для активного пациента.\n"
+#~ "\n"
+#~ "Для подробной информации проверьте лог-файл."
+
+#, fuzzy
+#~ msgid ""
+#~ "\n"
+#~ "Select the measurements panel to show in the top pane.\n"
+#~ msgstr "Выбирите шаблон для вывода списка лекарств."
+
+#~ msgid "Brand by component"
+#~ msgstr "Марка компонента"
+
+#~ msgid "Unbranded substance"
+#~ msgstr "Непатентованное вещество"
+
+#~ msgid "The active ingredients of this brand."
+#~ msgstr "Действующее вещество этой марки."
+
+#~ msgid ""
+#~ "The non-branded medication or non-medication substance, with optional "
+#~ "strength."
+#~ msgstr ""
+#~ "Незарегистрированное лекарство или нелекарственное вещество, с "
+#~ "необязательной дозировкой."
+
+#~ msgid "Sent"
+#~ msgstr "Отправить"
+
+#~ msgid "Inbox Message Actions:"
+#~ msgstr "Действия сообщений в почтовом ящике"
+
 #~ msgid "Province"
 #~ msgstr "Область"
 
@@ -20123,9 +21471,6 @@ msgstr "Отменить и НЕ подключаться к GNUmed."
 #~ msgid "%s: %s%s%s (%s ago)"
 #~ msgstr "%s %s %s %s (%s тому назад, %s)"
 
-#~ msgid "Clinical hint"
-#~ msgstr "Клинический совет"
-
 #~ msgid "More info"
 #~ msgstr "Дополнительная информация"
 
@@ -20157,10 +21502,6 @@ msgstr "Отменить и НЕ подключаться к GNUmed."
 #~ msgstr "Лог-файлы"
 
 #, fuzzy
-#~ msgid "Check here for printing."
-#~ msgstr "Настройка страницы для печати"
-
-#, fuzzy
 #~ msgid "Print immediately without further ado."
 #~ msgstr "Удаляет немедленно без предварительного изменения."
 
@@ -20191,10 +21532,6 @@ msgstr "Отменить и НЕ подключаться к GNUmed."
 #~ msgid "&Sign as:"
 #~ msgstr "&Sign как:"
 
-#, fuzzy
-#~ msgid "file: %s (%s/)"
-#~ msgstr "работа: %s"
-
 #~ msgid "Switching clinical hint activation"
 #~ msgstr "Переключение активации клинических советов"
 
@@ -20333,9 +21670,6 @@ msgstr "Отменить и НЕ подключаться к GNUmed."
 #~ msgid "SQL: %s"
 #~ msgstr "SQL: %s"
 
-#~ msgid "cannot connect to service [%s]"
-#~ msgstr "не удалось подключить к службе [%s]"
-
 #~ msgid "When was this substance started to be consumed."
 #~ msgstr "Когда был начат прием этого вещества."
 
@@ -20591,9 +21925,6 @@ msgstr "Отменить и НЕ подключаться к GNUmed."
 #~ "\n"
 #~ "%s"
 
-#~ msgid "Date: %s\n"
-#~ msgstr "Дата:%s\n"
-
 #~ msgid "Employees"
 #~ msgstr "Сотрудники"
 
@@ -20758,12 +22089,6 @@ msgstr "Отменить и НЕ подключаться к GNUmed."
 #~ msgid "Details about %s (%s)%s\n"
 #~ msgstr "Сведения о %s (%s)%s\n"
 
-#~ msgid ""
-#~ "Measurement details:                                               \n"
-#~ msgstr ""
-#~ "Сведения об\n"
-#~ "исследовании:                                               \n"
-
 #~ msgid "Amount per dose: %s%s"
 #~ msgstr "Содержание в дозе: %s%s"
 
diff --git a/client/po/sq-gnumed.mo b/client/po/sq-gnumed.mo
index b78247e..71d18ad 100644
Binary files a/client/po/sq-gnumed.mo and b/client/po/sq-gnumed.mo differ
diff --git a/client/po/sq.po b/client/po/sq.po
index 51fa202..cbad975 100644
--- a/client/po/sq.po
+++ b/client/po/sq.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gnumed\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-12-26 20:29+0100\n"
+"POT-Creation-Date: 2016-03-17 16:27+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <LL at li.org>\n"
@@ -1543,9 +1543,21 @@ msgid ""
 msgstr ""
 
 #, python-format
+msgid "Revision #%s"
+msgstr ""
+
+#, python-format
 msgid "[%s:%s]: row not updated (nothing returned), row in use ?"
 msgstr ""
 
+#, fuzzy, python-format
+msgid "<%s(.bat)> not found"
+msgstr "Faqja nuk u gjet"
+
+#, python-format
+msgid "problem with <%s>"
+msgstr ""
+
 #, python-format
 msgid "[%s] is not a readable file"
 msgstr ""
@@ -1574,21 +1586,7 @@ msgstr ""
 msgid "%s Bytes"
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot connect to configuration database with:\n"
-"\n"
-"[%s]"
-msgstr ""
-
-#, python-format
-msgid ""
-"Cannot connect to database with:\n"
-"\n"
-"[%s]"
-msgstr ""
-
-msgid "No product information available."
+msgid "<type>"
 msgstr ""
 
 #, python-format
@@ -1926,105 +1924,6 @@ msgstr ""
 msgid "  risk: %s"
 msgstr ""
 
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Are you sure you have got a local database installed ?\n"
-"\n"
-"Please retry with proper credentials or cancel.\n"
-"\n"
-"You may also need to check the PostgreSQL client\n"
-"authentication configuration in pg_hba.conf. For\n"
-"details see:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-msgstr ""
-"E pamundur per tu lidhur me bazen e te dhenave:\n"
-"\n"
-"%s\n"
-"\n"
-"Jeni i sigurte qe keni nje baze te dhenash te instaluar lokalisht?\n"
-"\n"
-"Ju gjithashtu duhet te kontrolloni konfigurimin e autentifikimit\n"
-"te klientit ne PostgreSLQ tek file pg_hba.conf. Per\n"
-"detaje referoju:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Please retry with proper credentials or cancel.\n"
-"\n"
-"You may also need to check the PostgreSQL client\n"
-"authentication configuration in pg_hba.conf. For\n"
-"details see:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-msgstr ""
-"E pamundur per tu lidhur me bazen e te dhenave:\n"
-"\n"
-"%s\n"
-"\n"
-"Ju lutem provoni perseri me kredencialet e sakta ose anulloni veprimin.\n"
-"\n"
-"Ju gjithashtu duhet te kontrolloni konfigurimin e autentifikimit\n"
-"te klientit ne PostgreSLQ tek file pg_hba.conf. Per\n"
-"detaje referoju:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-
-msgid "Connecting to backend"
-msgstr "Duke u lidhur me panelin e programit"
-
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Please retry another backend / user / password combination !\n"
-msgstr ""
-"E pamundur per tu lidhur me bazen e te dhenave:\n"
-"\n"
-"%s\n"
-"\n"
-"Ju lutem provoni nje tjeter / emer perdoruesi / fjalekalimi te panelit te "
-"programit!\n"
-
-msgid "programmer forgot to specify error message"
-msgstr "programuesi ka harruar te specifikoje nje numer per gabimin"
-
-msgid ""
-"\n"
-"\n"
-"Please consult the error log for all the gory details !"
-msgstr ""
-"\n"
-"\n"
-"Ju lutem konsultoni loget e gabimeve per detajet e plota!"
-
-msgid "generic error message"
-msgstr "mesazh gabimi i pergjithshem"
-
-msgid "programmer forgot to specify info message"
-msgstr "programuesi ka harruar te specifikoje nje mesazh informues"
-
-msgid "generic info message"
-msgstr "mesazh informues i pergjithshem"
-
-msgid "programmer forgot to specify warning"
-msgstr "programuesi ka harruar te specifikoje nje paralajmerim"
-
-msgid "generic warning message"
-msgstr "mesazh paralajmerimi i pergjithshem"
-
 msgid "no hook specified, please report bug"
 msgstr ""
 
@@ -2341,6 +2240,32 @@ msgstr ""
 msgid "Include:"
 msgstr ""
 
+msgid "&Search"
+msgstr ""
+
+msgid "Suggest"
+msgstr ""
+
+msgid "Set"
+msgstr ""
+
+msgid "dialog_1"
+msgstr ""
+
+msgid "Search patients in Orthanc DICOM store."
+msgstr ""
+
+msgid "Suggest a patient ID based on the active patient."
+msgstr ""
+
+#, fuzzy
+msgid "Search term:"
+msgstr "Liste mjekimi"
+
+#, fuzzy
+msgid "New patient ID:"
+msgstr "Mjekime aktive: %s"
+
 msgid "Your review"
 msgstr ""
 
@@ -2642,6 +2567,93 @@ msgstr "Substance"
 msgid "Amount"
 msgstr ""
 
+#, fuzzy
+msgid "&Connect"
+msgstr "&Contents\tF1"
+
+msgid "&Browse"
+msgstr ""
+
+msgid "<not connected>"
+msgstr ""
+
+msgid "Browse all"
+msgstr ""
+
+#, fuzzy
+msgid "Export all"
+msgstr "Eksporto ne SVG"
+
+msgid "Browse"
+msgstr ""
+
+msgid "Export"
+msgstr ""
+
+msgid "Upload"
+msgstr ""
+
+msgid "Enter the PACS host address."
+msgstr ""
+
+msgid "Enter the PACS port."
+msgstr ""
+
+msgid "Enter the PACS user."
+msgstr ""
+
+msgid "Enter the PACS password. It will not be shown."
+msgstr ""
+
+msgid "Connect to PACS."
+msgstr ""
+
+msgid "Browse PACS at top level."
+msgstr ""
+
+msgid "Modify some of Orthanc content (such as patient IDs)."
+msgstr ""
+
+#, fuzzy
+msgid "Browse overview of studies for this patient."
+msgstr "Nuk ka episode per kete ceshtje shendeti."
+
+msgid "Copy all studies into export area."
+msgstr ""
+
+msgid "Browse topmost selected study."
+msgstr ""
+
+msgid "Copy selected studies into export area."
+msgstr ""
+
+msgid "Save selected studies to disk."
+msgstr ""
+
+msgid ""
+"Upload DICOM files from a directory, recursively, into the Orthanc PACS\n"
+"\n"
+"The currently active patient does not matter. Orthanc will associate "
+"uploaded files with the patient found within the DICOM metadata. It will "
+"create new patients as needed."
+msgstr ""
+
+msgid "Host:"
+msgstr ""
+
+msgid "Port:"
+msgstr ""
+
+msgid "User:"
+msgstr ""
+
+msgid "Password"
+msgstr ""
+
+#, fuzzy
+msgid "Selected studies:"
+msgstr "Zgjidhni ngjarje"
+
 msgid "Fake brand"
 msgstr ""
 
@@ -2967,9 +2979,6 @@ msgstr ""
 msgid "&Load"
 msgstr ""
 
-msgid "Export"
-msgstr ""
-
 msgid "A long, descriptive name for this form template."
 msgstr ""
 
@@ -3057,15 +3066,13 @@ msgstr ""
 msgid "Document Properties"
 msgstr ""
 
-msgid "Show part"
-msgstr ""
+#, fuzzy
+msgid "Show"
+msgstr "Koha e shfaqjes"
 
 msgid "Remove part"
 msgstr ""
 
-msgid "Parts"
-msgstr ""
-
 msgid "Discard"
 msgstr ""
 
@@ -3093,6 +3100,9 @@ msgstr ""
 msgid "Required: The primary episode this document is to be listed under."
 msgstr ""
 
+msgid "Optional: The organization (unit) this document originated from."
+msgstr ""
+
 msgid ""
 "Optional: A short comment identifying the document. Good comments give an "
 "idea of the content and source of the document."
@@ -3117,6 +3127,9 @@ msgid ""
 "normal and abnormal resuslts can be relevant."
 msgstr ""
 
+msgid "Optional: A free-text document description."
+msgstr ""
+
 msgid "This field lists the parts belonging to the current document."
 msgstr ""
 
@@ -3128,9 +3141,6 @@ msgid ""
 "deletion from disk."
 msgstr ""
 
-msgid "Optional: A free-text document description."
-msgstr ""
-
 msgid "Save finished document."
 msgstr ""
 
@@ -3146,6 +3156,10 @@ msgstr ""
 msgid "Associate to episode:"
 msgstr ""
 
+#, fuzzy
+msgid "Document source:"
+msgstr "Dokumenta:"
+
 msgid "Comment / Identification:"
 msgstr ""
 
@@ -3328,7 +3342,7 @@ msgstr ""
 msgid "Messages:"
 msgstr ""
 
-msgid "Only:"
+msgid "Limit to:"
 msgstr ""
 
 msgid "&Myself … or:"
@@ -3438,10 +3452,10 @@ msgstr ""
 msgid "Purpose"
 msgstr ""
 
-msgid "Details"
+msgid "Please supply your email address here !"
 msgstr ""
 
-msgid "<Please supply your email address here !>"
+msgid "Details"
 msgstr ""
 
 msgid "Keep running"
@@ -3465,9 +3479,11 @@ msgid ""
 msgstr ""
 
 msgid ""
-"Please enter your email address so we can provide feedback directly to you. "
-"Otherwise, feedback will be given on the GNUmed mailing list (http://lists."
-"gnu.org/mailman/listinfo/gnumed-bugs)."
+"Please enter your email address so we can provide help to you directly.\n"
+"\n"
+"Otherwise, feedback can be given on the GNUmed mailing list (http://lists."
+"gnu.org/mailman/listinfo/gnumed-bugs) ONLY to which you will then have to "
+"subscribe."
 msgstr ""
 
 msgid "Find help on http://wiki.gnumed.de, too."
@@ -3582,9 +3598,6 @@ msgstr ""
 msgid "Account"
 msgstr ""
 
-msgid "Password"
-msgstr ""
-
 msgid "Password, again"
 msgstr ""
 
@@ -4077,7 +4090,7 @@ msgstr ""
 msgid "Acquire images from image source (scanner, ...)."
 msgstr ""
 
-msgid "Acquire images or text from the clipboard."
+msgid "Acquire file or text from the clipboard."
 msgstr ""
 
 msgid "Remove the selected documents."
@@ -4224,7 +4237,7 @@ msgid ""
 "- the result list will be artificially limited to the first 1000 rows\n"
 "- you can include a column named \"pk_patient\" to make the result rows "
 "activate the corresponding patient on double-clicking\n"
-"- by inserting $<ID_active_patient>$ you can access the patient ID of the "
+"- by inserting $<ID_ACTIVE_PATIENT>$ you can access the patient ID of the "
 "patient active at the time of running the query"
 msgstr ""
 
@@ -4383,9 +4396,6 @@ msgstr ""
 msgid "Link &new"
 msgstr ""
 
-msgid "Browse"
-msgstr ""
-
 msgid ""
 "Search for matches among existing addresses and [Link] a selection, or [Link "
 "(a) new] address."
@@ -4434,25 +4444,16 @@ msgid ""
 "left."
 msgstr ""
 
-msgid "label_1"
-msgstr ""
-
-msgid "→"
-msgstr ""
-
-msgid "←"
-msgstr ""
-
-msgid "Extra"
+msgid "Subjective"
 msgstr ""
 
-msgid "Move selected items from left to right."
+msgid "Objective"
 msgstr ""
 
-msgid "Move selected items from right to left."
+msgid "Assessment"
 msgstr ""
 
-msgid "Cancel picking items."
+msgid "Plan"
 msgstr ""
 
 msgid "Episode synopsis"
@@ -4488,19 +4489,28 @@ msgid ""
 "narrative belongs to."
 msgstr ""
 
-msgid "Subjective"
+msgid "Codes:"
 msgstr ""
 
-msgid "Codes:"
+msgid "label_1"
 msgstr ""
 
-msgid "Objective"
+msgid "→"
 msgstr ""
 
-msgid "Assessment"
+msgid "←"
 msgstr ""
 
-msgid "Plan"
+msgid "Extra"
+msgstr ""
+
+msgid "Move selected items from left to right."
+msgstr ""
+
+msgid "Move selected items from right to left."
+msgstr ""
+
+msgid "Cancel picking items."
 msgstr ""
 
 msgid "1"
@@ -4669,16 +4679,94 @@ msgstr ""
 msgid "Age range"
 msgstr ""
 
-msgid "Closed episodes"
+msgid "&Nicotine"
 msgstr ""
 
-msgid "Non-relevant issues"
+msgid "&Alcohol"
 msgstr ""
 
-msgid "Active problems"
+msgid "&Other:"
 msgstr ""
 
-msgid "Notes only"
+msgid "&Non-harmful use"
+msgstr ""
+
+msgid "&Harmful use"
+msgstr ""
+
+msgid "Presently &addicted"
+msgstr ""
+
+msgid "Previously &addicted"
+msgstr ""
+
+msgid "&Reconfirm as of today"
+msgstr ""
+
+msgid "Select for documenting smoking status."
+msgstr ""
+
+msgid "Select for documenting alcohol use status."
+msgstr ""
+
+msgid ""
+"Select for documenting use of substances other than nicotine or alcohol."
+msgstr ""
+
+msgid "Select the abused substance."
+msgstr ""
+
+msgid ""
+"Select if the substance use is not considered harmful (say, no use or non-"
+"harmful use)."
+msgstr ""
+
+msgid "Select if substance is use considered harmful."
+msgstr ""
+
+msgid "Select if the patient is presently addicted to this substance."
+msgstr ""
+
+msgid "Select if the patient was previously addicted to this substance."
+msgstr ""
+
+msgid ""
+"A comment on this substance use:\n"
+"- type of product used\n"
+"- frequency\n"
+"- amount\n"
+"- when started\n"
+"- attempts to quit\n"
+"..."
+msgstr ""
+
+msgid ""
+"When did the patient quit?\n"
+"\n"
+"You can also set a target quit date here."
+msgstr ""
+
+#, fuzzy
+msgid "Check here to confirm for today."
+msgstr "Pershtat faqen per printim"
+
+msgid "Quit date"
+msgstr ""
+
+#, fuzzy
+msgid "Last confirmed"
+msgstr " (konfirmimi i fundit %s)"
+
+msgid "Closed episodes"
+msgstr ""
+
+msgid "Non-relevant issues"
+msgstr ""
+
+msgid "Active problems"
+msgstr ""
+
+msgid "Notes only"
 msgstr ""
 
 msgid "Everything"
@@ -5005,20 +5093,18 @@ msgstr ""
 msgid "Show:"
 msgstr ""
 
-msgid "Brand by component"
+msgid "Kidneys"
 msgstr ""
 
 msgid "Brands"
 msgstr ""
 
-msgid "Kidneys"
-msgstr ""
-
-msgid "Unbranded substance"
+msgid "Substances"
 msgstr ""
 
-msgid "Manage"
-msgstr ""
+#, fuzzy
+msgid "&Unknown or date:"
+msgstr "Format i panjohur."
 
 msgid "Approved of"
 msgstr ""
@@ -5033,23 +5119,20 @@ msgid "... Reason"
 msgstr ""
 
 msgid ""
-"A component of a drug brand the patient is taking.\n"
+"A drug the patient is taking.\n"
 "\n"
-"Lookup, and select, a single- (or multi-) component drug brand, by active "
-"ingredient name. All components of multi-component drugs will be displayed "
-"and automatically added to the patient's list."
-msgstr ""
-
-msgid ""
-"Manage drug brands.\n"
+"Lookup and select an intake by either of\n"
+"- a generic substance name\n"
+"- a drug brand name\n"
+"- an active ingredient of a drug\n"
 "\n"
-"Note that this will not select a component for you. What it does is to let "
-"you manage (add/edit/delete) the drug products/brands known to GNUmed from "
-"which you can select a component."
+"Note that all components of multi-component drugs will be displayed and "
+"automatically added to the patient's list."
 msgstr ""
 
-msgid "The active ingredients of this brand."
-msgstr ""
+#, fuzzy
+msgid "Details on the selected drug."
+msgstr "Dyfishoni ngjarjen e zgjedhur"
 
 msgid "Show cardiac information relevant to substance selection."
 msgstr ""
@@ -5058,8 +5141,11 @@ msgid "Show renal insufficiency information related to substance selection."
 msgstr ""
 
 msgid ""
-"The non-branded medication or non-medication substance, with optional "
-"strength."
+"Manage drug brands.\n"
+"\n"
+"Note that this will not select a component for you. What it does is to let "
+"you manage (add/edit/delete) the drug products/brands known to GNUmed from "
+"which you can select a component."
 msgstr ""
 
 msgid ""
@@ -5072,11 +5158,19 @@ msgstr ""
 msgid "The preparation or form of the substance."
 msgstr ""
 
+msgid "Check here if the start date simply isn't known."
+msgstr ""
+
 msgid ""
 "When was this substance started to be consumed or - if not known - the "
 "earliest it is known to have been be consumed."
 msgstr ""
 
+msgid ""
+"A coment on the certainty of the start date, such as \"+/- 3 weeks\", "
+"\"spring of 2002\", \"shortly after Easter 1996\", ...."
+msgstr ""
+
 msgid "Whether this substance is taken by advice."
 msgstr ""
 
@@ -5110,6 +5204,16 @@ msgstr ""
 msgid "Reason for discontinuation."
 msgstr ""
 
+msgid "Drug"
+msgstr "Ilac"
+
+msgid "Research:"
+msgstr ""
+
+#, fuzzy
+msgid "Certainty:"
+msgstr "Kontenier:"
+
 msgid "Schedule"
 msgstr ""
 
@@ -5261,6 +5365,33 @@ msgstr ""
 msgid "Channel"
 msgstr ""
 
+msgid "&Last modification time"
+msgstr ""
+
+#, fuzzy
+msgid "&Entry time"
+msgstr "Koha e mbarimit "
+
+msgid "Show journal ordered by encounter."
+msgstr ""
+
+msgid "Show journal ordered by time of last modification."
+msgstr ""
+
+msgid "Show journal ordered by actual clinical time of each entry."
+msgstr ""
+
+#, fuzzy
+msgid "Edit the selected chart entry."
+msgstr "&Duplicate ngjarjen e perzgjedhur..."
+
+#, fuzzy
+msgid "Delete selected chart entry."
+msgstr "Perzgjedhja e ngjarjeve"
+
+msgid "Order by:"
+msgstr ""
+
 msgid "Chec&k"
 msgstr ""
 
@@ -5804,10 +5935,13 @@ msgstr ""
 msgid "Documents:"
 msgstr "Dokumenta:"
 
+msgid "&L"
+msgstr ""
+
 msgid "&N"
 msgstr ""
 
-msgid "&L"
+msgid "List all encounters."
 msgstr ""
 
 msgid "The encounter."
@@ -5816,9 +5950,6 @@ msgstr ""
 msgid "Start a new encounter for the active patient."
 msgstr ""
 
-msgid "List all encounters."
-msgstr ""
-
 msgid "Clinically relevant"
 msgstr ""
 
@@ -6069,7 +6200,8 @@ msgstr "Hap nje linje kohore egzistuese..."
 
 msgid ""
 "Rationale for\n"
-"suppression"
+"suppression\n"
+"for this patient"
 msgstr ""
 
 msgid "Save &under"
@@ -6125,6 +6257,12 @@ msgstr ""
 msgid "Encounter:"
 msgstr ""
 
+msgid "Manage"
+msgstr ""
+
+msgid "&Panel:"
+msgstr ""
+
 msgid "&Pick"
 msgstr ""
 
@@ -6167,6 +6305,9 @@ msgid ""
 "To disable that popup leave the message empty."
 msgstr ""
 
+msgid "Show search dialog."
+msgstr ""
+
 msgid "THIS IS NOT A VERIFIED MEASUREMENT. DO NOT USE FOR ACTUAL CARE."
 msgstr ""
 
@@ -6450,6 +6591,50 @@ msgstr "*ka* alergji"
 msgid "ERROR: unknown allergy state [%s]"
 msgstr "GABIM: gjendja alergjike [%s] e panjohur"
 
+msgid "definite"
+msgstr "perfundimtar"
+
+#, fuzzy
+msgid "indefinite"
+msgstr "perfundimtar"
+
+#, fuzzy
+msgid "Reaction:"
+msgstr "Drejtim"
+
+msgid "Noted:"
+msgstr ""
+
+msgid "Allergene:"
+msgstr ""
+
+#, fuzzy
+msgid "Substance:"
+msgstr "Substance"
+
+msgid "Code:"
+msgstr ""
+
+msgid "ATC:"
+msgstr ""
+
+msgid "Specific to:"
+msgstr ""
+
+#, fuzzy
+msgid "this substance only"
+msgstr "Produkt i faturueshem aktiv"
+
+msgid "drug class"
+msgstr ""
+
+msgid "unknown"
+msgstr ""
+
+#, fuzzy
+msgid "Generics:"
+msgstr "mesazh informues i pergjithshem"
+
 msgid "Medication history"
 msgstr "Hostoriku i mjekimit"
 
@@ -6461,9 +6646,15 @@ msgstr "Përshkrim"
 msgid "prescription data"
 msgstr "Përshkrim"
 
+msgid "Consumable substance"
+msgstr ""
+
 msgid "in use"
 msgstr ""
 
+msgid "w/"
+msgstr ""
+
 msgid "long-term"
 msgstr "afatgjate"
 
@@ -6482,6 +6673,35 @@ msgstr "inaktiv"
 msgid "?ongoing"
 msgstr "?ne vazhdimesi"
 
+#, fuzzy, python-format
+msgid ""
+"Substance abuse entry                                              [#%s]\n"
+msgstr "Subsanca hyrese (%s, %s) [#%s]                     \n"
+
+#, fuzzy, python-format
+msgid "Substance: %s [#%s]%s\n"
+msgstr "Substance: %s [#%s]\n"
+
+#, fuzzy, python-format
+msgid "Use type: %s\n"
+msgstr " Episod: %s\n"
+
+#, fuzzy, python-format
+msgid "Last checked: %s\n"
+msgstr "Punuar se fundmi me: %s\n"
+
+#, python-format
+msgid " Discontinued %s\n"
+msgstr " I nderprere %s\n"
+
+#, fuzzy, python-format
+msgid " Notes: %s\n"
+msgstr " Arsye: %s\n"
+
+#, fuzzy, python-format
+msgid "Revision: #%(row_ver)s, %(mod_when)s by %(mod_by)s."
+msgstr "Rishikimi: #%(row_ver), %(mod_when) nga %(mod_by)."
+
 #, python-format
 msgid "Substance intake entry (%s, %s)   [#%s]                     \n"
 msgstr "Subsanca hyrese (%s, %s) [#%s]                     \n"
@@ -6498,9 +6718,6 @@ msgstr "aprovuar"
 msgid "unapproved"
 msgstr "I paaprovuar"
 
-msgid "definite"
-msgstr "perfundimtar"
-
 msgid "suspected"
 msgstr "dyshuar"
 
@@ -6547,10 +6764,6 @@ msgid " (short-term)"
 msgstr " (afatshkurter)"
 
 #, python-format
-msgid " Discontinued %s\n"
-msgstr " I nderprere %s\n"
-
-#, python-format
 msgid " Reason: %s\n"
 msgstr " Arsye: %s\n"
 
@@ -6570,20 +6783,64 @@ msgstr " Problem shendeti: %s\n"
 msgid " Advice: %s\n"
 msgstr " Keshille: %s\n"
 
-#, fuzzy, python-format
-msgid "Revision: #%(row_ver)s, %(mod_when)s by %(mod_by)s."
-msgstr "Rishikimi: #%(row_ver), %(mod_when) nga %(mod_by)."
+#, fuzzy
+msgid "medication, not abuse"
+msgstr "Pyetje dhe pergjigje"
+
+msgid "no or non-harmful use"
+msgstr ""
+
+msgid "presently harmful use"
+msgstr ""
+
+msgid "presently addicted"
+msgstr ""
+
+msgid "previously addicted"
+msgstr ""
 
 #, fuzzy, python-format
-msgid "%s: %s ago"
+msgid "%s%s: %s ago%s"
 msgstr "%s më parë"
 
 #, fuzzy, python-format
-msgid "%s: %s ago (%s)"
+msgid "%s%s: %s ago (%s)"
 msgstr ""
 "%s: %s by %.8s (v%s)\n"
 "%s"
 
+#, fuzzy, python-format
+msgid "%s%s%s (%s ago)"
+msgstr " Kohezgjatja: %s (%s - %s)"
+
+#, fuzzy, python-format
+msgid "%s%s%s (%s ago, %s)"
+msgstr " Kohezgjatja: %s (%s - %s)"
+
+#, python-format
+msgid "%s ago"
+msgstr "%s më parë"
+
+#, python-format
+msgid "in %s"
+msgstr ""
+
+#, fuzzy, python-format
+msgid ", until %s (%s)"
+msgstr "Njesi: %s (%s)"
+
+#, python-format
+msgid " (planned for %s%s)"
+msgstr ""
+
+#, python-format
+msgid ", planned for %s%s"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "%s ago (for %s: %s %s %s)"
+msgstr " Kohezgjatja: %s (%s - %s)"
+
 msgid "Additional notes"
 msgstr "Shenime shtese"
 
@@ -6596,12 +6853,34 @@ msgstr "Liste mjekimi"
 msgid "ordered by brand"
 msgstr "rreshtuar ne baze te markes"
 
-msgid "Drug"
-msgstr "Ilac"
-
 msgid "Regimen / Advice"
 msgstr "Regjim / Keshille"
 
+#, fuzzy, python-format
+msgid "Component of %s (%s)"
+msgstr "Njesi: %s (%s)"
+
+#, fuzzy, python-format
+msgid "ATC (substance): %s"
+msgstr " ATC (substance): %s\n"
+
+#, fuzzy, python-format
+msgid "ATC (brand): %s"
+msgstr " ATC (brand): %s\n"
+
+msgid "this is a component of a fake brand"
+msgstr ""
+
+#, fuzzy
+msgid "Components:"
+msgstr "&Contents\tF1"
+
+msgid "this is a fake brand"
+msgstr ""
+
+msgid "this is a vaccine"
+msgstr ""
+
 msgid "units"
 msgstr "njesi"
 
@@ -6634,50 +6913,14 @@ msgstr " Episod: %s\n"
 msgid "Expires: %s\n"
 msgstr " Episod: %s\n"
 
-msgid "Active clinical hint"
+msgid "HL7 Source"
 msgstr ""
 
-msgid "Inactive clinical hint"
+msgid "HL7 data size"
 msgstr ""
 
 #, python-format
-msgid "Source: %s\n"
-msgstr ""
-
-#, python-format
-msgid "Language: %s\n"
-msgstr ""
-
-#, fuzzy
-msgid "Suppressed active dynamic hint"
-msgstr "Hap nje linje kohore egzistuese..."
-
-#, fuzzy
-msgid "Suppressed inactive dynamic hint"
-msgstr "Hap nje linje kohore egzistuese..."
-
-#, fuzzy, python-format
-msgid "Suppressed by: %s\n"
-msgstr " Episod: %s\n"
-
-#, fuzzy, python-format
-msgid "Suppressed at: %s\n"
-msgstr " Episod: %s\n"
-
-#, fuzzy, python-format
-msgid "Hint #: %s\n"
-msgstr "Printo"
-
-#, fuzzy, python-format
-msgid "Patient #: %s\n"
-msgstr " Pacienti: #%s\n"
-
-#, fuzzy, python-format
-msgid "MD5 (currently): %s\n"
-msgstr "Dokumente: %s"
-
-#, python-format
-msgid "MD5 (at suppression): %s\n"
+msgid "%s bytes"
 msgstr ""
 
 msgid "HL7 Message"
@@ -6734,13 +6977,6 @@ msgstr "Filet SVG"
 msgid "doc: %s"
 msgstr " Keshille: %s\n"
 
-msgid "no patient photograph available"
-msgstr ""
-
-#, python-format
-msgid "patient photograph from %s"
-msgstr ""
-
 msgid "Patient data for"
 msgstr ""
 
@@ -6750,6 +6986,9 @@ msgstr ""
 msgid "Patient data export"
 msgstr ""
 
+msgid "no patient photograph available"
+msgstr ""
+
 msgid "Documents"
 msgstr ""
 
@@ -6760,6 +6999,10 @@ msgstr ""
 msgid "browse documents area"
 msgstr " %s dokumente\n"
 
+#, python-format
+msgid "patient photograph from %s"
+msgstr ""
+
 #, fuzzy
 msgid "Browse patient data"
 msgstr "Përshkrim"
@@ -6801,68 +7044,68 @@ msgstr ""
 "Gabim ne egzekutimin e pdftk. Nuk mund te rrafshoj fushat e plotesuar te "
 "templates se PDF-se."
 
-#, python-format
+#, fuzzy, python-format
 msgid ""
 "%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s %(suburb)s, "
-"%(code_state)s, %(code_country)s"
+"%(code_region)s, %(code_country)s"
 msgstr ""
 "%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s %(suburb)s, "
-"%(code_state)s, %(code_country)s"
+"%(code_region)s, %(code_country)s"
 
-#, python-format
+#, fuzzy, python-format
 msgid ""
 "%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s %(suburb)s, "
-"%(code_state)s, %(code_country)s"
+"%(code_region)s, %(code_country)s"
 msgstr ""
 "%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s %(suburb)s, "
-"%(code_state)s, %(code_country)s"
+"%(code_region)s, %(code_country)s"
 
-#, python-format
+#, fuzzy, python-format
 msgid ""
-"%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_state)s, "
-"%(code_country)s"
+"%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, "
+"%(code_region)s, %(code_country)s"
 msgstr ""
-"%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_state)s, "
-"%(code_country)s"
+"%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, "
+"%(code_region)s, %(code_country)s"
 
-#, python-format
+#, fuzzy, python-format
 msgid ""
-"%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_state)s, "
+"%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_region)s, "
 "%(code_country)s"
 msgstr ""
-"%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_state)s, "
+"%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_region)s, "
 "%(code_country)s"
 
-#, python-format
+#, fuzzy, python-format
 msgid ""
 "Address (%(type)s) [#%(pk_adr)s]\n"
 " Street: %(street)s%(notes_street)s\n"
 " Number/Unit: %(number)s%(subunit)s%(notes_subunit)s\n"
 " Location: %(zip)s %(urb)s%(suburb)s\n"
-" Region: %(l10n_state)s, %(code_state)s\n"
+" Region: %(l10n_region)s, %(code_region)s\n"
 " Country: %(l10n_country)s, %(code_country)s"
 msgstr ""
 "Adresa (%(type)s) [#%(pk_adr)s]\n"
 " Rruga: %(street)s%(notes_street)s\n"
 " Numer/Njesi: %(number)s%(subunit)s%(notes_subunit)s\n"
 " Lokaliteti: %(zip)s %(urb)s%(suburb)s\n"
-" Zona: %(l10n_state)s, %(code_state)s\n"
+" Zona: %(l10n_region)s, %(code_region)s\n"
 " Shteti: %(l10n_country)s, %(code_country)s"
 
-#, python-format
+#, fuzzy, python-format
 msgid ""
 "Address [#%(pk_adr)s]\n"
 " Street: %(street)s%(notes_street)s\n"
 " Number/Unit: %(number)s%(subunit)s%(notes_subunit)s\n"
 " Location: %(zip)s %(urb)s%(suburb)s\n"
-" Region: %(l10n_state)s, %(code_state)s\n"
+" Region: %(l10n_region)s, %(code_region)s\n"
 " Country: %(l10n_country)s, %(code_country)s"
 msgstr ""
 "Adresa [#%(pk_adr)s]\n"
 " Rruga: %(street)s%(notes_street)s\n"
 " Numer/Njesi: %(number)s%(subunit)s%(notes_subunit)s\n"
 " Lokaliteti: %(zip)s %(urb)s%(suburb)s\n"
-" Zona: %(l10n_state)s, %(code_state)s\n"
+" Zona: %(l10n_region)s, %(code_region)s\n"
 " Shteti: %(l10n_country)s, %(code_country)s"
 
 msgid "Textual keyword expansion"
@@ -6930,6 +7173,92 @@ msgstr ""
 msgid "missing, reported later"
 msgstr ""
 
+msgid "Health issue"
+msgstr "Ceshtje shendeti"
+
+msgid "External care"
+msgstr ""
+
+msgid "Vaccination"
+msgstr ""
+
+msgid "Clinical narrative"
+msgstr ""
+
+#, fuzzy
+msgid "Test result"
+msgstr "Resultatet e testit"
+
+#, fuzzy
+msgid "Substance intake"
+msgstr "Substance"
+
+#, fuzzy
+msgid "Hospital stay"
+msgstr "Hospitalizime: %s"
+
+#, fuzzy
+msgid "Performed procedure"
+msgstr " %s procedura te kryera"
+
+#, fuzzy
+msgid "Family history"
+msgstr "Historiku Familjar"
+
+#, fuzzy
+msgid "Document"
+msgstr "Dokumenta:"
+
+#, python-format
+msgid "unmapped entry type from table [%s]"
+msgstr ""
+
+#, python-format
+msgid "cannot instantiate clinical root item <%s(%s)>"
+msgstr ""
+
+msgid "True"
+msgstr ""
+
+msgid "False"
+msgstr ""
+
+#, fuzzy
+msgid "unknown smoking status"
+msgstr "Statusi"
+
+msgid "non-smoker"
+msgstr ""
+
+msgid "current smoker"
+msgstr ""
+
+msgid "ex-smoker"
+msgstr ""
+
+msgid "tobacco addiction"
+msgstr ""
+
+msgid "no or non-harmful alcohol use"
+msgstr ""
+
+msgid "harmful alcohol use"
+msgstr ""
+
+#, fuzzy
+msgid "unknown alcohol use"
+msgstr "gjendje alergjike e panjohur"
+
+msgid "no or non-harmful drug use"
+msgstr ""
+
+msgid "harmful drug use"
+msgstr ""
+
+#, fuzzy
+msgid "unknown drug use"
+msgstr "gjendje alergjike e panjohur"
+
 msgid "original entry"
 msgstr "e dhene origjinale"
 
@@ -7033,13 +7362,6 @@ msgstr "Profesionet"
 msgid "Vaccinations"
 msgstr "Vaksinimet"
 
-#, python-format
-msgid "%s ago"
-msgstr "%s më parë"
-
-msgid "External care"
-msgstr ""
-
 msgid "Allergies/Intolerances"
 msgstr "Alergjite/intolerancat"
 
@@ -7125,6 +7447,85 @@ msgid ""
 "The account was deactivated instead."
 msgstr ""
 
+msgid "SOAP_char_S=S"
+msgstr ""
+
+msgid "SOAP_char_O=O"
+msgstr ""
+
+msgid "SOAP_char_A=A"
+msgstr ""
+
+msgid "SOAP_char_P=P"
+msgstr ""
+
+msgid "SOAP_char_U=U"
+msgstr ""
+
+msgid "SOAP_string_Subjective=Subjective"
+msgstr ""
+
+msgid "SOAP_string_Objective=Objective"
+msgstr ""
+
+msgid "SOAP_string_Assessment=Assessment"
+msgstr ""
+
+msgid "SOAP_string_Plan=Plan"
+msgstr ""
+
+msgid "SOAP_string_Unspecified=Unspecified"
+msgstr ""
+
+msgid "SOAP_string_Administrative=Administrative"
+msgstr ""
+
+msgid "Active clinical hint"
+msgstr ""
+
+msgid "Inactive clinical hint"
+msgstr ""
+
+#, python-format
+msgid "Source: %s\n"
+msgstr ""
+
+#, python-format
+msgid "Language: %s\n"
+msgstr ""
+
+#, fuzzy
+msgid "Suppressed active dynamic hint"
+msgstr "Hap nje linje kohore egzistuese..."
+
+#, fuzzy
+msgid "Suppressed inactive dynamic hint"
+msgstr "Hap nje linje kohore egzistuese..."
+
+#, fuzzy, python-format
+msgid "Suppressed by: %s\n"
+msgstr " Episod: %s\n"
+
+#, fuzzy, python-format
+msgid "Suppressed at: %s\n"
+msgstr " Episod: %s\n"
+
+#, fuzzy, python-format
+msgid "Hint #: %s\n"
+msgstr "Printo"
+
+#, fuzzy, python-format
+msgid "Patient #: %s\n"
+msgstr " Pacienti: #%s\n"
+
+#, fuzzy, python-format
+msgid "MD5 (currently): %s\n"
+msgstr "Dokumente: %s"
+
+#, python-format
+msgid "MD5 (at suppression): %s\n"
+msgstr ""
+
 #, python-format
 msgid "Device(%s):"
 msgstr "Pajisja(%s):"
@@ -7151,6 +7552,12 @@ msgstr "Impedanca:"
 msgid "Praxis branch                   #%s\n"
 msgstr ""
 
+#, python-format
+msgid ""
+"FN:%(l10n_unit_category)s %(branch)s of %(l10n_organization_category)s "
+"%(praxis)s"
+msgstr ""
+
 msgid "Privacy notice"
 msgstr ""
 
@@ -7164,40 +7571,6 @@ msgstr ""
 msgid "%s: Staff member %s has been notified of your chart access."
 msgstr ""
 
-msgid "soap_S"
-msgstr "sapun_S"
-
-msgid "soap_O"
-msgstr "sapun_O"
-
-msgid "soap_A"
-msgstr "sapun_A"
-
-msgid "soap_P"
-msgstr "sapun_P"
-
-#, fuzzy
-msgid "soap_U"
-msgstr "sapun_S"
-
-msgid "soap_Subjective"
-msgstr "sapun_Subjektiv"
-
-msgid "soap_Objective"
-msgstr "sapun_Objektiv"
-
-msgid "soap_Assessment"
-msgstr "sapun_Vleresimi"
-
-msgid "soap_Plan"
-msgstr "sapun_Plani"
-
-msgid "soap_Unspecified"
-msgstr "sapun_I pa specifikuar"
-
-msgid "soap_Administrative"
-msgstr "sapun_Administrativ"
-
 #, python-format
 msgid ""
 "%s: %s by %.8s (v%s)\n"
@@ -7265,9 +7638,17 @@ msgid "%(last)s,%(title)s %(first)s%(nick)s (%(sex)s)"
 msgstr "%(mbiemer)s,%(titull)s %(emer)s%(nofke)s (%(seksi)s)"
 
 #, fuzzy, python-format
+msgid "%(last)s,%(title)s %(first)s (%(sex)s)"
+msgstr "%(mbiemer)s,%(titull)s %(emer)s%(nofke)s (%(seksi)s)"
+
+#, fuzzy, python-format
 msgid "%(last)s,%(title)s %(first)s%(nick)s"
 msgstr "%(mbiemer)s,%(titull)s %(emer)s%(nofke)s"
 
+#, fuzzy, python-format
+msgid "%(last)s,%(title)s %(first)s"
+msgstr "%(mbiemer)s,%(titull)s %(emer)s%(nofke)s"
+
 msgid "Cannot merge active patient into another patient."
 msgstr ""
 
@@ -7277,9 +7658,6 @@ msgstr ""
 msgid "merged"
 msgstr ""
 
-msgid "preferred name/call name/..."
-msgstr ""
-
 msgid "invalid age: DOB in the future"
 msgstr ""
 
@@ -7292,9 +7670,6 @@ msgstr ""
 msgid "Mrs"
 msgstr ""
 
-msgid "unknown"
-msgstr ""
-
 msgid "empty status"
 msgstr ""
 
@@ -7630,9 +8005,9 @@ msgstr ""
 msgid " Part %s: %s %s(%s Bytes)\n"
 msgstr ""
 
-#, python-format
-msgid " Filename: %s\n"
-msgstr ""
+#, fuzzy, python-format
+msgid " Filename: %s%s\n"
+msgstr "Njesi: %s (%s)"
 
 msgid "no parts"
 msgstr ""
@@ -7644,19 +8019,26 @@ msgstr "1 pjese"
 msgid "%s parts"
 msgstr "%s pjese"
 
+#, fuzzy, python-format
+msgid "%s of %s"
+msgstr "Njesi: %s (%s)"
+
 #, python-format
 msgid ""
 "%s (%s)   #%s\n"
-"\n"
 " Created: %s\n"
 " Episode: %s\n"
-"%s%s%s"
+"%s%s%s%s"
 msgstr ""
 
 #, python-format
 msgid " External reference: %s\n"
 msgstr " Reference nga jashte: %s\n"
 
+#, fuzzy, python-format
+msgid " Organization: %%s @ %s\n"
+msgstr "Organizate: %s (%s)"
+
 msgid "Cannot run [arriba] !"
 msgstr "Nuk mund te egzekutohet [arriba] !"
 
@@ -8007,27 +8389,11 @@ msgid "External care:"
 msgstr " Reference nga jashte: %s\n"
 
 #, fuzzy, python-format
-msgid ""
-"health issue: %s%s%s\n"
-"\n"
-msgstr "problem shendeti: %s"
-
-msgid ""
-"\n"
-"current values:\n"
-msgstr ""
+msgid "Health issue: %s%s%s"
+msgstr " Problem shendeti: %s\n"
 
-msgid "no previous versions of this record"
-msgstr ""
-
-msgid ""
-"\n"
-"all values with <audit_action>, <audit_when>, <audit_by> fields (current "
-"value first):\n"
-msgstr ""
-
-msgid "Unattributed episodes"
-msgstr "Episode te pa atribuara"
+msgid "Unattributed episodes"
+msgstr "Episode te pa atribuara"
 
 msgid "Clinical data generated during encounters within this episode:"
 msgstr "Te dhenat klinike te gjeneruara gjate brenda ketij episodi:"
@@ -8047,9 +8413,6 @@ msgstr " Kohezgjatja: %s (%s - %s)"
 msgid "finished"
 msgstr "përfundoi"
 
-msgid "Health issue"
-msgstr "Ceshtje shendeti"
-
 msgid "none associated"
 msgstr "asnje asocim"
 
@@ -8085,9 +8448,7 @@ msgid "Measurements and Results:"
 msgstr "Matje dhe Rezultate:"
 
 #, fuzzy, python-format
-msgid ""
-"episode: %s%s%s\n"
-"\n"
+msgid "Episode: %s%s%s"
 msgstr " Episod: %s\n"
 
 #, python-format
@@ -8115,9 +8476,7 @@ msgid "%s other episodes touched upon during this encounter:"
 msgstr "%s episode te tjera te modifikuara gjate ketij takimi:"
 
 #, fuzzy, python-format
-msgid ""
-"encounter: %s%s%s\n"
-"\n"
+msgid "Encounter: %s%s%s"
 msgstr "Takime: %s (%s - %s):"
 
 msgid " (ongoing)"
@@ -8138,9 +8497,6 @@ msgstr ""
 msgid "Procedures"
 msgstr ""
 
-msgid "Substances"
-msgstr ""
-
 msgid "Life events"
 msgstr ""
 
@@ -8163,9 +8519,6 @@ msgstr ""
 msgid "Cannot display timeline."
 msgstr "Luaj linjen kohore"
 
-msgid "Vaccination"
-msgstr ""
-
 msgid "Lab result"
 msgstr ""
 
@@ -8233,9 +8586,6 @@ msgstr ""
 msgid "Exported: %s\n"
 msgstr ""
 
-msgid "emr-journal"
-msgstr ""
-
 msgid "Chronological EMR Journal\n"
 msgstr ""
 
@@ -8505,25 +8855,144 @@ msgstr ""
 msgid "Select one or more codes that apply."
 msgstr ""
 
-msgid "Cannot move progress notes. No active patient."
+msgid "Select the narrative you are interested in ..."
 msgstr ""
 
-msgid "Moving progress notes between encounters ..."
+msgid "when"
+msgstr ""
+
+msgid "who"
+msgstr ""
+
+msgid "entry"
+msgstr ""
+
+msgid "There is no narrative for this episode in this encounter."
+msgstr ""
+
+msgid "Must select episode to move narrative to first."
+msgstr ""
+
+msgid "Last"
+msgstr ""
+
+msgid "In health issue"
+msgstr ""
+
+msgid "Most recent notes on selected problem"
+msgstr ""
+
+#, python-format
+msgid "%s (active+potential) problems"
+msgstr ""
+
+#, python-format
+msgid "%s active problems"
+msgstr ""
+
+msgid "Current encounter:"
+msgstr ""
+
+msgid "Cumulative summary"
+msgstr ""
+
+#, python-format
+msgid "Most recent info on %s%s%s"
 msgstr ""
 
+#, python-format
 msgid ""
+"Cannot open progress note editor for\n"
 "\n"
-" Select the progress notes to move from the list !\n"
+"[%s].\n"
 "\n"
 msgstr ""
 
-msgid "when"
+msgid "opening progress note editor"
 msgstr ""
 
-msgid "who"
+msgid "Cannot save all editors. Some were kept open."
 msgstr ""
 
-msgid "entry"
+msgid "new problem"
+msgstr ""
+
+msgid ""
+"Are you sure you really want to\n"
+"discard this progress note ?\n"
+msgstr ""
+
+msgid "Discarding progress note"
+msgstr ""
+
+msgid "There are unsaved progress notes !\n"
+msgstr ""
+
+msgid "Unsaved progress notes"
+msgstr ""
+
+msgid "Problem list"
+msgstr ""
+
+msgid "Saving SOAP note"
+msgstr ""
+
+msgid "Do you want to save the SOAP note ?"
+msgstr ""
+
+#, python-format
+msgid "&Filter by problem %s%s%s"
+msgstr ""
+
+msgid "Cannot save SimpleNotes SOAP note."
+msgstr ""
+
+#, python-format
+msgid "Progress note: %s%s"
+msgstr ""
+
+msgid "Please enter a name for the new problem:"
+msgstr ""
+
+msgid "Adding a problem"
+msgstr ""
+
+msgid "Cannot delete problem. There is still clinical data recorded for it."
+msgstr ""
+
+#, python-format
+msgid "GNUmed: configuring [%s] (%s plugins)"
+msgstr ""
+
+msgid "loading list of plugins                               "
+msgstr ""
+
+msgid "failed"
+msgstr ""
+
+msgid "success"
+msgstr ""
+
+#, python-format
+msgid ""
+"previous: %s (%s)\n"
+"current (%s/%s): %s"
+msgstr ""
+
+#, python-format
+msgid "Cannot switch to [%s]: no patient selected"
+msgstr ""
+
+msgid "Cannot move progress notes. No active patient."
+msgstr ""
+
+msgid "Moving progress notes between encounters ..."
+msgstr ""
+
+msgid ""
+"\n"
+" Select the progress notes to move from the list !\n"
+"\n"
 msgstr ""
 
 msgid "Cannot edit progress notes. No active patient."
@@ -8725,358 +9194,108 @@ msgid ""
 " Now, mark the entries you want to include in your report.\n"
 msgstr ""
 
-msgid "Select the narrative you are interested in ..."
-msgstr ""
-
-msgid "There is no narrative for this episode in this encounter."
-msgstr ""
-
-msgid "Must select episode to move narrative to first."
-msgstr ""
-
-msgid "Last"
+msgid "Pick a date ..."
 msgstr ""
 
-msgid "In health issue"
+msgid "<ALT-C/K>: pick from (c/k)alendar"
 msgstr ""
 
-msgid "Most recent notes on selected problem"
+msgid "Cannot interpret input as timestamp."
 msgstr ""
 
-#, python-format
-msgid "%s (active+potential) problems"
+msgid "No vaccines were chosen"
 msgstr ""
 
 #, python-format
-msgid "%s active problems"
+msgid "Combination of indications , %s , not found in any vaccine"
 msgstr ""
 
-msgid "Current encounter:"
+msgid "Sequence"
 msgstr ""
 
-msgid "Cumulative summary"
+msgid "Batch"
 msgstr ""
 
-#, python-format
-msgid "Most recent info on %s%s%s"
+msgid "Vaccinator"
 msgstr ""
 
-#, python-format
 msgid ""
-"Cannot open progress note editor for\n"
-"\n"
-"[%s].\n"
-"\n"
-msgstr ""
-
-msgid "opening progress note editor"
+"Vaccinations by Recommender (X = patient on regime, O = patient not on "
+"regime) "
 msgstr ""
 
-msgid "Cannot save all editors. Some were kept open."
+msgid "enrolled regime vaccinations not yet given"
 msgstr ""
 
-msgid "new problem"
+msgid "Proceed with "
 msgstr ""
 
-msgid ""
-"Are you sure you really want to\n"
-"discard this progress note ?\n"
+#, python-format
+msgid "Failed to enrol patient in %s"
 msgstr ""
 
-msgid "Discarding progress note"
+#, python-format
+msgid "Failed to  delist patient from %s"
 msgstr ""
 
-msgid "There are unsaved progress notes !\n"
+msgid "Missing GNUmed module"
 msgstr ""
 
-msgid "Unsaved progress notes"
+#, python-format
+msgid ""
+"GNUmed detected that parts of it are not\n"
+"properly installed. The following message\n"
+"names the missing part:\n"
+"\n"
+" \"%s\"\n"
+"\n"
+"Please make sure to get the missing\n"
+"parts installed. Otherwise some of the\n"
+"functionality will not be accessible."
 msgstr ""
 
 #, python-format
-msgid "Synopsis (%s)"
+msgid ""
+"\n"
+" Source: %s"
 msgstr ""
 
+#, python-format
 msgid ""
-"Enter a short working name for this new problem\n"
-"(which will become a new, unassociated episode):\n"
+"\n"
+" Code: %s"
 msgstr ""
 
 #, python-format
 msgid ""
-"Enter a short working name for this new\n"
-"episode under the existing health issue\n"
 "\n"
-"\"%s\":\n"
+" Details (first 250 characters):\n"
+"%s\n"
+"%s\n"
+"%s"
 msgstr ""
 
-msgid "Creating problem (episode) to save notelet under ..."
+msgid "Access violation"
 msgstr ""
 
-msgid "Cannot save a new problem without a name."
+#, python-format
+msgid ""
+"You do not have access to this part of GNUmed.\n"
+"\n"
+"%s"
 msgstr ""
 
-msgid "saving progress note"
+msgid "Lost connection"
 msgstr ""
 
-#, python-format
 msgid ""
-"The new episode:\n"
-"\n"
-" \"%s\"\n"
+"Since you were last working in GNUmed,\n"
+"your database connection timed out.\n"
 "\n"
-"will remain unassociated despite the editor\n"
-"having been invoked from the health issue:\n"
+"This GNUmed session is now expired.\n"
 "\n"
-" \"%s\""
-msgstr ""
-
-msgid "You need to actually set an editor."
-msgstr ""
-
-#, python-format
-msgid "The command [%s] is not found."
-msgstr ""
-
-#, python-format
-msgid ""
-"Enter the shell command with which to start\n"
-"the image editor for visual progress notes.\n"
-"\n"
-"Any \"%(img)s\" included with the arguments\n"
-"will be replaced by the file name of the\n"
-"note template."
-msgstr ""
-
-msgid "Choose file to use as template for new visual progress note"
-msgstr ""
-
-msgid "Visual progress note source"
-msgstr ""
-
-msgid "From which source do you want to pick the image template ?"
-msgstr ""
-
-msgid "Database"
-msgstr ""
-
-msgid "List of templates in the database."
-msgstr ""
-
-msgid "Files in the filesystem."
-msgstr ""
-
-msgid "Device"
-msgstr ""
-
-msgid "Image capture devices (scanners, cameras, etc)"
-msgstr ""
-
-#, python-format
-msgid "Cannot export visual progress note template for [%s]."
-msgstr ""
-
-msgid "Cannot export visual progress note to file."
-msgstr ""
-
-msgid "Editor for visual progress note not configured."
-msgstr ""
-
-#, python-format
-msgid ""
-"There was a problem with running the editor\n"
-"for visual progress notes.\n"
-"\n"
-" [%s]\n"
-"\n"
-msgstr ""
-
-msgid "Editing visual progress note"
-msgstr ""
-
-#, python-format
-msgid ""
-"There was a problem reading the visual\n"
-"progress note from the file:\n"
-"\n"
-" [%s]\n"
-"\n"
-msgstr ""
-
-msgid "Saving visual progress note"
-msgstr ""
-
-msgid ""
-"You either created a visual progress note from a template\n"
-"in the database (rather than from a file on disk) or you\n"
-"edited an existing visual progress note.\n"
-"\n"
-"The template/original was not modified at all, however.\n"
-"\n"
-"Do you still want to save the unmodified image as a\n"
-"visual progress note into the EMR of the patient ?\n"
-msgstr ""
-
-msgid "visual progress notes"
-msgstr ""
-
-#, python-format
-msgid "Created: %s"
-msgstr ""
-
-msgid "Problem list"
-msgstr ""
-
-msgid "Saving SOAP note"
-msgstr ""
-
-msgid "Do you want to save the SOAP note ?"
-msgstr ""
-
-#, python-format
-msgid "&Filter by problem %s%s%s"
-msgstr ""
-
-msgid "Cannot save SimpleNotes SOAP note."
-msgstr ""
-
-#, python-format
-msgid "Progress note: %s%s"
-msgstr ""
-
-msgid "Please enter a name for the new problem:"
-msgstr ""
-
-msgid "Adding a problem"
-msgstr ""
-
-msgid "Cannot delete problem. There is still clinical data recorded for it."
-msgstr ""
-
-#, python-format
-msgid "GNUmed: configuring [%s] (%s plugins)"
-msgstr ""
-
-msgid "loading list of plugins                               "
-msgstr ""
-
-msgid "failed"
-msgstr ""
-
-msgid "success"
-msgstr ""
-
-#, python-format
-msgid ""
-"previous: %s (%s)\n"
-"current (%s/%s): %s"
-msgstr ""
-
-#, python-format
-msgid "Cannot switch to [%s]: no patient selected"
-msgstr ""
-
-msgid "Pick a date ..."
-msgstr ""
-
-msgid "<ALT-C/K>: pick from (c/k)alendar"
-msgstr ""
-
-msgid "Cannot interpret input as timestamp."
-msgstr ""
-
-msgid "No vaccines were chosen"
-msgstr ""
-
-#, python-format
-msgid "Combination of indications , %s , not found in any vaccine"
-msgstr ""
-
-msgid "Sequence"
-msgstr ""
-
-msgid "Batch"
-msgstr ""
-
-msgid "Vaccinator"
-msgstr ""
-
-msgid ""
-"Vaccinations by Recommender (X = patient on regime, O = patient not on "
-"regime) "
-msgstr ""
-
-msgid "enrolled regime vaccinations not yet given"
-msgstr ""
-
-msgid "Proceed with "
-msgstr ""
-
-#, python-format
-msgid "Failed to enrol patient in %s"
-msgstr ""
-
-#, python-format
-msgid "Failed to  delist patient from %s"
-msgstr ""
-
-msgid "Missing GNUmed module"
-msgstr ""
-
-#, python-format
-msgid ""
-"GNUmed detected that parts of it are not\n"
-"properly installed. The following message\n"
-"names the missing part:\n"
-"\n"
-" \"%s\"\n"
-"\n"
-"Please make sure to get the missing\n"
-"parts installed. Otherwise some of the\n"
-"functionality will not be accessible."
-msgstr ""
-
-#, python-format
-msgid ""
-"\n"
-" Source: %s"
-msgstr ""
-
-#, python-format
-msgid ""
-"\n"
-" Code: %s"
-msgstr ""
-
-#, python-format
-msgid ""
-"\n"
-" Details (first 250 characters):\n"
-"%s\n"
-"%s\n"
-"%s"
-msgstr ""
-
-msgid "Access violation"
-msgstr ""
-
-#, python-format
-msgid ""
-"You do not have access to this part of GNUmed.\n"
-"\n"
-"%s"
-msgstr ""
-
-msgid "Lost connection"
-msgstr ""
-
-msgid ""
-"Since you were last working in GNUmed,\n"
-"your database connection timed out.\n"
-"\n"
-"This GNUmed session is now expired.\n"
-"\n"
-"You will have to close this client and\n"
-"restart a new GNUmed session."
+"You will have to close this client and\n"
+"restart a new GNUmed session."
 msgstr ""
 
 msgid ""
@@ -9447,21 +9666,90 @@ msgid "due now: booster for %s in schedule \"%s\" (%s)"
 msgstr ""
 
 #, python-format
-msgid "Latest: %s ago (%s %s %s %s%s)"
+msgid "Synopsis (%s)"
 msgstr ""
 
-#, python-format
-msgid "%s %s %s %s (%s ago, %s)"
+msgid ""
+"Enter a short working name for this new problem\n"
+"(which will become a new, unassociated episode):\n"
 msgstr ""
 
-#, fuzzy, python-format
-msgid "overdue %s: %s"
-msgstr "Sasia per doze: %s %s"
-
+#, python-format
+msgid ""
+"Enter a short working name for this new\n"
+"episode under the existing health issue\n"
+"\n"
+"\"%s\":\n"
+msgstr ""
+
+msgid "Creating problem (episode) to save notelet under ..."
+msgstr ""
+
+msgid "Cannot save a new problem without a name."
+msgstr ""
+
+msgid "saving progress note"
+msgstr ""
+
+#, python-format
+msgid ""
+"The new episode:\n"
+"\n"
+" \"%s\"\n"
+"\n"
+"will remain unassociated despite the editor\n"
+"having been invoked from the health issue:\n"
+"\n"
+" \"%s\""
+msgstr ""
+
+#, fuzzy
+msgid "Adding substance abuse"
+msgstr " ATC (substance): %s\n"
+
+#, fuzzy
+msgid "Editing substance abuse"
+msgstr "Produkt i faturueshem aktiv"
+
+msgid "Substances abused by the patient:"
+msgstr ""
+
+msgid "Showing abused substances."
+msgstr ""
+
+msgid "Intake"
+msgstr ""
+
+msgid "nicotine"
+msgstr ""
+
+#, fuzzy
+msgid "unit"
+msgstr "njesi"
+
+#, fuzzy, python-format
+msgid "Latest: %s ago (%s %s%s%s%s)"
+msgstr " Kohezgjatja: %s (%s - %s)"
+
+#, fuzzy, python-format
+msgid "%s %s%s%s (%s ago, %s)"
+msgstr " Kohezgjatja: %s (%s - %s)"
+
+#, fuzzy, python-format
+msgid "overdue %s: %s"
+msgstr "Sasia per doze: %s %s"
+
 #, python-format
 msgid "due in %s%s"
 msgstr ""
 
+msgid "suppr'd:"
+msgstr ""
+
+#, fuzzy
+msgid "Suppressed hints:\n"
+msgstr " Episod: %s\n"
+
 msgid ""
 "Do you really want to\n"
 "delete this inbox message ?"
@@ -9511,8 +9799,15 @@ msgid ""
 "Please check patient age, patient gender, time until/since EDC."
 msgstr ""
 
-#, python-format
-msgid "%s Vacc: %s"
+#, fuzzy, python-format
+msgid "%s Vacc: %s (latest of %s)"
+msgstr "Njesi: %s (%s)"
+
+#, fuzzy, python-format
+msgid "Hx of addiction: %s"
+msgstr "Hospitalizime: %s"
+
+msgid "active substance abuse"
 msgstr ""
 
 #, python-format
@@ -9689,6 +9984,103 @@ msgid ""
 "You will have to add it via the Demographics plugin.\n"
 msgstr ""
 
+msgid "You need to actually set an editor."
+msgstr ""
+
+#, python-format
+msgid "The command [%s] is not found."
+msgstr ""
+
+#, python-format
+msgid ""
+"Enter the shell command with which to start\n"
+"the image editor for visual progress notes.\n"
+"\n"
+"Any \"%(img)s\" included with the arguments\n"
+"will be replaced by the file name of the\n"
+"note template."
+msgstr ""
+
+msgid "Choose file to use as template for new visual progress note"
+msgstr ""
+
+msgid "Visual progress note source"
+msgstr ""
+
+msgid "From which source do you want to pick the image template ?"
+msgstr ""
+
+msgid "Database"
+msgstr ""
+
+msgid "List of templates in the database."
+msgstr ""
+
+msgid "Files in the filesystem."
+msgstr ""
+
+msgid "Device"
+msgstr ""
+
+msgid "Image capture devices (scanners, cameras, etc)"
+msgstr ""
+
+#, python-format
+msgid "Cannot export visual progress note template for [%s]."
+msgstr ""
+
+msgid "Cannot export visual progress note to file."
+msgstr ""
+
+msgid "Editor for visual progress note not configured."
+msgstr ""
+
+#, python-format
+msgid ""
+"There was a problem with running the editor\n"
+"for visual progress notes.\n"
+"\n"
+" [%s]\n"
+"\n"
+msgstr ""
+
+msgid "Editing visual progress note"
+msgstr ""
+
+#, python-format
+msgid ""
+"There was a problem reading the visual\n"
+"progress note from the file:\n"
+"\n"
+" [%s]\n"
+"\n"
+msgstr ""
+
+msgid "Saving visual progress note"
+msgstr ""
+
+msgid ""
+"You either created a visual progress note from a template\n"
+"in the database (rather than from a file on disk) or you\n"
+"edited an existing visual progress note.\n"
+"\n"
+"The template/original was not modified at all, however.\n"
+"\n"
+"Do you still want to save the unmodified image as a\n"
+"visual progress note into the EMR of the patient ?\n"
+msgstr ""
+
+msgid "visual progress notes"
+msgstr ""
+
+#, python-format
+msgid " [part 1 of %s]"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "Created: %s%s"
+msgstr "Krijo nje ngjarje"
+
 msgid "You must select a value from the picklist or type an exact match."
 msgstr ""
 
@@ -9767,10 +10159,13 @@ msgstr ""
 msgid "no address type replacement selected"
 msgstr ""
 
-#, python-format
+#, fuzzy, python-format
 msgid ""
-"%(street)s %(number)s, %(postcode)s %(urb)s, %(l10n_state)s, %(l10n_country)s"
+"%(street)s %(number)s, %(postcode)s %(urb)s, %(l10n_region)s, "
+"%(l10n_country)s"
 msgstr ""
+"%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_region)s, "
+"%(code_country)s"
 
 #, python-format
 msgid "no URL for comm channel [%s]"
@@ -10362,7 +10757,7 @@ msgstr ""
 msgid ""
 "Cannot save address.\n"
 "\n"
-"Does the state [%s]\n"
+"Does the region [%s]\n"
 "exist in country [%s] ?"
 msgstr ""
 
@@ -10799,7 +11194,7 @@ msgstr ""
 msgid "Reminders for the current patient"
 msgstr ""
 
-msgid "Sent"
+msgid "Generated"
 msgstr ""
 
 #, fuzzy
@@ -10848,9 +11243,6 @@ msgid ""
 "Data: %s"
 msgstr ""
 
-msgid "Inbox Message Actions:"
-msgstr ""
-
 msgid "Activate patient"
 msgstr ""
 
@@ -11544,7 +11936,7 @@ msgid ""
 msgstr ""
 
 #, python-format
-msgid "Select branch (of praxis [%s]) which you are logging in from.\n"
+msgid "Select the branch of praxis [%s] which you are logging in from.\n"
 msgstr ""
 
 msgid "Praxis branch selection ..."
@@ -11852,6 +12244,13 @@ msgstr ""
 msgid "List of addresses related to this person."
 msgstr ""
 
+#, fuzzy
+msgid "Map"
+msgstr "Mars"
+
+msgid "Show selected address on map"
+msgstr ""
+
 msgid "Adding new address"
 msgstr ""
 
@@ -12032,10 +12431,90 @@ msgstr ""
 msgid "generic multi choice dialog"
 msgstr ""
 
+msgid "Deleting list items"
+msgstr ""
+
+#, python-format
+msgid ""
+"You have selected %s list items.\n"
+"\n"
+"Really delete all %s items ?"
+msgstr ""
+
+msgid ""
+"Select the items you want to work on.\n"
+"\n"
+"A discontinuous selection may depend on your holding down a platform-"
+"dependent modifier key (<CTRL>, <ALT>, etc) or key combination (eg. <CTRL-"
+"SHIFT> or <CTRL-ALT>) while clicking."
+msgstr ""
+
+msgid "List Item Actions:"
+msgstr ""
+
+msgid "Add (<INS>)"
+msgstr ""
+
 #, fuzzy
-msgid "Search in list"
+msgid "Delete (<DEL>)"
+msgstr "Fshij"
+
+msgid "Find (<CTRL-F>)"
+msgstr ""
+
+#, python-format
+msgid "Find next [%s] (<CTRL-N>)"
+msgstr ""
+
+msgid "Row tooltip"
+msgstr ""
+
+msgid "Row data (formatted as text)"
+msgstr ""
+
+msgid "Row content (as one line)"
+msgstr ""
+
+msgid "Row content (one line per column)"
+msgstr ""
+
+#, python-format
+msgid "Column &%s: \"%s\" [#%s]"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "Column &%s: %s"
+msgstr "Dokumente: %s"
+
+#, fuzzy
+msgid "&Copy to clipboard..."
+msgstr "E pamundur te kopjoj"
+
+#, fuzzy
+msgid "Append (&+) to clipboard..."
+msgstr "E pamundur te kopjoj"
+
+#, python-format
+msgid ""
+"%s list items are selected.\n"
+"\n"
+"Really delete all %s items ?"
+msgstr ""
+
+#, fuzzy
+msgid "Enter the search term:"
 msgstr "Liste mjekimi"
 
+msgid "List search"
+msgstr ""
+
+#, python-format
+msgid ""
+"Current search term: [[%s]]\n"
+"\n"
+"%s"
+msgstr ""
+
 msgid "Monty the Serpent && the FSF Present"
 msgstr ""
 
@@ -12184,6 +12663,9 @@ msgstr ""
 msgid "Unknown: ?"
 msgstr ""
 
+msgid "The text has been copied into the clipboard."
+msgstr ""
+
 msgid "file2clipboard"
 msgstr ""
 
@@ -12191,24 +12673,62 @@ msgstr ""
 msgid "The file [%s] has been copied into the clipboard."
 msgstr ""
 
-#, python-format
-msgid ""
-"Algorithm: %s\n"
-"\n"
-"Source: %s"
-msgstr ""
+msgid "programmer forgot to specify error message"
+msgstr "programuesi ka harruar te specifikoje nje numer per gabimin"
 
-#, python-format
 msgid ""
-"Current age of pregnancy (%s):\n"
-" day %s = %s weeks %s days = week %s = month %s\n"
 "\n"
+"\n"
+"Please consult the error log for all the gory details !"
 msgstr ""
+"\n"
+"\n"
+"Ju lutem konsultoni loget e gabimeve per detajet e plota!"
 
-msgid "Pregnancy Calculator"
-msgstr ""
+msgid "generic error message"
+msgstr "mesazh gabimi i pergjithshem"
 
-msgid "LMP"
+msgid "programmer forgot to specify info message"
+msgstr "programuesi ka harruar te specifikoje nje mesazh informues"
+
+msgid "generic info message"
+msgstr "mesazh informues i pergjithshem"
+
+msgid "programmer forgot to specify warning"
+msgstr "programuesi ka harruar te specifikoje nje paralajmerim"
+
+msgid "generic warning message"
+msgstr "mesazh paralajmerimi i pergjithshem"
+
+#, fuzzy
+msgid "Editing EDC"
+msgstr "Produkt i faturueshem aktiv"
+
+#, python-format
+msgid ""
+"Really delete the EDC documented previously ?\n"
+"\n"
+" EDC: %s"
+msgstr ""
+
+#, python-format
+msgid ""
+"Algorithm: %s\n"
+"\n"
+"Source: %s"
+msgstr ""
+
+#, python-format
+msgid ""
+"Current age of pregnancy (%s):\n"
+" day %s = %s weeks %s days = week %s = month %s\n"
+"\n"
+msgstr ""
+
+msgid "Pregnancy Calculator"
+msgstr ""
+
+msgid "LMP"
 msgstr ""
 
 msgid "Click on calendar to enter the last menstrual period date"
@@ -12299,15 +12819,15 @@ msgstr ""
 msgid "Firstname"
 msgstr ""
 
-msgid "Nickname"
-msgstr ""
-
 msgid "DOB"
 msgstr ""
 
 msgid "last visit"
 msgstr ""
 
+msgid "Nickname / Comment"
+msgstr ""
+
 msgid "found via"
 msgstr ""
 
@@ -12487,1285 +13007,1043 @@ msgstr ""
 msgid "In case of emergency contact:"
 msgstr ""
 
-msgid ""
-"\n"
-"Please select the default drug data source from the list below.\n"
-"\n"
-"Note that to actually use it you need to have the database installed, too."
+msgid "The preparation (form) of the substance or brand."
 msgstr ""
 
-msgid "Drug data source"
+msgid "A substance with optional strength or a brand."
 msgstr ""
 
-msgid "Configuring default drug data source"
+msgid "The medical aim for consuming this substance."
 msgstr ""
 
-msgid "No default drug database configured."
+msgid "not tolerated:"
 msgstr ""
 
-msgid "There is no default drug database configured."
+msgid "discontinued due to allergy or intolerance"
 msgstr ""
 
-msgid "Jumping to drug database"
+msgid "Documented an allergy"
 msgstr ""
 
 #, python-format
-msgid "Cannot call IFAP via [%s]."
+msgid ""
+"An allergy was documented against the substance:\n"
+"\n"
+"  [%s]\n"
+"\n"
+"This substance was taken with the multi-component brand:\n"
+"\n"
+"  [%s (%s)]\n"
+"\n"
+"Note that ALL components of this brand were discontinued."
 msgstr ""
 
-#, python-format
-msgid "Cannot create IFAP <-> GNUmed transfer file [%s]."
+msgid "disapproved"
 msgstr ""
 
-msgid "Current medication"
+msgid "Substances consumed by the patient:"
 msgstr ""
 
-msgid ""
-"\n"
-"The ATC codes as known to GNUmed.\n"
+msgid "Showing consumable substances."
 msgstr ""
 
-msgid "Showing ATC codes."
+msgid "Application"
 msgstr ""
 
-msgid "Choose an ATC import config file"
+msgid "never"
 msgstr ""
 
-msgid "config files"
+#, python-format
+msgid "%s, last confirmed %s\n"
 msgstr ""
 
-msgid "importing ATC reference data"
+#, python-format
+msgid "Comment (%s): %%s\n"
 msgstr ""
 
-msgid "Successfully imported ATC reference data."
+msgid "reaction not recorded"
 msgstr ""
 
-msgid "Importing ATC reference data failed."
+msgid "GFR: unknown"
 msgstr ""
 
-msgid "Select an ATC (Anatomical-Therapeutic-Chemical) code."
+msgid "GFR reported by path lab"
 msgstr ""
 
-msgid "Cannot delete this substance. It is in use."
+#, fuzzy
+msgid "<no components>"
+msgstr "&Contents\tF1"
+
+msgid "Adding substance intake entry"
 msgstr ""
 
+#, python-format
 msgid ""
+"The patient is already taking\n"
 "\n"
-"These are the consumable substances registered with GNUmed.\n"
+" %s\n"
+"\n"
+"You will want to adjust the schedule\n"
+"rather than document the intake twice."
 msgstr ""
 
-msgid "Showing consumable substances."
+msgid "Input incomplete/invalid for saving as substance intake."
 msgstr ""
 
-msgid "Import"
+#, python-format
+msgid "Discontinued (%s) in the future (now: %s)!"
 msgstr ""
 
-msgid "Import consumable substances from a drug database."
+#, python-format
+msgid "Discontinued (%s) before started (%s) !"
 msgstr ""
 
-msgid "Cannot edit this substance. It is in use."
+msgid "Cannot add duplicate of (maybe inactive) substance intake."
 msgstr ""
 
-msgid "Adding new consumable substance"
+#, python-format
+msgid ""
+"\n"
+"[%s]\n"
+"\n"
+"It may be prudent to edit (before deletion) the details\n"
+"of this substance intake entry so as to leave behind\n"
+"some indication of why it was deleted.\n"
 msgstr ""
 
-msgid "Editing consumable substance"
+msgid "Deleting medication / substance intake"
 msgstr ""
 
-msgid "Cannot save consumable substance. Missing essential input."
+msgid "Allow editing of substance intake entry before deletion."
 msgstr ""
 
-#, python-format
-msgid "Cannot save consumable substance. %s"
+msgid "Delete immediately without editing first."
 msgstr ""
 
-msgid "Cannot remove this component from the drug. It is in use."
+msgid "&Cancel"
 msgstr ""
 
-msgid ""
-"\n"
-"These are the components in the drug brands known to GNUmed.\n"
+msgid "Abort. Do not delete or edit substance intake entry."
 msgstr ""
 
-msgid "Showing drug brand components."
+msgid "Now delete substance intake entry ?"
 msgstr ""
 
-msgid "Adding new drug component"
+msgid "Adding medication/non-medication substance intake"
 msgstr ""
 
-msgid "Editing drug component"
+msgid "Editing medication/non-medication substance intake"
 msgstr ""
 
-msgid "Cannot edit drug component. It is in use."
+msgid "Document an allergy against this substance."
 msgstr ""
 
-msgid "Cannot save drug component. Invalid or missing essential input."
+msgid "No medication list template configured."
 msgstr ""
 
-msgid "A drug component with optional strength."
+msgid "There is no medication list template configured."
 msgstr ""
 
-msgid "The preparation (form) of the substance or brand."
+msgid "Problem loading medication list template."
 msgstr ""
 
-msgid "The substance with optional strength."
+#, python-format
+msgid "Cannot load medication list template [%s - %s]"
 msgstr ""
 
-msgid "Managing components of a drug"
+msgid "generated medication list document"
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot manage the components of the branded drug product\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is currently taken by patients.\n"
+msgid "Select the default prescription template:"
 msgstr ""
 
-msgid "Pick the substances which are components of this drug."
+msgid "No prescription template configured."
 msgstr ""
 
-msgid "Components of drug"
+msgid "There is no prescription template configured."
+msgstr ""
+
+msgid "Printing prescription"
+msgstr ""
+
+msgid "Problem loading prescription template."
 msgstr ""
 
 #, python-format
+msgid "Cannot load prescription template [%s - %s]"
+msgstr ""
+
+#, fuzzy
+msgid "generated prescription"
+msgstr "Përshkrim"
+
 msgid ""
-"Adjust the components of \"%s\"\n"
+"These brands have been prescribed but are not listed\n"
+"in the current medication list of this patient.\n"
 "\n"
-"The drug must contain at least one component. Any given\n"
-"substance can only be included once per drug."
+"Please select those you want added to the medication list."
 msgstr ""
 
-msgid "Managing components of a drug ..."
+msgid "Newly prescribed drugs"
 msgstr ""
 
-msgid "not in use"
+msgid "Add to medication list"
 msgstr ""
 
+#, fuzzy
+msgid "Timeframe"
+msgstr "Linje kohore"
+
 #, python-format
-msgid "ATC: %s\n"
+msgid "%s <fake>"
 msgstr ""
 
-msgid "Editing medication"
+msgid "Cannot edit more than one substance at once."
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot edit the medication\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is a vaccine. Please edit it\n"
-"from the vaccine management section !\n"
+msgid "Cannot delete more than one substance at once."
 msgstr ""
 
-msgid "Deleting medication"
+msgid "Cannot create allergy from more than one substance at once."
 msgstr ""
 
-#, python-format
 msgid ""
-"Cannot delete the medication\n"
-"\n"
-" \"%s\" (%s)\n"
 "\n"
-"because it is a vaccine. Please delete it\n"
-"from the vaccine management section !\n"
+"Select the measurements panel to show in the medications plugin.\n"
 msgstr ""
 
-msgid ""
-"\n"
-"These are the drug brands known to GNUmed.\n"
+#, fuzzy
+msgid "Measurements panel"
+msgstr "Matje dhe Rezultate:"
+
+msgid "Configuring medications plugin measurements panel"
 msgstr ""
 
-msgid "Showing branded drugs."
+msgid "EDC (!?!):"
 msgstr ""
 
-msgid "Import substances and brands from a drug database."
+msgid "EDC:"
 msgstr ""
 
-msgid "Editing drug"
+#, fuzzy, python-format
+msgid "%.1f (%s ago)"
+msgstr " Kohezgjatja: %s (%s - %s)"
+
+msgid "eGFR:"
 msgstr ""
 
 #, python-format
-msgid ""
-"Cannot edit the branded drug product\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is currently taken by patients.\n"
+msgid "eGFR: %.1f (%s)"
 msgstr ""
 
-msgid "Adding new drug brand"
+msgid "Enter vaccination given"
 msgstr ""
 
-msgid "Editing drug brand"
+msgid "Unsaved progress note"
 msgstr ""
 
-msgid "Manage consumable substances"
+msgid ""
+"This progress note has not been saved yet.\n"
+"\n"
+"Do you want to save it or discard it ?\n"
+"\n"
 msgstr ""
 
-msgid "Cannot edit drug brand. It is in use."
+msgid "Save this progress note"
 msgstr ""
 
-msgid "Checking brand data"
+msgid "Discard this progress note"
 msgstr ""
 
-#, python-format
-msgid ""
-"The brand information you entered:\n"
-"\n"
-" [%s %s]\n"
-"\n"
-"already exists as a drug product."
+msgid "Save all remaining unsaved progress notes"
 msgstr ""
 
 msgid ""
-"You have not selected any substances\n"
-"as drug components.\n"
-"\n"
-"Without components you will not be able to\n"
-"use this drug for documenting patient care.\n"
+"Add editor for a new unassociated progress note.\n"
 "\n"
-"Are you sure you want to save\n"
-"it without components ?"
+"There is a configuration option whether or not to\n"
+"allow several new unassociated progress notes at once."
 msgstr ""
 
-msgid "Cannot save branded drug. Invalid or missing essential input."
+msgid "Save progress note into medical record and close this editor."
 msgstr ""
 
-msgid ""
-"The brand name of the drug.\n"
-"\n"
-"Note: a brand name will need to be linked to\n"
-"one or more components before it can be used,\n"
-"except in the case of fake (generic) vaccines."
+msgid "Clear this progress note editor."
 msgstr ""
 
-msgid "The medical aim for consuming this substance."
+msgid ""
+"Discard progress note and close this editor. You will loose any data already "
+"typed into this editor !"
 msgstr ""
 
-msgid "not tolerated:"
+msgid "Problem saving progress note: duplicate information ?"
 msgstr ""
 
-msgid "discontinued due to allergy or intolerance"
+msgid "label missing"
 msgstr ""
 
-msgid "Documented an allergy"
+msgid "soap cat missing"
 msgstr ""
 
-#, python-format
-msgid ""
-"An allergy was documented against the substance:\n"
-"\n"
-"  [%s]\n"
-"\n"
-"This substance was taken with the multi-component brand:\n"
-"\n"
-"  [%s (%s)]\n"
-"\n"
-"Note that ALL components of this brand were discontinued."
+msgid "Enter a descriptive name for this new problem:"
 msgstr ""
 
-msgid "disapproved"
+msgid "Creating a problem (episode) to save the notelet under ..."
 msgstr ""
 
-msgid "Substances consumed by the patient:"
+msgid "Error saving progress note."
 msgstr ""
 
-msgid "Intake"
+msgid "Error saving embedded data."
 msgstr ""
 
-msgid "Application"
+msgid "Visit Purpose"
 msgstr ""
 
-msgid "never"
+msgid "History Taken"
 msgstr ""
 
-#, python-format
-msgid "%s, last confirmed %s\n"
+msgid "Findings"
 msgstr ""
 
-#, python-format
-msgid "Comment (%s): %%s\n"
+msgid "save"
 msgstr ""
 
-msgid "reaction not recorded"
+msgid "save clinical note in EMR"
 msgstr ""
 
-msgid "GFR: unknown"
+msgid "discard"
 msgstr ""
 
-msgid "GFR reported by path lab"
+msgid "discard clinical note"
 msgstr ""
 
-#, python-format
-msgid ""
-"The patient is already taking\n"
-"\n"
-" %s\n"
-"\n"
-"You will want to adjust the schedule\n"
-"rather than document the intake twice."
+msgid "clinical progress note"
 msgstr ""
 
-msgid "Adding substance intake entry"
+msgid "Select files to add to the export area"
 msgstr ""
 
-msgid "Input incomplete/invalid for saving as substance intake."
+msgid "Adding files to export area"
 msgstr ""
 
 #, python-format
-msgid "Discontinued (%s) in the future (now: %s)!"
+msgid ""
+"Cannot add (some of) the following files to the export area:\n"
+"%s "
 msgstr ""
 
-#, python-format
-msgid "Discontinued (%s) before started (%s) !"
+msgid "Select the documents to be put into the export area:"
 msgstr ""
 
-msgid "Cannot add duplicate of (maybe inactive) substance intake."
+msgid "clipboard"
+msgstr ""
+
+msgid "Loading clipboard item (saved to file) into export area"
 msgstr ""
 
 #, python-format
 msgid ""
-"\n"
-"[%s]\n"
-"\n"
-"It may be prudent to edit (before deletion) the details\n"
-"of this substance intake entry so as to leave behind\n"
-"some indication of why it was deleted.\n"
+"Cannot add the following clip to the export area:\n"
+"%s "
 msgstr ""
 
-msgid "Deleting medication / substance intake"
+msgid "scan"
 msgstr ""
 
-msgid "Allow editing of substance intake entry before deletion."
+msgid "Scanning files into export area"
 msgstr ""
 
-msgid "Delete immediately without editing first."
+#, python-format
+msgid ""
+"Cannot add (some of) the following scans to the export area:\n"
+"%s "
 msgstr ""
 
-msgid "&Cancel"
+msgid "Deleting document from export area."
 msgstr ""
 
-msgid "Abort. Do not delete or edit substance intake entry."
+#, python-format
+msgid ""
+"Really remove %s selected document(s)\n"
+"from the patient export area ?"
 msgstr ""
 
-msgid "Now delete substance intake entry ?"
+msgid "Error printing documents."
 msgstr ""
 
-msgid "Adding medication/non-medication substance intake"
-msgstr ""
+#, fuzzy, python-format
+msgid "Printing [%s]"
+msgstr "Printimi"
 
-msgid "Editing medication/non-medication substance intake"
-msgstr ""
+#, fuzzy, python-format
+msgid ""
+"Printed:\n"
+" - %s"
+msgstr "Printo"
 
-msgid "Document an allergy against this substance."
+msgid "Select the directory into which to export the documents."
 msgstr ""
 
-msgid "No medication list template configured."
-msgstr ""
+#, fuzzy
+msgid "Saving export area documents"
+msgstr " %s dokumente\n"
 
-msgid "There is no medication list template configured."
+#, python-format
+msgid ""
+"The chosen export directory\n"
+"\n"
+" [%s]\n"
+"\n"
+"already contains files. Do you still want to save the\n"
+"selected export area documents into that directory ?\n"
+"\n"
+"(this is useful for including the external documents\n"
+" already stored in or below this directory)\n"
+"\n"
+"[NO] will create a subdirectory for you and use that."
 msgstr ""
 
-msgid "Problem loading medication list template."
+msgid ""
+"Create descriptive metadata files\n"
+"and save them alongside the\n"
+"selected export area documents ?"
 msgstr ""
 
+#, fuzzy, python-format
+msgid ""
+"Saved to [%s]:\n"
+" - %s"
+msgstr "Sasia per doze: %s %s"
+
 #, python-format
-msgid "Cannot load medication list template [%s - %s]"
+msgid ""
+"Saved documents into directory:\n"
+"\n"
+" %s"
 msgstr ""
 
-msgid "generated medication list document"
+msgid "If you wish to include an existing directory select it here:"
 msgstr ""
 
-msgid "Select the default prescription template:"
+msgid "Error burning documents to CD/DVD."
 msgstr ""
 
-msgid "No prescription template configured."
-msgstr ""
+#, fuzzy
+msgid "Burning documents"
+msgstr " %s dokumente\n"
 
-msgid "There is no prescription template configured."
+#, python-format
+msgid ""
+"Burned onto CD/DVD:\n"
+" - %s"
 msgstr ""
 
-msgid "Printing prescription"
+msgid "Error mailing documents."
 msgstr ""
 
-msgid "Problem loading prescription template."
-msgstr ""
+#, fuzzy
+msgid "Mailing documents"
+msgstr " %s dokumente\n"
 
-#, python-format
-msgid "Cannot load prescription template [%s - %s]"
+#, fuzzy, python-format
+msgid ""
+"Mailed:\n"
+" - %s"
+msgstr " E mbyllur:%s\n"
+
+msgid ""
+"Please enter the fax number here !\n"
+"\n"
+"It can be left empty if the external\n"
+"fax software knows how to get the number."
 msgstr ""
 
 #, fuzzy
-msgid "generated prescription"
-msgstr "Përshkrim"
+msgid "Faxing documents"
+msgstr " %s dokumente\n"
 
+#, python-format
 msgid ""
-"These brands have been prescribed but are not listed\n"
-"in the current medication list of this patient.\n"
+"Error faxing documents to\n"
 "\n"
-"Please select those you want added to the medication list."
+"  %s"
 msgstr ""
 
-msgid "Newly prescribed drugs"
-msgstr ""
+#, fuzzy, python-format
+msgid ""
+"Faxed to [%s]:\n"
+" - %s"
+msgstr "Sasia per doze: %s %s"
 
-msgid "Add to medication list"
+msgid "<gm-mail_doc(.bat) not found>"
 msgstr ""
 
-msgid "Duration / Until"
+msgid "<gm-fax_doc(.bat) not found>"
 msgstr ""
 
-#, python-format
-msgid "%s <fake>"
+msgid "<gm-burn_doc(.bat) not found>"
 msgstr ""
 
-msgid "Cannot edit more than one substance at once."
+msgid "Cannot accept new documents. No active patient."
 msgstr ""
 
-msgid "Cannot delete more than one substance at once."
+#, python-format
+msgid "Extracting files from folder [%s] ..."
 msgstr ""
 
-msgid "Cannot create allergy from more than one substance at once."
+msgid "Drag&Drop"
 msgstr ""
 
+#, fuzzy
+msgid "Created"
+msgstr "Krijo nje ngjarje"
+
+#, python-format
 msgid ""
+"Error exporting form template\n"
 "\n"
-"Select the measurements panel to show in the medications plugin.\n"
+" \"%s\" (%s)"
 msgstr ""
 
-#, fuzzy
-msgid "Measurements panel"
-msgstr "Matje dhe Rezultate:"
+msgid "Letter template export"
+msgstr ""
 
-msgid "Configuring medications plugin measurements panel"
+msgid ""
+"Cannot connect to OpenOffice.\n"
+"\n"
+"The UNO bridge module for Python\n"
+"is not installed."
 msgstr ""
 
-msgid "EDC (!?!):"
+msgid "Letter writer"
 msgstr ""
 
-msgid "EDC:"
+#, python-format
+msgid ""
+"Cannot connect to OpenOffice.\n"
+"\n"
+"You may want to increase the option\n"
+"\n"
+" <%s>"
 msgstr ""
 
-#, fuzzy, python-format
-msgid "%.1f (%s ago)"
-msgstr " Kohezgjatja: %s (%s - %s)"
-
-msgid "eGFR:"
+msgid "OOo startup time"
 msgstr ""
 
-#, fuzzy, python-format
-msgid "%s%s%s (%s ago)"
-msgstr " Kohezgjatja: %s (%s - %s)"
+msgid "No document template selected."
+msgstr ""
 
 #, python-format
-msgid "eGFR: %.1f (%s)"
+msgid "Invalid document template [%s - %s (%s)]"
 msgstr ""
 
-msgid "Enter vaccination given"
+msgid "Generating document from template"
 msgstr ""
 
-msgid "Unsaved progress note"
+msgid "Error generating document printout."
 msgstr ""
 
-msgid ""
-"This progress note has not been saved yet.\n"
-"\n"
-"Do you want to save it or discard it ?\n"
-"\n"
+msgid "Generating document printout"
 msgstr ""
 
-msgid "Save this progress note"
+#, fuzzy, python-format
+msgid "Printed: %s"
+msgstr "Printo"
+
+msgid "Adding new form template"
 msgstr ""
 
-msgid "Discard this progress note"
+msgid "Editing form template"
 msgstr ""
 
-msgid "Save all remaining unsaved progress notes"
+msgid "Deleting form template."
 msgstr ""
 
+#, python-format
 msgid ""
-"Add editor for a new unassociated progress note.\n"
+"Are you sure you want to delete\n"
+"the following form template ?\n"
 "\n"
-"There is a configuration option whether or not to\n"
-"allow several new unassociated progress notes at once."
+" \"%s (%s)\"\n"
+"\n"
+"You can only delete templates which\n"
+"have not yet been used to generate\n"
+"any forms from."
 msgstr ""
 
-msgid "Save progress note into medical record and close this editor."
+msgid "Select letter or form template."
 msgstr ""
 
-msgid "Clear this progress note editor."
+msgid "You must select a template file before saving."
 msgstr ""
 
-msgid ""
-"Discard progress note and close this editor. You will loose any data already "
-"typed into this editor !"
+msgid "You must enter a type for documents created with this template."
 msgstr ""
 
-msgid "Problem saving progress note: duplicate information ?"
+msgid "You must enter a type for this template."
 msgstr ""
 
-msgid "label missing"
+msgid "You must enter a version for this template."
 msgstr ""
 
-msgid "soap cat missing"
+msgid "Missing short name for template."
 msgstr ""
 
-msgid "Enter a descriptive name for this new problem:"
+msgid "Missing long name for template."
 msgstr ""
 
-msgid "Creating a problem (episode) to save the notelet under ..."
-msgstr ""
+#, fuzzy, python-format
+msgid "last modified %s by %s"
+msgstr " (konfirmimi i fundit %s)"
 
-msgid "Error saving progress note."
+msgid "Choose a form template file"
 msgstr ""
 
-msgid "Error saving embedded data."
+msgid "Enter a filename to save the template to"
 msgstr ""
 
-msgid "Visit Purpose"
+msgid "Emergency contact"
 msgstr ""
 
-msgid "History Taken"
+msgid "Primary doctor"
 msgstr ""
 
-msgid "Findings"
+msgid "in-praxis primary provider"
 msgstr ""
 
-msgid "save"
+#, fuzzy
+msgid "This praxis"
+msgstr "orë"
+
+#, fuzzy
+msgid "Bill receiver"
+msgstr "Zgjidhni ngjarje"
+
+#, fuzzy
+msgid "Receiver"
+msgstr " Pritesi: #%s\n"
+
+msgid ""
+"Are you sure you want to delete this\n"
+"description from the document ?\n"
 msgstr ""
 
-msgid "save clinical note in EMR"
+msgid "Deleting document description"
 msgstr ""
 
-msgid "discard"
+msgid "Adding document description"
 msgstr ""
 
-msgid "discard clinical note"
+msgid "Below you can add a document description.\n"
 msgstr ""
 
-msgid "clinical progress note"
+msgid "Editing document description"
 msgstr ""
 
-msgid "Select files to add to the export area"
+msgid "Below you can edit the document description.\n"
 msgstr ""
 
-msgid "Adding files to export area"
+msgid "Select the description you are interested in.\n"
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot add (some of) the following files to the export area:\n"
-"%s "
+msgid "Managing document descriptions"
 msgstr ""
 
-msgid "Select the documents to be put into the export area:"
+msgid "Select the episode under which to file the document ..."
 msgstr ""
 
-msgid "clipboard"
+msgid "Cannot create new document."
 msgstr ""
 
-msgid "Loading clipboard item (saved to file) into export area"
+msgid "saving document"
 msgstr ""
 
 #, python-format
-msgid ""
-"Cannot add the following clip to the export area:\n"
-"%s "
+msgid "Imported new document from %s."
 msgstr ""
 
-msgid "scan"
+msgid "Successfully saved new document."
 msgstr ""
 
-msgid "Scanning files into export area"
+msgid "Successfully saved the new document."
 msgstr ""
 
 #, python-format
 msgid ""
-"Cannot add (some of) the following scans to the export area:\n"
-"%s "
+"The reference ID for the new document is:\n"
+"\n"
+" <%s>\n"
+"\n"
+"You probably want to write it down on the\n"
+"original documents.\n"
+"\n"
+"If you don't care about the ID you can switch\n"
+"off this message in the GNUmed configuration.\n"
 msgstr ""
 
-msgid "Deleting document from export area."
+msgid "Saving document"
 msgstr ""
 
 #, python-format
 msgid ""
-"Really remove %s selected document(s)\n"
-"from the patient export area ?"
+"Successfully imported files as document.\n"
+"\n"
+"Do you want to delete imported files from the filesystem ?\n"
+"\n"
+" %s\n"
+"\n"
+"Note that temporary files will be deleted anyway."
 msgstr ""
 
-msgid "Error printing documents."
+#, fuzzy
+msgid "Removing files"
+msgstr "Filet e linjes kohore."
+
+msgid "Enter a comment on the document."
 msgstr ""
 
-#, fuzzy, python-format
-msgid "Printing [%s]"
-msgstr "Printimi"
+msgid "User defined"
+msgstr ""
 
-#, fuzzy, python-format
-msgid ""
-"Printed:\n"
-" - %s"
-msgstr "Printo"
+msgid "In use"
+msgstr ""
 
-msgid "Select the directory into which to export the documents."
+#, python-format
+msgid ""
+"Cannot delete document type\n"
+" [%s]\n"
+"because it is currently in use."
 msgstr ""
 
-#, fuzzy
-msgid "Saving export area documents"
-msgstr " %s dokumente\n"
+msgid "deleting document type"
+msgstr ""
 
 #, python-format
 msgid ""
-"The chosen export directory\n"
+"From the list below select the document type you want\n"
+"all documents currently classified as:\n"
 "\n"
-" [%s]\n"
+" \"%s\"\n"
 "\n"
-"is not empty. Do you want to use it for saving the\n"
-"export area documents into, nevertheless ?\n"
+"to be changed to.\n"
 "\n"
-"(this can be useful for including external documents)\n"
+"Be aware that this change will be applied to ALL such documents. If there\n"
+"are many documents to change it can take quite a while.\n"
 "\n"
-"[NO] will create a subdirectory for you and use that."
+"Make sure this is what you want to happen !\n"
 msgstr ""
 
-#, fuzzy, python-format
-msgid ""
-"Saved to [%s]:\n"
-" - %s"
-msgstr "Sasia per doze: %s %s"
-
-#, python-format
-msgid ""
-"Saved documents into directory:\n"
-"\n"
-" %s"
+msgid "Reassigning document type"
 msgstr ""
 
-msgid "If you wish to include an existing directory select it here:"
+msgid "Select the document type."
 msgstr ""
 
-msgid "Error burning documents to CD/DVD."
+msgid "Cannot create document type without name."
 msgstr ""
 
-#, fuzzy
-msgid "Burning documents"
-msgstr " %s dokumente\n"
+msgid "+/-"
+msgstr ""
 
-#, python-format
-msgid ""
-"Burned onto CD/DVD:\n"
-" - %s"
+msgid "!"
 msgstr ""
 
-msgid "Error mailing documents."
+msgid "comment"
 msgstr ""
 
-#, fuzzy
-msgid "Mailing documents"
-msgstr " %s dokumente\n"
+msgid "(you are the primary reviewer)"
+msgstr ""
 
-#, fuzzy, python-format
-msgid ""
-"Mailed:\n"
-" - %s"
-msgstr " E mbyllur:%s\n"
+#, python-format
+msgid "(someone else is the intended reviewer: %s)"
+msgstr ""
 
+#, python-format
 msgid ""
-"Please enter the fax number here !\n"
-"\n"
-"It can be left empty if the external\n"
-"fax software knows how to get the number."
+"Cannot create episode\n"
+" [%s]"
 msgstr ""
 
-#, fuzzy
-msgid "Faxing documents"
-msgstr " %s dokumente\n"
+msgid "Editing document properties"
+msgstr ""
 
 #, python-format
-msgid ""
-"Error faxing documents to\n"
-"\n"
-"  %s"
+msgid "Cannot change document type to [%s]."
 msgstr ""
 
-#, fuzzy, python-format
+#, python-format
 msgid ""
-"Faxed to [%s]:\n"
-" - %s"
-msgstr "Sasia per doze: %s %s"
-
-msgid "<gm-mail_doc(.bat) not found>"
+"Cannot link the document to episode\n"
+"\n"
+" [%s]"
 msgstr ""
 
-msgid "<gm-fax_doc(.bat) not found>"
+msgid "Error setting \"reviewed\" status of this document."
 msgstr ""
 
-msgid "<gm-burn_doc(.bat) not found>"
+msgid "Error setting responsible clinician for this document."
 msgstr ""
 
-msgid "Cannot accept new documents. No active patient."
+msgid "Error setting \"reviewed\" status of this part."
 msgstr ""
 
 #, python-format
-msgid "Extracting files from folder [%s] ..."
-msgstr ""
-
-msgid "Drag&Drop"
-msgstr ""
-
-#, fuzzy
-msgid "Created"
-msgstr "Krijo nje ngjarje"
-
-#, python-format
 msgid ""
-"Error exporting form template\n"
+"Cannot set page number to [%s] because\n"
+"another page with this number exists.\n"
 "\n"
-" \"%s\" (%s)"
-msgstr ""
-
-msgid "Letter template export"
+"Page numbers in use:\n"
+"\n"
+" %s"
 msgstr ""
 
-msgid ""
-"Cannot connect to OpenOffice.\n"
-"\n"
-"The UNO bridge module for Python\n"
-"is not installed."
+msgid "Editing document part properties"
 msgstr ""
 
-msgid "Letter writer"
+msgid "Error saving part properties."
 msgstr ""
 
-#, python-format
 msgid ""
-"Cannot connect to OpenOffice.\n"
+"No images could be acquired from the source.\n"
 "\n"
-"You may want to increase the option\n"
+"This may mean the scanner driver is not properly installed.\n"
 "\n"
-" <%s>"
+"On Windows you must install the TWAIN Python module\n"
+"while on Linux and MacOSX it is recommended to install\n"
+"the XSane package."
 msgstr ""
 
-msgid "OOo startup time"
+msgid "Acquiring images"
 msgstr ""
 
-msgid "No document template selected."
+msgid "directory dropped on client"
 msgstr ""
 
-#, python-format
-msgid "Invalid document template [%s - %s (%s)]"
+msgid "file dropped on client"
 msgstr ""
 
-msgid "Generating document from template"
+msgid "other documents"
 msgstr ""
 
-msgid "Error generating document printout."
+msgid "path"
 msgstr ""
 
-msgid "Generating document printout"
+msgid "No parts to save. Really save an empty document as a reference ?"
 msgstr ""
 
-#, fuzzy, python-format
-msgid "Printed: %s"
-msgstr "Printo"
-
-msgid "Adding new form template"
+msgid "No parts to save. Aquire some parts first."
 msgstr ""
 
-msgid "Editing form template"
+msgid "No document type applied. Choose a document type"
 msgstr ""
 
-msgid "Deleting form template."
+msgid "You must select an episode to save this document under."
 msgstr ""
 
-#, python-format
 msgid ""
-"Are you sure you want to delete\n"
-"the following form template ?\n"
-"\n"
-" \"%s (%s)\"\n"
-"\n"
-"You can only delete templates which\n"
-"have not yet been used to generate\n"
-"any forms from."
-msgstr ""
-
-msgid "Select letter or form template."
-msgstr ""
-
-msgid "You must select a template file before saving."
+"You need to select from the list of staff members the doctor who is intended "
+"to sign the document."
 msgstr ""
 
-msgid "You must enter a type for documents created with this template."
+msgid "There is no scanner support installed on this machine."
 msgstr ""
 
-msgid "You must enter a type for this template."
+msgid "Cannot find an active scanner."
 msgstr ""
 
-msgid "You must enter a version for this template."
+msgid "Select an image capture device"
 msgstr ""
 
-msgid "Missing short name for template."
+msgid "device selection"
 msgstr ""
 
-msgid "Missing long name for template."
+msgid ""
+"No pages could be acquired from the source.\n"
+"\n"
+"This may mean the scanner driver is not properly installed.\n"
+"\n"
+"On Windows you must install the TWAIN Python module\n"
+"while on Linux and MacOSX it is recommended to install\n"
+"the XSane package."
 msgstr ""
 
-#, fuzzy, python-format
-msgid "last modified %s by %s"
-msgstr " (konfirmimi i fundit %s)"
-
-msgid "Choose a form template file"
+msgid "acquiring page"
 msgstr ""
 
-msgid "Enter a filename to save the template to"
+msgid "captured by imaging device"
 msgstr ""
 
-msgid "Emergency contact"
+msgid "Choose a file"
 msgstr ""
 
-msgid "Primary doctor"
+msgid "all files (Win)"
 msgstr ""
 
-msgid "in-praxis primary provider"
+msgid "picked from storage media"
 msgstr ""
 
 #, fuzzy
-msgid "This praxis"
-msgstr "orë"
+msgid "pasted from clipboard"
+msgstr "E pamundur te kopjoj"
 
 #, fuzzy
-msgid "Hospital stay"
-msgstr "Hospitalizime: %s"
+msgid "No part selected for viewing."
+msgstr "Nuk mund te zvarris me djathtas"
 
-#, fuzzy
-msgid "Bill receiver"
-msgstr "Zgjidhni ngjarje"
+#, python-format
+msgid ""
+"Cannot display document part:\n"
+"%s"
+msgstr ""
+
+msgid "displaying part"
+msgstr ""
 
 #, fuzzy
-msgid "Receiver"
-msgstr " Pritesi: #%s\n"
+msgid "No part selected for removal."
+msgstr "Nuk mund te zvarris me djathtas"
 
-msgid ""
-"Are you sure you want to delete this\n"
-"description from the document ?\n"
+msgid "Cannot add document description."
 msgstr ""
 
-msgid "Deleting document description"
+msgid "Error setting \"reviewed\" status of new document."
 msgstr ""
 
-msgid "Adding document description"
+#, python-format
+msgid ""
+"Source: %s\n"
+"File: %s\n"
+"\n"
+"%s"
 msgstr ""
 
-msgid "Below you can add a document description.\n"
+msgid "Document part does not seem to exist in database !"
 msgstr ""
 
-msgid "Editing document description"
+msgid "showing document"
 msgstr ""
 
-msgid "Below you can edit the document description.\n"
+msgid "Document list for this patient."
 msgstr ""
 
-msgid "Select the description you are interested in.\n"
+msgid "Showing documents."
 msgstr ""
 
-msgid "Managing document descriptions"
+msgid "Ref #"
 msgstr ""
 
-msgid "Select the episode under which to file the document ..."
+#, python-format
+msgid "available documents (%s)"
 msgstr ""
 
 #, python-format
-msgid "Imported new document from %s."
+msgid "unsigned (%s) on top"
 msgstr ""
 
-msgid "Enter a comment on the document."
+msgid "most recent on top"
 msgstr ""
 
-msgid "User defined"
+msgid "sorted by episode"
 msgstr ""
 
-msgid "In use"
+msgid "sorted by health issue"
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot delete document type\n"
-" [%s]\n"
-"because it is currently in use."
+msgid "sorted by type"
 msgstr ""
 
-msgid "deleting document type"
+msgid "Cannot load documents. No active patient."
 msgstr ""
 
-#, python-format
-msgid ""
-"From the list below select the document type you want\n"
-"all documents currently classified as:\n"
-"\n"
-" \"%s\"\n"
-"\n"
-"to be changed to.\n"
-"\n"
-"Be aware that this change will be applied to ALL such documents. If there\n"
-"are many documents to change it can take quite a while.\n"
-"\n"
-"Make sure this is what you want to happen !\n"
+msgid "Part Actions:"
 msgstr ""
 
-msgid "Reassigning document type"
+msgid "Display part"
 msgstr ""
 
-msgid "Select the document type."
+#, python-format
+msgid "%s Sign/Edit properties"
 msgstr ""
 
-msgid "Cannot create document type without name."
+msgid "Delete part"
 msgstr ""
 
-msgid "+/-"
+msgid "Move part"
 msgstr ""
 
-msgid "!"
+msgid "Print part"
 msgstr ""
 
-msgid "comment"
+msgid "Fax part"
 msgstr ""
 
-msgid "(you are the primary reviewer)"
+msgid "Mail part"
 msgstr ""
 
-#, python-format
-msgid "(someone else is the intended reviewer: %s)"
+#, fuzzy
+msgid "Export part"
+msgstr "Eksporto ne SVG"
+
+msgid "Document Actions:"
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot create episode\n"
-" [%s]"
+msgid "Delete document"
 msgstr ""
 
-msgid "Editing document properties"
+msgid "Add parts"
 msgstr ""
 
-#, python-format
-msgid "Cannot change document type to [%s]."
+msgid "Add part from clipboard"
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot link the document to episode\n"
-"\n"
-" [%s]"
+msgid "Print all parts"
 msgstr ""
 
-msgid "Error setting \"reviewed\" status of this document."
+msgid "Fax all parts"
 msgstr ""
 
-msgid "Error setting responsible clinician for this document."
+msgid "Mail all parts"
 msgstr ""
 
-msgid "Error setting \"reviewed\" status of this part."
+msgid "Export all parts"
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot set page number to [%s] because\n"
-"another page with this number exists.\n"
-"\n"
-"Page numbers in use:\n"
-"\n"
-" %s"
+msgid "Access external original"
 msgstr ""
 
-msgid "Editing document part properties"
+msgid "Edit corresponding encounter"
 msgstr ""
 
-msgid "Error saving part properties."
+msgid "Select corresponding encounter"
 msgstr ""
 
-msgid ""
-"No images could be acquired from the source.\n"
-"\n"
-"This may mean the scanner driver is not properly installed.\n"
-"\n"
-"On Windows you must install the TWAIN Python module\n"
-"while on Linux and MacOSX it is recommended to install\n"
-"the XSane package."
+msgid "Manage descriptions"
 msgstr ""
 
-msgid "Acquiring images"
+msgid "Error searching documents."
 msgstr ""
 
-msgid "other documents"
+msgid "loading document list"
 msgstr ""
 
 #, python-format
-msgid "part %s: %s"
+msgid "%s%7s %s:%s (%s)"
 msgstr ""
 
-msgid "saving document"
+#, python-format
+msgid "%s%7s (%s):%s (%s)"
 msgstr ""
 
-msgid "No parts to save. Really save an empty document as a reference ?"
+#, python-format
+msgid "%s (unattributed episode)"
 msgstr ""
 
-msgid "No parts to save. Aquire some parts first."
+#, python-format
+msgid "part %2s"
 msgstr ""
 
-msgid "No document type applied. Choose a document type"
-msgstr ""
-
-msgid "You must select an episode to save this document under."
-msgstr ""
-
-msgid ""
-"You need to select from the list of staff members the doctor who is intended "
-"to sign the document."
-msgstr ""
-
-msgid "There is no scanner support installed on this machine."
-msgstr ""
-
-msgid "Cannot find an active scanner."
-msgstr ""
-
-msgid "Select an image capture device"
-msgstr ""
-
-msgid "device selection"
-msgstr ""
-
-msgid ""
-"No pages could be acquired from the source.\n"
-"\n"
-"This may mean the scanner driver is not properly installed.\n"
-"\n"
-"On Windows you must install the TWAIN Python module\n"
-"while on Linux and MacOSX it is recommended to install\n"
-"the XSane package."
-msgstr ""
-
-msgid "acquiring page"
-msgstr ""
-
-msgid "Choose a file"
-msgstr ""
-
-msgid "all files (Win)"
-msgstr ""
-
-msgid "You must select a part before you can view it."
-msgstr ""
-
-msgid "displaying part"
-msgstr ""
-
-#, python-format
-msgid ""
-"Cannot display document part:\n"
-"%s"
-msgstr ""
-
-msgid "You must select a part before you can delete it."
-msgstr ""
-
-msgid "deleting part"
-msgstr ""
-
-#, python-format
-msgid ""
-"The part has successfully been removed from the document.\n"
-"\n"
-"Do you also want to permanently delete the file\n"
-"\n"
-" [%s]\n"
-"\n"
-"from which this document part was loaded ?\n"
-"\n"
-"If it is a temporary file for a page you just scanned\n"
-"this makes a lot of sense. In other cases you may not\n"
-"want to lose the file.\n"
-"\n"
-"Pressing [YES] will permanently remove the file\n"
-"from your computer.\n"
-msgstr ""
-
-msgid "Removing document part"
-msgstr ""
-
-#, python-format
-msgid ""
-"Cannot delete part in file [%s].\n"
-"\n"
-"You may not have write access to it."
-msgstr ""
-
-msgid "Cannot create new document."
-msgstr ""
-
-msgid "Cannot update document metadata."
-msgstr ""
-
-msgid "Cannot add document description."
-msgstr ""
-
-msgid "Error setting \"reviewed\" status of new document."
-msgstr ""
-
-msgid "Successfully saved the new document."
-msgstr ""
-
-#, python-format
-msgid ""
-"The reference ID for the new document is:\n"
-"\n"
-" <%s>\n"
-"\n"
-"You probably want to write it down on the\n"
-"original documents.\n"
-"\n"
-"If you don't care about the ID you can switch\n"
-"off this message in the GNUmed configuration."
-msgstr ""
-
-msgid "Saving document"
-msgstr ""
-
-msgid "Successfully saved new document."
-msgstr ""
-
-msgid "Document part does not seem to exist in database !"
-msgstr ""
-
-msgid "showing document"
-msgstr ""
-
-msgid "Document list for this patient."
-msgstr ""
-
-msgid "Showing documents."
-msgstr ""
-
-msgid "Generated"
-msgstr ""
-
-msgid "Ref #"
-msgstr ""
-
-#, python-format
-msgid "available documents (%s)"
-msgstr ""
-
-#, python-format
-msgid "unsigned (%s) on top"
-msgstr ""
-
-msgid "most recent on top"
-msgstr ""
-
-msgid "sorted by episode"
-msgstr ""
-
-msgid "sorted by health issue"
-msgstr ""
-
-msgid "sorted by type"
-msgstr ""
-
-msgid "Cannot load documents. No active patient."
-msgstr ""
-
-msgid "Part Actions:"
-msgstr ""
-
-msgid "Display part"
-msgstr ""
-
-#, python-format
-msgid "%s Sign/Edit properties"
-msgstr ""
-
-msgid "Delete part"
-msgstr ""
-
-msgid "Move part"
-msgstr ""
-
-msgid "Print part"
-msgstr ""
-
-msgid "Fax part"
-msgstr ""
-
-msgid "Mail part"
-msgstr ""
-
-#, fuzzy
-msgid "Export part"
-msgstr "Eksporto ne SVG"
-
-msgid "Document Actions:"
-msgstr ""
-
-msgid "Delete document"
-msgstr ""
-
-msgid "Add parts"
-msgstr ""
-
-msgid "Add part from clipboard"
-msgstr ""
-
-msgid "Print all parts"
-msgstr ""
-
-msgid "Fax all parts"
-msgstr ""
-
-msgid "Mail all parts"
-msgstr ""
-
-msgid "Export all parts"
-msgstr ""
-
-msgid "Access external original"
-msgstr ""
-
-msgid "Edit corresponding encounter"
-msgstr ""
-
-msgid "Select corresponding encounter"
-msgstr ""
-
-msgid "Manage descriptions"
-msgstr ""
-
-msgid "Error searching documents."
-msgstr ""
-
-msgid "loading document list"
-msgstr ""
-
-#, python-format
-msgid "%s%7s %s:%s (%s)"
-msgstr ""
-
-#, python-format
-msgid "%s%7s (%s):%s (%s)"
-msgstr ""
-
-#, python-format
-msgid "%s (unattributed episode)"
-msgstr ""
-
-#, python-format
-msgid "part %2s"
-msgstr ""
-
-msgid "Activate as current photo"
+msgid "Activate as current photo"
 msgstr ""
 
 msgid ""
@@ -13906,32 +14184,175 @@ msgstr ""
 msgid "Deleting document"
 msgstr ""
 
-#, python-format
-msgid "You are logged in as %s%s.%s (%s). DB account <%s>."
+msgid "Study date"
 msgstr ""
 
-msgid "&Go to plugin ..."
-msgstr ""
+#, fuzzy
+msgid "Study time"
+msgstr "Koha e fillimit "
 
-msgid "Check for updates"
+msgid "Method"
 msgstr ""
 
-msgid "Check for new releases of the GNUmed client."
-msgstr ""
+#, fuzzy
+msgid "Body part"
+msgstr "1 pjese"
 
-msgid "Announce downtime"
-msgstr ""
+#, fuzzy
+msgid "Time"
+msgstr "Linje kohore"
 
-msgid "Announce database maintenance downtime to all connected clients."
+msgid "Cannot connect without port (try 8042)."
 msgstr ""
 
-msgid "All options"
+#, python-format
+msgid "Connect to [%s] @ port %s as \"%s\"."
 msgstr ""
 
-msgid "List all options as configured in the database."
+msgid "Cannot connect to PACS."
 msgstr ""
 
-msgid "Configure the database language"
+#, python-format
+msgid "PACS: Orthanc \"%s\" (AET \"%s\", Version %s, DB v%s)"
+msgstr ""
+
+#, python-format
+msgid "GNUmed patient: %s (generic PACS ID)"
+msgstr ""
+
+#, python-format
+msgid "GNUmed patient: \"%(value)s\" @ [%(issuer)s] (stored PACS ID)"
+msgstr ""
+
+msgid "PACS: no patients with matching IDs found"
+msgstr ""
+
+msgid ""
+"PACS: more than one patient with matching IDs found, carefully check studies"
+msgstr ""
+
+#, python-format
+msgid "%s series"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "%%s (%s series)"
+msgstr " Kohezgjatja: %s (%s - %s)"
+
+msgid "no studies"
+msgstr ""
+
+#, python-format
+msgid "%s studies"
+msgstr ""
+
+msgid "Exporting DICOM studies"
+msgstr ""
+
+#, fuzzy
+msgid "Unable to export selected studies."
+msgstr "E pamundur per te fshire filen backup '%s'."
+
+#, python-format
+msgid ""
+"The DICOM studies are %s in compressed size.\n"
+"\n"
+"Really copy to export area ?"
+msgstr ""
+
+#, python-format
+msgid "DICOM studies of [%s] from Orthanc PACS \"%s\" (AET \"%s\")"
+msgstr ""
+
+msgid "Select the directory into which to save the DICOM studies."
+msgstr ""
+
+msgid "Saving DICOM studies"
+msgstr ""
+
+#, fuzzy
+msgid "Unable to save selected studies."
+msgstr "E pamundur per te fshire filen backup '%s'."
+
+#, fuzzy
+msgid "Unable to export studies."
+msgstr "E pamundur per te hapur linjen kohore  '%s'."
+
+#, python-format
+msgid "All DICOM studies of [%s] from Orthanc PACS \"%s\" (AET \"%s\")"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "%s%s images"
+msgstr "%s më parë"
+
+msgid "Select the directory from which to recursively upload DICOM files."
+msgstr ""
+
+msgid "Delete the uploaded DICOM files now ?"
+msgstr ""
+
+msgid ""
+"Some files have not been uploaded.\n"
+"\n"
+"Do you want to delete those DICOM files which have been sent to the PACS "
+"successfully ?"
+msgstr ""
+
+msgid "Uploading DICOM files"
+msgstr ""
+
+msgid "Editing Orthanc content"
+msgstr ""
+
+#, fuzzy
+msgid "Patient ID"
+msgstr " Pacienti: #%s\n"
+
+msgid "Birth date"
+msgstr ""
+
+msgid "Orthanc"
+msgstr ""
+
+msgid "Modifying patient ID"
+msgstr ""
+
+#, python-format
+msgid ""
+"Really modify %s patient(s) to have the new patient ID\n"
+"\n"
+" [%s]\n"
+"\n"
+"stored in the Orthanc DICOM server ?"
+msgstr ""
+
+#, python-format
+msgid "You are logged in as %s%s.%s (%s). DB account <%s>."
+msgstr ""
+
+msgid "&Go to plugin ..."
+msgstr ""
+
+msgid "Check for updates"
+msgstr ""
+
+msgid "Check for new releases of the GNUmed client."
+msgstr ""
+
+msgid "Announce downtime"
+msgstr ""
+
+msgid "Announce database maintenance downtime to all connected clients."
+msgstr ""
+
+msgid "All options"
+msgstr ""
+
+msgid "List all options as configured in the database."
+msgstr ""
+
+msgid "Configure the database language"
 msgstr ""
 
 msgid "Welcome message"
@@ -13965,6 +14386,13 @@ msgstr "Liste mjekimi"
 msgid "Select the measurements panel to show in the medications plugin."
 msgstr ""
 
+#, fuzzy
+msgid "General measurements"
+msgstr "Liste mjekimi"
+
+msgid "Select the measurements panel to show in the top pane."
+msgstr ""
+
 msgid "Review dialog"
 msgstr ""
 
@@ -14055,6 +14483,12 @@ msgstr ""
 msgid "Configure auto-opening editors for recent problems."
 msgstr ""
 
+msgid "SOAP fields"
+msgstr ""
+
+msgid "Configure SOAP editor - individual SOAP fields vs text editor like"
+msgstr ""
+
 msgid "Progress notes handling ..."
 msgstr ""
 
@@ -14076,6 +14510,9 @@ msgstr ""
 msgid "URL for measurements encyclopedia."
 msgstr ""
 
+msgid "Drug data source"
+msgstr ""
+
 msgid "Select the drug data source."
 msgstr ""
 
@@ -14440,6 +14877,13 @@ msgstr ""
 msgid "Manage dynamic hints suppressed in this patient."
 msgstr ""
 
+#, fuzzy
+msgid "Substance abuse"
+msgstr "Substance"
+
+msgid "Manage substance abuse documentation of this patient."
+msgstr ""
+
 msgid "&Add / Edit ..."
 msgstr ""
 
@@ -14461,26 +14905,49 @@ msgstr ""
 msgid "Show a high-level statistic summary of the EMR."
 msgstr ""
 
-msgid "Text document"
+msgid "Journal (encounters) to file"
 msgstr ""
 
-msgid "Export the EMR of the active patient into a text file"
+msgid ""
+"Save the EMR of the active patient as a chronological journal into a text "
+"file"
 msgstr ""
 
-msgid "Journal"
+msgid "Journal (encounters) to export area"
 msgstr ""
 
 msgid ""
-"Export the EMR of the active patient as a chronological journal into a text "
-"file"
+"Copy EMR of the active patient as a chronological journal into export area"
+msgstr ""
+
+msgid "Journal (mod time) to file"
+msgstr ""
+
+msgid ""
+"Save the EMR of the active patient as journal by last modification time into "
+"a text file"
+msgstr ""
+
+msgid "Journal (mod time) to export area"
+msgstr ""
+
+msgid ""
+"Copy EMR of the active patient as journal by last modification time into "
+"export area"
+msgstr ""
+
+msgid "Text document"
+msgstr ""
+
+msgid "Save the EMR of the active patient into a text file"
 msgstr ""
 
 msgid "MEDISTAR import format"
 msgstr ""
 
 msgid ""
-"GNUmed -> MEDISTAR. Export progress notes of active patient's active "
-"encounter into a text file."
+"GNUmed -> MEDISTAR. Save progress notes of active patient's active encounter "
+"into a text file."
 msgstr ""
 
 msgid "Export as ..."
@@ -14653,19 +15120,42 @@ msgstr ""
 msgid "Show log file"
 msgstr ""
 
-msgid "Show the log file in text viewer."
+msgid "Show log file in text viewer."
 msgstr ""
 
 msgid "Backup log file"
 msgstr ""
 
-msgid "Backup the content of the log to another file."
+msgid "Backup content of the log to another file."
 msgstr ""
 
 msgid "Email log file"
 msgstr ""
 
-msgid "Send the log file to the authors for help."
+msgid "Send log file to the authors for help."
+msgstr ""
+
+#, fuzzy
+msgid "Browse tmp dir"
+msgstr "Përshkrim"
+
+#, python-format
+msgid "Browse temporary directory [%s]."
+msgstr ""
+
+#, fuzzy
+msgid "Browse work dir"
+msgstr "Përshkrim"
+
+#, python-format
+msgid "Browse user working directory [%s]."
+msgstr ""
+
+msgid "Browse internal work dir"
+msgstr ""
+
+#, python-format
+msgid "Browse internal working directory [%s]."
 msgstr ""
 
 msgid "Bug tracker"
@@ -15008,6 +15498,20 @@ msgid "No, only auto-open one editor for a new, unassociated problem."
 msgstr ""
 
 msgid ""
+"When editing progress notes, do you want GNUmed to\n"
+"show individual fields for each of the SOAP categories\n"
+"or do you want to use a text-editor like field for\n"
+"all SOAP categories which can then be set per line\n"
+"of input ?"
+msgstr ""
+
+msgid "Yes, show a dedicated field per SOAP category."
+msgstr ""
+
+msgid "No, use one field for all SOAP categories."
+msgstr ""
+
+msgid ""
 "When a patient is activated GNUmed can\n"
 "be told to switch to a specific plugin.\n"
 "\n"
@@ -15144,672 +15648,1085 @@ msgid ""
 "actually install any updates for you.\n"
 msgstr ""
 
-msgid "Yes, check for feature updates, too."
+msgid "Yes, check for feature updates, too."
+msgstr ""
+
+msgid "No, check for bug-fix updates only."
+msgstr ""
+
+msgid ""
+"GNUmed can check for new releases being available. To do\n"
+"so it needs to load version information from an URL.\n"
+"\n"
+"The default URL is:\n"
+"\n"
+" http://www.gnumed.de/downloads/gnumed-versions.txt\n"
+"\n"
+"but you can configure any other URL locally. Note\n"
+"that you must enter the location as a valid URL.\n"
+"Depending on the URL the client will need online\n"
+"access when checking for updates."
+msgstr ""
+
+msgid ""
+"Do you want to allow saving of new documents without\n"
+"any parts or do you want GNUmed to enforce that they\n"
+"contain at least one part before they can be saved ?\n"
+"\n"
+"Part-less documents can be useful if you want to build\n"
+"up an index of, say, archived documents but do not\n"
+"want to scan in all the pages contained therein."
+msgstr ""
+
+msgid "Yes, allow saving documents without any parts."
+msgstr ""
+
+msgid "No, require documents to have at least one part."
+msgstr ""
+
+msgid ""
+"After importing a new document do you\n"
+"want GNUmed to display the unique ID\n"
+"it auto-generated for that document ?\n"
+"\n"
+"This can be useful if you want to label the\n"
+"originals with that ID for later identification."
+msgstr ""
+
+msgid "Yes, display the ID generated for the new document after importing."
+msgstr ""
+
+msgid ""
+"No, do not display the ID generated for the new document after importing."
+msgstr ""
+
+msgid ""
+"After importing a new document do you\n"
+"want GNUmed to generate a unique ID\n"
+"(UUID) for that document ?\n"
+"\n"
+"This can be useful if you want to label the\n"
+"originals with that ID for later identification."
+msgstr ""
+
+msgid "Yes, generate a UUID for the new document after importing."
+msgstr ""
+
+msgid "No, do not generate a UUID for the new document after importing."
+msgstr ""
+
+msgid ""
+"GNUmed can show the document review dialog after\n"
+"calling the appropriate viewer for that document.\n"
+"\n"
+"Select the conditions under which you want\n"
+"GNUmed to do so:\n"
+"\n"
+" 0: never display the review dialog\n"
+" 1: always display the dialog\n"
+" 2: only if there is no previous review by me\n"
+" 3: only if there is no previous review at all\n"
+" 4: only if there is no review by the responsible reviewer\n"
+"\n"
+"Note that if a viewer is configured to not block\n"
+"GNUmed during document display the review dialog\n"
+"will actually appear in parallel to the viewer."
+msgstr ""
+
+msgid "Addresses (likely slow)"
+msgstr ""
+
+msgid "Branded drugs (as marketed)"
+msgstr ""
+
+msgid "Dynamic automatic hints"
+msgstr ""
+
+msgid "Codes and their respective terms"
+msgstr ""
+
+msgid "Communication channel types"
+msgstr ""
+
+msgid "Components of branded drugs (substances in brands)"
+msgstr ""
+
+msgid "Diagnostic organizations (path labs, ...)"
+msgstr ""
+
+msgid "Document templates (forms, letters, plots, ...)"
+msgstr ""
+
+msgid "Document types"
+msgstr ""
+
+msgid "Encounter types"
+msgstr ""
+
+msgid "Keyword based text expansion macros"
+msgstr ""
+
+msgid "Meta test/measurement types"
+msgstr ""
+
+msgid "Organizations with their units, addresses, and comm channels"
+msgstr ""
+
+msgid "Patient tags"
+msgstr ""
+
+msgid "Provinces (counties, territories, states, regions, ...)"
+msgstr ""
+
+msgid "String translations in the database"
+msgstr ""
+
+msgid "Test/measurement types"
+msgstr ""
+
+msgid "Vaccination targets (conditions known to be preventable by vaccination)"
+msgstr ""
+
+msgid "Vaccines"
+msgstr ""
+
+msgid "Workplace profiles (which plugins to load)"
+msgstr ""
+
+msgid "Consumable substances"
+msgstr ""
+
+msgid "Billable items"
+msgstr ""
+
+msgid "Reference data sources"
+msgstr ""
+
+msgid "Test/measurement panels/profiles"
+msgstr ""
+
+msgid "Master data management"
+msgstr ""
+
+msgid "Select the list you want to manage:"
+msgstr ""
+
+msgid "No DICOM viewer found."
+msgstr ""
+
+msgid "risk assessment"
+msgstr ""
+
+msgid "cardiovascular risk assessment"
+msgstr ""
+
+#, python-format
+msgid "[arriba] XML result not found in [%s]"
+msgstr ""
+
+msgid "ACS risk assessment calculator not configured."
+msgstr ""
+
+#, python-format
+msgid "Cannot run [%s] !"
+msgstr ""
+
+#, python-format
+msgid "There was a problem accessing the [arriba] result in [%s] !"
+msgstr ""
+
+msgid "[-9999]: <access violation test error>"
+msgstr ""
+
+msgid ""
+"This is a deliberate AccessDenied exception thrown to test the handling of "
+"access violations by means of a decorator."
+msgstr ""
+
+msgid "testing access check for non-existant <admin> role"
+msgstr ""
+
+msgid ""
+"This is a deliberate AccessDenied exception. You should not see this message "
+"because the role is checked in a decorator."
+msgstr ""
+
+msgid "pgAdmin III not found."
+msgstr ""
+
+msgid "Error reloading hook script."
+msgstr ""
+
+msgid "Save current log as..."
+msgstr ""
+
+msgid "log files"
+msgstr ""
+
+#, python-format
+msgid "Log file backed up as [%s]."
+msgstr ""
+
+msgid "Cannot start new encounter. No active patient."
+msgstr ""
+
+msgid "Cannot add health issue. No active patient."
+msgstr ""
+
+msgid "Cannot add episode. No active patient."
+msgstr ""
+
+msgid "Cannot add medication. No active patient."
+msgstr ""
+
+msgid "Cannot add allergy. No active patient."
+msgstr ""
+
+msgid "Cannot manage performed procedures. No active patient."
+msgstr ""
+
+msgid "Cannot manage hospitalizations. No active patient."
+msgstr ""
+
+msgid "Cannot manage external care. No active patient."
+msgstr ""
+
+msgid "Cannot edit occupation. No active patient."
+msgstr ""
+
+msgid "manage vaccinations"
+msgstr ""
+
+msgid "Cannot add vaccinations. No active patient."
+msgstr ""
+
+#, fuzzy
+msgid "manage family history"
+msgstr "Historiku Familjar"
+
+msgid "Cannot manage family history. No active patient."
+msgstr ""
+
+msgid "Cannot manage measurements. No active patient."
+msgstr ""
+
+msgid "calculate EDC"
+msgstr ""
+
+msgid "manage suppressed hints"
+msgstr ""
+
+msgid "Cannot manage suppressed hints. No active patient."
+msgstr ""
+
+msgid "Cannot manage smoking status. No active patient."
+msgstr ""
+
+msgid "Cannot show EMR summary. No active patient."
+msgstr ""
+
+msgid "EMR Summary"
+msgstr ""
+
+msgid "Cannot export EMR journal by last modification time. No active patient."
+msgstr ""
+
+msgid "journal_by_last_mod_time"
+msgstr ""
+
+msgid "Save patient's EMR journal as..."
+msgstr ""
+
+msgid "Error exporting patient EMR as journal by last modification time."
+msgstr ""
+
+msgid "EMR journal export"
+msgstr ""
+
+#, python-format
+msgid ""
+"Successfully exported EMR as journal by last modification time into file "
+"[%s]."
+msgstr ""
+
+msgid "Cannot export EMR journal. No active patient."
+msgstr ""
+
+msgid "emr-journal"
+msgstr ""
+
+msgid "Error exporting patient EMR as chronological journal."
+msgstr ""
+
+#, python-format
+msgid "Successfully exported EMR as chronological journal into file [%s]."
+msgstr ""
+
+msgid "EMR journal by last modification time"
+msgstr ""
+
+msgid "EMR journal by encounter"
+msgstr ""
+
+msgid "Cannot add tag to person. No active patient."
+msgstr ""
+
+#, python-format
+msgid "Edit the comment on tag [%s]"
+msgstr ""
+
+msgid "Editing tag comment"
+msgstr ""
+
+msgid "Cannot export patient as GDT. No active patient."
+msgstr ""
+
+msgid "Exported demographics as GDT to clipboard."
+msgstr ""
+
+msgid "Cannot export patient as VCARD. No active patient."
+msgstr ""
+
+msgid "Exported demographics as VCARD to clipboard."
 msgstr ""
 
-msgid "No, check for bug-fix updates only."
+msgid "Cannot export patient as XML (LinuxMedNews). No active patient."
 msgstr ""
 
-msgid ""
-"GNUmed can check for new releases being available. To do\n"
-"so it needs to load version information from an URL.\n"
-"\n"
-"The default URL is:\n"
-"\n"
-" http://www.gnumed.de/downloads/gnumed-versions.txt\n"
-"\n"
-"but you can configure any other URL locally. Note\n"
-"that you must enter the location as a valid URL.\n"
-"Depending on the URL the client will need online\n"
-"access when checking for updates."
+#, python-format
+msgid "Exported demographics to XML file [%s]."
 msgstr ""
 
-msgid ""
-"Do you want to allow saving of new documents without\n"
-"any parts or do you want GNUmed to enforce that they\n"
-"contain at least one part before they can be saved ?\n"
-"\n"
-"Part-less documents can be useful if you want to build\n"
-"up an index of, say, archived documents but do not\n"
-"want to scan in all the pages contained therein."
+#, python-format
+msgid "Exported demographics to GDT file [%s]."
 msgstr ""
 
-msgid "Yes, allow saving documents without any parts."
+#, python-format
+msgid "Exported demographics to VCARD file [%s]."
 msgstr ""
 
-msgid "No, require documents to have at least one part."
+msgid "Cannot add staff member. No active patient."
+msgstr ""
+
+msgid "Cannot delete patient. No patient active."
 msgstr ""
 
 msgid ""
-"After importing a new document do you\n"
-"want GNUmed to display the unique ID\n"
-"it auto-generated for that document ?\n"
-"\n"
-"This can be useful if you want to label the\n"
-"originals with that ID for later identification."
+"You have to manually close this window to finalize shutting down GNUmed."
 msgstr ""
 
-msgid "Yes, display the ID generated for the new document after importing."
+msgid "This is so that you can inspect the console output at your leisure."
 msgstr ""
 
-msgid ""
-"No, do not display the ID generated for the new document after importing."
+msgid "no patient"
 msgstr ""
 
+#, python-format
+msgid "Saved screenshot to file [%s]."
+msgstr ""
+
+msgid "Python version check"
+msgstr ""
+
+#, python-format
 msgid ""
-"After importing a new document do you\n"
-"want GNUmed to generate a unique ID\n"
-"(UUID) for that document ?\n"
+"You are running Python version\n"
+" %s\n"
 "\n"
-"This can be useful if you want to label the\n"
-"originals with that ID for later identification."
+"However, GNUmed wants Python 2.7 to\n"
+"facilitate migration to Python 3.\n"
+"\n"
+"Please upgrade your Python interpreter !"
 msgstr ""
 
-msgid "Yes, generate a UUID for the new document after importing."
+msgid "GNUmed client"
 msgstr ""
 
-msgid "No, do not generate a UUID for the new document after importing."
+msgid "GNUmed stdout/stderr window"
+msgstr ""
+
+msgid "redirecting STDOUT/STDERR to this log window"
 msgstr ""
 
+#, python-format
 msgid ""
-"GNUmed can show the document review dialog after\n"
-"calling the appropriate viewer for that document.\n"
-"\n"
-"Select the conditions under which you want\n"
-"GNUmed to do so:\n"
-"\n"
-" 0: never display the review dialog\n"
-" 1: always display the dialog\n"
-" 2: only if there is no previous review by me\n"
-" 3: only if there is no previous review at all\n"
-" 4: only if there is no review by the responsible reviewer\n"
+"The database account [%s] cannot be used as a\n"
+"staff member login for GNUmed. There was an\n"
+"error retrieving staff details for it.\n"
 "\n"
-"Note that if a viewer is configured to not block\n"
-"GNUmed during document display the review dialog\n"
-"will actually appear in parallel to the viewer."
+"Please ask your administrator for help.\n"
 msgstr ""
 
-msgid "Addresses (likely slow)"
+msgid "Checking access permissions"
 msgstr ""
 
-msgid "Branded drugs (as marketed)"
+#, python-format
+msgid "Database <%s> on <%s>"
 msgstr ""
 
-msgid "Dynamic automatic hints"
+#, python-format
+msgid "Branch \"%s\" of praxis \"%s\"\n"
 msgstr ""
 
-msgid "Codes and their respective terms"
+msgid "Verifying database"
 msgstr ""
 
-msgid "Communication channel types"
+msgid "Connect"
 msgstr ""
 
-msgid "Components of branded drugs (substances in brands)"
+msgid "Yes, connect to this database."
 msgstr ""
 
-msgid "Diagnostic organizations (path labs, ...)"
+msgid "Disconnect"
 msgstr ""
 
-msgid "Document templates (forms, letters, plots, ...)"
+msgid "No, do not connect to this database."
 msgstr ""
 
-msgid "Document types"
+#, python-format
+msgid ""
+"Cannot find configuration file in any of:\n"
+"\n"
+" %s\n"
+"You may need to use the comand line option\n"
+"\n"
+"\t--conf-file=<FILE>"
 msgstr ""
 
-msgid "Encounter types"
+msgid "Checking configuration files"
 msgstr ""
 
-msgid "Keyword based text expansion macros"
+msgid "GNUmed startup"
 msgstr ""
 
-msgid "Meta test/measurement types"
+#, python-format
+msgid ""
+"The currently selected database language ('%s') does\n"
+"not match the current system language ('%s').\n"
+"\n"
+"Do you want to set the database language to '%s' ?\n"
 msgstr ""
 
-msgid "Organizations with their units, addresses, and comm channels"
+msgid "Checking database language settings"
 msgstr ""
 
-msgid "Patient tags"
+#, python-format
+msgid "Set your database language to [%s]."
 msgstr ""
 
-msgid "Provinces (counties, territories, states, regions, ...)"
+msgid "Don't set"
 msgstr ""
 
-msgid "String translations in the database"
+msgid "Do not set your database language now."
 msgstr ""
 
-msgid "Test/measurement types"
+msgid "Remember to ignore language mismatch"
 msgstr ""
 
-msgid "Vaccination targets (conditions known to be preventable by vaccination)"
+#, python-format
+msgid ""
+"Checking this will make GNUmed remember your decision\n"
+"until the system language is changed.\n"
+"\n"
+"You can also reactivate this inquiry by removing the\n"
+"corresponding \"ignore\" option from the configuration file\n"
+"\n"
+" [%s]"
 msgstr ""
 
-msgid "Vaccines"
+msgid "generic activity"
 msgstr ""
 
-msgid "Workplace profiles (which plugins to load)"
+msgid "Access denied"
 msgstr ""
 
-msgid "Consumable substances"
+#, python-format
+msgid ""
+"Your account is not set up to access this part of GNUmed:\n"
+"\n"
+"  [%s]"
 msgstr ""
 
-msgid "Billable items"
+msgid "Save timeline as SVG image under..."
 msgstr ""
 
-msgid "Reference data sources"
+#, fuzzy
+msgid "timeline image"
+msgstr "Filet e linjes kohore."
+
+#, fuzzy
+msgid "timeline data"
+msgstr "Asnje linje kohore e percaktuar"
+
+msgid "Cannot change notebook tabs. No active patient."
 msgstr ""
 
-msgid "Test/measurement panels/profiles"
+msgid "add plugin ..."
 msgstr ""
 
-msgid "Master data management"
+msgid "Cannot activate Allergy Manager. No active patient."
 msgstr ""
 
-msgid "Select the list you want to manage:"
+msgid "RR ?"
 msgstr ""
 
-msgid "No DICOM viewer found."
+#, python-format
+msgid "BMI %s"
 msgstr ""
 
-msgid "risk assessment"
+msgid "BMI ?"
 msgstr ""
 
-msgid "cardiovascular risk assessment"
+msgid "GFR ?"
 msgstr ""
 
 #, python-format
-msgid "[arriba] XML result not found in [%s]"
+msgid "GFR %s"
 msgstr ""
 
-msgid "ACS risk assessment calculator not configured."
+#, python-format
+msgid "?EDC %s"
 msgstr ""
 
 #, python-format
-msgid "Cannot run [%s] !"
+msgid "EDC %s"
+msgstr ""
+
+msgid "<Age>"
 msgstr ""
 
+#, fuzzy
+msgid "no patient selected"
+msgstr "Duke filluar takimin e pacientit"
+
 #, python-format
-msgid "There was a problem accessing the [arriba] result in [%s] !"
+msgid "Gender: %s (%s) - %s\n"
 msgstr ""
 
-msgid "[-9999]: <access violation test error>"
+#, python-format
+msgid "Born: %s\n"
 msgstr ""
 
-msgid ""
-"This is a deliberate AcessDenied exception thrown to test the handling of "
-"access violations by means of a decorator."
+#, python-format
+msgid "Died: %s\n"
 msgstr ""
 
-msgid "testing access check for non-existant <admin> role"
+#, python-format
+msgid "At age: %s\n"
 msgstr ""
 
-msgid ""
-"This is a deliberate AcessDenied exception. You should not see this message "
-"because the role is checked in a decorator."
+msgid " (date of birth and age are estimated)\n"
 msgstr ""
 
-msgid "pgAdmin III not found."
+#, python-format
+msgid "%(sex)s  %(dob)s (%(age)s today !)"
 msgstr ""
 
-msgid "Error reloading hook script."
+msgid ""
+"\n"
+"Today is the patient's birthday !\n"
+"\n"
 msgstr ""
 
-msgid "Save current log as..."
+#, python-format
+msgid "Birthday: %s ago\n"
 msgstr ""
 
-msgid "log files"
+#, python-format
+msgid "Birthday: in %s\n"
 msgstr ""
 
 #, python-format
-msgid "Log file backed up as [%s]."
+msgid "Age: %s\n"
 msgstr ""
 
-msgid "Cannot start new encounter. No active patient."
+#, python-format
+msgid "last confirmed %s\n"
 msgstr ""
 
-msgid "Cannot add health issue. No active patient."
+#, python-format
+msgid "Comment (%s): %%s"
 msgstr ""
 
-msgid "Cannot add episode. No active patient."
+#, python-format
+msgid " - expires %s"
 msgstr ""
 
-msgid "Cannot add medication. No active patient."
+#, python-format
+msgid ""
+"Due for %s (since %s%s):\n"
+"%s%s\n"
+"Patient: %s\n"
+"Reminder by: %s"
 msgstr ""
 
-msgid "Cannot add allergy. No active patient."
+msgid "Clinical reminder"
 msgstr ""
 
-msgid "Cannot manage performed procedures. No active patient."
+msgid "Adding automatic dynamic hint"
 msgstr ""
 
-msgid "Cannot manage hospitalizations. No active patient."
+msgid "Editing automatic dynamic hint"
 msgstr ""
 
-msgid "Cannot manage external care. No active patient."
+msgid "Deleting automatic dynamic hint"
 msgstr ""
 
-msgid "Cannot edit occupation. No active patient."
+#, python-format
+msgid ""
+"Really delete this dynamic hint ?\n"
+"\n"
+" [%s]"
 msgstr ""
 
-msgid "manage vaccinations"
+msgid "deleting a dynamic hint"
 msgstr ""
 
-msgid "Cannot add vaccinations. No active patient."
+msgid ""
+"\n"
+"Dynamic hints registered with GNUmed.\n"
 msgstr ""
 
-msgid "Cannot manage family history. No active patient."
+msgid "Showing dynamic hints."
 msgstr ""
 
-msgid "Cannot manage measurements. No active patient."
+msgid "Hint"
 msgstr ""
 
-msgid "calculate EDC"
+msgid "Browse and install automatic dynamic hints data packs"
 msgstr ""
 
-msgid "manage suppressed hints"
-msgstr ""
+#, fuzzy, python-format
+msgid "By: %s"
+msgstr " Keshille: %s\n"
 
-msgid "Cannot manage suppressed hints. No active patient."
+msgid "No entry in field <Source>."
 msgstr ""
 
-msgid "Cannot show EMR summary. No active patient."
+msgid "No entry in field <Conditions>."
 msgstr ""
 
-msgid "EMR Summary"
-msgstr ""
+#, fuzzy
+msgid "No entry in field <Description>."
+msgstr "Përshkrim"
 
-msgid "Cannot export EMR journal. No active patient."
+msgid "No entry in field <Title>."
 msgstr ""
 
-msgid "Save patient's EMR journal as..."
+msgid "creating a new dynamic hint"
 msgstr ""
 
-msgid "Error exporting patient EMR as chronological journal."
-msgstr ""
+#, fuzzy
+msgid "updating an existing dynamic hint"
+msgstr "Hap nje linje kohore egzistuese..."
 
-msgid "EMR journal export"
-msgstr ""
+#, fuzzy
+msgid "Deleting suppressed dynamic hint"
+msgstr "Hap nje linje kohore egzistuese..."
 
 #, python-format
-msgid "Successfully exported EMR as chronological journal into file [%s]."
+msgid ""
+"Really delete the suppression of this dynamic hint ?\n"
+"\n"
+" [%s]"
 msgstr ""
 
-msgid "Cannot add tag to person. No active patient."
+msgid ""
+"\n"
+"Dynamic hints suppressed in this patient.\n"
 msgstr ""
 
-#, python-format
-msgid "Edit the comment on tag [%s]"
+msgid "Showing suppressed dynamic hints."
 msgstr ""
 
-msgid "Editing tag comment"
+msgid "Rationale"
 msgstr ""
 
-msgid "Cannot export patient as GDT. No active patient."
-msgstr ""
+#, fuzzy
+msgid "Manage hints"
+msgstr "problem shendeti: %s"
 
-msgid "Exported demographics as GDT to clipboard."
-msgstr ""
+#, fuzzy
+msgid "Manage automatic dynamic hints"
+msgstr "Hap nje linje kohore egzistuese..."
 
-msgid "Cannot export patient as VCARD. No active patient."
+msgid "Cannot delete family history item."
 msgstr ""
 
-msgid "Exported demographics as VCARD to clipboard."
+msgid "Family history of this patient."
 msgstr ""
 
-msgid "Cannot export patient as XML (LinuxMedNews). No active patient."
+msgid "Showing family history."
 msgstr ""
 
-#, python-format
-msgid "Exported demographics to XML file [%s]."
+msgid "Fatal"
 msgstr ""
 
-#, python-format
-msgid "Exported demographics to GDT file [%s]."
+msgid "Noted"
 msgstr ""
 
-#, python-format
-msgid "Exported demographics to VCARD file [%s]."
+msgid "Died"
 msgstr ""
 
-msgid "Cannot add staff member. No active patient."
+msgid "Adding family history"
 msgstr ""
 
-msgid "Cannot delete patient. No patient active."
+msgid "Editing family history"
 msgstr ""
 
 msgid ""
-"You have to manually close this window to finalize shutting down GNUmed."
+"\n"
+"Please select the default drug data source from the list below.\n"
+"\n"
+"Note that to actually use it you need to have the database installed, too."
 msgstr ""
 
-msgid "This is so that you can inspect the console output at your leisure."
+msgid "Configuring default drug data source"
 msgstr ""
 
-msgid "no patient"
+msgid "No default drug database configured."
 msgstr ""
 
-#, python-format
-msgid "Saved screenshot to file [%s]."
+msgid "There is no default drug database configured."
 msgstr ""
 
-msgid "GNUmed client"
+msgid "Jumping to drug database"
 msgstr ""
 
-msgid "GNUmed stdout/stderr window"
+msgid "Cannot import drugs from IFAP into chart without chart."
 msgstr ""
 
-msgid "redirecting STDOUT/STDERR to this log window"
+#, python-format
+msgid "Cannot call IFAP via [%s]."
 msgstr ""
 
 #, python-format
+msgid "Cannot create IFAP <-> GNUmed transfer file [%s]."
+msgstr ""
+
+msgid "Current medication"
+msgstr ""
+
 msgid ""
-"The database account [%s] cannot be used as a\n"
-"staff member login for GNUmed. There was an\n"
-"error retrieving staff details for it.\n"
 "\n"
-"Please ask your administrator for help.\n"
+"The ATC codes as known to GNUmed.\n"
 msgstr ""
 
-msgid "Checking access permissions"
+msgid "Showing ATC codes."
 msgstr ""
 
-#, python-format
-msgid "Database <%s> on <%s>"
+msgid "Choose an ATC import config file"
 msgstr ""
 
-#, python-format
-msgid "Branch \"%s\" of praxis \"%s\"\n"
+msgid "config files"
 msgstr ""
 
-msgid "Verifying database"
+msgid "importing ATC reference data"
 msgstr ""
 
-msgid "Connect"
+msgid "Successfully imported ATC reference data."
 msgstr ""
 
-msgid "Yes, connect to this database."
+msgid "Importing ATC reference data failed."
 msgstr ""
 
-msgid "Disconnect"
+msgid "Select an ATC (Anatomical-Therapeutic-Chemical) code."
 msgstr ""
 
-msgid "No, do not connect to this database."
+msgid "Cannot edit this substance. It is in use."
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot find configuration file in any of:\n"
-"\n"
-" %s\n"
-"You may need to use the comand line option\n"
-"\n"
-"\t--conf-file=<FILE>"
+msgid "Adding new consumable substance"
 msgstr ""
 
-msgid "Checking configuration files"
+msgid "Editing consumable substance"
 msgstr ""
 
-msgid "GNUmed startup"
+msgid "Cannot delete this substance. It is in use."
 msgstr ""
 
-#, python-format
 msgid ""
-"The currently selected database language ('%s') does\n"
-"not match the current system language ('%s').\n"
 "\n"
-"Do you want to set the database language to '%s' ?\n"
+"These are the consumable substances registered with GNUmed.\n"
 msgstr ""
 
-msgid "Checking database language settings"
+msgid "Import"
 msgstr ""
 
-msgid "Set"
+msgid "Import consumable substances from a drug database."
 msgstr ""
 
-#, python-format
-msgid "Set your database language to [%s]."
+msgid "Cannot save consumable substance. Missing essential input."
 msgstr ""
 
-msgid "Don't set"
+#, python-format
+msgid "Cannot save consumable substance. %s"
 msgstr ""
 
-msgid "Do not set your database language now."
+msgid "The substance with optional strength."
 msgstr ""
 
-msgid "Remember to ignore language mismatch"
+msgid "Cannot remove this component from the drug. It is in use."
 msgstr ""
 
-#, python-format
 msgid ""
-"Checking this will make GNUmed remember your decision\n"
-"until the system language is changed.\n"
-"\n"
-"You can also reactivate this inquiry by removing the\n"
-"corresponding \"ignore\" option from the configuration file\n"
 "\n"
-" [%s]"
+"These are the components in the drug brands known to GNUmed.\n"
 msgstr ""
 
-msgid "generic activity"
+msgid "Showing drug brand components."
 msgstr ""
 
-msgid "Access denied"
+msgid "Adding new drug component"
 msgstr ""
 
-#, python-format
-msgid ""
-"Your account is not set up to access this part of GNUmed:\n"
-"\n"
-"  [%s]"
+msgid "Editing drug component"
 msgstr ""
 
-msgid "Save timeline as SVG image under..."
+msgid "Cannot edit drug component. It is in use."
 msgstr ""
 
-#, fuzzy
-msgid "timeline image"
-msgstr "Filet e linjes kohore."
+msgid "Cannot save drug component. Invalid or missing essential input."
+msgstr ""
 
-#, fuzzy
-msgid "timeline data"
-msgstr "Asnje linje kohore e percaktuar"
+msgid "A drug component with optional strength."
+msgstr ""
 
-msgid "Cannot change notebook tabs. No active patient."
+msgid "Editing drug"
 msgstr ""
 
-msgid "add plugin ..."
+#, python-format
+msgid ""
+"Cannot edit the branded drug product\n"
+"\n"
+" \"%s\" (%s)\n"
+"\n"
+"because it is currently taken by patients.\n"
 msgstr ""
 
-msgid "Cannot activate Allergy Manager. No active patient."
+msgid "Adding new drug brand"
 msgstr ""
 
-msgid "<Age>"
+msgid "Editing drug brand"
 msgstr ""
 
-#, fuzzy
-msgid "no patient selected"
-msgstr "Duke filluar takimin e pacientit"
+msgid "Manage consumable substances"
+msgstr ""
 
-#, python-format
-msgid "Gender: %s (%s) - %s\n"
+msgid "not in use"
 msgstr ""
 
 #, python-format
-msgid "Born: %s\n"
+msgid "ATC: %s\n"
 msgstr ""
 
-#, python-format
-msgid "Died: %s\n"
+msgid "Editing medication"
 msgstr ""
 
 #, python-format
-msgid "At age: %s\n"
+msgid ""
+"Cannot edit the medication\n"
+"\n"
+" \"%s\" (%s)\n"
+"\n"
+"because it is a vaccine. Please edit it\n"
+"from the vaccine management section !\n"
 msgstr ""
 
-msgid " (date of birth and age are estimated)\n"
+msgid "Deleting medication"
 msgstr ""
 
 #, python-format
-msgid "%(sex)s  %(dob)s (%(age)s today !)"
+msgid ""
+"Cannot delete the medication\n"
+"\n"
+" \"%s\" (%s)\n"
+"\n"
+"because it is a vaccine. Please delete it\n"
+"from the vaccine management section !\n"
 msgstr ""
 
 msgid ""
 "\n"
-"Today is the patient's birthday !\n"
-"\n"
+"These are the drug brands known to GNUmed.\n"
 msgstr ""
 
-#, python-format
-msgid "Birthday: %s ago\n"
+msgid "Showing branded drugs."
 msgstr ""
 
-#, python-format
-msgid "Birthday: in %s\n"
+msgid "Import substances and brands from a drug database."
 msgstr ""
 
-#, python-format
-msgid "Age: %s\n"
+msgid "Managing components of a drug"
 msgstr ""
 
 #, python-format
-msgid "last confirmed %s\n"
+msgid ""
+"Cannot manage the components of the branded drug product\n"
+"\n"
+" \"%s\" (%s)\n"
+"\n"
+"because it is currently taken by patients.\n"
 msgstr ""
 
-#, python-format
-msgid "Comment (%s): %%s"
+msgid "Pick the substances which are components of this drug."
 msgstr ""
 
-#, python-format
-msgid " - expires %s"
+msgid "Components of drug"
 msgstr ""
 
 #, python-format
 msgid ""
-"Due for %s (since %s%s):\n"
-"%s%s\n"
-"Patient: %s\n"
-"Reminder by: %s"
-msgstr ""
-
-msgid "Clinical reminder"
+"Adjust the components of \"%s\"\n"
+"\n"
+"The drug must contain at least one component. Any given\n"
+"substance can only be included once per drug."
 msgstr ""
 
-msgid "Adding automatic dynamic hint"
+msgid "Managing components of a drug ..."
 msgstr ""
 
-msgid "Editing automatic dynamic hint"
+msgid "Cannot edit drug brand. It is in use."
 msgstr ""
 
-msgid "Deleting automatic dynamic hint"
+msgid "Checking brand data"
 msgstr ""
 
 #, python-format
 msgid ""
-"Really delete this dynamic hint ?\n"
+"The brand information you entered:\n"
 "\n"
-" [%s]"
-msgstr ""
-
-msgid "deleting a dynamic hint"
+" [%s %s]\n"
+"\n"
+"already exists as a drug product."
 msgstr ""
 
 msgid ""
+"You have not selected any substances\n"
+"as drug components.\n"
 "\n"
-"Dynamic hints registered with GNUmed.\n"
+"Without components you will not be able to\n"
+"use this drug for documenting patient care.\n"
+"\n"
+"Are you sure you want to save\n"
+"it without components ?"
 msgstr ""
 
-msgid "Showing dynamic hints."
+msgid "Cannot save branded drug. Invalid or missing essential input."
 msgstr ""
 
-msgid "Hint"
+msgid ""
+"The brand name of the drug.\n"
+"\n"
+"Note: a brand name will need to be linked to\n"
+"one or more components before it can be used,\n"
+"except in the case of fake (generic) vaccines."
 msgstr ""
 
-msgid "Browse and install automatic dynamic hints data packs"
+msgid "No EMR data loaded."
 msgstr ""
 
-#, fuzzy, python-format
-msgid "By: %s"
-msgstr " Keshille: %s\n"
+msgid "EMR text dump"
+msgstr ""
 
-msgid "No entry in field <Source>."
+msgid "Currently there is no active patient. Cannot retrieve EMR text."
 msgstr ""
 
-msgid "No entry in field <Conditions>."
+msgid "SOAP Editor Actions:"
 msgstr ""
 
 #, fuzzy
-msgid "No entry in field <Description>."
-msgstr "Përshkrim"
+msgid "&Sort lines"
+msgstr "Asnje linje kohore e percaktuar"
 
-msgid "No entry in field <Title>."
+msgid "Sort lines by SOAP category"
 msgstr ""
 
-msgid "creating a new dynamic hint"
+msgid "e&Xpand keyword"
+msgstr ""
+
+msgid "Expand keyword / macro"
 msgstr ""
 
 #, fuzzy
-msgid "updating an existing dynamic hint"
-msgstr "Hap nje linje kohore egzistuese..."
+msgid "as &Subjective"
+msgstr "sapun_Subjektiv"
+
+msgid "Set line to category \"Subjective\""
+msgstr ""
 
 #, fuzzy
-msgid "Deleting suppressed dynamic hint"
-msgstr "Hap nje linje kohore egzistuese..."
+msgid "as &Objective"
+msgstr "sapun_Objektiv"
 
-#, python-format
-msgid ""
-"Really delete the suppression of this dynamic hint ?\n"
-"\n"
-" [%s]"
+msgid "Set line to category \"Objective\""
 msgstr ""
 
-msgid ""
-"\n"
-"Dynamic hints suppressed in this patient.\n"
+#, fuzzy
+msgid "as &Assessment"
+msgstr "sapun_Vleresimi"
+
+msgid "Set line to category \"Assessment\""
 msgstr ""
 
-msgid "Showing suppressed dynamic hints."
+msgid "as &Plan"
 msgstr ""
 
-msgid "Rationale"
+msgid "Set line to category \"Plan\""
 msgstr ""
 
 #, fuzzy
-msgid "Manage hints"
-msgstr "problem shendeti: %s"
+msgid "as &Unspecified"
+msgstr "sapun_I pa specifikuar"
+
+msgid "Set line to category \"unspecified\""
+msgstr ""
 
 #, fuzzy
-msgid "Manage automatic dynamic hints"
-msgstr "Hap nje linje kohore egzistuese..."
+msgid "as ad&Ministrative"
+msgstr "sapun_Administrativ"
 
-msgid "Cannot delete family history item."
+msgid "Set line to category \"administrative\""
 msgstr ""
 
-msgid "Family history of this patient."
+msgid "→ &Clipboard"
 msgstr ""
 
-msgid "Showing family history."
-msgstr ""
+#, fuzzy
+msgid "Copy line to clipboard"
+msgstr "E pamundur te kopjoj"
 
-msgid "Fatal"
+msgid "→ +Clipboard+"
 msgstr ""
 
-msgid "Noted"
-msgstr ""
+#, fuzzy
+msgid "Add line to clipboard"
+msgstr "E pamundur te kopjoj"
 
-msgid "Died"
-msgstr ""
+#, fuzzy
+msgid "Copy content to clipboard"
+msgstr "E pamundur te kopjoj"
 
-msgid "Adding family history"
-msgstr ""
+#, fuzzy
+msgid "Add content to clipboard"
+msgstr "E pamundur te kopjoj"
 
-msgid "Editing family history"
-msgstr ""
+#, fuzzy
+msgid "Copy selection to clipboard"
+msgstr "E pamundur te kopjoj"
 
-msgid "No EMR data loaded."
-msgstr ""
+#, fuzzy
+msgid "Add selection to clipboard"
+msgstr "E pamundur te kopjoj"
 
-msgid "EMR text dump"
+msgid "&Line ..."
 msgstr ""
 
-msgid "Currently there is no active patient. Cannot retrieve EMR text."
+#, fuzzy
+msgid "&Text ..."
+msgstr "Tekst"
+
+msgid "&Region ..."
 msgstr ""
 
 #, fuzzy
@@ -15822,6 +16739,10 @@ msgstr ""
 msgid "Extracting HL7 from XML file"
 msgstr ""
 
+#, python-format
+msgid "Unwrapped HL7 into [%s] from [%s]."
+msgstr ""
+
 msgid "Select HL7 file for staging:"
 msgstr ""
 
@@ -15846,6 +16767,10 @@ msgid ""
 " %s"
 msgstr ""
 
+#, python-format
+msgid "Staged HL7 from [%s]."
+msgstr ""
+
 msgid "Importing HL7 data"
 msgstr ""
 
@@ -15890,10 +16815,6 @@ msgstr ""
 msgid "Identification"
 msgstr "Informacion"
 
-#, fuzzy
-msgid "Show"
-msgstr "Koha e shfaqjes"
-
 msgid "Show formatted HL7"
 msgstr ""
 
@@ -15939,6 +16860,18 @@ msgstr ""
 msgid "Plot current selection"
 msgstr ""
 
+msgid ""
+"Select the measurements panel to show in the top pane for continuous "
+"monitoring."
+msgstr ""
+
+msgid "Lab panel"
+msgstr ""
+
+#, fuzzy
+msgid "Configuring continuous monitoring measurements panel"
+msgstr "Matje dhe Rezultate:"
+
 msgid "No default Gnuplot script template selected."
 msgstr ""
 
@@ -15961,13 +16894,27 @@ msgstr ""
 msgid "Cannot plot without a plot script."
 msgstr ""
 
-#, fuzzy
-msgid "Time"
-msgstr "Linje kohore"
-
 msgid "Result"
 msgstr ""
 
+msgid "Perform on selected results:"
+msgstr ""
+
+msgid "Review and &sign"
+msgstr ""
+
+msgid "Export to &file"
+msgstr ""
+
+msgid "Export to &clipboard"
+msgstr ""
+
+msgid "Panels"
+msgstr ""
+
+msgid "List"
+msgstr ""
+
 msgid ""
 "lab_grid_date_format::%Y\n"
 "%b %d"
@@ -16042,18 +16989,6 @@ msgstr ""
 msgid "All: by &Day"
 msgstr ""
 
-msgid "Perform on selected results:"
-msgstr ""
-
-msgid "Review and &sign"
-msgstr ""
-
-msgid "Export to &file"
-msgstr ""
-
-msgid "Export to &clipboard"
-msgstr ""
-
 #, python-format
 msgid "%s results selected. Too many to list individually."
 msgstr ""
@@ -16228,6 +17163,10 @@ msgstr ""
 msgid "EMR Actions:"
 msgstr ""
 
+#, fuzzy
+msgid "Print EMR"
+msgstr "Printo"
+
 msgid "Create health issue"
 msgstr ""
 
@@ -16376,11 +17315,41 @@ msgstr ""
 msgid "&New notes %s"
 msgstr ""
 
+msgid "Find text in EMR Journal"
+msgstr ""
+
+#, fuzzy
+msgid "Modified"
+msgstr "e dhene e modifikuar"
+
+msgid "Clinical time"
+msgstr ""
+
+msgid "Who / When"
+msgstr ""
+
+#, python-format
 msgid ""
-"An error occurred while retrieving the EMR\n"
-"in journal form for the active patient.\n"
+"Chart entry: %s       [#%s in %s]\n"
+" Modified: %s by %s (%s rev %s)\n"
 "\n"
-"Please check the log file for details."
+"Health issue: %s%s\n"
+"Episode: %s%s\n"
+"Encounter: %s%s"
+msgstr ""
+
+#, python-format
+msgid ""
+"%s\n"
+"\n"
+"                        rev %s (%s) by %s in <%s>"
+msgstr ""
+
+#, python-format
+msgid ""
+"%s\n"
+"%s\n"
+"%s"
 msgstr ""
 
 msgid "Editing tag"
@@ -16507,18 +17476,15 @@ msgid ""
 "%s\n"
 msgstr ""
 
-msgid "This patient DID receive care."
+msgid "This patient DID receive care here."
 msgstr ""
 
-msgid "This person did NOT receive care."
+msgid "This person did NOT receive care here."
 msgstr ""
 
 msgid "Disabling person"
 msgstr ""
 
-msgid "Disabling patient"
-msgstr ""
-
 msgid "Type or select a last name (family name/surname)."
 msgstr ""
 
@@ -16761,6 +17727,9 @@ msgid ""
 "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
 msgstr ""
 
+msgid "Connecting to backend"
+msgstr "Duke u lidhur me panelin e programit"
+
 #, python-format
 msgid ""
 "Unable to connect to database:\n"
@@ -16970,9 +17939,6 @@ msgstr ""
 msgid "Office"
 msgstr ""
 
-msgid "State"
-msgstr ""
-
 msgid "Zip"
 msgstr ""
 
@@ -17029,8 +17995,9 @@ msgstr ""
 msgid "EMR Timeline"
 msgstr ""
 
-msgid "Show &Timeline"
-msgstr ""
+#, fuzzy
+msgid "EMR &Timeline"
+msgstr "&Timeline"
 
 msgid "Overview"
 msgstr ""
@@ -17056,10 +18023,10 @@ msgstr ""
 msgid "&SimpleNotes"
 msgstr ""
 
-msgid "EMR tree"
+msgid "EMR Tree"
 msgstr ""
 
-msgid "EMR &Tree (topical)"
+msgid "EMR &Tree"
 msgstr ""
 
 #, fuzzy
@@ -17070,6 +18037,12 @@ msgstr "Printimi"
 msgid "&Print Manager"
 msgstr "Printimi"
 
+msgid "EMR Journal"
+msgstr ""
+
+msgid "EMR &Journal (list)"
+msgstr ""
+
 msgid "Appointments"
 msgstr ""
 
@@ -17082,6 +18055,12 @@ msgstr ""
 msgid "Show &lab journal"
 msgstr ""
 
+msgid "PACS"
+msgstr ""
+
+msgid "&PACS"
+msgstr ""
+
 msgid "Cardiac Devices"
 msgstr ""
 
@@ -17154,10 +18133,7 @@ msgstr ""
 msgid "User &manual (local)"
 msgstr ""
 
-msgid "EMR journal"
-msgstr ""
-
-msgid "EMR &Journal (chronological)"
+msgid "EMR &Journal (text)"
 msgstr ""
 
 msgid "Demographics"
@@ -17318,6 +18294,10 @@ msgstr ""
 msgid "Show &ExamplePlugin"
 msgstr ""
 
+#, fuzzy
+msgid "Find text"
+msgstr "Gjej ngjarjen e fundit"
+
 msgid "gm_ctl_client: starting slave GNUmed client"
 msgstr ""
 
@@ -17345,20 +18325,138 @@ msgid "Abort and do NOT connect to GNUmed."
 msgstr ""
 
 #, fuzzy
-#~ msgid "%s: %s%s%s (%s ago)"
-#~ msgstr " Kohezgjatja: %s (%s - %s)"
+#~ msgid ""
+#~ "Health issue: %s%s%s (%s versions)\n"
+#~ "\n"
+#~ msgstr "problem shendeti: %s"
 
 #, fuzzy
-#~ msgid "to file(s)"
-#~ msgstr "Filet SVG"
+#~ msgid ""
+#~ "Episode: %s%s%s (%s versions)\n"
+#~ "\n"
+#~ msgstr " Episod: %s\n"
 
 #, fuzzy
-#~ msgid "Check here for printing."
-#~ msgstr "Pershtat faqen per printim"
+#~ msgid ""
+#~ "Encounter: %s%s%s (%s versions)\n"
+#~ "\n"
+#~ msgstr "Takime: %s (%s - %s):"
+
+#~ msgid "soap_S"
+#~ msgstr "sapun_S"
+
+#~ msgid "soap_O"
+#~ msgstr "sapun_O"
+
+#~ msgid "soap_A"
+#~ msgstr "sapun_A"
+
+#~ msgid "soap_P"
+#~ msgstr "sapun_P"
+
+#, fuzzy
+#~ msgid "soap_U"
+#~ msgstr "sapun_S"
+
+#~ msgid "soap_Subjective"
+#~ msgstr "sapun_Subjektiv"
+
+#~ msgid "soap_Objective"
+#~ msgstr "sapun_Objektiv"
+
+#~ msgid "soap_Assessment"
+#~ msgstr "sapun_Vleresimi"
+
+#~ msgid "soap_Plan"
+#~ msgstr "sapun_Plani"
+
+#~ msgid "soap_Unspecified"
+#~ msgstr "sapun_I pa specifikuar"
+
+#~ msgid "soap_Administrative"
+#~ msgstr "sapun_Administrativ"
+
+#, fuzzy
+#~ msgid "Search in list"
+#~ msgstr "Liste mjekimi"
+
+#, fuzzy
+#~ msgid "&Unknown"
+#~ msgstr "Format i panjohur."
+
+#, fuzzy
+#~ msgid "Last confirmed: %s%s"
+#~ msgstr " (konfirmimi i fundit %s)"
+
+#~ msgid ""
+#~ "Unable to connect to database:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Are you sure you have got a local database installed ?\n"
+#~ "\n"
+#~ "Please retry with proper credentials or cancel.\n"
+#~ "\n"
+#~ "You may also need to check the PostgreSQL client\n"
+#~ "authentication configuration in pg_hba.conf. For\n"
+#~ "details see:\n"
+#~ "\n"
+#~ "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
+#~ msgstr ""
+#~ "E pamundur per tu lidhur me bazen e te dhenave:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Jeni i sigurte qe keni nje baze te dhenash te instaluar lokalisht?\n"
+#~ "\n"
+#~ "Ju gjithashtu duhet te kontrolloni konfigurimin e autentifikimit\n"
+#~ "te klientit ne PostgreSLQ tek file pg_hba.conf. Per\n"
+#~ "detaje referoju:\n"
+#~ "\n"
+#~ "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
+
+#~ msgid ""
+#~ "Unable to connect to database:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Please retry with proper credentials or cancel.\n"
+#~ "\n"
+#~ "You may also need to check the PostgreSQL client\n"
+#~ "authentication configuration in pg_hba.conf. For\n"
+#~ "details see:\n"
+#~ "\n"
+#~ "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
+#~ msgstr ""
+#~ "E pamundur per tu lidhur me bazen e te dhenave:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Ju lutem provoni perseri me kredencialet e sakta ose anulloni veprimin.\n"
+#~ "\n"
+#~ "Ju gjithashtu duhet te kontrolloni konfigurimin e autentifikimit\n"
+#~ "te klientit ne PostgreSLQ tek file pg_hba.conf. Per\n"
+#~ "detaje referoju:\n"
+#~ "\n"
+#~ "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
+
+#~ msgid ""
+#~ "Unable to connect to database:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Please retry another backend / user / password combination !\n"
+#~ msgstr ""
+#~ "E pamundur per tu lidhur me bazen e te dhenave:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Ju lutem provoni nje tjeter / emer perdoruesi / fjalekalimi te panelit te "
+#~ "programit!\n"
 
 #, fuzzy
-#~ msgid "file: %s (%s/)"
-#~ msgstr "Njesi: %s (%s)"
+#~ msgid "to file(s)"
+#~ msgstr "Filet SVG"
 
 #, fuzzy
 #~ msgid "Faxed to %s: %s"
diff --git a/client/po/sr-gnumed.mo b/client/po/sr-gnumed.mo
index e9f72cb..f46b992 100644
Binary files a/client/po/sr-gnumed.mo and b/client/po/sr-gnumed.mo differ
diff --git a/client/po/sr.po b/client/po/sr.po
index a522c7a..41d5b1b 100644
--- a/client/po/sr.po
+++ b/client/po/sr.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gnumed\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-12-26 20:29+0100\n"
+"POT-Creation-Date: 2016-03-17 16:28+0100\n"
 "PO-Revision-Date: 2011-08-25 16:54+0000\n"
 "Last-Translator: Karolina Kalic <Unknown>\n"
 "Language-Team: Serbian <sr at li.org>\n"
@@ -1457,10 +1457,22 @@ msgid ""
 msgstr ""
 
 #, python-format
+msgid "Revision #%s"
+msgstr ""
+
+#, python-format
 msgid "[%s:%s]: row not updated (nothing returned), row in use ?"
 msgstr ""
 
 #, python-format
+msgid "<%s(.bat)> not found"
+msgstr ""
+
+#, python-format
+msgid "problem with <%s>"
+msgstr ""
+
+#, python-format
 msgid "[%s] is not a readable file"
 msgstr ""
 
@@ -1488,21 +1500,7 @@ msgstr ""
 msgid "%s Bytes"
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot connect to configuration database with:\n"
-"\n"
-"[%s]"
-msgstr ""
-
-#, python-format
-msgid ""
-"Cannot connect to database with:\n"
-"\n"
-"[%s]"
-msgstr ""
-
-msgid "No product information available."
+msgid "<type>"
 msgstr ""
 
 #, python-format
@@ -1838,101 +1836,6 @@ msgstr ""
 msgid "  risk: %s"
 msgstr ""
 
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Are you sure you have got a local database installed ?\n"
-"\n"
-"Please retry with proper credentials or cancel.\n"
-"\n"
-"You may also need to check the PostgreSQL client\n"
-"authentication configuration in pg_hba.conf. For\n"
-"details see:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-msgstr ""
-"Не могу да се повежем са базом:\n"
-"\n"
-"%s\n"
-"\n"
-"Проверите да ли имате инсталирану локалну базу података ?\n"
-"\n"
-"Пробајте поново са одговарајућим подацима или одустаните.\n"
-"\n"
-"Проверите подешавања за логовање у PostgreSQL \n"
-"клијенту и pg_hba.conf. \n"
-"За детаље погледајте:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Please retry with proper credentials or cancel.\n"
-"\n"
-"You may also need to check the PostgreSQL client\n"
-"authentication configuration in pg_hba.conf. For\n"
-"details see:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-msgstr ""
-"Не могу да се повежем са базом:\n"
-"\n"
-"%s\n"
-"\n"
-"Пробајте поново са одговарајућим подацима или одустаните.\n"
-"\n"
-"Проверите подешавања за логовање у PostgreSQL \n"
-"клијенту и pg_hba.conf. \n"
-"За детаље погледајте:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-
-msgid "Connecting to backend"
-msgstr ""
-
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Please retry another backend / user / password combination !\n"
-msgstr ""
-
-msgid "programmer forgot to specify error message"
-msgstr "програмер је заборавио да дефинише поруку за грешку"
-
-msgid ""
-"\n"
-"\n"
-"Please consult the error log for all the gory details !"
-msgstr ""
-"\n"
-"\n"
-"Погледајте лог грешака за све крваве детаље !"
-
-msgid "generic error message"
-msgstr "генеричка порука за грешку"
-
-msgid "programmer forgot to specify info message"
-msgstr "програмер је заборавио да дефинише поруку за обавештење"
-
-msgid "generic info message"
-msgstr "генеричка порука за обавештење"
-
-msgid "programmer forgot to specify warning"
-msgstr "програмер је заборавио да дефинише поруку за упозорење"
-
-msgid "generic warning message"
-msgstr "генеричка порука за упозорење"
-
 msgid "no hook specified, please report bug"
 msgstr ""
 
@@ -2251,6 +2154,33 @@ msgstr ""
 msgid "Include:"
 msgstr ""
 
+msgid "&Search"
+msgstr ""
+
+msgid "Suggest"
+msgstr ""
+
+msgid "Set"
+msgstr ""
+
+msgid "dialog_1"
+msgstr ""
+
+msgid "Search patients in Orthanc DICOM store."
+msgstr ""
+
+#, fuzzy
+msgid "Suggest a patient ID based on the active patient."
+msgstr "Не могу да додам вакцинацију. Није изабран активан пацијент."
+
+#, fuzzy
+msgid "Search term:"
+msgstr "Листа лекова"
+
+#, fuzzy
+msgid "New patient ID:"
+msgstr "Активни проблеми"
+
 msgid "Your review"
 msgstr ""
 
@@ -2552,6 +2482,97 @@ msgstr "Супстанца"
 msgid "Amount"
 msgstr ""
 
+msgid "&Connect"
+msgstr ""
+
+msgid "&Browse"
+msgstr ""
+
+msgid "<not connected>"
+msgstr ""
+
+msgid "Browse all"
+msgstr ""
+
+#, fuzzy
+msgid "Export all"
+msgstr "део"
+
+msgid "Browse"
+msgstr ""
+
+msgid "Export"
+msgstr ""
+
+msgid "Upload"
+msgstr ""
+
+#, fuzzy
+msgid "Enter the PACS host address."
+msgstr "Брисање вакцине"
+
+msgid "Enter the PACS port."
+msgstr ""
+
+msgid "Enter the PACS user."
+msgstr ""
+
+msgid "Enter the PACS password. It will not be shown."
+msgstr ""
+
+msgid "Connect to PACS."
+msgstr ""
+
+msgid "Browse PACS at top level."
+msgstr ""
+
+msgid "Modify some of Orthanc content (such as patient IDs)."
+msgstr ""
+
+#, fuzzy
+msgid "Browse overview of studies for this patient."
+msgstr ""
+"\n"
+"Комплетна историја вакцинације овог пацијента.\n"
+
+#, fuzzy
+msgid "Copy all studies into export area."
+msgstr "Додавање нове вакцине"
+
+msgid "Browse topmost selected study."
+msgstr ""
+
+#, fuzzy
+msgid "Copy selected studies into export area."
+msgstr "Додавање нове вакцине"
+
+msgid "Save selected studies to disk."
+msgstr ""
+
+msgid ""
+"Upload DICOM files from a directory, recursively, into the Orthanc PACS\n"
+"\n"
+"The currently active patient does not matter. Orthanc will associate "
+"uploaded files with the patient found within the DICOM metadata. It will "
+"create new patients as needed."
+msgstr ""
+
+msgid "Host:"
+msgstr ""
+
+msgid "Port:"
+msgstr ""
+
+msgid "User:"
+msgstr ""
+
+msgid "Password"
+msgstr ""
+
+#, fuzzy
+msgid "Selected studies:"
+msgstr "Брисање вакцине"
+
 msgid "Fake brand"
 msgstr ""
 
@@ -2888,9 +2909,6 @@ msgstr "генеричка порука за грешку"
 msgid "&Load"
 msgstr ""
 
-msgid "Export"
-msgstr ""
-
 msgid "A long, descriptive name for this form template."
 msgstr ""
 
@@ -2978,15 +2996,12 @@ msgstr ""
 msgid "Document Properties"
 msgstr ""
 
-msgid "Show part"
+msgid "Show"
 msgstr ""
 
 msgid "Remove part"
 msgstr ""
 
-msgid "Parts"
-msgstr ""
-
 msgid "Discard"
 msgstr ""
 
@@ -3014,6 +3029,9 @@ msgstr ""
 msgid "Required: The primary episode this document is to be listed under."
 msgstr ""
 
+msgid "Optional: The organization (unit) this document originated from."
+msgstr ""
+
 msgid ""
 "Optional: A short comment identifying the document. Good comments give an "
 "idea of the content and source of the document."
@@ -3038,6 +3056,9 @@ msgid ""
 "normal and abnormal resuslts can be relevant."
 msgstr ""
 
+msgid "Optional: A free-text document description."
+msgstr ""
+
 msgid "This field lists the parts belonging to the current document."
 msgstr ""
 
@@ -3049,9 +3070,6 @@ msgid ""
 "deletion from disk."
 msgstr ""
 
-msgid "Optional: A free-text document description."
-msgstr ""
-
 msgid "Save finished document."
 msgstr ""
 
@@ -3068,6 +3086,10 @@ msgstr ""
 msgid "Associate to episode:"
 msgstr ""
 
+#, fuzzy
+msgid "Document source:"
+msgstr "Документа:"
+
 msgid "Comment / Identification:"
 msgstr ""
 
@@ -3253,8 +3275,9 @@ msgstr ""
 msgid "Messages:"
 msgstr ""
 
-msgid "Only:"
-msgstr ""
+#, fuzzy
+msgid "Limit to:"
+msgstr "Подеси на:"
 
 msgid "&Myself … or:"
 msgstr ""
@@ -3363,10 +3386,10 @@ msgstr ""
 msgid "Purpose"
 msgstr ""
 
-msgid "Details"
+msgid "Please supply your email address here !"
 msgstr ""
 
-msgid "<Please supply your email address here !>"
+msgid "Details"
 msgstr ""
 
 msgid "Keep running"
@@ -3390,9 +3413,11 @@ msgid ""
 msgstr ""
 
 msgid ""
-"Please enter your email address so we can provide feedback directly to you. "
-"Otherwise, feedback will be given on the GNUmed mailing list (http://lists."
-"gnu.org/mailman/listinfo/gnumed-bugs)."
+"Please enter your email address so we can provide help to you directly.\n"
+"\n"
+"Otherwise, feedback can be given on the GNUmed mailing list (http://lists."
+"gnu.org/mailman/listinfo/gnumed-bugs) ONLY to which you will then have to "
+"subscribe."
 msgstr ""
 
 msgid "Find help on http://wiki.gnumed.de, too."
@@ -3507,9 +3532,6 @@ msgstr ""
 msgid "Account"
 msgstr ""
 
-msgid "Password"
-msgstr ""
-
 msgid "Password, again"
 msgstr ""
 
@@ -4008,7 +4030,7 @@ msgstr ""
 msgid "Acquire images from image source (scanner, ...)."
 msgstr ""
 
-msgid "Acquire images or text from the clipboard."
+msgid "Acquire file or text from the clipboard."
 msgstr ""
 
 #, fuzzy
@@ -4160,7 +4182,7 @@ msgid ""
 "- the result list will be artificially limited to the first 1000 rows\n"
 "- you can include a column named \"pk_patient\" to make the result rows "
 "activate the corresponding patient on double-clicking\n"
-"- by inserting $<ID_active_patient>$ you can access the patient ID of the "
+"- by inserting $<ID_ACTIVE_PATIENT>$ you can access the patient ID of the "
 "patient active at the time of running the query"
 msgstr ""
 
@@ -4320,9 +4342,6 @@ msgstr ""
 msgid "Link &new"
 msgstr ""
 
-msgid "Browse"
-msgstr ""
-
 msgid ""
 "Search for matches among existing addresses and [Link] a selection, or [Link "
 "(a) new] address."
@@ -4371,26 +4390,17 @@ msgid ""
 "left."
 msgstr ""
 
-msgid "label_1"
-msgstr ""
-
-msgid "→"
-msgstr ""
-
-msgid "←"
-msgstr ""
-
-msgid "Extra"
+msgid "Subjective"
 msgstr ""
 
-msgid "Move selected items from left to right."
+msgid "Objective"
 msgstr ""
 
-msgid "Move selected items from right to left."
+msgid "Assessment"
 msgstr ""
 
-msgid "Cancel picking items."
-msgstr ""
+msgid "Plan"
+msgstr "План"
 
 msgid "Episode synopsis"
 msgstr ""
@@ -4425,20 +4435,29 @@ msgid ""
 "narrative belongs to."
 msgstr ""
 
-msgid "Subjective"
-msgstr ""
-
 msgid "Codes:"
 msgstr ""
 
-msgid "Objective"
+msgid "label_1"
 msgstr ""
 
-msgid "Assessment"
+msgid "→"
 msgstr ""
 
-msgid "Plan"
-msgstr "План"
+msgid "←"
+msgstr ""
+
+msgid "Extra"
+msgstr ""
+
+msgid "Move selected items from left to right."
+msgstr ""
+
+msgid "Move selected items from right to left."
+msgstr ""
+
+msgid "Cancel picking items."
+msgstr ""
 
 msgid "1"
 msgstr ""
@@ -4607,6 +4626,85 @@ msgstr ""
 msgid "Age range"
 msgstr ""
 
+msgid "&Nicotine"
+msgstr ""
+
+msgid "&Alcohol"
+msgstr ""
+
+msgid "&Other:"
+msgstr ""
+
+msgid "&Non-harmful use"
+msgstr ""
+
+msgid "&Harmful use"
+msgstr ""
+
+msgid "Presently &addicted"
+msgstr ""
+
+msgid "Previously &addicted"
+msgstr ""
+
+msgid "&Reconfirm as of today"
+msgstr ""
+
+#, fuzzy
+msgid "Select for documenting smoking status."
+msgstr "Уређивање вакцине"
+
+msgid "Select for documenting alcohol use status."
+msgstr ""
+
+msgid ""
+"Select for documenting use of substances other than nicotine or alcohol."
+msgstr ""
+
+#, fuzzy
+msgid "Select the abused substance."
+msgstr "здравствени проблем: %s"
+
+msgid ""
+"Select if the substance use is not considered harmful (say, no use or non-"
+"harmful use)."
+msgstr ""
+
+msgid "Select if substance is use considered harmful."
+msgstr ""
+
+msgid "Select if the patient is presently addicted to this substance."
+msgstr ""
+
+msgid "Select if the patient was previously addicted to this substance."
+msgstr ""
+
+msgid ""
+"A comment on this substance use:\n"
+"- type of product used\n"
+"- frequency\n"
+"- amount\n"
+"- when started\n"
+"- attempts to quit\n"
+"..."
+msgstr ""
+
+msgid ""
+"When did the patient quit?\n"
+"\n"
+"You can also set a target quit date here."
+msgstr ""
+
+msgid "Check here to confirm for today."
+msgstr ""
+
+msgid "Quit date"
+msgstr ""
+
+#, fuzzy
+msgid "Last confirmed"
+msgstr "Последње потрврђено:"
+
 msgid "Closed episodes"
 msgstr ""
 
@@ -4945,20 +5043,19 @@ msgstr ""
 msgid "Show:"
 msgstr ""
 
-msgid "Brand by component"
+msgid "Kidneys"
 msgstr ""
 
 msgid "Brands"
 msgstr ""
 
-msgid "Kidneys"
-msgstr ""
-
-msgid "Unbranded substance"
-msgstr ""
+#, fuzzy
+msgid "Substances"
+msgstr "Супстанца"
 
-msgid "Manage"
-msgstr ""
+#, fuzzy
+msgid "&Unknown or date:"
+msgstr "непозната реакција"
 
 msgid "Approved of"
 msgstr ""
@@ -4973,23 +5070,20 @@ msgid "... Reason"
 msgstr ""
 
 msgid ""
-"A component of a drug brand the patient is taking.\n"
+"A drug the patient is taking.\n"
 "\n"
-"Lookup, and select, a single- (or multi-) component drug brand, by active "
-"ingredient name. All components of multi-component drugs will be displayed "
-"and automatically added to the patient's list."
-msgstr ""
-
-msgid ""
-"Manage drug brands.\n"
+"Lookup and select an intake by either of\n"
+"- a generic substance name\n"
+"- a drug brand name\n"
+"- an active ingredient of a drug\n"
 "\n"
-"Note that this will not select a component for you. What it does is to let "
-"you manage (add/edit/delete) the drug products/brands known to GNUmed from "
-"which you can select a component."
+"Note that all components of multi-component drugs will be displayed and "
+"automatically added to the patient's list."
 msgstr ""
 
-msgid "The active ingredients of this brand."
-msgstr ""
+#, fuzzy
+msgid "Details on the selected drug."
+msgstr "Брисање вакцине"
 
 msgid "Show cardiac information relevant to substance selection."
 msgstr ""
@@ -4998,8 +5092,11 @@ msgid "Show renal insufficiency information related to substance selection."
 msgstr ""
 
 msgid ""
-"The non-branded medication or non-medication substance, with optional "
-"strength."
+"Manage drug brands.\n"
+"\n"
+"Note that this will not select a component for you. What it does is to let "
+"you manage (add/edit/delete) the drug products/brands known to GNUmed from "
+"which you can select a component."
 msgstr ""
 
 msgid ""
@@ -5012,11 +5109,19 @@ msgstr ""
 msgid "The preparation or form of the substance."
 msgstr ""
 
+msgid "Check here if the start date simply isn't known."
+msgstr ""
+
 msgid ""
 "When was this substance started to be consumed or - if not known - the "
 "earliest it is known to have been be consumed."
 msgstr ""
 
+msgid ""
+"A coment on the certainty of the start date, such as \"+/- 3 weeks\", "
+"\"spring of 2002\", \"shortly after Easter 1996\", ...."
+msgstr ""
+
 msgid "Whether this substance is taken by advice."
 msgstr ""
 
@@ -5050,6 +5155,15 @@ msgstr ""
 msgid "Reason for discontinuation."
 msgstr ""
 
+msgid "Drug"
+msgstr "Лек"
+
+msgid "Research:"
+msgstr ""
+
+msgid "Certainty:"
+msgstr ""
+
 msgid "Schedule"
 msgstr ""
 
@@ -5202,6 +5316,33 @@ msgstr ""
 msgid "Channel"
 msgstr ""
 
+#, fuzzy
+msgid "&Last modification time"
+msgstr "Последње потрврђено:"
+
+msgid "&Entry time"
+msgstr ""
+
+msgid "Show journal ordered by encounter."
+msgstr ""
+
+msgid "Show journal ordered by time of last modification."
+msgstr ""
+
+msgid "Show journal ordered by actual clinical time of each entry."
+msgstr ""
+
+#, fuzzy
+msgid "Edit the selected chart entry."
+msgstr "Брисање вакцине"
+
+#, fuzzy
+msgid "Delete selected chart entry."
+msgstr "Брисање вакцине"
+
+msgid "Order by:"
+msgstr ""
+
 msgid "Chec&k"
 msgstr ""
 
@@ -5749,10 +5890,13 @@ msgstr "Мерења и резултати: %s"
 msgid "Documents:"
 msgstr "Документа:"
 
+msgid "&L"
+msgstr ""
+
 msgid "&N"
 msgstr ""
 
-msgid "&L"
+msgid "List all encounters."
 msgstr ""
 
 msgid "The encounter."
@@ -5761,9 +5905,6 @@ msgstr ""
 msgid "Start a new encounter for the active patient."
 msgstr ""
 
-msgid "List all encounters."
-msgstr ""
-
 msgid "Clinically relevant"
 msgstr ""
 
@@ -6017,10 +6158,14 @@ msgstr ""
 msgid "Manage dynamic hints."
 msgstr "Приказивање вакцина."
 
+#, fuzzy
 msgid ""
 "Rationale for\n"
-"suppression"
+"suppression\n"
+"for this patient"
 msgstr ""
+"\n"
+"Комплетна историја вакцинације овог пацијента.\n"
 
 msgid "Save &under"
 msgstr ""
@@ -6075,6 +6220,12 @@ msgstr ""
 msgid "Encounter:"
 msgstr ""
 
+msgid "Manage"
+msgstr ""
+
+msgid "&Panel:"
+msgstr ""
+
 msgid "&Pick"
 msgstr ""
 
@@ -6117,6 +6268,9 @@ msgid ""
 "To disable that popup leave the message empty."
 msgstr ""
 
+msgid "Show search dialog."
+msgstr ""
+
 msgid "THIS IS NOT A VERIFIED MEASUREMENT. DO NOT USE FOR ACTUAL CARE."
 msgstr ""
 
@@ -6401,6 +6555,52 @@ msgstr ""
 msgid "ERROR: unknown allergy state [%s]"
 msgstr "ГРЕШКА: непознато стање алергије"
 
+msgid "definite"
+msgstr ""
+
+msgid "indefinite"
+msgstr ""
+
+#, fuzzy
+msgid "Reaction:"
+msgstr "Реакција"
+
+msgid "Noted:"
+msgstr ""
+
+#, fuzzy
+msgid "Allergene:"
+msgstr "Алергија"
+
+#, fuzzy
+msgid "Substance:"
+msgstr "Супстанца"
+
+#, fuzzy
+msgid "Code:"
+msgstr "Последњи датум"
+
+msgid "ATC:"
+msgstr ""
+
+#, fuzzy
+msgid "Specific to:"
+msgstr "Подеси на:"
+
+#, fuzzy
+msgid "this substance only"
+msgstr "Уређивање вакцине"
+
+msgid "drug class"
+msgstr ""
+
+msgid "unknown"
+msgstr ""
+
+#, fuzzy
+msgid "Generics:"
+msgstr "генеричка порука за обавештење"
+
 msgid "Medication history"
 msgstr "Историја коришћених лекова"
 
@@ -6412,9 +6612,15 @@ msgstr "Рецепти"
 msgid "prescription data"
 msgstr "Рецепти"
 
+msgid "Consumable substance"
+msgstr ""
+
 msgid "in use"
 msgstr ""
 
+msgid "w/"
+msgstr ""
+
 msgid "long-term"
 msgstr "дугорочно"
 
@@ -6434,6 +6640,35 @@ msgid "?ongoing"
 msgstr "?траје"
 
 #, python-format
+msgid ""
+"Substance abuse entry                                              [#%s]\n"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "Substance: %s [#%s]%s\n"
+msgstr "Супстанца"
+
+#, fuzzy, python-format
+msgid "Use type: %s\n"
+msgstr "Пацијент: %s (%s), Бр: %s\n"
+
+#, fuzzy, python-format
+msgid "Last checked: %s\n"
+msgstr "последња провера:"
+
+#, python-format
+msgid " Discontinued %s\n"
+msgstr ""
+
+#, fuzzy, python-format
+msgid " Notes: %s\n"
+msgstr "Пацијент: %s (%s), Бр: %s\n"
+
+#, python-format
+msgid "Revision: #%(row_ver)s, %(mod_when)s by %(mod_by)s."
+msgstr ""
+
+#, python-format
 msgid "Substance intake entry (%s, %s)   [#%s]                     \n"
 msgstr ""
 
@@ -6449,9 +6684,6 @@ msgstr ""
 msgid "unapproved"
 msgstr ""
 
-msgid "definite"
-msgstr ""
-
 msgid "suspected"
 msgstr ""
 
@@ -6498,10 +6730,6 @@ msgid " (short-term)"
 msgstr ""
 
 #, python-format
-msgid " Discontinued %s\n"
-msgstr ""
-
-#, python-format
 msgid " Reason: %s\n"
 msgstr ""
 
@@ -6521,18 +6749,62 @@ msgstr "здравствени проблем: %s"
 msgid " Advice: %s\n"
 msgstr ""
 
-#, python-format
-msgid "Revision: #%(row_ver)s, %(mod_when)s by %(mod_by)s."
+#, fuzzy
+msgid "medication, not abuse"
+msgstr "Листа лекова"
+
+msgid "no or non-harmful use"
+msgstr ""
+
+msgid "presently harmful use"
+msgstr ""
+
+msgid "presently addicted"
+msgstr ""
+
+msgid "previously addicted"
 msgstr ""
 
 #, fuzzy, python-format
-msgid "%s: %s ago"
+msgid "%s%s: %s ago%s"
+msgstr "Документа: %s"
+
+#, fuzzy, python-format
+msgid "%s%s: %s ago (%s)"
+msgstr "Документа: %s"
+
+#, fuzzy, python-format
+msgid "%s%s%s (%s ago)"
 msgstr "Документа: %s"
 
 #, fuzzy, python-format
-msgid "%s: %s ago (%s)"
+msgid "%s%s%s (%s ago, %s)"
 msgstr "Документа: %s"
 
+#, python-format
+msgid "%s ago"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "in %s"
+msgstr "Пацијент: %s (%s), Бр: %s\n"
+
+#, fuzzy, python-format
+msgid ", until %s (%s)"
+msgstr "Пацијент: %s (%s), Бр: %s\n"
+
+#, python-format
+msgid " (planned for %s%s)"
+msgstr ""
+
+#, python-format
+msgid ", planned for %s%s"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "%s ago (for %s: %s %s %s)"
+msgstr "  ваше време: %s - %s  (@%s = %s%s)\n"
+
 msgid "Additional notes"
 msgstr "Додатне белешке"
 
@@ -6545,14 +6817,37 @@ msgstr "Листа лекова"
 msgid "ordered by brand"
 msgstr ""
 
-msgid "Drug"
-msgstr "Лек"
-
 msgid "Regimen / Advice"
 msgstr ""
 
-msgid "units"
-msgstr "једиице"
+#, fuzzy, python-format
+msgid "Component of %s (%s)"
+msgstr "Пацијент: %s (%s), Бр: %s\n"
+
+#, fuzzy, python-format
+msgid "ATC (substance): %s"
+msgstr "Супстанца"
+
+#, python-format
+msgid "ATC (brand): %s"
+msgstr ""
+
+msgid "this is a component of a fake brand"
+msgstr ""
+
+#, fuzzy
+msgid "Components:"
+msgstr "неактиван"
+
+msgid "this is a fake brand"
+msgstr ""
+
+#, fuzzy
+msgid "this is a vaccine"
+msgstr "вакцина"
+
+msgid "units"
+msgstr "једиице"
 
 msgid "virtual message"
 msgstr ""
@@ -6584,51 +6879,14 @@ msgid "Expires: %s\n"
 msgstr "Пацијент: %s (%s), Бр: %s\n"
 
 #, fuzzy
-msgid "Active clinical hint"
-msgstr "Активни проблеми"
-
-#, fuzzy
-msgid "Inactive clinical hint"
-msgstr "клинички нерелевантно"
-
-#, python-format
-msgid "Source: %s\n"
-msgstr ""
-
-#, fuzzy, python-format
-msgid "Language: %s\n"
-msgstr "Пацијент: %s (%s), Бр: %s\n"
-
-#, fuzzy
-msgid "Suppressed active dynamic hint"
-msgstr "Приказивање вакцина."
-
-#, fuzzy
-msgid "Suppressed inactive dynamic hint"
-msgstr "Приказивање вакцина."
-
-#, fuzzy, python-format
-msgid "Suppressed by: %s\n"
-msgstr "Пацијент: %s (%s), Бр: %s\n"
-
-#, fuzzy, python-format
-msgid "Suppressed at: %s\n"
+msgid "HL7 Source"
 msgstr "Пацијент: %s (%s), Бр: %s\n"
 
-#, fuzzy, python-format
-msgid "Hint #: %s\n"
-msgstr "Пацијент: %s (%s), Бр: %s\n"
-
-#, fuzzy, python-format
-msgid "Patient #: %s\n"
-msgstr "Пацијент: %s (%s), Бр: %s\n"
-
-#, fuzzy, python-format
-msgid "MD5 (currently): %s\n"
-msgstr "Документа: %s"
+msgid "HL7 data size"
+msgstr ""
 
 #, python-format
-msgid "MD5 (at suppression): %s\n"
+msgid "%s bytes"
 msgstr ""
 
 msgid "HL7 Message"
@@ -6684,13 +6942,6 @@ msgstr ""
 msgid "doc: %s"
 msgstr "Пацијент: %s (%s), Бр: %s\n"
 
-msgid "no patient photograph available"
-msgstr ""
-
-#, python-format
-msgid "patient photograph from %s"
-msgstr ""
-
 msgid "Patient data for"
 msgstr ""
 
@@ -6700,6 +6951,9 @@ msgstr ""
 msgid "Patient data export"
 msgstr ""
 
+msgid "no patient photograph available"
+msgstr ""
+
 msgid "Documents"
 msgstr ""
 
@@ -6710,6 +6964,10 @@ msgstr ""
 msgid "browse documents area"
 msgstr " %s докумената\n"
 
+#, python-format
+msgid "patient photograph from %s"
+msgstr ""
+
 #, fuzzy
 msgid "Browse patient data"
 msgstr "Приказивање вакцина."
@@ -6745,24 +7003,24 @@ msgstr ""
 #, python-format
 msgid ""
 "%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s %(suburb)s, "
-"%(code_state)s, %(code_country)s"
+"%(code_region)s, %(code_country)s"
 msgstr ""
 
 #, python-format
 msgid ""
 "%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s %(suburb)s, "
-"%(code_state)s, %(code_country)s"
+"%(code_region)s, %(code_country)s"
 msgstr ""
 
 #, python-format
 msgid ""
-"%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_state)s, "
-"%(code_country)s"
+"%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, "
+"%(code_region)s, %(code_country)s"
 msgstr ""
 
 #, python-format
 msgid ""
-"%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_state)s, "
+"%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_region)s, "
 "%(code_country)s"
 msgstr ""
 
@@ -6772,7 +7030,7 @@ msgid ""
 " Street: %(street)s%(notes_street)s\n"
 " Number/Unit: %(number)s%(subunit)s%(notes_subunit)s\n"
 " Location: %(zip)s %(urb)s%(suburb)s\n"
-" Region: %(l10n_state)s, %(code_state)s\n"
+" Region: %(l10n_region)s, %(code_region)s\n"
 " Country: %(l10n_country)s, %(code_country)s"
 msgstr ""
 
@@ -6782,7 +7040,7 @@ msgid ""
 " Street: %(street)s%(notes_street)s\n"
 " Number/Unit: %(number)s%(subunit)s%(notes_subunit)s\n"
 " Location: %(zip)s %(urb)s%(suburb)s\n"
-" Region: %(l10n_state)s, %(code_state)s\n"
+" Region: %(l10n_region)s, %(code_region)s\n"
 " Country: %(l10n_country)s, %(code_country)s"
 msgstr ""
 
@@ -6851,6 +7109,95 @@ msgstr "исправљен резултат"
 msgid "missing, reported later"
 msgstr "недостаје, пријављено касније"
 
+msgid "Health issue"
+msgstr "Здравствени проблем"
+
+msgid "External care"
+msgstr ""
+
+msgid "Vaccination"
+msgstr "Вакцинација"
+
+#, fuzzy
+msgid "Clinical narrative"
+msgstr "клинички релевантно"
+
+#, fuzzy
+msgid "Test result"
+msgstr "Резултати теста"
+
+#, fuzzy
+msgid "Substance intake"
+msgstr "Супстанца"
+
+#, fuzzy
+msgid "Hospital stay"
+msgstr "Број боравака у болници: %s"
+
+#, fuzzy
+msgid "Performed procedure"
+msgstr ""
+" %s извршених захвата\n"
+"\n"
+
+#, fuzzy
+msgid "Family history"
+msgstr "Породична историја"
+
+#, fuzzy
+msgid "Document"
+msgstr "Документа:"
+
+#, python-format
+msgid "unmapped entry type from table [%s]"
+msgstr ""
+
+#, python-format
+msgid "cannot instantiate clinical root item <%s(%s)>"
+msgstr ""
+
+msgid "True"
+msgstr ""
+
+msgid "False"
+msgstr ""
+
+#, fuzzy
+msgid "unknown smoking status"
+msgstr "Уређивање вакцине"
+
+msgid "non-smoker"
+msgstr ""
+
+msgid "current smoker"
+msgstr ""
+
+msgid "ex-smoker"
+msgstr ""
+
+msgid "tobacco addiction"
+msgstr ""
+
+msgid "no or non-harmful alcohol use"
+msgstr ""
+
+msgid "harmful alcohol use"
+msgstr ""
+
+#, fuzzy
+msgid "unknown alcohol use"
+msgstr "непознато стање алергије"
+
+msgid "no or non-harmful drug use"
+msgstr ""
+
+msgid "harmful drug use"
+msgstr ""
+
+#, fuzzy
+msgid "unknown drug use"
+msgstr "непознато стање алергије"
+
 msgid "original entry"
 msgstr "оригинална ставка"
 
@@ -6945,13 +7292,6 @@ msgstr ""
 msgid "Vaccinations"
 msgstr "Вакцинације"
 
-#, python-format
-msgid "%s ago"
-msgstr ""
-
-msgid "External care"
-msgstr ""
-
 #, fuzzy
 msgid "Allergies/Intolerances"
 msgstr "алергије/нетолеранције"
@@ -7027,76 +7367,130 @@ msgid ""
 "The account was deactivated instead."
 msgstr ""
 
-#, python-format
-msgid "Device(%s):"
-msgstr "Уређај(%s):"
+msgid "SOAP_char_S=S"
+msgstr ""
 
-msgid "Battery:"
-msgstr "Батерија:"
+msgid "SOAP_char_O=O"
+msgstr ""
 
-msgid "Implanted:"
+msgid "SOAP_char_A=A"
 msgstr ""
 
-msgid "last check:"
-msgstr "последња провера:"
+msgid "SOAP_char_P=P"
+msgstr ""
 
-msgid "Sensing:"
+msgid "SOAP_char_U=U"
 msgstr ""
 
-msgid "Threshold"
+msgid "SOAP_string_Subjective=Subjective"
 msgstr ""
 
-msgid "Impedance:"
+msgid "SOAP_string_Objective=Objective"
 msgstr ""
 
-#, python-format
-msgid "Praxis branch                   #%s\n"
+msgid "SOAP_string_Assessment=Assessment"
 msgstr ""
 
-msgid "Privacy notice"
+msgid "SOAP_string_Plan=Plan"
 msgstr ""
 
-#, python-format
-msgid ""
-"%s: Your chart has been accessed by %s (without user interaction, probably "
-"by a script)."
+msgid "SOAP_string_Unspecified=Unspecified"
 msgstr ""
 
-#, python-format
-msgid "%s: Staff member %s has been notified of your chart access."
+msgid "SOAP_string_Administrative=Administrative"
 msgstr ""
 
-msgid "soap_S"
+#, fuzzy
+msgid "Active clinical hint"
+msgstr "Активни проблеми"
+
+#, fuzzy
+msgid "Inactive clinical hint"
+msgstr "клинички нерелевантно"
+
+#, python-format
+msgid "Source: %s\n"
 msgstr ""
 
-msgid "soap_O"
+#, fuzzy, python-format
+msgid "Language: %s\n"
+msgstr "Пацијент: %s (%s), Бр: %s\n"
+
+#, fuzzy
+msgid "Suppressed active dynamic hint"
+msgstr "Приказивање вакцина."
+
+#, fuzzy
+msgid "Suppressed inactive dynamic hint"
+msgstr "Приказивање вакцина."
+
+#, fuzzy, python-format
+msgid "Suppressed by: %s\n"
+msgstr "Пацијент: %s (%s), Бр: %s\n"
+
+#, fuzzy, python-format
+msgid "Suppressed at: %s\n"
+msgstr "Пацијент: %s (%s), Бр: %s\n"
+
+#, fuzzy, python-format
+msgid "Hint #: %s\n"
+msgstr "Пацијент: %s (%s), Бр: %s\n"
+
+#, fuzzy, python-format
+msgid "Patient #: %s\n"
+msgstr "Пацијент: %s (%s), Бр: %s\n"
+
+#, fuzzy, python-format
+msgid "MD5 (currently): %s\n"
+msgstr "Документа: %s"
+
+#, python-format
+msgid "MD5 (at suppression): %s\n"
 msgstr ""
 
-msgid "soap_A"
+#, python-format
+msgid "Device(%s):"
+msgstr "Уређај(%s):"
+
+msgid "Battery:"
+msgstr "Батерија:"
+
+msgid "Implanted:"
 msgstr ""
 
-msgid "soap_P"
+msgid "last check:"
+msgstr "последња провера:"
+
+msgid "Sensing:"
 msgstr ""
 
-msgid "soap_U"
+msgid "Threshold"
 msgstr ""
 
-msgid "soap_Subjective"
+msgid "Impedance:"
 msgstr ""
 
-msgid "soap_Objective"
+#, python-format
+msgid "Praxis branch                   #%s\n"
 msgstr ""
 
-msgid "soap_Assessment"
+#, python-format
+msgid ""
+"FN:%(l10n_unit_category)s %(branch)s of %(l10n_organization_category)s "
+"%(praxis)s"
 msgstr ""
 
-msgid "soap_Plan"
+msgid "Privacy notice"
 msgstr ""
 
-msgid "soap_Unspecified"
+#, python-format
+msgid ""
+"%s: Your chart has been accessed by %s (without user interaction, probably "
+"by a script)."
 msgstr ""
 
-msgid "soap_Administrative"
+#, python-format
+msgid "%s: Staff member %s has been notified of your chart access."
 msgstr ""
 
 #, python-format
@@ -7164,9 +7558,17 @@ msgid "%(last)s,%(title)s %(first)s%(nick)s (%(sex)s)"
 msgstr ""
 
 #, python-format
+msgid "%(last)s,%(title)s %(first)s (%(sex)s)"
+msgstr ""
+
+#, python-format
 msgid "%(last)s,%(title)s %(first)s%(nick)s"
 msgstr ""
 
+#, python-format
+msgid "%(last)s,%(title)s %(first)s"
+msgstr ""
+
 msgid "Cannot merge active patient into another patient."
 msgstr ""
 
@@ -7176,9 +7578,6 @@ msgstr ""
 msgid "merged"
 msgstr ""
 
-msgid "preferred name/call name/..."
-msgstr ""
-
 msgid "invalid age: DOB in the future"
 msgstr ""
 
@@ -7191,9 +7590,6 @@ msgstr ""
 msgid "Mrs"
 msgstr ""
 
-msgid "unknown"
-msgstr ""
-
 msgid "empty status"
 msgstr ""
 
@@ -7531,7 +7927,7 @@ msgid " Part %s: %s %s(%s Bytes)\n"
 msgstr ""
 
 #, fuzzy, python-format
-msgid " Filename: %s\n"
+msgid " Filename: %s%s\n"
 msgstr "Пацијент: %s (%s), Бр: %s\n"
 
 #, fuzzy
@@ -7546,19 +7942,26 @@ msgstr "део"
 msgid "%s parts"
 msgstr "део"
 
-#, python-format
-msgid ""
+#, fuzzy, python-format
+msgid "%s of %s"
+msgstr " %s докумената\n"
+
+#, python-format
+msgid ""
 "%s (%s)   #%s\n"
-"\n"
 " Created: %s\n"
 " Episode: %s\n"
-"%s%s%s"
+"%s%s%s%s"
 msgstr ""
 
 #, python-format
 msgid " External reference: %s\n"
 msgstr ""
 
+#, fuzzy, python-format
+msgid " Organization: %%s @ %s\n"
+msgstr "Број боравака у болници: %s"
+
 msgid "Cannot run [arriba] !"
 msgstr ""
 
@@ -7907,25 +8310,9 @@ msgid "External care:"
 msgstr ""
 
 #, fuzzy, python-format
-msgid ""
-"health issue: %s%s%s\n"
-"\n"
+msgid "Health issue: %s%s%s"
 msgstr "здравствени проблем: %s"
 
-msgid ""
-"\n"
-"current values:\n"
-msgstr ""
-
-msgid "no previous versions of this record"
-msgstr ""
-
-msgid ""
-"\n"
-"all values with <audit_action>, <audit_when>, <audit_by> fields (current "
-"value first):\n"
-msgstr ""
-
 msgid "Unattributed episodes"
 msgstr ""
 
@@ -7947,9 +8334,6 @@ msgstr ""
 msgid "finished"
 msgstr "завршено"
 
-msgid "Health issue"
-msgstr "Здравствени проблем"
-
 msgid "none associated"
 msgstr ""
 
@@ -7985,9 +8369,7 @@ msgid "Measurements and Results:"
 msgstr ""
 
 #, fuzzy, python-format
-msgid ""
-"episode: %s%s%s\n"
-"\n"
+msgid "Episode: %s%s%s"
 msgstr "епизода: %s"
 
 #, python-format
@@ -8016,9 +8398,7 @@ msgid "%s other episodes touched upon during this encounter:"
 msgstr ""
 
 #, fuzzy, python-format
-msgid ""
-"encounter: %s%s%s\n"
-"\n"
+msgid "Encounter: %s%s%s"
 msgstr "Пацијент: %s (%s), Бр: %s\n"
 
 msgid " (ongoing)"
@@ -8040,10 +8420,6 @@ msgstr ""
 msgid "Procedures"
 msgstr ""
 
-#, fuzzy
-msgid "Substances"
-msgstr "Супстанца"
-
 msgid "Life events"
 msgstr ""
 
@@ -8067,9 +8443,6 @@ msgstr ""
 msgid "Cannot display timeline."
 msgstr "Направи лажне вакцине"
 
-msgid "Vaccination"
-msgstr "Вакцинација"
-
 msgid "Lab result"
 msgstr "Лабораторијски извештај"
 
@@ -8138,9 +8511,6 @@ msgstr ""
 msgid "Exported: %s\n"
 msgstr ""
 
-msgid "emr-journal"
-msgstr ""
-
 msgid "Chronological EMR Journal\n"
 msgstr ""
 
@@ -8420,25 +8790,145 @@ msgstr ""
 msgid "Select one or more codes that apply."
 msgstr ""
 
-msgid "Cannot move progress notes. No active patient."
+msgid "Select the narrative you are interested in ..."
 msgstr ""
 
-msgid "Moving progress notes between encounters ..."
+msgid "when"
+msgstr ""
+
+msgid "who"
+msgstr ""
+
+msgid "entry"
+msgstr ""
+
+msgid "There is no narrative for this episode in this encounter."
+msgstr ""
+
+msgid "Must select episode to move narrative to first."
+msgstr ""
+
+msgid "Last"
+msgstr ""
+
+msgid "In health issue"
+msgstr ""
+
+msgid "Most recent notes on selected problem"
+msgstr ""
+
+#, python-format
+msgid "%s (active+potential) problems"
+msgstr ""
+
+#, python-format
+msgid "%s active problems"
+msgstr ""
+
+msgid "Current encounter:"
+msgstr ""
+
+msgid "Cumulative summary"
 msgstr ""
 
+#, fuzzy, python-format
+msgid "Most recent info on %s%s%s"
+msgstr " Најскорији: %s - %s"
+
+#, python-format
 msgid ""
+"Cannot open progress note editor for\n"
 "\n"
-" Select the progress notes to move from the list !\n"
+"[%s].\n"
 "\n"
 msgstr ""
 
-msgid "when"
+msgid "opening progress note editor"
 msgstr ""
 
-msgid "who"
+msgid "Cannot save all editors. Some were kept open."
 msgstr ""
 
-msgid "entry"
+msgid "new problem"
+msgstr ""
+
+msgid ""
+"Are you sure you really want to\n"
+"discard this progress note ?\n"
+msgstr ""
+
+msgid "Discarding progress note"
+msgstr ""
+
+msgid "There are unsaved progress notes !\n"
+msgstr ""
+
+msgid "Unsaved progress notes"
+msgstr ""
+
+msgid "Problem list"
+msgstr ""
+
+#, fuzzy
+msgid "Saving SOAP note"
+msgstr "Чување вакцине"
+
+msgid "Do you want to save the SOAP note ?"
+msgstr ""
+
+#, python-format
+msgid "&Filter by problem %s%s%s"
+msgstr ""
+
+msgid "Cannot save SimpleNotes SOAP note."
+msgstr ""
+
+#, fuzzy, python-format
+msgid "Progress note: %s%s"
+msgstr "Број извршених процедура: %s"
+
+msgid "Please enter a name for the new problem:"
+msgstr ""
+
+msgid "Adding a problem"
+msgstr ""
+
+msgid "Cannot delete problem. There is still clinical data recorded for it."
+msgstr ""
+
+#, python-format
+msgid "GNUmed: configuring [%s] (%s plugins)"
+msgstr ""
+
+msgid "loading list of plugins                               "
+msgstr ""
+
+msgid "failed"
+msgstr ""
+
+msgid "success"
+msgstr ""
+
+#, python-format
+msgid ""
+"previous: %s (%s)\n"
+"current (%s/%s): %s"
+msgstr ""
+
+#, python-format
+msgid "Cannot switch to [%s]: no patient selected"
+msgstr ""
+
+msgid "Cannot move progress notes. No active patient."
+msgstr ""
+
+msgid "Moving progress notes between encounters ..."
+msgstr ""
+
+msgid ""
+"\n"
+" Select the progress notes to move from the list !\n"
+"\n"
 msgstr ""
 
 msgid "Cannot edit progress notes. No active patient."
@@ -8641,769 +9131,588 @@ msgid ""
 " Now, mark the entries you want to include in your report.\n"
 msgstr ""
 
-msgid "Select the narrative you are interested in ..."
-msgstr ""
-
-msgid "There is no narrative for this episode in this encounter."
-msgstr ""
-
-msgid "Must select episode to move narrative to first."
+msgid "Pick a date ..."
 msgstr ""
 
-msgid "Last"
+msgid "<ALT-C/K>: pick from (c/k)alendar"
 msgstr ""
 
-msgid "In health issue"
+msgid "Cannot interpret input as timestamp."
 msgstr ""
 
-msgid "Most recent notes on selected problem"
-msgstr ""
+msgid "No vaccines were chosen"
+msgstr "Није ижабрана ни једна вакцина"
 
 #, python-format
-msgid "%s (active+potential) problems"
+msgid "Combination of indications , %s , not found in any vaccine"
 msgstr ""
 
-#, python-format
-msgid "%s active problems"
+msgid "Sequence"
 msgstr ""
 
-msgid "Current encounter:"
+msgid "Batch"
 msgstr ""
 
-msgid "Cumulative summary"
+msgid "Vaccinator"
 msgstr ""
 
-#, fuzzy, python-format
-msgid "Most recent info on %s%s%s"
-msgstr " Најскорији: %s - %s"
-
-#, python-format
 msgid ""
-"Cannot open progress note editor for\n"
-"\n"
-"[%s].\n"
-"\n"
+"Vaccinations by Recommender (X = patient on regime, O = patient not on "
+"regime) "
 msgstr ""
 
-msgid "opening progress note editor"
+msgid "enrolled regime vaccinations not yet given"
 msgstr ""
 
-msgid "Cannot save all editors. Some were kept open."
+msgid "Proceed with "
 msgstr ""
 
-msgid "new problem"
+#, python-format
+msgid "Failed to enrol patient in %s"
 msgstr ""
 
-msgid ""
-"Are you sure you really want to\n"
-"discard this progress note ?\n"
+#, python-format
+msgid "Failed to  delist patient from %s"
 msgstr ""
 
-msgid "Discarding progress note"
+msgid "Missing GNUmed module"
 msgstr ""
 
-msgid "There are unsaved progress notes !\n"
+#, python-format
+msgid ""
+"GNUmed detected that parts of it are not\n"
+"properly installed. The following message\n"
+"names the missing part:\n"
+"\n"
+" \"%s\"\n"
+"\n"
+"Please make sure to get the missing\n"
+"parts installed. Otherwise some of the\n"
+"functionality will not be accessible."
 msgstr ""
 
-msgid "Unsaved progress notes"
-msgstr ""
+#, fuzzy, python-format
+msgid ""
+"\n"
+" Source: %s"
+msgstr "Пацијент: %s (%s), Бр: %s\n"
+
+#, fuzzy, python-format
+msgid ""
+"\n"
+" Code: %s"
+msgstr "Последњи датум"
 
 #, python-format
-msgid "Synopsis (%s)"
+msgid ""
+"\n"
+" Details (first 250 characters):\n"
+"%s\n"
+"%s\n"
+"%s"
 msgstr ""
 
-msgid ""
-"Enter a short working name for this new problem\n"
-"(which will become a new, unassociated episode):\n"
+msgid "Access violation"
 msgstr ""
 
 #, python-format
 msgid ""
-"Enter a short working name for this new\n"
-"episode under the existing health issue\n"
+"You do not have access to this part of GNUmed.\n"
 "\n"
-"\"%s\":\n"
+"%s"
 msgstr ""
 
-msgid "Creating problem (episode) to save notelet under ..."
+msgid "Lost connection"
 msgstr ""
 
-msgid "Cannot save a new problem without a name."
+msgid ""
+"Since you were last working in GNUmed,\n"
+"your database connection timed out.\n"
+"\n"
+"This GNUmed session is now expired.\n"
+"\n"
+"You will have to close this client and\n"
+"restart a new GNUmed session."
 msgstr ""
 
-msgid "saving progress note"
+msgid ""
+"Please enter a short note on what you\n"
+"were about to do in GNUmed:"
+msgstr ""
+
+msgid "Sending bug report"
+msgstr ""
+
+msgid ""
+"Edit the list of email addresses to send the\n"
+"bug report to (separate addresses by spaces).\n"
+"\n"
+"Note that <gnumed-bugs at gnu.org> refers to\n"
+"the public (!) GNUmed bugs mailing list."
 msgstr ""
 
 #, python-format
 msgid ""
-"The new episode:\n"
+"Your bug report will be sent to:\n"
 "\n"
-" \"%s\"\n"
+"%s\n"
 "\n"
-"will remain unassociated despite the editor\n"
-"having been invoked from the health issue:\n"
+"Make sure you have reviewed the log file for potentially\n"
+"sensitive information before sending out the bug report.\n"
 "\n"
-" \"%s\""
+"Note that emailing the report may take a while depending\n"
+"on the speed of your internet connection.\n"
 msgstr ""
 
-msgid "You need to actually set an editor."
+msgid "Yes, send the bug report."
 msgstr ""
 
-#, python-format
-msgid "The command [%s] is not found."
+msgid "No, do not send the bug report."
+msgstr ""
+
+msgid "include log file in bug report"
 msgstr ""
 
-#, python-format
 msgid ""
-"Enter the shell command with which to start\n"
-"the image editor for visual progress notes.\n"
+"The database you are connected to is marked as\n"
+"\"in-production with controlled access\".\n"
 "\n"
-"Any \"%(img)s\" included with the arguments\n"
-"will be replaced by the file name of the\n"
-"note template."
+"You indicated that you want to include the log\n"
+"file in your bug report. While this is often\n"
+"useful for debugging the log file might contain\n"
+"bits of patient data which must not be sent out\n"
+"without de-identification.\n"
+"\n"
+"Please confirm that you want to include the log !"
 msgstr ""
 
-msgid "Choose file to use as template for new visual progress note"
+msgid "<not supplied>"
 msgstr ""
 
-msgid "Visual progress note source"
+msgid "Bug report has been emailed."
 msgstr ""
 
-msgid "From which source do you want to pick the image template ?"
+msgid "Bug report COULD NOT be emailed."
 msgstr ""
 
-msgid "Database"
+msgid "Underweight"
 msgstr ""
 
-msgid "List of templates in the database."
+msgid "63< Normal >79"
 msgstr ""
 
-msgid "Files in the filesystem."
+msgid "63 - Normal - 79"
 msgstr ""
 
-msgid "Device"
+msgid "Overweight"
 msgstr ""
 
-msgid "Image capture devices (scanners, cameras, etc)"
+msgid "Obese"
 msgstr ""
 
-#, python-format
-msgid "Cannot export visual progress note template for [%s]."
+msgid "Current height/mass"
 msgstr ""
 
-msgid "Cannot export visual progress note to file."
+msgid "Height (cm)"
 msgstr ""
 
-msgid "Editor for visual progress note not configured."
+msgid "Mass (kg)"
 msgstr ""
 
-#, python-format
-msgid ""
-"There was a problem with running the editor\n"
-"for visual progress notes.\n"
-"\n"
-" [%s]\n"
-"\n"
+msgid "Adjusted Values"
 msgstr ""
 
-msgid "Editing visual progress note"
+msgid "Goal mass"
 msgstr ""
 
-#, python-format
-msgid ""
-"There was a problem reading the visual\n"
-"progress note from the file:\n"
-"\n"
-" [%s]\n"
-"\n"
+msgid "kg to lose"
 msgstr ""
 
-msgid "Saving visual progress note"
+msgid "BMI Calculator"
 msgstr ""
 
-msgid ""
-"You either created a visual progress note from a template\n"
-"in the database (rather than from a file on disk) or you\n"
-"edited an existing visual progress note.\n"
-"\n"
-"The template/original was not modified at all, however.\n"
-"\n"
-"Do you still want to save the unmodified image as a\n"
-"visual progress note into the EMR of the patient ?\n"
+msgid "&Reset"
 msgstr ""
 
-msgid "visual progress notes"
+msgid "Select a healthcare provider."
 msgstr ""
 
-#, python-format
-msgid "Created: %s"
+msgid "Public (no clinical or demographic access)"
 msgstr ""
 
-msgid "Problem list"
+msgid "Staff (demographic access only)"
 msgstr ""
 
-#, fuzzy
-msgid "Saving SOAP note"
-msgstr "Чување вакцине"
+msgid "staff (clerical)"
+msgstr ""
 
-msgid "Do you want to save the SOAP note ?"
+msgid "full clinical access"
 msgstr ""
 
-#, python-format
-msgid "&Filter by problem %s%s%s"
+msgid "DB account"
 msgstr ""
 
-msgid "Cannot save SimpleNotes SOAP note."
+msgid "can login"
 msgstr ""
 
-#, fuzzy, python-format
-msgid "Progress note: %s%s"
-msgstr "Број извршених процедура: %s"
+msgid "can not login"
+msgstr ""
 
-msgid "Please enter a name for the new problem:"
+msgid "Activating GNUmed user."
 msgstr ""
 
-msgid "Adding a problem"
+msgid "Deactivating GNUmed user."
 msgstr ""
 
-msgid "Cannot delete problem. There is still clinical data recorded for it."
+msgid "Removing GNUmed user."
 msgstr ""
 
-#, python-format
-msgid "GNUmed: configuring [%s] (%s plugins)"
+msgid "Removing GNUmed user"
 msgstr ""
 
-msgid "loading list of plugins                               "
+msgid "Modifying GNUmed user."
 msgstr ""
 
-msgid "failed"
+msgid "Failed to save changes to GNUmed database user."
 msgstr ""
 
-msgid "success"
+msgid "Modifying GNUmed user"
 msgstr ""
 
 #, python-format
-msgid ""
-"previous: %s (%s)\n"
-"current (%s/%s): %s"
+msgid "Failed to set role [%s] for GNUmed database user."
 msgstr ""
 
 #, python-format
-msgid "Cannot switch to [%s]: no patient selected"
+msgid ""
+"\n"
+"  %s \"%s\" %s\n"
+"  born: %s"
 msgstr ""
 
-msgid "Pick a date ..."
+msgid ""
+"Password entries do not match. Please type in the passwords again to rule "
+"out typos."
 msgstr ""
 
-msgid "<ALT-C/K>: pick from (c/k)alendar"
+msgid "Adding GNUmed user"
 msgstr ""
 
-msgid "Cannot interpret input as timestamp."
+msgid ""
+"Are you positively sure you want to create\n"
+"a user with an empty password ?\n"
+"\n"
+"Think about the record access implications !"
 msgstr ""
 
-msgid "No vaccines were chosen"
-msgstr "Није ижабрана ни једна вакцина"
+msgid "Enlisting person as user."
+msgstr ""
 
-#, python-format
-msgid "Combination of indications , %s , not found in any vaccine"
+msgid "Encrypt"
 msgstr ""
 
-msgid "Sequence"
+msgid "Decrypt"
 msgstr ""
 
-msgid "Batch"
+msgid "Set pass phrase"
 msgstr ""
 
-msgid "Vaccinator"
+msgid "This is not correctly encrypted text!"
 msgstr ""
 
-msgid ""
-"Vaccinations by Recommender (X = patient on regime, O = patient not on "
-"regime) "
+msgid "Please enter your pass phrase:"
 msgstr ""
 
-msgid "enrolled regime vaccinations not yet given"
+msgid "Pass phrase expired"
 msgstr ""
 
-msgid "Proceed with "
+msgid ""
+"\n"
+"Conditions preventable by vaccination as currently known to GNUmed.\n"
 msgstr ""
 
-#, python-format
-msgid "Failed to enrol patient in %s"
+msgid "Showing vaccination preventable conditions."
 msgstr ""
 
-#, python-format
-msgid "Failed to  delist patient from %s"
+msgid "ATCs: single-condition vaccines"
 msgstr ""
 
-msgid "Missing GNUmed module"
+msgid "ATCs: multi-condition vaccines"
 msgstr ""
 
-#, python-format
-msgid ""
-"GNUmed detected that parts of it are not\n"
-"properly installed. The following message\n"
-"names the missing part:\n"
-"\n"
-" \"%s\"\n"
-"\n"
-"Please make sure to get the missing\n"
-"parts installed. Otherwise some of the\n"
-"functionality will not be accessible."
+msgid "Pick the relevant indications."
 msgstr ""
 
-#, fuzzy, python-format
-msgid ""
-"\n"
-" Source: %s"
-msgstr "Пацијент: %s (%s), Бр: %s\n"
+#, fuzzy
+msgid "Known indications"
+msgstr "Приказивање вакцинација."
 
-#, fuzzy, python-format
-msgid ""
-"\n"
-" Code: %s"
-msgstr "Последњи датум"
+msgid "Adding new vaccine"
+msgstr "Додавање нове вакцине"
+
+msgid "Editing vaccine"
+msgstr "Уређивање вакцине"
 
 #, python-format
 msgid ""
+"Cannot delete vaccine\n"
 "\n"
-" Details (first 250 characters):\n"
-"%s\n"
-"%s\n"
-"%s"
+" %s - %s (#%s)\n"
+"\n"
+"It is probably documented in a vaccination."
 msgstr ""
+"Не могу да обришем вакцину\n"
+"\n"
+" %s - %s (#%s)\n"
+"\n"
+"Вероватно је документована у вакцинацији."
 
-msgid "Access violation"
+msgid "Deleting vaccine"
+msgstr "Брисање вакцине"
+
+msgid "fake"
 msgstr ""
 
-#, python-format
 msgid ""
-"You do not have access to this part of GNUmed.\n"
 "\n"
-"%s"
-msgstr ""
-
-msgid "Lost connection"
+"The vaccines currently known to GNUmed.\n"
 msgstr ""
-
-msgid ""
-"Since you were last working in GNUmed,\n"
-"your database connection timed out.\n"
-"\n"
-"This GNUmed session is now expired.\n"
 "\n"
-"You will have to close this client and\n"
-"restart a new GNUmed session."
-msgstr ""
+"Тренутно познате вакцине ГНУмед-у.\n"
 
-msgid ""
-"Please enter a short note on what you\n"
-"were about to do in GNUmed:"
-msgstr ""
+msgid "Showing vaccines."
+msgstr "Приказивање вакцина."
 
-msgid "Sending bug report"
+msgid "Enter or select the batch/lot number of the vaccine used."
 msgstr ""
 
-msgid ""
-"Edit the list of email addresses to send the\n"
-"bug report to (separate addresses by spaces).\n"
-"\n"
-"Note that <gnumed-bugs at gnu.org> refers to\n"
-"the public (!) GNUmed bugs mailing list."
-msgstr ""
+msgid "Saving vaccine"
+msgstr "Чување вакцине"
 
 #, python-format
 msgid ""
-"Your bug report will be sent to:\n"
+"This vaccine is already in use:\n"
 "\n"
-"%s\n"
+" \"%s\"\n"
+" (%s)\n"
 "\n"
-"Make sure you have reviewed the log file for potentially\n"
-"sensitive information before sending out the bug report.\n"
+"Are you absolutely positively sure that\n"
+"you really want to edit this vaccine ?\n"
 "\n"
-"Note that emailing the report may take a while depending\n"
-"on the speed of your internet connection.\n"
+"This will change the vaccine name and/or target\n"
+"conditions in each patient this vaccine was\n"
+"used in to document a vaccination with.\n"
 msgstr ""
 
-msgid "Yes, send the bug report."
+msgid "You must select at least one indication."
 msgstr ""
 
-msgid "No, do not send the bug report."
+msgid "Pick the diseases this vaccine protects against."
 msgstr ""
 
-msgid "include log file in bug report"
-msgstr ""
+#, fuzzy
+msgid "This vaccine"
+msgstr "вакцина"
 
-msgid ""
-"The database you are connected to is marked as\n"
-"\"in-production with controlled access\".\n"
-"\n"
-"You indicated that you want to include the log\n"
-"file in your bug report. While this is often\n"
-"useful for debugging the log file might contain\n"
-"bits of patient data which must not be sent out\n"
-"without de-identification.\n"
-"\n"
-"Please confirm that you want to include the log !"
-msgstr ""
+msgid "Adding new vaccinations"
+msgstr "Додавање нове вакцинације"
 
-msgid "<not supplied>"
-msgstr ""
+msgid "Editing vaccination"
+msgstr "Уређивање вакцинације"
 
-msgid "Bug report has been emailed."
-msgstr ""
+#, fuzzy
+msgid "vaccination recall"
+msgstr "Вакцинација"
 
-msgid "Bug report COULD NOT be emailed."
-msgstr ""
+#, fuzzy, python-format
+msgid "vaccination recall (%s)"
+msgstr "&Вакцинација(е)"
 
-msgid "Underweight"
-msgstr ""
+#, fuzzy, python-format
+msgid ""
+"Existing vaccination:\n"
+"\n"
+"%s"
+msgstr "Уређивање вакцинације"
 
-msgid "63< Normal >79"
+msgid ""
+"\n"
+"Complete vaccination history for this patient.\n"
 msgstr ""
+"\n"
+"Комплетна историја вакцинације овог пацијента.\n"
 
-msgid "63 - Normal - 79"
-msgstr ""
+msgid "Showing vaccinations."
+msgstr "Приказивање вакцинација."
 
-msgid "Overweight"
+msgid "Intended to protect from"
 msgstr ""
 
-msgid "Obese"
-msgstr ""
+#, fuzzy
+msgid "Print vaccinations or recalls."
+msgstr "Вакцинација"
 
-msgid "Current height/mass"
+msgid "Recall"
 msgstr ""
 
-msgid "Height (cm)"
-msgstr ""
+#, fuzzy
+msgid "Add a recall for a vaccination"
+msgstr "Додавање нове вакцинације"
 
-msgid "Mass (kg)"
+msgid "Vx schedules"
 msgstr ""
 
-msgid "Adjusted Values"
+msgid "Open a browser showing vaccination schedules."
 msgstr ""
 
-msgid "Goal mass"
+msgid "prevention"
 msgstr ""
 
-msgid "kg to lose"
-msgstr ""
+#, fuzzy
+msgid "Saving vaccination"
+msgstr "Приказивање вакцинација."
 
-msgid "BMI Calculator"
+msgid "Pick the diseases this vaccination was given against."
 msgstr ""
 
-msgid "&Reset"
+msgid "  IMMUNISATIONS  "
 msgstr ""
 
-msgid "Select a healthcare provider."
+msgid "Indications"
 msgstr ""
 
-msgid "Public (no clinical or demographic access)"
+msgid "Active Schedules"
 msgstr ""
 
-msgid "Staff (demographic access only)"
+msgid "Missing Immunisations"
 msgstr ""
 
-msgid "staff (clerical)"
+msgid "  Alerts  "
 msgstr ""
 
-msgid "full clinical access"
-msgstr ""
+msgid "ERROR: cannot retrieve active vaccination schedules"
+msgstr "ГРЕШКА: не могу да активни распоред вакцинација"
 
-msgid "DB account"
+msgid "no active vaccination schedules"
+msgstr "нема активног распореда вакцинација"
+
+#, python-format
+msgid "%s for %s (%s shots): %s"
 msgstr ""
 
-msgid "can login"
+msgid "ERROR: cannot retrieve due/overdue vaccinations"
 msgstr ""
 
-msgid "can not login"
+#, python-format
+msgid "%.0d weeks left: shot %s for %s in %s, due %s (%s)"
 msgstr ""
 
-msgid "Activating GNUmed user."
+#, python-format
+msgid "overdue %.0dyrs %.0dwks: shot %s for %s in schedule \"%s\" (%s)"
 msgstr ""
 
-msgid "Deactivating GNUmed user."
+#, python-format
+msgid "due now: booster for %s in schedule \"%s\" (%s)"
 msgstr ""
 
-msgid "Removing GNUmed user."
+#, python-format
+msgid "Synopsis (%s)"
 msgstr ""
 
-msgid "Removing GNUmed user"
+msgid ""
+"Enter a short working name for this new problem\n"
+"(which will become a new, unassociated episode):\n"
 msgstr ""
 
-msgid "Modifying GNUmed user."
+#, python-format
+msgid ""
+"Enter a short working name for this new\n"
+"episode under the existing health issue\n"
+"\n"
+"\"%s\":\n"
 msgstr ""
 
-msgid "Failed to save changes to GNUmed database user."
+msgid "Creating problem (episode) to save notelet under ..."
 msgstr ""
 
-msgid "Modifying GNUmed user"
+msgid "Cannot save a new problem without a name."
 msgstr ""
 
-#, python-format
-msgid "Failed to set role [%s] for GNUmed database user."
+msgid "saving progress note"
 msgstr ""
 
 #, python-format
 msgid ""
+"The new episode:\n"
 "\n"
-"  %s \"%s\" %s\n"
-"  born: %s"
+" \"%s\"\n"
+"\n"
+"will remain unassociated despite the editor\n"
+"having been invoked from the health issue:\n"
+"\n"
+" \"%s\""
 msgstr ""
 
-msgid ""
-"Password entries do not match. Please type in the passwords again to rule "
-"out typos."
-msgstr ""
+#, fuzzy
+msgid "Adding substance abuse"
+msgstr "Супстанца"
 
-msgid "Adding GNUmed user"
-msgstr ""
+#, fuzzy
+msgid "Editing substance abuse"
+msgstr "Уређивање вакцине"
 
-msgid ""
-"Are you positively sure you want to create\n"
-"a user with an empty password ?\n"
-"\n"
-"Think about the record access implications !"
+msgid "Substances abused by the patient:"
 msgstr ""
 
-msgid "Enlisting person as user."
-msgstr ""
+#, fuzzy
+msgid "Showing abused substances."
+msgstr "Приказивање вакцина."
 
-msgid "Encrypt"
+msgid "Intake"
 msgstr ""
 
-msgid "Decrypt"
+msgid "nicotine"
 msgstr ""
 
-msgid "Set pass phrase"
-msgstr ""
+#, fuzzy
+msgid "unit"
+msgstr "једиице"
 
-msgid "This is not correctly encrypted text!"
-msgstr ""
+#, fuzzy, python-format
+msgid "Latest: %s ago (%s %s%s%s%s)"
+msgstr "  ваше време: %s - %s  (@%s = %s%s)\n"
 
-msgid "Please enter your pass phrase:"
-msgstr ""
+#, fuzzy, python-format
+msgid "%s %s%s%s (%s ago, %s)"
+msgstr "Документа: %s"
 
-msgid "Pass phrase expired"
-msgstr ""
+#, fuzzy, python-format
+msgid "overdue %s: %s"
+msgstr "Пацијент: %s (%s), Бр: %s\n"
 
-msgid ""
-"\n"
-"Conditions preventable by vaccination as currently known to GNUmed.\n"
-msgstr ""
+#, fuzzy, python-format
+msgid "due in %s%s"
+msgstr "Пацијент: %s (%s), Бр: %s\n"
 
-msgid "Showing vaccination preventable conditions."
+msgid "suppr'd:"
 msgstr ""
 
-msgid "ATCs: single-condition vaccines"
-msgstr ""
+#, fuzzy
+msgid "Suppressed hints:\n"
+msgstr "Пацијент: %s (%s), Бр: %s\n"
 
-msgid "ATCs: multi-condition vaccines"
+msgid ""
+"Do you really want to\n"
+"delete this inbox message ?"
 msgstr ""
 
-msgid "Pick the relevant indications."
-msgstr ""
+#, fuzzy
+msgid "Deleting inbox message"
+msgstr "генеричка порука за обавештење"
 
 #, fuzzy
-msgid "Known indications"
-msgstr "Приказивање вакцинација."
-
-msgid "Adding new vaccine"
-msgstr "Додавање нове вакцине"
-
-msgid "Editing vaccine"
-msgstr "Уређивање вакцине"
-
-#, python-format
-msgid ""
-"Cannot delete vaccine\n"
-"\n"
-" %s - %s (#%s)\n"
-"\n"
-"It is probably documented in a vaccination."
-msgstr ""
-"Не могу да обришем вакцину\n"
-"\n"
-" %s - %s (#%s)\n"
-"\n"
-"Вероватно је документована у вакцинацији."
-
-msgid "Deleting vaccine"
-msgstr "Брисање вакцине"
-
-msgid "fake"
-msgstr ""
-
-msgid ""
-"\n"
-"The vaccines currently known to GNUmed.\n"
-msgstr ""
-"\n"
-"Тренутно познате вакцине ГНУмед-у.\n"
-
-msgid "Showing vaccines."
-msgstr "Приказивање вакцина."
-
-msgid "Enter or select the batch/lot number of the vaccine used."
-msgstr ""
-
-msgid "Saving vaccine"
-msgstr "Чување вакцине"
-
-#, python-format
-msgid ""
-"This vaccine is already in use:\n"
-"\n"
-" \"%s\"\n"
-" (%s)\n"
-"\n"
-"Are you absolutely positively sure that\n"
-"you really want to edit this vaccine ?\n"
-"\n"
-"This will change the vaccine name and/or target\n"
-"conditions in each patient this vaccine was\n"
-"used in to document a vaccination with.\n"
-msgstr ""
-
-msgid "You must select at least one indication."
-msgstr ""
-
-msgid "Pick the diseases this vaccine protects against."
-msgstr ""
-
-#, fuzzy
-msgid "This vaccine"
-msgstr "вакцина"
-
-msgid "Adding new vaccinations"
-msgstr "Додавање нове вакцинације"
-
-msgid "Editing vaccination"
-msgstr "Уређивање вакцинације"
-
-#, fuzzy
-msgid "vaccination recall"
-msgstr "Вакцинација"
-
-#, fuzzy, python-format
-msgid "vaccination recall (%s)"
-msgstr "&Вакцинација(е)"
-
-#, fuzzy, python-format
-msgid ""
-"Existing vaccination:\n"
-"\n"
-"%s"
-msgstr "Уређивање вакцинације"
-
-msgid ""
-"\n"
-"Complete vaccination history for this patient.\n"
-msgstr ""
-"\n"
-"Комплетна историја вакцинације овог пацијента.\n"
-
-msgid "Showing vaccinations."
-msgstr "Приказивање вакцинација."
-
-msgid "Intended to protect from"
-msgstr ""
-
-#, fuzzy
-msgid "Print vaccinations or recalls."
-msgstr "Вакцинација"
-
-msgid "Recall"
-msgstr ""
-
-#, fuzzy
-msgid "Add a recall for a vaccination"
-msgstr "Додавање нове вакцинације"
-
-msgid "Vx schedules"
-msgstr ""
-
-msgid "Open a browser showing vaccination schedules."
-msgstr ""
-
-msgid "prevention"
-msgstr ""
-
-#, fuzzy
-msgid "Saving vaccination"
-msgstr "Приказивање вакцинација."
-
-msgid "Pick the diseases this vaccination was given against."
-msgstr ""
-
-msgid "  IMMUNISATIONS  "
-msgstr ""
-
-msgid "Indications"
-msgstr ""
-
-msgid "Active Schedules"
-msgstr ""
-
-msgid "Missing Immunisations"
-msgstr ""
-
-msgid "  Alerts  "
-msgstr ""
-
-msgid "ERROR: cannot retrieve active vaccination schedules"
-msgstr "ГРЕШКА: не могу да активни распоред вакцинација"
-
-msgid "no active vaccination schedules"
-msgstr "нема активног распореда вакцинација"
-
-#, python-format
-msgid "%s for %s (%s shots): %s"
-msgstr ""
-
-msgid "ERROR: cannot retrieve due/overdue vaccinations"
-msgstr ""
-
-#, python-format
-msgid "%.0d weeks left: shot %s for %s in %s, due %s (%s)"
-msgstr ""
-
-#, python-format
-msgid "overdue %.0dyrs %.0dwks: shot %s for %s in schedule \"%s\" (%s)"
-msgstr ""
-
-#, python-format
-msgid "due now: booster for %s in schedule \"%s\" (%s)"
-msgstr ""
-
-#, fuzzy, python-format
-msgid "Latest: %s ago (%s %s %s %s%s)"
-msgstr "  ваше време: %s - %s  (@%s = %s%s)\n"
-
-#, python-format
-msgid "%s %s %s %s (%s ago, %s)"
-msgstr ""
-
-#, fuzzy, python-format
-msgid "overdue %s: %s"
-msgstr "Пацијент: %s (%s), Бр: %s\n"
-
-#, fuzzy, python-format
-msgid "due in %s%s"
-msgstr "Пацијент: %s (%s), Бр: %s\n"
-
-msgid ""
-"Do you really want to\n"
-"delete this inbox message ?"
-msgstr ""
-
-#, fuzzy
-msgid "Deleting inbox message"
-msgstr "генеричка порука за обавештење"
-
-#, fuzzy
-msgid "Export area: 1 item"
-msgstr "део"
+msgid "Export area: 1 item"
+msgstr "део"
 
 #, fuzzy, python-format
 msgid "Export area: %s items"
@@ -9446,9 +9755,16 @@ msgid ""
 msgstr ""
 
 #, fuzzy, python-format
-msgid "%s Vacc: %s"
+msgid "%s Vacc: %s (latest of %s)"
 msgstr "Пацијент: %s (%s), Бр: %s\n"
 
+#, fuzzy, python-format
+msgid "Hx of addiction: %s"
+msgstr "Број боравака у болници: %s"
+
+msgid "active substance abuse"
+msgstr ""
+
 #, python-format
 msgid "%s %s %s%s"
 msgstr ""
@@ -9624,61 +9940,158 @@ msgid ""
 "You will have to add it via the Demographics plugin.\n"
 msgstr ""
 
-msgid "You must select a value from the picklist or type an exact match."
+msgid "You need to actually set an editor."
+msgstr ""
+
+#, python-format
+msgid "The command [%s] is not found."
 msgstr ""
 
 #, python-format
 msgid ""
-"The content is invalid. It must match the regular expression: [%%s]. <%s>"
+"Enter the shell command with which to start\n"
+"the image editor for visual progress notes.\n"
+"\n"
+"Any \"%(img)s\" included with the arguments\n"
+"will be replaced by the file name of the\n"
+"note template."
 msgstr ""
 
-msgid "Latin"
+msgid "Choose file to use as template for new visual progress note"
 msgstr ""
 
-msgid "Greek"
+msgid "Visual progress note source"
 msgstr ""
 
-msgid "Cyrillic"
+msgid "From which source do you want to pick the image template ?"
 msgstr ""
 
-msgid "Four Es"
+msgid "Database"
 msgstr ""
 
-msgid "Symbol"
+msgid "List of templates in the database."
 msgstr ""
 
-msgid "Snellen Chart"
+msgid "Files in the filesystem."
 msgstr ""
 
-msgid "Snellen Chart Setup"
+msgid "Device"
 msgstr ""
 
-msgid "Screen Height (cm): "
+msgid "Image capture devices (scanners, cameras, etc)"
 msgstr ""
 
-msgid "Screen Width (cm): "
+#, python-format
+msgid "Cannot export visual progress note template for [%s]."
 msgstr ""
 
-msgid "Alphabet: "
+msgid "Cannot export visual progress note to file."
 msgstr ""
 
-msgid "Mirror"
+msgid "Editor for visual progress note not configured."
 msgstr ""
 
+#, python-format
 msgid ""
-"Control Snellen chart using mouse:\n"
-"left-click increases text\n"
-"right-click decreases text\n"
-"double-click ends"
+"There was a problem with running the editor\n"
+"for visual progress notes.\n"
+"\n"
+" [%s]\n"
+"\n"
 msgstr ""
 
-msgid " OK "
+msgid "Editing visual progress note"
 msgstr ""
 
-msgid " Cancel "
+#, python-format
+msgid ""
+"There was a problem reading the visual\n"
+"progress note from the file:\n"
+"\n"
+" [%s]\n"
+"\n"
 msgstr ""
 
-#, python-format
+msgid "Saving visual progress note"
+msgstr ""
+
+msgid ""
+"You either created a visual progress note from a template\n"
+"in the database (rather than from a file on disk) or you\n"
+"edited an existing visual progress note.\n"
+"\n"
+"The template/original was not modified at all, however.\n"
+"\n"
+"Do you still want to save the unmodified image as a\n"
+"visual progress note into the EMR of the patient ?\n"
+msgstr ""
+
+msgid "visual progress notes"
+msgstr ""
+
+#, python-format
+msgid " [part 1 of %s]"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "Created: %s%s"
+msgstr "Направи лажне вакцине"
+
+msgid "You must select a value from the picklist or type an exact match."
+msgstr ""
+
+#, python-format
+msgid ""
+"The content is invalid. It must match the regular expression: [%%s]. <%s>"
+msgstr ""
+
+msgid "Latin"
+msgstr ""
+
+msgid "Greek"
+msgstr ""
+
+msgid "Cyrillic"
+msgstr ""
+
+msgid "Four Es"
+msgstr ""
+
+msgid "Symbol"
+msgstr ""
+
+msgid "Snellen Chart"
+msgstr ""
+
+msgid "Snellen Chart Setup"
+msgstr ""
+
+msgid "Screen Height (cm): "
+msgstr ""
+
+msgid "Screen Width (cm): "
+msgstr ""
+
+msgid "Alphabet: "
+msgstr ""
+
+msgid "Mirror"
+msgstr ""
+
+msgid ""
+"Control Snellen chart using mouse:\n"
+"left-click increases text\n"
+"right-click decreases text\n"
+"double-click ends"
+msgstr ""
+
+msgid " OK "
+msgstr ""
+
+msgid " Cancel "
+msgstr ""
+
+#, python-format
 msgid "invalid placeholder >>>>>%s<<<<<"
 msgstr ""
 
@@ -9704,7 +10117,8 @@ msgstr ""
 
 #, python-format
 msgid ""
-"%(street)s %(number)s, %(postcode)s %(urb)s, %(l10n_state)s, %(l10n_country)s"
+"%(street)s %(number)s, %(postcode)s %(urb)s, %(l10n_region)s, "
+"%(l10n_country)s"
 msgstr ""
 
 #, python-format
@@ -10309,7 +10723,7 @@ msgstr ""
 msgid ""
 "Cannot save address.\n"
 "\n"
-"Does the state [%s]\n"
+"Does the region [%s]\n"
 "exist in country [%s] ?"
 msgstr ""
 
@@ -10736,7 +11150,7 @@ msgstr "Пацијент: %s (%s), Бр: %s\n"
 msgid "Reminders for the current patient"
 msgstr "Додај вакцинацију(е) за тренутног пацијента."
 
-msgid "Sent"
+msgid "Generated"
 msgstr ""
 
 msgid "Category - Type"
@@ -10784,9 +11198,6 @@ msgid ""
 "Data: %s"
 msgstr ""
 
-msgid "Inbox Message Actions:"
-msgstr ""
-
 msgid "Activate patient"
 msgstr ""
 
@@ -11492,7 +11903,7 @@ msgid ""
 msgstr ""
 
 #, python-format
-msgid "Select branch (of praxis [%s]) which you are logging in from.\n"
+msgid "Select the branch of praxis [%s] which you are logging in from.\n"
 msgstr ""
 
 msgid "Praxis branch selection ..."
@@ -11803,6 +12214,13 @@ msgstr ""
 msgid "List of addresses related to this person."
 msgstr ""
 
+msgid "Map"
+msgstr ""
+
+#, fuzzy
+msgid "Show selected address on map"
+msgstr "Брисање вакцине"
+
 msgid "Adding new address"
 msgstr ""
 
@@ -11986,9 +12404,88 @@ msgid "generic multi choice dialog"
 msgstr ""
 
 #, fuzzy
-msgid "Search in list"
+msgid "Deleting list items"
+msgstr "Брисање вакцине"
+
+#, python-format
+msgid ""
+"You have selected %s list items.\n"
+"\n"
+"Really delete all %s items ?"
+msgstr ""
+
+msgid ""
+"Select the items you want to work on.\n"
+"\n"
+"A discontinuous selection may depend on your holding down a platform-"
+"dependent modifier key (<CTRL>, <ALT>, etc) or key combination (eg. <CTRL-"
+"SHIFT> or <CTRL-ALT>) while clicking."
+msgstr ""
+
+msgid "List Item Actions:"
+msgstr ""
+
+msgid "Add (<INS>)"
+msgstr ""
+
+msgid "Delete (<DEL>)"
+msgstr ""
+
+msgid "Find (<CTRL-F>)"
+msgstr ""
+
+#, python-format
+msgid "Find next [%s] (<CTRL-N>)"
+msgstr ""
+
+msgid "Row tooltip"
+msgstr ""
+
+msgid "Row data (formatted as text)"
+msgstr ""
+
+msgid "Row content (as one line)"
+msgstr ""
+
+msgid "Row content (one line per column)"
+msgstr ""
+
+#, python-format
+msgid "Column &%s: \"%s\" [#%s]"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "Column &%s: %s"
+msgstr "Документа: %s"
+
+#, fuzzy
+msgid "&Copy to clipboard..."
+msgstr "Додавање нове вакцине"
+
+msgid "Append (&+) to clipboard..."
+msgstr ""
+
+#, python-format
+msgid ""
+"%s list items are selected.\n"
+"\n"
+"Really delete all %s items ?"
+msgstr ""
+
+#, fuzzy
+msgid "Enter the search term:"
 msgstr "Листа лекова"
 
+msgid "List search"
+msgstr ""
+
+#, python-format
+msgid ""
+"Current search term: [[%s]]\n"
+"\n"
+"%s"
+msgstr ""
+
 msgid "Monty the Serpent && the FSF Present"
 msgstr ""
 
@@ -12139,6 +12636,9 @@ msgstr ""
 msgid "Unknown: ?"
 msgstr ""
 
+msgid "The text has been copied into the clipboard."
+msgstr ""
+
 msgid "file2clipboard"
 msgstr ""
 
@@ -12146,6 +12646,44 @@ msgstr ""
 msgid "The file [%s] has been copied into the clipboard."
 msgstr ""
 
+msgid "programmer forgot to specify error message"
+msgstr "програмер је заборавио да дефинише поруку за грешку"
+
+msgid ""
+"\n"
+"\n"
+"Please consult the error log for all the gory details !"
+msgstr ""
+"\n"
+"\n"
+"Погледајте лог грешака за све крваве детаље !"
+
+msgid "generic error message"
+msgstr "генеричка порука за грешку"
+
+msgid "programmer forgot to specify info message"
+msgstr "програмер је заборавио да дефинише поруку за обавештење"
+
+msgid "generic info message"
+msgstr "генеричка порука за обавештење"
+
+msgid "programmer forgot to specify warning"
+msgstr "програмер је заборавио да дефинише поруку за упозорење"
+
+msgid "generic warning message"
+msgstr "генеричка порука за упозорење"
+
+#, fuzzy
+msgid "Editing EDC"
+msgstr "Уређивање вакцине"
+
+#, python-format
+msgid ""
+"Really delete the EDC documented previously ?\n"
+"\n"
+" EDC: %s"
+msgstr ""
+
 #, python-format
 msgid ""
 "Algorithm: %s\n"
@@ -12259,15 +12797,15 @@ msgstr ""
 msgid "Firstname"
 msgstr ""
 
-msgid "Nickname"
-msgstr ""
-
 msgid "DOB"
 msgstr ""
 
 msgid "last visit"
 msgstr ""
 
+msgid "Nickname / Comment"
+msgstr ""
+
 msgid "found via"
 msgstr ""
 
@@ -12445,587 +12983,338 @@ msgstr ""
 msgid "In case of emergency contact:"
 msgstr ""
 
-msgid ""
-"\n"
-"Please select the default drug data source from the list below.\n"
-"\n"
-"Note that to actually use it you need to have the database installed, too."
+msgid "The preparation (form) of the substance or brand."
 msgstr ""
 
-msgid "Drug data source"
+msgid "A substance with optional strength or a brand."
 msgstr ""
 
-msgid "Configuring default drug data source"
+msgid "The medical aim for consuming this substance."
 msgstr ""
 
-msgid "No default drug database configured."
+msgid "not tolerated:"
 msgstr ""
 
-msgid "There is no default drug database configured."
+msgid "discontinued due to allergy or intolerance"
 msgstr ""
 
-msgid "Jumping to drug database"
+msgid "Documented an allergy"
 msgstr ""
 
 #, python-format
-msgid "Cannot call IFAP via [%s]."
+msgid ""
+"An allergy was documented against the substance:\n"
+"\n"
+"  [%s]\n"
+"\n"
+"This substance was taken with the multi-component brand:\n"
+"\n"
+"  [%s (%s)]\n"
+"\n"
+"Note that ALL components of this brand were discontinued."
 msgstr ""
 
-#, python-format
-msgid "Cannot create IFAP <-> GNUmed transfer file [%s]."
+msgid "disapproved"
 msgstr ""
 
-msgid "Current medication"
+msgid "Substances consumed by the patient:"
 msgstr ""
 
-msgid ""
-"\n"
-"The ATC codes as known to GNUmed.\n"
+msgid "Showing consumable substances."
 msgstr ""
 
-msgid "Showing ATC codes."
+msgid "Application"
 msgstr ""
 
-msgid "Choose an ATC import config file"
+msgid "never"
 msgstr ""
 
-msgid "config files"
+#, python-format
+msgid "%s, last confirmed %s\n"
 msgstr ""
 
-msgid "importing ATC reference data"
+#, python-format
+msgid "Comment (%s): %%s\n"
 msgstr ""
 
-msgid "Successfully imported ATC reference data."
+msgid "reaction not recorded"
 msgstr ""
 
-msgid "Importing ATC reference data failed."
+msgid "GFR: unknown"
 msgstr ""
 
-msgid "Select an ATC (Anatomical-Therapeutic-Chemical) code."
+msgid "GFR reported by path lab"
 msgstr ""
 
-msgid "Cannot delete this substance. It is in use."
+#, fuzzy
+msgid "<no components>"
+msgstr "неактиван"
+
+msgid "Adding substance intake entry"
 msgstr ""
 
+#, python-format
 msgid ""
+"The patient is already taking\n"
 "\n"
-"These are the consumable substances registered with GNUmed.\n"
+" %s\n"
+"\n"
+"You will want to adjust the schedule\n"
+"rather than document the intake twice."
 msgstr ""
 
-msgid "Showing consumable substances."
+msgid "Input incomplete/invalid for saving as substance intake."
 msgstr ""
 
-msgid "Import"
+#, python-format
+msgid "Discontinued (%s) in the future (now: %s)!"
 msgstr ""
 
-msgid "Import consumable substances from a drug database."
+#, python-format
+msgid "Discontinued (%s) before started (%s) !"
 msgstr ""
 
-msgid "Cannot edit this substance. It is in use."
-msgstr ""
-
-msgid "Adding new consumable substance"
-msgstr ""
-
-msgid "Editing consumable substance"
+msgid "Cannot add duplicate of (maybe inactive) substance intake."
 msgstr ""
 
-msgid "Cannot save consumable substance. Missing essential input."
+#, python-format
+msgid ""
+"\n"
+"[%s]\n"
+"\n"
+"It may be prudent to edit (before deletion) the details\n"
+"of this substance intake entry so as to leave behind\n"
+"some indication of why it was deleted.\n"
 msgstr ""
 
-#, python-format
-msgid "Cannot save consumable substance. %s"
+msgid "Deleting medication / substance intake"
 msgstr ""
 
-msgid "Cannot remove this component from the drug. It is in use."
+msgid "Allow editing of substance intake entry before deletion."
 msgstr ""
 
-msgid ""
-"\n"
-"These are the components in the drug brands known to GNUmed.\n"
+msgid "Delete immediately without editing first."
 msgstr ""
 
-msgid "Showing drug brand components."
+msgid "&Cancel"
 msgstr ""
 
-msgid "Adding new drug component"
+msgid "Abort. Do not delete or edit substance intake entry."
 msgstr ""
 
-msgid "Editing drug component"
+msgid "Now delete substance intake entry ?"
 msgstr ""
 
-msgid "Cannot edit drug component. It is in use."
+msgid "Adding medication/non-medication substance intake"
 msgstr ""
 
-msgid "Cannot save drug component. Invalid or missing essential input."
+msgid "Editing medication/non-medication substance intake"
 msgstr ""
 
-msgid "A drug component with optional strength."
+msgid "Document an allergy against this substance."
 msgstr ""
 
-msgid "The preparation (form) of the substance or brand."
+msgid "No medication list template configured."
 msgstr ""
 
-msgid "The substance with optional strength."
+msgid "There is no medication list template configured."
 msgstr ""
 
-msgid "Managing components of a drug"
+msgid "Problem loading medication list template."
 msgstr ""
 
 #, python-format
-msgid ""
-"Cannot manage the components of the branded drug product\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is currently taken by patients.\n"
+msgid "Cannot load medication list template [%s - %s]"
 msgstr ""
 
-msgid "Pick the substances which are components of this drug."
+msgid "generated medication list document"
 msgstr ""
 
-msgid "Components of drug"
+msgid "Select the default prescription template:"
 msgstr ""
 
-#, python-format
-msgid ""
-"Adjust the components of \"%s\"\n"
-"\n"
-"The drug must contain at least one component. Any given\n"
-"substance can only be included once per drug."
+msgid "No prescription template configured."
 msgstr ""
 
-msgid "Managing components of a drug ..."
+msgid "There is no prescription template configured."
 msgstr ""
 
-msgid "not in use"
+#, fuzzy
+msgid "Printing prescription"
+msgstr "Рецепти"
+
+msgid "Problem loading prescription template."
 msgstr ""
 
 #, python-format
-msgid "ATC: %s\n"
+msgid "Cannot load prescription template [%s - %s]"
 msgstr ""
 
-msgid "Editing medication"
-msgstr ""
+#, fuzzy
+msgid "generated prescription"
+msgstr "Рецепти"
 
-#, python-format
 msgid ""
-"Cannot edit the medication\n"
-"\n"
-" \"%s\" (%s)\n"
+"These brands have been prescribed but are not listed\n"
+"in the current medication list of this patient.\n"
 "\n"
-"because it is a vaccine. Please edit it\n"
-"from the vaccine management section !\n"
+"Please select those you want added to the medication list."
 msgstr ""
 
-msgid "Deleting medication"
+msgid "Newly prescribed drugs"
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot delete the medication\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is a vaccine. Please delete it\n"
-"from the vaccine management section !\n"
+msgid "Add to medication list"
 msgstr ""
 
-msgid ""
-"\n"
-"These are the drug brands known to GNUmed.\n"
+msgid "Timeframe"
 msgstr ""
 
-msgid "Showing branded drugs."
+#, python-format
+msgid "%s <fake>"
 msgstr ""
 
-msgid "Import substances and brands from a drug database."
+msgid "Cannot edit more than one substance at once."
 msgstr ""
 
-msgid "Editing drug"
+msgid "Cannot delete more than one substance at once."
+msgstr ""
+
+msgid "Cannot create allergy from more than one substance at once."
 msgstr ""
 
-#, python-format
 msgid ""
-"Cannot edit the branded drug product\n"
-"\n"
-" \"%s\" (%s)\n"
 "\n"
-"because it is currently taken by patients.\n"
+"Select the measurements panel to show in the medications plugin.\n"
 msgstr ""
 
-msgid "Adding new drug brand"
-msgstr ""
+#, fuzzy
+msgid "Measurements panel"
+msgstr "Мерења и резултати: %s"
 
-msgid "Editing drug brand"
+msgid "Configuring medications plugin measurements panel"
 msgstr ""
 
-msgid "Manage consumable substances"
+msgid "EDC (!?!):"
 msgstr ""
 
-msgid "Cannot edit drug brand. It is in use."
-msgstr ""
+#, fuzzy
+msgid "EDC:"
+msgstr "Пацијент: %s (%s), Бр: %s\n"
 
-msgid "Checking brand data"
+#, fuzzy, python-format
+msgid "%.1f (%s ago)"
+msgstr "Документа: %s"
+
+msgid "eGFR:"
 msgstr ""
 
 #, python-format
-msgid ""
-"The brand information you entered:\n"
-"\n"
-" [%s %s]\n"
-"\n"
-"already exists as a drug product."
+msgid "eGFR: %.1f (%s)"
 msgstr ""
 
-msgid ""
-"You have not selected any substances\n"
-"as drug components.\n"
-"\n"
-"Without components you will not be able to\n"
-"use this drug for documenting patient care.\n"
-"\n"
-"Are you sure you want to save\n"
-"it without components ?"
-msgstr ""
+msgid "Enter vaccination given"
+msgstr "Унеси дату вакцинацију"
 
-msgid "Cannot save branded drug. Invalid or missing essential input."
+msgid "Unsaved progress note"
 msgstr ""
 
 msgid ""
-"The brand name of the drug.\n"
+"This progress note has not been saved yet.\n"
+"\n"
+"Do you want to save it or discard it ?\n"
 "\n"
-"Note: a brand name will need to be linked to\n"
-"one or more components before it can be used,\n"
-"except in the case of fake (generic) vaccines."
-msgstr ""
-
-msgid "The medical aim for consuming this substance."
 msgstr ""
 
-msgid "not tolerated:"
+msgid "Save this progress note"
 msgstr ""
 
-msgid "discontinued due to allergy or intolerance"
+msgid "Discard this progress note"
 msgstr ""
 
-msgid "Documented an allergy"
+msgid "Save all remaining unsaved progress notes"
 msgstr ""
 
-#, python-format
 msgid ""
-"An allergy was documented against the substance:\n"
-"\n"
-"  [%s]\n"
-"\n"
-"This substance was taken with the multi-component brand:\n"
-"\n"
-"  [%s (%s)]\n"
+"Add editor for a new unassociated progress note.\n"
 "\n"
-"Note that ALL components of this brand were discontinued."
+"There is a configuration option whether or not to\n"
+"allow several new unassociated progress notes at once."
 msgstr ""
 
-msgid "disapproved"
+msgid "Save progress note into medical record and close this editor."
 msgstr ""
 
-msgid "Substances consumed by the patient:"
+msgid "Clear this progress note editor."
 msgstr ""
 
-msgid "Intake"
+msgid ""
+"Discard progress note and close this editor. You will loose any data already "
+"typed into this editor !"
 msgstr ""
 
-msgid "Application"
+msgid "Problem saving progress note: duplicate information ?"
 msgstr ""
 
-msgid "never"
+msgid "label missing"
 msgstr ""
 
-#, python-format
-msgid "%s, last confirmed %s\n"
+msgid "soap cat missing"
 msgstr ""
 
-#, python-format
-msgid "Comment (%s): %%s\n"
+msgid "Enter a descriptive name for this new problem:"
 msgstr ""
 
-msgid "reaction not recorded"
+msgid "Creating a problem (episode) to save the notelet under ..."
 msgstr ""
 
-msgid "GFR: unknown"
+msgid "Error saving progress note."
 msgstr ""
 
-msgid "GFR reported by path lab"
+msgid "Error saving embedded data."
 msgstr ""
 
-#, python-format
-msgid ""
-"The patient is already taking\n"
-"\n"
-" %s\n"
-"\n"
-"You will want to adjust the schedule\n"
-"rather than document the intake twice."
+msgid "Visit Purpose"
 msgstr ""
 
-msgid "Adding substance intake entry"
+msgid "History Taken"
 msgstr ""
 
-msgid "Input incomplete/invalid for saving as substance intake."
+msgid "Findings"
 msgstr ""
 
-#, python-format
-msgid "Discontinued (%s) in the future (now: %s)!"
+msgid "save"
 msgstr ""
 
-#, python-format
-msgid "Discontinued (%s) before started (%s) !"
+msgid "save clinical note in EMR"
 msgstr ""
 
-msgid "Cannot add duplicate of (maybe inactive) substance intake."
+msgid "discard"
 msgstr ""
 
-#, python-format
-msgid ""
-"\n"
-"[%s]\n"
-"\n"
-"It may be prudent to edit (before deletion) the details\n"
-"of this substance intake entry so as to leave behind\n"
-"some indication of why it was deleted.\n"
+msgid "discard clinical note"
 msgstr ""
 
-msgid "Deleting medication / substance intake"
+msgid "clinical progress note"
 msgstr ""
 
-msgid "Allow editing of substance intake entry before deletion."
+msgid "Select files to add to the export area"
 msgstr ""
 
-msgid "Delete immediately without editing first."
-msgstr ""
+#, fuzzy
+msgid "Adding files to export area"
+msgstr "Додавање нове вакцине"
 
-msgid "&Cancel"
+#, python-format
+msgid ""
+"Cannot add (some of) the following files to the export area:\n"
+"%s "
 msgstr ""
 
-msgid "Abort. Do not delete or edit substance intake entry."
+msgid "Select the documents to be put into the export area:"
 msgstr ""
 
-msgid "Now delete substance intake entry ?"
-msgstr ""
-
-msgid "Adding medication/non-medication substance intake"
-msgstr ""
-
-msgid "Editing medication/non-medication substance intake"
-msgstr ""
-
-msgid "Document an allergy against this substance."
-msgstr ""
-
-msgid "No medication list template configured."
-msgstr ""
-
-msgid "There is no medication list template configured."
-msgstr ""
-
-msgid "Problem loading medication list template."
-msgstr ""
-
-#, python-format
-msgid "Cannot load medication list template [%s - %s]"
-msgstr ""
-
-msgid "generated medication list document"
-msgstr ""
-
-msgid "Select the default prescription template:"
-msgstr ""
-
-msgid "No prescription template configured."
-msgstr ""
-
-msgid "There is no prescription template configured."
-msgstr ""
-
-#, fuzzy
-msgid "Printing prescription"
-msgstr "Рецепти"
-
-msgid "Problem loading prescription template."
-msgstr ""
-
-#, python-format
-msgid "Cannot load prescription template [%s - %s]"
-msgstr ""
-
-#, fuzzy
-msgid "generated prescription"
-msgstr "Рецепти"
-
-msgid ""
-"These brands have been prescribed but are not listed\n"
-"in the current medication list of this patient.\n"
-"\n"
-"Please select those you want added to the medication list."
-msgstr ""
-
-msgid "Newly prescribed drugs"
-msgstr ""
-
-msgid "Add to medication list"
-msgstr ""
-
-msgid "Duration / Until"
-msgstr ""
-
-#, python-format
-msgid "%s <fake>"
-msgstr ""
-
-msgid "Cannot edit more than one substance at once."
-msgstr ""
-
-msgid "Cannot delete more than one substance at once."
-msgstr ""
-
-msgid "Cannot create allergy from more than one substance at once."
-msgstr ""
-
-msgid ""
-"\n"
-"Select the measurements panel to show in the medications plugin.\n"
-msgstr ""
-
-#, fuzzy
-msgid "Measurements panel"
-msgstr "Мерења и резултати: %s"
-
-msgid "Configuring medications plugin measurements panel"
-msgstr ""
-
-msgid "EDC (!?!):"
-msgstr ""
-
-#, fuzzy
-msgid "EDC:"
-msgstr "Пацијент: %s (%s), Бр: %s\n"
-
-#, fuzzy, python-format
-msgid "%.1f (%s ago)"
-msgstr "Документа: %s"
-
-msgid "eGFR:"
-msgstr ""
-
-#, fuzzy, python-format
-msgid "%s%s%s (%s ago)"
-msgstr "Документа: %s"
-
-#, python-format
-msgid "eGFR: %.1f (%s)"
-msgstr ""
-
-msgid "Enter vaccination given"
-msgstr "Унеси дату вакцинацију"
-
-msgid "Unsaved progress note"
-msgstr ""
-
-msgid ""
-"This progress note has not been saved yet.\n"
-"\n"
-"Do you want to save it or discard it ?\n"
-"\n"
-msgstr ""
-
-msgid "Save this progress note"
-msgstr ""
-
-msgid "Discard this progress note"
-msgstr ""
-
-msgid "Save all remaining unsaved progress notes"
-msgstr ""
-
-msgid ""
-"Add editor for a new unassociated progress note.\n"
-"\n"
-"There is a configuration option whether or not to\n"
-"allow several new unassociated progress notes at once."
-msgstr ""
-
-msgid "Save progress note into medical record and close this editor."
-msgstr ""
-
-msgid "Clear this progress note editor."
-msgstr ""
-
-msgid ""
-"Discard progress note and close this editor. You will loose any data already "
-"typed into this editor !"
-msgstr ""
-
-msgid "Problem saving progress note: duplicate information ?"
-msgstr ""
-
-msgid "label missing"
-msgstr ""
-
-msgid "soap cat missing"
-msgstr ""
-
-msgid "Enter a descriptive name for this new problem:"
-msgstr ""
-
-msgid "Creating a problem (episode) to save the notelet under ..."
-msgstr ""
-
-msgid "Error saving progress note."
-msgstr ""
-
-msgid "Error saving embedded data."
-msgstr ""
-
-msgid "Visit Purpose"
-msgstr ""
-
-msgid "History Taken"
-msgstr ""
-
-msgid "Findings"
-msgstr ""
-
-msgid "save"
-msgstr ""
-
-msgid "save clinical note in EMR"
-msgstr ""
-
-msgid "discard"
-msgstr ""
-
-msgid "discard clinical note"
-msgstr ""
-
-msgid "clinical progress note"
-msgstr ""
-
-msgid "Select files to add to the export area"
-msgstr ""
-
-#, fuzzy
-msgid "Adding files to export area"
-msgstr "Додавање нове вакцине"
-
-#, python-format
-msgid ""
-"Cannot add (some of) the following files to the export area:\n"
-"%s "
-msgstr ""
-
-msgid "Select the documents to be put into the export area:"
-msgstr ""
-
-msgid "clipboard"
+msgid "clipboard"
 msgstr ""
 
 msgid "Loading clipboard item (saved to file) into export area"
@@ -13085,14 +13374,21 @@ msgid ""
 "\n"
 " [%s]\n"
 "\n"
-"is not empty. Do you want to use it for saving the\n"
-"export area documents into, nevertheless ?\n"
+"already contains files. Do you still want to save the\n"
+"selected export area documents into that directory ?\n"
 "\n"
-"(this can be useful for including external documents)\n"
+"(this is useful for including the external documents\n"
+" already stored in or below this directory)\n"
 "\n"
 "[NO] will create a subdirectory for you and use that."
 msgstr ""
 
+msgid ""
+"Create descriptive metadata files\n"
+"and save them alongside the\n"
+"selected export area documents ?"
+msgstr ""
+
 #, fuzzy, python-format
 msgid ""
 "Saved to [%s]:\n"
@@ -13311,10 +13607,6 @@ msgid "This praxis"
 msgstr "вакцина"
 
 #, fuzzy
-msgid "Hospital stay"
-msgstr "Број боравака у болници: %s"
-
-#, fuzzy
 msgid "Bill receiver"
 msgstr "Брисање вакцине"
 
@@ -13351,45 +13643,87 @@ msgstr ""
 msgid "Select the episode under which to file the document ..."
 msgstr ""
 
-#, python-format
-msgid "Imported new document from %s."
-msgstr ""
-
-msgid "Enter a comment on the document."
+msgid "Cannot create new document."
 msgstr ""
 
-msgid "User defined"
+msgid "saving document"
 msgstr ""
 
-msgid "In use"
+#, python-format
+msgid "Imported new document from %s."
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot delete document type\n"
-" [%s]\n"
-"because it is currently in use."
+msgid "Successfully saved new document."
 msgstr ""
 
-msgid "deleting document type"
+msgid "Successfully saved the new document."
 msgstr ""
 
 #, python-format
 msgid ""
-"From the list below select the document type you want\n"
-"all documents currently classified as:\n"
-"\n"
-" \"%s\"\n"
+"The reference ID for the new document is:\n"
 "\n"
-"to be changed to.\n"
+" <%s>\n"
 "\n"
-"Be aware that this change will be applied to ALL such documents. If there\n"
-"are many documents to change it can take quite a while.\n"
+"You probably want to write it down on the\n"
+"original documents.\n"
 "\n"
-"Make sure this is what you want to happen !\n"
+"If you don't care about the ID you can switch\n"
+"off this message in the GNUmed configuration.\n"
 msgstr ""
 
-msgid "Reassigning document type"
+msgid "Saving document"
+msgstr ""
+
+#, python-format
+msgid ""
+"Successfully imported files as document.\n"
+"\n"
+"Do you want to delete imported files from the filesystem ?\n"
+"\n"
+" %s\n"
+"\n"
+"Note that temporary files will be deleted anyway."
+msgstr ""
+
+msgid "Removing files"
+msgstr ""
+
+msgid "Enter a comment on the document."
+msgstr ""
+
+msgid "User defined"
+msgstr ""
+
+msgid "In use"
+msgstr ""
+
+#, python-format
+msgid ""
+"Cannot delete document type\n"
+" [%s]\n"
+"because it is currently in use."
+msgstr ""
+
+msgid "deleting document type"
+msgstr ""
+
+#, python-format
+msgid ""
+"From the list below select the document type you want\n"
+"all documents currently classified as:\n"
+"\n"
+" \"%s\"\n"
+"\n"
+"to be changed to.\n"
+"\n"
+"Be aware that this change will be applied to ALL such documents. If there\n"
+"are many documents to change it can take quite a while.\n"
+"\n"
+"Make sure this is what you want to happen !\n"
+msgstr ""
+
+msgid "Reassigning document type"
 msgstr ""
 
 msgid "Select the document type."
@@ -13472,15 +13806,17 @@ msgstr ""
 msgid "Acquiring images"
 msgstr ""
 
+msgid "directory dropped on client"
+msgstr ""
+
+msgid "file dropped on client"
+msgstr ""
+
 #, fuzzy
 msgid "other documents"
 msgstr " %s докумената\n"
 
-#, python-format
-msgid "part %s: %s"
-msgstr ""
-
-msgid "saving document"
+msgid "path"
 msgstr ""
 
 msgid "No parts to save. Really save an empty document as a reference ?"
@@ -13525,63 +13861,41 @@ msgstr ""
 msgid "acquiring page"
 msgstr ""
 
-msgid "Choose a file"
-msgstr ""
-
-msgid "all files (Win)"
+msgid "captured by imaging device"
 msgstr ""
 
-msgid "You must select a part before you can view it."
+msgid "Choose a file"
 msgstr ""
 
-msgid "displaying part"
+msgid "all files (Win)"
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot display document part:\n"
-"%s"
+msgid "picked from storage media"
 msgstr ""
 
-msgid "You must select a part before you can delete it."
+msgid "pasted from clipboard"
 msgstr ""
 
-msgid "deleting part"
+#, fuzzy
+msgid "No part selected for viewing."
 msgstr ""
-
-#, python-format
-msgid ""
-"The part has successfully been removed from the document.\n"
-"\n"
-"Do you also want to permanently delete the file\n"
-"\n"
-" [%s]\n"
-"\n"
-"from which this document part was loaded ?\n"
 "\n"
-"If it is a temporary file for a page you just scanned\n"
-"this makes a lot of sense. In other cases you may not\n"
-"want to lose the file.\n"
-"\n"
-"Pressing [YES] will permanently remove the file\n"
-"from your computer.\n"
-msgstr ""
-
-msgid "Removing document part"
-msgstr ""
+"Комплетна историја вакцинације овог пацијента.\n"
 
 #, python-format
 msgid ""
-"Cannot delete part in file [%s].\n"
-"\n"
-"You may not have write access to it."
+"Cannot display document part:\n"
+"%s"
 msgstr ""
 
-msgid "Cannot create new document."
+msgid "displaying part"
 msgstr ""
 
-msgid "Cannot update document metadata."
+#, fuzzy
+msgid "No part selected for removal."
 msgstr ""
+"\n"
+"Комплетна историја вакцинације овог пацијента.\n"
 
 msgid "Cannot add document description."
 msgstr ""
@@ -13589,26 +13903,12 @@ msgstr ""
 msgid "Error setting \"reviewed\" status of new document."
 msgstr ""
 
-msgid "Successfully saved the new document."
-msgstr ""
-
 #, python-format
 msgid ""
-"The reference ID for the new document is:\n"
-"\n"
-" <%s>\n"
-"\n"
-"You probably want to write it down on the\n"
-"original documents.\n"
+"Source: %s\n"
+"File: %s\n"
 "\n"
-"If you don't care about the ID you can switch\n"
-"off this message in the GNUmed configuration."
-msgstr ""
-
-msgid "Saving document"
-msgstr ""
-
-msgid "Successfully saved new document."
+"%s"
 msgstr ""
 
 msgid "Document part does not seem to exist in database !"
@@ -13627,9 +13927,6 @@ msgstr ""
 msgid "Showing documents."
 msgstr "Приказивање вакцина."
 
-msgid "Generated"
-msgstr ""
-
 msgid "Ref #"
 msgstr ""
 
@@ -13886,6 +14183,149 @@ msgstr ""
 msgid "Deleting document"
 msgstr ""
 
+msgid "Study date"
+msgstr ""
+
+msgid "Study time"
+msgstr ""
+
+msgid "Method"
+msgstr ""
+
+#, fuzzy
+msgid "Body part"
+msgstr "део"
+
+msgid "Time"
+msgstr ""
+
+msgid "Cannot connect without port (try 8042)."
+msgstr ""
+
+#, python-format
+msgid "Connect to [%s] @ port %s as \"%s\"."
+msgstr ""
+
+msgid "Cannot connect to PACS."
+msgstr ""
+
+#, python-format
+msgid "PACS: Orthanc \"%s\" (AET \"%s\", Version %s, DB v%s)"
+msgstr ""
+
+#, python-format
+msgid "GNUmed patient: %s (generic PACS ID)"
+msgstr ""
+
+#, python-format
+msgid "GNUmed patient: \"%(value)s\" @ [%(issuer)s] (stored PACS ID)"
+msgstr ""
+
+msgid "PACS: no patients with matching IDs found"
+msgstr ""
+
+msgid ""
+"PACS: more than one patient with matching IDs found, carefully check studies"
+msgstr ""
+
+#, python-format
+msgid "%s series"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "%%s (%s series)"
+msgstr "Документа: %s"
+
+msgid "no studies"
+msgstr ""
+
+#, python-format
+msgid "%s studies"
+msgstr ""
+
+msgid "Exporting DICOM studies"
+msgstr ""
+
+#, fuzzy
+msgid "Unable to export selected studies."
+msgstr "Брисање вакцине"
+
+#, python-format
+msgid ""
+"The DICOM studies are %s in compressed size.\n"
+"\n"
+"Really copy to export area ?"
+msgstr ""
+
+#, python-format
+msgid "DICOM studies of [%s] from Orthanc PACS \"%s\" (AET \"%s\")"
+msgstr ""
+
+msgid "Select the directory into which to save the DICOM studies."
+msgstr ""
+
+#, fuzzy
+msgid "Saving DICOM studies"
+msgstr "Чување вакцине"
+
+#, fuzzy
+msgid "Unable to save selected studies."
+msgstr "Брисање вакцине"
+
+msgid "Unable to export studies."
+msgstr ""
+
+#, python-format
+msgid "All DICOM studies of [%s] from Orthanc PACS \"%s\" (AET \"%s\")"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "%s%s images"
+msgstr "Документа: %s"
+
+msgid "Select the directory from which to recursively upload DICOM files."
+msgstr ""
+
+msgid "Delete the uploaded DICOM files now ?"
+msgstr ""
+
+msgid ""
+"Some files have not been uploaded.\n"
+"\n"
+"Do you want to delete those DICOM files which have been sent to the PACS "
+"successfully ?"
+msgstr ""
+
+msgid "Uploading DICOM files"
+msgstr ""
+
+#, fuzzy
+msgid "Editing Orthanc content"
+msgstr "Уређивање вакцине"
+
+#, fuzzy
+msgid "Patient ID"
+msgstr "Пацијент: %s (%s), Бр: %s\n"
+
+msgid "Birth date"
+msgstr ""
+
+msgid "Orthanc"
+msgstr ""
+
+#, fuzzy
+msgid "Modifying patient ID"
+msgstr "Приказивање вакцина."
+
+#, python-format
+msgid ""
+"Really modify %s patient(s) to have the new patient ID\n"
+"\n"
+" [%s]\n"
+"\n"
+"stored in the Orthanc DICOM server ?"
+msgstr ""
+
 #, python-format
 msgid "You are logged in as %s%s.%s (%s). DB account <%s>."
 msgstr ""
@@ -13945,6 +14385,16 @@ msgstr "Листа лекова"
 msgid "Select the measurements panel to show in the medications plugin."
 msgstr ""
 
+#, fuzzy
+msgid "General measurements"
+msgstr "Листа лекова"
+
+#, fuzzy
+msgid "Select the measurements panel to show in the top pane."
+msgstr ""
+"\n"
+"Комплетна историја вакцинације овог пацијента.\n"
+
 msgid "Review dialog"
 msgstr ""
 
@@ -14035,6 +14485,12 @@ msgstr ""
 msgid "Configure auto-opening editors for recent problems."
 msgstr ""
 
+msgid "SOAP fields"
+msgstr ""
+
+msgid "Configure SOAP editor - individual SOAP fields vs text editor like"
+msgstr ""
+
 msgid "Progress notes handling ..."
 msgstr ""
 
@@ -14056,6 +14512,9 @@ msgstr ""
 msgid "URL for measurements encyclopedia."
 msgstr ""
 
+msgid "Drug data source"
+msgstr ""
+
 msgid "Select the drug data source."
 msgstr ""
 
@@ -14425,6 +14884,16 @@ msgstr ""
 msgid "Manage dynamic hints suppressed in this patient."
 msgstr ""
 
+#, fuzzy
+msgid "Substance abuse"
+msgstr "Супстанца"
+
+#, fuzzy
+msgid "Manage substance abuse documentation of this patient."
+msgstr ""
+"\n"
+"Комплетна историја вакцинације овог пацијента.\n"
+
 msgid "&Add / Edit ..."
 msgstr ""
 
@@ -14449,26 +14918,51 @@ msgstr ""
 msgid "Show a high-level statistic summary of the EMR."
 msgstr ""
 
-msgid "Text document"
+msgid "Journal (encounters) to file"
+msgstr ""
+
+msgid ""
+"Save the EMR of the active patient as a chronological journal into a text "
+"file"
+msgstr ""
+
+#, fuzzy
+msgid "Journal (encounters) to export area"
+msgstr "Додавање нове вакцине"
+
+msgid ""
+"Copy EMR of the active patient as a chronological journal into export area"
 msgstr ""
 
-msgid "Export the EMR of the active patient into a text file"
+msgid "Journal (mod time) to file"
 msgstr ""
 
-msgid "Journal"
+msgid ""
+"Save the EMR of the active patient as journal by last modification time into "
+"a text file"
 msgstr ""
 
+#, fuzzy
+msgid "Journal (mod time) to export area"
+msgstr "Додавање нове вакцине"
+
 msgid ""
-"Export the EMR of the active patient as a chronological journal into a text "
-"file"
+"Copy EMR of the active patient as journal by last modification time into "
+"export area"
+msgstr ""
+
+msgid "Text document"
+msgstr ""
+
+msgid "Save the EMR of the active patient into a text file"
 msgstr ""
 
 msgid "MEDISTAR import format"
 msgstr ""
 
 msgid ""
-"GNUmed -> MEDISTAR. Export progress notes of active patient's active "
-"encounter into a text file."
+"GNUmed -> MEDISTAR. Save progress notes of active patient's active encounter "
+"into a text file."
 msgstr ""
 
 msgid "Export as ..."
@@ -14641,23 +15135,46 @@ msgstr ""
 msgid "Show log file"
 msgstr ""
 
-msgid "Show the log file in text viewer."
+msgid "Show log file in text viewer."
 msgstr ""
 
 msgid "Backup log file"
 msgstr ""
 
-msgid "Backup the content of the log to another file."
+msgid "Backup content of the log to another file."
 msgstr ""
 
 msgid "Email log file"
 msgstr ""
 
-msgid "Send the log file to the authors for help."
+msgid "Send log file to the authors for help."
 msgstr ""
 
-msgid "Bug tracker"
-msgstr ""
+#, fuzzy
+msgid "Browse tmp dir"
+msgstr "Приказивање вакцина."
+
+#, python-format
+msgid "Browse temporary directory [%s]."
+msgstr ""
+
+#, fuzzy
+msgid "Browse work dir"
+msgstr "Приказивање вакцина."
+
+#, python-format
+msgid "Browse user working directory [%s]."
+msgstr ""
+
+msgid "Browse internal work dir"
+msgstr ""
+
+#, python-format
+msgid "Browse internal working directory [%s]."
+msgstr ""
+
+msgid "Bug tracker"
+msgstr ""
 
 msgid "Go to the GNUmed bug tracker on the web."
 msgstr ""
@@ -14997,6 +15514,20 @@ msgid "No, only auto-open one editor for a new, unassociated problem."
 msgstr ""
 
 msgid ""
+"When editing progress notes, do you want GNUmed to\n"
+"show individual fields for each of the SOAP categories\n"
+"or do you want to use a text-editor like field for\n"
+"all SOAP categories which can then be set per line\n"
+"of input ?"
+msgstr ""
+
+msgid "Yes, show a dedicated field per SOAP category."
+msgstr ""
+
+msgid "No, use one field for all SOAP categories."
+msgstr ""
+
+msgid ""
 "When a patient is activated GNUmed can\n"
 "be told to switch to a specific plugin.\n"
 "\n"
@@ -15155,666 +15686,1076 @@ msgid ""
 msgstr ""
 
 msgid ""
-"Do you want to allow saving of new documents without\n"
-"any parts or do you want GNUmed to enforce that they\n"
-"contain at least one part before they can be saved ?\n"
+"Do you want to allow saving of new documents without\n"
+"any parts or do you want GNUmed to enforce that they\n"
+"contain at least one part before they can be saved ?\n"
+"\n"
+"Part-less documents can be useful if you want to build\n"
+"up an index of, say, archived documents but do not\n"
+"want to scan in all the pages contained therein."
+msgstr ""
+
+msgid "Yes, allow saving documents without any parts."
+msgstr ""
+
+msgid "No, require documents to have at least one part."
+msgstr ""
+
+msgid ""
+"After importing a new document do you\n"
+"want GNUmed to display the unique ID\n"
+"it auto-generated for that document ?\n"
+"\n"
+"This can be useful if you want to label the\n"
+"originals with that ID for later identification."
+msgstr ""
+
+msgid "Yes, display the ID generated for the new document after importing."
+msgstr ""
+
+msgid ""
+"No, do not display the ID generated for the new document after importing."
+msgstr ""
+
+msgid ""
+"After importing a new document do you\n"
+"want GNUmed to generate a unique ID\n"
+"(UUID) for that document ?\n"
+"\n"
+"This can be useful if you want to label the\n"
+"originals with that ID for later identification."
+msgstr ""
+
+msgid "Yes, generate a UUID for the new document after importing."
+msgstr ""
+
+msgid "No, do not generate a UUID for the new document after importing."
+msgstr ""
+
+msgid ""
+"GNUmed can show the document review dialog after\n"
+"calling the appropriate viewer for that document.\n"
+"\n"
+"Select the conditions under which you want\n"
+"GNUmed to do so:\n"
+"\n"
+" 0: never display the review dialog\n"
+" 1: always display the dialog\n"
+" 2: only if there is no previous review by me\n"
+" 3: only if there is no previous review at all\n"
+" 4: only if there is no review by the responsible reviewer\n"
+"\n"
+"Note that if a viewer is configured to not block\n"
+"GNUmed during document display the review dialog\n"
+"will actually appear in parallel to the viewer."
+msgstr ""
+
+msgid "Addresses (likely slow)"
+msgstr ""
+
+msgid "Branded drugs (as marketed)"
+msgstr ""
+
+msgid "Dynamic automatic hints"
+msgstr ""
+
+msgid "Codes and their respective terms"
+msgstr ""
+
+msgid "Communication channel types"
+msgstr ""
+
+msgid "Components of branded drugs (substances in brands)"
+msgstr ""
+
+msgid "Diagnostic organizations (path labs, ...)"
+msgstr ""
+
+msgid "Document templates (forms, letters, plots, ...)"
+msgstr ""
+
+msgid "Document types"
+msgstr ""
+
+msgid "Encounter types"
+msgstr ""
+
+msgid "Keyword based text expansion macros"
+msgstr ""
+
+msgid "Meta test/measurement types"
+msgstr ""
+
+msgid "Organizations with their units, addresses, and comm channels"
+msgstr ""
+
+msgid "Patient tags"
+msgstr ""
+
+msgid "Provinces (counties, territories, states, regions, ...)"
+msgstr ""
+
+msgid "String translations in the database"
+msgstr ""
+
+msgid "Test/measurement types"
+msgstr ""
+
+msgid "Vaccination targets (conditions known to be preventable by vaccination)"
+msgstr ""
+
+msgid "Vaccines"
+msgstr "Вакцине"
+
+msgid "Workplace profiles (which plugins to load)"
+msgstr ""
+
+msgid "Consumable substances"
+msgstr ""
+
+msgid "Billable items"
+msgstr ""
+
+msgid "Reference data sources"
+msgstr ""
+
+msgid "Test/measurement panels/profiles"
+msgstr ""
+
+msgid "Master data management"
+msgstr ""
+
+msgid "Select the list you want to manage:"
+msgstr ""
+
+msgid "No DICOM viewer found."
+msgstr ""
+
+msgid "risk assessment"
+msgstr ""
+
+msgid "cardiovascular risk assessment"
+msgstr ""
+
+#, python-format
+msgid "[arriba] XML result not found in [%s]"
+msgstr ""
+
+msgid "ACS risk assessment calculator not configured."
+msgstr ""
+
+#, python-format
+msgid "Cannot run [%s] !"
+msgstr ""
+
+#, python-format
+msgid "There was a problem accessing the [arriba] result in [%s] !"
+msgstr ""
+
+msgid "[-9999]: <access violation test error>"
+msgstr ""
+
+msgid ""
+"This is a deliberate AccessDenied exception thrown to test the handling of "
+"access violations by means of a decorator."
+msgstr ""
+
+msgid "testing access check for non-existant <admin> role"
+msgstr ""
+
+msgid ""
+"This is a deliberate AccessDenied exception. You should not see this message "
+"because the role is checked in a decorator."
+msgstr ""
+
+msgid "pgAdmin III not found."
+msgstr ""
+
+msgid "Error reloading hook script."
+msgstr ""
+
+msgid "Save current log as..."
+msgstr ""
+
+msgid "log files"
+msgstr ""
+
+#, python-format
+msgid "Log file backed up as [%s]."
+msgstr ""
+
+msgid "Cannot start new encounter. No active patient."
+msgstr ""
+
+msgid "Cannot add health issue. No active patient."
+msgstr ""
+
+msgid "Cannot add episode. No active patient."
+msgstr ""
+
+msgid "Cannot add medication. No active patient."
+msgstr ""
+
+msgid "Cannot add allergy. No active patient."
+msgstr ""
+
+msgid "Cannot manage performed procedures. No active patient."
+msgstr ""
+
+#, fuzzy
+msgid "Cannot manage hospitalizations. No active patient."
+msgstr "Не могу да додам вакцинацију. Није изабран активан пацијент."
+
+#, fuzzy
+msgid "Cannot manage external care. No active patient."
+msgstr "Не могу да додам вакцинацију. Није изабран активан пацијент."
+
+msgid "Cannot edit occupation. No active patient."
+msgstr ""
+
+#, fuzzy
+msgid "manage vaccinations"
+msgstr "Уреди вакцинације"
+
+msgid "Cannot add vaccinations. No active patient."
+msgstr "Не могу да додам вакцинацију. Није изабран активан пацијент."
+
+#, fuzzy
+msgid "manage family history"
+msgstr "Породична историја"
+
+msgid "Cannot manage family history. No active patient."
+msgstr ""
+
+#, fuzzy
+msgid "Cannot manage measurements. No active patient."
+msgstr "Не могу да додам вакцинацију. Није изабран активан пацијент."
+
+msgid "calculate EDC"
+msgstr ""
+
+#, fuzzy
+msgid "manage suppressed hints"
+msgstr "Уреди вакцинације"
+
+#, fuzzy
+msgid "Cannot manage suppressed hints. No active patient."
+msgstr "Не могу да додам вакцинацију. Није изабран активан пацијент."
+
+#, fuzzy
+msgid "Cannot manage smoking status. No active patient."
+msgstr "Не могу да додам вакцинацију. Није изабран активан пацијент."
+
+msgid "Cannot show EMR summary. No active patient."
+msgstr ""
+
+msgid "EMR Summary"
+msgstr ""
+
+#, fuzzy
+msgid "Cannot export EMR journal by last modification time. No active patient."
+msgstr "Не могу да додам вакцинацију. Није изабран активан пацијент."
+
+msgid "journal_by_last_mod_time"
+msgstr ""
+
+msgid "Save patient's EMR journal as..."
+msgstr ""
+
+msgid "Error exporting patient EMR as journal by last modification time."
+msgstr ""
+
+msgid "EMR journal export"
+msgstr ""
+
+#, python-format
+msgid ""
+"Successfully exported EMR as journal by last modification time into file "
+"[%s]."
+msgstr ""
+
+msgid "Cannot export EMR journal. No active patient."
+msgstr ""
+
+msgid "emr-journal"
+msgstr ""
+
+msgid "Error exporting patient EMR as chronological journal."
+msgstr ""
+
+#, python-format
+msgid "Successfully exported EMR as chronological journal into file [%s]."
+msgstr ""
+
+msgid "EMR journal by last modification time"
+msgstr ""
+
+msgid "EMR journal by encounter"
+msgstr ""
+
+msgid "Cannot add tag to person. No active patient."
+msgstr ""
+
+#, python-format
+msgid "Edit the comment on tag [%s]"
+msgstr ""
+
+msgid "Editing tag comment"
+msgstr ""
+
+msgid "Cannot export patient as GDT. No active patient."
+msgstr ""
+
+msgid "Exported demographics as GDT to clipboard."
+msgstr ""
+
+#, fuzzy
+msgid "Cannot export patient as VCARD. No active patient."
+msgstr "Не могу да додам вакцинацију. Није изабран активан пацијент."
+
+msgid "Exported demographics as VCARD to clipboard."
+msgstr ""
+
+#, fuzzy
+msgid "Cannot export patient as XML (LinuxMedNews). No active patient."
+msgstr "Не могу да додам вакцинацију. Није изабран активан пацијент."
+
+#, python-format
+msgid "Exported demographics to XML file [%s]."
+msgstr ""
+
+#, python-format
+msgid "Exported demographics to GDT file [%s]."
+msgstr ""
+
+#, python-format
+msgid "Exported demographics to VCARD file [%s]."
+msgstr ""
+
+msgid "Cannot add staff member. No active patient."
+msgstr ""
+
+msgid "Cannot delete patient. No patient active."
+msgstr ""
+
+msgid ""
+"You have to manually close this window to finalize shutting down GNUmed."
+msgstr ""
+
+msgid "This is so that you can inspect the console output at your leisure."
+msgstr ""
+
+msgid "no patient"
+msgstr ""
+
+#, python-format
+msgid "Saved screenshot to file [%s]."
+msgstr ""
+
+msgid "Python version check"
+msgstr ""
+
+#, python-format
+msgid ""
+"You are running Python version\n"
+" %s\n"
+"\n"
+"However, GNUmed wants Python 2.7 to\n"
+"facilitate migration to Python 3.\n"
+"\n"
+"Please upgrade your Python interpreter !"
+msgstr ""
+
+msgid "GNUmed client"
+msgstr ""
+
+msgid "GNUmed stdout/stderr window"
+msgstr ""
+
+msgid "redirecting STDOUT/STDERR to this log window"
+msgstr ""
+
+#, python-format
+msgid ""
+"The database account [%s] cannot be used as a\n"
+"staff member login for GNUmed. There was an\n"
+"error retrieving staff details for it.\n"
 "\n"
-"Part-less documents can be useful if you want to build\n"
-"up an index of, say, archived documents but do not\n"
-"want to scan in all the pages contained therein."
+"Please ask your administrator for help.\n"
 msgstr ""
 
-msgid "Yes, allow saving documents without any parts."
+msgid "Checking access permissions"
 msgstr ""
 
-msgid "No, require documents to have at least one part."
+#, python-format
+msgid "Database <%s> on <%s>"
 msgstr ""
 
-msgid ""
-"After importing a new document do you\n"
-"want GNUmed to display the unique ID\n"
-"it auto-generated for that document ?\n"
-"\n"
-"This can be useful if you want to label the\n"
-"originals with that ID for later identification."
+#, python-format
+msgid "Branch \"%s\" of praxis \"%s\"\n"
 msgstr ""
 
-msgid "Yes, display the ID generated for the new document after importing."
+msgid "Verifying database"
 msgstr ""
 
-msgid ""
-"No, do not display the ID generated for the new document after importing."
+msgid "Connect"
 msgstr ""
 
-msgid ""
-"After importing a new document do you\n"
-"want GNUmed to generate a unique ID\n"
-"(UUID) for that document ?\n"
-"\n"
-"This can be useful if you want to label the\n"
-"originals with that ID for later identification."
+msgid "Yes, connect to this database."
 msgstr ""
 
-msgid "Yes, generate a UUID for the new document after importing."
+msgid "Disconnect"
 msgstr ""
 
-msgid "No, do not generate a UUID for the new document after importing."
+msgid "No, do not connect to this database."
 msgstr ""
 
+#, python-format
 msgid ""
-"GNUmed can show the document review dialog after\n"
-"calling the appropriate viewer for that document.\n"
-"\n"
-"Select the conditions under which you want\n"
-"GNUmed to do so:\n"
+"Cannot find configuration file in any of:\n"
 "\n"
-" 0: never display the review dialog\n"
-" 1: always display the dialog\n"
-" 2: only if there is no previous review by me\n"
-" 3: only if there is no previous review at all\n"
-" 4: only if there is no review by the responsible reviewer\n"
+" %s\n"
+"You may need to use the comand line option\n"
 "\n"
-"Note that if a viewer is configured to not block\n"
-"GNUmed during document display the review dialog\n"
-"will actually appear in parallel to the viewer."
+"\t--conf-file=<FILE>"
 msgstr ""
 
-msgid "Addresses (likely slow)"
+msgid "Checking configuration files"
 msgstr ""
 
-msgid "Branded drugs (as marketed)"
+msgid "GNUmed startup"
 msgstr ""
 
-msgid "Dynamic automatic hints"
+#, python-format
+msgid ""
+"The currently selected database language ('%s') does\n"
+"not match the current system language ('%s').\n"
+"\n"
+"Do you want to set the database language to '%s' ?\n"
 msgstr ""
 
-msgid "Codes and their respective terms"
+msgid "Checking database language settings"
 msgstr ""
 
-msgid "Communication channel types"
+#, python-format
+msgid "Set your database language to [%s]."
 msgstr ""
 
-msgid "Components of branded drugs (substances in brands)"
+msgid "Don't set"
 msgstr ""
 
-msgid "Diagnostic organizations (path labs, ...)"
+msgid "Do not set your database language now."
 msgstr ""
 
-msgid "Document templates (forms, letters, plots, ...)"
+msgid "Remember to ignore language mismatch"
 msgstr ""
 
-msgid "Document types"
+#, python-format
+msgid ""
+"Checking this will make GNUmed remember your decision\n"
+"until the system language is changed.\n"
+"\n"
+"You can also reactivate this inquiry by removing the\n"
+"corresponding \"ignore\" option from the configuration file\n"
+"\n"
+" [%s]"
 msgstr ""
 
-msgid "Encounter types"
+msgid "generic activity"
 msgstr ""
 
-msgid "Keyword based text expansion macros"
+msgid "Access denied"
 msgstr ""
 
-msgid "Meta test/measurement types"
+#, python-format
+msgid ""
+"Your account is not set up to access this part of GNUmed:\n"
+"\n"
+"  [%s]"
 msgstr ""
 
-msgid "Organizations with their units, addresses, and comm channels"
+msgid "Save timeline as SVG image under..."
 msgstr ""
 
-msgid "Patient tags"
+msgid "timeline image"
 msgstr ""
 
-msgid "Provinces (counties, territories, states, regions, ...)"
+msgid "timeline data"
 msgstr ""
 
-msgid "String translations in the database"
+msgid "Cannot change notebook tabs. No active patient."
 msgstr ""
 
-msgid "Test/measurement types"
+msgid "add plugin ..."
 msgstr ""
 
-msgid "Vaccination targets (conditions known to be preventable by vaccination)"
+msgid "Cannot activate Allergy Manager. No active patient."
 msgstr ""
 
-msgid "Vaccines"
-msgstr "Вакцине"
+msgid "RR ?"
+msgstr ""
 
-msgid "Workplace profiles (which plugins to load)"
+#, python-format
+msgid "BMI %s"
 msgstr ""
 
-msgid "Consumable substances"
+msgid "BMI ?"
 msgstr ""
 
-msgid "Billable items"
+msgid "GFR ?"
 msgstr ""
 
-msgid "Reference data sources"
+#, python-format
+msgid "GFR %s"
 msgstr ""
 
-msgid "Test/measurement panels/profiles"
+#, python-format
+msgid "?EDC %s"
 msgstr ""
 
-msgid "Master data management"
+#, python-format
+msgid "EDC %s"
 msgstr ""
 
-msgid "Select the list you want to manage:"
+msgid "<Age>"
 msgstr ""
 
-msgid "No DICOM viewer found."
+msgid "no patient selected"
 msgstr ""
 
-msgid "risk assessment"
+#, fuzzy, python-format
+msgid "Gender: %s (%s) - %s\n"
+msgstr "Пацијент: %s (%s), Бр: %s\n"
+
+#, python-format
+msgid "Born: %s\n"
 msgstr ""
 
-msgid "cardiovascular risk assessment"
+#, fuzzy, python-format
+msgid "Died: %s\n"
+msgstr "Пацијент: %s (%s), Бр: %s\n"
+
+#, fuzzy, python-format
+msgid "At age: %s\n"
+msgstr "Пацијент: %s (%s), Бр: %s\n"
+
+msgid " (date of birth and age are estimated)\n"
 msgstr ""
 
 #, python-format
-msgid "[arriba] XML result not found in [%s]"
+msgid "%(sex)s  %(dob)s (%(age)s today !)"
 msgstr ""
 
-msgid "ACS risk assessment calculator not configured."
+msgid ""
+"\n"
+"Today is the patient's birthday !\n"
+"\n"
 msgstr ""
 
 #, python-format
-msgid "Cannot run [%s] !"
+msgid "Birthday: %s ago\n"
 msgstr ""
 
 #, python-format
-msgid "There was a problem accessing the [arriba] result in [%s] !"
+msgid "Birthday: in %s\n"
 msgstr ""
 
-msgid "[-9999]: <access violation test error>"
+#, python-format
+msgid "Age: %s\n"
 msgstr ""
 
-msgid ""
-"This is a deliberate AcessDenied exception thrown to test the handling of "
-"access violations by means of a decorator."
+#, python-format
+msgid "last confirmed %s\n"
 msgstr ""
 
-msgid "testing access check for non-existant <admin> role"
+#, python-format
+msgid "Comment (%s): %%s"
 msgstr ""
 
-msgid ""
-"This is a deliberate AcessDenied exception. You should not see this message "
-"because the role is checked in a decorator."
+#, python-format
+msgid " - expires %s"
 msgstr ""
 
-msgid "pgAdmin III not found."
+#, python-format
+msgid ""
+"Due for %s (since %s%s):\n"
+"%s%s\n"
+"Patient: %s\n"
+"Reminder by: %s"
 msgstr ""
 
-msgid "Error reloading hook script."
-msgstr ""
+#, fuzzy
+msgid "Clinical reminder"
+msgstr "клинички релевантно"
 
-msgid "Save current log as..."
-msgstr ""
+#, fuzzy
+msgid "Adding automatic dynamic hint"
+msgstr "Приказивање вакцина."
 
-msgid "log files"
-msgstr ""
+#, fuzzy
+msgid "Editing automatic dynamic hint"
+msgstr "Приказивање вакцина."
+
+#, fuzzy
+msgid "Deleting automatic dynamic hint"
+msgstr "Приказивање вакцина."
 
 #, python-format
-msgid "Log file backed up as [%s]."
+msgid ""
+"Really delete this dynamic hint ?\n"
+"\n"
+" [%s]"
 msgstr ""
 
-msgid "Cannot start new encounter. No active patient."
-msgstr ""
+#, fuzzy
+msgid "deleting a dynamic hint"
+msgstr "Приказивање вакцина."
 
-msgid "Cannot add health issue. No active patient."
+msgid ""
+"\n"
+"Dynamic hints registered with GNUmed.\n"
 msgstr ""
 
-msgid "Cannot add episode. No active patient."
+#, fuzzy
+msgid "Showing dynamic hints."
+msgstr "Приказивање вакцина."
+
+msgid "Hint"
 msgstr ""
 
-msgid "Cannot add medication. No active patient."
+msgid "Browse and install automatic dynamic hints data packs"
 msgstr ""
 
-msgid "Cannot add allergy. No active patient."
+#, fuzzy, python-format
+msgid "By: %s"
+msgstr "Пацијент: %s (%s), Бр: %s\n"
+
+msgid "No entry in field <Source>."
 msgstr ""
 
-msgid "Cannot manage performed procedures. No active patient."
+msgid "No entry in field <Conditions>."
 msgstr ""
 
 #, fuzzy
-msgid "Cannot manage hospitalizations. No active patient."
-msgstr "Не могу да додам вакцинацију. Није изабран активан пацијент."
+msgid "No entry in field <Description>."
+msgstr "Рецепти"
+
+msgid "No entry in field <Title>."
+msgstr ""
 
 #, fuzzy
-msgid "Cannot manage external care. No active patient."
-msgstr "Не могу да додам вакцинацију. Није изабран активан пацијент."
+msgid "creating a new dynamic hint"
+msgstr "Приказивање вакцина."
 
-msgid "Cannot edit occupation. No active patient."
+msgid "updating an existing dynamic hint"
 msgstr ""
 
 #, fuzzy
-msgid "manage vaccinations"
-msgstr "Уреди вакцинације"
+msgid "Deleting suppressed dynamic hint"
+msgstr "Приказивање вакцина."
 
-msgid "Cannot add vaccinations. No active patient."
-msgstr "Не могу да додам вакцинацију. Није изабран активан пацијент."
+#, python-format
+msgid ""
+"Really delete the suppression of this dynamic hint ?\n"
+"\n"
+" [%s]"
+msgstr ""
 
-msgid "Cannot manage family history. No active patient."
+msgid ""
+"\n"
+"Dynamic hints suppressed in this patient.\n"
 msgstr ""
 
 #, fuzzy
-msgid "Cannot manage measurements. No active patient."
-msgstr "Не могу да додам вакцинацију. Није изабран активан пацијент."
+msgid "Showing suppressed dynamic hints."
+msgstr "Приказивање вакцина."
 
-msgid "calculate EDC"
-msgstr ""
+#, fuzzy
+msgid "Rationale"
+msgstr "Реакција"
 
 #, fuzzy
-msgid "manage suppressed hints"
+msgid "Manage hints"
 msgstr "Уреди вакцинације"
 
 #, fuzzy
-msgid "Cannot manage suppressed hints. No active patient."
-msgstr "Не могу да додам вакцинацију. Није изабран активан пацијент."
+msgid "Manage automatic dynamic hints"
+msgstr "Приказивање вакцина."
 
-msgid "Cannot show EMR summary. No active patient."
+msgid "Cannot delete family history item."
 msgstr ""
 
-msgid "EMR Summary"
+msgid "Family history of this patient."
 msgstr ""
 
-msgid "Cannot export EMR journal. No active patient."
+msgid "Showing family history."
 msgstr ""
 
-msgid "Save patient's EMR journal as..."
+msgid "Fatal"
 msgstr ""
 
-msgid "Error exporting patient EMR as chronological journal."
+msgid "Noted"
 msgstr ""
 
-msgid "EMR journal export"
+msgid "Died"
 msgstr ""
 
-#, python-format
-msgid "Successfully exported EMR as chronological journal into file [%s]."
+msgid "Adding family history"
 msgstr ""
 
-msgid "Cannot add tag to person. No active patient."
+msgid "Editing family history"
 msgstr ""
 
-#, python-format
-msgid "Edit the comment on tag [%s]"
+msgid ""
+"\n"
+"Please select the default drug data source from the list below.\n"
+"\n"
+"Note that to actually use it you need to have the database installed, too."
 msgstr ""
 
-msgid "Editing tag comment"
+msgid "Configuring default drug data source"
 msgstr ""
 
-msgid "Cannot export patient as GDT. No active patient."
+msgid "No default drug database configured."
 msgstr ""
 
-msgid "Exported demographics as GDT to clipboard."
+msgid "There is no default drug database configured."
 msgstr ""
 
-#, fuzzy
-msgid "Cannot export patient as VCARD. No active patient."
-msgstr "Не могу да додам вакцинацију. Није изабран активан пацијент."
-
-msgid "Exported demographics as VCARD to clipboard."
+msgid "Jumping to drug database"
 msgstr ""
 
-#, fuzzy
-msgid "Cannot export patient as XML (LinuxMedNews). No active patient."
-msgstr "Не могу да додам вакцинацију. Није изабран активан пацијент."
-
-#, python-format
-msgid "Exported demographics to XML file [%s]."
+msgid "Cannot import drugs from IFAP into chart without chart."
 msgstr ""
 
 #, python-format
-msgid "Exported demographics to GDT file [%s]."
+msgid "Cannot call IFAP via [%s]."
 msgstr ""
 
 #, python-format
-msgid "Exported demographics to VCARD file [%s]."
-msgstr ""
-
-msgid "Cannot add staff member. No active patient."
+msgid "Cannot create IFAP <-> GNUmed transfer file [%s]."
 msgstr ""
 
-msgid "Cannot delete patient. No patient active."
+msgid "Current medication"
 msgstr ""
 
 msgid ""
-"You have to manually close this window to finalize shutting down GNUmed."
+"\n"
+"The ATC codes as known to GNUmed.\n"
 msgstr ""
 
-msgid "This is so that you can inspect the console output at your leisure."
+msgid "Showing ATC codes."
 msgstr ""
 
-msgid "no patient"
+msgid "Choose an ATC import config file"
 msgstr ""
 
-#, python-format
-msgid "Saved screenshot to file [%s]."
+msgid "config files"
 msgstr ""
 
-msgid "GNUmed client"
+msgid "importing ATC reference data"
 msgstr ""
 
-msgid "GNUmed stdout/stderr window"
+msgid "Successfully imported ATC reference data."
 msgstr ""
 
-msgid "redirecting STDOUT/STDERR to this log window"
+msgid "Importing ATC reference data failed."
 msgstr ""
 
-#, python-format
-msgid ""
-"The database account [%s] cannot be used as a\n"
-"staff member login for GNUmed. There was an\n"
-"error retrieving staff details for it.\n"
-"\n"
-"Please ask your administrator for help.\n"
+msgid "Select an ATC (Anatomical-Therapeutic-Chemical) code."
 msgstr ""
 
-msgid "Checking access permissions"
+msgid "Cannot edit this substance. It is in use."
 msgstr ""
 
-#, python-format
-msgid "Database <%s> on <%s>"
+msgid "Adding new consumable substance"
 msgstr ""
 
-#, python-format
-msgid "Branch \"%s\" of praxis \"%s\"\n"
+msgid "Editing consumable substance"
 msgstr ""
 
-msgid "Verifying database"
+msgid "Cannot delete this substance. It is in use."
 msgstr ""
 
-msgid "Connect"
+msgid ""
+"\n"
+"These are the consumable substances registered with GNUmed.\n"
 msgstr ""
 
-msgid "Yes, connect to this database."
+msgid "Import"
 msgstr ""
 
-msgid "Disconnect"
+msgid "Import consumable substances from a drug database."
 msgstr ""
 
-msgid "No, do not connect to this database."
+msgid "Cannot save consumable substance. Missing essential input."
 msgstr ""
 
 #, python-format
-msgid ""
-"Cannot find configuration file in any of:\n"
-"\n"
-" %s\n"
-"You may need to use the comand line option\n"
-"\n"
-"\t--conf-file=<FILE>"
+msgid "Cannot save consumable substance. %s"
 msgstr ""
 
-msgid "Checking configuration files"
+msgid "The substance with optional strength."
 msgstr ""
 
-msgid "GNUmed startup"
+msgid "Cannot remove this component from the drug. It is in use."
 msgstr ""
 
-#, python-format
 msgid ""
-"The currently selected database language ('%s') does\n"
-"not match the current system language ('%s').\n"
 "\n"
-"Do you want to set the database language to '%s' ?\n"
-msgstr ""
-
-msgid "Checking database language settings"
-msgstr ""
-
-msgid "Set"
+"These are the components in the drug brands known to GNUmed.\n"
 msgstr ""
 
-#, python-format
-msgid "Set your database language to [%s]."
+msgid "Showing drug brand components."
 msgstr ""
 
-msgid "Don't set"
+msgid "Adding new drug component"
 msgstr ""
 
-msgid "Do not set your database language now."
+msgid "Editing drug component"
 msgstr ""
 
-msgid "Remember to ignore language mismatch"
+msgid "Cannot edit drug component. It is in use."
 msgstr ""
 
-#, python-format
-msgid ""
-"Checking this will make GNUmed remember your decision\n"
-"until the system language is changed.\n"
-"\n"
-"You can also reactivate this inquiry by removing the\n"
-"corresponding \"ignore\" option from the configuration file\n"
-"\n"
-" [%s]"
+msgid "Cannot save drug component. Invalid or missing essential input."
 msgstr ""
 
-msgid "generic activity"
+msgid "A drug component with optional strength."
 msgstr ""
 
-msgid "Access denied"
+msgid "Editing drug"
 msgstr ""
 
 #, python-format
 msgid ""
-"Your account is not set up to access this part of GNUmed:\n"
+"Cannot edit the branded drug product\n"
 "\n"
-"  [%s]"
-msgstr ""
-
-msgid "Save timeline as SVG image under..."
-msgstr ""
-
-msgid "timeline image"
+" \"%s\" (%s)\n"
+"\n"
+"because it is currently taken by patients.\n"
 msgstr ""
 
-msgid "timeline data"
+msgid "Adding new drug brand"
 msgstr ""
 
-msgid "Cannot change notebook tabs. No active patient."
+msgid "Editing drug brand"
 msgstr ""
 
-msgid "add plugin ..."
+msgid "Manage consumable substances"
 msgstr ""
 
-msgid "Cannot activate Allergy Manager. No active patient."
+msgid "not in use"
 msgstr ""
 
-msgid "<Age>"
+#, python-format
+msgid "ATC: %s\n"
 msgstr ""
 
-msgid "no patient selected"
+msgid "Editing medication"
 msgstr ""
 
-#, fuzzy, python-format
-msgid "Gender: %s (%s) - %s\n"
-msgstr "Пацијент: %s (%s), Бр: %s\n"
-
 #, python-format
-msgid "Born: %s\n"
+msgid ""
+"Cannot edit the medication\n"
+"\n"
+" \"%s\" (%s)\n"
+"\n"
+"because it is a vaccine. Please edit it\n"
+"from the vaccine management section !\n"
 msgstr ""
 
-#, fuzzy, python-format
-msgid "Died: %s\n"
-msgstr "Пацијент: %s (%s), Бр: %s\n"
-
-#, fuzzy, python-format
-msgid "At age: %s\n"
-msgstr "Пацијент: %s (%s), Бр: %s\n"
-
-msgid " (date of birth and age are estimated)\n"
+msgid "Deleting medication"
 msgstr ""
 
 #, python-format
-msgid "%(sex)s  %(dob)s (%(age)s today !)"
+msgid ""
+"Cannot delete the medication\n"
+"\n"
+" \"%s\" (%s)\n"
+"\n"
+"because it is a vaccine. Please delete it\n"
+"from the vaccine management section !\n"
 msgstr ""
 
 msgid ""
 "\n"
-"Today is the patient's birthday !\n"
-"\n"
+"These are the drug brands known to GNUmed.\n"
 msgstr ""
 
-#, python-format
-msgid "Birthday: %s ago\n"
+msgid "Showing branded drugs."
 msgstr ""
 
-#, python-format
-msgid "Birthday: in %s\n"
+msgid "Import substances and brands from a drug database."
 msgstr ""
 
-#, python-format
-msgid "Age: %s\n"
+msgid "Managing components of a drug"
 msgstr ""
 
 #, python-format
-msgid "last confirmed %s\n"
+msgid ""
+"Cannot manage the components of the branded drug product\n"
+"\n"
+" \"%s\" (%s)\n"
+"\n"
+"because it is currently taken by patients.\n"
 msgstr ""
 
-#, python-format
-msgid "Comment (%s): %%s"
+msgid "Pick the substances which are components of this drug."
 msgstr ""
 
-#, python-format
-msgid " - expires %s"
+msgid "Components of drug"
 msgstr ""
 
 #, python-format
 msgid ""
-"Due for %s (since %s%s):\n"
-"%s%s\n"
-"Patient: %s\n"
-"Reminder by: %s"
-msgstr ""
-
-#, fuzzy
-msgid "Clinical reminder"
-msgstr "клинички релевантно"
+"Adjust the components of \"%s\"\n"
+"\n"
+"The drug must contain at least one component. Any given\n"
+"substance can only be included once per drug."
+msgstr ""
 
-#, fuzzy
-msgid "Adding automatic dynamic hint"
-msgstr "Приказивање вакцина."
+msgid "Managing components of a drug ..."
+msgstr ""
 
-#, fuzzy
-msgid "Editing automatic dynamic hint"
-msgstr "Приказивање вакцина."
+msgid "Cannot edit drug brand. It is in use."
+msgstr ""
 
-#, fuzzy
-msgid "Deleting automatic dynamic hint"
-msgstr "Приказивање вакцина."
+msgid "Checking brand data"
+msgstr ""
 
 #, python-format
 msgid ""
-"Really delete this dynamic hint ?\n"
+"The brand information you entered:\n"
 "\n"
-" [%s]"
+" [%s %s]\n"
+"\n"
+"already exists as a drug product."
 msgstr ""
 
-#, fuzzy
-msgid "deleting a dynamic hint"
-msgstr "Приказивање вакцина."
-
 msgid ""
+"You have not selected any substances\n"
+"as drug components.\n"
 "\n"
-"Dynamic hints registered with GNUmed.\n"
+"Without components you will not be able to\n"
+"use this drug for documenting patient care.\n"
+"\n"
+"Are you sure you want to save\n"
+"it without components ?"
 msgstr ""
 
-#, fuzzy
-msgid "Showing dynamic hints."
-msgstr "Приказивање вакцина."
+msgid "Cannot save branded drug. Invalid or missing essential input."
+msgstr ""
 
-msgid "Hint"
+msgid ""
+"The brand name of the drug.\n"
+"\n"
+"Note: a brand name will need to be linked to\n"
+"one or more components before it can be used,\n"
+"except in the case of fake (generic) vaccines."
 msgstr ""
 
-msgid "Browse and install automatic dynamic hints data packs"
+msgid "No EMR data loaded."
 msgstr ""
 
-#, fuzzy, python-format
-msgid "By: %s"
-msgstr "Пацијент: %s (%s), Бр: %s\n"
+msgid "EMR text dump"
+msgstr ""
 
-msgid "No entry in field <Source>."
+msgid "Currently there is no active patient. Cannot retrieve EMR text."
 msgstr ""
 
-msgid "No entry in field <Conditions>."
+msgid "SOAP Editor Actions:"
 msgstr ""
 
 #, fuzzy
-msgid "No entry in field <Description>."
-msgstr "Рецепти"
+msgid "&Sort lines"
+msgstr "Направи лажне вакцине"
 
-msgid "No entry in field <Title>."
+msgid "Sort lines by SOAP category"
 msgstr ""
 
-#, fuzzy
-msgid "creating a new dynamic hint"
-msgstr "Приказивање вакцина."
+msgid "e&Xpand keyword"
+msgstr ""
 
-msgid "updating an existing dynamic hint"
+msgid "Expand keyword / macro"
 msgstr ""
 
 #, fuzzy
-msgid "Deleting suppressed dynamic hint"
-msgstr "Приказивање вакцина."
+msgid "as &Subjective"
+msgstr "активан"
 
-#, python-format
-msgid ""
-"Really delete the suppression of this dynamic hint ?\n"
-"\n"
-" [%s]"
+msgid "Set line to category \"Subjective\""
 msgstr ""
 
-msgid ""
-"\n"
-"Dynamic hints suppressed in this patient.\n"
+#, fuzzy
+msgid "as &Objective"
+msgstr "активан"
+
+msgid "Set line to category \"Objective\""
 msgstr ""
 
-#, fuzzy
-msgid "Showing suppressed dynamic hints."
-msgstr "Приказивање вакцина."
+msgid "as &Assessment"
+msgstr ""
 
-#, fuzzy
-msgid "Rationale"
-msgstr "Реакција"
+msgid "Set line to category \"Assessment\""
+msgstr ""
 
 #, fuzzy
-msgid "Manage hints"
-msgstr "Уреди вакцинације"
+msgid "as &Plan"
+msgstr "План"
 
-#, fuzzy
-msgid "Manage automatic dynamic hints"
-msgstr "Приказивање вакцина."
+msgid "Set line to category \"Plan\""
+msgstr ""
 
-msgid "Cannot delete family history item."
+msgid "as &Unspecified"
 msgstr ""
 
-msgid "Family history of this patient."
+msgid "Set line to category \"unspecified\""
 msgstr ""
 
-msgid "Showing family history."
+#, fuzzy
+msgid "as ad&Ministrative"
+msgstr "неактиван"
+
+msgid "Set line to category \"administrative\""
 msgstr ""
 
-msgid "Fatal"
+msgid "→ &Clipboard"
 msgstr ""
 
-msgid "Noted"
+msgid "Copy line to clipboard"
 msgstr ""
 
-msgid "Died"
+msgid "→ +Clipboard+"
 msgstr ""
 
-msgid "Adding family history"
+msgid "Add line to clipboard"
 msgstr ""
 
-msgid "Editing family history"
+msgid "Copy content to clipboard"
 msgstr ""
 
-msgid "No EMR data loaded."
+msgid "Add content to clipboard"
 msgstr ""
 
-msgid "EMR text dump"
+#, fuzzy
+msgid "Copy selection to clipboard"
+msgstr "Додавање нове вакцине"
+
+msgid "Add selection to clipboard"
 msgstr ""
 
-msgid "Currently there is no active patient. Cannot retrieve EMR text."
+#, fuzzy
+msgid "&Line ..."
+msgstr "Вакцина ..."
+
+msgid "&Text ..."
 msgstr ""
 
+#, fuzzy
+msgid "&Region ..."
+msgstr "Уређивање вакцинације"
+
 msgid "Show HL7 file:"
 msgstr ""
 
@@ -15824,6 +16765,10 @@ msgstr ""
 msgid "Extracting HL7 from XML file"
 msgstr ""
 
+#, python-format
+msgid "Unwrapped HL7 into [%s] from [%s]."
+msgstr ""
+
 msgid "Select HL7 file for staging:"
 msgstr ""
 
@@ -15848,6 +16793,10 @@ msgid ""
 " %s"
 msgstr ""
 
+#, python-format
+msgid "Staged HL7 from [%s]."
+msgstr ""
+
 msgid "Importing HL7 data"
 msgstr ""
 
@@ -15892,9 +16841,6 @@ msgstr ""
 msgid "Identification"
 msgstr ""
 
-msgid "Show"
-msgstr ""
-
 msgid "Show formatted HL7"
 msgstr ""
 
@@ -15941,6 +16887,22 @@ msgstr ""
 msgid "Plot current selection"
 msgstr ""
 
+#, fuzzy
+msgid ""
+"Select the measurements panel to show in the top pane for continuous "
+"monitoring."
+msgstr ""
+"\n"
+"Комплетна историја вакцинације овог пацијента.\n"
+
+#, fuzzy
+msgid "Lab panel"
+msgstr "Уреди вакцинације"
+
+#, fuzzy
+msgid "Configuring continuous monitoring measurements panel"
+msgstr "Мерења и резултати: %s"
+
 msgid "No default Gnuplot script template selected."
 msgstr ""
 
@@ -15963,10 +16925,25 @@ msgstr ""
 msgid "Cannot plot without a plot script."
 msgstr ""
 
-msgid "Time"
+msgid "Result"
 msgstr ""
 
-msgid "Result"
+msgid "Perform on selected results:"
+msgstr ""
+
+msgid "Review and &sign"
+msgstr ""
+
+msgid "Export to &file"
+msgstr ""
+
+msgid "Export to &clipboard"
+msgstr ""
+
+msgid "Panels"
+msgstr ""
+
+msgid "List"
 msgstr ""
 
 msgid ""
@@ -16044,18 +17021,6 @@ msgstr ""
 msgid "All: by &Day"
 msgstr ""
 
-msgid "Perform on selected results:"
-msgstr ""
-
-msgid "Review and &sign"
-msgstr ""
-
-msgid "Export to &file"
-msgstr ""
-
-msgid "Export to &clipboard"
-msgstr ""
-
 #, python-format
 msgid "%s results selected. Too many to list individually."
 msgstr ""
@@ -16240,6 +17205,10 @@ msgstr ""
 msgid "EMR Actions:"
 msgstr ""
 
+#, fuzzy
+msgid "Print EMR"
+msgstr "Пацијент: %s (%s), Бр: %s\n"
+
 msgid "Create health issue"
 msgstr ""
 
@@ -16389,11 +17358,42 @@ msgstr ""
 msgid "&New notes %s"
 msgstr ""
 
+msgid "Find text in EMR Journal"
+msgstr ""
+
+#, fuzzy
+msgid "Modified"
+msgstr "измењена ставка"
+
+#, fuzzy
+msgid "Clinical time"
+msgstr "клинички релевантно"
+
+msgid "Who / When"
+msgstr ""
+
+#, python-format
 msgid ""
-"An error occurred while retrieving the EMR\n"
-"in journal form for the active patient.\n"
+"Chart entry: %s       [#%s in %s]\n"
+" Modified: %s by %s (%s rev %s)\n"
 "\n"
-"Please check the log file for details."
+"Health issue: %s%s\n"
+"Episode: %s%s\n"
+"Encounter: %s%s"
+msgstr ""
+
+#, python-format
+msgid ""
+"%s\n"
+"\n"
+"                        rev %s (%s) by %s in <%s>"
+msgstr ""
+
+#, python-format
+msgid ""
+"%s\n"
+"%s\n"
+"%s"
 msgstr ""
 
 msgid "Editing tag"
@@ -16523,18 +17523,15 @@ msgid ""
 "%s\n"
 msgstr ""
 
-msgid "This patient DID receive care."
+msgid "This patient DID receive care here."
 msgstr ""
 
-msgid "This person did NOT receive care."
+msgid "This person did NOT receive care here."
 msgstr ""
 
 msgid "Disabling person"
 msgstr ""
 
-msgid "Disabling patient"
-msgstr ""
-
 msgid "Type or select a last name (family name/surname)."
 msgstr ""
 
@@ -16803,6 +17800,9 @@ msgstr ""
 "\n"
 "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
 
+msgid "Connecting to backend"
+msgstr ""
+
 #, python-format
 msgid ""
 "Unable to connect to database:\n"
@@ -17011,9 +18011,6 @@ msgstr ""
 msgid "Office"
 msgstr ""
 
-msgid "State"
-msgstr ""
-
 msgid "Zip"
 msgstr ""
 
@@ -17070,8 +18067,9 @@ msgstr ""
 msgid "EMR Timeline"
 msgstr ""
 
-msgid "Show &Timeline"
-msgstr ""
+#, fuzzy
+msgid "EMR &Timeline"
+msgstr "Направи лажне вакцине"
 
 msgid "Overview"
 msgstr ""
@@ -17097,10 +18095,10 @@ msgstr ""
 msgid "&SimpleNotes"
 msgstr ""
 
-msgid "EMR tree"
+msgid "EMR Tree"
 msgstr ""
 
-msgid "EMR &Tree (topical)"
+msgid "EMR &Tree"
 msgstr ""
 
 msgid "Print Manager"
@@ -17109,6 +18107,12 @@ msgstr ""
 msgid "&Print Manager"
 msgstr ""
 
+msgid "EMR Journal"
+msgstr ""
+
+msgid "EMR &Journal (list)"
+msgstr ""
+
 msgid "Appointments"
 msgstr ""
 
@@ -17121,6 +18125,12 @@ msgstr ""
 msgid "Show &lab journal"
 msgstr ""
 
+msgid "PACS"
+msgstr ""
+
+msgid "&PACS"
+msgstr ""
+
 msgid "Cardiac Devices"
 msgstr ""
 
@@ -17193,10 +18203,7 @@ msgstr ""
 msgid "User &manual (local)"
 msgstr ""
 
-msgid "EMR journal"
-msgstr ""
-
-msgid "EMR &Journal (chronological)"
+msgid "EMR &Journal (text)"
 msgstr ""
 
 msgid "Demographics"
@@ -17357,6 +18364,10 @@ msgstr ""
 msgid "Show &ExamplePlugin"
 msgstr ""
 
+#, fuzzy
+msgid "Find text"
+msgstr "неактиван"
+
 msgid "gm_ctl_client: starting slave GNUmed client"
 msgstr ""
 
@@ -17384,16 +18395,88 @@ msgid "Abort and do NOT connect to GNUmed."
 msgstr ""
 
 #, fuzzy
-#~ msgid "%s: %s%s%s (%s ago)"
-#~ msgstr "Документа: %s"
+#~ msgid ""
+#~ "Health issue: %s%s%s (%s versions)\n"
+#~ "\n"
+#~ msgstr "здравствени проблем: %s"
+
+#, fuzzy
+#~ msgid "Search in list"
+#~ msgstr "Листа лекова"
 
 #, fuzzy
-#~ msgid "Clinical hint"
-#~ msgstr "клинички релевантно"
+#~ msgid "&Unknown"
+#~ msgstr "непозната реакција"
 
 #, fuzzy
-#~ msgid "file: %s (%s/)"
-#~ msgstr "Пацијент: %s (%s), Бр: %s\n"
+#~ msgid "Last confirmed: %s%s"
+#~ msgstr "Последње потрврђено:"
+
+#, fuzzy
+#~ msgid "Smoking status"
+#~ msgstr "Статус"
+
+#~ msgid ""
+#~ "Unable to connect to database:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Are you sure you have got a local database installed ?\n"
+#~ "\n"
+#~ "Please retry with proper credentials or cancel.\n"
+#~ "\n"
+#~ "You may also need to check the PostgreSQL client\n"
+#~ "authentication configuration in pg_hba.conf. For\n"
+#~ "details see:\n"
+#~ "\n"
+#~ "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
+#~ msgstr ""
+#~ "Не могу да се повежем са базом:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Проверите да ли имате инсталирану локалну базу података ?\n"
+#~ "\n"
+#~ "Пробајте поново са одговарајућим подацима или одустаните.\n"
+#~ "\n"
+#~ "Проверите подешавања за логовање у PostgreSQL \n"
+#~ "клијенту и pg_hba.conf. \n"
+#~ "За детаље погледајте:\n"
+#~ "\n"
+#~ "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
+
+#~ msgid ""
+#~ "Unable to connect to database:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Please retry with proper credentials or cancel.\n"
+#~ "\n"
+#~ "You may also need to check the PostgreSQL client\n"
+#~ "authentication configuration in pg_hba.conf. For\n"
+#~ "details see:\n"
+#~ "\n"
+#~ "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
+#~ msgstr ""
+#~ "Не могу да се повежем са базом:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Пробајте поново са одговарајућим подацима или одустаните.\n"
+#~ "\n"
+#~ "Проверите подешавања за логовање у PostgreSQL \n"
+#~ "клијенту и pg_hba.conf. \n"
+#~ "За детаље погледајте:\n"
+#~ "\n"
+#~ "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
+
+#, fuzzy
+#~ msgid ""
+#~ "\n"
+#~ "Select the measurements panel to show in the top pane.\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Комплетна историја вакцинације овог пацијента.\n"
 
 #, fuzzy
 #~ msgid "Switching clinical hint activation"
diff --git a/client/po/sv-gnumed.mo b/client/po/sv-gnumed.mo
index e9701c8..193d911 100644
Binary files a/client/po/sv-gnumed.mo and b/client/po/sv-gnumed.mo differ
diff --git a/client/po/sv.po b/client/po/sv.po
index 855549a..48c9cac 100644
--- a/client/po/sv.po
+++ b/client/po/sv.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gnumed\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-12-26 20:29+0100\n"
+"POT-Creation-Date: 2016-03-17 16:28+0100\n"
 "PO-Revision-Date: 2012-04-07 10:15+0000\n"
 "Last-Translator: Rikard Edgren <Unknown>\n"
 "Language-Team: Swedish <kde-i18n-doc at kde.org>\n"
@@ -1550,10 +1550,22 @@ msgstr ""
 "Hjälp har begärts\n"
 "------------------------"
 
+#, fuzzy, python-format
+msgid "Revision #%s"
+msgstr " Ny version: \"%s\""
+
 #, python-format
 msgid "[%s:%s]: row not updated (nothing returned), row in use ?"
 msgstr "[%s:%s]: rad har ej uppdaterats (inget har returnerats), rad upptagen?"
 
+#, fuzzy, python-format
+msgid "<%s(.bat)> not found"
+msgstr "Sidan hittades inte"
+
+#, python-format
+msgid "problem with <%s>"
+msgstr ""
+
 #, python-format
 msgid "[%s] is not a readable file"
 msgstr "[%s] är inte en läsbar fil"
@@ -1592,30 +1604,8 @@ msgstr "1 Byte"
 msgid "%s Bytes"
 msgstr "%s Byte"
 
-# med / till , genom / med
-#, python-format
-msgid ""
-"Cannot connect to configuration database with:\n"
-"\n"
-"[%s]"
-msgstr ""
-"Kan inte upprätta förbindelse med konfigurationsdatabasen genom:\n"
-"\n"
-"[%s]"
-
-# med / till , genom / med
-#, python-format
-msgid ""
-"Cannot connect to database with:\n"
-"\n"
-"[%s]"
+msgid "<type>"
 msgstr ""
-"Kan inte upprätta förbindelse med databasen genom:\n"
-"\n"
-"[%s]"
-
-msgid "No product information available."
-msgstr "Ingen information tillgänglig om produkten."
 
 #, python-format
 msgid ""
@@ -1975,110 +1965,6 @@ msgstr " inställning [%s]: %s"
 msgid "  risk: %s"
 msgstr "  risk: %s"
 
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Are you sure you have got a local database installed ?\n"
-"\n"
-"Please retry with proper credentials or cancel.\n"
-"\n"
-"You may also need to check the PostgreSQL client\n"
-"authentication configuration in pg_hba.conf. For\n"
-"details see:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-msgstr ""
-"Kan inte ansluta till databasen:\n"
-"\n"
-"%s\n"
-"\n"
-"Är du säker att du installerat den lokala databasen?\n"
-"\n"
-"Var vänlig försök igen eller avbryt.\n"
-"Glöm inte att kontrollera inloggningsuppgifterna.\n"
-"\n"
-"Du kan också behöva kontrollera PostgreSQL-klientens konfiguration för "
-"auktorisering \n"
-"gentemot databasen. Detta konfigureras i filen pg_hba.conf. \n"
-"För mer information se:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Please retry with proper credentials or cancel.\n"
-"\n"
-"You may also need to check the PostgreSQL client\n"
-"authentication configuration in pg_hba.conf. For\n"
-"details see:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-msgstr ""
-"Kan inte ansluta till databasen:\n"
-"\n"
-"%s\n"
-"\n"
-"Var vänlig försök igen eller avbryt.\n"
-"Glöm inte att kontrollera inloggningsuppgifterna.\n"
-"\n"
-"Du kan också behöva kontrollera PostgreSQL-klientens konfiguration för \n"
-"auktorisering gentemot databasen. Detta konfigureras i filen pg_hba.conf. \n"
-"För mer information se:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-
-msgid "Connecting to backend"
-msgstr "Ansluter till databasen via databasens direkta gränssnitt."
-
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Please retry another backend / user / password combination !\n"
-msgstr ""
-"Lyckas ubte ansluta till databasen:\n"
-"\n"
-"%s\n"
-"\n"
-"Var vänlig försök med annat gränssnitt, annan användare eller annat "
-"lösenord.\n"
-
-msgid "programmer forgot to specify error message"
-msgstr "Felmeddelandet har ej specifierats."
-
-msgid ""
-"\n"
-"\n"
-"Please consult the error log for all the gory details !"
-msgstr ""
-"\n"
-"\n"
-"Var vänlig konsultera felloggen för vidare information"
-
-msgid "generic error message"
-msgstr "Allmänt felmeddelanden"
-
-msgid "programmer forgot to specify info message"
-msgstr "Informationsmeddelande har ej specifierats."
-
-msgid "generic info message"
-msgstr "Allmänt informationsmeddelande"
-
-msgid "programmer forgot to specify warning"
-msgstr "Programmerare har glömt att specifiera Varningsmeddelande"
-
-msgid "generic warning message"
-msgstr "Allmänt varningsmeddelande"
-
 msgid "no hook specified, please report bug"
 msgstr ""
 "ingen hulling (eng. hook) har specificerats, var vänlig rapportera denna "
@@ -2400,6 +2286,33 @@ msgstr ""
 msgid "Include:"
 msgstr ""
 
+msgid "&Search"
+msgstr ""
+
+msgid "Suggest"
+msgstr ""
+
+msgid "Set"
+msgstr ""
+
+msgid "dialog_1"
+msgstr ""
+
+msgid "Search patients in Orthanc DICOM store."
+msgstr ""
+
+#, fuzzy
+msgid "Suggest a patient ID based on the active patient."
+msgstr "Initierade en ny undersökning för den valda patienten."
+
+#, fuzzy
+msgid "Search term:"
+msgstr "Medicinlista"
+
+#, fuzzy
+msgid "New patient ID:"
+msgstr "internt patient-ID"
+
 msgid "Your review"
 msgstr ""
 
@@ -2714,6 +2627,97 @@ msgstr "Substans"
 msgid "Amount"
 msgstr ""
 
+#, fuzzy
+msgid "&Connect"
+msgstr "&Innehåll\tF1"
+
+msgid "&Browse"
+msgstr ""
+
+msgid "<not connected>"
+msgstr ""
+
+msgid "Browse all"
+msgstr ""
+
+#, fuzzy
+msgid "Export all"
+msgstr "Exportera till SVG"
+
+msgid "Browse"
+msgstr ""
+
+msgid "Export"
+msgstr ""
+
+msgid "Upload"
+msgstr ""
+
+msgid "Enter the PACS host address."
+msgstr ""
+
+msgid "Enter the PACS port."
+msgstr ""
+
+msgid "Enter the PACS user."
+msgstr ""
+
+#, fuzzy
+msgid "Enter the PACS password. It will not be shown."
+msgstr "Lösenord för det nya databaskontot. Inmatning visas ej."
+
+#, fuzzy
+msgid "Connect to PACS."
+msgstr "Anslut till GNUmed"
+
+msgid "Browse PACS at top level."
+msgstr ""
+
+msgid "Modify some of Orthanc content (such as patient IDs)."
+msgstr ""
+
+#, fuzzy
+msgid "Browse overview of studies for this patient."
+msgstr "Det finn inga episoder för detta vårdärende"
+
+#, fuzzy
+msgid "Copy all studies into export area."
+msgstr "Lägger till ny undersökningstyp"
+
+msgid "Browse topmost selected study."
+msgstr ""
+
+#, fuzzy
+msgid "Copy selected studies into export area."
+msgstr "Lägger till ny undersökningstyp"
+
+msgid "Save selected studies to disk."
+msgstr ""
+
+msgid ""
+"Upload DICOM files from a directory, recursively, into the Orthanc PACS\n"
+"\n"
+"The currently active patient does not matter. Orthanc will associate "
+"uploaded files with the patient found within the DICOM metadata. It will "
+"create new patients as needed."
+msgstr ""
+
+msgid "Host:"
+msgstr ""
+
+msgid "Port:"
+msgstr ""
+
+msgid "User:"
+msgstr ""
+
+msgid "Password"
+msgstr "Lösenord"
+
+#, fuzzy
+msgid "Selected studies:"
+msgstr "Välj händelse"
+
 msgid "Fake brand"
 msgstr ""
 
@@ -3047,9 +3051,6 @@ msgstr "Allmänt felmeddelanden"
 msgid "&Load"
 msgstr ""
 
-msgid "Export"
-msgstr ""
-
 msgid "A long, descriptive name for this form template."
 msgstr ""
 
@@ -3137,15 +3138,13 @@ msgstr ""
 msgid "Document Properties"
 msgstr ""
 
-msgid "Show part"
-msgstr ""
+#, fuzzy
+msgid "Show"
+msgstr "Visa tid"
 
 msgid "Remove part"
 msgstr ""
 
-msgid "Parts"
-msgstr ""
-
 msgid "Discard"
 msgstr ""
 
@@ -3173,6 +3172,12 @@ msgstr ""
 msgid "Required: The primary episode this document is to be listed under."
 msgstr ""
 
+#, fuzzy
+msgid "Optional: The organization (unit) this document originated from."
+msgstr ""
+"\n"
+"Välj den undersökningstyp du vill redigera!\n"
+
 msgid ""
 "Optional: A short comment identifying the document. Good comments give an "
 "idea of the content and source of the document."
@@ -3197,6 +3202,9 @@ msgid ""
 "normal and abnormal resuslts can be relevant."
 msgstr ""
 
+msgid "Optional: A free-text document description."
+msgstr ""
+
 msgid "This field lists the parts belonging to the current document."
 msgstr ""
 
@@ -3208,9 +3216,6 @@ msgid ""
 "deletion from disk."
 msgstr ""
 
-msgid "Optional: A free-text document description."
-msgstr ""
-
 msgid "Save finished document."
 msgstr ""
 
@@ -3226,6 +3231,10 @@ msgstr ""
 msgid "Associate to episode:"
 msgstr ""
 
+#, fuzzy
+msgid "Document source:"
+msgstr "Dokument:"
+
 msgid "Comment / Identification:"
 msgstr ""
 
@@ -3415,7 +3424,7 @@ msgstr ""
 msgid "Messages:"
 msgstr ""
 
-msgid "Only:"
+msgid "Limit to:"
 msgstr ""
 
 msgid "&Myself … or:"
@@ -3533,10 +3542,10 @@ msgstr ""
 msgid "Purpose"
 msgstr ""
 
-msgid "Details"
+msgid "Please supply your email address here !"
 msgstr ""
 
-msgid "<Please supply your email address here !>"
+msgid "Details"
 msgstr ""
 
 msgid "Keep running"
@@ -3560,9 +3569,11 @@ msgid ""
 msgstr ""
 
 msgid ""
-"Please enter your email address so we can provide feedback directly to you. "
-"Otherwise, feedback will be given on the GNUmed mailing list (http://lists."
-"gnu.org/mailman/listinfo/gnumed-bugs)."
+"Please enter your email address so we can provide help to you directly.\n"
+"\n"
+"Otherwise, feedback can be given on the GNUmed mailing list (http://lists."
+"gnu.org/mailman/listinfo/gnumed-bugs) ONLY to which you will then have to "
+"subscribe."
 msgstr ""
 
 msgid "Find help on http://wiki.gnumed.de, too."
@@ -3697,9 +3708,6 @@ msgstr "Användarparametrar:"
 msgid "Account"
 msgstr "Konto"
 
-msgid "Password"
-msgstr "Lösenord"
-
 msgid "Password, again"
 msgstr "Lösenord, igen"
 
@@ -4198,7 +4206,7 @@ msgstr ""
 msgid "Acquire images from image source (scanner, ...)."
 msgstr ""
 
-msgid "Acquire images or text from the clipboard."
+msgid "Acquire file or text from the clipboard."
 msgstr ""
 
 msgid "Remove the selected documents."
@@ -4353,7 +4361,7 @@ msgid ""
 "- the result list will be artificially limited to the first 1000 rows\n"
 "- you can include a column named \"pk_patient\" to make the result rows "
 "activate the corresponding patient on double-clicking\n"
-"- by inserting $<ID_active_patient>$ you can access the patient ID of the "
+"- by inserting $<ID_ACTIVE_PATIENT>$ you can access the patient ID of the "
 "patient active at the time of running the query"
 msgstr ""
 
@@ -4516,9 +4524,6 @@ msgstr ""
 msgid "Link &new"
 msgstr ""
 
-msgid "Browse"
-msgstr ""
-
 msgid ""
 "Search for matches among existing addresses and [Link] a selection, or [Link "
 "(a) new] address."
@@ -4567,25 +4572,16 @@ msgid ""
 "left."
 msgstr ""
 
-msgid "label_1"
+msgid "Subjective"
 msgstr ""
 
-msgid "→"
+msgid "Objective"
 msgstr ""
 
-msgid "←"
+msgid "Assessment"
 msgstr ""
 
-msgid "Extra"
-msgstr ""
-
-msgid "Move selected items from left to right."
-msgstr ""
-
-msgid "Move selected items from right to left."
-msgstr ""
-
-msgid "Cancel picking items."
+msgid "Plan"
 msgstr ""
 
 msgid "Episode synopsis"
@@ -4621,19 +4617,28 @@ msgid ""
 "narrative belongs to."
 msgstr ""
 
-msgid "Subjective"
+msgid "Codes:"
 msgstr ""
 
-msgid "Codes:"
+msgid "label_1"
 msgstr ""
 
-msgid "Objective"
+msgid "→"
 msgstr ""
 
-msgid "Assessment"
+msgid "←"
 msgstr ""
 
-msgid "Plan"
+msgid "Extra"
+msgstr ""
+
+msgid "Move selected items from left to right."
+msgstr ""
+
+msgid "Move selected items from right to left."
+msgstr ""
+
+msgid "Cancel picking items."
 msgstr ""
 
 msgid "1"
@@ -4813,6 +4818,86 @@ msgstr ""
 msgid "Age range"
 msgstr ""
 
+msgid "&Nicotine"
+msgstr ""
+
+msgid "&Alcohol"
+msgstr ""
+
+msgid "&Other:"
+msgstr ""
+
+msgid "&Non-harmful use"
+msgstr ""
+
+msgid "&Harmful use"
+msgstr ""
+
+msgid "Presently &addicted"
+msgstr ""
+
+#, fuzzy
+msgid "Previously &addicted"
+msgstr "Föregående Undersökningar"
+
+msgid "&Reconfirm as of today"
+msgstr ""
+
+msgid "Select for documenting smoking status."
+msgstr ""
+
+msgid "Select for documenting alcohol use status."
+msgstr ""
+
+msgid ""
+"Select for documenting use of substances other than nicotine or alcohol."
+msgstr ""
+
+#, fuzzy
+msgid "Select the abused substance."
+msgstr "Välj typ av undersökning"
+
+msgid ""
+"Select if the substance use is not considered harmful (say, no use or non-"
+"harmful use)."
+msgstr ""
+
+msgid "Select if substance is use considered harmful."
+msgstr ""
+
+msgid "Select if the patient is presently addicted to this substance."
+msgstr ""
+
+msgid "Select if the patient was previously addicted to this substance."
+msgstr ""
+
+msgid ""
+"A comment on this substance use:\n"
+"- type of product used\n"
+"- frequency\n"
+"- amount\n"
+"- when started\n"
+"- attempts to quit\n"
+"..."
+msgstr ""
+
+msgid ""
+"When did the patient quit?\n"
+"\n"
+"You can also set a target quit date here."
+msgstr ""
+
+#, fuzzy
+msgid "Check here to confirm for today."
+msgstr "Definiera utskriftsformat"
+
+msgid "Quit date"
+msgstr ""
+
+#, fuzzy
+msgid "Last confirmed"
+msgstr "<senast verifierad>"
+
 msgid "Closed episodes"
 msgstr ""
 
@@ -5156,20 +5241,18 @@ msgstr ""
 msgid "Show:"
 msgstr ""
 
-msgid "Brand by component"
+msgid "Kidneys"
 msgstr ""
 
 msgid "Brands"
 msgstr ""
 
-msgid "Kidneys"
-msgstr ""
-
-msgid "Unbranded substance"
+msgid "Substances"
 msgstr ""
 
-msgid "Manage"
-msgstr ""
+#, fuzzy
+msgid "&Unknown or date:"
+msgstr "okänd reaktion"
 
 msgid "Approved of"
 msgstr ""
@@ -5184,23 +5267,20 @@ msgid "... Reason"
 msgstr ""
 
 msgid ""
-"A component of a drug brand the patient is taking.\n"
+"A drug the patient is taking.\n"
 "\n"
-"Lookup, and select, a single- (or multi-) component drug brand, by active "
-"ingredient name. All components of multi-component drugs will be displayed "
-"and automatically added to the patient's list."
-msgstr ""
-
-msgid ""
-"Manage drug brands.\n"
+"Lookup and select an intake by either of\n"
+"- a generic substance name\n"
+"- a drug brand name\n"
+"- an active ingredient of a drug\n"
 "\n"
-"Note that this will not select a component for you. What it does is to let "
-"you manage (add/edit/delete) the drug products/brands known to GNUmed from "
-"which you can select a component."
+"Note that all components of multi-component drugs will be displayed and "
+"automatically added to the patient's list."
 msgstr ""
 
-msgid "The active ingredients of this brand."
-msgstr ""
+#, fuzzy
+msgid "Details on the selected drug."
+msgstr "Duplicera den Markerade Händelsen"
 
 msgid "Show cardiac information relevant to substance selection."
 msgstr ""
@@ -5209,8 +5289,11 @@ msgid "Show renal insufficiency information related to substance selection."
 msgstr ""
 
 msgid ""
-"The non-branded medication or non-medication substance, with optional "
-"strength."
+"Manage drug brands.\n"
+"\n"
+"Note that this will not select a component for you. What it does is to let "
+"you manage (add/edit/delete) the drug products/brands known to GNUmed from "
+"which you can select a component."
 msgstr ""
 
 msgid ""
@@ -5223,11 +5306,19 @@ msgstr ""
 msgid "The preparation or form of the substance."
 msgstr ""
 
+msgid "Check here if the start date simply isn't known."
+msgstr ""
+
 msgid ""
 "When was this substance started to be consumed or - if not known - the "
 "earliest it is known to have been be consumed."
 msgstr ""
 
+msgid ""
+"A coment on the certainty of the start date, such as \"+/- 3 weeks\", "
+"\"spring of 2002\", \"shortly after Easter 1996\", ...."
+msgstr ""
+
 msgid "Whether this substance is taken by advice."
 msgstr ""
 
@@ -5261,6 +5352,16 @@ msgstr ""
 msgid "Reason for discontinuation."
 msgstr ""
 
+msgid "Drug"
+msgstr "Medicin"
+
+msgid "Research:"
+msgstr ""
+
+#, fuzzy
+msgid "Certainty:"
+msgstr "Behållare:"
+
 msgid "Schedule"
 msgstr ""
 
@@ -5412,6 +5513,34 @@ msgstr ""
 msgid "Channel"
 msgstr ""
 
+#, fuzzy
+msgid "&Last modification time"
+msgstr "<senast verifierad>"
+
+#, fuzzy
+msgid "&Entry time"
+msgstr "Sluttid "
+
+msgid "Show journal ordered by encounter."
+msgstr ""
+
+msgid "Show journal ordered by time of last modification."
+msgstr ""
+
+msgid "Show journal ordered by actual clinical time of each entry."
+msgstr ""
+
+#, fuzzy
+msgid "Edit the selected chart entry."
+msgstr "&Duplicera Markerad Händelse..."
+
+#, fuzzy
+msgid "Delete selected chart entry."
+msgstr "Välj motsvarande undersökning"
+
+msgid "Order by:"
+msgstr ""
+
 msgid "Chec&k"
 msgstr ""
 
@@ -5973,10 +6102,13 @@ msgstr ""
 msgid "Documents:"
 msgstr "Dokument:"
 
+msgid "&L"
+msgstr ""
+
 msgid "&N"
 msgstr ""
 
-msgid "&L"
+msgid "List all encounters."
 msgstr ""
 
 msgid "The encounter."
@@ -5985,9 +6117,6 @@ msgstr ""
 msgid "Start a new encounter for the active patient."
 msgstr ""
 
-msgid "List all encounters."
-msgstr ""
-
 msgid "Clinically relevant"
 msgstr ""
 
@@ -6241,10 +6370,12 @@ msgstr ""
 msgid "Manage dynamic hints."
 msgstr "Öppna en befintlig tidslinje"
 
+#, fuzzy
 msgid ""
 "Rationale for\n"
-"suppression"
-msgstr ""
+"suppression\n"
+"for this patient"
+msgstr "externt patient-ID"
 
 msgid "Save &under"
 msgstr ""
@@ -6303,6 +6434,12 @@ msgstr ""
 msgid "Encounter:"
 msgstr "Undersökning:"
 
+msgid "Manage"
+msgstr ""
+
+msgid "&Panel:"
+msgstr ""
+
 msgid "&Pick"
 msgstr ""
 
@@ -6345,6 +6482,9 @@ msgid ""
 "To disable that popup leave the message empty."
 msgstr ""
 
+msgid "Show search dialog."
+msgstr ""
+
 msgid "THIS IS NOT A VERIFIED MEASUREMENT. DO NOT USE FOR ACTUAL CARE."
 msgstr ""
 
@@ -6633,6 +6773,55 @@ msgstr "*har* allergier"
 msgid "ERROR: unknown allergy state [%s]"
 msgstr "FEL: Okänt allergiskt tillstånd [%s]"
 
+msgid "definite"
+msgstr ""
+
+#, fuzzy
+msgid "indefinite"
+msgstr "&Definit"
+
+#, fuzzy
+msgid "Reaction:"
+msgstr "Reaktion"
+
+msgid "Noted:"
+msgstr ""
+
+#, fuzzy
+msgid "Allergene:"
+msgstr "Allergi"
+
+#, fuzzy
+msgid "Substance:"
+msgstr "Substans"
+
+#, fuzzy
+msgid "Code:"
+msgstr ""
+"\n"
+" Ta(inta): %s"
+
+msgid "ATC:"
+msgstr ""
+
+msgid "Specific to:"
+msgstr ""
+
+#, fuzzy
+msgid "this substance only"
+msgstr "Frågor och svar"
+
+#, fuzzy
+msgid "drug class"
+msgstr "Medicinkategorier"
+
+msgid "unknown"
+msgstr ""
+
+#, fuzzy
+msgid "Generics:"
+msgstr "Generika"
+
 msgid "Medication history"
 msgstr "Medicineringshistorik"
 
@@ -6644,9 +6833,15 @@ msgstr "Beskrivning"
 msgid "prescription data"
 msgstr "Beskrivning"
 
+msgid "Consumable substance"
+msgstr ""
+
 msgid "in use"
 msgstr ""
 
+msgid "w/"
+msgstr ""
+
 msgid "long-term"
 msgstr "lång sikt"
 
@@ -6666,6 +6861,41 @@ msgid "?ongoing"
 msgstr "?pågående"
 
 #, python-format
+msgid ""
+"Substance abuse entry                                              [#%s]\n"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "Substance: %s [#%s]%s\n"
+msgstr ""
+"\n"
+" Ta(inta): %s"
+
+#, fuzzy, python-format
+msgid "Use type: %s\n"
+msgstr ""
+"\n"
+" Ta(inta): %s"
+
+#, fuzzy, python-format
+msgid "Last checked: %s\n"
+msgstr "Senast bearbetad: %s\n"
+
+#, python-format
+msgid " Discontinued %s\n"
+msgstr ""
+
+#, fuzzy, python-format
+msgid " Notes: %s\n"
+msgstr ""
+"\n"
+" Ta(inta): %s"
+
+#, python-format
+msgid "Revision: #%(row_ver)s, %(mod_when)s by %(mod_by)s."
+msgstr ""
+
+#, python-format
 msgid "Substance intake entry (%s, %s)   [#%s]                     \n"
 msgstr ""
 
@@ -6681,9 +6911,6 @@ msgstr ""
 msgid "unapproved"
 msgstr ""
 
-msgid "definite"
-msgstr ""
-
 msgid "suspected"
 msgstr ""
 
@@ -6730,10 +6957,6 @@ msgid " (short-term)"
 msgstr ""
 
 #, python-format
-msgid " Discontinued %s\n"
-msgstr ""
-
-#, python-format
 msgid " Reason: %s\n"
 msgstr ""
 
@@ -6753,36 +6976,102 @@ msgstr ""
 msgid " Advice: %s\n"
 msgstr ""
 
-#, python-format
-msgid "Revision: #%(row_ver)s, %(mod_when)s by %(mod_by)s."
+#, fuzzy
+msgid "medication, not abuse"
+msgstr "Frågor och svar"
+
+msgid "no or non-harmful use"
+msgstr ""
+
+msgid "presently harmful use"
+msgstr ""
+
+msgid "presently addicted"
+msgstr ""
+
+msgid "previously addicted"
 msgstr ""
 
 #, fuzzy, python-format
-msgid "%s: %s ago"
+msgid "%s%s: %s ago%s"
 msgstr "Enhet: %s (%s)"
 
 #, fuzzy, python-format
-msgid "%s: %s ago (%s)"
+msgid "%s%s: %s ago (%s)"
 msgstr "Enhet: %s (%s)"
 
-msgid "Additional notes"
-msgstr "Övriga anteckningar"
+#, fuzzy, python-format
+msgid "%s%s%s (%s ago)"
+msgstr "Enhet: %s (%s)"
 
-msgid "Strength"
-msgstr "Styrka"
+#, fuzzy, python-format
+msgid "%s%s%s (%s ago, %s)"
+msgstr "Enhet: %s (%s)"
 
-msgid "Medication list"
-msgstr "Medicinlista"
+#, python-format
+msgid "%s ago"
+msgstr ""
+
+#, python-format
+msgid "in %s"
+msgstr ""
+
+#, fuzzy, python-format
+msgid ", until %s (%s)"
+msgstr "Enhet: %s (%s)"
+
+#, python-format
+msgid " (planned for %s%s)"
+msgstr ""
+
+#, python-format
+msgid ", planned for %s%s"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "%s ago (for %s: %s %s %s)"
+msgstr " Spann: %s (%s - %s)"
+
+msgid "Additional notes"
+msgstr "Övriga anteckningar"
+
+msgid "Strength"
+msgstr "Styrka"
+
+msgid "Medication list"
+msgstr "Medicinlista"
 
 msgid "ordered by brand"
 msgstr "sorterad med avseende på märke"
 
-msgid "Drug"
-msgstr "Medicin"
-
 msgid "Regimen / Advice"
 msgstr ""
 
+#, fuzzy, python-format
+msgid "Component of %s (%s)"
+msgstr "Enhet: %s (%s)"
+
+#, python-format
+msgid "ATC (substance): %s"
+msgstr ""
+
+#, python-format
+msgid "ATC (brand): %s"
+msgstr ""
+
+msgid "this is a component of a fake brand"
+msgstr ""
+
+#, fuzzy
+msgid "Components:"
+msgstr "&Innehåll\tF1"
+
+msgid "this is a fake brand"
+msgstr ""
+
+msgid "this is a vaccine"
+msgstr ""
+
 msgid "units"
 msgstr "enheter"
 
@@ -6815,51 +7104,18 @@ msgstr "Exporterat: %s\n"
 msgid "Expires: %s\n"
 msgstr "Exporterat: %s\n"
 
-msgid "Active clinical hint"
-msgstr ""
-
-msgid "Inactive clinical hint"
-msgstr ""
-
-#, python-format
-msgid "Source: %s\n"
+#, fuzzy
+msgid "HL7 Source"
 msgstr ""
+"\n"
+" Ta(inta): %s"
 
-#, python-format
-msgid "Language: %s\n"
+msgid "HL7 data size"
 msgstr ""
 
-#, fuzzy
-msgid "Suppressed active dynamic hint"
-msgstr "Öppna en befintlig tidslinje"
-
-#, fuzzy
-msgid "Suppressed inactive dynamic hint"
-msgstr "Öppna en befintlig tidslinje"
-
-#, fuzzy, python-format
-msgid "Suppressed by: %s\n"
-msgstr "Exporterat: %s\n"
-
-#, fuzzy, python-format
-msgid "Suppressed at: %s\n"
-msgstr "Exporterat: %s\n"
-
-#, fuzzy, python-format
-msgid "Hint #: %s\n"
-msgstr "Exporterat: %s\n"
-
-#, fuzzy, python-format
-msgid "Patient #: %s\n"
-msgstr "Exporterat: %s\n"
-
 #, fuzzy, python-format
-msgid "MD5 (currently): %s\n"
-msgstr "Dokument: %s"
-
-#, python-format
-msgid "MD5 (at suppression): %s\n"
-msgstr ""
+msgid "%s bytes"
+msgstr "%s Byte"
 
 msgid "HL7 Message"
 msgstr ""
@@ -6915,13 +7171,6 @@ msgstr "SVG-filer"
 msgid "doc: %s"
 msgstr "   Dokument: %s"
 
-msgid "no patient photograph available"
-msgstr ""
-
-#, python-format
-msgid "patient photograph from %s"
-msgstr ""
-
 msgid "Patient data for"
 msgstr ""
 
@@ -6931,6 +7180,9 @@ msgstr ""
 msgid "Patient data export"
 msgstr ""
 
+msgid "no patient photograph available"
+msgstr ""
+
 msgid "Documents"
 msgstr ""
 
@@ -6941,6 +7193,10 @@ msgstr ""
 msgid "browse documents area"
 msgstr " %s dokument\n"
 
+#, python-format
+msgid "patient photograph from %s"
+msgstr ""
+
 #, fuzzy
 msgid "Browse patient data"
 msgstr "Beskrivning"
@@ -6988,51 +7244,57 @@ msgstr ""
 #, python-format
 msgid ""
 "%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s %(suburb)s, "
-"%(code_state)s, %(code_country)s"
+"%(code_region)s, %(code_country)s"
 msgstr ""
 
 #, python-format
 msgid ""
 "%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s %(suburb)s, "
-"%(code_state)s, %(code_country)s"
+"%(code_region)s, %(code_country)s"
 msgstr ""
 
 #, python-format
 msgid ""
-"%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_state)s, "
-"%(code_country)s"
+"%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, "
+"%(code_region)s, %(code_country)s"
 msgstr ""
 
 #, python-format
 msgid ""
-"%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_state)s, "
+"%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_region)s, "
 "%(code_country)s"
 msgstr ""
 
-#, python-format
+#, fuzzy, python-format
 msgid ""
 "Address (%(type)s) [#%(pk_adr)s]\n"
 " Street: %(street)s%(notes_street)s\n"
 " Number/Unit: %(number)s%(subunit)s%(notes_subunit)s\n"
 " Location: %(zip)s %(urb)s%(suburb)s\n"
-" Region: %(l10n_state)s, %(code_state)s\n"
+" Region: %(l10n_region)s, %(code_region)s\n"
 " Country: %(l10n_country)s, %(code_country)s"
 msgstr ""
+"Adress [#%(pk_adr)s]\n"
+" Gata: %(street)s%(notes_street)s\n"
+" Nummer/Uppgång: %(number)s%(subunit)s%(notes_subunit)s\n"
+" Postkod och ort: %(zip)s %(urb)s%(suburb)s\n"
+" Län: %(l10n_region)s, %(code_region)s\n"
+" Land: %(l10n_country)s, %(code_country)s"
 
-#, python-format
+#, fuzzy, python-format
 msgid ""
 "Address [#%(pk_adr)s]\n"
 " Street: %(street)s%(notes_street)s\n"
 " Number/Unit: %(number)s%(subunit)s%(notes_subunit)s\n"
 " Location: %(zip)s %(urb)s%(suburb)s\n"
-" Region: %(l10n_state)s, %(code_state)s\n"
+" Region: %(l10n_region)s, %(code_region)s\n"
 " Country: %(l10n_country)s, %(code_country)s"
 msgstr ""
 "Adress [#%(pk_adr)s]\n"
 " Gata: %(street)s%(notes_street)s\n"
 " Nummer/Uppgång: %(number)s%(subunit)s%(notes_subunit)s\n"
 " Postkod och ort: %(zip)s %(urb)s%(suburb)s\n"
-" Län: %(l10n_state)s, %(code_state)s\n"
+" Län: %(l10n_region)s, %(code_region)s\n"
 " Land: %(l10n_country)s, %(code_country)s"
 
 msgid "Textual keyword expansion"
@@ -7100,6 +7362,91 @@ msgstr "korrigerade resultat"
 msgid "missing, reported later"
 msgstr "fattas, rapporteras senare"
 
+msgid "Health issue"
+msgstr "Vårdbeteckning"
+
+#, fuzzy
+msgid "External care"
+msgstr "externt patient-ID"
+
+msgid "Vaccination"
+msgstr "Vaccinering"
+
+msgid "Clinical narrative"
+msgstr ""
+
+#, fuzzy
+msgid "Test result"
+msgstr "Provtagnings-resultat"
+
+#, fuzzy
+msgid "Substance intake"
+msgstr "Substans"
+
+msgid "Hospital stay"
+msgstr ""
+
+msgid "Performed procedure"
+msgstr ""
+
+#, fuzzy
+msgid "Family history"
+msgstr "Familjehistoria"
+
+#, fuzzy
+msgid "Document"
+msgstr "Dokument:"
+
+#, python-format
+msgid "unmapped entry type from table [%s]"
+msgstr ""
+
+#, python-format
+msgid "cannot instantiate clinical root item <%s(%s)>"
+msgstr ""
+
+msgid "True"
+msgstr ""
+
+msgid "False"
+msgstr ""
+
+#, fuzzy
+msgid "unknown smoking status"
+msgstr "Status"
+
+msgid "non-smoker"
+msgstr ""
+
+msgid "current smoker"
+msgstr ""
+
+msgid "ex-smoker"
+msgstr ""
+
+msgid "tobacco addiction"
+msgstr ""
+
+msgid "no or non-harmful alcohol use"
+msgstr ""
+
+msgid "harmful alcohol use"
+msgstr ""
+
+#, fuzzy
+msgid "unknown alcohol use"
+msgstr "Okänt allergiskt tillstånd"
+
+msgid "no or non-harmful drug use"
+msgstr ""
+
+msgid "harmful drug use"
+msgstr ""
+
+#, fuzzy
+msgid "unknown drug use"
+msgstr "Okänt allergiskt tillstånd"
+
 msgid "original entry"
 msgstr "Ursprungligt fält."
 
@@ -7192,14 +7539,6 @@ msgstr "Sysselsättning"
 msgid "Vaccinations"
 msgstr "Vaccinering"
 
-#, python-format
-msgid "%s ago"
-msgstr ""
-
-#, fuzzy
-msgid "External care"
-msgstr "externt patient-ID"
-
 msgid "Allergies/Intolerances"
 msgstr ""
 
@@ -7284,104 +7623,155 @@ msgid ""
 "The account was deactivated instead."
 msgstr ""
 
-#, python-format
-msgid "Device(%s):"
-msgstr "Enhet(%s):"
-
-msgid "Battery:"
-msgstr "Batteri:"
-
-msgid "Implanted:"
-msgstr "Implanterad:"
-
-msgid "last check:"
-msgstr "senaste granskning:"
-
-msgid "Sensing:"
-msgstr "Förnimmelse:"
-
-msgid "Threshold"
-msgstr "Tröskelvärde"
-
-msgid "Impedance:"
-msgstr "Impedans:"
-
-#, python-format
-msgid "Praxis branch                   #%s\n"
+msgid "SOAP_char_S=S"
 msgstr ""
 
-msgid "Privacy notice"
+msgid "SOAP_char_O=O"
 msgstr ""
 
-#, python-format
-msgid ""
-"%s: Your chart has been accessed by %s (without user interaction, probably "
-"by a script)."
+msgid "SOAP_char_A=A"
 msgstr ""
 
-#, python-format
-msgid "%s: Staff member %s has been notified of your chart access."
+msgid "SOAP_char_P=P"
 msgstr ""
 
-msgid "soap_S"
+msgid "SOAP_char_U=U"
 msgstr ""
 
-msgid "soap_O"
+msgid "SOAP_string_Subjective=Subjective"
 msgstr ""
 
-msgid "soap_A"
+msgid "SOAP_string_Objective=Objective"
 msgstr ""
 
-msgid "soap_P"
+msgid "SOAP_string_Assessment=Assessment"
 msgstr ""
 
-#, fuzzy
-msgid "soap_U"
-msgstr "soap_Plan"
-
-msgid "soap_Subjective"
-msgstr "soap_Subjective"
-
-msgid "soap_Objective"
-msgstr "soap_O"
+msgid "SOAP_string_Plan=Plan"
+msgstr ""
 
-msgid "soap_Assessment"
-msgstr "soap_Assessment"
+msgid "SOAP_string_Unspecified=Unspecified"
+msgstr ""
 
-msgid "soap_Plan"
-msgstr "soap_Plan"
+msgid "SOAP_string_Administrative=Administrative"
+msgstr ""
 
-msgid "soap_Unspecified"
+msgid "Active clinical hint"
 msgstr ""
 
-msgid "soap_Administrative"
-msgstr "soap_Administrative"
+msgid "Inactive clinical hint"
+msgstr ""
 
 #, python-format
-msgid ""
-"%s: %s by %.8s (v%s)\n"
-"%s"
+msgid "Source: %s\n"
 msgstr ""
-"%s: %s by %.8s (v%s)\n"
-"%s"
 
 #, python-format
-msgid "External care               #%s"
+msgid "Language: %s\n"
 msgstr ""
 
-#, fuzzy, python-format
-msgid "Issue: %s"
-msgstr "Kategori av medicinsk frågeställning: %s"
+#, fuzzy
+msgid "Suppressed active dynamic hint"
+msgstr "Öppna en befintlig tidslinje"
 
-#, fuzzy, python-format
-msgid "Health issue: %s"
-msgstr "Kategori av medicinsk frågeställning: %s"
+#, fuzzy
+msgid "Suppressed inactive dynamic hint"
+msgstr "Öppna en befintlig tidslinje"
 
-msgid "also treated here"
-msgstr ""
+#, fuzzy, python-format
+msgid "Suppressed by: %s\n"
+msgstr "Exporterat: %s\n"
 
 #, fuzzy, python-format
-msgid "Provider: %s"
+msgid "Suppressed at: %s\n"
+msgstr "Exporterat: %s\n"
+
+#, fuzzy, python-format
+msgid "Hint #: %s\n"
+msgstr "Exporterat: %s\n"
+
+#, fuzzy, python-format
+msgid "Patient #: %s\n"
+msgstr "Exporterat: %s\n"
+
+#, fuzzy, python-format
+msgid "MD5 (currently): %s\n"
+msgstr "Dokument: %s"
+
+#, python-format
+msgid "MD5 (at suppression): %s\n"
+msgstr ""
+
+#, python-format
+msgid "Device(%s):"
+msgstr "Enhet(%s):"
+
+msgid "Battery:"
+msgstr "Batteri:"
+
+msgid "Implanted:"
+msgstr "Implanterad:"
+
+msgid "last check:"
+msgstr "senaste granskning:"
+
+msgid "Sensing:"
+msgstr "Förnimmelse:"
+
+msgid "Threshold"
+msgstr "Tröskelvärde"
+
+msgid "Impedance:"
+msgstr "Impedans:"
+
+#, python-format
+msgid "Praxis branch                   #%s\n"
+msgstr ""
+
+#, python-format
+msgid ""
+"FN:%(l10n_unit_category)s %(branch)s of %(l10n_organization_category)s "
+"%(praxis)s"
+msgstr ""
+
+msgid "Privacy notice"
+msgstr ""
+
+#, python-format
+msgid ""
+"%s: Your chart has been accessed by %s (without user interaction, probably "
+"by a script)."
+msgstr ""
+
+#, python-format
+msgid "%s: Staff member %s has been notified of your chart access."
+msgstr ""
+
+#, python-format
+msgid ""
+"%s: %s by %.8s (v%s)\n"
+"%s"
+msgstr ""
+"%s: %s by %.8s (v%s)\n"
+"%s"
+
+#, python-format
+msgid "External care               #%s"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "Issue: %s"
+msgstr "Kategori av medicinsk frågeställning: %s"
+
+#, fuzzy, python-format
+msgid "Health issue: %s"
+msgstr "Kategori av medicinsk frågeställning: %s"
+
+msgid "also treated here"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "Provider: %s"
 msgstr "Exporterat: %s\n"
 
 #, fuzzy, python-format
@@ -7424,9 +7814,17 @@ msgid "%(last)s,%(title)s %(first)s%(nick)s (%(sex)s)"
 msgstr ""
 
 #, python-format
+msgid "%(last)s,%(title)s %(first)s (%(sex)s)"
+msgstr ""
+
+#, python-format
 msgid "%(last)s,%(title)s %(first)s%(nick)s"
 msgstr ""
 
+#, python-format
+msgid "%(last)s,%(title)s %(first)s"
+msgstr ""
+
 msgid "Cannot merge active patient into another patient."
 msgstr "Kan ej införliva vald patients akt med annan patients akt."
 
@@ -7436,9 +7834,6 @@ msgstr ""
 msgid "merged"
 msgstr ""
 
-msgid "preferred name/call name/..."
-msgstr ""
-
 msgid "invalid age: DOB in the future"
 msgstr "felaktig ålder: framtida födelsedag"
 
@@ -7451,9 +7846,6 @@ msgstr ""
 msgid "Mrs"
 msgstr ""
 
-msgid "unknown"
-msgstr ""
-
 msgid "empty status"
 msgstr ""
 
@@ -7800,9 +8192,11 @@ msgstr "   ej granskat"
 msgid " Part %s: %s %s(%s Bytes)\n"
 msgstr ""
 
-#, python-format
-msgid " Filename: %s\n"
+#, fuzzy, python-format
+msgid " Filename: %s%s\n"
 msgstr ""
+"\n"
+" Ta(inta): %s"
 
 #, fuzzy
 msgid "no parts"
@@ -7815,19 +8209,26 @@ msgstr ""
 msgid "%s parts"
 msgstr ""
 
+#, fuzzy, python-format
+msgid "%s of %s"
+msgstr "Enhet: %s (%s)"
+
 #, python-format
 msgid ""
 "%s (%s)   #%s\n"
-"\n"
 " Created: %s\n"
 " Episode: %s\n"
-"%s%s%s"
+"%s%s%s%s"
 msgstr ""
 
 #, python-format
 msgid " External reference: %s\n"
 msgstr ""
 
+#, fuzzy, python-format
+msgid " Organization: %%s @ %s\n"
+msgstr "Organisation: %s (%s)"
+
 msgid "Cannot run [arriba] !"
 msgstr "Kan inte exekvera [arriba] !"
 
@@ -8183,26 +8584,9 @@ msgid "External care:"
 msgstr "externt patient-ID"
 
 #, fuzzy, python-format
-msgid ""
-"health issue: %s%s%s\n"
-"\n"
+msgid "Health issue: %s%s%s"
 msgstr "Kategori av medicinsk frågeställning: %s"
 
-#, fuzzy
-msgid ""
-"\n"
-"current values:\n"
-msgstr "<nuvarande allerigiskt tillstånd>"
-
-msgid "no previous versions of this record"
-msgstr ""
-
-msgid ""
-"\n"
-"all values with <audit_action>, <audit_when>, <audit_by> fields (current "
-"value first):\n"
-msgstr ""
-
 msgid "Unattributed episodes"
 msgstr "Ej beaktade episoder:"
 
@@ -8224,9 +8608,6 @@ msgstr " Spann: %s (%s - %s)"
 msgid "finished"
 msgstr "avklarad"
 
-msgid "Health issue"
-msgstr "Vårdbeteckning"
-
 msgid "none associated"
 msgstr ""
 
@@ -8264,9 +8645,7 @@ msgid "Measurements and Results:"
 msgstr "Provtagningar och resultat:"
 
 #, fuzzy, python-format
-msgid ""
-"episode: %s%s%s\n"
-"\n"
+msgid "Episode: %s%s%s"
 msgstr "Episod %s%s%s   [#%s]"
 
 #, python-format
@@ -8294,9 +8673,7 @@ msgid "%s other episodes touched upon during this encounter:"
 msgstr "%s andra under denna undersökning berörda episoder:"
 
 #, fuzzy, python-format
-msgid ""
-"encounter: %s%s%s\n"
-"\n"
+msgid "Encounter: %s%s%s"
 msgstr "Undersökningar: %s (%s - %s):"
 
 msgid " (ongoing)"
@@ -8320,9 +8697,6 @@ msgstr ""
 msgid "Procedures"
 msgstr ""
 
-msgid "Substances"
-msgstr ""
-
 msgid "Life events"
 msgstr ""
 
@@ -8346,9 +8720,6 @@ msgstr ""
 msgid "Cannot display timeline."
 msgstr "Skapa en ny tidslinje"
 
-msgid "Vaccination"
-msgstr "Vaccinering"
-
 msgid "Lab result"
 msgstr "Labsvar"
 
@@ -8430,9 +8801,6 @@ msgstr ""
 msgid "Exported: %s\n"
 msgstr "Exporterat: %s\n"
 
-msgid "emr-journal"
-msgstr ""
-
 msgid "Chronological EMR Journal\n"
 msgstr "Kronologisk EMR Journal\n"
 
@@ -8706,16 +9074,7 @@ msgstr ""
 msgid "Select one or more codes that apply."
 msgstr ""
 
-msgid "Cannot move progress notes. No active patient."
-msgstr ""
-
-msgid "Moving progress notes between encounters ..."
-msgstr ""
-
-msgid ""
-"\n"
-" Select the progress notes to move from the list !\n"
-"\n"
+msgid "Select the narrative you are interested in ..."
 msgstr ""
 
 msgid "when"
@@ -8727,126 +9086,254 @@ msgstr ""
 msgid "entry"
 msgstr ""
 
-msgid "Cannot edit progress notes. No active patient."
+msgid "There is no narrative for this episode in this encounter."
 msgstr ""
 
-msgid "Deleting progress note"
+msgid "Must select episode to move narrative to first."
 msgstr ""
 
-msgid ""
-"Are you positively sure you want to delete this\n"
-"progress note from the medical record ?\n"
-"\n"
-"Note that even if you chose to delete the entry it will\n"
-"still be (invisibly) kept in the audit trail to protect\n"
-"you from litigation because physical deletion is known\n"
-"to be unlawful in some jurisdictions.\n"
+msgid "Last"
 msgstr ""
 
-msgid "Yes, delete the progress note."
+msgid "In health issue"
 msgstr ""
 
-msgid "No, do NOT delete the progress note."
+msgid "Most recent notes on selected problem"
 msgstr ""
 
-msgid "Editing progress note"
+#, python-format
+msgid "%s (active+potential) problems"
 msgstr ""
 
-msgid "This is the original progress note:"
+#, python-format
+msgid "%s active problems"
 msgstr ""
 
-msgid "Managing progress notes"
+msgid "Current encounter:"
+msgstr ""
+
+msgid "Cumulative summary"
 msgstr ""
 
+#, fuzzy, python-format
+msgid "Most recent info on %s%s%s"
+msgstr " De allra senaste: %s - %s"
+
 #, python-format
 msgid ""
+"Cannot open progress note editor for\n"
 "\n"
-" This list shows the progress notes by %s.\n"
+"[%s].\n"
 "\n"
 msgstr ""
 
-msgid "Enter (regex) term to search for across all EMRs:"
+msgid "opening progress note editor"
 msgstr ""
 
-msgid "Text search across all EMRs"
+msgid "Cannot save all editors. Some were kept open."
+msgstr ""
+
+msgid "new problem"
 msgstr ""
 
-#, python-format
 msgid ""
-"Nothing found for search term:\n"
-" \"%s\""
+"Are you sure you really want to\n"
+"discard this progress note ?\n"
 msgstr ""
 
-msgid "Search results"
+msgid "Discarding progress note"
 msgstr ""
 
-#, fuzzy, python-format
-msgid "Search results for [%s]"
-msgstr "Sökresultat för '%s'"
+msgid "There are unsaved progress notes !\n"
+msgstr ""
 
-msgid "Match"
+msgid "Unsaved progress notes"
 msgstr ""
 
-msgid "Match location"
+msgid "Problem list"
 msgstr ""
 
-msgid "Cannot search EMR. No active patient."
+msgid "Saving SOAP note"
 msgstr ""
 
-msgid "Enter search term:"
+msgid "Do you want to save the SOAP note ?"
 msgstr ""
 
-msgid "Text search of entire EMR of active patient"
+#, python-format
+msgid "&Filter by problem %s%s%s"
+msgstr ""
+
+msgid "Cannot save SimpleNotes SOAP note."
 msgstr ""
 
 #, python-format
-msgid ""
-"Search term was: \"%s\"\n"
-"\n"
-"Search results:\n"
-"\n"
-"%s\n"
+msgid "Progress note: %s%s"
 msgstr ""
 
-msgid "Cannot export EMR for Medistar. No active patient."
+msgid "Please enter a name for the new problem:"
 msgstr ""
 
-msgid "text files"
+msgid "Adding a problem"
 msgstr ""
 
-msgid "all files"
+msgid "Cannot delete problem. There is still clinical data recorded for it."
 msgstr ""
 
-msgid "Save EMR extract for MEDISTAR import as..."
+#, python-format
+msgid "GNUmed: configuring [%s] (%s plugins)"
 msgstr ""
 
-msgid "Error exporting progress notes for MEDISTAR import."
+msgid "loading list of plugins                               "
 msgstr ""
 
-msgid "MEDISTAR progress notes export"
+msgid "failed"
+msgstr ""
+
+msgid "success"
 msgstr ""
 
 #, python-format
 msgid ""
-"Successfully exported progress notes into file [%s] for Medistar import."
+"previous: %s (%s)\n"
+"current (%s/%s): %s"
 msgstr ""
 
 #, python-format
-msgid "Pick the [%s] narrative you want to use."
+msgid "Cannot switch to [%s]: no patient selected"
 msgstr ""
 
-#, python-format
-msgid "Picking [%s] narrative"
+msgid "Cannot move progress notes. No active patient."
 msgstr ""
 
-msgid "Who"
+msgid "Moving progress notes between encounters ..."
 msgstr ""
 
-msgid "Issue"
+msgid ""
+"\n"
+" Select the progress notes to move from the list !\n"
+"\n"
 msgstr ""
 
-#, fuzzy
-msgid "No narrative available for this health issue."
+msgid "Cannot edit progress notes. No active patient."
+msgstr ""
+
+msgid "Deleting progress note"
+msgstr ""
+
+msgid ""
+"Are you positively sure you want to delete this\n"
+"progress note from the medical record ?\n"
+"\n"
+"Note that even if you chose to delete the entry it will\n"
+"still be (invisibly) kept in the audit trail to protect\n"
+"you from litigation because physical deletion is known\n"
+"to be unlawful in some jurisdictions.\n"
+msgstr ""
+
+msgid "Yes, delete the progress note."
+msgstr ""
+
+msgid "No, do NOT delete the progress note."
+msgstr ""
+
+msgid "Editing progress note"
+msgstr ""
+
+msgid "This is the original progress note:"
+msgstr ""
+
+msgid "Managing progress notes"
+msgstr ""
+
+#, python-format
+msgid ""
+"\n"
+" This list shows the progress notes by %s.\n"
+"\n"
+msgstr ""
+
+msgid "Enter (regex) term to search for across all EMRs:"
+msgstr ""
+
+msgid "Text search across all EMRs"
+msgstr ""
+
+#, python-format
+msgid ""
+"Nothing found for search term:\n"
+" \"%s\""
+msgstr ""
+
+msgid "Search results"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "Search results for [%s]"
+msgstr "Sökresultat för '%s'"
+
+msgid "Match"
+msgstr ""
+
+msgid "Match location"
+msgstr ""
+
+msgid "Cannot search EMR. No active patient."
+msgstr ""
+
+msgid "Enter search term:"
+msgstr ""
+
+msgid "Text search of entire EMR of active patient"
+msgstr ""
+
+#, python-format
+msgid ""
+"Search term was: \"%s\"\n"
+"\n"
+"Search results:\n"
+"\n"
+"%s\n"
+msgstr ""
+
+msgid "Cannot export EMR for Medistar. No active patient."
+msgstr ""
+
+msgid "text files"
+msgstr ""
+
+msgid "all files"
+msgstr ""
+
+msgid "Save EMR extract for MEDISTAR import as..."
+msgstr ""
+
+msgid "Error exporting progress notes for MEDISTAR import."
+msgstr ""
+
+msgid "MEDISTAR progress notes export"
+msgstr ""
+
+#, python-format
+msgid ""
+"Successfully exported progress notes into file [%s] for Medistar import."
+msgstr ""
+
+#, python-format
+msgid "Pick the [%s] narrative you want to use."
+msgstr ""
+
+#, python-format
+msgid "Picking [%s] narrative"
+msgstr ""
+
+msgid "Who"
+msgstr ""
+
+msgid "Issue"
+msgstr ""
+
+#, fuzzy
+msgid "No narrative available for this health issue."
 msgstr "Inga undersökningar hittades för detta hälsotillstånd."
 
 #, python-format
@@ -8934,1044 +9421,970 @@ msgid ""
 " Now, mark the entries you want to include in your report.\n"
 msgstr ""
 
-msgid "Select the narrative you are interested in ..."
+msgid "Pick a date ..."
 msgstr ""
 
-msgid "There is no narrative for this episode in this encounter."
+msgid "<ALT-C/K>: pick from (c/k)alendar"
 msgstr ""
 
-msgid "Must select episode to move narrative to first."
+msgid "Cannot interpret input as timestamp."
 msgstr ""
 
-msgid "Last"
+msgid "No vaccines were chosen"
 msgstr ""
 
-msgid "In health issue"
+#, python-format
+msgid "Combination of indications , %s , not found in any vaccine"
 msgstr ""
 
-msgid "Most recent notes on selected problem"
+msgid "Sequence"
 msgstr ""
 
-#, python-format
-msgid "%s (active+potential) problems"
+msgid "Batch"
 msgstr ""
 
-#, python-format
-msgid "%s active problems"
+msgid "Vaccinator"
 msgstr ""
 
-msgid "Current encounter:"
+msgid ""
+"Vaccinations by Recommender (X = patient on regime, O = patient not on "
+"regime) "
 msgstr ""
 
-msgid "Cumulative summary"
+msgid "enrolled regime vaccinations not yet given"
 msgstr ""
 
-#, fuzzy, python-format
-msgid "Most recent info on %s%s%s"
-msgstr " De allra senaste: %s - %s"
+msgid "Proceed with "
+msgstr ""
 
 #, python-format
-msgid ""
-"Cannot open progress note editor for\n"
-"\n"
-"[%s].\n"
-"\n"
+msgid "Failed to enrol patient in %s"
 msgstr ""
 
-msgid "opening progress note editor"
+#, python-format
+msgid "Failed to  delist patient from %s"
 msgstr ""
 
-msgid "Cannot save all editors. Some were kept open."
+msgid "Missing GNUmed module"
 msgstr ""
 
-msgid "new problem"
+#, python-format
+msgid ""
+"GNUmed detected that parts of it are not\n"
+"properly installed. The following message\n"
+"names the missing part:\n"
+"\n"
+" \"%s\"\n"
+"\n"
+"Please make sure to get the missing\n"
+"parts installed. Otherwise some of the\n"
+"functionality will not be accessible."
 msgstr ""
 
+#, fuzzy, python-format
 msgid ""
-"Are you sure you really want to\n"
-"discard this progress note ?\n"
+"\n"
+" Source: %s"
 msgstr ""
+"\n"
+" Ta(inta): %s"
 
-msgid "Discarding progress note"
+#, fuzzy, python-format
+msgid ""
+"\n"
+" Code: %s"
 msgstr ""
+"\n"
+" Ta(inta): %s"
 
-msgid "There are unsaved progress notes !\n"
+#, python-format
+msgid ""
+"\n"
+" Details (first 250 characters):\n"
+"%s\n"
+"%s\n"
+"%s"
 msgstr ""
 
-msgid "Unsaved progress notes"
+msgid "Access violation"
 msgstr ""
 
 #, python-format
-msgid "Synopsis (%s)"
+msgid ""
+"You do not have access to this part of GNUmed.\n"
+"\n"
+"%s"
 msgstr ""
 
-msgid ""
-"Enter a short working name for this new problem\n"
-"(which will become a new, unassociated episode):\n"
+msgid "Lost connection"
 msgstr ""
 
-#, python-format
 msgid ""
-"Enter a short working name for this new\n"
-"episode under the existing health issue\n"
+"Since you were last working in GNUmed,\n"
+"your database connection timed out.\n"
 "\n"
-"\"%s\":\n"
+"This GNUmed session is now expired.\n"
+"\n"
+"You will have to close this client and\n"
+"restart a new GNUmed session."
 msgstr ""
 
-msgid "Creating problem (episode) to save notelet under ..."
+msgid ""
+"Please enter a short note on what you\n"
+"were about to do in GNUmed:"
 msgstr ""
 
-msgid "Cannot save a new problem without a name."
+msgid "Sending bug report"
 msgstr ""
 
-msgid "saving progress note"
+msgid ""
+"Edit the list of email addresses to send the\n"
+"bug report to (separate addresses by spaces).\n"
+"\n"
+"Note that <gnumed-bugs at gnu.org> refers to\n"
+"the public (!) GNUmed bugs mailing list."
 msgstr ""
 
 #, python-format
 msgid ""
-"The new episode:\n"
+"Your bug report will be sent to:\n"
 "\n"
-" \"%s\"\n"
+"%s\n"
 "\n"
-"will remain unassociated despite the editor\n"
-"having been invoked from the health issue:\n"
+"Make sure you have reviewed the log file for potentially\n"
+"sensitive information before sending out the bug report.\n"
 "\n"
-" \"%s\""
+"Note that emailing the report may take a while depending\n"
+"on the speed of your internet connection.\n"
 msgstr ""
 
-msgid "You need to actually set an editor."
+msgid "Yes, send the bug report."
 msgstr ""
 
-#, python-format
-msgid "The command [%s] is not found."
+msgid "No, do not send the bug report."
 msgstr ""
 
-#, python-format
-msgid ""
-"Enter the shell command with which to start\n"
-"the image editor for visual progress notes.\n"
-"\n"
-"Any \"%(img)s\" included with the arguments\n"
-"will be replaced by the file name of the\n"
-"note template."
+msgid "include log file in bug report"
 msgstr ""
 
-msgid "Choose file to use as template for new visual progress note"
-msgstr ""
+msgid ""
+"The database you are connected to is marked as\n"
+"\"in-production with controlled access\".\n"
+"\n"
+"You indicated that you want to include the log\n"
+"file in your bug report. While this is often\n"
+"useful for debugging the log file might contain\n"
+"bits of patient data which must not be sent out\n"
+"without de-identification.\n"
+"\n"
+"Please confirm that you want to include the log !"
+msgstr ""
 
-msgid "Visual progress note source"
+msgid "<not supplied>"
 msgstr ""
 
-msgid "From which source do you want to pick the image template ?"
+msgid "Bug report has been emailed."
 msgstr ""
 
-msgid "Database"
+msgid "Bug report COULD NOT be emailed."
 msgstr ""
 
-msgid "List of templates in the database."
+msgid "Underweight"
 msgstr ""
 
-msgid "Files in the filesystem."
+msgid "63< Normal >79"
 msgstr ""
 
-msgid "Device"
+msgid "63 - Normal - 79"
 msgstr ""
 
-msgid "Image capture devices (scanners, cameras, etc)"
+msgid "Overweight"
 msgstr ""
 
-#, python-format
-msgid "Cannot export visual progress note template for [%s]."
+msgid "Obese"
 msgstr ""
 
-msgid "Cannot export visual progress note to file."
+msgid "Current height/mass"
 msgstr ""
 
-msgid "Editor for visual progress note not configured."
+msgid "Height (cm)"
 msgstr ""
 
-#, python-format
-msgid ""
-"There was a problem with running the editor\n"
-"for visual progress notes.\n"
-"\n"
-" [%s]\n"
-"\n"
+msgid "Mass (kg)"
 msgstr ""
 
-msgid "Editing visual progress note"
+msgid "Adjusted Values"
 msgstr ""
 
-#, python-format
-msgid ""
-"There was a problem reading the visual\n"
-"progress note from the file:\n"
-"\n"
-" [%s]\n"
-"\n"
+msgid "Goal mass"
 msgstr ""
 
-msgid "Saving visual progress note"
+msgid "kg to lose"
 msgstr ""
 
-msgid ""
-"You either created a visual progress note from a template\n"
-"in the database (rather than from a file on disk) or you\n"
-"edited an existing visual progress note.\n"
-"\n"
-"The template/original was not modified at all, however.\n"
-"\n"
-"Do you still want to save the unmodified image as a\n"
-"visual progress note into the EMR of the patient ?\n"
+msgid "BMI Calculator"
 msgstr ""
 
-msgid "visual progress notes"
+msgid "&Reset"
 msgstr ""
 
-#, python-format
-msgid "Created: %s"
+msgid "Select a healthcare provider."
 msgstr ""
 
-msgid "Problem list"
+msgid "Public (no clinical or demographic access)"
 msgstr ""
 
-msgid "Saving SOAP note"
+msgid "Staff (demographic access only)"
 msgstr ""
 
-msgid "Do you want to save the SOAP note ?"
+msgid "staff (clerical)"
 msgstr ""
 
-#, python-format
-msgid "&Filter by problem %s%s%s"
+msgid "full clinical access"
 msgstr ""
 
-msgid "Cannot save SimpleNotes SOAP note."
+msgid "DB account"
 msgstr ""
 
-#, python-format
-msgid "Progress note: %s%s"
+msgid "can login"
 msgstr ""
 
-msgid "Please enter a name for the new problem:"
+msgid "can not login"
 msgstr ""
 
-msgid "Adding a problem"
+msgid "Activating GNUmed user."
 msgstr ""
 
-msgid "Cannot delete problem. There is still clinical data recorded for it."
+msgid "Deactivating GNUmed user."
 msgstr ""
 
-#, python-format
-msgid "GNUmed: configuring [%s] (%s plugins)"
+msgid "Removing GNUmed user."
 msgstr ""
 
-msgid "loading list of plugins                               "
+msgid "Removing GNUmed user"
 msgstr ""
 
-msgid "failed"
+msgid "Modifying GNUmed user."
 msgstr ""
 
-msgid "success"
+msgid "Failed to save changes to GNUmed database user."
 msgstr ""
 
-#, python-format
-msgid ""
-"previous: %s (%s)\n"
-"current (%s/%s): %s"
+msgid "Modifying GNUmed user"
 msgstr ""
 
 #, python-format
-msgid "Cannot switch to [%s]: no patient selected"
+msgid "Failed to set role [%s] for GNUmed database user."
 msgstr ""
 
-msgid "Pick a date ..."
+#, python-format
+msgid ""
+"\n"
+"  %s \"%s\" %s\n"
+"  born: %s"
 msgstr ""
 
-msgid "<ALT-C/K>: pick from (c/k)alendar"
+msgid ""
+"Password entries do not match. Please type in the passwords again to rule "
+"out typos."
 msgstr ""
 
-msgid "Cannot interpret input as timestamp."
+msgid "Adding GNUmed user"
 msgstr ""
 
-msgid "No vaccines were chosen"
+msgid ""
+"Are you positively sure you want to create\n"
+"a user with an empty password ?\n"
+"\n"
+"Think about the record access implications !"
 msgstr ""
 
-#, python-format
-msgid "Combination of indications , %s , not found in any vaccine"
+msgid "Enlisting person as user."
 msgstr ""
 
-msgid "Sequence"
+msgid "Encrypt"
 msgstr ""
 
-msgid "Batch"
+msgid "Decrypt"
 msgstr ""
 
-msgid "Vaccinator"
+msgid "Set pass phrase"
 msgstr ""
 
-msgid ""
-"Vaccinations by Recommender (X = patient on regime, O = patient not on "
-"regime) "
+msgid "This is not correctly encrypted text!"
 msgstr ""
 
-msgid "enrolled regime vaccinations not yet given"
+msgid "Please enter your pass phrase:"
 msgstr ""
 
-msgid "Proceed with "
+msgid "Pass phrase expired"
 msgstr ""
 
-#, python-format
-msgid "Failed to enrol patient in %s"
+msgid ""
+"\n"
+"Conditions preventable by vaccination as currently known to GNUmed.\n"
 msgstr ""
 
-#, python-format
-msgid "Failed to  delist patient from %s"
+msgid "Showing vaccination preventable conditions."
 msgstr ""
 
-msgid "Missing GNUmed module"
+msgid "ATCs: single-condition vaccines"
 msgstr ""
 
-#, python-format
-msgid ""
-"GNUmed detected that parts of it are not\n"
-"properly installed. The following message\n"
-"names the missing part:\n"
-"\n"
-" \"%s\"\n"
-"\n"
-"Please make sure to get the missing\n"
-"parts installed. Otherwise some of the\n"
-"functionality will not be accessible."
+msgid "ATCs: multi-condition vaccines"
 msgstr ""
 
-#, fuzzy, python-format
-msgid ""
-"\n"
-" Source: %s"
+msgid "Pick the relevant indications."
 msgstr ""
-"\n"
-" Ta(inta): %s"
 
-#, fuzzy, python-format
-msgid ""
-"\n"
-" Code: %s"
+msgid "Known indications"
 msgstr ""
-"\n"
-" Ta(inta): %s"
 
-#, python-format
-msgid ""
-"\n"
-" Details (first 250 characters):\n"
-"%s\n"
-"%s\n"
-"%s"
+msgid "Adding new vaccine"
 msgstr ""
 
-msgid "Access violation"
+msgid "Editing vaccine"
 msgstr ""
 
 #, python-format
 msgid ""
-"You do not have access to this part of GNUmed.\n"
+"Cannot delete vaccine\n"
 "\n"
-"%s"
+" %s - %s (#%s)\n"
+"\n"
+"It is probably documented in a vaccination."
 msgstr ""
 
-msgid "Lost connection"
+msgid "Deleting vaccine"
+msgstr ""
+
+msgid "fake"
 msgstr ""
 
 msgid ""
-"Since you were last working in GNUmed,\n"
-"your database connection timed out.\n"
-"\n"
-"This GNUmed session is now expired.\n"
 "\n"
-"You will have to close this client and\n"
-"restart a new GNUmed session."
+"The vaccines currently known to GNUmed.\n"
 msgstr ""
 
-msgid ""
-"Please enter a short note on what you\n"
-"were about to do in GNUmed:"
+msgid "Showing vaccines."
 msgstr ""
 
-msgid "Sending bug report"
+msgid "Enter or select the batch/lot number of the vaccine used."
 msgstr ""
 
-msgid ""
-"Edit the list of email addresses to send the\n"
-"bug report to (separate addresses by spaces).\n"
-"\n"
-"Note that <gnumed-bugs at gnu.org> refers to\n"
-"the public (!) GNUmed bugs mailing list."
+msgid "Saving vaccine"
 msgstr ""
 
 #, python-format
 msgid ""
-"Your bug report will be sent to:\n"
+"This vaccine is already in use:\n"
 "\n"
-"%s\n"
+" \"%s\"\n"
+" (%s)\n"
 "\n"
-"Make sure you have reviewed the log file for potentially\n"
-"sensitive information before sending out the bug report.\n"
+"Are you absolutely positively sure that\n"
+"you really want to edit this vaccine ?\n"
 "\n"
-"Note that emailing the report may take a while depending\n"
-"on the speed of your internet connection.\n"
+"This will change the vaccine name and/or target\n"
+"conditions in each patient this vaccine was\n"
+"used in to document a vaccination with.\n"
 msgstr ""
 
-msgid "Yes, send the bug report."
+msgid "You must select at least one indication."
 msgstr ""
 
-msgid "No, do not send the bug report."
+msgid "Pick the diseases this vaccine protects against."
 msgstr ""
 
-msgid "include log file in bug report"
+msgid "This vaccine"
 msgstr ""
 
-msgid ""
-"The database you are connected to is marked as\n"
-"\"in-production with controlled access\".\n"
-"\n"
-"You indicated that you want to include the log\n"
-"file in your bug report. While this is often\n"
-"useful for debugging the log file might contain\n"
-"bits of patient data which must not be sent out\n"
-"without de-identification.\n"
-"\n"
-"Please confirm that you want to include the log !"
+msgid "Adding new vaccinations"
 msgstr ""
 
-msgid "<not supplied>"
+msgid "Editing vaccination"
 msgstr ""
 
-msgid "Bug report has been emailed."
-msgstr ""
+#, fuzzy
+msgid "vaccination recall"
+msgstr "Vaccinering"
 
-msgid "Bug report COULD NOT be emailed."
-msgstr ""
+#, fuzzy, python-format
+msgid "vaccination recall (%s)"
+msgstr "Vaccinering"
 
-msgid "Underweight"
-msgstr ""
+#, fuzzy, python-format
+msgid ""
+"Existing vaccination:\n"
+"\n"
+"%s"
+msgstr "Senaste vaccineringar"
 
-msgid "63< Normal >79"
+msgid ""
+"\n"
+"Complete vaccination history for this patient.\n"
 msgstr ""
 
-msgid "63 - Normal - 79"
+msgid "Showing vaccinations."
 msgstr ""
 
-msgid "Overweight"
+msgid "Intended to protect from"
 msgstr ""
 
-msgid "Obese"
+#, fuzzy
+msgid "Print vaccinations or recalls."
+msgstr "Vaccinering"
+
+msgid "Recall"
 msgstr ""
 
-msgid "Current height/mass"
+msgid "Add a recall for a vaccination"
 msgstr ""
 
-msgid "Height (cm)"
+msgid "Vx schedules"
 msgstr ""
 
-msgid "Mass (kg)"
+msgid "Open a browser showing vaccination schedules."
 msgstr ""
 
-msgid "Adjusted Values"
+msgid "prevention"
 msgstr ""
 
-msgid "Goal mass"
+msgid "Saving vaccination"
 msgstr ""
 
-msgid "kg to lose"
+msgid "Pick the diseases this vaccination was given against."
 msgstr ""
 
-msgid "BMI Calculator"
+msgid "  IMMUNISATIONS  "
 msgstr ""
 
-msgid "&Reset"
+msgid "Indications"
 msgstr ""
 
-msgid "Select a healthcare provider."
+msgid "Active Schedules"
 msgstr ""
 
-msgid "Public (no clinical or demographic access)"
+msgid "Missing Immunisations"
 msgstr ""
 
-msgid "Staff (demographic access only)"
+msgid "  Alerts  "
 msgstr ""
 
-msgid "staff (clerical)"
+msgid "ERROR: cannot retrieve active vaccination schedules"
 msgstr ""
 
-msgid "full clinical access"
+msgid "no active vaccination schedules"
 msgstr ""
 
-msgid "DB account"
+#, python-format
+msgid "%s for %s (%s shots): %s"
 msgstr ""
 
-msgid "can login"
+msgid "ERROR: cannot retrieve due/overdue vaccinations"
 msgstr ""
 
-msgid "can not login"
+#, python-format
+msgid "%.0d weeks left: shot %s for %s in %s, due %s (%s)"
 msgstr ""
 
-msgid "Activating GNUmed user."
+#, python-format
+msgid "overdue %.0dyrs %.0dwks: shot %s for %s in schedule \"%s\" (%s)"
 msgstr ""
 
-msgid "Deactivating GNUmed user."
+#, python-format
+msgid "due now: booster for %s in schedule \"%s\" (%s)"
 msgstr ""
 
-msgid "Removing GNUmed user."
+#, python-format
+msgid "Synopsis (%s)"
 msgstr ""
 
-msgid "Removing GNUmed user"
+msgid ""
+"Enter a short working name for this new problem\n"
+"(which will become a new, unassociated episode):\n"
 msgstr ""
 
-msgid "Modifying GNUmed user."
+#, python-format
+msgid ""
+"Enter a short working name for this new\n"
+"episode under the existing health issue\n"
+"\n"
+"\"%s\":\n"
 msgstr ""
 
-msgid "Failed to save changes to GNUmed database user."
+msgid "Creating problem (episode) to save notelet under ..."
 msgstr ""
 
-msgid "Modifying GNUmed user"
+msgid "Cannot save a new problem without a name."
 msgstr ""
 
-#, python-format
-msgid "Failed to set role [%s] for GNUmed database user."
+msgid "saving progress note"
 msgstr ""
 
 #, python-format
 msgid ""
+"The new episode:\n"
 "\n"
-"  %s \"%s\" %s\n"
-"  born: %s"
+" \"%s\"\n"
+"\n"
+"will remain unassociated despite the editor\n"
+"having been invoked from the health issue:\n"
+"\n"
+" \"%s\""
 msgstr ""
 
-msgid ""
-"Password entries do not match. Please type in the passwords again to rule "
-"out typos."
-msgstr ""
+#, fuzzy
+msgid "Adding substance abuse"
+msgstr "Lägger till ny undersökningstyp"
 
-msgid "Adding GNUmed user"
-msgstr ""
+#, fuzzy
+msgid "Editing substance abuse"
+msgstr "Frågor och svar"
 
-msgid ""
-"Are you positively sure you want to create\n"
-"a user with an empty password ?\n"
-"\n"
-"Think about the record access implications !"
+msgid "Substances abused by the patient:"
 msgstr ""
 
-msgid "Enlisting person as user."
-msgstr ""
+#, fuzzy
+msgid "Showing abused substances."
+msgstr " %s test resultat\n"
 
-msgid "Encrypt"
+msgid "Intake"
 msgstr ""
 
-msgid "Decrypt"
+msgid "nicotine"
 msgstr ""
 
-msgid "Set pass phrase"
-msgstr ""
+#, fuzzy
+msgid "unit"
+msgstr "enheter"
 
-msgid "This is not correctly encrypted text!"
+#, fuzzy, python-format
+msgid "Latest: %s ago (%s %s%s%s%s)"
+msgstr " Spann: %s (%s - %s)"
+
+#, fuzzy, python-format
+msgid "%s %s%s%s (%s ago, %s)"
+msgstr "Enhet: %s (%s)"
+
+#, python-format
+msgid "overdue %s: %s"
 msgstr ""
 
-msgid "Please enter your pass phrase:"
+#, python-format
+msgid "due in %s%s"
 msgstr ""
 
-msgid "Pass phrase expired"
+msgid "suppr'd:"
 msgstr ""
 
+#, fuzzy
+msgid "Suppressed hints:\n"
+msgstr "Exporterat: %s\n"
+
 msgid ""
-"\n"
-"Conditions preventable by vaccination as currently known to GNUmed.\n"
+"Do you really want to\n"
+"delete this inbox message ?"
 msgstr ""
 
-msgid "Showing vaccination preventable conditions."
+msgid "Deleting inbox message"
 msgstr ""
 
-msgid "ATCs: single-condition vaccines"
-msgstr ""
+#, fuzzy
+msgid "Export area: 1 item"
+msgstr "Exportera till SVG"
 
-msgid "ATCs: multi-condition vaccines"
-msgstr ""
+#, fuzzy, python-format
+msgid "Export area: %s items"
+msgstr "Exporterat: %s\n"
 
-msgid "Pick the relevant indications."
+#, python-format
+msgid "%s %s more not shown %s"
 msgstr ""
 
-msgid "Known indications"
-msgstr ""
+#, fuzzy, python-format
+msgid "Currently %s entries in waiting list"
+msgstr "Den för närvarande valda patienten är:"
 
-msgid "Adding new vaccine"
+#, python-format
+msgid "first (in GMd): %s, %s"
 msgstr ""
 
-msgid "Editing vaccine"
+#, python-format
+msgid "last: %s, %s"
 msgstr ""
 
 #, python-format
-msgid ""
-"Cannot delete vaccine\n"
-"\n"
-" %s - %s (#%s)\n"
-"\n"
-"It is probably documented in a vaccination."
+msgid "Last %s:"
 msgstr ""
 
-msgid "Deleting vaccine"
+msgid "Statistics cover period"
 msgstr ""
 
-msgid "fake"
+#, python-format
+msgid "EDC (!?!): %s"
 msgstr ""
 
 msgid ""
+"The Expected Date of Confinement is rather questionable.\n"
 "\n"
-"The vaccines currently known to GNUmed.\n"
+"Please check patient age, patient gender, time until/since EDC."
 msgstr ""
 
-msgid "Showing vaccines."
+#, fuzzy, python-format
+msgid "%s Vacc: %s (latest of %s)"
 msgstr ""
+"\n"
+" Ta(inta): %s"
 
-msgid "Enter or select the batch/lot number of the vaccine used."
+#, python-format
+msgid "Hx of addiction: %s"
 msgstr ""
 
-msgid "Saving vaccine"
+msgid "active substance abuse"
 msgstr ""
 
 #, python-format
-msgid ""
-"This vaccine is already in use:\n"
-"\n"
-" \"%s\"\n"
-" (%s)\n"
-"\n"
-"Are you absolutely positively sure that\n"
-"you really want to edit this vaccine ?\n"
-"\n"
-"This will change the vaccine name and/or target\n"
-"conditions in each patient this vaccine was\n"
-"used in to document a vaccination with.\n"
+msgid "%s %s %s%s"
 msgstr ""
 
-msgid "You must select at least one indication."
+#, python-format
+msgid "%s %s%s"
 msgstr ""
 
-msgid "Pick the diseases this vaccine protects against."
+#, python-format
+msgid "** Currently hospitalized: %s **"
 msgstr ""
 
-msgid "This vaccine"
+#, python-format
+msgid "emergency: %s"
 msgstr ""
 
-msgid "Adding new vaccinations"
+#, python-format
+msgid "in-praxis: %s"
 msgstr ""
 
-msgid "Editing vaccination"
+#, fuzzy, python-format
+msgid "care: %s%s@%s"
+msgstr "Undersökningar: %s (%s - %s):"
+
+msgid "*** CONFIDENTIAL ***"
 msgstr ""
 
-#, fuzzy
-msgid "vaccination recall"
-msgstr "Vaccinering"
+msgid " (confidential !)"
+msgstr ""
 
 #, fuzzy, python-format
-msgid "vaccination recall (%s)"
-msgstr "Vaccinering"
+msgid "extrnl: %s (%s@%s)"
+msgstr "Enhet: %s (%s)"
+
+#, python-format
+msgid "aka: %(last)s, %(first)s%(nick)s"
+msgstr ""
 
 #, fuzzy, python-format
-msgid ""
-"Existing vaccination:\n"
-"\n"
-"%s"
-msgstr "Senaste vaccineringar"
+msgid "job: %s (%s)"
+msgstr "Enhet: %s (%s)"
 
+#, python-format
+msgid "issued by: %s%s"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "Last modified: %s"
+msgstr "Senast bearbetad: %s\n"
+
+#, python-format
 msgid ""
+"Activities:\n"
 "\n"
-"Complete vaccination history for this patient.\n"
+"%s"
 msgstr ""
 
-msgid "Showing vaccinations."
+msgid "Cloning name"
 msgstr ""
 
-msgid "Intended to protect from"
+msgid "Editing external ID"
 msgstr ""
 
-#, fuzzy
-msgid "Print vaccinations or recalls."
-msgstr "Vaccinering"
-
-msgid "Recall"
+msgid "Adding new translation"
 msgstr ""
 
-msgid "Add a recall for a vaccination"
+msgid "Editing translation"
 msgstr ""
 
-msgid "Vx schedules"
+msgid "Selecting language for translation"
 msgstr ""
 
-msgid "Open a browser showing vaccination schedules."
+msgid ""
+"Please select the language the translations for which you want to work on."
 msgstr ""
 
-msgid "prevention"
+#, python-format
+msgid ""
+"Are you sure you want to delete the translation of:\n"
+"\n"
+"%s\n"
+"\n"
+"into [%s] as:\n"
+"\n"
+"%s\n"
+"\n"
+"?  (Note that you must know the database administrator password !)\n"
 msgstr ""
 
-msgid "Saving vaccination"
+msgid "Deleting translation from database"
 msgstr ""
 
-msgid "Pick the diseases this vaccination was given against."
+msgid "deleting a translation"
 msgstr ""
 
-msgid "  IMMUNISATIONS  "
+msgid "Contributing translations"
 msgstr ""
 
-msgid "Indications"
+msgid "Do you want to contribute your translations to the GNUmed project ?"
 msgstr ""
 
-msgid "Active Schedules"
+msgid ""
+"Unable to send mail. Cannot contribute translations to GNUmed community."
 msgstr ""
 
-msgid "Missing Immunisations"
+msgid "Thank you for your contribution to the GNUmed community!"
 msgstr ""
 
-msgid "  Alerts  "
+msgid "Showing translatable database strings for all languages."
 msgstr ""
 
-msgid "ERROR: cannot retrieve active vaccination schedules"
+#, python-format
+msgid "Showing translatable database strings for target language [%s]."
 msgstr ""
 
-msgid "no active vaccination schedules"
+msgid "Contribute translations to GNUmed community by email."
 msgstr ""
 
-#, python-format
-msgid "%s for %s (%s shots): %s"
+msgid ""
+"Before creating a new person review the encounter details\n"
+"of the patient you just worked on:\n"
 msgstr ""
 
-msgid "ERROR: cannot retrieve due/overdue vaccinations"
+msgid "Edit the current encounter of the patient you are ABOUT TO LEAVE:"
 msgstr ""
 
-#, python-format
-msgid "%.0d weeks left: shot %s for %s in %s, due %s (%s)"
+msgid "Adding new person"
 msgstr ""
 
-#, python-format
-msgid "overdue %.0dyrs %.0dwks: shot %s for %s in schedule \"%s\" (%s)"
+msgid "ID exists !"
 msgstr ""
 
 #, python-format
-msgid "due now: booster for %s in schedule \"%s\" (%s)"
+msgid "One \"%s, %s (%s)\" already exists !"
 msgstr ""
 
 #, python-format
-msgid "Latest: %s ago (%s %s %s %s%s)"
+msgid "%s \"%s, %s (%s)\" already exist !"
 msgstr ""
 
-#, python-format
-msgid "%s %s %s %s (%s ago, %s)"
+msgid "Must enter lastname."
 msgstr ""
 
-#, python-format
-msgid "overdue %s: %s"
+msgid "Must enter first name."
 msgstr ""
 
-#, python-format
-msgid "due in %s%s"
+msgid "Must select gender."
 msgstr ""
 
 msgid ""
-"Do you really want to\n"
-"delete this inbox message ?"
+"To properly create an address, all the related fields must be filled in."
 msgstr ""
 
-msgid "Deleting inbox message"
+msgid "Required fields"
 msgstr ""
 
-#, fuzzy
-msgid "Export area: 1 item"
-msgstr "Exportera till SVG"
-
-#, fuzzy, python-format
-msgid "Export area: %s items"
-msgstr "Exporterat: %s\n"
-
-#, python-format
-msgid "%s %s more not shown %s"
+msgid "This field must contain an item selected from the dropdown list."
 msgstr ""
 
-#, fuzzy, python-format
-msgid "Currently %s entries in waiting list"
-msgstr "Den för närvarande valda patienten är:"
-
-#, python-format
-msgid "first (in GMd): %s, %s"
+msgid "Saving address"
 msgstr ""
 
-#, python-format
-msgid "last: %s, %s"
+msgid ""
+"Cannot save this address.\n"
+"\n"
+"You will have to add it via the Demographics plugin.\n"
 msgstr ""
 
-#, python-format
-msgid "Last %s:"
+msgid ""
+"Address not saved.\n"
+"\n"
+"You will have to add it via the Demographics plugin.\n"
 msgstr ""
 
-msgid "Statistics cover period"
+msgid "You need to actually set an editor."
 msgstr ""
 
 #, python-format
-msgid "EDC (!?!): %s"
+msgid "The command [%s] is not found."
 msgstr ""
 
+#, python-format
 msgid ""
-"The Expected Date of Confinement is rather questionable.\n"
+"Enter the shell command with which to start\n"
+"the image editor for visual progress notes.\n"
 "\n"
-"Please check patient age, patient gender, time until/since EDC."
+"Any \"%(img)s\" included with the arguments\n"
+"will be replaced by the file name of the\n"
+"note template."
 msgstr ""
 
-#, python-format
-msgid "%s Vacc: %s"
+msgid "Choose file to use as template for new visual progress note"
 msgstr ""
 
-#, python-format
-msgid "%s %s %s%s"
+msgid "Visual progress note source"
 msgstr ""
 
-#, python-format
-msgid "%s %s%s"
+msgid "From which source do you want to pick the image template ?"
 msgstr ""
 
-#, python-format
-msgid "** Currently hospitalized: %s **"
+msgid "Database"
 msgstr ""
 
-#, python-format
-msgid "emergency: %s"
+msgid "List of templates in the database."
 msgstr ""
 
-#, python-format
-msgid "in-praxis: %s"
+msgid "Files in the filesystem."
 msgstr ""
 
-#, fuzzy, python-format
-msgid "care: %s%s@%s"
-msgstr "Undersökningar: %s (%s - %s):"
-
-msgid "*** CONFIDENTIAL ***"
+msgid "Device"
 msgstr ""
 
-msgid " (confidential !)"
+msgid "Image capture devices (scanners, cameras, etc)"
 msgstr ""
 
-#, fuzzy, python-format
-msgid "extrnl: %s (%s@%s)"
-msgstr "Enhet: %s (%s)"
-
 #, python-format
-msgid "aka: %(last)s, %(first)s%(nick)s"
+msgid "Cannot export visual progress note template for [%s]."
 msgstr ""
 
-#, fuzzy, python-format
-msgid "job: %s (%s)"
-msgstr "Enhet: %s (%s)"
+msgid "Cannot export visual progress note to file."
+msgstr ""
+
+msgid "Editor for visual progress note not configured."
+msgstr ""
 
 #, python-format
-msgid "issued by: %s%s"
+msgid ""
+"There was a problem with running the editor\n"
+"for visual progress notes.\n"
+"\n"
+" [%s]\n"
+"\n"
 msgstr ""
 
-#, fuzzy, python-format
-msgid "Last modified: %s"
-msgstr "Senast bearbetad: %s\n"
+msgid "Editing visual progress note"
+msgstr ""
 
 #, python-format
 msgid ""
-"Activities:\n"
+"There was a problem reading the visual\n"
+"progress note from the file:\n"
+"\n"
+" [%s]\n"
 "\n"
-"%s"
 msgstr ""
 
-msgid "Cloning name"
+msgid "Saving visual progress note"
 msgstr ""
 
-msgid "Editing external ID"
+msgid ""
+"You either created a visual progress note from a template\n"
+"in the database (rather than from a file on disk) or you\n"
+"edited an existing visual progress note.\n"
+"\n"
+"The template/original was not modified at all, however.\n"
+"\n"
+"Do you still want to save the unmodified image as a\n"
+"visual progress note into the EMR of the patient ?\n"
 msgstr ""
 
-msgid "Adding new translation"
+msgid "visual progress notes"
 msgstr ""
 
-msgid "Editing translation"
+#, python-format
+msgid " [part 1 of %s]"
 msgstr ""
 
-msgid "Selecting language for translation"
-msgstr ""
+#, fuzzy, python-format
+msgid "Created: %s%s"
+msgstr "Skapa händelse"
 
-msgid ""
-"Please select the language the translations for which you want to work on."
+msgid "You must select a value from the picklist or type an exact match."
 msgstr ""
 
 #, python-format
 msgid ""
-"Are you sure you want to delete the translation of:\n"
-"\n"
-"%s\n"
-"\n"
-"into [%s] as:\n"
-"\n"
-"%s\n"
-"\n"
-"?  (Note that you must know the database administrator password !)\n"
+"The content is invalid. It must match the regular expression: [%%s]. <%s>"
 msgstr ""
 
-msgid "Deleting translation from database"
+msgid "Latin"
 msgstr ""
 
-msgid "deleting a translation"
+msgid "Greek"
 msgstr ""
 
-msgid "Contributing translations"
+msgid "Cyrillic"
 msgstr ""
 
-msgid "Do you want to contribute your translations to the GNUmed project ?"
+msgid "Four Es"
 msgstr ""
 
-msgid ""
-"Unable to send mail. Cannot contribute translations to GNUmed community."
+msgid "Symbol"
 msgstr ""
 
-msgid "Thank you for your contribution to the GNUmed community!"
+msgid "Snellen Chart"
 msgstr ""
 
-msgid "Showing translatable database strings for all languages."
+msgid "Snellen Chart Setup"
 msgstr ""
 
-#, python-format
-msgid "Showing translatable database strings for target language [%s]."
+msgid "Screen Height (cm): "
 msgstr ""
 
-msgid "Contribute translations to GNUmed community by email."
+msgid "Screen Width (cm): "
 msgstr ""
 
-msgid ""
-"Before creating a new person review the encounter details\n"
-"of the patient you just worked on:\n"
+msgid "Alphabet: "
 msgstr ""
 
-msgid "Edit the current encounter of the patient you are ABOUT TO LEAVE:"
+msgid "Mirror"
 msgstr ""
 
-msgid "Adding new person"
+msgid ""
+"Control Snellen chart using mouse:\n"
+"left-click increases text\n"
+"right-click decreases text\n"
+"double-click ends"
 msgstr ""
 
-msgid "ID exists !"
+msgid " OK "
 msgstr ""
 
-#, python-format
-msgid "One \"%s, %s (%s)\" already exists !"
+msgid " Cancel "
 msgstr ""
 
 #, python-format
-msgid "%s \"%s, %s (%s)\" already exist !"
+msgid "invalid placeholder >>>>>%s<<<<<"
 msgstr ""
 
-msgid "Must enter lastname."
+#, python-format
+msgid "due %(due_date)s: %(comment)s (%(interval_due)s)"
 msgstr ""
 
-msgid "Must enter first name."
+msgid "Select the patient documents to reference from the new document."
 msgstr ""
 
-msgid "Must select gender."
+msgid "template is missing"
 msgstr ""
 
-msgid ""
-"To properly create an address, all the related fields must be filled in."
-msgstr ""
-
-msgid "Required fields"
-msgstr ""
-
-msgid "This field must contain an item selected from the dropdown list."
-msgstr ""
-
-msgid "Saving address"
-msgstr ""
-
-msgid ""
-"Cannot save this address.\n"
-"\n"
-"You will have to add it via the Demographics plugin.\n"
-msgstr ""
-
-msgid ""
-"Address not saved.\n"
-"\n"
-"You will have to add it via the Demographics plugin.\n"
-msgstr ""
-
-msgid "You must select a value from the picklist or type an exact match."
-msgstr ""
-
-#, python-format
-msgid ""
-"The content is invalid. It must match the regular expression: [%%s]. <%s>"
-msgstr ""
-
-msgid "Latin"
-msgstr ""
-
-msgid "Greek"
-msgstr ""
-
-msgid "Cyrillic"
-msgstr ""
-
-msgid "Four Es"
-msgstr ""
-
-msgid "Symbol"
-msgstr ""
-
-msgid "Snellen Chart"
-msgstr ""
-
-msgid "Snellen Chart Setup"
-msgstr ""
-
-msgid "Screen Height (cm): "
-msgstr ""
-
-msgid "Screen Width (cm): "
-msgstr ""
-
-msgid "Alphabet: "
-msgstr ""
-
-msgid "Mirror"
-msgstr ""
-
-msgid ""
-"Control Snellen chart using mouse:\n"
-"left-click increases text\n"
-"right-click decreases text\n"
-"double-click ends"
-msgstr ""
-
-msgid " OK "
-msgstr ""
-
-msgid " Cancel "
-msgstr ""
-
-#, python-format
-msgid "invalid placeholder >>>>>%s<<<<<"
-msgstr ""
-
-#, python-format
-msgid "due %(due_date)s: %(comment)s (%(interval_due)s)"
-msgstr ""
-
-msgid "Select the patient documents to reference from the new document."
-msgstr ""
-
-msgid "template is missing"
-msgstr ""
-
-#, python-format
-msgid "invalid gender mapping layout: [%s]"
+#, python-format
+msgid "invalid gender mapping layout: [%s]"
 msgstr ""
 
 #, fuzzy
@@ -9985,7 +10398,8 @@ msgstr ""
 
 #, python-format
 msgid ""
-"%(street)s %(number)s, %(postcode)s %(urb)s, %(l10n_state)s, %(l10n_country)s"
+"%(street)s %(number)s, %(postcode)s %(urb)s, %(l10n_region)s, "
+"%(l10n_country)s"
 msgstr ""
 
 #, python-format
@@ -10580,7 +10994,7 @@ msgstr ""
 msgid ""
 "Cannot save address.\n"
 "\n"
-"Does the state [%s]\n"
+"Does the region [%s]\n"
 "exist in country [%s] ?"
 msgstr ""
 
@@ -11017,7 +11431,7 @@ msgstr ""
 msgid "Reminders for the current patient"
 msgstr ""
 
-msgid "Sent"
+msgid "Generated"
 msgstr ""
 
 #, fuzzy
@@ -11066,9 +11480,6 @@ msgid ""
 "Data: %s"
 msgstr ""
 
-msgid "Inbox Message Actions:"
-msgstr ""
-
 msgid "Activate patient"
 msgstr ""
 
@@ -11760,7 +12171,7 @@ msgid ""
 msgstr ""
 
 #, python-format
-msgid "Select branch (of praxis [%s]) which you are logging in from.\n"
+msgid "Select the branch of praxis [%s] which you are logging in from.\n"
 msgstr ""
 
 msgid "Praxis branch selection ..."
@@ -12068,6 +12479,16 @@ msgstr ""
 msgid "List of addresses related to this person."
 msgstr ""
 
+#, fuzzy
+msgid "Map"
+msgstr "Mar"
+
+#, fuzzy
+msgid "Show selected address on map"
+msgstr ""
+"\n"
+"Välj den undersökningstyp du vill redigera!\n"
+
 msgid "Adding new address"
 msgstr ""
 
@@ -12250,10 +12671,91 @@ msgstr "externt patient-ID"
 msgid "generic multi choice dialog"
 msgstr ""
 
+msgid "Deleting list items"
+msgstr ""
+
+#, python-format
+msgid ""
+"You have selected %s list items.\n"
+"\n"
+"Really delete all %s items ?"
+msgstr ""
+
+msgid ""
+"Select the items you want to work on.\n"
+"\n"
+"A discontinuous selection may depend on your holding down a platform-"
+"dependent modifier key (<CTRL>, <ALT>, etc) or key combination (eg. <CTRL-"
+"SHIFT> or <CTRL-ALT>) while clicking."
+msgstr ""
+
+#, fuzzy
+msgid "List Item Actions:"
+msgstr "Undesökningsåtgärder:"
+
+msgid "Add (<INS>)"
+msgstr ""
+
+#, fuzzy
+msgid "Delete (<DEL>)"
+msgstr "Ta bort"
+
+msgid "Find (<CTRL-F>)"
+msgstr ""
+
+#, python-format
+msgid "Find next [%s] (<CTRL-N>)"
+msgstr ""
+
+msgid "Row tooltip"
+msgstr ""
+
+msgid "Row data (formatted as text)"
+msgstr ""
+
+msgid "Row content (as one line)"
+msgstr ""
+
+msgid "Row content (one line per column)"
+msgstr ""
+
+#, python-format
+msgid "Column &%s: \"%s\" [#%s]"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "Column &%s: %s"
+msgstr "Dokument: %s"
+
+#, fuzzy
+msgid "&Copy to clipboard..."
+msgstr "Misslyckades med att kopiera till klippbordet"
+
+#, fuzzy
+msgid "Append (&+) to clipboard..."
+msgstr "Misslyckades med att kopiera till klippbordet"
+
+#, python-format
+msgid ""
+"%s list items are selected.\n"
+"\n"
+"Really delete all %s items ?"
+msgstr ""
+
 #, fuzzy
-msgid "Search in list"
+msgid "Enter the search term:"
 msgstr "Medicinlista"
 
+msgid "List search"
+msgstr ""
+
+#, python-format
+msgid ""
+"Current search term: [[%s]]\n"
+"\n"
+"%s"
+msgstr ""
+
 msgid "Monty the Serpent && the FSF Present"
 msgstr ""
 
@@ -12407,6 +12909,9 @@ msgstr ""
 msgid "Unknown: ?"
 msgstr ""
 
+msgid "The text has been copied into the clipboard."
+msgstr ""
+
 msgid "file2clipboard"
 msgstr ""
 
@@ -12414,6 +12919,43 @@ msgstr ""
 msgid "The file [%s] has been copied into the clipboard."
 msgstr ""
 
+msgid "programmer forgot to specify error message"
+msgstr "Felmeddelandet har ej specifierats."
+
+msgid ""
+"\n"
+"\n"
+"Please consult the error log for all the gory details !"
+msgstr ""
+"\n"
+"\n"
+"Var vänlig konsultera felloggen för vidare information"
+
+msgid "generic error message"
+msgstr "Allmänt felmeddelanden"
+
+msgid "programmer forgot to specify info message"
+msgstr "Informationsmeddelande har ej specifierats."
+
+msgid "generic info message"
+msgstr "Allmänt informationsmeddelande"
+
+msgid "programmer forgot to specify warning"
+msgstr "Programmerare har glömt att specifiera Varningsmeddelande"
+
+msgid "generic warning message"
+msgstr "Allmänt varningsmeddelande"
+
+msgid "Editing EDC"
+msgstr ""
+
+#, python-format
+msgid ""
+"Really delete the EDC documented previously ?\n"
+"\n"
+" EDC: %s"
+msgstr ""
+
 #, python-format
 msgid ""
 "Algorithm: %s\n"
@@ -12523,15 +13065,15 @@ msgstr ""
 msgid "Firstname"
 msgstr ""
 
-msgid "Nickname"
-msgstr ""
-
 msgid "DOB"
 msgstr ""
 
 msgid "last visit"
 msgstr ""
 
+msgid "Nickname / Comment"
+msgstr ""
+
 msgid "found via"
 msgstr ""
 
@@ -12711,310 +13253,61 @@ msgstr ""
 msgid "In case of emergency contact:"
 msgstr ""
 
-msgid ""
-"\n"
-"Please select the default drug data source from the list below.\n"
-"\n"
-"Note that to actually use it you need to have the database installed, too."
-msgstr ""
-
-msgid "Drug data source"
+msgid "The preparation (form) of the substance or brand."
 msgstr ""
 
-msgid "Configuring default drug data source"
+msgid "A substance with optional strength or a brand."
 msgstr ""
 
-msgid "No default drug database configured."
+msgid "The medical aim for consuming this substance."
 msgstr ""
 
-msgid "There is no default drug database configured."
+msgid "not tolerated:"
 msgstr ""
 
-msgid "Jumping to drug database"
+msgid "discontinued due to allergy or intolerance"
 msgstr ""
 
-#, python-format
-msgid "Cannot call IFAP via [%s]."
+msgid "Documented an allergy"
 msgstr ""
 
 #, python-format
-msgid "Cannot create IFAP <-> GNUmed transfer file [%s]."
-msgstr ""
-
-msgid "Current medication"
-msgstr ""
-
 msgid ""
+"An allergy was documented against the substance:\n"
 "\n"
-"The ATC codes as known to GNUmed.\n"
+"  [%s]\n"
+"\n"
+"This substance was taken with the multi-component brand:\n"
+"\n"
+"  [%s (%s)]\n"
+"\n"
+"Note that ALL components of this brand were discontinued."
 msgstr ""
 
-msgid "Showing ATC codes."
+msgid "disapproved"
 msgstr ""
 
-msgid "Choose an ATC import config file"
+msgid "Substances consumed by the patient:"
 msgstr ""
 
-msgid "config files"
+msgid "Showing consumable substances."
 msgstr ""
 
-msgid "importing ATC reference data"
+msgid "Application"
 msgstr ""
 
-msgid "Successfully imported ATC reference data."
+msgid "never"
 msgstr ""
 
-msgid "Importing ATC reference data failed."
+#, python-format
+msgid "%s, last confirmed %s\n"
 msgstr ""
 
-msgid "Select an ATC (Anatomical-Therapeutic-Chemical) code."
+#, python-format
+msgid "Comment (%s): %%s\n"
 msgstr ""
 
-msgid "Cannot delete this substance. It is in use."
-msgstr ""
-
-msgid ""
-"\n"
-"These are the consumable substances registered with GNUmed.\n"
-msgstr ""
-
-msgid "Showing consumable substances."
-msgstr ""
-
-msgid "Import"
-msgstr ""
-
-msgid "Import consumable substances from a drug database."
-msgstr ""
-
-msgid "Cannot edit this substance. It is in use."
-msgstr ""
-
-msgid "Adding new consumable substance"
-msgstr ""
-
-msgid "Editing consumable substance"
-msgstr ""
-
-msgid "Cannot save consumable substance. Missing essential input."
-msgstr ""
-
-#, python-format
-msgid "Cannot save consumable substance. %s"
-msgstr ""
-
-msgid "Cannot remove this component from the drug. It is in use."
-msgstr ""
-
-msgid ""
-"\n"
-"These are the components in the drug brands known to GNUmed.\n"
-msgstr ""
-
-msgid "Showing drug brand components."
-msgstr ""
-
-msgid "Adding new drug component"
-msgstr ""
-
-msgid "Editing drug component"
-msgstr ""
-
-msgid "Cannot edit drug component. It is in use."
-msgstr ""
-
-msgid "Cannot save drug component. Invalid or missing essential input."
-msgstr ""
-
-msgid "A drug component with optional strength."
-msgstr ""
-
-msgid "The preparation (form) of the substance or brand."
-msgstr ""
-
-msgid "The substance with optional strength."
-msgstr ""
-
-msgid "Managing components of a drug"
-msgstr ""
-
-#, python-format
-msgid ""
-"Cannot manage the components of the branded drug product\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is currently taken by patients.\n"
-msgstr ""
-
-msgid "Pick the substances which are components of this drug."
-msgstr ""
-
-msgid "Components of drug"
-msgstr ""
-
-#, python-format
-msgid ""
-"Adjust the components of \"%s\"\n"
-"\n"
-"The drug must contain at least one component. Any given\n"
-"substance can only be included once per drug."
-msgstr ""
-
-msgid "Managing components of a drug ..."
-msgstr ""
-
-msgid "not in use"
-msgstr ""
-
-#, python-format
-msgid "ATC: %s\n"
-msgstr ""
-
-msgid "Editing medication"
-msgstr ""
-
-#, python-format
-msgid ""
-"Cannot edit the medication\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is a vaccine. Please edit it\n"
-"from the vaccine management section !\n"
-msgstr ""
-
-msgid "Deleting medication"
-msgstr ""
-
-#, python-format
-msgid ""
-"Cannot delete the medication\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is a vaccine. Please delete it\n"
-"from the vaccine management section !\n"
-msgstr ""
-
-msgid ""
-"\n"
-"These are the drug brands known to GNUmed.\n"
-msgstr ""
-
-msgid "Showing branded drugs."
-msgstr ""
-
-msgid "Import substances and brands from a drug database."
-msgstr ""
-
-msgid "Editing drug"
-msgstr ""
-
-#, python-format
-msgid ""
-"Cannot edit the branded drug product\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is currently taken by patients.\n"
-msgstr ""
-
-msgid "Adding new drug brand"
-msgstr ""
-
-msgid "Editing drug brand"
-msgstr ""
-
-msgid "Manage consumable substances"
-msgstr ""
-
-msgid "Cannot edit drug brand. It is in use."
-msgstr ""
-
-msgid "Checking brand data"
-msgstr ""
-
-#, python-format
-msgid ""
-"The brand information you entered:\n"
-"\n"
-" [%s %s]\n"
-"\n"
-"already exists as a drug product."
-msgstr ""
-
-msgid ""
-"You have not selected any substances\n"
-"as drug components.\n"
-"\n"
-"Without components you will not be able to\n"
-"use this drug for documenting patient care.\n"
-"\n"
-"Are you sure you want to save\n"
-"it without components ?"
-msgstr ""
-
-msgid "Cannot save branded drug. Invalid or missing essential input."
-msgstr ""
-
-msgid ""
-"The brand name of the drug.\n"
-"\n"
-"Note: a brand name will need to be linked to\n"
-"one or more components before it can be used,\n"
-"except in the case of fake (generic) vaccines."
-msgstr ""
-
-msgid "The medical aim for consuming this substance."
-msgstr ""
-
-msgid "not tolerated:"
-msgstr ""
-
-msgid "discontinued due to allergy or intolerance"
-msgstr ""
-
-msgid "Documented an allergy"
-msgstr ""
-
-#, python-format
-msgid ""
-"An allergy was documented against the substance:\n"
-"\n"
-"  [%s]\n"
-"\n"
-"This substance was taken with the multi-component brand:\n"
-"\n"
-"  [%s (%s)]\n"
-"\n"
-"Note that ALL components of this brand were discontinued."
-msgstr ""
-
-msgid "disapproved"
-msgstr ""
-
-msgid "Substances consumed by the patient:"
-msgstr ""
-
-msgid "Intake"
-msgstr ""
-
-msgid "Application"
-msgstr ""
-
-msgid "never"
-msgstr ""
-
-#, python-format
-msgid "%s, last confirmed %s\n"
-msgstr ""
-
-#, python-format
-msgid "Comment (%s): %%s\n"
-msgstr ""
-
-msgid "reaction not recorded"
+msgid "reaction not recorded"
 msgstr ""
 
 #, fuzzy
@@ -13024,6 +13317,13 @@ msgstr "Okänd"
 msgid "GFR reported by path lab"
 msgstr ""
 
+#, fuzzy
+msgid "<no components>"
+msgstr "&Innehåll\tF1"
+
+msgid "Adding substance intake entry"
+msgstr ""
+
 #, python-format
 msgid ""
 "The patient is already taking\n"
@@ -13034,9 +13334,6 @@ msgid ""
 "rather than document the intake twice."
 msgstr ""
 
-msgid "Adding substance intake entry"
-msgstr ""
-
 msgid "Input incomplete/invalid for saving as substance intake."
 msgstr ""
 
@@ -13141,8 +13438,9 @@ msgstr ""
 msgid "Add to medication list"
 msgstr ""
 
-msgid "Duration / Until"
-msgstr ""
+#, fuzzy
+msgid "Timeframe"
+msgstr "Tidslinje"
 
 #, python-format
 msgid "%s <fake>"
@@ -13182,10 +13480,6 @@ msgstr "Enhet: %s (%s)"
 msgid "eGFR:"
 msgstr ""
 
-#, fuzzy, python-format
-msgid "%s%s%s (%s ago)"
-msgstr "Enhet: %s (%s)"
-
 #, python-format
 msgid "eGFR: %.1f (%s)"
 msgstr ""
@@ -13358,14 +13652,21 @@ msgid ""
 "\n"
 " [%s]\n"
 "\n"
-"is not empty. Do you want to use it for saving the\n"
-"export area documents into, nevertheless ?\n"
+"already contains files. Do you still want to save the\n"
+"selected export area documents into that directory ?\n"
 "\n"
-"(this can be useful for including external documents)\n"
+"(this is useful for including the external documents\n"
+" already stored in or below this directory)\n"
 "\n"
 "[NO] will create a subdirectory for you and use that."
 msgstr ""
 
+msgid ""
+"Create descriptive metadata files\n"
+"and save them alongside the\n"
+"selected export area documents ?"
+msgstr ""
+
 #, fuzzy, python-format
 msgid ""
 "Saved to [%s]:\n"
@@ -13577,9 +13878,6 @@ msgstr ""
 msgid "This praxis"
 msgstr "timmar"
 
-msgid "Hospital stay"
-msgstr ""
-
 #, fuzzy
 msgid "Bill receiver"
 msgstr "Välj händelse"
@@ -13616,10 +13914,53 @@ msgstr ""
 msgid "Select the episode under which to file the document ..."
 msgstr ""
 
+msgid "Cannot create new document."
+msgstr ""
+
+msgid "saving document"
+msgstr ""
+
 #, python-format
 msgid "Imported new document from %s."
 msgstr ""
 
+msgid "Successfully saved new document."
+msgstr ""
+
+msgid "Successfully saved the new document."
+msgstr ""
+
+#, python-format
+msgid ""
+"The reference ID for the new document is:\n"
+"\n"
+" <%s>\n"
+"\n"
+"You probably want to write it down on the\n"
+"original documents.\n"
+"\n"
+"If you don't care about the ID you can switch\n"
+"off this message in the GNUmed configuration.\n"
+msgstr ""
+
+msgid "Saving document"
+msgstr ""
+
+#, python-format
+msgid ""
+"Successfully imported files as document.\n"
+"\n"
+"Do you want to delete imported files from the filesystem ?\n"
+"\n"
+" %s\n"
+"\n"
+"Note that temporary files will be deleted anyway."
+msgstr ""
+
+#, fuzzy
+msgid "Removing files"
+msgstr "Tidslinjefiler"
+
 msgid "Enter a comment on the document."
 msgstr ""
 
@@ -13737,14 +14078,16 @@ msgstr ""
 msgid "Acquiring images"
 msgstr ""
 
-msgid "other documents"
+msgid "directory dropped on client"
 msgstr ""
 
-#, python-format
-msgid "part %s: %s"
+msgid "file dropped on client"
 msgstr ""
 
-msgid "saving document"
+msgid "other documents"
+msgstr ""
+
+msgid "path"
 msgstr ""
 
 msgid "No parts to save. Really save an empty document as a reference ?"
@@ -13789,17 +14132,25 @@ msgstr ""
 msgid "acquiring page"
 msgstr ""
 
+msgid "captured by imaging device"
+msgstr ""
+
 msgid "Choose a file"
 msgstr ""
 
 msgid "all files (Win)"
 msgstr ""
 
-msgid "You must select a part before you can view it."
+msgid "picked from storage media"
 msgstr ""
 
-msgid "displaying part"
-msgstr ""
+#, fuzzy
+msgid "pasted from clipboard"
+msgstr "Misslyckades med att kopiera till klippbordet"
+
+#, fuzzy
+msgid "No part selected for viewing."
+msgstr "Det går inte att scrolla mer åt höger"
 
 #, python-format
 msgid ""
@@ -13807,45 +14158,12 @@ msgid ""
 "%s"
 msgstr ""
 
-msgid "You must select a part before you can delete it."
-msgstr ""
-
-msgid "deleting part"
-msgstr ""
-
-#, python-format
-msgid ""
-"The part has successfully been removed from the document.\n"
-"\n"
-"Do you also want to permanently delete the file\n"
-"\n"
-" [%s]\n"
-"\n"
-"from which this document part was loaded ?\n"
-"\n"
-"If it is a temporary file for a page you just scanned\n"
-"this makes a lot of sense. In other cases you may not\n"
-"want to lose the file.\n"
-"\n"
-"Pressing [YES] will permanently remove the file\n"
-"from your computer.\n"
-msgstr ""
-
-msgid "Removing document part"
-msgstr ""
-
-#, python-format
-msgid ""
-"Cannot delete part in file [%s].\n"
-"\n"
-"You may not have write access to it."
-msgstr ""
-
-msgid "Cannot create new document."
+msgid "displaying part"
 msgstr ""
 
-msgid "Cannot update document metadata."
-msgstr ""
+#, fuzzy
+msgid "No part selected for removal."
+msgstr "Det går inte att scrolla mer åt höger"
 
 msgid "Cannot add document description."
 msgstr ""
@@ -13853,26 +14171,12 @@ msgstr ""
 msgid "Error setting \"reviewed\" status of new document."
 msgstr ""
 
-msgid "Successfully saved the new document."
-msgstr ""
-
 #, python-format
 msgid ""
-"The reference ID for the new document is:\n"
-"\n"
-" <%s>\n"
-"\n"
-"You probably want to write it down on the\n"
-"original documents.\n"
+"Source: %s\n"
+"File: %s\n"
 "\n"
-"If you don't care about the ID you can switch\n"
-"off this message in the GNUmed configuration."
-msgstr ""
-
-msgid "Saving document"
-msgstr ""
-
-msgid "Successfully saved new document."
+"%s"
 msgstr ""
 
 msgid "Document part does not seem to exist in database !"
@@ -13887,9 +14191,6 @@ msgstr ""
 msgid "Showing documents."
 msgstr ""
 
-msgid "Generated"
-msgstr ""
-
 msgid "Ref #"
 msgstr ""
 
@@ -14144,6 +14445,158 @@ msgstr ""
 msgid "Deleting document"
 msgstr ""
 
+msgid "Study date"
+msgstr ""
+
+#, fuzzy
+msgid "Study time"
+msgstr "Starttid "
+
+msgid "Method"
+msgstr ""
+
+#, fuzzy
+msgid "Body part"
+msgstr "del"
+
+#, fuzzy
+msgid "Time"
+msgstr "Tidslinje"
+
+msgid "Cannot connect without port (try 8042)."
+msgstr ""
+
+#, python-format
+msgid "Connect to [%s] @ port %s as \"%s\"."
+msgstr ""
+
+#, fuzzy
+msgid "Cannot connect to PACS."
+msgstr "Kan inte ansluta till tjänst [%s]"
+
+#, python-format
+msgid "PACS: Orthanc \"%s\" (AET \"%s\", Version %s, DB v%s)"
+msgstr ""
+
+#, python-format
+msgid "GNUmed patient: %s (generic PACS ID)"
+msgstr ""
+
+#, python-format
+msgid "GNUmed patient: \"%(value)s\" @ [%(issuer)s] (stored PACS ID)"
+msgstr ""
+
+msgid "PACS: no patients with matching IDs found"
+msgstr ""
+
+msgid ""
+"PACS: more than one patient with matching IDs found, carefully check studies"
+msgstr ""
+
+#, python-format
+msgid "%s series"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "%%s (%s series)"
+msgstr "%s (%s innevarande år)"
+
+msgid "no studies"
+msgstr ""
+
+#, python-format
+msgid "%s studies"
+msgstr ""
+
+msgid "Exporting DICOM studies"
+msgstr ""
+
+#, fuzzy
+msgid "Unable to export selected studies."
+msgstr "Det gick inte att ta bort backupfilen '%s'."
+
+#, python-format
+msgid ""
+"The DICOM studies are %s in compressed size.\n"
+"\n"
+"Really copy to export area ?"
+msgstr ""
+
+#, python-format
+msgid "DICOM studies of [%s] from Orthanc PACS \"%s\" (AET \"%s\")"
+msgstr ""
+
+#, fuzzy
+msgid "Select the directory into which to save the DICOM studies."
+msgstr ""
+"\n"
+"Välj den undersökningstyp du vill redigera!\n"
+
+msgid "Saving DICOM studies"
+msgstr ""
+
+#, fuzzy
+msgid "Unable to save selected studies."
+msgstr "Det gick inte att ta bort backupfilen '%s'."
+
+#, fuzzy
+msgid "Unable to export studies."
+msgstr "Kan inte öppna tidslinje '%s'."
+
+#, python-format
+msgid "All DICOM studies of [%s] from Orthanc PACS \"%s\" (AET \"%s\")"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "%s%s images"
+msgstr "Enhet: %s (%s)"
+
+#, fuzzy
+msgid "Select the directory from which to recursively upload DICOM files."
+msgstr ""
+"\n"
+"Välj den undersökningstyp du vill redigera!\n"
+
+msgid "Delete the uploaded DICOM files now ?"
+msgstr ""
+
+msgid ""
+"Some files have not been uploaded.\n"
+"\n"
+"Do you want to delete those DICOM files which have been sent to the PACS "
+"successfully ?"
+msgstr ""
+
+msgid "Uploading DICOM files"
+msgstr ""
+
+#, fuzzy
+msgid "Editing Orthanc content"
+msgstr "Välj typ av undersökning"
+
+#, fuzzy
+msgid "Patient ID"
+msgstr "Exporterat: %s\n"
+
+msgid "Birth date"
+msgstr ""
+
+msgid "Orthanc"
+msgstr ""
+
+#, fuzzy
+msgid "Modifying patient ID"
+msgstr "internt patient-ID"
+
+#, python-format
+msgid ""
+"Really modify %s patient(s) to have the new patient ID\n"
+"\n"
+" [%s]\n"
+"\n"
+"stored in the Orthanc DICOM server ?"
+msgstr ""
+
 #, python-format
 msgid "You are logged in as %s%s.%s (%s). DB account <%s>."
 msgstr ""
@@ -14203,6 +14656,16 @@ msgstr "Medicinlista"
 msgid "Select the measurements panel to show in the medications plugin."
 msgstr ""
 
+#, fuzzy
+msgid "General measurements"
+msgstr "Medicinlista"
+
+#, fuzzy
+msgid "Select the measurements panel to show in the top pane."
+msgstr ""
+"Bocka i detta val om du vill att GNUmed skall registrera ditt val och inte "
+"ånyo fråga dig i fortsättningen."
+
 msgid "Review dialog"
 msgstr ""
 
@@ -14293,6 +14756,12 @@ msgstr ""
 msgid "Configure auto-opening editors for recent problems."
 msgstr ""
 
+msgid "SOAP fields"
+msgstr ""
+
+msgid "Configure SOAP editor - individual SOAP fields vs text editor like"
+msgstr ""
+
 msgid "Progress notes handling ..."
 msgstr ""
 
@@ -14314,6 +14783,9 @@ msgstr ""
 msgid "URL for measurements encyclopedia."
 msgstr ""
 
+msgid "Drug data source"
+msgstr ""
+
 msgid "Select the drug data source."
 msgstr ""
 
@@ -14684,6 +15156,14 @@ msgstr ""
 msgid "Manage dynamic hints suppressed in this patient."
 msgstr ""
 
+#, fuzzy
+msgid "Substance abuse"
+msgstr "Substans"
+
+#, fuzzy
+msgid "Manage substance abuse documentation of this patient."
+msgstr "externt patient-ID"
+
 msgid "&Add / Edit ..."
 msgstr ""
 
@@ -14705,34 +15185,61 @@ msgstr ""
 msgid "Show a high-level statistic summary of the EMR."
 msgstr ""
 
-msgid "Text document"
+msgid "Journal (encounters) to file"
 msgstr ""
 
-msgid "Export the EMR of the active patient into a text file"
+msgid ""
+"Save the EMR of the active patient as a chronological journal into a text "
+"file"
 msgstr ""
 
-msgid "Journal"
-msgstr ""
+#, fuzzy
+msgid "Journal (encounters) to export area"
+msgstr "Lägger till ny undersökningstyp"
 
 msgid ""
-"Export the EMR of the active patient as a chronological journal into a text "
-"file"
+"Copy EMR of the active patient as a chronological journal into export area"
 msgstr ""
 
-msgid "MEDISTAR import format"
+msgid "Journal (mod time) to file"
 msgstr ""
 
 msgid ""
-"GNUmed -> MEDISTAR. Export progress notes of active patient's active "
-"encounter into a text file."
+"Save the EMR of the active patient as journal by last modification time into "
+"a text file"
 msgstr ""
-"GNUmed -> MEDISTAR. Exportera uppföljningsanteckningar för vald patients "
-"valda undersökning till en textfil."
 
-msgid "Export as ..."
-msgstr ""
+#, fuzzy
+msgid "Journal (mod time) to export area"
+msgstr "Lägger till ny undersökningstyp"
 
-msgid "&EMR"
+msgid ""
+"Copy EMR of the active patient as journal by last modification time into "
+"export area"
+msgstr ""
+
+msgid "Text document"
+msgstr ""
+
+#, fuzzy
+msgid "Save the EMR of the active patient into a text file"
+msgstr "Kan ej införliva vald patients akt med annan patients akt."
+
+msgid "MEDISTAR import format"
+msgstr ""
+
+#, fuzzy
+msgid ""
+"GNUmed -> MEDISTAR. Save progress notes of active patient's active encounter "
+"into a text file."
+msgstr ""
+"GNUmed -> MEDISTAR. Exportera uppföljningsanteckningar för vald patients "
+"valda undersökning till en textfil."
+
+msgid "Export as ..."
+msgstr ""
+
+msgid "&EMR"
 msgstr ""
 
 msgid "&Write letter"
@@ -14901,19 +15408,42 @@ msgstr ""
 msgid "Show log file"
 msgstr ""
 
-msgid "Show the log file in text viewer."
+msgid "Show log file in text viewer."
 msgstr ""
 
 msgid "Backup log file"
 msgstr ""
 
-msgid "Backup the content of the log to another file."
+msgid "Backup content of the log to another file."
 msgstr ""
 
 msgid "Email log file"
 msgstr ""
 
-msgid "Send the log file to the authors for help."
+msgid "Send log file to the authors for help."
+msgstr ""
+
+#, fuzzy
+msgid "Browse tmp dir"
+msgstr "Beskrivning"
+
+#, python-format
+msgid "Browse temporary directory [%s]."
+msgstr ""
+
+#, fuzzy
+msgid "Browse work dir"
+msgstr "Beskrivning"
+
+#, python-format
+msgid "Browse user working directory [%s]."
+msgstr ""
+
+msgid "Browse internal work dir"
+msgstr ""
+
+#, python-format
+msgid "Browse internal working directory [%s]."
 msgstr ""
 
 msgid "Bug tracker"
@@ -15279,6 +15809,20 @@ msgid "No, only auto-open one editor for a new, unassociated problem."
 msgstr ""
 
 msgid ""
+"When editing progress notes, do you want GNUmed to\n"
+"show individual fields for each of the SOAP categories\n"
+"or do you want to use a text-editor like field for\n"
+"all SOAP categories which can then be set per line\n"
+"of input ?"
+msgstr ""
+
+msgid "Yes, show a dedicated field per SOAP category."
+msgstr ""
+
+msgid "No, use one field for all SOAP categories."
+msgstr ""
+
+msgid ""
 "When a patient is activated GNUmed can\n"
 "be told to switch to a specific plugin.\n"
 "\n"
@@ -15467,659 +16011,1075 @@ msgid ""
 msgstr ""
 
 msgid ""
-"Do you want to allow saving of new documents without\n"
-"any parts or do you want GNUmed to enforce that they\n"
-"contain at least one part before they can be saved ?\n"
+"Do you want to allow saving of new documents without\n"
+"any parts or do you want GNUmed to enforce that they\n"
+"contain at least one part before they can be saved ?\n"
+"\n"
+"Part-less documents can be useful if you want to build\n"
+"up an index of, say, archived documents but do not\n"
+"want to scan in all the pages contained therein."
+msgstr ""
+
+msgid "Yes, allow saving documents without any parts."
+msgstr ""
+
+msgid "No, require documents to have at least one part."
+msgstr ""
+
+msgid ""
+"After importing a new document do you\n"
+"want GNUmed to display the unique ID\n"
+"it auto-generated for that document ?\n"
+"\n"
+"This can be useful if you want to label the\n"
+"originals with that ID for later identification."
+msgstr ""
+
+msgid "Yes, display the ID generated for the new document after importing."
+msgstr ""
+
+msgid ""
+"No, do not display the ID generated for the new document after importing."
+msgstr ""
+
+msgid ""
+"After importing a new document do you\n"
+"want GNUmed to generate a unique ID\n"
+"(UUID) for that document ?\n"
+"\n"
+"This can be useful if you want to label the\n"
+"originals with that ID for later identification."
+msgstr ""
+
+msgid "Yes, generate a UUID for the new document after importing."
+msgstr ""
+
+msgid "No, do not generate a UUID for the new document after importing."
+msgstr ""
+
+msgid ""
+"GNUmed can show the document review dialog after\n"
+"calling the appropriate viewer for that document.\n"
+"\n"
+"Select the conditions under which you want\n"
+"GNUmed to do so:\n"
+"\n"
+" 0: never display the review dialog\n"
+" 1: always display the dialog\n"
+" 2: only if there is no previous review by me\n"
+" 3: only if there is no previous review at all\n"
+" 4: only if there is no review by the responsible reviewer\n"
+"\n"
+"Note that if a viewer is configured to not block\n"
+"GNUmed during document display the review dialog\n"
+"will actually appear in parallel to the viewer."
+msgstr ""
+
+msgid "Addresses (likely slow)"
+msgstr ""
+
+msgid "Branded drugs (as marketed)"
+msgstr ""
+
+msgid "Dynamic automatic hints"
+msgstr ""
+
+msgid "Codes and their respective terms"
+msgstr ""
+
+msgid "Communication channel types"
+msgstr ""
+
+msgid "Components of branded drugs (substances in brands)"
+msgstr ""
+
+msgid "Diagnostic organizations (path labs, ...)"
+msgstr ""
+
+msgid "Document templates (forms, letters, plots, ...)"
+msgstr ""
+
+msgid "Document types"
+msgstr ""
+
+msgid "Encounter types"
+msgstr ""
+
+msgid "Keyword based text expansion macros"
+msgstr ""
+
+msgid "Meta test/measurement types"
+msgstr ""
+
+msgid "Organizations with their units, addresses, and comm channels"
+msgstr ""
+
+msgid "Patient tags"
+msgstr ""
+
+msgid "Provinces (counties, territories, states, regions, ...)"
+msgstr ""
+
+msgid "String translations in the database"
+msgstr ""
+
+msgid "Test/measurement types"
+msgstr ""
+
+msgid "Vaccination targets (conditions known to be preventable by vaccination)"
+msgstr ""
+
+msgid "Vaccines"
+msgstr ""
+
+msgid "Workplace profiles (which plugins to load)"
+msgstr ""
+
+msgid "Consumable substances"
+msgstr ""
+
+msgid "Billable items"
+msgstr ""
+
+msgid "Reference data sources"
+msgstr ""
+
+msgid "Test/measurement panels/profiles"
+msgstr ""
+
+msgid "Master data management"
+msgstr ""
+
+msgid "Select the list you want to manage:"
+msgstr ""
+
+msgid "No DICOM viewer found."
+msgstr ""
+
+msgid "risk assessment"
+msgstr ""
+
+msgid "cardiovascular risk assessment"
+msgstr ""
+
+#, python-format
+msgid "[arriba] XML result not found in [%s]"
+msgstr ""
+
+msgid "ACS risk assessment calculator not configured."
+msgstr ""
+
+#, python-format
+msgid "Cannot run [%s] !"
+msgstr ""
+
+#, python-format
+msgid "There was a problem accessing the [arriba] result in [%s] !"
+msgstr ""
+
+msgid "[-9999]: <access violation test error>"
+msgstr ""
+
+msgid ""
+"This is a deliberate AccessDenied exception thrown to test the handling of "
+"access violations by means of a decorator."
+msgstr ""
+
+msgid "testing access check for non-existant <admin> role"
+msgstr ""
+
+msgid ""
+"This is a deliberate AccessDenied exception. You should not see this message "
+"because the role is checked in a decorator."
+msgstr ""
+
+msgid "pgAdmin III not found."
+msgstr ""
+
+msgid "Error reloading hook script."
+msgstr ""
+
+msgid "Save current log as..."
+msgstr ""
+
+msgid "log files"
+msgstr ""
+
+#, python-format
+msgid "Log file backed up as [%s]."
+msgstr ""
+
+msgid "Cannot start new encounter. No active patient."
+msgstr ""
+
+msgid "Cannot add health issue. No active patient."
+msgstr ""
+
+msgid "Cannot add episode. No active patient."
+msgstr ""
+
+msgid "Cannot add medication. No active patient."
+msgstr ""
+
+msgid "Cannot add allergy. No active patient."
+msgstr ""
+
+msgid "Cannot manage performed procedures. No active patient."
+msgstr ""
+
+msgid "Cannot manage hospitalizations. No active patient."
+msgstr ""
+
+#, fuzzy
+msgid "Cannot manage external care. No active patient."
+msgstr "Kan inte lista undersökningar. Ingen patient vald."
+
+msgid "Cannot edit occupation. No active patient."
+msgstr ""
+
+#, fuzzy
+msgid "manage vaccinations"
+msgstr "Senaste vaccineringar"
+
+msgid "Cannot add vaccinations. No active patient."
+msgstr ""
+
+#, fuzzy
+msgid "manage family history"
+msgstr "Familjehistoria"
+
+msgid "Cannot manage family history. No active patient."
+msgstr ""
+
+#, fuzzy
+msgid "Cannot manage measurements. No active patient."
+msgstr "Kan inte lista undersökningar. Ingen patient vald."
+
+msgid "calculate EDC"
+msgstr ""
+
+msgid "manage suppressed hints"
+msgstr ""
+
+#, fuzzy
+msgid "Cannot manage suppressed hints. No active patient."
+msgstr "Kan inte lista undersökningar. Ingen patient vald."
+
+#, fuzzy
+msgid "Cannot manage smoking status. No active patient."
+msgstr "Kan inte lista undersökningar. Ingen patient vald."
+
+msgid "Cannot show EMR summary. No active patient."
+msgstr ""
+
+msgid "EMR Summary"
+msgstr ""
+
+#, fuzzy
+msgid "Cannot export EMR journal by last modification time. No active patient."
+msgstr "Kan inte lista undersökningar. Ingen patient vald."
+
+msgid "journal_by_last_mod_time"
+msgstr ""
+
+msgid "Save patient's EMR journal as..."
+msgstr ""
+
+msgid "Error exporting patient EMR as journal by last modification time."
+msgstr ""
+
+msgid "EMR journal export"
+msgstr ""
+
+#, python-format
+msgid ""
+"Successfully exported EMR as journal by last modification time into file "
+"[%s]."
+msgstr ""
+
+msgid "Cannot export EMR journal. No active patient."
+msgstr ""
+
+msgid "emr-journal"
+msgstr ""
+
+msgid "Error exporting patient EMR as chronological journal."
+msgstr ""
+
+#, python-format
+msgid "Successfully exported EMR as chronological journal into file [%s]."
+msgstr ""
+
+msgid "EMR journal by last modification time"
+msgstr ""
+
+#, fuzzy
+msgid "EMR journal by encounter"
+msgstr "Flytta undersökningar"
+
+msgid "Cannot add tag to person. No active patient."
+msgstr ""
+
+#, python-format
+msgid "Edit the comment on tag [%s]"
+msgstr ""
+
+msgid "Editing tag comment"
+msgstr ""
+
+msgid "Cannot export patient as GDT. No active patient."
+msgstr ""
+
+msgid "Exported demographics as GDT to clipboard."
+msgstr ""
+
+#, fuzzy
+msgid "Cannot export patient as VCARD. No active patient."
+msgstr "Kan inte lista undersökningar. Ingen patient vald."
+
+msgid "Exported demographics as VCARD to clipboard."
+msgstr ""
+
+#, fuzzy
+msgid "Cannot export patient as XML (LinuxMedNews). No active patient."
+msgstr "Kan inte lista undersökningar. Ingen patient vald."
+
+#, python-format
+msgid "Exported demographics to XML file [%s]."
+msgstr ""
+
+#, python-format
+msgid "Exported demographics to GDT file [%s]."
+msgstr ""
+
+#, python-format
+msgid "Exported demographics to VCARD file [%s]."
+msgstr ""
+
+msgid "Cannot add staff member. No active patient."
+msgstr ""
+
+msgid "Cannot delete patient. No patient active."
+msgstr ""
+
+msgid ""
+"You have to manually close this window to finalize shutting down GNUmed."
+msgstr ""
+
+msgid "This is so that you can inspect the console output at your leisure."
+msgstr ""
+
+msgid "no patient"
+msgstr ""
+
+#, python-format
+msgid "Saved screenshot to file [%s]."
+msgstr ""
+
+msgid "Python version check"
+msgstr ""
+
+#, python-format
+msgid ""
+"You are running Python version\n"
+" %s\n"
+"\n"
+"However, GNUmed wants Python 2.7 to\n"
+"facilitate migration to Python 3.\n"
+"\n"
+"Please upgrade your Python interpreter !"
+msgstr ""
+
+msgid "GNUmed client"
+msgstr ""
+
+msgid "GNUmed stdout/stderr window"
+msgstr ""
+
+msgid "redirecting STDOUT/STDERR to this log window"
+msgstr ""
+
+#, python-format
+msgid ""
+"The database account [%s] cannot be used as a\n"
+"staff member login for GNUmed. There was an\n"
+"error retrieving staff details for it.\n"
 "\n"
-"Part-less documents can be useful if you want to build\n"
-"up an index of, say, archived documents but do not\n"
-"want to scan in all the pages contained therein."
+"Please ask your administrator for help.\n"
 msgstr ""
 
-msgid "Yes, allow saving documents without any parts."
+msgid "Checking access permissions"
 msgstr ""
 
-msgid "No, require documents to have at least one part."
+#, python-format
+msgid "Database <%s> on <%s>"
 msgstr ""
 
-msgid ""
-"After importing a new document do you\n"
-"want GNUmed to display the unique ID\n"
-"it auto-generated for that document ?\n"
-"\n"
-"This can be useful if you want to label the\n"
-"originals with that ID for later identification."
+#, python-format
+msgid "Branch \"%s\" of praxis \"%s\"\n"
 msgstr ""
 
-msgid "Yes, display the ID generated for the new document after importing."
+msgid "Verifying database"
 msgstr ""
 
-msgid ""
-"No, do not display the ID generated for the new document after importing."
+msgid "Connect"
 msgstr ""
 
-msgid ""
-"After importing a new document do you\n"
-"want GNUmed to generate a unique ID\n"
-"(UUID) for that document ?\n"
-"\n"
-"This can be useful if you want to label the\n"
-"originals with that ID for later identification."
+msgid "Yes, connect to this database."
 msgstr ""
 
-msgid "Yes, generate a UUID for the new document after importing."
+msgid "Disconnect"
 msgstr ""
 
-msgid "No, do not generate a UUID for the new document after importing."
+msgid "No, do not connect to this database."
 msgstr ""
 
+#, python-format
 msgid ""
-"GNUmed can show the document review dialog after\n"
-"calling the appropriate viewer for that document.\n"
-"\n"
-"Select the conditions under which you want\n"
-"GNUmed to do so:\n"
+"Cannot find configuration file in any of:\n"
 "\n"
-" 0: never display the review dialog\n"
-" 1: always display the dialog\n"
-" 2: only if there is no previous review by me\n"
-" 3: only if there is no previous review at all\n"
-" 4: only if there is no review by the responsible reviewer\n"
+" %s\n"
+"You may need to use the comand line option\n"
 "\n"
-"Note that if a viewer is configured to not block\n"
-"GNUmed during document display the review dialog\n"
-"will actually appear in parallel to the viewer."
+"\t--conf-file=<FILE>"
 msgstr ""
 
-msgid "Addresses (likely slow)"
+msgid "Checking configuration files"
 msgstr ""
 
-msgid "Branded drugs (as marketed)"
+msgid "GNUmed startup"
 msgstr ""
 
-msgid "Dynamic automatic hints"
+#, python-format
+msgid ""
+"The currently selected database language ('%s') does\n"
+"not match the current system language ('%s').\n"
+"\n"
+"Do you want to set the database language to '%s' ?\n"
 msgstr ""
 
-msgid "Codes and their respective terms"
+msgid "Checking database language settings"
 msgstr ""
 
-msgid "Communication channel types"
+#, python-format
+msgid "Set your database language to [%s]."
 msgstr ""
 
-msgid "Components of branded drugs (substances in brands)"
+msgid "Don't set"
 msgstr ""
 
-msgid "Diagnostic organizations (path labs, ...)"
+msgid "Do not set your database language now."
 msgstr ""
 
-msgid "Document templates (forms, letters, plots, ...)"
+msgid "Remember to ignore language mismatch"
 msgstr ""
 
-msgid "Document types"
+#, python-format
+msgid ""
+"Checking this will make GNUmed remember your decision\n"
+"until the system language is changed.\n"
+"\n"
+"You can also reactivate this inquiry by removing the\n"
+"corresponding \"ignore\" option from the configuration file\n"
+"\n"
+" [%s]"
 msgstr ""
 
-msgid "Encounter types"
-msgstr ""
+#, fuzzy
+msgid "generic activity"
+msgstr "&Överkänslighet"
 
-msgid "Keyword based text expansion macros"
+msgid "Access denied"
 msgstr ""
 
-msgid "Meta test/measurement types"
+#, python-format
+msgid ""
+"Your account is not set up to access this part of GNUmed:\n"
+"\n"
+"  [%s]"
 msgstr ""
 
-msgid "Organizations with their units, addresses, and comm channels"
+msgid "Save timeline as SVG image under..."
 msgstr ""
 
-msgid "Patient tags"
+#, fuzzy
+msgid "timeline image"
+msgstr "Tidslinjefiler"
+
+#, fuzzy
+msgid "timeline data"
+msgstr "Ingen tidslinje vald"
+
+msgid "Cannot change notebook tabs. No active patient."
 msgstr ""
 
-msgid "Provinces (counties, territories, states, regions, ...)"
+msgid "add plugin ..."
 msgstr ""
 
-msgid "String translations in the database"
+msgid "Cannot activate Allergy Manager. No active patient."
 msgstr ""
 
-msgid "Test/measurement types"
+msgid "RR ?"
 msgstr ""
 
-msgid "Vaccination targets (conditions known to be preventable by vaccination)"
+#, python-format
+msgid "BMI %s"
 msgstr ""
 
-msgid "Vaccines"
+msgid "BMI ?"
 msgstr ""
 
-msgid "Workplace profiles (which plugins to load)"
+msgid "GFR ?"
 msgstr ""
 
-msgid "Consumable substances"
+#, python-format
+msgid "GFR %s"
 msgstr ""
 
-msgid "Billable items"
+#, python-format
+msgid "?EDC %s"
 msgstr ""
 
-msgid "Reference data sources"
+#, python-format
+msgid "EDC %s"
 msgstr ""
 
-msgid "Test/measurement panels/profiles"
+msgid "<Age>"
 msgstr ""
 
-msgid "Master data management"
+#, fuzzy
+msgid "no patient selected"
+msgstr "Påbörjar undersökning"
+
+#, python-format
+msgid "Gender: %s (%s) - %s\n"
 msgstr ""
 
-msgid "Select the list you want to manage:"
+#, python-format
+msgid "Born: %s\n"
 msgstr ""
 
-msgid "No DICOM viewer found."
+#, python-format
+msgid "Died: %s\n"
 msgstr ""
 
-msgid "risk assessment"
+#, python-format
+msgid "At age: %s\n"
 msgstr ""
 
-msgid "cardiovascular risk assessment"
+msgid " (date of birth and age are estimated)\n"
 msgstr ""
 
 #, python-format
-msgid "[arriba] XML result not found in [%s]"
+msgid "%(sex)s  %(dob)s (%(age)s today !)"
 msgstr ""
 
-msgid "ACS risk assessment calculator not configured."
+msgid ""
+"\n"
+"Today is the patient's birthday !\n"
+"\n"
 msgstr ""
 
 #, python-format
-msgid "Cannot run [%s] !"
+msgid "Birthday: %s ago\n"
 msgstr ""
 
 #, python-format
-msgid "There was a problem accessing the [arriba] result in [%s] !"
+msgid "Birthday: in %s\n"
 msgstr ""
 
-msgid "[-9999]: <access violation test error>"
+#, python-format
+msgid "Age: %s\n"
 msgstr ""
 
-msgid ""
-"This is a deliberate AcessDenied exception thrown to test the handling of "
-"access violations by means of a decorator."
+#, python-format
+msgid "last confirmed %s\n"
 msgstr ""
 
-msgid "testing access check for non-existant <admin> role"
+#, python-format
+msgid "Comment (%s): %%s"
+msgstr ""
+
+#, python-format
+msgid " - expires %s"
 msgstr ""
 
+#, python-format
 msgid ""
-"This is a deliberate AcessDenied exception. You should not see this message "
-"because the role is checked in a decorator."
+"Due for %s (since %s%s):\n"
+"%s%s\n"
+"Patient: %s\n"
+"Reminder by: %s"
 msgstr ""
 
-msgid "pgAdmin III not found."
+msgid "Clinical reminder"
 msgstr ""
 
-msgid "Error reloading hook script."
+msgid "Adding automatic dynamic hint"
 msgstr ""
 
-msgid "Save current log as..."
+msgid "Editing automatic dynamic hint"
 msgstr ""
 
-msgid "log files"
+msgid "Deleting automatic dynamic hint"
 msgstr ""
 
 #, python-format
-msgid "Log file backed up as [%s]."
+msgid ""
+"Really delete this dynamic hint ?\n"
+"\n"
+" [%s]"
 msgstr ""
 
-msgid "Cannot start new encounter. No active patient."
+msgid "deleting a dynamic hint"
 msgstr ""
 
-msgid "Cannot add health issue. No active patient."
+msgid ""
+"\n"
+"Dynamic hints registered with GNUmed.\n"
 msgstr ""
 
-msgid "Cannot add episode. No active patient."
+msgid "Showing dynamic hints."
 msgstr ""
 
-msgid "Cannot add medication. No active patient."
+msgid "Hint"
 msgstr ""
 
-msgid "Cannot add allergy. No active patient."
+msgid "Browse and install automatic dynamic hints data packs"
 msgstr ""
 
-msgid "Cannot manage performed procedures. No active patient."
-msgstr ""
+#, fuzzy, python-format
+msgid "By: %s"
+msgstr "   Dokument: %s"
 
-msgid "Cannot manage hospitalizations. No active patient."
+msgid "No entry in field <Source>."
 msgstr ""
 
-#, fuzzy
-msgid "Cannot manage external care. No active patient."
-msgstr "Kan inte lista undersökningar. Ingen patient vald."
-
-msgid "Cannot edit occupation. No active patient."
+msgid "No entry in field <Conditions>."
 msgstr ""
 
 #, fuzzy
-msgid "manage vaccinations"
-msgstr "Senaste vaccineringar"
+msgid "No entry in field <Description>."
+msgstr "Beskrivning"
 
-msgid "Cannot add vaccinations. No active patient."
+msgid "No entry in field <Title>."
 msgstr ""
 
-msgid "Cannot manage family history. No active patient."
+msgid "creating a new dynamic hint"
 msgstr ""
 
 #, fuzzy
-msgid "Cannot manage measurements. No active patient."
-msgstr "Kan inte lista undersökningar. Ingen patient vald."
+msgid "updating an existing dynamic hint"
+msgstr "Öppna en befintlig tidslinje"
 
-msgid "calculate EDC"
+#, fuzzy
+msgid "Deleting suppressed dynamic hint"
+msgstr "Öppna en befintlig tidslinje"
+
+#, python-format
+msgid ""
+"Really delete the suppression of this dynamic hint ?\n"
+"\n"
+" [%s]"
 msgstr ""
 
-msgid "manage suppressed hints"
+msgid ""
+"\n"
+"Dynamic hints suppressed in this patient.\n"
+msgstr ""
+
+msgid "Showing suppressed dynamic hints."
 msgstr ""
 
 #, fuzzy
-msgid "Cannot manage suppressed hints. No active patient."
-msgstr "Kan inte lista undersökningar. Ingen patient vald."
+msgid "Rationale"
+msgstr "Reaktion"
+
+#, fuzzy
+msgid "Manage hints"
+msgstr "Provtagnings-resultat"
+
+#, fuzzy
+msgid "Manage automatic dynamic hints"
+msgstr "Öppna en befintlig tidslinje"
 
-msgid "Cannot show EMR summary. No active patient."
+msgid "Cannot delete family history item."
 msgstr ""
 
-msgid "EMR Summary"
+msgid "Family history of this patient."
 msgstr ""
 
-msgid "Cannot export EMR journal. No active patient."
+msgid "Showing family history."
 msgstr ""
 
-msgid "Save patient's EMR journal as..."
+msgid "Fatal"
 msgstr ""
 
-msgid "Error exporting patient EMR as chronological journal."
+msgid "Noted"
 msgstr ""
 
-msgid "EMR journal export"
+msgid "Died"
 msgstr ""
 
-#, python-format
-msgid "Successfully exported EMR as chronological journal into file [%s]."
+msgid "Adding family history"
 msgstr ""
 
-msgid "Cannot add tag to person. No active patient."
+msgid "Editing family history"
 msgstr ""
 
-#, python-format
-msgid "Edit the comment on tag [%s]"
+msgid ""
+"\n"
+"Please select the default drug data source from the list below.\n"
+"\n"
+"Note that to actually use it you need to have the database installed, too."
 msgstr ""
 
-msgid "Editing tag comment"
+msgid "Configuring default drug data source"
 msgstr ""
 
-msgid "Cannot export patient as GDT. No active patient."
+msgid "No default drug database configured."
 msgstr ""
 
-msgid "Exported demographics as GDT to clipboard."
+msgid "There is no default drug database configured."
 msgstr ""
 
-#, fuzzy
-msgid "Cannot export patient as VCARD. No active patient."
-msgstr "Kan inte lista undersökningar. Ingen patient vald."
-
-msgid "Exported demographics as VCARD to clipboard."
+msgid "Jumping to drug database"
 msgstr ""
 
-#, fuzzy
-msgid "Cannot export patient as XML (LinuxMedNews). No active patient."
-msgstr "Kan inte lista undersökningar. Ingen patient vald."
-
-#, python-format
-msgid "Exported demographics to XML file [%s]."
+msgid "Cannot import drugs from IFAP into chart without chart."
 msgstr ""
 
 #, python-format
-msgid "Exported demographics to GDT file [%s]."
+msgid "Cannot call IFAP via [%s]."
 msgstr ""
 
 #, python-format
-msgid "Exported demographics to VCARD file [%s]."
-msgstr ""
-
-msgid "Cannot add staff member. No active patient."
+msgid "Cannot create IFAP <-> GNUmed transfer file [%s]."
 msgstr ""
 
-msgid "Cannot delete patient. No patient active."
+msgid "Current medication"
 msgstr ""
 
 msgid ""
-"You have to manually close this window to finalize shutting down GNUmed."
+"\n"
+"The ATC codes as known to GNUmed.\n"
 msgstr ""
 
-msgid "This is so that you can inspect the console output at your leisure."
+msgid "Showing ATC codes."
 msgstr ""
 
-msgid "no patient"
+msgid "Choose an ATC import config file"
 msgstr ""
 
-#, python-format
-msgid "Saved screenshot to file [%s]."
+msgid "config files"
 msgstr ""
 
-msgid "GNUmed client"
+msgid "importing ATC reference data"
 msgstr ""
 
-msgid "GNUmed stdout/stderr window"
+msgid "Successfully imported ATC reference data."
 msgstr ""
 
-msgid "redirecting STDOUT/STDERR to this log window"
+msgid "Importing ATC reference data failed."
 msgstr ""
 
-#, python-format
-msgid ""
-"The database account [%s] cannot be used as a\n"
-"staff member login for GNUmed. There was an\n"
-"error retrieving staff details for it.\n"
-"\n"
-"Please ask your administrator for help.\n"
+msgid "Select an ATC (Anatomical-Therapeutic-Chemical) code."
 msgstr ""
 
-msgid "Checking access permissions"
+msgid "Cannot edit this substance. It is in use."
 msgstr ""
 
-#, python-format
-msgid "Database <%s> on <%s>"
+msgid "Adding new consumable substance"
 msgstr ""
 
-#, python-format
-msgid "Branch \"%s\" of praxis \"%s\"\n"
+msgid "Editing consumable substance"
 msgstr ""
 
-msgid "Verifying database"
+msgid "Cannot delete this substance. It is in use."
 msgstr ""
 
-msgid "Connect"
+msgid ""
+"\n"
+"These are the consumable substances registered with GNUmed.\n"
 msgstr ""
 
-msgid "Yes, connect to this database."
+msgid "Import"
 msgstr ""
 
-msgid "Disconnect"
+msgid "Import consumable substances from a drug database."
 msgstr ""
 
-msgid "No, do not connect to this database."
+msgid "Cannot save consumable substance. Missing essential input."
 msgstr ""
 
 #, python-format
-msgid ""
-"Cannot find configuration file in any of:\n"
-"\n"
-" %s\n"
-"You may need to use the comand line option\n"
-"\n"
-"\t--conf-file=<FILE>"
+msgid "Cannot save consumable substance. %s"
 msgstr ""
 
-msgid "Checking configuration files"
+msgid "The substance with optional strength."
 msgstr ""
 
-msgid "GNUmed startup"
+msgid "Cannot remove this component from the drug. It is in use."
 msgstr ""
 
-#, python-format
 msgid ""
-"The currently selected database language ('%s') does\n"
-"not match the current system language ('%s').\n"
 "\n"
-"Do you want to set the database language to '%s' ?\n"
+"These are the components in the drug brands known to GNUmed.\n"
 msgstr ""
 
-msgid "Checking database language settings"
+msgid "Showing drug brand components."
 msgstr ""
 
-msgid "Set"
+msgid "Adding new drug component"
 msgstr ""
 
-#, python-format
-msgid "Set your database language to [%s]."
+msgid "Editing drug component"
 msgstr ""
 
-msgid "Don't set"
+msgid "Cannot edit drug component. It is in use."
 msgstr ""
 
-msgid "Do not set your database language now."
+msgid "Cannot save drug component. Invalid or missing essential input."
 msgstr ""
 
-msgid "Remember to ignore language mismatch"
+msgid "A drug component with optional strength."
+msgstr ""
+
+msgid "Editing drug"
 msgstr ""
 
 #, python-format
 msgid ""
-"Checking this will make GNUmed remember your decision\n"
-"until the system language is changed.\n"
+"Cannot edit the branded drug product\n"
 "\n"
-"You can also reactivate this inquiry by removing the\n"
-"corresponding \"ignore\" option from the configuration file\n"
+" \"%s\" (%s)\n"
 "\n"
-" [%s]"
+"because it is currently taken by patients.\n"
 msgstr ""
 
-#, fuzzy
-msgid "generic activity"
-msgstr "&Överkänslighet"
-
-msgid "Access denied"
+msgid "Adding new drug brand"
 msgstr ""
 
-#, python-format
-msgid ""
-"Your account is not set up to access this part of GNUmed:\n"
-"\n"
-"  [%s]"
+msgid "Editing drug brand"
 msgstr ""
 
-msgid "Save timeline as SVG image under..."
+msgid "Manage consumable substances"
 msgstr ""
 
-#, fuzzy
-msgid "timeline image"
-msgstr "Tidslinjefiler"
-
-#, fuzzy
-msgid "timeline data"
-msgstr "Ingen tidslinje vald"
-
-msgid "Cannot change notebook tabs. No active patient."
+msgid "not in use"
 msgstr ""
 
-msgid "add plugin ..."
+#, python-format
+msgid "ATC: %s\n"
 msgstr ""
 
-msgid "Cannot activate Allergy Manager. No active patient."
+msgid "Editing medication"
 msgstr ""
 
-msgid "<Age>"
+#, python-format
+msgid ""
+"Cannot edit the medication\n"
+"\n"
+" \"%s\" (%s)\n"
+"\n"
+"because it is a vaccine. Please edit it\n"
+"from the vaccine management section !\n"
 msgstr ""
 
-#, fuzzy
-msgid "no patient selected"
-msgstr "Påbörjar undersökning"
-
-#, python-format
-msgid "Gender: %s (%s) - %s\n"
+msgid "Deleting medication"
 msgstr ""
 
 #, python-format
-msgid "Born: %s\n"
+msgid ""
+"Cannot delete the medication\n"
+"\n"
+" \"%s\" (%s)\n"
+"\n"
+"because it is a vaccine. Please delete it\n"
+"from the vaccine management section !\n"
 msgstr ""
 
-#, python-format
-msgid "Died: %s\n"
+msgid ""
+"\n"
+"These are the drug brands known to GNUmed.\n"
 msgstr ""
 
-#, python-format
-msgid "At age: %s\n"
+msgid "Showing branded drugs."
 msgstr ""
 
-msgid " (date of birth and age are estimated)\n"
+msgid "Import substances and brands from a drug database."
 msgstr ""
 
-#, python-format
-msgid "%(sex)s  %(dob)s (%(age)s today !)"
+msgid "Managing components of a drug"
 msgstr ""
 
+#, python-format
 msgid ""
+"Cannot manage the components of the branded drug product\n"
 "\n"
-"Today is the patient's birthday !\n"
+" \"%s\" (%s)\n"
 "\n"
+"because it is currently taken by patients.\n"
 msgstr ""
 
-#, python-format
-msgid "Birthday: %s ago\n"
+msgid "Pick the substances which are components of this drug."
 msgstr ""
 
-#, python-format
-msgid "Birthday: in %s\n"
+msgid "Components of drug"
 msgstr ""
 
 #, python-format
-msgid "Age: %s\n"
+msgid ""
+"Adjust the components of \"%s\"\n"
+"\n"
+"The drug must contain at least one component. Any given\n"
+"substance can only be included once per drug."
 msgstr ""
 
-#, python-format
-msgid "last confirmed %s\n"
+msgid "Managing components of a drug ..."
 msgstr ""
 
-#, python-format
-msgid "Comment (%s): %%s"
+msgid "Cannot edit drug brand. It is in use."
 msgstr ""
 
-#, python-format
-msgid " - expires %s"
+msgid "Checking brand data"
 msgstr ""
 
 #, python-format
 msgid ""
-"Due for %s (since %s%s):\n"
-"%s%s\n"
-"Patient: %s\n"
-"Reminder by: %s"
-msgstr ""
-
-msgid "Clinical reminder"
-msgstr ""
-
-msgid "Adding automatic dynamic hint"
+"The brand information you entered:\n"
+"\n"
+" [%s %s]\n"
+"\n"
+"already exists as a drug product."
 msgstr ""
 
-msgid "Editing automatic dynamic hint"
+msgid ""
+"You have not selected any substances\n"
+"as drug components.\n"
+"\n"
+"Without components you will not be able to\n"
+"use this drug for documenting patient care.\n"
+"\n"
+"Are you sure you want to save\n"
+"it without components ?"
 msgstr ""
 
-msgid "Deleting automatic dynamic hint"
+msgid "Cannot save branded drug. Invalid or missing essential input."
 msgstr ""
 
-#, python-format
 msgid ""
-"Really delete this dynamic hint ?\n"
+"The brand name of the drug.\n"
 "\n"
-" [%s]"
+"Note: a brand name will need to be linked to\n"
+"one or more components before it can be used,\n"
+"except in the case of fake (generic) vaccines."
 msgstr ""
 
-msgid "deleting a dynamic hint"
+msgid "No EMR data loaded."
 msgstr ""
 
-msgid ""
-"\n"
-"Dynamic hints registered with GNUmed.\n"
+msgid "EMR text dump"
 msgstr ""
 
-msgid "Showing dynamic hints."
+msgid "Currently there is no active patient. Cannot retrieve EMR text."
 msgstr ""
 
-msgid "Hint"
-msgstr ""
+#, fuzzy
+msgid "SOAP Editor Actions:"
+msgstr "Undesökningsåtgärder:"
 
-msgid "Browse and install automatic dynamic hints data packs"
-msgstr ""
+#, fuzzy
+msgid "&Sort lines"
+msgstr "Ingen tidslinje vald"
 
-#, fuzzy, python-format
-msgid "By: %s"
-msgstr "   Dokument: %s"
+msgid "Sort lines by SOAP category"
+msgstr ""
 
-msgid "No entry in field <Source>."
+msgid "e&Xpand keyword"
 msgstr ""
 
-msgid "No entry in field <Conditions>."
+msgid "Expand keyword / macro"
 msgstr ""
 
 #, fuzzy
-msgid "No entry in field <Description>."
-msgstr "Beskrivning"
-
-msgid "No entry in field <Title>."
-msgstr ""
+msgid "as &Subjective"
+msgstr "soap_Subjective"
 
-msgid "creating a new dynamic hint"
+msgid "Set line to category \"Subjective\""
 msgstr ""
 
 #, fuzzy
-msgid "updating an existing dynamic hint"
-msgstr "Öppna en befintlig tidslinje"
+msgid "as &Objective"
+msgstr "soap_O"
+
+msgid "Set line to category \"Objective\""
+msgstr ""
 
 #, fuzzy
-msgid "Deleting suppressed dynamic hint"
-msgstr "Öppna en befintlig tidslinje"
+msgid "as &Assessment"
+msgstr "soap_Assessment"
 
-#, python-format
-msgid ""
-"Really delete the suppression of this dynamic hint ?\n"
-"\n"
-" [%s]"
+msgid "Set line to category \"Assessment\""
 msgstr ""
 
-msgid ""
-"\n"
-"Dynamic hints suppressed in this patient.\n"
+msgid "as &Plan"
 msgstr ""
 
-msgid "Showing suppressed dynamic hints."
+msgid "Set line to category \"Plan\""
 msgstr ""
 
-#, fuzzy
-msgid "Rationale"
-msgstr "Reaktion"
+msgid "as &Unspecified"
+msgstr ""
 
-#, fuzzy
-msgid "Manage hints"
-msgstr "Provtagnings-resultat"
+msgid "Set line to category \"unspecified\""
+msgstr ""
 
 #, fuzzy
-msgid "Manage automatic dynamic hints"
-msgstr "Öppna en befintlig tidslinje"
+msgid "as ad&Ministrative"
+msgstr "soap_Administrative"
 
-msgid "Cannot delete family history item."
+msgid "Set line to category \"administrative\""
 msgstr ""
 
-msgid "Family history of this patient."
+msgid "→ &Clipboard"
 msgstr ""
 
-msgid "Showing family history."
-msgstr ""
+#, fuzzy
+msgid "Copy line to clipboard"
+msgstr "Misslyckades med att kopiera till klippbordet"
 
-msgid "Fatal"
+msgid "→ +Clipboard+"
 msgstr ""
 
-msgid "Noted"
-msgstr ""
+#, fuzzy
+msgid "Add line to clipboard"
+msgstr "Misslyckades med att kopiera till klippbordet"
 
-msgid "Died"
-msgstr ""
+#, fuzzy
+msgid "Copy content to clipboard"
+msgstr "Misslyckades med att kopiera till klippbordet"
 
-msgid "Adding family history"
-msgstr ""
+#, fuzzy
+msgid "Add content to clipboard"
+msgstr "Misslyckades med att kopiera till klippbordet"
 
-msgid "Editing family history"
-msgstr ""
+#, fuzzy
+msgid "Copy selection to clipboard"
+msgstr "Misslyckades med att kopiera till klippbordet"
 
-msgid "No EMR data loaded."
-msgstr ""
+#, fuzzy
+msgid "Add selection to clipboard"
+msgstr "Misslyckades med att kopiera till klippbordet"
 
-msgid "EMR text dump"
+msgid "&Line ..."
 msgstr ""
 
-msgid "Currently there is no active patient. Cannot retrieve EMR text."
+#, fuzzy
+msgid "&Text ..."
+msgstr "Text"
+
+msgid "&Region ..."
 msgstr ""
 
 #, fuzzy
@@ -16132,6 +17092,10 @@ msgstr ""
 msgid "Extracting HL7 from XML file"
 msgstr ""
 
+#, python-format
+msgid "Unwrapped HL7 into [%s] from [%s]."
+msgstr ""
+
 msgid "Select HL7 file for staging:"
 msgstr ""
 
@@ -16156,6 +17120,10 @@ msgid ""
 " %s"
 msgstr ""
 
+#, python-format
+msgid "Staged HL7 from [%s]."
+msgstr ""
+
 msgid "Importing HL7 data"
 msgstr ""
 
@@ -16201,10 +17169,6 @@ msgstr ""
 msgid "Identification"
 msgstr "Information"
 
-#, fuzzy
-msgid "Show"
-msgstr "Visa tid"
-
 msgid "Show formatted HL7"
 msgstr ""
 
@@ -16253,6 +17217,22 @@ msgstr "Den för närvarande valda patienten är:"
 msgid "Plot current selection"
 msgstr "Den för närvarande valda patienten är:"
 
+#, fuzzy
+msgid ""
+"Select the measurements panel to show in the top pane for continuous "
+"monitoring."
+msgstr ""
+"Bocka i detta val om du vill att GNUmed skall registrera ditt val och inte "
+"ånyo fråga dig i fortsättningen."
+
+#, fuzzy
+msgid "Lab panel"
+msgstr "Labsvar"
+
+#, fuzzy
+msgid "Configuring continuous monitoring measurements panel"
+msgstr "Provtagningar och resultat:"
+
 msgid "No default Gnuplot script template selected."
 msgstr ""
 
@@ -16275,13 +17255,27 @@ msgstr ""
 msgid "Cannot plot without a plot script."
 msgstr ""
 
-#, fuzzy
-msgid "Time"
-msgstr "Tidslinje"
-
 msgid "Result"
 msgstr ""
 
+msgid "Perform on selected results:"
+msgstr ""
+
+msgid "Review and &sign"
+msgstr ""
+
+msgid "Export to &file"
+msgstr ""
+
+msgid "Export to &clipboard"
+msgstr ""
+
+msgid "Panels"
+msgstr ""
+
+msgid "List"
+msgstr ""
+
 msgid ""
 "lab_grid_date_format::%Y\n"
 "%b %d"
@@ -16356,18 +17350,6 @@ msgstr ""
 msgid "All: by &Day"
 msgstr ""
 
-msgid "Perform on selected results:"
-msgstr ""
-
-msgid "Review and &sign"
-msgstr ""
-
-msgid "Export to &file"
-msgstr ""
-
-msgid "Export to &clipboard"
-msgstr ""
-
 #, python-format
 msgid "%s results selected. Too many to list individually."
 msgstr ""
@@ -16547,6 +17529,10 @@ msgstr ""
 msgid "EMR Actions:"
 msgstr ""
 
+#, fuzzy
+msgid "Print EMR"
+msgstr "Skriv ut"
+
 msgid "Create health issue"
 msgstr ""
 
@@ -16695,11 +17681,41 @@ msgstr ""
 msgid "&New notes %s"
 msgstr ""
 
+msgid "Find text in EMR Journal"
+msgstr ""
+
+#, fuzzy
+msgid "Modified"
+msgstr "Ändrat fält."
+
+msgid "Clinical time"
+msgstr ""
+
+msgid "Who / When"
+msgstr ""
+
+#, python-format
 msgid ""
-"An error occurred while retrieving the EMR\n"
-"in journal form for the active patient.\n"
+"Chart entry: %s       [#%s in %s]\n"
+" Modified: %s by %s (%s rev %s)\n"
 "\n"
-"Please check the log file for details."
+"Health issue: %s%s\n"
+"Episode: %s%s\n"
+"Encounter: %s%s"
+msgstr ""
+
+#, python-format
+msgid ""
+"%s\n"
+"\n"
+"                        rev %s (%s) by %s in <%s>"
+msgstr ""
+
+#, python-format
+msgid ""
+"%s\n"
+"%s\n"
+"%s"
 msgstr ""
 
 msgid "Editing tag"
@@ -16826,18 +17842,15 @@ msgid ""
 "%s\n"
 msgstr ""
 
-msgid "This patient DID receive care."
+msgid "This patient DID receive care here."
 msgstr ""
 
-msgid "This person did NOT receive care."
+msgid "This person did NOT receive care here."
 msgstr ""
 
 msgid "Disabling person"
 msgstr ""
 
-msgid "Disabling patient"
-msgstr ""
-
 msgid "Type or select a last name (family name/surname)."
 msgstr ""
 
@@ -17108,6 +18121,9 @@ msgstr ""
 "\n"
 "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
 
+msgid "Connecting to backend"
+msgstr "Ansluter till databasen via databasens direkta gränssnitt."
+
 #, fuzzy, python-format
 msgid ""
 "Unable to connect to database:\n"
@@ -17323,9 +18339,6 @@ msgstr ""
 msgid "Office"
 msgstr ""
 
-msgid "State"
-msgstr ""
-
 msgid "Zip"
 msgstr ""
 
@@ -17382,8 +18395,9 @@ msgstr ""
 msgid "EMR Timeline"
 msgstr ""
 
-msgid "Show &Timeline"
-msgstr ""
+#, fuzzy
+msgid "EMR &Timeline"
+msgstr "&Tidslinje"
 
 msgid "Overview"
 msgstr ""
@@ -17409,10 +18423,10 @@ msgstr ""
 msgid "&SimpleNotes"
 msgstr ""
 
-msgid "EMR tree"
+msgid "EMR Tree"
 msgstr ""
 
-msgid "EMR &Tree (topical)"
+msgid "EMR &Tree"
 msgstr ""
 
 #, fuzzy
@@ -17423,6 +18437,12 @@ msgstr "Utskrift"
 msgid "&Print Manager"
 msgstr "Utskrift"
 
+msgid "EMR Journal"
+msgstr ""
+
+msgid "EMR &Journal (list)"
+msgstr ""
+
 msgid "Appointments"
 msgstr ""
 
@@ -17435,6 +18455,12 @@ msgstr ""
 msgid "Show &lab journal"
 msgstr ""
 
+msgid "PACS"
+msgstr ""
+
+msgid "&PACS"
+msgstr ""
+
 msgid "Cardiac Devices"
 msgstr ""
 
@@ -17507,11 +18533,9 @@ msgstr ""
 msgid "User &manual (local)"
 msgstr ""
 
-msgid "EMR journal"
-msgstr ""
-
-msgid "EMR &Journal (chronological)"
-msgstr ""
+#, fuzzy
+msgid "EMR &Journal (text)"
+msgstr "Flytta undersökningar"
 
 msgid "Demographics"
 msgstr ""
@@ -17671,6 +18695,10 @@ msgstr ""
 msgid "Show &ExamplePlugin"
 msgstr ""
 
+#, fuzzy
+msgid "Find text"
+msgstr "Senast angiven"
+
 msgid "gm_ctl_client: starting slave GNUmed client"
 msgstr "gm_ctl_client: startar GNUmed-klient i slavläge"
 
@@ -17707,20 +18735,170 @@ msgid "Abort and do NOT connect to GNUmed."
 msgstr "Avbryt och anslut EJ till GNUmed."
 
 #, fuzzy
-#~ msgid "%s: %s%s%s (%s ago)"
-#~ msgstr "Enhet: %s (%s)"
+#~ msgid ""
+#~ "Health issue: %s%s%s (%s versions)\n"
+#~ "\n"
+#~ msgstr "Kategori av medicinsk frågeställning: %s"
+
+#, fuzzy
+#~ msgid ""
+#~ "Episode: %s%s%s (%s versions)\n"
+#~ "\n"
+#~ msgstr "Episod %s%s%s   [#%s]"
 
 #, fuzzy
-#~ msgid "to file(s)"
-#~ msgstr "SVG-filer"
+#~ msgid ""
+#~ "Encounter: %s%s%s (%s versions)\n"
+#~ "\n"
+#~ msgstr "Undersökningar: %s (%s - %s):"
 
 #, fuzzy
-#~ msgid "Check here for printing."
-#~ msgstr "Definiera utskriftsformat"
+#~ msgid ""
+#~ "\n"
+#~ "current values:\n"
+#~ msgstr "<nuvarande allerigiskt tillstånd>"
+
+#, fuzzy
+#~ msgid "soap_U"
+#~ msgstr "soap_Plan"
+
+#~ msgid "soap_Subjective"
+#~ msgstr "soap_Subjective"
+
+#~ msgid "soap_Objective"
+#~ msgstr "soap_O"
+
+#~ msgid "soap_Assessment"
+#~ msgstr "soap_Assessment"
+
+#~ msgid "soap_Plan"
+#~ msgstr "soap_Plan"
+
+#~ msgid "soap_Administrative"
+#~ msgstr "soap_Administrative"
+
+#, fuzzy
+#~ msgid "Search in list"
+#~ msgstr "Medicinlista"
+
+#, fuzzy
+#~ msgid "&Unknown"
+#~ msgstr "Okänd"
+
+#, fuzzy
+#~ msgid "When was smoking status last confirmed (mostly \"today\") ?"
+#~ msgstr "När bekräftades senast det allergiska tillståndet."
+
+#, fuzzy
+#~ msgid "Last confirmed: %s%s"
+#~ msgstr " (senast bekräftad %s)"
+
+# med / till , genom / med
+#~ msgid ""
+#~ "Cannot connect to configuration database with:\n"
+#~ "\n"
+#~ "[%s]"
+#~ msgstr ""
+#~ "Kan inte upprätta förbindelse med konfigurationsdatabasen genom:\n"
+#~ "\n"
+#~ "[%s]"
+
+# med / till , genom / med
+#~ msgid ""
+#~ "Cannot connect to database with:\n"
+#~ "\n"
+#~ "[%s]"
+#~ msgstr ""
+#~ "Kan inte upprätta förbindelse med databasen genom:\n"
+#~ "\n"
+#~ "[%s]"
+
+#~ msgid "No product information available."
+#~ msgstr "Ingen information tillgänglig om produkten."
+
+#~ msgid ""
+#~ "Unable to connect to database:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Are you sure you have got a local database installed ?\n"
+#~ "\n"
+#~ "Please retry with proper credentials or cancel.\n"
+#~ "\n"
+#~ "You may also need to check the PostgreSQL client\n"
+#~ "authentication configuration in pg_hba.conf. For\n"
+#~ "details see:\n"
+#~ "\n"
+#~ "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
+#~ msgstr ""
+#~ "Kan inte ansluta till databasen:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Är du säker att du installerat den lokala databasen?\n"
+#~ "\n"
+#~ "Var vänlig försök igen eller avbryt.\n"
+#~ "Glöm inte att kontrollera inloggningsuppgifterna.\n"
+#~ "\n"
+#~ "Du kan också behöva kontrollera PostgreSQL-klientens konfiguration för "
+#~ "auktorisering \n"
+#~ "gentemot databasen. Detta konfigureras i filen pg_hba.conf. \n"
+#~ "För mer information se:\n"
+#~ "\n"
+#~ "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
+
+#~ msgid ""
+#~ "Unable to connect to database:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Please retry with proper credentials or cancel.\n"
+#~ "\n"
+#~ "You may also need to check the PostgreSQL client\n"
+#~ "authentication configuration in pg_hba.conf. For\n"
+#~ "details see:\n"
+#~ "\n"
+#~ "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
+#~ msgstr ""
+#~ "Kan inte ansluta till databasen:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Var vänlig försök igen eller avbryt.\n"
+#~ "Glöm inte att kontrollera inloggningsuppgifterna.\n"
+#~ "\n"
+#~ "Du kan också behöva kontrollera PostgreSQL-klientens konfiguration för \n"
+#~ "auktorisering gentemot databasen. Detta konfigureras i filen pg_hba."
+#~ "conf. \n"
+#~ "För mer information se:\n"
+#~ "\n"
+#~ "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
+
+#~ msgid ""
+#~ "Unable to connect to database:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Please retry another backend / user / password combination !\n"
+#~ msgstr ""
+#~ "Lyckas ubte ansluta till databasen:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Var vänlig försök med annat gränssnitt, annan användare eller annat "
+#~ "lösenord.\n"
+
+#, fuzzy
+#~ msgid ""
+#~ "\n"
+#~ "Select the measurements panel to show in the top pane.\n"
+#~ msgstr ""
+#~ "Bocka i detta val om du vill att GNUmed skall registrera ditt val och "
+#~ "inte ånyo fråga dig i fortsättningen."
 
 #, fuzzy
-#~ msgid "file: %s (%s/)"
-#~ msgstr "Enhet: %s (%s)"
+#~ msgid "to file(s)"
+#~ msgstr "SVG-filer"
 
 #, fuzzy
 #~ msgid "Saved to disk: %s"
@@ -17761,9 +18939,6 @@ msgstr "Avbryt och anslut EJ till GNUmed."
 #~ msgid "SQL: %s"
 #~ msgstr "SQL: %s"
 
-#~ msgid "cannot connect to service [%s]"
-#~ msgstr "Kan inte ansluta till tjänst [%s]"
-
 #~ msgid "Select the default type for new encounters.\n"
 #~ msgstr "Välj förinställda typ på nya undersökningar.\n"
 
diff --git a/client/po/tr-gnumed.mo b/client/po/tr-gnumed.mo
index d31e3d0..25aed7b 100644
Binary files a/client/po/tr-gnumed.mo and b/client/po/tr-gnumed.mo differ
diff --git a/client/po/tr.po b/client/po/tr.po
index 8d30cb7..09a80b0 100644
--- a/client/po/tr.po
+++ b/client/po/tr.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: GNUmed\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-12-26 20:29+0100\n"
+"POT-Creation-Date: 2016-03-17 16:28+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <LL at li.org>\n"
@@ -1420,10 +1420,22 @@ msgid ""
 msgstr ""
 
 #, python-format
+msgid "Revision #%s"
+msgstr ""
+
+#, python-format
 msgid "[%s:%s]: row not updated (nothing returned), row in use ?"
 msgstr ""
 
 #, python-format
+msgid "<%s(.bat)> not found"
+msgstr ""
+
+#, python-format
+msgid "problem with <%s>"
+msgstr ""
+
+#, python-format
 msgid "[%s] is not a readable file"
 msgstr ""
 
@@ -1451,21 +1463,7 @@ msgstr ""
 msgid "%s Bytes"
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot connect to configuration database with:\n"
-"\n"
-"[%s]"
-msgstr ""
-
-#, python-format
-msgid ""
-"Cannot connect to database with:\n"
-"\n"
-"[%s]"
-msgstr ""
-
-msgid "No product information available."
+msgid "<type>"
 msgstr ""
 
 #, python-format
@@ -1801,79 +1799,6 @@ msgstr ""
 msgid "  risk: %s"
 msgstr ""
 
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Are you sure you have got a local database installed ?\n"
-"\n"
-"Please retry with proper credentials or cancel.\n"
-"\n"
-"You may also need to check the PostgreSQL client\n"
-"authentication configuration in pg_hba.conf. For\n"
-"details see:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-msgstr ""
-
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Please retry with proper credentials or cancel.\n"
-"\n"
-"You may also need to check the PostgreSQL client\n"
-"authentication configuration in pg_hba.conf. For\n"
-"details see:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-msgstr ""
-
-msgid "Connecting to backend"
-msgstr "Arka uca bağlanıyor"
-
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Please retry another backend / user / password combination !\n"
-msgstr ""
-"Veritabanına bağlanamıyor:\n"
-"\n"
-"%s\n"
-"\n"
-"Lütfen başka arka uç, kullanıcı adı veya şifre ile tekrar deneyin  !\n"
-
-msgid "programmer forgot to specify error message"
-msgstr ""
-
-msgid ""
-"\n"
-"\n"
-"Please consult the error log for all the gory details !"
-msgstr ""
-
-msgid "generic error message"
-msgstr "genel hata mesajı"
-
-msgid "programmer forgot to specify info message"
-msgstr ""
-
-msgid "generic info message"
-msgstr "Genel bilgi mesajı"
-
-msgid "programmer forgot to specify warning"
-msgstr ""
-
-msgid "generic warning message"
-msgstr "Genel uyarı mesajı"
-
 msgid "no hook specified, please report bug"
 msgstr ""
 
@@ -2190,6 +2115,30 @@ msgstr ""
 msgid "Include:"
 msgstr ""
 
+msgid "&Search"
+msgstr ""
+
+msgid "Suggest"
+msgstr ""
+
+msgid "Set"
+msgstr ""
+
+msgid "dialog_1"
+msgstr ""
+
+msgid "Search patients in Orthanc DICOM store."
+msgstr ""
+
+msgid "Suggest a patient ID based on the active patient."
+msgstr ""
+
+msgid "Search term:"
+msgstr ""
+
+msgid "New patient ID:"
+msgstr ""
+
 msgid "Your review"
 msgstr ""
 
@@ -2491,6 +2440,89 @@ msgstr ""
 msgid "Amount"
 msgstr ""
 
+msgid "&Connect"
+msgstr ""
+
+msgid "&Browse"
+msgstr ""
+
+msgid "<not connected>"
+msgstr ""
+
+msgid "Browse all"
+msgstr ""
+
+msgid "Export all"
+msgstr ""
+
+msgid "Browse"
+msgstr ""
+
+msgid "Export"
+msgstr ""
+
+msgid "Upload"
+msgstr ""
+
+msgid "Enter the PACS host address."
+msgstr ""
+
+msgid "Enter the PACS port."
+msgstr ""
+
+msgid "Enter the PACS user."
+msgstr ""
+
+msgid "Enter the PACS password. It will not be shown."
+msgstr ""
+
+msgid "Connect to PACS."
+msgstr ""
+
+msgid "Browse PACS at top level."
+msgstr ""
+
+msgid "Modify some of Orthanc content (such as patient IDs)."
+msgstr ""
+
+msgid "Browse overview of studies for this patient."
+msgstr ""
+
+msgid "Copy all studies into export area."
+msgstr ""
+
+msgid "Browse topmost selected study."
+msgstr ""
+
+msgid "Copy selected studies into export area."
+msgstr ""
+
+msgid "Save selected studies to disk."
+msgstr ""
+
+msgid ""
+"Upload DICOM files from a directory, recursively, into the Orthanc PACS\n"
+"\n"
+"The currently active patient does not matter. Orthanc will associate "
+"uploaded files with the patient found within the DICOM metadata. It will "
+"create new patients as needed."
+msgstr ""
+
+msgid "Host:"
+msgstr ""
+
+msgid "Port:"
+msgstr ""
+
+msgid "User:"
+msgstr ""
+
+msgid "Password"
+msgstr ""
+
+msgid "Selected studies:"
+msgstr ""
+
 msgid "Fake brand"
 msgstr ""
 
@@ -2808,9 +2840,6 @@ msgstr ""
 msgid "&Load"
 msgstr ""
 
-msgid "Export"
-msgstr ""
-
 msgid "A long, descriptive name for this form template."
 msgstr ""
 
@@ -2898,15 +2927,12 @@ msgstr ""
 msgid "Document Properties"
 msgstr ""
 
-msgid "Show part"
+msgid "Show"
 msgstr ""
 
 msgid "Remove part"
 msgstr ""
 
-msgid "Parts"
-msgstr ""
-
 msgid "Discard"
 msgstr ""
 
@@ -2934,6 +2960,9 @@ msgstr ""
 msgid "Required: The primary episode this document is to be listed under."
 msgstr ""
 
+msgid "Optional: The organization (unit) this document originated from."
+msgstr ""
+
 msgid ""
 "Optional: A short comment identifying the document. Good comments give an "
 "idea of the content and source of the document."
@@ -2958,6 +2987,9 @@ msgid ""
 "normal and abnormal resuslts can be relevant."
 msgstr ""
 
+msgid "Optional: A free-text document description."
+msgstr ""
+
 msgid "This field lists the parts belonging to the current document."
 msgstr ""
 
@@ -2969,9 +3001,6 @@ msgid ""
 "deletion from disk."
 msgstr ""
 
-msgid "Optional: A free-text document description."
-msgstr ""
-
 msgid "Save finished document."
 msgstr ""
 
@@ -2987,6 +3016,9 @@ msgstr ""
 msgid "Associate to episode:"
 msgstr ""
 
+msgid "Document source:"
+msgstr ""
+
 msgid "Comment / Identification:"
 msgstr ""
 
@@ -3167,7 +3199,7 @@ msgstr ""
 msgid "Messages:"
 msgstr ""
 
-msgid "Only:"
+msgid "Limit to:"
 msgstr ""
 
 msgid "&Myself … or:"
@@ -3277,10 +3309,10 @@ msgstr ""
 msgid "Purpose"
 msgstr ""
 
-msgid "Details"
+msgid "Please supply your email address here !"
 msgstr ""
 
-msgid "<Please supply your email address here !>"
+msgid "Details"
 msgstr ""
 
 msgid "Keep running"
@@ -3304,9 +3336,11 @@ msgid ""
 msgstr ""
 
 msgid ""
-"Please enter your email address so we can provide feedback directly to you. "
-"Otherwise, feedback will be given on the GNUmed mailing list (http://lists."
-"gnu.org/mailman/listinfo/gnumed-bugs)."
+"Please enter your email address so we can provide help to you directly.\n"
+"\n"
+"Otherwise, feedback can be given on the GNUmed mailing list (http://lists."
+"gnu.org/mailman/listinfo/gnumed-bugs) ONLY to which you will then have to "
+"subscribe."
 msgstr ""
 
 msgid "Find help on http://wiki.gnumed.de, too."
@@ -3421,9 +3455,6 @@ msgstr ""
 msgid "Account"
 msgstr ""
 
-msgid "Password"
-msgstr ""
-
 msgid "Password, again"
 msgstr ""
 
@@ -3910,7 +3941,7 @@ msgstr ""
 msgid "Acquire images from image source (scanner, ...)."
 msgstr ""
 
-msgid "Acquire images or text from the clipboard."
+msgid "Acquire file or text from the clipboard."
 msgstr ""
 
 msgid "Remove the selected documents."
@@ -4053,7 +4084,7 @@ msgid ""
 "- the result list will be artificially limited to the first 1000 rows\n"
 "- you can include a column named \"pk_patient\" to make the result rows "
 "activate the corresponding patient on double-clicking\n"
-"- by inserting $<ID_active_patient>$ you can access the patient ID of the "
+"- by inserting $<ID_ACTIVE_PATIENT>$ you can access the patient ID of the "
 "patient active at the time of running the query"
 msgstr ""
 
@@ -4212,9 +4243,6 @@ msgstr ""
 msgid "Link &new"
 msgstr ""
 
-msgid "Browse"
-msgstr ""
-
 msgid ""
 "Search for matches among existing addresses and [Link] a selection, or [Link "
 "(a) new] address."
@@ -4263,25 +4291,16 @@ msgid ""
 "left."
 msgstr ""
 
-msgid "label_1"
-msgstr ""
-
-msgid "→"
-msgstr ""
-
-msgid "←"
-msgstr ""
-
-msgid "Extra"
+msgid "Subjective"
 msgstr ""
 
-msgid "Move selected items from left to right."
+msgid "Objective"
 msgstr ""
 
-msgid "Move selected items from right to left."
+msgid "Assessment"
 msgstr ""
 
-msgid "Cancel picking items."
+msgid "Plan"
 msgstr ""
 
 msgid "Episode synopsis"
@@ -4317,19 +4336,28 @@ msgid ""
 "narrative belongs to."
 msgstr ""
 
-msgid "Subjective"
+msgid "Codes:"
 msgstr ""
 
-msgid "Codes:"
+msgid "label_1"
 msgstr ""
 
-msgid "Objective"
+msgid "→"
 msgstr ""
 
-msgid "Assessment"
+msgid "←"
 msgstr ""
 
-msgid "Plan"
+msgid "Extra"
+msgstr ""
+
+msgid "Move selected items from left to right."
+msgstr ""
+
+msgid "Move selected items from right to left."
+msgstr ""
+
+msgid "Cancel picking items."
 msgstr ""
 
 msgid "1"
@@ -4498,66 +4526,142 @@ msgstr ""
 msgid "Age range"
 msgstr ""
 
-msgid "Closed episodes"
+msgid "&Nicotine"
 msgstr ""
 
-msgid "Non-relevant issues"
+msgid "&Alcohol"
 msgstr ""
 
-msgid "Active problems"
+msgid "&Other:"
 msgstr ""
 
-msgid "Notes only"
+msgid "&Non-harmful use"
 msgstr ""
 
-msgid "Everything"
+msgid "&Harmful use"
 msgstr ""
 
-msgid ""
-"In this area GNUmed will place the notes of the\n"
-"previous encounter as well as notes by other\n"
-"staff for the current encounter.\n"
-"\n"
-"Note that this may change depending on which\n"
-"active problem is selected in the editor below."
+msgid "Presently &addicted"
 msgstr ""
 
-msgid "Most recent info on above problem"
+msgid "Previously &addicted"
 msgstr ""
 
-msgid "Show closed episodes as pseudo-problems ?"
+msgid "&Reconfirm as of today"
 msgstr ""
 
-msgid "Show issues marked clinically NOT relevant."
+msgid "Select for documenting smoking status."
 msgstr ""
 
-msgid ""
-"This shows the list of active problems, They include open episodes as well "
-"as active health issues."
+msgid "Select for documenting alcohol use status."
 msgstr ""
 
-msgid "Show notes only (regarding the above problem)"
+msgid ""
+"Select for documenting use of substances other than nicotine or alcohol."
 msgstr ""
 
-msgid "Show full information (regarding above problem)"
+msgid "Select the abused substance."
 msgstr ""
 
-msgid "Schock index"
+msgid ""
+"Select if the substance use is not considered harmful (say, no use or non-"
+"harmful use)."
 msgstr ""
 
-msgid "<SI>"
+msgid "Select if substance is use considered harmful."
 msgstr ""
 
-msgid "rhythmic"
+msgid "Select if the patient is presently addicted to this substance."
 msgstr ""
 
-msgid "arrhythmic"
+msgid "Select if the patient was previously addicted to this substance."
 msgstr ""
 
-msgid "°C"
+msgid ""
+"A comment on this substance use:\n"
+"- type of product used\n"
+"- frequency\n"
+"- amount\n"
+"- when started\n"
+"- attempts to quit\n"
+"..."
 msgstr ""
 
-msgid "°F"
+msgid ""
+"When did the patient quit?\n"
+"\n"
+"You can also set a target quit date here."
+msgstr ""
+
+msgid "Check here to confirm for today."
+msgstr ""
+
+msgid "Quit date"
+msgstr ""
+
+msgid "Last confirmed"
+msgstr ""
+
+msgid "Closed episodes"
+msgstr ""
+
+msgid "Non-relevant issues"
+msgstr ""
+
+msgid "Active problems"
+msgstr ""
+
+msgid "Notes only"
+msgstr ""
+
+msgid "Everything"
+msgstr ""
+
+msgid ""
+"In this area GNUmed will place the notes of the\n"
+"previous encounter as well as notes by other\n"
+"staff for the current encounter.\n"
+"\n"
+"Note that this may change depending on which\n"
+"active problem is selected in the editor below."
+msgstr ""
+
+msgid "Most recent info on above problem"
+msgstr ""
+
+msgid "Show closed episodes as pseudo-problems ?"
+msgstr ""
+
+msgid "Show issues marked clinically NOT relevant."
+msgstr ""
+
+msgid ""
+"This shows the list of active problems, They include open episodes as well "
+"as active health issues."
+msgstr ""
+
+msgid "Show notes only (regarding the above problem)"
+msgstr ""
+
+msgid "Show full information (regarding above problem)"
+msgstr ""
+
+msgid "Schock index"
+msgstr ""
+
+msgid "<SI>"
+msgstr ""
+
+msgid "rhythmic"
+msgstr ""
+
+msgid "arrhythmic"
+msgstr ""
+
+msgid "°C"
+msgstr ""
+
+msgid "°F"
 msgstr ""
 
 msgid "<last height>"
@@ -4834,20 +4938,18 @@ msgstr ""
 msgid "Show:"
 msgstr ""
 
-msgid "Brand by component"
+msgid "Kidneys"
 msgstr ""
 
 msgid "Brands"
 msgstr ""
 
-msgid "Kidneys"
-msgstr ""
-
-msgid "Unbranded substance"
+msgid "Substances"
 msgstr ""
 
-msgid "Manage"
-msgstr ""
+#, fuzzy
+msgid "&Unknown or date:"
+msgstr "Bilinmeyen format"
 
 msgid "Approved of"
 msgstr ""
@@ -4862,22 +4964,18 @@ msgid "... Reason"
 msgstr ""
 
 msgid ""
-"A component of a drug brand the patient is taking.\n"
+"A drug the patient is taking.\n"
 "\n"
-"Lookup, and select, a single- (or multi-) component drug brand, by active "
-"ingredient name. All components of multi-component drugs will be displayed "
-"and automatically added to the patient's list."
-msgstr ""
-
-msgid ""
-"Manage drug brands.\n"
+"Lookup and select an intake by either of\n"
+"- a generic substance name\n"
+"- a drug brand name\n"
+"- an active ingredient of a drug\n"
 "\n"
-"Note that this will not select a component for you. What it does is to let "
-"you manage (add/edit/delete) the drug products/brands known to GNUmed from "
-"which you can select a component."
+"Note that all components of multi-component drugs will be displayed and "
+"automatically added to the patient's list."
 msgstr ""
 
-msgid "The active ingredients of this brand."
+msgid "Details on the selected drug."
 msgstr ""
 
 msgid "Show cardiac information relevant to substance selection."
@@ -4887,8 +4985,11 @@ msgid "Show renal insufficiency information related to substance selection."
 msgstr ""
 
 msgid ""
-"The non-branded medication or non-medication substance, with optional "
-"strength."
+"Manage drug brands.\n"
+"\n"
+"Note that this will not select a component for you. What it does is to let "
+"you manage (add/edit/delete) the drug products/brands known to GNUmed from "
+"which you can select a component."
 msgstr ""
 
 msgid ""
@@ -4901,11 +5002,19 @@ msgstr ""
 msgid "The preparation or form of the substance."
 msgstr ""
 
+msgid "Check here if the start date simply isn't known."
+msgstr ""
+
 msgid ""
 "When was this substance started to be consumed or - if not known - the "
 "earliest it is known to have been be consumed."
 msgstr ""
 
+msgid ""
+"A coment on the certainty of the start date, such as \"+/- 3 weeks\", "
+"\"spring of 2002\", \"shortly after Easter 1996\", ...."
+msgstr ""
+
 msgid "Whether this substance is taken by advice."
 msgstr ""
 
@@ -4939,6 +5048,15 @@ msgstr ""
 msgid "Reason for discontinuation."
 msgstr ""
 
+msgid "Drug"
+msgstr ""
+
+msgid "Research:"
+msgstr ""
+
+msgid "Certainty:"
+msgstr ""
+
 msgid "Schedule"
 msgstr ""
 
@@ -5090,6 +5208,33 @@ msgstr ""
 msgid "Channel"
 msgstr ""
 
+msgid "&Last modification time"
+msgstr ""
+
+#, fuzzy
+msgid "&Entry time"
+msgstr "Bitiş zamanı "
+
+msgid "Show journal ordered by encounter."
+msgstr ""
+
+msgid "Show journal ordered by time of last modification."
+msgstr ""
+
+msgid "Show journal ordered by actual clinical time of each entry."
+msgstr ""
+
+#, fuzzy
+msgid "Edit the selected chart entry."
+msgstr "Etkinliği Düzelt"
+
+#, fuzzy
+msgid "Delete selected chart entry."
+msgstr "Etkinliği Düzelt"
+
+msgid "Order by:"
+msgstr ""
+
 msgid "Chec&k"
 msgstr ""
 
@@ -5632,10 +5777,13 @@ msgstr ""
 msgid "Documents:"
 msgstr ""
 
+msgid "&L"
+msgstr ""
+
 msgid "&N"
 msgstr ""
 
-msgid "&L"
+msgid "List all encounters."
 msgstr ""
 
 msgid "The encounter."
@@ -5644,9 +5792,6 @@ msgstr ""
 msgid "Start a new encounter for the active patient."
 msgstr ""
 
-msgid "List all encounters."
-msgstr ""
-
 msgid "Clinically relevant"
 msgstr ""
 
@@ -5895,7 +6040,8 @@ msgstr ""
 
 msgid ""
 "Rationale for\n"
-"suppression"
+"suppression\n"
+"for this patient"
 msgstr ""
 
 msgid "Save &under"
@@ -5951,6 +6097,12 @@ msgstr ""
 msgid "Encounter:"
 msgstr ""
 
+msgid "Manage"
+msgstr ""
+
+msgid "&Panel:"
+msgstr ""
+
 msgid "&Pick"
 msgstr ""
 
@@ -5993,6 +6145,9 @@ msgid ""
 "To disable that popup leave the message empty."
 msgstr ""
 
+msgid "Show search dialog."
+msgstr ""
+
 msgid "THIS IS NOT A VERIFIED MEASUREMENT. DO NOT USE FOR ACTUAL CARE."
 msgstr ""
 
@@ -6273,6 +6428,46 @@ msgstr ""
 msgid "ERROR: unknown allergy state [%s]"
 msgstr ""
 
+msgid "definite"
+msgstr ""
+
+msgid "indefinite"
+msgstr ""
+
+msgid "Reaction:"
+msgstr ""
+
+msgid "Noted:"
+msgstr ""
+
+msgid "Allergene:"
+msgstr ""
+
+msgid "Substance:"
+msgstr ""
+
+msgid "Code:"
+msgstr ""
+
+msgid "ATC:"
+msgstr ""
+
+msgid "Specific to:"
+msgstr ""
+
+msgid "this substance only"
+msgstr ""
+
+msgid "drug class"
+msgstr ""
+
+msgid "unknown"
+msgstr ""
+
+#, fuzzy
+msgid "Generics:"
+msgstr "Genel bilgi mesajı"
+
 msgid "Medication history"
 msgstr ""
 
@@ -6282,9 +6477,15 @@ msgstr ""
 msgid "prescription data"
 msgstr ""
 
+msgid "Consumable substance"
+msgstr ""
+
 msgid "in use"
 msgstr ""
 
+msgid "w/"
+msgstr ""
+
 msgid "long-term"
 msgstr ""
 
@@ -6304,6 +6505,35 @@ msgid "?ongoing"
 msgstr ""
 
 #, python-format
+msgid ""
+"Substance abuse entry                                              [#%s]\n"
+msgstr ""
+
+#, python-format
+msgid "Substance: %s [#%s]%s\n"
+msgstr ""
+
+#, python-format
+msgid "Use type: %s\n"
+msgstr ""
+
+#, python-format
+msgid "Last checked: %s\n"
+msgstr ""
+
+#, python-format
+msgid " Discontinued %s\n"
+msgstr ""
+
+#, python-format
+msgid " Notes: %s\n"
+msgstr ""
+
+#, python-format
+msgid "Revision: #%(row_ver)s, %(mod_when)s by %(mod_by)s."
+msgstr ""
+
+#, python-format
 msgid "Substance intake entry (%s, %s)   [#%s]                     \n"
 msgstr ""
 
@@ -6319,9 +6549,6 @@ msgstr ""
 msgid "unapproved"
 msgstr ""
 
-msgid "definite"
-msgstr ""
-
 msgid "suspected"
 msgstr ""
 
@@ -6368,10 +6595,6 @@ msgid " (short-term)"
 msgstr ""
 
 #, python-format
-msgid " Discontinued %s\n"
-msgstr ""
-
-#, python-format
 msgid " Reason: %s\n"
 msgstr ""
 
@@ -6391,16 +6614,59 @@ msgstr ""
 msgid " Advice: %s\n"
 msgstr ""
 
+msgid "medication, not abuse"
+msgstr ""
+
+msgid "no or non-harmful use"
+msgstr ""
+
+msgid "presently harmful use"
+msgstr ""
+
+msgid "presently addicted"
+msgstr ""
+
+msgid "previously addicted"
+msgstr ""
+
 #, python-format
-msgid "Revision: #%(row_ver)s, %(mod_when)s by %(mod_by)s."
+msgid "%s%s: %s ago%s"
+msgstr ""
+
+#, python-format
+msgid "%s%s: %s ago (%s)"
+msgstr ""
+
+#, python-format
+msgid "%s%s%s (%s ago)"
+msgstr ""
+
+#, python-format
+msgid "%s%s%s (%s ago, %s)"
+msgstr ""
+
+#, python-format
+msgid "%s ago"
+msgstr ""
+
+#, python-format
+msgid "in %s"
+msgstr ""
+
+#, python-format
+msgid ", until %s (%s)"
 msgstr ""
 
 #, python-format
-msgid "%s: %s ago"
+msgid " (planned for %s%s)"
 msgstr ""
 
 #, python-format
-msgid "%s: %s ago (%s)"
+msgid ", planned for %s%s"
+msgstr ""
+
+#, python-format
+msgid "%s ago (for %s: %s %s %s)"
 msgstr ""
 
 msgid "Additional notes"
@@ -6415,10 +6681,32 @@ msgstr ""
 msgid "ordered by brand"
 msgstr ""
 
-msgid "Drug"
+msgid "Regimen / Advice"
 msgstr ""
 
-msgid "Regimen / Advice"
+#, python-format
+msgid "Component of %s (%s)"
+msgstr ""
+
+#, python-format
+msgid "ATC (substance): %s"
+msgstr ""
+
+#, python-format
+msgid "ATC (brand): %s"
+msgstr ""
+
+msgid "this is a component of a fake brand"
+msgstr ""
+
+#, fuzzy
+msgid "Components:"
+msgstr "Yardım içeriği"
+
+msgid "this is a fake brand"
+msgstr ""
+
+msgid "this is a vaccine"
 msgstr ""
 
 msgid "units"
@@ -6453,48 +6741,14 @@ msgstr ""
 msgid "Expires: %s\n"
 msgstr ""
 
-msgid "Active clinical hint"
+msgid "HL7 Source"
 msgstr ""
 
-msgid "Inactive clinical hint"
+msgid "HL7 data size"
 msgstr ""
 
 #, python-format
-msgid "Source: %s\n"
-msgstr ""
-
-#, python-format
-msgid "Language: %s\n"
-msgstr ""
-
-msgid "Suppressed active dynamic hint"
-msgstr ""
-
-msgid "Suppressed inactive dynamic hint"
-msgstr ""
-
-#, python-format
-msgid "Suppressed by: %s\n"
-msgstr ""
-
-#, python-format
-msgid "Suppressed at: %s\n"
-msgstr ""
-
-#, python-format
-msgid "Hint #: %s\n"
-msgstr ""
-
-#, python-format
-msgid "Patient #: %s\n"
-msgstr ""
-
-#, python-format
-msgid "MD5 (currently): %s\n"
-msgstr ""
-
-#, python-format
-msgid "MD5 (at suppression): %s\n"
+msgid "%s bytes"
 msgstr ""
 
 msgid "HL7 Message"
@@ -6550,13 +6804,6 @@ msgstr ""
 msgid "doc: %s"
 msgstr ""
 
-msgid "no patient photograph available"
-msgstr ""
-
-#, python-format
-msgid "patient photograph from %s"
-msgstr ""
-
 msgid "Patient data for"
 msgstr ""
 
@@ -6566,6 +6813,9 @@ msgstr ""
 msgid "Patient data export"
 msgstr ""
 
+msgid "no patient photograph available"
+msgstr ""
+
 msgid "Documents"
 msgstr ""
 
@@ -6575,6 +6825,10 @@ msgstr ""
 msgid "browse documents area"
 msgstr ""
 
+#, python-format
+msgid "patient photograph from %s"
+msgstr ""
+
 msgid "Browse patient data"
 msgstr ""
 
@@ -6609,24 +6863,24 @@ msgstr ""
 #, python-format
 msgid ""
 "%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s %(suburb)s, "
-"%(code_state)s, %(code_country)s"
+"%(code_region)s, %(code_country)s"
 msgstr ""
 
 #, python-format
 msgid ""
 "%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s %(suburb)s, "
-"%(code_state)s, %(code_country)s"
+"%(code_region)s, %(code_country)s"
 msgstr ""
 
 #, python-format
 msgid ""
-"%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_state)s, "
-"%(code_country)s"
+"%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, "
+"%(code_region)s, %(code_country)s"
 msgstr ""
 
 #, python-format
 msgid ""
-"%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_state)s, "
+"%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_region)s, "
 "%(code_country)s"
 msgstr ""
 
@@ -6636,7 +6890,7 @@ msgid ""
 " Street: %(street)s%(notes_street)s\n"
 " Number/Unit: %(number)s%(subunit)s%(notes_subunit)s\n"
 " Location: %(zip)s %(urb)s%(suburb)s\n"
-" Region: %(l10n_state)s, %(code_state)s\n"
+" Region: %(l10n_region)s, %(code_region)s\n"
 " Country: %(l10n_country)s, %(code_country)s"
 msgstr ""
 
@@ -6646,7 +6900,7 @@ msgid ""
 " Street: %(street)s%(notes_street)s\n"
 " Number/Unit: %(number)s%(subunit)s%(notes_subunit)s\n"
 " Location: %(zip)s %(urb)s%(suburb)s\n"
-" Region: %(l10n_state)s, %(code_state)s\n"
+" Region: %(l10n_region)s, %(code_region)s\n"
 " Country: %(l10n_country)s, %(code_country)s"
 msgstr ""
 
@@ -6715,6 +6969,84 @@ msgstr ""
 msgid "missing, reported later"
 msgstr ""
 
+msgid "Health issue"
+msgstr ""
+
+msgid "External care"
+msgstr ""
+
+msgid "Vaccination"
+msgstr ""
+
+msgid "Clinical narrative"
+msgstr ""
+
+msgid "Test result"
+msgstr ""
+
+msgid "Substance intake"
+msgstr ""
+
+msgid "Hospital stay"
+msgstr ""
+
+msgid "Performed procedure"
+msgstr ""
+
+msgid "Family history"
+msgstr ""
+
+msgid "Document"
+msgstr ""
+
+#, python-format
+msgid "unmapped entry type from table [%s]"
+msgstr ""
+
+#, python-format
+msgid "cannot instantiate clinical root item <%s(%s)>"
+msgstr ""
+
+msgid "True"
+msgstr ""
+
+msgid "False"
+msgstr ""
+
+msgid "unknown smoking status"
+msgstr ""
+
+msgid "non-smoker"
+msgstr ""
+
+msgid "current smoker"
+msgstr ""
+
+msgid "ex-smoker"
+msgstr ""
+
+msgid "tobacco addiction"
+msgstr ""
+
+msgid "no or non-harmful alcohol use"
+msgstr ""
+
+msgid "harmful alcohol use"
+msgstr ""
+
+msgid "unknown alcohol use"
+msgstr ""
+
+msgid "no or non-harmful drug use"
+msgstr ""
+
+msgid "harmful drug use"
+msgstr ""
+
+#, fuzzy
+msgid "unknown drug use"
+msgstr "Bilinmeyen format"
+
 msgid "original entry"
 msgstr ""
 
@@ -6806,13 +7138,6 @@ msgstr ""
 msgid "Vaccinations"
 msgstr ""
 
-#, python-format
-msgid "%s ago"
-msgstr ""
-
-msgid "External care"
-msgstr ""
-
 msgid "Allergies/Intolerances"
 msgstr ""
 
@@ -6886,76 +7211,126 @@ msgid ""
 "The account was deactivated instead."
 msgstr ""
 
+msgid "SOAP_char_S=S"
+msgstr ""
+
+msgid "SOAP_char_O=O"
+msgstr ""
+
+msgid "SOAP_char_A=A"
+msgstr ""
+
+msgid "SOAP_char_P=P"
+msgstr ""
+
+msgid "SOAP_char_U=U"
+msgstr ""
+
+msgid "SOAP_string_Subjective=Subjective"
+msgstr ""
+
+msgid "SOAP_string_Objective=Objective"
+msgstr ""
+
+msgid "SOAP_string_Assessment=Assessment"
+msgstr ""
+
+msgid "SOAP_string_Plan=Plan"
+msgstr ""
+
+msgid "SOAP_string_Unspecified=Unspecified"
+msgstr ""
+
+msgid "SOAP_string_Administrative=Administrative"
+msgstr ""
+
+msgid "Active clinical hint"
+msgstr ""
+
+msgid "Inactive clinical hint"
+msgstr ""
+
 #, python-format
-msgid "Device(%s):"
+msgid "Source: %s\n"
 msgstr ""
 
-msgid "Battery:"
+#, python-format
+msgid "Language: %s\n"
 msgstr ""
 
-msgid "Implanted:"
+msgid "Suppressed active dynamic hint"
 msgstr ""
 
-msgid "last check:"
+msgid "Suppressed inactive dynamic hint"
 msgstr ""
 
-msgid "Sensing:"
+#, python-format
+msgid "Suppressed by: %s\n"
 msgstr ""
 
-msgid "Threshold"
+#, python-format
+msgid "Suppressed at: %s\n"
 msgstr ""
 
-msgid "Impedance:"
+#, python-format
+msgid "Hint #: %s\n"
 msgstr ""
 
 #, python-format
-msgid "Praxis branch                   #%s\n"
+msgid "Patient #: %s\n"
 msgstr ""
 
-msgid "Privacy notice"
+#, python-format
+msgid "MD5 (currently): %s\n"
 msgstr ""
 
 #, python-format
-msgid ""
-"%s: Your chart has been accessed by %s (without user interaction, probably "
-"by a script)."
+msgid "MD5 (at suppression): %s\n"
 msgstr ""
 
 #, python-format
-msgid "%s: Staff member %s has been notified of your chart access."
+msgid "Device(%s):"
 msgstr ""
 
-msgid "soap_S"
+msgid "Battery:"
 msgstr ""
 
-msgid "soap_O"
+msgid "Implanted:"
 msgstr ""
 
-msgid "soap_A"
+msgid "last check:"
 msgstr ""
 
-msgid "soap_P"
+msgid "Sensing:"
 msgstr ""
 
-msgid "soap_U"
+msgid "Threshold"
 msgstr ""
 
-msgid "soap_Subjective"
+msgid "Impedance:"
 msgstr ""
 
-msgid "soap_Objective"
+#, python-format
+msgid "Praxis branch                   #%s\n"
 msgstr ""
 
-msgid "soap_Assessment"
+#, python-format
+msgid ""
+"FN:%(l10n_unit_category)s %(branch)s of %(l10n_organization_category)s "
+"%(praxis)s"
 msgstr ""
 
-msgid "soap_Plan"
+msgid "Privacy notice"
 msgstr ""
 
-msgid "soap_Unspecified"
+#, python-format
+msgid ""
+"%s: Your chart has been accessed by %s (without user interaction, probably "
+"by a script)."
 msgstr ""
 
-msgid "soap_Administrative"
+#, python-format
+msgid "%s: Staff member %s has been notified of your chart access."
 msgstr ""
 
 #, python-format
@@ -7022,9 +7397,17 @@ msgid "%(last)s,%(title)s %(first)s%(nick)s (%(sex)s)"
 msgstr ""
 
 #, python-format
+msgid "%(last)s,%(title)s %(first)s (%(sex)s)"
+msgstr ""
+
+#, python-format
 msgid "%(last)s,%(title)s %(first)s%(nick)s"
 msgstr ""
 
+#, python-format
+msgid "%(last)s,%(title)s %(first)s"
+msgstr ""
+
 msgid "Cannot merge active patient into another patient."
 msgstr ""
 
@@ -7034,9 +7417,6 @@ msgstr ""
 msgid "merged"
 msgstr ""
 
-msgid "preferred name/call name/..."
-msgstr ""
-
 msgid "invalid age: DOB in the future"
 msgstr ""
 
@@ -7049,9 +7429,6 @@ msgstr ""
 msgid "Mrs"
 msgstr ""
 
-msgid "unknown"
-msgstr ""
-
 msgid "empty status"
 msgstr ""
 
@@ -7382,7 +7759,7 @@ msgid " Part %s: %s %s(%s Bytes)\n"
 msgstr ""
 
 #, python-format
-msgid " Filename: %s\n"
+msgid " Filename: %s%s\n"
 msgstr ""
 
 msgid "no parts"
@@ -7396,18 +7773,25 @@ msgid "%s parts"
 msgstr ""
 
 #, python-format
+msgid "%s of %s"
+msgstr ""
+
+#, python-format
 msgid ""
 "%s (%s)   #%s\n"
-"\n"
 " Created: %s\n"
 " Episode: %s\n"
-"%s%s%s"
+"%s%s%s%s"
 msgstr ""
 
 #, python-format
 msgid " External reference: %s\n"
 msgstr ""
 
+#, python-format
+msgid " Organization: %%s @ %s\n"
+msgstr ""
+
 msgid "Cannot run [arriba] !"
 msgstr ""
 
@@ -7752,23 +8136,7 @@ msgid "External care:"
 msgstr ""
 
 #, python-format
-msgid ""
-"health issue: %s%s%s\n"
-"\n"
-msgstr ""
-
-msgid ""
-"\n"
-"current values:\n"
-msgstr ""
-
-msgid "no previous versions of this record"
-msgstr ""
-
-msgid ""
-"\n"
-"all values with <audit_action>, <audit_when>, <audit_by> fields (current "
-"value first):\n"
+msgid "Health issue: %s%s%s"
 msgstr ""
 
 msgid "Unattributed episodes"
@@ -7792,9 +8160,6 @@ msgstr ""
 msgid "finished"
 msgstr ""
 
-msgid "Health issue"
-msgstr ""
-
 msgid "none associated"
 msgstr ""
 
@@ -7830,9 +8195,7 @@ msgid "Measurements and Results:"
 msgstr ""
 
 #, python-format
-msgid ""
-"episode: %s%s%s\n"
-"\n"
+msgid "Episode: %s%s%s"
 msgstr ""
 
 #, python-format
@@ -7860,9 +8223,7 @@ msgid "%s other episodes touched upon during this encounter:"
 msgstr ""
 
 #, python-format
-msgid ""
-"encounter: %s%s%s\n"
-"\n"
+msgid "Encounter: %s%s%s"
 msgstr ""
 
 msgid " (ongoing)"
@@ -7883,9 +8244,6 @@ msgstr ""
 msgid "Procedures"
 msgstr ""
 
-msgid "Substances"
-msgstr ""
-
 msgid "Life events"
 msgstr ""
 
@@ -7907,9 +8265,6 @@ msgstr ""
 msgid "Cannot display timeline."
 msgstr ""
 
-msgid "Vaccination"
-msgstr ""
-
 msgid "Lab result"
 msgstr ""
 
@@ -7977,9 +8332,6 @@ msgstr ""
 msgid "Exported: %s\n"
 msgstr ""
 
-msgid "emr-journal"
-msgstr ""
-
 msgid "Chronological EMR Journal\n"
 msgstr ""
 
@@ -8247,36 +8599,155 @@ msgstr ""
 msgid "Select one or more codes that apply."
 msgstr ""
 
-msgid "Cannot move progress notes. No active patient."
+msgid "Select the narrative you are interested in ..."
 msgstr ""
 
-msgid "Moving progress notes between encounters ..."
+msgid "when"
 msgstr ""
 
-msgid ""
-"\n"
-" Select the progress notes to move from the list !\n"
-"\n"
+msgid "who"
 msgstr ""
 
-msgid "when"
+msgid "entry"
 msgstr ""
 
-msgid "who"
+msgid "There is no narrative for this episode in this encounter."
 msgstr ""
 
-msgid "entry"
+msgid "Must select episode to move narrative to first."
 msgstr ""
 
-msgid "Cannot edit progress notes. No active patient."
+msgid "Last"
 msgstr ""
 
-msgid "Deleting progress note"
+msgid "In health issue"
 msgstr ""
 
-msgid ""
-"Are you positively sure you want to delete this\n"
-"progress note from the medical record ?\n"
+msgid "Most recent notes on selected problem"
+msgstr ""
+
+#, python-format
+msgid "%s (active+potential) problems"
+msgstr ""
+
+#, python-format
+msgid "%s active problems"
+msgstr ""
+
+msgid "Current encounter:"
+msgstr ""
+
+msgid "Cumulative summary"
+msgstr ""
+
+#, python-format
+msgid "Most recent info on %s%s%s"
+msgstr ""
+
+#, python-format
+msgid ""
+"Cannot open progress note editor for\n"
+"\n"
+"[%s].\n"
+"\n"
+msgstr ""
+
+msgid "opening progress note editor"
+msgstr ""
+
+msgid "Cannot save all editors. Some were kept open."
+msgstr ""
+
+msgid "new problem"
+msgstr ""
+
+msgid ""
+"Are you sure you really want to\n"
+"discard this progress note ?\n"
+msgstr ""
+
+msgid "Discarding progress note"
+msgstr ""
+
+msgid "There are unsaved progress notes !\n"
+msgstr ""
+
+msgid "Unsaved progress notes"
+msgstr ""
+
+msgid "Problem list"
+msgstr ""
+
+msgid "Saving SOAP note"
+msgstr ""
+
+msgid "Do you want to save the SOAP note ?"
+msgstr ""
+
+#, python-format
+msgid "&Filter by problem %s%s%s"
+msgstr ""
+
+msgid "Cannot save SimpleNotes SOAP note."
+msgstr ""
+
+#, python-format
+msgid "Progress note: %s%s"
+msgstr ""
+
+msgid "Please enter a name for the new problem:"
+msgstr ""
+
+msgid "Adding a problem"
+msgstr ""
+
+msgid "Cannot delete problem. There is still clinical data recorded for it."
+msgstr ""
+
+#, python-format
+msgid "GNUmed: configuring [%s] (%s plugins)"
+msgstr ""
+
+msgid "loading list of plugins                               "
+msgstr ""
+
+msgid "failed"
+msgstr ""
+
+msgid "success"
+msgstr ""
+
+#, python-format
+msgid ""
+"previous: %s (%s)\n"
+"current (%s/%s): %s"
+msgstr ""
+
+#, python-format
+msgid "Cannot switch to [%s]: no patient selected"
+msgstr ""
+
+msgid "Cannot move progress notes. No active patient."
+msgstr ""
+
+msgid "Moving progress notes between encounters ..."
+msgstr ""
+
+msgid ""
+"\n"
+" Select the progress notes to move from the list !\n"
+"\n"
+msgstr ""
+
+msgid "Cannot edit progress notes. No active patient."
+msgstr ""
+
+msgid "Deleting progress note"
+msgstr ""
+
+msgid ""
+"Are you positively sure you want to delete this\n"
+"progress note from the medical record ?\n"
 "\n"
 "Note that even if you chose to delete the entry it will\n"
 "still be (invisibly) kept in the audit trail to protect\n"
@@ -8467,965 +8938,884 @@ msgid ""
 " Now, mark the entries you want to include in your report.\n"
 msgstr ""
 
-msgid "Select the narrative you are interested in ..."
+msgid "Pick a date ..."
 msgstr ""
 
-msgid "There is no narrative for this episode in this encounter."
+msgid "<ALT-C/K>: pick from (c/k)alendar"
 msgstr ""
 
-msgid "Must select episode to move narrative to first."
+msgid "Cannot interpret input as timestamp."
 msgstr ""
 
-msgid "Last"
+msgid "No vaccines were chosen"
 msgstr ""
 
-msgid "In health issue"
+#, python-format
+msgid "Combination of indications , %s , not found in any vaccine"
 msgstr ""
 
-msgid "Most recent notes on selected problem"
+msgid "Sequence"
 msgstr ""
 
-#, python-format
-msgid "%s (active+potential) problems"
+msgid "Batch"
 msgstr ""
 
-#, python-format
-msgid "%s active problems"
+msgid "Vaccinator"
 msgstr ""
 
-msgid "Current encounter:"
+msgid ""
+"Vaccinations by Recommender (X = patient on regime, O = patient not on "
+"regime) "
 msgstr ""
 
-msgid "Cumulative summary"
+msgid "enrolled regime vaccinations not yet given"
 msgstr ""
 
-#, python-format
-msgid "Most recent info on %s%s%s"
+msgid "Proceed with "
 msgstr ""
 
 #, python-format
-msgid ""
-"Cannot open progress note editor for\n"
-"\n"
-"[%s].\n"
-"\n"
+msgid "Failed to enrol patient in %s"
 msgstr ""
 
-msgid "opening progress note editor"
+#, python-format
+msgid "Failed to  delist patient from %s"
 msgstr ""
 
-msgid "Cannot save all editors. Some were kept open."
+msgid "Missing GNUmed module"
 msgstr ""
 
-msgid "new problem"
+#, python-format
+msgid ""
+"GNUmed detected that parts of it are not\n"
+"properly installed. The following message\n"
+"names the missing part:\n"
+"\n"
+" \"%s\"\n"
+"\n"
+"Please make sure to get the missing\n"
+"parts installed. Otherwise some of the\n"
+"functionality will not be accessible."
 msgstr ""
 
+#, python-format
 msgid ""
-"Are you sure you really want to\n"
-"discard this progress note ?\n"
+"\n"
+" Source: %s"
 msgstr ""
 
-msgid "Discarding progress note"
+#, python-format
+msgid ""
+"\n"
+" Code: %s"
 msgstr ""
 
-msgid "There are unsaved progress notes !\n"
+#, python-format
+msgid ""
+"\n"
+" Details (first 250 characters):\n"
+"%s\n"
+"%s\n"
+"%s"
 msgstr ""
 
-msgid "Unsaved progress notes"
+msgid "Access violation"
 msgstr ""
 
 #, python-format
-msgid "Synopsis (%s)"
+msgid ""
+"You do not have access to this part of GNUmed.\n"
+"\n"
+"%s"
 msgstr ""
 
-msgid ""
-"Enter a short working name for this new problem\n"
-"(which will become a new, unassociated episode):\n"
+msgid "Lost connection"
 msgstr ""
 
-#, python-format
 msgid ""
-"Enter a short working name for this new\n"
-"episode under the existing health issue\n"
+"Since you were last working in GNUmed,\n"
+"your database connection timed out.\n"
 "\n"
-"\"%s\":\n"
+"This GNUmed session is now expired.\n"
+"\n"
+"You will have to close this client and\n"
+"restart a new GNUmed session."
 msgstr ""
 
-msgid "Creating problem (episode) to save notelet under ..."
+msgid ""
+"Please enter a short note on what you\n"
+"were about to do in GNUmed:"
 msgstr ""
 
-msgid "Cannot save a new problem without a name."
+msgid "Sending bug report"
 msgstr ""
 
-msgid "saving progress note"
+msgid ""
+"Edit the list of email addresses to send the\n"
+"bug report to (separate addresses by spaces).\n"
+"\n"
+"Note that <gnumed-bugs at gnu.org> refers to\n"
+"the public (!) GNUmed bugs mailing list."
 msgstr ""
 
 #, python-format
 msgid ""
-"The new episode:\n"
+"Your bug report will be sent to:\n"
 "\n"
-" \"%s\"\n"
+"%s\n"
 "\n"
-"will remain unassociated despite the editor\n"
-"having been invoked from the health issue:\n"
+"Make sure you have reviewed the log file for potentially\n"
+"sensitive information before sending out the bug report.\n"
 "\n"
-" \"%s\""
-msgstr ""
-
-msgid "You need to actually set an editor."
+"Note that emailing the report may take a while depending\n"
+"on the speed of your internet connection.\n"
 msgstr ""
 
-#, python-format
-msgid "The command [%s] is not found."
+msgid "Yes, send the bug report."
 msgstr ""
 
-#, python-format
-msgid ""
-"Enter the shell command with which to start\n"
-"the image editor for visual progress notes.\n"
-"\n"
-"Any \"%(img)s\" included with the arguments\n"
-"will be replaced by the file name of the\n"
-"note template."
+msgid "No, do not send the bug report."
 msgstr ""
 
-msgid "Choose file to use as template for new visual progress note"
+msgid "include log file in bug report"
 msgstr ""
 
-msgid "Visual progress note source"
+msgid ""
+"The database you are connected to is marked as\n"
+"\"in-production with controlled access\".\n"
+"\n"
+"You indicated that you want to include the log\n"
+"file in your bug report. While this is often\n"
+"useful for debugging the log file might contain\n"
+"bits of patient data which must not be sent out\n"
+"without de-identification.\n"
+"\n"
+"Please confirm that you want to include the log !"
 msgstr ""
 
-msgid "From which source do you want to pick the image template ?"
+msgid "<not supplied>"
 msgstr ""
 
-msgid "Database"
+msgid "Bug report has been emailed."
 msgstr ""
 
-msgid "List of templates in the database."
+msgid "Bug report COULD NOT be emailed."
 msgstr ""
 
-msgid "Files in the filesystem."
+msgid "Underweight"
 msgstr ""
 
-msgid "Device"
+msgid "63< Normal >79"
 msgstr ""
 
-msgid "Image capture devices (scanners, cameras, etc)"
+msgid "63 - Normal - 79"
 msgstr ""
 
-#, python-format
-msgid "Cannot export visual progress note template for [%s]."
+msgid "Overweight"
 msgstr ""
 
-msgid "Cannot export visual progress note to file."
+msgid "Obese"
 msgstr ""
 
-msgid "Editor for visual progress note not configured."
+msgid "Current height/mass"
 msgstr ""
 
-#, python-format
-msgid ""
-"There was a problem with running the editor\n"
-"for visual progress notes.\n"
-"\n"
-" [%s]\n"
-"\n"
+msgid "Height (cm)"
 msgstr ""
 
-msgid "Editing visual progress note"
+msgid "Mass (kg)"
 msgstr ""
 
-#, python-format
-msgid ""
-"There was a problem reading the visual\n"
-"progress note from the file:\n"
-"\n"
-" [%s]\n"
-"\n"
+msgid "Adjusted Values"
 msgstr ""
 
-msgid "Saving visual progress note"
+msgid "Goal mass"
 msgstr ""
 
-msgid ""
-"You either created a visual progress note from a template\n"
-"in the database (rather than from a file on disk) or you\n"
-"edited an existing visual progress note.\n"
-"\n"
-"The template/original was not modified at all, however.\n"
-"\n"
-"Do you still want to save the unmodified image as a\n"
-"visual progress note into the EMR of the patient ?\n"
+msgid "kg to lose"
 msgstr ""
 
-msgid "visual progress notes"
+msgid "BMI Calculator"
 msgstr ""
 
-#, python-format
-msgid "Created: %s"
+msgid "&Reset"
 msgstr ""
 
-msgid "Problem list"
+msgid "Select a healthcare provider."
 msgstr ""
 
-msgid "Saving SOAP note"
+msgid "Public (no clinical or demographic access)"
 msgstr ""
 
-msgid "Do you want to save the SOAP note ?"
+msgid "Staff (demographic access only)"
 msgstr ""
 
-#, python-format
-msgid "&Filter by problem %s%s%s"
+msgid "staff (clerical)"
 msgstr ""
 
-msgid "Cannot save SimpleNotes SOAP note."
+msgid "full clinical access"
 msgstr ""
 
-#, python-format
-msgid "Progress note: %s%s"
+msgid "DB account"
 msgstr ""
 
-msgid "Please enter a name for the new problem:"
+msgid "can login"
 msgstr ""
 
-msgid "Adding a problem"
+msgid "can not login"
 msgstr ""
 
-msgid "Cannot delete problem. There is still clinical data recorded for it."
+msgid "Activating GNUmed user."
 msgstr ""
 
-#, python-format
-msgid "GNUmed: configuring [%s] (%s plugins)"
+msgid "Deactivating GNUmed user."
 msgstr ""
 
-msgid "loading list of plugins                               "
+msgid "Removing GNUmed user."
 msgstr ""
 
-msgid "failed"
+msgid "Removing GNUmed user"
 msgstr ""
 
-msgid "success"
+msgid "Modifying GNUmed user."
 msgstr ""
 
-#, python-format
-msgid ""
-"previous: %s (%s)\n"
-"current (%s/%s): %s"
+msgid "Failed to save changes to GNUmed database user."
+msgstr ""
+
+msgid "Modifying GNUmed user"
 msgstr ""
 
 #, python-format
-msgid "Cannot switch to [%s]: no patient selected"
+msgid "Failed to set role [%s] for GNUmed database user."
 msgstr ""
 
-msgid "Pick a date ..."
+#, python-format
+msgid ""
+"\n"
+"  %s \"%s\" %s\n"
+"  born: %s"
 msgstr ""
 
-msgid "<ALT-C/K>: pick from (c/k)alendar"
+msgid ""
+"Password entries do not match. Please type in the passwords again to rule "
+"out typos."
 msgstr ""
 
-msgid "Cannot interpret input as timestamp."
+msgid "Adding GNUmed user"
 msgstr ""
 
-msgid "No vaccines were chosen"
+msgid ""
+"Are you positively sure you want to create\n"
+"a user with an empty password ?\n"
+"\n"
+"Think about the record access implications !"
 msgstr ""
 
-#, python-format
-msgid "Combination of indications , %s , not found in any vaccine"
+msgid "Enlisting person as user."
 msgstr ""
 
-msgid "Sequence"
+msgid "Encrypt"
 msgstr ""
 
-msgid "Batch"
+msgid "Decrypt"
 msgstr ""
 
-msgid "Vaccinator"
+msgid "Set pass phrase"
 msgstr ""
 
-msgid ""
-"Vaccinations by Recommender (X = patient on regime, O = patient not on "
-"regime) "
+msgid "This is not correctly encrypted text!"
 msgstr ""
 
-msgid "enrolled regime vaccinations not yet given"
+msgid "Please enter your pass phrase:"
 msgstr ""
 
-msgid "Proceed with "
+msgid "Pass phrase expired"
 msgstr ""
 
-#, python-format
-msgid "Failed to enrol patient in %s"
+msgid ""
+"\n"
+"Conditions preventable by vaccination as currently known to GNUmed.\n"
 msgstr ""
 
-#, python-format
-msgid "Failed to  delist patient from %s"
+msgid "Showing vaccination preventable conditions."
 msgstr ""
 
-msgid "Missing GNUmed module"
+msgid "ATCs: single-condition vaccines"
 msgstr ""
 
-#, python-format
-msgid ""
-"GNUmed detected that parts of it are not\n"
-"properly installed. The following message\n"
-"names the missing part:\n"
-"\n"
-" \"%s\"\n"
-"\n"
-"Please make sure to get the missing\n"
-"parts installed. Otherwise some of the\n"
-"functionality will not be accessible."
+msgid "ATCs: multi-condition vaccines"
 msgstr ""
 
-#, python-format
-msgid ""
-"\n"
-" Source: %s"
+msgid "Pick the relevant indications."
 msgstr ""
 
-#, python-format
-msgid ""
-"\n"
-" Code: %s"
+msgid "Known indications"
 msgstr ""
 
-#, python-format
-msgid ""
-"\n"
-" Details (first 250 characters):\n"
-"%s\n"
-"%s\n"
-"%s"
+msgid "Adding new vaccine"
 msgstr ""
 
-msgid "Access violation"
+msgid "Editing vaccine"
 msgstr ""
 
 #, python-format
 msgid ""
-"You do not have access to this part of GNUmed.\n"
+"Cannot delete vaccine\n"
 "\n"
-"%s"
+" %s - %s (#%s)\n"
+"\n"
+"It is probably documented in a vaccination."
 msgstr ""
 
-msgid "Lost connection"
+msgid "Deleting vaccine"
+msgstr ""
+
+msgid "fake"
 msgstr ""
 
 msgid ""
-"Since you were last working in GNUmed,\n"
-"your database connection timed out.\n"
-"\n"
-"This GNUmed session is now expired.\n"
 "\n"
-"You will have to close this client and\n"
-"restart a new GNUmed session."
+"The vaccines currently known to GNUmed.\n"
 msgstr ""
 
-msgid ""
-"Please enter a short note on what you\n"
-"were about to do in GNUmed:"
+msgid "Showing vaccines."
 msgstr ""
 
-msgid "Sending bug report"
+msgid "Enter or select the batch/lot number of the vaccine used."
 msgstr ""
 
-msgid ""
-"Edit the list of email addresses to send the\n"
-"bug report to (separate addresses by spaces).\n"
-"\n"
-"Note that <gnumed-bugs at gnu.org> refers to\n"
-"the public (!) GNUmed bugs mailing list."
+msgid "Saving vaccine"
 msgstr ""
 
 #, python-format
 msgid ""
-"Your bug report will be sent to:\n"
+"This vaccine is already in use:\n"
 "\n"
-"%s\n"
+" \"%s\"\n"
+" (%s)\n"
 "\n"
-"Make sure you have reviewed the log file for potentially\n"
-"sensitive information before sending out the bug report.\n"
+"Are you absolutely positively sure that\n"
+"you really want to edit this vaccine ?\n"
 "\n"
-"Note that emailing the report may take a while depending\n"
-"on the speed of your internet connection.\n"
-msgstr ""
-
-msgid "Yes, send the bug report."
+"This will change the vaccine name and/or target\n"
+"conditions in each patient this vaccine was\n"
+"used in to document a vaccination with.\n"
 msgstr ""
 
-msgid "No, do not send the bug report."
+msgid "You must select at least one indication."
 msgstr ""
 
-msgid "include log file in bug report"
+msgid "Pick the diseases this vaccine protects against."
 msgstr ""
 
-msgid ""
-"The database you are connected to is marked as\n"
-"\"in-production with controlled access\".\n"
-"\n"
-"You indicated that you want to include the log\n"
-"file in your bug report. While this is often\n"
-"useful for debugging the log file might contain\n"
-"bits of patient data which must not be sent out\n"
-"without de-identification.\n"
-"\n"
-"Please confirm that you want to include the log !"
+msgid "This vaccine"
 msgstr ""
 
-msgid "<not supplied>"
+msgid "Adding new vaccinations"
 msgstr ""
 
-msgid "Bug report has been emailed."
+msgid "Editing vaccination"
 msgstr ""
 
-msgid "Bug report COULD NOT be emailed."
+msgid "vaccination recall"
 msgstr ""
 
-msgid "Underweight"
+#, python-format
+msgid "vaccination recall (%s)"
 msgstr ""
 
-msgid "63< Normal >79"
-msgstr ""
-
-msgid "63 - Normal - 79"
-msgstr ""
-
-msgid "Overweight"
+#, python-format
+msgid ""
+"Existing vaccination:\n"
+"\n"
+"%s"
 msgstr ""
 
-msgid "Obese"
+msgid ""
+"\n"
+"Complete vaccination history for this patient.\n"
 msgstr ""
 
-msgid "Current height/mass"
+msgid "Showing vaccinations."
 msgstr ""
 
-msgid "Height (cm)"
+msgid "Intended to protect from"
 msgstr ""
 
-msgid "Mass (kg)"
+msgid "Print vaccinations or recalls."
 msgstr ""
 
-msgid "Adjusted Values"
+msgid "Recall"
 msgstr ""
 
-msgid "Goal mass"
+msgid "Add a recall for a vaccination"
 msgstr ""
 
-msgid "kg to lose"
+msgid "Vx schedules"
 msgstr ""
 
-msgid "BMI Calculator"
+msgid "Open a browser showing vaccination schedules."
 msgstr ""
 
-msgid "&Reset"
+msgid "prevention"
 msgstr ""
 
-msgid "Select a healthcare provider."
+msgid "Saving vaccination"
 msgstr ""
 
-msgid "Public (no clinical or demographic access)"
+msgid "Pick the diseases this vaccination was given against."
 msgstr ""
 
-msgid "Staff (demographic access only)"
+msgid "  IMMUNISATIONS  "
 msgstr ""
 
-msgid "staff (clerical)"
+msgid "Indications"
 msgstr ""
 
-msgid "full clinical access"
+msgid "Active Schedules"
 msgstr ""
 
-msgid "DB account"
+msgid "Missing Immunisations"
 msgstr ""
 
-msgid "can login"
+msgid "  Alerts  "
 msgstr ""
 
-msgid "can not login"
+msgid "ERROR: cannot retrieve active vaccination schedules"
 msgstr ""
 
-msgid "Activating GNUmed user."
+msgid "no active vaccination schedules"
 msgstr ""
 
-msgid "Deactivating GNUmed user."
+#, python-format
+msgid "%s for %s (%s shots): %s"
 msgstr ""
 
-msgid "Removing GNUmed user."
+msgid "ERROR: cannot retrieve due/overdue vaccinations"
 msgstr ""
 
-msgid "Removing GNUmed user"
+#, python-format
+msgid "%.0d weeks left: shot %s for %s in %s, due %s (%s)"
 msgstr ""
 
-msgid "Modifying GNUmed user."
+#, python-format
+msgid "overdue %.0dyrs %.0dwks: shot %s for %s in schedule \"%s\" (%s)"
 msgstr ""
 
-msgid "Failed to save changes to GNUmed database user."
+#, python-format
+msgid "due now: booster for %s in schedule \"%s\" (%s)"
 msgstr ""
 
-msgid "Modifying GNUmed user"
+#, python-format
+msgid "Synopsis (%s)"
 msgstr ""
 
-#, python-format
-msgid "Failed to set role [%s] for GNUmed database user."
+msgid ""
+"Enter a short working name for this new problem\n"
+"(which will become a new, unassociated episode):\n"
 msgstr ""
 
 #, python-format
 msgid ""
+"Enter a short working name for this new\n"
+"episode under the existing health issue\n"
 "\n"
-"  %s \"%s\" %s\n"
-"  born: %s"
+"\"%s\":\n"
 msgstr ""
 
-msgid ""
-"Password entries do not match. Please type in the passwords again to rule "
-"out typos."
+msgid "Creating problem (episode) to save notelet under ..."
 msgstr ""
 
-msgid "Adding GNUmed user"
+msgid "Cannot save a new problem without a name."
+msgstr ""
+
+msgid "saving progress note"
 msgstr ""
 
+#, python-format
 msgid ""
-"Are you positively sure you want to create\n"
-"a user with an empty password ?\n"
+"The new episode:\n"
 "\n"
-"Think about the record access implications !"
+" \"%s\"\n"
+"\n"
+"will remain unassociated despite the editor\n"
+"having been invoked from the health issue:\n"
+"\n"
+" \"%s\""
 msgstr ""
 
-msgid "Enlisting person as user."
+msgid "Adding substance abuse"
 msgstr ""
 
-msgid "Encrypt"
+msgid "Editing substance abuse"
 msgstr ""
 
-msgid "Decrypt"
+msgid "Substances abused by the patient:"
 msgstr ""
 
-msgid "Set pass phrase"
+msgid "Showing abused substances."
 msgstr ""
 
-msgid "This is not correctly encrypted text!"
+msgid "Intake"
 msgstr ""
 
-msgid "Please enter your pass phrase:"
+msgid "nicotine"
 msgstr ""
 
-msgid "Pass phrase expired"
+msgid "unit"
 msgstr ""
 
-msgid ""
-"\n"
-"Conditions preventable by vaccination as currently known to GNUmed.\n"
+#, python-format
+msgid "Latest: %s ago (%s %s%s%s%s)"
 msgstr ""
 
-msgid "Showing vaccination preventable conditions."
+#, python-format
+msgid "%s %s%s%s (%s ago, %s)"
 msgstr ""
 
-msgid "ATCs: single-condition vaccines"
+#, python-format
+msgid "overdue %s: %s"
 msgstr ""
 
-msgid "ATCs: multi-condition vaccines"
+#, python-format
+msgid "due in %s%s"
 msgstr ""
 
-msgid "Pick the relevant indications."
+msgid "suppr'd:"
 msgstr ""
 
-msgid "Known indications"
+msgid "Suppressed hints:\n"
 msgstr ""
 
-msgid "Adding new vaccine"
+msgid ""
+"Do you really want to\n"
+"delete this inbox message ?"
 msgstr ""
 
-msgid "Editing vaccine"
+msgid "Deleting inbox message"
+msgstr ""
+
+msgid "Export area: 1 item"
 msgstr ""
 
 #, python-format
-msgid ""
-"Cannot delete vaccine\n"
-"\n"
-" %s - %s (#%s)\n"
-"\n"
-"It is probably documented in a vaccination."
+msgid "Export area: %s items"
 msgstr ""
 
-msgid "Deleting vaccine"
+#, python-format
+msgid "%s %s more not shown %s"
 msgstr ""
 
-msgid "fake"
+#, python-format
+msgid "Currently %s entries in waiting list"
 msgstr ""
 
-msgid ""
-"\n"
-"The vaccines currently known to GNUmed.\n"
+#, python-format
+msgid "first (in GMd): %s, %s"
 msgstr ""
 
-msgid "Showing vaccines."
+#, python-format
+msgid "last: %s, %s"
 msgstr ""
 
-msgid "Enter or select the batch/lot number of the vaccine used."
+#, python-format
+msgid "Last %s:"
 msgstr ""
 
-msgid "Saving vaccine"
+msgid "Statistics cover period"
 msgstr ""
 
 #, python-format
+msgid "EDC (!?!): %s"
+msgstr ""
+
 msgid ""
-"This vaccine is already in use:\n"
-"\n"
-" \"%s\"\n"
-" (%s)\n"
-"\n"
-"Are you absolutely positively sure that\n"
-"you really want to edit this vaccine ?\n"
+"The Expected Date of Confinement is rather questionable.\n"
 "\n"
-"This will change the vaccine name and/or target\n"
-"conditions in each patient this vaccine was\n"
-"used in to document a vaccination with.\n"
+"Please check patient age, patient gender, time until/since EDC."
 msgstr ""
 
-msgid "You must select at least one indication."
+#, python-format
+msgid "%s Vacc: %s (latest of %s)"
 msgstr ""
 
-msgid "Pick the diseases this vaccine protects against."
+#, python-format
+msgid "Hx of addiction: %s"
 msgstr ""
 
-msgid "This vaccine"
+msgid "active substance abuse"
 msgstr ""
 
-msgid "Adding new vaccinations"
+#, python-format
+msgid "%s %s %s%s"
 msgstr ""
 
-msgid "Editing vaccination"
+#, python-format
+msgid "%s %s%s"
 msgstr ""
 
-msgid "vaccination recall"
+#, python-format
+msgid "** Currently hospitalized: %s **"
 msgstr ""
 
 #, python-format
-msgid "vaccination recall (%s)"
+msgid "emergency: %s"
 msgstr ""
 
 #, python-format
-msgid ""
-"Existing vaccination:\n"
-"\n"
-"%s"
+msgid "in-praxis: %s"
 msgstr ""
 
-msgid ""
-"\n"
-"Complete vaccination history for this patient.\n"
+#, python-format
+msgid "care: %s%s@%s"
 msgstr ""
 
-msgid "Showing vaccinations."
+msgid "*** CONFIDENTIAL ***"
 msgstr ""
 
-msgid "Intended to protect from"
+msgid " (confidential !)"
 msgstr ""
 
-msgid "Print vaccinations or recalls."
+#, python-format
+msgid "extrnl: %s (%s@%s)"
 msgstr ""
 
-msgid "Recall"
+#, python-format
+msgid "aka: %(last)s, %(first)s%(nick)s"
 msgstr ""
 
-msgid "Add a recall for a vaccination"
+#, python-format
+msgid "job: %s (%s)"
 msgstr ""
 
-msgid "Vx schedules"
+#, python-format
+msgid "issued by: %s%s"
 msgstr ""
 
-msgid "Open a browser showing vaccination schedules."
+#, python-format
+msgid "Last modified: %s"
 msgstr ""
 
-msgid "prevention"
+#, python-format
+msgid ""
+"Activities:\n"
+"\n"
+"%s"
 msgstr ""
 
-msgid "Saving vaccination"
+msgid "Cloning name"
 msgstr ""
 
-msgid "Pick the diseases this vaccination was given against."
+msgid "Editing external ID"
 msgstr ""
 
-msgid "  IMMUNISATIONS  "
+msgid "Adding new translation"
 msgstr ""
 
-msgid "Indications"
+msgid "Editing translation"
 msgstr ""
 
-msgid "Active Schedules"
+msgid "Selecting language for translation"
 msgstr ""
 
-msgid "Missing Immunisations"
+msgid ""
+"Please select the language the translations for which you want to work on."
 msgstr ""
 
-msgid "  Alerts  "
+#, python-format
+msgid ""
+"Are you sure you want to delete the translation of:\n"
+"\n"
+"%s\n"
+"\n"
+"into [%s] as:\n"
+"\n"
+"%s\n"
+"\n"
+"?  (Note that you must know the database administrator password !)\n"
 msgstr ""
 
-msgid "ERROR: cannot retrieve active vaccination schedules"
+msgid "Deleting translation from database"
 msgstr ""
 
-msgid "no active vaccination schedules"
+msgid "deleting a translation"
 msgstr ""
 
-#, python-format
-msgid "%s for %s (%s shots): %s"
+msgid "Contributing translations"
 msgstr ""
 
-msgid "ERROR: cannot retrieve due/overdue vaccinations"
+msgid "Do you want to contribute your translations to the GNUmed project ?"
 msgstr ""
 
-#, python-format
-msgid "%.0d weeks left: shot %s for %s in %s, due %s (%s)"
+msgid ""
+"Unable to send mail. Cannot contribute translations to GNUmed community."
 msgstr ""
 
-#, python-format
-msgid "overdue %.0dyrs %.0dwks: shot %s for %s in schedule \"%s\" (%s)"
-msgstr ""
-
-#, python-format
-msgid "due now: booster for %s in schedule \"%s\" (%s)"
-msgstr ""
-
-#, python-format
-msgid "Latest: %s ago (%s %s %s %s%s)"
+msgid "Thank you for your contribution to the GNUmed community!"
 msgstr ""
 
-#, python-format
-msgid "%s %s %s %s (%s ago, %s)"
+msgid "Showing translatable database strings for all languages."
 msgstr ""
 
 #, python-format
-msgid "overdue %s: %s"
+msgid "Showing translatable database strings for target language [%s]."
 msgstr ""
 
-#, python-format
-msgid "due in %s%s"
+msgid "Contribute translations to GNUmed community by email."
 msgstr ""
 
 msgid ""
-"Do you really want to\n"
-"delete this inbox message ?"
-msgstr ""
-
-msgid "Deleting inbox message"
-msgstr ""
-
-msgid "Export area: 1 item"
+"Before creating a new person review the encounter details\n"
+"of the patient you just worked on:\n"
 msgstr ""
 
-#, python-format
-msgid "Export area: %s items"
+msgid "Edit the current encounter of the patient you are ABOUT TO LEAVE:"
 msgstr ""
 
-#, python-format
-msgid "%s %s more not shown %s"
+msgid "Adding new person"
 msgstr ""
 
-#, python-format
-msgid "Currently %s entries in waiting list"
+msgid "ID exists !"
 msgstr ""
 
 #, python-format
-msgid "first (in GMd): %s, %s"
+msgid "One \"%s, %s (%s)\" already exists !"
 msgstr ""
 
 #, python-format
-msgid "last: %s, %s"
+msgid "%s \"%s, %s (%s)\" already exist !"
 msgstr ""
 
-#, python-format
-msgid "Last %s:"
+msgid "Must enter lastname."
 msgstr ""
 
-msgid "Statistics cover period"
+msgid "Must enter first name."
 msgstr ""
 
-#, python-format
-msgid "EDC (!?!): %s"
+msgid "Must select gender."
 msgstr ""
 
 msgid ""
-"The Expected Date of Confinement is rather questionable.\n"
-"\n"
-"Please check patient age, patient gender, time until/since EDC."
+"To properly create an address, all the related fields must be filled in."
 msgstr ""
 
-#, python-format
-msgid "%s Vacc: %s"
+msgid "Required fields"
 msgstr ""
 
-#, python-format
-msgid "%s %s %s%s"
+msgid "This field must contain an item selected from the dropdown list."
 msgstr ""
 
-#, python-format
-msgid "%s %s%s"
+msgid "Saving address"
 msgstr ""
 
-#, python-format
-msgid "** Currently hospitalized: %s **"
+msgid ""
+"Cannot save this address.\n"
+"\n"
+"You will have to add it via the Demographics plugin.\n"
 msgstr ""
 
-#, python-format
-msgid "emergency: %s"
+msgid ""
+"Address not saved.\n"
+"\n"
+"You will have to add it via the Demographics plugin.\n"
 msgstr ""
 
-#, python-format
-msgid "in-praxis: %s"
+msgid "You need to actually set an editor."
 msgstr ""
 
 #, python-format
-msgid "care: %s%s@%s"
-msgstr ""
-
-msgid "*** CONFIDENTIAL ***"
-msgstr ""
-
-msgid " (confidential !)"
+msgid "The command [%s] is not found."
 msgstr ""
 
 #, python-format
-msgid "extrnl: %s (%s@%s)"
+msgid ""
+"Enter the shell command with which to start\n"
+"the image editor for visual progress notes.\n"
+"\n"
+"Any \"%(img)s\" included with the arguments\n"
+"will be replaced by the file name of the\n"
+"note template."
 msgstr ""
 
-#, python-format
-msgid "aka: %(last)s, %(first)s%(nick)s"
+msgid "Choose file to use as template for new visual progress note"
 msgstr ""
 
-#, python-format
-msgid "job: %s (%s)"
+msgid "Visual progress note source"
 msgstr ""
 
-#, python-format
-msgid "issued by: %s%s"
+msgid "From which source do you want to pick the image template ?"
 msgstr ""
 
-#, python-format
-msgid "Last modified: %s"
+msgid "Database"
 msgstr ""
 
-#, python-format
-msgid ""
-"Activities:\n"
-"\n"
-"%s"
+msgid "List of templates in the database."
 msgstr ""
 
-msgid "Cloning name"
+msgid "Files in the filesystem."
 msgstr ""
 
-msgid "Editing external ID"
+msgid "Device"
 msgstr ""
 
-msgid "Adding new translation"
+msgid "Image capture devices (scanners, cameras, etc)"
 msgstr ""
 
-msgid "Editing translation"
+#, python-format
+msgid "Cannot export visual progress note template for [%s]."
 msgstr ""
 
-msgid "Selecting language for translation"
+msgid "Cannot export visual progress note to file."
 msgstr ""
 
-msgid ""
-"Please select the language the translations for which you want to work on."
+msgid "Editor for visual progress note not configured."
 msgstr ""
 
 #, python-format
 msgid ""
-"Are you sure you want to delete the translation of:\n"
-"\n"
-"%s\n"
-"\n"
-"into [%s] as:\n"
+"There was a problem with running the editor\n"
+"for visual progress notes.\n"
 "\n"
-"%s\n"
+" [%s]\n"
 "\n"
-"?  (Note that you must know the database administrator password !)\n"
-msgstr ""
-
-msgid "Deleting translation from database"
-msgstr ""
-
-msgid "deleting a translation"
-msgstr ""
-
-msgid "Contributing translations"
-msgstr ""
-
-msgid "Do you want to contribute your translations to the GNUmed project ?"
-msgstr ""
-
-msgid ""
-"Unable to send mail. Cannot contribute translations to GNUmed community."
-msgstr ""
-
-msgid "Thank you for your contribution to the GNUmed community!"
 msgstr ""
 
-msgid "Showing translatable database strings for all languages."
+msgid "Editing visual progress note"
 msgstr ""
 
 #, python-format
-msgid "Showing translatable database strings for target language [%s]."
-msgstr ""
-
-msgid "Contribute translations to GNUmed community by email."
-msgstr ""
-
 msgid ""
-"Before creating a new person review the encounter details\n"
-"of the patient you just worked on:\n"
+"There was a problem reading the visual\n"
+"progress note from the file:\n"
+"\n"
+" [%s]\n"
+"\n"
 msgstr ""
 
-msgid "Edit the current encounter of the patient you are ABOUT TO LEAVE:"
+msgid "Saving visual progress note"
 msgstr ""
 
-msgid "Adding new person"
+msgid ""
+"You either created a visual progress note from a template\n"
+"in the database (rather than from a file on disk) or you\n"
+"edited an existing visual progress note.\n"
+"\n"
+"The template/original was not modified at all, however.\n"
+"\n"
+"Do you still want to save the unmodified image as a\n"
+"visual progress note into the EMR of the patient ?\n"
 msgstr ""
 
-msgid "ID exists !"
+msgid "visual progress notes"
 msgstr ""
 
 #, python-format
-msgid "One \"%s, %s (%s)\" already exists !"
+msgid " [part 1 of %s]"
 msgstr ""
 
 #, python-format
-msgid "%s \"%s, %s (%s)\" already exist !"
-msgstr ""
-
-msgid "Must enter lastname."
-msgstr ""
-
-msgid "Must enter first name."
-msgstr ""
-
-msgid "Must select gender."
-msgstr ""
-
-msgid ""
-"To properly create an address, all the related fields must be filled in."
-msgstr ""
-
-msgid "Required fields"
-msgstr ""
-
-msgid "This field must contain an item selected from the dropdown list."
-msgstr ""
-
-msgid "Saving address"
-msgstr ""
-
-msgid ""
-"Cannot save this address.\n"
-"\n"
-"You will have to add it via the Demographics plugin.\n"
-msgstr ""
-
-msgid ""
-"Address not saved.\n"
-"\n"
-"You will have to add it via the Demographics plugin.\n"
+msgid "Created: %s%s"
 msgstr ""
 
 msgid "You must select a value from the picklist or type an exact match."
@@ -9508,7 +9898,8 @@ msgstr ""
 
 #, python-format
 msgid ""
-"%(street)s %(number)s, %(postcode)s %(urb)s, %(l10n_state)s, %(l10n_country)s"
+"%(street)s %(number)s, %(postcode)s %(urb)s, %(l10n_region)s, "
+"%(l10n_country)s"
 msgstr ""
 
 #, python-format
@@ -10095,7 +10486,7 @@ msgstr ""
 msgid ""
 "Cannot save address.\n"
 "\n"
-"Does the state [%s]\n"
+"Does the region [%s]\n"
 "exist in country [%s] ?"
 msgstr ""
 
@@ -10518,7 +10909,7 @@ msgstr ""
 msgid "Reminders for the current patient"
 msgstr ""
 
-msgid "Sent"
+msgid "Generated"
 msgstr ""
 
 msgid "Category - Type"
@@ -10566,9 +10957,6 @@ msgid ""
 "Data: %s"
 msgstr ""
 
-msgid "Inbox Message Actions:"
-msgstr ""
-
 msgid "Activate patient"
 msgstr ""
 
@@ -11256,7 +11644,7 @@ msgid ""
 msgstr ""
 
 #, python-format
-msgid "Select branch (of praxis [%s]) which you are logging in from.\n"
+msgid "Select the branch of praxis [%s] which you are logging in from.\n"
 msgstr ""
 
 msgid "Praxis branch selection ..."
@@ -11563,6 +11951,13 @@ msgstr ""
 msgid "List of addresses related to this person."
 msgstr ""
 
+#, fuzzy
+msgid "Map"
+msgstr "Mar"
+
+msgid "Show selected address on map"
+msgstr ""
+
 msgid "Adding new address"
 msgstr ""
 
@@ -11743,48 +12138,125 @@ msgstr ""
 msgid "generic multi choice dialog"
 msgstr ""
 
-msgid "Search in list"
+msgid "Deleting list items"
 msgstr ""
 
-msgid "Monty the Serpent && the FSF Present"
+#, python-format
+msgid ""
+"You have selected %s list items.\n"
+"\n"
+"Really delete all %s items ?"
 msgstr ""
 
-msgid "Free eMedicine"
+msgid ""
+"Select the items you want to work on.\n"
+"\n"
+"A discontinuous selection may depend on your holding down a platform-"
+"dependent modifier key (<CTRL>, <ALT>, etc) or key combination (eg. <CTRL-"
+"SHIFT> or <CTRL-ALT>) while clicking."
 msgstr ""
 
-#, python-format
-msgid "Version %s%s brought to you by"
+msgid "List Item Actions:"
 msgstr ""
 
-msgid "debug"
+msgid "Add (<INS>)"
 msgstr ""
 
-msgid "Please visit http://www.gnumed.org"
+msgid "Delete (<DEL>)"
+msgstr ""
+
+msgid "Find (<CTRL-F>)"
 msgstr ""
 
 #, python-format
-msgid ""
-"The following people kindly contributed to GNUmed.\n"
-"Please write to <gnumed-devel at gnu.org> to have your\n"
-"contribution duly recognized in this list or to have\n"
-"your name removed from it for, say, privacy reasons.\n"
-"\n"
-"Note that this list is sorted alphabetically by last\n"
-"name, first name. If the only identifier is an email\n"
-"address it is sorted under the first character of\n"
-"the user name.\n"
-"%s"
+msgid "Find next [%s] (<CTRL-N>)"
 msgstr ""
 
-msgid "Started a new encounter for the active patient."
+msgid "Row tooltip"
 msgstr ""
 
-msgid ""
-"\n"
-"A new encounter was started for the active patient.\n"
+msgid "Row data (formatted as text)"
 msgstr ""
 
-msgid "Start of new encounter"
+msgid "Row content (as one line)"
+msgstr ""
+
+msgid "Row content (one line per column)"
+msgstr ""
+
+#, python-format
+msgid "Column &%s: \"%s\" [#%s]"
+msgstr ""
+
+#, python-format
+msgid "Column &%s: %s"
+msgstr ""
+
+msgid "&Copy to clipboard..."
+msgstr ""
+
+msgid "Append (&+) to clipboard..."
+msgstr ""
+
+#, python-format
+msgid ""
+"%s list items are selected.\n"
+"\n"
+"Really delete all %s items ?"
+msgstr ""
+
+msgid "Enter the search term:"
+msgstr ""
+
+msgid "List search"
+msgstr ""
+
+#, python-format
+msgid ""
+"Current search term: [[%s]]\n"
+"\n"
+"%s"
+msgstr ""
+
+msgid "Monty the Serpent && the FSF Present"
+msgstr ""
+
+msgid "Free eMedicine"
+msgstr ""
+
+#, python-format
+msgid "Version %s%s brought to you by"
+msgstr ""
+
+msgid "debug"
+msgstr ""
+
+msgid "Please visit http://www.gnumed.org"
+msgstr ""
+
+#, python-format
+msgid ""
+"The following people kindly contributed to GNUmed.\n"
+"Please write to <gnumed-devel at gnu.org> to have your\n"
+"contribution duly recognized in this list or to have\n"
+"your name removed from it for, say, privacy reasons.\n"
+"\n"
+"Note that this list is sorted alphabetically by last\n"
+"name, first name. If the only identifier is an email\n"
+"address it is sorted under the first character of\n"
+"the user name.\n"
+"%s"
+msgstr ""
+
+msgid "Started a new encounter for the active patient."
+msgstr ""
+
+msgid ""
+"\n"
+"A new encounter was started for the active patient.\n"
+msgstr ""
+
+msgid "Start of new encounter"
 msgstr ""
 
 msgid "only documents added"
@@ -11893,6 +12365,9 @@ msgstr ""
 msgid "Unknown: ?"
 msgstr ""
 
+msgid "The text has been copied into the clipboard."
+msgstr ""
+
 msgid "file2clipboard"
 msgstr ""
 
@@ -11900,6 +12375,40 @@ msgstr ""
 msgid "The file [%s] has been copied into the clipboard."
 msgstr ""
 
+msgid "programmer forgot to specify error message"
+msgstr ""
+
+msgid ""
+"\n"
+"\n"
+"Please consult the error log for all the gory details !"
+msgstr ""
+
+msgid "generic error message"
+msgstr "genel hata mesajı"
+
+msgid "programmer forgot to specify info message"
+msgstr ""
+
+msgid "generic info message"
+msgstr "Genel bilgi mesajı"
+
+msgid "programmer forgot to specify warning"
+msgstr ""
+
+msgid "generic warning message"
+msgstr "Genel uyarı mesajı"
+
+msgid "Editing EDC"
+msgstr ""
+
+#, python-format
+msgid ""
+"Really delete the EDC documented previously ?\n"
+"\n"
+" EDC: %s"
+msgstr ""
+
 #, python-format
 msgid ""
 "Algorithm: %s\n"
@@ -12007,15 +12516,15 @@ msgstr ""
 msgid "Firstname"
 msgstr ""
 
-msgid "Nickname"
-msgstr ""
-
 msgid "DOB"
 msgstr ""
 
 msgid "last visit"
 msgstr ""
 
+msgid "Nickname / Comment"
+msgstr ""
+
 msgid "found via"
 msgstr ""
 
@@ -12193,425 +12702,180 @@ msgstr ""
 msgid "In case of emergency contact:"
 msgstr ""
 
-msgid ""
-"\n"
-"Please select the default drug data source from the list below.\n"
-"\n"
-"Note that to actually use it you need to have the database installed, too."
+msgid "The preparation (form) of the substance or brand."
 msgstr ""
 
-msgid "Drug data source"
+msgid "A substance with optional strength or a brand."
 msgstr ""
 
-msgid "Configuring default drug data source"
+msgid "The medical aim for consuming this substance."
 msgstr ""
 
-msgid "No default drug database configured."
+msgid "not tolerated:"
 msgstr ""
 
-msgid "There is no default drug database configured."
+msgid "discontinued due to allergy or intolerance"
 msgstr ""
 
-msgid "Jumping to drug database"
+msgid "Documented an allergy"
 msgstr ""
 
 #, python-format
-msgid "Cannot call IFAP via [%s]."
+msgid ""
+"An allergy was documented against the substance:\n"
+"\n"
+"  [%s]\n"
+"\n"
+"This substance was taken with the multi-component brand:\n"
+"\n"
+"  [%s (%s)]\n"
+"\n"
+"Note that ALL components of this brand were discontinued."
 msgstr ""
 
-#, python-format
-msgid "Cannot create IFAP <-> GNUmed transfer file [%s]."
+msgid "disapproved"
 msgstr ""
 
-msgid "Current medication"
+msgid "Substances consumed by the patient:"
 msgstr ""
 
-msgid ""
-"\n"
-"The ATC codes as known to GNUmed.\n"
+msgid "Showing consumable substances."
 msgstr ""
 
-msgid "Showing ATC codes."
+msgid "Application"
 msgstr ""
 
-msgid "Choose an ATC import config file"
+msgid "never"
 msgstr ""
 
-msgid "config files"
+#, python-format
+msgid "%s, last confirmed %s\n"
 msgstr ""
 
-msgid "importing ATC reference data"
+#, python-format
+msgid "Comment (%s): %%s\n"
 msgstr ""
 
-msgid "Successfully imported ATC reference data."
+msgid "reaction not recorded"
 msgstr ""
 
-msgid "Importing ATC reference data failed."
+msgid "GFR: unknown"
 msgstr ""
 
-msgid "Select an ATC (Anatomical-Therapeutic-Chemical) code."
+msgid "GFR reported by path lab"
 msgstr ""
 
-msgid "Cannot delete this substance. It is in use."
+#, fuzzy
+msgid "<no components>"
+msgstr "Yardım içeriği"
+
+msgid "Adding substance intake entry"
 msgstr ""
 
+#, python-format
 msgid ""
+"The patient is already taking\n"
 "\n"
-"These are the consumable substances registered with GNUmed.\n"
-msgstr ""
-
-msgid "Showing consumable substances."
+" %s\n"
+"\n"
+"You will want to adjust the schedule\n"
+"rather than document the intake twice."
 msgstr ""
 
-msgid "Import"
+msgid "Input incomplete/invalid for saving as substance intake."
 msgstr ""
 
-msgid "Import consumable substances from a drug database."
+#, python-format
+msgid "Discontinued (%s) in the future (now: %s)!"
 msgstr ""
 
-msgid "Cannot edit this substance. It is in use."
+#, python-format
+msgid "Discontinued (%s) before started (%s) !"
 msgstr ""
 
-msgid "Adding new consumable substance"
+msgid "Cannot add duplicate of (maybe inactive) substance intake."
 msgstr ""
 
-msgid "Editing consumable substance"
+#, python-format
+msgid ""
+"\n"
+"[%s]\n"
+"\n"
+"It may be prudent to edit (before deletion) the details\n"
+"of this substance intake entry so as to leave behind\n"
+"some indication of why it was deleted.\n"
 msgstr ""
 
-msgid "Cannot save consumable substance. Missing essential input."
+msgid "Deleting medication / substance intake"
 msgstr ""
 
-#, python-format
-msgid "Cannot save consumable substance. %s"
+msgid "Allow editing of substance intake entry before deletion."
 msgstr ""
 
-msgid "Cannot remove this component from the drug. It is in use."
+msgid "Delete immediately without editing first."
 msgstr ""
 
-msgid ""
-"\n"
-"These are the components in the drug brands known to GNUmed.\n"
+msgid "&Cancel"
 msgstr ""
 
-msgid "Showing drug brand components."
+msgid "Abort. Do not delete or edit substance intake entry."
 msgstr ""
 
-msgid "Adding new drug component"
+msgid "Now delete substance intake entry ?"
 msgstr ""
 
-msgid "Editing drug component"
+msgid "Adding medication/non-medication substance intake"
 msgstr ""
 
-msgid "Cannot edit drug component. It is in use."
+msgid "Editing medication/non-medication substance intake"
 msgstr ""
 
-msgid "Cannot save drug component. Invalid or missing essential input."
+msgid "Document an allergy against this substance."
 msgstr ""
 
-msgid "A drug component with optional strength."
+msgid "No medication list template configured."
 msgstr ""
 
-msgid "The preparation (form) of the substance or brand."
+msgid "There is no medication list template configured."
 msgstr ""
 
-msgid "The substance with optional strength."
+msgid "Problem loading medication list template."
 msgstr ""
 
-msgid "Managing components of a drug"
+#, python-format
+msgid "Cannot load medication list template [%s - %s]"
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot manage the components of the branded drug product\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is currently taken by patients.\n"
+msgid "generated medication list document"
 msgstr ""
 
-msgid "Pick the substances which are components of this drug."
+msgid "Select the default prescription template:"
 msgstr ""
 
-msgid "Components of drug"
+msgid "No prescription template configured."
 msgstr ""
 
-#, python-format
-msgid ""
-"Adjust the components of \"%s\"\n"
-"\n"
-"The drug must contain at least one component. Any given\n"
-"substance can only be included once per drug."
+msgid "There is no prescription template configured."
 msgstr ""
 
-msgid "Managing components of a drug ..."
+msgid "Printing prescription"
 msgstr ""
 
-msgid "not in use"
+msgid "Problem loading prescription template."
 msgstr ""
 
 #, python-format
-msgid "ATC: %s\n"
+msgid "Cannot load prescription template [%s - %s]"
 msgstr ""
 
-msgid "Editing medication"
+msgid "generated prescription"
 msgstr ""
 
-#, python-format
 msgid ""
-"Cannot edit the medication\n"
-"\n"
-" \"%s\" (%s)\n"
+"These brands have been prescribed but are not listed\n"
+"in the current medication list of this patient.\n"
 "\n"
-"because it is a vaccine. Please edit it\n"
-"from the vaccine management section !\n"
-msgstr ""
-
-msgid "Deleting medication"
-msgstr ""
-
-#, python-format
-msgid ""
-"Cannot delete the medication\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is a vaccine. Please delete it\n"
-"from the vaccine management section !\n"
-msgstr ""
-
-msgid ""
-"\n"
-"These are the drug brands known to GNUmed.\n"
-msgstr ""
-
-msgid "Showing branded drugs."
-msgstr ""
-
-msgid "Import substances and brands from a drug database."
-msgstr ""
-
-msgid "Editing drug"
-msgstr ""
-
-#, python-format
-msgid ""
-"Cannot edit the branded drug product\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is currently taken by patients.\n"
-msgstr ""
-
-msgid "Adding new drug brand"
-msgstr ""
-
-msgid "Editing drug brand"
-msgstr ""
-
-msgid "Manage consumable substances"
-msgstr ""
-
-msgid "Cannot edit drug brand. It is in use."
-msgstr ""
-
-msgid "Checking brand data"
-msgstr ""
-
-#, python-format
-msgid ""
-"The brand information you entered:\n"
-"\n"
-" [%s %s]\n"
-"\n"
-"already exists as a drug product."
-msgstr ""
-
-msgid ""
-"You have not selected any substances\n"
-"as drug components.\n"
-"\n"
-"Without components you will not be able to\n"
-"use this drug for documenting patient care.\n"
-"\n"
-"Are you sure you want to save\n"
-"it without components ?"
-msgstr ""
-
-msgid "Cannot save branded drug. Invalid or missing essential input."
-msgstr ""
-
-msgid ""
-"The brand name of the drug.\n"
-"\n"
-"Note: a brand name will need to be linked to\n"
-"one or more components before it can be used,\n"
-"except in the case of fake (generic) vaccines."
-msgstr ""
-
-msgid "The medical aim for consuming this substance."
-msgstr ""
-
-msgid "not tolerated:"
-msgstr ""
-
-msgid "discontinued due to allergy or intolerance"
-msgstr ""
-
-msgid "Documented an allergy"
-msgstr ""
-
-#, python-format
-msgid ""
-"An allergy was documented against the substance:\n"
-"\n"
-"  [%s]\n"
-"\n"
-"This substance was taken with the multi-component brand:\n"
-"\n"
-"  [%s (%s)]\n"
-"\n"
-"Note that ALL components of this brand were discontinued."
-msgstr ""
-
-msgid "disapproved"
-msgstr ""
-
-msgid "Substances consumed by the patient:"
-msgstr ""
-
-msgid "Intake"
-msgstr ""
-
-msgid "Application"
-msgstr ""
-
-msgid "never"
-msgstr ""
-
-#, python-format
-msgid "%s, last confirmed %s\n"
-msgstr ""
-
-#, python-format
-msgid "Comment (%s): %%s\n"
-msgstr ""
-
-msgid "reaction not recorded"
-msgstr ""
-
-msgid "GFR: unknown"
-msgstr ""
-
-msgid "GFR reported by path lab"
-msgstr ""
-
-#, python-format
-msgid ""
-"The patient is already taking\n"
-"\n"
-" %s\n"
-"\n"
-"You will want to adjust the schedule\n"
-"rather than document the intake twice."
-msgstr ""
-
-msgid "Adding substance intake entry"
-msgstr ""
-
-msgid "Input incomplete/invalid for saving as substance intake."
-msgstr ""
-
-#, python-format
-msgid "Discontinued (%s) in the future (now: %s)!"
-msgstr ""
-
-#, python-format
-msgid "Discontinued (%s) before started (%s) !"
-msgstr ""
-
-msgid "Cannot add duplicate of (maybe inactive) substance intake."
-msgstr ""
-
-#, python-format
-msgid ""
-"\n"
-"[%s]\n"
-"\n"
-"It may be prudent to edit (before deletion) the details\n"
-"of this substance intake entry so as to leave behind\n"
-"some indication of why it was deleted.\n"
-msgstr ""
-
-msgid "Deleting medication / substance intake"
-msgstr ""
-
-msgid "Allow editing of substance intake entry before deletion."
-msgstr ""
-
-msgid "Delete immediately without editing first."
-msgstr ""
-
-msgid "&Cancel"
-msgstr ""
-
-msgid "Abort. Do not delete or edit substance intake entry."
-msgstr ""
-
-msgid "Now delete substance intake entry ?"
-msgstr ""
-
-msgid "Adding medication/non-medication substance intake"
-msgstr ""
-
-msgid "Editing medication/non-medication substance intake"
-msgstr ""
-
-msgid "Document an allergy against this substance."
-msgstr ""
-
-msgid "No medication list template configured."
-msgstr ""
-
-msgid "There is no medication list template configured."
-msgstr ""
-
-msgid "Problem loading medication list template."
-msgstr ""
-
-#, python-format
-msgid "Cannot load medication list template [%s - %s]"
-msgstr ""
-
-msgid "generated medication list document"
-msgstr ""
-
-msgid "Select the default prescription template:"
-msgstr ""
-
-msgid "No prescription template configured."
-msgstr ""
-
-msgid "There is no prescription template configured."
-msgstr ""
-
-msgid "Printing prescription"
-msgstr ""
-
-msgid "Problem loading prescription template."
-msgstr ""
-
-#, python-format
-msgid "Cannot load prescription template [%s - %s]"
-msgstr ""
-
-msgid "generated prescription"
-msgstr ""
-
-msgid ""
-"These brands have been prescribed but are not listed\n"
-"in the current medication list of this patient.\n"
-"\n"
-"Please select those you want added to the medication list."
+"Please select those you want added to the medication list."
 msgstr ""
 
 msgid "Newly prescribed drugs"
@@ -12620,8 +12884,9 @@ msgstr ""
 msgid "Add to medication list"
 msgstr ""
 
-msgid "Duration / Until"
-msgstr ""
+#, fuzzy
+msgid "Timeframe"
+msgstr "Zaman Çizelgesi"
 
 #, python-format
 msgid "%s <fake>"
@@ -12661,10 +12926,6 @@ msgid "eGFR:"
 msgstr ""
 
 #, python-format
-msgid "%s%s%s (%s ago)"
-msgstr ""
-
-#, python-format
 msgid "eGFR: %.1f (%s)"
 msgstr ""
 
@@ -12826,15 +13087,22 @@ msgid ""
 "\n"
 " [%s]\n"
 "\n"
-"is not empty. Do you want to use it for saving the\n"
-"export area documents into, nevertheless ?\n"
+"already contains files. Do you still want to save the\n"
+"selected export area documents into that directory ?\n"
 "\n"
-"(this can be useful for including external documents)\n"
+"(this is useful for including the external documents\n"
+" already stored in or below this directory)\n"
 "\n"
 "[NO] will create a subdirectory for you and use that."
 msgstr ""
 
-#, python-format
+msgid ""
+"Create descriptive metadata files\n"
+"and save them alongside the\n"
+"selected export area documents ?"
+msgstr ""
+
+#, python-format
 msgid ""
 "Saved to [%s]:\n"
 " - %s"
@@ -13035,9 +13303,6 @@ msgstr ""
 msgid "This praxis"
 msgstr ""
 
-msgid "Hospital stay"
-msgstr ""
-
 msgid "Bill receiver"
 msgstr ""
 
@@ -13073,10 +13338,52 @@ msgstr ""
 msgid "Select the episode under which to file the document ..."
 msgstr ""
 
+msgid "Cannot create new document."
+msgstr ""
+
+msgid "saving document"
+msgstr ""
+
 #, python-format
 msgid "Imported new document from %s."
 msgstr ""
 
+msgid "Successfully saved new document."
+msgstr ""
+
+msgid "Successfully saved the new document."
+msgstr ""
+
+#, python-format
+msgid ""
+"The reference ID for the new document is:\n"
+"\n"
+" <%s>\n"
+"\n"
+"You probably want to write it down on the\n"
+"original documents.\n"
+"\n"
+"If you don't care about the ID you can switch\n"
+"off this message in the GNUmed configuration.\n"
+msgstr ""
+
+msgid "Saving document"
+msgstr ""
+
+#, python-format
+msgid ""
+"Successfully imported files as document.\n"
+"\n"
+"Do you want to delete imported files from the filesystem ?\n"
+"\n"
+" %s\n"
+"\n"
+"Note that temporary files will be deleted anyway."
+msgstr ""
+
+msgid "Removing files"
+msgstr ""
+
 msgid "Enter a comment on the document."
 msgstr ""
 
@@ -13194,14 +13501,16 @@ msgstr ""
 msgid "Acquiring images"
 msgstr ""
 
-msgid "other documents"
+msgid "directory dropped on client"
 msgstr ""
 
-#, python-format
-msgid "part %s: %s"
+msgid "file dropped on client"
 msgstr ""
 
-msgid "saving document"
+msgid "other documents"
+msgstr ""
+
+msgid "path"
 msgstr ""
 
 msgid "No parts to save. Really save an empty document as a reference ?"
@@ -13246,62 +13555,34 @@ msgstr ""
 msgid "acquiring page"
 msgstr ""
 
-msgid "Choose a file"
-msgstr ""
-
-msgid "all files (Win)"
-msgstr ""
-
-msgid "You must select a part before you can view it."
+msgid "captured by imaging device"
 msgstr ""
 
-msgid "displaying part"
-msgstr ""
-
-#, python-format
-msgid ""
-"Cannot display document part:\n"
-"%s"
+msgid "Choose a file"
 msgstr ""
 
-msgid "You must select a part before you can delete it."
+msgid "all files (Win)"
 msgstr ""
 
-msgid "deleting part"
+msgid "picked from storage media"
 msgstr ""
 
-#, python-format
-msgid ""
-"The part has successfully been removed from the document.\n"
-"\n"
-"Do you also want to permanently delete the file\n"
-"\n"
-" [%s]\n"
-"\n"
-"from which this document part was loaded ?\n"
-"\n"
-"If it is a temporary file for a page you just scanned\n"
-"this makes a lot of sense. In other cases you may not\n"
-"want to lose the file.\n"
-"\n"
-"Pressing [YES] will permanently remove the file\n"
-"from your computer.\n"
+msgid "pasted from clipboard"
 msgstr ""
 
-msgid "Removing document part"
+msgid "No part selected for viewing."
 msgstr ""
 
 #, python-format
 msgid ""
-"Cannot delete part in file [%s].\n"
-"\n"
-"You may not have write access to it."
+"Cannot display document part:\n"
+"%s"
 msgstr ""
 
-msgid "Cannot create new document."
+msgid "displaying part"
 msgstr ""
 
-msgid "Cannot update document metadata."
+msgid "No part selected for removal."
 msgstr ""
 
 msgid "Cannot add document description."
@@ -13310,26 +13591,12 @@ msgstr ""
 msgid "Error setting \"reviewed\" status of new document."
 msgstr ""
 
-msgid "Successfully saved the new document."
-msgstr ""
-
 #, python-format
 msgid ""
-"The reference ID for the new document is:\n"
-"\n"
-" <%s>\n"
+"Source: %s\n"
+"File: %s\n"
 "\n"
-"You probably want to write it down on the\n"
-"original documents.\n"
-"\n"
-"If you don't care about the ID you can switch\n"
-"off this message in the GNUmed configuration."
-msgstr ""
-
-msgid "Saving document"
-msgstr ""
-
-msgid "Successfully saved new document."
+"%s"
 msgstr ""
 
 msgid "Document part does not seem to exist in database !"
@@ -13344,9 +13611,6 @@ msgstr ""
 msgid "Showing documents."
 msgstr ""
 
-msgid "Generated"
-msgstr ""
-
 msgid "Ref #"
 msgstr ""
 
@@ -13598,6 +13862,144 @@ msgstr ""
 msgid "Deleting document"
 msgstr ""
 
+msgid "Study date"
+msgstr ""
+
+#, fuzzy
+msgid "Study time"
+msgstr "Başlangıç zamanı "
+
+msgid "Method"
+msgstr ""
+
+msgid "Body part"
+msgstr ""
+
+#, fuzzy
+msgid "Time"
+msgstr "Zaman Çizelgesi"
+
+msgid "Cannot connect without port (try 8042)."
+msgstr ""
+
+#, python-format
+msgid "Connect to [%s] @ port %s as \"%s\"."
+msgstr ""
+
+msgid "Cannot connect to PACS."
+msgstr ""
+
+#, python-format
+msgid "PACS: Orthanc \"%s\" (AET \"%s\", Version %s, DB v%s)"
+msgstr ""
+
+#, python-format
+msgid "GNUmed patient: %s (generic PACS ID)"
+msgstr ""
+
+#, python-format
+msgid "GNUmed patient: \"%(value)s\" @ [%(issuer)s] (stored PACS ID)"
+msgstr ""
+
+msgid "PACS: no patients with matching IDs found"
+msgstr ""
+
+msgid ""
+"PACS: more than one patient with matching IDs found, carefully check studies"
+msgstr ""
+
+#, python-format
+msgid "%s series"
+msgstr ""
+
+#, python-format
+msgid "%%s (%s series)"
+msgstr ""
+
+msgid "no studies"
+msgstr ""
+
+#, python-format
+msgid "%s studies"
+msgstr ""
+
+msgid "Exporting DICOM studies"
+msgstr ""
+
+msgid "Unable to export selected studies."
+msgstr ""
+
+#, python-format
+msgid ""
+"The DICOM studies are %s in compressed size.\n"
+"\n"
+"Really copy to export area ?"
+msgstr ""
+
+#, python-format
+msgid "DICOM studies of [%s] from Orthanc PACS \"%s\" (AET \"%s\")"
+msgstr ""
+
+msgid "Select the directory into which to save the DICOM studies."
+msgstr ""
+
+msgid "Saving DICOM studies"
+msgstr ""
+
+msgid "Unable to save selected studies."
+msgstr ""
+
+msgid "Unable to export studies."
+msgstr ""
+
+#, python-format
+msgid "All DICOM studies of [%s] from Orthanc PACS \"%s\" (AET \"%s\")"
+msgstr ""
+
+#, python-format
+msgid "%s%s images"
+msgstr ""
+
+msgid "Select the directory from which to recursively upload DICOM files."
+msgstr ""
+
+msgid "Delete the uploaded DICOM files now ?"
+msgstr ""
+
+msgid ""
+"Some files have not been uploaded.\n"
+"\n"
+"Do you want to delete those DICOM files which have been sent to the PACS "
+"successfully ?"
+msgstr ""
+
+msgid "Uploading DICOM files"
+msgstr ""
+
+msgid "Editing Orthanc content"
+msgstr ""
+
+msgid "Patient ID"
+msgstr ""
+
+msgid "Birth date"
+msgstr ""
+
+msgid "Orthanc"
+msgstr ""
+
+msgid "Modifying patient ID"
+msgstr ""
+
+#, python-format
+msgid ""
+"Really modify %s patient(s) to have the new patient ID\n"
+"\n"
+" [%s]\n"
+"\n"
+"stored in the Orthanc DICOM server ?"
+msgstr ""
+
 #, python-format
 msgid "You are logged in as %s%s.%s (%s). DB account <%s>."
 msgstr ""
@@ -13656,6 +14058,12 @@ msgstr ""
 msgid "Select the measurements panel to show in the medications plugin."
 msgstr ""
 
+msgid "General measurements"
+msgstr ""
+
+msgid "Select the measurements panel to show in the top pane."
+msgstr ""
+
 msgid "Review dialog"
 msgstr ""
 
@@ -13746,6 +14154,12 @@ msgstr ""
 msgid "Configure auto-opening editors for recent problems."
 msgstr ""
 
+msgid "SOAP fields"
+msgstr ""
+
+msgid "Configure SOAP editor - individual SOAP fields vs text editor like"
+msgstr ""
+
 msgid "Progress notes handling ..."
 msgstr ""
 
@@ -13767,6 +14181,9 @@ msgstr ""
 msgid "URL for measurements encyclopedia."
 msgstr ""
 
+msgid "Drug data source"
+msgstr ""
+
 msgid "Select the drug data source."
 msgstr ""
 
@@ -14130,6 +14547,12 @@ msgstr ""
 msgid "Manage dynamic hints suppressed in this patient."
 msgstr ""
 
+msgid "Substance abuse"
+msgstr ""
+
+msgid "Manage substance abuse documentation of this patient."
+msgstr ""
+
 msgid "&Add / Edit ..."
 msgstr ""
 
@@ -14151,26 +14574,49 @@ msgstr ""
 msgid "Show a high-level statistic summary of the EMR."
 msgstr ""
 
-msgid "Text document"
+msgid "Journal (encounters) to file"
 msgstr ""
 
-msgid "Export the EMR of the active patient into a text file"
+msgid ""
+"Save the EMR of the active patient as a chronological journal into a text "
+"file"
 msgstr ""
 
-msgid "Journal"
+msgid "Journal (encounters) to export area"
 msgstr ""
 
 msgid ""
-"Export the EMR of the active patient as a chronological journal into a text "
-"file"
+"Copy EMR of the active patient as a chronological journal into export area"
+msgstr ""
+
+msgid "Journal (mod time) to file"
+msgstr ""
+
+msgid ""
+"Save the EMR of the active patient as journal by last modification time into "
+"a text file"
+msgstr ""
+
+msgid "Journal (mod time) to export area"
+msgstr ""
+
+msgid ""
+"Copy EMR of the active patient as journal by last modification time into "
+"export area"
+msgstr ""
+
+msgid "Text document"
+msgstr ""
+
+msgid "Save the EMR of the active patient into a text file"
 msgstr ""
 
 msgid "MEDISTAR import format"
 msgstr ""
 
 msgid ""
-"GNUmed -> MEDISTAR. Export progress notes of active patient's active "
-"encounter into a text file."
+"GNUmed -> MEDISTAR. Save progress notes of active patient's active encounter "
+"into a text file."
 msgstr ""
 
 msgid "Export as ..."
@@ -14339,19 +14785,40 @@ msgstr ""
 msgid "Show log file"
 msgstr ""
 
-msgid "Show the log file in text viewer."
+msgid "Show log file in text viewer."
 msgstr ""
 
 msgid "Backup log file"
 msgstr ""
 
-msgid "Backup the content of the log to another file."
+msgid "Backup content of the log to another file."
 msgstr ""
 
 msgid "Email log file"
 msgstr ""
 
-msgid "Send the log file to the authors for help."
+msgid "Send log file to the authors for help."
+msgstr ""
+
+msgid "Browse tmp dir"
+msgstr ""
+
+#, python-format
+msgid "Browse temporary directory [%s]."
+msgstr ""
+
+msgid "Browse work dir"
+msgstr ""
+
+#, python-format
+msgid "Browse user working directory [%s]."
+msgstr ""
+
+msgid "Browse internal work dir"
+msgstr ""
+
+#, python-format
+msgid "Browse internal working directory [%s]."
 msgstr ""
 
 msgid "Bug tracker"
@@ -14694,6 +15161,20 @@ msgid "No, only auto-open one editor for a new, unassociated problem."
 msgstr ""
 
 msgid ""
+"When editing progress notes, do you want GNUmed to\n"
+"show individual fields for each of the SOAP categories\n"
+"or do you want to use a text-editor like field for\n"
+"all SOAP categories which can then be set per line\n"
+"of input ?"
+msgstr ""
+
+msgid "Yes, show a dedicated field per SOAP category."
+msgstr ""
+
+msgid "No, use one field for all SOAP categories."
+msgstr ""
+
+msgid ""
 "When a patient is activated GNUmed can\n"
 "be told to switch to a specific plugin.\n"
 "\n"
@@ -14969,527 +15450,930 @@ msgstr ""
 msgid "Vaccination targets (conditions known to be preventable by vaccination)"
 msgstr ""
 
-msgid "Vaccines"
+msgid "Vaccines"
+msgstr ""
+
+msgid "Workplace profiles (which plugins to load)"
+msgstr ""
+
+msgid "Consumable substances"
+msgstr ""
+
+msgid "Billable items"
+msgstr ""
+
+msgid "Reference data sources"
+msgstr ""
+
+msgid "Test/measurement panels/profiles"
+msgstr ""
+
+msgid "Master data management"
+msgstr ""
+
+msgid "Select the list you want to manage:"
+msgstr ""
+
+msgid "No DICOM viewer found."
+msgstr ""
+
+msgid "risk assessment"
+msgstr ""
+
+msgid "cardiovascular risk assessment"
+msgstr ""
+
+#, python-format
+msgid "[arriba] XML result not found in [%s]"
+msgstr ""
+
+msgid "ACS risk assessment calculator not configured."
+msgstr ""
+
+#, python-format
+msgid "Cannot run [%s] !"
+msgstr ""
+
+#, python-format
+msgid "There was a problem accessing the [arriba] result in [%s] !"
+msgstr ""
+
+msgid "[-9999]: <access violation test error>"
+msgstr ""
+
+msgid ""
+"This is a deliberate AccessDenied exception thrown to test the handling of "
+"access violations by means of a decorator."
+msgstr ""
+
+msgid "testing access check for non-existant <admin> role"
+msgstr ""
+
+msgid ""
+"This is a deliberate AccessDenied exception. You should not see this message "
+"because the role is checked in a decorator."
+msgstr ""
+
+msgid "pgAdmin III not found."
+msgstr ""
+
+msgid "Error reloading hook script."
+msgstr ""
+
+msgid "Save current log as..."
+msgstr ""
+
+msgid "log files"
+msgstr ""
+
+#, python-format
+msgid "Log file backed up as [%s]."
+msgstr ""
+
+msgid "Cannot start new encounter. No active patient."
+msgstr ""
+
+msgid "Cannot add health issue. No active patient."
+msgstr ""
+
+msgid "Cannot add episode. No active patient."
+msgstr ""
+
+msgid "Cannot add medication. No active patient."
+msgstr ""
+
+msgid "Cannot add allergy. No active patient."
+msgstr ""
+
+msgid "Cannot manage performed procedures. No active patient."
+msgstr ""
+
+msgid "Cannot manage hospitalizations. No active patient."
+msgstr ""
+
+msgid "Cannot manage external care. No active patient."
+msgstr ""
+
+msgid "Cannot edit occupation. No active patient."
+msgstr ""
+
+msgid "manage vaccinations"
+msgstr ""
+
+msgid "Cannot add vaccinations. No active patient."
+msgstr ""
+
+msgid "manage family history"
+msgstr ""
+
+msgid "Cannot manage family history. No active patient."
+msgstr ""
+
+msgid "Cannot manage measurements. No active patient."
+msgstr ""
+
+msgid "calculate EDC"
+msgstr ""
+
+msgid "manage suppressed hints"
+msgstr ""
+
+msgid "Cannot manage suppressed hints. No active patient."
+msgstr ""
+
+msgid "Cannot manage smoking status. No active patient."
+msgstr ""
+
+msgid "Cannot show EMR summary. No active patient."
+msgstr ""
+
+msgid "EMR Summary"
+msgstr ""
+
+msgid "Cannot export EMR journal by last modification time. No active patient."
+msgstr ""
+
+msgid "journal_by_last_mod_time"
+msgstr ""
+
+msgid "Save patient's EMR journal as..."
+msgstr ""
+
+msgid "Error exporting patient EMR as journal by last modification time."
+msgstr ""
+
+msgid "EMR journal export"
+msgstr ""
+
+#, python-format
+msgid ""
+"Successfully exported EMR as journal by last modification time into file "
+"[%s]."
+msgstr ""
+
+msgid "Cannot export EMR journal. No active patient."
+msgstr ""
+
+msgid "emr-journal"
+msgstr ""
+
+msgid "Error exporting patient EMR as chronological journal."
+msgstr ""
+
+#, python-format
+msgid "Successfully exported EMR as chronological journal into file [%s]."
+msgstr ""
+
+msgid "EMR journal by last modification time"
+msgstr ""
+
+msgid "EMR journal by encounter"
+msgstr ""
+
+msgid "Cannot add tag to person. No active patient."
+msgstr ""
+
+#, python-format
+msgid "Edit the comment on tag [%s]"
+msgstr ""
+
+msgid "Editing tag comment"
+msgstr ""
+
+msgid "Cannot export patient as GDT. No active patient."
+msgstr ""
+
+msgid "Exported demographics as GDT to clipboard."
+msgstr ""
+
+msgid "Cannot export patient as VCARD. No active patient."
+msgstr ""
+
+msgid "Exported demographics as VCARD to clipboard."
+msgstr ""
+
+msgid "Cannot export patient as XML (LinuxMedNews). No active patient."
+msgstr ""
+
+#, python-format
+msgid "Exported demographics to XML file [%s]."
+msgstr ""
+
+#, python-format
+msgid "Exported demographics to GDT file [%s]."
+msgstr ""
+
+#, python-format
+msgid "Exported demographics to VCARD file [%s]."
+msgstr ""
+
+msgid "Cannot add staff member. No active patient."
+msgstr ""
+
+msgid "Cannot delete patient. No patient active."
+msgstr ""
+
+msgid ""
+"You have to manually close this window to finalize shutting down GNUmed."
+msgstr ""
+
+msgid "This is so that you can inspect the console output at your leisure."
+msgstr ""
+
+msgid "no patient"
+msgstr ""
+
+#, python-format
+msgid "Saved screenshot to file [%s]."
+msgstr ""
+
+msgid "Python version check"
+msgstr ""
+
+#, python-format
+msgid ""
+"You are running Python version\n"
+" %s\n"
+"\n"
+"However, GNUmed wants Python 2.7 to\n"
+"facilitate migration to Python 3.\n"
+"\n"
+"Please upgrade your Python interpreter !"
+msgstr ""
+
+msgid "GNUmed client"
+msgstr ""
+
+msgid "GNUmed stdout/stderr window"
+msgstr ""
+
+msgid "redirecting STDOUT/STDERR to this log window"
+msgstr ""
+
+#, python-format
+msgid ""
+"The database account [%s] cannot be used as a\n"
+"staff member login for GNUmed. There was an\n"
+"error retrieving staff details for it.\n"
+"\n"
+"Please ask your administrator for help.\n"
+msgstr ""
+
+msgid "Checking access permissions"
+msgstr ""
+
+#, python-format
+msgid "Database <%s> on <%s>"
+msgstr ""
+
+#, python-format
+msgid "Branch \"%s\" of praxis \"%s\"\n"
+msgstr ""
+
+msgid "Verifying database"
+msgstr ""
+
+msgid "Connect"
+msgstr ""
+
+msgid "Yes, connect to this database."
+msgstr ""
+
+msgid "Disconnect"
+msgstr ""
+
+msgid "No, do not connect to this database."
+msgstr ""
+
+#, python-format
+msgid ""
+"Cannot find configuration file in any of:\n"
+"\n"
+" %s\n"
+"You may need to use the comand line option\n"
+"\n"
+"\t--conf-file=<FILE>"
+msgstr ""
+
+msgid "Checking configuration files"
+msgstr ""
+
+msgid "GNUmed startup"
+msgstr ""
+
+#, python-format
+msgid ""
+"The currently selected database language ('%s') does\n"
+"not match the current system language ('%s').\n"
+"\n"
+"Do you want to set the database language to '%s' ?\n"
+msgstr ""
+
+msgid "Checking database language settings"
+msgstr ""
+
+#, python-format
+msgid "Set your database language to [%s]."
+msgstr ""
+
+msgid "Don't set"
+msgstr ""
+
+msgid "Do not set your database language now."
+msgstr ""
+
+msgid "Remember to ignore language mismatch"
+msgstr ""
+
+#, python-format
+msgid ""
+"Checking this will make GNUmed remember your decision\n"
+"until the system language is changed.\n"
+"\n"
+"You can also reactivate this inquiry by removing the\n"
+"corresponding \"ignore\" option from the configuration file\n"
+"\n"
+" [%s]"
+msgstr ""
+
+msgid "generic activity"
+msgstr ""
+
+msgid "Access denied"
+msgstr ""
+
+#, python-format
+msgid ""
+"Your account is not set up to access this part of GNUmed:\n"
+"\n"
+"  [%s]"
+msgstr ""
+
+msgid "Save timeline as SVG image under..."
+msgstr ""
+
+#, fuzzy
+msgid "timeline image"
+msgstr "Zaman Çizelgesi"
+
+#, fuzzy
+msgid "timeline data"
+msgstr "Zaman Çizelgesi"
+
+msgid "Cannot change notebook tabs. No active patient."
+msgstr ""
+
+msgid "add plugin ..."
 msgstr ""
 
-msgid "Workplace profiles (which plugins to load)"
+msgid "Cannot activate Allergy Manager. No active patient."
 msgstr ""
 
-msgid "Consumable substances"
+msgid "RR ?"
 msgstr ""
 
-msgid "Billable items"
+#, python-format
+msgid "BMI %s"
 msgstr ""
 
-msgid "Reference data sources"
+msgid "BMI ?"
 msgstr ""
 
-msgid "Test/measurement panels/profiles"
+msgid "GFR ?"
 msgstr ""
 
-msgid "Master data management"
+#, python-format
+msgid "GFR %s"
 msgstr ""
 
-msgid "Select the list you want to manage:"
+#, python-format
+msgid "?EDC %s"
 msgstr ""
 
-msgid "No DICOM viewer found."
+#, python-format
+msgid "EDC %s"
 msgstr ""
 
-msgid "risk assessment"
+msgid "<Age>"
 msgstr ""
 
-msgid "cardiovascular risk assessment"
+msgid "no patient selected"
 msgstr ""
 
 #, python-format
-msgid "[arriba] XML result not found in [%s]"
-msgstr ""
-
-msgid "ACS risk assessment calculator not configured."
+msgid "Gender: %s (%s) - %s\n"
 msgstr ""
 
 #, python-format
-msgid "Cannot run [%s] !"
+msgid "Born: %s\n"
 msgstr ""
 
 #, python-format
-msgid "There was a problem accessing the [arriba] result in [%s] !"
+msgid "Died: %s\n"
 msgstr ""
 
-msgid "[-9999]: <access violation test error>"
+#, python-format
+msgid "At age: %s\n"
 msgstr ""
 
-msgid ""
-"This is a deliberate AcessDenied exception thrown to test the handling of "
-"access violations by means of a decorator."
+msgid " (date of birth and age are estimated)\n"
 msgstr ""
 
-msgid "testing access check for non-existant <admin> role"
+#, python-format
+msgid "%(sex)s  %(dob)s (%(age)s today !)"
 msgstr ""
 
 msgid ""
-"This is a deliberate AcessDenied exception. You should not see this message "
-"because the role is checked in a decorator."
+"\n"
+"Today is the patient's birthday !\n"
+"\n"
 msgstr ""
 
-msgid "pgAdmin III not found."
+#, python-format
+msgid "Birthday: %s ago\n"
 msgstr ""
 
-msgid "Error reloading hook script."
+#, python-format
+msgid "Birthday: in %s\n"
 msgstr ""
 
-msgid "Save current log as..."
+#, python-format
+msgid "Age: %s\n"
 msgstr ""
 
-msgid "log files"
+#, python-format
+msgid "last confirmed %s\n"
 msgstr ""
 
 #, python-format
-msgid "Log file backed up as [%s]."
+msgid "Comment (%s): %%s"
 msgstr ""
 
-msgid "Cannot start new encounter. No active patient."
+#, python-format
+msgid " - expires %s"
 msgstr ""
 
-msgid "Cannot add health issue. No active patient."
+#, python-format
+msgid ""
+"Due for %s (since %s%s):\n"
+"%s%s\n"
+"Patient: %s\n"
+"Reminder by: %s"
 msgstr ""
 
-msgid "Cannot add episode. No active patient."
+msgid "Clinical reminder"
 msgstr ""
 
-msgid "Cannot add medication. No active patient."
+msgid "Adding automatic dynamic hint"
 msgstr ""
 
-msgid "Cannot add allergy. No active patient."
+msgid "Editing automatic dynamic hint"
 msgstr ""
 
-msgid "Cannot manage performed procedures. No active patient."
+msgid "Deleting automatic dynamic hint"
 msgstr ""
 
-msgid "Cannot manage hospitalizations. No active patient."
+#, python-format
+msgid ""
+"Really delete this dynamic hint ?\n"
+"\n"
+" [%s]"
 msgstr ""
 
-msgid "Cannot manage external care. No active patient."
+msgid "deleting a dynamic hint"
 msgstr ""
 
-msgid "Cannot edit occupation. No active patient."
+msgid ""
+"\n"
+"Dynamic hints registered with GNUmed.\n"
 msgstr ""
 
-msgid "manage vaccinations"
+msgid "Showing dynamic hints."
 msgstr ""
 
-msgid "Cannot add vaccinations. No active patient."
+msgid "Hint"
 msgstr ""
 
-msgid "Cannot manage family history. No active patient."
+msgid "Browse and install automatic dynamic hints data packs"
 msgstr ""
 
-msgid "Cannot manage measurements. No active patient."
+#, python-format
+msgid "By: %s"
 msgstr ""
 
-msgid "calculate EDC"
+msgid "No entry in field <Source>."
 msgstr ""
 
-msgid "manage suppressed hints"
+msgid "No entry in field <Conditions>."
 msgstr ""
 
-msgid "Cannot manage suppressed hints. No active patient."
+msgid "No entry in field <Description>."
 msgstr ""
 
-msgid "Cannot show EMR summary. No active patient."
+msgid "No entry in field <Title>."
 msgstr ""
 
-msgid "EMR Summary"
+msgid "creating a new dynamic hint"
 msgstr ""
 
-msgid "Cannot export EMR journal. No active patient."
+msgid "updating an existing dynamic hint"
 msgstr ""
 
-msgid "Save patient's EMR journal as..."
+msgid "Deleting suppressed dynamic hint"
 msgstr ""
 
-msgid "Error exporting patient EMR as chronological journal."
+#, python-format
+msgid ""
+"Really delete the suppression of this dynamic hint ?\n"
+"\n"
+" [%s]"
 msgstr ""
 
-msgid "EMR journal export"
+msgid ""
+"\n"
+"Dynamic hints suppressed in this patient.\n"
 msgstr ""
 
-#, python-format
-msgid "Successfully exported EMR as chronological journal into file [%s]."
+msgid "Showing suppressed dynamic hints."
 msgstr ""
 
-msgid "Cannot add tag to person. No active patient."
+msgid "Rationale"
 msgstr ""
 
-#, python-format
-msgid "Edit the comment on tag [%s]"
+msgid "Manage hints"
 msgstr ""
 
-msgid "Editing tag comment"
+msgid "Manage automatic dynamic hints"
 msgstr ""
 
-msgid "Cannot export patient as GDT. No active patient."
+msgid "Cannot delete family history item."
 msgstr ""
 
-msgid "Exported demographics as GDT to clipboard."
+msgid "Family history of this patient."
 msgstr ""
 
-msgid "Cannot export patient as VCARD. No active patient."
+msgid "Showing family history."
 msgstr ""
 
-msgid "Exported demographics as VCARD to clipboard."
+msgid "Fatal"
 msgstr ""
 
-msgid "Cannot export patient as XML (LinuxMedNews). No active patient."
+msgid "Noted"
 msgstr ""
 
-#, python-format
-msgid "Exported demographics to XML file [%s]."
+msgid "Died"
 msgstr ""
 
-#, python-format
-msgid "Exported demographics to GDT file [%s]."
+msgid "Adding family history"
 msgstr ""
 
-#, python-format
-msgid "Exported demographics to VCARD file [%s]."
+msgid "Editing family history"
 msgstr ""
 
-msgid "Cannot add staff member. No active patient."
+msgid ""
+"\n"
+"Please select the default drug data source from the list below.\n"
+"\n"
+"Note that to actually use it you need to have the database installed, too."
 msgstr ""
 
-msgid "Cannot delete patient. No patient active."
+msgid "Configuring default drug data source"
 msgstr ""
 
-msgid ""
-"You have to manually close this window to finalize shutting down GNUmed."
+msgid "No default drug database configured."
 msgstr ""
 
-msgid "This is so that you can inspect the console output at your leisure."
+msgid "There is no default drug database configured."
 msgstr ""
 
-msgid "no patient"
+msgid "Jumping to drug database"
 msgstr ""
 
-#, python-format
-msgid "Saved screenshot to file [%s]."
+msgid "Cannot import drugs from IFAP into chart without chart."
 msgstr ""
 
-msgid "GNUmed client"
+#, python-format
+msgid "Cannot call IFAP via [%s]."
 msgstr ""
 
-msgid "GNUmed stdout/stderr window"
+#, python-format
+msgid "Cannot create IFAP <-> GNUmed transfer file [%s]."
 msgstr ""
 
-msgid "redirecting STDOUT/STDERR to this log window"
+msgid "Current medication"
 msgstr ""
 
-#, python-format
 msgid ""
-"The database account [%s] cannot be used as a\n"
-"staff member login for GNUmed. There was an\n"
-"error retrieving staff details for it.\n"
 "\n"
-"Please ask your administrator for help.\n"
+"The ATC codes as known to GNUmed.\n"
 msgstr ""
 
-msgid "Checking access permissions"
+msgid "Showing ATC codes."
 msgstr ""
 
-#, python-format
-msgid "Database <%s> on <%s>"
+msgid "Choose an ATC import config file"
 msgstr ""
 
-#, python-format
-msgid "Branch \"%s\" of praxis \"%s\"\n"
+msgid "config files"
 msgstr ""
 
-msgid "Verifying database"
+msgid "importing ATC reference data"
 msgstr ""
 
-msgid "Connect"
+msgid "Successfully imported ATC reference data."
 msgstr ""
 
-msgid "Yes, connect to this database."
+msgid "Importing ATC reference data failed."
 msgstr ""
 
-msgid "Disconnect"
+msgid "Select an ATC (Anatomical-Therapeutic-Chemical) code."
 msgstr ""
 
-msgid "No, do not connect to this database."
+msgid "Cannot edit this substance. It is in use."
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot find configuration file in any of:\n"
-"\n"
-" %s\n"
-"You may need to use the comand line option\n"
-"\n"
-"\t--conf-file=<FILE>"
+msgid "Adding new consumable substance"
 msgstr ""
 
-msgid "Checking configuration files"
+msgid "Editing consumable substance"
 msgstr ""
 
-msgid "GNUmed startup"
+msgid "Cannot delete this substance. It is in use."
 msgstr ""
 
-#, python-format
 msgid ""
-"The currently selected database language ('%s') does\n"
-"not match the current system language ('%s').\n"
 "\n"
-"Do you want to set the database language to '%s' ?\n"
+"These are the consumable substances registered with GNUmed.\n"
 msgstr ""
 
-msgid "Checking database language settings"
+msgid "Import"
 msgstr ""
 
-msgid "Set"
+msgid "Import consumable substances from a drug database."
 msgstr ""
 
-#, python-format
-msgid "Set your database language to [%s]."
+msgid "Cannot save consumable substance. Missing essential input."
 msgstr ""
 
-msgid "Don't set"
+#, python-format
+msgid "Cannot save consumable substance. %s"
 msgstr ""
 
-msgid "Do not set your database language now."
+msgid "The substance with optional strength."
 msgstr ""
 
-msgid "Remember to ignore language mismatch"
+msgid "Cannot remove this component from the drug. It is in use."
 msgstr ""
 
-#, python-format
 msgid ""
-"Checking this will make GNUmed remember your decision\n"
-"until the system language is changed.\n"
-"\n"
-"You can also reactivate this inquiry by removing the\n"
-"corresponding \"ignore\" option from the configuration file\n"
 "\n"
-" [%s]"
+"These are the components in the drug brands known to GNUmed.\n"
 msgstr ""
 
-msgid "generic activity"
+msgid "Showing drug brand components."
 msgstr ""
 
-msgid "Access denied"
+msgid "Adding new drug component"
 msgstr ""
 
-#, python-format
-msgid ""
-"Your account is not set up to access this part of GNUmed:\n"
-"\n"
-"  [%s]"
+msgid "Editing drug component"
 msgstr ""
 
-msgid "Save timeline as SVG image under..."
+msgid "Cannot edit drug component. It is in use."
 msgstr ""
 
-#, fuzzy
-msgid "timeline image"
-msgstr "Zaman Çizelgesi"
+msgid "Cannot save drug component. Invalid or missing essential input."
+msgstr ""
 
-#, fuzzy
-msgid "timeline data"
-msgstr "Zaman Çizelgesi"
+msgid "A drug component with optional strength."
+msgstr ""
 
-msgid "Cannot change notebook tabs. No active patient."
+msgid "Editing drug"
 msgstr ""
 
-msgid "add plugin ..."
+#, python-format
+msgid ""
+"Cannot edit the branded drug product\n"
+"\n"
+" \"%s\" (%s)\n"
+"\n"
+"because it is currently taken by patients.\n"
 msgstr ""
 
-msgid "Cannot activate Allergy Manager. No active patient."
+msgid "Adding new drug brand"
 msgstr ""
 
-msgid "<Age>"
+msgid "Editing drug brand"
 msgstr ""
 
-msgid "no patient selected"
+msgid "Manage consumable substances"
 msgstr ""
 
-#, python-format
-msgid "Gender: %s (%s) - %s\n"
+msgid "not in use"
 msgstr ""
 
 #, python-format
-msgid "Born: %s\n"
+msgid "ATC: %s\n"
 msgstr ""
 
-#, python-format
-msgid "Died: %s\n"
+msgid "Editing medication"
 msgstr ""
 
 #, python-format
-msgid "At age: %s\n"
+msgid ""
+"Cannot edit the medication\n"
+"\n"
+" \"%s\" (%s)\n"
+"\n"
+"because it is a vaccine. Please edit it\n"
+"from the vaccine management section !\n"
 msgstr ""
 
-msgid " (date of birth and age are estimated)\n"
+msgid "Deleting medication"
 msgstr ""
 
 #, python-format
-msgid "%(sex)s  %(dob)s (%(age)s today !)"
+msgid ""
+"Cannot delete the medication\n"
+"\n"
+" \"%s\" (%s)\n"
+"\n"
+"because it is a vaccine. Please delete it\n"
+"from the vaccine management section !\n"
 msgstr ""
 
 msgid ""
 "\n"
-"Today is the patient's birthday !\n"
-"\n"
+"These are the drug brands known to GNUmed.\n"
 msgstr ""
 
-#, python-format
-msgid "Birthday: %s ago\n"
+msgid "Showing branded drugs."
 msgstr ""
 
-#, python-format
-msgid "Birthday: in %s\n"
+msgid "Import substances and brands from a drug database."
 msgstr ""
 
-#, python-format
-msgid "Age: %s\n"
+msgid "Managing components of a drug"
 msgstr ""
 
 #, python-format
-msgid "last confirmed %s\n"
+msgid ""
+"Cannot manage the components of the branded drug product\n"
+"\n"
+" \"%s\" (%s)\n"
+"\n"
+"because it is currently taken by patients.\n"
 msgstr ""
 
-#, python-format
-msgid "Comment (%s): %%s"
+msgid "Pick the substances which are components of this drug."
 msgstr ""
 
-#, python-format
-msgid " - expires %s"
+msgid "Components of drug"
 msgstr ""
 
 #, python-format
 msgid ""
-"Due for %s (since %s%s):\n"
-"%s%s\n"
-"Patient: %s\n"
-"Reminder by: %s"
+"Adjust the components of \"%s\"\n"
+"\n"
+"The drug must contain at least one component. Any given\n"
+"substance can only be included once per drug."
 msgstr ""
 
-msgid "Clinical reminder"
+msgid "Managing components of a drug ..."
 msgstr ""
 
-msgid "Adding automatic dynamic hint"
+msgid "Cannot edit drug brand. It is in use."
 msgstr ""
 
-msgid "Editing automatic dynamic hint"
+msgid "Checking brand data"
 msgstr ""
 
-msgid "Deleting automatic dynamic hint"
+#, python-format
+msgid ""
+"The brand information you entered:\n"
+"\n"
+" [%s %s]\n"
+"\n"
+"already exists as a drug product."
 msgstr ""
 
-#, python-format
 msgid ""
-"Really delete this dynamic hint ?\n"
+"You have not selected any substances\n"
+"as drug components.\n"
 "\n"
-" [%s]"
+"Without components you will not be able to\n"
+"use this drug for documenting patient care.\n"
+"\n"
+"Are you sure you want to save\n"
+"it without components ?"
 msgstr ""
 
-msgid "deleting a dynamic hint"
+msgid "Cannot save branded drug. Invalid or missing essential input."
 msgstr ""
 
 msgid ""
+"The brand name of the drug.\n"
 "\n"
-"Dynamic hints registered with GNUmed.\n"
+"Note: a brand name will need to be linked to\n"
+"one or more components before it can be used,\n"
+"except in the case of fake (generic) vaccines."
 msgstr ""
 
-msgid "Showing dynamic hints."
+msgid "No EMR data loaded."
 msgstr ""
 
-msgid "Hint"
+msgid "EMR text dump"
 msgstr ""
 
-msgid "Browse and install automatic dynamic hints data packs"
+msgid "Currently there is no active patient. Cannot retrieve EMR text."
 msgstr ""
 
-#, python-format
-msgid "By: %s"
+msgid "SOAP Editor Actions:"
 msgstr ""
 
-msgid "No entry in field <Source>."
-msgstr ""
+#, fuzzy
+msgid "&Sort lines"
+msgstr "Zaman Çizelgesi"
 
-msgid "No entry in field <Conditions>."
+msgid "Sort lines by SOAP category"
 msgstr ""
 
-msgid "No entry in field <Description>."
+msgid "e&Xpand keyword"
 msgstr ""
 
-msgid "No entry in field <Title>."
+msgid "Expand keyword / macro"
 msgstr ""
 
-msgid "creating a new dynamic hint"
+#, fuzzy
+msgid "as &Subjective"
+msgstr "aktif"
+
+msgid "Set line to category \"Subjective\""
 msgstr ""
 
-msgid "updating an existing dynamic hint"
+#, fuzzy
+msgid "as &Objective"
+msgstr "aktif"
+
+msgid "Set line to category \"Objective\""
 msgstr ""
 
-msgid "Deleting suppressed dynamic hint"
+msgid "as &Assessment"
 msgstr ""
 
-#, python-format
-msgid ""
-"Really delete the suppression of this dynamic hint ?\n"
-"\n"
-" [%s]"
+msgid "Set line to category \"Assessment\""
 msgstr ""
 
-msgid ""
-"\n"
-"Dynamic hints suppressed in this patient.\n"
+msgid "as &Plan"
 msgstr ""
 
-msgid "Showing suppressed dynamic hints."
+msgid "Set line to category \"Plan\""
 msgstr ""
 
-msgid "Rationale"
+msgid "as &Unspecified"
 msgstr ""
 
-msgid "Manage hints"
+msgid "Set line to category \"unspecified\""
 msgstr ""
 
-msgid "Manage automatic dynamic hints"
+#, fuzzy
+msgid "as ad&Ministrative"
+msgstr "aktif değil"
+
+msgid "Set line to category \"administrative\""
 msgstr ""
 
-msgid "Cannot delete family history item."
+msgid "→ &Clipboard"
 msgstr ""
 
-msgid "Family history of this patient."
+msgid "Copy line to clipboard"
 msgstr ""
 
-msgid "Showing family history."
+msgid "→ +Clipboard+"
 msgstr ""
 
-msgid "Fatal"
+msgid "Add line to clipboard"
 msgstr ""
 
-msgid "Noted"
+msgid "Copy content to clipboard"
 msgstr ""
 
-msgid "Died"
+msgid "Add content to clipboard"
 msgstr ""
 
-msgid "Adding family history"
+msgid "Copy selection to clipboard"
 msgstr ""
 
-msgid "Editing family history"
+msgid "Add selection to clipboard"
 msgstr ""
 
-msgid "No EMR data loaded."
+msgid "&Line ..."
 msgstr ""
 
-msgid "EMR text dump"
+msgid "&Text ..."
 msgstr ""
 
-msgid "Currently there is no active patient. Cannot retrieve EMR text."
+msgid "&Region ..."
 msgstr ""
 
 msgid "Show HL7 file:"
@@ -15501,6 +16385,10 @@ msgstr ""
 msgid "Extracting HL7 from XML file"
 msgstr ""
 
+#, python-format
+msgid "Unwrapped HL7 into [%s] from [%s]."
+msgstr ""
+
 msgid "Select HL7 file for staging:"
 msgstr ""
 
@@ -15525,6 +16413,10 @@ msgid ""
 " %s"
 msgstr ""
 
+#, python-format
+msgid "Staged HL7 from [%s]."
+msgstr ""
+
 msgid "Importing HL7 data"
 msgstr ""
 
@@ -15567,9 +16459,6 @@ msgstr ""
 msgid "Identification"
 msgstr ""
 
-msgid "Show"
-msgstr ""
-
 msgid "Show formatted HL7"
 msgstr ""
 
@@ -15615,6 +16504,17 @@ msgstr ""
 msgid "Plot current selection"
 msgstr ""
 
+msgid ""
+"Select the measurements panel to show in the top pane for continuous "
+"monitoring."
+msgstr ""
+
+msgid "Lab panel"
+msgstr ""
+
+msgid "Configuring continuous monitoring measurements panel"
+msgstr ""
+
 msgid "No default Gnuplot script template selected."
 msgstr ""
 
@@ -15637,13 +16537,27 @@ msgstr ""
 msgid "Cannot plot without a plot script."
 msgstr ""
 
-#, fuzzy
-msgid "Time"
-msgstr "Zaman Çizelgesi"
-
 msgid "Result"
 msgstr ""
 
+msgid "Perform on selected results:"
+msgstr ""
+
+msgid "Review and &sign"
+msgstr ""
+
+msgid "Export to &file"
+msgstr ""
+
+msgid "Export to &clipboard"
+msgstr ""
+
+msgid "Panels"
+msgstr ""
+
+msgid "List"
+msgstr ""
+
 msgid ""
 "lab_grid_date_format::%Y\n"
 "%b %d"
@@ -15718,18 +16632,6 @@ msgstr ""
 msgid "All: by &Day"
 msgstr ""
 
-msgid "Perform on selected results:"
-msgstr ""
-
-msgid "Review and &sign"
-msgstr ""
-
-msgid "Export to &file"
-msgstr ""
-
-msgid "Export to &clipboard"
-msgstr ""
-
 #, python-format
 msgid "%s results selected. Too many to list individually."
 msgstr ""
@@ -15903,6 +16805,9 @@ msgstr ""
 msgid "EMR Actions:"
 msgstr ""
 
+msgid "Print EMR"
+msgstr ""
+
 msgid "Create health issue"
 msgstr ""
 
@@ -16051,11 +16956,40 @@ msgstr ""
 msgid "&New notes %s"
 msgstr ""
 
+msgid "Find text in EMR Journal"
+msgstr ""
+
+msgid "Modified"
+msgstr ""
+
+msgid "Clinical time"
+msgstr ""
+
+msgid "Who / When"
+msgstr ""
+
+#, python-format
 msgid ""
-"An error occurred while retrieving the EMR\n"
-"in journal form for the active patient.\n"
+"Chart entry: %s       [#%s in %s]\n"
+" Modified: %s by %s (%s rev %s)\n"
 "\n"
-"Please check the log file for details."
+"Health issue: %s%s\n"
+"Episode: %s%s\n"
+"Encounter: %s%s"
+msgstr ""
+
+#, python-format
+msgid ""
+"%s\n"
+"\n"
+"                        rev %s (%s) by %s in <%s>"
+msgstr ""
+
+#, python-format
+msgid ""
+"%s\n"
+"%s\n"
+"%s"
 msgstr ""
 
 msgid "Editing tag"
@@ -16182,18 +17116,15 @@ msgid ""
 "%s\n"
 msgstr ""
 
-msgid "This patient DID receive care."
+msgid "This patient DID receive care here."
 msgstr ""
 
-msgid "This person did NOT receive care."
+msgid "This person did NOT receive care here."
 msgstr ""
 
 msgid "Disabling person"
 msgstr ""
 
-msgid "Disabling patient"
-msgstr ""
-
 msgid "Type or select a last name (family name/surname)."
 msgstr ""
 
@@ -16436,6 +17367,9 @@ msgid ""
 "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
 msgstr ""
 
+msgid "Connecting to backend"
+msgstr "Arka uca bağlanıyor"
+
 #, python-format
 msgid ""
 "Unable to connect to database:\n"
@@ -16644,9 +17578,6 @@ msgstr ""
 msgid "Office"
 msgstr ""
 
-msgid "State"
-msgstr ""
-
 msgid "Zip"
 msgstr ""
 
@@ -16702,8 +17633,9 @@ msgstr ""
 msgid "EMR Timeline"
 msgstr ""
 
-msgid "Show &Timeline"
-msgstr ""
+#, fuzzy
+msgid "EMR &Timeline"
+msgstr "Zaman Çizelgesi"
 
 msgid "Overview"
 msgstr ""
@@ -16729,10 +17661,10 @@ msgstr ""
 msgid "&SimpleNotes"
 msgstr ""
 
-msgid "EMR tree"
+msgid "EMR Tree"
 msgstr ""
 
-msgid "EMR &Tree (topical)"
+msgid "EMR &Tree"
 msgstr ""
 
 msgid "Print Manager"
@@ -16741,6 +17673,12 @@ msgstr ""
 msgid "&Print Manager"
 msgstr ""
 
+msgid "EMR Journal"
+msgstr ""
+
+msgid "EMR &Journal (list)"
+msgstr ""
+
 msgid "Appointments"
 msgstr ""
 
@@ -16753,6 +17691,12 @@ msgstr ""
 msgid "Show &lab journal"
 msgstr ""
 
+msgid "PACS"
+msgstr ""
+
+msgid "&PACS"
+msgstr ""
+
 msgid "Cardiac Devices"
 msgstr ""
 
@@ -16825,10 +17769,7 @@ msgstr ""
 msgid "User &manual (local)"
 msgstr ""
 
-msgid "EMR journal"
-msgstr ""
-
-msgid "EMR &Journal (chronological)"
+msgid "EMR &Journal (text)"
 msgstr ""
 
 msgid "Demographics"
@@ -16989,6 +17930,10 @@ msgstr ""
 msgid "Show &ExamplePlugin"
 msgstr ""
 
+#, fuzzy
+msgid "Find text"
+msgstr "Etkinliği Düzelt"
+
 msgid "gm_ctl_client: starting slave GNUmed client"
 msgstr ""
 
@@ -17014,3 +17959,20 @@ msgstr ""
 
 msgid "Abort and do NOT connect to GNUmed."
 msgstr ""
+
+#, fuzzy
+#~ msgid "&Unknown"
+#~ msgstr "Bilinmeyen format"
+
+#~ msgid ""
+#~ "Unable to connect to database:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Please retry another backend / user / password combination !\n"
+#~ msgstr ""
+#~ "Veritabanına bağlanamıyor:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Lütfen başka arka uç, kullanıcı adı veya şifre ile tekrar deneyin  !\n"
diff --git a/client/po/uk-gnumed.mo b/client/po/uk-gnumed.mo
index a053a2c..e10c1fa 100644
Binary files a/client/po/uk-gnumed.mo and b/client/po/uk-gnumed.mo differ
diff --git a/client/po/uk.po b/client/po/uk.po
index 92ad472..cc22a4b 100644
--- a/client/po/uk.po
+++ b/client/po/uk.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: GNUmed\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-12-26 20:29+0100\n"
+"POT-Creation-Date: 2016-03-17 16:28+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <LL at li.org>\n"
@@ -1405,10 +1405,22 @@ msgid ""
 msgstr ""
 
 #, python-format
+msgid "Revision #%s"
+msgstr ""
+
+#, python-format
 msgid "[%s:%s]: row not updated (nothing returned), row in use ?"
 msgstr ""
 
 #, python-format
+msgid "<%s(.bat)> not found"
+msgstr ""
+
+#, python-format
+msgid "problem with <%s>"
+msgstr ""
+
+#, python-format
 msgid "[%s] is not a readable file"
 msgstr ""
 
@@ -1436,21 +1448,7 @@ msgstr ""
 msgid "%s Bytes"
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot connect to configuration database with:\n"
-"\n"
-"[%s]"
-msgstr ""
-
-#, python-format
-msgid ""
-"Cannot connect to database with:\n"
-"\n"
-"[%s]"
-msgstr ""
-
-msgid "No product information available."
+msgid "<type>"
 msgstr ""
 
 #, python-format
@@ -1786,103 +1784,6 @@ msgstr ""
 msgid "  risk: %s"
 msgstr ""
 
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Are you sure you have got a local database installed ?\n"
-"\n"
-"Please retry with proper credentials or cancel.\n"
-"\n"
-"You may also need to check the PostgreSQL client\n"
-"authentication configuration in pg_hba.conf. For\n"
-"details see:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-msgstr ""
-"Неможливо приєднатися до бази даних:\n"
-"\n"
-"%s\n"
-"\n"
-"Ви впевнені, що локальну базу даних встановлено?\n"
-"\n"
-"Будь ласка, введіть дійсні реєстраційні дані, або відмініть.\n"
-"\n"
-"Ви можете також перевірити аутентифікаційну \n"
-"конфіґурацію PostgreSQL-клієнта у файлі pg_hba.conf. \n"
-"Детальніше дивись:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Please retry with proper credentials or cancel.\n"
-"\n"
-"You may also need to check the PostgreSQL client\n"
-"authentication configuration in pg_hba.conf. For\n"
-"details see:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-msgstr ""
-"Неможливо приєднатися до бази даних:\n"
-"\n"
-"%s\n"
-"\n"
-"Будь ласка, введіть дійсні реєстраційні дані, або відмініть.\n"
-"\n"
-"Ви можете також перевірити аутентифікаційну \n"
-"конфігурацію PostgreSQL-клієнта у файлі pg_hba.conf. \n"
-"Детальніше дивись:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-
-msgid "Connecting to backend"
-msgstr "З'єднуємося з сервером"
-
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Please retry another backend / user / password combination !\n"
-msgstr ""
-"Неможливо приєднатися до бази даних:\n"
-"\n"
-"%s\n"
-"\n"
-"Будь ласка, спробуйте іншу комбінацію сервер / логін / пароль !\n"
-
-msgid "programmer forgot to specify error message"
-msgstr ""
-
-msgid ""
-"\n"
-"\n"
-"Please consult the error log for all the gory details !"
-msgstr ""
-
-msgid "generic error message"
-msgstr ""
-
-msgid "programmer forgot to specify info message"
-msgstr ""
-
-msgid "generic info message"
-msgstr ""
-
-msgid "programmer forgot to specify warning"
-msgstr ""
-
-msgid "generic warning message"
-msgstr ""
-
 msgid "no hook specified, please report bug"
 msgstr ""
 
@@ -2199,6 +2100,30 @@ msgstr ""
 msgid "Include:"
 msgstr ""
 
+msgid "&Search"
+msgstr ""
+
+msgid "Suggest"
+msgstr ""
+
+msgid "Set"
+msgstr ""
+
+msgid "dialog_1"
+msgstr ""
+
+msgid "Search patients in Orthanc DICOM store."
+msgstr ""
+
+msgid "Suggest a patient ID based on the active patient."
+msgstr ""
+
+msgid "Search term:"
+msgstr ""
+
+msgid "New patient ID:"
+msgstr ""
+
 msgid "Your review"
 msgstr ""
 
@@ -2500,6 +2425,89 @@ msgstr ""
 msgid "Amount"
 msgstr ""
 
+msgid "&Connect"
+msgstr ""
+
+msgid "&Browse"
+msgstr ""
+
+msgid "<not connected>"
+msgstr ""
+
+msgid "Browse all"
+msgstr ""
+
+msgid "Export all"
+msgstr ""
+
+msgid "Browse"
+msgstr ""
+
+msgid "Export"
+msgstr ""
+
+msgid "Upload"
+msgstr ""
+
+msgid "Enter the PACS host address."
+msgstr ""
+
+msgid "Enter the PACS port."
+msgstr ""
+
+msgid "Enter the PACS user."
+msgstr ""
+
+msgid "Enter the PACS password. It will not be shown."
+msgstr ""
+
+msgid "Connect to PACS."
+msgstr ""
+
+msgid "Browse PACS at top level."
+msgstr ""
+
+msgid "Modify some of Orthanc content (such as patient IDs)."
+msgstr ""
+
+msgid "Browse overview of studies for this patient."
+msgstr ""
+
+msgid "Copy all studies into export area."
+msgstr ""
+
+msgid "Browse topmost selected study."
+msgstr ""
+
+msgid "Copy selected studies into export area."
+msgstr ""
+
+msgid "Save selected studies to disk."
+msgstr ""
+
+msgid ""
+"Upload DICOM files from a directory, recursively, into the Orthanc PACS\n"
+"\n"
+"The currently active patient does not matter. Orthanc will associate "
+"uploaded files with the patient found within the DICOM metadata. It will "
+"create new patients as needed."
+msgstr ""
+
+msgid "Host:"
+msgstr ""
+
+msgid "Port:"
+msgstr ""
+
+msgid "User:"
+msgstr ""
+
+msgid "Password"
+msgstr ""
+
+msgid "Selected studies:"
+msgstr ""
+
 msgid "Fake brand"
 msgstr ""
 
@@ -2815,9 +2823,6 @@ msgstr ""
 msgid "&Load"
 msgstr ""
 
-msgid "Export"
-msgstr ""
-
 msgid "A long, descriptive name for this form template."
 msgstr ""
 
@@ -2905,15 +2910,12 @@ msgstr ""
 msgid "Document Properties"
 msgstr ""
 
-msgid "Show part"
+msgid "Show"
 msgstr ""
 
 msgid "Remove part"
 msgstr ""
 
-msgid "Parts"
-msgstr ""
-
 msgid "Discard"
 msgstr ""
 
@@ -2941,6 +2943,9 @@ msgstr ""
 msgid "Required: The primary episode this document is to be listed under."
 msgstr ""
 
+msgid "Optional: The organization (unit) this document originated from."
+msgstr ""
+
 msgid ""
 "Optional: A short comment identifying the document. Good comments give an "
 "idea of the content and source of the document."
@@ -2965,6 +2970,9 @@ msgid ""
 "normal and abnormal resuslts can be relevant."
 msgstr ""
 
+msgid "Optional: A free-text document description."
+msgstr ""
+
 msgid "This field lists the parts belonging to the current document."
 msgstr ""
 
@@ -2976,9 +2984,6 @@ msgid ""
 "deletion from disk."
 msgstr ""
 
-msgid "Optional: A free-text document description."
-msgstr ""
-
 msgid "Save finished document."
 msgstr ""
 
@@ -2994,6 +2999,9 @@ msgstr ""
 msgid "Associate to episode:"
 msgstr ""
 
+msgid "Document source:"
+msgstr ""
+
 msgid "Comment / Identification:"
 msgstr ""
 
@@ -3174,7 +3182,7 @@ msgstr ""
 msgid "Messages:"
 msgstr ""
 
-msgid "Only:"
+msgid "Limit to:"
 msgstr ""
 
 msgid "&Myself … or:"
@@ -3284,10 +3292,10 @@ msgstr ""
 msgid "Purpose"
 msgstr ""
 
-msgid "Details"
+msgid "Please supply your email address here !"
 msgstr ""
 
-msgid "<Please supply your email address here !>"
+msgid "Details"
 msgstr ""
 
 msgid "Keep running"
@@ -3311,9 +3319,11 @@ msgid ""
 msgstr ""
 
 msgid ""
-"Please enter your email address so we can provide feedback directly to you. "
-"Otherwise, feedback will be given on the GNUmed mailing list (http://lists."
-"gnu.org/mailman/listinfo/gnumed-bugs)."
+"Please enter your email address so we can provide help to you directly.\n"
+"\n"
+"Otherwise, feedback can be given on the GNUmed mailing list (http://lists."
+"gnu.org/mailman/listinfo/gnumed-bugs) ONLY to which you will then have to "
+"subscribe."
 msgstr ""
 
 msgid "Find help on http://wiki.gnumed.de, too."
@@ -3428,9 +3438,6 @@ msgstr ""
 msgid "Account"
 msgstr ""
 
-msgid "Password"
-msgstr ""
-
 msgid "Password, again"
 msgstr ""
 
@@ -3916,7 +3923,7 @@ msgstr ""
 msgid "Acquire images from image source (scanner, ...)."
 msgstr ""
 
-msgid "Acquire images or text from the clipboard."
+msgid "Acquire file or text from the clipboard."
 msgstr ""
 
 msgid "Remove the selected documents."
@@ -4059,7 +4066,7 @@ msgid ""
 "- the result list will be artificially limited to the first 1000 rows\n"
 "- you can include a column named \"pk_patient\" to make the result rows "
 "activate the corresponding patient on double-clicking\n"
-"- by inserting $<ID_active_patient>$ you can access the patient ID of the "
+"- by inserting $<ID_ACTIVE_PATIENT>$ you can access the patient ID of the "
 "patient active at the time of running the query"
 msgstr ""
 
@@ -4218,9 +4225,6 @@ msgstr ""
 msgid "Link &new"
 msgstr ""
 
-msgid "Browse"
-msgstr ""
-
 msgid ""
 "Search for matches among existing addresses and [Link] a selection, or [Link "
 "(a) new] address."
@@ -4269,25 +4273,16 @@ msgid ""
 "left."
 msgstr ""
 
-msgid "label_1"
-msgstr ""
-
-msgid "→"
-msgstr ""
-
-msgid "←"
-msgstr ""
-
-msgid "Extra"
+msgid "Subjective"
 msgstr ""
 
-msgid "Move selected items from left to right."
+msgid "Objective"
 msgstr ""
 
-msgid "Move selected items from right to left."
+msgid "Assessment"
 msgstr ""
 
-msgid "Cancel picking items."
+msgid "Plan"
 msgstr ""
 
 msgid "Episode synopsis"
@@ -4323,19 +4318,28 @@ msgid ""
 "narrative belongs to."
 msgstr ""
 
-msgid "Subjective"
+msgid "Codes:"
 msgstr ""
 
-msgid "Codes:"
+msgid "label_1"
 msgstr ""
 
-msgid "Objective"
+msgid "→"
 msgstr ""
 
-msgid "Assessment"
+msgid "←"
 msgstr ""
 
-msgid "Plan"
+msgid "Extra"
+msgstr ""
+
+msgid "Move selected items from left to right."
+msgstr ""
+
+msgid "Move selected items from right to left."
+msgstr ""
+
+msgid "Cancel picking items."
 msgstr ""
 
 msgid "1"
@@ -4504,40 +4508,116 @@ msgstr ""
 msgid "Age range"
 msgstr ""
 
-msgid "Closed episodes"
+msgid "&Nicotine"
 msgstr ""
 
-msgid "Non-relevant issues"
+msgid "&Alcohol"
 msgstr ""
 
-msgid "Active problems"
+msgid "&Other:"
 msgstr ""
 
-msgid "Notes only"
+msgid "&Non-harmful use"
 msgstr ""
 
-msgid "Everything"
+msgid "&Harmful use"
 msgstr ""
 
-msgid ""
-"In this area GNUmed will place the notes of the\n"
-"previous encounter as well as notes by other\n"
-"staff for the current encounter.\n"
-"\n"
-"Note that this may change depending on which\n"
-"active problem is selected in the editor below."
+msgid "Presently &addicted"
 msgstr ""
 
-msgid "Most recent info on above problem"
+msgid "Previously &addicted"
 msgstr ""
 
-msgid "Show closed episodes as pseudo-problems ?"
+msgid "&Reconfirm as of today"
 msgstr ""
 
-msgid "Show issues marked clinically NOT relevant."
+msgid "Select for documenting smoking status."
 msgstr ""
 
-msgid ""
+msgid "Select for documenting alcohol use status."
+msgstr ""
+
+msgid ""
+"Select for documenting use of substances other than nicotine or alcohol."
+msgstr ""
+
+msgid "Select the abused substance."
+msgstr ""
+
+msgid ""
+"Select if the substance use is not considered harmful (say, no use or non-"
+"harmful use)."
+msgstr ""
+
+msgid "Select if substance is use considered harmful."
+msgstr ""
+
+msgid "Select if the patient is presently addicted to this substance."
+msgstr ""
+
+msgid "Select if the patient was previously addicted to this substance."
+msgstr ""
+
+msgid ""
+"A comment on this substance use:\n"
+"- type of product used\n"
+"- frequency\n"
+"- amount\n"
+"- when started\n"
+"- attempts to quit\n"
+"..."
+msgstr ""
+
+msgid ""
+"When did the patient quit?\n"
+"\n"
+"You can also set a target quit date here."
+msgstr ""
+
+msgid "Check here to confirm for today."
+msgstr ""
+
+msgid "Quit date"
+msgstr ""
+
+msgid "Last confirmed"
+msgstr ""
+
+msgid "Closed episodes"
+msgstr ""
+
+msgid "Non-relevant issues"
+msgstr ""
+
+msgid "Active problems"
+msgstr ""
+
+msgid "Notes only"
+msgstr ""
+
+msgid "Everything"
+msgstr ""
+
+msgid ""
+"In this area GNUmed will place the notes of the\n"
+"previous encounter as well as notes by other\n"
+"staff for the current encounter.\n"
+"\n"
+"Note that this may change depending on which\n"
+"active problem is selected in the editor below."
+msgstr ""
+
+msgid "Most recent info on above problem"
+msgstr ""
+
+msgid "Show closed episodes as pseudo-problems ?"
+msgstr ""
+
+msgid "Show issues marked clinically NOT relevant."
+msgstr ""
+
+msgid ""
 "This shows the list of active problems, They include open episodes as well "
 "as active health issues."
 msgstr ""
@@ -4840,20 +4920,18 @@ msgstr ""
 msgid "Show:"
 msgstr ""
 
-msgid "Brand by component"
+msgid "Kidneys"
 msgstr ""
 
 msgid "Brands"
 msgstr ""
 
-msgid "Kidneys"
-msgstr ""
-
-msgid "Unbranded substance"
+msgid "Substances"
 msgstr ""
 
-msgid "Manage"
-msgstr ""
+#, fuzzy
+msgid "&Unknown or date:"
+msgstr "невідомий алергічний стан"
 
 msgid "Approved of"
 msgstr ""
@@ -4868,22 +4946,18 @@ msgid "... Reason"
 msgstr ""
 
 msgid ""
-"A component of a drug brand the patient is taking.\n"
+"A drug the patient is taking.\n"
 "\n"
-"Lookup, and select, a single- (or multi-) component drug brand, by active "
-"ingredient name. All components of multi-component drugs will be displayed "
-"and automatically added to the patient's list."
-msgstr ""
-
-msgid ""
-"Manage drug brands.\n"
+"Lookup and select an intake by either of\n"
+"- a generic substance name\n"
+"- a drug brand name\n"
+"- an active ingredient of a drug\n"
 "\n"
-"Note that this will not select a component for you. What it does is to let "
-"you manage (add/edit/delete) the drug products/brands known to GNUmed from "
-"which you can select a component."
+"Note that all components of multi-component drugs will be displayed and "
+"automatically added to the patient's list."
 msgstr ""
 
-msgid "The active ingredients of this brand."
+msgid "Details on the selected drug."
 msgstr ""
 
 msgid "Show cardiac information relevant to substance selection."
@@ -4893,8 +4967,11 @@ msgid "Show renal insufficiency information related to substance selection."
 msgstr ""
 
 msgid ""
-"The non-branded medication or non-medication substance, with optional "
-"strength."
+"Manage drug brands.\n"
+"\n"
+"Note that this will not select a component for you. What it does is to let "
+"you manage (add/edit/delete) the drug products/brands known to GNUmed from "
+"which you can select a component."
 msgstr ""
 
 msgid ""
@@ -4907,11 +4984,19 @@ msgstr ""
 msgid "The preparation or form of the substance."
 msgstr ""
 
+msgid "Check here if the start date simply isn't known."
+msgstr ""
+
 msgid ""
 "When was this substance started to be consumed or - if not known - the "
 "earliest it is known to have been be consumed."
 msgstr ""
 
+msgid ""
+"A coment on the certainty of the start date, such as \"+/- 3 weeks\", "
+"\"spring of 2002\", \"shortly after Easter 1996\", ...."
+msgstr ""
+
 msgid "Whether this substance is taken by advice."
 msgstr ""
 
@@ -4945,6 +5030,15 @@ msgstr ""
 msgid "Reason for discontinuation."
 msgstr ""
 
+msgid "Drug"
+msgstr ""
+
+msgid "Research:"
+msgstr ""
+
+msgid "Certainty:"
+msgstr ""
+
 msgid "Schedule"
 msgstr ""
 
@@ -5096,6 +5190,30 @@ msgstr ""
 msgid "Channel"
 msgstr ""
 
+msgid "&Last modification time"
+msgstr ""
+
+msgid "&Entry time"
+msgstr ""
+
+msgid "Show journal ordered by encounter."
+msgstr ""
+
+msgid "Show journal ordered by time of last modification."
+msgstr ""
+
+msgid "Show journal ordered by actual clinical time of each entry."
+msgstr ""
+
+msgid "Edit the selected chart entry."
+msgstr ""
+
+msgid "Delete selected chart entry."
+msgstr ""
+
+msgid "Order by:"
+msgstr ""
+
 msgid "Chec&k"
 msgstr ""
 
@@ -5637,10 +5755,13 @@ msgstr ""
 msgid "Documents:"
 msgstr ""
 
+msgid "&L"
+msgstr ""
+
 msgid "&N"
 msgstr ""
 
-msgid "&L"
+msgid "List all encounters."
 msgstr ""
 
 msgid "The encounter."
@@ -5649,9 +5770,6 @@ msgstr ""
 msgid "Start a new encounter for the active patient."
 msgstr ""
 
-msgid "List all encounters."
-msgstr ""
-
 msgid "Clinically relevant"
 msgstr ""
 
@@ -5900,7 +6018,8 @@ msgstr ""
 
 msgid ""
 "Rationale for\n"
-"suppression"
+"suppression\n"
+"for this patient"
 msgstr ""
 
 msgid "Save &under"
@@ -5956,6 +6075,12 @@ msgstr ""
 msgid "Encounter:"
 msgstr ""
 
+msgid "Manage"
+msgstr ""
+
+msgid "&Panel:"
+msgstr ""
+
 msgid "&Pick"
 msgstr ""
 
@@ -5998,6 +6123,9 @@ msgid ""
 "To disable that popup leave the message empty."
 msgstr ""
 
+msgid "Show search dialog."
+msgstr ""
+
 msgid "THIS IS NOT A VERIFIED MEASUREMENT. DO NOT USE FOR ACTUAL CARE."
 msgstr ""
 
@@ -6278,6 +6406,45 @@ msgstr "має алергію"
 msgid "ERROR: unknown allergy state [%s]"
 msgstr "ПОМИЛКА: невідомий стан алергії [%s]"
 
+msgid "definite"
+msgstr ""
+
+msgid "indefinite"
+msgstr ""
+
+msgid "Reaction:"
+msgstr ""
+
+msgid "Noted:"
+msgstr ""
+
+msgid "Allergene:"
+msgstr ""
+
+msgid "Substance:"
+msgstr ""
+
+msgid "Code:"
+msgstr ""
+
+msgid "ATC:"
+msgstr ""
+
+msgid "Specific to:"
+msgstr ""
+
+msgid "this substance only"
+msgstr ""
+
+msgid "drug class"
+msgstr ""
+
+msgid "unknown"
+msgstr ""
+
+msgid "Generics:"
+msgstr ""
+
 msgid "Medication history"
 msgstr ""
 
@@ -6287,9 +6454,15 @@ msgstr ""
 msgid "prescription data"
 msgstr ""
 
+msgid "Consumable substance"
+msgstr ""
+
 msgid "in use"
 msgstr ""
 
+msgid "w/"
+msgstr ""
+
 msgid "long-term"
 msgstr ""
 
@@ -6309,6 +6482,35 @@ msgid "?ongoing"
 msgstr ""
 
 #, python-format
+msgid ""
+"Substance abuse entry                                              [#%s]\n"
+msgstr ""
+
+#, python-format
+msgid "Substance: %s [#%s]%s\n"
+msgstr ""
+
+#, python-format
+msgid "Use type: %s\n"
+msgstr ""
+
+#, python-format
+msgid "Last checked: %s\n"
+msgstr ""
+
+#, python-format
+msgid " Discontinued %s\n"
+msgstr ""
+
+#, python-format
+msgid " Notes: %s\n"
+msgstr ""
+
+#, python-format
+msgid "Revision: #%(row_ver)s, %(mod_when)s by %(mod_by)s."
+msgstr ""
+
+#, python-format
 msgid "Substance intake entry (%s, %s)   [#%s]                     \n"
 msgstr ""
 
@@ -6324,9 +6526,6 @@ msgstr ""
 msgid "unapproved"
 msgstr ""
 
-msgid "definite"
-msgstr ""
-
 msgid "suspected"
 msgstr ""
 
@@ -6373,10 +6572,6 @@ msgid " (short-term)"
 msgstr ""
 
 #, python-format
-msgid " Discontinued %s\n"
-msgstr ""
-
-#, python-format
 msgid " Reason: %s\n"
 msgstr ""
 
@@ -6396,16 +6591,59 @@ msgstr ""
 msgid " Advice: %s\n"
 msgstr ""
 
+msgid "medication, not abuse"
+msgstr ""
+
+msgid "no or non-harmful use"
+msgstr ""
+
+msgid "presently harmful use"
+msgstr ""
+
+msgid "presently addicted"
+msgstr ""
+
+msgid "previously addicted"
+msgstr ""
+
 #, python-format
-msgid "Revision: #%(row_ver)s, %(mod_when)s by %(mod_by)s."
+msgid "%s%s: %s ago%s"
+msgstr ""
+
+#, python-format
+msgid "%s%s: %s ago (%s)"
+msgstr ""
+
+#, python-format
+msgid "%s%s%s (%s ago)"
+msgstr ""
+
+#, python-format
+msgid "%s%s%s (%s ago, %s)"
+msgstr ""
+
+#, python-format
+msgid "%s ago"
+msgstr ""
+
+#, python-format
+msgid "in %s"
+msgstr ""
+
+#, python-format
+msgid ", until %s (%s)"
 msgstr ""
 
 #, python-format
-msgid "%s: %s ago"
+msgid " (planned for %s%s)"
 msgstr ""
 
 #, python-format
-msgid "%s: %s ago (%s)"
+msgid ", planned for %s%s"
+msgstr ""
+
+#, python-format
+msgid "%s ago (for %s: %s %s %s)"
 msgstr ""
 
 msgid "Additional notes"
@@ -6420,10 +6658,31 @@ msgstr ""
 msgid "ordered by brand"
 msgstr ""
 
-msgid "Drug"
+msgid "Regimen / Advice"
 msgstr ""
 
-msgid "Regimen / Advice"
+#, python-format
+msgid "Component of %s (%s)"
+msgstr ""
+
+#, python-format
+msgid "ATC (substance): %s"
+msgstr ""
+
+#, python-format
+msgid "ATC (brand): %s"
+msgstr ""
+
+msgid "this is a component of a fake brand"
+msgstr ""
+
+msgid "Components:"
+msgstr ""
+
+msgid "this is a fake brand"
+msgstr ""
+
+msgid "this is a vaccine"
 msgstr ""
 
 msgid "units"
@@ -6458,66 +6717,32 @@ msgstr ""
 msgid "Expires: %s\n"
 msgstr ""
 
-msgid "Active clinical hint"
+msgid "HL7 Source"
 msgstr ""
 
-msgid "Inactive clinical hint"
+msgid "HL7 data size"
 msgstr ""
 
 #, python-format
-msgid "Source: %s\n"
+msgid "%s bytes"
 msgstr ""
 
-#, python-format
-msgid "Language: %s\n"
+msgid "HL7 Message"
 msgstr ""
 
-msgid "Suppressed active dynamic hint"
+#, python-format
+msgid " %s segments (lines)%s"
 msgstr ""
 
-msgid "Suppressed inactive dynamic hint"
+msgid ", skipping empty fields"
 msgstr ""
 
 #, python-format
-msgid "Suppressed by: %s\n"
+msgid "Segment #%s <%s>"
 msgstr ""
 
 #, python-format
-msgid "Suppressed at: %s\n"
-msgstr ""
-
-#, python-format
-msgid "Hint #: %s\n"
-msgstr ""
-
-#, python-format
-msgid "Patient #: %s\n"
-msgstr ""
-
-#, python-format
-msgid "MD5 (currently): %s\n"
-msgstr ""
-
-#, python-format
-msgid "MD5 (at suppression): %s\n"
-msgstr ""
-
-msgid "HL7 Message"
-msgstr ""
-
-#, python-format
-msgid " %s segments (lines)%s"
-msgstr ""
-
-msgid ", skipping empty fields"
-msgstr ""
-
-#, python-format
-msgid "Segment #%s <%s>"
-msgstr ""
-
-#, python-format
-msgid "%s fields"
+msgid "%s fields"
 msgstr ""
 
 #, python-format
@@ -6555,13 +6780,6 @@ msgstr ""
 msgid "doc: %s"
 msgstr ""
 
-msgid "no patient photograph available"
-msgstr ""
-
-#, python-format
-msgid "patient photograph from %s"
-msgstr ""
-
 msgid "Patient data for"
 msgstr ""
 
@@ -6571,6 +6789,9 @@ msgstr ""
 msgid "Patient data export"
 msgstr ""
 
+msgid "no patient photograph available"
+msgstr ""
+
 msgid "Documents"
 msgstr ""
 
@@ -6580,6 +6801,10 @@ msgstr ""
 msgid "browse documents area"
 msgstr ""
 
+#, python-format
+msgid "patient photograph from %s"
+msgstr ""
+
 msgid "Browse patient data"
 msgstr ""
 
@@ -6614,24 +6839,24 @@ msgstr ""
 #, python-format
 msgid ""
 "%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s %(suburb)s, "
-"%(code_state)s, %(code_country)s"
+"%(code_region)s, %(code_country)s"
 msgstr ""
 
 #, python-format
 msgid ""
 "%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s %(suburb)s, "
-"%(code_state)s, %(code_country)s"
+"%(code_region)s, %(code_country)s"
 msgstr ""
 
 #, python-format
 msgid ""
-"%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_state)s, "
-"%(code_country)s"
+"%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, "
+"%(code_region)s, %(code_country)s"
 msgstr ""
 
 #, python-format
 msgid ""
-"%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_state)s, "
+"%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_region)s, "
 "%(code_country)s"
 msgstr ""
 
@@ -6641,7 +6866,7 @@ msgid ""
 " Street: %(street)s%(notes_street)s\n"
 " Number/Unit: %(number)s%(subunit)s%(notes_subunit)s\n"
 " Location: %(zip)s %(urb)s%(suburb)s\n"
-" Region: %(l10n_state)s, %(code_state)s\n"
+" Region: %(l10n_region)s, %(code_region)s\n"
 " Country: %(l10n_country)s, %(code_country)s"
 msgstr ""
 
@@ -6651,7 +6876,7 @@ msgid ""
 " Street: %(street)s%(notes_street)s\n"
 " Number/Unit: %(number)s%(subunit)s%(notes_subunit)s\n"
 " Location: %(zip)s %(urb)s%(suburb)s\n"
-" Region: %(l10n_state)s, %(code_state)s\n"
+" Region: %(l10n_region)s, %(code_region)s\n"
 " Country: %(l10n_country)s, %(code_country)s"
 msgstr ""
 
@@ -6720,6 +6945,86 @@ msgstr ""
 msgid "missing, reported later"
 msgstr ""
 
+msgid "Health issue"
+msgstr ""
+
+msgid "External care"
+msgstr ""
+
+msgid "Vaccination"
+msgstr ""
+
+msgid "Clinical narrative"
+msgstr ""
+
+msgid "Test result"
+msgstr ""
+
+msgid "Substance intake"
+msgstr ""
+
+msgid "Hospital stay"
+msgstr ""
+
+msgid "Performed procedure"
+msgstr ""
+
+msgid "Family history"
+msgstr ""
+
+msgid "Document"
+msgstr ""
+
+#, python-format
+msgid "unmapped entry type from table [%s]"
+msgstr ""
+
+#, python-format
+msgid "cannot instantiate clinical root item <%s(%s)>"
+msgstr ""
+
+msgid "True"
+msgstr ""
+
+msgid "False"
+msgstr ""
+
+#, fuzzy
+msgid "unknown smoking status"
+msgstr "невідомий алергічний стан"
+
+msgid "non-smoker"
+msgstr ""
+
+msgid "current smoker"
+msgstr ""
+
+msgid "ex-smoker"
+msgstr ""
+
+msgid "tobacco addiction"
+msgstr ""
+
+msgid "no or non-harmful alcohol use"
+msgstr ""
+
+msgid "harmful alcohol use"
+msgstr ""
+
+#, fuzzy
+msgid "unknown alcohol use"
+msgstr "невідомий алергічний стан"
+
+msgid "no or non-harmful drug use"
+msgstr ""
+
+msgid "harmful drug use"
+msgstr ""
+
+#, fuzzy
+msgid "unknown drug use"
+msgstr "невідомий алергічний стан"
+
 msgid "original entry"
 msgstr ""
 
@@ -6811,13 +7116,6 @@ msgstr ""
 msgid "Vaccinations"
 msgstr ""
 
-#, python-format
-msgid "%s ago"
-msgstr ""
-
-msgid "External care"
-msgstr ""
-
 msgid "Allergies/Intolerances"
 msgstr ""
 
@@ -6891,76 +7189,126 @@ msgid ""
 "The account was deactivated instead."
 msgstr ""
 
+msgid "SOAP_char_S=S"
+msgstr ""
+
+msgid "SOAP_char_O=O"
+msgstr ""
+
+msgid "SOAP_char_A=A"
+msgstr ""
+
+msgid "SOAP_char_P=P"
+msgstr ""
+
+msgid "SOAP_char_U=U"
+msgstr ""
+
+msgid "SOAP_string_Subjective=Subjective"
+msgstr ""
+
+msgid "SOAP_string_Objective=Objective"
+msgstr ""
+
+msgid "SOAP_string_Assessment=Assessment"
+msgstr ""
+
+msgid "SOAP_string_Plan=Plan"
+msgstr ""
+
+msgid "SOAP_string_Unspecified=Unspecified"
+msgstr ""
+
+msgid "SOAP_string_Administrative=Administrative"
+msgstr ""
+
+msgid "Active clinical hint"
+msgstr ""
+
+msgid "Inactive clinical hint"
+msgstr ""
+
 #, python-format
-msgid "Device(%s):"
+msgid "Source: %s\n"
 msgstr ""
 
-msgid "Battery:"
+#, python-format
+msgid "Language: %s\n"
 msgstr ""
 
-msgid "Implanted:"
+msgid "Suppressed active dynamic hint"
 msgstr ""
 
-msgid "last check:"
+msgid "Suppressed inactive dynamic hint"
 msgstr ""
 
-msgid "Sensing:"
+#, python-format
+msgid "Suppressed by: %s\n"
 msgstr ""
 
-msgid "Threshold"
+#, python-format
+msgid "Suppressed at: %s\n"
 msgstr ""
 
-msgid "Impedance:"
+#, python-format
+msgid "Hint #: %s\n"
 msgstr ""
 
 #, python-format
-msgid "Praxis branch                   #%s\n"
+msgid "Patient #: %s\n"
 msgstr ""
 
-msgid "Privacy notice"
+#, python-format
+msgid "MD5 (currently): %s\n"
 msgstr ""
 
 #, python-format
-msgid ""
-"%s: Your chart has been accessed by %s (without user interaction, probably "
-"by a script)."
+msgid "MD5 (at suppression): %s\n"
 msgstr ""
 
 #, python-format
-msgid "%s: Staff member %s has been notified of your chart access."
+msgid "Device(%s):"
 msgstr ""
 
-msgid "soap_S"
+msgid "Battery:"
 msgstr ""
 
-msgid "soap_O"
+msgid "Implanted:"
 msgstr ""
 
-msgid "soap_A"
+msgid "last check:"
 msgstr ""
 
-msgid "soap_P"
+msgid "Sensing:"
 msgstr ""
 
-msgid "soap_U"
+msgid "Threshold"
 msgstr ""
 
-msgid "soap_Subjective"
+msgid "Impedance:"
 msgstr ""
 
-msgid "soap_Objective"
+#, python-format
+msgid "Praxis branch                   #%s\n"
 msgstr ""
 
-msgid "soap_Assessment"
+#, python-format
+msgid ""
+"FN:%(l10n_unit_category)s %(branch)s of %(l10n_organization_category)s "
+"%(praxis)s"
 msgstr ""
 
-msgid "soap_Plan"
+msgid "Privacy notice"
 msgstr ""
 
-msgid "soap_Unspecified"
+#, python-format
+msgid ""
+"%s: Your chart has been accessed by %s (without user interaction, probably "
+"by a script)."
 msgstr ""
 
-msgid "soap_Administrative"
+#, python-format
+msgid "%s: Staff member %s has been notified of your chart access."
 msgstr ""
 
 #, python-format
@@ -7027,9 +7375,17 @@ msgid "%(last)s,%(title)s %(first)s%(nick)s (%(sex)s)"
 msgstr ""
 
 #, python-format
+msgid "%(last)s,%(title)s %(first)s (%(sex)s)"
+msgstr ""
+
+#, python-format
 msgid "%(last)s,%(title)s %(first)s%(nick)s"
 msgstr ""
 
+#, python-format
+msgid "%(last)s,%(title)s %(first)s"
+msgstr ""
+
 msgid "Cannot merge active patient into another patient."
 msgstr ""
 
@@ -7039,9 +7395,6 @@ msgstr ""
 msgid "merged"
 msgstr ""
 
-msgid "preferred name/call name/..."
-msgstr ""
-
 msgid "invalid age: DOB in the future"
 msgstr ""
 
@@ -7054,9 +7407,6 @@ msgstr ""
 msgid "Mrs"
 msgstr ""
 
-msgid "unknown"
-msgstr ""
-
 msgid "empty status"
 msgstr ""
 
@@ -7387,7 +7737,7 @@ msgid " Part %s: %s %s(%s Bytes)\n"
 msgstr ""
 
 #, python-format
-msgid " Filename: %s\n"
+msgid " Filename: %s%s\n"
 msgstr ""
 
 msgid "no parts"
@@ -7401,18 +7751,25 @@ msgid "%s parts"
 msgstr ""
 
 #, python-format
+msgid "%s of %s"
+msgstr ""
+
+#, python-format
 msgid ""
 "%s (%s)   #%s\n"
-"\n"
 " Created: %s\n"
 " Episode: %s\n"
-"%s%s%s"
+"%s%s%s%s"
 msgstr ""
 
 #, python-format
 msgid " External reference: %s\n"
 msgstr ""
 
+#, python-format
+msgid " Organization: %%s @ %s\n"
+msgstr ""
+
 msgid "Cannot run [arriba] !"
 msgstr ""
 
@@ -7757,23 +8114,7 @@ msgid "External care:"
 msgstr ""
 
 #, python-format
-msgid ""
-"health issue: %s%s%s\n"
-"\n"
-msgstr ""
-
-msgid ""
-"\n"
-"current values:\n"
-msgstr ""
-
-msgid "no previous versions of this record"
-msgstr ""
-
-msgid ""
-"\n"
-"all values with <audit_action>, <audit_when>, <audit_by> fields (current "
-"value first):\n"
+msgid "Health issue: %s%s%s"
 msgstr ""
 
 msgid "Unattributed episodes"
@@ -7797,9 +8138,6 @@ msgstr ""
 msgid "finished"
 msgstr ""
 
-msgid "Health issue"
-msgstr ""
-
 msgid "none associated"
 msgstr ""
 
@@ -7835,9 +8173,7 @@ msgid "Measurements and Results:"
 msgstr ""
 
 #, python-format
-msgid ""
-"episode: %s%s%s\n"
-"\n"
+msgid "Episode: %s%s%s"
 msgstr ""
 
 #, python-format
@@ -7865,9 +8201,7 @@ msgid "%s other episodes touched upon during this encounter:"
 msgstr ""
 
 #, python-format
-msgid ""
-"encounter: %s%s%s\n"
-"\n"
+msgid "Encounter: %s%s%s"
 msgstr ""
 
 msgid " (ongoing)"
@@ -7888,9 +8222,6 @@ msgstr ""
 msgid "Procedures"
 msgstr ""
 
-msgid "Substances"
-msgstr ""
-
 msgid "Life events"
 msgstr ""
 
@@ -7912,9 +8243,6 @@ msgstr ""
 msgid "Cannot display timeline."
 msgstr ""
 
-msgid "Vaccination"
-msgstr ""
-
 msgid "Lab result"
 msgstr ""
 
@@ -7982,9 +8310,6 @@ msgstr ""
 msgid "Exported: %s\n"
 msgstr ""
 
-msgid "emr-journal"
-msgstr ""
-
 msgid "Chronological EMR Journal\n"
 msgstr ""
 
@@ -8252,16 +8577,7 @@ msgstr ""
 msgid "Select one or more codes that apply."
 msgstr ""
 
-msgid "Cannot move progress notes. No active patient."
-msgstr ""
-
-msgid "Moving progress notes between encounters ..."
-msgstr ""
-
-msgid ""
-"\n"
-" Select the progress notes to move from the list !\n"
-"\n"
+msgid "Select the narrative you are interested in ..."
 msgstr ""
 
 msgid "when"
@@ -8273,20 +8589,148 @@ msgstr ""
 msgid "entry"
 msgstr ""
 
-msgid "Cannot edit progress notes. No active patient."
+msgid "There is no narrative for this episode in this encounter."
 msgstr ""
 
-msgid "Deleting progress note"
+msgid "Must select episode to move narrative to first."
 msgstr ""
 
-msgid ""
-"Are you positively sure you want to delete this\n"
-"progress note from the medical record ?\n"
-"\n"
-"Note that even if you chose to delete the entry it will\n"
-"still be (invisibly) kept in the audit trail to protect\n"
-"you from litigation because physical deletion is known\n"
-"to be unlawful in some jurisdictions.\n"
+msgid "Last"
+msgstr ""
+
+msgid "In health issue"
+msgstr ""
+
+msgid "Most recent notes on selected problem"
+msgstr ""
+
+#, python-format
+msgid "%s (active+potential) problems"
+msgstr ""
+
+#, python-format
+msgid "%s active problems"
+msgstr ""
+
+msgid "Current encounter:"
+msgstr ""
+
+msgid "Cumulative summary"
+msgstr ""
+
+#, python-format
+msgid "Most recent info on %s%s%s"
+msgstr ""
+
+#, python-format
+msgid ""
+"Cannot open progress note editor for\n"
+"\n"
+"[%s].\n"
+"\n"
+msgstr ""
+
+msgid "opening progress note editor"
+msgstr ""
+
+msgid "Cannot save all editors. Some were kept open."
+msgstr ""
+
+msgid "new problem"
+msgstr ""
+
+msgid ""
+"Are you sure you really want to\n"
+"discard this progress note ?\n"
+msgstr ""
+
+msgid "Discarding progress note"
+msgstr ""
+
+msgid "There are unsaved progress notes !\n"
+msgstr ""
+
+msgid "Unsaved progress notes"
+msgstr ""
+
+msgid "Problem list"
+msgstr ""
+
+msgid "Saving SOAP note"
+msgstr ""
+
+msgid "Do you want to save the SOAP note ?"
+msgstr ""
+
+#, python-format
+msgid "&Filter by problem %s%s%s"
+msgstr ""
+
+msgid "Cannot save SimpleNotes SOAP note."
+msgstr ""
+
+#, python-format
+msgid "Progress note: %s%s"
+msgstr ""
+
+msgid "Please enter a name for the new problem:"
+msgstr ""
+
+msgid "Adding a problem"
+msgstr ""
+
+msgid "Cannot delete problem. There is still clinical data recorded for it."
+msgstr ""
+
+#, python-format
+msgid "GNUmed: configuring [%s] (%s plugins)"
+msgstr ""
+
+msgid "loading list of plugins                               "
+msgstr ""
+
+msgid "failed"
+msgstr ""
+
+msgid "success"
+msgstr ""
+
+#, python-format
+msgid ""
+"previous: %s (%s)\n"
+"current (%s/%s): %s"
+msgstr ""
+
+#, python-format
+msgid "Cannot switch to [%s]: no patient selected"
+msgstr ""
+
+msgid "Cannot move progress notes. No active patient."
+msgstr ""
+
+msgid "Moving progress notes between encounters ..."
+msgstr ""
+
+msgid ""
+"\n"
+" Select the progress notes to move from the list !\n"
+"\n"
+msgstr ""
+
+msgid "Cannot edit progress notes. No active patient."
+msgstr ""
+
+msgid "Deleting progress note"
+msgstr ""
+
+msgid ""
+"Are you positively sure you want to delete this\n"
+"progress note from the medical record ?\n"
+"\n"
+"Note that even if you chose to delete the entry it will\n"
+"still be (invisibly) kept in the audit trail to protect\n"
+"you from litigation because physical deletion is known\n"
+"to be unlawful in some jurisdictions.\n"
 msgstr ""
 
 msgid "Yes, delete the progress note."
@@ -8472,965 +8916,884 @@ msgid ""
 " Now, mark the entries you want to include in your report.\n"
 msgstr ""
 
-msgid "Select the narrative you are interested in ..."
+msgid "Pick a date ..."
 msgstr ""
 
-msgid "There is no narrative for this episode in this encounter."
+msgid "<ALT-C/K>: pick from (c/k)alendar"
 msgstr ""
 
-msgid "Must select episode to move narrative to first."
+msgid "Cannot interpret input as timestamp."
 msgstr ""
 
-msgid "Last"
+msgid "No vaccines were chosen"
 msgstr ""
 
-msgid "In health issue"
+#, python-format
+msgid "Combination of indications , %s , not found in any vaccine"
 msgstr ""
 
-msgid "Most recent notes on selected problem"
+msgid "Sequence"
 msgstr ""
 
-#, python-format
-msgid "%s (active+potential) problems"
+msgid "Batch"
 msgstr ""
 
-#, python-format
-msgid "%s active problems"
+msgid "Vaccinator"
 msgstr ""
 
-msgid "Current encounter:"
+msgid ""
+"Vaccinations by Recommender (X = patient on regime, O = patient not on "
+"regime) "
 msgstr ""
 
-msgid "Cumulative summary"
+msgid "enrolled regime vaccinations not yet given"
 msgstr ""
 
-#, python-format
-msgid "Most recent info on %s%s%s"
+msgid "Proceed with "
 msgstr ""
 
 #, python-format
-msgid ""
-"Cannot open progress note editor for\n"
-"\n"
-"[%s].\n"
-"\n"
+msgid "Failed to enrol patient in %s"
 msgstr ""
 
-msgid "opening progress note editor"
+#, python-format
+msgid "Failed to  delist patient from %s"
 msgstr ""
 
-msgid "Cannot save all editors. Some were kept open."
+msgid "Missing GNUmed module"
 msgstr ""
 
-msgid "new problem"
+#, python-format
+msgid ""
+"GNUmed detected that parts of it are not\n"
+"properly installed. The following message\n"
+"names the missing part:\n"
+"\n"
+" \"%s\"\n"
+"\n"
+"Please make sure to get the missing\n"
+"parts installed. Otherwise some of the\n"
+"functionality will not be accessible."
 msgstr ""
 
+#, python-format
 msgid ""
-"Are you sure you really want to\n"
-"discard this progress note ?\n"
+"\n"
+" Source: %s"
 msgstr ""
 
-msgid "Discarding progress note"
+#, python-format
+msgid ""
+"\n"
+" Code: %s"
 msgstr ""
 
-msgid "There are unsaved progress notes !\n"
+#, python-format
+msgid ""
+"\n"
+" Details (first 250 characters):\n"
+"%s\n"
+"%s\n"
+"%s"
 msgstr ""
 
-msgid "Unsaved progress notes"
+msgid "Access violation"
 msgstr ""
 
 #, python-format
-msgid "Synopsis (%s)"
+msgid ""
+"You do not have access to this part of GNUmed.\n"
+"\n"
+"%s"
 msgstr ""
 
-msgid ""
-"Enter a short working name for this new problem\n"
-"(which will become a new, unassociated episode):\n"
+msgid "Lost connection"
 msgstr ""
 
-#, python-format
 msgid ""
-"Enter a short working name for this new\n"
-"episode under the existing health issue\n"
+"Since you were last working in GNUmed,\n"
+"your database connection timed out.\n"
 "\n"
-"\"%s\":\n"
+"This GNUmed session is now expired.\n"
+"\n"
+"You will have to close this client and\n"
+"restart a new GNUmed session."
 msgstr ""
 
-msgid "Creating problem (episode) to save notelet under ..."
+msgid ""
+"Please enter a short note on what you\n"
+"were about to do in GNUmed:"
 msgstr ""
 
-msgid "Cannot save a new problem without a name."
+msgid "Sending bug report"
 msgstr ""
 
-msgid "saving progress note"
+msgid ""
+"Edit the list of email addresses to send the\n"
+"bug report to (separate addresses by spaces).\n"
+"\n"
+"Note that <gnumed-bugs at gnu.org> refers to\n"
+"the public (!) GNUmed bugs mailing list."
 msgstr ""
 
 #, python-format
 msgid ""
-"The new episode:\n"
+"Your bug report will be sent to:\n"
 "\n"
-" \"%s\"\n"
+"%s\n"
 "\n"
-"will remain unassociated despite the editor\n"
-"having been invoked from the health issue:\n"
+"Make sure you have reviewed the log file for potentially\n"
+"sensitive information before sending out the bug report.\n"
 "\n"
-" \"%s\""
+"Note that emailing the report may take a while depending\n"
+"on the speed of your internet connection.\n"
 msgstr ""
 
-msgid "You need to actually set an editor."
+msgid "Yes, send the bug report."
 msgstr ""
 
-#, python-format
-msgid "The command [%s] is not found."
+msgid "No, do not send the bug report."
 msgstr ""
 
-#, python-format
-msgid ""
-"Enter the shell command with which to start\n"
-"the image editor for visual progress notes.\n"
-"\n"
-"Any \"%(img)s\" included with the arguments\n"
-"will be replaced by the file name of the\n"
-"note template."
+msgid "include log file in bug report"
 msgstr ""
 
-msgid "Choose file to use as template for new visual progress note"
+msgid ""
+"The database you are connected to is marked as\n"
+"\"in-production with controlled access\".\n"
+"\n"
+"You indicated that you want to include the log\n"
+"file in your bug report. While this is often\n"
+"useful for debugging the log file might contain\n"
+"bits of patient data which must not be sent out\n"
+"without de-identification.\n"
+"\n"
+"Please confirm that you want to include the log !"
 msgstr ""
 
-msgid "Visual progress note source"
+msgid "<not supplied>"
 msgstr ""
 
-msgid "From which source do you want to pick the image template ?"
+msgid "Bug report has been emailed."
 msgstr ""
 
-msgid "Database"
+msgid "Bug report COULD NOT be emailed."
 msgstr ""
 
-msgid "List of templates in the database."
+msgid "Underweight"
 msgstr ""
 
-msgid "Files in the filesystem."
+msgid "63< Normal >79"
 msgstr ""
 
-msgid "Device"
+msgid "63 - Normal - 79"
 msgstr ""
 
-msgid "Image capture devices (scanners, cameras, etc)"
+msgid "Overweight"
 msgstr ""
 
-#, python-format
-msgid "Cannot export visual progress note template for [%s]."
+msgid "Obese"
 msgstr ""
 
-msgid "Cannot export visual progress note to file."
+msgid "Current height/mass"
 msgstr ""
 
-msgid "Editor for visual progress note not configured."
+msgid "Height (cm)"
 msgstr ""
 
-#, python-format
-msgid ""
-"There was a problem with running the editor\n"
-"for visual progress notes.\n"
-"\n"
-" [%s]\n"
-"\n"
+msgid "Mass (kg)"
 msgstr ""
 
-msgid "Editing visual progress note"
+msgid "Adjusted Values"
 msgstr ""
 
-#, python-format
-msgid ""
-"There was a problem reading the visual\n"
-"progress note from the file:\n"
-"\n"
-" [%s]\n"
-"\n"
+msgid "Goal mass"
 msgstr ""
 
-msgid "Saving visual progress note"
+msgid "kg to lose"
 msgstr ""
 
-msgid ""
-"You either created a visual progress note from a template\n"
-"in the database (rather than from a file on disk) or you\n"
-"edited an existing visual progress note.\n"
-"\n"
-"The template/original was not modified at all, however.\n"
-"\n"
-"Do you still want to save the unmodified image as a\n"
-"visual progress note into the EMR of the patient ?\n"
+msgid "BMI Calculator"
 msgstr ""
 
-msgid "visual progress notes"
+msgid "&Reset"
 msgstr ""
 
-#, python-format
-msgid "Created: %s"
+msgid "Select a healthcare provider."
 msgstr ""
 
-msgid "Problem list"
+msgid "Public (no clinical or demographic access)"
 msgstr ""
 
-msgid "Saving SOAP note"
+msgid "Staff (demographic access only)"
 msgstr ""
 
-msgid "Do you want to save the SOAP note ?"
+msgid "staff (clerical)"
 msgstr ""
 
-#, python-format
-msgid "&Filter by problem %s%s%s"
+msgid "full clinical access"
 msgstr ""
 
-msgid "Cannot save SimpleNotes SOAP note."
+msgid "DB account"
 msgstr ""
 
-#, python-format
-msgid "Progress note: %s%s"
+msgid "can login"
 msgstr ""
 
-msgid "Please enter a name for the new problem:"
+msgid "can not login"
 msgstr ""
 
-msgid "Adding a problem"
+msgid "Activating GNUmed user."
 msgstr ""
 
-msgid "Cannot delete problem. There is still clinical data recorded for it."
+msgid "Deactivating GNUmed user."
 msgstr ""
 
-#, python-format
-msgid "GNUmed: configuring [%s] (%s plugins)"
+msgid "Removing GNUmed user."
 msgstr ""
 
-msgid "loading list of plugins                               "
+msgid "Removing GNUmed user"
 msgstr ""
 
-msgid "failed"
+msgid "Modifying GNUmed user."
 msgstr ""
 
-msgid "success"
+msgid "Failed to save changes to GNUmed database user."
 msgstr ""
 
-#, python-format
-msgid ""
-"previous: %s (%s)\n"
-"current (%s/%s): %s"
+msgid "Modifying GNUmed user"
 msgstr ""
 
 #, python-format
-msgid "Cannot switch to [%s]: no patient selected"
+msgid "Failed to set role [%s] for GNUmed database user."
 msgstr ""
 
-msgid "Pick a date ..."
+#, python-format
+msgid ""
+"\n"
+"  %s \"%s\" %s\n"
+"  born: %s"
 msgstr ""
 
-msgid "<ALT-C/K>: pick from (c/k)alendar"
+msgid ""
+"Password entries do not match. Please type in the passwords again to rule "
+"out typos."
 msgstr ""
 
-msgid "Cannot interpret input as timestamp."
+msgid "Adding GNUmed user"
 msgstr ""
 
-msgid "No vaccines were chosen"
+msgid ""
+"Are you positively sure you want to create\n"
+"a user with an empty password ?\n"
+"\n"
+"Think about the record access implications !"
 msgstr ""
 
-#, python-format
-msgid "Combination of indications , %s , not found in any vaccine"
+msgid "Enlisting person as user."
 msgstr ""
 
-msgid "Sequence"
+msgid "Encrypt"
 msgstr ""
 
-msgid "Batch"
+msgid "Decrypt"
 msgstr ""
 
-msgid "Vaccinator"
+msgid "Set pass phrase"
 msgstr ""
 
-msgid ""
-"Vaccinations by Recommender (X = patient on regime, O = patient not on "
-"regime) "
+msgid "This is not correctly encrypted text!"
 msgstr ""
 
-msgid "enrolled regime vaccinations not yet given"
+msgid "Please enter your pass phrase:"
 msgstr ""
 
-msgid "Proceed with "
+msgid "Pass phrase expired"
 msgstr ""
 
-#, python-format
-msgid "Failed to enrol patient in %s"
+msgid ""
+"\n"
+"Conditions preventable by vaccination as currently known to GNUmed.\n"
 msgstr ""
 
-#, python-format
-msgid "Failed to  delist patient from %s"
+msgid "Showing vaccination preventable conditions."
 msgstr ""
 
-msgid "Missing GNUmed module"
+msgid "ATCs: single-condition vaccines"
 msgstr ""
 
-#, python-format
-msgid ""
-"GNUmed detected that parts of it are not\n"
-"properly installed. The following message\n"
-"names the missing part:\n"
-"\n"
-" \"%s\"\n"
-"\n"
-"Please make sure to get the missing\n"
-"parts installed. Otherwise some of the\n"
-"functionality will not be accessible."
+msgid "ATCs: multi-condition vaccines"
 msgstr ""
 
-#, python-format
-msgid ""
-"\n"
-" Source: %s"
+msgid "Pick the relevant indications."
 msgstr ""
 
-#, python-format
-msgid ""
-"\n"
-" Code: %s"
+msgid "Known indications"
 msgstr ""
 
-#, python-format
-msgid ""
-"\n"
-" Details (first 250 characters):\n"
-"%s\n"
-"%s\n"
-"%s"
+msgid "Adding new vaccine"
 msgstr ""
 
-msgid "Access violation"
+msgid "Editing vaccine"
 msgstr ""
 
 #, python-format
 msgid ""
-"You do not have access to this part of GNUmed.\n"
+"Cannot delete vaccine\n"
 "\n"
-"%s"
+" %s - %s (#%s)\n"
+"\n"
+"It is probably documented in a vaccination."
 msgstr ""
 
-msgid "Lost connection"
+msgid "Deleting vaccine"
+msgstr ""
+
+msgid "fake"
 msgstr ""
 
 msgid ""
-"Since you were last working in GNUmed,\n"
-"your database connection timed out.\n"
 "\n"
-"This GNUmed session is now expired.\n"
-"\n"
-"You will have to close this client and\n"
-"restart a new GNUmed session."
+"The vaccines currently known to GNUmed.\n"
 msgstr ""
 
-msgid ""
-"Please enter a short note on what you\n"
-"were about to do in GNUmed:"
+msgid "Showing vaccines."
 msgstr ""
 
-msgid "Sending bug report"
+msgid "Enter or select the batch/lot number of the vaccine used."
 msgstr ""
 
-msgid ""
-"Edit the list of email addresses to send the\n"
-"bug report to (separate addresses by spaces).\n"
-"\n"
-"Note that <gnumed-bugs at gnu.org> refers to\n"
-"the public (!) GNUmed bugs mailing list."
+msgid "Saving vaccine"
 msgstr ""
 
 #, python-format
 msgid ""
-"Your bug report will be sent to:\n"
+"This vaccine is already in use:\n"
 "\n"
-"%s\n"
+" \"%s\"\n"
+" (%s)\n"
 "\n"
-"Make sure you have reviewed the log file for potentially\n"
-"sensitive information before sending out the bug report.\n"
+"Are you absolutely positively sure that\n"
+"you really want to edit this vaccine ?\n"
 "\n"
-"Note that emailing the report may take a while depending\n"
-"on the speed of your internet connection.\n"
+"This will change the vaccine name and/or target\n"
+"conditions in each patient this vaccine was\n"
+"used in to document a vaccination with.\n"
 msgstr ""
 
-msgid "Yes, send the bug report."
+msgid "You must select at least one indication."
 msgstr ""
 
-msgid "No, do not send the bug report."
+msgid "Pick the diseases this vaccine protects against."
 msgstr ""
 
-msgid "include log file in bug report"
+msgid "This vaccine"
 msgstr ""
 
-msgid ""
-"The database you are connected to is marked as\n"
-"\"in-production with controlled access\".\n"
-"\n"
-"You indicated that you want to include the log\n"
-"file in your bug report. While this is often\n"
-"useful for debugging the log file might contain\n"
-"bits of patient data which must not be sent out\n"
-"without de-identification.\n"
-"\n"
-"Please confirm that you want to include the log !"
+msgid "Adding new vaccinations"
 msgstr ""
 
-msgid "<not supplied>"
+msgid "Editing vaccination"
 msgstr ""
 
-msgid "Bug report has been emailed."
+msgid "vaccination recall"
 msgstr ""
 
-msgid "Bug report COULD NOT be emailed."
-msgstr ""
-
-msgid "Underweight"
-msgstr ""
-
-msgid "63< Normal >79"
-msgstr ""
-
-msgid "63 - Normal - 79"
+#, python-format
+msgid "vaccination recall (%s)"
 msgstr ""
 
-msgid "Overweight"
+#, python-format
+msgid ""
+"Existing vaccination:\n"
+"\n"
+"%s"
 msgstr ""
 
-msgid "Obese"
+msgid ""
+"\n"
+"Complete vaccination history for this patient.\n"
 msgstr ""
 
-msgid "Current height/mass"
+msgid "Showing vaccinations."
 msgstr ""
 
-msgid "Height (cm)"
+msgid "Intended to protect from"
 msgstr ""
 
-msgid "Mass (kg)"
+msgid "Print vaccinations or recalls."
 msgstr ""
 
-msgid "Adjusted Values"
+msgid "Recall"
 msgstr ""
 
-msgid "Goal mass"
+msgid "Add a recall for a vaccination"
 msgstr ""
 
-msgid "kg to lose"
+msgid "Vx schedules"
 msgstr ""
 
-msgid "BMI Calculator"
+msgid "Open a browser showing vaccination schedules."
 msgstr ""
 
-msgid "&Reset"
+msgid "prevention"
 msgstr ""
 
-msgid "Select a healthcare provider."
+msgid "Saving vaccination"
 msgstr ""
 
-msgid "Public (no clinical or demographic access)"
+msgid "Pick the diseases this vaccination was given against."
 msgstr ""
 
-msgid "Staff (demographic access only)"
+msgid "  IMMUNISATIONS  "
 msgstr ""
 
-msgid "staff (clerical)"
+msgid "Indications"
 msgstr ""
 
-msgid "full clinical access"
+msgid "Active Schedules"
 msgstr ""
 
-msgid "DB account"
+msgid "Missing Immunisations"
 msgstr ""
 
-msgid "can login"
+msgid "  Alerts  "
 msgstr ""
 
-msgid "can not login"
+msgid "ERROR: cannot retrieve active vaccination schedules"
 msgstr ""
 
-msgid "Activating GNUmed user."
+msgid "no active vaccination schedules"
 msgstr ""
 
-msgid "Deactivating GNUmed user."
+#, python-format
+msgid "%s for %s (%s shots): %s"
 msgstr ""
 
-msgid "Removing GNUmed user."
+msgid "ERROR: cannot retrieve due/overdue vaccinations"
 msgstr ""
 
-msgid "Removing GNUmed user"
+#, python-format
+msgid "%.0d weeks left: shot %s for %s in %s, due %s (%s)"
 msgstr ""
 
-msgid "Modifying GNUmed user."
+#, python-format
+msgid "overdue %.0dyrs %.0dwks: shot %s for %s in schedule \"%s\" (%s)"
 msgstr ""
 
-msgid "Failed to save changes to GNUmed database user."
+#, python-format
+msgid "due now: booster for %s in schedule \"%s\" (%s)"
 msgstr ""
 
-msgid "Modifying GNUmed user"
+#, python-format
+msgid "Synopsis (%s)"
 msgstr ""
 
-#, python-format
-msgid "Failed to set role [%s] for GNUmed database user."
+msgid ""
+"Enter a short working name for this new problem\n"
+"(which will become a new, unassociated episode):\n"
 msgstr ""
 
 #, python-format
 msgid ""
+"Enter a short working name for this new\n"
+"episode under the existing health issue\n"
 "\n"
-"  %s \"%s\" %s\n"
-"  born: %s"
+"\"%s\":\n"
 msgstr ""
 
-msgid ""
-"Password entries do not match. Please type in the passwords again to rule "
-"out typos."
+msgid "Creating problem (episode) to save notelet under ..."
 msgstr ""
 
-msgid "Adding GNUmed user"
+msgid "Cannot save a new problem without a name."
+msgstr ""
+
+msgid "saving progress note"
 msgstr ""
 
+#, python-format
 msgid ""
-"Are you positively sure you want to create\n"
-"a user with an empty password ?\n"
+"The new episode:\n"
 "\n"
-"Think about the record access implications !"
+" \"%s\"\n"
+"\n"
+"will remain unassociated despite the editor\n"
+"having been invoked from the health issue:\n"
+"\n"
+" \"%s\""
 msgstr ""
 
-msgid "Enlisting person as user."
+msgid "Adding substance abuse"
 msgstr ""
 
-msgid "Encrypt"
+msgid "Editing substance abuse"
 msgstr ""
 
-msgid "Decrypt"
+msgid "Substances abused by the patient:"
 msgstr ""
 
-msgid "Set pass phrase"
+msgid "Showing abused substances."
 msgstr ""
 
-msgid "This is not correctly encrypted text!"
+msgid "Intake"
 msgstr ""
 
-msgid "Please enter your pass phrase:"
+msgid "nicotine"
 msgstr ""
 
-msgid "Pass phrase expired"
+msgid "unit"
 msgstr ""
 
-msgid ""
-"\n"
-"Conditions preventable by vaccination as currently known to GNUmed.\n"
+#, python-format
+msgid "Latest: %s ago (%s %s%s%s%s)"
 msgstr ""
 
-msgid "Showing vaccination preventable conditions."
+#, python-format
+msgid "%s %s%s%s (%s ago, %s)"
 msgstr ""
 
-msgid "ATCs: single-condition vaccines"
+#, python-format
+msgid "overdue %s: %s"
 msgstr ""
 
-msgid "ATCs: multi-condition vaccines"
+#, python-format
+msgid "due in %s%s"
 msgstr ""
 
-msgid "Pick the relevant indications."
+msgid "suppr'd:"
 msgstr ""
 
-msgid "Known indications"
+msgid "Suppressed hints:\n"
 msgstr ""
 
-msgid "Adding new vaccine"
+msgid ""
+"Do you really want to\n"
+"delete this inbox message ?"
 msgstr ""
 
-msgid "Editing vaccine"
+msgid "Deleting inbox message"
+msgstr ""
+
+msgid "Export area: 1 item"
 msgstr ""
 
 #, python-format
-msgid ""
-"Cannot delete vaccine\n"
-"\n"
-" %s - %s (#%s)\n"
-"\n"
-"It is probably documented in a vaccination."
+msgid "Export area: %s items"
 msgstr ""
 
-msgid "Deleting vaccine"
+#, python-format
+msgid "%s %s more not shown %s"
 msgstr ""
 
-msgid "fake"
+#, python-format
+msgid "Currently %s entries in waiting list"
 msgstr ""
 
-msgid ""
-"\n"
-"The vaccines currently known to GNUmed.\n"
+#, python-format
+msgid "first (in GMd): %s, %s"
 msgstr ""
 
-msgid "Showing vaccines."
+#, python-format
+msgid "last: %s, %s"
 msgstr ""
 
-msgid "Enter or select the batch/lot number of the vaccine used."
+#, python-format
+msgid "Last %s:"
 msgstr ""
 
-msgid "Saving vaccine"
+msgid "Statistics cover period"
 msgstr ""
 
 #, python-format
+msgid "EDC (!?!): %s"
+msgstr ""
+
 msgid ""
-"This vaccine is already in use:\n"
-"\n"
-" \"%s\"\n"
-" (%s)\n"
-"\n"
-"Are you absolutely positively sure that\n"
-"you really want to edit this vaccine ?\n"
+"The Expected Date of Confinement is rather questionable.\n"
 "\n"
-"This will change the vaccine name and/or target\n"
-"conditions in each patient this vaccine was\n"
-"used in to document a vaccination with.\n"
+"Please check patient age, patient gender, time until/since EDC."
 msgstr ""
 
-msgid "You must select at least one indication."
+#, python-format
+msgid "%s Vacc: %s (latest of %s)"
 msgstr ""
 
-msgid "Pick the diseases this vaccine protects against."
+#, python-format
+msgid "Hx of addiction: %s"
 msgstr ""
 
-msgid "This vaccine"
+msgid "active substance abuse"
 msgstr ""
 
-msgid "Adding new vaccinations"
+#, python-format
+msgid "%s %s %s%s"
 msgstr ""
 
-msgid "Editing vaccination"
+#, python-format
+msgid "%s %s%s"
 msgstr ""
 
-msgid "vaccination recall"
+#, python-format
+msgid "** Currently hospitalized: %s **"
 msgstr ""
 
 #, python-format
-msgid "vaccination recall (%s)"
+msgid "emergency: %s"
 msgstr ""
 
 #, python-format
-msgid ""
-"Existing vaccination:\n"
-"\n"
-"%s"
+msgid "in-praxis: %s"
 msgstr ""
 
-msgid ""
-"\n"
-"Complete vaccination history for this patient.\n"
+#, python-format
+msgid "care: %s%s@%s"
 msgstr ""
 
-msgid "Showing vaccinations."
+msgid "*** CONFIDENTIAL ***"
 msgstr ""
 
-msgid "Intended to protect from"
+msgid " (confidential !)"
 msgstr ""
 
-msgid "Print vaccinations or recalls."
+#, python-format
+msgid "extrnl: %s (%s@%s)"
 msgstr ""
 
-msgid "Recall"
+#, python-format
+msgid "aka: %(last)s, %(first)s%(nick)s"
 msgstr ""
 
-msgid "Add a recall for a vaccination"
+#, python-format
+msgid "job: %s (%s)"
 msgstr ""
 
-msgid "Vx schedules"
+#, python-format
+msgid "issued by: %s%s"
 msgstr ""
 
-msgid "Open a browser showing vaccination schedules."
+#, python-format
+msgid "Last modified: %s"
 msgstr ""
 
-msgid "prevention"
+#, python-format
+msgid ""
+"Activities:\n"
+"\n"
+"%s"
 msgstr ""
 
-msgid "Saving vaccination"
+msgid "Cloning name"
 msgstr ""
 
-msgid "Pick the diseases this vaccination was given against."
+msgid "Editing external ID"
 msgstr ""
 
-msgid "  IMMUNISATIONS  "
+msgid "Adding new translation"
 msgstr ""
 
-msgid "Indications"
+msgid "Editing translation"
 msgstr ""
 
-msgid "Active Schedules"
+msgid "Selecting language for translation"
 msgstr ""
 
-msgid "Missing Immunisations"
+msgid ""
+"Please select the language the translations for which you want to work on."
 msgstr ""
 
-msgid "  Alerts  "
+#, python-format
+msgid ""
+"Are you sure you want to delete the translation of:\n"
+"\n"
+"%s\n"
+"\n"
+"into [%s] as:\n"
+"\n"
+"%s\n"
+"\n"
+"?  (Note that you must know the database administrator password !)\n"
 msgstr ""
 
-msgid "ERROR: cannot retrieve active vaccination schedules"
+msgid "Deleting translation from database"
 msgstr ""
 
-msgid "no active vaccination schedules"
+msgid "deleting a translation"
 msgstr ""
 
-#, python-format
-msgid "%s for %s (%s shots): %s"
+msgid "Contributing translations"
 msgstr ""
 
-msgid "ERROR: cannot retrieve due/overdue vaccinations"
-msgstr ""
-
-#, python-format
-msgid "%.0d weeks left: shot %s for %s in %s, due %s (%s)"
-msgstr ""
-
-#, python-format
-msgid "overdue %.0dyrs %.0dwks: shot %s for %s in schedule \"%s\" (%s)"
+msgid "Do you want to contribute your translations to the GNUmed project ?"
 msgstr ""
 
-#, python-format
-msgid "due now: booster for %s in schedule \"%s\" (%s)"
+msgid ""
+"Unable to send mail. Cannot contribute translations to GNUmed community."
 msgstr ""
 
-#, python-format
-msgid "Latest: %s ago (%s %s %s %s%s)"
+msgid "Thank you for your contribution to the GNUmed community!"
 msgstr ""
 
-#, python-format
-msgid "%s %s %s %s (%s ago, %s)"
+msgid "Showing translatable database strings for all languages."
 msgstr ""
 
 #, python-format
-msgid "overdue %s: %s"
+msgid "Showing translatable database strings for target language [%s]."
 msgstr ""
 
-#, python-format
-msgid "due in %s%s"
+msgid "Contribute translations to GNUmed community by email."
 msgstr ""
 
 msgid ""
-"Do you really want to\n"
-"delete this inbox message ?"
-msgstr ""
-
-msgid "Deleting inbox message"
-msgstr ""
-
-msgid "Export area: 1 item"
+"Before creating a new person review the encounter details\n"
+"of the patient you just worked on:\n"
 msgstr ""
 
-#, python-format
-msgid "Export area: %s items"
+msgid "Edit the current encounter of the patient you are ABOUT TO LEAVE:"
 msgstr ""
 
-#, python-format
-msgid "%s %s more not shown %s"
+msgid "Adding new person"
 msgstr ""
 
-#, python-format
-msgid "Currently %s entries in waiting list"
+msgid "ID exists !"
 msgstr ""
 
 #, python-format
-msgid "first (in GMd): %s, %s"
+msgid "One \"%s, %s (%s)\" already exists !"
 msgstr ""
 
 #, python-format
-msgid "last: %s, %s"
+msgid "%s \"%s, %s (%s)\" already exist !"
 msgstr ""
 
-#, python-format
-msgid "Last %s:"
+msgid "Must enter lastname."
 msgstr ""
 
-msgid "Statistics cover period"
+msgid "Must enter first name."
 msgstr ""
 
-#, python-format
-msgid "EDC (!?!): %s"
+msgid "Must select gender."
 msgstr ""
 
 msgid ""
-"The Expected Date of Confinement is rather questionable.\n"
-"\n"
-"Please check patient age, patient gender, time until/since EDC."
+"To properly create an address, all the related fields must be filled in."
 msgstr ""
 
-#, python-format
-msgid "%s Vacc: %s"
+msgid "Required fields"
 msgstr ""
 
-#, python-format
-msgid "%s %s %s%s"
+msgid "This field must contain an item selected from the dropdown list."
 msgstr ""
 
-#, python-format
-msgid "%s %s%s"
+msgid "Saving address"
 msgstr ""
 
-#, python-format
-msgid "** Currently hospitalized: %s **"
+msgid ""
+"Cannot save this address.\n"
+"\n"
+"You will have to add it via the Demographics plugin.\n"
 msgstr ""
 
-#, python-format
-msgid "emergency: %s"
+msgid ""
+"Address not saved.\n"
+"\n"
+"You will have to add it via the Demographics plugin.\n"
 msgstr ""
 
-#, python-format
-msgid "in-praxis: %s"
+msgid "You need to actually set an editor."
 msgstr ""
 
 #, python-format
-msgid "care: %s%s@%s"
-msgstr ""
-
-msgid "*** CONFIDENTIAL ***"
-msgstr ""
-
-msgid " (confidential !)"
+msgid "The command [%s] is not found."
 msgstr ""
 
 #, python-format
-msgid "extrnl: %s (%s@%s)"
+msgid ""
+"Enter the shell command with which to start\n"
+"the image editor for visual progress notes.\n"
+"\n"
+"Any \"%(img)s\" included with the arguments\n"
+"will be replaced by the file name of the\n"
+"note template."
 msgstr ""
 
-#, python-format
-msgid "aka: %(last)s, %(first)s%(nick)s"
+msgid "Choose file to use as template for new visual progress note"
 msgstr ""
 
-#, python-format
-msgid "job: %s (%s)"
+msgid "Visual progress note source"
 msgstr ""
 
-#, python-format
-msgid "issued by: %s%s"
+msgid "From which source do you want to pick the image template ?"
 msgstr ""
 
-#, python-format
-msgid "Last modified: %s"
+msgid "Database"
 msgstr ""
 
-#, python-format
-msgid ""
-"Activities:\n"
-"\n"
-"%s"
+msgid "List of templates in the database."
 msgstr ""
 
-msgid "Cloning name"
+msgid "Files in the filesystem."
 msgstr ""
 
-msgid "Editing external ID"
+msgid "Device"
 msgstr ""
 
-msgid "Adding new translation"
+msgid "Image capture devices (scanners, cameras, etc)"
 msgstr ""
 
-msgid "Editing translation"
+#, python-format
+msgid "Cannot export visual progress note template for [%s]."
 msgstr ""
 
-msgid "Selecting language for translation"
+msgid "Cannot export visual progress note to file."
 msgstr ""
 
-msgid ""
-"Please select the language the translations for which you want to work on."
+msgid "Editor for visual progress note not configured."
 msgstr ""
 
 #, python-format
 msgid ""
-"Are you sure you want to delete the translation of:\n"
-"\n"
-"%s\n"
-"\n"
-"into [%s] as:\n"
+"There was a problem with running the editor\n"
+"for visual progress notes.\n"
 "\n"
-"%s\n"
+" [%s]\n"
 "\n"
-"?  (Note that you must know the database administrator password !)\n"
-msgstr ""
-
-msgid "Deleting translation from database"
-msgstr ""
-
-msgid "deleting a translation"
-msgstr ""
-
-msgid "Contributing translations"
-msgstr ""
-
-msgid "Do you want to contribute your translations to the GNUmed project ?"
-msgstr ""
-
-msgid ""
-"Unable to send mail. Cannot contribute translations to GNUmed community."
-msgstr ""
-
-msgid "Thank you for your contribution to the GNUmed community!"
 msgstr ""
 
-msgid "Showing translatable database strings for all languages."
+msgid "Editing visual progress note"
 msgstr ""
 
 #, python-format
-msgid "Showing translatable database strings for target language [%s]."
-msgstr ""
-
-msgid "Contribute translations to GNUmed community by email."
-msgstr ""
-
 msgid ""
-"Before creating a new person review the encounter details\n"
-"of the patient you just worked on:\n"
+"There was a problem reading the visual\n"
+"progress note from the file:\n"
+"\n"
+" [%s]\n"
+"\n"
 msgstr ""
 
-msgid "Edit the current encounter of the patient you are ABOUT TO LEAVE:"
+msgid "Saving visual progress note"
 msgstr ""
 
-msgid "Adding new person"
+msgid ""
+"You either created a visual progress note from a template\n"
+"in the database (rather than from a file on disk) or you\n"
+"edited an existing visual progress note.\n"
+"\n"
+"The template/original was not modified at all, however.\n"
+"\n"
+"Do you still want to save the unmodified image as a\n"
+"visual progress note into the EMR of the patient ?\n"
 msgstr ""
 
-msgid "ID exists !"
+msgid "visual progress notes"
 msgstr ""
 
 #, python-format
-msgid "One \"%s, %s (%s)\" already exists !"
+msgid " [part 1 of %s]"
 msgstr ""
 
 #, python-format
-msgid "%s \"%s, %s (%s)\" already exist !"
-msgstr ""
-
-msgid "Must enter lastname."
-msgstr ""
-
-msgid "Must enter first name."
-msgstr ""
-
-msgid "Must select gender."
-msgstr ""
-
-msgid ""
-"To properly create an address, all the related fields must be filled in."
-msgstr ""
-
-msgid "Required fields"
-msgstr ""
-
-msgid "This field must contain an item selected from the dropdown list."
-msgstr ""
-
-msgid "Saving address"
-msgstr ""
-
-msgid ""
-"Cannot save this address.\n"
-"\n"
-"You will have to add it via the Demographics plugin.\n"
-msgstr ""
-
-msgid ""
-"Address not saved.\n"
-"\n"
-"You will have to add it via the Demographics plugin.\n"
+msgid "Created: %s%s"
 msgstr ""
 
 msgid "You must select a value from the picklist or type an exact match."
@@ -9513,7 +9876,8 @@ msgstr ""
 
 #, python-format
 msgid ""
-"%(street)s %(number)s, %(postcode)s %(urb)s, %(l10n_state)s, %(l10n_country)s"
+"%(street)s %(number)s, %(postcode)s %(urb)s, %(l10n_region)s, "
+"%(l10n_country)s"
 msgstr ""
 
 #, python-format
@@ -10100,7 +10464,7 @@ msgstr ""
 msgid ""
 "Cannot save address.\n"
 "\n"
-"Does the state [%s]\n"
+"Does the region [%s]\n"
 "exist in country [%s] ?"
 msgstr ""
 
@@ -10523,7 +10887,7 @@ msgstr ""
 msgid "Reminders for the current patient"
 msgstr ""
 
-msgid "Sent"
+msgid "Generated"
 msgstr ""
 
 msgid "Category - Type"
@@ -10571,9 +10935,6 @@ msgid ""
 "Data: %s"
 msgstr ""
 
-msgid "Inbox Message Actions:"
-msgstr ""
-
 msgid "Activate patient"
 msgstr ""
 
@@ -11261,7 +11622,7 @@ msgid ""
 msgstr ""
 
 #, python-format
-msgid "Select branch (of praxis [%s]) which you are logging in from.\n"
+msgid "Select the branch of praxis [%s] which you are logging in from.\n"
 msgstr ""
 
 msgid "Praxis branch selection ..."
@@ -11568,6 +11929,12 @@ msgstr ""
 msgid "List of addresses related to this person."
 msgstr ""
 
+msgid "Map"
+msgstr ""
+
+msgid "Show selected address on map"
+msgstr ""
+
 msgid "Adding new address"
 msgstr ""
 
@@ -11748,37 +12115,114 @@ msgstr ""
 msgid "generic multi choice dialog"
 msgstr ""
 
-msgid "Search in list"
+msgid "Deleting list items"
 msgstr ""
 
-msgid "Monty the Serpent && the FSF Present"
+#, python-format
+msgid ""
+"You have selected %s list items.\n"
+"\n"
+"Really delete all %s items ?"
 msgstr ""
 
-msgid "Free eMedicine"
+msgid ""
+"Select the items you want to work on.\n"
+"\n"
+"A discontinuous selection may depend on your holding down a platform-"
+"dependent modifier key (<CTRL>, <ALT>, etc) or key combination (eg. <CTRL-"
+"SHIFT> or <CTRL-ALT>) while clicking."
 msgstr ""
 
-#, python-format
-msgid "Version %s%s brought to you by"
+msgid "List Item Actions:"
 msgstr ""
 
-msgid "debug"
+msgid "Add (<INS>)"
 msgstr ""
 
-msgid "Please visit http://www.gnumed.org"
+msgid "Delete (<DEL>)"
+msgstr ""
+
+msgid "Find (<CTRL-F>)"
 msgstr ""
 
 #, python-format
-msgid ""
-"The following people kindly contributed to GNUmed.\n"
-"Please write to <gnumed-devel at gnu.org> to have your\n"
-"contribution duly recognized in this list or to have\n"
-"your name removed from it for, say, privacy reasons.\n"
-"\n"
-"Note that this list is sorted alphabetically by last\n"
-"name, first name. If the only identifier is an email\n"
-"address it is sorted under the first character of\n"
-"the user name.\n"
-"%s"
+msgid "Find next [%s] (<CTRL-N>)"
+msgstr ""
+
+msgid "Row tooltip"
+msgstr ""
+
+msgid "Row data (formatted as text)"
+msgstr ""
+
+msgid "Row content (as one line)"
+msgstr ""
+
+msgid "Row content (one line per column)"
+msgstr ""
+
+#, python-format
+msgid "Column &%s: \"%s\" [#%s]"
+msgstr ""
+
+#, python-format
+msgid "Column &%s: %s"
+msgstr ""
+
+msgid "&Copy to clipboard..."
+msgstr ""
+
+msgid "Append (&+) to clipboard..."
+msgstr ""
+
+#, python-format
+msgid ""
+"%s list items are selected.\n"
+"\n"
+"Really delete all %s items ?"
+msgstr ""
+
+msgid "Enter the search term:"
+msgstr ""
+
+msgid "List search"
+msgstr ""
+
+#, python-format
+msgid ""
+"Current search term: [[%s]]\n"
+"\n"
+"%s"
+msgstr ""
+
+msgid "Monty the Serpent && the FSF Present"
+msgstr ""
+
+msgid "Free eMedicine"
+msgstr ""
+
+#, python-format
+msgid "Version %s%s brought to you by"
+msgstr ""
+
+msgid "debug"
+msgstr ""
+
+msgid "Please visit http://www.gnumed.org"
+msgstr ""
+
+#, python-format
+msgid ""
+"The following people kindly contributed to GNUmed.\n"
+"Please write to <gnumed-devel at gnu.org> to have your\n"
+"contribution duly recognized in this list or to have\n"
+"your name removed from it for, say, privacy reasons.\n"
+"\n"
+"Note that this list is sorted alphabetically by last\n"
+"name, first name. If the only identifier is an email\n"
+"address it is sorted under the first character of\n"
+"the user name.\n"
+"%s"
 msgstr ""
 
 msgid "Started a new encounter for the active patient."
@@ -11898,6 +12342,9 @@ msgstr ""
 msgid "Unknown: ?"
 msgstr ""
 
+msgid "The text has been copied into the clipboard."
+msgstr ""
+
 msgid "file2clipboard"
 msgstr ""
 
@@ -11905,6 +12352,40 @@ msgstr ""
 msgid "The file [%s] has been copied into the clipboard."
 msgstr ""
 
+msgid "programmer forgot to specify error message"
+msgstr ""
+
+msgid ""
+"\n"
+"\n"
+"Please consult the error log for all the gory details !"
+msgstr ""
+
+msgid "generic error message"
+msgstr ""
+
+msgid "programmer forgot to specify info message"
+msgstr ""
+
+msgid "generic info message"
+msgstr ""
+
+msgid "programmer forgot to specify warning"
+msgstr ""
+
+msgid "generic warning message"
+msgstr ""
+
+msgid "Editing EDC"
+msgstr ""
+
+#, python-format
+msgid ""
+"Really delete the EDC documented previously ?\n"
+"\n"
+" EDC: %s"
+msgstr ""
+
 #, python-format
 msgid ""
 "Algorithm: %s\n"
@@ -12012,15 +12493,15 @@ msgstr ""
 msgid "Firstname"
 msgstr ""
 
-msgid "Nickname"
-msgstr ""
-
 msgid "DOB"
 msgstr ""
 
 msgid "last visit"
 msgstr ""
 
+msgid "Nickname / Comment"
+msgstr ""
+
 msgid "found via"
 msgstr ""
 
@@ -12198,1409 +12679,1298 @@ msgstr ""
 msgid "In case of emergency contact:"
 msgstr ""
 
+msgid "The preparation (form) of the substance or brand."
+msgstr ""
+
+msgid "A substance with optional strength or a brand."
+msgstr ""
+
+msgid "The medical aim for consuming this substance."
+msgstr ""
+
+msgid "not tolerated:"
+msgstr ""
+
+msgid "discontinued due to allergy or intolerance"
+msgstr ""
+
+msgid "Documented an allergy"
+msgstr ""
+
+#, python-format
 msgid ""
+"An allergy was documented against the substance:\n"
 "\n"
-"Please select the default drug data source from the list below.\n"
+"  [%s]\n"
 "\n"
-"Note that to actually use it you need to have the database installed, too."
+"This substance was taken with the multi-component brand:\n"
+"\n"
+"  [%s (%s)]\n"
+"\n"
+"Note that ALL components of this brand were discontinued."
 msgstr ""
 
-msgid "Drug data source"
+msgid "disapproved"
 msgstr ""
 
-msgid "Configuring default drug data source"
+msgid "Substances consumed by the patient:"
 msgstr ""
 
-msgid "No default drug database configured."
+msgid "Showing consumable substances."
 msgstr ""
 
-msgid "There is no default drug database configured."
+msgid "Application"
 msgstr ""
 
-msgid "Jumping to drug database"
+msgid "never"
 msgstr ""
 
 #, python-format
-msgid "Cannot call IFAP via [%s]."
+msgid "%s, last confirmed %s\n"
 msgstr ""
 
 #, python-format
-msgid "Cannot create IFAP <-> GNUmed transfer file [%s]."
+msgid "Comment (%s): %%s\n"
 msgstr ""
 
-msgid "Current medication"
+msgid "reaction not recorded"
 msgstr ""
 
-msgid ""
-"\n"
-"The ATC codes as known to GNUmed.\n"
+msgid "GFR: unknown"
 msgstr ""
 
-msgid "Showing ATC codes."
+msgid "GFR reported by path lab"
 msgstr ""
 
-msgid "Choose an ATC import config file"
+msgid "<no components>"
 msgstr ""
 
-msgid "config files"
+msgid "Adding substance intake entry"
 msgstr ""
 
-msgid "importing ATC reference data"
+#, python-format
+msgid ""
+"The patient is already taking\n"
+"\n"
+" %s\n"
+"\n"
+"You will want to adjust the schedule\n"
+"rather than document the intake twice."
 msgstr ""
 
-msgid "Successfully imported ATC reference data."
+msgid "Input incomplete/invalid for saving as substance intake."
 msgstr ""
 
-msgid "Importing ATC reference data failed."
+#, python-format
+msgid "Discontinued (%s) in the future (now: %s)!"
 msgstr ""
 
-msgid "Select an ATC (Anatomical-Therapeutic-Chemical) code."
+#, python-format
+msgid "Discontinued (%s) before started (%s) !"
 msgstr ""
 
-msgid "Cannot delete this substance. It is in use."
+msgid "Cannot add duplicate of (maybe inactive) substance intake."
 msgstr ""
 
+#, python-format
 msgid ""
 "\n"
-"These are the consumable substances registered with GNUmed.\n"
+"[%s]\n"
+"\n"
+"It may be prudent to edit (before deletion) the details\n"
+"of this substance intake entry so as to leave behind\n"
+"some indication of why it was deleted.\n"
 msgstr ""
 
-msgid "Showing consumable substances."
+msgid "Deleting medication / substance intake"
 msgstr ""
 
-msgid "Import"
+msgid "Allow editing of substance intake entry before deletion."
 msgstr ""
 
-msgid "Import consumable substances from a drug database."
+msgid "Delete immediately without editing first."
 msgstr ""
 
-msgid "Cannot edit this substance. It is in use."
+msgid "&Cancel"
 msgstr ""
 
-msgid "Adding new consumable substance"
+msgid "Abort. Do not delete or edit substance intake entry."
 msgstr ""
 
-msgid "Editing consumable substance"
+msgid "Now delete substance intake entry ?"
 msgstr ""
 
-msgid "Cannot save consumable substance. Missing essential input."
+msgid "Adding medication/non-medication substance intake"
 msgstr ""
 
-#, python-format
-msgid "Cannot save consumable substance. %s"
+msgid "Editing medication/non-medication substance intake"
 msgstr ""
 
-msgid "Cannot remove this component from the drug. It is in use."
+msgid "Document an allergy against this substance."
 msgstr ""
 
-msgid ""
-"\n"
-"These are the components in the drug brands known to GNUmed.\n"
+msgid "No medication list template configured."
 msgstr ""
 
-msgid "Showing drug brand components."
+msgid "There is no medication list template configured."
 msgstr ""
 
-msgid "Adding new drug component"
+msgid "Problem loading medication list template."
 msgstr ""
 
-msgid "Editing drug component"
+#, python-format
+msgid "Cannot load medication list template [%s - %s]"
 msgstr ""
 
-msgid "Cannot edit drug component. It is in use."
+msgid "generated medication list document"
 msgstr ""
 
-msgid "Cannot save drug component. Invalid or missing essential input."
+msgid "Select the default prescription template:"
 msgstr ""
 
-msgid "A drug component with optional strength."
+msgid "No prescription template configured."
 msgstr ""
 
-msgid "The preparation (form) of the substance or brand."
+msgid "There is no prescription template configured."
 msgstr ""
 
-msgid "The substance with optional strength."
+msgid "Printing prescription"
 msgstr ""
 
-msgid "Managing components of a drug"
+msgid "Problem loading prescription template."
 msgstr ""
 
 #, python-format
+msgid "Cannot load prescription template [%s - %s]"
+msgstr ""
+
+msgid "generated prescription"
+msgstr ""
+
 msgid ""
-"Cannot manage the components of the branded drug product\n"
-"\n"
-" \"%s\" (%s)\n"
+"These brands have been prescribed but are not listed\n"
+"in the current medication list of this patient.\n"
 "\n"
-"because it is currently taken by patients.\n"
+"Please select those you want added to the medication list."
 msgstr ""
 
-msgid "Pick the substances which are components of this drug."
+msgid "Newly prescribed drugs"
 msgstr ""
 
-msgid "Components of drug"
+msgid "Add to medication list"
 msgstr ""
 
-#, python-format
-msgid ""
-"Adjust the components of \"%s\"\n"
-"\n"
-"The drug must contain at least one component. Any given\n"
-"substance can only be included once per drug."
+msgid "Timeframe"
 msgstr ""
 
-msgid "Managing components of a drug ..."
+#, python-format
+msgid "%s <fake>"
 msgstr ""
 
-msgid "not in use"
+msgid "Cannot edit more than one substance at once."
 msgstr ""
 
-#, python-format
-msgid "ATC: %s\n"
+msgid "Cannot delete more than one substance at once."
 msgstr ""
 
-msgid "Editing medication"
+msgid "Cannot create allergy from more than one substance at once."
 msgstr ""
 
-#, python-format
 msgid ""
-"Cannot edit the medication\n"
 "\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is a vaccine. Please edit it\n"
-"from the vaccine management section !\n"
+"Select the measurements panel to show in the medications plugin.\n"
 msgstr ""
 
-msgid "Deleting medication"
+msgid "Measurements panel"
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot delete the medication\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is a vaccine. Please delete it\n"
-"from the vaccine management section !\n"
+msgid "Configuring medications plugin measurements panel"
 msgstr ""
 
-msgid ""
-"\n"
-"These are the drug brands known to GNUmed.\n"
+msgid "EDC (!?!):"
 msgstr ""
 
-msgid "Showing branded drugs."
+msgid "EDC:"
 msgstr ""
 
-msgid "Import substances and brands from a drug database."
+#, python-format
+msgid "%.1f (%s ago)"
 msgstr ""
 
-msgid "Editing drug"
+msgid "eGFR:"
 msgstr ""
 
 #, python-format
-msgid ""
-"Cannot edit the branded drug product\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is currently taken by patients.\n"
+msgid "eGFR: %.1f (%s)"
 msgstr ""
 
-msgid "Adding new drug brand"
+msgid "Enter vaccination given"
 msgstr ""
 
-msgid "Editing drug brand"
+msgid "Unsaved progress note"
 msgstr ""
 
-msgid "Manage consumable substances"
+msgid ""
+"This progress note has not been saved yet.\n"
+"\n"
+"Do you want to save it or discard it ?\n"
+"\n"
 msgstr ""
 
-msgid "Cannot edit drug brand. It is in use."
+msgid "Save this progress note"
 msgstr ""
 
-msgid "Checking brand data"
+msgid "Discard this progress note"
 msgstr ""
 
-#, python-format
-msgid ""
-"The brand information you entered:\n"
-"\n"
-" [%s %s]\n"
-"\n"
-"already exists as a drug product."
+msgid "Save all remaining unsaved progress notes"
 msgstr ""
 
 msgid ""
-"You have not selected any substances\n"
-"as drug components.\n"
-"\n"
-"Without components you will not be able to\n"
-"use this drug for documenting patient care.\n"
+"Add editor for a new unassociated progress note.\n"
 "\n"
-"Are you sure you want to save\n"
-"it without components ?"
+"There is a configuration option whether or not to\n"
+"allow several new unassociated progress notes at once."
 msgstr ""
 
-msgid "Cannot save branded drug. Invalid or missing essential input."
+msgid "Save progress note into medical record and close this editor."
 msgstr ""
 
-msgid ""
-"The brand name of the drug.\n"
-"\n"
-"Note: a brand name will need to be linked to\n"
-"one or more components before it can be used,\n"
-"except in the case of fake (generic) vaccines."
+msgid "Clear this progress note editor."
 msgstr ""
 
-msgid "The medical aim for consuming this substance."
+msgid ""
+"Discard progress note and close this editor. You will loose any data already "
+"typed into this editor !"
 msgstr ""
 
-msgid "not tolerated:"
+msgid "Problem saving progress note: duplicate information ?"
 msgstr ""
 
-msgid "discontinued due to allergy or intolerance"
+msgid "label missing"
 msgstr ""
 
-msgid "Documented an allergy"
+msgid "soap cat missing"
 msgstr ""
 
-#, python-format
-msgid ""
-"An allergy was documented against the substance:\n"
-"\n"
-"  [%s]\n"
-"\n"
-"This substance was taken with the multi-component brand:\n"
-"\n"
-"  [%s (%s)]\n"
-"\n"
-"Note that ALL components of this brand were discontinued."
+msgid "Enter a descriptive name for this new problem:"
 msgstr ""
 
-msgid "disapproved"
+msgid "Creating a problem (episode) to save the notelet under ..."
 msgstr ""
 
-msgid "Substances consumed by the patient:"
+msgid "Error saving progress note."
 msgstr ""
 
-msgid "Intake"
+msgid "Error saving embedded data."
 msgstr ""
 
-msgid "Application"
+msgid "Visit Purpose"
 msgstr ""
 
-msgid "never"
+msgid "History Taken"
 msgstr ""
 
-#, python-format
-msgid "%s, last confirmed %s\n"
+msgid "Findings"
 msgstr ""
 
-#, python-format
-msgid "Comment (%s): %%s\n"
+msgid "save"
 msgstr ""
 
-msgid "reaction not recorded"
+msgid "save clinical note in EMR"
 msgstr ""
 
-msgid "GFR: unknown"
+msgid "discard"
 msgstr ""
 
-msgid "GFR reported by path lab"
+msgid "discard clinical note"
 msgstr ""
 
-#, python-format
-msgid ""
-"The patient is already taking\n"
-"\n"
-" %s\n"
-"\n"
-"You will want to adjust the schedule\n"
-"rather than document the intake twice."
+msgid "clinical progress note"
 msgstr ""
 
-msgid "Adding substance intake entry"
+msgid "Select files to add to the export area"
 msgstr ""
 
-msgid "Input incomplete/invalid for saving as substance intake."
+msgid "Adding files to export area"
 msgstr ""
 
 #, python-format
-msgid "Discontinued (%s) in the future (now: %s)!"
+msgid ""
+"Cannot add (some of) the following files to the export area:\n"
+"%s "
 msgstr ""
 
-#, python-format
-msgid "Discontinued (%s) before started (%s) !"
+msgid "Select the documents to be put into the export area:"
 msgstr ""
 
-msgid "Cannot add duplicate of (maybe inactive) substance intake."
+msgid "clipboard"
+msgstr ""
+
+msgid "Loading clipboard item (saved to file) into export area"
 msgstr ""
 
 #, python-format
 msgid ""
-"\n"
-"[%s]\n"
-"\n"
-"It may be prudent to edit (before deletion) the details\n"
-"of this substance intake entry so as to leave behind\n"
-"some indication of why it was deleted.\n"
+"Cannot add the following clip to the export area:\n"
+"%s "
 msgstr ""
 
-msgid "Deleting medication / substance intake"
+msgid "scan"
 msgstr ""
 
-msgid "Allow editing of substance intake entry before deletion."
+msgid "Scanning files into export area"
 msgstr ""
 
-msgid "Delete immediately without editing first."
+#, python-format
+msgid ""
+"Cannot add (some of) the following scans to the export area:\n"
+"%s "
 msgstr ""
 
-msgid "&Cancel"
+msgid "Deleting document from export area."
 msgstr ""
 
-msgid "Abort. Do not delete or edit substance intake entry."
+#, python-format
+msgid ""
+"Really remove %s selected document(s)\n"
+"from the patient export area ?"
 msgstr ""
 
-msgid "Now delete substance intake entry ?"
+msgid "Error printing documents."
 msgstr ""
 
-msgid "Adding medication/non-medication substance intake"
+#, python-format
+msgid "Printing [%s]"
 msgstr ""
 
-msgid "Editing medication/non-medication substance intake"
+#, python-format
+msgid ""
+"Printed:\n"
+" - %s"
 msgstr ""
 
-msgid "Document an allergy against this substance."
+msgid "Select the directory into which to export the documents."
 msgstr ""
 
-msgid "No medication list template configured."
+msgid "Saving export area documents"
 msgstr ""
 
-msgid "There is no medication list template configured."
+#, python-format
+msgid ""
+"The chosen export directory\n"
+"\n"
+" [%s]\n"
+"\n"
+"already contains files. Do you still want to save the\n"
+"selected export area documents into that directory ?\n"
+"\n"
+"(this is useful for including the external documents\n"
+" already stored in or below this directory)\n"
+"\n"
+"[NO] will create a subdirectory for you and use that."
 msgstr ""
 
-msgid "Problem loading medication list template."
+msgid ""
+"Create descriptive metadata files\n"
+"and save them alongside the\n"
+"selected export area documents ?"
 msgstr ""
 
 #, python-format
-msgid "Cannot load medication list template [%s - %s]"
+msgid ""
+"Saved to [%s]:\n"
+" - %s"
 msgstr ""
 
-msgid "generated medication list document"
+#, python-format
+msgid ""
+"Saved documents into directory:\n"
+"\n"
+" %s"
 msgstr ""
 
-msgid "Select the default prescription template:"
+msgid "If you wish to include an existing directory select it here:"
 msgstr ""
 
-msgid "No prescription template configured."
+msgid "Error burning documents to CD/DVD."
 msgstr ""
 
-msgid "There is no prescription template configured."
+msgid "Burning documents"
 msgstr ""
 
-msgid "Printing prescription"
+#, python-format
+msgid ""
+"Burned onto CD/DVD:\n"
+" - %s"
 msgstr ""
 
-msgid "Problem loading prescription template."
+msgid "Error mailing documents."
 msgstr ""
 
-#, python-format
-msgid "Cannot load prescription template [%s - %s]"
+msgid "Mailing documents"
 msgstr ""
 
-msgid "generated prescription"
+#, python-format
+msgid ""
+"Mailed:\n"
+" - %s"
 msgstr ""
 
 msgid ""
-"These brands have been prescribed but are not listed\n"
-"in the current medication list of this patient.\n"
+"Please enter the fax number here !\n"
 "\n"
-"Please select those you want added to the medication list."
+"It can be left empty if the external\n"
+"fax software knows how to get the number."
 msgstr ""
 
-msgid "Newly prescribed drugs"
+msgid "Faxing documents"
 msgstr ""
 
-msgid "Add to medication list"
+#, python-format
+msgid ""
+"Error faxing documents to\n"
+"\n"
+"  %s"
 msgstr ""
 
-msgid "Duration / Until"
+#, python-format
+msgid ""
+"Faxed to [%s]:\n"
+" - %s"
 msgstr ""
 
-#, python-format
-msgid "%s <fake>"
+msgid "<gm-mail_doc(.bat) not found>"
 msgstr ""
 
-msgid "Cannot edit more than one substance at once."
+msgid "<gm-fax_doc(.bat) not found>"
 msgstr ""
 
-msgid "Cannot delete more than one substance at once."
+msgid "<gm-burn_doc(.bat) not found>"
 msgstr ""
 
-msgid "Cannot create allergy from more than one substance at once."
+msgid "Cannot accept new documents. No active patient."
 msgstr ""
 
-msgid ""
-"\n"
-"Select the measurements panel to show in the medications plugin.\n"
+#, python-format
+msgid "Extracting files from folder [%s] ..."
 msgstr ""
 
-msgid "Measurements panel"
+msgid "Drag&Drop"
 msgstr ""
 
-msgid "Configuring medications plugin measurements panel"
+msgid "Created"
 msgstr ""
 
-msgid "EDC (!?!):"
+#, python-format
+msgid ""
+"Error exporting form template\n"
+"\n"
+" \"%s\" (%s)"
 msgstr ""
 
-msgid "EDC:"
+msgid "Letter template export"
 msgstr ""
 
-#, python-format
-msgid "%.1f (%s ago)"
+msgid ""
+"Cannot connect to OpenOffice.\n"
+"\n"
+"The UNO bridge module for Python\n"
+"is not installed."
 msgstr ""
 
-msgid "eGFR:"
+msgid "Letter writer"
 msgstr ""
 
 #, python-format
-msgid "%s%s%s (%s ago)"
+msgid ""
+"Cannot connect to OpenOffice.\n"
+"\n"
+"You may want to increase the option\n"
+"\n"
+" <%s>"
 msgstr ""
 
-#, python-format
-msgid "eGFR: %.1f (%s)"
+msgid "OOo startup time"
 msgstr ""
 
-msgid "Enter vaccination given"
+msgid "No document template selected."
 msgstr ""
 
-msgid "Unsaved progress note"
+#, python-format
+msgid "Invalid document template [%s - %s (%s)]"
 msgstr ""
 
-msgid ""
-"This progress note has not been saved yet.\n"
-"\n"
-"Do you want to save it or discard it ?\n"
-"\n"
+msgid "Generating document from template"
 msgstr ""
 
-msgid "Save this progress note"
+msgid "Error generating document printout."
 msgstr ""
 
-msgid "Discard this progress note"
+msgid "Generating document printout"
 msgstr ""
 
-msgid "Save all remaining unsaved progress notes"
+#, python-format
+msgid "Printed: %s"
 msgstr ""
 
-msgid ""
-"Add editor for a new unassociated progress note.\n"
-"\n"
-"There is a configuration option whether or not to\n"
-"allow several new unassociated progress notes at once."
+msgid "Adding new form template"
 msgstr ""
 
-msgid "Save progress note into medical record and close this editor."
+msgid "Editing form template"
 msgstr ""
 
-msgid "Clear this progress note editor."
+msgid "Deleting form template."
 msgstr ""
 
+#, python-format
 msgid ""
-"Discard progress note and close this editor. You will loose any data already "
-"typed into this editor !"
-msgstr ""
-
-msgid "Problem saving progress note: duplicate information ?"
+"Are you sure you want to delete\n"
+"the following form template ?\n"
+"\n"
+" \"%s (%s)\"\n"
+"\n"
+"You can only delete templates which\n"
+"have not yet been used to generate\n"
+"any forms from."
 msgstr ""
 
-msgid "label missing"
+msgid "Select letter or form template."
 msgstr ""
 
-msgid "soap cat missing"
+msgid "You must select a template file before saving."
 msgstr ""
 
-msgid "Enter a descriptive name for this new problem:"
+msgid "You must enter a type for documents created with this template."
 msgstr ""
 
-msgid "Creating a problem (episode) to save the notelet under ..."
+msgid "You must enter a type for this template."
 msgstr ""
 
-msgid "Error saving progress note."
+msgid "You must enter a version for this template."
 msgstr ""
 
-msgid "Error saving embedded data."
+msgid "Missing short name for template."
 msgstr ""
 
-msgid "Visit Purpose"
+msgid "Missing long name for template."
 msgstr ""
 
-msgid "History Taken"
+#, python-format
+msgid "last modified %s by %s"
 msgstr ""
 
-msgid "Findings"
+msgid "Choose a form template file"
 msgstr ""
 
-msgid "save"
+msgid "Enter a filename to save the template to"
 msgstr ""
 
-msgid "save clinical note in EMR"
+msgid "Emergency contact"
 msgstr ""
 
-msgid "discard"
+msgid "Primary doctor"
 msgstr ""
 
-msgid "discard clinical note"
+msgid "in-praxis primary provider"
 msgstr ""
 
-msgid "clinical progress note"
+msgid "This praxis"
 msgstr ""
 
-msgid "Select files to add to the export area"
+msgid "Bill receiver"
 msgstr ""
 
-msgid "Adding files to export area"
+msgid "Receiver"
 msgstr ""
 
-#, python-format
 msgid ""
-"Cannot add (some of) the following files to the export area:\n"
-"%s "
-msgstr ""
-
-msgid "Select the documents to be put into the export area:"
+"Are you sure you want to delete this\n"
+"description from the document ?\n"
 msgstr ""
 
-msgid "clipboard"
+msgid "Deleting document description"
 msgstr ""
 
-msgid "Loading clipboard item (saved to file) into export area"
+msgid "Adding document description"
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot add the following clip to the export area:\n"
-"%s "
+msgid "Below you can add a document description.\n"
 msgstr ""
 
-msgid "scan"
+msgid "Editing document description"
 msgstr ""
 
-msgid "Scanning files into export area"
+msgid "Below you can edit the document description.\n"
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot add (some of) the following scans to the export area:\n"
-"%s "
+msgid "Select the description you are interested in.\n"
 msgstr ""
 
-msgid "Deleting document from export area."
+msgid "Managing document descriptions"
 msgstr ""
 
-#, python-format
-msgid ""
-"Really remove %s selected document(s)\n"
-"from the patient export area ?"
+msgid "Select the episode under which to file the document ..."
 msgstr ""
 
-msgid "Error printing documents."
+msgid "Cannot create new document."
 msgstr ""
 
-#, python-format
-msgid "Printing [%s]"
+msgid "saving document"
 msgstr ""
 
 #, python-format
-msgid ""
-"Printed:\n"
-" - %s"
+msgid "Imported new document from %s."
 msgstr ""
 
-msgid "Select the directory into which to export the documents."
+msgid "Successfully saved new document."
 msgstr ""
 
-msgid "Saving export area documents"
+msgid "Successfully saved the new document."
 msgstr ""
 
 #, python-format
 msgid ""
-"The chosen export directory\n"
-"\n"
-" [%s]\n"
+"The reference ID for the new document is:\n"
 "\n"
-"is not empty. Do you want to use it for saving the\n"
-"export area documents into, nevertheless ?\n"
+" <%s>\n"
 "\n"
-"(this can be useful for including external documents)\n"
+"You probably want to write it down on the\n"
+"original documents.\n"
 "\n"
-"[NO] will create a subdirectory for you and use that."
+"If you don't care about the ID you can switch\n"
+"off this message in the GNUmed configuration.\n"
 msgstr ""
 
-#, python-format
-msgid ""
-"Saved to [%s]:\n"
-" - %s"
+msgid "Saving document"
 msgstr ""
 
 #, python-format
 msgid ""
-"Saved documents into directory:\n"
+"Successfully imported files as document.\n"
 "\n"
-" %s"
+"Do you want to delete imported files from the filesystem ?\n"
+"\n"
+" %s\n"
+"\n"
+"Note that temporary files will be deleted anyway."
 msgstr ""
 
-msgid "If you wish to include an existing directory select it here:"
+msgid "Removing files"
 msgstr ""
 
-msgid "Error burning documents to CD/DVD."
+msgid "Enter a comment on the document."
 msgstr ""
 
-msgid "Burning documents"
+msgid "User defined"
 msgstr ""
 
-#, python-format
-msgid ""
-"Burned onto CD/DVD:\n"
-" - %s"
+msgid "In use"
 msgstr ""
 
-msgid "Error mailing documents."
+#, python-format
+msgid ""
+"Cannot delete document type\n"
+" [%s]\n"
+"because it is currently in use."
 msgstr ""
 
-msgid "Mailing documents"
+msgid "deleting document type"
 msgstr ""
 
 #, python-format
 msgid ""
-"Mailed:\n"
-" - %s"
+"From the list below select the document type you want\n"
+"all documents currently classified as:\n"
+"\n"
+" \"%s\"\n"
+"\n"
+"to be changed to.\n"
+"\n"
+"Be aware that this change will be applied to ALL such documents. If there\n"
+"are many documents to change it can take quite a while.\n"
+"\n"
+"Make sure this is what you want to happen !\n"
 msgstr ""
 
-msgid ""
-"Please enter the fax number here !\n"
-"\n"
-"It can be left empty if the external\n"
-"fax software knows how to get the number."
+msgid "Reassigning document type"
 msgstr ""
 
-msgid "Faxing documents"
+msgid "Select the document type."
 msgstr ""
 
-#, python-format
-msgid ""
-"Error faxing documents to\n"
-"\n"
-"  %s"
+msgid "Cannot create document type without name."
 msgstr ""
 
-#, python-format
-msgid ""
-"Faxed to [%s]:\n"
-" - %s"
+msgid "+/-"
 msgstr ""
 
-msgid "<gm-mail_doc(.bat) not found>"
+msgid "!"
 msgstr ""
 
-msgid "<gm-fax_doc(.bat) not found>"
+msgid "comment"
 msgstr ""
 
-msgid "<gm-burn_doc(.bat) not found>"
+msgid "(you are the primary reviewer)"
 msgstr ""
 
-msgid "Cannot accept new documents. No active patient."
+#, python-format
+msgid "(someone else is the intended reviewer: %s)"
 msgstr ""
 
 #, python-format
-msgid "Extracting files from folder [%s] ..."
+msgid ""
+"Cannot create episode\n"
+" [%s]"
 msgstr ""
 
-msgid "Drag&Drop"
+msgid "Editing document properties"
 msgstr ""
 
-msgid "Created"
+#, python-format
+msgid "Cannot change document type to [%s]."
 msgstr ""
 
 #, python-format
 msgid ""
-"Error exporting form template\n"
+"Cannot link the document to episode\n"
 "\n"
-" \"%s\" (%s)"
+" [%s]"
 msgstr ""
 
-msgid "Letter template export"
+msgid "Error setting \"reviewed\" status of this document."
 msgstr ""
 
-msgid ""
-"Cannot connect to OpenOffice.\n"
-"\n"
-"The UNO bridge module for Python\n"
-"is not installed."
+msgid "Error setting responsible clinician for this document."
 msgstr ""
 
-msgid "Letter writer"
+msgid "Error setting \"reviewed\" status of this part."
 msgstr ""
 
 #, python-format
 msgid ""
-"Cannot connect to OpenOffice.\n"
+"Cannot set page number to [%s] because\n"
+"another page with this number exists.\n"
 "\n"
-"You may want to increase the option\n"
+"Page numbers in use:\n"
 "\n"
-" <%s>"
+" %s"
 msgstr ""
 
-msgid "OOo startup time"
+msgid "Editing document part properties"
 msgstr ""
 
-msgid "No document template selected."
+msgid "Error saving part properties."
 msgstr ""
 
-#, python-format
-msgid "Invalid document template [%s - %s (%s)]"
+msgid ""
+"No images could be acquired from the source.\n"
+"\n"
+"This may mean the scanner driver is not properly installed.\n"
+"\n"
+"On Windows you must install the TWAIN Python module\n"
+"while on Linux and MacOSX it is recommended to install\n"
+"the XSane package."
 msgstr ""
 
-msgid "Generating document from template"
+msgid "Acquiring images"
 msgstr ""
 
-msgid "Error generating document printout."
+msgid "directory dropped on client"
 msgstr ""
 
-msgid "Generating document printout"
+msgid "file dropped on client"
 msgstr ""
 
-#, python-format
-msgid "Printed: %s"
+msgid "other documents"
 msgstr ""
 
-msgid "Adding new form template"
+msgid "path"
 msgstr ""
 
-msgid "Editing form template"
+msgid "No parts to save. Really save an empty document as a reference ?"
 msgstr ""
 
-msgid "Deleting form template."
+msgid "No parts to save. Aquire some parts first."
 msgstr ""
 
-#, python-format
-msgid ""
-"Are you sure you want to delete\n"
-"the following form template ?\n"
-"\n"
-" \"%s (%s)\"\n"
-"\n"
-"You can only delete templates which\n"
-"have not yet been used to generate\n"
-"any forms from."
+msgid "No document type applied. Choose a document type"
 msgstr ""
 
-msgid "Select letter or form template."
+msgid "You must select an episode to save this document under."
 msgstr ""
 
-msgid "You must select a template file before saving."
+msgid ""
+"You need to select from the list of staff members the doctor who is intended "
+"to sign the document."
 msgstr ""
 
-msgid "You must enter a type for documents created with this template."
+msgid "There is no scanner support installed on this machine."
 msgstr ""
 
-msgid "You must enter a type for this template."
+msgid "Cannot find an active scanner."
 msgstr ""
 
-msgid "You must enter a version for this template."
+msgid "Select an image capture device"
 msgstr ""
 
-msgid "Missing short name for template."
+msgid "device selection"
 msgstr ""
 
-msgid "Missing long name for template."
+msgid ""
+"No pages could be acquired from the source.\n"
+"\n"
+"This may mean the scanner driver is not properly installed.\n"
+"\n"
+"On Windows you must install the TWAIN Python module\n"
+"while on Linux and MacOSX it is recommended to install\n"
+"the XSane package."
 msgstr ""
 
-#, python-format
-msgid "last modified %s by %s"
+msgid "acquiring page"
 msgstr ""
 
-msgid "Choose a form template file"
+msgid "captured by imaging device"
 msgstr ""
 
-msgid "Enter a filename to save the template to"
+msgid "Choose a file"
 msgstr ""
 
-msgid "Emergency contact"
+msgid "all files (Win)"
 msgstr ""
 
-msgid "Primary doctor"
+msgid "picked from storage media"
 msgstr ""
 
-msgid "in-praxis primary provider"
+msgid "pasted from clipboard"
 msgstr ""
 
-msgid "This praxis"
+msgid "No part selected for viewing."
 msgstr ""
 
-msgid "Hospital stay"
+#, python-format
+msgid ""
+"Cannot display document part:\n"
+"%s"
 msgstr ""
 
-msgid "Bill receiver"
+msgid "displaying part"
 msgstr ""
 
-msgid "Receiver"
+msgid "No part selected for removal."
 msgstr ""
 
-msgid ""
-"Are you sure you want to delete this\n"
-"description from the document ?\n"
+msgid "Cannot add document description."
 msgstr ""
 
-msgid "Deleting document description"
+msgid "Error setting \"reviewed\" status of new document."
 msgstr ""
 
-msgid "Adding document description"
+#, python-format
+msgid ""
+"Source: %s\n"
+"File: %s\n"
+"\n"
+"%s"
 msgstr ""
 
-msgid "Below you can add a document description.\n"
+msgid "Document part does not seem to exist in database !"
 msgstr ""
 
-msgid "Editing document description"
+msgid "showing document"
 msgstr ""
 
-msgid "Below you can edit the document description.\n"
+msgid "Document list for this patient."
 msgstr ""
 
-msgid "Select the description you are interested in.\n"
+msgid "Showing documents."
 msgstr ""
 
-msgid "Managing document descriptions"
+msgid "Ref #"
 msgstr ""
 
-msgid "Select the episode under which to file the document ..."
+#, python-format
+msgid "available documents (%s)"
 msgstr ""
 
 #, python-format
-msgid "Imported new document from %s."
+msgid "unsigned (%s) on top"
 msgstr ""
 
-msgid "Enter a comment on the document."
+msgid "most recent on top"
 msgstr ""
 
-msgid "User defined"
+msgid "sorted by episode"
 msgstr ""
 
-msgid "In use"
+msgid "sorted by health issue"
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot delete document type\n"
-" [%s]\n"
-"because it is currently in use."
+msgid "sorted by type"
 msgstr ""
 
-msgid "deleting document type"
+msgid "Cannot load documents. No active patient."
 msgstr ""
 
-#, python-format
-msgid ""
-"From the list below select the document type you want\n"
-"all documents currently classified as:\n"
-"\n"
-" \"%s\"\n"
-"\n"
-"to be changed to.\n"
-"\n"
-"Be aware that this change will be applied to ALL such documents. If there\n"
-"are many documents to change it can take quite a while.\n"
-"\n"
-"Make sure this is what you want to happen !\n"
+msgid "Part Actions:"
 msgstr ""
 
-msgid "Reassigning document type"
+msgid "Display part"
 msgstr ""
 
-msgid "Select the document type."
+#, python-format
+msgid "%s Sign/Edit properties"
 msgstr ""
 
-msgid "Cannot create document type without name."
+msgid "Delete part"
 msgstr ""
 
-msgid "+/-"
+msgid "Move part"
 msgstr ""
 
-msgid "!"
+msgid "Print part"
 msgstr ""
 
-msgid "comment"
+msgid "Fax part"
 msgstr ""
 
-msgid "(you are the primary reviewer)"
+msgid "Mail part"
 msgstr ""
 
-#, python-format
-msgid "(someone else is the intended reviewer: %s)"
+msgid "Export part"
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot create episode\n"
-" [%s]"
+msgid "Document Actions:"
 msgstr ""
 
-msgid "Editing document properties"
+msgid "Delete document"
 msgstr ""
 
-#, python-format
-msgid "Cannot change document type to [%s]."
+msgid "Add parts"
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot link the document to episode\n"
-"\n"
-" [%s]"
+msgid "Add part from clipboard"
 msgstr ""
 
-msgid "Error setting \"reviewed\" status of this document."
+msgid "Print all parts"
 msgstr ""
 
-msgid "Error setting responsible clinician for this document."
+msgid "Fax all parts"
 msgstr ""
 
-msgid "Error setting \"reviewed\" status of this part."
+msgid "Mail all parts"
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot set page number to [%s] because\n"
-"another page with this number exists.\n"
-"\n"
-"Page numbers in use:\n"
-"\n"
-" %s"
+msgid "Export all parts"
 msgstr ""
 
-msgid "Editing document part properties"
+msgid "Access external original"
 msgstr ""
 
-msgid "Error saving part properties."
+msgid "Edit corresponding encounter"
 msgstr ""
 
-msgid ""
-"No images could be acquired from the source.\n"
-"\n"
-"This may mean the scanner driver is not properly installed.\n"
-"\n"
-"On Windows you must install the TWAIN Python module\n"
-"while on Linux and MacOSX it is recommended to install\n"
-"the XSane package."
+msgid "Select corresponding encounter"
 msgstr ""
 
-msgid "Acquiring images"
+msgid "Manage descriptions"
 msgstr ""
 
-msgid "other documents"
+msgid "Error searching documents."
 msgstr ""
 
-#, python-format
-msgid "part %s: %s"
+msgid "loading document list"
 msgstr ""
 
-msgid "saving document"
+#, python-format
+msgid "%s%7s %s:%s (%s)"
 msgstr ""
 
-msgid "No parts to save. Really save an empty document as a reference ?"
+#, python-format
+msgid "%s%7s (%s):%s (%s)"
 msgstr ""
 
-msgid "No parts to save. Aquire some parts first."
+#, python-format
+msgid "%s (unattributed episode)"
 msgstr ""
 
-msgid "No document type applied. Choose a document type"
+#, python-format
+msgid "part %2s"
 msgstr ""
 
-msgid "You must select an episode to save this document under."
+msgid "Activate as current photo"
 msgstr ""
 
 msgid ""
-"You need to select from the list of staff members the doctor who is intended "
-"to sign the document."
-msgstr ""
-
-msgid "There is no scanner support installed on this machine."
+"\n"
+"Select the document into which to move the selected part !\n"
 msgstr ""
 
-msgid "Cannot find an active scanner."
+msgid "Cannot move document part."
 msgstr ""
 
-msgid "Select an image capture device"
+msgid "Moving document part"
 msgstr ""
 
-msgid "device selection"
+msgid "Deleting document part"
 msgstr ""
 
+#, python-format
 msgid ""
-"No pages could be acquired from the source.\n"
+"Are you sure you want to delete the %s part #%s\n"
 "\n"
-"This may mean the scanner driver is not properly installed.\n"
+"%sfrom the following document\n"
 "\n"
-"On Windows you must install the TWAIN Python module\n"
-"while on Linux and MacOSX it is recommended to install\n"
-"the XSane package."
+" %s (%s)\n"
+"%s\n"
+"Really delete ?\n"
+"\n"
+"(this action cannot be reversed)"
 msgstr ""
 
-msgid "acquiring page"
+#, python-format
+msgid ""
+"Cannot %(l10n_action)s document part - %(l10n_action)s command not found.\n"
+"\n"
+"Either of gm-%(action)s_doc or gm-%(action)s_doc.bat\n"
+"must be in the execution path. The command will\n"
+"be passed the filename to %(l10n_action)s."
 msgstr ""
 
-msgid "Choose a file"
-msgstr ""
-
-msgid "all files (Win)"
-msgstr ""
-
-msgid "You must select a part before you can view it."
-msgstr ""
-
-msgid "displaying part"
-msgstr ""
-
-#, python-format
-msgid ""
-"Cannot display document part:\n"
-"%s"
-msgstr ""
-
-msgid "You must select a part before you can delete it."
-msgstr ""
-
-msgid "deleting part"
+#, python-format
+msgid "Processing document part: %s"
 msgstr ""
 
 #, python-format
 msgid ""
-"The part has successfully been removed from the document.\n"
-"\n"
-"Do you also want to permanently delete the file\n"
-"\n"
-" [%s]\n"
-"\n"
-"from which this document part was loaded ?\n"
+"Cannot %(l10n_action)s document part - %(l10n_action)s command failed.\n"
 "\n"
-"If it is a temporary file for a page you just scanned\n"
-"this makes a lot of sense. In other cases you may not\n"
-"want to lose the file.\n"
+"You may need to check and fix either of\n"
+" gm-%(action)s_doc (Unix/Mac) or\n"
+" gm-%(action)s_doc.bat (Windows)\n"
 "\n"
-"Pressing [YES] will permanently remove the file\n"
-"from your computer.\n"
-msgstr ""
-
-msgid "Removing document part"
+"The command is passed the filename to %(l10n_action)s."
 msgstr ""
 
 #, python-format
-msgid ""
-"Cannot delete part in file [%s].\n"
-"\n"
-"You may not have write access to it."
+msgid "document part handed over to email program: %s"
 msgstr ""
 
-msgid "Cannot create new document."
+msgid "print"
 msgstr ""
 
-msgid "Cannot update document metadata."
+msgid "fax"
 msgstr ""
 
-msgid "Cannot add document description."
+msgid "mail"
 msgstr ""
 
-msgid "Error setting \"reviewed\" status of new document."
+msgid "Save document part to directory ..."
 msgstr ""
 
-msgid "Successfully saved the new document."
+#, python-format
+msgid "Successfully exported document part as [%s]."
 msgstr ""
 
 #, python-format
 msgid ""
-"The reference ID for the new document is:\n"
-"\n"
-" <%s>\n"
-"\n"
-"You probably want to write it down on the\n"
-"original documents.\n"
+"Cannot %(l10n_action)s document - %(l10n_action)s command not found.\n"
 "\n"
-"If you don't care about the ID you can switch\n"
-"off this message in the GNUmed configuration."
-msgstr ""
-
-msgid "Saving document"
-msgstr ""
-
-msgid "Successfully saved new document."
-msgstr ""
-
-msgid "Document part does not seem to exist in database !"
-msgstr ""
-
-msgid "showing document"
-msgstr ""
-
-msgid "Document list for this patient."
-msgstr ""
-
-msgid "Showing documents."
-msgstr ""
-
-msgid "Generated"
-msgstr ""
-
-msgid "Ref #"
+"Either of gm-%(action)s_doc or gm-%(action)s_doc.bat\n"
+"must be in the execution path. The command will\n"
+"be passed a list of filenames to %(l10n_action)s."
 msgstr ""
 
 #, python-format
-msgid "available documents (%s)"
+msgid "Processing document: %s"
 msgstr ""
 
 #, python-format
-msgid "unsigned (%s) on top"
-msgstr ""
-
-msgid "most recent on top"
+msgid ""
+"Cannot %(l10n_action)s document - %(l10n_action)s command failed.\n"
+"\n"
+"You may need to check and fix either of\n"
+" gm-%(action)s_doc (Unix/Mac) or\n"
+" gm-%(action)s_doc.bat (Windows)\n"
+"\n"
+"The command is passed a list of filenames to %(l10n_action)s."
 msgstr ""
 
-msgid "sorted by episode"
+msgid "Really add the displayed clipboard item into the document ?"
 msgstr ""
 
-msgid "sorted by health issue"
+msgid "Document part from clipboard"
 msgstr ""
 
-msgid "sorted by type"
+msgid ""
+"Cannot access external document - access command not found.\n"
+"\n"
+"Either of gm_access_external_doc.sh or *.bat must be\n"
+"in the execution path. The command will be passed the\n"
+"document type and the reference URL for processing."
 msgstr ""
 
-msgid "Cannot load documents. No active patient."
+msgid "Accessing external document"
 msgstr ""
 
-msgid "Part Actions:"
+msgid ""
+"Cannot access external document - access command failed.\n"
+"\n"
+"You may need to check and fix either of\n"
+" gm_access_external_doc.sh (Unix/Mac) or\n"
+" gm_access_external_doc.bat (Windows)\n"
+"\n"
+"The command is passed the document type and the\n"
+"external reference URL on the command line."
 msgstr ""
 
-msgid "Display part"
+msgid "Save document into directory ..."
 msgstr ""
 
 #, python-format
-msgid "%s Sign/Edit properties"
-msgstr ""
-
-msgid "Delete part"
-msgstr ""
-
-msgid "Move part"
-msgstr ""
-
-msgid "Print part"
-msgstr ""
-
-msgid "Fax part"
-msgstr ""
-
-msgid "Mail part"
-msgstr ""
-
-msgid "Export part"
-msgstr ""
-
-msgid "Document Actions:"
-msgstr ""
-
-msgid "Delete document"
-msgstr ""
-
-msgid "Add parts"
-msgstr ""
-
-msgid "Add part from clipboard"
-msgstr ""
-
-msgid "Print all parts"
+msgid "Successfully exported %s parts into the directory [%s]."
 msgstr ""
 
-msgid "Fax all parts"
+msgid "Are you sure you want to delete the document ?"
 msgstr ""
 
-msgid "Mail all parts"
+msgid "Deleting document"
 msgstr ""
 
-msgid "Export all parts"
+msgid "Study date"
 msgstr ""
 
-msgid "Access external original"
+msgid "Study time"
 msgstr ""
 
-msgid "Edit corresponding encounter"
+msgid "Method"
 msgstr ""
 
-msgid "Select corresponding encounter"
+msgid "Body part"
 msgstr ""
 
-msgid "Manage descriptions"
+msgid "Time"
 msgstr ""
 
-msgid "Error searching documents."
+msgid "Cannot connect without port (try 8042)."
 msgstr ""
 
-msgid "loading document list"
+#, python-format
+msgid "Connect to [%s] @ port %s as \"%s\"."
 msgstr ""
 
-#, python-format
-msgid "%s%7s %s:%s (%s)"
+msgid "Cannot connect to PACS."
 msgstr ""
 
 #, python-format
-msgid "%s%7s (%s):%s (%s)"
+msgid "PACS: Orthanc \"%s\" (AET \"%s\", Version %s, DB v%s)"
 msgstr ""
 
 #, python-format
-msgid "%s (unattributed episode)"
+msgid "GNUmed patient: %s (generic PACS ID)"
 msgstr ""
 
 #, python-format
-msgid "part %2s"
+msgid "GNUmed patient: \"%(value)s\" @ [%(issuer)s] (stored PACS ID)"
 msgstr ""
 
-msgid "Activate as current photo"
+msgid "PACS: no patients with matching IDs found"
 msgstr ""
 
 msgid ""
-"\n"
-"Select the document into which to move the selected part !\n"
+"PACS: more than one patient with matching IDs found, carefully check studies"
 msgstr ""
 
-msgid "Cannot move document part."
+#, python-format
+msgid "%s series"
 msgstr ""
 
-msgid "Moving document part"
+#, python-format
+msgid "%%s (%s series)"
 msgstr ""
 
-msgid "Deleting document part"
+msgid "no studies"
 msgstr ""
 
 #, python-format
-msgid ""
-"Are you sure you want to delete the %s part #%s\n"
-"\n"
-"%sfrom the following document\n"
-"\n"
-" %s (%s)\n"
-"%s\n"
-"Really delete ?\n"
-"\n"
-"(this action cannot be reversed)"
+msgid "%s studies"
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot %(l10n_action)s document part - %(l10n_action)s command not found.\n"
-"\n"
-"Either of gm-%(action)s_doc or gm-%(action)s_doc.bat\n"
-"must be in the execution path. The command will\n"
-"be passed the filename to %(l10n_action)s."
+msgid "Exporting DICOM studies"
 msgstr ""
 
-#, python-format
-msgid "Processing document part: %s"
+msgid "Unable to export selected studies."
 msgstr ""
 
 #, python-format
 msgid ""
-"Cannot %(l10n_action)s document part - %(l10n_action)s command failed.\n"
-"\n"
-"You may need to check and fix either of\n"
-" gm-%(action)s_doc (Unix/Mac) or\n"
-" gm-%(action)s_doc.bat (Windows)\n"
+"The DICOM studies are %s in compressed size.\n"
 "\n"
-"The command is passed the filename to %(l10n_action)s."
+"Really copy to export area ?"
 msgstr ""
 
 #, python-format
-msgid "document part handed over to email program: %s"
+msgid "DICOM studies of [%s] from Orthanc PACS \"%s\" (AET \"%s\")"
 msgstr ""
 
-msgid "print"
+msgid "Select the directory into which to save the DICOM studies."
 msgstr ""
 
-msgid "fax"
+msgid "Saving DICOM studies"
 msgstr ""
 
-msgid "mail"
+msgid "Unable to save selected studies."
 msgstr ""
 
-msgid "Save document part to directory ..."
+msgid "Unable to export studies."
 msgstr ""
 
 #, python-format
-msgid "Successfully exported document part as [%s]."
+msgid "All DICOM studies of [%s] from Orthanc PACS \"%s\" (AET \"%s\")"
 msgstr ""
 
 #, python-format
-msgid ""
-"Cannot %(l10n_action)s document - %(l10n_action)s command not found.\n"
-"\n"
-"Either of gm-%(action)s_doc or gm-%(action)s_doc.bat\n"
-"must be in the execution path. The command will\n"
-"be passed a list of filenames to %(l10n_action)s."
+msgid "%s%s images"
 msgstr ""
 
-#, python-format
-msgid "Processing document: %s"
+msgid "Select the directory from which to recursively upload DICOM files."
+msgstr ""
+
+msgid "Delete the uploaded DICOM files now ?"
 msgstr ""
 
-#, python-format
 msgid ""
-"Cannot %(l10n_action)s document - %(l10n_action)s command failed.\n"
-"\n"
-"You may need to check and fix either of\n"
-" gm-%(action)s_doc (Unix/Mac) or\n"
-" gm-%(action)s_doc.bat (Windows)\n"
+"Some files have not been uploaded.\n"
 "\n"
-"The command is passed a list of filenames to %(l10n_action)s."
+"Do you want to delete those DICOM files which have been sent to the PACS "
+"successfully ?"
 msgstr ""
 
-msgid "Really add the displayed clipboard item into the document ?"
+msgid "Uploading DICOM files"
 msgstr ""
 
-msgid "Document part from clipboard"
+msgid "Editing Orthanc content"
 msgstr ""
 
-msgid ""
-"Cannot access external document - access command not found.\n"
-"\n"
-"Either of gm_access_external_doc.sh or *.bat must be\n"
-"in the execution path. The command will be passed the\n"
-"document type and the reference URL for processing."
+msgid "Patient ID"
 msgstr ""
 
-msgid "Accessing external document"
+msgid "Birth date"
 msgstr ""
 
-msgid ""
-"Cannot access external document - access command failed.\n"
-"\n"
-"You may need to check and fix either of\n"
-" gm_access_external_doc.sh (Unix/Mac) or\n"
-" gm_access_external_doc.bat (Windows)\n"
-"\n"
-"The command is passed the document type and the\n"
-"external reference URL on the command line."
+msgid "Orthanc"
 msgstr ""
 
-msgid "Save document into directory ..."
+msgid "Modifying patient ID"
 msgstr ""
 
 #, python-format
-msgid "Successfully exported %s parts into the directory [%s]."
-msgstr ""
-
-msgid "Are you sure you want to delete the document ?"
-msgstr ""
-
-msgid "Deleting document"
+msgid ""
+"Really modify %s patient(s) to have the new patient ID\n"
+"\n"
+" [%s]\n"
+"\n"
+"stored in the Orthanc DICOM server ?"
 msgstr ""
 
 #, python-format
@@ -13661,7 +14031,13 @@ msgstr ""
 msgid "Select the measurements panel to show in the medications plugin."
 msgstr ""
 
-msgid "Review dialog"
+msgid "General measurements"
+msgstr ""
+
+msgid "Select the measurements panel to show in the top pane."
+msgstr ""
+
+msgid "Review dialog"
 msgstr ""
 
 msgid "Configure review dialog after document display."
@@ -13751,6 +14127,12 @@ msgstr ""
 msgid "Configure auto-opening editors for recent problems."
 msgstr ""
 
+msgid "SOAP fields"
+msgstr ""
+
+msgid "Configure SOAP editor - individual SOAP fields vs text editor like"
+msgstr ""
+
 msgid "Progress notes handling ..."
 msgstr ""
 
@@ -13772,6 +14154,9 @@ msgstr ""
 msgid "URL for measurements encyclopedia."
 msgstr ""
 
+msgid "Drug data source"
+msgstr ""
+
 msgid "Select the drug data source."
 msgstr ""
 
@@ -14135,6 +14520,12 @@ msgstr ""
 msgid "Manage dynamic hints suppressed in this patient."
 msgstr ""
 
+msgid "Substance abuse"
+msgstr ""
+
+msgid "Manage substance abuse documentation of this patient."
+msgstr ""
+
 msgid "&Add / Edit ..."
 msgstr ""
 
@@ -14156,26 +14547,49 @@ msgstr ""
 msgid "Show a high-level statistic summary of the EMR."
 msgstr ""
 
-msgid "Text document"
+msgid "Journal (encounters) to file"
 msgstr ""
 
-msgid "Export the EMR of the active patient into a text file"
+msgid ""
+"Save the EMR of the active patient as a chronological journal into a text "
+"file"
 msgstr ""
 
-msgid "Journal"
+msgid "Journal (encounters) to export area"
 msgstr ""
 
 msgid ""
-"Export the EMR of the active patient as a chronological journal into a text "
-"file"
+"Copy EMR of the active patient as a chronological journal into export area"
+msgstr ""
+
+msgid "Journal (mod time) to file"
+msgstr ""
+
+msgid ""
+"Save the EMR of the active patient as journal by last modification time into "
+"a text file"
+msgstr ""
+
+msgid "Journal (mod time) to export area"
+msgstr ""
+
+msgid ""
+"Copy EMR of the active patient as journal by last modification time into "
+"export area"
+msgstr ""
+
+msgid "Text document"
+msgstr ""
+
+msgid "Save the EMR of the active patient into a text file"
 msgstr ""
 
 msgid "MEDISTAR import format"
 msgstr ""
 
 msgid ""
-"GNUmed -> MEDISTAR. Export progress notes of active patient's active "
-"encounter into a text file."
+"GNUmed -> MEDISTAR. Save progress notes of active patient's active encounter "
+"into a text file."
 msgstr ""
 
 msgid "Export as ..."
@@ -14344,19 +14758,40 @@ msgstr ""
 msgid "Show log file"
 msgstr ""
 
-msgid "Show the log file in text viewer."
+msgid "Show log file in text viewer."
 msgstr ""
 
 msgid "Backup log file"
 msgstr ""
 
-msgid "Backup the content of the log to another file."
+msgid "Backup content of the log to another file."
 msgstr ""
 
 msgid "Email log file"
 msgstr ""
 
-msgid "Send the log file to the authors for help."
+msgid "Send log file to the authors for help."
+msgstr ""
+
+msgid "Browse tmp dir"
+msgstr ""
+
+#, python-format
+msgid "Browse temporary directory [%s]."
+msgstr ""
+
+msgid "Browse work dir"
+msgstr ""
+
+#, python-format
+msgid "Browse user working directory [%s]."
+msgstr ""
+
+msgid "Browse internal work dir"
+msgstr ""
+
+#, python-format
+msgid "Browse internal working directory [%s]."
 msgstr ""
 
 msgid "Bug tracker"
@@ -14699,6 +15134,20 @@ msgid "No, only auto-open one editor for a new, unassociated problem."
 msgstr ""
 
 msgid ""
+"When editing progress notes, do you want GNUmed to\n"
+"show individual fields for each of the SOAP categories\n"
+"or do you want to use a text-editor like field for\n"
+"all SOAP categories which can then be set per line\n"
+"of input ?"
+msgstr ""
+
+msgid "Yes, show a dedicated field per SOAP category."
+msgstr ""
+
+msgid "No, use one field for all SOAP categories."
+msgstr ""
+
+msgid ""
 "When a patient is activated GNUmed can\n"
 "be told to switch to a specific plugin.\n"
 "\n"
@@ -14953,546 +15402,945 @@ msgstr ""
 msgid "Keyword based text expansion macros"
 msgstr ""
 
-msgid "Meta test/measurement types"
+msgid "Meta test/measurement types"
+msgstr ""
+
+msgid "Organizations with their units, addresses, and comm channels"
+msgstr ""
+
+msgid "Patient tags"
+msgstr ""
+
+msgid "Provinces (counties, territories, states, regions, ...)"
+msgstr ""
+
+msgid "String translations in the database"
+msgstr ""
+
+msgid "Test/measurement types"
+msgstr ""
+
+msgid "Vaccination targets (conditions known to be preventable by vaccination)"
+msgstr ""
+
+msgid "Vaccines"
+msgstr ""
+
+msgid "Workplace profiles (which plugins to load)"
+msgstr ""
+
+msgid "Consumable substances"
+msgstr ""
+
+msgid "Billable items"
+msgstr ""
+
+msgid "Reference data sources"
+msgstr ""
+
+msgid "Test/measurement panels/profiles"
+msgstr ""
+
+msgid "Master data management"
+msgstr ""
+
+msgid "Select the list you want to manage:"
+msgstr ""
+
+msgid "No DICOM viewer found."
+msgstr ""
+
+msgid "risk assessment"
+msgstr ""
+
+msgid "cardiovascular risk assessment"
+msgstr ""
+
+#, python-format
+msgid "[arriba] XML result not found in [%s]"
+msgstr ""
+
+msgid "ACS risk assessment calculator not configured."
+msgstr ""
+
+#, python-format
+msgid "Cannot run [%s] !"
+msgstr ""
+
+#, python-format
+msgid "There was a problem accessing the [arriba] result in [%s] !"
+msgstr ""
+
+msgid "[-9999]: <access violation test error>"
+msgstr ""
+
+msgid ""
+"This is a deliberate AccessDenied exception thrown to test the handling of "
+"access violations by means of a decorator."
+msgstr ""
+
+msgid "testing access check for non-existant <admin> role"
+msgstr ""
+
+msgid ""
+"This is a deliberate AccessDenied exception. You should not see this message "
+"because the role is checked in a decorator."
+msgstr ""
+
+msgid "pgAdmin III not found."
+msgstr ""
+
+msgid "Error reloading hook script."
+msgstr ""
+
+msgid "Save current log as..."
+msgstr ""
+
+msgid "log files"
+msgstr ""
+
+#, python-format
+msgid "Log file backed up as [%s]."
+msgstr ""
+
+msgid "Cannot start new encounter. No active patient."
+msgstr ""
+
+msgid "Cannot add health issue. No active patient."
+msgstr ""
+
+msgid "Cannot add episode. No active patient."
+msgstr ""
+
+msgid "Cannot add medication. No active patient."
+msgstr ""
+
+msgid "Cannot add allergy. No active patient."
+msgstr ""
+
+msgid "Cannot manage performed procedures. No active patient."
+msgstr ""
+
+msgid "Cannot manage hospitalizations. No active patient."
+msgstr ""
+
+msgid "Cannot manage external care. No active patient."
+msgstr ""
+
+msgid "Cannot edit occupation. No active patient."
+msgstr ""
+
+msgid "manage vaccinations"
+msgstr ""
+
+msgid "Cannot add vaccinations. No active patient."
+msgstr ""
+
+msgid "manage family history"
+msgstr ""
+
+msgid "Cannot manage family history. No active patient."
+msgstr ""
+
+msgid "Cannot manage measurements. No active patient."
+msgstr ""
+
+msgid "calculate EDC"
+msgstr ""
+
+msgid "manage suppressed hints"
+msgstr ""
+
+msgid "Cannot manage suppressed hints. No active patient."
+msgstr ""
+
+msgid "Cannot manage smoking status. No active patient."
+msgstr ""
+
+msgid "Cannot show EMR summary. No active patient."
+msgstr ""
+
+msgid "EMR Summary"
+msgstr ""
+
+msgid "Cannot export EMR journal by last modification time. No active patient."
+msgstr ""
+
+msgid "journal_by_last_mod_time"
+msgstr ""
+
+msgid "Save patient's EMR journal as..."
+msgstr ""
+
+msgid "Error exporting patient EMR as journal by last modification time."
+msgstr ""
+
+msgid "EMR journal export"
+msgstr ""
+
+#, python-format
+msgid ""
+"Successfully exported EMR as journal by last modification time into file "
+"[%s]."
+msgstr ""
+
+msgid "Cannot export EMR journal. No active patient."
+msgstr ""
+
+msgid "emr-journal"
+msgstr ""
+
+msgid "Error exporting patient EMR as chronological journal."
+msgstr ""
+
+#, python-format
+msgid "Successfully exported EMR as chronological journal into file [%s]."
+msgstr ""
+
+msgid "EMR journal by last modification time"
+msgstr ""
+
+msgid "EMR journal by encounter"
+msgstr ""
+
+msgid "Cannot add tag to person. No active patient."
+msgstr ""
+
+#, python-format
+msgid "Edit the comment on tag [%s]"
+msgstr ""
+
+msgid "Editing tag comment"
+msgstr ""
+
+msgid "Cannot export patient as GDT. No active patient."
+msgstr ""
+
+msgid "Exported demographics as GDT to clipboard."
+msgstr ""
+
+msgid "Cannot export patient as VCARD. No active patient."
+msgstr ""
+
+msgid "Exported demographics as VCARD to clipboard."
+msgstr ""
+
+msgid "Cannot export patient as XML (LinuxMedNews). No active patient."
+msgstr ""
+
+#, python-format
+msgid "Exported demographics to XML file [%s]."
+msgstr ""
+
+#, python-format
+msgid "Exported demographics to GDT file [%s]."
+msgstr ""
+
+#, python-format
+msgid "Exported demographics to VCARD file [%s]."
+msgstr ""
+
+msgid "Cannot add staff member. No active patient."
+msgstr ""
+
+msgid "Cannot delete patient. No patient active."
+msgstr ""
+
+msgid ""
+"You have to manually close this window to finalize shutting down GNUmed."
+msgstr ""
+
+msgid "This is so that you can inspect the console output at your leisure."
+msgstr ""
+
+msgid "no patient"
+msgstr ""
+
+#, python-format
+msgid "Saved screenshot to file [%s]."
+msgstr ""
+
+msgid "Python version check"
+msgstr ""
+
+#, python-format
+msgid ""
+"You are running Python version\n"
+" %s\n"
+"\n"
+"However, GNUmed wants Python 2.7 to\n"
+"facilitate migration to Python 3.\n"
+"\n"
+"Please upgrade your Python interpreter !"
+msgstr ""
+
+msgid "GNUmed client"
+msgstr ""
+
+msgid "GNUmed stdout/stderr window"
+msgstr ""
+
+msgid "redirecting STDOUT/STDERR to this log window"
+msgstr ""
+
+#, python-format
+msgid ""
+"The database account [%s] cannot be used as a\n"
+"staff member login for GNUmed. There was an\n"
+"error retrieving staff details for it.\n"
+"\n"
+"Please ask your administrator for help.\n"
+msgstr ""
+
+msgid "Checking access permissions"
+msgstr ""
+
+#, python-format
+msgid "Database <%s> on <%s>"
+msgstr ""
+
+#, python-format
+msgid "Branch \"%s\" of praxis \"%s\"\n"
+msgstr ""
+
+msgid "Verifying database"
+msgstr ""
+
+msgid "Connect"
+msgstr ""
+
+msgid "Yes, connect to this database."
+msgstr ""
+
+msgid "Disconnect"
+msgstr ""
+
+msgid "No, do not connect to this database."
+msgstr ""
+
+#, python-format
+msgid ""
+"Cannot find configuration file in any of:\n"
+"\n"
+" %s\n"
+"You may need to use the comand line option\n"
+"\n"
+"\t--conf-file=<FILE>"
+msgstr ""
+
+msgid "Checking configuration files"
+msgstr ""
+
+msgid "GNUmed startup"
+msgstr ""
+
+#, python-format
+msgid ""
+"The currently selected database language ('%s') does\n"
+"not match the current system language ('%s').\n"
+"\n"
+"Do you want to set the database language to '%s' ?\n"
+msgstr ""
+
+msgid "Checking database language settings"
+msgstr ""
+
+#, python-format
+msgid "Set your database language to [%s]."
+msgstr ""
+
+msgid "Don't set"
+msgstr ""
+
+msgid "Do not set your database language now."
+msgstr ""
+
+msgid "Remember to ignore language mismatch"
+msgstr ""
+
+#, python-format
+msgid ""
+"Checking this will make GNUmed remember your decision\n"
+"until the system language is changed.\n"
+"\n"
+"You can also reactivate this inquiry by removing the\n"
+"corresponding \"ignore\" option from the configuration file\n"
+"\n"
+" [%s]"
+msgstr ""
+
+msgid "generic activity"
 msgstr ""
 
-msgid "Organizations with their units, addresses, and comm channels"
+msgid "Access denied"
 msgstr ""
 
-msgid "Patient tags"
+#, python-format
+msgid ""
+"Your account is not set up to access this part of GNUmed:\n"
+"\n"
+"  [%s]"
 msgstr ""
 
-msgid "Provinces (counties, territories, states, regions, ...)"
+msgid "Save timeline as SVG image under..."
 msgstr ""
 
-msgid "String translations in the database"
+msgid "timeline image"
 msgstr ""
 
-msgid "Test/measurement types"
+msgid "timeline data"
 msgstr ""
 
-msgid "Vaccination targets (conditions known to be preventable by vaccination)"
+msgid "Cannot change notebook tabs. No active patient."
 msgstr ""
 
-msgid "Vaccines"
+msgid "add plugin ..."
 msgstr ""
 
-msgid "Workplace profiles (which plugins to load)"
+msgid "Cannot activate Allergy Manager. No active patient."
 msgstr ""
 
-msgid "Consumable substances"
+msgid "RR ?"
 msgstr ""
 
-msgid "Billable items"
+#, python-format
+msgid "BMI %s"
 msgstr ""
 
-msgid "Reference data sources"
+msgid "BMI ?"
 msgstr ""
 
-msgid "Test/measurement panels/profiles"
+msgid "GFR ?"
 msgstr ""
 
-msgid "Master data management"
+#, python-format
+msgid "GFR %s"
 msgstr ""
 
-msgid "Select the list you want to manage:"
+#, python-format
+msgid "?EDC %s"
 msgstr ""
 
-msgid "No DICOM viewer found."
+#, python-format
+msgid "EDC %s"
 msgstr ""
 
-msgid "risk assessment"
+msgid "<Age>"
 msgstr ""
 
-msgid "cardiovascular risk assessment"
+msgid "no patient selected"
 msgstr ""
 
 #, python-format
-msgid "[arriba] XML result not found in [%s]"
-msgstr ""
-
-msgid "ACS risk assessment calculator not configured."
+msgid "Gender: %s (%s) - %s\n"
 msgstr ""
 
 #, python-format
-msgid "Cannot run [%s] !"
+msgid "Born: %s\n"
 msgstr ""
 
 #, python-format
-msgid "There was a problem accessing the [arriba] result in [%s] !"
+msgid "Died: %s\n"
 msgstr ""
 
-msgid "[-9999]: <access violation test error>"
+#, python-format
+msgid "At age: %s\n"
 msgstr ""
 
-msgid ""
-"This is a deliberate AcessDenied exception thrown to test the handling of "
-"access violations by means of a decorator."
+msgid " (date of birth and age are estimated)\n"
 msgstr ""
 
-msgid "testing access check for non-existant <admin> role"
+#, python-format
+msgid "%(sex)s  %(dob)s (%(age)s today !)"
 msgstr ""
 
 msgid ""
-"This is a deliberate AcessDenied exception. You should not see this message "
-"because the role is checked in a decorator."
+"\n"
+"Today is the patient's birthday !\n"
+"\n"
 msgstr ""
 
-msgid "pgAdmin III not found."
+#, python-format
+msgid "Birthday: %s ago\n"
 msgstr ""
 
-msgid "Error reloading hook script."
+#, python-format
+msgid "Birthday: in %s\n"
 msgstr ""
 
-msgid "Save current log as..."
+#, python-format
+msgid "Age: %s\n"
 msgstr ""
 
-msgid "log files"
+#, python-format
+msgid "last confirmed %s\n"
 msgstr ""
 
 #, python-format
-msgid "Log file backed up as [%s]."
+msgid "Comment (%s): %%s"
 msgstr ""
 
-msgid "Cannot start new encounter. No active patient."
+#, python-format
+msgid " - expires %s"
 msgstr ""
 
-msgid "Cannot add health issue. No active patient."
+#, python-format
+msgid ""
+"Due for %s (since %s%s):\n"
+"%s%s\n"
+"Patient: %s\n"
+"Reminder by: %s"
 msgstr ""
 
-msgid "Cannot add episode. No active patient."
+msgid "Clinical reminder"
 msgstr ""
 
-msgid "Cannot add medication. No active patient."
+msgid "Adding automatic dynamic hint"
 msgstr ""
 
-msgid "Cannot add allergy. No active patient."
+msgid "Editing automatic dynamic hint"
 msgstr ""
 
-msgid "Cannot manage performed procedures. No active patient."
+msgid "Deleting automatic dynamic hint"
 msgstr ""
 
-msgid "Cannot manage hospitalizations. No active patient."
+#, python-format
+msgid ""
+"Really delete this dynamic hint ?\n"
+"\n"
+" [%s]"
 msgstr ""
 
-msgid "Cannot manage external care. No active patient."
+msgid "deleting a dynamic hint"
 msgstr ""
 
-msgid "Cannot edit occupation. No active patient."
+msgid ""
+"\n"
+"Dynamic hints registered with GNUmed.\n"
 msgstr ""
 
-msgid "manage vaccinations"
+msgid "Showing dynamic hints."
 msgstr ""
 
-msgid "Cannot add vaccinations. No active patient."
+msgid "Hint"
 msgstr ""
 
-msgid "Cannot manage family history. No active patient."
+msgid "Browse and install automatic dynamic hints data packs"
 msgstr ""
 
-msgid "Cannot manage measurements. No active patient."
+#, python-format
+msgid "By: %s"
 msgstr ""
 
-msgid "calculate EDC"
+msgid "No entry in field <Source>."
 msgstr ""
 
-msgid "manage suppressed hints"
+msgid "No entry in field <Conditions>."
 msgstr ""
 
-msgid "Cannot manage suppressed hints. No active patient."
+msgid "No entry in field <Description>."
 msgstr ""
 
-msgid "Cannot show EMR summary. No active patient."
+msgid "No entry in field <Title>."
 msgstr ""
 
-msgid "EMR Summary"
+msgid "creating a new dynamic hint"
 msgstr ""
 
-msgid "Cannot export EMR journal. No active patient."
+msgid "updating an existing dynamic hint"
 msgstr ""
 
-msgid "Save patient's EMR journal as..."
+msgid "Deleting suppressed dynamic hint"
 msgstr ""
 
-msgid "Error exporting patient EMR as chronological journal."
+#, python-format
+msgid ""
+"Really delete the suppression of this dynamic hint ?\n"
+"\n"
+" [%s]"
 msgstr ""
 
-msgid "EMR journal export"
+msgid ""
+"\n"
+"Dynamic hints suppressed in this patient.\n"
 msgstr ""
 
-#, python-format
-msgid "Successfully exported EMR as chronological journal into file [%s]."
+msgid "Showing suppressed dynamic hints."
 msgstr ""
 
-msgid "Cannot add tag to person. No active patient."
+msgid "Rationale"
 msgstr ""
 
-#, python-format
-msgid "Edit the comment on tag [%s]"
+msgid "Manage hints"
 msgstr ""
 
-msgid "Editing tag comment"
+msgid "Manage automatic dynamic hints"
 msgstr ""
 
-msgid "Cannot export patient as GDT. No active patient."
+msgid "Cannot delete family history item."
 msgstr ""
 
-msgid "Exported demographics as GDT to clipboard."
+msgid "Family history of this patient."
 msgstr ""
 
-msgid "Cannot export patient as VCARD. No active patient."
+msgid "Showing family history."
 msgstr ""
 
-msgid "Exported demographics as VCARD to clipboard."
+msgid "Fatal"
 msgstr ""
 
-msgid "Cannot export patient as XML (LinuxMedNews). No active patient."
+msgid "Noted"
 msgstr ""
 
-#, python-format
-msgid "Exported demographics to XML file [%s]."
+msgid "Died"
 msgstr ""
 
-#, python-format
-msgid "Exported demographics to GDT file [%s]."
+msgid "Adding family history"
 msgstr ""
 
-#, python-format
-msgid "Exported demographics to VCARD file [%s]."
+msgid "Editing family history"
 msgstr ""
 
-msgid "Cannot add staff member. No active patient."
+msgid ""
+"\n"
+"Please select the default drug data source from the list below.\n"
+"\n"
+"Note that to actually use it you need to have the database installed, too."
 msgstr ""
 
-msgid "Cannot delete patient. No patient active."
+msgid "Configuring default drug data source"
 msgstr ""
 
-msgid ""
-"You have to manually close this window to finalize shutting down GNUmed."
+msgid "No default drug database configured."
 msgstr ""
 
-msgid "This is so that you can inspect the console output at your leisure."
+msgid "There is no default drug database configured."
 msgstr ""
 
-msgid "no patient"
+msgid "Jumping to drug database"
 msgstr ""
 
-#, python-format
-msgid "Saved screenshot to file [%s]."
+msgid "Cannot import drugs from IFAP into chart without chart."
 msgstr ""
 
-msgid "GNUmed client"
+#, python-format
+msgid "Cannot call IFAP via [%s]."
 msgstr ""
 
-msgid "GNUmed stdout/stderr window"
+#, python-format
+msgid "Cannot create IFAP <-> GNUmed transfer file [%s]."
 msgstr ""
 
-msgid "redirecting STDOUT/STDERR to this log window"
+msgid "Current medication"
 msgstr ""
 
-#, python-format
 msgid ""
-"The database account [%s] cannot be used as a\n"
-"staff member login for GNUmed. There was an\n"
-"error retrieving staff details for it.\n"
 "\n"
-"Please ask your administrator for help.\n"
+"The ATC codes as known to GNUmed.\n"
 msgstr ""
 
-msgid "Checking access permissions"
+msgid "Showing ATC codes."
 msgstr ""
 
-#, python-format
-msgid "Database <%s> on <%s>"
+msgid "Choose an ATC import config file"
 msgstr ""
 
-#, python-format
-msgid "Branch \"%s\" of praxis \"%s\"\n"
+msgid "config files"
 msgstr ""
 
-msgid "Verifying database"
+msgid "importing ATC reference data"
 msgstr ""
 
-msgid "Connect"
+msgid "Successfully imported ATC reference data."
 msgstr ""
 
-msgid "Yes, connect to this database."
+msgid "Importing ATC reference data failed."
 msgstr ""
 
-msgid "Disconnect"
+msgid "Select an ATC (Anatomical-Therapeutic-Chemical) code."
 msgstr ""
 
-msgid "No, do not connect to this database."
+msgid "Cannot edit this substance. It is in use."
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot find configuration file in any of:\n"
-"\n"
-" %s\n"
-"You may need to use the comand line option\n"
-"\n"
-"\t--conf-file=<FILE>"
+msgid "Adding new consumable substance"
 msgstr ""
 
-msgid "Checking configuration files"
+msgid "Editing consumable substance"
 msgstr ""
 
-msgid "GNUmed startup"
+msgid "Cannot delete this substance. It is in use."
 msgstr ""
 
-#, python-format
 msgid ""
-"The currently selected database language ('%s') does\n"
-"not match the current system language ('%s').\n"
 "\n"
-"Do you want to set the database language to '%s' ?\n"
+"These are the consumable substances registered with GNUmed.\n"
 msgstr ""
 
-msgid "Checking database language settings"
+msgid "Import"
 msgstr ""
 
-msgid "Set"
+msgid "Import consumable substances from a drug database."
 msgstr ""
 
-#, python-format
-msgid "Set your database language to [%s]."
+msgid "Cannot save consumable substance. Missing essential input."
 msgstr ""
 
-msgid "Don't set"
+#, python-format
+msgid "Cannot save consumable substance. %s"
 msgstr ""
 
-msgid "Do not set your database language now."
+msgid "The substance with optional strength."
 msgstr ""
 
-msgid "Remember to ignore language mismatch"
+msgid "Cannot remove this component from the drug. It is in use."
 msgstr ""
 
-#, python-format
 msgid ""
-"Checking this will make GNUmed remember your decision\n"
-"until the system language is changed.\n"
-"\n"
-"You can also reactivate this inquiry by removing the\n"
-"corresponding \"ignore\" option from the configuration file\n"
 "\n"
-" [%s]"
+"These are the components in the drug brands known to GNUmed.\n"
 msgstr ""
 
-msgid "generic activity"
+msgid "Showing drug brand components."
 msgstr ""
 
-msgid "Access denied"
+msgid "Adding new drug component"
 msgstr ""
 
-#, python-format
-msgid ""
-"Your account is not set up to access this part of GNUmed:\n"
-"\n"
-"  [%s]"
+msgid "Editing drug component"
 msgstr ""
 
-msgid "Save timeline as SVG image under..."
+msgid "Cannot edit drug component. It is in use."
 msgstr ""
 
-msgid "timeline image"
+msgid "Cannot save drug component. Invalid or missing essential input."
 msgstr ""
 
-msgid "timeline data"
+msgid "A drug component with optional strength."
 msgstr ""
 
-msgid "Cannot change notebook tabs. No active patient."
+msgid "Editing drug"
 msgstr ""
 
-msgid "add plugin ..."
+#, python-format
+msgid ""
+"Cannot edit the branded drug product\n"
+"\n"
+" \"%s\" (%s)\n"
+"\n"
+"because it is currently taken by patients.\n"
 msgstr ""
 
-msgid "Cannot activate Allergy Manager. No active patient."
+msgid "Adding new drug brand"
 msgstr ""
 
-msgid "<Age>"
+msgid "Editing drug brand"
 msgstr ""
 
-msgid "no patient selected"
+msgid "Manage consumable substances"
 msgstr ""
 
-#, python-format
-msgid "Gender: %s (%s) - %s\n"
+msgid "not in use"
 msgstr ""
 
 #, python-format
-msgid "Born: %s\n"
+msgid "ATC: %s\n"
 msgstr ""
 
-#, python-format
-msgid "Died: %s\n"
+msgid "Editing medication"
 msgstr ""
 
 #, python-format
-msgid "At age: %s\n"
+msgid ""
+"Cannot edit the medication\n"
+"\n"
+" \"%s\" (%s)\n"
+"\n"
+"because it is a vaccine. Please edit it\n"
+"from the vaccine management section !\n"
 msgstr ""
 
-msgid " (date of birth and age are estimated)\n"
+msgid "Deleting medication"
 msgstr ""
 
 #, python-format
-msgid "%(sex)s  %(dob)s (%(age)s today !)"
+msgid ""
+"Cannot delete the medication\n"
+"\n"
+" \"%s\" (%s)\n"
+"\n"
+"because it is a vaccine. Please delete it\n"
+"from the vaccine management section !\n"
 msgstr ""
 
 msgid ""
 "\n"
-"Today is the patient's birthday !\n"
-"\n"
+"These are the drug brands known to GNUmed.\n"
 msgstr ""
 
-#, python-format
-msgid "Birthday: %s ago\n"
+msgid "Showing branded drugs."
 msgstr ""
 
-#, python-format
-msgid "Birthday: in %s\n"
+msgid "Import substances and brands from a drug database."
 msgstr ""
 
-#, python-format
-msgid "Age: %s\n"
+msgid "Managing components of a drug"
 msgstr ""
 
 #, python-format
-msgid "last confirmed %s\n"
+msgid ""
+"Cannot manage the components of the branded drug product\n"
+"\n"
+" \"%s\" (%s)\n"
+"\n"
+"because it is currently taken by patients.\n"
 msgstr ""
 
-#, python-format
-msgid "Comment (%s): %%s"
+msgid "Pick the substances which are components of this drug."
 msgstr ""
 
-#, python-format
-msgid " - expires %s"
+msgid "Components of drug"
 msgstr ""
 
 #, python-format
 msgid ""
-"Due for %s (since %s%s):\n"
-"%s%s\n"
-"Patient: %s\n"
-"Reminder by: %s"
+"Adjust the components of \"%s\"\n"
+"\n"
+"The drug must contain at least one component. Any given\n"
+"substance can only be included once per drug."
 msgstr ""
 
-msgid "Clinical reminder"
+msgid "Managing components of a drug ..."
 msgstr ""
 
-msgid "Adding automatic dynamic hint"
+msgid "Cannot edit drug brand. It is in use."
 msgstr ""
 
-msgid "Editing automatic dynamic hint"
+msgid "Checking brand data"
 msgstr ""
 
-msgid "Deleting automatic dynamic hint"
+#, python-format
+msgid ""
+"The brand information you entered:\n"
+"\n"
+" [%s %s]\n"
+"\n"
+"already exists as a drug product."
 msgstr ""
 
-#, python-format
 msgid ""
-"Really delete this dynamic hint ?\n"
+"You have not selected any substances\n"
+"as drug components.\n"
 "\n"
-" [%s]"
+"Without components you will not be able to\n"
+"use this drug for documenting patient care.\n"
+"\n"
+"Are you sure you want to save\n"
+"it without components ?"
 msgstr ""
 
-msgid "deleting a dynamic hint"
+msgid "Cannot save branded drug. Invalid or missing essential input."
 msgstr ""
 
 msgid ""
+"The brand name of the drug.\n"
 "\n"
-"Dynamic hints registered with GNUmed.\n"
+"Note: a brand name will need to be linked to\n"
+"one or more components before it can be used,\n"
+"except in the case of fake (generic) vaccines."
 msgstr ""
 
-msgid "Showing dynamic hints."
+msgid "No EMR data loaded."
 msgstr ""
 
-msgid "Hint"
+msgid "EMR text dump"
 msgstr ""
 
-msgid "Browse and install automatic dynamic hints data packs"
+msgid "Currently there is no active patient. Cannot retrieve EMR text."
 msgstr ""
 
-#, python-format
-msgid "By: %s"
+msgid "SOAP Editor Actions:"
 msgstr ""
 
-msgid "No entry in field <Source>."
+msgid "&Sort lines"
 msgstr ""
 
-msgid "No entry in field <Conditions>."
+msgid "Sort lines by SOAP category"
 msgstr ""
 
-msgid "No entry in field <Description>."
+msgid "e&Xpand keyword"
 msgstr ""
 
-msgid "No entry in field <Title>."
+msgid "Expand keyword / macro"
 msgstr ""
 
-msgid "creating a new dynamic hint"
+msgid "as &Subjective"
 msgstr ""
 
-msgid "updating an existing dynamic hint"
+msgid "Set line to category \"Subjective\""
 msgstr ""
 
-msgid "Deleting suppressed dynamic hint"
+msgid "as &Objective"
 msgstr ""
 
-#, python-format
-msgid ""
-"Really delete the suppression of this dynamic hint ?\n"
-"\n"
-" [%s]"
+msgid "Set line to category \"Objective\""
 msgstr ""
 
-msgid ""
-"\n"
-"Dynamic hints suppressed in this patient.\n"
+msgid "as &Assessment"
 msgstr ""
 
-msgid "Showing suppressed dynamic hints."
+msgid "Set line to category \"Assessment\""
 msgstr ""
 
-msgid "Rationale"
+msgid "as &Plan"
 msgstr ""
 
-msgid "Manage hints"
+msgid "Set line to category \"Plan\""
 msgstr ""
 
-msgid "Manage automatic dynamic hints"
+msgid "as &Unspecified"
 msgstr ""
 
-msgid "Cannot delete family history item."
+msgid "Set line to category \"unspecified\""
 msgstr ""
 
-msgid "Family history of this patient."
+msgid "as ad&Ministrative"
 msgstr ""
 
-msgid "Showing family history."
+msgid "Set line to category \"administrative\""
 msgstr ""
 
-msgid "Fatal"
+msgid "→ &Clipboard"
 msgstr ""
 
-msgid "Noted"
+msgid "Copy line to clipboard"
 msgstr ""
 
-msgid "Died"
+msgid "→ +Clipboard+"
 msgstr ""
 
-msgid "Adding family history"
+msgid "Add line to clipboard"
 msgstr ""
 
-msgid "Editing family history"
+msgid "Copy content to clipboard"
 msgstr ""
 
-msgid "No EMR data loaded."
+msgid "Add content to clipboard"
 msgstr ""
 
-msgid "EMR text dump"
+msgid "Copy selection to clipboard"
 msgstr ""
 
-msgid "Currently there is no active patient. Cannot retrieve EMR text."
+msgid "Add selection to clipboard"
+msgstr ""
+
+msgid "&Line ..."
+msgstr ""
+
+msgid "&Text ..."
+msgstr ""
+
+msgid "&Region ..."
 msgstr ""
 
 msgid "Show HL7 file:"
@@ -15504,6 +16352,10 @@ msgstr ""
 msgid "Extracting HL7 from XML file"
 msgstr ""
 
+#, python-format
+msgid "Unwrapped HL7 into [%s] from [%s]."
+msgstr ""
+
 msgid "Select HL7 file for staging:"
 msgstr ""
 
@@ -15527,6 +16379,10 @@ msgid ""
 " %s"
 msgstr ""
 
+#, python-format
+msgid "Staged HL7 from [%s]."
+msgstr ""
+
 msgid "Importing HL7 data"
 msgstr ""
 
@@ -15569,9 +16425,6 @@ msgstr ""
 msgid "Identification"
 msgstr ""
 
-msgid "Show"
-msgstr ""
-
 msgid "Show formatted HL7"
 msgstr ""
 
@@ -15617,6 +16470,17 @@ msgstr ""
 msgid "Plot current selection"
 msgstr ""
 
+msgid ""
+"Select the measurements panel to show in the top pane for continuous "
+"monitoring."
+msgstr ""
+
+msgid "Lab panel"
+msgstr ""
+
+msgid "Configuring continuous monitoring measurements panel"
+msgstr ""
+
 msgid "No default Gnuplot script template selected."
 msgstr ""
 
@@ -15639,10 +16503,25 @@ msgstr ""
 msgid "Cannot plot without a plot script."
 msgstr ""
 
-msgid "Time"
+msgid "Result"
 msgstr ""
 
-msgid "Result"
+msgid "Perform on selected results:"
+msgstr ""
+
+msgid "Review and &sign"
+msgstr ""
+
+msgid "Export to &file"
+msgstr ""
+
+msgid "Export to &clipboard"
+msgstr ""
+
+msgid "Panels"
+msgstr ""
+
+msgid "List"
 msgstr ""
 
 msgid ""
@@ -15719,18 +16598,6 @@ msgstr ""
 msgid "All: by &Day"
 msgstr ""
 
-msgid "Perform on selected results:"
-msgstr ""
-
-msgid "Review and &sign"
-msgstr ""
-
-msgid "Export to &file"
-msgstr ""
-
-msgid "Export to &clipboard"
-msgstr ""
-
 #, python-format
 msgid "%s results selected. Too many to list individually."
 msgstr ""
@@ -15904,6 +16771,9 @@ msgstr ""
 msgid "EMR Actions:"
 msgstr ""
 
+msgid "Print EMR"
+msgstr ""
+
 msgid "Create health issue"
 msgstr ""
 
@@ -16052,11 +16922,40 @@ msgstr ""
 msgid "&New notes %s"
 msgstr ""
 
+msgid "Find text in EMR Journal"
+msgstr ""
+
+msgid "Modified"
+msgstr ""
+
+msgid "Clinical time"
+msgstr ""
+
+msgid "Who / When"
+msgstr ""
+
+#, python-format
 msgid ""
-"An error occurred while retrieving the EMR\n"
-"in journal form for the active patient.\n"
+"Chart entry: %s       [#%s in %s]\n"
+" Modified: %s by %s (%s rev %s)\n"
 "\n"
-"Please check the log file for details."
+"Health issue: %s%s\n"
+"Episode: %s%s\n"
+"Encounter: %s%s"
+msgstr ""
+
+#, python-format
+msgid ""
+"%s\n"
+"\n"
+"                        rev %s (%s) by %s in <%s>"
+msgstr ""
+
+#, python-format
+msgid ""
+"%s\n"
+"%s\n"
+"%s"
 msgstr ""
 
 msgid "Editing tag"
@@ -16183,18 +17082,15 @@ msgid ""
 "%s\n"
 msgstr ""
 
-msgid "This patient DID receive care."
+msgid "This patient DID receive care here."
 msgstr ""
 
-msgid "This person did NOT receive care."
+msgid "This person did NOT receive care here."
 msgstr ""
 
 msgid "Disabling person"
 msgstr ""
 
-msgid "Disabling patient"
-msgstr ""
-
 msgid "Type or select a last name (family name/surname)."
 msgstr ""
 
@@ -16437,6 +17333,9 @@ msgid ""
 "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
 msgstr ""
 
+msgid "Connecting to backend"
+msgstr "З'єднуємося з сервером"
+
 #, python-format
 msgid ""
 "Unable to connect to database:\n"
@@ -16645,9 +17544,6 @@ msgstr ""
 msgid "Office"
 msgstr ""
 
-msgid "State"
-msgstr ""
-
 msgid "Zip"
 msgstr ""
 
@@ -16703,7 +17599,7 @@ msgstr ""
 msgid "EMR Timeline"
 msgstr ""
 
-msgid "Show &Timeline"
+msgid "EMR &Timeline"
 msgstr ""
 
 msgid "Overview"
@@ -16730,10 +17626,10 @@ msgstr ""
 msgid "&SimpleNotes"
 msgstr ""
 
-msgid "EMR tree"
+msgid "EMR Tree"
 msgstr ""
 
-msgid "EMR &Tree (topical)"
+msgid "EMR &Tree"
 msgstr ""
 
 msgid "Print Manager"
@@ -16742,6 +17638,12 @@ msgstr ""
 msgid "&Print Manager"
 msgstr ""
 
+msgid "EMR Journal"
+msgstr ""
+
+msgid "EMR &Journal (list)"
+msgstr ""
+
 msgid "Appointments"
 msgstr ""
 
@@ -16754,6 +17656,12 @@ msgstr ""
 msgid "Show &lab journal"
 msgstr ""
 
+msgid "PACS"
+msgstr ""
+
+msgid "&PACS"
+msgstr ""
+
 msgid "Cardiac Devices"
 msgstr ""
 
@@ -16826,10 +17734,7 @@ msgstr ""
 msgid "User &manual (local)"
 msgstr ""
 
-msgid "EMR journal"
-msgstr ""
-
-msgid "EMR &Journal (chronological)"
+msgid "EMR &Journal (text)"
 msgstr ""
 
 msgid "Demographics"
@@ -16990,6 +17895,9 @@ msgstr ""
 msgid "Show &ExamplePlugin"
 msgstr ""
 
+msgid "Find text"
+msgstr ""
+
 msgid "gm_ctl_client: starting slave GNUmed client"
 msgstr ""
 
@@ -17015,3 +17923,74 @@ msgstr ""
 
 msgid "Abort and do NOT connect to GNUmed."
 msgstr ""
+
+#, fuzzy
+#~ msgid "&Unknown"
+#~ msgstr "невідомий алергічний стан"
+
+#~ msgid ""
+#~ "Unable to connect to database:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Are you sure you have got a local database installed ?\n"
+#~ "\n"
+#~ "Please retry with proper credentials or cancel.\n"
+#~ "\n"
+#~ "You may also need to check the PostgreSQL client\n"
+#~ "authentication configuration in pg_hba.conf. For\n"
+#~ "details see:\n"
+#~ "\n"
+#~ "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
+#~ msgstr ""
+#~ "Неможливо приєднатися до бази даних:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Ви впевнені, що локальну базу даних встановлено?\n"
+#~ "\n"
+#~ "Будь ласка, введіть дійсні реєстраційні дані, або відмініть.\n"
+#~ "\n"
+#~ "Ви можете також перевірити аутентифікаційну \n"
+#~ "конфіґурацію PostgreSQL-клієнта у файлі pg_hba.conf. \n"
+#~ "Детальніше дивись:\n"
+#~ "\n"
+#~ "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
+
+#~ msgid ""
+#~ "Unable to connect to database:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Please retry with proper credentials or cancel.\n"
+#~ "\n"
+#~ "You may also need to check the PostgreSQL client\n"
+#~ "authentication configuration in pg_hba.conf. For\n"
+#~ "details see:\n"
+#~ "\n"
+#~ "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
+#~ msgstr ""
+#~ "Неможливо приєднатися до бази даних:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Будь ласка, введіть дійсні реєстраційні дані, або відмініть.\n"
+#~ "\n"
+#~ "Ви можете також перевірити аутентифікаційну \n"
+#~ "конфігурацію PostgreSQL-клієнта у файлі pg_hba.conf. \n"
+#~ "Детальніше дивись:\n"
+#~ "\n"
+#~ "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
+
+#~ msgid ""
+#~ "Unable to connect to database:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Please retry another backend / user / password combination !\n"
+#~ msgstr ""
+#~ "Неможливо приєднатися до бази даних:\n"
+#~ "\n"
+#~ "%s\n"
+#~ "\n"
+#~ "Будь ласка, спробуйте іншу комбінацію сервер / логін / пароль !\n"
diff --git a/client/po/zh_TW-gnumed.mo b/client/po/zh_TW-gnumed.mo
index ed88ad9..44140cf 100644
Binary files a/client/po/zh_TW-gnumed.mo and b/client/po/zh_TW-gnumed.mo differ
diff --git a/client/po/zh_TW.po b/client/po/zh_TW.po
index f3b035d..85eed6c 100644
--- a/client/po/zh_TW.po
+++ b/client/po/zh_TW.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: GNUmed\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-12-26 20:29+0100\n"
+"POT-Creation-Date: 2016-03-17 16:28+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <LL at li.org>\n"
@@ -1406,10 +1406,22 @@ msgid ""
 msgstr ""
 
 #, python-format
+msgid "Revision #%s"
+msgstr ""
+
+#, python-format
 msgid "[%s:%s]: row not updated (nothing returned), row in use ?"
 msgstr ""
 
 #, python-format
+msgid "<%s(.bat)> not found"
+msgstr ""
+
+#, python-format
+msgid "problem with <%s>"
+msgstr ""
+
+#, python-format
 msgid "[%s] is not a readable file"
 msgstr ""
 
@@ -1437,21 +1449,7 @@ msgstr ""
 msgid "%s Bytes"
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot connect to configuration database with:\n"
-"\n"
-"[%s]"
-msgstr ""
-
-#, python-format
-msgid ""
-"Cannot connect to database with:\n"
-"\n"
-"[%s]"
-msgstr ""
-
-msgid "No product information available."
+msgid "<type>"
 msgstr ""
 
 #, python-format
@@ -1787,74 +1785,6 @@ msgstr ""
 msgid "  risk: %s"
 msgstr ""
 
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Are you sure you have got a local database installed ?\n"
-"\n"
-"Please retry with proper credentials or cancel.\n"
-"\n"
-"You may also need to check the PostgreSQL client\n"
-"authentication configuration in pg_hba.conf. For\n"
-"details see:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-msgstr ""
-
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Please retry with proper credentials or cancel.\n"
-"\n"
-"You may also need to check the PostgreSQL client\n"
-"authentication configuration in pg_hba.conf. For\n"
-"details see:\n"
-"\n"
-"wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
-msgstr ""
-
-msgid "Connecting to backend"
-msgstr "正在連接到後端程式"
-
-#, python-format
-msgid ""
-"Unable to connect to database:\n"
-"\n"
-"%s\n"
-"\n"
-"Please retry another backend / user / password combination !\n"
-msgstr ""
-
-msgid "programmer forgot to specify error message"
-msgstr "程式設計師忘記指定錯誤訊息"
-
-msgid ""
-"\n"
-"\n"
-"Please consult the error log for all the gory details !"
-msgstr ""
-
-msgid "generic error message"
-msgstr "通用錯誤訊息"
-
-msgid "programmer forgot to specify info message"
-msgstr "程式設計師忘記指定資訊"
-
-msgid "generic info message"
-msgstr "通用資訊"
-
-msgid "programmer forgot to specify warning"
-msgstr "程式設計師忘記指定警告"
-
-msgid "generic warning message"
-msgstr "通用警告訊息"
-
 msgid "no hook specified, please report bug"
 msgstr ""
 
@@ -2171,6 +2101,30 @@ msgstr ""
 msgid "Include:"
 msgstr ""
 
+msgid "&Search"
+msgstr ""
+
+msgid "Suggest"
+msgstr ""
+
+msgid "Set"
+msgstr ""
+
+msgid "dialog_1"
+msgstr ""
+
+msgid "Search patients in Orthanc DICOM store."
+msgstr ""
+
+msgid "Suggest a patient ID based on the active patient."
+msgstr ""
+
+msgid "Search term:"
+msgstr ""
+
+msgid "New patient ID:"
+msgstr ""
+
 msgid "Your review"
 msgstr ""
 
@@ -2472,6 +2426,89 @@ msgstr ""
 msgid "Amount"
 msgstr ""
 
+msgid "&Connect"
+msgstr ""
+
+msgid "&Browse"
+msgstr ""
+
+msgid "<not connected>"
+msgstr ""
+
+msgid "Browse all"
+msgstr ""
+
+msgid "Export all"
+msgstr ""
+
+msgid "Browse"
+msgstr ""
+
+msgid "Export"
+msgstr ""
+
+msgid "Upload"
+msgstr ""
+
+msgid "Enter the PACS host address."
+msgstr ""
+
+msgid "Enter the PACS port."
+msgstr ""
+
+msgid "Enter the PACS user."
+msgstr ""
+
+msgid "Enter the PACS password. It will not be shown."
+msgstr ""
+
+msgid "Connect to PACS."
+msgstr ""
+
+msgid "Browse PACS at top level."
+msgstr ""
+
+msgid "Modify some of Orthanc content (such as patient IDs)."
+msgstr ""
+
+msgid "Browse overview of studies for this patient."
+msgstr ""
+
+msgid "Copy all studies into export area."
+msgstr ""
+
+msgid "Browse topmost selected study."
+msgstr ""
+
+msgid "Copy selected studies into export area."
+msgstr ""
+
+msgid "Save selected studies to disk."
+msgstr ""
+
+msgid ""
+"Upload DICOM files from a directory, recursively, into the Orthanc PACS\n"
+"\n"
+"The currently active patient does not matter. Orthanc will associate "
+"uploaded files with the patient found within the DICOM metadata. It will "
+"create new patients as needed."
+msgstr ""
+
+msgid "Host:"
+msgstr ""
+
+msgid "Port:"
+msgstr ""
+
+msgid "User:"
+msgstr ""
+
+msgid "Password"
+msgstr ""
+
+msgid "Selected studies:"
+msgstr ""
+
 msgid "Fake brand"
 msgstr ""
 
@@ -2788,9 +2825,6 @@ msgstr ""
 msgid "&Load"
 msgstr ""
 
-msgid "Export"
-msgstr ""
-
 msgid "A long, descriptive name for this form template."
 msgstr ""
 
@@ -2878,15 +2912,12 @@ msgstr ""
 msgid "Document Properties"
 msgstr ""
 
-msgid "Show part"
+msgid "Show"
 msgstr ""
 
 msgid "Remove part"
 msgstr ""
 
-msgid "Parts"
-msgstr ""
-
 msgid "Discard"
 msgstr ""
 
@@ -2914,6 +2945,9 @@ msgstr ""
 msgid "Required: The primary episode this document is to be listed under."
 msgstr ""
 
+msgid "Optional: The organization (unit) this document originated from."
+msgstr ""
+
 msgid ""
 "Optional: A short comment identifying the document. Good comments give an "
 "idea of the content and source of the document."
@@ -2938,6 +2972,9 @@ msgid ""
 "normal and abnormal resuslts can be relevant."
 msgstr ""
 
+msgid "Optional: A free-text document description."
+msgstr ""
+
 msgid "This field lists the parts belonging to the current document."
 msgstr ""
 
@@ -2949,9 +2986,6 @@ msgid ""
 "deletion from disk."
 msgstr ""
 
-msgid "Optional: A free-text document description."
-msgstr ""
-
 msgid "Save finished document."
 msgstr ""
 
@@ -2967,6 +3001,9 @@ msgstr ""
 msgid "Associate to episode:"
 msgstr ""
 
+msgid "Document source:"
+msgstr ""
+
 msgid "Comment / Identification:"
 msgstr ""
 
@@ -3148,7 +3185,7 @@ msgstr ""
 msgid "Messages:"
 msgstr ""
 
-msgid "Only:"
+msgid "Limit to:"
 msgstr ""
 
 msgid "&Myself … or:"
@@ -3258,10 +3295,10 @@ msgstr ""
 msgid "Purpose"
 msgstr ""
 
-msgid "Details"
+msgid "Please supply your email address here !"
 msgstr ""
 
-msgid "<Please supply your email address here !>"
+msgid "Details"
 msgstr ""
 
 msgid "Keep running"
@@ -3285,9 +3322,11 @@ msgid ""
 msgstr ""
 
 msgid ""
-"Please enter your email address so we can provide feedback directly to you. "
-"Otherwise, feedback will be given on the GNUmed mailing list (http://lists."
-"gnu.org/mailman/listinfo/gnumed-bugs)."
+"Please enter your email address so we can provide help to you directly.\n"
+"\n"
+"Otherwise, feedback can be given on the GNUmed mailing list (http://lists."
+"gnu.org/mailman/listinfo/gnumed-bugs) ONLY to which you will then have to "
+"subscribe."
 msgstr ""
 
 msgid "Find help on http://wiki.gnumed.de, too."
@@ -3402,9 +3441,6 @@ msgstr ""
 msgid "Account"
 msgstr ""
 
-msgid "Password"
-msgstr ""
-
 msgid "Password, again"
 msgstr ""
 
@@ -3891,7 +3927,7 @@ msgstr ""
 msgid "Acquire images from image source (scanner, ...)."
 msgstr ""
 
-msgid "Acquire images or text from the clipboard."
+msgid "Acquire file or text from the clipboard."
 msgstr ""
 
 msgid "Remove the selected documents."
@@ -4034,7 +4070,7 @@ msgid ""
 "- the result list will be artificially limited to the first 1000 rows\n"
 "- you can include a column named \"pk_patient\" to make the result rows "
 "activate the corresponding patient on double-clicking\n"
-"- by inserting $<ID_active_patient>$ you can access the patient ID of the "
+"- by inserting $<ID_ACTIVE_PATIENT>$ you can access the patient ID of the "
 "patient active at the time of running the query"
 msgstr ""
 
@@ -4193,9 +4229,6 @@ msgstr ""
 msgid "Link &new"
 msgstr ""
 
-msgid "Browse"
-msgstr ""
-
 msgid ""
 "Search for matches among existing addresses and [Link] a selection, or [Link "
 "(a) new] address."
@@ -4244,25 +4277,16 @@ msgid ""
 "left."
 msgstr ""
 
-msgid "label_1"
-msgstr ""
-
-msgid "→"
-msgstr ""
-
-msgid "←"
-msgstr ""
-
-msgid "Extra"
+msgid "Subjective"
 msgstr ""
 
-msgid "Move selected items from left to right."
+msgid "Objective"
 msgstr ""
 
-msgid "Move selected items from right to left."
+msgid "Assessment"
 msgstr ""
 
-msgid "Cancel picking items."
+msgid "Plan"
 msgstr ""
 
 msgid "Episode synopsis"
@@ -4298,19 +4322,28 @@ msgid ""
 "narrative belongs to."
 msgstr ""
 
-msgid "Subjective"
+msgid "Codes:"
 msgstr ""
 
-msgid "Codes:"
+msgid "label_1"
 msgstr ""
 
-msgid "Objective"
+msgid "→"
 msgstr ""
 
-msgid "Assessment"
+msgid "←"
 msgstr ""
 
-msgid "Plan"
+msgid "Extra"
+msgstr ""
+
+msgid "Move selected items from left to right."
+msgstr ""
+
+msgid "Move selected items from right to left."
+msgstr ""
+
+msgid "Cancel picking items."
 msgstr ""
 
 msgid "1"
@@ -4479,69 +4512,145 @@ msgstr ""
 msgid "Age range"
 msgstr ""
 
-msgid "Closed episodes"
+msgid "&Nicotine"
 msgstr ""
 
-msgid "Non-relevant issues"
+msgid "&Alcohol"
 msgstr ""
 
-msgid "Active problems"
+msgid "&Other:"
 msgstr ""
 
-msgid "Notes only"
+msgid "&Non-harmful use"
 msgstr ""
 
-msgid "Everything"
+msgid "&Harmful use"
 msgstr ""
 
-msgid ""
-"In this area GNUmed will place the notes of the\n"
-"previous encounter as well as notes by other\n"
-"staff for the current encounter.\n"
-"\n"
-"Note that this may change depending on which\n"
-"active problem is selected in the editor below."
+msgid "Presently &addicted"
 msgstr ""
 
-msgid "Most recent info on above problem"
+msgid "Previously &addicted"
 msgstr ""
 
-msgid "Show closed episodes as pseudo-problems ?"
+msgid "&Reconfirm as of today"
 msgstr ""
 
-msgid "Show issues marked clinically NOT relevant."
+msgid "Select for documenting smoking status."
+msgstr ""
+
+msgid "Select for documenting alcohol use status."
 msgstr ""
 
 msgid ""
-"This shows the list of active problems, They include open episodes as well "
-"as active health issues."
+"Select for documenting use of substances other than nicotine or alcohol."
 msgstr ""
 
-msgid "Show notes only (regarding the above problem)"
+msgid "Select the abused substance."
 msgstr ""
 
-msgid "Show full information (regarding above problem)"
+msgid ""
+"Select if the substance use is not considered harmful (say, no use or non-"
+"harmful use)."
 msgstr ""
 
-msgid "Schock index"
+msgid "Select if substance is use considered harmful."
 msgstr ""
 
-msgid "<SI>"
+msgid "Select if the patient is presently addicted to this substance."
 msgstr ""
 
-msgid "rhythmic"
+msgid "Select if the patient was previously addicted to this substance."
 msgstr ""
 
-msgid "arrhythmic"
+msgid ""
+"A comment on this substance use:\n"
+"- type of product used\n"
+"- frequency\n"
+"- amount\n"
+"- when started\n"
+"- attempts to quit\n"
+"..."
 msgstr ""
 
-msgid "°C"
+msgid ""
+"When did the patient quit?\n"
+"\n"
+"You can also set a target quit date here."
 msgstr ""
 
-msgid "°F"
+msgid "Check here to confirm for today."
 msgstr ""
 
-msgid "<last height>"
+msgid "Quit date"
+msgstr ""
+
+msgid "Last confirmed"
+msgstr ""
+
+msgid "Closed episodes"
+msgstr ""
+
+msgid "Non-relevant issues"
+msgstr ""
+
+msgid "Active problems"
+msgstr ""
+
+msgid "Notes only"
+msgstr ""
+
+msgid "Everything"
+msgstr ""
+
+msgid ""
+"In this area GNUmed will place the notes of the\n"
+"previous encounter as well as notes by other\n"
+"staff for the current encounter.\n"
+"\n"
+"Note that this may change depending on which\n"
+"active problem is selected in the editor below."
+msgstr ""
+
+msgid "Most recent info on above problem"
+msgstr ""
+
+msgid "Show closed episodes as pseudo-problems ?"
+msgstr ""
+
+msgid "Show issues marked clinically NOT relevant."
+msgstr ""
+
+msgid ""
+"This shows the list of active problems, They include open episodes as well "
+"as active health issues."
+msgstr ""
+
+msgid "Show notes only (regarding the above problem)"
+msgstr ""
+
+msgid "Show full information (regarding above problem)"
+msgstr ""
+
+msgid "Schock index"
+msgstr ""
+
+msgid "<SI>"
+msgstr ""
+
+msgid "rhythmic"
+msgstr ""
+
+msgid "arrhythmic"
+msgstr ""
+
+msgid "°C"
+msgstr ""
+
+msgid "°F"
+msgstr ""
+
+msgid "<last height>"
 msgstr ""
 
 msgid "BMI"
@@ -4815,20 +4924,18 @@ msgstr ""
 msgid "Show:"
 msgstr ""
 
-msgid "Brand by component"
+msgid "Kidneys"
 msgstr ""
 
 msgid "Brands"
 msgstr ""
 
-msgid "Kidneys"
-msgstr ""
-
-msgid "Unbranded substance"
+msgid "Substances"
 msgstr ""
 
-msgid "Manage"
-msgstr ""
+#, fuzzy
+msgid "&Unknown or date:"
+msgstr "過敏狀況不明"
 
 msgid "Approved of"
 msgstr ""
@@ -4843,22 +4950,18 @@ msgid "... Reason"
 msgstr ""
 
 msgid ""
-"A component of a drug brand the patient is taking.\n"
+"A drug the patient is taking.\n"
 "\n"
-"Lookup, and select, a single- (or multi-) component drug brand, by active "
-"ingredient name. All components of multi-component drugs will be displayed "
-"and automatically added to the patient's list."
-msgstr ""
-
-msgid ""
-"Manage drug brands.\n"
+"Lookup and select an intake by either of\n"
+"- a generic substance name\n"
+"- a drug brand name\n"
+"- an active ingredient of a drug\n"
 "\n"
-"Note that this will not select a component for you. What it does is to let "
-"you manage (add/edit/delete) the drug products/brands known to GNUmed from "
-"which you can select a component."
+"Note that all components of multi-component drugs will be displayed and "
+"automatically added to the patient's list."
 msgstr ""
 
-msgid "The active ingredients of this brand."
+msgid "Details on the selected drug."
 msgstr ""
 
 msgid "Show cardiac information relevant to substance selection."
@@ -4868,8 +4971,11 @@ msgid "Show renal insufficiency information related to substance selection."
 msgstr ""
 
 msgid ""
-"The non-branded medication or non-medication substance, with optional "
-"strength."
+"Manage drug brands.\n"
+"\n"
+"Note that this will not select a component for you. What it does is to let "
+"you manage (add/edit/delete) the drug products/brands known to GNUmed from "
+"which you can select a component."
 msgstr ""
 
 msgid ""
@@ -4882,11 +4988,19 @@ msgstr ""
 msgid "The preparation or form of the substance."
 msgstr ""
 
+msgid "Check here if the start date simply isn't known."
+msgstr ""
+
 msgid ""
 "When was this substance started to be consumed or - if not known - the "
 "earliest it is known to have been be consumed."
 msgstr ""
 
+msgid ""
+"A coment on the certainty of the start date, such as \"+/- 3 weeks\", "
+"\"spring of 2002\", \"shortly after Easter 1996\", ...."
+msgstr ""
+
 msgid "Whether this substance is taken by advice."
 msgstr ""
 
@@ -4920,6 +5034,15 @@ msgstr ""
 msgid "Reason for discontinuation."
 msgstr ""
 
+msgid "Drug"
+msgstr ""
+
+msgid "Research:"
+msgstr ""
+
+msgid "Certainty:"
+msgstr ""
+
 msgid "Schedule"
 msgstr ""
 
@@ -5071,6 +5194,30 @@ msgstr ""
 msgid "Channel"
 msgstr ""
 
+msgid "&Last modification time"
+msgstr ""
+
+msgid "&Entry time"
+msgstr ""
+
+msgid "Show journal ordered by encounter."
+msgstr ""
+
+msgid "Show journal ordered by time of last modification."
+msgstr ""
+
+msgid "Show journal ordered by actual clinical time of each entry."
+msgstr ""
+
+msgid "Edit the selected chart entry."
+msgstr ""
+
+msgid "Delete selected chart entry."
+msgstr ""
+
+msgid "Order by:"
+msgstr ""
+
 msgid "Chec&k"
 msgstr ""
 
@@ -5612,10 +5759,13 @@ msgstr ""
 msgid "Documents:"
 msgstr ""
 
+msgid "&L"
+msgstr ""
+
 msgid "&N"
 msgstr ""
 
-msgid "&L"
+msgid "List all encounters."
 msgstr ""
 
 msgid "The encounter."
@@ -5624,9 +5774,6 @@ msgstr ""
 msgid "Start a new encounter for the active patient."
 msgstr ""
 
-msgid "List all encounters."
-msgstr ""
-
 msgid "Clinically relevant"
 msgstr ""
 
@@ -5875,7 +6022,8 @@ msgstr ""
 
 msgid ""
 "Rationale for\n"
-"suppression"
+"suppression\n"
+"for this patient"
 msgstr ""
 
 msgid "Save &under"
@@ -5931,6 +6079,12 @@ msgstr ""
 msgid "Encounter:"
 msgstr ""
 
+msgid "Manage"
+msgstr ""
+
+msgid "&Panel:"
+msgstr ""
+
 msgid "&Pick"
 msgstr ""
 
@@ -5973,6 +6127,9 @@ msgid ""
 "To disable that popup leave the message empty."
 msgstr ""
 
+msgid "Show search dialog."
+msgstr ""
+
 msgid "THIS IS NOT A VERIFIED MEASUREMENT. DO NOT USE FOR ACTUAL CARE."
 msgstr ""
 
@@ -6253,6 +6410,48 @@ msgstr "「有」過敏"
 msgid "ERROR: unknown allergy state [%s]"
 msgstr "錯誤:未知的過敏狀態 [%s]"
 
+msgid "definite"
+msgstr ""
+
+msgid "indefinite"
+msgstr ""
+
+#, fuzzy
+msgid "Reaction:"
+msgstr "反應"
+
+msgid "Noted:"
+msgstr ""
+
+#, fuzzy
+msgid "Allergene:"
+msgstr "過敏"
+
+msgid "Substance:"
+msgstr ""
+
+msgid "Code:"
+msgstr ""
+
+msgid "ATC:"
+msgstr ""
+
+msgid "Specific to:"
+msgstr ""
+
+msgid "this substance only"
+msgstr ""
+
+msgid "drug class"
+msgstr ""
+
+msgid "unknown"
+msgstr ""
+
+#, fuzzy
+msgid "Generics:"
+msgstr "通用資訊"
+
 msgid "Medication history"
 msgstr ""
 
@@ -6262,9 +6461,15 @@ msgstr ""
 msgid "prescription data"
 msgstr ""
 
+msgid "Consumable substance"
+msgstr ""
+
 msgid "in use"
 msgstr ""
 
+msgid "w/"
+msgstr ""
+
 msgid "long-term"
 msgstr "長期"
 
@@ -6284,6 +6489,35 @@ msgid "?ongoing"
 msgstr ""
 
 #, python-format
+msgid ""
+"Substance abuse entry                                              [#%s]\n"
+msgstr ""
+
+#, python-format
+msgid "Substance: %s [#%s]%s\n"
+msgstr ""
+
+#, python-format
+msgid "Use type: %s\n"
+msgstr ""
+
+#, fuzzy, python-format
+msgid "Last checked: %s\n"
+msgstr "上次檢查:"
+
+#, python-format
+msgid " Discontinued %s\n"
+msgstr ""
+
+#, fuzzy, python-format
+msgid " Notes: %s\n"
+msgstr "狀態"
+
+#, python-format
+msgid "Revision: #%(row_ver)s, %(mod_when)s by %(mod_by)s."
+msgstr ""
+
+#, python-format
 msgid "Substance intake entry (%s, %s)   [#%s]                     \n"
 msgstr ""
 
@@ -6299,9 +6533,6 @@ msgstr ""
 msgid "unapproved"
 msgstr ""
 
-msgid "definite"
-msgstr ""
-
 msgid "suspected"
 msgstr ""
 
@@ -6348,10 +6579,6 @@ msgid " (short-term)"
 msgstr ""
 
 #, python-format
-msgid " Discontinued %s\n"
-msgstr ""
-
-#, python-format
 msgid " Reason: %s\n"
 msgstr ""
 
@@ -6371,16 +6598,59 @@ msgstr ""
 msgid " Advice: %s\n"
 msgstr ""
 
+msgid "medication, not abuse"
+msgstr ""
+
+msgid "no or non-harmful use"
+msgstr ""
+
+msgid "presently harmful use"
+msgstr ""
+
+msgid "presently addicted"
+msgstr ""
+
+msgid "previously addicted"
+msgstr ""
+
 #, python-format
-msgid "Revision: #%(row_ver)s, %(mod_when)s by %(mod_by)s."
+msgid "%s%s: %s ago%s"
+msgstr ""
+
+#, python-format
+msgid "%s%s: %s ago (%s)"
+msgstr ""
+
+#, python-format
+msgid "%s%s%s (%s ago)"
+msgstr ""
+
+#, python-format
+msgid "%s%s%s (%s ago, %s)"
+msgstr ""
+
+#, python-format
+msgid "%s ago"
+msgstr ""
+
+#, python-format
+msgid "in %s"
+msgstr ""
+
+#, python-format
+msgid ", until %s (%s)"
 msgstr ""
 
 #, python-format
-msgid "%s: %s ago"
+msgid " (planned for %s%s)"
 msgstr ""
 
 #, python-format
-msgid "%s: %s ago (%s)"
+msgid ", planned for %s%s"
+msgstr ""
+
+#, python-format
+msgid "%s ago (for %s: %s %s %s)"
 msgstr ""
 
 msgid "Additional notes"
@@ -6395,10 +6665,31 @@ msgstr ""
 msgid "ordered by brand"
 msgstr ""
 
-msgid "Drug"
+msgid "Regimen / Advice"
 msgstr ""
 
-msgid "Regimen / Advice"
+#, python-format
+msgid "Component of %s (%s)"
+msgstr ""
+
+#, python-format
+msgid "ATC (substance): %s"
+msgstr ""
+
+#, python-format
+msgid "ATC (brand): %s"
+msgstr ""
+
+msgid "this is a component of a fake brand"
+msgstr ""
+
+msgid "Components:"
+msgstr ""
+
+msgid "this is a fake brand"
+msgstr ""
+
+msgid "this is a vaccine"
 msgstr ""
 
 msgid "units"
@@ -6433,51 +6724,17 @@ msgstr ""
 msgid "Expires: %s\n"
 msgstr ""
 
-msgid "Active clinical hint"
+msgid "HL7 Source"
 msgstr ""
 
-msgid "Inactive clinical hint"
+msgid "HL7 data size"
 msgstr ""
 
 #, python-format
-msgid "Source: %s\n"
+msgid "%s bytes"
 msgstr ""
 
-#, python-format
-msgid "Language: %s\n"
-msgstr ""
-
-msgid "Suppressed active dynamic hint"
-msgstr ""
-
-msgid "Suppressed inactive dynamic hint"
-msgstr ""
-
-#, python-format
-msgid "Suppressed by: %s\n"
-msgstr ""
-
-#, python-format
-msgid "Suppressed at: %s\n"
-msgstr ""
-
-#, python-format
-msgid "Hint #: %s\n"
-msgstr ""
-
-#, python-format
-msgid "Patient #: %s\n"
-msgstr ""
-
-#, python-format
-msgid "MD5 (currently): %s\n"
-msgstr ""
-
-#, python-format
-msgid "MD5 (at suppression): %s\n"
-msgstr ""
-
-msgid "HL7 Message"
+msgid "HL7 Message"
 msgstr ""
 
 #, python-format
@@ -6530,13 +6787,6 @@ msgstr ""
 msgid "doc: %s"
 msgstr ""
 
-msgid "no patient photograph available"
-msgstr ""
-
-#, python-format
-msgid "patient photograph from %s"
-msgstr ""
-
 msgid "Patient data for"
 msgstr ""
 
@@ -6546,6 +6796,9 @@ msgstr ""
 msgid "Patient data export"
 msgstr ""
 
+msgid "no patient photograph available"
+msgstr ""
+
 msgid "Documents"
 msgstr ""
 
@@ -6555,6 +6808,10 @@ msgstr ""
 msgid "browse documents area"
 msgstr ""
 
+#, python-format
+msgid "patient photograph from %s"
+msgstr ""
+
 msgid "Browse patient data"
 msgstr ""
 
@@ -6589,24 +6846,24 @@ msgstr ""
 #, python-format
 msgid ""
 "%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s %(suburb)s, "
-"%(code_state)s, %(code_country)s"
+"%(code_region)s, %(code_country)s"
 msgstr ""
 
 #, python-format
 msgid ""
 "%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s %(suburb)s, "
-"%(code_state)s, %(code_country)s"
+"%(code_region)s, %(code_country)s"
 msgstr ""
 
 #, python-format
 msgid ""
-"%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_state)s, "
-"%(code_country)s"
+"%(type)s: %(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, "
+"%(code_region)s, %(code_country)s"
 msgstr ""
 
 #, python-format
 msgid ""
-"%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_state)s, "
+"%(street)s %(number)s%(subunit)s, %(zip)s %(urb)s, %(code_region)s, "
 "%(code_country)s"
 msgstr ""
 
@@ -6616,7 +6873,7 @@ msgid ""
 " Street: %(street)s%(notes_street)s\n"
 " Number/Unit: %(number)s%(subunit)s%(notes_subunit)s\n"
 " Location: %(zip)s %(urb)s%(suburb)s\n"
-" Region: %(l10n_state)s, %(code_state)s\n"
+" Region: %(l10n_region)s, %(code_region)s\n"
 " Country: %(l10n_country)s, %(code_country)s"
 msgstr ""
 
@@ -6626,7 +6883,7 @@ msgid ""
 " Street: %(street)s%(notes_street)s\n"
 " Number/Unit: %(number)s%(subunit)s%(notes_subunit)s\n"
 " Location: %(zip)s %(urb)s%(suburb)s\n"
-" Region: %(l10n_state)s, %(code_state)s\n"
+" Region: %(l10n_region)s, %(code_region)s\n"
 " Country: %(l10n_country)s, %(code_country)s"
 msgstr ""
 
@@ -6695,6 +6952,88 @@ msgstr ""
 msgid "missing, reported later"
 msgstr ""
 
+msgid "Health issue"
+msgstr ""
+
+msgid "External care"
+msgstr ""
+
+msgid "Vaccination"
+msgstr ""
+
+msgid "Clinical narrative"
+msgstr ""
+
+#, fuzzy
+msgid "Test result"
+msgstr "測試結果"
+
+msgid "Substance intake"
+msgstr ""
+
+msgid "Hospital stay"
+msgstr ""
+
+msgid "Performed procedure"
+msgstr ""
+
+msgid "Family history"
+msgstr ""
+
+#, fuzzy
+msgid "Document"
+msgstr "註記"
+
+#, python-format
+msgid "unmapped entry type from table [%s]"
+msgstr ""
+
+#, python-format
+msgid "cannot instantiate clinical root item <%s(%s)>"
+msgstr ""
+
+msgid "True"
+msgstr ""
+
+msgid "False"
+msgstr ""
+
+#, fuzzy
+msgid "unknown smoking status"
+msgstr "狀態"
+
+msgid "non-smoker"
+msgstr ""
+
+msgid "current smoker"
+msgstr ""
+
+msgid "ex-smoker"
+msgstr ""
+
+msgid "tobacco addiction"
+msgstr ""
+
+msgid "no or non-harmful alcohol use"
+msgstr ""
+
+msgid "harmful alcohol use"
+msgstr ""
+
+#, fuzzy
+msgid "unknown alcohol use"
+msgstr "過敏狀況不明"
+
+msgid "no or non-harmful drug use"
+msgstr ""
+
+msgid "harmful drug use"
+msgstr ""
+
+#, fuzzy
+msgid "unknown drug use"
+msgstr "過敏狀況不明"
+
 msgid "original entry"
 msgstr "原始條目"
 
@@ -6786,13 +7125,6 @@ msgstr ""
 msgid "Vaccinations"
 msgstr ""
 
-#, python-format
-msgid "%s ago"
-msgstr ""
-
-msgid "External care"
-msgstr ""
-
 msgid "Allergies/Intolerances"
 msgstr ""
 
@@ -6866,76 +7198,126 @@ msgid ""
 "The account was deactivated instead."
 msgstr ""
 
-#, python-format
-msgid "Device(%s):"
-msgstr "裝置(%s):"
+msgid "SOAP_char_S=S"
+msgstr ""
 
-msgid "Battery:"
-msgstr "電池:"
+msgid "SOAP_char_O=O"
+msgstr ""
 
-msgid "Implanted:"
+msgid "SOAP_char_A=A"
 msgstr ""
 
-msgid "last check:"
-msgstr "上次檢查:"
+msgid "SOAP_char_P=P"
+msgstr ""
 
-msgid "Sensing:"
+msgid "SOAP_char_U=U"
 msgstr ""
 
-msgid "Threshold"
-msgstr "閾值"
+msgid "SOAP_string_Subjective=Subjective"
+msgstr ""
 
-msgid "Impedance:"
+msgid "SOAP_string_Objective=Objective"
+msgstr ""
+
+msgid "SOAP_string_Assessment=Assessment"
+msgstr ""
+
+msgid "SOAP_string_Plan=Plan"
+msgstr ""
+
+msgid "SOAP_string_Unspecified=Unspecified"
+msgstr ""
+
+msgid "SOAP_string_Administrative=Administrative"
+msgstr ""
+
+msgid "Active clinical hint"
+msgstr ""
+
+msgid "Inactive clinical hint"
 msgstr ""
 
 #, python-format
-msgid "Praxis branch                   #%s\n"
+msgid "Source: %s\n"
 msgstr ""
 
-msgid "Privacy notice"
+#, python-format
+msgid "Language: %s\n"
+msgstr ""
+
+msgid "Suppressed active dynamic hint"
+msgstr ""
+
+msgid "Suppressed inactive dynamic hint"
 msgstr ""
 
 #, python-format
-msgid ""
-"%s: Your chart has been accessed by %s (without user interaction, probably "
-"by a script)."
+msgid "Suppressed by: %s\n"
 msgstr ""
 
 #, python-format
-msgid "%s: Staff member %s has been notified of your chart access."
+msgid "Suppressed at: %s\n"
+msgstr ""
+
+#, python-format
+msgid "Hint #: %s\n"
 msgstr ""
 
-msgid "soap_S"
+#, python-format
+msgid "Patient #: %s\n"
 msgstr ""
 
-msgid "soap_O"
+#, python-format
+msgid "MD5 (currently): %s\n"
 msgstr ""
 
-msgid "soap_A"
+#, python-format
+msgid "MD5 (at suppression): %s\n"
 msgstr ""
 
-msgid "soap_P"
+#, python-format
+msgid "Device(%s):"
+msgstr "裝置(%s):"
+
+msgid "Battery:"
+msgstr "電池:"
+
+msgid "Implanted:"
 msgstr ""
 
-msgid "soap_U"
+msgid "last check:"
+msgstr "上次檢查:"
+
+msgid "Sensing:"
 msgstr ""
 
-msgid "soap_Subjective"
+msgid "Threshold"
+msgstr "閾值"
+
+msgid "Impedance:"
 msgstr ""
 
-msgid "soap_Objective"
+#, python-format
+msgid "Praxis branch                   #%s\n"
 msgstr ""
 
-msgid "soap_Assessment"
+#, python-format
+msgid ""
+"FN:%(l10n_unit_category)s %(branch)s of %(l10n_organization_category)s "
+"%(praxis)s"
 msgstr ""
 
-msgid "soap_Plan"
+msgid "Privacy notice"
 msgstr ""
 
-msgid "soap_Unspecified"
+#, python-format
+msgid ""
+"%s: Your chart has been accessed by %s (without user interaction, probably "
+"by a script)."
 msgstr ""
 
-msgid "soap_Administrative"
+#, python-format
+msgid "%s: Staff member %s has been notified of your chart access."
 msgstr ""
 
 #, python-format
@@ -7002,9 +7384,17 @@ msgid "%(last)s,%(title)s %(first)s%(nick)s (%(sex)s)"
 msgstr ""
 
 #, python-format
+msgid "%(last)s,%(title)s %(first)s (%(sex)s)"
+msgstr ""
+
+#, python-format
 msgid "%(last)s,%(title)s %(first)s%(nick)s"
 msgstr ""
 
+#, python-format
+msgid "%(last)s,%(title)s %(first)s"
+msgstr ""
+
 msgid "Cannot merge active patient into another patient."
 msgstr ""
 
@@ -7014,9 +7404,6 @@ msgstr ""
 msgid "merged"
 msgstr ""
 
-msgid "preferred name/call name/..."
-msgstr ""
-
 msgid "invalid age: DOB in the future"
 msgstr ""
 
@@ -7029,9 +7416,6 @@ msgstr "先生"
 msgid "Mrs"
 msgstr "女士"
 
-msgid "unknown"
-msgstr ""
-
 msgid "empty status"
 msgstr ""
 
@@ -7363,7 +7747,7 @@ msgid " Part %s: %s %s(%s Bytes)\n"
 msgstr ""
 
 #, python-format
-msgid " Filename: %s\n"
+msgid " Filename: %s%s\n"
 msgstr ""
 
 msgid "no parts"
@@ -7377,18 +7761,25 @@ msgid "%s parts"
 msgstr ""
 
 #, python-format
+msgid "%s of %s"
+msgstr ""
+
+#, python-format
 msgid ""
 "%s (%s)   #%s\n"
-"\n"
 " Created: %s\n"
 " Episode: %s\n"
-"%s%s%s"
+"%s%s%s%s"
 msgstr ""
 
 #, python-format
 msgid " External reference: %s\n"
 msgstr ""
 
+#, python-format
+msgid " Organization: %%s @ %s\n"
+msgstr ""
+
 msgid "Cannot run [arriba] !"
 msgstr ""
 
@@ -7734,25 +8125,9 @@ msgstr ""
 msgid "External care:"
 msgstr ""
 
-#, python-format
-msgid ""
-"health issue: %s%s%s\n"
-"\n"
-msgstr ""
-
-msgid ""
-"\n"
-"current values:\n"
-msgstr ""
-
-msgid "no previous versions of this record"
-msgstr ""
-
-msgid ""
-"\n"
-"all values with <audit_action>, <audit_when>, <audit_by> fields (current "
-"value first):\n"
-msgstr ""
+#, fuzzy, python-format
+msgid "Health issue: %s%s%s"
+msgstr "目標"
 
 msgid "Unattributed episodes"
 msgstr ""
@@ -7775,9 +8150,6 @@ msgstr ""
 msgid "finished"
 msgstr ""
 
-msgid "Health issue"
-msgstr ""
-
 msgid "none associated"
 msgstr ""
 
@@ -7812,11 +8184,9 @@ msgstr ""
 msgid "Measurements and Results:"
 msgstr ""
 
-#, python-format
-msgid ""
-"episode: %s%s%s\n"
-"\n"
-msgstr ""
+#, fuzzy, python-format
+msgid "Episode: %s%s%s"
+msgstr "目標"
 
 #, python-format
 msgid "  your time: %s - %s  (@%s = %s%s)\n"
@@ -7842,11 +8212,9 @@ msgstr ""
 msgid "%s other episodes touched upon during this encounter:"
 msgstr ""
 
-#, python-format
-msgid ""
-"encounter: %s%s%s\n"
-"\n"
-msgstr ""
+#, fuzzy, python-format
+msgid "Encounter: %s%s%s"
+msgstr "目標"
 
 msgid " (ongoing)"
 msgstr ""
@@ -7866,9 +8234,6 @@ msgstr ""
 msgid "Procedures"
 msgstr ""
 
-msgid "Substances"
-msgstr ""
-
 msgid "Life events"
 msgstr ""
 
@@ -7890,9 +8255,6 @@ msgstr ""
 msgid "Cannot display timeline."
 msgstr ""
 
-msgid "Vaccination"
-msgstr ""
-
 msgid "Lab result"
 msgstr "實驗室結果"
 
@@ -7960,10 +8322,7 @@ msgstr ""
 msgid "Exported: %s\n"
 msgstr ""
 
-msgid "emr-journal"
-msgstr ""
-
-msgid "Chronological EMR Journal\n"
+msgid "Chronological EMR Journal\n"
 msgstr ""
 
 msgid "Doc"
@@ -8230,25 +8589,144 @@ msgstr ""
 msgid "Select one or more codes that apply."
 msgstr ""
 
-msgid "Cannot move progress notes. No active patient."
+msgid "Select the narrative you are interested in ..."
 msgstr ""
 
-msgid "Moving progress notes between encounters ..."
+msgid "when"
+msgstr ""
+
+msgid "who"
+msgstr ""
+
+msgid "entry"
+msgstr ""
+
+msgid "There is no narrative for this episode in this encounter."
+msgstr ""
+
+msgid "Must select episode to move narrative to first."
+msgstr ""
+
+msgid "Last"
+msgstr ""
+
+msgid "In health issue"
+msgstr ""
+
+msgid "Most recent notes on selected problem"
+msgstr ""
+
+#, python-format
+msgid "%s (active+potential) problems"
 msgstr ""
 
+#, python-format
+msgid "%s active problems"
+msgstr ""
+
+msgid "Current encounter:"
+msgstr ""
+
+msgid "Cumulative summary"
+msgstr ""
+
+#, python-format
+msgid "Most recent info on %s%s%s"
+msgstr ""
+
+#, python-format
 msgid ""
+"Cannot open progress note editor for\n"
 "\n"
-" Select the progress notes to move from the list !\n"
+"[%s].\n"
 "\n"
 msgstr ""
 
-msgid "when"
+msgid "opening progress note editor"
 msgstr ""
 
-msgid "who"
+msgid "Cannot save all editors. Some were kept open."
 msgstr ""
 
-msgid "entry"
+msgid "new problem"
+msgstr ""
+
+msgid ""
+"Are you sure you really want to\n"
+"discard this progress note ?\n"
+msgstr ""
+
+msgid "Discarding progress note"
+msgstr ""
+
+msgid "There are unsaved progress notes !\n"
+msgstr ""
+
+msgid "Unsaved progress notes"
+msgstr ""
+
+msgid "Problem list"
+msgstr ""
+
+msgid "Saving SOAP note"
+msgstr ""
+
+msgid "Do you want to save the SOAP note ?"
+msgstr ""
+
+#, python-format
+msgid "&Filter by problem %s%s%s"
+msgstr ""
+
+msgid "Cannot save SimpleNotes SOAP note."
+msgstr ""
+
+#, python-format
+msgid "Progress note: %s%s"
+msgstr ""
+
+msgid "Please enter a name for the new problem:"
+msgstr ""
+
+msgid "Adding a problem"
+msgstr ""
+
+msgid "Cannot delete problem. There is still clinical data recorded for it."
+msgstr ""
+
+#, python-format
+msgid "GNUmed: configuring [%s] (%s plugins)"
+msgstr ""
+
+msgid "loading list of plugins                               "
+msgstr ""
+
+msgid "failed"
+msgstr ""
+
+msgid "success"
+msgstr ""
+
+#, python-format
+msgid ""
+"previous: %s (%s)\n"
+"current (%s/%s): %s"
+msgstr ""
+
+#, python-format
+msgid "Cannot switch to [%s]: no patient selected"
+msgstr ""
+
+msgid "Cannot move progress notes. No active patient."
+msgstr ""
+
+msgid "Moving progress notes between encounters ..."
+msgstr ""
+
+msgid ""
+"\n"
+" Select the progress notes to move from the list !\n"
+"\n"
 msgstr ""
 
 msgid "Cannot edit progress notes. No active patient."
@@ -8450,966 +8928,886 @@ msgid ""
 " Now, mark the entries you want to include in your report.\n"
 msgstr ""
 
-msgid "Select the narrative you are interested in ..."
+msgid "Pick a date ..."
 msgstr ""
 
-msgid "There is no narrative for this episode in this encounter."
+msgid "<ALT-C/K>: pick from (c/k)alendar"
 msgstr ""
 
-msgid "Must select episode to move narrative to first."
+msgid "Cannot interpret input as timestamp."
 msgstr ""
 
-msgid "Last"
+msgid "No vaccines were chosen"
 msgstr ""
 
-msgid "In health issue"
+#, python-format
+msgid "Combination of indications , %s , not found in any vaccine"
 msgstr ""
 
-msgid "Most recent notes on selected problem"
+msgid "Sequence"
 msgstr ""
 
-#, python-format
-msgid "%s (active+potential) problems"
+msgid "Batch"
 msgstr ""
 
-#, python-format
-msgid "%s active problems"
+msgid "Vaccinator"
 msgstr ""
 
-msgid "Current encounter:"
+msgid ""
+"Vaccinations by Recommender (X = patient on regime, O = patient not on "
+"regime) "
 msgstr ""
 
-msgid "Cumulative summary"
+msgid "enrolled regime vaccinations not yet given"
 msgstr ""
 
-#, python-format
-msgid "Most recent info on %s%s%s"
+msgid "Proceed with "
 msgstr ""
 
 #, python-format
-msgid ""
-"Cannot open progress note editor for\n"
-"\n"
-"[%s].\n"
-"\n"
+msgid "Failed to enrol patient in %s"
 msgstr ""
 
-msgid "opening progress note editor"
+#, python-format
+msgid "Failed to  delist patient from %s"
 msgstr ""
 
-msgid "Cannot save all editors. Some were kept open."
+msgid "Missing GNUmed module"
 msgstr ""
 
-msgid "new problem"
+#, python-format
+msgid ""
+"GNUmed detected that parts of it are not\n"
+"properly installed. The following message\n"
+"names the missing part:\n"
+"\n"
+" \"%s\"\n"
+"\n"
+"Please make sure to get the missing\n"
+"parts installed. Otherwise some of the\n"
+"functionality will not be accessible."
 msgstr ""
 
+#, python-format
 msgid ""
-"Are you sure you really want to\n"
-"discard this progress note ?\n"
+"\n"
+" Source: %s"
 msgstr ""
 
-msgid "Discarding progress note"
+#, python-format
+msgid ""
+"\n"
+" Code: %s"
 msgstr ""
 
-msgid "There are unsaved progress notes !\n"
+#, python-format
+msgid ""
+"\n"
+" Details (first 250 characters):\n"
+"%s\n"
+"%s\n"
+"%s"
 msgstr ""
 
-msgid "Unsaved progress notes"
+msgid "Access violation"
 msgstr ""
 
 #, python-format
-msgid "Synopsis (%s)"
+msgid ""
+"You do not have access to this part of GNUmed.\n"
+"\n"
+"%s"
 msgstr ""
 
-msgid ""
-"Enter a short working name for this new problem\n"
-"(which will become a new, unassociated episode):\n"
+msgid "Lost connection"
 msgstr ""
 
-#, python-format
 msgid ""
-"Enter a short working name for this new\n"
-"episode under the existing health issue\n"
+"Since you were last working in GNUmed,\n"
+"your database connection timed out.\n"
 "\n"
-"\"%s\":\n"
+"This GNUmed session is now expired.\n"
+"\n"
+"You will have to close this client and\n"
+"restart a new GNUmed session."
 msgstr ""
 
-msgid "Creating problem (episode) to save notelet under ..."
+msgid ""
+"Please enter a short note on what you\n"
+"were about to do in GNUmed:"
 msgstr ""
 
-msgid "Cannot save a new problem without a name."
+msgid "Sending bug report"
 msgstr ""
 
-msgid "saving progress note"
+msgid ""
+"Edit the list of email addresses to send the\n"
+"bug report to (separate addresses by spaces).\n"
+"\n"
+"Note that <gnumed-bugs at gnu.org> refers to\n"
+"the public (!) GNUmed bugs mailing list."
 msgstr ""
 
 #, python-format
 msgid ""
-"The new episode:\n"
+"Your bug report will be sent to:\n"
 "\n"
-" \"%s\"\n"
+"%s\n"
 "\n"
-"will remain unassociated despite the editor\n"
-"having been invoked from the health issue:\n"
+"Make sure you have reviewed the log file for potentially\n"
+"sensitive information before sending out the bug report.\n"
 "\n"
-" \"%s\""
+"Note that emailing the report may take a while depending\n"
+"on the speed of your internet connection.\n"
 msgstr ""
 
-msgid "You need to actually set an editor."
+msgid "Yes, send the bug report."
 msgstr ""
 
-#, python-format
-msgid "The command [%s] is not found."
+msgid "No, do not send the bug report."
 msgstr ""
 
-#, python-format
-msgid ""
-"Enter the shell command with which to start\n"
-"the image editor for visual progress notes.\n"
-"\n"
-"Any \"%(img)s\" included with the arguments\n"
-"will be replaced by the file name of the\n"
-"note template."
+msgid "include log file in bug report"
 msgstr ""
 
-msgid "Choose file to use as template for new visual progress note"
+msgid ""
+"The database you are connected to is marked as\n"
+"\"in-production with controlled access\".\n"
+"\n"
+"You indicated that you want to include the log\n"
+"file in your bug report. While this is often\n"
+"useful for debugging the log file might contain\n"
+"bits of patient data which must not be sent out\n"
+"without de-identification.\n"
+"\n"
+"Please confirm that you want to include the log !"
 msgstr ""
 
-msgid "Visual progress note source"
+msgid "<not supplied>"
 msgstr ""
 
-msgid "From which source do you want to pick the image template ?"
+msgid "Bug report has been emailed."
 msgstr ""
 
-msgid "Database"
+msgid "Bug report COULD NOT be emailed."
 msgstr ""
 
-msgid "List of templates in the database."
+msgid "Underweight"
 msgstr ""
 
-msgid "Files in the filesystem."
+msgid "63< Normal >79"
 msgstr ""
 
-msgid "Device"
+msgid "63 - Normal - 79"
 msgstr ""
 
-msgid "Image capture devices (scanners, cameras, etc)"
+msgid "Overweight"
 msgstr ""
 
-#, python-format
-msgid "Cannot export visual progress note template for [%s]."
+msgid "Obese"
 msgstr ""
 
-msgid "Cannot export visual progress note to file."
+msgid "Current height/mass"
 msgstr ""
 
-msgid "Editor for visual progress note not configured."
+msgid "Height (cm)"
 msgstr ""
 
-#, python-format
-msgid ""
-"There was a problem with running the editor\n"
-"for visual progress notes.\n"
-"\n"
-" [%s]\n"
-"\n"
+msgid "Mass (kg)"
 msgstr ""
 
-msgid "Editing visual progress note"
+msgid "Adjusted Values"
 msgstr ""
 
-#, python-format
-msgid ""
-"There was a problem reading the visual\n"
-"progress note from the file:\n"
-"\n"
-" [%s]\n"
-"\n"
+msgid "Goal mass"
 msgstr ""
 
-msgid "Saving visual progress note"
+msgid "kg to lose"
 msgstr ""
 
-msgid ""
-"You either created a visual progress note from a template\n"
-"in the database (rather than from a file on disk) or you\n"
-"edited an existing visual progress note.\n"
-"\n"
-"The template/original was not modified at all, however.\n"
-"\n"
-"Do you still want to save the unmodified image as a\n"
-"visual progress note into the EMR of the patient ?\n"
+msgid "BMI Calculator"
 msgstr ""
 
-msgid "visual progress notes"
+msgid "&Reset"
 msgstr ""
 
-#, python-format
-msgid "Created: %s"
+msgid "Select a healthcare provider."
 msgstr ""
 
-msgid "Problem list"
+msgid "Public (no clinical or demographic access)"
 msgstr ""
 
-msgid "Saving SOAP note"
+msgid "Staff (demographic access only)"
 msgstr ""
 
-msgid "Do you want to save the SOAP note ?"
+msgid "staff (clerical)"
 msgstr ""
 
-#, python-format
-msgid "&Filter by problem %s%s%s"
+msgid "full clinical access"
 msgstr ""
 
-msgid "Cannot save SimpleNotes SOAP note."
+msgid "DB account"
 msgstr ""
 
-#, python-format
-msgid "Progress note: %s%s"
+msgid "can login"
 msgstr ""
 
-msgid "Please enter a name for the new problem:"
+msgid "can not login"
 msgstr ""
 
-msgid "Adding a problem"
+msgid "Activating GNUmed user."
 msgstr ""
 
-msgid "Cannot delete problem. There is still clinical data recorded for it."
+msgid "Deactivating GNUmed user."
 msgstr ""
 
-#, python-format
-msgid "GNUmed: configuring [%s] (%s plugins)"
+msgid "Removing GNUmed user."
 msgstr ""
 
-msgid "loading list of plugins                               "
+msgid "Removing GNUmed user"
 msgstr ""
 
-msgid "failed"
+msgid "Modifying GNUmed user."
 msgstr ""
 
-msgid "success"
+msgid "Failed to save changes to GNUmed database user."
 msgstr ""
 
-#, python-format
-msgid ""
-"previous: %s (%s)\n"
-"current (%s/%s): %s"
+msgid "Modifying GNUmed user"
 msgstr ""
 
 #, python-format
-msgid "Cannot switch to [%s]: no patient selected"
+msgid "Failed to set role [%s] for GNUmed database user."
 msgstr ""
 
-msgid "Pick a date ..."
+#, python-format
+msgid ""
+"\n"
+"  %s \"%s\" %s\n"
+"  born: %s"
 msgstr ""
 
-msgid "<ALT-C/K>: pick from (c/k)alendar"
+msgid ""
+"Password entries do not match. Please type in the passwords again to rule "
+"out typos."
 msgstr ""
 
-msgid "Cannot interpret input as timestamp."
+msgid "Adding GNUmed user"
 msgstr ""
 
-msgid "No vaccines were chosen"
+msgid ""
+"Are you positively sure you want to create\n"
+"a user with an empty password ?\n"
+"\n"
+"Think about the record access implications !"
 msgstr ""
 
-#, python-format
-msgid "Combination of indications , %s , not found in any vaccine"
+msgid "Enlisting person as user."
 msgstr ""
 
-msgid "Sequence"
+msgid "Encrypt"
 msgstr ""
 
-msgid "Batch"
+msgid "Decrypt"
 msgstr ""
 
-msgid "Vaccinator"
+msgid "Set pass phrase"
 msgstr ""
 
-msgid ""
-"Vaccinations by Recommender (X = patient on regime, O = patient not on "
-"regime) "
+msgid "This is not correctly encrypted text!"
 msgstr ""
 
-msgid "enrolled regime vaccinations not yet given"
+msgid "Please enter your pass phrase:"
 msgstr ""
 
-msgid "Proceed with "
+msgid "Pass phrase expired"
 msgstr ""
 
-#, python-format
-msgid "Failed to enrol patient in %s"
+msgid ""
+"\n"
+"Conditions preventable by vaccination as currently known to GNUmed.\n"
 msgstr ""
 
-#, python-format
-msgid "Failed to  delist patient from %s"
+msgid "Showing vaccination preventable conditions."
 msgstr ""
 
-msgid "Missing GNUmed module"
+msgid "ATCs: single-condition vaccines"
 msgstr ""
 
-#, python-format
-msgid ""
-"GNUmed detected that parts of it are not\n"
-"properly installed. The following message\n"
-"names the missing part:\n"
-"\n"
-" \"%s\"\n"
-"\n"
-"Please make sure to get the missing\n"
-"parts installed. Otherwise some of the\n"
-"functionality will not be accessible."
+msgid "ATCs: multi-condition vaccines"
 msgstr ""
 
-#, python-format
-msgid ""
-"\n"
-" Source: %s"
+msgid "Pick the relevant indications."
 msgstr ""
 
-#, python-format
-msgid ""
-"\n"
-" Code: %s"
+msgid "Known indications"
 msgstr ""
 
-#, python-format
-msgid ""
-"\n"
-" Details (first 250 characters):\n"
-"%s\n"
-"%s\n"
-"%s"
+msgid "Adding new vaccine"
 msgstr ""
 
-msgid "Access violation"
+msgid "Editing vaccine"
 msgstr ""
 
 #, python-format
 msgid ""
-"You do not have access to this part of GNUmed.\n"
+"Cannot delete vaccine\n"
 "\n"
-"%s"
+" %s - %s (#%s)\n"
+"\n"
+"It is probably documented in a vaccination."
 msgstr ""
 
-msgid "Lost connection"
+msgid "Deleting vaccine"
+msgstr ""
+
+msgid "fake"
 msgstr ""
 
 msgid ""
-"Since you were last working in GNUmed,\n"
-"your database connection timed out.\n"
-"\n"
-"This GNUmed session is now expired.\n"
 "\n"
-"You will have to close this client and\n"
-"restart a new GNUmed session."
+"The vaccines currently known to GNUmed.\n"
 msgstr ""
 
-msgid ""
-"Please enter a short note on what you\n"
-"were about to do in GNUmed:"
+msgid "Showing vaccines."
 msgstr ""
 
-msgid "Sending bug report"
+msgid "Enter or select the batch/lot number of the vaccine used."
 msgstr ""
 
-msgid ""
-"Edit the list of email addresses to send the\n"
-"bug report to (separate addresses by spaces).\n"
-"\n"
-"Note that <gnumed-bugs at gnu.org> refers to\n"
-"the public (!) GNUmed bugs mailing list."
+msgid "Saving vaccine"
 msgstr ""
 
 #, python-format
 msgid ""
-"Your bug report will be sent to:\n"
+"This vaccine is already in use:\n"
 "\n"
-"%s\n"
+" \"%s\"\n"
+" (%s)\n"
 "\n"
-"Make sure you have reviewed the log file for potentially\n"
-"sensitive information before sending out the bug report.\n"
+"Are you absolutely positively sure that\n"
+"you really want to edit this vaccine ?\n"
 "\n"
-"Note that emailing the report may take a while depending\n"
-"on the speed of your internet connection.\n"
+"This will change the vaccine name and/or target\n"
+"conditions in each patient this vaccine was\n"
+"used in to document a vaccination with.\n"
 msgstr ""
 
-msgid "Yes, send the bug report."
+msgid "You must select at least one indication."
 msgstr ""
 
-msgid "No, do not send the bug report."
+msgid "Pick the diseases this vaccine protects against."
 msgstr ""
 
-msgid "include log file in bug report"
+msgid "This vaccine"
 msgstr ""
 
-msgid ""
-"The database you are connected to is marked as\n"
-"\"in-production with controlled access\".\n"
-"\n"
-"You indicated that you want to include the log\n"
-"file in your bug report. While this is often\n"
-"useful for debugging the log file might contain\n"
-"bits of patient data which must not be sent out\n"
-"without de-identification.\n"
-"\n"
-"Please confirm that you want to include the log !"
+msgid "Adding new vaccinations"
 msgstr ""
 
-msgid "<not supplied>"
+msgid "Editing vaccination"
 msgstr ""
 
-msgid "Bug report has been emailed."
+msgid "vaccination recall"
 msgstr ""
 
-msgid "Bug report COULD NOT be emailed."
+#, python-format
+msgid "vaccination recall (%s)"
 msgstr ""
 
-msgid "Underweight"
+#, python-format
+msgid ""
+"Existing vaccination:\n"
+"\n"
+"%s"
 msgstr ""
 
-msgid "63< Normal >79"
+msgid ""
+"\n"
+"Complete vaccination history for this patient.\n"
 msgstr ""
 
-msgid "63 - Normal - 79"
+msgid "Showing vaccinations."
 msgstr ""
 
-msgid "Overweight"
+msgid "Intended to protect from"
 msgstr ""
 
-msgid "Obese"
+msgid "Print vaccinations or recalls."
 msgstr ""
 
-msgid "Current height/mass"
+msgid "Recall"
 msgstr ""
 
-msgid "Height (cm)"
+msgid "Add a recall for a vaccination"
 msgstr ""
 
-msgid "Mass (kg)"
+msgid "Vx schedules"
 msgstr ""
 
-msgid "Adjusted Values"
+msgid "Open a browser showing vaccination schedules."
 msgstr ""
 
-msgid "Goal mass"
+msgid "prevention"
 msgstr ""
 
-msgid "kg to lose"
+msgid "Saving vaccination"
 msgstr ""
 
-msgid "BMI Calculator"
+msgid "Pick the diseases this vaccination was given against."
 msgstr ""
 
-msgid "&Reset"
+msgid "  IMMUNISATIONS  "
 msgstr ""
 
-msgid "Select a healthcare provider."
+msgid "Indications"
 msgstr ""
 
-msgid "Public (no clinical or demographic access)"
+msgid "Active Schedules"
 msgstr ""
 
-msgid "Staff (demographic access only)"
+msgid "Missing Immunisations"
 msgstr ""
 
-msgid "staff (clerical)"
+msgid "  Alerts  "
 msgstr ""
 
-msgid "full clinical access"
+msgid "ERROR: cannot retrieve active vaccination schedules"
 msgstr ""
 
-msgid "DB account"
+msgid "no active vaccination schedules"
 msgstr ""
 
-msgid "can login"
+#, python-format
+msgid "%s for %s (%s shots): %s"
 msgstr ""
 
-msgid "can not login"
+msgid "ERROR: cannot retrieve due/overdue vaccinations"
 msgstr ""
 
-msgid "Activating GNUmed user."
+#, python-format
+msgid "%.0d weeks left: shot %s for %s in %s, due %s (%s)"
 msgstr ""
 
-msgid "Deactivating GNUmed user."
+#, python-format
+msgid "overdue %.0dyrs %.0dwks: shot %s for %s in schedule \"%s\" (%s)"
 msgstr ""
 
-msgid "Removing GNUmed user."
+#, python-format
+msgid "due now: booster for %s in schedule \"%s\" (%s)"
 msgstr ""
 
-msgid "Removing GNUmed user"
+#, python-format
+msgid "Synopsis (%s)"
 msgstr ""
 
-msgid "Modifying GNUmed user."
+msgid ""
+"Enter a short working name for this new problem\n"
+"(which will become a new, unassociated episode):\n"
 msgstr ""
 
-msgid "Failed to save changes to GNUmed database user."
+#, python-format
+msgid ""
+"Enter a short working name for this new\n"
+"episode under the existing health issue\n"
+"\n"
+"\"%s\":\n"
 msgstr ""
 
-msgid "Modifying GNUmed user"
+msgid "Creating problem (episode) to save notelet under ..."
 msgstr ""
 
-#, python-format
-msgid "Failed to set role [%s] for GNUmed database user."
+msgid "Cannot save a new problem without a name."
+msgstr ""
+
+msgid "saving progress note"
 msgstr ""
 
 #, python-format
 msgid ""
+"The new episode:\n"
 "\n"
-"  %s \"%s\" %s\n"
-"  born: %s"
+" \"%s\"\n"
+"\n"
+"will remain unassociated despite the editor\n"
+"having been invoked from the health issue:\n"
+"\n"
+" \"%s\""
 msgstr ""
 
-msgid ""
-"Password entries do not match. Please type in the passwords again to rule "
-"out typos."
+msgid "Adding substance abuse"
 msgstr ""
 
-msgid "Adding GNUmed user"
+msgid "Editing substance abuse"
 msgstr ""
 
-msgid ""
-"Are you positively sure you want to create\n"
-"a user with an empty password ?\n"
-"\n"
-"Think about the record access implications !"
+msgid "Substances abused by the patient:"
 msgstr ""
 
-msgid "Enlisting person as user."
+msgid "Showing abused substances."
 msgstr ""
 
-msgid "Encrypt"
+msgid "Intake"
 msgstr ""
 
-msgid "Decrypt"
+msgid "nicotine"
 msgstr ""
 
-msgid "Set pass phrase"
+#, fuzzy
+msgid "unit"
+msgstr "單位"
+
+#, python-format
+msgid "Latest: %s ago (%s %s%s%s%s)"
 msgstr ""
 
-msgid "This is not correctly encrypted text!"
+#, python-format
+msgid "%s %s%s%s (%s ago, %s)"
 msgstr ""
 
-msgid "Please enter your pass phrase:"
+#, python-format
+msgid "overdue %s: %s"
 msgstr ""
 
-msgid "Pass phrase expired"
+#, python-format
+msgid "due in %s%s"
+msgstr ""
+
+msgid "suppr'd:"
+msgstr ""
+
+msgid "Suppressed hints:\n"
 msgstr ""
 
 msgid ""
-"\n"
-"Conditions preventable by vaccination as currently known to GNUmed.\n"
+"Do you really want to\n"
+"delete this inbox message ?"
 msgstr ""
 
-msgid "Showing vaccination preventable conditions."
+msgid "Deleting inbox message"
 msgstr ""
 
-msgid "ATCs: single-condition vaccines"
+msgid "Export area: 1 item"
 msgstr ""
 
-msgid "ATCs: multi-condition vaccines"
+#, python-format
+msgid "Export area: %s items"
 msgstr ""
 
-msgid "Pick the relevant indications."
+#, python-format
+msgid "%s %s more not shown %s"
 msgstr ""
 
-msgid "Known indications"
+#, python-format
+msgid "Currently %s entries in waiting list"
 msgstr ""
 
-msgid "Adding new vaccine"
+#, python-format
+msgid "first (in GMd): %s, %s"
 msgstr ""
 
-msgid "Editing vaccine"
+#, python-format
+msgid "last: %s, %s"
 msgstr ""
 
 #, python-format
-msgid ""
-"Cannot delete vaccine\n"
-"\n"
-" %s - %s (#%s)\n"
-"\n"
-"It is probably documented in a vaccination."
+msgid "Last %s:"
 msgstr ""
 
-msgid "Deleting vaccine"
+msgid "Statistics cover period"
 msgstr ""
 
-msgid "fake"
+#, python-format
+msgid "EDC (!?!): %s"
 msgstr ""
 
 msgid ""
+"The Expected Date of Confinement is rather questionable.\n"
 "\n"
-"The vaccines currently known to GNUmed.\n"
+"Please check patient age, patient gender, time until/since EDC."
 msgstr ""
 
-msgid "Showing vaccines."
+#, python-format
+msgid "%s Vacc: %s (latest of %s)"
 msgstr ""
 
-msgid "Enter or select the batch/lot number of the vaccine used."
+#, python-format
+msgid "Hx of addiction: %s"
 msgstr ""
 
-msgid "Saving vaccine"
+msgid "active substance abuse"
 msgstr ""
 
 #, python-format
-msgid ""
-"This vaccine is already in use:\n"
-"\n"
-" \"%s\"\n"
-" (%s)\n"
-"\n"
-"Are you absolutely positively sure that\n"
-"you really want to edit this vaccine ?\n"
-"\n"
-"This will change the vaccine name and/or target\n"
-"conditions in each patient this vaccine was\n"
-"used in to document a vaccination with.\n"
+msgid "%s %s %s%s"
 msgstr ""
 
-msgid "You must select at least one indication."
+#, python-format
+msgid "%s %s%s"
 msgstr ""
 
-msgid "Pick the diseases this vaccine protects against."
+#, python-format
+msgid "** Currently hospitalized: %s **"
 msgstr ""
 
-msgid "This vaccine"
+#, python-format
+msgid "emergency: %s"
 msgstr ""
 
-msgid "Adding new vaccinations"
+#, python-format
+msgid "in-praxis: %s"
 msgstr ""
 
-msgid "Editing vaccination"
+#, fuzzy, python-format
+msgid "care: %s%s@%s"
+msgstr "目標"
+
+msgid "*** CONFIDENTIAL ***"
 msgstr ""
 
-msgid "vaccination recall"
+msgid " (confidential !)"
 msgstr ""
 
 #, python-format
-msgid "vaccination recall (%s)"
+msgid "extrnl: %s (%s@%s)"
 msgstr ""
 
 #, python-format
-msgid ""
-"Existing vaccination:\n"
-"\n"
-"%s"
+msgid "aka: %(last)s, %(first)s%(nick)s"
 msgstr ""
 
-msgid ""
-"\n"
-"Complete vaccination history for this patient.\n"
+#, python-format
+msgid "job: %s (%s)"
 msgstr ""
 
-msgid "Showing vaccinations."
+#, python-format
+msgid "issued by: %s%s"
 msgstr ""
 
-msgid "Intended to protect from"
+#, python-format
+msgid "Last modified: %s"
 msgstr ""
 
-msgid "Print vaccinations or recalls."
+#, python-format
+msgid ""
+"Activities:\n"
+"\n"
+"%s"
 msgstr ""
 
-msgid "Recall"
+msgid "Cloning name"
 msgstr ""
 
-msgid "Add a recall for a vaccination"
+msgid "Editing external ID"
 msgstr ""
 
-msgid "Vx schedules"
+msgid "Adding new translation"
 msgstr ""
 
-msgid "Open a browser showing vaccination schedules."
+msgid "Editing translation"
 msgstr ""
 
-msgid "prevention"
+msgid "Selecting language for translation"
 msgstr ""
 
-msgid "Saving vaccination"
+msgid ""
+"Please select the language the translations for which you want to work on."
 msgstr ""
 
-msgid "Pick the diseases this vaccination was given against."
+#, python-format
+msgid ""
+"Are you sure you want to delete the translation of:\n"
+"\n"
+"%s\n"
+"\n"
+"into [%s] as:\n"
+"\n"
+"%s\n"
+"\n"
+"?  (Note that you must know the database administrator password !)\n"
 msgstr ""
 
-msgid "  IMMUNISATIONS  "
+msgid "Deleting translation from database"
 msgstr ""
 
-msgid "Indications"
+msgid "deleting a translation"
 msgstr ""
 
-msgid "Active Schedules"
+msgid "Contributing translations"
 msgstr ""
 
-msgid "Missing Immunisations"
+msgid "Do you want to contribute your translations to the GNUmed project ?"
 msgstr ""
 
-msgid "  Alerts  "
+msgid ""
+"Unable to send mail. Cannot contribute translations to GNUmed community."
 msgstr ""
 
-msgid "ERROR: cannot retrieve active vaccination schedules"
+msgid "Thank you for your contribution to the GNUmed community!"
 msgstr ""
 
-msgid "no active vaccination schedules"
+msgid "Showing translatable database strings for all languages."
 msgstr ""
 
 #, python-format
-msgid "%s for %s (%s shots): %s"
-msgstr ""
-
-msgid "ERROR: cannot retrieve due/overdue vaccinations"
+msgid "Showing translatable database strings for target language [%s]."
 msgstr ""
 
-#, python-format
-msgid "%.0d weeks left: shot %s for %s in %s, due %s (%s)"
+msgid "Contribute translations to GNUmed community by email."
 msgstr ""
 
-#, python-format
-msgid "overdue %.0dyrs %.0dwks: shot %s for %s in schedule \"%s\" (%s)"
+msgid ""
+"Before creating a new person review the encounter details\n"
+"of the patient you just worked on:\n"
 msgstr ""
 
-#, python-format
-msgid "due now: booster for %s in schedule \"%s\" (%s)"
+msgid "Edit the current encounter of the patient you are ABOUT TO LEAVE:"
 msgstr ""
 
-#, python-format
-msgid "Latest: %s ago (%s %s %s %s%s)"
+msgid "Adding new person"
 msgstr ""
 
-#, python-format
-msgid "%s %s %s %s (%s ago, %s)"
+msgid "ID exists !"
 msgstr ""
 
 #, python-format
-msgid "overdue %s: %s"
+msgid "One \"%s, %s (%s)\" already exists !"
 msgstr ""
 
 #, python-format
-msgid "due in %s%s"
-msgstr ""
-
-msgid ""
-"Do you really want to\n"
-"delete this inbox message ?"
-msgstr ""
-
-msgid "Deleting inbox message"
-msgstr ""
-
-msgid "Export area: 1 item"
+msgid "%s \"%s, %s (%s)\" already exist !"
 msgstr ""
 
-#, python-format
-msgid "Export area: %s items"
+msgid "Must enter lastname."
 msgstr ""
 
-#, python-format
-msgid "%s %s more not shown %s"
+msgid "Must enter first name."
 msgstr ""
 
-#, python-format
-msgid "Currently %s entries in waiting list"
+msgid "Must select gender."
 msgstr ""
 
-#, python-format
-msgid "first (in GMd): %s, %s"
+msgid ""
+"To properly create an address, all the related fields must be filled in."
 msgstr ""
 
-#, python-format
-msgid "last: %s, %s"
+msgid "Required fields"
 msgstr ""
 
-#, python-format
-msgid "Last %s:"
+msgid "This field must contain an item selected from the dropdown list."
 msgstr ""
 
-msgid "Statistics cover period"
+msgid "Saving address"
 msgstr ""
 
-#, python-format
-msgid "EDC (!?!): %s"
+msgid ""
+"Cannot save this address.\n"
+"\n"
+"You will have to add it via the Demographics plugin.\n"
 msgstr ""
 
 msgid ""
-"The Expected Date of Confinement is rather questionable.\n"
+"Address not saved.\n"
 "\n"
-"Please check patient age, patient gender, time until/since EDC."
+"You will have to add it via the Demographics plugin.\n"
 msgstr ""
 
-#, python-format
-msgid "%s Vacc: %s"
+msgid "You need to actually set an editor."
 msgstr ""
 
 #, python-format
-msgid "%s %s %s%s"
+msgid "The command [%s] is not found."
 msgstr ""
 
 #, python-format
-msgid "%s %s%s"
+msgid ""
+"Enter the shell command with which to start\n"
+"the image editor for visual progress notes.\n"
+"\n"
+"Any \"%(img)s\" included with the arguments\n"
+"will be replaced by the file name of the\n"
+"note template."
 msgstr ""
 
-#, python-format
-msgid "** Currently hospitalized: %s **"
+msgid "Choose file to use as template for new visual progress note"
 msgstr ""
 
-#, python-format
-msgid "emergency: %s"
+msgid "Visual progress note source"
 msgstr ""
 
-#, python-format
-msgid "in-praxis: %s"
+msgid "From which source do you want to pick the image template ?"
 msgstr ""
 
-#, fuzzy, python-format
-msgid "care: %s%s@%s"
-msgstr "目標"
+msgid "Database"
+msgstr ""
 
-msgid "*** CONFIDENTIAL ***"
+msgid "List of templates in the database."
 msgstr ""
 
-msgid " (confidential !)"
+msgid "Files in the filesystem."
 msgstr ""
 
-#, python-format
-msgid "extrnl: %s (%s@%s)"
+msgid "Device"
 msgstr ""
 
-#, python-format
-msgid "aka: %(last)s, %(first)s%(nick)s"
+msgid "Image capture devices (scanners, cameras, etc)"
 msgstr ""
 
 #, python-format
-msgid "job: %s (%s)"
+msgid "Cannot export visual progress note template for [%s]."
 msgstr ""
 
-#, python-format
-msgid "issued by: %s%s"
+msgid "Cannot export visual progress note to file."
 msgstr ""
 
-#, python-format
-msgid "Last modified: %s"
+msgid "Editor for visual progress note not configured."
 msgstr ""
 
 #, python-format
 msgid ""
-"Activities:\n"
+"There was a problem with running the editor\n"
+"for visual progress notes.\n"
+"\n"
+" [%s]\n"
 "\n"
-"%s"
-msgstr ""
-
-msgid "Cloning name"
-msgstr ""
-
-msgid "Editing external ID"
-msgstr ""
-
-msgid "Adding new translation"
-msgstr ""
-
-msgid "Editing translation"
-msgstr ""
-
-msgid "Selecting language for translation"
 msgstr ""
 
-msgid ""
-"Please select the language the translations for which you want to work on."
+msgid "Editing visual progress note"
 msgstr ""
 
 #, python-format
 msgid ""
-"Are you sure you want to delete the translation of:\n"
-"\n"
-"%s\n"
-"\n"
-"into [%s] as:\n"
+"There was a problem reading the visual\n"
+"progress note from the file:\n"
 "\n"
-"%s\n"
+" [%s]\n"
 "\n"
-"?  (Note that you must know the database administrator password !)\n"
-msgstr ""
-
-msgid "Deleting translation from database"
-msgstr ""
-
-msgid "deleting a translation"
-msgstr ""
-
-msgid "Contributing translations"
-msgstr ""
-
-msgid "Do you want to contribute your translations to the GNUmed project ?"
-msgstr ""
-
-msgid ""
-"Unable to send mail. Cannot contribute translations to GNUmed community."
-msgstr ""
-
-msgid "Thank you for your contribution to the GNUmed community!"
-msgstr ""
-
-msgid "Showing translatable database strings for all languages."
-msgstr ""
-
-#, python-format
-msgid "Showing translatable database strings for target language [%s]."
 msgstr ""
 
-msgid "Contribute translations to GNUmed community by email."
+msgid "Saving visual progress note"
 msgstr ""
 
 msgid ""
-"Before creating a new person review the encounter details\n"
-"of the patient you just worked on:\n"
-msgstr ""
-
-msgid "Edit the current encounter of the patient you are ABOUT TO LEAVE:"
-msgstr ""
-
-msgid "Adding new person"
-msgstr ""
-
-msgid "ID exists !"
+"You either created a visual progress note from a template\n"
+"in the database (rather than from a file on disk) or you\n"
+"edited an existing visual progress note.\n"
+"\n"
+"The template/original was not modified at all, however.\n"
+"\n"
+"Do you still want to save the unmodified image as a\n"
+"visual progress note into the EMR of the patient ?\n"
 msgstr ""
 
-#, python-format
-msgid "One \"%s, %s (%s)\" already exists !"
+msgid "visual progress notes"
 msgstr ""
 
 #, python-format
-msgid "%s \"%s, %s (%s)\" already exist !"
-msgstr ""
-
-msgid "Must enter lastname."
-msgstr ""
-
-msgid "Must enter first name."
-msgstr ""
-
-msgid "Must select gender."
-msgstr ""
-
-msgid ""
-"To properly create an address, all the related fields must be filled in."
-msgstr ""
-
-msgid "Required fields"
-msgstr ""
-
-msgid "This field must contain an item selected from the dropdown list."
-msgstr ""
-
-msgid "Saving address"
-msgstr ""
-
-msgid ""
-"Cannot save this address.\n"
-"\n"
-"You will have to add it via the Demographics plugin.\n"
+msgid " [part 1 of %s]"
 msgstr ""
 
-msgid ""
-"Address not saved.\n"
-"\n"
-"You will have to add it via the Demographics plugin.\n"
-msgstr ""
+#, fuzzy, python-format
+msgid "Created: %s%s"
+msgstr "目標"
 
 msgid "You must select a value from the picklist or type an exact match."
 msgstr ""
@@ -9491,7 +9889,8 @@ msgstr ""
 
 #, python-format
 msgid ""
-"%(street)s %(number)s, %(postcode)s %(urb)s, %(l10n_state)s, %(l10n_country)s"
+"%(street)s %(number)s, %(postcode)s %(urb)s, %(l10n_region)s, "
+"%(l10n_country)s"
 msgstr ""
 
 #, python-format
@@ -10078,7 +10477,7 @@ msgstr ""
 msgid ""
 "Cannot save address.\n"
 "\n"
-"Does the state [%s]\n"
+"Does the region [%s]\n"
 "exist in country [%s] ?"
 msgstr ""
 
@@ -10503,7 +10902,7 @@ msgstr ""
 msgid "Reminders for the current patient"
 msgstr ""
 
-msgid "Sent"
+msgid "Generated"
 msgstr ""
 
 msgid "Category - Type"
@@ -10551,9 +10950,6 @@ msgid ""
 "Data: %s"
 msgstr ""
 
-msgid "Inbox Message Actions:"
-msgstr ""
-
 msgid "Activate patient"
 msgstr ""
 
@@ -11241,7 +11637,7 @@ msgid ""
 msgstr ""
 
 #, python-format
-msgid "Select branch (of praxis [%s]) which you are logging in from.\n"
+msgid "Select the branch of praxis [%s] which you are logging in from.\n"
 msgstr ""
 
 msgid "Praxis branch selection ..."
@@ -11548,6 +11944,12 @@ msgstr ""
 msgid "List of addresses related to this person."
 msgstr ""
 
+msgid "Map"
+msgstr ""
+
+msgid "Show selected address on map"
+msgstr ""
+
 msgid "Adding new address"
 msgstr ""
 
@@ -11728,27 +12130,104 @@ msgstr ""
 msgid "generic multi choice dialog"
 msgstr ""
 
-msgid "Search in list"
+msgid "Deleting list items"
 msgstr ""
 
-msgid "Monty the Serpent && the FSF Present"
+#, python-format
+msgid ""
+"You have selected %s list items.\n"
+"\n"
+"Really delete all %s items ?"
 msgstr ""
 
-msgid "Free eMedicine"
+msgid ""
+"Select the items you want to work on.\n"
+"\n"
+"A discontinuous selection may depend on your holding down a platform-"
+"dependent modifier key (<CTRL>, <ALT>, etc) or key combination (eg. <CTRL-"
+"SHIFT> or <CTRL-ALT>) while clicking."
 msgstr ""
 
-#, python-format
-msgid "Version %s%s brought to you by"
+msgid "List Item Actions:"
 msgstr ""
 
-msgid "debug"
+msgid "Add (<INS>)"
 msgstr ""
 
-msgid "Please visit http://www.gnumed.org"
+msgid "Delete (<DEL>)"
+msgstr ""
+
+msgid "Find (<CTRL-F>)"
 msgstr ""
 
 #, python-format
-msgid ""
+msgid "Find next [%s] (<CTRL-N>)"
+msgstr ""
+
+msgid "Row tooltip"
+msgstr ""
+
+msgid "Row data (formatted as text)"
+msgstr ""
+
+msgid "Row content (as one line)"
+msgstr ""
+
+msgid "Row content (one line per column)"
+msgstr ""
+
+#, python-format
+msgid "Column &%s: \"%s\" [#%s]"
+msgstr ""
+
+#, python-format
+msgid "Column &%s: %s"
+msgstr ""
+
+msgid "&Copy to clipboard..."
+msgstr ""
+
+msgid "Append (&+) to clipboard..."
+msgstr ""
+
+#, python-format
+msgid ""
+"%s list items are selected.\n"
+"\n"
+"Really delete all %s items ?"
+msgstr ""
+
+msgid "Enter the search term:"
+msgstr ""
+
+msgid "List search"
+msgstr ""
+
+#, python-format
+msgid ""
+"Current search term: [[%s]]\n"
+"\n"
+"%s"
+msgstr ""
+
+msgid "Monty the Serpent && the FSF Present"
+msgstr ""
+
+msgid "Free eMedicine"
+msgstr ""
+
+#, python-format
+msgid "Version %s%s brought to you by"
+msgstr ""
+
+msgid "debug"
+msgstr ""
+
+msgid "Please visit http://www.gnumed.org"
+msgstr ""
+
+#, python-format
+msgid ""
 "The following people kindly contributed to GNUmed.\n"
 "Please write to <gnumed-devel at gnu.org> to have your\n"
 "contribution duly recognized in this list or to have\n"
@@ -11878,6 +12357,9 @@ msgstr ""
 msgid "Unknown: ?"
 msgstr ""
 
+msgid "The text has been copied into the clipboard."
+msgstr ""
+
 msgid "file2clipboard"
 msgstr ""
 
@@ -11885,6 +12367,40 @@ msgstr ""
 msgid "The file [%s] has been copied into the clipboard."
 msgstr ""
 
+msgid "programmer forgot to specify error message"
+msgstr "程式設計師忘記指定錯誤訊息"
+
+msgid ""
+"\n"
+"\n"
+"Please consult the error log for all the gory details !"
+msgstr ""
+
+msgid "generic error message"
+msgstr "通用錯誤訊息"
+
+msgid "programmer forgot to specify info message"
+msgstr "程式設計師忘記指定資訊"
+
+msgid "generic info message"
+msgstr "通用資訊"
+
+msgid "programmer forgot to specify warning"
+msgstr "程式設計師忘記指定警告"
+
+msgid "generic warning message"
+msgstr "通用警告訊息"
+
+msgid "Editing EDC"
+msgstr ""
+
+#, python-format
+msgid ""
+"Really delete the EDC documented previously ?\n"
+"\n"
+" EDC: %s"
+msgstr ""
+
 #, python-format
 msgid ""
 "Algorithm: %s\n"
@@ -11992,15 +12508,15 @@ msgstr ""
 msgid "Firstname"
 msgstr ""
 
-msgid "Nickname"
-msgstr ""
-
 msgid "DOB"
 msgstr ""
 
 msgid "last visit"
 msgstr ""
 
+msgid "Nickname / Comment"
+msgstr ""
+
 msgid "found via"
 msgstr ""
 
@@ -12178,434 +12694,188 @@ msgstr ""
 msgid "In case of emergency contact:"
 msgstr ""
 
-msgid ""
-"\n"
-"Please select the default drug data source from the list below.\n"
-"\n"
-"Note that to actually use it you need to have the database installed, too."
-msgstr ""
-
-msgid "Drug data source"
+msgid "The preparation (form) of the substance or brand."
 msgstr ""
 
-msgid "Configuring default drug data source"
+msgid "A substance with optional strength or a brand."
 msgstr ""
 
-msgid "No default drug database configured."
+msgid "The medical aim for consuming this substance."
 msgstr ""
 
-msgid "There is no default drug database configured."
+msgid "not tolerated:"
 msgstr ""
 
-msgid "Jumping to drug database"
+msgid "discontinued due to allergy or intolerance"
 msgstr ""
 
-#, python-format
-msgid "Cannot call IFAP via [%s]."
+msgid "Documented an allergy"
 msgstr ""
 
 #, python-format
-msgid "Cannot create IFAP <-> GNUmed transfer file [%s]."
-msgstr ""
-
-msgid "Current medication"
-msgstr ""
-
 msgid ""
+"An allergy was documented against the substance:\n"
 "\n"
-"The ATC codes as known to GNUmed.\n"
-msgstr ""
-
-msgid "Showing ATC codes."
+"  [%s]\n"
+"\n"
+"This substance was taken with the multi-component brand:\n"
+"\n"
+"  [%s (%s)]\n"
+"\n"
+"Note that ALL components of this brand were discontinued."
 msgstr ""
 
-msgid "Choose an ATC import config file"
+msgid "disapproved"
 msgstr ""
 
-msgid "config files"
+msgid "Substances consumed by the patient:"
 msgstr ""
 
-msgid "importing ATC reference data"
+msgid "Showing consumable substances."
 msgstr ""
 
-msgid "Successfully imported ATC reference data."
+msgid "Application"
 msgstr ""
 
-msgid "Importing ATC reference data failed."
+msgid "never"
 msgstr ""
 
-msgid "Select an ATC (Anatomical-Therapeutic-Chemical) code."
+#, python-format
+msgid "%s, last confirmed %s\n"
 msgstr ""
 
-msgid "Cannot delete this substance. It is in use."
+#, python-format
+msgid "Comment (%s): %%s\n"
 msgstr ""
 
-msgid ""
-"\n"
-"These are the consumable substances registered with GNUmed.\n"
+msgid "reaction not recorded"
 msgstr ""
 
-msgid "Showing consumable substances."
+msgid "GFR: unknown"
 msgstr ""
 
-msgid "Import"
+msgid "GFR reported by path lab"
 msgstr ""
 
-msgid "Import consumable substances from a drug database."
+msgid "<no components>"
 msgstr ""
 
-msgid "Cannot edit this substance. It is in use."
+msgid "Adding substance intake entry"
 msgstr ""
 
-msgid "Adding new consumable substance"
+#, python-format
+msgid ""
+"The patient is already taking\n"
+"\n"
+" %s\n"
+"\n"
+"You will want to adjust the schedule\n"
+"rather than document the intake twice."
 msgstr ""
 
-msgid "Editing consumable substance"
+msgid "Input incomplete/invalid for saving as substance intake."
 msgstr ""
 
-msgid "Cannot save consumable substance. Missing essential input."
+#, python-format
+msgid "Discontinued (%s) in the future (now: %s)!"
 msgstr ""
 
 #, python-format
-msgid "Cannot save consumable substance. %s"
+msgid "Discontinued (%s) before started (%s) !"
 msgstr ""
 
-msgid "Cannot remove this component from the drug. It is in use."
+msgid "Cannot add duplicate of (maybe inactive) substance intake."
 msgstr ""
 
+#, python-format
 msgid ""
 "\n"
-"These are the components in the drug brands known to GNUmed.\n"
+"[%s]\n"
+"\n"
+"It may be prudent to edit (before deletion) the details\n"
+"of this substance intake entry so as to leave behind\n"
+"some indication of why it was deleted.\n"
 msgstr ""
 
-msgid "Showing drug brand components."
+msgid "Deleting medication / substance intake"
 msgstr ""
 
-msgid "Adding new drug component"
+msgid "Allow editing of substance intake entry before deletion."
 msgstr ""
 
-msgid "Editing drug component"
+msgid "Delete immediately without editing first."
 msgstr ""
 
-msgid "Cannot edit drug component. It is in use."
+msgid "&Cancel"
 msgstr ""
 
-msgid "Cannot save drug component. Invalid or missing essential input."
+msgid "Abort. Do not delete or edit substance intake entry."
 msgstr ""
 
-msgid "A drug component with optional strength."
+msgid "Now delete substance intake entry ?"
 msgstr ""
 
-msgid "The preparation (form) of the substance or brand."
+msgid "Adding medication/non-medication substance intake"
 msgstr ""
 
-msgid "The substance with optional strength."
+msgid "Editing medication/non-medication substance intake"
 msgstr ""
 
-msgid "Managing components of a drug"
+msgid "Document an allergy against this substance."
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot manage the components of the branded drug product\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is currently taken by patients.\n"
+msgid "No medication list template configured."
 msgstr ""
 
-msgid "Pick the substances which are components of this drug."
+msgid "There is no medication list template configured."
 msgstr ""
 
-msgid "Components of drug"
+msgid "Problem loading medication list template."
 msgstr ""
 
 #, python-format
-msgid ""
-"Adjust the components of \"%s\"\n"
-"\n"
-"The drug must contain at least one component. Any given\n"
-"substance can only be included once per drug."
+msgid "Cannot load medication list template [%s - %s]"
 msgstr ""
 
-msgid "Managing components of a drug ..."
+msgid "generated medication list document"
 msgstr ""
 
-msgid "not in use"
+msgid "Select the default prescription template:"
 msgstr ""
 
-#, python-format
-msgid "ATC: %s\n"
+msgid "No prescription template configured."
 msgstr ""
 
-msgid "Editing medication"
+msgid "There is no prescription template configured."
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot edit the medication\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is a vaccine. Please edit it\n"
-"from the vaccine management section !\n"
+msgid "Printing prescription"
 msgstr ""
 
-msgid "Deleting medication"
+msgid "Problem loading prescription template."
 msgstr ""
 
 #, python-format
-msgid ""
-"Cannot delete the medication\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is a vaccine. Please delete it\n"
-"from the vaccine management section !\n"
+msgid "Cannot load prescription template [%s - %s]"
+msgstr ""
+
+msgid "generated prescription"
 msgstr ""
 
 msgid ""
+"These brands have been prescribed but are not listed\n"
+"in the current medication list of this patient.\n"
 "\n"
-"These are the drug brands known to GNUmed.\n"
+"Please select those you want added to the medication list."
 msgstr ""
 
-msgid "Showing branded drugs."
+msgid "Newly prescribed drugs"
 msgstr ""
 
-msgid "Import substances and brands from a drug database."
+msgid "Add to medication list"
 msgstr ""
 
-msgid "Editing drug"
-msgstr ""
-
-#, python-format
-msgid ""
-"Cannot edit the branded drug product\n"
-"\n"
-" \"%s\" (%s)\n"
-"\n"
-"because it is currently taken by patients.\n"
-msgstr ""
-
-msgid "Adding new drug brand"
-msgstr ""
-
-msgid "Editing drug brand"
-msgstr ""
-
-msgid "Manage consumable substances"
-msgstr ""
-
-msgid "Cannot edit drug brand. It is in use."
-msgstr ""
-
-msgid "Checking brand data"
-msgstr ""
-
-#, python-format
-msgid ""
-"The brand information you entered:\n"
-"\n"
-" [%s %s]\n"
-"\n"
-"already exists as a drug product."
-msgstr ""
-
-msgid ""
-"You have not selected any substances\n"
-"as drug components.\n"
-"\n"
-"Without components you will not be able to\n"
-"use this drug for documenting patient care.\n"
-"\n"
-"Are you sure you want to save\n"
-"it without components ?"
-msgstr ""
-
-msgid "Cannot save branded drug. Invalid or missing essential input."
-msgstr ""
-
-msgid ""
-"The brand name of the drug.\n"
-"\n"
-"Note: a brand name will need to be linked to\n"
-"one or more components before it can be used,\n"
-"except in the case of fake (generic) vaccines."
-msgstr ""
-
-msgid "The medical aim for consuming this substance."
-msgstr ""
-
-msgid "not tolerated:"
-msgstr ""
-
-msgid "discontinued due to allergy or intolerance"
-msgstr ""
-
-msgid "Documented an allergy"
-msgstr ""
-
-#, python-format
-msgid ""
-"An allergy was documented against the substance:\n"
-"\n"
-"  [%s]\n"
-"\n"
-"This substance was taken with the multi-component brand:\n"
-"\n"
-"  [%s (%s)]\n"
-"\n"
-"Note that ALL components of this brand were discontinued."
-msgstr ""
-
-msgid "disapproved"
-msgstr ""
-
-msgid "Substances consumed by the patient:"
-msgstr ""
-
-msgid "Intake"
-msgstr ""
-
-msgid "Application"
-msgstr ""
-
-msgid "never"
-msgstr ""
-
-#, python-format
-msgid "%s, last confirmed %s\n"
-msgstr ""
-
-#, python-format
-msgid "Comment (%s): %%s\n"
-msgstr ""
-
-msgid "reaction not recorded"
-msgstr ""
-
-msgid "GFR: unknown"
-msgstr ""
-
-msgid "GFR reported by path lab"
-msgstr ""
-
-#, python-format
-msgid ""
-"The patient is already taking\n"
-"\n"
-" %s\n"
-"\n"
-"You will want to adjust the schedule\n"
-"rather than document the intake twice."
-msgstr ""
-
-msgid "Adding substance intake entry"
-msgstr ""
-
-msgid "Input incomplete/invalid for saving as substance intake."
-msgstr ""
-
-#, python-format
-msgid "Discontinued (%s) in the future (now: %s)!"
-msgstr ""
-
-#, python-format
-msgid "Discontinued (%s) before started (%s) !"
-msgstr ""
-
-msgid "Cannot add duplicate of (maybe inactive) substance intake."
-msgstr ""
-
-#, python-format
-msgid ""
-"\n"
-"[%s]\n"
-"\n"
-"It may be prudent to edit (before deletion) the details\n"
-"of this substance intake entry so as to leave behind\n"
-"some indication of why it was deleted.\n"
-msgstr ""
-
-msgid "Deleting medication / substance intake"
-msgstr ""
-
-msgid "Allow editing of substance intake entry before deletion."
-msgstr ""
-
-msgid "Delete immediately without editing first."
-msgstr ""
-
-msgid "&Cancel"
-msgstr ""
-
-msgid "Abort. Do not delete or edit substance intake entry."
-msgstr ""
-
-msgid "Now delete substance intake entry ?"
-msgstr ""
-
-msgid "Adding medication/non-medication substance intake"
-msgstr ""
-
-msgid "Editing medication/non-medication substance intake"
-msgstr ""
-
-msgid "Document an allergy against this substance."
-msgstr ""
-
-msgid "No medication list template configured."
-msgstr ""
-
-msgid "There is no medication list template configured."
-msgstr ""
-
-msgid "Problem loading medication list template."
-msgstr ""
-
-#, python-format
-msgid "Cannot load medication list template [%s - %s]"
-msgstr ""
-
-msgid "generated medication list document"
-msgstr ""
-
-msgid "Select the default prescription template:"
-msgstr ""
-
-msgid "No prescription template configured."
-msgstr ""
-
-msgid "There is no prescription template configured."
-msgstr ""
-
-msgid "Printing prescription"
-msgstr ""
-
-msgid "Problem loading prescription template."
-msgstr ""
-
-#, python-format
-msgid "Cannot load prescription template [%s - %s]"
-msgstr ""
-
-msgid "generated prescription"
-msgstr ""
-
-msgid ""
-"These brands have been prescribed but are not listed\n"
-"in the current medication list of this patient.\n"
-"\n"
-"Please select those you want added to the medication list."
-msgstr ""
-
-msgid "Newly prescribed drugs"
-msgstr ""
-
-msgid "Add to medication list"
-msgstr ""
-
-msgid "Duration / Until"
+msgid "Timeframe"
 msgstr ""
 
 #, python-format
@@ -12646,10 +12916,6 @@ msgid "eGFR:"
 msgstr ""
 
 #, python-format
-msgid "%s%s%s (%s ago)"
-msgstr ""
-
-#, python-format
 msgid "eGFR: %.1f (%s)"
 msgstr ""
 
@@ -12812,14 +13078,21 @@ msgid ""
 "\n"
 " [%s]\n"
 "\n"
-"is not empty. Do you want to use it for saving the\n"
-"export area documents into, nevertheless ?\n"
+"already contains files. Do you still want to save the\n"
+"selected export area documents into that directory ?\n"
 "\n"
-"(this can be useful for including external documents)\n"
+"(this is useful for including the external documents\n"
+" already stored in or below this directory)\n"
 "\n"
 "[NO] will create a subdirectory for you and use that."
 msgstr ""
 
+msgid ""
+"Create descriptive metadata files\n"
+"and save them alongside the\n"
+"selected export area documents ?"
+msgstr ""
+
 #, python-format
 msgid ""
 "Saved to [%s]:\n"
@@ -13021,9 +13294,6 @@ msgstr ""
 msgid "This praxis"
 msgstr ""
 
-msgid "Hospital stay"
-msgstr ""
-
 msgid "Bill receiver"
 msgstr ""
 
@@ -13059,28 +13329,70 @@ msgstr ""
 msgid "Select the episode under which to file the document ..."
 msgstr ""
 
-#, python-format
-msgid "Imported new document from %s."
+msgid "Cannot create new document."
 msgstr ""
 
-msgid "Enter a comment on the document."
+msgid "saving document"
 msgstr ""
 
-msgid "User defined"
+#, python-format
+msgid "Imported new document from %s."
 msgstr ""
 
-msgid "In use"
+msgid "Successfully saved new document."
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot delete document type\n"
-" [%s]\n"
-"because it is currently in use."
+msgid "Successfully saved the new document."
 msgstr ""
 
-msgid "deleting document type"
-msgstr ""
+#, python-format
+msgid ""
+"The reference ID for the new document is:\n"
+"\n"
+" <%s>\n"
+"\n"
+"You probably want to write it down on the\n"
+"original documents.\n"
+"\n"
+"If you don't care about the ID you can switch\n"
+"off this message in the GNUmed configuration.\n"
+msgstr ""
+
+msgid "Saving document"
+msgstr ""
+
+#, python-format
+msgid ""
+"Successfully imported files as document.\n"
+"\n"
+"Do you want to delete imported files from the filesystem ?\n"
+"\n"
+" %s\n"
+"\n"
+"Note that temporary files will be deleted anyway."
+msgstr ""
+
+msgid "Removing files"
+msgstr ""
+
+msgid "Enter a comment on the document."
+msgstr ""
+
+msgid "User defined"
+msgstr ""
+
+msgid "In use"
+msgstr ""
+
+#, python-format
+msgid ""
+"Cannot delete document type\n"
+" [%s]\n"
+"because it is currently in use."
+msgstr ""
+
+msgid "deleting document type"
+msgstr ""
 
 #, python-format
 msgid ""
@@ -13180,14 +13492,16 @@ msgstr ""
 msgid "Acquiring images"
 msgstr ""
 
-msgid "other documents"
+msgid "directory dropped on client"
 msgstr ""
 
-#, python-format
-msgid "part %s: %s"
+msgid "file dropped on client"
 msgstr ""
 
-msgid "saving document"
+msgid "other documents"
+msgstr ""
+
+msgid "path"
 msgstr ""
 
 msgid "No parts to save. Really save an empty document as a reference ?"
@@ -13232,62 +13546,34 @@ msgstr ""
 msgid "acquiring page"
 msgstr ""
 
-msgid "Choose a file"
-msgstr ""
-
-msgid "all files (Win)"
-msgstr ""
-
-msgid "You must select a part before you can view it."
-msgstr ""
-
-msgid "displaying part"
+msgid "captured by imaging device"
 msgstr ""
 
-#, python-format
-msgid ""
-"Cannot display document part:\n"
-"%s"
+msgid "Choose a file"
 msgstr ""
 
-msgid "You must select a part before you can delete it."
+msgid "all files (Win)"
 msgstr ""
 
-msgid "deleting part"
+msgid "picked from storage media"
 msgstr ""
 
-#, python-format
-msgid ""
-"The part has successfully been removed from the document.\n"
-"\n"
-"Do you also want to permanently delete the file\n"
-"\n"
-" [%s]\n"
-"\n"
-"from which this document part was loaded ?\n"
-"\n"
-"If it is a temporary file for a page you just scanned\n"
-"this makes a lot of sense. In other cases you may not\n"
-"want to lose the file.\n"
-"\n"
-"Pressing [YES] will permanently remove the file\n"
-"from your computer.\n"
+msgid "pasted from clipboard"
 msgstr ""
 
-msgid "Removing document part"
+msgid "No part selected for viewing."
 msgstr ""
 
 #, python-format
 msgid ""
-"Cannot delete part in file [%s].\n"
-"\n"
-"You may not have write access to it."
+"Cannot display document part:\n"
+"%s"
 msgstr ""
 
-msgid "Cannot create new document."
+msgid "displaying part"
 msgstr ""
 
-msgid "Cannot update document metadata."
+msgid "No part selected for removal."
 msgstr ""
 
 msgid "Cannot add document description."
@@ -13296,26 +13582,12 @@ msgstr ""
 msgid "Error setting \"reviewed\" status of new document."
 msgstr ""
 
-msgid "Successfully saved the new document."
-msgstr ""
-
 #, python-format
 msgid ""
-"The reference ID for the new document is:\n"
-"\n"
-" <%s>\n"
-"\n"
-"You probably want to write it down on the\n"
-"original documents.\n"
+"Source: %s\n"
+"File: %s\n"
 "\n"
-"If you don't care about the ID you can switch\n"
-"off this message in the GNUmed configuration."
-msgstr ""
-
-msgid "Saving document"
-msgstr ""
-
-msgid "Successfully saved new document."
+"%s"
 msgstr ""
 
 msgid "Document part does not seem to exist in database !"
@@ -13330,9 +13602,6 @@ msgstr ""
 msgid "Showing documents."
 msgstr ""
 
-msgid "Generated"
-msgstr ""
-
 msgid "Ref #"
 msgstr ""
 
@@ -13584,6 +13853,142 @@ msgstr ""
 msgid "Deleting document"
 msgstr ""
 
+msgid "Study date"
+msgstr ""
+
+msgid "Study time"
+msgstr ""
+
+msgid "Method"
+msgstr ""
+
+msgid "Body part"
+msgstr ""
+
+msgid "Time"
+msgstr ""
+
+msgid "Cannot connect without port (try 8042)."
+msgstr ""
+
+#, python-format
+msgid "Connect to [%s] @ port %s as \"%s\"."
+msgstr ""
+
+msgid "Cannot connect to PACS."
+msgstr ""
+
+#, python-format
+msgid "PACS: Orthanc \"%s\" (AET \"%s\", Version %s, DB v%s)"
+msgstr ""
+
+#, python-format
+msgid "GNUmed patient: %s (generic PACS ID)"
+msgstr ""
+
+#, python-format
+msgid "GNUmed patient: \"%(value)s\" @ [%(issuer)s] (stored PACS ID)"
+msgstr ""
+
+msgid "PACS: no patients with matching IDs found"
+msgstr ""
+
+msgid ""
+"PACS: more than one patient with matching IDs found, carefully check studies"
+msgstr ""
+
+#, python-format
+msgid "%s series"
+msgstr ""
+
+#, python-format
+msgid "%%s (%s series)"
+msgstr ""
+
+msgid "no studies"
+msgstr ""
+
+#, python-format
+msgid "%s studies"
+msgstr ""
+
+msgid "Exporting DICOM studies"
+msgstr ""
+
+msgid "Unable to export selected studies."
+msgstr ""
+
+#, python-format
+msgid ""
+"The DICOM studies are %s in compressed size.\n"
+"\n"
+"Really copy to export area ?"
+msgstr ""
+
+#, python-format
+msgid "DICOM studies of [%s] from Orthanc PACS \"%s\" (AET \"%s\")"
+msgstr ""
+
+msgid "Select the directory into which to save the DICOM studies."
+msgstr ""
+
+msgid "Saving DICOM studies"
+msgstr ""
+
+msgid "Unable to save selected studies."
+msgstr ""
+
+msgid "Unable to export studies."
+msgstr ""
+
+#, python-format
+msgid "All DICOM studies of [%s] from Orthanc PACS \"%s\" (AET \"%s\")"
+msgstr ""
+
+#, python-format
+msgid "%s%s images"
+msgstr ""
+
+msgid "Select the directory from which to recursively upload DICOM files."
+msgstr ""
+
+msgid "Delete the uploaded DICOM files now ?"
+msgstr ""
+
+msgid ""
+"Some files have not been uploaded.\n"
+"\n"
+"Do you want to delete those DICOM files which have been sent to the PACS "
+"successfully ?"
+msgstr ""
+
+msgid "Uploading DICOM files"
+msgstr ""
+
+msgid "Editing Orthanc content"
+msgstr ""
+
+msgid "Patient ID"
+msgstr ""
+
+msgid "Birth date"
+msgstr ""
+
+msgid "Orthanc"
+msgstr ""
+
+msgid "Modifying patient ID"
+msgstr ""
+
+#, python-format
+msgid ""
+"Really modify %s patient(s) to have the new patient ID\n"
+"\n"
+" [%s]\n"
+"\n"
+"stored in the Orthanc DICOM server ?"
+msgstr ""
+
 #, python-format
 msgid "You are logged in as %s%s.%s (%s). DB account <%s>."
 msgstr ""
@@ -13642,6 +14047,12 @@ msgstr ""
 msgid "Select the measurements panel to show in the medications plugin."
 msgstr ""
 
+msgid "General measurements"
+msgstr ""
+
+msgid "Select the measurements panel to show in the top pane."
+msgstr ""
+
 msgid "Review dialog"
 msgstr ""
 
@@ -13732,6 +14143,12 @@ msgstr ""
 msgid "Configure auto-opening editors for recent problems."
 msgstr ""
 
+msgid "SOAP fields"
+msgstr ""
+
+msgid "Configure SOAP editor - individual SOAP fields vs text editor like"
+msgstr ""
+
 msgid "Progress notes handling ..."
 msgstr ""
 
@@ -13753,6 +14170,9 @@ msgstr ""
 msgid "URL for measurements encyclopedia."
 msgstr ""
 
+msgid "Drug data source"
+msgstr ""
+
 msgid "Select the drug data source."
 msgstr ""
 
@@ -14116,6 +14536,12 @@ msgstr ""
 msgid "Manage dynamic hints suppressed in this patient."
 msgstr ""
 
+msgid "Substance abuse"
+msgstr ""
+
+msgid "Manage substance abuse documentation of this patient."
+msgstr ""
+
 msgid "&Add / Edit ..."
 msgstr ""
 
@@ -14137,26 +14563,49 @@ msgstr ""
 msgid "Show a high-level statistic summary of the EMR."
 msgstr ""
 
-msgid "Text document"
+msgid "Journal (encounters) to file"
 msgstr ""
 
-msgid "Export the EMR of the active patient into a text file"
+msgid ""
+"Save the EMR of the active patient as a chronological journal into a text "
+"file"
 msgstr ""
 
-msgid "Journal"
+msgid "Journal (encounters) to export area"
 msgstr ""
 
 msgid ""
-"Export the EMR of the active patient as a chronological journal into a text "
-"file"
+"Copy EMR of the active patient as a chronological journal into export area"
+msgstr ""
+
+msgid "Journal (mod time) to file"
+msgstr ""
+
+msgid ""
+"Save the EMR of the active patient as journal by last modification time into "
+"a text file"
+msgstr ""
+
+msgid "Journal (mod time) to export area"
+msgstr ""
+
+msgid ""
+"Copy EMR of the active patient as journal by last modification time into "
+"export area"
+msgstr ""
+
+msgid "Text document"
+msgstr ""
+
+msgid "Save the EMR of the active patient into a text file"
 msgstr ""
 
 msgid "MEDISTAR import format"
 msgstr ""
 
 msgid ""
-"GNUmed -> MEDISTAR. Export progress notes of active patient's active "
-"encounter into a text file."
+"GNUmed -> MEDISTAR. Save progress notes of active patient's active encounter "
+"into a text file."
 msgstr ""
 
 msgid "Export as ..."
@@ -14326,19 +14775,40 @@ msgstr ""
 msgid "Show log file"
 msgstr ""
 
-msgid "Show the log file in text viewer."
+msgid "Show log file in text viewer."
 msgstr ""
 
 msgid "Backup log file"
 msgstr ""
 
-msgid "Backup the content of the log to another file."
+msgid "Backup content of the log to another file."
 msgstr ""
 
 msgid "Email log file"
 msgstr ""
 
-msgid "Send the log file to the authors for help."
+msgid "Send log file to the authors for help."
+msgstr ""
+
+msgid "Browse tmp dir"
+msgstr ""
+
+#, python-format
+msgid "Browse temporary directory [%s]."
+msgstr ""
+
+msgid "Browse work dir"
+msgstr ""
+
+#, python-format
+msgid "Browse user working directory [%s]."
+msgstr ""
+
+msgid "Browse internal work dir"
+msgstr ""
+
+#, python-format
+msgid "Browse internal working directory [%s]."
 msgstr ""
 
 msgid "Bug tracker"
@@ -14681,6 +15151,20 @@ msgid "No, only auto-open one editor for a new, unassociated problem."
 msgstr ""
 
 msgid ""
+"When editing progress notes, do you want GNUmed to\n"
+"show individual fields for each of the SOAP categories\n"
+"or do you want to use a text-editor like field for\n"
+"all SOAP categories which can then be set per line\n"
+"of input ?"
+msgstr ""
+
+msgid "Yes, show a dedicated field per SOAP category."
+msgstr ""
+
+msgid "No, use one field for all SOAP categories."
+msgstr ""
+
+msgid ""
 "When a patient is activated GNUmed can\n"
 "be told to switch to a specific plugin.\n"
 "\n"
@@ -14938,544 +15422,943 @@ msgstr ""
 msgid "Meta test/measurement types"
 msgstr ""
 
-msgid "Organizations with their units, addresses, and comm channels"
+msgid "Organizations with their units, addresses, and comm channels"
+msgstr ""
+
+msgid "Patient tags"
+msgstr ""
+
+msgid "Provinces (counties, territories, states, regions, ...)"
+msgstr ""
+
+msgid "String translations in the database"
+msgstr ""
+
+msgid "Test/measurement types"
+msgstr ""
+
+msgid "Vaccination targets (conditions known to be preventable by vaccination)"
+msgstr ""
+
+msgid "Vaccines"
+msgstr ""
+
+msgid "Workplace profiles (which plugins to load)"
+msgstr ""
+
+msgid "Consumable substances"
+msgstr ""
+
+msgid "Billable items"
+msgstr ""
+
+msgid "Reference data sources"
+msgstr ""
+
+msgid "Test/measurement panels/profiles"
+msgstr ""
+
+msgid "Master data management"
+msgstr ""
+
+msgid "Select the list you want to manage:"
+msgstr ""
+
+msgid "No DICOM viewer found."
+msgstr ""
+
+msgid "risk assessment"
+msgstr ""
+
+msgid "cardiovascular risk assessment"
+msgstr ""
+
+#, python-format
+msgid "[arriba] XML result not found in [%s]"
+msgstr ""
+
+msgid "ACS risk assessment calculator not configured."
+msgstr ""
+
+#, python-format
+msgid "Cannot run [%s] !"
+msgstr ""
+
+#, python-format
+msgid "There was a problem accessing the [arriba] result in [%s] !"
+msgstr ""
+
+msgid "[-9999]: <access violation test error>"
+msgstr ""
+
+msgid ""
+"This is a deliberate AccessDenied exception thrown to test the handling of "
+"access violations by means of a decorator."
+msgstr ""
+
+msgid "testing access check for non-existant <admin> role"
+msgstr ""
+
+msgid ""
+"This is a deliberate AccessDenied exception. You should not see this message "
+"because the role is checked in a decorator."
+msgstr ""
+
+msgid "pgAdmin III not found."
+msgstr ""
+
+msgid "Error reloading hook script."
+msgstr ""
+
+msgid "Save current log as..."
+msgstr ""
+
+msgid "log files"
+msgstr ""
+
+#, python-format
+msgid "Log file backed up as [%s]."
+msgstr ""
+
+msgid "Cannot start new encounter. No active patient."
+msgstr ""
+
+msgid "Cannot add health issue. No active patient."
+msgstr ""
+
+msgid "Cannot add episode. No active patient."
+msgstr ""
+
+msgid "Cannot add medication. No active patient."
+msgstr ""
+
+msgid "Cannot add allergy. No active patient."
+msgstr ""
+
+msgid "Cannot manage performed procedures. No active patient."
+msgstr ""
+
+msgid "Cannot manage hospitalizations. No active patient."
+msgstr ""
+
+msgid "Cannot manage external care. No active patient."
+msgstr ""
+
+msgid "Cannot edit occupation. No active patient."
+msgstr ""
+
+msgid "manage vaccinations"
+msgstr ""
+
+msgid "Cannot add vaccinations. No active patient."
+msgstr ""
+
+msgid "manage family history"
+msgstr ""
+
+msgid "Cannot manage family history. No active patient."
+msgstr ""
+
+msgid "Cannot manage measurements. No active patient."
+msgstr ""
+
+msgid "calculate EDC"
+msgstr ""
+
+msgid "manage suppressed hints"
+msgstr ""
+
+msgid "Cannot manage suppressed hints. No active patient."
+msgstr ""
+
+msgid "Cannot manage smoking status. No active patient."
+msgstr ""
+
+msgid "Cannot show EMR summary. No active patient."
+msgstr ""
+
+msgid "EMR Summary"
+msgstr ""
+
+msgid "Cannot export EMR journal by last modification time. No active patient."
+msgstr ""
+
+msgid "journal_by_last_mod_time"
+msgstr ""
+
+msgid "Save patient's EMR journal as..."
+msgstr ""
+
+msgid "Error exporting patient EMR as journal by last modification time."
+msgstr ""
+
+msgid "EMR journal export"
+msgstr ""
+
+#, python-format
+msgid ""
+"Successfully exported EMR as journal by last modification time into file "
+"[%s]."
+msgstr ""
+
+msgid "Cannot export EMR journal. No active patient."
+msgstr ""
+
+msgid "emr-journal"
+msgstr ""
+
+msgid "Error exporting patient EMR as chronological journal."
+msgstr ""
+
+#, python-format
+msgid "Successfully exported EMR as chronological journal into file [%s]."
+msgstr ""
+
+msgid "EMR journal by last modification time"
+msgstr ""
+
+msgid "EMR journal by encounter"
+msgstr ""
+
+msgid "Cannot add tag to person. No active patient."
+msgstr ""
+
+#, python-format
+msgid "Edit the comment on tag [%s]"
+msgstr ""
+
+msgid "Editing tag comment"
+msgstr ""
+
+msgid "Cannot export patient as GDT. No active patient."
+msgstr ""
+
+msgid "Exported demographics as GDT to clipboard."
+msgstr ""
+
+msgid "Cannot export patient as VCARD. No active patient."
+msgstr ""
+
+msgid "Exported demographics as VCARD to clipboard."
+msgstr ""
+
+msgid "Cannot export patient as XML (LinuxMedNews). No active patient."
+msgstr ""
+
+#, python-format
+msgid "Exported demographics to XML file [%s]."
+msgstr ""
+
+#, python-format
+msgid "Exported demographics to GDT file [%s]."
+msgstr ""
+
+#, python-format
+msgid "Exported demographics to VCARD file [%s]."
+msgstr ""
+
+msgid "Cannot add staff member. No active patient."
+msgstr ""
+
+msgid "Cannot delete patient. No patient active."
+msgstr ""
+
+msgid ""
+"You have to manually close this window to finalize shutting down GNUmed."
+msgstr ""
+
+msgid "This is so that you can inspect the console output at your leisure."
+msgstr ""
+
+msgid "no patient"
+msgstr ""
+
+#, python-format
+msgid "Saved screenshot to file [%s]."
+msgstr ""
+
+msgid "Python version check"
+msgstr ""
+
+#, python-format
+msgid ""
+"You are running Python version\n"
+" %s\n"
+"\n"
+"However, GNUmed wants Python 2.7 to\n"
+"facilitate migration to Python 3.\n"
+"\n"
+"Please upgrade your Python interpreter !"
+msgstr ""
+
+msgid "GNUmed client"
+msgstr ""
+
+msgid "GNUmed stdout/stderr window"
+msgstr ""
+
+msgid "redirecting STDOUT/STDERR to this log window"
+msgstr ""
+
+#, python-format
+msgid ""
+"The database account [%s] cannot be used as a\n"
+"staff member login for GNUmed. There was an\n"
+"error retrieving staff details for it.\n"
+"\n"
+"Please ask your administrator for help.\n"
+msgstr ""
+
+msgid "Checking access permissions"
+msgstr ""
+
+#, python-format
+msgid "Database <%s> on <%s>"
+msgstr ""
+
+#, python-format
+msgid "Branch \"%s\" of praxis \"%s\"\n"
+msgstr ""
+
+msgid "Verifying database"
+msgstr ""
+
+msgid "Connect"
+msgstr ""
+
+msgid "Yes, connect to this database."
+msgstr ""
+
+msgid "Disconnect"
+msgstr ""
+
+msgid "No, do not connect to this database."
+msgstr ""
+
+#, python-format
+msgid ""
+"Cannot find configuration file in any of:\n"
+"\n"
+" %s\n"
+"You may need to use the comand line option\n"
+"\n"
+"\t--conf-file=<FILE>"
+msgstr ""
+
+msgid "Checking configuration files"
+msgstr ""
+
+msgid "GNUmed startup"
+msgstr ""
+
+#, python-format
+msgid ""
+"The currently selected database language ('%s') does\n"
+"not match the current system language ('%s').\n"
+"\n"
+"Do you want to set the database language to '%s' ?\n"
+msgstr ""
+
+msgid "Checking database language settings"
+msgstr ""
+
+#, python-format
+msgid "Set your database language to [%s]."
+msgstr ""
+
+msgid "Don't set"
+msgstr ""
+
+msgid "Do not set your database language now."
+msgstr ""
+
+msgid "Remember to ignore language mismatch"
+msgstr ""
+
+#, python-format
+msgid ""
+"Checking this will make GNUmed remember your decision\n"
+"until the system language is changed.\n"
+"\n"
+"You can also reactivate this inquiry by removing the\n"
+"corresponding \"ignore\" option from the configuration file\n"
+"\n"
+" [%s]"
+msgstr ""
+
+msgid "generic activity"
+msgstr ""
+
+msgid "Access denied"
+msgstr ""
+
+#, python-format
+msgid ""
+"Your account is not set up to access this part of GNUmed:\n"
+"\n"
+"  [%s]"
+msgstr ""
+
+msgid "Save timeline as SVG image under..."
+msgstr ""
+
+msgid "timeline image"
+msgstr ""
+
+msgid "timeline data"
+msgstr ""
+
+msgid "Cannot change notebook tabs. No active patient."
 msgstr ""
 
-msgid "Patient tags"
+msgid "add plugin ..."
 msgstr ""
 
-msgid "Provinces (counties, territories, states, regions, ...)"
+msgid "Cannot activate Allergy Manager. No active patient."
 msgstr ""
 
-msgid "String translations in the database"
+msgid "RR ?"
 msgstr ""
 
-msgid "Test/measurement types"
+#, python-format
+msgid "BMI %s"
 msgstr ""
 
-msgid "Vaccination targets (conditions known to be preventable by vaccination)"
+msgid "BMI ?"
 msgstr ""
 
-msgid "Vaccines"
+msgid "GFR ?"
 msgstr ""
 
-msgid "Workplace profiles (which plugins to load)"
+#, python-format
+msgid "GFR %s"
 msgstr ""
 
-msgid "Consumable substances"
+#, python-format
+msgid "?EDC %s"
 msgstr ""
 
-msgid "Billable items"
+#, python-format
+msgid "EDC %s"
 msgstr ""
 
-msgid "Reference data sources"
+msgid "<Age>"
 msgstr ""
 
-msgid "Test/measurement panels/profiles"
+msgid "no patient selected"
 msgstr ""
 
-msgid "Master data management"
+#, python-format
+msgid "Gender: %s (%s) - %s\n"
 msgstr ""
 
-msgid "Select the list you want to manage:"
+#, python-format
+msgid "Born: %s\n"
 msgstr ""
 
-msgid "No DICOM viewer found."
+#, python-format
+msgid "Died: %s\n"
 msgstr ""
 
-msgid "risk assessment"
+#, python-format
+msgid "At age: %s\n"
 msgstr ""
 
-msgid "cardiovascular risk assessment"
+msgid " (date of birth and age are estimated)\n"
 msgstr ""
 
 #, python-format
-msgid "[arriba] XML result not found in [%s]"
+msgid "%(sex)s  %(dob)s (%(age)s today !)"
 msgstr ""
 
-msgid "ACS risk assessment calculator not configured."
+msgid ""
+"\n"
+"Today is the patient's birthday !\n"
+"\n"
 msgstr ""
 
 #, python-format
-msgid "Cannot run [%s] !"
+msgid "Birthday: %s ago\n"
 msgstr ""
 
 #, python-format
-msgid "There was a problem accessing the [arriba] result in [%s] !"
+msgid "Birthday: in %s\n"
 msgstr ""
 
-msgid "[-9999]: <access violation test error>"
+#, python-format
+msgid "Age: %s\n"
 msgstr ""
 
-msgid ""
-"This is a deliberate AcessDenied exception thrown to test the handling of "
-"access violations by means of a decorator."
+#, python-format
+msgid "last confirmed %s\n"
 msgstr ""
 
-msgid "testing access check for non-existant <admin> role"
+#, python-format
+msgid "Comment (%s): %%s"
 msgstr ""
 
+#, python-format
+msgid " - expires %s"
+msgstr ""
+
+#, python-format
 msgid ""
-"This is a deliberate AcessDenied exception. You should not see this message "
-"because the role is checked in a decorator."
+"Due for %s (since %s%s):\n"
+"%s%s\n"
+"Patient: %s\n"
+"Reminder by: %s"
 msgstr ""
 
-msgid "pgAdmin III not found."
+msgid "Clinical reminder"
 msgstr ""
 
-msgid "Error reloading hook script."
+msgid "Adding automatic dynamic hint"
 msgstr ""
 
-msgid "Save current log as..."
+msgid "Editing automatic dynamic hint"
 msgstr ""
 
-msgid "log files"
+msgid "Deleting automatic dynamic hint"
 msgstr ""
 
 #, python-format
-msgid "Log file backed up as [%s]."
+msgid ""
+"Really delete this dynamic hint ?\n"
+"\n"
+" [%s]"
 msgstr ""
 
-msgid "Cannot start new encounter. No active patient."
+msgid "deleting a dynamic hint"
 msgstr ""
 
-msgid "Cannot add health issue. No active patient."
+msgid ""
+"\n"
+"Dynamic hints registered with GNUmed.\n"
 msgstr ""
 
-msgid "Cannot add episode. No active patient."
+msgid "Showing dynamic hints."
 msgstr ""
 
-msgid "Cannot add medication. No active patient."
+msgid "Hint"
 msgstr ""
 
-msgid "Cannot add allergy. No active patient."
+msgid "Browse and install automatic dynamic hints data packs"
 msgstr ""
 
-msgid "Cannot manage performed procedures. No active patient."
+#, python-format
+msgid "By: %s"
 msgstr ""
 
-msgid "Cannot manage hospitalizations. No active patient."
+msgid "No entry in field <Source>."
 msgstr ""
 
-msgid "Cannot manage external care. No active patient."
+msgid "No entry in field <Conditions>."
 msgstr ""
 
-msgid "Cannot edit occupation. No active patient."
+msgid "No entry in field <Description>."
 msgstr ""
 
-msgid "manage vaccinations"
+msgid "No entry in field <Title>."
 msgstr ""
 
-msgid "Cannot add vaccinations. No active patient."
+msgid "creating a new dynamic hint"
 msgstr ""
 
-msgid "Cannot manage family history. No active patient."
+msgid "updating an existing dynamic hint"
 msgstr ""
 
-msgid "Cannot manage measurements. No active patient."
+msgid "Deleting suppressed dynamic hint"
 msgstr ""
 
-msgid "calculate EDC"
+#, python-format
+msgid ""
+"Really delete the suppression of this dynamic hint ?\n"
+"\n"
+" [%s]"
 msgstr ""
 
-msgid "manage suppressed hints"
+msgid ""
+"\n"
+"Dynamic hints suppressed in this patient.\n"
 msgstr ""
 
-msgid "Cannot manage suppressed hints. No active patient."
+msgid "Showing suppressed dynamic hints."
 msgstr ""
 
-msgid "Cannot show EMR summary. No active patient."
-msgstr ""
+#, fuzzy
+msgid "Rationale"
+msgstr "反應"
 
-msgid "EMR Summary"
+msgid "Manage hints"
 msgstr ""
 
-msgid "Cannot export EMR journal. No active patient."
+msgid "Manage automatic dynamic hints"
 msgstr ""
 
-msgid "Save patient's EMR journal as..."
+msgid "Cannot delete family history item."
 msgstr ""
 
-msgid "Error exporting patient EMR as chronological journal."
+msgid "Family history of this patient."
 msgstr ""
 
-msgid "EMR journal export"
+msgid "Showing family history."
 msgstr ""
 
-#, python-format
-msgid "Successfully exported EMR as chronological journal into file [%s]."
+msgid "Fatal"
 msgstr ""
 
-msgid "Cannot add tag to person. No active patient."
+msgid "Noted"
 msgstr ""
 
-#, python-format
-msgid "Edit the comment on tag [%s]"
+msgid "Died"
 msgstr ""
 
-msgid "Editing tag comment"
+msgid "Adding family history"
 msgstr ""
 
-msgid "Cannot export patient as GDT. No active patient."
+msgid "Editing family history"
 msgstr ""
 
-msgid "Exported demographics as GDT to clipboard."
+msgid ""
+"\n"
+"Please select the default drug data source from the list below.\n"
+"\n"
+"Note that to actually use it you need to have the database installed, too."
 msgstr ""
 
-msgid "Cannot export patient as VCARD. No active patient."
+msgid "Configuring default drug data source"
 msgstr ""
 
-msgid "Exported demographics as VCARD to clipboard."
+msgid "No default drug database configured."
 msgstr ""
 
-msgid "Cannot export patient as XML (LinuxMedNews). No active patient."
+msgid "There is no default drug database configured."
 msgstr ""
 
-#, python-format
-msgid "Exported demographics to XML file [%s]."
+msgid "Jumping to drug database"
 msgstr ""
 
-#, python-format
-msgid "Exported demographics to GDT file [%s]."
+msgid "Cannot import drugs from IFAP into chart without chart."
 msgstr ""
 
 #, python-format
-msgid "Exported demographics to VCARD file [%s]."
+msgid "Cannot call IFAP via [%s]."
 msgstr ""
 
-msgid "Cannot add staff member. No active patient."
+#, python-format
+msgid "Cannot create IFAP <-> GNUmed transfer file [%s]."
 msgstr ""
 
-msgid "Cannot delete patient. No patient active."
+msgid "Current medication"
 msgstr ""
 
 msgid ""
-"You have to manually close this window to finalize shutting down GNUmed."
+"\n"
+"The ATC codes as known to GNUmed.\n"
 msgstr ""
 
-msgid "This is so that you can inspect the console output at your leisure."
+msgid "Showing ATC codes."
 msgstr ""
 
-msgid "no patient"
+msgid "Choose an ATC import config file"
 msgstr ""
 
-#, python-format
-msgid "Saved screenshot to file [%s]."
+msgid "config files"
 msgstr ""
 
-msgid "GNUmed client"
+msgid "importing ATC reference data"
 msgstr ""
 
-msgid "GNUmed stdout/stderr window"
+msgid "Successfully imported ATC reference data."
 msgstr ""
 
-msgid "redirecting STDOUT/STDERR to this log window"
+msgid "Importing ATC reference data failed."
 msgstr ""
 
-#, python-format
-msgid ""
-"The database account [%s] cannot be used as a\n"
-"staff member login for GNUmed. There was an\n"
-"error retrieving staff details for it.\n"
-"\n"
-"Please ask your administrator for help.\n"
+msgid "Select an ATC (Anatomical-Therapeutic-Chemical) code."
 msgstr ""
 
-msgid "Checking access permissions"
+msgid "Cannot edit this substance. It is in use."
 msgstr ""
 
-#, python-format
-msgid "Database <%s> on <%s>"
+msgid "Adding new consumable substance"
 msgstr ""
 
-#, python-format
-msgid "Branch \"%s\" of praxis \"%s\"\n"
+msgid "Editing consumable substance"
 msgstr ""
 
-msgid "Verifying database"
+msgid "Cannot delete this substance. It is in use."
 msgstr ""
 
-msgid "Connect"
+msgid ""
+"\n"
+"These are the consumable substances registered with GNUmed.\n"
 msgstr ""
 
-msgid "Yes, connect to this database."
+msgid "Import"
 msgstr ""
 
-msgid "Disconnect"
+msgid "Import consumable substances from a drug database."
 msgstr ""
 
-msgid "No, do not connect to this database."
+msgid "Cannot save consumable substance. Missing essential input."
 msgstr ""
 
 #, python-format
-msgid ""
-"Cannot find configuration file in any of:\n"
-"\n"
-" %s\n"
-"You may need to use the comand line option\n"
-"\n"
-"\t--conf-file=<FILE>"
+msgid "Cannot save consumable substance. %s"
 msgstr ""
 
-msgid "Checking configuration files"
+msgid "The substance with optional strength."
 msgstr ""
 
-msgid "GNUmed startup"
+msgid "Cannot remove this component from the drug. It is in use."
 msgstr ""
 
-#, python-format
 msgid ""
-"The currently selected database language ('%s') does\n"
-"not match the current system language ('%s').\n"
 "\n"
-"Do you want to set the database language to '%s' ?\n"
-msgstr ""
-
-msgid "Checking database language settings"
-msgstr ""
-
-msgid "Set"
+"These are the components in the drug brands known to GNUmed.\n"
 msgstr ""
 
-#, python-format
-msgid "Set your database language to [%s]."
+msgid "Showing drug brand components."
 msgstr ""
 
-msgid "Don't set"
+msgid "Adding new drug component"
 msgstr ""
 
-msgid "Do not set your database language now."
+msgid "Editing drug component"
 msgstr ""
 
-msgid "Remember to ignore language mismatch"
+msgid "Cannot edit drug component. It is in use."
 msgstr ""
 
-#, python-format
-msgid ""
-"Checking this will make GNUmed remember your decision\n"
-"until the system language is changed.\n"
-"\n"
-"You can also reactivate this inquiry by removing the\n"
-"corresponding \"ignore\" option from the configuration file\n"
-"\n"
-" [%s]"
+msgid "Cannot save drug component. Invalid or missing essential input."
 msgstr ""
 
-msgid "generic activity"
+msgid "A drug component with optional strength."
 msgstr ""
 
-msgid "Access denied"
+msgid "Editing drug"
 msgstr ""
 
 #, python-format
 msgid ""
-"Your account is not set up to access this part of GNUmed:\n"
+"Cannot edit the branded drug product\n"
 "\n"
-"  [%s]"
+" \"%s\" (%s)\n"
+"\n"
+"because it is currently taken by patients.\n"
 msgstr ""
 
-msgid "Save timeline as SVG image under..."
+msgid "Adding new drug brand"
 msgstr ""
 
-msgid "timeline image"
+msgid "Editing drug brand"
 msgstr ""
 
-msgid "timeline data"
+msgid "Manage consumable substances"
 msgstr ""
 
-msgid "Cannot change notebook tabs. No active patient."
+msgid "not in use"
 msgstr ""
 
-msgid "add plugin ..."
+#, python-format
+msgid "ATC: %s\n"
 msgstr ""
 
-msgid "Cannot activate Allergy Manager. No active patient."
+msgid "Editing medication"
 msgstr ""
 
-msgid "<Age>"
+#, python-format
+msgid ""
+"Cannot edit the medication\n"
+"\n"
+" \"%s\" (%s)\n"
+"\n"
+"because it is a vaccine. Please edit it\n"
+"from the vaccine management section !\n"
 msgstr ""
 
-msgid "no patient selected"
+msgid "Deleting medication"
 msgstr ""
 
 #, python-format
-msgid "Gender: %s (%s) - %s\n"
+msgid ""
+"Cannot delete the medication\n"
+"\n"
+" \"%s\" (%s)\n"
+"\n"
+"because it is a vaccine. Please delete it\n"
+"from the vaccine management section !\n"
 msgstr ""
 
-#, python-format
-msgid "Born: %s\n"
+msgid ""
+"\n"
+"These are the drug brands known to GNUmed.\n"
 msgstr ""
 
-#, python-format
-msgid "Died: %s\n"
+msgid "Showing branded drugs."
 msgstr ""
 
-#, python-format
-msgid "At age: %s\n"
+msgid "Import substances and brands from a drug database."
 msgstr ""
 
-msgid " (date of birth and age are estimated)\n"
+msgid "Managing components of a drug"
 msgstr ""
 
 #, python-format
-msgid "%(sex)s  %(dob)s (%(age)s today !)"
-msgstr ""
-
 msgid ""
+"Cannot manage the components of the branded drug product\n"
 "\n"
-"Today is the patient's birthday !\n"
+" \"%s\" (%s)\n"
 "\n"
+"because it is currently taken by patients.\n"
 msgstr ""
 
-#, python-format
-msgid "Birthday: %s ago\n"
+msgid "Pick the substances which are components of this drug."
 msgstr ""
 
-#, python-format
-msgid "Birthday: in %s\n"
+msgid "Components of drug"
 msgstr ""
 
 #, python-format
-msgid "Age: %s\n"
+msgid ""
+"Adjust the components of \"%s\"\n"
+"\n"
+"The drug must contain at least one component. Any given\n"
+"substance can only be included once per drug."
 msgstr ""
 
-#, python-format
-msgid "last confirmed %s\n"
+msgid "Managing components of a drug ..."
 msgstr ""
 
-#, python-format
-msgid "Comment (%s): %%s"
+msgid "Cannot edit drug brand. It is in use."
 msgstr ""
 
-#, python-format
-msgid " - expires %s"
+msgid "Checking brand data"
 msgstr ""
 
 #, python-format
 msgid ""
-"Due for %s (since %s%s):\n"
-"%s%s\n"
-"Patient: %s\n"
-"Reminder by: %s"
+"The brand information you entered:\n"
+"\n"
+" [%s %s]\n"
+"\n"
+"already exists as a drug product."
 msgstr ""
 
-msgid "Clinical reminder"
+msgid ""
+"You have not selected any substances\n"
+"as drug components.\n"
+"\n"
+"Without components you will not be able to\n"
+"use this drug for documenting patient care.\n"
+"\n"
+"Are you sure you want to save\n"
+"it without components ?"
 msgstr ""
 
-msgid "Adding automatic dynamic hint"
+msgid "Cannot save branded drug. Invalid or missing essential input."
 msgstr ""
 
-msgid "Editing automatic dynamic hint"
+msgid ""
+"The brand name of the drug.\n"
+"\n"
+"Note: a brand name will need to be linked to\n"
+"one or more components before it can be used,\n"
+"except in the case of fake (generic) vaccines."
 msgstr ""
 
-msgid "Deleting automatic dynamic hint"
+msgid "No EMR data loaded."
 msgstr ""
 
-#, python-format
-msgid ""
-"Really delete this dynamic hint ?\n"
-"\n"
-" [%s]"
+msgid "EMR text dump"
 msgstr ""
 
-msgid "deleting a dynamic hint"
+msgid "Currently there is no active patient. Cannot retrieve EMR text."
 msgstr ""
 
-msgid ""
-"\n"
-"Dynamic hints registered with GNUmed.\n"
+msgid "SOAP Editor Actions:"
 msgstr ""
 
-msgid "Showing dynamic hints."
+msgid "&Sort lines"
 msgstr ""
 
-msgid "Hint"
+msgid "Sort lines by SOAP category"
 msgstr ""
 
-msgid "Browse and install automatic dynamic hints data packs"
+msgid "e&Xpand keyword"
 msgstr ""
 
-#, python-format
-msgid "By: %s"
+msgid "Expand keyword / macro"
 msgstr ""
 
-msgid "No entry in field <Source>."
+msgid "as &Subjective"
 msgstr ""
 
-msgid "No entry in field <Conditions>."
+msgid "Set line to category \"Subjective\""
 msgstr ""
 
-msgid "No entry in field <Description>."
+msgid "as &Objective"
 msgstr ""
 
-msgid "No entry in field <Title>."
+msgid "Set line to category \"Objective\""
 msgstr ""
 
-msgid "creating a new dynamic hint"
+msgid "as &Assessment"
 msgstr ""
 
-msgid "updating an existing dynamic hint"
+msgid "Set line to category \"Assessment\""
 msgstr ""
 
-msgid "Deleting suppressed dynamic hint"
+msgid "as &Plan"
 msgstr ""
 
-#, python-format
-msgid ""
-"Really delete the suppression of this dynamic hint ?\n"
-"\n"
-" [%s]"
+msgid "Set line to category \"Plan\""
 msgstr ""
 
-msgid ""
-"\n"
-"Dynamic hints suppressed in this patient.\n"
+msgid "as &Unspecified"
 msgstr ""
 
-msgid "Showing suppressed dynamic hints."
+msgid "Set line to category \"unspecified\""
 msgstr ""
 
-#, fuzzy
-msgid "Rationale"
-msgstr "反應"
-
-msgid "Manage hints"
+msgid "as ad&Ministrative"
 msgstr ""
 
-msgid "Manage automatic dynamic hints"
+msgid "Set line to category \"administrative\""
 msgstr ""
 
-msgid "Cannot delete family history item."
+msgid "→ &Clipboard"
 msgstr ""
 
-msgid "Family history of this patient."
+msgid "Copy line to clipboard"
 msgstr ""
 
-msgid "Showing family history."
+msgid "→ +Clipboard+"
 msgstr ""
 
-msgid "Fatal"
+msgid "Add line to clipboard"
 msgstr ""
 
-msgid "Noted"
+msgid "Copy content to clipboard"
 msgstr ""
 
-msgid "Died"
+msgid "Add content to clipboard"
 msgstr ""
 
-msgid "Adding family history"
+msgid "Copy selection to clipboard"
 msgstr ""
 
-msgid "Editing family history"
+msgid "Add selection to clipboard"
 msgstr ""
 
-msgid "No EMR data loaded."
+msgid "&Line ..."
 msgstr ""
 
-msgid "EMR text dump"
+msgid "&Text ..."
 msgstr ""
 
-msgid "Currently there is no active patient. Cannot retrieve EMR text."
+msgid "&Region ..."
 msgstr ""
 
 msgid "Show HL7 file:"
@@ -15487,6 +16370,10 @@ msgstr ""
 msgid "Extracting HL7 from XML file"
 msgstr ""
 
+#, python-format
+msgid "Unwrapped HL7 into [%s] from [%s]."
+msgstr ""
+
 msgid "Select HL7 file for staging:"
 msgstr ""
 
@@ -15511,6 +16398,10 @@ msgid ""
 " %s"
 msgstr ""
 
+#, python-format
+msgid "Staged HL7 from [%s]."
+msgstr ""
+
 msgid "Importing HL7 data"
 msgstr ""
 
@@ -15553,9 +16444,6 @@ msgstr ""
 msgid "Identification"
 msgstr ""
 
-msgid "Show"
-msgstr ""
-
 msgid "Show formatted HL7"
 msgstr ""
 
@@ -15601,6 +16489,18 @@ msgstr ""
 msgid "Plot current selection"
 msgstr ""
 
+msgid ""
+"Select the measurements panel to show in the top pane for continuous "
+"monitoring."
+msgstr ""
+
+#, fuzzy
+msgid "Lab panel"
+msgstr "實驗室結果"
+
+msgid "Configuring continuous monitoring measurements panel"
+msgstr ""
+
 msgid "No default Gnuplot script template selected."
 msgstr ""
 
@@ -15623,10 +16523,25 @@ msgstr ""
 msgid "Cannot plot without a plot script."
 msgstr ""
 
-msgid "Time"
+msgid "Result"
 msgstr ""
 
-msgid "Result"
+msgid "Perform on selected results:"
+msgstr ""
+
+msgid "Review and &sign"
+msgstr ""
+
+msgid "Export to &file"
+msgstr ""
+
+msgid "Export to &clipboard"
+msgstr ""
+
+msgid "Panels"
+msgstr ""
+
+msgid "List"
 msgstr ""
 
 msgid ""
@@ -15703,18 +16618,6 @@ msgstr ""
 msgid "All: by &Day"
 msgstr ""
 
-msgid "Perform on selected results:"
-msgstr ""
-
-msgid "Review and &sign"
-msgstr ""
-
-msgid "Export to &file"
-msgstr ""
-
-msgid "Export to &clipboard"
-msgstr ""
-
 #, python-format
 msgid "%s results selected. Too many to list individually."
 msgstr ""
@@ -15888,6 +16791,9 @@ msgstr ""
 msgid "EMR Actions:"
 msgstr ""
 
+msgid "Print EMR"
+msgstr ""
+
 msgid "Create health issue"
 msgstr ""
 
@@ -16036,11 +16942,41 @@ msgstr ""
 msgid "&New notes %s"
 msgstr ""
 
+msgid "Find text in EMR Journal"
+msgstr ""
+
+#, fuzzy
+msgid "Modified"
+msgstr "已修改條目"
+
+msgid "Clinical time"
+msgstr ""
+
+msgid "Who / When"
+msgstr ""
+
+#, python-format
 msgid ""
-"An error occurred while retrieving the EMR\n"
-"in journal form for the active patient.\n"
+"Chart entry: %s       [#%s in %s]\n"
+" Modified: %s by %s (%s rev %s)\n"
 "\n"
-"Please check the log file for details."
+"Health issue: %s%s\n"
+"Episode: %s%s\n"
+"Encounter: %s%s"
+msgstr ""
+
+#, python-format
+msgid ""
+"%s\n"
+"\n"
+"                        rev %s (%s) by %s in <%s>"
+msgstr ""
+
+#, python-format
+msgid ""
+"%s\n"
+"%s\n"
+"%s"
 msgstr ""
 
 msgid "Editing tag"
@@ -16167,18 +17103,15 @@ msgid ""
 "%s\n"
 msgstr ""
 
-msgid "This patient DID receive care."
+msgid "This patient DID receive care here."
 msgstr ""
 
-msgid "This person did NOT receive care."
+msgid "This person did NOT receive care here."
 msgstr ""
 
 msgid "Disabling person"
 msgstr ""
 
-msgid "Disabling patient"
-msgstr ""
-
 msgid "Type or select a last name (family name/surname)."
 msgstr ""
 
@@ -16421,6 +17354,9 @@ msgid ""
 "wiki.gnumed.de/bin/view/Gnumed/ConfigurePostgreSQL"
 msgstr ""
 
+msgid "Connecting to backend"
+msgstr "正在連接到後端程式"
+
 #, python-format
 msgid ""
 "Unable to connect to database:\n"
@@ -16629,9 +17565,6 @@ msgstr ""
 msgid "Office"
 msgstr ""
 
-msgid "State"
-msgstr ""
-
 msgid "Zip"
 msgstr ""
 
@@ -16687,7 +17620,7 @@ msgstr ""
 msgid "EMR Timeline"
 msgstr ""
 
-msgid "Show &Timeline"
+msgid "EMR &Timeline"
 msgstr ""
 
 msgid "Overview"
@@ -16714,10 +17647,10 @@ msgstr ""
 msgid "&SimpleNotes"
 msgstr ""
 
-msgid "EMR tree"
+msgid "EMR Tree"
 msgstr ""
 
-msgid "EMR &Tree (topical)"
+msgid "EMR &Tree"
 msgstr ""
 
 msgid "Print Manager"
@@ -16726,6 +17659,12 @@ msgstr ""
 msgid "&Print Manager"
 msgstr ""
 
+msgid "EMR Journal"
+msgstr ""
+
+msgid "EMR &Journal (list)"
+msgstr ""
+
 msgid "Appointments"
 msgstr ""
 
@@ -16738,6 +17677,12 @@ msgstr ""
 msgid "Show &lab journal"
 msgstr ""
 
+msgid "PACS"
+msgstr ""
+
+msgid "&PACS"
+msgstr ""
+
 msgid "Cardiac Devices"
 msgstr ""
 
@@ -16810,10 +17755,7 @@ msgstr ""
 msgid "User &manual (local)"
 msgstr ""
 
-msgid "EMR journal"
-msgstr ""
-
-msgid "EMR &Journal (chronological)"
+msgid "EMR &Journal (text)"
 msgstr ""
 
 msgid "Demographics"
@@ -16974,6 +17916,9 @@ msgstr ""
 msgid "Show &ExamplePlugin"
 msgstr ""
 
+msgid "Find text"
+msgstr ""
+
 msgid "gm_ctl_client: starting slave GNUmed client"
 msgstr ""
 
@@ -16999,3 +17944,7 @@ msgstr "中止"
 
 msgid "Abort and do NOT connect to GNUmed."
 msgstr ""
+
+#, fuzzy
+#~ msgid "&Unknown"
+#~ msgstr "過敏狀況不明"
diff --git a/client/pycommon/gmBackendListener.py b/client/pycommon/gmBackendListener.py
index 665f029..d9345ec 100644
--- a/client/pycommon/gmBackendListener.py
+++ b/client/pycommon/gmBackendListener.py
@@ -1,4 +1,7 @@
-"""GNUmed database backend listener.
+
+from __future__ import print_function
+
+__doc__ = """GNUmed database backend listener.
 
 This module implements threaded listening for asynchronuous
 notifications from the database backend.
@@ -97,7 +100,7 @@ class gmBackendListener(gmBorg.cBorg):
 			except:
 				pass
 		except:
-			print sys.exc_info()
+			print(sys.exc_info())
 
 		self._listener_thread = None
 
@@ -216,7 +219,7 @@ class gmBackendListener(gmBorg.cBorg):
 					self._conn_lock.release()
 				self.__notifications_received += 1
 				if self.debug:
-					print notification
+					print(notification)
 				_log.debug('#%s: %s (first param is PID of sending backend)', self.__notifications_received, notification)
 				# decode payload
 				payload = notification.payload.split(u'::')
@@ -233,9 +236,9 @@ class gmBackendListener(gmBorg.cBorg):
 					if item.startswith(u'PK name='):
 						pk_column = item.split(u'=')[1]
 					if item.startswith(u'row PK='):
-						pk_row = item.split(u'=')[1]
+						pk_row = int(item.split(u'=')[1])
 					if item.startswith(u'person PK='):
-						pk_identity = item.split(u'=')[1]
+						pk_identity = int(item.split(u'=')[1])
 				# try sending intra-client signals:
 				# 1) generic signal
 				self.__messages_sent += 1
@@ -254,8 +257,8 @@ class gmBackendListener(gmBorg.cBorg):
 						notification_index = self.__notifications_received
 					)
 				except:
-					print "problem routing notification [%s] from backend [%s] to intra-client dispatcher" % (notification.channel, notification.pid)
-					print sys.exc_info()
+					print("problem routing notification [%s] from backend [%s] to intra-client dispatcher" % (notification.channel, notification.pid))
+					print(sys.exc_info())
 				# 2) dynamically emulated old style table specific signals
 				if table is not None:
 					self.__messages_sent += 1
@@ -276,8 +279,8 @@ class gmBackendListener(gmBorg.cBorg):
 							notification_index = self.__notifications_received
 						)
 					except:
-						print "problem routing notification [%s] from backend [%s] to intra-client dispatcher" % (signal, notification.pid)
-						print sys.exc_info()
+						print("problem routing notification [%s] from backend [%s] to intra-client dispatcher" % (signal, notification.pid))
+						print(sys.exc_info())
 
 				# there *may* be more pending notifications but
 				# we don't care when quitting
@@ -317,16 +320,16 @@ if __name__ == "__main__":
 			global notifies
 			notifies += 1
 			sys.stdout.flush()
-			print "\nBackend says: patient data has been modified (%s. notification)" % notifies
+			print("\nBackend says: patient data has been modified (%s. notification)" % notifies)
 		#-------------------------------
 		try:
 			n = int(sys.argv[2])
 		except:
-			print "You can set the number of iterations\nwith the second command line argument"
+			print("You can set the number of iterations\nwith the second command line argument")
 			n = 100000
 
 		# try loop without backend listener
-		print "Looping", n, "times through dummy function"
+		print("Looping", n, "times through dummy function")
 		i = 0
 		t1 = time.time()
 		while i < n:
@@ -334,21 +337,21 @@ if __name__ == "__main__":
 			i += 1
 		t2 = time.time()
 		t_nothreads = t2-t1
-		print "Without backend thread, it took", t_nothreads, "seconds"
+		print("Without backend thread, it took", t_nothreads, "seconds")
 
 		listener = gmBackendListener(conn = gmPG2.get_raw_connection())
 
 		# now try with listener to measure impact
-		print "Now in a new shell connect psql to the"
-		print "database <gnumed_v9> on localhost, return"
-		print "here and hit <enter> to continue."
+		print("Now in a new shell connect psql to the")
+		print("database <gnumed_v9> on localhost, return")
+		print("here and hit <enter> to continue.")
 		raw_input('hit <enter> when done starting psql')
-		print "You now have about 30 seconds to go"
-		print "to the psql shell and type"
-		print " notify patient_changed<enter>"
-		print "several times."
-		print "This should trigger our backend listening callback."
-		print "You can also try to stop the demo with Ctrl-C !"
+		print("You now have about 30 seconds to go")
+		print("to the psql shell and type")
+		print(" notify patient_changed<enter>")
+		print("several times.")
+		print("This should trigger our backend listening callback.")
+		print("You can also try to stop the demo with Ctrl-C !")
 
 		listener.register_callback('patient_changed', OnPatientModified)
 
@@ -358,8 +361,8 @@ if __name__ == "__main__":
 				counter += 1
 				time.sleep(1)
 				sys.stdout.flush()
-				print '.',
-			print "Looping",n,"times through dummy function"
+				print('.', end=' ')
+			print("Looping",n,"times through dummy function")
 			i = 0
 			t1 = time.time()
 			while i < n:
@@ -367,49 +370,49 @@ if __name__ == "__main__":
 				i += 1
 			t2 = time.time()
 			t_threaded = t2-t1
-			print "With backend thread, it took", t_threaded, "seconds"
-			print "Difference:", t_threaded-t_nothreads
+			print("With backend thread, it took", t_threaded, "seconds")
+			print("Difference:", t_threaded-t_nothreads)
 		except KeyboardInterrupt:
-			print "cancelled by user"
+			print("cancelled by user")
 
 		listener.shutdown()
 		listener.unregister_callback('patient_changed', OnPatientModified)
 	#-------------------------------
 	def run_monitor():
 
-		print "starting up backend notifications monitor"
+		print("starting up backend notifications monitor")
 
 		def monitoring_callback(*args, **kwargs):
 			try:
 				kwargs['originated_in_database']
-				print '==> got notification from database "%s":' % kwargs['signal']
+				print('==> got notification from database "%s":' % kwargs['signal'])
 			except KeyError:
-				print '==> received signal from client: "%s"' % kwargs['signal']
+				print('==> received signal from client: "%s"' % kwargs['signal'])
 			del kwargs['signal']
 			for key in kwargs.keys():
-				print '    [%s]: %s' % (key, kwargs[key])
+				print('    [%s]: %s' % (key, kwargs[key]))
 
 		gmDispatcher.connect(receiver = monitoring_callback)
 
 		listener = gmBackendListener(conn = gmPG2.get_raw_connection())
-		print "listening for the following notifications:"
-		print "1) unspecific:"
+		print("listening for the following notifications:")
+		print("1) unspecific:")
 		for sig in listener.unspecific_notifications:
-			print '   - %s' % sig
+			print('   - %s' % sig)
 
 		while True:
 			pat = gmPersonSearch.ask_for_patient()
 			if pat is None:
 				break
-			print "found patient", pat
+			print("found patient", pat)
 			gmPerson.set_active_patient(patient=pat)
-			print "now waiting for notifications, hit <ENTER> to select another patient"
+			print("now waiting for notifications, hit <ENTER> to select another patient")
 			raw_input()
 
-		print "cleanup"
+		print("cleanup")
 		listener.shutdown()
 
-		print "shutting down backend notifications monitor"
+		print("shutting down backend notifications monitor")
 
 	#-------------------------------
 	if sys.argv[1] == 'monitor':
diff --git a/client/pycommon/gmBorg.py b/client/pycommon/gmBorg.py
index 76864b2..f6f5358 100644
--- a/client/pycommon/gmBorg.py
+++ b/client/pycommon/gmBorg.py
@@ -24,6 +24,15 @@ class cBorg(object):
 #===================================================
 if __name__ == '__main__':
 
+	import sys
+
+	if len(sys.argv) < 2:
+		sys.exit()
+
+	if sys.argv[1] != u'test':
+		sys.exit()
+
+
 	class A(cBorg):
 		pass
 
@@ -34,25 +43,25 @@ if __name__ == '__main__':
 		def __init__(self, val='default'):
 			self.x = val
 
-	print "testing new-style classes borg"
+	print("testing new-style classes borg")
 	a1 = A()
 	a2 = A()
 	a1.a = 5
-	print a1.a, "==", a2.a
+	print(a1.a, "==", a2.a)
 	a3 = A()
-	print a1.a, "==", a2.a, "==", a3.a
+	print(a1.a, "==", a2.a, "==", a3.a)
 	b1 = B()
 	b1.a = 10
-	print b1.a
-	print a1.a
+	print(b1.a)
+	print(a1.a)
 	b2 = B()
-	print b2.a
+	print(b2.a)
 
 	c1 = C(val = 'non-default')
-	print c1.x
+	print(c1.x)
 	c2 = C(val = 'non-default 2')
-	print c2.x
+	print(c2.x)
 	c3 = C()
-	print c3.x
+	print(c3.x)
 
 #===================================================
diff --git a/client/pycommon/gmBusinessDBObject.py b/client/pycommon/gmBusinessDBObject.py
index 19589f9..4a02b36 100644
--- a/client/pycommon/gmBusinessDBObject.py
+++ b/client/pycommon/gmBusinessDBObject.py
@@ -1,4 +1,7 @@
-"""GNUmed database object business class.
+
+from __future__ import print_function
+
+__doc__ = """GNUmed database object business class.
 
 Overview
 --------
@@ -81,10 +84,10 @@ episode, encounter).
 
 One can offer all the data to the user:
 
-self.original_payload
+self.payload_most_recently_fetched
 - contains the data at the last successful refetch
 
-self.modified_payload
+self.payload_most_recently_attempted_to_store
 - contains the modified payload just before the last
   failure of save_payload() - IOW what is currently
   in the database
@@ -141,9 +144,11 @@ if __name__ == '__main__':
 from Gnumed.pycommon import gmExceptions
 from Gnumed.pycommon import gmPG2
 from Gnumed.pycommon.gmDateTime import pydt_strftime
-from Gnumed.pycommon.gmTools import tex_escape_string, xetex_escape_string, compare_dict_likes
+from Gnumed.pycommon.gmTools import tex_escape_string
 from Gnumed.pycommon.gmTools import xetex_escape_string
 from Gnumed.pycommon.gmTools import compare_dict_likes
+from Gnumed.pycommon.gmTools import format_dict_like
+from Gnumed.pycommon.gmTools import format_dict_likes_comparison
 
 
 _log = logging.getLogger('gm.db')
@@ -334,9 +339,9 @@ def delete_xxx(pk_XXX=None):
 		self.pk_obj = aPK_obj
 		result = self.refetch_payload(link_obj = link_obj)
 		if result is True:
-			self.original_payload = {}
+			self.payload_most_recently_fetched = {}
 			for field in self._idx.keys():
-				self.original_payload[field] = self._payload[self._idx[field]]
+				self.payload_most_recently_fetched[field] = self._payload[self._idx[field]]
 			return True
 
 		if result is False:
@@ -351,7 +356,7 @@ def delete_xxx(pk_XXX=None):
 			- data: the field values in a list (as returned by
 			  cursor.fetchone() in the DB-API)
 
-		row = {'data': row, 'idx': idx, 'pk_field': 'the PK column name'}
+		row = {'data': rows[0], 'idx': idx, 'pk_field': 'pk_XXX (the PK column name)'}
 
 		rows, idx = gmPG2.run_ro_queries(queries = [{'cmd': cmd, 'args': args}], get_col_idx = True)
 		objects = [ cChildClass(row = {'data': r, 'idx': idx, 'pk_field': 'the PK column name'}) for r in rows ]
@@ -369,15 +374,15 @@ def delete_xxx(pk_XXX=None):
 			_log.critical('faulty <row> argument structure: %s' % row)
 			raise gmExceptions.ConstructorError, "[%s:??]: error loading instance from row data" % self.__class__.__name__
 
-		self.original_payload = {}
+		self.payload_most_recently_fetched = {}
 		for field in self._idx.keys():
-			self.original_payload[field] = self._payload[self._idx[field]]
+			self.payload_most_recently_fetched[field] = self._payload[self._idx[field]]
 	#--------------------------------------------------------
 	def __del__(self):
-		if self.__dict__.has_key('_is_modified'):
+		if u'_is_modified' in self.__dict__:
 			if self._is_modified:
 				_log.critical('[%s:%s]: loosing payload changes' % (self.__class__.__name__, self.pk_obj))
-				_log.debug('original: %s' % self.original_payload)
+				_log.debug('most recently fetched: %s' % self.payload_most_recently_fetched)
 				_log.debug('modified: %s' % self._payload)
 	#--------------------------------------------------------
 	def __str__(self):
@@ -392,6 +397,7 @@ def delete_xxx(pk_XXX=None):
 			#return '[%s:%s]:\n %s' % (self.__class__.__name__, self.pk_obj, '\n '.join(lines))
 		except:
 			return 'nascent [%s @ %s], cannot show payload and primary key' %(self.__class__.__name__, id(self))
+
 	#--------------------------------------------------------
 	def __unicode__(self):
 		lines = []
@@ -404,6 +410,7 @@ def delete_xxx(pk_XXX=None):
 			return '[%s:%s]:\n%s' % (self.__class__.__name__, self.pk_obj, u'\n'.join(lines))
 		except:
 			return 'nascent [%s @ %s], cannot show payload and primary key' %(self.__class__.__name__, id(self))
+
 	#--------------------------------------------------------
 	def __getitem__(self, attribute):
 		# use try: except: as it is faster and we want this as fast as possible
@@ -473,15 +480,18 @@ def delete_xxx(pk_XXX=None):
 	#--------------------------------------------------------
 	def is_modified(self):
 		return self._is_modified
+
 	#--------------------------------------------------------
 	def get_fields(self):
 		try:
 			return self._idx.keys()
 		except AttributeError:
 			return 'nascent [%s @ %s], cannot return keys' %(self.__class__.__name__, id(self))
+
 	#--------------------------------------------------------
 	def get_updatable_fields(self):
 		return self.__class__._updatable_fields
+
 	#--------------------------------------------------------
 	def fields_as_dict(self, date_format='%Y %b %d  %H:%M', none_string=u'', escape_style=None, bool_strings=None):
 		if bool_strings is None:
@@ -531,9 +541,48 @@ def delete_xxx(pk_XXX=None):
 	def get_patient(self):
 		_log.error('[%s:%s]: forgot to override get_patient()' % (self.__class__.__name__, self.pk_obj))
 		return None
+
+	#--------------------------------------------------------
+	def format(self, *args, **kwargs):
+		return format_dict_like (
+			self.fields_as_dict(none_string = u'<?>'),
+			tabular = True,
+			value_delimiters = None
+		).split(u'\n')
+
 	#--------------------------------------------------------
-	def format(self):
-		return u'%s' % self
+	def _get_revision_history(self, query, args, title):
+		rows, idx = gmPG2.run_ro_queries(queries = [{'cmd': query, 'args': args}], get_col_idx = True)
+		lines = []
+		lines.append(u'%s (%s versions)' % (title, rows[0]['row_version'] + 1))
+		if len(rows) == 1:
+			lines.append(u'')
+			lines.extend(format_dict_like (
+					rows[0],
+					left_margin = 1,
+					tabular = True,
+					value_delimiters = None,
+					eol = None
+			))
+			return lines
+
+		for row_idx in range(len(rows)-1):
+			lines.append(u'')
+			row_older = rows[row_idx + 1]
+			row_newer = rows[row_idx]
+			lines.extend(format_dict_likes_comparison (
+				row_older,
+				row_newer,
+				title_left = _('Revision #%s') % row_older['row_version'],
+				title_right = _('Revision #%s') % row_newer['row_version'],
+				left_margin = 0,
+				key_delim = u' | ',
+				data_delim = u' | ',
+				missing_string = u'',
+				ignore_diff_in_keys = ['audit__action_applied', 'audit__action_when', 'audit__action_by', 'pk_audit', 'row_version', 'modified_when', 'modified_by']
+			))
+		return lines
+
 	#--------------------------------------------------------
 	def refetch_payload(self, ignore_changes=False, link_obj=None):
 		"""Fetch field values from backend.
@@ -542,7 +591,7 @@ def delete_xxx(pk_XXX=None):
 			compare_dict_likes(self.original_payload, self.fields_as_dict(date_format = None, none_string = None), u'original payload', u'modified payload')
 			if ignore_changes:
 				_log.critical('[%s:%s]: loosing payload changes' % (self.__class__.__name__, self.pk_obj))
-				#_log.debug('original: %s' % self.original_payload)
+				#_log.debug('most recently fetched: %s' % self.payload_most_recently_fetched)
 				#_log.debug('modified: %s' % self._payload)
 			else:
 				_log.critical('[%s:%s]: cannot reload, payload changed' % (self.__class__.__name__, self.pk_obj))
@@ -585,7 +634,7 @@ def delete_xxx(pk_XXX=None):
 		args = {}
 		for field in self._idx.keys():
 			args[field] = self._payload[self._idx[field]]
-		self.modified_payload = args
+		self.payload_most_recently_attempted_to_store = args
 
 		close_conn = self.__noop
 		if conn is None:
@@ -637,9 +686,9 @@ def delete_xxx(pk_XXX=None):
 		close_conn()
 
 		# update to new "original" payload
-		self.original_payload = {}
+		self.payload_most_recently_fetched = {}
 		for field in self._idx.keys():
-			self.original_payload[field] = self._payload[self._idx[field]]
+			self.payload_most_recently_fetched[field] = self._payload[self._idx[field]]
 
 		return (True, None)
 
@@ -698,12 +747,12 @@ def jsonclasshintify(obj):
 		for k in obj.get_fields():
 			t = jsonclasshintify(obj[k])
 			res[k] = t
-		print "props", res, dir(obj)
+		print("props", res, dir(obj))
 		for attribute in dir(obj):
 			if not attribute.startswith("get_"):
 				continue
 			k = attribute[4:]
-			if res.has_key(k):
+			if k in res:
 				continue
 			getter = getattr(obj, attribute, None)
 			if callable(getter):
@@ -742,9 +791,10 @@ if __name__ == '__main__':
 		'data': [-1, 'bogus_data', datetime.datetime.now()]
 	}
 	obj = cTestObj(row=data)
-	#print obj['wrong_field']
-	#print jsonclasshintify(obj)
+	#print(obj['wrong_field'])
+	#print(jsonclasshintify(obj))
 	#obj['wrong_field'] = 1
-	print obj.fields_as_dict()
+	#print(obj.fields_as_dict())
+	print(obj.format())
 
 #============================================================
diff --git a/client/pycommon/gmCfg.py b/client/pycommon/gmCfg.py
index 3bc4336..f89a5cd 100644
--- a/client/pycommon/gmCfg.py
+++ b/client/pycommon/gmCfg.py
@@ -25,7 +25,7 @@ The database config objects auto-sync with the backend.
 __author__ = "Karsten Hilbert <Karsten.Hilbert at gmx.net>"
 
 # standard modules
-import sys, types, cPickle, decimal, logging, re as regex
+import sys, types, pickle, decimal, logging, re as regex
 
 
 # gnumed modules
@@ -186,7 +186,7 @@ class cCfgSQL:
 		rows, idx = gmPG2.run_ro_queries(link_obj=self.ro_conn, queries = [{'cmd': cmd, 'args': args}])
 		if len(rows) > 0:
 			if cfg_table_type_suffix == u'data':
-				return cPickle.loads(str(rows[0][0]))
+				return pickle.loads(str(rows[0][0]))
 			return rows[0][0]
 
 		_log.warning('no user AND workplace specific value for option [%s] in config database' % option)
@@ -224,7 +224,7 @@ class cCfgSQL:
 				value = rows[0][0]
 			)
 			if cfg_table_type_suffix == u'data':
-				return cPickle.loads(str(rows[0][0]))
+				return pickle.loads(str(rows[0][0]))
 			return rows[0][0]
 
 		_log.warning('no user OR workplace specific value for option [%s] in config database' % option)
@@ -250,7 +250,7 @@ class cCfgSQL:
 				value = rows[0]['value']
 			)
 			if cfg_table_type_suffix == u'data':
-				return cPickle.loads(str(rows[0]['value']))
+				return pickle.loads(str(rows[0]['value']))
 			return rows[0]['value']
 
 		_log.warning('no default site policy value for option [%s] in config database' % option)
@@ -346,9 +346,9 @@ limit 1""" % where_clause
 			pass
 		else:
 			try:
-				opt_value = gmPG2.dbapi.Binary(cPickle.dumps(value))
+				opt_value = gmPG2.dbapi.Binary(pickle.dumps(value))
 				sql_type_cast = '::bytea'
-			except cPickle.PicklingError:
+			except pickle.PicklingError:
 				_log.error("cannot pickle option of type [%s] (key: %s, value: %s)", type(value), alias, str(value))
 				raise
 			except:
diff --git a/client/pycommon/gmCfg2.py b/client/pycommon/gmCfg2.py
index 91e6608..a6ac311 100644
--- a/client/pycommon/gmCfg2.py
+++ b/client/pycommon/gmCfg2.py
@@ -7,7 +7,7 @@ __licence__ = "GPL"
 
 import logging
 import sys
-import codecs
+import io
 import re as regex
 import shutil
 import os
@@ -81,7 +81,7 @@ def __set_opt_in_INI_file(src=None, sink=None, group=None, option=None, value=No
 
 	# need to add group ?
 	if not group_seen:
-		sink.write('[%s]\n' % group)
+		sink.write(u'[%s]\n' % group)
 
 	# We either just added the group or it was the last group
 	# but did not contain the option. It must have been the
@@ -113,9 +113,9 @@ def __set_list_in_INI_file(src=None, sink=None, group=None, option=None, value=N
 			# our option ?
 			if regex.match('%s(\s|\t)*=(\s|\t)*\$%s\$' % (option, option), line.strip()) is not None:
 				sink.write(line)										# list header
-				sink.write('\n'.join(value))
-				sink.write('\n')
-				sink.write('$%s$\n' % option)							# list footer
+				sink.write(u'\n'.join(value))
+				sink.write(u'\n')
+				sink.write(u'$%s$\n' % option)							# list footer
 				our_list_seen = True
 				inside_our_list = True
 				continue
@@ -125,10 +125,10 @@ def __set_list_in_INI_file(src=None, sink=None, group=None, option=None, value=N
 				# our list already handled ?  (if so must already be finished)
 				if not our_list_seen:
 					# no, so need to add our list to the group before ...
-					sink.write('%s = $%s$\n' % (option, option))		# list header
-					sink.write('\n'.join(value))
-					sink.write('\n')
-					sink.write('$%s$\n' % option)						# list footer
+					sink.write(u'%s = $%s$\n' % (option, option))		# list header
+					sink.write(u'\n'.join(value))
+					sink.write(u'\n')
+					sink.write(u'$%s$\n' % option)						# list footer
 					our_list_seen = True
 					inside_our_list = False
 				# ... starting the next group
@@ -151,17 +151,17 @@ def __set_list_in_INI_file(src=None, sink=None, group=None, option=None, value=N
 
 	# looped over all lines but did not find our group, so add group
 	if not our_group_seen:
-		sink.write('[%s]\n' % group)
+		sink.write(u'[%s]\n' % group)
 
 	if not our_list_seen:
 		# We either just added the group or it was the last group
 		# but did not contain the option. It must have been the
 		# last group then or else the group following it would have
 		# triggered the option writeout.
-		sink.write('%s = $%s$\n' % (option, option))
-		sink.write('\n'.join(value))
-		sink.write('\n')
-		sink.write('$%s$\n' % option)
+		sink.write(u'%s = $%s$\n' % (option, option))
+		sink.write(u'\n'.join(value))
+		sink.write(u'\n')
+		sink.write(u'$%s$\n' % option)
 
 #==================================================================
 def __set_list_in_INI_file_old(src=None, sink=None, group=None, option=None, value=None):
@@ -194,8 +194,8 @@ def __set_list_in_INI_file_old(src=None, sink=None, group=None, option=None, val
 			if our_group_seen and (match.group('list_name') == option):
 				option_seen = True
 				sink.write(line)
-				sink.write('\n'.join(value))
-				sink.write('\n')
+				sink.write(u'\n'.join(value))
+				sink.write(u'\n')
 				continue
 			sink.write(line)
 			continue
@@ -217,9 +217,9 @@ def __set_list_in_INI_file_old(src=None, sink=None, group=None, option=None, val
 			# next group but option not seen yet ?
 			if our_group_seen and not option_seen:
 				option_seen = True
-				sink.write('%s = $%s$\n' % (option, option))
-				sink.write('\n'.join(value))
-				sink.write('\n')
+				sink.write(u'%s = $%s$\n' % (option, option))
+				sink.write(u'\n'.join(value))
+				sink.write(u'\n')
 				continue
 			sink.write(line)
 			continue
@@ -233,16 +233,17 @@ def __set_list_in_INI_file_old(src=None, sink=None, group=None, option=None, val
 
 	# need to add group ?
 	if not our_group_seen:
-		sink.write('[%s]\n' % group)
+		sink.write(u'[%s]\n' % group)
 
 	# We either just added the group or it was the last group
 	# but did not contain the option. It must have been the
 	# last group then or else the following group would have
 	# triggered the option writeout.
-	sink.write('%s = $%s$\n' % (option, option))
-	sink.write('\n'.join(value))
-	sink.write('\n')
-	sink.write('$%s$\n' % option)
+	sink.write(u'%s = $%s$\n' % (option, option))
+	sink.write(u'\n'.join(value))
+	sink.write(u'\n')
+	sink.write(u'$%s$\n' % option)
+
 #==================================================================
 def set_option_in_INI_file(filename=None, group=None, option=None, value=None, encoding='utf8'):
 
@@ -252,8 +253,8 @@ def set_option_in_INI_file(filename=None, group=None, option=None, value=None, e
 	sink = tempfile.NamedTemporaryFile(suffix = '.cfg', delete = True)
 	sink_name = sink.name
 	sink.close()	# close it so it gets deleted so we can safely open it again
-	src = codecs.open(filename = filename, mode = 'rU', encoding = encoding)
-	sink = codecs.open(filename = sink_name, mode = 'wb', encoding = encoding)
+	src = io.open(filename, mode = 'rt', encoding = encoding)
+	sink = io.open(sink_name, mode = 'wt', encoding = encoding)
 
 	# is value a list ?
 	if isinstance(value, type([])):
@@ -265,6 +266,7 @@ def set_option_in_INI_file(filename=None, group=None, option=None, value=None, e
 	src.close()
 
 	shutil.copy2(sink_name, filename)
+
 #==================================================================
 def parse_INI_stream(stream=None):
 	"""Parse an iterable for INI-style data.
@@ -329,7 +331,7 @@ def parse_INI_stream(stream=None):
 
 		current_option = name
 		current_option_path = '%s::%s' % (current_group, current_option)
-		if data.has_key(current_option_path):
+		if current_option_path in data:
 			_log.warning(u'duplicate option [%s]', current_option_path)
 
 		value = remainder.split(u'#', 1)[0].strip()
@@ -434,7 +436,7 @@ class gmCfgData(gmBorg.cBorg):
 			_log.exception('error parsing source <%s> from [%s]', source, stream)
 			raise
 
-		if self.__cfg_data.has_key(source):
+		if source in self.__cfg_data:
 			_log.warning('overriding source <%s> with [%s]', source, stream)
 
 		self.__cfg_data[source] = data
@@ -453,13 +455,13 @@ class gmCfgData(gmBorg.cBorg):
 		cfg_file = None
 		if file is not None:
 			try:
-				cfg_file = codecs.open(filename = file, mode = 'rU', encoding = encoding)
+				cfg_file = io.open(file, mode = 'rt', encoding = encoding)
 			except IOError:
 				_log.error('cannot open [%s], keeping as dummy source', file)
 
 		if cfg_file is None:
 			file = None
-			if self.__cfg_data.has_key(source):
+			if source in self.__cfg_data:
 				_log.warning('overriding source <%s> with dummy', source)
 			self.__cfg_data[source] = {}
 		else:
@@ -544,8 +546,8 @@ if __name__ == "__main__":
 		cfg = gmCfgData()
 		cfg.add_cli(short_options=u'h?', long_options=[u'help', u'conf-file='])
 		cfg.set_option('internal option', True)
-		print cfg.get(option = '--help', source_order = [('cli', 'return')])
-		print cfg.get(option = '-?', source_order = [('cli', 'return')])
+		print (cfg.get(option = '--help', source_order = [('cli', 'return')]))
+		print (cfg.get(option = '-?', source_order = [('cli', 'return')]))
 		fname = cfg.get(option = '--conf-file', source_order = [('cli', 'return')])
 		if fname is not None:
 			cfg.add_file_source(source = 'explicit', file = fname)
diff --git a/client/pycommon/gmConfigCommon.py b/client/pycommon/gmConfigCommon.py
deleted file mode 100644
index 63ae47b..0000000
--- a/client/pycommon/gmConfigCommon.py
+++ /dev/null
@@ -1,872 +0,0 @@
-"""GNUmed: Mid-level configuration editor object.
-
-Theory of operation:
-
-ConfigSourceDB/File holds config data (read from backend or file) and related
-config definitions. Definitions are retrieved automatically from a given config
-definition file (if available). See _defaultDefSourceTable below for standard file
-names.
-
-First get a list of available config parameters through getAllParamNames (returns
-names + metadata), get the values using GetConfigData, change, check for validity
-using isValid (if definition data and parameter definition is available) and 
-set data using SetConfigData.
-License: GNU Public License 
-"""
-#==================================================================
-# $Source: /home/ncq/Projekte/cvs2git/vcs-mirror/gnumed/gnumed/client/pycommon/gmConfigCommon.py,v $
-__version__ = "$Revision: 1.10 $"
-__author__ = "H.Berger,K.Hilbert"
-
-import sys, os, string, types, pickle
-
-from Gnumed.pycommon import gmCfg, gmPG2
-
-_log = gmLog.gmDefLog
-if __name__ == '__main__':
-	_log.SetAllLogLevels(gmLog.lData)
-	_ = lambda x:x
-
-_log.Log(gmLog.lData, __version__)
-_cfg = gmCfg.gmDefCfgFile
-_defaultDefSourceTable = {
-	'DB:CURRENT_USER_CURRENT_WORKPLACE': 'config-definitions/DBDefault.definitions',
-	'DB:CURRENT_USER_DEFAULT_WORKPLACE' : 'config-definitions/DBDefault.definitions',
-	'DB:DEFAULT_USER_CURRENT_WORKPLACE' : 'config-definitions/DBDefault.definitions',
-	'DB:DEFAULT_USER_DEFAULT_WORKPLACE' : 'config-definitions/DBDefault.definitions',
-	'gnumed.conf': 'config-definitions/gnumed.conf.definitions'
-}
-
-###############################################################################
-class ConfigSource:
-	"""Base class for interface to access config data and definitions on a single 
-	   configuration source (config file, user/workplace specific backend data
-	   collection.
-	   The source name will be used to retrieve the config definitions from
-	   a config definition source (file, DB) automatically.
-	"""
-	
-	_DefinitionSourceTable = None
-	
-	def __init__(self,aSourceType=None,aSourceName=None,aDataSource=None):
-		self.mSourceType = aSourceType
-		self.mSourceName = aSourceName
-		self.mDataSource = aDataSource
-
-		if ConfigSource._DefinitionSourceTable is None:
-			ConfigSource._DefinitionSourceTable=self.__getDefinitionSourceTable()
-		
-		try:
-			DefinitionSource = ConfigSource._DefinitionSourceTable[self.mSourceName]
-			self.mDefinitionSource = ConfigDefinition(DefinitionSource)
-		except:
-			_log.Log(gmLog.lWarn, "No definition source found for %s" % self.mSourceName)
-			self.mDefinitionSource = None 
-
-	#---------------------------------------------------------------------
-	# TODO : get definition source table from cfg file if available
-	def __getDefinitionSourceTable(self):
-		return _defaultDefSourceTable
-			
-	#------------------------------------------------------------------------
-	def getParamType(self, aParam = None):
-		""" get type of parameter value """
-
-		# try to get the type from config definitions
-		# if this fails, get last known type from config data dict 
-		definitionType = None
-
-		if not self.mDefinitionSource is None:
-			definitionName = self.mDataSource.getRawName(aParam)
-			definitionType = self.mDefinitionSource.getParamType(definitionName)
-
-		if not definitionType is None:
-			mType = definitionType
-		else:
-			mType = self.mDataSource.getParamType(aParam)
-
-		return mType
-
-	#------------------------------------------------------------------------
-	def castType(self, aParam = None, aValue=None):
-		""" cast type of entered parameter value to the previously existing type."""
-					
-		castType = self.getParamType(aParam)
-		if castType == 'str_array':
-			castedVal = string.split(aValue,'\n')
-			if not type(castedVal) is types.ListType:
-				castedVal = [str(castedVal)]
-		elif castType == 'numeric':
-			if not type(eval(aValue)) in (types.IntType, types.FloatType, types.LongType):
-				castedVal = None
-			else:
-				castedVal = eval(aValue)
-		elif castType == 'string':
-			castedVal = str(aValue)
-
-		return castedVal
-
-	#----------------------------------------------------------------------
-	def getDescription(self, aParam=None):
-		"""
-		Get parameter description either from config definition or from config data
-		"""
-		# if no parameter definition is available, get definition from data
-		# source
-		definitionName = self.mDataSource.getRawName(aParam)
-		description = None
-		if not self.mDefinitionSource is None:
-			description = self.mDefinitionSource.getParamDescription(definitionName)
-		
-		if  description is None:
-			description = self.mDataSource.getParamDescription(aParam)
-
-		return description
-
-	# here come the wrapper functions that link to config data and definition
-	# objects
-	#---------------------------------------------------------------------
-	def getAllParamNames(self):
-		"""
-		Get all parameter names from backend or a file.
-		Returns dict of names + metadata.
-		format:
-		dict {'name1': [namepart_2,namepart_1,owner,type,description],
-		       'name2': [option,group,owner,type,description],...}
-		usually the full name is a composition of namepart_1 +_2, 
-		but don't rely on the order - it depends on whether you get 
-		data from DB or file. type is the type as found in the data 
-		(one of 'string', 'string_arr' or 'numeric'). description is the
-		description supplied with the data, not the one given in the
-		parameter definition file ! Use getDescription() to get the right 
-		one.
-		"""
-		if not self.mDataSource is None:
-			return self.mDataSource.getAllNames()
-	#---------------------------------------------------------------------
-	def setConfigData(self,aParam,aValue):
-		"""
-		Set config data for a aParam to aValue.
-		"""
-		return self.mDataSource.SetConfigData(aParam,aValue)
-	#---------------------------------------------------------------------
-	def getConfigData(self,aParam):
-		"""
-		Get config data for a aParam.
-		"""
-		return self.mDataSource.GetConfigData(aParam)
-
-	#---------------------------------------------------------------------
-	def addConfigParam(self,aParam,aType,aValue,aDescription):
-		"""
-		Adds config new config parameter.
-		"""
-		return self.mDataSource.AddConfigParam(aParam,aType,aValue,aDescription)
-	#---------------------------------------------------------------------
-	def getRawName(self,aParam):
-		"""Get config data for a aParam."""
-		return self.mDataSource.getRawName(aParam)
-	#---------------------------------------------------------------------
-	def hasDefinition(self):
-		""" return true if config definition object is available"""
-		return ( not self.mDefinitionSource is None)	
-		
-	#---------------------------------------------------------------------
-	def hasParameterDefinition(self,aParam):
-		"""
-		Returns true if config definition is available for this
-		parameter.
-		"""
-		return self.mDefinitionSource.hasParameter(aParam)
-
-	#---------------------------------------------------------------------
-	def isValid(self,aParam,aValue):
-		"""
-		Returns true if aValue matches config definition for this
-		parameter.
-		"""
-		return self.mDefinitionSource.isValid(aParam,aValue)
-
-		
-###############################################################################
-class ConfigSourceDB(ConfigSource):
-	"""Interface to access config data and definitions in a single 
-	   configuration user/workplace specific backend data collection.
-	"""
-	def __init__(self, aSourceName=None,aUser = None, aWorkplace = 'xxxDEFAULTxxx'):
-		try:
-			mConfigDataSource = ConfigDataDB(aUser,aWorkplace)
-		except:	
-			mConfigDataSource = None
-
-		ConfigSource.__init__(self,"DB",aSourceName,mConfigDataSource)
-
-
-###############################################################################
-class ConfigSourceFile(ConfigSource):
-	"""
-	Interface to access config data and definitions in a config file.
-	"""
-	def __init__(self, aSourceName=None,aFileName=None):
-		try:
-			mConfigDataSource = ConfigDataFile(aFileName)		
-		except:	
-			mConfigDataSource = None
-
-		ConfigSource.__init__(self,"FILE",aSourceName,mConfigDataSource)
-			
-
-	def GetFullPath(self):
-		if not self.mDataSource is None:
-			return self.mDataSource.GetFullPath()
-		
-###############################################################################
-class ParameterDefinition:
-	"""Describes a gnumed configuration parameter.
-	"""
-	def __init__(self,aParamName = None,aParamType = None,aValidValsList = None,aParamDescription = None):
-		self.mName = aParamName
-		self.mType = aParamType
-		self.mDescription = aParamDescription
-		# perhaps make this a class <validator>, too ?
-		# - one method: bool isValid()
-		# - derived classes for:
-		#   validator -> string -> font
-		#   validator -> string -> color
-		#   validator -> numeric -> range
-		#   ...
-		self.mValidVals = aValidValsList
-
-	#---------------------------------------------------------------------
-	def isValid(self,aValue):
-		if self.mType == "string":
-			return self.__isString(aValue)
-		elif self.mType == "str_array":
-			return self.__isStringArray(aValue)
-		elif self.mType == "numeric":
-			return self.__isNumeric(aValue)
-		else:
-			_log.Log (gmLog.lPanic, "isValid %s - %s %s" % (self.mName, self.mType, aValue))
-			return 0
-			
-	#---------------------------------------------------------------------
-	def __isString(self,aValue):
-		if type(aValue) == types.StringType or type (s) == types.UnicodeType:
-			if self.mValidVals is None:
-				return 1
-			elif str(aValue) in (self.mValidVals):
-				return 1
-		return 0
-	
-	#---------------------------------------------------------------------
-	def __isStringArray(self,aValue):
-		# value must be a list and all elements must be strings
-		if type(aValue) == types.ListType:
-			for s in (aValue):
-				if not (type(s) == types.StringType or type (s) == types.UnicodeType):
-					return 0
-			return 1
-		return 0
-
-	#---------------------------------------------------------------------
-	def __isNumeric(self,aValue):
-		if type(aValue) in (types.IntType, types.FloatType, types.LongType):
-			if self.mValidVals is None:
-				return 1
-			elif str(aValue) in (self.mValidVals):
-				return 1
-		return 0
-
-###############################################################################
-# IDEAS: if no config definition is available, we should make the 
-# data read-only by default, and only allow change after an explicit warning
-# TODO : almost all
-class ConfigDefinition:
-	""" holds config definitions read from a file/DB.
-	this will contain: 
-		a) config parameter names
-		b) config parameter description (optional)
-		c) config parameter type
-		d) config parameter valid values (if type is select_from_list)
-		e) config information version (must match the version used in ConfigData)
-	"""
-
-	def __init__(self, aDefinitionSource=None):
-		# get queries from configuration source (currently only files are supported)
-
-		self.__mParameterDefinitions = {}
-		self.__mVersion = None
-
-		if aDefinitionSource is None:
-			_log.Log(gmLog.lWarn, "No configuration definition source specified")
-			# we want to return an error here 
-			# in that case we'll have to raise an exception... can't return
-			# anything else than None from an __init__ method
-			raise TypeError, "No configuration definition source specified !"
-		else:
-			self.__mDefinitionSource = aDefinitionSource
-			if not self.__getDefinitions():
-				raise IOError, "cannot load definitions"
-		
-	#------------------------------------------------------------------------
-	def hasParameter(self, aParameterName = None):
-		return self.__mParameterDefinitions.has_key(aParameterName)
-		
-	#------------------------------------------------------------------------
-	def isValid(self,aParameterName=None,aValue=None):
-		if self.hasParameter(aParameterName):
-			return self.__mParameterDefinitions[aParameterName].isValid(aValue)		
-		else:
-			return 0
-
-	#------------------------------------------------------------------------
-	def getParamType(self, aParameterName = None):
-		if self.hasParameter(aParameterName):
-			return self.__mParameterDefinitions[aParameterName].mType
-
-	#------------------------------------------------------------------------
-	def getParamDescription(self, aParameterName = None):
-		if self.hasParameter(aParameterName):
-			return self.__mParameterDefinitions[aParameterName].mDescription
-						
-	#------------------------------------------------------------------------
-	def __getDefinitions(self):
-		"""get config definitions"""
-
-		# open configuration definition source
-		try:
-			cfgDefSource = gmCfg.cCfgFile(aFile = self.__mDefinitionSource, \
-				flags=gmCfg.cfg_SEARCH_STD_DIRS | gmCfg.cfg_IGNORE_CMD_LINE)
-			# handle all exceptions including 'config file not found'
-		except:
-			exc = sys.exc_info()
-			_log.LogException("Unhandled exception while opening config file [%s]" % self.__mDefinitionSource, exc,verbose=0)
-			return None
-
-		cfgData = cfgDefSource.getCfg()
-		groups = cfgDefSource.getGroups()
-
-		if not '_config_version_' in (groups):
-			_log.Log(gmLog.lWarn, "No configuration definition version defined.")
-			_log.Log(gmLog.lWarn, "Matching definitions to config data is unsafe.")
-			_log.Log(gmLog.lWarn, "Config data will be read-only by default.")
-			self.mVersion = None
-		else:
-			version = cfgDefSource.get('_config_version_', "version")
-			# we don't check for type in order to allow for versions like '1.20.1b'			 
-			self.__mVersion = version
-			_log.Log(gmLog.lInfo, "Found config parameter definition version %s in %s" % (version,self.__mDefinitionSource))
-
-
-		# every group holds one parameter description
-		# group name = parameter name
-		for paramName in groups:
-			# ignore config version group
-			if paramName == '_config_version_':
-				continue
-
-			paramType = cfgDefSource.get(paramName, "type")			
-			if paramType is None:
-				continue
-			
-			# parameter description - might differ from that stored 
-			# in backend tables (cfg_template)
-			paramDescription = cfgDefSource.get(paramName, "description")
-			if paramDescription is None:
-				continue
-
-			validValuesRaw = None
-			# if valid value list is supplied, get it
-			if "validvalue" in (cfgDefSource.getOptions(paramName)):
-				validValuesRaw = cfgDefSource.get(paramName, "validvalues")
-			# transform valid values to a list
-			validVals = None
-			if not validValuesRaw is None:
-				if type(validValuesRaw) == types.ListType:
-					validVals = validValuesRaw
-			
-			# add new entry to parameter definition dictionary
-			self.__mParameterDefinitions
-			self.__mParameterDefinitions[paramName] = ParameterDefinition(paramName,paramType,validVals,paramDescription)
-		return 1
-
-###############################################################################
-# TODO: 
-# -handle backend data modifications using backend notification
-# -method to change/add new parameters
-
-class ConfigData:
-	""" 
-    Base class. Derived classes hold config data for a particular 
-	backend user/workplace combination, config file etc.	    
-	this will contain: 
-		a) config parameter names
-		b) config parameter values
-		c) config information version (must match the version used in ConfigDefinition)
-	"""
-
-	def __init__(self, aType = None):
-		self.type = aType
-		self.mConfigData = {}
-
-# pure virtual methods
-	def GetAllNames(self):
-		pass
-
-	def GetConfigData(self):
-		pass
-
-	def SetConfigData(self):
-		pass    	
-
-	def getRawName(self):
-		pass
-
-	def AddConfigParam(self):
-		pass
-		
-	#---------------------------------------------------------------------
-	def getParamType(self,aParameterName = None):
-		"""
-		Returns the parameter type as found in the data source.
-		"""
-		try:
-			return self.mConfigData[aParameterName][3]
-		except KeyError:
-		# is it possible to have a parameter without type ??
-		# TODO
-			return None
-
-	#---------------------------------------------------------------------
-	def getParamDescription(self,aParameterName = None):
-		"""
-		Returns the parameter type as found in the data source.
-		"""
-		try:
-			return self.mConfigData[aParameterName][4]
-		except KeyError:
-			return None
-
-
-#--------------------------------------------------------------------------
-class ConfigDataDB(ConfigData):
-	""" 
-	Class that holds config data for a particular user/workplace pair 
-	"""
-	# static class variables that hold links to backend and gmCfg
-	# this will be shared by all ConfigDataDB objects
-	# this assumes that there will always be only one backend config source
-	_dbcfg = None
-
-	def __init__(self, aUser = None, aWorkplace = 'xxxDEFAULTxxx'):
-		""" Init DB connection"""
-		ConfigData.__init__(self,"DB")
-		
-		# connect to config database
-		if ConfigDataDB._dbcfg is None:
-			ConfigDataDB._dbcfg = gmCfg.cCfgSQL()
-
-		self.mUser = aUser
-		self.mWorkplace = aWorkplace
-	#---------------------------------------------------------------------
-	def GetConfigData(self, aParameterName = None):
-		"""
-		Gets Config Data for a particular parameter. 
-		Returns parameter value.
-		"""
-		try:
-#			print "param name:", aParameterName
-			name=self.mConfigData[aParameterName][0]
-			cookie = self.mConfigData[aParameterName][1]
-#			print "name:", name
-#			print "cookie.", cookie
-			result = ConfigDataDB._dbcfg.get2 (
-				workplace=self.mWorkplace,
-#				self.mUser,
-				cookie = cookie,
-				option = name,
-				bias = 'user'
-			)
-		except:
-			_log.Log(gmLog.lErr, "Cannot get parameter value for [%s]" % aParameterName )
-			return None
-		return result
-		
-	#---------------------------------------------------------------------
-	def SetConfigData(self, aParameterName, aValue):
-		"""
-		Sets Config Data for a particular parameter. 
-		"""
-		try:
-			name=self.mConfigData[aParameterName][0]
-			cookie = self.mConfigData[aParameterName][1]
-			result=ConfigDataDB._dbcfg.set (
-				workplace = self.mWorkplace,
-#				user = self.mUser,
-				cookie = cookie,
-				option = name,
-				value = aValue,
-			)
-		except:
-			_log.Log(gmLog.lErr, "Cannot set parameter value for [%s]" % aParameterName )
-			return None
-		return 1
-	#---------------------------------------------------------------------
-	# aType is not used so far. Do we need it ?
-	# TODO: maybe we could combine that with SetConfigData (the low level methods in gmCfg do add/update, anyways)
-	def AddConfigParam(self, aParameterName, aType = None ,aValue=None,aDescription = None):
-		"""
-		Adds a new config parameter. 
-		Note: You will have to re-read the cache (call GetAllNames())
-		in order to change this parameter afterwards.
-		"""
-		# make sure that the pameter does not exist yet
-		if self.mConfigData.has_key(aParameterName):
-			return None
-		
-		# now we have to split the parameter name into 
-		# option and cookie part
-		
-		pNameParts  = string.split(aParameterName,".")
-		# check if we have a cookie
-		if pNameParts[-1][0] == '_':
-			cookie = pNameParts[-1][1:]
-			option = string.join(pNameParts[:-1],".")
-		else:
-			cookie = None
-			option = aParameterName
-			
-#		print "[%s, %s]" % (cookie, option)		
-		if option is None:
-			return None
-		# now actually write the new parameter
-		try:
-			result=ConfigDataDB._dbcfg.set (
-				workplace = self.mWorkplace, 
-#				user = self.mUser,
-				cookie = cookie,
-				option = option,
-				value = aValue,
-			)
-		except:
-			_log.Log(gmLog.lErr, "Cannot set parameter value for [%s]" % aParameterName )
-			return None
-		# now we should re-read the name cache in order to have 
-		# consistent data. Since we wont signal the frontend, we will
-		# have to do this manually in the fronend 
-
-		return 1
-	#---------------------------------------------------------------------
-	def getAllNames(self):
-		"""
-		fetch names and parameter data from backend. Returns list of
-		parameter names where cookie and real name are concatenated.
-		Refreshes the parameter cache, too.
-		"""
-		result=ConfigDataDB._dbcfg.getAllParams(self.mUser,self.mWorkplace)
-		if not result:
-			return None
-		else:
-			# gmCfg.getAllParams returns name,cookie, owner, type and description 
-			# of a parameter. 
-			# We combine name + cookie to one single name. If cookie == 'xxxDEFAULTxxx'
-			# we set the last part of the name to "" (an empty part). This
-			# must processed by the ConfigTree so that the empty part is not 
-			# displayed. If the cookie is something else, we mark the cookie part
-			# by a leading "._"
-			mParamNames = []
-			# for param in (result): why???
-			for param in result:
-				name = param[0]
-				cookie = param[1]
-				if cookie == 'xxxDEFAULTxxx':
-					cookie_part = ""
-				else:
-					cookie_part = "._%s" % cookie
-
-				newName = name + cookie_part
-				# store data for every parameter in mConfigData
-				self.mConfigData[newName]=param
-				# add new name to list
-				mParamNames.append(newName)
-#DEBUG		
-#		_log.Log (gmLog.lData, "%s" % self.mConfigData)
-
-		return mParamNames
-
-	#---------------------------------------------------------------------
-	def getRawName(self,aParameterName = None):
-		"""
-		Returns the parameter name without possible cookie part(s).
-		Needed to indentify matching config definition entry.
-		"""
-		try:
-			return self.mConfigData[aParameterName][0]
-		except KeyError:
-			return None
-
-#--------------------------------------------------------------------------
-class ConfigDataFile(ConfigData):
-	""" 
-	Class that holds config data for a particular config file
-	"""
-	def __init__(self, aFilename = None):
-		""" Init config file """
-		ConfigData.__init__(self,"FILE")
-
-		self.filename = aFilename
-		self.__cfgfile = None
-		self.fullPath = None
-				
-		# open config file
-		try:
-			self.__cfgfile = gmCfg.cCfgFile(aFile = self.filename)
-			# this is a little bit ugly, but we need to get the full name of the
-			# file because this depends on the installation/system settings
-			# if no absolute path was specified, we get the config file gnumed
-			# would find first which is what we want usually
-			self.fullPath = self.__cfgfile.cfgName
-
-		except:
-			_log.LogException("Can't open config file !", sys.exc_info(), verbose=0)
-			raise ConstructorError, "ConfigDataFile: couldn't open config file"
-
-	#---------------------------------------------------------------------
-	def GetFullPath(self):
-		""" returns the absolute path to the config file in use"""
-		return self.fullPath
-
-	#---------------------------------------------------------------------
-	def GetConfigData(self, aParameterName = None):
-		"""
-		Gets Config Data for a particular parameter. 
-		Returns parameter value.
-		"""
-		name=self.mConfigData[aParameterName][0]
-		group = self.mConfigData[aParameterName][1]
-		try:
-			result=self.__cfgfile.get(group,name)
-		except:
-			_log.Log(gmLog.lErr, "Cannot get parameter value for [%s]" % aParameterName )
-			return None
-		return result
-		
-	#---------------------------------------------------------------------
-	def SetConfigData(self, aParameterName = None, aValue = None):
-		"""
-		Sets Config Data for a particular parameter. 
-		"""
-		option = self.mConfigData[aParameterName][0]
-		group = self.mConfigData[aParameterName][1]
-		try:
-			result=self.__cfgfile.set(aGroup = group,
-						anOption = option,
-						aValue = aValue)
-			self.__cfgfile.store()
-		except:
-			_log.Log(gmLog.lErr, "Cannot set parameter value for [%s]" % aParameterName )
-			return None
-		return 1
-
-	#---------------------------------------------------------------------
-	def AddConfigParam(self, aParameterName, aType = None ,aValue=None, aDescription =None):
-		"""
-		Adds a new config parameter. 
-		"""
-		pNameParts  = string.split(aParameterName,".")
-		# check if we have a cookie
-		option = pNameParts[-1:][1:]
-		group = string.join(pNameParts[:-1],".")
-		if option is None or group is None:
-			return None
-
-		try:
-			result=self.__cfgfile.set(aGroup = group,
-						anOption = option,
-						aValue = aValue,
-						aComment = aDescription)
-			self.__cfgfile.store()
-		except:
-			_log.Log(gmLog.lErr, "Cannot set parameter value for [%s]" % aParameterName )
-			return None
-		return 1
-
-	#---------------------------------------------------------------------
-	def getAllNames(self):
-		"""
-		fetch names and parameter data from config file. Returns list of
-		parameter names where group and option name are concatenated.
-		"""
-		
-		# this returns name,cookie, owner (TODO), type and description 
-		# of a parameter. 
-		# We combine group + option name to one single name. 
-		groups = self.__cfgfile.getGroups()
-		if len(groups) == 0:
-			return None
-		mParamNames = []		
-		for group in (groups):
-			options = self.__cfgfile.getOptions(group)
-			if len(options) == 0:
-				continue
-			else:
-				for option in (options):			
-					currType=type(self.__cfgfile.get(group,option))
-					if currType in (types.IntType, types.FloatType, types.LongType):
-						myType = 'numeric'
-					elif currType is types.StringType:
-						myType = 'string'
-					elif currType is types.ListType:
-						myType = 'str_array'
-					else:
-					# FIXME: we should raise an exception here or make the entry
-					# read only since we don't know how to handle this entry
-						mType = 'string'
-
-					description = self.__cfgfile.getComment(group,option)
-					if description is []:
-						description = ''
-					else:
-						myDescription = string.join(description,'\n')
-					optionData=[option,group,'',myType,myDescription]
-
-					newName = group + '.' + option
-					self.mConfigData[newName] = optionData
-					mParamNames.append(newName)
-			
-#DEBUG		
-#		_log.Log (gmLog.lData, "%s" % self.mConfigData)
-
-		return mParamNames
-
-	#---------------------------------------------------------------------
-	def getRawName(self,aParameterName = None):
-		"""
-		Returns the parameter name without possible cookie part(s).
-		Needed to indentify matching config definition entry.
-		"""
-		# since CfgFile does not know about cookies, just return 
-		# the parameter name
-
-		return aParameterName
-
-
-#=========================================================================
-def exportDBSet(filename,aUser = None, aWorkplace = 'xxxDEFAULTxxx'):
-	"""
-	Fetches a backend stored set of config options (defined by user and workplace)
-	and returns it as a plain text file.
-	NOTE: This will not write "valid value" information, since this is only
-	hold in config definition files !
-	Returns: 1 for success, 0 if no parameters were found, None on failure.
-	"""
-	try:
-		expConfigSource = ConfigSourceDB("export",aUser,aWorkplace)
-	except:
-		_log.Log(gmLog.lErr, "Cannot open config set [%s@%s]." % (aUser,aWorkplace))
-		return None
-		
-	try:
-		file = open(filename,"w")
-	except:
-		_log.Log(gmLog.lErr, "Cannot open output file %s." % (filename))
-		raise
-		
-	paramList = expConfigSource.getAllParamNames()
-	if paramList is None:
-		_log.Log(gmLog.lInfo, "DB-set [%s,%s]contained no data." % (aUser,aWorkplace))
-		return 0
-	text = ''
-	for param in (paramList):
-		description = expConfigSource.getDescription(param)
-		cType = expConfigSource.getParamType(param)
-		value = expConfigSource.getConfigData(param)
-		# we try to dump human readable types as text, 
-		# all other as a 'pickled' string
-		if cType in ['string','numeric','str_array']:
-			valuestr = value
-		else:
-			valuestr = pickle.dumps(value)
-			
-		file.write( "[%s]\ntype = %s\ndescription = %s\nvalue = %s\n\n" % \
-			(param,cType,description,value))
-	return len(paramList)
-#-------------------------------------------------------------------------
-def importDBSet(filename,aUser = None, aWorkplace = 'xxxDEFAULTxxx'):
-	"""get config definitions from a file exported with 
-	   exportDBSet()."""
-
-	# open configuration definition source
-	try:
-		importFile = gmCfg.cCfgFile(aFile = filename, \
-			flags= gmCfg.cfg_IGNORE_CMD_LINE)
-		# handle all exceptions including 'config file not found'
-	except:
-		exc = sys.exc_info()
-		_log.LogException("Unhandled exception while opening input file [%s]" % filename, exc,verbose=0)
-		return None
-
-	try:
-		importConfigSource = ConfigSourceDB("export",aUser,aWorkplace)
-	except:
-		_log.Log(gmLog.lErr, "Cannot open config set [%s@%s]." % (aUser,aWorkplace))
-		return None
-
-	existingParamList = importConfigSource.getAllParamNames()
-
-	importData = importFile.getCfg()
-	groups = importFile.getGroups()
-	# every group holds one parameter description
-	# group name = parameter name
-	successfully_stored = 0
-	for paramName in groups:
-		# ignore empty parameter names
-		if paramName == "":
-			continue
-		paramType = importFile.get(paramName, "type")			
-		if paramType is None:
-			continue
-
-		# parameter description - might differ from that stored 
-		# in backend tables (cfg_template)
-		paramDescription = importFile.get(paramName, "description")
-		if paramDescription is None:
-			continue
-
-
-		paramValueStr = importFile.get(paramName, "value")
-		if paramDescription is None:
-			continue
-		else:
-			if paramType in ['string','numeric','str_array']:
-				paramValue = eval(repr(paramValueStr))
-			else:
-				paramValue = pickle.loads(paramValueStr)
-		# TODO: check if the parameter already exists with different type
-		if existingParamList is not None and paramName in (existingParamList):
-			if not importConfigSource.getParamType(paramName) == paramType:
-				# if yes, print a warning
-				# you will have to delete that parameter before
-				# storing a different type
-				_log.Log(gmLog.lWarn,
-				"Cannot store config parameter [%s]: different type stored already." % paramName)
-			else:
-				# same type -> store new value	
-				s=importConfigSource.setConfigData(paramName,paramValue)
-				if s is None:
-					_log.Log(gmLog.lWarn, 
-						"Cannot store config parameter [%s] to set [%s@%s]." % (paramName,aUser,aWorkplace))
-				else:
-					successfully_stored = successfully_stored + 1
-
-		else:
-			# add new entry to parameter definition dictionary
-			s=importConfigSource.addConfigParam(paramName,paramType,paramValue,paramDescription)
-			if s is None:
-				_log.Log(gmLog.lWarn, 
-					"Cannot store config parameter [%s] to set [%s@%s]." % (paramName,aUser,aWorkplace))
-			else:
-				successfully_stored = successfully_stored + 1	
-	return successfully_stored
-
-#=============================================================
diff --git a/client/pycommon/gmDateTime.py b/client/pycommon/gmDateTime.py
index 96d118a..06cd3ea 100644
--- a/client/pycommon/gmDateTime.py
+++ b/client/pycommon/gmDateTime.py
@@ -1,3 +1,6 @@
+
+from __future__ import print_function
+
 __doc__ = """
 GNUmed date/time handling.
 
@@ -190,9 +193,10 @@ def init():
 
 	global gmCurrentLocalTimezone
 	gmCurrentLocalTimezone = cFixedOffsetTimezone (
-		offset = (current_local_utc_offset_in_seconds / 60),
+		offset = (current_local_utc_offset_in_seconds // 60),
 		name = current_local_iso_numeric_timezone_string
 	)
+
 #===========================================================================
 # mxDateTime conversions
 #---------------------------------------------------------------------------
@@ -254,7 +258,8 @@ def pydt_strftime(dt=None, format='%Y %b %d  %H:%M.%S', encoding=None, accuracy=
 	if dt is None:
 		if none_str is not None:
 			return none_str
-		dt = pydt_now_here()
+		raise ValueError('must provide <none_str> if <dt>=None is to be dealt with')
+		#dt = pydt_now_here()
 
 	if encoding is None:
 		encoding = gmI18N.get_encoding()
@@ -344,6 +349,7 @@ def pydt_max_here():
 def wx_now_here(wx=None):
 	"""Returns NOW @ HERE (IOW, in the local timezone."""
 	return py_dt2wxDate(py_dt = pydt_now_here(), wx = wx)
+
 #===========================================================================
 # wxPython conversions
 #---------------------------------------------------------------------------
@@ -385,6 +391,7 @@ def py_dt2wxDate(py_dt=None, wx=None):
 	# month, and year at once
 	wxdt = wx.DateTimeFromDMY(py_dt.day, py_dt.month-1, py_dt.year)
 	return wxdt
+
 #===========================================================================
 # interval related
 #---------------------------------------------------------------------------
@@ -1413,6 +1420,7 @@ def str2pydt_matches(str2parse=None, patterns=None):
 	matches.extend(__single_char2py_dt(str2parse))
 	matches.extend(__explicit_offset2py_dt(str2parse))
 
+	# no more with Python3
 	# try mxDT parsers
 	try:
 		date = mxDT.Parser.DateFromString (
@@ -2124,10 +2132,10 @@ class cFuzzyTimestamp:
 		if accuracy == acc_subseconds:
 			return unicode(self.timestamp)
 
-		raise ValueError, '%s.format_accurately(): <accuracy> (%s) must be between 1 and 7' % (
+		raise ValueError('%s.format_accurately(): <accuracy> (%s) must be between 1 and 7' % (
 			self.__class__.__name__,
 			accuracy
-		)
+		))
 	#-----------------------------------------------------------------------
 	def get_mxdt(self):
 		return self.timestamp
@@ -2182,7 +2190,7 @@ if __name__ == '__main__':
 		for tmp in intervals_as_str:
 			intv = str2interval(str_interval = tmp)
 			for acc in _accuracy_strings.keys():
-				print '[%s]: "%s" -> "%s"' % (acc, tmp, format_interval(intv, acc))
+				print ('[%s]: "%s" -> "%s"' % (acc, tmp, format_interval(intv, acc)))
 	#-----------------------------------------------------------------------
 	def test_format_interval_medically():
 
@@ -2249,159 +2257,160 @@ if __name__ == '__main__':
 
 		idx = 1
 		for intv in intervals:
-			print '%s) %s -> %s' % (idx, intv, format_interval_medically(intv))
+			print ('%s) %s -> %s' % (idx, intv, format_interval_medically(intv)))
 			idx += 1
 	#-----------------------------------------------------------------------
 	def test_str2interval():
-		print "testing str2interval()"
-		print "----------------------"
+		print ("testing str2interval()")
+		print ("----------------------")
 
 		for interval_as_str in intervals_as_str:
-			print "input: <%s>" % interval_as_str
-			print "  ==>", str2interval(str_interval=interval_as_str)
+			print ("input: <%s>" % interval_as_str)
+			print ("  ==>", str2interval(str_interval=interval_as_str))
 
 		return True
 	#-------------------------------------------------
 	def test_date_time():
-		print "DST currently in effect:", dst_currently_in_effect
-		print "current UTC offset:", current_local_utc_offset_in_seconds, "seconds"
-		print "current timezone (interval):", current_local_timezone_interval
-		print "current timezone (ISO conformant numeric string):", current_local_iso_numeric_timezone_string
-		print "local timezone class:", cLocalTimezone
-		print ""
+		print ("DST currently in effect:", dst_currently_in_effect)
+		print ("current UTC offset:", current_local_utc_offset_in_seconds, "seconds")
+		print ("current timezone (interval):", current_local_timezone_interval)
+		print ("current timezone (ISO conformant numeric string):", current_local_iso_numeric_timezone_string)
+		print ("local timezone class:", cLocalTimezone)
+		print ("")
 		tz = cLocalTimezone()
-		print "local timezone instance:", tz
-		print " (total) UTC offset:", tz.utcoffset(pyDT.datetime.now())
-		print " DST adjustment:", tz.dst(pyDT.datetime.now())
-		print " timezone name:", tz.tzname(pyDT.datetime.now())
-		print ""
-		print "current local timezone:", gmCurrentLocalTimezone
-		print " (total) UTC offset:", gmCurrentLocalTimezone.utcoffset(pyDT.datetime.now())
-		print " DST adjustment:", gmCurrentLocalTimezone.dst(pyDT.datetime.now())
-		print " timezone name:", gmCurrentLocalTimezone.tzname(pyDT.datetime.now())
-		print ""
-		print "now here:", pydt_now_here()
-		print ""
+		print ("local timezone instance:", tz)
+		print (" (total) UTC offset:", tz.utcoffset(pyDT.datetime.now()))
+		print (" DST adjustment:", tz.dst(pyDT.datetime.now()))
+		print (" timezone name:", tz.tzname(pyDT.datetime.now()))
+		print ("")
+		print ("current local timezone:", gmCurrentLocalTimezone)
+		print (" (total) UTC offset:", gmCurrentLocalTimezone.utcoffset(pyDT.datetime.now()))
+		print (" DST adjustment:", gmCurrentLocalTimezone.dst(pyDT.datetime.now()))
+		print (" timezone name:", gmCurrentLocalTimezone.tzname(pyDT.datetime.now()))
+		print ("")
+		print ("now here:", pydt_now_here())
+		print ("")
 	#-------------------------------------------------
 	def test_str2fuzzy_timestamp_matches():
-		print "testing function str2fuzzy_timestamp_matches"
-		print "--------------------------------------------"
+		print ("testing function str2fuzzy_timestamp_matches")
+		print ("--------------------------------------------")
 
 		val = None
 		while val != 'exit':
 			val = raw_input('Enter date fragment ("exit" quits): ')
 			matches = str2fuzzy_timestamp_matches(str2parse = val)
 			for match in matches:
-				print 'label shown  :', match['label']
-				print 'data attached:', match['data'], match['data'].timestamp
-				print ""
-			print "---------------"
+				print ('label shown  :', match['label'])
+				print ('data attached:', match['data'], match['data'].timestamp)
+				print ("")
+			print ("---------------")
 	#-------------------------------------------------
 	def test_cFuzzyTimeStamp():
-		print "testing fuzzy timestamp class"
-		print "-----------------------------"
+		print ("testing fuzzy timestamp class")
+		print ("-----------------------------")
 
 		ts = mxDT.now()
-		print "mx.DateTime timestamp", type(ts)
-		print "  print ...       :", ts
-		print "  print '%%s' %% ...: %s" % ts
-		print "  str()           :", str(ts)
-		print "  repr()          :", repr(ts)
+		print ("mx.DateTime timestamp", type(ts))
+		print ("  print ...       :", ts)
+		print ("  print '%%s' %% ...: %s" % ts)
+		print ("  str()           :", str(ts))
+		print ("  repr()          :", repr(ts))
 
 		fts = cFuzzyTimestamp()
-		print "\nfuzzy timestamp <%s '%s'>" % ('class', fts.__class__.__name__)
+		print ("\nfuzzy timestamp <%s '%s'>" % ('class', fts.__class__.__name__))
 		for accuracy in range(1,8):
 			fts.accuracy = accuracy
-			print "  accuracy         : %s (%s)" % (accuracy, _accuracy_strings[accuracy])
-			print "  format_accurately:", fts.format_accurately()
-			print "  strftime()       :", fts.strftime('%Y %b %d  %H:%M:%S')
-			print "  print ...        :", fts
-			print "  print '%%s' %% ... : %s" % fts
-			print "  str()            :", str(fts)
-			print "  repr()           :", repr(fts)
+			print ("  accuracy         : %s (%s)" % (accuracy, _accuracy_strings[accuracy]))
+			print ("  format_accurately:", fts.format_accurately())
+			print ("  strftime()       :", fts.strftime('%Y %b %d  %H:%M:%S'))
+			print ("  print ...        :", fts)
+			print ("  print '%%s' %% ... : %s" % fts)
+			print ("  str()            :", str(fts))
+			print ("  repr()           :", repr(fts))
 			raw_input('press ENTER to continue')
 	#-------------------------------------------------
 	def test_get_pydt():
-		print "testing platform for handling dates before 1970"
-		print "-----------------------------------------------"
+		print ("testing platform for handling dates before 1970")
+		print ("-----------------------------------------------")
 		ts = mxDT.DateTime(1935, 4, 2)
 		fts = cFuzzyTimestamp(timestamp=ts)
-		print "fts           :", fts
-		print "fts.get_pydt():", fts.get_pydt()
+		print ("fts           :", fts)
+		print ("fts.get_pydt():", fts.get_pydt())
 	#-------------------------------------------------
 	def test_calculate_apparent_age():
 		# test leap year glitches
 		start = pydt_now_here().replace(year = 2000).replace(month = 2).replace(day = 29)
 		end = pydt_now_here().replace(year = 2012).replace(month = 2).replace(day = 27)
-		print "start is leap year: 29.2.2000"
-		print " ", calculate_apparent_age(start = start, end = end)
-		print " ", format_apparent_age_medically(calculate_apparent_age(start = start))
+		print ("start is leap year: 29.2.2000")
+		print (" ", calculate_apparent_age(start = start, end = end))
+		print (" ", format_apparent_age_medically(calculate_apparent_age(start = start)))
 
 		start = pydt_now_here().replace(month = 10).replace(day = 23).replace(year = 1974)
 		end = pydt_now_here().replace(year = 2012).replace(month = 2).replace(day = 29)
-		print "end is leap year: 29.2.2012"
-		print " ", calculate_apparent_age(start = start, end = end)
-		print " ", format_apparent_age_medically(calculate_apparent_age(start = start))
+		print ("end is leap year: 29.2.2012")
+		print (" ", calculate_apparent_age(start = start, end = end))
+		print (" ", format_apparent_age_medically(calculate_apparent_age(start = start)))
 
 		start = pydt_now_here().replace(year = 2000).replace(month = 2).replace(day = 29)
 		end = pydt_now_here().replace(year = 2012).replace(month = 2).replace(day = 29)
-		print "start is leap year: 29.2.2000"
-		print "end is leap year: 29.2.2012"
-		print " ", calculate_apparent_age(start = start, end = end)
-		print " ", format_apparent_age_medically(calculate_apparent_age(start = start))
+		print ("start is leap year: 29.2.2000")
+		print ("end is leap year: 29.2.2012")
+		print (" ", calculate_apparent_age(start = start, end = end))
+		print (" ", format_apparent_age_medically(calculate_apparent_age(start = start)))
 
-		print "leap year tests worked"
+		print ("leap year tests worked")
 
 		start = pydt_now_here().replace(month = 10).replace(day = 23).replace(year = 1974)
-		print calculate_apparent_age(start = start)
-		print format_apparent_age_medically(calculate_apparent_age(start = start))
+		print (calculate_apparent_age(start = start))
+		print (format_apparent_age_medically(calculate_apparent_age(start = start)))
 
 		start = pydt_now_here().replace(month = 3).replace(day = 13).replace(year = 1979)
-		print calculate_apparent_age(start = start)
-		print format_apparent_age_medically(calculate_apparent_age(start = start))
+		print (calculate_apparent_age(start = start))
+		print (format_apparent_age_medically(calculate_apparent_age(start = start)))
 
 		start = pydt_now_here().replace(month = 2, day = 2).replace(year = 1979)
 		end = pydt_now_here().replace(month = 3).replace(day = 31).replace(year = 1979)
-		print calculate_apparent_age(start = start, end = end)
+		print (calculate_apparent_age(start = start, end = end))
 
 		start = pydt_now_here().replace(month = 7, day = 21).replace(year = 2009)
-		print format_apparent_age_medically(calculate_apparent_age(start = start))
+		print (format_apparent_age_medically(calculate_apparent_age(start = start)))
 
-		print "-------"
+		print ("-------")
 		start = pydt_now_here().replace(month = 1).replace(day = 23).replace(hour = 12).replace(minute = 11).replace(year = 2011)
-		print calculate_apparent_age(start = start)
-		print format_apparent_age_medically(calculate_apparent_age(start = start))
+		print (calculate_apparent_age(start = start))
+		print (format_apparent_age_medically(calculate_apparent_age(start = start)))
 	#-------------------------------------------------
 	def test_str2pydt():
-		print "testing function str2pydt_matches"
-		print "---------------------------------"
+		print ("testing function str2pydt_matches")
+		print ("---------------------------------")
 
 		val = None
 		while val != 'exit':
 			val = raw_input('Enter date fragment ("exit" quits): ')
 			matches = str2pydt_matches(str2parse = val)
 			for match in matches:
-				print 'label shown  :', match['label']
-				print 'data attached:', match['data']
-				print ""
-			print "---------------"
+				print ('label shown  :', match['label'])
+				print ('data attached:', match['data'])
+				print ("")
+			print ("---------------")
 	#-------------------------------------------------
 	def test_pydt_strftime():
 		dt = pydt_now_here()
-		print pydt_strftime(dt, '-(%Y %b %d)-')
-		print pydt_strftime(dt)
-		print pydt_strftime(dt, accuracy = acc_days)
-		print pydt_strftime(dt, accuracy = acc_minutes)
-		print pydt_strftime(dt, accuracy = acc_seconds)
+		print (pydt_strftime(dt, '-(%Y %b %d)-'))
+		print (pydt_strftime(dt))
+		print (pydt_strftime(dt, accuracy = acc_days))
+		print (pydt_strftime(dt, accuracy = acc_minutes))
+		print (pydt_strftime(dt, accuracy = acc_seconds))
 		dt = dt.replace(year = 1899)
-		print pydt_strftime(dt)
-		print pydt_strftime(dt, accuracy = acc_days)
-		print pydt_strftime(dt, accuracy = acc_minutes)
-		print pydt_strftime(dt, accuracy = acc_seconds)
+		print (pydt_strftime(dt))
+		print (pydt_strftime(dt, accuracy = acc_days))
+		print (pydt_strftime(dt, accuracy = acc_minutes))
+		print (pydt_strftime(dt, accuracy = acc_seconds))
 	#-------------------------------------------------
 	def test_is_leap_year():
 		for year in range(1995, 2017):
-			print year, "leaps:", is_leap_year(year)
+			print (year, "leaps:", is_leap_year(year))
+
 	#-------------------------------------------------
 	# GNUmed libs
 	gmI18N.activate_locale()
@@ -2417,8 +2426,8 @@ if __name__ == '__main__':
 	#test_format_interval()
 	#test_format_interval_medically()
 	#test_str2pydt()
-	test_pydt_strftime()
+	#test_pydt_strftime()
 	#test_calculate_apparent_age()
-	#test_is_leap_year()
+	test_is_leap_year()
 
 #===========================================================================
diff --git a/client/pycommon/gmDispatcher.py b/client/pycommon/gmDispatcher.py
index 4fd6038..f0dd6af 100644
--- a/client/pycommon/gmDispatcher.py
+++ b/client/pycommon/gmDispatcher.py
@@ -1,4 +1,7 @@
-"""GNUmed client internal signal handling.
+
+from __future__ import print_function
+
+__doc__ = """GNUmed client internal signal handling.
 
 # this code has been written by Patrick O'Brien <pobrien at orbtech.com>
 # downloaded from http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/87056
@@ -69,33 +72,31 @@ def connect(receiver=None, signal=Any, sender=Any, weak=1):
 	If sender is Any, receiver will receive signal from any sender.
 	If signal is Any, receiver will receive any signal from sender.
 	If sender is None, receiver will receive signal from anonymous.
-	If signal is Any and sender is None, receiver will receive any 
-		signal from anonymous.
-	If signal is Any and sender is Any, receiver will receive any 
-		signal from any sender.
+	If signal is Any and sender is None, receiver will receive any signal from anonymous.
+	If signal is Any and sender is Any, receiver will receive any signal from any sender.
 	If weak is true, weak references will be used.
 
 	ADDITIONAL gnumed specific documentation:
-			this dispatcher is not designed with a gui single threaded event
-			loop in mind.
-			when connecting to a receiver that may eventually make calls to			gui objects	 such as wxWindows objects, it is highly recommended that any
-	such calls be wrapped in wxCallAfter() e.g.
-		def receiveSignal(self, **args):
-				self._callsThatDoNotTriggerGuiUpdates()
-				self.data = processArgs(args)
-				wxCallAfter( self._callsThatTriggerGuiUpdates() )
-
-		since it is likely data change occurs before the signalling,
-		it would probably look more simply like:
-
-		def receiveSignal(self, **args):
-				wxCallAfter(self._updateUI() )
-
-		def _updateUI(self):
-				# your code that reads data
-
-		Especially if the widget can get a reference to updated data through
-		a global reference, such as via gmCurrentPatient.
+
+	this dispatcher is not designed with a gui single threaded event loop in mind.
+
+	when connecting to a receiver that may eventually make calls to gui objects such as wxWindows objects, it is highly recommended that any such calls be wrapped in wxCallAfter() e.g.
+
+	def receiveSignal(self, **args):
+		self._callsThatDoNotTriggerGuiUpdates()
+		self.data = processArgs(args)
+		wxCallAfter( self._callsThatTriggerGuiUpdates() )
+
+	since it is likely data change occurs before the signalling, it would probably look more simply like:
+
+	def receiveSignal(self, **args):
+		wxCallAfter(self._updateUI() )
+
+	def _updateUI(self):
+		# your code that reads data
+
+	Especially if the widget can get a reference to updated data through
+	a global reference, such as via gmCurrentPatient.
 """
 	if receiver is None:
 		raise ValueError('gmDispatcher.connect(): must define <receiver>')
@@ -110,7 +111,7 @@ def connect(receiver=None, signal=Any, sender=Any, weak=1):
 		receiver = safeRef(receiver)
 	senderkey = id(sender)
 	signals = {}
-	if connections.has_key(senderkey):
+	if senderkey in connections:
 		signals = connections[senderkey]
 	else:
 		connections[senderkey] = signals
@@ -126,7 +127,7 @@ def connect(receiver=None, signal=Any, sender=Any, weak=1):
 			except:
 				pass
 	receivers = []
-	if signals.has_key(signal):
+	if signal in signals:
 		receivers = signals[signal]
 	else:
 		signals[signal] = receivers
@@ -150,13 +151,13 @@ def disconnect(receiver, signal=Any, sender=Any, weak=1):
 		receivers = connections[senderkey][signal]
 	except KeyError:
 		_log.error('no receivers for signal %(sig)s from sender %(sender)s', {'sig': repr(signal), 'sender': sender})
-		print 'DISPATCHER ERROR: no receivers for signal %s from sender %s' % (repr(signal), sender)
+		print('DISPATCHER ERROR: no receivers for signal %s from sender %s' % (repr(signal), sender))
 		return
 	try:
 		receivers.remove(receiver)
 	except ValueError:
 		_log.error('receiver [%(rx)s] not connected to signal [%(sig)s] from [%(sender)s]', {'rx': receiver, 'sig': repr(signal), 'sender': sender})
-		print "DISPATCHER ERROR: receiver [%s] not connected to signal [%s] from [%s]" % (receiver, repr(signal), sender)
+		print("DISPATCHER ERROR: receiver [%s] not connected to signal [%s] from [%s]" % (receiver, repr(signal), sender))
 	_cleanupConnections(senderkey, signal)
 #---------------------------------------------------------------------
 def send(signal=None, sender=None, **kwds):
@@ -223,9 +224,9 @@ def safeRef(object):
 			# Keep track of these instances for lookup by disconnect().
 			selfkey = object.im_self
 			funckey = object.im_func
-			if not _boundMethods.has_key(selfkey):
+			if selfkey not in _boundMethods:
 				_boundMethods[selfkey] = weakref.WeakKeyDictionary()
-			if not _boundMethods[selfkey].has_key(funckey):
+			if funckey not in _boundMethods[selfkey]:
 				_boundMethods[selfkey][funckey] = \
 				BoundMethodWeakref(boundMethod=object)
 			return _boundMethods[selfkey][funckey]
@@ -285,7 +286,7 @@ def _call(receiver, **kwds):
 		acceptable_args = fc.co_varnames[0:fc.co_argcount]
 	else:
 		_log.error('<%(rx)s> must be instance, method or function', {'rx': str(receiver)})
-		print 'DISPATCHER ERROR: _call(): <%s> must be instance, method or function' % str(receiver)
+		print('DISPATCHER ERROR: _call(): <%s> must be instance, method or function' % str(receiver))
 	if not (fc.co_flags & 8):
 		# fc does not have a **kwds type parameter, therefore 
 		# remove unacceptable arguments.
@@ -294,7 +295,7 @@ def _call(receiver, **kwds):
 				del kwds[arg]
 
 	if __execute_in_main_thread is None:
-		print 'DISPATCHER problem: no main-thread executor available'
+		print('DISPATCHER problem: no main-thread executor available')
 		return receiver(**kwds)
 
 	# if a cross-thread executor is set
diff --git a/client/pycommon/gmExceptions.py b/client/pycommon/gmExceptions.py
index f8bdb2f..9688fdf 100644
--- a/client/pycommon/gmExceptions.py
+++ b/client/pycommon/gmExceptions.py
@@ -1,6 +1,5 @@
 ############################################################################
-#
-# gmExceptions - classes for exceptions gnumed modules may throw
+# gmExceptions - classes for exceptions GNUmed modules may throw
 # --------------------------------------------------------------------------
 #
 # @author: Dr. Horst Herb
@@ -39,14 +38,6 @@ class AccessDenied(Exception):
 		return txt
 
 #------------------------------------------------------------
-class DatabaseObjectInUseError(Exception):
-	def __init__(self, msg):
-		self.errmsg = msg
-
-	def __str__(self):
-		return self.errmsg
-
-
 class ConnectionError(Exception):
 	#raised whenever the database backend connection fails
 	def __init__(self, errmsg):
@@ -55,35 +46,6 @@ class ConnectionError(Exception):
 	def __str__(self):
 		return self.errmsg
 
-class ConfigError(Exception):
-	#raised whenever a configuration error occurs
-	def __init__(self, errmsg):
-		self.errmsg=errmsg
-
-	def __str__(self):
-		return self.errmsg
-
-
-
-class NoGuiError(Exception):
-	def __init__(self, errmsg):
-		self.errmsg=errmsg
-
-	def __str__(self):
-		return self.errmsg
-
-
-class PureVirtualFunction(Exception):
-	#raised whenever the database backend connection fails
-	def __init__(self, errmsg=None):
-		if errmsg is not None:
-			self.errmsg=errmsg
-		else:
-			self.errmsg="Attempt to call a pure virtual function!"
-
-	def __str__(self):
-		return self.errmsg
-
 #------------------------------------------------------------
 # constructor errors
 class ConstructorError(Exception):
@@ -107,17 +69,4 @@ class NoSuchBusinessObjectError(ConstructorError):
 	def __str__(self):
 		return self.errmsg
 
-#------------------------------------------------------------
-class InvalidInputError(Exception):
-	"""Raised by business layers when an attempt is made to input
-	invalid data"""
-	def __init__(self, errmsg = None):
-		if errmsg is None:
-			self.errmsg = "%s.__init__() failed" % self.__class__.__name__
-		else:
-			self.errmsg = errmsg
-
-	def __str__(self):
-		return self.errmsg
-
 #=====================================================================
diff --git a/client/pycommon/gmGuiBroker.py b/client/pycommon/gmGuiBroker.py
index 6f261c1..d598f77 100644
--- a/client/pycommon/gmGuiBroker.py
+++ b/client/pycommon/gmGuiBroker.py
@@ -1,4 +1,7 @@
-"""GNUMed GUI element brokerage
+
+from __future__ import print_function
+
+__doc__ = """GNUmed GUI element brokerage
 
 This module provides wrappers for the equivalent of global
 variables needed for a gnumed GUI client interface
@@ -7,10 +10,7 @@ variables needed for a gnumed GUI client interface
 @version: 0.2
 @copyright: GPL v2 or later
 """
-#-----------------------------------------------------------
-# $Source: /home/ncq/Projekte/cvs2git/vcs-mirror/gnumed/gnumed/client/pycommon/gmGuiBroker.py,v $
-# $Id: gmGuiBroker.py,v 1.4 2004-06-20 15:44:28 ncq Exp $
-__version__ = "$Revision: 1.4 $"
+
 __author__ = "H.Herb <hherb at gnumed.net>, H.Berger <Hilmar.Berger at gmx.de>"
 #===========================================================
 if __name__ == '__main__':
@@ -54,7 +54,7 @@ class GuiBroker:
 		if not key:
 		# create a new sequential key that doesn't exist yet
 			key = GuiBroker.__keycounter + 1
-			while GuiBroker.__objects.has_key(key):
+			while key in GuiBroker.__objects:
 				key +=1
 		GuiBroker.__keycounter = key
 		GuiBroker.__objects[key]=widget
@@ -67,7 +67,7 @@ class GuiBroker:
 		return GuiBroker.__objects[key]
 
 	def has_key( self, key):
-		return GuiBroker.__objects.has_key(key)
+		return key in GuiBroker.__objects
 
 
 
@@ -100,99 +100,69 @@ class GuiBroker:
 		return self.addobject(object, key)
 
 #===========================================================
-# you can test this module by invoking it as main program
 if __name__ == "__main__":
-    print '>>> gmGuiBroker.GuiBroker test'
-    test = GuiBroker()
 
-    print '>>> test.addobject("something", 3)'
-    var = test.addobject("something", 3)
-    print var, "\n"
+	import sys
 
-    print '>>> test.addobject("something else without a specified key")'
-    var = test.addobject("something else without a specified key")
-    print var, "\n"
+	if len(sys.argv) < 2:
+		sys.exit()
 
-    print '>>> test.addobject(test)'
-    testreference = test.addobject(test)
-    print testreference, "\n"
+	if sys.argv[1] != u'test':
+		sys.exit()
 
-    print '>>> test.addobject(100, "hundred)'
-    var = test.addobject(100, "hundred")
-    print var, "\n"
+	# you can test this module by invoking it as main program
+	print('>>> gmGuiBroker.GuiBroker test')
+	test = GuiBroker()
 
-    print ">>> test.keylist()"
-    var = test.keylist()
-    print var, "\n"
+	print('>>> test.addobject("something", 3)')
+	var = test.addobject("something", 3)
+	print(var, "\n")
 
-    print ">>> test.valuelist()"
-    var = test.valuelist()
-    print var, "\n"
+	print('>>> test.addobject("something else without a specified key")')
+	var = test.addobject("something else without a specified key")
+	print(var, "\n")
 
-    print ">>> test.itemlist()"
-    var = test.itemlist()
-    print var, "\n"
+	print('>>> test.addobject(test)')
+	testreference = test.addobject(test)
+	print(testreference, "\n")
 
-    print ">>> test[3]"
-    var = test[3]
-    print var, "\n"
+	print('>>> test.addobject(100, "hundred)')
+	var = test.addobject(100, "hundred")
+	print(var, "\n")
 
-    print ">>> test[testreference].getobject('hundred')"
-    var = test[testreference].getobject('hundred')
-    print var, "\n"
+	print(">>> test.keylist()")
+	var = test.keylist()
+	print(var, "\n")
 
-    print ">>> var = test[testreference]"
-    var = test[testreference]
-    print var, "\n"
+	print(">>> test.valuelist()")
+	var = test.valuelist()
+	print(var, "\n")
 
-    print ">>> var = var['hundred']"
-    var = var['hundred']
-    print var, "\n"
+	print(">>> test.itemlist()")
+	var = test.itemlist()
+	print(var, "\n")
 
-    print '>>> try: test.addobject["duplicate key", 3]'
-    print '>>> except KeyError: print "Duplicate keys not allowed!"'
-    try: test["duplicate key", 3]
-    except KeyError: print "Duplicate keys not allowed!"
+	print(">>> test[3]")
+	var = test[3]
+	print(var, "\n")
 
-    print ">>> test['key']='value'"
-    test['key']='value'
-    print test['key']
+	print(">>> test[testreference].getobject('hundred')")
+	var = test[testreference].getobject('hundred')
+	print(var, "\n")
 
-#===========================================================
-# $Log: gmGuiBroker.py,v $
-# Revision 1.4  2004-06-20 15:44:28  ncq
-# - we need to be more careful in pleasing epydoc
-#
-# Revision 1.3  2004/06/20 06:49:21  ihaywood
-# changes required due to Epydoc's OCD
-#
-# Revision 1.2  2004/03/10 00:14:04  ncq
-# - fix imports
-#
-# Revision 1.1  2004/02/25 09:30:13  ncq
-# - moved here from python-common
-#
-# Revision 1.8  2003/11/17 10:56:36  sjtan
-#
-# synced and commiting.
-#
-# Revision 1.1  2003/10/23 06:02:39  sjtan
-#
-# manual edit areas modelled after r.terry's specs.
-#
-# Revision 1.7  2003/02/09 11:48:59  ncq
-# - just some silly cvs keyword
-#
-# Revision 1.6  2003/02/09 09:41:57  sjtan
-#
-# clean up new code, make it less intrusive.
-#
-# Revision 1.5  2003/01/16 14:45:03  ncq
-# - debianized
-#
-# Revision 1.4  2003/01/12 00:20:04  ncq
-# - fixed __author__
-#
-# Revision 1.3  2003/01/12 00:17:44  ncq
-# - fixed typo, added CVS keywords
-#
+	print(">>> var = test[testreference]")
+	var = test[testreference]
+	print(var, "\n")
+
+	print(">>> var = var['hundred']")
+	var = var['hundred']
+	print(var, "\n")
+
+	print('>>> try: test.addobject["duplicate key", 3]')
+	print('>>> except KeyError: print("Duplicate keys not allowed!"')
+	try: test["duplicate key", 3]
+	except KeyError: print("Duplicate keys not allowed!")
+
+	print(">>> test['key']='value'")
+	test['key']='value'
+	print(test['key'])
diff --git a/client/pycommon/gmHooks.py b/client/pycommon/gmHooks.py
index 1b0f9a5..4523987 100644
--- a/client/pycommon/gmHooks.py
+++ b/client/pycommon/gmHooks.py
@@ -25,6 +25,7 @@ import os
 import sys
 import stat
 import logging
+import io
 
 
 # GNUmed libs
@@ -89,8 +90,8 @@ def import_hook_module(reimport=False):
 
 	if not os.access(full_script, os.F_OK):
 		_log.warning('creating default hook script')
-		f = open(full_script, 'w')
-		f.write("""
+		f = io.open(full_script, mode = u'wt', encoding = u'utf8')
+		f.write(u"""
 # known hooks:
 #  %s
 
@@ -130,7 +131,7 @@ def run_script(hook=None):
 
 	try:
 		tmp = gmTools.import_module_from_directory(script_path, script_name)
-	except StandardError:
+	except Exception:
 		_log.exception('cannot import hook script')
 		return False
 
@@ -164,7 +165,7 @@ def run_hook_script(hook=None):
 
 	try:
 		hook_module.run_script(hook = hook)
-	except StandardError:
+	except Exception:
 		_log.exception('error running hook script for [%s]', hook)
 		gmDispatcher.send (
 			signal = u'statustext',
@@ -190,6 +191,12 @@ def run_hook_script(hook=None):
 # ========================================================================
 if __name__ == '__main__':
 
+	if len(sys.argv) < 2:
+		sys.exit()
+
+	if sys.argv[1] != u'test':
+		sys.exit()
+
 	run_hook_script(hook = 'shutdown-post-GUI')
 	run_hook_script(hook = 'invalid hook')
 
diff --git a/client/pycommon/gmI18N.py b/client/pycommon/gmI18N.py
index 6294f45..4aed585 100644
--- a/client/pycommon/gmI18N.py
+++ b/client/pycommon/gmI18N.py
@@ -1,4 +1,7 @@
-"""GNUmed client internationalization/localization.
+
+from __future__ import print_function
+
+__doc__ = """GNUmed client internationalization/localization.
 
 All i18n/l10n issues should be handled through this modules.
 
@@ -53,8 +56,14 @@ __license__ = "GPL v2 or later (details at http://www.gnu.org)"
 
 
 # stdlib
-import sys, os.path, os, re as regex, locale, gettext, logging, codecs
-
+import sys
+import os.path
+import os
+import locale
+import gettext
+import logging
+import codecs
+import re as regex
 
 _log = logging.getLogger('gm.i18n')
 
@@ -236,7 +245,6 @@ def activate_locale():
 	"""Get system locale from environment."""
 	global system_locale
 
-	# logging state of affairs
 	__log_locale_settings('unmodified startup locale settings (should be [C])')
 
 	# activate user-preferred locale
@@ -255,7 +263,6 @@ def activate_locale():
 	except:
 		_log.exception('error activating user-default locale')
 
-	# logging state of affairs
 	__log_locale_settings('locale settings after activating user-default locale')
 
 	# did we find any locale setting ? assume en_EN if not
@@ -325,7 +332,7 @@ def install_domain(domain=None, language=None, prefer_local_catalog=False):
 	# - $(<script-name>_DIR)/
 	env_key = "%s_DIR" % os.path.splitext(os.path.basename(sys.argv[0]))[0].upper()
 	_log.debug('looking at ${%s}' % env_key)
-	if os.environ.has_key(env_key):
+	if env_key in os.environ:
 		loc_dir = os.path.abspath(os.path.join(os.environ[env_key], 'po'))
 		_log.debug('${%s} = "%s" -> [%s]' % (env_key, os.environ[env_key], loc_dir))
 		candidates.append(loc_dir)
@@ -419,6 +426,7 @@ def get_encoding():
 		_encoding_mismatch_already_logged = True
 
 	return locale.getpreferredencoding(do_setlocale=False)
+
 #===========================================================================
 # Main
 #---------------------------------------------------------------------------
@@ -451,20 +459,20 @@ if __name__ == "__main__":
 
 		]
 		for cands in candidates:
-			print cands[0], u'<vs>', cands[1], '=', locale.strcoll(cands[0], cands[1])
-#			print cands[1], u'<vs>', cands[0], '=', locale.strcoll(cands[1], cands[0])
+			print(cands[0], u'<vs>', cands[1], '=', locale.strcoll(cands[0], cands[1]))
+#			print(cands[1], u'<vs>', cands[0], '=', locale.strcoll(cands[1], cands[0]))
 
 	#----------------------------------------------------------------------
-	print "======================================================================"
-	print "GNUmed i18n"
-	print ""
-	print "authors:", __author__
-	print "license:", __license__
-	print "======================================================================"
+	print("======================================================================")
+	print("GNUmed i18n")
+	print("")
+	print("authors:", __author__)
+	print("license:", __license__)
+	print("======================================================================")
 
 	activate_locale()
-	print "system locale: ", system_locale, "; levels:", system_locale_level
-	print "likely encoding:", get_encoding()
+	print("system locale: ", system_locale, "; levels:", system_locale_level)
+	print("likely encoding:", get_encoding())
 
 	if len(sys.argv) > 1:
 		install_domain(domain = sys.argv[2])
@@ -481,6 +489,3 @@ if __name__ == "__main__":
 	tmp = _('Translate this or i18n into <en_EN> will not work properly !') #
 	# ********************************************************************* #
 	# ********************************************************************* #
-
-#=====================================================================
-
diff --git a/client/pycommon/gmLog2.py b/client/pycommon/gmLog2.py
index e63b8a5..0697db6 100644
--- a/client/pycommon/gmLog2.py
+++ b/client/pycommon/gmLog2.py
@@ -47,6 +47,7 @@ __license__ = "GPL v2 or later (details at http://www.gnu.org)"
 import logging
 import sys
 import os
+import io
 import codecs
 import locale
 import datetime as pydt
@@ -256,7 +257,7 @@ def __setup_logging():
 	else:
 		fmt = u'%(asctime)s  %(levelname)-8s  %(name)s (%(pathname)s::%(funcName)s() #%(lineno)d): %(message)s'
 
-	_logfile = codecs.open(filename = _logfile_name, mode = 'wb', encoding = 'utf8', errors = 'replace')
+	_logfile = io.open(_logfile_name, mode = 'wt', encoding = 'utf8', errors = 'replace')
 
 	logging.basicConfig (
 		format = fmt,
@@ -297,11 +298,11 @@ def __get_logfile_name():
 			_logfile_name = os.path.abspath(os.path.expanduser(os.path.join(dir_name, file_name)))
 			return True
 
-	# else store it in ~/.gm-logs/def_log_basename/default_logfile_name
-	dir_name = os.path.expanduser(os.path.join('~', '.gnumed-logs', def_log_basename))
+	# else store it in ~/.gnumed/logs/def_log_basename/default_logfile_name
+	dir_name = os.path.expanduser(os.path.join('~', '.gnumed', 'logs', def_log_basename))
 	try:
 		os.makedirs(dir_name)
-	except OSError, e:
+	except OSError as e:
 		if (e.errno == 17) and not os.path.isdir(dir_name):
 			raise
 
diff --git a/client/pycommon/gmLoginInfo.py b/client/pycommon/gmLoginInfo.py
index f21d35a..8eb8645 100644
--- a/client/pycommon/gmLoginInfo.py
+++ b/client/pycommon/gmLoginInfo.py
@@ -154,4 +154,13 @@ class LoginInfo:
 
 #====================================================================
 if __name__ == "__main__" :
-	print "Please somebody write a module test function here!"
+
+	import sys
+
+	if len(sys.argv) < 2:
+		sys.exit()
+
+	if sys.argv[1] != u'test':
+		sys.exit()
+
+	print("Please somebody write a module test function here!")
diff --git a/client/pycommon/gmMatchProvider.py b/client/pycommon/gmMatchProvider.py
index b42cb6f..0fdf665 100644
--- a/client/pycommon/gmMatchProvider.py
+++ b/client/pycommon/gmMatchProvider.py
@@ -1,4 +1,5 @@
-"""Base classes for match providers.
+
+__doc__ = """Base classes for match providers.
 
 They are used by business objects to give
 phrasewheels the ability to guess phrases.
@@ -6,16 +7,18 @@ phrasewheels the ability to guess phrases.
 Copyright (C) GNUMed developers
 license: GPL v2 or later
 """
-__version__ = "$Revision: 1.34 $"
 __author__  = "K.Hilbert <Karsten.Hilbert at gmx.net>, I.Haywood <ihaywood at gnu.org>, S.J.Tan <sjtan at bigpond.com>"
 
 # std lib
-import re as regex
+import sys
 import logging
+import re as regex
 import datetime as pydt
 
 
 # GNUmed
+if __name__ == "__main__":
+	sys.path.insert(0, '../../')
 from Gnumed.pycommon import gmPG2
 
 
@@ -568,8 +571,7 @@ class cMatchProvider_SQL2(cMatchProvider):
 
 		# none found whatsoever
 		return (False, [])
+
 #================================================================
 if __name__ == '__main__':
 	pass
-
-#================================================================
diff --git a/client/pycommon/gmMimeLib.py b/client/pycommon/gmMimeLib.py
index 5e65f3f..c773ec5 100644
--- a/client/pycommon/gmMimeLib.py
+++ b/client/pycommon/gmMimeLib.py
@@ -14,17 +14,21 @@ import mimetypes
 import subprocess
 import shutil
 import logging
+import io
 
 
 # GNUmed
 if __name__ == '__main__':
 	sys.path.insert(0, '../../')
-import gmShellAPI, gmTools, gmCfg2
+import gmShellAPI
+import gmTools
+import gmCfg2
 
 
 _log = logging.getLogger('gm.docs')
+
 #=======================================================================================
-def guess_mimetype(aFileName = None):
+def guess_mimetype(filename = None):
 	"""Guess mime type of arbitrary file.
 
 	filenames are supposed to be in Unicode
@@ -35,19 +39,19 @@ def guess_mimetype(aFileName = None):
 	try:
 		import extractor
 		xtract = extractor.Extractor()
-		props = xtract.extract(filename = aFileName)
+		props = xtract.extract(filename = filename)
 		for prop, val in props:
 			if (prop == 'mimetype') and (val != worst_case):
 				return val
 	except ImportError:
-		_log.exception('Python wrapper for libextractor not installed.')
+		_log.debug('module <extractor> (python wrapper for libextractor) not installed')
 
 	ret_code = -1
 
 	# 2) use "file" system command
 	#    -i get mime type
 	#    -b don't display a header
-	mime_guesser_cmd = u'file -i -b "%s"' % aFileName
+	mime_guesser_cmd = u'file -i -b "%s"' % filename
 	# this only works on POSIX with 'file' installed (which is standard, however)
 	# it might work on Cygwin installations
 	aPipe = os.popen(mime_guesser_cmd.encode(sys.getfilesystemencoding()), 'r')
@@ -59,12 +63,12 @@ def guess_mimetype(aFileName = None):
 		if ret_code is None:
 			_log.debug('[%s]: <%s>' % (mime_guesser_cmd, pipe_output))
 			if pipe_output not in [u'', worst_case]:
-				return pipe_output
+				return pipe_output.split(u';')[0].strip()
 		else:
 			_log.error('[%s] on %s (%s): failed with exit(%s)' % (mime_guesser_cmd, os.name, sys.platform, ret_code))
 
 	# 3) use "extract" shell level libextractor wrapper
-	mime_guesser_cmd = 'extract -p mimetype "%s"' % aFileName
+	mime_guesser_cmd = 'extract -p mimetype "%s"' % filename
 	aPipe = os.popen(mime_guesser_cmd.encode(sys.getfilesystemencoding()), 'r')
 	if aPipe is None:
 		_log.debug("cannot open pipe to [%s]" % mime_guesser_cmd)
@@ -85,11 +89,12 @@ def guess_mimetype(aFileName = None):
 	_log.info("OS level mime detection failed, falling back to built-in magic")
 
 	import gmMimeMagic
-	mime_type = gmTools.coalesce(gmMimeMagic.file(aFileName), worst_case)
+	mime_type = gmTools.coalesce(gmMimeMagic.file(filename), worst_case)
 	del gmMimeMagic
 
-	_log.debug('"%s" -> <%s>' % (aFileName, mime_type))
+	_log.debug('"%s" -> <%s>' % (filename, mime_type))
 	return mime_type
+
 #-----------------------------------------------------------------------------------
 def get_viewer_cmd(aMimeType = None, aFileName = None, aToken = None):
 	"""Return command for viewer for this mime type complete with this file"""
@@ -107,6 +112,7 @@ def get_viewer_cmd(aMimeType = None, aFileName = None, aToken = None):
 	_log.debug("<%s> viewer: [%s]" % (aMimeType, viewer))
 
 	return viewer
+
 #-----------------------------------------------------------------------------------
 def get_editor_cmd(mimetype=None, filename=None):
 
@@ -124,6 +130,7 @@ def get_editor_cmd(mimetype=None, filename=None):
 	_log.debug("<%s> editor: [%s]" % (mimetype, editor))
 
 	return editor
+
 #-----------------------------------------------------------------------------------
 def guess_ext_by_mimetype(mimetype=''):
 	"""Return file extension based on what the OS thinks a file of this mimetype should end in."""
@@ -168,6 +175,7 @@ def guess_ext_for_file(aFile=None):
 		return None
 
 	return f_ext
+
 #-----------------------------------------------------------------------------------
 _system_startfile_cmd = None
 
@@ -204,6 +212,7 @@ def _get_system_startfile_cmd(filename):
 
 	_system_startfile_cmd = u''
 	return False, None
+
 #-----------------------------------------------------------------------------------
 def convert_file(filename=None, target_mime=None, target_filename=None, target_extension=None):
 	"""Convert file from one format into another.
@@ -242,19 +251,65 @@ def convert_file(filename=None, target_mime=None, target_filename=None, target_e
 		return False
 
 	return True
+
+#-----------------------------------------------------------------------------------
+def describe_file(filename):
+
+	base_name = u'gm-describe_file'
+
+	paths = gmTools.gmPaths()
+	local_script = os.path.join(paths.local_base_dir, '..', 'external-tools', base_name)
+
+	candidates = [ base_name, local_script ]		#, base_name + u'.bat'
+	found, binary = gmShellAPI.find_first_binary(binaries = candidates)
+	if not found:
+		#binary = base_name# + r'.bat'
+		_log.debug(u'cannot find <%s(.bat)>', base_name)
+		return (False, _(u'<%s(.bat)> not found') % base_name)
+
+	desc_fname = gmTools.get_unique_filename()
+
+	cmd_line = [
+		binary,
+		filename,
+		desc_fname
+	]
+	_log.debug('describing: %s', cmd_line)
+	try:
+		gm_describe = subprocess.Popen(cmd_line)
+	except OSError:
+		_log.debug('cannot run <%s>', binary)
+		return (False, _(u'problem with <%s>') % binary)
+
+	gm_describe.communicate()
+	if gm_describe.returncode != 0:
+		_log.error('<%s> returned [%s], failed to convert', binary, gm_describe.returncode)
+		return (False, _(u'problem with <%s>') % binary)
+
+	try:
+		desc_file = io.open(desc_fname, mode = 'rt', encoding = 'utf8', errors = 'replace')
+	except IOError:
+		_log.exception('cannot open [%s]', desc_fname)
+		return (False, _(u'problem with <%s>') % binary)
+
+	desc = u''.join(desc_file.readlines())
+	desc_file.close()
+	return (True, desc)
+
 #-----------------------------------------------------------------------------------
 def call_viewer_on_file(aFile = None, block=None):
 	"""Try to find an appropriate viewer with all tricks and call it.
 
 	block: try to detach from viewer or not, None means to use mailcap default
 	"""
-	# does this file exist, actually ?
-	try:
-		open(aFile).close()
-	except:
-		_log.exception('cannot read [%s]', aFile)
-		msg = _('[%s] is not a readable file') % aFile
-		return False, msg
+	if not os.path.isdir(aFile):
+		# is the file accessible at all ?
+		try:
+			open(aFile).close()
+		except:
+			_log.exception('cannot read [%s]', aFile)
+			msg = _('[%s] is not a readable file') % aFile
+			return False, msg
 
 	# try to detect any of the UNIX openers
 	found, startfile_cmd = _get_system_startfile_cmd(aFile)
@@ -266,7 +321,7 @@ def call_viewer_on_file(aFile = None, block=None):
 	viewer_cmd = get_viewer_cmd(mime_type, aFile)
 
 	if viewer_cmd is not None:
-		if gmShellAPI.run_command_in_shell(command=viewer_cmd, blocking=block):
+		if gmShellAPI.run_command_in_shell(command = viewer_cmd, blocking = block):
 			return True, ''
 
 	_log.warning("no viewer found via standard mailcap system")
@@ -311,15 +366,27 @@ def call_viewer_on_file(aFile = None, block=None):
 #		os.remove(file_to_display)
 
 	return True, ''
+
 #=======================================================================================
 if __name__ == "__main__":
 
-	if len(sys.argv) > 1 and sys.argv[1] == u'test':
+	if len(sys.argv) < 2:
+		sys.exit()
+
+	if sys.argv[1] != 'test':
+		sys.exit()
+
+	# for testing:
+	logging.basicConfig(level = logging.DEBUG)
 
-		filename = sys.argv[2]
+	filename = sys.argv[2]
 
-		_get_system_startfile_cmd(filename)
-		print _system_startfile_cmd
-		#print guess_mimetype(filename)
-		#print get_viewer_cmd(guess_mimetype(filename), filename)
-		#print guess_ext_by_mimetype(mimetype=filename)
+	#_get_system_startfile_cmd(filename)
+	#print(_system_startfile_cmd)
+	#print(guess_mimetype(filename))
+	#print(get_viewer_cmd(guess_mimetype(filename), filename))
+	#print(guess_ext_by_mimetype(mimetype=filename))
+	#call_viewer_on_file(aFile = filename, block=None)
+	status, desc = describe_file(filename)
+	print status
+	print desc
diff --git a/client/pycommon/gmMimeMagic.py b/client/pycommon/gmMimeMagic.py
index 73ddd3c..6587f02 100644
--- a/client/pycommon/gmMimeMagic.py
+++ b/client/pycommon/gmMimeMagic.py
@@ -27,7 +27,7 @@ __version__ = '0.1'
 __author__ = "Jason Petrone <jp at demonseed.net>, Karsten Hilbert <Karsten.Hilbert at gmx.net>"
 __license__ = "GPL"
 
-import re, struct, string
+import re, struct, string, io
 #=================================================================
 magic = [
 	[0L, 'leshort', '=', 1538L, 'application/x-alan-adventure-game'],
@@ -1000,7 +1000,7 @@ class magicTest:
 			elif self.type == 'belong':
 				[data] = struct.unpack('>l', data[self.offset : self.offset + 4])
 			else:
-				#print 'UNKNOWN TYPE: ' + self.type
+				#print('UNKNOWN TYPE: ' + self.type)
 				pass
 		except:
 			return None
@@ -1011,7 +1011,7 @@ class magicTest:
 
 def load(file):
 	global magicNumbers
-	lines = open(file).readlines()
+	lines = io.open(file, mode = u'rt', encoding = 'utf8').readlines()
 	last = { 0: None }
 	for line in lines:
 		if re.match(r'\s*#', line):
@@ -1037,11 +1037,11 @@ def load(file):
 				l = last[level - 1].subTests
 			if offset[0] == '(':
 				# don't handle indirect offsets just yet
-				print 'SKIPPING ' + string.join(list(line[3:]))
+				print('SKIPPING ' + string.join(list(line[3:])))
 				pass
 			elif offset[0] == '&':
 				# don't handle relative offsets just yet
-				print 'SKIPPING ' + string.join(list(line[3:]))
+				print('SKIPPING ' + string.join(list(line[3:])))
 				pass
 			else:
 				operands = ['=', '<', '>', '&']
@@ -1069,7 +1069,7 @@ def load(file):
 				else:
 					if value.count('&') != 0:
 						mask = value[(value.index('&') + 1):]
-						print 'MASK: ' + mask
+						print('MASK: ' + mask)
 						value = value[:(value.index('&')+1)]
 					try: value = strToNum(value)
 					except: continue
@@ -1106,7 +1106,7 @@ def file(file):
 
 #### BUILD DATA ####
 #load('mime-magic')
-#f = open('out', 'w')
+#f = io.open('out', mode = 'wt', encoding = 'utf8')
 #for m in magicNumbers:
 #  f.write(str([m.offset, m.type, m.op, m.value, m.msg]) + ',\n')
 #f.close
@@ -1125,24 +1125,3 @@ if __name__ == '__main__':
 		else:
 			print arg + ': unknown'
 #=================================================================
-# $Log: gmMimeMagic.py,v $
-# Revision 1.2  2009-09-13 18:31:57  ncq
-# - proper mimetype for bitmaps
-#
-# Revision 1.1  2004/02/25 09:30:13  ncq
-# - moved here from python-common
-#
-# Revision 1.3  2003/11/17 10:56:36  sjtan
-#
-# synced and commiting.
-#
-# Revision 1.1  2003/10/23 06:02:39  sjtan
-#
-# manual edit areas modelled after r.terry's specs.
-#
-# Revision 1.2  2003/02/27 09:18:48  ncq
-# - added TODO
-#
-# Revision 1.1  2003/02/14 00:32:21  ncq
-# - Mime magic data
-#
diff --git a/client/pycommon/gmNetworkTools.py b/client/pycommon/gmNetworkTools.py
index 23a05de..73a633d 100644
--- a/client/pycommon/gmNetworkTools.py
+++ b/client/pycommon/gmNetworkTools.py
@@ -1,4 +1,7 @@
 # -*- coding: utf-8 -*-
+
+from __future__ import print_function
+
 __doc__ = """GNUmed internetworking tools."""
 
 #===========================================================================
@@ -17,6 +20,7 @@ import mimetools
 import StringIO
 import zipfile
 import webbrowser
+import io
 
 
 # GNUmed libs
@@ -35,6 +39,7 @@ _log = logging.getLogger('gm.net')
 #---------------------------------------------------------------------------
 def open_url_in_browser(url, new=2, autoraise=True, *args, **kwargs):
 	# url, new=0, autoraise=True
+	# new=2: open new tab if possible
 	try:
 		webbrowser.open(url, new = new, autoraise = autoraise, **kwargs)
 	except (webbrowser.Error, OSError, UnicodeEncodeError):
@@ -70,7 +75,7 @@ def download_data_pack(pack_url, filename=None, md5_url=None):
 	_log.debug('downloading MD5 from: %s', md5_url)
 	md5_fname = download_file(md5_url, filename = dp_fname + u'.md5')
 
-	md5_file = open(md5_fname, 'rU')
+	md5_file = io.open(md5_fname, mode = 'rt', encoding = 'utf8')
 	md5_expected = md5_file.readline().strip('\n')
 	md5_file.close()
 	_log.debug('expected MD5: %s', md5_expected)
@@ -428,14 +433,14 @@ Subject: gmTools test suite mail
 
 This is a test mail from the gmTools.py module.
 """ % (default_mail_receiver, default_mail_sender)
-		print "mail sending succeeded:", send_mail (
+		print("mail sending succeeded:", send_mail (
 #			sender = 'abc at xyz.123',
 			receiver = [default_mail_receiver, u'karsten.hilbert at gmx.net'],
 			message = msg,
 			auth = {'user': default_mail_sender, 'password': u'gnumed-at-gmx-net'}, # u'gm/bugs/gmx'
 			debug = True,
 			attachments = [[sys.argv[2]]]
-		)
+		))
 	#-----------------------------------------------------------------------
 	def test_check_for_update():
 
@@ -448,9 +453,9 @@ This is a test mail from the gmTools.py module.
 		]
 
 		for test in test_data:
-			print "arguments:", test
+			print("arguments:", test)
 			found, msg = check_for_update(test[0], test[1], test[2], test[3])
-			print msg
+			print(msg)
 
 		return
 	#-----------------------------------------------------------------------
@@ -459,13 +464,13 @@ This is a test mail from the gmTools.py module.
 		#url = 'missing-file.zip'
 		url = 'gmTools.py'
 		dl_name = download_data_pack(url)
-		print url, "->", dl_name
+		print(url, "->", dl_name)
 		unzip_dir = unzip_data_pack(dl_name)
-		print "unzipped into", unzip_dir
+		print("unzipped into", unzip_dir)
 	#-----------------------------------------------------------------------
 	def test_browser():
 		success = open_url_in_browser(sys.argv[2])
-		print success
+		print(success)
 		open_url_in_browser(sys.argv[2], abc=222)
 	#-----------------------------------------------------------------------
 	#test_check_for_update()
diff --git a/client/pycommon/gmNull.py b/client/pycommon/gmNull.py
index 8967d80..256c8ff 100644
--- a/client/pycommon/gmNull.py
+++ b/client/pycommon/gmNull.py
@@ -166,10 +166,19 @@ def test():
 
 	# comparing
 	if n == 1:
-		print "Null object == 1"
+		print("Null object == 1")
 	else:
-		print "Null object != 1"
+		print("Null object != 1")
 
-#==============================================================
+#--------------------------------------------------------------
 if __name__ == '__main__':
+
+	import sys
+
+	if len(sys.argv) < 2:
+		sys.exit()
+
+	if sys.argv[1] != 'test':
+		sys.exit()
+
 	test()
diff --git a/client/pycommon/gmPG2.py b/client/pycommon/gmPG2.py
index 4e9317b..d3f837d 100644
--- a/client/pycommon/gmPG2.py
+++ b/client/pycommon/gmPG2.py
@@ -18,6 +18,7 @@ __license__ = 'GPL v2 or later (details at http://www.gnu.org)'
 import time
 import sys
 import os
+import io
 import codecs
 import types
 import logging
@@ -119,7 +120,8 @@ known_schema_hashes = {
 	#19: '419e5225259c53dd36ad80d82066ff02'	# 19.0 only
 	#19: '9765373098b03fb208332498f34cd4b5' # until 19.11
 	19: '57f009a159f55f77525cc0291e0c8b60', # starting with 19.12
-	20: 'baed1901ed4c2f272b56c8cb2c6d88e8'
+	20: 'baed1901ed4c2f272b56c8cb2c6d88e8',
+	21: 'e6a51a89dd22b75b61ead8f7083f251f'
 }
 
 map_schema_hash2version = {
@@ -143,7 +145,8 @@ map_schema_hash2version = {
 	#'419e5225259c53dd36ad80d82066ff02': 19	# 19.0 only
 	#'9765373098b03fb208332498f34cd4b5': 19 # until 19.11
 	'57f009a159f55f77525cc0291e0c8b60': 19, # starting with 19.12
-	'baed1901ed4c2f272b56c8cb2c6d88e8': 20
+	'baed1901ed4c2f272b56c8cb2c6d88e8': 20,
+	'e6a51a89dd22b75b61ead8f7083f251f': 21
 }
 
 map_client_branch2required_db_version = {
@@ -160,7 +163,8 @@ map_client_branch2required_db_version = {
 	u'1.2': 17,
 	u'1.3': 18,
 	u'1.4': 19,
-	u'1.5': 20
+	u'1.5': 20,
+	u'1.6': 21
 }
 
 # get columns and data types for a given table
@@ -419,7 +423,7 @@ def __request_login_params_tui():
 	print "\nPlease enter the required login parameters:"
 	try:
 		login.host = prompted_input(prompt = "host ('' = non-TCP/IP)", default = '')
-		login.database = prompted_input(prompt = "database", default = 'gnumed_v20')
+		login.database = prompted_input(prompt = "database", default = 'gnumed_v21')
 		login.user = prompted_input(prompt = "user name", default = '')
 		tmp = 'password for "%s" (not shown): ' % login.user
 		login.password = getpass.getpass(tmp)
@@ -440,7 +444,7 @@ def __request_login_params_gui_wx():
 	# OK, wxPython was already loaded. But has the main Application instance
 	# been initialized yet ? if not, the exception will kick us out
 	if wx.GetApp() is None:
-		raise gmExceptions.NoGuiError(_("The wxPython GUI framework hasn't been initialized yet!"))
+		raise AssertionError(_("The wxPython GUI framework hasn't been initialized yet!"))
 
 	# Let's launch the login dialog
 	# if wx was not initialized /no main App loop, an exception should be raised anyway
@@ -465,7 +469,7 @@ def request_login_params():
 	# are we inside X ?
 	# (if we aren't wxGTK will crash hard at
 	# C-level with "can't open Display")
-	if os.environ.has_key('DISPLAY'):
+	if u'DISPLAY' in os.environ:
 		# try wxPython GUI
 		try: return __request_login_params_gui_wx()
 		except: pass
@@ -557,7 +561,7 @@ def log_auth_environment():
 				_log.debug('$PGPASSFILE=%s exists', pgpass_var)
 			else:
 				_log.debug('$PGPASSFILE=%s not found')
-	except StandardError:
+	except Exception:
 		_log.exception('cannot detect .pgpass and or $PGPASSFILE')
 # =======================================================================
 # netadata API
@@ -790,7 +794,7 @@ def get_col_indices(cursor = None):
 		# a query like "select 1,2;" will return two columns of the same name !
 		# hence adjust to that, note, however, that dict-style access won't work
 		# on results of such queries ...
-		if col_indices.has_key(col_name):
+		if col_name in col_indices:
 			col_name = '%s_%s' % (col_name, col_index)
 		col_indices[col_name] = col_index
 		col_index += 1
@@ -825,7 +829,7 @@ def get_col_names(link_obj=None, schema='public', table=None):
 # i18n functions
 #------------------------------------------------------------------------
 def export_translations_from_database(filename=None):
-	tx_file = codecs.open(filename, 'wb', 'utf8')
+	tx_file = io.open(filename, mode = 'wt', encoding = 'utf8')
 	tx_file.write(u'-- GNUmed database string translations exported %s\n' % gmDateTime.pydt_now_here().strftime('%Y-%m-%d %H:%M'))
 	tx_file.write(u'-- - contains translations for each of [%s]\n' % u', '.join(get_translation_languages()))
 	tx_file.write(u'-- - user database language is set to [%s]\n\n' % get_current_user_language())
@@ -850,6 +854,7 @@ def export_translations_from_database(filename=None):
 	tx_file.close()
 
 	return True
+
 #------------------------------------------------------------------------
 def delete_translation_from_database(link_obj=None, language=None, original=None):
 	cmd = u'DELETE FROM i18n.translations WHERE lang = %(lang)s AND orig = %(orig)s'
@@ -1086,6 +1091,7 @@ def bytea2file(data_query=None, filename=None, chunk_size=0, data_size=None, dat
 	result = bytea2file_object(data_query=data_query, file_obj=outfile, chunk_size=chunk_size, data_size=data_size, data_size_query=data_size_query)
 	outfile.close()
 	return result
+
 #------------------------------------------------------------------------
 def bytea2file_object(data_query=None, file_obj=None, chunk_size=0, data_size=None, data_size_query=None):
 	"""Store data from a bytea field into a file.
@@ -1184,6 +1190,7 @@ def bytea2file_object(data_query=None, file_obj=None, chunk_size=0, data_size=No
 
 	conn.rollback()
 	return True
+
 #------------------------------------------------------------------------
 def file2bytea(query=None, filename=None, args=None, conn=None, file_md5=None):
 	"""Store data from a file into a bytea field.
@@ -1234,6 +1241,218 @@ def file2bytea(query=None, filename=None, args=None, conn=None, file_md5=None):
 		conn.close()
 
 	return success_status
+
+#------------------------------------------------------------------------
+def file2lo(filename=None, conn=None, check_md5=False):
+	# 1 GB limit unless 64 bit Python build ...
+	file_size = os.path.getsize(filename)
+	if file_size > (1024 * 1024) * 1024:
+		_log.debug(u'file size of [%s] > 1 GB, supposedly not supported by psycopg2 large objects (but seems to work anyway ?)', file_size)
+#		return -1
+
+	if conn is None:
+		conn = get_raw_connection(readonly = False)
+		close_conn = conn.close
+	else:
+		close_conn = __noop
+	_log.debug(u'[%s] -> large object', filename)
+
+	# insert the data
+	lo = conn.lobject(0, 'w', 0, filename)
+	lo_oid = lo.oid
+	lo.close()
+	_log.debug('large object OID: %s', lo_oid)
+
+	# verify
+	if file_md5 is None:
+		conn.commit()
+		close_conn()
+		return lo_oid
+	cmd = u'SELECT md5(lo_get(%(loid)s::oid))'
+	args = {'loid': lo_oid}
+	rows, idx = run_ro_queries(link_obj = conn, queries = [{'cmd': cmd, 'args': args}])
+	db_md5 = rows[0][0]
+	if file_md5 == db_md5:
+		conn.commit()
+		close_conn()
+		_log.debug('MD5 sums of data file and database large object match: [file::%s] = [DB::%s]', file_md5, db_md5)
+		return lo_oid
+	conn.rollback()
+	close_conn()
+	_log.error('MD5 sums of data file and database large object [%s] do not match: [file::%s] <> [DB::%s]', lo_oid, file_md5, db_md5)
+	return -1
+
+#------------------------------------------------------------------------
+def file2bytea_lo(filename=None, conn=None, file_md5=None):
+	# 1 GB limit unless 64 bit Python build ...
+	file_size = os.path.getsize(filename)
+	if file_size > (1024 * 1024) * 1024:
+		_log.debug(u'file size of [%s] > 1 GB, supposedly not supported by psycopg2 large objects (but seems to work anyway ?)', file_size)
+#		return -1
+
+	if conn is None:
+		conn = get_raw_connection(readonly = False)
+		close_conn = conn.close
+	else:
+		close_conn = __noop
+	_log.debug(u'[%s] -> large object', filename)
+
+	# insert the data
+	lo = conn.lobject(0, 'w', 0, filename)
+	lo_oid = lo.oid
+	lo.close()
+	_log.debug('large object OID: %s', lo_oid)
+
+	# verify
+	if file_md5 is None:
+		conn.commit()
+		close_conn()
+		return lo_oid
+	cmd = u'SELECT md5(lo_get(%(loid)s::oid))'
+	args = {'loid': lo_oid}
+	rows, idx = run_ro_queries(link_obj = conn, queries = [{'cmd': cmd, 'args': args}])
+	db_md5 = rows[0][0]
+	if file_md5 == db_md5:
+		conn.commit()
+		close_conn()
+		_log.debug('MD5 sums of data file and database large object match: [file::%s] = [DB::%s]', file_md5, db_md5)
+		return lo_oid
+	conn.rollback()
+	close_conn()
+	_log.error('MD5 sums of data file and database large object [%s] do not match: [file::%s] <> [DB::%s]', lo_oid, file_md5, db_md5)
+	return -1
+
+#------------------------------------------------------------------------
+def file2bytea_copy_from(table=None, columns=None, filename=None, conn=None, md5_query=None, file_md5=None):
+	# md5_query: dict{'cmd': ..., 'args': ...}
+
+	# UNTESTED
+
+	chunk_size = 32 * (1024 * 1024)
+	_log.debug('[%s] (%s bytes) --(%s bytes)-> %s(%s)', filename, os.path.getsize(filename), chunk_size, table, columns)
+	if conn is None:
+		conn = get_raw_connection(readonly = False)
+		close_conn = True
+	else:
+		close_conn = False
+	curs = conn.cursor()
+	# write
+	infile = file(filename, "rb")
+	curs.copy_from(infile, table, size = chunk_size, columns = columns)
+	infile.close()
+	curs.close()
+	if None in [file_md5, md5_query]:
+		conn.commit()
+		close_conn()
+		return True
+	# verify
+	rows, idx = run_ro_queries(link_obj = conn, queries = [md5_query])
+	db_md5 = rows[0][0]
+	if file_md5 == db_md5:
+		conn.commit()
+		close_conn()
+		_log.debug('MD5 sums of data file and database BYTEA field match: [file::%s] = [DB::%s]', file_md5, db_md5)
+		return True
+	close_conn()
+	_log.error('MD5 sums of data file and database BYTEA field do not match: [file::%s] <> [DB::%s]', file_md5, db_md5)
+	return False
+
+#------------------------------------------------------------------------
+def file2bytea_overlay(query=None, args=None, filename=None, conn=None, md5_query=None, file_md5=None):
+	"""Store data from a file into a bytea field.
+
+	The query must:
+	- 'cmd' must be in unicode
+	- 'cmd' must contain a format spec identifying the row (eg
+	  a primary key) matching <args> if it is an UPDATE
+	- 'cmd' must contain "... SET ... <some_bytea_field> = OVERLAY(some_bytea_field PLACING %(data)s::bytea FROM %(start)s FOR %(size)s) ..."
+	- 'args' must be a dict matching 'cmd'
+
+	The query CAN return the MD5 of the inserted data:
+		RETURNING md5(<field>) AS md5
+	in which case it will compare it to the md5
+	of the file.
+
+	UPDATE
+		the_table
+	SET
+		bytea_field = OVERLAY (
+			coalesce(bytea_field, '':bytea),
+			PLACING
+				%(data)s::bytea
+			FROM
+				%(start)s
+			FOR
+				%(size)s
+		)
+	WHERE
+		primary_key = pk_value
+
+	SELECT md5(bytea_field) FROM the_table WHERE primary_key = pk_value
+	"""
+	chunk_size = 32 * (1024 * 1024)
+	file_size = os.path.getsize(filename)
+	if file_size <= chunk_size:
+		chunk_size = file_size
+	needed_chunks, remainder = divmod(file_size, chunk_size)
+	_log.debug('file data: %s bytes, chunks: %s, chunk size: %s bytes, remainder: %s bytes', file_size, needed_chunks, chunk_size, remainder)
+
+	if conn is None:
+		conn = get_raw_connection(readonly = False)
+		close_conn = conn.close
+	else:
+		close_conn = __noop
+
+	infile = file(filename, "rb")
+	# write chunks
+	for chunk_id in range(needed_chunks):
+		chunk_start = (chunk_id * chunk_size) + 1
+		args['start'] = chunk_start
+		args['size'] = chunk_size
+		data_as_byte_string = infile.read(chunk_size)
+		args['data'] = buffer(data_as_byte_string)
+		del(data_as_byte_string)
+		try:
+			rows, idx = run_rw_queries(link_obj = conn, queries = [{'cmd': query, 'args': args}], end_tx = False, return_data = False)
+		except StandardError:
+			_log.exception('cannot write chunk [%s/%s] of size [%s], try decreasing chunk size', chunk_id+1, needed_chunks, chunk_size)
+			conn.rollback()
+			close_conn()
+			infile.close()
+			raise
+	# write remainder
+	if remainder > 0:
+		chunk_start = (needed_chunks * chunk_size) + 1
+		args['start'] = chunk_start
+		args['size'] = remainder
+		data_as_byte_string = infile.read(remainder)
+		args['data'] = buffer(data_as_byte_string)
+		del(data_as_byte_string)
+		try:
+			rows, idx = run_rw_queries(link_obj = conn, queries = [{'cmd': query, 'args': args}], end_tx = False, return_data = False)
+		except StandardError:
+			_log.error('cannot retrieve remaining [%s] bytes' % remainder)
+			conn.rollback()
+			close_conn()
+			infile.close()
+			raise
+	infile.close()
+	if None in [file_md5, md5_query]:
+		conn.commit()
+		close_conn()
+		return True
+	# verify
+	rows, idx = run_ro_queries(link_obj = conn, queries = [{'cmd': md5_query, 'args': args}])
+	db_md5 = rows[0][0]
+	if file_md5 == db_md5:
+		conn.commit()
+		close_conn()
+		_log.debug('MD5 sums of data file and database BYTEA field match: [file::%s] = [DB::%s]', file_md5, db_md5)
+		return True
+	close_conn()
+	_log.error('MD5 sums of data file and database BYTEA field do not match: [file::%s] <> [DB::%s]', file_md5, db_md5)
+	return False
+
 #------------------------------------------------------------------------
 def sanitize_pg_regex(expression=None, escape_all=False):
 	"""Escape input for use in a PostgreSQL regular expression.
@@ -1260,6 +1479,7 @@ def sanitize_pg_regex(expression=None, escape_all=False):
 			'*', '\*'
 		)
 		#']', '\]',			# not needed
+
 #------------------------------------------------------------------------
 def run_ro_queries(link_obj=None, queries=None, verbose=False, return_data=True, get_col_idx=False):
 	"""Run read-only queries.
@@ -1275,15 +1495,24 @@ def run_ro_queries(link_obj=None, queries=None, verbose=False, return_data=True,
 		curs = link_obj
 		curs_close = __noop
 		tx_rollback = __noop
+		readonly_rollback_just_in_case = __noop
 	elif isinstance(link_obj, dbapi._psycopg.connection):
 		curs = link_obj.cursor()
 		curs_close = curs.close
 		tx_rollback = link_obj.rollback
+		if link_obj.autocommit is True:		# readonly connection ?
+			readonly_rollback_just_in_case = link_obj.rollback
+		else:
+			# do not rollback readonly queries on passed-in readwrite
+			# connections just in case because they may have already
+			# seen fully legitimate write action which would get lost
+			readonly_rollback_just_in_case = __noop
 	elif link_obj is None:
 		conn = get_connection(readonly=True, verbose=verbose)
 		curs = conn.cursor()
 		curs_close = curs.close
 		tx_rollback = conn.rollback
+		readonly_rollback_just_in_case = conn.rollback
 	else:
 		raise ValueError('link_obj must be cursor, connection or None but not [%s]' % link_obj)
 
@@ -1358,8 +1587,9 @@ def run_ro_queries(link_obj=None, queries=None, verbose=False, return_data=True,
 			col_idx = get_col_indices(curs)
 
 	curs_close()
-	tx_rollback()		# rollback just so that we don't stay IDLE IN TRANSACTION forever
+	readonly_rollback_just_in_case()
 	return (data, col_idx)
+
 #------------------------------------------------------------------------
 def run_rw_queries(link_obj=None, queries=None, end_tx=False, return_data=None, get_col_idx=False, verbose=False):
 	"""Convenience function for running a transaction
@@ -1511,6 +1741,7 @@ def run_rw_queries(link_obj=None, queries=None, end_tx=False, return_data=None,
 	conn_close()
 
 	return (data, col_idx)
+
 #------------------------------------------------------------------------
 def run_insert(link_obj=None, schema=None, table=None, values=None, returning=None, end_tx=False, get_col_idx=False, verbose=False):
 	"""Generates SQL for an INSERT query.
@@ -1554,6 +1785,7 @@ def run_insert(link_obj=None, schema=None, table=None, values=None, returning=No
 		get_col_idx = get_col_idx,
 		verbose = verbose
 	)
+
 # =======================================================================
 # connection handling API
 # -----------------------------------------------------------------------
@@ -1585,6 +1817,7 @@ class cConnectionPool(psycopg2.pool.PersistentConnectionPool):
 		for conn_key in self._used.keys():
 			_log.debug('closing pooled database connection, pool key: %s, backend PID: %s', conn_key, self._used[conn_key].get_backend_pid())
 			self._used[conn_key].original_close()
+
 # -----------------------------------------------------------------------
 def get_raw_connection(dsn=None, verbose=False, readonly=True):
 	"""Get a raw, unadorned connection.
@@ -1867,7 +2100,8 @@ def sanity_check_database_settings():
 		#u'regex_flavor': [u'advanced', u'query breakage', False],					# 9.0 doesn't support this anymore, default now advanced anyway
 		u'synchronous_commit': [u'on', u'data loss/corruption', False],
 		u'sql_inheritance': [u'on', u'query breakage, data loss/corruption', True],
-		u'ignore_checksum_failure': [u'off', u'data loss/corruption', False]		# starting with PG 9.3
+		u'ignore_checksum_failure': [u'off', u'data loss/corruption', False],		# starting with PG 9.3
+		u'track_commit_timestamp': [u'on', u'suboptimal auditing', False]			# starting with PG 9.3
 	}
 
 	from Gnumed.pycommon import gmCfg2
@@ -2069,22 +2303,99 @@ if __name__ == "__main__":
 	if sys.argv[1] != 'test':
 		sys.exit()
 
+	from Gnumed.pycommon.gmTools import file2md5
+
 	logging.basicConfig(level=logging.DEBUG)
+
 	#--------------------------------------------------------------------
 	def test_file2bytea():
 		run_rw_queries(queries = [
+			{'cmd': u'drop table if exists test_bytea'},
 			{'cmd': u'create table test_bytea (data bytea)'}
 		])
 
-		cmd = u'insert into test_bytea values (%(data)s::bytea)'
 		try:
-			file2bytea(query = cmd, filename = sys.argv[2])
+			file2bytea(query = u'insert into test_bytea values (%(data)s::bytea) returning md5(data) as md5', filename = sys.argv[2], file_md5 = file2md5(sys.argv[2], True))
 		except:
 			_log.exception('error')
 
 		run_rw_queries(queries = [
 			{'cmd': u'drop table test_bytea'}
 		])
+
+	#--------------------------------------------------------------------
+	def test_file2bytea_lo():
+		lo_oid = file2bytea_lo (
+			filename = sys.argv[2]
+			#, file_md5 = file2md5(sys.argv[2], True)
+		)
+		print lo_oid
+#		if lo_oid != -1:
+#			run_rw_queries(queries = [
+#				{'cmd': u'select lo_unlink(%(loid)s::oid)', 'args': {'loid': lo_oid}}
+#			])
+
+	#--------------------------------------------------------------------
+	def test_file2bytea_copy_from():
+
+		run_rw_queries(queries = [
+			{'cmd': u'drop table if exists test_bytea'},
+			{'cmd': u'create table test_bytea (pk serial primary key, data bytea)'},
+			{'cmd': u"insert into test_bytea (data) values (NULL::bytea)"}
+		])
+
+		md5_query = {
+			'cmd': u'select md5(data) AS md5 FROM test_bytea WHERE pk = %(pk)s',
+			'args': {'pk': 1}
+		}
+
+		file2bytea_copy_from (
+			table = u'test_bytea',
+			columns = [u'data'],
+			filename = sys.argv[2],
+			md5_query = md5_query,
+			file_md5 = file2md5(sys.argv[2], True)
+		)
+
+		run_rw_queries(queries = [
+			{'cmd': u'drop table if exists test_bytea'}
+		])
+
+	#--------------------------------------------------------------------
+	def test_file2bytea_overlay():
+
+		run_rw_queries(queries = [
+			{'cmd': u'drop table if exists test_bytea'},
+			{'cmd': u'create table test_bytea (pk serial primary key, data bytea)'},
+			{'cmd': u"insert into test_bytea (data) values (NULL::bytea)"}
+		])
+
+		cmd = u"""
+		update test_bytea
+		set data = overlay (
+			coalesce(data, ''::bytea)
+			placing %(data)s::bytea
+			from %(start)s
+			for %(size)s
+		)
+		where
+			pk > %(pk)s
+		"""
+		md5_cmd = u'select md5(data) from test_bytea'
+		args = {'pk': 0}
+		file2bytea_overlay (
+			query = cmd,
+			args = args,
+			filename = sys.argv[2],
+			conn = None,
+			md5_query = md5_cmd,
+			file_md5 = file2md5(sys.argv[2], True)
+		)
+
+		run_rw_queries(queries = [
+			{'cmd': u'drop table test_bytea'}
+		])
+
 	#--------------------------------------------------------------------
 	def test_get_connection():
 		print "testing get_connection()"
@@ -2455,7 +2766,6 @@ SELECT to_timestamp (foofoo,'YYMMDD.HH24MI') FROM (
 
 	#--------------------------------------------------------------------
 	# run tests
-	#test_file2bytea()
 	#test_get_connection()
 	#test_exceptions()
 	#test_ro_queries()
@@ -2468,12 +2778,16 @@ SELECT to_timestamp (foofoo,'YYMMDD.HH24MI') FROM (
 	#test_sanity_check_time_skew()
 	#test_get_foreign_key_details()
 	#test_get_foreign_key_names()
-	test_get_index_name()
+	#test_get_index_name()
 	#test_set_user_language()
 	#test_get_schema_revision_history()
 	#test_run_query()
 	#test_schema_exists()
 	#test_get_foreign_key_names()
 	#test_row_locks()
+	#test_file2bytea()
+	#test_file2bytea_overlay()
+	#test_file2bytea_copy_from()
+	test_file2bytea_lo()
 
 # ======================================================================
diff --git a/client/pycommon/gmPrinting.py b/client/pycommon/gmPrinting.py
index 3697b3c..f8eda0c 100644
--- a/client/pycommon/gmPrinting.py
+++ b/client/pycommon/gmPrinting.py
@@ -1,14 +1,16 @@
-"""GNUmed printing."""
-# =======================================================================
+
+from __future__ import print_function
+
+__doc__ = """GNUmed printing."""
+
 __author__  = "K.Hilbert <Karsten.Hilbert at gmx.net>"
 __license__ = 'GPL v2 or later (details at http://www.gnu.org)'
-
 # =======================================================================
 import logging
 import sys
 import os
 import subprocess
-import codecs
+import io
 import time
 
 
@@ -52,7 +54,7 @@ def print_files(filenames=None, jobtype=None, print_api=None):
 			return False
 
 	if jobtype not in known_printjob_types:
-		print "unregistered print job type <%s>" % jobtype
+		print("unregistered print job type <%s>" % jobtype)
 		_log.warning('print job type "%s" not registered', jobtype)
 
 	if print_api not in external_print_APIs:
@@ -196,12 +198,12 @@ def _print_files_by_gsprint_exe(filenames=None):
 	).encode(sys.getfilesystemencoding())
 
 	for filename in filenames:
-		conf_file = codecs.open(conf_filename, 'wb', 'utf8')
-		conf_file.write('-color\n')
-		conf_file.write('-query\n')				# printer setup dialog
-		conf_file.write('-all\n')				# all pages
-		conf_file.write('-copies 1\n')
-		conf_file.write('%s\n' % os.path.normpath(filename))
+		conf_file = io.open(conf_filename, mode = 'wt', encoding = 'utf8')
+		conf_file.write(u'-color\n')
+		conf_file.write(u'-query\n')			# printer setup dialog
+		conf_file.write(u'-all\n')				# all pages
+		conf_file.write(u'-copies 1\n')
+		conf_file.write(u'%s\n' % os.path.normpath(filename))
 		conf_file.close()
 
 		cmd_line = [
@@ -210,13 +212,13 @@ def _print_files_by_gsprint_exe(filenames=None):
 		]
 		_log.debug('printing with %s' % cmd_line)
 		try:
-			gsprint = subprocess.Popen(cmd_line)
+			gsprint_process = subprocess.Popen(cmd_line)
 		except OSError:
 			_log.debug('cannot run <gsprint.exe>')
 			return False
-		gsprint.communicate()
-		if gsprint.returncode != 0:
-			_log.error('<gsprint.exe> returned [%s], failed to print', gsprint.returncode)
+		gsprint_process.communicate()
+		if gsprint_process.returncode != 0:
+			_log.error('<gsprint.exe> returned [%s], failed to print', gsprint_process.returncode)
 			return False
 
 	return True
@@ -355,10 +357,10 @@ if __name__ == '__main__':
 		print_files(filenames = [sys.argv[2], sys.argv[2]], jobtype = u'generic_document', print_api = u'gtklp')
 	#--------------------------------------------------------------------
 	def test_print_files_by_mac_preview():
-		print "testing printing via Mac Preview"
+		print("testing printing via Mac Preview")
 		_print_files_by_mac_preview(filenames = [sys.argv[0]])
 	#--------------------------------------------------------------------
-	print test_print_files()
+	print(test_print_files())
 	#test_print_files_by_gtklp()
 	#test_print_files_by_mac_preview()
 
diff --git a/client/pycommon/gmPsql.py b/client/pycommon/gmPsql.py
index 92ef75d..46df8c1 100644
--- a/client/pycommon/gmPsql.py
+++ b/client/pycommon/gmPsql.py
@@ -9,7 +9,7 @@ __author__ = "Ian Haywood"
 __license__ = "GPL v2 or later (details at http://www.gnu.org)"
 
 # stdlib
-import sys, os, string, re, urllib2, logging
+import sys, os, string, re, urllib2, logging, io
 
 
 _log = logging.getLogger('gm.bootstrapper')
@@ -31,6 +31,7 @@ def shell(str):
 	performs backtick shell extension in a string
 	"""
 	return re.sub (r"`(.*)`", shellrun, str)
+
 #===================================================================
 class Psql:
 
@@ -59,8 +60,8 @@ class Psql:
 			global unformattable_error_id
 			tmp = u"%s:%d: <cannot unicode(msg), printing on console with ID [#%d]>" % (self.filename, self.lineno-1, unformattable_error_id)
 			try:
-				print 'ERROR: GNUmed bootstrap #%d:' % unformattable_error_id
-				print aMsg
+				print('ERROR: GNUmed bootstrap #%d:' % unformattable_error_id)
+				print(aMsg)
 			except: pass
 			unformattable_error_id += 1
 		return tmp
@@ -69,17 +70,18 @@ class Psql:
 		"""
 		filename: a file, containg semicolon-separated SQL commands
 		"""
+		_log.debug('processing [%s]', filename)
 		if re.match ("http://.*", filename) or re.match ("ftp://.*", filename) or re.match ("gopher://.*", filename):
 			try:
 				self.file = urllib2.urlopen (filename)
 			except URLError:
-				_log.error(u"cannot access %s" % filename)
+				_log.error(u"cannot access [%s]", filename)
 				return 1
 		else:
 			if os.access (filename, os.R_OK):
-				self.file = open(filename)
+				self.file = io.open(filename, mode = 'rt', encoding = 'utf8')
 			else:
-				_log.error(u"cannot open file [%s]" % filename)
+				_log.error(u"cannot open file [%s]", filename)
 				return 1
 
 		self.lineno = 0
@@ -88,7 +90,7 @@ class Psql:
 		bracketlevel = 0
 		curr_cmd = ''
 		curs = self.conn.cursor ()
-#		transaction_started = False
+##		transaction_started = False
 		for self.line in self.file.readlines():
 			self.lineno += 1
 			if len(self.line.strip()) == 0:
@@ -116,57 +118,6 @@ class Psql:
 			if self.match (r"^\\unset (\S+)"):
 				self.vars[self.groups[0]] = None
 				continue
-			# \connect
-			if self.match (r"^\\connect.*"):
-				_log.error(self.fmt_msg(u"\\connect not yet supported in scripts"))
-				continue
-			# \lo_import
-			if self.match (r"^\\lo_import.*"):
-				_log.error(self.fmt_msg(u"\\lo_import not yet supported"))
-				# no sense to continue here
-				return 1
-			# \copy ... to ...
-			if self.match (r"^\\copy .* to '(\S+)' .*"):
-				_log.error(self.fmt_msg(u"\\copy to not implemented"))
-				return 1
-			# \copy ... from ...
-			if self.match (r"^\\copy .* from '(\S+)' .*"):
-				copyfile = self.groups[0]
-				try:
-					copyfd = file (os.path.join (os.path.dirname (self.filename), copyfile))
-				except error:
-					_log.error(self.fmt_msg(error))
-					return 1
-				self.line = self.line[1:].strip() # lop off leading slash
-				self.line.replace ("'%s'" % copyfile, 'stdin')
-				# now we have a command that the backend understands
-				copyline = 0
-				try:
-					curs = self.conn.cursor ()
-					# send the COPY command
-					curs.execute (self.line)
-					# send the data
-					for i in copyfd.readlines ():
-						curs.execute (i)
-						copyline += 1
-					self.conn.commit ()
-					curs.close ()
-				except StandardError, error:
-					_log.error(u"%s: %d: %s" % (copyfile, copyline, error))
-					if self.vars['ON_ERROR_STOP']:
-						return 1
-				continue
-
-			# \i
-			if self.match (r"^\\i (\S+)"):
-				# create another interpreter instance in same connection
-				Psql(self.conn).run (os.path.join (os.path.dirname (self.filename), self.groups[0]))
-				continue
-
-			# \encoding
-			if self.match (r"^\\encoding.*"):
-				_log.error(self.fmt_msg(u"\\encoding not yet supported"))
-				continue
 
 			# other '\' commands
 			if self.match (r"^\\(.*)") and not in_string:
@@ -229,7 +180,7 @@ class Psql:
 							else:
 								curs.execute (curr_cmd)
 #								if not transaction_started:
-					except StandardError, error:
+					except Exception, error:
 						_log.debug(curr_cmd)
 						if re.match (r"^NOTICE:.*", str(error)):
 							_log.warning(self.fmt_msg(error))
@@ -256,7 +207,14 @@ class Psql:
 #===================================================================
 # testing code
 if __name__ == '__main__':
-	from pyPgSQL import PgSQL
+
+	if len(sys.argv) < 2:
+		sys.exit()
+
+	if sys.argv[1] != 'test':
+		sys.exit()
+
+	#from pyPgSQL import PgSQL
 	conn = PgSQL.connect (user='gm-dbo', database = 'gnumed')
 	psql = Psql (conn)
 	psql.run (sys.argv[1])
diff --git a/client/pycommon/gmScanBackend.py b/client/pycommon/gmScanBackend.py
index 4d6e6f4..560ff0e 100644
--- a/client/pycommon/gmScanBackend.py
+++ b/client/pycommon/gmScanBackend.py
@@ -1,6 +1,9 @@
 #==================================================
 # GNUmed SANE/TWAIN scanner classes
 #==================================================
+
+from __future__ import print_function
+
 __license__ = "GPL v2 or later"
 __author__ = """Sebastian Hilbert <Sebastian.Hilbert at gmx.net>, Karsten Hilbert <Karsten.Hilbert at gmx.net>"""
 
@@ -11,7 +14,7 @@ import os.path
 import os
 import time
 import shutil
-import codecs
+import io
 import glob
 import logging
 #import stat
@@ -413,8 +416,8 @@ class cXSaneScanner:
 
 		# our closest bet, might contain umlauts
 		enc = gmI18N.get_encoding()
-		fread = codecs.open(self._gm_custom_xsanerc, mode = "rU", encoding = enc)
-		fwrite = codecs.open(session_xsanerc, mode = "w", encoding = enc)
+		fread = io.open(self._gm_custom_xsanerc, mode = "rt", encoding = enc)
+		fwrite = io.open(session_xsanerc, mode = "wt", encoding = enc)
 
 		paths = gmTools.gmPaths()
 		val_dict = {
@@ -499,8 +502,8 @@ if __name__ == '__main__':
 
 		logging.basicConfig(level=logging.DEBUG)
 
-		print "devices:"
-		print get_devices()
+		print("devices:")
+		print(get_devices())
 
 		sys.exit()
 
@@ -512,10 +515,10 @@ if __name__ == '__main__':
 
 		idx = 1
 		for setup in setups:
-			print "scanning page #%s from device [%s]" % (idx, setup['dev'])
+			print("scanning page #%s from device [%s]" % (idx, setup['dev']))
 			idx += 1
 			fnames = acquire_pages_into_files(device = setup['dev'], filename = setup['file'], delay = (idx*5))
 			if fnames is False:
-				print "error, cannot acquire page"
+				print("error, cannot acquire page")
 			else:
-				print " image files:", fnames
+				print(" image files:", fnames)
diff --git a/client/pycommon/gmScriptingListener.py b/client/pycommon/gmScriptingListener.py
index adabe2b..f4a6c9f 100644
--- a/client/pycommon/gmScriptingListener.py
+++ b/client/pycommon/gmScriptingListener.py
@@ -108,7 +108,7 @@ class cScriptingListener:
 				try:
 					self._server.handle_request()
 				except:
-					print "cannot serve RPC"
+					print("cannot serve RPC")
 					break
 				if self._quit_lock.acquire(0):
 					break
diff --git a/client/pycommon/gmShellAPI.py b/client/pycommon/gmShellAPI.py
index 124c181..9b442c2 100644
--- a/client/pycommon/gmShellAPI.py
+++ b/client/pycommon/gmShellAPI.py
@@ -1,3 +1,6 @@
+
+from __future__ import print_function
+
 __doc__ = """GNUmed general tools."""
 
 #===========================================================================
@@ -269,25 +272,25 @@ if __name__ == '__main__':
 	def test_detect_external_binary():
 		found, path = detect_external_binary(binary = sys.argv[2])
 		if found:
-			print "found as:", path
+			print("found as:", path)
 		else:
-			print sys.argv[2], "not found"
+			print(sys.argv[2], "not found")
 	#---------------------------------------------------------
 	def test_run_command_in_shell():
-		print "-------------------------------------"
-		print "running:", sys.argv[2]
+		print("-------------------------------------")
+		print("running:", sys.argv[2])
 		if run_command_in_shell(command=sys.argv[2], blocking=False):
-			print "-------------------------------------"
-			print "success"
+			print("-------------------------------------")
+			print("success")
 		else:
-			print "-------------------------------------"
-			print "failure, consult log"
+			print("-------------------------------------")
+			print("failure, consult log")
 	#---------------------------------------------------------
 	def test_is_cmd_in_path():
-		print is_cmd_in_path(cmd = sys.argv[2])
+		print(is_cmd_in_path(cmd = sys.argv[2]))
 	#---------------------------------------------------------
 	def test_is_executable_by_wine():
-		print is_executable_by_wine(cmd = sys.argv[2])
+		print(is_executable_by_wine(cmd = sys.argv[2]))
 	#---------------------------------------------------------
 	test_run_command_in_shell()
 	#test_detect_external_binary()
diff --git a/client/pycommon/gmTools.py b/client/pycommon/gmTools.py
index de090ee..20d7058 100644
--- a/client/pycommon/gmTools.py
+++ b/client/pycommon/gmTools.py
@@ -1,4 +1,7 @@
 # -*- coding: utf-8 -*-
+
+from __future__ import print_function
+
 __doc__ = """GNUmed general tools."""
 
 #===========================================================================
@@ -17,20 +20,22 @@ import platform
 import subprocess
 import decimal
 import getpass
+import io
+import functools
+import json
+import shutil
+import zipfile
+import datetime as pydt
 import re as regex
 import xml.sax.saxutils as xml_tools
 # old:
-import cPickle, zlib
+import pickle, zlib
 
 
 # GNUmed libs
 if __name__ == '__main__':
-	# for testing:
-	logging.basicConfig(level = logging.DEBUG)
 	sys.path.insert(0, '../../')
-	from Gnumed.pycommon import gmI18N
-	gmI18N.activate_locale()
-	gmI18N.install_domain()
+
 
 from Gnumed.pycommon import gmBorg
 
@@ -69,7 +74,7 @@ u_numero = u'\u2116'						# No. / # sign
 u_down_left_arrow = u'\u21B5'				# <-'
 u_left_arrow = u'\u2190'					# <--
 u_up_arrow = u'\u2191'
-u_right_arrow = u'\u2192'					# -->
+u_arrow2right = u'\u2192'					# -->
 u_down_arrow = u'\u2193'
 u_left_arrow_with_tail = u'\u21a2'			# <--<
 u_sum = u'\u2211'							# sigma
@@ -78,8 +83,16 @@ u_corresponds_to = u'\u2258'
 u_infinity = u'\u221E'
 u_diameter = u'\u2300'
 u_checkmark_crossed_out = u'\u237B'
-u_box_horiz_single = u'\u2500'
+u_box_vert_left = u'\u23b8'
+u_box_vert_right = u'\u23b9'
+u_box_horiz_single = u'\u2500'				# -
+u_box_vert_light = u'\u2502'
+u_box_vert_light_4dashes = u'\u2506'
 u_box_horiz_4dashes = u'\u2508'
+u_box_T_right = u'\u251c'
+u_box_T_down = u'\u252c'
+u_box_T_up = u'\u2534'
+u_box_plus = u'\u253c'
 u_box_top_double = u'\u2550'
 u_box_top_left_double_single = u'\u2552'
 u_box_top_right_double_single = u'\u2555'
@@ -92,6 +105,9 @@ u_skull_and_crossbones = u'\u2620'
 u_frowning_face = u'\u2639'
 u_smiling_face = u'\u263a'
 u_black_heart = u'\u2665'
+u_female = u'\u2640'
+u_male = u'\u2642'
+u_male_female = u'\u26a5'
 u_checkmark_thin = u'\u2713'
 u_checkmark_thick = u'\u2714'
 u_writing_hand = u'\u270d'
@@ -112,11 +128,11 @@ _PB = 1024 * _TB
 #===========================================================================
 def handle_uncaught_exception_console(t, v, tb):
 
-	print ".========================================================"
-	print "| Unhandled exception caught !"
-	print "| Type :", t
-	print "| Value:", v
-	print "`========================================================"
+	print(".========================================================")
+	print("| Unhandled exception caught !")
+	print("| Type :", t)
+	print("| Value:", v)
+	print("`========================================================")
 	_log.critical('unhandled exception caught', exc_info = (t,v,tb))
 	sys.__excepthook__(t,v,tb)
 
@@ -131,12 +147,50 @@ def mkdir(directory=None, mode=None):
 			old_umask = os.umask(0)
 			os.makedirs(directory, mode)
 			os.umask(old_umask)
-	except OSError, e:
+	except OSError as e:
 		if (e.errno == 17) and not os.path.isdir(directory):
 			raise
 	return True
 
 #---------------------------------------------------------------------------
+def rmdir(directory):
+	#-------------------------------
+	def _on_rm_error(func, path, exc):
+		_log.error(u'error while shutil.rmtree(%s)', path, exc_info=exc)
+		return True
+	#-------------------------------
+	error_count = 0
+	try:
+		shutil.rmtree(directory, False, _on_rm_error)
+	except StandardError:
+		_log.exception('cannot shutil.rmtree(%s)', directory)
+		error_count += 1
+	return error_count
+
+#---------------------------------------------------------------------------
+def mk_sandbox_dir(prefix=None, base_dir=None):
+	if prefix is None:
+		if base_dir is None:
+			prefix = u'sandbox-'
+		else:
+			prefix = u'gm_sandbox-'
+	return tempfile.mkdtemp (
+		prefix = prefix,
+		suffix = u'',
+		dir = base_dir
+	)
+
+#---------------------------------------------------------------------------
+def parent_dir(directory):
+	return os.path.abspath(os.path.join(directory, '..'))
+
+#---------------------------------------------------------------------------
+def dirname_stem(directory):
+	# /home/user/dir/ -> dir
+	# /home/user/dir  -> dir
+	return os.path.basename(os.path.normpath(directory))		# normpath removes trailing slashes if any
+
+#---------------------------------------------------------------------------
 def dir_is_empty(directory=None):
 	return len(os.listdir(directory)) == 0
 
@@ -144,12 +198,12 @@ def dir_is_empty(directory=None):
 class gmPaths(gmBorg.cBorg):
 	"""This class provides the following paths:
 
-	.home_dir
-	.local_base_dir
-	.working_dir
+	.home_dir				user home
+	.local_base_dir			script installation dir
+	.working_dir			current dir
 	.user_config_dir
 	.system_config_dir
-	.system_app_data_dir
+	.system_app_data_dir	(not writable)
 	.tmp_dir
 	"""
 	def __init__(self, app_name=None, wx=None):
@@ -225,18 +279,13 @@ class gmPaths(gmBorg.cBorg):
 			_log.debug(u'temp dir already set')
 		except AttributeError:
 			_log.info(u'initial temp dir: %s', tempfile.gettempdir())
-			# /tmp/gnumed/
-			tmp_base = os.path.join(tempfile.gettempdir(), app_name)
-			mkdir(tmp_base, 0o777)
-			tempfile.tempdir = tmp_base
-			_log.info(u'level 1 intermediate temp dir: %s', tempfile.gettempdir())
-			# /tmp/gnumed/$USER/
-			tmp_base = os.path.join(tempfile.gettempdir(), getpass.getuser())
+			# $TMP/gnumed-$USER/
+			tmp_base = os.path.join(tempfile.gettempdir(), app_name + r'-' + getpass.getuser())
 			mkdir(tmp_base, 0o700)
 			tempfile.tempdir = tmp_base
-			_log.info(u'level 2 intermediate temp dir: %s', tempfile.gettempdir())
-			# /tmp/gnumed/$USER/gm-*/
-			self.tmp_dir = tempfile.mkdtemp(prefix = r'gm-')
+			_log.info(u'intermediate temp dir: %s', tempfile.gettempdir())
+			# $TMP/gnumed-$USER/g$UNIQUE/
+			self.tmp_dir = tempfile.mkdtemp(prefix = r'g')
 
 		self.__log_paths()
 		if wx is None:
@@ -367,6 +416,7 @@ class gmPaths(gmBorg.cBorg):
 		_log.debug('previous temp dir: %s', tempfile.gettempdir())
 		self.__tmp_dir = path
 		tempfile.tempdir = self.__tmp_dir
+		_log.debug('current temp dir: %s', tempfile.gettempdir())
 		self.__tmp_dir_already_set = True
 
 	def _get_tmp_dir(self):
@@ -377,6 +427,57 @@ class gmPaths(gmBorg.cBorg):
 #===========================================================================
 # file related tools
 #---------------------------------------------------------------------------
+def recode_file(source_file=None, target_file=None, source_encoding=u'utf8', target_encoding=None, base_dir=None, error_mode='replace'):
+	if target_encoding is None:
+		return source_file
+	if target_encoding == source_encoding:
+		return source_file
+	if target_file is None:
+		target_file = get_unique_filename (
+			prefix = u'%s-%s_%s-' % (fname_stem(source_file), source_encoding, target_encoding),
+			suffix = fname_extension(source_file, u'.txt'),
+			tmp_dir = base_dir
+		)
+
+	_log.debug('[%s] -> [%s] (%s -> %s)', source_encoding, target_encoding, source_file, target_file)
+
+	in_file = io.open(source_file, mode = 'rt', encoding = source_encoding)
+	out_file = io.open(target_file, mode = 'wt', encoding = target_encoding, errors = error_mode)
+	for line in in_file:
+		out_file.write(line)
+	out_file.close()
+	in_file.close()
+
+	return target_file
+
+#---------------------------------------------------------------------------
+def unzip_archive(archive_name, target_dir=None, remove_archive=False):
+	_log.debug('unzipping [%s] -> [%s]', archive_name, target_dir)
+	success = False
+	try:
+		with zipfile.ZipFile(archive_name) as archive:
+			archive.extractall(target_dir)
+		success = True
+	except StandardError:
+		_log.exception('cannot unzip')
+		return False
+	if remove_archive:
+		remove_file(archive_name)
+	return success
+
+#---------------------------------------------------------------------------
+def remove_file(filename, log_error=True):
+	# attempt file remove and ignore (but log) errors
+	try:
+		os.remove(filename)
+	except StandardError:
+		if log_error:
+			_log.exception('cannot os.remove(%s)', filename)
+		return False
+
+	return True
+
+#---------------------------------------------------------------------------
 def gpg_decrypt_file(filename=None, passphrase=None):
 
 	if platform.system() == 'Windows':
@@ -418,7 +519,7 @@ def file2md5(filename=None, return_hex=True):
 	blocksize = 2**10 * 128			# 128k, since md5 uses 128 byte blocks
 	_log.debug('md5(%s): <%s> byte blocks', filename, blocksize)
 
-	f = open(filename, 'rb')
+	f = io.open(filename, mode = 'rb')
 
 	md5 = hashlib.md5()
 	while True:
@@ -426,6 +527,7 @@ def file2md5(filename=None, return_hex=True):
 		if not data:
 			break
 		md5.update(data)
+	f.close()
 
 	_log.debug('md5(%s): %s', filename, md5.hexdigest())
 
@@ -498,9 +600,36 @@ def unicode_csv_reader(unicode_csv_data, dialect=csv.excel, encoding='utf-8', **
 
 #---------------------------------------------------------------------------
 def fname_stem(filename):
+	# /home/user/dir/filename.ext -> filename
 	return os.path.splitext(os.path.basename(filename))[0]
 
 #---------------------------------------------------------------------------
+def fname_stem_with_path(filename):
+	# /home/user/dir/filename.ext -> /home/user/dir/filename
+	return os.path.splitext(filename)[0]
+
+#---------------------------------------------------------------------------
+def fname_extension(filename=None, fallback=None):
+	# /home/user/dir/filename.ext -> .ext
+	# '' or '.' -> fallback if any else ''
+	ext = os.path.splitext(filename)[1]
+	if ext.strip() not in [u'.', u'']:
+		return ext
+	if fallback is None:
+		return u''
+	return fallback
+
+#---------------------------------------------------------------------------
+def fname_dir(filename):
+	# /home/user/dir/filename.ext -> /home/user/dir
+	return os.path.split(filename)[0]
+
+#---------------------------------------------------------------------------
+def fname_from_path(filename):
+	# /home/user/dir/filename.ext -> filename.ext
+	return os.path.split(filename)[1]
+
+#---------------------------------------------------------------------------
 def get_unique_filename(prefix=None, suffix=None, tmp_dir=None):
 	"""This introduces a race condition between the file.close() and
 	actually using the filename.
@@ -516,7 +645,12 @@ def get_unique_filename(prefix=None, suffix=None, tmp_dir=None):
 			_log.warning('cannot find temporary dir [%s], using system default', tmp_dir)
 			tmp_dir = None
 
-	kwargs = {'dir': tmp_dir}
+	kwargs = {
+		'dir': tmp_dir,
+		#  make sure file gets deleted as soon as
+		# .close()d so we can safely open it again
+		'delete': True
+	}
 
 	if prefix is None:
 		kwargs['prefix'] = 'gnumed-'
@@ -555,7 +689,7 @@ def import_module_from_directory(module_path=None, module_name=None, always_remo
 
 	try:
 		module = __import__(module_name)
-	except StandardError:
+	except Exception:
 		_log.exception('cannot __import__() module [%s] from [%s]' % (module_name, module_path))
 		while module_path in sys.path:
 			sys.path.remove(module_path)
@@ -585,6 +719,7 @@ def size2str(size=0, template=u'%s'):
 	if size < _PB:
 		return template % u'%.1f TB' % (float(size) / _TB)
 	return template % u'%.1f PB' % (float(size) / _PB)
+
 #---------------------------------------------------------------------------
 def bool2subst(boolean=None, true_return=True, false_return=False, none_return=None):
 	if boolean is None:
@@ -594,6 +729,7 @@ def bool2subst(boolean=None, true_return=True, false_return=False, none_return=N
 	if not boolean:
 		return false_return
 	raise ValueError('bool2subst(): <boolean> arg must be either of True, False, None')
+
 #---------------------------------------------------------------------------
 def bool2str(boolean=None, true_str='True', false_str='False'):
 	return bool2subst (
@@ -601,6 +737,7 @@ def bool2str(boolean=None, true_str='True', false_str='False'):
 		true_return = true_str,
 		false_return = false_str
 	)
+
 #---------------------------------------------------------------------------
 def none_if(value=None, none_equivalent=None, strip_string=False):
 	"""Modelled after the SQL NULLIF function."""
@@ -613,6 +750,7 @@ def none_if(value=None, none_equivalent=None, strip_string=False):
 	if stripped == none_equivalent:
 		return None
 	return value
+
 #---------------------------------------------------------------------------
 def coalesce(initial=None, instead=None, template_initial=None, template_instead=None, none_equivalents=None, function_initial=None):
 	"""Modelled after the SQL coalesce function.
@@ -662,6 +800,7 @@ def coalesce(initial=None, instead=None, template_initial=None, template_instead
 		return template_initial % initial
 	except TypeError:
 		return template_initial
+
 #---------------------------------------------------------------------------
 def __cap_name(match_obj=None):
 	val = match_obj.group(0).lower()
@@ -673,6 +812,7 @@ def __cap_name(match_obj=None):
 		if len(val) > len(part) and val[:len(part)] == part:
 			buf[len(part)] = buf[len(part)].upper()
 	return ''.join(buf)
+
 #---------------------------------------------------------------------------
 def capitalize(text=None, mode=CAPS_NAMES):
 	"""Capitalize the first character but leave the rest alone.
@@ -695,19 +835,21 @@ def capitalize(text=None, mode=CAPS_NAMES):
 		return text.upper()
 
 	if mode == CAPS_FIRST_ONLY:
-		if len(text) == 1:
-			return text[0].upper()
+#		if len(text) == 1:
+#			return text[0].upper()
 		return text[0].upper() + text[1:].lower()
 
 	if mode == CAPS_WORDS:
-		return regex.sub(ur'(\w)(\w+)', lambda x: x.group(1).upper() + x.group(2).lower(), text)
+		#return regex.sub(ur'(\w)(\w+)', lambda x: x.group(1).upper() + x.group(2).lower(), text)
+		return regex.sub(r'(\w)(\w+)', lambda x: x.group(1).upper() + x.group(2).lower(), text)
 
 	if mode == CAPS_NAMES:
 		#return regex.sub(r'\w+', __cap_name, text)
 		return capitalize(text=text, mode=CAPS_FIRST)		# until fixed
 
-	print "ERROR: invalid capitalization mode: [%s], leaving input as is" % mode
+	print("ERROR: invalid capitalization mode: [%s], leaving input as is" % mode)
 	return text
+
 #---------------------------------------------------------------------------
 def input2decimal(initial=None):
 
@@ -730,6 +872,7 @@ def input2decimal(initial=None):
 		return True, d
 	except (TypeError, decimal.InvalidOperation):
 		return False, val
+
 #---------------------------------------------------------------------------
 def input2int(initial=None, minval=None, maxval=None):
 
@@ -756,6 +899,36 @@ def input2int(initial=None, minval=None, maxval=None):
 			return False, initial
 
 	return True, int_val
+
+#---------------------------------------------------------------------------
+def strip_prefix(text, prefix, remove_repeats=False, remove_whitespace=False):
+	if remove_repeats:
+		if remove_whitespace:
+			while text.lstrip().startswith(prefix):
+				text = text.lstrip().replace(prefix, u'', 1).lstrip()
+			return text
+		while text.startswith(prefix):
+			text = text.replace(prefix, u'', 1)
+		return text
+	if remove_whitespace:
+		return text.lstrip().replace(prefix, u'', 1).lstrip()
+	return text.replace(prefix, u'', 1)
+
+#---------------------------------------------------------------------------
+def strip_suffix(text, suffix, remove_repeats=False, remove_whitespace=False):
+	suffix_len = len(suffix)
+	if remove_repeats:
+		if remove_whitespace:
+			while text.rstrip().endswith(suffix):
+				text = text.rstrip()[:-suffix_len].rstrip()
+			return text
+		while text.endswith(suffix):
+			text = text[:-suffix_len]
+		return text
+	if remove_whitespace:
+		return text.rstrip()[:-suffix_len].rstrip()
+	return text[:-suffix_len]
+
 #---------------------------------------------------------------------------
 def strip_leading_empty_lines(lines=None, text=None, eol=u'\n', return_list=True):
 	if lines is None:
@@ -770,6 +943,7 @@ def strip_leading_empty_lines(lines=None, text=None, eol=u'\n', return_list=True
 		return lines
 
 	return eol.join(lines)
+
 #---------------------------------------------------------------------------
 def strip_trailing_empty_lines(lines=None, text=None, eol=u'\n', return_list=True):
 	if lines is None:
@@ -784,6 +958,7 @@ def strip_trailing_empty_lines(lines=None, text=None, eol=u'\n', return_list=Tru
 		return lines
 
 	return eol.join(lines)
+
 #---------------------------------------------------------------------------
 def strip_empty_lines(lines=None, text=None, eol=u'\n', return_list=True):
 	return strip_trailing_empty_lines (
@@ -792,6 +967,27 @@ def strip_empty_lines(lines=None, text=None, eol=u'\n', return_list=True):
 		eol = eol,
 		return_list = return_list
 	)
+
+#---------------------------------------------------------------------------
+def list2text(lines, initial_indent=u'', subsequent_indent=u'', eol=u'\n', strip_leading_empty_lines=True, strip_trailing_empty_lines=True, strip_trailing_whitespace=True):
+
+	if len(lines) == 0:
+		return u''
+
+	if strip_leading_empty_lines:
+		lines = strip_leading_empty_lines(lines = lines, eol = eol, return_list = True)
+
+	if strip_trailing_empty_lines:
+		lines = strip_trailing_empty_lines(lines = lines, eol = eol, return_list = True)
+
+	if strip_trailing_whitespace:
+		lines = [ l.rstrip() for l in lines ]
+
+	indented_lines = [initial_indent + lines[0]]
+	indented_lines.extend([ subsequent_indent + l for l in lines[1:] ])
+
+	return eol.join(indented_lines)
+
 #---------------------------------------------------------------------------
 def wrap(text=None, width=None, initial_indent=u'', subsequent_indent=u'', eol=u'\n'):
 	"""A word-wrap function that preserves existing line breaks
@@ -800,7 +996,7 @@ def wrap(text=None, width=None, initial_indent=u'', subsequent_indent=u'', eol=u
 	"""
 	if width is None:
 		return text
-	wrapped = initial_indent + reduce (
+	wrapped = initial_indent + functools.reduce (
 		lambda line, word, width=width: '%s%s%s' % (
 			line,
 			' \n'[(len(line) - line.rfind('\n') - 1 + len(word.split('\n',1)[0]) >= width)],
@@ -816,6 +1012,7 @@ def wrap(text=None, width=None, initial_indent=u'', subsequent_indent=u'', eol=u
 		wrapped = wrapped.replace('\n', eol)
 
 	return wrapped
+
 #---------------------------------------------------------------------------
 def unwrap(text=None, max_length=None, strip_whitespace=True, remove_empty_lines=True, line_separator = u' // '):
 
@@ -841,17 +1038,36 @@ def unwrap(text=None, max_length=None, strip_whitespace=True, remove_empty_lines
 	text = text.rstrip(line_separator)
 
 	return text
+
+#---------------------------------------------------------------------------
+def shorten_text(text=None, max_length=None):
+
+	if len(text) <= max_length:
+		return text
+
+	return text[:max_length-1] + u_ellipsis
+
 #---------------------------------------------------------------------------
 def xml_escape_string(text=None):
 	"""check for special XML characters and transform them"""
 	return xml_tools.escape(text)
+
 #---------------------------------------------------------------------------
 def tex_escape_string(text=None, replace_known_unicode=True, replace_eol=False, keep_visual_eol=False):
-	"""check for special TeX characters and transform them"""
-
-	text = text.replace(u'\\', u'\\textbackslash')
-	text = text.replace(u'^', u'\\textasciicircum')
-	text = text.replace(u'~', u'\\textasciitilde')
+	"""Check for special TeX characters and transform them.
+
+		replace_eol:
+			replaces "\n" with "\\newline"
+		keep_visual_eol:
+			replaces "\n" with "\\newline \n" such that
+			both LaTeX will know to place a line break
+			at this point as well as the visual formatting
+			is preserved in the LaTeX source (think multi-
+			row table cells)
+	"""
+	text = text.replace(u'\\', u'\\textbackslash')			# requires \usepackage{textcomp} in LaTeX source
+	text = text.replace(u'^', u'\\textasciicircum')			# requires \usepackage{textcomp} in LaTeX source
+	text = text.replace(u'~', u'\\textasciitilde')			# requires \usepackage{textcomp} in LaTeX source
 
 	text = text.replace(u'{', u'\\{')
 	text = text.replace(u'}', u'\\}')
@@ -871,11 +1087,13 @@ def tex_escape_string(text=None, replace_known_unicode=True, replace_eol=False,
 		text = text.replace(u_euro, u'\\EUR')
 
 	return text
+
 #---------------------------------------------------------------------------
 def xetex_escape_string(text=None):
 	# a web search did not reveal anything else for Xe(La)Tex
 	# as opposed to LaTeX, except true unicode chars
 	return tex_escape_string(text = text, replace_known_unicode = False)
+
 #---------------------------------------------------------------------------
 __html_escape_table = {
 	u"&": u"&",
@@ -885,21 +1103,45 @@ __html_escape_table = {
 	u"<": u"<",
 }
 
-def html_escape_string(text=None):
-	return "".join(__html_escape_table.get(char, char) for char in text)
+def html_escape_string(text=None, replace_eol=False, keep_visual_eol=False):
+	text = u''.join(__html_escape_table.get(char, char) for char in text)
+	if replace_eol:
+		if keep_visual_eol:
+			text = text.replace(u'\n', u'<br>\n')
+		else:
+			text = text.replace(u'\n', u'<br>')
+	return text
+
+#---------------------------------------------------------------------------
+def dict2json(obj):
+	return json.dumps(obj, default = json_serialize)
+
+#---------------------------------------------------------------------------
+def json_serialize(obj):
+	if isinstance(obj, pydt.datetime):
+		return obj.isoformat()
+	raise TypeError('cannot json_serialize(%s)' % type(obj))
 
 #---------------------------------------------------------------------------
 #---------------------------------------------------------------------------
 def compare_dict_likes(d1, d2, title1=None, title2=None):
 	_log.info('comparing dict-likes: %s[%s] vs %s[%s]', coalesce(title1, u'', u'"%s" '), type(d1), coalesce(title2, u'', u'"%s" '), type(d2))
-	k1 = frozenset(d1)
-	k2 = frozenset(d2)
+	try:
+		d1 = dict(d1)
+	except TypeError:
+		pass
+	try:
+		d2 = dict(d2)
+	except TypeError:
+		pass
+	keys_d1 = frozenset(d1.keys())
+	keys_d2 = frozenset(d2.keys())
 	different = False
-	if len(k1) != len(k2):
-		_log.info('different number of keys: %s vs %s', len(k1), len(k2))
+	if len(keys_d1) != len(keys_d2):
+		_log.info('different number of keys: %s vs %s', len(keys_d1), len(keys_d2))
 		different = True
-	for key in k1:
-		if key in k2:
+	for key in keys_d1:
+		if key in keys_d2:
 			if type(d1[key]) != type(d2[key]):
 				_log.info(u'%25.25s: type(dict1) = %s = >>>%s<<<' % (key, type(d1[key]), d1[key]))
 				_log.info(u'%25.25s  type(dict2) = %s = >>>%s<<<' % (u'', type(d2[key]), d2[key]))
@@ -914,8 +1156,8 @@ def compare_dict_likes(d1, d2, title1=None, title2=None):
 		else:
 			_log.info(u'%25.25s: %50.50s | <MISSING>' % (key, u'>>>%s<<<' % d1[key]))
 			different = True
-	for key in k2:
-		if key in k1:
+	for key in keys_d2:
+		if key in keys_d1:
 			continue
 		_log.info(u'%25.25s: %50.50s | %.50s' % (key, u'<MISSING>', u'>>>%s<<<' % d2[key]))
 		different = True
@@ -926,6 +1168,155 @@ def compare_dict_likes(d1, d2, title1=None, title2=None):
 	return True
 
 #---------------------------------------------------------------------------
+def format_dict_likes_comparison(d1, d2, title_left=None, title_right=None, left_margin=0, key_delim=u' || ', data_delim=u' | ', missing_string=u'=/=', difference_indicator=u'! ', ignore_diff_in_keys=None):
+
+	_log.info('comparing dict-likes: %s[%s] vs %s[%s]', coalesce(title_left, u'', u'"%s" '), type(d1), coalesce(title_right, u'', u'"%s" '), type(d2))
+	append_type = False
+	if None not in [title_left, title_right]:
+		append_type = True
+		type_left = type(d1)
+		type_right = type(d2)
+	if title_left is None:
+		title_left = u'%s' % type_left
+	if title_right is None:
+		title_right = u'%s' % type_right
+
+	try: d1 = dict(d1)
+	except TypeError: pass
+	try: d2 = dict(d2)
+	except TypeError: pass
+	keys_d1 = d1.keys()
+	keys_d2 = d2.keys()
+	data = {}
+	for key in keys_d1:
+		data[key] = [d1[key], u' ']
+		if key in d2:
+			data[key][1] = d2[key]
+	for key in keys_d2:
+		if key in keys_d1:
+			continue
+		data[key] = [u' ', d2[key]]
+	max1 = max([ len(u'%s' % k) for k in keys_d1 ])
+	max2 = max([ len(u'%s' % k) for k in keys_d2 ])
+	max_len = max(max1, max2, len(_('<type>')))
+	max_key_len_str = u'%' + u'%s.%s' % (max_len, max_len) + u's'
+	max1 = max([ len(u'%s' % d1[k]) for k in keys_d1 ])
+	max2 = max([ len(u'%s' % d2[k]) for k in keys_d2 ])
+	max_data_len = min(max(max1, max2), 100)
+	max_data_len_str = u'%' + u'%s.%s' % (max_data_len, max_data_len) + u's'
+	diff_indicator_len_str = u'%' + u'%s.%s' % (len(difference_indicator), len(difference_indicator)) + u's'
+	line_template = (u' ' * left_margin) + diff_indicator_len_str + max_key_len_str + key_delim + max_data_len_str + data_delim + u'%s'
+
+	lines = []
+	# debugging:
+	#lines.append(u'                                        (40 regular spaces)')
+	#lines.append((u' ' * 40) + u"(u' ' * 40)")
+	#lines.append((u'%40.40s' % u'') + u"(u'%40.40s' % u'')")
+	#lines.append((u'%40.40s' % u' ') + u"(u'%40.40s' % u' ')")
+	#lines.append((u'%40.40s' % u'.') + u"(u'%40.40s' % u'.')")
+	#lines.append(line_template)
+	lines.append(line_template % (u'', u'', title_left, title_right))
+	if append_type:
+		lines.append(line_template % (u'', _('<type>'), type_left, type_right))
+
+	if ignore_diff_in_keys is None:
+		ignore_diff_in_keys = []
+
+	for key in keys_d1:
+		append_type = False
+		txt_left_col = u'%s' % d1[key]
+		try:
+			txt_right_col = u'%s' % d2[key]
+			if type(d1[key]) != type(d2[key]):
+				append_type = True
+		except KeyError:
+			txt_right_col = missing_string
+		lines.append(line_template % (
+			bool2subst (
+				((txt_left_col == txt_right_col) or (key in ignore_diff_in_keys)),
+				u'',
+				difference_indicator
+			),
+			key,
+			shorten_text(txt_left_col, max_data_len),
+			shorten_text(txt_right_col, max_data_len)
+		))
+		if append_type:
+			lines.append(line_template % (
+				u'',
+				_('<type>'),
+				shorten_text(u'%s' % type(d1[key]), max_data_len),
+				shorten_text(u'%s' % type(d2[key]), max_data_len)
+			))
+
+	for key in keys_d2:
+		if key in keys_d1:
+			continue
+		lines.append(line_template % (
+			bool2subst((key in ignore_diff_in_keys), u'', difference_indicator),
+			key,
+			shorten_text(missing_string, max_data_len),
+			shorten_text(u'%s' % d2[key], max_data_len)
+		))
+
+	return lines
+
+#---------------------------------------------------------------------------
+def format_dict_like(d, relevant_keys=None, template=None, missing_key_template=u'<[%(key)s] MISSING>', left_margin=0, tabular=False, value_delimiters=(u'>>>', u'<<<'), eol=u'\n'):
+	if template is not None:
+		# all keys in template better exist in d
+		try:
+			return template % d
+		except KeyError:
+			# or else
+			_log.exception('template contains %%()s key(s) which do not exist in dict')
+		# try to extend dict <d> to contain all required keys,
+		# for that to work <relevant_keys> better list all
+		# keys used in <template>
+		if relevant_keys is not None:
+			for key in relevant_keys:
+				try:
+					d[key]
+				except KeyError:
+					d[key] = missing_key_template % {u'key': key}
+			return template % d
+
+	if relevant_keys is None:
+		relevant_keys = d.keys()
+	lines = []
+	if value_delimiters is None:
+		delim_left = u''
+		delim_right = u''
+	else:
+		delim_left, delim_right = value_delimiters
+	if tabular:
+		max_len = max([ len(i) for i in relevant_keys ])
+		max_len_str = u'%s.%s' % (max_len, max_len)
+		line_template = (u' ' * left_margin) + u'%' + max_len_str + ('s: %s%%s%s' % (delim_left, delim_right))
+	else:
+		line_template = (u' ' * left_margin) + u'%%s: %s%%s%s' % (delim_left, delim_right)
+	for key in relevant_keys:
+		try:
+			lines.append(line_template % (key, d[key]))
+		except KeyError:
+			pass
+	if eol is None:
+		return lines
+	return eol.join(lines)
+
+#---------------------------------------------------------------------------
+def normalize_dict_like(d, required_keys, missing_key_template=u'<[%(key)s] MISSING>'):
+	for key in required_keys:
+		try:
+			d[key]
+		except KeyError:
+			if missing_key_template is None:
+				d[key] = None
+			else:
+				d[key] = missing_key_template % {'key': key}
+	return d
+
+#---------------------------------------------------------------------------
 #---------------------------------------------------------------------------
 def prompted_input(prompt=None, default=None):
 	"""Obtains entry from standard input.
@@ -989,7 +1380,7 @@ def get_icon(wx=None):
 
 	if found_as is None:
 		_log.warning('no icon file found, falling back to builtin (ugly) icon')
-		icon_bmp_data = wx.BitmapFromXPMData(cPickle.loads(zlib.decompress(__icon_serpent)))
+		icon_bmp_data = wx.BitmapFromXPMData(pickle.loads(zlib.decompress(__icon_serpent)))
 		icon.CopyFromBitmap(icon_bmp_data)
 	else:
 		_log.debug('icon found in [%s]', found_as)
@@ -1011,6 +1402,12 @@ if __name__ == '__main__':
 	if sys.argv[1] != 'test':
 		sys.exit()
 
+	# for testing:
+	logging.basicConfig(level = logging.DEBUG)
+	from Gnumed.pycommon import gmI18N
+	gmI18N.activate_locale()
+	gmI18N.install_domain()
+
 	#-----------------------------------------------------------------------
 	def test_input2decimal():
 
@@ -1061,27 +1458,27 @@ if __name__ == '__main__':
 					if result == test[2]:
 						continue
 					else:
-						print "ERROR (conversion result wrong): >%s<, expected >%s<, got >%s<" % (test[0], test[2], result)
+						print("ERROR (conversion result wrong): >%s<, expected >%s<, got >%s<" % (test[0], test[2], result))
 				else:
-					print "ERROR (conversion worked but was expected to fail): >%s<, got >%s<" % (test[0], result)
+					print("ERROR (conversion worked but was expected to fail): >%s<, got >%s<" % (test[0], result))
 			else:
 				if not expected2work:
 					continue
 				else:
-					print "ERROR (conversion failed but was expected to work): >%s<, expected >%s<" % (test[0], test[2])
+					print("ERROR (conversion failed but was expected to work): >%s<, expected >%s<" % (test[0], test[2]))
 	#-----------------------------------------------------------------------
 	def test_input2int():
-		print input2int(0)
-		print input2int('0')
-		print input2int(u'0', 0, 0)
+		print(input2int(0))
+		print(input2int('0'))
+		print(input2int(u'0', 0, 0))
 	#-----------------------------------------------------------------------
 	def test_coalesce():
 
 		import datetime as dt
-		print coalesce(initial = dt.datetime.now(), template_initial = u'-- %s --', function_initial = ('strftime', u'%Y-%m-%d'))
+		print(coalesce(initial = dt.datetime.now(), template_initial = u'-- %s --', function_initial = ('strftime', u'%Y-%m-%d')))
 
-		print 'testing coalesce()'
-		print "------------------"
+		print('testing coalesce()')
+		print("------------------")
 		tests = [
 			[None, 'something other than <None>', None, None, 'something other than <None>'],
 			['Captain', 'Mr.', '%s.'[:4], 'Mr.', 'Capt.'],
@@ -1099,20 +1496,20 @@ if __name__ == '__main__':
 				template_instead = test[3]
 			)
 			if result != test[4]:
-				print "ERROR"
-				print "coalesce: (%s, %s, %s, %s)" % (test[0], test[1], test[2], test[3])
-				print "expected:", test[4]
-				print "received:", result
+				print("ERROR")
+				print("coalesce: (%s, %s, %s, %s)" % (test[0], test[1], test[2], test[3]))
+				print("expected:", test[4])
+				print("received:", result)
 				passed = False
 
 		if passed:
-			print "passed"
+			print("passed")
 		else:
-			print "failed"
+			print("failed")
 		return passed
 	#-----------------------------------------------------------------------
 	def test_capitalize():
-		print 'testing capitalize() ...'
+		print('testing capitalize() ...')
 		success = True
 		pairs = [
 			# [original, expected result, CAPS mode]
@@ -1136,45 +1533,45 @@ if __name__ == '__main__':
 			result = capitalize(pair[0], pair[2])
 			if result != pair[1]:
 				success = False
-				print 'ERROR (caps mode %s): "%s" -> "%s", expected "%s"' % (pair[2], pair[0], result, pair[1])
+				print('ERROR (caps mode %s): "%s" -> "%s", expected "%s"' % (pair[2], pair[0], result, pair[1]))
 
 		if success:
-			print "... SUCCESS"
+			print("... SUCCESS")
 
 		return success
 	#-----------------------------------------------------------------------
 	def test_import_module():
-		print "testing import_module_from_directory()"
+		print("testing import_module_from_directory()")
 		path = sys.argv[1]
 		name = sys.argv[2]
 		try:
 			mod = import_module_from_directory(module_path = path, module_name = name)
 		except:
-			print "module import failed, see log"
+			print("module import failed, see log")
 			return False
 
-		print "module import succeeded", mod
-		print dir(mod)
+		print("module import succeeded", mod)
+		print(dir(mod))
 		return True
 	#-----------------------------------------------------------------------
 	def test_mkdir():
-		print "testing mkdir()"
+		print("testing mkdir(%s)" % sys.argv[1])
 		mkdir(sys.argv[1])
 	#-----------------------------------------------------------------------
 	def test_gmPaths():
-		print "testing gmPaths()"
-		print "-----------------"
+		print("testing gmPaths()")
+		print("-----------------")
 		paths = gmPaths(wx=None, app_name='gnumed')
-		print "user     config dir:", paths.user_config_dir
-		print "system   config dir:", paths.system_config_dir
-		print "local      base dir:", paths.local_base_dir
-		print "system app data dir:", paths.system_app_data_dir
-		print "working directory  :", paths.working_dir
-		print "temp directory     :", paths.tmp_dir
+		print("user     config dir:", paths.user_config_dir)
+		print("system   config dir:", paths.system_config_dir)
+		print("local      base dir:", paths.local_base_dir)
+		print("system app data dir:", paths.system_app_data_dir)
+		print("working directory  :", paths.working_dir)
+		print("temp directory     :", paths.tmp_dir)
 	#-----------------------------------------------------------------------
 	def test_none_if():
-		print "testing none_if()"
-		print "-----------------"
+		print("testing none_if()")
+		print("-----------------")
 		tests = [
 			[None, None, None],
 			['a', 'a', None],
@@ -1189,7 +1586,7 @@ if __name__ == '__main__':
 
 		for test in tests:
 			if none_if(value = test[0], none_equivalent = test[1]) != test[2]:
-				print 'ERROR: none_if(%s) returned [%s], expected [%s]' % (test[0], none_if(test[0], test[1]), test[2])
+				print('ERROR: none_if(%s) returned [%s], expected [%s]' % (test[0], none_if(test[0], test[1]), test[2]))
 
 		return True
 	#-----------------------------------------------------------------------
@@ -1200,29 +1597,29 @@ if __name__ == '__main__':
 		]
 		for test in tests:
 			if bool2str(test[0], test[1], test[2]) != test[3]:
-				print 'ERROR: bool2str(%s, %s, %s) returned [%s], expected [%s]' % (test[0], test[1], test[2], bool2str(test[0], test[1], test[2]), test[3])
+				print('ERROR: bool2str(%s, %s, %s) returned [%s], expected [%s]' % (test[0], test[1], test[2], bool2str(test[0], test[1], test[2]), test[3]))
 
 		return True
 	#-----------------------------------------------------------------------
 	def test_bool2subst():
 
-		print bool2subst(True, 'True', 'False', 'is None')
-		print bool2subst(False, 'True', 'False', 'is None')
-		print bool2subst(None, 'True', 'False', 'is None')
+		print(bool2subst(True, 'True', 'False', 'is None'))
+		print(bool2subst(False, 'True', 'False', 'is None'))
+		print(bool2subst(None, 'True', 'False', 'is None'))
 	#-----------------------------------------------------------------------
 	def test_get_unique_filename():
-		print get_unique_filename()
-		print get_unique_filename(prefix='test-')
-		print get_unique_filename(suffix='tst')
-		print get_unique_filename(prefix='test-', suffix='tst')
-		print get_unique_filename(tmp_dir='/home/ncq/Archiv/')
+		print(get_unique_filename())
+		print(get_unique_filename(prefix='test-'))
+		print(get_unique_filename(suffix='tst'))
+		print(get_unique_filename(prefix='test-', suffix='tst'))
+		print(get_unique_filename(tmp_dir='/home/ncq/Archiv/'))
 	#-----------------------------------------------------------------------
 	def test_size2str():
-		print "testing size2str()"
-		print "------------------"
+		print("testing size2str()")
+		print("------------------")
 		tests = [0, 1, 1000, 10000, 100000, 1000000, 10000000, 100000000, 1000000000, 10000000000, 100000000000, 1000000000000, 10000000000000]
 		for test in tests:
-			print size2str(test)
+			print(size2str(test))
 	#-----------------------------------------------------------------------
 	def test_unwrap():
 
@@ -1234,64 +1631,64 @@ second line\n
 6th
 
 """
-		print unwrap(text = test, max_length = 25)
+		print(unwrap(text = test, max_length = 25))
 	#-----------------------------------------------------------------------
 	def test_wrap():
 		test = 'line 1\nline 2\nline 3'
 
-		print "wrap 5-6-7 initial 0, subsequent 0"
-		print wrap(test, 5)
-		print
-		print wrap(test, 6)
-		print
-		print wrap(test, 7)
-		print "-------"
+		print("wrap 5-6-7 initial 0, subsequent 0")
+		print(wrap(test, 5))
+		print()
+		print(wrap(test, 6))
+		print()
+		print(wrap(test, 7))
+		print("-------")
 		raw_input()
-		print "wrap 5 initial 1-1-3, subsequent 1-3-1"
-		print wrap(test, 5, u' ', u' ')
-		print
-		print wrap(test, 5, u' ', u'   ')
-		print
-		print wrap(test, 5, u'   ', u' ')
-		print "-------"
+		print("wrap 5 initial 1-1-3, subsequent 1-3-1")
+		print(wrap(test, 5, u' ', u' '))
+		print()
+		print(wrap(test, 5, u' ', u'   '))
+		print()
+		print(wrap(test, 5, u'   ', u' '))
+		print("-------")
 		raw_input()
-		print "wrap 6 initial 1-1-3, subsequent 1-3-1"
-		print wrap(test, 6, u' ', u' ')
-		print
-		print wrap(test, 6, u' ', u'   ')
-		print
-		print wrap(test, 6, u'   ', u' ')
-		print "-------"
+		print("wrap 6 initial 1-1-3, subsequent 1-3-1")
+		print(wrap(test, 6, u' ', u' '))
+		print()
+		print(wrap(test, 6, u' ', u'   '))
+		print()
+		print(wrap(test, 6, u'   ', u' '))
+		print("-------")
 		raw_input()
-		print "wrap 7 initial 1-1-3, subsequent 1-3-1"
-		print wrap(test, 7, u' ', u' ')
-		print
-		print wrap(test, 7, u' ', u'   ')
-		print
-		print wrap(test, 7, u'   ', u' ')
+		print("wrap 7 initial 1-1-3, subsequent 1-3-1")
+		print(wrap(test, 7, u' ', u' '))
+		print()
+		print(wrap(test, 7, u' ', u'   '))
+		print()
+		print(wrap(test, 7, u'   ', u' '))
 	#-----------------------------------------------------------------------
 	def test_md5():
-		print 'md5 %s: %s' % (sys.argv[2], file2md5(sys.argv[2]))
-		print 'chunked md5 %s: %s' % (sys.argv[2], file2chunked_md5(sys.argv[2]))
+		print('md5 %s: %s' % (sys.argv[2], file2md5(sys.argv[2])))
+		print('chunked md5 %s: %s' % (sys.argv[2], file2chunked_md5(sys.argv[2])))
 	#-----------------------------------------------------------------------
 	def test_unicode():
-		print u_link_symbol * 10
+		print(u_link_symbol * 10)
 	#-----------------------------------------------------------------------
 	def test_xml_escape():
-		print xml_escape_string(u'<')
-		print xml_escape_string(u'>')
-		print xml_escape_string(u'&')
+		print(xml_escape_string(u'<'))
+		print(xml_escape_string(u'>'))
+		print(xml_escape_string(u'&'))
 	#-----------------------------------------------------------------------
 	def test_tex_escape():
 		tests = [u'\\', u'^', u'~', u'{', u'}', u'%',  u'&', u'#', u'$', u'_', u_euro, u'abc\ndef\n\n1234']
 		tests.append(u'  '.join(tests))
 		for test in tests:
-			print u'%s:' % test, tex_escape_string(test)
+			print(u'%s:' % test, tex_escape_string(test))
 	#-----------------------------------------------------------------------
 	def test_gpg_decrypt():
 		fname = gpg_decrypt_file(filename = sys.argv[2], passphrase = sys.argv[3])
 		if fname is not None:
-			print "successfully decrypted:", fname
+			print("successfully decrypted:", fname)
 	#-----------------------------------------------------------------------
 	def test_strip_trailing_empty_lines():
 		tests = [
@@ -1299,19 +1696,19 @@ second line\n
 			u'one line\nwith embedded\nline\nbreaks\n   '
 		]
 		for test in tests:
-			print 'as list:'
-			print strip_trailing_empty_lines(text = test, eol=u'\n', return_list = True)
-			print 'as string:'
-			print u'>>>%s<<<' % strip_trailing_empty_lines(text = test, eol=u'\n', return_list = False)
+			print('as list:')
+			print(strip_trailing_empty_lines(text = test, eol=u'\n', return_list = True))
+			print('as string:')
+			print(u'>>>%s<<<' % strip_trailing_empty_lines(text = test, eol=u'\n', return_list = False))
 		tests = [
 			['list', 'without', 'empty', 'trailing', 'lines'],
 			['list', 'with', 'empty', 'trailing', 'lines', '', '  ', '']
 		]
 		for test in tests:
-			print 'as list:'
-			print strip_trailing_empty_lines(lines = test, eol = u'\n', return_list = True)
-			print 'as string:'
-			print strip_trailing_empty_lines(lines = test, eol = u'\n', return_list = False)
+			print('as list:')
+			print(strip_trailing_empty_lines(lines = test, eol = u'\n', return_list = True))
+			print('as string:')
+			print(strip_trailing_empty_lines(lines = test, eol = u'\n', return_list = False))
 	#-----------------------------------------------------------------------
 	def test_fname_stem():
 		tests = [
@@ -1326,10 +1723,10 @@ second line\n
 			r'tmp.txt'
 		]
 		for t in tests:
-			print "[%s] -> [%s]" % (t, fname_stem(t))
+			print("[%s] -> [%s]" % (t, fname_stem(t)))
 	#-----------------------------------------------------------------------
 	def test_dir_is_empty():
-		print sys.argv[2], 'empty:', dir_is_empty(sys.argv[2])
+		print(sys.argv[2], 'empty:', dir_is_empty(sys.argv[2]))
 	#-----------------------------------------------------------------------
 	def test_compare_dicts():
 		d1 = {}
@@ -1351,6 +1748,66 @@ second line\n
 		d2 = {1: 1, 2: 2}
 
 		compare_dict_likes(d1, d2, 'same1', 'same2')
+		print(format_dict_like(d1))
+		print(format_dict_like(d2))
+
+	#-----------------------------------------------------------------------
+	def test_format_compare_dicts():
+		d1 = {}
+		d2 = {}
+		d1[1] = 1
+		d1[2] = 2
+		d1[3] = 3
+		# 4
+		d1[5] = 5
+
+		d2[1] = 1
+		d2[2] = None
+		# 3
+		d2[4] = 4
+
+		print(u'\n'.join(format_dict_likes_comparison(d1, d2, u'd1', u'd2')))
+
+		d1 = {1: 1, 2: 2}
+		d2 = {1: 1, 2: 2}
+
+		print(u'\n'.join(format_dict_likes_comparison(d1, d2, u'd1', u'd2')))
+
+	#-----------------------------------------------------------------------
+	def test_rm_dir():
+		rmdir('cx:\windows\system3__2xxxxxxxxxxxxx')
+	#-----------------------------------------------------------------------
+	def test_strip_prefix():
+		tests = [
+			(u'', u'', u''),
+			(u'a', u'a', u''),
+			(u'\.br\MICROCYTES+1\.br\SPHEROCYTES       present\.br\POLYCHROMASIAmoderate\.br\\', u'\.br\\', u'MICROCYTES+1\.br\SPHEROCYTES       present\.br\POLYCHROMASIAmoderate\.br\\')
+		]
+		for test in tests:
+			text, prefix, expect = test
+			result = strip_prefix(text, prefix)
+			if result == expect:
+				continue
+			print('test failed:', test)
+			print('result:', result)
+	#-----------------------------------------------------------------------
+	def test_shorten_text():
+		tst = [
+			('123', 1),
+			('123', 2),
+			('123', 3),
+			('123', 4),
+			('', 1),
+			('1', 1),
+			('12', 1),
+			('', 2),
+			('1', 2),
+			('12', 2),
+			('123', 2)
+		]
+		for txt, lng in tst:
+			print(u'max', lng, 'of', txt, '=', shorten_text(txt, lng))
+
 	#-----------------------------------------------------------------------
 	#test_coalesce()
 	#test_capitalize()
@@ -1366,7 +1823,7 @@ second line\n
 	#test_input2decimal()
 	#test_input2int()
 	#test_unwrap()
-	test_md5()
+	#test_md5()
 	#test_unicode()
 	#test_xml_escape()
 	#test_gpg_decrypt()
@@ -1375,5 +1832,9 @@ second line\n
 	#test_tex_escape()
 	#test_dir_is_empty()
 	#test_compare_dicts()
+	#test_rm_dir()
+	#test_strip_prefix()
+	#test_shorten_text()
+	test_format_compare_dicts()
 
 #===========================================================================
diff --git a/client/sitecustomize.py b/client/sitecustomize.py
index e0b8b25..843e577 100644
--- a/client/sitecustomize.py
+++ b/client/sitecustomize.py
@@ -33,7 +33,8 @@ do_set_encoding = False
 # - most European countries but shouldn't
 #   hurt in US-ASCII countries, either
 # - includes the EURO symbol
-def_encoding = 'iso8859-15'
+#def_encoding = 'iso8859-15'
+def_encoding = 'utf-8'
 
 # - for testing
 #def_encoding = 'ascii'
@@ -58,32 +59,3 @@ if do_set_encoding:
 		print "GNUmed startup: Python string encoding must have been set already ?!?"
 
 #==============================================================
-# $Log: sitecustomize.py,v $
-# Revision 1.8  2009-12-21 14:56:39  ncq
-# - typo fix
-#
-# Revision 1.7  2007/05/08 11:14:11  ncq
-# - make utf8
-# - some cleanup
-#
-# Revision 1.6  2006/10/23 13:27:37  ncq
-# - this is only an example, don't activate it by default
-#
-# Revision 1.5  2005/09/28 21:18:36  ncq
-# - need to explicitely set encoding on our reference platform
-#   (Debian Sarge with wx2.6 from testing)
-#
-# Revision 1.4  2005/06/20 20:55:00  ncq
-# - apparently wxPython or something messes with the encoding so
-#   while testing the encoding works the same code fails after
-#   wxPython startup, so don't test, use explicit flag, default False
-#
-# Revision 1.3  2005/06/20 20:41:30  ncq
-# - improved again, it might even work
-#
-# Revision 1.2  2005/06/20 19:42:25  ncq
-# - improved
-#
-# Revision 1.1  2005/06/20 18:54:32  ncq
-# - can be used as an example
-#
diff --git a/client/wxGladeWidgets/wxgActiveEncounterPnl.py b/client/wxGladeWidgets/wxgActiveEncounterPnl.py
index c85fc9f..349e48c 100644
--- a/client/wxGladeWidgets/wxgActiveEncounterPnl.py
+++ b/client/wxGladeWidgets/wxgActiveEncounterPnl.py
@@ -1,55 +1,58 @@
 #!/usr/bin/env python
-# -*- coding: utf-8 -*-
-# generated by wxGlade 0.6.3 from "/home/ncq/Projekte/gm-git/gnumed/gnumed/client/wxg/wxgActiveEncounterPnl.wxg"
+# -*- coding: UTF-8 -*-
+#
+# generated by wxGlade 0.6.8
+#
 
 import wx
 
-# begin wxGlade: extracode
+# begin wxGlade: dependencies
+import gettext
 # end wxGlade
 
+# begin wxGlade: extracode
+# end wxGlade
 
 
 class wxgActiveEncounterPnl(wx.Panel):
     def __init__(self, *args, **kwds):
         # begin wxGlade: wxgActiveEncounterPnl.__init__
         wx.Panel.__init__(self, *args, **kwds)
-        self._TCTRL_encounter = wx.TextCtrl(self, -1, "", style=wx.TE_READONLY|wx.NO_BORDER)
-        self._BTN_new = wx.Button(self, -1, _("&N"), style=wx.BU_EXACTFIT)
-        self._BTN_list = wx.Button(self, -1, _("&L"), style=wx.BU_EXACTFIT)
+        self._BTN_list = wx.Button(self, wx.ID_ANY, _("&L"), style=wx.BU_EXACTFIT)
+        self._TCTRL_encounter = wx.TextCtrl(self, wx.ID_ANY, "", style=wx.TE_READONLY | wx.NO_BORDER)
+        self._BTN_new = wx.Button(self, wx.ID_ANY, _("&N"), style=wx.BU_EXACTFIT)
 
         self.__set_properties()
         self.__do_layout()
 
-        self.Bind(wx.EVT_BUTTON, self._on_new_button_pressed, self._BTN_new)
         self.Bind(wx.EVT_BUTTON, self._on_list_button_pressed, self._BTN_list)
+        self.Bind(wx.EVT_BUTTON, self._on_new_button_pressed, self._BTN_new)
         # end wxGlade
 
     def __set_properties(self):
         # begin wxGlade: wxgActiveEncounterPnl.__set_properties
+        self._BTN_list.SetToolTipString(_("List all encounters."))
         self._TCTRL_encounter.SetBackgroundColour(wx.SystemSettings_GetColour(wx.SYS_COLOUR_BACKGROUND))
         self._TCTRL_encounter.SetToolTipString(_("The encounter."))
         self._BTN_new.SetToolTipString(_("Start a new encounter for the active patient."))
-        self._BTN_list.SetToolTipString(_("List all encounters."))
         # end wxGlade
 
     def __do_layout(self):
         # begin wxGlade: wxgActiveEncounterPnl.__do_layout
         __szr_main = wx.BoxSizer(wx.HORIZONTAL)
-        __szr_main.Add(self._TCTRL_encounter, 1, wx.RIGHT|wx.ALIGN_CENTER_VERTICAL, 2)
-        __szr_main.Add(self._BTN_new, 0, wx.RIGHT|wx.ALIGN_CENTER_VERTICAL, 1)
-        __szr_main.Add(self._BTN_list, 0, wx.ALIGN_CENTER_VERTICAL, 1)
+        __szr_main.Add(self._BTN_list, 0, wx.RIGHT | wx.ALIGN_CENTER_VERTICAL, 2)
+        __szr_main.Add(self._TCTRL_encounter, 1, wx.RIGHT | wx.ALIGN_CENTER_VERTICAL, 2)
+        __szr_main.Add(self._BTN_new, 0, wx.ALIGN_CENTER_VERTICAL, 1)
         self.SetSizer(__szr_main)
         __szr_main.Fit(self)
         # end wxGlade
 
-    def _on_new_button_pressed(self, event): # wxGlade: wxgActiveEncounterPnl.<event_handler>
-        print "Event handler `_on_new_button_pressed' not implemented!"
+    def _on_list_button_pressed(self, event):  # wxGlade: wxgActiveEncounterPnl.<event_handler>
+        print "Event handler '_on_list_button_pressed' not implemented!"
         event.Skip()
 
-    def _on_list_button_pressed(self, event): # wxGlade: wxgActiveEncounterPnl.<event_handler>
-        print "Event handler `_on_list_button_pressed' not implemented!"
+    def _on_new_button_pressed(self, event):  # wxGlade: wxgActiveEncounterPnl.<event_handler>
+        print "Event handler '_on_new_button_pressed' not implemented!"
         event.Skip()
 
 # end of class wxgActiveEncounterPnl
-
-
diff --git a/client/wxGladeWidgets/wxgBrandedDrugEAPnl.py b/client/wxGladeWidgets/wxgBrandedDrugEAPnl.py
index 01e4823..4372567 100644
--- a/client/wxGladeWidgets/wxgBrandedDrugEAPnl.py
+++ b/client/wxGladeWidgets/wxgBrandedDrugEAPnl.py
@@ -13,18 +13,19 @@ class wxgBrandedDrugEAPnl(wx.ScrolledWindow):
     def __init__(self, *args, **kwds):
 
         from Gnumed.wxpython import gmMedicationWidgets
+        from Gnumed.wxpython import gmSubstanceMgmtWidgets
         from Gnumed.wxpython import gmPhraseWheel
 
         # begin wxGlade: wxgBrandedDrugEAPnl.__init__
         kwds["style"] = wx.NO_BORDER | wx.TAB_TRAVERSAL
         wx.ScrolledWindow.__init__(self, *args, **kwds)
-        self._PRW_brand = gmMedicationWidgets.cBrandedDrugPhraseWheel(self, wx.ID_ANY, "", style=wx.NO_BORDER)
+        self._PRW_brand = gmSubstanceMgmtWidgets.cBrandedDrugPhraseWheel(self, wx.ID_ANY, "", style=wx.NO_BORDER)
         self._PRW_preparation = gmMedicationWidgets.cSubstancePreparationPhraseWheel(self, wx.ID_ANY, "", style=wx.NO_BORDER)
         self._CHBOX_is_fake = wx.CheckBox(self, wx.ID_ANY, _("Fake brand"))
         self._TCTRL_components = wx.TextCtrl(self, wx.ID_ANY, "", style=wx.TE_MULTILINE | wx.TE_READONLY)
         self._BTN_manage_components = wx.Button(self, wx.ID_ANY, _("&Manage"), style=wx.BU_EXACTFIT)
         self._HL_atc_list = wx.HyperlinkCtrl(self, wx.ID_ANY, _("ATC Code"), _("http://www.whocc.no/atc_ddd_index/"), style=wx.HL_ALIGN_CENTRE | wx.HL_CONTEXTMENU | wx.HL_DEFAULT_STYLE)
-        self._PRW_atc = gmMedicationWidgets.cATCPhraseWheel(self, wx.ID_ANY, "", style=wx.NO_BORDER)
+        self._PRW_atc = gmSubstanceMgmtWidgets.cATCPhraseWheel(self, wx.ID_ANY, "", style=wx.NO_BORDER)
         self._TCTRL_external_code = wx.TextCtrl(self, wx.ID_ANY, "", style=wx.TE_READONLY | wx.NO_BORDER)
         self._PRW_external_code_type = gmPhraseWheel.cPhraseWheel(self, wx.ID_ANY, "", style=wx.TE_READONLY | wx.NO_BORDER)
 
diff --git a/client/wxGladeWidgets/wxgConsumableSubstanceEAPnl.py b/client/wxGladeWidgets/wxgConsumableSubstanceEAPnl.py
index 97744de..72dc040 100644
--- a/client/wxGladeWidgets/wxgConsumableSubstanceEAPnl.py
+++ b/client/wxGladeWidgets/wxgConsumableSubstanceEAPnl.py
@@ -13,7 +13,7 @@ import gettext
 # begin wxGlade: extracode
 from Gnumed.wxpython.gmTextCtrl import cTextCtrl
 from Gnumed.wxpython.gmMeasurementWidgets import cUnitPhraseWheel
-from Gnumed.wxpython.gmMedicationWidgets import cATCPhraseWheel
+from Gnumed.wxpython.gmSubstanceMgmtWidgets import cATCPhraseWheel
 # end wxGlade
 
 
diff --git a/client/wxGladeWidgets/wxgCurrentMedicationEAPnl.py b/client/wxGladeWidgets/wxgCurrentMedicationEAPnl.py
index 77d5034..0ed9912 100644
--- a/client/wxGladeWidgets/wxgCurrentMedicationEAPnl.py
+++ b/client/wxGladeWidgets/wxgCurrentMedicationEAPnl.py
@@ -1,5 +1,5 @@
 #!/usr/bin/env python
-# -*- coding: utf-8 -*-
+# -*- coding: UTF-8 -*-
 #
 # generated by wxGlade 0.6.8
 #
@@ -15,8 +15,9 @@ from Gnumed.wxpython.gmPhraseWheel import cPhraseWheel
 from Gnumed.wxpython.gmEMRStructWidgets import cEpisodeSelectionPhraseWheel
 from Gnumed.wxpython.gmDateTimeInput import cDateInputPhraseWheel
 from Gnumed.wxpython.gmDateTimeInput import cIntervalPhraseWheel
-from Gnumed.wxpython.gmMedicationWidgets import cDrugComponentPhraseWheel
-from Gnumed.wxpython.gmMedicationWidgets import cSubstancePhraseWheel
+from Gnumed.wxpython.gmSubstanceMgmtWidgets import cDrugComponentPhraseWheel
+from Gnumed.wxpython.gmMedicationWidgets import cBrandOrSubstancePhraseWheel
+from Gnumed.wxpython.gmSubstanceMgmtWidgets import cSubstancePhraseWheel
 from Gnumed.wxpython.gmMedicationWidgets import cSubstancePreparationPhraseWheel
 from Gnumed.wxpython.gmMedicationWidgets import cSubstanceSchedulePhraseWheel
 from Gnumed.wxpython.gmMedicationWidgets import cSubstanceAimPhraseWheel
@@ -29,19 +30,17 @@ class wxgCurrentMedicationEAPnl(wx.ScrolledWindow):
 		kwds["style"] = wx.NO_BORDER | wx.TAB_TRAVERSAL
 		wx.ScrolledWindow.__init__(self, *args, **kwds)
 		self._LBL_allergies = wx.StaticText(self, wx.ID_ANY, "")
-		self._LBL_component = wx.StaticText(self, wx.ID_ANY, _("Brand by component"))
-		self._PRW_component = cDrugComponentPhraseWheel(self, wx.ID_ANY, "", style=wx.NO_BORDER)
-		self._BTN_database_brand = wx.Button(self, wx.ID_ANY, _("Brands"), style=wx.BU_EXACTFIT)
-		self._LBL_or = wx.StaticText(self, wx.ID_ANY, _("... or ..."))
-		self._TCTRL_brand_ingredients = wx.TextCtrl(self, wx.ID_ANY, "", style=wx.TE_READONLY | wx.NO_BORDER)
+		self._PRW_drug = cBrandOrSubstancePhraseWheel(self, wx.ID_ANY, "", style=wx.NO_BORDER)
+		self._TCTRL_drug_details = wx.TextCtrl(self, wx.ID_ANY, "", style=wx.TE_READONLY | wx.NO_BORDER)
 		self._BTN_heart = wx.Button(self, wx.ID_ANY, _(u"\u2665"), style=wx.BU_EXACTFIT)
 		self._BTN_kidneys = wx.Button(self, wx.ID_ANY, _("Kidneys"), style=wx.BU_EXACTFIT)
-		self._LBL_substance = wx.StaticText(self, wx.ID_ANY, _("Unbranded substance"))
-		self._PRW_substance = cSubstancePhraseWheel(self, wx.ID_ANY, "", style=wx.NO_BORDER)
-		self._BTN_database_substance = wx.Button(self, wx.ID_ANY, _("Manage"), style=wx.BU_EXACTFIT)
+		self._BTN_database_brand = wx.Button(self, wx.ID_ANY, _("Brands"), style=wx.BU_EXACTFIT)
+		self._BTN_database_substance = wx.Button(self, wx.ID_ANY, _("Substances"), style=wx.BU_EXACTFIT)
 		self._LBL_preparation = wx.StaticText(self, wx.ID_ANY, _("Preparation"))
 		self._PRW_preparation = cSubstancePreparationPhraseWheel(self, wx.ID_ANY, "", style=wx.NO_BORDER)
+		self._CHBOX_start_unknown = wx.CheckBox(self, wx.ID_ANY, _("&Unknown or date:"))
 		self._DP_started = cDateInputPhraseWheel(self, wx.ID_ANY, "", style=wx.NO_BORDER)
+		self._PRW_start_certainty = cPhraseWheel(self, wx.ID_ANY, "", style=wx.NO_BORDER)
 		self._CHBOX_approved = wx.CheckBox(self, wx.ID_ANY, _("Approved of"))
 		self._PRW_episode = cEpisodeSelectionPhraseWheel(self, wx.ID_ANY, "", style=wx.NO_BORDER)
 		self._PRW_schedule = cSubstanceSchedulePhraseWheel(self, wx.ID_ANY, "", style=wx.NO_BORDER)
@@ -57,10 +56,11 @@ class wxgCurrentMedicationEAPnl(wx.ScrolledWindow):
 		self.__set_properties()
 		self.__do_layout()
 
-		self.Bind(wx.EVT_BUTTON, self._on_manage_brands_button_pressed, self._BTN_database_brand)
 		self.Bind(wx.EVT_BUTTON, self._on_heart_button_pressed, self._BTN_heart)
 		self.Bind(wx.EVT_BUTTON, self._on_kidneys_button_pressed, self._BTN_kidneys)
+		self.Bind(wx.EVT_BUTTON, self._on_manage_brands_button_pressed, self._BTN_database_brand)
 		self.Bind(wx.EVT_BUTTON, self._on_manage_substances_button_pressed, self._BTN_database_substance)
+		self.Bind(wx.EVT_CHECKBOX, self._on_start_unknown_checked, self._CHBOX_start_unknown)
 		self.Bind(wx.EVT_CHECKBOX, self._on_chbox_long_term_checked, self._CHBOX_long_term)
 		self.Bind(wx.EVT_BUTTON, self._on_discontinued_as_planned_button_pressed, self._BTN_discontinued_as_planned)
 		# end wxGlade
@@ -69,18 +69,21 @@ class wxgCurrentMedicationEAPnl(wx.ScrolledWindow):
 		# begin wxGlade: wxgCurrentMedicationEAPnl.__set_properties
 		self.SetMinSize((660, 400))
 		self.SetScrollRate(10, 10)
-		self._LBL_component.SetForegroundColour(wx.Colour(255, 0, 0))
-		self._PRW_component.SetToolTipString(_("A component of a drug brand the patient is taking.\n\nLookup, and select, a single- (or multi-) component drug brand, by active ingredient name. All components of multi-component drugs will be displayed and automatically added to the patient's list."))
-		self._BTN_database_brand.SetToolTipString(_("Manage drug brands.\n\nNote that this will not select a component for you. What it does is to let you manage (add/edit/delete) the drug products/brands known to GNUmed from which you can select a component."))
-		self._TCTRL_brand_ingredients.SetBackgroundColour(wx.SystemSettings_GetColour(wx.SYS_COLOUR_BACKGROUND))
-		self._TCTRL_brand_ingredients.SetToolTipString(_("The active ingredients of this brand."))
+		self._PRW_drug.SetToolTipString(_("A drug the patient is taking.\n\nLookup and select an intake by either of\n- a generic substance name\n- a drug brand name\n- an active ingredient of a drug\n\nNote that all components of multi-component drugs will be displayed and automatically added to the patient's list."))
+		self._TCTRL_drug_details.SetBackgroundColour(wx.SystemSettings_GetColour(wx.SYS_COLOUR_BACKGROUND))
+		self._TCTRL_drug_details.SetToolTipString(_("Details on the selected drug."))
 		self._BTN_heart.SetToolTipString(_("Show cardiac information relevant to substance selection."))
 		self._BTN_kidneys.SetToolTipString(_("Show renal insufficiency information related to substance selection."))
-		self._LBL_substance.SetForegroundColour(wx.Colour(255, 0, 0))
-		self._PRW_substance.SetToolTipString(_("The non-branded medication or non-medication substance, with optional strength."))
+		self._BTN_database_brand.SetToolTipString(_("Manage drug brands.\n\nNote that this will not select a component for you. What it does is to let you manage (add/edit/delete) the drug products/brands known to GNUmed from which you can select a component."))
 		self._BTN_database_substance.SetToolTipString(_("Manage consumable substances.\n\nThis will not select a substance for you. It will, however, enable you to manage (add/edit/delete) the consumable substances available for selection."))
+		self._LBL_preparation.SetForegroundColour(wx.Colour(255, 0, 0))
 		self._PRW_preparation.SetToolTipString(_("The preparation or form of the substance."))
+		self._CHBOX_start_unknown.SetToolTipString(_("Check here if the start date simply isn't known."))
+		self._CHBOX_start_unknown.SetValue(1)
 		self._DP_started.SetToolTipString(_("When was this substance started to be consumed or - if not known - the earliest it is known to have been be consumed."))
+		self._DP_started.Enable(False)
+		self._PRW_start_certainty.SetToolTipString(_("A coment on the certainty of the start date, such as \"+/- 3 weeks\", \"spring of 2002\", \"shortly after Easter 1996\", ...."))
+		self._PRW_start_certainty.Enable(False)
 		self._CHBOX_approved.SetToolTipString(_("Whether this substance is taken by advice."))
 		self._CHBOX_approved.SetValue(1)
 		self._PRW_episode.SetToolTipString(_("Select, or enter for creation, the episode to which this substance will relate."))
@@ -102,27 +105,27 @@ class wxgCurrentMedicationEAPnl(wx.ScrolledWindow):
 		__szr_discontinued_date = wx.BoxSizer(wx.HORIZONTAL)
 		__szr_duration = wx.BoxSizer(wx.HORIZONTAL)
 		__szr_started = wx.BoxSizer(wx.HORIZONTAL)
-		__szr_substance = wx.BoxSizer(wx.HORIZONTAL)
-		__szr_ingredient_details = wx.BoxSizer(wx.HORIZONTAL)
-		__szr_substance_buttons = wx.BoxSizer(wx.VERTICAL)
-		__szr_component = wx.BoxSizer(wx.HORIZONTAL)
+		__szr_mgmt_buttons = wx.BoxSizer(wx.HORIZONTAL)
 		__szr_main.Add(self._LBL_allergies, 0, wx.BOTTOM | wx.EXPAND | wx.ALIGN_CENTER_VERTICAL, 2)
 		__sline_top = wx.StaticLine(self, wx.ID_ANY)
 		__szr_main.Add(__sline_top, 0, wx.BOTTOM | wx.EXPAND | wx.ALIGN_CENTER_VERTICAL, 3)
-		__gszr_main.Add(self._LBL_component, 0, wx.ALIGN_CENTER_VERTICAL, 0)
-		__szr_component.Add(self._PRW_component, 1, wx.RIGHT | wx.EXPAND | wx.ALIGN_CENTER_VERTICAL, 5)
-		__szr_component.Add(self._BTN_database_brand, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.ALIGN_CENTER_VERTICAL, 0)
-		__gszr_main.Add(__szr_component, 1, wx.EXPAND, 0)
-		__gszr_main.Add(self._LBL_or, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.ALIGN_CENTER_VERTICAL, 0)
-		__szr_ingredient_details.Add(self._TCTRL_brand_ingredients, 1, wx.RIGHT | wx.EXPAND | wx.ALIGN_CENTER_VERTICAL, 5)
-		__szr_substance_buttons.Add(self._BTN_heart, 0, wx.BOTTOM | wx.EXPAND | wx.ALIGN_CENTER_VERTICAL, 3)
-		__szr_substance_buttons.Add(self._BTN_kidneys, 0, wx.EXPAND | wx.ALIGN_CENTER_VERTICAL, 0)
-		__szr_ingredient_details.Add(__szr_substance_buttons, 0, wx.EXPAND, 0)
-		__gszr_main.Add(__szr_ingredient_details, 1, wx.EXPAND, 0)
-		__gszr_main.Add(self._LBL_substance, 0, wx.ALIGN_CENTER_VERTICAL, 0)
-		__szr_substance.Add(self._PRW_substance, 1, wx.RIGHT | wx.EXPAND | wx.ALIGN_CENTER_VERTICAL, 5)
-		__szr_substance.Add(self._BTN_database_substance, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.ALIGN_CENTER_VERTICAL, 0)
-		__gszr_main.Add(__szr_substance, 1, wx.EXPAND, 0)
+		_LBL_drug = wx.StaticText(self, wx.ID_ANY, _("Drug"))
+		_LBL_drug.SetForegroundColour(wx.Colour(255, 0, 0))
+		__gszr_main.Add(_LBL_drug, 0, wx.ALIGN_CENTER_VERTICAL, 0)
+		__gszr_main.Add(self._PRW_drug, 1, wx.EXPAND | wx.ALIGN_CENTER_VERTICAL, 5)
+		__gszr_main.Add((20, 20), 0, wx.EXPAND | wx.ALIGN_CENTER_VERTICAL, 0)
+		__gszr_main.Add(self._TCTRL_drug_details, 1, wx.EXPAND | wx.ALIGN_CENTER_VERTICAL, 5)
+		__gszr_main.Add((20, 20), 0, wx.EXPAND | wx.ALIGN_CENTER_VERTICAL, 0)
+		__lbl_research = wx.StaticText(self, wx.ID_ANY, _("Research:"))
+		__szr_mgmt_buttons.Add(__lbl_research, 0, wx.RIGHT | wx.ALIGN_CENTER_VERTICAL, 3)
+		__szr_mgmt_buttons.Add(self._BTN_heart, 0, wx.RIGHT | wx.EXPAND | wx.ALIGN_CENTER_VERTICAL, 3)
+		__szr_mgmt_buttons.Add(self._BTN_kidneys, 0, wx.EXPAND | wx.ALIGN_CENTER_VERTICAL, 0)
+		__szr_mgmt_buttons.Add((20, 20), 1, wx.EXPAND | wx.ALIGN_CENTER_VERTICAL, 0)
+		__lbl_manage = wx.StaticText(self, wx.ID_ANY, _("Manage:"))
+		__szr_mgmt_buttons.Add(__lbl_manage, 0, wx.RIGHT | wx.ALIGN_CENTER_VERTICAL, 3)
+		__szr_mgmt_buttons.Add(self._BTN_database_brand, 0, wx.RIGHT | wx.ALIGN_CENTER_HORIZONTAL | wx.ALIGN_CENTER_VERTICAL, 3)
+		__szr_mgmt_buttons.Add(self._BTN_database_substance, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.ALIGN_CENTER_VERTICAL, 0)
+		__gszr_main.Add(__szr_mgmt_buttons, 1, wx.EXPAND | wx.ALIGN_CENTER_VERTICAL, 0)
 		__gszr_main.Add(self._LBL_preparation, 0, wx.ALIGN_CENTER_VERTICAL, 5)
 		__gszr_main.Add(self._PRW_preparation, 1, wx.EXPAND | wx.ALIGN_CENTER_VERTICAL, 10)
 		__gszr_main.Add((20, 20), 0, wx.EXPAND | wx.ALIGN_CENTER_VERTICAL, 0)
@@ -131,9 +134,12 @@ class wxgCurrentMedicationEAPnl(wx.ScrolledWindow):
 		__lbl_started = wx.StaticText(self, wx.ID_ANY, _("Started"))
 		__lbl_started.SetForegroundColour(wx.Colour(255, 0, 0))
 		__gszr_main.Add(__lbl_started, 0, wx.ALIGN_CENTER_VERTICAL, 0)
-		__szr_started.Add(self._DP_started, 4, wx.RIGHT | wx.EXPAND | wx.ALIGN_CENTER_VERTICAL, 10)
-		__szr_started.Add(self._CHBOX_approved, 1, wx.ALIGN_CENTER_VERTICAL, 0)
-		__szr_started.Add((20, 20), 1, wx.EXPAND, 0)
+		__szr_started.Add(self._CHBOX_start_unknown, 0, wx.RIGHT | wx.EXPAND | wx.ALIGN_CENTER_VERTICAL, 3)
+		__szr_started.Add(self._DP_started, 1, wx.RIGHT | wx.EXPAND | wx.ALIGN_CENTER_VERTICAL, 5)
+		__LBL_start_certainty = wx.StaticText(self, wx.ID_ANY, _("Certainty:"))
+		__szr_started.Add(__LBL_start_certainty, 0, wx.RIGHT | wx.ALIGN_CENTER_VERTICAL, 3)
+		__szr_started.Add(self._PRW_start_certainty, 1, wx.RIGHT | wx.EXPAND | wx.ALIGN_CENTER_VERTICAL, 5)
+		__szr_started.Add(self._CHBOX_approved, 0, wx.ALIGN_CENTER_VERTICAL, 0)
 		__gszr_main.Add(__szr_started, 1, wx.EXPAND, 0)
 		__lbl_episode = wx.StaticText(self, wx.ID_ANY, _("Episode"))
 		__lbl_episode.SetForegroundColour(wx.Colour(255, 127, 0))
@@ -167,10 +173,6 @@ class wxgCurrentMedicationEAPnl(wx.ScrolledWindow):
 		__szr_main.Fit(self)
 		# end wxGlade
 
-	def _on_manage_brands_button_pressed(self, event):  # wxGlade: wxgCurrentMedicationEAPnl.<event_handler>
-		print "Event handler '_on_manage_brands_button_pressed' not implemented!"
-		event.Skip()
-
 	def _on_heart_button_pressed(self, event):  # wxGlade: wxgCurrentMedicationEAPnl.<event_handler>
 		print "Event handler '_on_heart_button_pressed' not implemented!"
 		event.Skip()
@@ -179,10 +181,18 @@ class wxgCurrentMedicationEAPnl(wx.ScrolledWindow):
 		print "Event handler '_on_kidneys_button_pressed' not implemented!"
 		event.Skip()
 
+	def _on_manage_brands_button_pressed(self, event):  # wxGlade: wxgCurrentMedicationEAPnl.<event_handler>
+		print "Event handler '_on_manage_brands_button_pressed' not implemented!"
+		event.Skip()
+
 	def _on_manage_substances_button_pressed(self, event):  # wxGlade: wxgCurrentMedicationEAPnl.<event_handler>
 		print "Event handler '_on_manage_substances_button_pressed' not implemented!"
 		event.Skip()
 
+	def _on_start_unknown_checked(self, event):  # wxGlade: wxgCurrentMedicationEAPnl.<event_handler>
+		print "Event handler '_on_start_unknown_checked' not implemented!"
+		event.Skip()
+
 	def _on_chbox_long_term_checked(self, event):  # wxGlade: wxgCurrentMedicationEAPnl.<event_handler>
 		print "Event handler '_on_chbox_long_term_checked' not implemented!"
 		event.Skip()
diff --git a/client/wxGladeWidgets/wxgDataMiningPnl.py b/client/wxGladeWidgets/wxgDataMiningPnl.py
index 47b0d3b..a5f9d01 100644
--- a/client/wxGladeWidgets/wxgDataMiningPnl.py
+++ b/client/wxGladeWidgets/wxgDataMiningPnl.py
@@ -56,7 +56,7 @@ class wxgDataMiningPnl(wx.ScrolledWindow):
 		# begin wxGlade: wxgDataMiningPnl.__set_properties
 		self.SetScrollRate(10, 10)
 		self._PRW_report_name.SetToolTipString(_("If you want to save this query into the database for later use you must provide a descriptive label for it here."))
-		self._TCTRL_query.SetToolTipString(_("Enter the SQL commands to run here.\n\nIt doesn't matter whether or not you enter a trailing \";\".\n\nNote that:\n- the query is run in a read-only transaction\n- the result list will be artificially limited to the first 1000 rows\n- you can include a column named \"pk_patient\" to make the result rows activate the corresponding patient on double-clicking\n- by inserting $<ID_active_patient>$ you can access the patient ID of the patient active at  [...]
+		self._TCTRL_query.SetToolTipString(_("Enter the SQL commands to run here.\n\nIt doesn't matter whether or not you enter a trailing \";\".\n\nNote that:\n- the query is run in a read-only transaction\n- the result list will be artificially limited to the first 1000 rows\n- you can include a column named \"pk_patient\" to make the result rows activate the corresponding patient on double-clicking\n- by inserting $<ID_ACTIVE_PATIENT>$ you can access the patient ID of the patient active at  [...]
 		self._BTN_run.SetToolTipString(_("Run the query and present the results below."))
 		self._BTN_run.SetDefault()
 		self._BTN_clear.SetToolTipString(_("Clear all fields."))
diff --git a/client/wxGladeWidgets/wxgDrugComponentEAPnl.py b/client/wxGladeWidgets/wxgDrugComponentEAPnl.py
index b185334..4358a2c 100644
--- a/client/wxGladeWidgets/wxgDrugComponentEAPnl.py
+++ b/client/wxGladeWidgets/wxgDrugComponentEAPnl.py
@@ -12,7 +12,6 @@ import wx
 class wxgDrugComponentEAPnl(wx.ScrolledWindow):
     def __init__(self, *args, **kwds):
 
-        from Gnumed.wxpython import gmMedicationWidgets
         from Gnumed.wxpython import gmMeasurementWidgets
 
         # begin wxGlade: wxgDrugComponentEAPnl.__init__
@@ -21,7 +20,7 @@ class wxgDrugComponentEAPnl(wx.ScrolledWindow):
         self._TCTRL_brand = wx.TextCtrl(self, -1, "", style=wx.TE_READONLY|wx.NO_BORDER)
         self._TCTRL_components = wx.TextCtrl(self, -1, "", style=wx.TE_READONLY|wx.NO_BORDER)
         self._TCTRL_codes = wx.TextCtrl(self, -1, "", style=wx.TE_READONLY|wx.NO_BORDER)
-        self._PRW_substance = gmMedicationWidgets.cSubstancePhraseWheel(self, -1, "", style=wx.NO_BORDER)
+        self._PRW_substance = gmSubstanceMgmtWidgets.cSubstancePhraseWheel(self, -1, "", style=wx.NO_BORDER)
         self._TCTRL_amount = wx.TextCtrl(self, -1, "", style=wx.NO_BORDER)
         self._PRW_unit = gmMeasurementWidgets.cUnitPhraseWheel(self, -1, "", style=wx.NO_BORDER)
 
diff --git a/client/wxGladeWidgets/wxgDynamicHintDlg.py b/client/wxGladeWidgets/wxgDynamicHintDlg.py
index 0c9c98b..d7fda94 100644
--- a/client/wxGladeWidgets/wxgDynamicHintDlg.py
+++ b/client/wxGladeWidgets/wxgDynamicHintDlg.py
@@ -66,7 +66,7 @@ class wxgDynamicHintDlg(wx.Dialog):
 		__szr_main.Add(self._TCTRL_hint, 1, wx.LEFT | wx.RIGHT | wx.BOTTOM | wx.EXPAND | wx.ALIGN_CENTER_VERTICAL, 3)
 		__szr_main.Add(self._TCTRL_source, 0, wx.LEFT | wx.RIGHT | wx.BOTTOM | wx.EXPAND, 3)
 		__szr_main.Add(self._URL_info, 0, wx.BOTTOM | wx.ALIGN_CENTER_HORIZONTAL | wx.ALIGN_CENTER_VERTICAL, 5)
-		__lbl_rationale = wx.StaticText(self, wx.ID_ANY, _("Rationale for\nsuppression"))
+		__lbl_rationale = wx.StaticText(self, wx.ID_ANY, _("Rationale for\nsuppression\nfor this patient"))
 		__gszr_rationale.Add(__lbl_rationale, 0, wx.ALIGN_CENTER_VERTICAL, 3)
 		__gszr_rationale.Add(self._TCTRL_rationale, 1, wx.EXPAND | wx.ALIGN_CENTER_VERTICAL, 0)
 		__gszr_rationale.Add(self._LBL_previous_rationale, 0, wx.ALIGN_CENTER_VERTICAL, 3)
diff --git a/client/wxGladeWidgets/wxgEMRJournalPluginPnl.py b/client/wxGladeWidgets/wxgEMRJournalPluginPnl.py
index c6e28d6..14e40b1 100644
--- a/client/wxGladeWidgets/wxgEMRJournalPluginPnl.py
+++ b/client/wxGladeWidgets/wxgEMRJournalPluginPnl.py
@@ -1,62 +1,78 @@
 #!/usr/bin/env python
-# -*- coding: utf-8 -*-
-# generated by wxGlade 0.6.5 from "/home/ncq/Projekte/gm-git/gnumed/gnumed/client/wxg/wxgEMRJournalPluginPnl.wxg"
+# -*- coding: UTF-8 -*-
+#
+# generated by wxGlade 0.7.0
+#
 
 import wx
 
+# begin wxGlade: dependencies
+import gettext
+# end wxGlade
+
 # begin wxGlade: extracode
+from Gnumed.wxpython.gmTextCtrl import cTextCtrl
 # end wxGlade
 
 
 class wxgEMRJournalPluginPnl(wx.ScrolledWindow):
-    def __init__(self, *args, **kwds):
-        # begin wxGlade: wxgEMRJournalPluginPnl.__init__
-        kwds["style"] = wx.NO_BORDER | wx.TAB_TRAVERSAL
-        wx.ScrolledWindow.__init__(self, *args, **kwds)
-        self._RBTN_by_encounter = wx.RadioButton(self, -1, "&Encounter")
-        self._RBTN_by_last_modified = wx.RadioButton(self, -1, "&Last modification time")
-        self._SLINE_top = wx.StaticLine(self, -1)
-        self._TCTRL_journal = wx.TextCtrl(self, -1, "", style=wx.TE_MULTILINE | wx.TE_READONLY | wx.NO_BORDER)
-
-        self.__set_properties()
-        self.__do_layout()
-
-        self.Bind(wx.EVT_RADIOBUTTON, self._on_order_by_encounter_selected, self._RBTN_by_encounter)
-        self.Bind(wx.EVT_RADIOBUTTON, self._on_order_by_last_mod_selected, self._RBTN_by_last_modified)
-        # end wxGlade
-
-    def __set_properties(self):
-        # begin wxGlade: wxgEMRJournalPluginPnl.__set_properties
-        self.SetScrollRate(10, 10)
-        self._RBTN_by_encounter.SetToolTipString("Show journal ordered by encounter.")
-        self._RBTN_by_encounter.SetValue(1)
-        self._RBTN_by_last_modified.SetToolTipString("Show journal ordered by time of last modification.")
-        self._TCTRL_journal.SetBackgroundColour(wx.SystemSettings_GetColour(wx.SYS_COLOUR_BACKGROUND))
-        self._TCTRL_journal.SetFont(wx.Font(10, wx.MODERN, wx.NORMAL, wx.NORMAL, 0, ""))
-        self._TCTRL_journal.SetFocus()
-        # end wxGlade
-
-    def __do_layout(self):
-        # begin wxGlade: wxgEMRJournalPluginPnl.__do_layout
-        __szr_main = wx.BoxSizer(wx.VERTICAL)
-        __szr_top = wx.BoxSizer(wx.HORIZONTAL)
-        __lbl_mode = wx.StaticText(self, -1, "Order by:")
-        __szr_top.Add(__lbl_mode, 0, wx.RIGHT | wx.ALIGN_CENTER_VERTICAL, 5)
-        __szr_top.Add(self._RBTN_by_encounter, 0, wx.RIGHT | wx.ALIGN_CENTER_VERTICAL, 5)
-        __szr_top.Add(self._RBTN_by_last_modified, 0, wx.ALIGN_CENTER_VERTICAL, 0)
-        __szr_main.Add(__szr_top, 0, wx.LEFT | wx.RIGHT | wx.TOP | wx.EXPAND, 3)
-        __szr_main.Add(self._SLINE_top, 0, wx.ALL | wx.EXPAND | wx.ALIGN_CENTER_VERTICAL, 0)
-        __szr_main.Add(self._TCTRL_journal, 1, wx.ALL | wx.EXPAND, 3)
-        self.SetSizer(__szr_main)
-        __szr_main.Fit(self)
-        # end wxGlade
-
-    def _on_order_by_encounter_selected(self, event):  # wxGlade: wxgEMRJournalPluginPnl.<event_handler>
-        print "Event handler `_on_order_by_encounter_selected' not implemented!"
-        event.Skip()
-
-    def _on_order_by_last_mod_selected(self, event):  # wxGlade: wxgEMRJournalPluginPnl.<event_handler>
-        print "Event handler `_on_order_by_last_mod_selected' not implemented!"
-        event.Skip()
+	def __init__(self, *args, **kwds):
+		# begin wxGlade: wxgEMRJournalPluginPnl.__init__
+		kwds["style"] = wx.BORDER_NONE | wx.TAB_TRAVERSAL
+		wx.ScrolledWindow.__init__(self, *args, **kwds)
+		self._RBTN_by_encounter = wx.RadioButton(self, wx.ID_ANY, _("&Encounter"))
+		self._RBTN_by_last_modified = wx.RadioButton(self, wx.ID_ANY, _("&Last modification time"))
+		self._BTN_search = wx.Button(self, wx.ID_FIND, "", style=wx.BU_EXACTFIT)
+		self._SLINE_top = wx.StaticLine(self, wx.ID_ANY)
+		self._TCTRL_journal = cTextCtrl(self, wx.ID_ANY, "", style=wx.BORDER_NONE | wx.TE_MULTILINE | wx.TE_READONLY)
+
+		self.__set_properties()
+		self.__do_layout()
+
+		self.Bind(wx.EVT_RADIOBUTTON, self._on_order_by_encounter_selected, self._RBTN_by_encounter)
+		self.Bind(wx.EVT_RADIOBUTTON, self._on_order_by_last_mod_selected, self._RBTN_by_last_modified)
+		self.Bind(wx.EVT_BUTTON, self._on_button_find_pressed, self._BTN_search)
+		# end wxGlade
+
+	def __set_properties(self):
+		# begin wxGlade: wxgEMRJournalPluginPnl.__set_properties
+		self.SetScrollRate(10, 10)
+		self._RBTN_by_encounter.SetToolTipString(_("Show journal ordered by encounter."))
+		self._RBTN_by_encounter.SetValue(1)
+		self._RBTN_by_last_modified.SetToolTipString(_("Show journal ordered by time of last modification."))
+		self._BTN_search.SetToolTipString(_("Show search dialog."))
+		self._TCTRL_journal.SetBackgroundColour(wx.SystemSettings_GetColour(wx.SYS_COLOUR_BACKGROUND))
+		self._TCTRL_journal.SetFont(wx.Font(10, wx.MODERN, wx.NORMAL, wx.NORMAL, 0, ""))
+		self._TCTRL_journal.SetFocus()
+		# end wxGlade
+
+	def __do_layout(self):
+		# begin wxGlade: wxgEMRJournalPluginPnl.__do_layout
+		__szr_main = wx.BoxSizer(wx.VERTICAL)
+		__szr_top = wx.BoxSizer(wx.HORIZONTAL)
+		__lbl_mode = wx.StaticText(self, wx.ID_ANY, _("Order by:"))
+		__szr_top.Add(__lbl_mode, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5)
+		__szr_top.Add(self._RBTN_by_encounter, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5)
+		__szr_top.Add(self._RBTN_by_last_modified, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 10)
+		__szr_top.Add(self._BTN_search, 0, wx.ALIGN_CENTER_VERTICAL, 0)
+		__szr_main.Add(__szr_top, 0, wx.EXPAND | wx.LEFT | wx.RIGHT | wx.TOP, 3)
+		__szr_main.Add(self._SLINE_top, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALL | wx.EXPAND, 0)
+		__szr_main.Add(self._TCTRL_journal, 1, wx.ALL | wx.EXPAND, 3)
+		self.SetSizer(__szr_main)
+		__szr_main.Fit(self)
+		self.Layout()
+		# end wxGlade
+
+	def _on_order_by_encounter_selected(self, event):  # wxGlade: wxgEMRJournalPluginPnl.<event_handler>
+		print "Event handler '_on_order_by_encounter_selected' not implemented!"
+		event.Skip()
+
+	def _on_order_by_last_mod_selected(self, event):  # wxGlade: wxgEMRJournalPluginPnl.<event_handler>
+		print "Event handler '_on_order_by_last_mod_selected' not implemented!"
+		event.Skip()
+
+	def _on_button_find_pressed(self, event):  # wxGlade: wxgEMRJournalPluginPnl.<event_handler>
+		print "Event handler '_on_button_find_pressed' not implemented!"
+		event.Skip()
 
 # end of class wxgEMRJournalPluginPnl
diff --git a/client/wxGladeWidgets/wxgEMRListJournalPluginPnl.py b/client/wxGladeWidgets/wxgEMRListJournalPluginPnl.py
new file mode 100644
index 0000000..bd7132a
--- /dev/null
+++ b/client/wxGladeWidgets/wxgEMRListJournalPluginPnl.py
@@ -0,0 +1,99 @@
+#!/usr/bin/env python
+# -*- coding: UTF-8 -*-
+#
+# generated by wxGlade 0.7.1
+#
+
+import wx
+
+# begin wxGlade: dependencies
+import gettext
+# end wxGlade
+
+# begin wxGlade: extracode
+from Gnumed.wxpython.gmListWidgets import cReportListCtrl
+# end wxGlade
+
+
+class wxgEMRListJournalPluginPnl(wx.ScrolledWindow):
+	def __init__(self, *args, **kwds):
+		# begin wxGlade: wxgEMRListJournalPluginPnl.__init__
+		kwds["style"] = wx.BORDER_NONE | wx.TAB_TRAVERSAL
+		wx.ScrolledWindow.__init__(self, *args, **kwds)
+		self._RBTN_by_encounter = wx.RadioButton(self, wx.ID_ANY, _("&Encounter"))
+		self._RBTN_by_last_modified = wx.RadioButton(self, wx.ID_ANY, _("&Last modification time"))
+		self._RBTN_by_item_time = wx.RadioButton(self, wx.ID_ANY, _("&Entry time"))
+		self._BTN_edit = wx.Button(self, wx.ID_ANY, _("&Edit"), style=wx.BU_EXACTFIT)
+		self._BTN_delete = wx.Button(self, wx.ID_ANY, _("&Delete"), style=wx.BU_EXACTFIT)
+		self._SLINE_top = wx.StaticLine(self, wx.ID_ANY)
+		self._LCTRL_journal = cReportListCtrl(self, wx.ID_ANY, style=wx.BORDER_NONE | wx.LC_REPORT)
+		self._TCTRL_details = wx.TextCtrl(self, wx.ID_ANY, "", style=wx.BORDER_NONE | wx.TE_BESTWRAP | wx.TE_MULTILINE | wx.TE_READONLY)
+
+		self.__set_properties()
+		self.__do_layout()
+
+		self.Bind(wx.EVT_RADIOBUTTON, self._on_order_by_encounter_selected, self._RBTN_by_encounter)
+		self.Bind(wx.EVT_RADIOBUTTON, self._on_order_by_last_mod_selected, self._RBTN_by_last_modified)
+		self.Bind(wx.EVT_RADIOBUTTON, self._on_order_by_item_time_selected, self._RBTN_by_item_time)
+		self.Bind(wx.EVT_BUTTON, self._on_edit_button_pressed, self._BTN_edit)
+		self.Bind(wx.EVT_BUTTON, self._on_delete_button_pressed, self._BTN_delete)
+		# end wxGlade
+
+	def __set_properties(self):
+		# begin wxGlade: wxgEMRListJournalPluginPnl.__set_properties
+		self.SetScrollRate(10, 10)
+		self._RBTN_by_encounter.SetToolTipString(_("Show journal ordered by encounter."))
+		self._RBTN_by_encounter.SetValue(1)
+		self._RBTN_by_last_modified.SetToolTipString(_("Show journal ordered by time of last modification."))
+		self._RBTN_by_item_time.SetToolTipString(_("Show journal ordered by actual clinical time of each entry."))
+		self._BTN_edit.SetToolTipString(_("Edit the selected chart entry."))
+		self._BTN_edit.Enable(False)
+		self._BTN_delete.SetToolTipString(_("Delete selected chart entry."))
+		self._BTN_delete.Enable(False)
+		self._LCTRL_journal.SetBackgroundColour(wx.SystemSettings_GetColour(wx.SYS_COLOUR_BACKGROUND))
+		self._TCTRL_details.SetBackgroundColour(wx.SystemSettings_GetColour(wx.SYS_COLOUR_BACKGROUND))
+		# end wxGlade
+
+	def __do_layout(self):
+		# begin wxGlade: wxgEMRListJournalPluginPnl.__do_layout
+		__szr_main = wx.BoxSizer(wx.VERTICAL)
+		__szr_journal = wx.BoxSizer(wx.HORIZONTAL)
+		__szr_top = wx.BoxSizer(wx.HORIZONTAL)
+		__lbl_mode = wx.StaticText(self, wx.ID_ANY, _("Order by:"))
+		__szr_top.Add(__lbl_mode, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5)
+		__szr_top.Add(self._RBTN_by_encounter, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5)
+		__szr_top.Add(self._RBTN_by_last_modified, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5)
+		__szr_top.Add(self._RBTN_by_item_time, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 10)
+		__szr_top.Add(self._BTN_edit, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 3)
+		__szr_top.Add(self._BTN_delete, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5)
+		__szr_main.Add(__szr_top, 0, wx.EXPAND | wx.LEFT | wx.RIGHT | wx.TOP, 3)
+		__szr_main.Add(self._SLINE_top, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALL | wx.EXPAND, 0)
+		__szr_journal.Add(self._LCTRL_journal, 3, wx.EXPAND, 0)
+		__szr_journal.Add(self._TCTRL_details, 2, wx.EXPAND | wx.LEFT, 3)
+		__szr_main.Add(__szr_journal, 1, wx.EXPAND | wx.LEFT | wx.RIGHT | wx.TOP, 3)
+		self.SetSizer(__szr_main)
+		__szr_main.Fit(self)
+		self.Layout()
+		# end wxGlade
+
+	def _on_order_by_encounter_selected(self, event):  # wxGlade: wxgEMRListJournalPluginPnl.<event_handler>
+		print "Event handler '_on_order_by_encounter_selected' not implemented!"
+		event.Skip()
+
+	def _on_order_by_last_mod_selected(self, event):  # wxGlade: wxgEMRListJournalPluginPnl.<event_handler>
+		print "Event handler '_on_order_by_last_mod_selected' not implemented!"
+		event.Skip()
+
+	def _on_order_by_item_time_selected(self, event):  # wxGlade: wxgEMRListJournalPluginPnl.<event_handler>
+		print "Event handler '_on_order_by_item_time_selected' not implemented!"
+		event.Skip()
+
+	def _on_edit_button_pressed(self, event):  # wxGlade: wxgEMRListJournalPluginPnl.<event_handler>
+		print "Event handler '_on_edit_button_pressed' not implemented!"
+		event.Skip()
+
+	def _on_delete_button_pressed(self, event):  # wxGlade: wxgEMRListJournalPluginPnl.<event_handler>
+		print "Event handler '_on_delete_button_pressed' not implemented!"
+		event.Skip()
+
+# end of class wxgEMRListJournalPluginPnl
diff --git a/client/wxGladeWidgets/wxgExportAreaPluginPnl.py b/client/wxGladeWidgets/wxgExportAreaPluginPnl.py
index 4d408fb..d8ba3bf 100644
--- a/client/wxGladeWidgets/wxgExportAreaPluginPnl.py
+++ b/client/wxGladeWidgets/wxgExportAreaPluginPnl.py
@@ -60,7 +60,7 @@ class wxgExportAreaPluginPnl(wx.Panel):
 		self._BTN_add_items.SetToolTipString(_("Add document(s) from file(s)."))
 		self._BTN_add_from_archive.SetToolTipString(_("Add document(s) from archive."))
 		self._BTN_scan_items.SetToolTipString(_("Acquire images from image source (scanner, ...)."))
-		self._BTN_clipboard_items.SetToolTipString(_("Acquire images or text from the clipboard."))
+		self._BTN_clipboard_items.SetToolTipString(_("Acquire file or text from the clipboard."))
 		self._BTN_remove_items.SetToolTipString(_("Remove the selected documents."))
 		self._BTN_print_items.SetToolTipString(_("Print selected/all documents."))
 		self._BTN_remote_print.SetToolTipString(_("Put selected/all documents into remote print manager."))
diff --git a/client/wxGladeWidgets/wxgGenericListManagerPnl.py b/client/wxGladeWidgets/wxgGenericListManagerPnl.py
index e3c47ab..52ff60d 100644
--- a/client/wxGladeWidgets/wxgGenericListManagerPnl.py
+++ b/client/wxGladeWidgets/wxgGenericListManagerPnl.py
@@ -20,10 +20,10 @@ class wxgGenericListManagerPnl(wx.Panel):
 		from Gnumed.wxpython.gmListWidgets import cReportListCtrl
 
 		# begin wxGlade: wxgGenericListManagerPnl.__init__
-		kwds["style"] = wx.NO_BORDER | wx.TAB_TRAVERSAL
+		kwds["style"] = wx.BORDER_NONE | wx.TAB_TRAVERSAL
 		wx.Panel.__init__(self, *args, **kwds)
-		self._LBL_message = wx.StaticText(self, wx.ID_ANY, "", style=wx.ALIGN_CENTRE)
-		self._LCTRL_items = cReportListCtrl(self, wx.ID_ANY, style=wx.LC_REPORT | wx.LC_HRULES | wx.NO_BORDER)
+		self._LBL_message = wx.StaticText(self, wx.ID_ANY, "", style=wx.ALIGN_CENTER)
+		self._LCTRL_items = cReportListCtrl(self, wx.ID_ANY, style=wx.BORDER_NONE | wx.LC_HRULES | wx.LC_REPORT)
 		self._BTN_add = wx.Button(self, wx.ID_ADD, "")
 		self._BTN_edit = wx.Button(self, -1, _("&Edit"))
 		self._BTN_remove = wx.Button(self, wx.ID_REMOVE, "")
@@ -35,7 +35,6 @@ class wxgGenericListManagerPnl(wx.Panel):
 		self.__do_layout()
 
 		self.Bind(wx.EVT_LIST_ITEM_DESELECTED, self._on_list_item_deselected, self._LCTRL_items)
-		self.Bind(wx.EVT_LIST_ITEM_SELECTED, self._on_list_item_selected, self._LCTRL_items)
 		self.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self._on_list_item_activated, self._LCTRL_items)
 		self.Bind(wx.EVT_LIST_ITEM_FOCUSED, self._on_list_item_focused, self._LCTRL_items)
 		self.Bind(wx.EVT_BUTTON, self._on_add_button_pressed, self._BTN_add)
@@ -75,23 +74,20 @@ class wxgGenericListManagerPnl(wx.Panel):
 		__szr_buttons.Add((20, 20), 1, wx.ALIGN_CENTER_VERTICAL, 0)
 		__szr_buttons.Add(self._BTN_remove, 0, wx.ALIGN_CENTER_VERTICAL, 0)
 		__szr_buttons.Add((20, 20), 2, wx.ALIGN_CENTER_VERTICAL, 0)
-		__szr_buttons.Add(self._BTN_extra_left, 0, wx.RIGHT | wx.ALIGN_CENTER_VERTICAL, 3)
-		__szr_buttons.Add(self._BTN_extra_middle, 0, wx.RIGHT | wx.ALIGN_CENTER_VERTICAL, 3)
-		__szr_buttons.Add(self._BTN_extra_right, 0, wx.RIGHT | wx.ALIGN_CENTER_VERTICAL, 3)
+		__szr_buttons.Add(self._BTN_extra_left, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 3)
+		__szr_buttons.Add(self._BTN_extra_middle, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 3)
+		__szr_buttons.Add(self._BTN_extra_right, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 3)
 		__szr_buttons.Add((20, 20), 2, wx.ALIGN_CENTER_VERTICAL, 0)
-		__szr_main.Add(__szr_buttons, 0, wx.TOP | wx.EXPAND, 3)
+		__szr_main.Add(__szr_buttons, 0, wx.EXPAND | wx.TOP, 3)
 		self.SetSizer(__szr_main)
 		__szr_main.Fit(self)
+		self.Layout()
 		# end wxGlade
 
 	def _on_list_item_deselected(self, event):  # wxGlade: wxgGenericListManagerPnl.<event_handler>
 		print "Event handler '_on_list_item_deselected' not implemented!"
 		event.Skip()
 
-	def _on_list_item_selected(self, event):  # wxGlade: wxgGenericListManagerPnl.<event_handler>
-		print "Event handler '_on_list_item_selected' not implemented!"
-		event.Skip()
-
 	def _on_list_item_activated(self, event):  # wxGlade: wxgGenericListManagerPnl.<event_handler>
 		print "Event handler '_on_list_item_activated' not implemented!"
 		event.Skip()
diff --git a/client/wxGladeWidgets/wxgGenericListSelectorDlg.py b/client/wxGladeWidgets/wxgGenericListSelectorDlg.py
index d2bef1d..b83f97e 100644
--- a/client/wxGladeWidgets/wxgGenericListSelectorDlg.py
+++ b/client/wxGladeWidgets/wxgGenericListSelectorDlg.py
@@ -1,131 +1,120 @@
 #!/usr/bin/env python
-# -*- coding: utf-8 -*-
-# generated by wxGlade 0.5 on Tue Jun 12 19:31:26 2007 from /home/ncq/Projekte/gm-cvs/branches/HEAD/gnumed/gnumed/client/wxg/wxgGenericListSelectorDlg.wxg
+# -*- coding: UTF-8 -*-
+#
+# generated by wxGlade 0.7.1
+#
 
 import wx
 
-class wxgGenericListSelectorDlg(wx.Dialog):
-    def __init__(self, *args, **kwds):
-
-        from Gnumed.wxpython import gmListWidgets
-
-        # begin wxGlade: wxgGenericListSelectorDlg.__init__
-        kwds["style"] = wx.CAPTION|wx.RESIZE_BORDER|wx.MAXIMIZE_BOX|wx.MINIMIZE_BOX|wx.THICK_FRAME
-        wx.Dialog.__init__(self, *args, **kwds)
-        self._LBL_message = wx.StaticText(self, -1, "")
-        self._LCTRL_items = gmListWidgets.cReportListCtrl(self, -1, style=wx.LC_REPORT|wx.NO_BORDER)
-        self._BTN_ok = wx.Button(self, wx.ID_OK, "")
-        self._BTN_cancel = wx.Button(self, wx.ID_CANCEL, "")
-        self._BTN_new = wx.Button(self, wx.ID_ADD, "", style=wx.BU_EXACTFIT)
-        self._BTN_edit = wx.Button(self, -1, _("&Edit"), style=wx.BU_EXACTFIT)
-        self._BTN_delete = wx.Button(self, wx.ID_DELETE, "", style=wx.BU_EXACTFIT)
-        self._BTN_extra_left = wx.Button(self, -1, _("1"), style=wx.BU_EXACTFIT)
-        self._BTN_extra_middle = wx.Button(self, -1, _("2"), style=wx.BU_EXACTFIT)
-        self._BTN_extra_right = wx.Button(self, -1, _("3"), style=wx.BU_EXACTFIT)
-
-        self.__set_properties()
-        self.__do_layout()
-
-        self.Bind(wx.EVT_LIST_ITEM_DESELECTED, self._on_list_item_deselected, self._LCTRL_items)
-        self.Bind(wx.EVT_LIST_ITEM_SELECTED, self._on_list_item_selected, self._LCTRL_items)
-        self.Bind(wx.EVT_BUTTON, self._on_new_button_pressed, self._BTN_new)
-        self.Bind(wx.EVT_BUTTON, self._on_edit_button_pressed, self._BTN_edit)
-        self.Bind(wx.EVT_BUTTON, self._on_delete_button_pressed, self._BTN_delete)
-        self.Bind(wx.EVT_BUTTON, self._on_left_extra_button_pressed, self._BTN_extra_left)
-        self.Bind(wx.EVT_BUTTON, self._on_middle_extra_button_pressed, self._BTN_extra_middle)
-        self.Bind(wx.EVT_BUTTON, self._on_right_extra_button_pressed, self._BTN_extra_right)
-        # end wxGlade
-
-    def __set_properties(self):
-        # begin wxGlade: wxgGenericListSelectorDlg.__set_properties
-        self.SetSize((640, 500))
-        self._LCTRL_items.SetToolTipString(_("Select the items you want to work on.\n\nA discontinuous selection may depend on your holding down a platform-dependent modifier key (<ctrl>, <alt>, etc) or key combination (eg. <ctrl-shift> or <ctrl-alt>) while clicking."))
-        self._LCTRL_items.SetFocus()
-        self._BTN_ok.SetToolTipString(_("Act on the items selected in the above list."))
-        self._BTN_ok.Enable(False)
-        self._BTN_cancel.SetToolTipString(_("Cancel this dialog."))
-        self._BTN_cancel.SetDefault()
-        self._BTN_new.SetToolTipString(_("Add a new item to the list above."))
-        self._BTN_new.Enable(False)
-        self._BTN_edit.SetToolTipString(_("Edit the (first or only) item selected in the list above."))
-        self._BTN_edit.Enable(False)
-        self._BTN_delete.SetToolTipString(_("Delete - if possible - the (first or only) item selected in the list above."))
-        self._BTN_delete.Enable(False)
-        self._BTN_extra_left.Enable(False)
-        self._BTN_extra_middle.Enable(False)
-        self._BTN_extra_right.Enable(False)
-        # end wxGlade
-
-    def __do_layout(self):
-        # begin wxGlade: wxgGenericListSelectorDlg.__do_layout
-        __szr_main = wx.BoxSizer(wx.VERTICAL)
-        __szr_buttons = wx.BoxSizer(wx.HORIZONTAL)
-        __szr_main.Add(self._LBL_message, 0, wx.LEFT|wx.RIGHT|wx.TOP|wx.EXPAND, 3)
-        __szr_main.Add(self._LCTRL_items, 1, wx.ALL|wx.EXPAND, 3)
-        __szr_buttons.Add((20, 20), 1, wx.EXPAND, 0)
-        __szr_buttons.Add(self._BTN_ok, 0, wx.RIGHT|wx.EXPAND|wx.ALIGN_CENTER_VERTICAL, 5)
-        __szr_buttons.Add(self._BTN_cancel, 0, wx.EXPAND|wx.ALIGN_CENTER_VERTICAL, 0)
-        __szr_buttons.Add((20, 20), 1, wx.EXPAND, 0)
-        __szr_buttons.Add(self._BTN_new, 0, wx.RIGHT|wx.EXPAND|wx.ALIGN_CENTER_VERTICAL, 5)
-        __szr_buttons.Add(self._BTN_edit, 0, wx.RIGHT|wx.EXPAND|wx.ALIGN_CENTER_VERTICAL, 5)
-        __szr_buttons.Add(self._BTN_delete, 0, wx.EXPAND|wx.ALIGN_CENTER_VERTICAL, 0)
-        __szr_buttons.Add((20, 20), 1, wx.EXPAND, 0)
-        __szr_buttons.Add(self._BTN_extra_left, 0, wx.RIGHT|wx.EXPAND|wx.ALIGN_CENTER_VERTICAL, 5)
-        __szr_buttons.Add(self._BTN_extra_middle, 0, wx.RIGHT|wx.EXPAND|wx.ALIGN_CENTER_VERTICAL, 5)
-        __szr_buttons.Add(self._BTN_extra_right, 0, wx.EXPAND|wx.ALIGN_CENTER_VERTICAL, 5)
-        __szr_buttons.Add((20, 20), 1, wx.EXPAND, 0)
-        __szr_main.Add(__szr_buttons, 0, wx.ALL|wx.EXPAND, 3)
-        self.SetSizer(__szr_main)
-        self.Layout()
-        self.Centre()
-        # end wxGlade
-
-    def _on_list_item_deselected(self, event): # wxGlade: wxgGenericListSelectorDlg.<event_handler>
-        print "Event handler `_on_list_item_deselected' not implemented!"
-        event.Skip()
-
-    def _on_list_item_selected(self, event): # wxGlade: wxgGenericListSelectorDlg.<event_handler>
-        print "Event handler `_on_list_item_selected' not implemented!"
-        event.Skip()
-
-    def _on_ok_button_pressed(self, event): # wxGlade: wxgGenericListSelectorDlg.<event_handler>
-        print "Event handler `_on_ok_button_pressed' not implemented!"
-        event.Skip()
-
-    def _on_edit_button_pressed(self, event): # wxGlade: wxgGenericListSelectorDlg.<event_handler>
-        print "Event handler `_on_edit_button_pressed' not implemented"
-        event.Skip()
-
-    def _on_new_button_pressed(self, event): # wxGlade: wxgGenericListSelectorDlg.<event_handler>
-        print "Event handler `_on_new_button_pressed' not implemented"
-        event.Skip()
-
-    def _on_delete_button_pressed(self, event): # wxGlade: wxgGenericListSelectorDlg.<event_handler>
-        print "Event handler `_on_delete_button_pressed' not implemented"
-        event.Skip()
-
-    def _on_left_extra_button_pressed(self, event): # wxGlade: wxgGenericListSelectorDlg.<event_handler>
-        print "Event handler `_on_left_extra_button_pressed' not implemented"
-        event.Skip()
-
-    def _on_middle_extra_button_pressed(self, event): # wxGlade: wxgGenericListSelectorDlg.<event_handler>
-        print "Event handler `_on_middle_extra_button_pressed' not implemented"
-        event.Skip()
-
-    def _on_right_extra_button_pressed(self, event): # wxGlade: wxgGenericListSelectorDlg.<event_handler>
-        print "Event handler `_on_right_extra_button_pressed' not implemented"
-        event.Skip()
+# begin wxGlade: dependencies
+import gettext
+# end wxGlade
 
-# end of class wxgGenericListSelectorDlg
+# begin wxGlade: extracode
+# end wxGlade
 
 
-if __name__ == "__main__":
-    import gettext
-    gettext.install("app") # replace with the appropriate catalog name
+class wxgGenericListSelectorDlg(wx.Dialog):
+	def __init__(self, *args, **kwds):
+
+		from Gnumed.wxpython.gmListWidgets import cReportListCtrl
+
+		# begin wxGlade: wxgGenericListSelectorDlg.__init__
+		kwds["style"] = wx.CAPTION | wx.MAXIMIZE_BOX | wx.MINIMIZE_BOX | wx.RESIZE_BORDER
+		wx.Dialog.__init__(self, *args, **kwds)
+		self._LBL_message = wx.StaticText(self, wx.ID_ANY, "")
+		self._LCTRL_items = cReportListCtrl(self, wx.ID_ANY, style=wx.BORDER_NONE | wx.LC_REPORT)
+		self._BTN_ok = wx.Button(self, wx.ID_OK, "")
+		self._BTN_cancel = wx.Button(self, wx.ID_CANCEL, "")
+		self._BTN_new = wx.Button(self, wx.ID_ADD, "", style=wx.BU_EXACTFIT)
+		self._BTN_edit = wx.Button(self, wx.ID_ANY, _("&Edit"), style=wx.BU_EXACTFIT)
+		self._BTN_delete = wx.Button(self, wx.ID_DELETE, "", style=wx.BU_EXACTFIT)
+		self._BTN_extra_left = wx.Button(self, wx.ID_ANY, _("1"), style=wx.BU_EXACTFIT)
+		self._BTN_extra_middle = wx.Button(self, wx.ID_ANY, _("2"), style=wx.BU_EXACTFIT)
+		self._BTN_extra_right = wx.Button(self, wx.ID_ANY, _("3"), style=wx.BU_EXACTFIT)
+
+		self.__set_properties()
+		self.__do_layout()
+
+		self.Bind(wx.EVT_LIST_ITEM_DESELECTED, self._on_list_item_deselected, self._LCTRL_items)
+		self.Bind(wx.EVT_BUTTON, self._on_new_button_pressed, self._BTN_new)
+		self.Bind(wx.EVT_BUTTON, self._on_edit_button_pressed, self._BTN_edit)
+		self.Bind(wx.EVT_BUTTON, self._on_delete_button_pressed, self._BTN_delete)
+		self.Bind(wx.EVT_BUTTON, self._on_left_extra_button_pressed, self._BTN_extra_left)
+		self.Bind(wx.EVT_BUTTON, self._on_middle_extra_button_pressed, self._BTN_extra_middle)
+		self.Bind(wx.EVT_BUTTON, self._on_right_extra_button_pressed, self._BTN_extra_right)
+		# end wxGlade
+
+	def __set_properties(self):
+		# begin wxGlade: wxgGenericListSelectorDlg.__set_properties
+		self.SetSize((640, 500))
+		self._LCTRL_items.SetToolTipString(_("Select the items you want to work on.\n\nA discontinuous selection may depend on your holding down a platform-dependent modifier key (<ctrl>, <alt>, etc) or key combination (eg. <ctrl-shift> or <ctrl-alt>) while clicking."))
+		self._LCTRL_items.SetFocus()
+		self._BTN_ok.SetToolTipString(_("Act on the items selected in the above list."))
+		self._BTN_ok.Enable(False)
+		self._BTN_cancel.SetToolTipString(_("Cancel this dialog."))
+		self._BTN_cancel.SetDefault()
+		self._BTN_new.SetToolTipString(_("Add a new item to the list above."))
+		self._BTN_new.Enable(False)
+		self._BTN_edit.SetToolTipString(_("Edit the (first or only) item selected in the list above."))
+		self._BTN_edit.Enable(False)
+		self._BTN_delete.SetToolTipString(_("Delete - if possible - the (first or only) item selected in the list above."))
+		self._BTN_delete.Enable(False)
+		self._BTN_extra_left.Enable(False)
+		self._BTN_extra_middle.Enable(False)
+		self._BTN_extra_right.Enable(False)
+		# end wxGlade
+
+	def __do_layout(self):
+		# begin wxGlade: wxgGenericListSelectorDlg.__do_layout
+		__szr_main = wx.BoxSizer(wx.VERTICAL)
+		__szr_buttons = wx.BoxSizer(wx.HORIZONTAL)
+		__szr_main.Add(self._LBL_message, 0, wx.EXPAND | wx.LEFT | wx.RIGHT | wx.TOP, 3)
+		__szr_main.Add(self._LCTRL_items, 1, wx.ALL | wx.EXPAND, 3)
+		__szr_buttons.Add((20, 20), 1, wx.EXPAND, 0)
+		__szr_buttons.Add(self._BTN_ok, 0, wx.ALIGN_CENTER_VERTICAL | wx.EXPAND | wx.RIGHT, 5)
+		__szr_buttons.Add(self._BTN_cancel, 0, wx.ALIGN_CENTER_VERTICAL | wx.EXPAND, 0)
+		__szr_buttons.Add((20, 20), 1, wx.EXPAND, 0)
+		__szr_buttons.Add(self._BTN_new, 0, wx.ALIGN_CENTER_VERTICAL | wx.EXPAND | wx.RIGHT, 5)
+		__szr_buttons.Add(self._BTN_edit, 0, wx.ALIGN_CENTER_VERTICAL | wx.EXPAND | wx.RIGHT, 5)
+		__szr_buttons.Add(self._BTN_delete, 0, wx.ALIGN_CENTER_VERTICAL | wx.EXPAND, 0)
+		__szr_buttons.Add((20, 20), 1, wx.EXPAND, 0)
+		__szr_buttons.Add(self._BTN_extra_left, 0, wx.ALIGN_CENTER_VERTICAL | wx.EXPAND | wx.RIGHT, 5)
+		__szr_buttons.Add(self._BTN_extra_middle, 0, wx.ALIGN_CENTER_VERTICAL | wx.EXPAND | wx.RIGHT, 5)
+		__szr_buttons.Add(self._BTN_extra_right, 0, wx.ALIGN_CENTER_VERTICAL | wx.EXPAND, 5)
+		__szr_buttons.Add((20, 20), 1, wx.EXPAND, 0)
+		__szr_main.Add(__szr_buttons, 0, wx.ALL | wx.EXPAND, 3)
+		self.SetSizer(__szr_main)
+		self.Layout()
+		self.Centre()
+		# end wxGlade
+
+	def _on_list_item_deselected(self, event):  # wxGlade: wxgGenericListSelectorDlg.<event_handler>
+		print "Event handler '_on_list_item_deselected' not implemented!"
+		event.Skip()
+
+	def _on_new_button_pressed(self, event):  # wxGlade: wxgGenericListSelectorDlg.<event_handler>
+		print "Event handler '_on_new_button_pressed' not implemented!"
+		event.Skip()
+
+	def _on_edit_button_pressed(self, event):  # wxGlade: wxgGenericListSelectorDlg.<event_handler>
+		print "Event handler '_on_edit_button_pressed' not implemented!"
+		event.Skip()
+
+	def _on_delete_button_pressed(self, event):  # wxGlade: wxgGenericListSelectorDlg.<event_handler>
+		print "Event handler '_on_delete_button_pressed' not implemented!"
+		event.Skip()
+
+	def _on_left_extra_button_pressed(self, event):  # wxGlade: wxgGenericListSelectorDlg.<event_handler>
+		print "Event handler '_on_left_extra_button_pressed' not implemented!"
+		event.Skip()
+
+	def _on_middle_extra_button_pressed(self, event):  # wxGlade: wxgGenericListSelectorDlg.<event_handler>
+		print "Event handler '_on_middle_extra_button_pressed' not implemented!"
+		event.Skip()
+
+	def _on_right_extra_button_pressed(self, event):  # wxGlade: wxgGenericListSelectorDlg.<event_handler>
+		print "Event handler '_on_right_extra_button_pressed' not implemented!"
+		event.Skip()
 
-    app = wx.PySimpleApp(0)
-    wx.InitAllImageHandlers()
-    dialog_1 = wxgGenericListSelectorDlg(None, -1, "")
-    app.SetTopWindow(dialog_1)
-    dialog_1.Show()
-    app.MainLoop()
+# end of class wxgGenericListSelectorDlg
diff --git a/client/wxGladeWidgets/wxgMeasurementsDetailsPnl.py b/client/wxGladeWidgets/wxgMeasurementsAsListPnl.py
similarity index 52%
copy from client/wxGladeWidgets/wxgMeasurementsDetailsPnl.py
copy to client/wxGladeWidgets/wxgMeasurementsAsListPnl.py
index 845d174..d8dacc9 100644
--- a/client/wxGladeWidgets/wxgMeasurementsDetailsPnl.py
+++ b/client/wxGladeWidgets/wxgMeasurementsAsListPnl.py
@@ -1,7 +1,7 @@
 #!/usr/bin/env python
 # -*- coding: UTF-8 -*-
 #
-# generated by wxGlade 0.6.8
+# generated by wxGlade 0.7.0
 #
 
 import wx
@@ -15,43 +15,37 @@ from Gnumed.wxpython.gmListWidgets import cReportListCtrl
 # end wxGlade
 
 
-class wxgMeasurementsDetailsPnl(wx.Panel):
+class wxgMeasurementsAsListPnl(wx.Panel):
 	def __init__(self, *args, **kwds):
-		# begin wxGlade: wxgMeasurementsDetailsPnl.__init__
+		# begin wxGlade: wxgMeasurementsAsListPnl.__init__
 		kwds["style"] = wx.TAB_TRAVERSAL
 		wx.Panel.__init__(self, *args, **kwds)
-		self._LCTRL_days = cReportListCtrl(self, wx.ID_ANY, style=wx.LC_REPORT | wx.NO_BORDER)
-		self._LCTRL_results = cReportListCtrl(self, wx.ID_ANY, style=wx.LC_REPORT | wx.NO_BORDER)
-		self._TCTRL_measurements = wx.TextCtrl(self, wx.ID_ANY, "", style=wx.TE_MULTILINE | wx.TE_READONLY | wx.TE_AUTO_URL | wx.NO_BORDER)
+		self._LCTRL_results = cReportListCtrl(self, wx.ID_ANY, style=wx.BORDER_NONE | wx.LC_REPORT)
+		self._TCTRL_measurements = wx.TextCtrl(self, wx.ID_ANY, "", style=wx.BORDER_NONE | wx.TE_AUTO_URL | wx.TE_MULTILINE | wx.TE_READONLY)
 
 		self.__set_properties()
 		self.__do_layout()
 
-		self.Bind(wx.EVT_LIST_ITEM_SELECTED, self._on_day_selected, self._LCTRL_days)
 		self.Bind(wx.EVT_LIST_ITEM_SELECTED, self._on_result_selected, self._LCTRL_results)
 		# end wxGlade
 
 	def __set_properties(self):
-		# begin wxGlade: wxgMeasurementsDetailsPnl.__set_properties
+		# begin wxGlade: wxgMeasurementsAsListPnl.__set_properties
 		self._TCTRL_measurements.SetBackgroundColour(wx.SystemSettings_GetColour(wx.SYS_COLOUR_BACKGROUND))
 		# end wxGlade
 
 	def __do_layout(self):
-		# begin wxGlade: wxgMeasurementsDetailsPnl.__do_layout
+		# begin wxGlade: wxgMeasurementsAsListPnl.__do_layout
 		__szr_main = wx.BoxSizer(wx.HORIZONTAL)
-		__szr_main.Add(self._LCTRL_days, 0, wx.RIGHT | wx.EXPAND, 5)
-		__szr_main.Add(self._LCTRL_results, 1, wx.RIGHT | wx.EXPAND, 5)
-		__szr_main.Add(self._TCTRL_measurements, 1, wx.EXPAND, 0)
+		__szr_main.Add(self._LCTRL_results, 5, wx.EXPAND | wx.RIGHT, 5)
+		__szr_main.Add(self._TCTRL_measurements, 4, wx.EXPAND, 0)
 		self.SetSizer(__szr_main)
 		__szr_main.Fit(self)
+		self.Layout()
 		# end wxGlade
 
-	def _on_day_selected(self, event):  # wxGlade: wxgMeasurementsDetailsPnl.<event_handler>
-		print "Event handler '_on_day_selected' not implemented!"
-		event.Skip()
-
-	def _on_result_selected(self, event):  # wxGlade: wxgMeasurementsDetailsPnl.<event_handler>
+	def _on_result_selected(self, event):  # wxGlade: wxgMeasurementsAsListPnl.<event_handler>
 		print "Event handler '_on_result_selected' not implemented!"
 		event.Skip()
 
-# end of class wxgMeasurementsDetailsPnl
+# end of class wxgMeasurementsAsListPnl
diff --git a/client/wxGladeWidgets/wxgMeasurementsAsTablePnl.py b/client/wxGladeWidgets/wxgMeasurementsAsTablePnl.py
new file mode 100644
index 0000000..3e14fe7
--- /dev/null
+++ b/client/wxGladeWidgets/wxgMeasurementsAsTablePnl.py
@@ -0,0 +1,95 @@
+#!/usr/bin/env python
+# -*- coding: UTF-8 -*-
+#
+# generated by wxGlade 0.7.0
+#
+
+import wx
+import wx.grid
+
+# begin wxGlade: dependencies
+import gettext
+# end wxGlade
+
+# begin wxGlade: extracode
+# end wxGlade
+
+
+class wxgMeasurementsAsTablePnl(wx.Panel):
+	def __init__(self, *args, **kwds):
+
+		from Gnumed.wxpython.gmMeasurementWidgets import cMeasurementsGrid
+
+		# begin wxGlade: wxgMeasurementsAsTablePnl.__init__
+		kwds["style"] = wx.BORDER_NONE | wx.TAB_TRAVERSAL
+		wx.Panel.__init__(self, *args, **kwds)
+		self._GRID_results_all = cMeasurementsGrid(self, wx.ID_ANY, size=(1, 1))
+		self._BTN_manage_types = wx.Button(self, wx.ID_ANY, _("Manage types"), style=wx.BU_EXACTFIT)
+		self._BTN_add = wx.Button(self, wx.ID_ADD, "", style=wx.BU_EXACTFIT)
+		self._BTN_select = wx.Button(self, wx.ID_ANY, _("&Select:"), style=wx.BU_EXACTFIT)
+		self._RBTN_my_unsigned = wx.RadioButton(self, wx.ID_ANY, _("your unsigned (&Y)"))
+		self._RBTN_all_unsigned = wx.RadioButton(self, wx.ID_ANY, _("all unsigned (&A)"))
+		self._BTN_review = wx.Button(self, wx.ID_ANY, _("&Actions ... "), style=wx.BU_EXACTFIT)
+
+		self.__set_properties()
+		self.__do_layout()
+
+		self.Bind(wx.EVT_BUTTON, self._on_manage_types_button_pressed, self._BTN_manage_types)
+		self.Bind(wx.EVT_BUTTON, self._on_add_button_pressed, self._BTN_add)
+		self.Bind(wx.EVT_BUTTON, self._on_select_button_pressed, self._BTN_select)
+		self.Bind(wx.EVT_BUTTON, self._on_review_button_pressed, self._BTN_review)
+		# end wxGlade
+
+	def __set_properties(self):
+		# begin wxGlade: wxgMeasurementsAsTablePnl.__set_properties
+		self._BTN_manage_types.SetToolTipString(_("Manage test types."))
+		self._BTN_add.SetToolTipString(_("Add measurments."))
+		self._BTN_select.SetToolTipString(_("Select results according to your choice on the right.\n\nThis will override any previous selection.\n\nNote that you can also select cells, rows, or columns manually within the table."))
+		self._RBTN_my_unsigned.SetToolTipString(_("Apply selection to those unsigned results for which you are to take responsibility."))
+		self._RBTN_all_unsigned.SetToolTipString(_("Apply selection to all unsigned results."))
+		self._BTN_review.SetToolTipString(_("Invoke actions on the selected measurements."))
+		# end wxGlade
+
+	def __do_layout(self):
+		# begin wxGlade: wxgMeasurementsAsTablePnl.__do_layout
+		__szr_main = wx.BoxSizer(wx.VERTICAL)
+		__szr_bottom = wx.BoxSizer(wx.HORIZONTAL)
+		__szr_main.Add(self._GRID_results_all, 1, wx.EXPAND | wx.LEFT | wx.RIGHT | wx.TOP, 5)
+		__hline_buttons = wx.StaticLine(self, wx.ID_ANY)
+		__szr_main.Add(__hline_buttons, 0, wx.ALL | wx.EXPAND, 5)
+		__szr_bottom.Add(self._BTN_manage_types, 0, wx.ALIGN_CENTER_VERTICAL, 0)
+		__szr_bottom.Add((20, 20), 2, wx.ALIGN_CENTER_VERTICAL, 0)
+		__vline_buttons = wx.StaticLine(self, wx.ID_ANY, style=wx.LI_VERTICAL)
+		__szr_bottom.Add(__vline_buttons, 0, wx.EXPAND | wx.RIGHT, 3)
+		__lbl_results = wx.StaticText(self, wx.ID_ANY, _("Results:"))
+		__szr_bottom.Add(__lbl_results, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 3)
+		__szr_bottom.Add(self._BTN_add, 0, wx.ALIGN_CENTER_VERTICAL, 3)
+		__szr_bottom.Add((20, 20), 1, wx.ALIGN_CENTER_VERTICAL, 0)
+		__szr_bottom.Add(self._BTN_select, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5)
+		__szr_bottom.Add(self._RBTN_my_unsigned, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 3)
+		__szr_bottom.Add(self._RBTN_all_unsigned, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 3)
+		__szr_bottom.Add(self._BTN_review, 0, wx.ALIGN_CENTER_VERTICAL, 0)
+		__szr_bottom.Add((20, 20), 1, wx.ALIGN_CENTER_VERTICAL, 0)
+		__szr_main.Add(__szr_bottom, 0, wx.BOTTOM | wx.EXPAND | wx.LEFT | wx.RIGHT, 5)
+		self.SetSizer(__szr_main)
+		__szr_main.Fit(self)
+		self.Layout()
+		# end wxGlade
+
+	def _on_manage_types_button_pressed(self, event):  # wxGlade: wxgMeasurementsAsTablePnl.<event_handler>
+		print "Event handler '_on_manage_types_button_pressed' not implemented!"
+		event.Skip()
+
+	def _on_add_button_pressed(self, event):  # wxGlade: wxgMeasurementsAsTablePnl.<event_handler>
+		print "Event handler '_on_add_button_pressed' not implemented!"
+		event.Skip()
+
+	def _on_select_button_pressed(self, event):  # wxGlade: wxgMeasurementsAsTablePnl.<event_handler>
+		print "Event handler '_on_select_button_pressed' not implemented!"
+		event.Skip()
+
+	def _on_review_button_pressed(self, event):  # wxGlade: wxgMeasurementsAsTablePnl.<event_handler>
+		print "Event handler '_on_review_button_pressed' not implemented!"
+		event.Skip()
+
+# end of class wxgMeasurementsAsTablePnl
diff --git a/client/wxGladeWidgets/wxgMeasurementsByBatteryPnl.py b/client/wxGladeWidgets/wxgMeasurementsByBatteryPnl.py
new file mode 100644
index 0000000..d6bc119
--- /dev/null
+++ b/client/wxGladeWidgets/wxgMeasurementsByBatteryPnl.py
@@ -0,0 +1,65 @@
+#!/usr/bin/env python
+# -*- coding: UTF-8 -*-
+#
+# generated by wxGlade 0.7.0
+#
+
+import wx
+import wx.grid
+
+# begin wxGlade: dependencies
+import gettext
+# end wxGlade
+
+# begin wxGlade: extracode
+# end wxGlade
+
+
+class wxgMeasurementsByBatteryPnl(wx.Panel):
+	def __init__(self, *args, **kwds):
+
+		from Gnumed.wxpython.gmMeasurementWidgets import cMeasurementsGrid
+		from Gnumed.wxpython.gmMeasurementWidgets import cTestPanelPRW
+
+		# begin wxGlade: wxgMeasurementsByBatteryPnl.__init__
+		kwds["style"] = wx.BORDER_NONE | wx.TAB_TRAVERSAL
+		wx.Panel.__init__(self, *args, **kwds)
+		self._PRW_panel = cTestPanelPRW(self, wx.ID_ANY, "", style=wx.BORDER_NONE)
+		self._TCTRL_panel_comment = wx.TextCtrl(self, wx.ID_ANY, "", style=wx.BORDER_NONE)
+		self._BTN_manage_panels = wx.Button(self, wx.ID_ANY, _("Manage"), style=wx.BU_EXACTFIT)
+		self._GRID_results_battery = cMeasurementsGrid(self, wx.ID_ANY, size=(1, 1))
+
+		self.__set_properties()
+		self.__do_layout()
+
+		self.Bind(wx.EVT_BUTTON, self._on_manage_panels_button_pressed, self._BTN_manage_panels)
+		# end wxGlade
+
+	def __set_properties(self):
+		# begin wxGlade: wxgMeasurementsByBatteryPnl.__set_properties
+		self._TCTRL_panel_comment.SetBackgroundColour(wx.SystemSettings_GetColour(wx.SYS_COLOUR_BACKGROUND))
+		self._TCTRL_panel_comment.Enable(False)
+		self._BTN_manage_panels.SetToolTipString(_("Manage test panels."))
+		# end wxGlade
+
+	def __do_layout(self):
+		# begin wxGlade: wxgMeasurementsByBatteryPnl.__do_layout
+		__szr_main = wx.BoxSizer(wx.VERTICAL)
+		__szr_panel_options = wx.BoxSizer(wx.HORIZONTAL)
+		__lbl_display = wx.StaticText(self, wx.ID_ANY, _("&Panel:"))
+		__szr_panel_options.Add(__lbl_display, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5)
+		__szr_panel_options.Add(self._PRW_panel, 2, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 10)
+		__szr_panel_options.Add(self._TCTRL_panel_comment, 3, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5)
+		__szr_panel_options.Add(self._BTN_manage_panels, 0, wx.ALIGN_CENTER_VERTICAL, 5)
+		__szr_main.Add(__szr_panel_options, 0, wx.EXPAND | wx.LEFT | wx.RIGHT | wx.TOP, 5)
+		__szr_main.Add(self._GRID_results_battery, 1, wx.EXPAND, 5)
+		self.SetSizer(__szr_main)
+		__szr_main.Fit(self)
+		self.Layout()
+		# end wxGlade
+
+	def _on_manage_panels_button_pressed(self, event):  # wxGlade: wxgMeasurementsByBatteryPnl.<event_handler>
+		print "Event handler '_on_manage_panels_button_pressed' not implemented!"
+		event.Skip()
+
+# end of class wxgMeasurementsByBatteryPnl
diff --git a/client/wxGladeWidgets/wxgMeasurementsDetailsPnl.py b/client/wxGladeWidgets/wxgMeasurementsByDayPnl.py
similarity index 60%
rename from client/wxGladeWidgets/wxgMeasurementsDetailsPnl.py
rename to client/wxGladeWidgets/wxgMeasurementsByDayPnl.py
index 845d174..eee0198 100644
--- a/client/wxGladeWidgets/wxgMeasurementsDetailsPnl.py
+++ b/client/wxGladeWidgets/wxgMeasurementsByDayPnl.py
@@ -1,7 +1,7 @@
 #!/usr/bin/env python
 # -*- coding: UTF-8 -*-
 #
-# generated by wxGlade 0.6.8
+# generated by wxGlade 0.7.0
 #
 
 import wx
@@ -15,14 +15,14 @@ from Gnumed.wxpython.gmListWidgets import cReportListCtrl
 # end wxGlade
 
 
-class wxgMeasurementsDetailsPnl(wx.Panel):
+class wxgMeasurementsByDayPnl(wx.Panel):
 	def __init__(self, *args, **kwds):
-		# begin wxGlade: wxgMeasurementsDetailsPnl.__init__
+		# begin wxGlade: wxgMeasurementsByDayPnl.__init__
 		kwds["style"] = wx.TAB_TRAVERSAL
 		wx.Panel.__init__(self, *args, **kwds)
-		self._LCTRL_days = cReportListCtrl(self, wx.ID_ANY, style=wx.LC_REPORT | wx.NO_BORDER)
-		self._LCTRL_results = cReportListCtrl(self, wx.ID_ANY, style=wx.LC_REPORT | wx.NO_BORDER)
-		self._TCTRL_measurements = wx.TextCtrl(self, wx.ID_ANY, "", style=wx.TE_MULTILINE | wx.TE_READONLY | wx.TE_AUTO_URL | wx.NO_BORDER)
+		self._LCTRL_days = cReportListCtrl(self, wx.ID_ANY, style=wx.BORDER_NONE | wx.LC_REPORT)
+		self._LCTRL_results = cReportListCtrl(self, wx.ID_ANY, style=wx.BORDER_NONE | wx.LC_REPORT)
+		self._TCTRL_measurements = wx.TextCtrl(self, wx.ID_ANY, "", style=wx.BORDER_NONE | wx.TE_AUTO_URL | wx.TE_MULTILINE | wx.TE_READONLY)
 
 		self.__set_properties()
 		self.__do_layout()
@@ -32,26 +32,27 @@ class wxgMeasurementsDetailsPnl(wx.Panel):
 		# end wxGlade
 
 	def __set_properties(self):
-		# begin wxGlade: wxgMeasurementsDetailsPnl.__set_properties
+		# begin wxGlade: wxgMeasurementsByDayPnl.__set_properties
 		self._TCTRL_measurements.SetBackgroundColour(wx.SystemSettings_GetColour(wx.SYS_COLOUR_BACKGROUND))
 		# end wxGlade
 
 	def __do_layout(self):
-		# begin wxGlade: wxgMeasurementsDetailsPnl.__do_layout
+		# begin wxGlade: wxgMeasurementsByDayPnl.__do_layout
 		__szr_main = wx.BoxSizer(wx.HORIZONTAL)
-		__szr_main.Add(self._LCTRL_days, 0, wx.RIGHT | wx.EXPAND, 5)
-		__szr_main.Add(self._LCTRL_results, 1, wx.RIGHT | wx.EXPAND, 5)
-		__szr_main.Add(self._TCTRL_measurements, 1, wx.EXPAND, 0)
+		__szr_main.Add(self._LCTRL_days, 2, wx.EXPAND | wx.RIGHT, 5)
+		__szr_main.Add(self._LCTRL_results, 8, wx.EXPAND | wx.RIGHT, 5)
+		__szr_main.Add(self._TCTRL_measurements, 10, wx.EXPAND, 0)
 		self.SetSizer(__szr_main)
 		__szr_main.Fit(self)
+		self.Layout()
 		# end wxGlade
 
-	def _on_day_selected(self, event):  # wxGlade: wxgMeasurementsDetailsPnl.<event_handler>
+	def _on_day_selected(self, event):  # wxGlade: wxgMeasurementsByDayPnl.<event_handler>
 		print "Event handler '_on_day_selected' not implemented!"
 		event.Skip()
 
-	def _on_result_selected(self, event):  # wxGlade: wxgMeasurementsDetailsPnl.<event_handler>
+	def _on_result_selected(self, event):  # wxGlade: wxgMeasurementsByDayPnl.<event_handler>
 		print "Event handler '_on_result_selected' not implemented!"
 		event.Skip()
 
-# end of class wxgMeasurementsDetailsPnl
+# end of class wxgMeasurementsByDayPnl
diff --git a/client/wxGladeWidgets/wxgMeasurementsPnl.py b/client/wxGladeWidgets/wxgMeasurementsPnl.py
index 26273ab..d601f4e 100644
--- a/client/wxGladeWidgets/wxgMeasurementsPnl.py
+++ b/client/wxGladeWidgets/wxgMeasurementsPnl.py
@@ -18,7 +18,7 @@ import gettext
 class wxgMeasurementsPnl(wx.Panel):
 	def __init__(self, *args, **kwds):
 
-		from Gnumed.wxpython.gmMeasurementWidgets import cMeasurementsDetailsPnl
+		from Gnumed.wxpython.gmMeasurementWidgets import cMeasurementsByDayPnl
 		from Gnumed.wxpython.gmMeasurementWidgets import cMeasurementsGrid
 		from Gnumed.wxpython.gmMeasurementWidgets import cTestPanelPRW
 
@@ -33,7 +33,7 @@ class wxgMeasurementsPnl(wx.Panel):
 		self._GRID_results_battery = cMeasurementsGrid(self._PNL_results_battery_grid, wx.ID_ANY, size=(100, 100))
 		self._PNL_results_all_grid = wx.Panel(self, wx.ID_ANY, style=wx.NO_BORDER)
 		self._GRID_results_all = cMeasurementsGrid(self._PNL_results_all_grid, wx.ID_ANY, size=(100, 100))
-		self._PNL_results_all_listed = cMeasurementsDetailsPnl(self, wx.ID_ANY, style=wx.NO_BORDER | wx.TAB_TRAVERSAL)
+		self._PNL_results_all_listed = cMeasurementsByDayPnl(self, wx.ID_ANY, style=wx.NO_BORDER | wx.TAB_TRAVERSAL)
 		self._BTN_manage_types = wx.Button(self, wx.ID_ANY, _("Manage types"), style=wx.BU_EXACTFIT)
 		self._BTN_add = wx.Button(self, wx.ID_ADD, "")
 		self._BTN_list = wx.Button(self, wx.ID_ANY, _("&List"))
diff --git a/client/wxGladeWidgets/wxgModifyOrthancContentDlg.py b/client/wxGladeWidgets/wxgModifyOrthancContentDlg.py
new file mode 100644
index 0000000..95a0432
--- /dev/null
+++ b/client/wxGladeWidgets/wxgModifyOrthancContentDlg.py
@@ -0,0 +1,80 @@
+#!/usr/bin/env python
+# -*- coding: UTF-8 -*-
+#
+# generated by wxGlade 0.7.0
+#
+
+import wx
+
+# begin wxGlade: dependencies
+import gettext
+# end wxGlade
+
+# begin wxGlade: extracode
+from Gnumed.wxpython.gmTextCtrl import cTextCtrl
+from Gnumed.wxpython.gmListWidgets import cReportListCtrl
+# end wxGlade
+
+
+class wxgModifyOrthancContentDlg(wx.Dialog):
+	def __init__(self, *args, **kwds):
+		# begin wxGlade: wxgModifyOrthancContentDlg.__init__
+		kwds["style"] = wx.CAPTION | wx.CLOSE_BOX | wx.MAXIMIZE_BOX | wx.MINIMIZE_BOX | wx.RESIZE_BORDER
+		wx.Dialog.__init__(self, *args, **kwds)
+		self._TCTRL_search_term = cTextCtrl(self, wx.ID_ANY, "", style=wx.BORDER_NONE)
+		self._BTN_search_patients = wx.Button(self, wx.ID_ANY, _("&Search"), style=wx.BU_EXACTFIT)
+		self._LCTRL_patients = cReportListCtrl(self, wx.ID_ANY, style=wx.BORDER_NONE | wx.LC_REPORT)
+		self._TCTRL_new_patient_id = wx.TextCtrl(self, wx.ID_ANY, "", style=wx.BORDER_NONE)
+		self._BTN_suggest_patient_id = wx.Button(self, wx.ID_ANY, _("Suggest"), style=wx.BU_EXACTFIT)
+		self._BTN_set_patient_id = wx.Button(self, wx.ID_ANY, _("Set"), style=wx.BU_EXACTFIT)
+
+		self.__set_properties()
+		self.__do_layout()
+
+		self.Bind(wx.EVT_BUTTON, self._on_search_patients_button_pressed, self._BTN_search_patients)
+		self.Bind(wx.EVT_BUTTON, self._on_suggest_patient_id_button_pressed, self._BTN_suggest_patient_id)
+		self.Bind(wx.EVT_BUTTON, self._on_set_patient_id_button_pressed, self._BTN_set_patient_id)
+		# end wxGlade
+
+	def __set_properties(self):
+		# begin wxGlade: wxgModifyOrthancContentDlg.__set_properties
+		self.SetTitle(_("dialog_1"))
+		self._BTN_search_patients.SetToolTipString(_("Search patients in Orthanc DICOM store."))
+		self._BTN_suggest_patient_id.SetToolTipString(_("Suggest a patient ID based on the active patient."))
+		# end wxGlade
+
+	def __do_layout(self):
+		# begin wxGlade: wxgModifyOrthancContentDlg.__do_layout
+		__szr_main = wx.BoxSizer(wx.VERTICAL)
+		__szr_patient_id = wx.BoxSizer(wx.HORIZONTAL)
+		__szr_search = wx.BoxSizer(wx.HORIZONTAL)
+		__lbl_search_term = wx.StaticText(self, wx.ID_ANY, _("Search term:"))
+		__szr_search.Add(__lbl_search_term, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5)
+		__szr_search.Add(self._TCTRL_search_term, 1, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 3)
+		__szr_search.Add(self._BTN_search_patients, 0, wx.ALIGN_CENTER_VERTICAL, 0)
+		__szr_main.Add(__szr_search, 0, wx.EXPAND | wx.LEFT | wx.RIGHT | wx.TOP, 3)
+		__szr_main.Add(self._LCTRL_patients, 1, wx.EXPAND | wx.LEFT | wx.RIGHT | wx.TOP, 3)
+		__lbl_new_patient_id = wx.StaticText(self, wx.ID_ANY, _("New patient ID:"))
+		__szr_patient_id.Add(__lbl_new_patient_id, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5)
+		__szr_patient_id.Add(self._TCTRL_new_patient_id, 1, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5)
+		__szr_patient_id.Add(self._BTN_suggest_patient_id, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 3)
+		__szr_patient_id.Add(self._BTN_set_patient_id, 0, wx.ALIGN_CENTER_VERTICAL, 0)
+		__szr_main.Add(__szr_patient_id, 0, wx.EXPAND | wx.LEFT | wx.RIGHT | wx.TOP, 0)
+		self.SetSizer(__szr_main)
+		__szr_main.Fit(self)
+		self.Layout()
+		# end wxGlade
+
+	def _on_search_patients_button_pressed(self, event):  # wxGlade: wxgModifyOrthancContentDlg.<event_handler>
+		print "Event handler '_on_search_patients_button_pressed' not implemented!"
+		event.Skip()
+
+	def _on_suggest_patient_id_button_pressed(self, event):  # wxGlade: wxgModifyOrthancContentDlg.<event_handler>
+		print "Event handler '_on_suggest_patient_id_button_pressed' not implemented!"
+		event.Skip()
+
+	def _on_set_patient_id_button_pressed(self, event):  # wxGlade: wxgModifyOrthancContentDlg.<event_handler>
+		print "Event handler '_on_set_patient_id_button_pressed' not implemented!"
+		event.Skip()
+
+# end of class wxgModifyOrthancContentDlg
diff --git a/client/wxGladeWidgets/wxgOrganizationManagerDlg.py b/client/wxGladeWidgets/wxgOrganizationManagerDlg.py
index 8613ae5..bac9f76 100644
--- a/client/wxGladeWidgets/wxgOrganizationManagerDlg.py
+++ b/client/wxGladeWidgets/wxgOrganizationManagerDlg.py
@@ -1,7 +1,7 @@
 #!/usr/bin/env python
 # -*- coding: UTF-8 -*-
 #
-# generated by wxGlade 0.6.8
+# generated by wxGlade 0.7.0
 #
 
 import wx
@@ -22,13 +22,13 @@ from Gnumed.wxpython.gmOrganizationWidgets import cOrganizationsManagerPnl
 class wxgOrganizationManagerDlg(wx.Dialog):
 	def __init__(self, *args, **kwds):
 		# begin wxGlade: wxgOrganizationManagerDlg.__init__
-		kwds["style"] = wx.DEFAULT_DIALOG_STYLE | wx.RESIZE_BORDER | wx.MAXIMIZE_BOX | wx.MINIMIZE_BOX | wx.THICK_FRAME
+		kwds["style"] = wx.DEFAULT_DIALOG_STYLE | wx.MAXIMIZE_BOX | wx.MINIMIZE_BOX | wx.RESIZE_BORDER
 		wx.Dialog.__init__(self, *args, **kwds)
 		self._PNL_orgs = cOrganizationsManagerPnl(self, wx.ID_ANY)
 		self._PNL_units = cOrgUnitsManagerPnl(self, wx.ID_ANY)
-		self._PNL_address = cOrgUnitAddressPnl(self, wx.ID_ANY, style=wx.NO_BORDER | wx.TAB_TRAVERSAL)
-		self._PNL_comms = cCommChannelsManagerPnl(self, wx.ID_ANY, style=wx.NO_BORDER | wx.TAB_TRAVERSAL)
-		self._PNL_ids = cOrgUnitIDsMgrPnl(self, wx.ID_ANY, style=wx.NO_BORDER | wx.TAB_TRAVERSAL)
+		self._PNL_address = cOrgUnitAddressPnl(self, wx.ID_ANY, style=wx.BORDER_NONE | wx.TAB_TRAVERSAL)
+		self._PNL_comms = cCommChannelsManagerPnl(self, wx.ID_ANY, style=wx.BORDER_NONE | wx.TAB_TRAVERSAL)
+		self._PNL_ids = cOrgUnitIDsMgrPnl(self, wx.ID_ANY, style=wx.BORDER_NONE | wx.TAB_TRAVERSAL)
 
 		self.__set_properties()
 		self.__do_layout()
@@ -42,31 +42,18 @@ class wxgOrganizationManagerDlg(wx.Dialog):
 
 	def __do_layout(self):
 		# begin wxGlade: wxgOrganizationManagerDlg.__do_layout
-		__szr_main = wx.BoxSizer(wx.VERTICAL)
-		__szr_units = wx.BoxSizer(wx.HORIZONTAL)
+		__szr_main = wx.BoxSizer(wx.HORIZONTAL)
 		__szr_unit_details = wx.BoxSizer(wx.VERTICAL)
-		__szr_main.Add(self._PNL_orgs, 1, wx.ALL | wx.EXPAND, 5)
-		__szr_units.Add(self._PNL_units, 2, wx.LEFT | wx.TOP | wx.BOTTOM | wx.EXPAND, 5)
-		__lbl_pusher = wx.StaticText(self, wx.ID_ANY, "")
-		__szr_unit_details.Add(__lbl_pusher, 0, wx.BOTTOM | wx.EXPAND | wx.ALIGN_CENTER_VERTICAL, 3)
-		__hline_middle = wx.StaticLine(self, wx.ID_ANY)
-		__szr_unit_details.Add(__hline_middle, 0, wx.BOTTOM | wx.EXPAND | wx.ALIGN_CENTER_VERTICAL, 20)
-		__szr_unit_details.Add(self._PNL_address, 2, wx.LEFT | wx.EXPAND, 5)
-		__szr_unit_details.Add(self._PNL_comms, 3, wx.LEFT | wx.EXPAND, 1)
-		__szr_unit_details.Add(self._PNL_ids, 3, wx.LEFT | wx.EXPAND, 1)
-		__szr_units.Add(__szr_unit_details, 3, wx.RIGHT | wx.TOP | wx.BOTTOM | wx.EXPAND, 5)
-		__szr_main.Add(__szr_units, 1, wx.EXPAND, 0)
+		__szr_orgs_units = wx.BoxSizer(wx.VERTICAL)
+		__szr_orgs_units.Add(self._PNL_orgs, 2, 0, 5)
+		__szr_orgs_units.Add(self._PNL_units, 1, 0, 5)
+		__szr_main.Add(__szr_orgs_units, 1, wx.ALL, 5)
+		__szr_unit_details.Add(self._PNL_address, 2, wx.EXPAND | wx.LEFT, 5)
+		__szr_unit_details.Add(self._PNL_comms, 3, wx.EXPAND | wx.LEFT, 1)
+		__szr_unit_details.Add(self._PNL_ids, 3, wx.EXPAND | wx.LEFT, 1)
+		__szr_main.Add(__szr_unit_details, 3, wx.BOTTOM | wx.RIGHT | wx.TOP, 5)
 		self.SetSizer(__szr_main)
 		self.Layout()
 		# end wxGlade
 
 # end of class wxgOrganizationManagerDlg
-if __name__ == "__main__":
-	gettext.install("app") # replace with the appropriate catalog name
-
-	app = wx.PySimpleApp(0)
-	wx.InitAllImageHandlers()
-	dialog_1 = wxgOrganizationManagerDlg(None, wx.ID_ANY, "")
-	app.SetTopWindow(dialog_1)
-	dialog_1.Show()
-	app.MainLoop()
\ No newline at end of file
diff --git a/client/wxGladeWidgets/wxgPACSPluginPnl.py b/client/wxGladeWidgets/wxgPACSPluginPnl.py
new file mode 100644
index 0000000..ac24746
--- /dev/null
+++ b/client/wxGladeWidgets/wxgPACSPluginPnl.py
@@ -0,0 +1,161 @@
+#!/usr/bin/env python
+# -*- coding: UTF-8 -*-
+#
+# generated by wxGlade 0.7.0
+#
+
+import wx
+
+# begin wxGlade: dependencies
+import gettext
+# end wxGlade
+
+# begin wxGlade: extracode
+from Gnumed.wxpython.gmListWidgets import cReportListCtrl
+from Gnumed.wxpython.gmTextCtrl import cTextCtrl
+# end wxGlade
+
+
+class wxgPACSPluginPnl(wx.Panel):
+	def __init__(self, *args, **kwds):
+		# begin wxGlade: wxgPACSPluginPnl.__init__
+		kwds["style"] = wx.BORDER_NONE | wx.TAB_TRAVERSAL
+		wx.Panel.__init__(self, *args, **kwds)
+		self._TCTRL_host = cTextCtrl(self, wx.ID_ANY, "", style=wx.BORDER_NONE)
+		self._TCTRL_port = cTextCtrl(self, wx.ID_ANY, "", style=wx.BORDER_NONE)
+		self._TCTRL_user = cTextCtrl(self, wx.ID_ANY, "", style=wx.BORDER_NONE)
+		self._TCTRL_password = wx.TextCtrl(self, wx.ID_ANY, "", style=wx.BORDER_NONE | wx.TE_PASSWORD)
+		self._BTN_connect = wx.Button(self, wx.ID_ANY, _("&Connect"), style=wx.BU_EXACTFIT)
+		self._BTN_browse_pacs = wx.Button(self, wx.ID_ANY, _("&Browse"), style=wx.BU_EXACTFIT)
+		self._BTN_modify_orthanc_content = wx.Button(self, wx.ID_ANY, _("Edit"), style=wx.BU_EXACTFIT)
+		self._LBL_PACS_identification = wx.StaticText(self, wx.ID_ANY, _("<not connected>"))
+		self._LBL_patient_identification = wx.StaticText(self, wx.ID_ANY, "")
+		self._LBL_no_of_studies = wx.StaticText(self, wx.ID_ANY, "")
+		self._BTN_browse_patient = wx.Button(self, wx.ID_ANY, _("Browse all"), style=wx.BU_EXACTFIT)
+		self._BTN_export_all_studies = wx.Button(self, wx.ID_ANY, _("Export all"), style=wx.BU_EXACTFIT)
+		self._BTN_browse_study = wx.Button(self, wx.ID_ANY, _("Browse"), style=wx.BU_EXACTFIT)
+		self._BTN_export_study = wx.Button(self, wx.ID_ANY, _("Export"), style=wx.BU_EXACTFIT)
+		self._BTN_save_selected_studies = wx.Button(self, wx.ID_ANY, _("Save"), style=wx.BU_EXACTFIT)
+		self._BTN_upload = wx.Button(self, wx.ID_ANY, _("Upload"), style=wx.BU_EXACTFIT)
+		self._LCTRL_studies = cReportListCtrl(self, wx.ID_ANY, style=wx.BORDER_NONE | wx.LC_REPORT)
+		self._LCTRL_series = cReportListCtrl(self, wx.ID_ANY, style=wx.BORDER_NONE | wx.LC_REPORT)
+
+		self.__set_properties()
+		self.__do_layout()
+
+		self.Bind(wx.EVT_BUTTON, self._on_connect_button_pressed, self._BTN_connect)
+		self.Bind(wx.EVT_BUTTON, self._on_browse_pacs_button_pressed, self._BTN_browse_pacs)
+		self.Bind(wx.EVT_BUTTON, self._on_modify_orthanc_content_button_pressed, self._BTN_modify_orthanc_content)
+		self.Bind(wx.EVT_BUTTON, self._on_browse_patient_button_pressed, self._BTN_browse_patient)
+		self.Bind(wx.EVT_BUTTON, self._on_export_all_studies_button_pressed, self._BTN_export_all_studies)
+		self.Bind(wx.EVT_BUTTON, self._on_browse_study_button_pressed, self._BTN_browse_study)
+		self.Bind(wx.EVT_BUTTON, self._on_export_study_button_pressed, self._BTN_export_study)
+		self.Bind(wx.EVT_BUTTON, self._on_save_selected_studies_button_pressed, self._BTN_save_selected_studies)
+		self.Bind(wx.EVT_BUTTON, self._on_upload_button_pressed, self._BTN_upload)
+		self.Bind(wx.EVT_LIST_ITEM_SELECTED, self._on_studies_list_item_selected, self._LCTRL_studies)
+		# end wxGlade
+
+	def __set_properties(self):
+		# begin wxGlade: wxgPACSPluginPnl.__set_properties
+		self._TCTRL_host.SetToolTipString(_("Enter the PACS host address."))
+		self._TCTRL_port.SetToolTipString(_("Enter the PACS port."))
+		self._TCTRL_user.SetToolTipString(_("Enter the PACS user."))
+		self._TCTRL_password.SetToolTipString(_("Enter the PACS password. It will not be shown."))
+		self._BTN_connect.SetToolTipString(_("Connect to PACS."))
+		self._BTN_browse_pacs.SetToolTipString(_("Browse PACS at top level."))
+		self._BTN_modify_orthanc_content.SetToolTipString(_("Modify some of Orthanc content (such as patient IDs)."))
+		self._BTN_browse_patient.SetToolTipString(_("Browse overview of studies for this patient."))
+		self._BTN_browse_patient.Enable(False)
+		self._BTN_export_all_studies.SetToolTipString(_("Copy all studies into export area."))
+		self._BTN_export_all_studies.Enable(False)
+		self._BTN_browse_study.SetToolTipString(_("Browse topmost selected study."))
+		self._BTN_browse_study.Enable(False)
+		self._BTN_export_study.SetToolTipString(_("Copy selected studies into export area."))
+		self._BTN_export_study.Enable(False)
+		self._BTN_save_selected_studies.SetToolTipString(_("Save selected studies to disk."))
+		self._BTN_save_selected_studies.Enable(False)
+		self._BTN_upload.SetToolTipString(_("Upload DICOM files from a directory, recursively, into the Orthanc PACS\n\nThe currently active patient does not matter. Orthanc will associate uploaded files with the patient found within the DICOM metadata. It will create new patients as needed."))
+		# end wxGlade
+
+	def __do_layout(self):
+		# begin wxGlade: wxgPACSPluginPnl.__do_layout
+		__szr_main = wx.BoxSizer(wx.VERTICAL)
+		__szr_buttons = wx.BoxSizer(wx.HORIZONTAL)
+		__szr_PACS_details = wx.BoxSizer(wx.HORIZONTAL)
+		__lbl_host = wx.StaticText(self, wx.ID_ANY, _("Host:"))
+		__szr_PACS_details.Add(__lbl_host, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 3)
+		__szr_PACS_details.Add(self._TCTRL_host, 1, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5)
+		__lbl_port = wx.StaticText(self, wx.ID_ANY, _("Port:"))
+		__szr_PACS_details.Add(__lbl_port, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 3)
+		__szr_PACS_details.Add(self._TCTRL_port, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5)
+		__lbl_user = wx.StaticText(self, wx.ID_ANY, _("User:"))
+		__szr_PACS_details.Add(__lbl_user, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 3)
+		__szr_PACS_details.Add(self._TCTRL_user, 1, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5)
+		__lbl_password = wx.StaticText(self, wx.ID_ANY, _("Password"))
+		__szr_PACS_details.Add(__lbl_password, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 3)
+		__szr_PACS_details.Add(self._TCTRL_password, 1, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5)
+		__szr_PACS_details.Add(self._BTN_connect, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5)
+		__szr_PACS_details.Add(self._BTN_browse_pacs, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5)
+		__szr_PACS_details.Add(self._BTN_modify_orthanc_content, 0, wx.ALIGN_CENTER_VERTICAL, 0)
+		__szr_main.Add(__szr_PACS_details, 0, wx.EXPAND | wx.LEFT | wx.RIGHT | wx.TOP, 3)
+		__szr_main.Add(self._LBL_PACS_identification, 0, wx.EXPAND | wx.LEFT | wx.RIGHT | wx.TOP, 3)
+		__szr_main.Add(self._LBL_patient_identification, 0, wx.EXPAND | wx.LEFT | wx.RIGHT | wx.TOP, 3)
+		__szr_buttons.Add(self._LBL_no_of_studies, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 3)
+		__szr_buttons.Add(self._BTN_browse_patient, 0, wx.RIGHT, 3)
+		__szr_buttons.Add(self._BTN_export_all_studies, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 3)
+		__lbl_selected_study = wx.StaticText(self, wx.ID_ANY, _("Selected studies:"))
+		__szr_buttons.Add(__lbl_selected_study, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 3)
+		__szr_buttons.Add(self._BTN_browse_study, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 3)
+		__szr_buttons.Add(self._BTN_export_study, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 3)
+		__szr_buttons.Add(self._BTN_save_selected_studies, 0, wx.ALIGN_CENTER_VERTICAL, 0)
+		__szr_buttons.Add((20, 20), 1, wx.ALIGN_CENTER_VERTICAL | wx.EXPAND, 0)
+		__szr_buttons.Add(self._BTN_upload, 0, wx.ALIGN_CENTER_VERTICAL, 0)
+		__szr_main.Add(__szr_buttons, 0, wx.EXPAND | wx.LEFT | wx.RIGHT | wx.TOP, 3)
+		__szr_main.Add(self._LCTRL_studies, 2, wx.EXPAND | wx.LEFT | wx.RIGHT | wx.TOP, 3)
+		__szr_main.Add(self._LCTRL_series, 3, wx.EXPAND | wx.LEFT | wx.RIGHT | wx.TOP, 3)
+		self.SetSizer(__szr_main)
+		__szr_main.Fit(self)
+		self.Layout()
+		# end wxGlade
+
+	def _on_connect_button_pressed(self, event):  # wxGlade: wxgPACSPluginPnl.<event_handler>
+		print "Event handler '_on_connect_button_pressed' not implemented!"
+		event.Skip()
+
+	def _on_browse_pacs_button_pressed(self, event):  # wxGlade: wxgPACSPluginPnl.<event_handler>
+		print "Event handler '_on_browse_pacs_button_pressed' not implemented!"
+		event.Skip()
+
+	def _on_modify_orthanc_content_button_pressed(self, event):  # wxGlade: wxgPACSPluginPnl.<event_handler>
+		print "Event handler '_on_modify_orthanc_content_button_pressed' not implemented!"
+		event.Skip()
+
+	def _on_browse_patient_button_pressed(self, event):  # wxGlade: wxgPACSPluginPnl.<event_handler>
+		print "Event handler '_on_browse_patient_button_pressed' not implemented!"
+		event.Skip()
+
+	def _on_export_all_studies_button_pressed(self, event):  # wxGlade: wxgPACSPluginPnl.<event_handler>
+		print "Event handler '_on_export_all_studies_button_pressed' not implemented!"
+		event.Skip()
+
+	def _on_browse_study_button_pressed(self, event):  # wxGlade: wxgPACSPluginPnl.<event_handler>
+		print "Event handler '_on_browse_study_button_pressed' not implemented!"
+		event.Skip()
+
+	def _on_export_study_button_pressed(self, event):  # wxGlade: wxgPACSPluginPnl.<event_handler>
+		print "Event handler '_on_export_study_button_pressed' not implemented!"
+		event.Skip()
+
+	def _on_save_selected_studies_button_pressed(self, event):  # wxGlade: wxgPACSPluginPnl.<event_handler>
+		print "Event handler '_on_save_selected_studies_button_pressed' not implemented!"
+		event.Skip()
+
+	def _on_upload_button_pressed(self, event):  # wxGlade: wxgPACSPluginPnl.<event_handler>
+		print "Event handler '_on_upload_button_pressed' not implemented!"
+		event.Skip()
+
+	def _on_studies_list_item_selected(self, event):  # wxGlade: wxgPACSPluginPnl.<event_handler>
+		print "Event handler '_on_studies_list_item_selected' not implemented!"
+		event.Skip()
+
+# end of class wxgPACSPluginPnl
diff --git a/client/wxGladeWidgets/wxgProgressNotesEAPnl.py b/client/wxGladeWidgets/wxgProgressNotesEAPnl.py
new file mode 100644
index 0000000..ca671a1
--- /dev/null
+++ b/client/wxGladeWidgets/wxgProgressNotesEAPnl.py
@@ -0,0 +1,127 @@
+#!/usr/bin/env python
+# -*- coding: UTF-8 -*-
+#
+# generated by wxGlade 0.7.0
+#
+
+import wx
+
+# begin wxGlade: dependencies
+import gettext
+# end wxGlade
+
+# begin wxGlade: extracode
+# end wxGlade
+
+
+class wxgProgressNotesEAPnl(wx.ScrolledWindow):
+	def __init__(self, *args, **kwds):
+
+		from Gnumed.wxpython.gmTextCtrl import cExpandoTextCtrl
+		from Gnumed.wxpython.gmVisualProgressNoteWidgets import cVisualSoapPresenterPnl
+		from Gnumed.wxpython.gmCodingWidgets import cGenericCodesPhraseWheel
+		from Gnumed.wxpython.gmSoapSTCWidgets import cSoapSTC
+
+		# begin wxGlade: wxgProgressNotesEAPnl.__init__
+		kwds["style"] = wx.BORDER_NONE | wx.TAB_TRAVERSAL
+		wx.ScrolledWindow.__init__(self, *args, **kwds)
+		self._LBL_Soap = wx.StaticText(self, wx.ID_ANY, _("Subjective"))
+		self._PRW_Soap_codes = cGenericCodesPhraseWheel(self, wx.ID_ANY, "", style=wx.BORDER_NONE | wx.TE_READONLY)
+		self._TCTRL_Soap = cExpandoTextCtrl(self, wx.ID_ANY, "", style=wx.BORDER_NONE | wx.TE_WORDWRAP)
+		self._LBL_sOap = wx.StaticText(self, wx.ID_ANY, _("Objective"))
+		self._PRW_sOap_codes = cGenericCodesPhraseWheel(self, wx.ID_ANY, "", style=wx.BORDER_NONE | wx.TE_READONLY)
+		self._TCTRL_sOap = cExpandoTextCtrl(self, wx.ID_ANY, "", style=wx.BORDER_NONE | wx.TE_WORDWRAP)
+		self._LBL_soAp = wx.StaticText(self, wx.ID_ANY, _("Assessment"))
+		self._PRW_soAp_codes = cGenericCodesPhraseWheel(self, wx.ID_ANY, "", style=wx.BORDER_NONE | wx.TE_READONLY)
+		self._TCTRL_soAp = cExpandoTextCtrl(self, wx.ID_ANY, "", style=wx.BORDER_NONE | wx.TE_WORDWRAP)
+		self._LBL_soaP = wx.StaticText(self, wx.ID_ANY, _("Plan"))
+		self._PRW_soaP_codes = cGenericCodesPhraseWheel(self, wx.ID_ANY, "", style=wx.BORDER_NONE | wx.TE_READONLY)
+		self._TCTRL_soaP = cExpandoTextCtrl(self, wx.ID_ANY, "", style=wx.BORDER_NONE | wx.TE_WORDWRAP)
+		self._STC_soap = cSoapSTC(self, wx.ID_ANY, "", style=wx.BORDER_NONE)
+		self._PNL_visual_soap = cVisualSoapPresenterPnl(self, wx.ID_ANY, style=wx.BORDER_NONE)
+		self._LBL_summary = wx.StaticText(self, wx.ID_ANY, _("Episode synopsis"))
+		self._PRW_episode_codes = cGenericCodesPhraseWheel(self, wx.ID_ANY, "", style=wx.BORDER_NONE)
+		self._TCTRL_episode_summary = cExpandoTextCtrl(self, wx.ID_ANY, "", style=wx.BORDER_NONE | wx.TE_WORDWRAP)
+
+		self.__set_properties()
+		self.__do_layout()
+		# end wxGlade
+
+	def __set_properties(self):
+		# begin wxGlade: wxgProgressNotesEAPnl.__set_properties
+		self.SetScrollRate(10, 10)
+		self._PRW_Soap_codes.SetToolTipString(_("Codes relevant to this Subjective\nseparated by \";\"."))
+		self._PRW_Soap_codes.Enable(False)
+		self._PRW_sOap_codes.SetToolTipString(_("Codes relevant to this Objective\nseparated by \";\"."))
+		self._PRW_sOap_codes.Enable(False)
+		self._PRW_soAp_codes.SetToolTipString(_("Codes relevant to this Assessment\nseparated by \";\"."))
+		self._PRW_soAp_codes.Enable(False)
+		self._PRW_soaP_codes.SetToolTipString(_("Codes relevant to this Plan\nseparated by \";\"."))
+		self._PRW_soaP_codes.Enable(False)
+		self._STC_soap.Hide()
+		self._PRW_episode_codes.SetToolTipString(_("Codes relevant to this episode\nseparated by \";\"."))
+		self._TCTRL_episode_summary.SetToolTipString(_("Here you can modify the cumulative summary (status) of the episode this SOAP narrative belongs to."))
+		# end wxGlade
+
+	def __do_layout(self):
+		# begin wxGlade: wxgProgressNotesEAPnl.__do_layout
+		__szr_main = wx.BoxSizer(wx.VERTICAL)
+		__szr_summary = wx.BoxSizer(wx.HORIZONTAL)
+		__szr_soaP = wx.BoxSizer(wx.HORIZONTAL)
+		__szr_soAp = wx.BoxSizer(wx.HORIZONTAL)
+		__szr_sOap = wx.BoxSizer(wx.HORIZONTAL)
+		__szr_Soap = wx.BoxSizer(wx.HORIZONTAL)
+		__szr_Soap.Add(self._LBL_Soap, 1, wx.ALIGN_CENTER_VERTICAL, 10)
+		__vline_Soap = wx.StaticLine(self, wx.ID_ANY, style=wx.LI_VERTICAL)
+		__szr_Soap.Add(__vline_Soap, 0, wx.EXPAND | wx.RIGHT, 5)
+		__lbl_Soap_codes = wx.StaticText(self, wx.ID_ANY, _("Codes:"))
+		__lbl_Soap_codes.Hide()
+		__szr_Soap.Add(__lbl_Soap_codes, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5)
+		__szr_Soap.Add(self._PRW_Soap_codes, 3, wx.ALIGN_CENTER_VERTICAL | wx.BOTTOM | wx.EXPAND | wx.TOP, 2)
+		__szr_main.Add(__szr_Soap, 0, wx.EXPAND | wx.LEFT | wx.RIGHT, 3)
+		__szr_main.Add(self._TCTRL_Soap, 0, wx.EXPAND | wx.LEFT | wx.RIGHT, 3)
+		__szr_sOap.Add(self._LBL_sOap, 1, wx.ALIGN_CENTER_VERTICAL, 5)
+		__vline_sOap = wx.StaticLine(self, wx.ID_ANY, style=wx.LI_VERTICAL)
+		__szr_sOap.Add(__vline_sOap, 0, wx.EXPAND | wx.RIGHT, 5)
+		__lbl_sOap_codes = wx.StaticText(self, wx.ID_ANY, _("Codes:"))
+		__lbl_sOap_codes.Hide()
+		__szr_sOap.Add(__lbl_sOap_codes, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5)
+		__szr_sOap.Add(self._PRW_sOap_codes, 3, wx.ALIGN_CENTER_VERTICAL | wx.BOTTOM | wx.EXPAND | wx.TOP, 2)
+		__szr_main.Add(__szr_sOap, 0, wx.EXPAND | wx.LEFT | wx.RIGHT, 3)
+		__szr_main.Add(self._TCTRL_sOap, 0, wx.EXPAND | wx.LEFT | wx.RIGHT, 3)
+		__szr_soAp.Add(self._LBL_soAp, 1, wx.ALIGN_CENTER_VERTICAL, 5)
+		__vline_soAp = wx.StaticLine(self, wx.ID_ANY, style=wx.LI_VERTICAL)
+		__szr_soAp.Add(__vline_soAp, 0, wx.EXPAND | wx.RIGHT, 5)
+		__lbl_soAp_codes = wx.StaticText(self, wx.ID_ANY, _("Codes:"))
+		__lbl_soAp_codes.Hide()
+		__szr_soAp.Add(__lbl_soAp_codes, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5)
+		__szr_soAp.Add(self._PRW_soAp_codes, 3, wx.ALIGN_CENTER_VERTICAL | wx.BOTTOM | wx.EXPAND | wx.TOP, 2)
+		__szr_main.Add(__szr_soAp, 0, wx.EXPAND | wx.LEFT | wx.RIGHT, 3)
+		__szr_main.Add(self._TCTRL_soAp, 0, wx.EXPAND | wx.LEFT | wx.RIGHT, 3)
+		__szr_soaP.Add(self._LBL_soaP, 1, wx.ALIGN_CENTER_VERTICAL, 5)
+		__vline_soaP = wx.StaticLine(self, wx.ID_ANY, style=wx.LI_VERTICAL)
+		__szr_soaP.Add(__vline_soaP, 0, wx.EXPAND | wx.RIGHT, 5)
+		__lbl_soaP_codes = wx.StaticText(self, wx.ID_ANY, _("Codes:"))
+		__lbl_soaP_codes.Hide()
+		__szr_soaP.Add(__lbl_soaP_codes, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5)
+		__szr_soaP.Add(self._PRW_soaP_codes, 3, wx.ALIGN_CENTER_VERTICAL | wx.BOTTOM | wx.EXPAND | wx.TOP, 2)
+		__szr_main.Add(__szr_soaP, 0, wx.EXPAND | wx.LEFT | wx.RIGHT, 3)
+		__szr_main.Add(self._TCTRL_soaP, 0, wx.BOTTOM | wx.EXPAND | wx.LEFT | wx.RIGHT, 3)
+		__szr_main.Add(self._STC_soap, 1, wx.ALL | wx.EXPAND, 3)
+		__szr_main.Add(self._PNL_visual_soap, 0, wx.EXPAND, 0)
+		_hline_above_summary = wx.StaticLine(self, wx.ID_ANY)
+		__szr_main.Add(_hline_above_summary, 0, wx.EXPAND | wx.LEFT | wx.RIGHT | wx.TOP, 5)
+		__szr_summary.Add(self._LBL_summary, 1, wx.ALIGN_CENTER_VERTICAL, 5)
+		__vline_summary = wx.StaticLine(self, wx.ID_ANY, style=wx.LI_VERTICAL)
+		__szr_summary.Add(__vline_summary, 0, wx.EXPAND | wx.RIGHT, 5)
+		__lbl_summary_codes = wx.StaticText(self, wx.ID_ANY, _("Codes:"))
+		__szr_summary.Add(__lbl_summary_codes, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5)
+		__szr_summary.Add(self._PRW_episode_codes, 3, wx.ALIGN_CENTER_VERTICAL | wx.BOTTOM | wx.EXPAND | wx.TOP, 2)
+		__szr_main.Add(__szr_summary, 0, wx.EXPAND | wx.LEFT | wx.RIGHT, 3)
+		__szr_main.Add(self._TCTRL_episode_summary, 0, wx.BOTTOM | wx.EXPAND | wx.LEFT | wx.RIGHT, 3)
+		self.SetSizer(__szr_main)
+		__szr_main.Fit(self)
+		self.Layout()
+		# end wxGlade
+
+# end of class wxgProgressNotesEAPnl
diff --git a/client/wxGladeWidgets/wxgProviderInboxPnl.py b/client/wxGladeWidgets/wxgProviderInboxPnl.py
index 299076e..dfeacf8 100644
--- a/client/wxGladeWidgets/wxgProviderInboxPnl.py
+++ b/client/wxGladeWidgets/wxgProviderInboxPnl.py
@@ -48,7 +48,6 @@ class wxgProviderInboxPnl(wx.ScrolledWindow):
 		self.Bind(wx.EVT_LIST_ITEM_SELECTED, self._lst_item_selected, self._LCTRL_provider_inbox)
 		self.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self._lst_item_activated, self._LCTRL_provider_inbox)
 		self.Bind(wx.EVT_LIST_ITEM_FOCUSED, self._lst_item_focused, self._LCTRL_provider_inbox)
-		self.Bind(wx.EVT_LIST_ITEM_RIGHT_CLICK, self._lst_item_right_clicked, self._LCTRL_provider_inbox)
 		# end wxGlade
 
 	def __set_properties(self):
@@ -132,8 +131,4 @@ class wxgProviderInboxPnl(wx.ScrolledWindow):
 		print "Event handler '_lst_item_focused' not implemented!"
 		event.Skip()
 
-	def _lst_item_right_clicked(self, event):  # wxGlade: wxgProviderInboxPnl.<event_handler>
-		print "Event handler '_lst_item_right_clicked' not implemented!"
-		event.Skip()
-
 # end of class wxgProviderInboxPnl
diff --git a/client/wxGladeWidgets/wxgScanIdxPnl.py b/client/wxGladeWidgets/wxgScanIdxPnl.py
index 812cd42..3a367b2 100644
--- a/client/wxGladeWidgets/wxgScanIdxPnl.py
+++ b/client/wxGladeWidgets/wxgScanIdxPnl.py
@@ -1,159 +1,189 @@
 #!/usr/bin/env python
-# -*- coding: ISO-8859-15 -*-
-# generated by wxGlade 0.4cvs on Tue Jul  4 22:55:22 2006
+# -*- coding: UTF-8 -*-
+#
+# generated by wxGlade 0.7.0
+#
 
 import wx
 
-class wxgScanIdxPnl(wx.Panel):
-    def __init__(self, *args, **kwds):
-
-        from Gnumed.wxpython import gmDocumentWidgets, gmPhraseWheel, gmDateTimeInput, gmEMRStructWidgets
-
-        # begin wxGlade: wxgScanIdxPnl.__init__
-        kwds["style"] = wx.TAB_TRAVERSAL
-        wx.Panel.__init__(self, *args, **kwds)
-        self.__btn_scan = wx.Button(self, wx.ID_ANY, _("&Scan page(s)"))
-        self.__btn_load = wx.Button(self, wx.ID_ANY, _("Pick &file(s)"))
-        self.__btn_clipboard = wx.Button(self, wx.ID_ANY, _("&Clipboard"))
-        self.__szr_top_left_btns_staticbox = wx.StaticBox(self, wx.ID_ANY, _("Part Sources"))
-        self._PhWheel_doc_type = gmDocumentWidgets.cDocumentTypeSelectionPhraseWheel(self, wx.ID_ANY)
-        self._PhWheel_doc_date = gmDateTimeInput.cFuzzyTimestampInput(self, wx.ID_ANY)
-        self._PhWheel_episode = gmEMRStructWidgets.cEpisodeSelectionPhraseWheel(self, wx.ID_ANY)
-        self._PRW_doc_comment = gmDocumentWidgets.cDocumentCommentPhraseWheel(self, wx.ID_ANY, "")
-        self.__lbl_reviewer = wx.StaticText(self, wx.ID_ANY, _("Intended reviewer:"))
-        self._PhWheel_reviewer = gmPhraseWheel.cPhraseWheel(self, wx.ID_ANY)
-        self._ChBOX_reviewed = wx.CheckBox(self, wx.ID_ANY, _("&review and sign"))
-        self._ChBOX_abnormal = wx.CheckBox(self, wx.ID_ANY, _("&technically abnormal"))
-        self._ChBOX_relevant = wx.CheckBox(self, wx.ID_ANY, _("&clinically relevant"))
-        self.__szr_top_middle_staticbox = wx.StaticBox(self, wx.ID_ANY, _("Document Properties"))
-        self._LBOX_doc_pages = wx.ListBox(self, wx.ID_ANY, choices=[], style=wx.LB_SINGLE | wx.LB_HSCROLL | wx.LB_NEEDED_SB)
-        self.__btn_show_page = wx.Button(self, wx.ID_ANY, _("Show part"))
-        self.__btn_del_page = wx.Button(self, wx.ID_ANY, _("Remove part"))
-        self.__szr_top_right_staticbox = wx.StaticBox(self, wx.ID_ANY, _("Parts"))
-        self._TBOX_description = wx.TextCtrl(self, wx.ID_ANY, "", style=wx.TE_MULTILINE | wx.TE_LINEWRAP | wx.TE_WORDWRAP | wx.NO_BORDER)
-        self.__btn_save = wx.Button(self, wx.ID_ANY, _("Save"))
-        self.__btn_discard = wx.Button(self, wx.ID_ANY, _("Discard"))
-
-        self.__set_properties()
-        self.__do_layout()
-
-        self.Bind(wx.EVT_BUTTON, self._scan_btn_pressed, self.__btn_scan)
-        self.Bind(wx.EVT_BUTTON, self._load_btn_pressed, self.__btn_load)
-        self.Bind(wx.EVT_BUTTON, self._clipboard_btn_pressed, self.__btn_clipboard)
-        self.Bind(wx.EVT_CHECKBOX, self._reviewed_box_checked, self._ChBOX_reviewed)
-        self.Bind(wx.EVT_BUTTON, self._show_btn_pressed, self.__btn_show_page)
-        self.Bind(wx.EVT_BUTTON, self._del_btn_pressed, self.__btn_del_page)
-        self.Bind(wx.EVT_BUTTON, self._save_btn_pressed, self.__btn_save)
-        self.Bind(wx.EVT_BUTTON, self._startover_btn_pressed, self.__btn_discard)
-        # end wxGlade
-
-    def __set_properties(self):
-        # begin wxGlade: wxgScanIdxPnl.__set_properties
-        self.__btn_scan.SetToolTipString(_("Acquire a page from an image source (scanner, camera). This may bring up an intermediate dialog. It uses Sane (Linux) or TWAIN (Windows)."))
-        self.__btn_scan.SetFocus()
-        self.__btn_scan.SetDefault()
-        self.__btn_load.SetToolTipString(_("Add a file from the filesystem as a new part. Shows a file selector dialog."))
-        self.__btn_clipboard.SetToolTipString(_("Load the topmost item from the clipboard."))
-        self._PhWheel_doc_type.SetToolTipString(_("Required: The type of this document."))
-        self._PhWheel_doc_date.SetToolTipString(_("The date when the medical information described in the document was produced. This is free text so you can add approximate dates, too, such as 3/2004 where appropriate."))
-        self._PhWheel_episode.SetToolTipString(_("Required: The primary episode this document is to be listed under."))
-        self._PRW_doc_comment.SetToolTipString(_("Optional: A short comment identifying the document. Good comments give an idea of the content and source of the document."))
-        self.__lbl_reviewer.SetForegroundColour(wx.Colour(255, 0, 0))
-        self._PhWheel_reviewer.SetToolTipString(_("Required: Enter the provider who will be notified about the new document so it can be reviewed. In most cases this is the primary doctor of the patient."))
-        self._ChBOX_reviewed.SetToolTipString(_("Check this to mark the document as reviewed upon import. If checked you can (and must) decide on \"technically abnormal\" and \"clinically relevant\", too. The default can be set by an option."))
-        self._ChBOX_abnormal.SetToolTipString(_("Whether this document report technically abormal results."))
-        self._ChBOX_abnormal.Enable(False)
-        self._ChBOX_relevant.SetToolTipString(_("Whether this document reports clinically relevant results. Note that both normal and abnormal resuslts can be relevant."))
-        self._ChBOX_relevant.Enable(False)
-        self._LBOX_doc_pages.SetToolTipString(_("This field lists the parts belonging to the current document."))
-        self.__btn_show_page.SetToolTipString(_("View the part selected in the above list."))
-        self.__btn_del_page.SetToolTipString(_("Remove the part selected in the above list. Will ask before physical deletion from disk."))
-        self._TBOX_description.SetToolTipString(_("Optional: A free-text document description."))
-        self.__btn_save.SetToolTipString(_("Save finished document."))
-        self.__btn_discard.SetToolTipString(_("Start over (discards current data)."))
-        # end wxGlade
-
-    def __do_layout(self):
-        # begin wxGlade: wxgScanIdxPnl.__do_layout
-        __szr_main = wx.BoxSizer(wx.VERTICAL)
-        __szr_bottom_third = wx.BoxSizer(wx.HORIZONTAL)
-        __szr_top_third = wx.BoxSizer(wx.HORIZONTAL)
-        self.__szr_top_right_staticbox.Lower()
-        __szr_top_right = wx.StaticBoxSizer(self.__szr_top_right_staticbox, wx.VERTICAL)
-        __szr_page_actions = wx.BoxSizer(wx.HORIZONTAL)
-        self.__szr_top_middle_staticbox.Lower()
-        __szr_top_middle = wx.StaticBoxSizer(self.__szr_top_middle_staticbox, wx.VERTICAL)
-        self.__szr_top_left_btns_staticbox.Lower()
-        __szr_top_left_btns = wx.StaticBoxSizer(self.__szr_top_left_btns_staticbox, wx.VERTICAL)
-        __szr_top_left_btns.Add(self.__btn_scan, 0, wx.BOTTOM | wx.EXPAND, 2)
-        __szr_top_left_btns.Add(self.__btn_load, 0, wx.BOTTOM | wx.EXPAND, 2)
-        __szr_top_left_btns.Add(self.__btn_clipboard, 0, wx.BOTTOM | wx.EXPAND, 2)
-        __szr_top_third.Add(__szr_top_left_btns, 0, wx.LEFT | wx.EXPAND, 5)
-        __lbl_doc_type = wx.StaticText(self, wx.ID_ANY, _("Document type:"))
-        __lbl_doc_type.SetForegroundColour(wx.Colour(255, 0, 0))
-        __szr_top_middle.Add(__lbl_doc_type, 0, wx.LEFT | wx.TOP | wx.ALIGN_CENTER_VERTICAL, 3)
-        __szr_top_middle.Add(self._PhWheel_doc_type, 0, wx.LEFT | wx.EXPAND | wx.ALIGN_CENTER_VERTICAL, 3)
-        __lbl_doc_date = wx.StaticText(self, wx.ID_ANY, _("Date document created:"))
-        __szr_top_middle.Add(__lbl_doc_date, 0, wx.LEFT | wx.TOP | wx.ALIGN_CENTER_VERTICAL, 3)
-        __szr_top_middle.Add(self._PhWheel_doc_date, 0, wx.LEFT | wx.EXPAND, 3)
-        __lbl_doc_episode = wx.StaticText(self, wx.ID_ANY, _("Associate to episode:"))
-        __lbl_doc_episode.SetForegroundColour(wx.Colour(255, 0, 0))
-        __szr_top_middle.Add(__lbl_doc_episode, 0, wx.LEFT | wx.TOP | wx.ALIGN_CENTER_VERTICAL, 3)
-        __szr_top_middle.Add(self._PhWheel_episode, 0, wx.LEFT | wx.EXPAND, 3)
-        __lbl_doc_comment = wx.StaticText(self, wx.ID_ANY, _("Comment / Identification:"))
-        __szr_top_middle.Add(__lbl_doc_comment, 0, wx.LEFT | wx.TOP | wx.ALIGN_CENTER_VERTICAL, 3)
-        __szr_top_middle.Add(self._PRW_doc_comment, 0, wx.LEFT | wx.EXPAND | wx.ALIGN_CENTER_VERTICAL, 3)
-        __szr_top_middle.Add(self.__lbl_reviewer, 0, wx.LEFT | wx.TOP | wx.ALIGN_CENTER_VERTICAL, 3)
-        __szr_top_middle.Add(self._PhWheel_reviewer, 0, wx.LEFT | wx.EXPAND | wx.ALIGN_CENTER_VERTICAL, 3)
-        __szr_top_middle.Add(self._ChBOX_reviewed, 0, wx.LEFT | wx.TOP | wx.ALIGN_CENTER_VERTICAL, 3)
-        __szr_top_middle.Add(self._ChBOX_abnormal, 0, wx.LEFT, 9)
-        __szr_top_middle.Add(self._ChBOX_relevant, 0, wx.LEFT, 9)
-        __szr_top_third.Add(__szr_top_middle, 1, wx.LEFT | wx.EXPAND, 5)
-        __szr_top_right.Add(self._LBOX_doc_pages, 1, wx.LEFT | wx.EXPAND, 3)
-        __szr_page_actions.Add(self.__btn_show_page, 0, wx.RIGHT, 5)
-        __szr_page_actions.Add(self.__btn_del_page, 0, 0, 0)
-        __szr_top_right.Add(__szr_page_actions, 0, wx.TOP | wx.EXPAND, 4)
-        __szr_top_third.Add(__szr_top_right, 1, wx.LEFT | wx.EXPAND, 5)
-        __szr_main.Add(__szr_top_third, 0, wx.LEFT | wx.RIGHT | wx.EXPAND, 5)
-        __szr_main.Add(self._TBOX_description, 1, wx.ALL | wx.EXPAND, 5)
-        __szr_bottom_third.Add(self.__btn_save, 0, wx.EXPAND, 0)
-        __szr_bottom_third.Add(self.__btn_discard, 0, wx.EXPAND, 0)
-        __szr_main.Add(__szr_bottom_third, 0, wx.LEFT | wx.BOTTOM | wx.EXPAND, 5)
-        self.SetSizer(__szr_main)
-        __szr_main.Fit(self)
-        # end wxGlade
-
-    def _scan_btn_pressed(self, event): # wxGlade: wxgScanIdxPnl.<event_handler>
-        print "Event handler `_scan_btn_pressed' not implemented!"
-        event.Skip()
-
-    def _load_btn_pressed(self, event): # wxGlade: wxgScanIdxPnl.<event_handler>
-        print "Event handler `_load_btn_pressed' not implemented!"
-        event.Skip()
-
-    def _reviewed_box_checked(self, event): # wxGlade: wxgScanIdxPnl.<event_handler>
-        print "Event handler `_reviewed_box_checked' not implemented!"
-        event.Skip()
-
-    def _show_btn_pressed(self, event): # wxGlade: wxgScanIdxPnl.<event_handler>
-        print "Event handler `_show_btn_pressed' not implemented!"
-        event.Skip()
-
-    def _del_btn_pressed(self, event): # wxGlade: wxgScanIdxPnl.<event_handler>
-        print "Event handler `_del_btn_pressed' not implemented!"
-        event.Skip()
-
-    def _save_btn_pressed(self, event): # wxGlade: wxgScanIdxPnl.<event_handler>
-        print "Event handler `_save_btn_pressed' not implemented!"
-        event.Skip()
-
-    def _startover_btn_pressed(self, event): # wxGlade: wxgScanIdxPnl.<event_handler>
-        print "Event handler `_startover_btn_pressed' not implemented!"
-        event.Skip()
-
-    def _clipboard_btn_pressed(self, event):  # wxGlade: wxgScanIdxPnl.<event_handler>
-        print "Event handler '_clipboard_btn_pressed' not implemented!"
-        event.Skip()
-# end of class wxgScanIdxPnl
+# begin wxGlade: dependencies
+import gettext
+# end wxGlade
+
+# begin wxGlade: extracode
+# end wxGlade
 
 
+class wxgScanIdxPnl(wx.Panel):
+	def __init__(self, *args, **kwds):
+
+		from Gnumed.wxpython import gmDocumentWidgets
+		from Gnumed.wxpython import gmPhraseWheel
+		from Gnumed.wxpython import gmDateTimeInput
+		from Gnumed.wxpython import gmEMRStructWidgets
+		from Gnumed.wxpython import gmOrganizationWidgets
+		from Gnumed.wxpython import gmListWidgets
+
+		# begin wxGlade: wxgScanIdxPnl.__init__
+		kwds["style"] = wx.TAB_TRAVERSAL
+		wx.Panel.__init__(self, *args, **kwds)
+		self.__btn_scan = wx.Button(self, wx.ID_ANY, _("&Scan page(s)"))
+		self.__btn_load = wx.Button(self, wx.ID_ANY, _("Pick &file(s)"))
+		self.__btn_clipboard = wx.Button(self, wx.ID_ANY, _("&Clipboard"))
+		self.__szr_top_left_btns_staticbox = wx.StaticBox(self, wx.ID_ANY, _("Part Sources"))
+		self._PhWheel_doc_type = gmDocumentWidgets.cDocumentTypeSelectionPhraseWheel(self, wx.ID_ANY)
+		self._PhWheel_doc_date = gmDateTimeInput.cFuzzyTimestampInput(self, wx.ID_ANY)
+		self._PhWheel_episode = gmEMRStructWidgets.cEpisodeSelectionPhraseWheel(self, wx.ID_ANY)
+		self._PhWheel_source = gmOrganizationWidgets.cOrgUnitPhraseWheel(self, wx.ID_ANY)
+		self._PRW_doc_comment = gmDocumentWidgets.cDocumentCommentPhraseWheel(self, wx.ID_ANY, "")
+		self.__lbl_reviewer = wx.StaticText(self, wx.ID_ANY, _("Intended reviewer:"))
+		self._PhWheel_reviewer = gmPhraseWheel.cPhraseWheel(self, wx.ID_ANY)
+		self._ChBOX_reviewed = wx.CheckBox(self, wx.ID_ANY, _("&review and sign"))
+		self._ChBOX_abnormal = wx.CheckBox(self, wx.ID_ANY, _("&technically abnormal"))
+		self._ChBOX_relevant = wx.CheckBox(self, wx.ID_ANY, _("&clinically relevant"))
+		self.__szr_top_middle_staticbox = wx.StaticBox(self, wx.ID_ANY, _("Document Properties"))
+		self._TBOX_description = wx.TextCtrl(self, wx.ID_ANY, "", style=wx.TE_CHARWRAP | wx.TE_MULTILINE | wx.TE_WORDWRAP)
+		self._LCTRL_doc_pages = gmListWidgets.cReportListCtrl(self, wx.ID_ANY, style=wx.BORDER_NONE | wx.LC_REPORT)
+		self.__btn_show_page = wx.Button(self, wx.ID_ANY, _("Show"))
+		self.__btn_del_page = wx.Button(self, wx.ID_ANY, _("Remove part"))
+		self.__btn_save = wx.Button(self, wx.ID_ANY, _("Save"))
+		self.__btn_discard = wx.Button(self, wx.ID_ANY, _("Discard"))
+		self._TCTRL_metadata = wx.TextCtrl(self, wx.ID_ANY, "", style=wx.TE_MULTILINE | wx.TE_READONLY | wx.TE_WORDWRAP)
+
+		self.__set_properties()
+		self.__do_layout()
+
+		self.Bind(wx.EVT_BUTTON, self._scan_btn_pressed, self.__btn_scan)
+		self.Bind(wx.EVT_BUTTON, self._load_btn_pressed, self.__btn_load)
+		self.Bind(wx.EVT_BUTTON, self._clipboard_btn_pressed, self.__btn_clipboard)
+		self.Bind(wx.EVT_CHECKBOX, self._reviewed_box_checked, self._ChBOX_reviewed)
+		self.Bind(wx.EVT_LIST_ITEM_SELECTED, self._on_part_selected, self._LCTRL_doc_pages)
+		self.Bind(wx.EVT_BUTTON, self._show_btn_pressed, self.__btn_show_page)
+		self.Bind(wx.EVT_BUTTON, self._del_btn_pressed, self.__btn_del_page)
+		self.Bind(wx.EVT_BUTTON, self._save_btn_pressed, self.__btn_save)
+		self.Bind(wx.EVT_BUTTON, self._startover_btn_pressed, self.__btn_discard)
+		# end wxGlade
+
+	def __set_properties(self):
+		# begin wxGlade: wxgScanIdxPnl.__set_properties
+		self.__btn_scan.SetToolTipString(_("Acquire a page from an image source (scanner, camera). This may bring up an intermediate dialog. It uses Sane (Linux) or TWAIN (Windows)."))
+		self.__btn_scan.SetFocus()
+		self.__btn_scan.SetDefault()
+		self.__btn_load.SetToolTipString(_("Add a file from the filesystem as a new part. Shows a file selector dialog."))
+		self.__btn_clipboard.SetToolTipString(_("Load the topmost item from the clipboard."))
+		self._PhWheel_doc_type.SetToolTipString(_("Required: The type of this document."))
+		self._PhWheel_doc_date.SetToolTipString(_("The date when the medical information described in the document was produced. This is free text so you can add approximate dates, too, such as 3/2004 where appropriate."))
+		self._PhWheel_episode.SetToolTipString(_("Required: The primary episode this document is to be listed under."))
+		self._PhWheel_source.SetToolTipString(_("Optional: The organization (unit) this document originated from."))
+		self._PRW_doc_comment.SetToolTipString(_("Optional: A short comment identifying the document. Good comments give an idea of the content and source of the document."))
+		self.__lbl_reviewer.SetForegroundColour(wx.Colour(255, 0, 0))
+		self._PhWheel_reviewer.SetToolTipString(_("Required: Enter the provider who will be notified about the new document so it can be reviewed. In most cases this is the primary doctor of the patient."))
+		self._ChBOX_reviewed.SetToolTipString(_("Check this to mark the document as reviewed upon import. If checked you can (and must) decide on \"technically abnormal\" and \"clinically relevant\", too. The default can be set by an option."))
+		self._ChBOX_abnormal.SetToolTipString(_("Whether this document report technically abormal results."))
+		self._ChBOX_abnormal.Enable(False)
+		self._ChBOX_relevant.SetToolTipString(_("Whether this document reports clinically relevant results. Note that both normal and abnormal resuslts can be relevant."))
+		self._ChBOX_relevant.Enable(False)
+		self._TBOX_description.SetToolTipString(_("Optional: A free-text document description."))
+		self._LCTRL_doc_pages.SetToolTipString(_("This field lists the parts belonging to the current document."))
+		self.__btn_show_page.SetToolTipString(_("View the part selected in the above list."))
+		self.__btn_del_page.SetToolTipString(_("Remove the part selected in the above list. Will ask before physical deletion from disk."))
+		self.__btn_save.SetToolTipString(_("Save finished document."))
+		self.__btn_discard.SetToolTipString(_("Start over (discards current data)."))
+		self._TCTRL_metadata.SetBackgroundColour(wx.SystemSettings_GetColour(wx.SYS_COLOUR_BACKGROUND))
+		self._TCTRL_metadata.SetFont(wx.Font(8, wx.MODERN, wx.NORMAL, wx.NORMAL, 0, ""))
+		# end wxGlade
+
+	def __do_layout(self):
+		# begin wxGlade: wxgScanIdxPnl.__do_layout
+		__szr_main = wx.BoxSizer(wx.HORIZONTAL)
+		__szr_left = wx.BoxSizer(wx.VERTICAL)
+		__szr_bottom_third = wx.BoxSizer(wx.HORIZONTAL)
+		__szr_middle_left = wx.BoxSizer(wx.HORIZONTAL)
+		__szr_parts_list = wx.BoxSizer(wx.VERTICAL)
+		__szr_page_actions = wx.BoxSizer(wx.HORIZONTAL)
+		__szr_top_left = wx.BoxSizer(wx.HORIZONTAL)
+		self.__szr_top_middle_staticbox.Lower()
+		__szr_top_middle = wx.StaticBoxSizer(self.__szr_top_middle_staticbox, wx.VERTICAL)
+		self.__szr_top_left_btns_staticbox.Lower()
+		__szr_top_left_btns = wx.StaticBoxSizer(self.__szr_top_left_btns_staticbox, wx.VERTICAL)
+		__szr_top_left_btns.Add(self.__btn_scan, 0, wx.BOTTOM | wx.EXPAND, 2)
+		__szr_top_left_btns.Add(self.__btn_load, 0, wx.BOTTOM | wx.EXPAND, 2)
+		__szr_top_left_btns.Add(self.__btn_clipboard, 0, wx.BOTTOM | wx.EXPAND, 2)
+		__szr_top_left.Add(__szr_top_left_btns, 0, wx.EXPAND | wx.LEFT, 5)
+		__lbl_doc_type = wx.StaticText(self, wx.ID_ANY, _("Document type:"))
+		__lbl_doc_type.SetForegroundColour(wx.Colour(255, 0, 0))
+		__szr_top_middle.Add(__lbl_doc_type, 0, wx.ALIGN_CENTER_VERTICAL | wx.LEFT | wx.TOP, 3)
+		__szr_top_middle.Add(self._PhWheel_doc_type, 0, wx.ALIGN_CENTER_VERTICAL | wx.EXPAND | wx.LEFT, 3)
+		__lbl_doc_date = wx.StaticText(self, wx.ID_ANY, _("Date document created:"))
+		__szr_top_middle.Add(__lbl_doc_date, 0, wx.ALIGN_CENTER_VERTICAL | wx.LEFT | wx.TOP, 3)
+		__szr_top_middle.Add(self._PhWheel_doc_date, 0, wx.EXPAND | wx.LEFT, 3)
+		__lbl_doc_episode = wx.StaticText(self, wx.ID_ANY, _("Associate to episode:"))
+		__lbl_doc_episode.SetForegroundColour(wx.Colour(255, 0, 0))
+		__szr_top_middle.Add(__lbl_doc_episode, 0, wx.ALIGN_CENTER_VERTICAL | wx.LEFT | wx.TOP, 3)
+		__szr_top_middle.Add(self._PhWheel_episode, 0, wx.EXPAND | wx.LEFT, 3)
+		__lbl_doc_source = wx.StaticText(self, wx.ID_ANY, _("Document source:"))
+		__szr_top_middle.Add(__lbl_doc_source, 0, wx.ALIGN_CENTER_VERTICAL | wx.LEFT | wx.TOP, 3)
+		__szr_top_middle.Add(self._PhWheel_source, 0, wx.EXPAND | wx.LEFT, 3)
+		__lbl_doc_comment = wx.StaticText(self, wx.ID_ANY, _("Comment / Identification:"))
+		__szr_top_middle.Add(__lbl_doc_comment, 0, wx.ALIGN_CENTER_VERTICAL | wx.LEFT | wx.TOP, 3)
+		__szr_top_middle.Add(self._PRW_doc_comment, 0, wx.ALIGN_CENTER_VERTICAL | wx.EXPAND | wx.LEFT, 3)
+		__szr_top_middle.Add(self.__lbl_reviewer, 0, wx.ALIGN_CENTER_VERTICAL | wx.LEFT | wx.TOP, 3)
+		__szr_top_middle.Add(self._PhWheel_reviewer, 0, wx.ALIGN_CENTER_VERTICAL | wx.EXPAND | wx.LEFT, 3)
+		__szr_top_middle.Add(self._ChBOX_reviewed, 0, wx.ALIGN_CENTER_VERTICAL | wx.LEFT | wx.TOP, 3)
+		__szr_top_middle.Add(self._ChBOX_abnormal, 0, wx.LEFT, 9)
+		__szr_top_middle.Add(self._ChBOX_relevant, 0, wx.LEFT, 9)
+		__szr_top_left.Add(__szr_top_middle, 1, wx.EXPAND | wx.LEFT, 5)
+		__szr_left.Add(__szr_top_left, 0, wx.BOTTOM | wx.EXPAND, 5)
+		__szr_middle_left.Add(self._TBOX_description, 2, wx.EXPAND, 5)
+		__szr_parts_list.Add(self._LCTRL_doc_pages, 1, wx.EXPAND | wx.LEFT, 3)
+		__szr_page_actions.Add(self.__btn_show_page, 0, wx.RIGHT, 5)
+		__szr_page_actions.Add(self.__btn_del_page, 0, 0, 0)
+		__szr_parts_list.Add(__szr_page_actions, 0, wx.EXPAND | wx.TOP, 4)
+		__szr_middle_left.Add(__szr_parts_list, 3, wx.EXPAND | wx.LEFT, 5)
+		__szr_left.Add(__szr_middle_left, 1, wx.BOTTOM | wx.EXPAND, 5)
+		__szr_bottom_third.Add(self.__btn_save, 0, wx.EXPAND, 0)
+		__szr_bottom_third.Add(self.__btn_discard, 0, wx.EXPAND, 0)
+		__szr_left.Add(__szr_bottom_third, 0, wx.EXPAND, 5)
+		__szr_main.Add(__szr_left, 3, wx.EXPAND, 0)
+		__szr_main.Add(self._TCTRL_metadata, 2, wx.EXPAND | wx.LEFT, 5)
+		self.SetSizer(__szr_main)
+		__szr_main.Fit(self)
+		self.Layout()
+		# end wxGlade
+
+	def _scan_btn_pressed(self, event):  # wxGlade: wxgScanIdxPnl.<event_handler>
+		print "Event handler '_scan_btn_pressed' not implemented!"
+		event.Skip()
+
+	def _load_btn_pressed(self, event):  # wxGlade: wxgScanIdxPnl.<event_handler>
+		print "Event handler '_load_btn_pressed' not implemented!"
+		event.Skip()
+
+	def _clipboard_btn_pressed(self, event):  # wxGlade: wxgScanIdxPnl.<event_handler>
+		print "Event handler '_clipboard_btn_pressed' not implemented!"
+		event.Skip()
+
+	def _reviewed_box_checked(self, event):  # wxGlade: wxgScanIdxPnl.<event_handler>
+		print "Event handler '_reviewed_box_checked' not implemented!"
+		event.Skip()
+
+	def _show_btn_pressed(self, event):  # wxGlade: wxgScanIdxPnl.<event_handler>
+		print "Event handler '_show_btn_pressed' not implemented!"
+		event.Skip()
+
+	def _del_btn_pressed(self, event):  # wxGlade: wxgScanIdxPnl.<event_handler>
+		print "Event handler '_del_btn_pressed' not implemented!"
+		event.Skip()
+
+	def _save_btn_pressed(self, event):  # wxGlade: wxgScanIdxPnl.<event_handler>
+		print "Event handler '_save_btn_pressed' not implemented!"
+		event.Skip()
+
+	def _startover_btn_pressed(self, event):  # wxGlade: wxgScanIdxPnl.<event_handler>
+		print "Event handler '_startover_btn_pressed' not implemented!"
+		event.Skip()
+
+	def _on_part_selected(self, event):  # wxGlade: wxgScanIdxPnl.<event_handler>
+		print "Event handler '_on_part_selected' not implemented!"
+		event.Skip()
+# end of class wxgScanIdxPnl
diff --git a/client/wxGladeWidgets/wxgSoapNoteExpandoEditAreaPnl.py b/client/wxGladeWidgets/wxgSoapNoteExpandoEditAreaPnl.py
deleted file mode 100644
index 08fbf2f..0000000
--- a/client/wxGladeWidgets/wxgSoapNoteExpandoEditAreaPnl.py
+++ /dev/null
@@ -1,133 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-# generated by wxGlade 0.6.3 from "/home/ncq/Projekte/gm-cvs/branches/HEAD/gnumed/gnumed/client/wxg/wxgSoapNoteExpandoEditAreaPnl.wxg"
-
-import wx
-
-# begin wxGlade: extracode
-# end wxGlade
-
-class wxgSoapNoteExpandoEditAreaPnl(wx.ScrolledWindow):
-    def __init__(self, *args, **kwds):
-
-        from Gnumed.wxpython.gmNarrativeWidgets import cSoapLineTextCtrl
-        from Gnumed.wxpython.gmNarrativeWidgets import cVisualSoapPresenterPnl
-        from Gnumed.wxpython.gmCodingWidgets import cGenericCodesPhraseWheel
-
-        # begin wxGlade: wxgSoapNoteExpandoEditAreaPnl.__init__
-        kwds["style"] = wx.NO_BORDER|wx.TAB_TRAVERSAL
-        wx.ScrolledWindow.__init__(self, *args, **kwds)
-        self._PRW_Soap_codes = cGenericCodesPhraseWheel(self, -1, "", style=wx.TE_READONLY|wx.NO_BORDER)
-        self._TCTRL_Soap = cSoapLineTextCtrl(self, -1, "", style=wx.TE_WORDWRAP|wx.NO_BORDER)
-        self._PRW_sOap_codes = cGenericCodesPhraseWheel(self, -1, "", style=wx.TE_READONLY|wx.NO_BORDER)
-        self._TCTRL_sOap = cSoapLineTextCtrl(self, -1, "", style=wx.TE_WORDWRAP|wx.NO_BORDER)
-        self._PRW_soAp_codes = cGenericCodesPhraseWheel(self, -1, "", style=wx.TE_READONLY|wx.NO_BORDER)
-        self._TCTRL_soAp = cSoapLineTextCtrl(self, -1, "", style=wx.TE_WORDWRAP|wx.NO_BORDER)
-        self._PRW_soaP_codes = cGenericCodesPhraseWheel(self, -1, "", style=wx.TE_READONLY|wx.NO_BORDER)
-        self._TCTRL_soaP = cSoapLineTextCtrl(self, -1, "", style=wx.TE_WORDWRAP|wx.NO_BORDER)
-        self._PNL_visual_soap = cVisualSoapPresenterPnl(self, -1, style=wx.NO_BORDER)
-        self._LBL_summary = wx.StaticText(self, -1, _("Episode synopsis"))
-        self._PRW_episode_codes = cGenericCodesPhraseWheel(self, -1, "", style=wx.NO_BORDER)
-        self._TCTRL_episode_summary = cSoapLineTextCtrl(self, -1, "", style=wx.TE_WORDWRAP|wx.NO_BORDER)
-
-        self.__set_properties()
-        self.__do_layout()
-        # end wxGlade
-
-    def __set_properties(self):
-        # begin wxGlade: wxgSoapNoteExpandoEditAreaPnl.__set_properties
-        self.SetScrollRate(10, 10)
-        self._PRW_Soap_codes.SetToolTipString(_("Codes relevant to this Subjective\nseparated by \";\"."))
-        self._PRW_Soap_codes.Enable(False)
-        self._PRW_sOap_codes.SetToolTipString(_("Codes relevant to this Objective\nseparated by \";\"."))
-        self._PRW_sOap_codes.Enable(False)
-        self._PRW_soAp_codes.SetToolTipString(_("Codes relevant to this Assessment\nseparated by \";\"."))
-        self._PRW_soAp_codes.Enable(False)
-        self._PRW_soaP_codes.SetToolTipString(_("Codes relevant to this Plan\nseparated by \";\"."))
-        self._PRW_soaP_codes.Enable(False)
-        self._PRW_episode_codes.SetToolTipString(_("Codes relevant to this episode\nseparated by \";\"."))
-        self._TCTRL_episode_summary.SetToolTipString(_("Here you can modify the cumulative summary (status) of the episode this SOAP narrative belongs to."))
-        # end wxGlade
-
-    def __do_layout(self):
-        # begin wxGlade: wxgSoapNoteExpandoEditAreaPnl.__do_layout
-        __szr_main = wx.BoxSizer(wx.VERTICAL)
-        __szr_summary = wx.BoxSizer(wx.HORIZONTAL)
-        __szr_soaP = wx.BoxSizer(wx.HORIZONTAL)
-        __szr_soAp = wx.BoxSizer(wx.HORIZONTAL)
-        __szr_sOap = wx.BoxSizer(wx.HORIZONTAL)
-        __szr_Soap = wx.BoxSizer(wx.HORIZONTAL)
-        __lbl_Soap = wx.StaticText(self, -1, _("Subjective"))
-        __szr_Soap.Add(__lbl_Soap, 1, wx.ALIGN_CENTER_VERTICAL, 10)
-        __vline_Soap = wx.StaticLine(self, -1, style=wx.LI_VERTICAL)
-        __szr_Soap.Add(__vline_Soap, 0, wx.RIGHT|wx.EXPAND, 5)
-        __lbl_Soap_codes = wx.StaticText(self, -1, _("Codes:"))
-        __lbl_Soap_codes.Hide()
-        __szr_Soap.Add(__lbl_Soap_codes, 0, wx.RIGHT|wx.ALIGN_CENTER_VERTICAL, 5)
-        __szr_Soap.Add(self._PRW_Soap_codes, 3, wx.TOP|wx.BOTTOM|wx.EXPAND|wx.ALIGN_CENTER_VERTICAL, 2)
-        __szr_main.Add(__szr_Soap, 0, wx.LEFT|wx.RIGHT|wx.EXPAND, 3)
-        __szr_main.Add(self._TCTRL_Soap, 0, wx.LEFT|wx.RIGHT|wx.EXPAND, 3)
-        __lbl_sOap = wx.StaticText(self, -1, _("Objective"))
-        __szr_sOap.Add(__lbl_sOap, 1, wx.ALIGN_CENTER_VERTICAL, 5)
-        __vline_sOap = wx.StaticLine(self, -1, style=wx.LI_VERTICAL)
-        __szr_sOap.Add(__vline_sOap, 0, wx.RIGHT|wx.EXPAND, 5)
-        __lbl_sOap_codes = wx.StaticText(self, -1, _("Codes:"))
-        __lbl_sOap_codes.Hide()
-        __szr_sOap.Add(__lbl_sOap_codes, 0, wx.RIGHT|wx.ALIGN_CENTER_VERTICAL, 5)
-        __szr_sOap.Add(self._PRW_sOap_codes, 3, wx.TOP|wx.BOTTOM|wx.EXPAND|wx.ALIGN_CENTER_VERTICAL, 2)
-        __szr_main.Add(__szr_sOap, 0, wx.LEFT|wx.RIGHT|wx.EXPAND, 3)
-        __szr_main.Add(self._TCTRL_sOap, 0, wx.LEFT|wx.RIGHT|wx.EXPAND, 3)
-        __lbl_soAp = wx.StaticText(self, -1, _("Assessment"))
-        __szr_soAp.Add(__lbl_soAp, 1, wx.ALIGN_CENTER_VERTICAL, 5)
-        __vline_soAp = wx.StaticLine(self, -1, style=wx.LI_VERTICAL)
-        __szr_soAp.Add(__vline_soAp, 0, wx.RIGHT|wx.EXPAND, 5)
-        __lbl_soAp_codes = wx.StaticText(self, -1, _("Codes:"))
-        __lbl_soAp_codes.Hide()
-        __szr_soAp.Add(__lbl_soAp_codes, 0, wx.RIGHT|wx.ALIGN_CENTER_VERTICAL, 5)
-        __szr_soAp.Add(self._PRW_soAp_codes, 3, wx.TOP|wx.BOTTOM|wx.EXPAND|wx.ALIGN_CENTER_VERTICAL, 2)
-        __szr_main.Add(__szr_soAp, 0, wx.LEFT|wx.RIGHT|wx.EXPAND, 3)
-        __szr_main.Add(self._TCTRL_soAp, 0, wx.LEFT|wx.RIGHT|wx.EXPAND, 3)
-        __lbl_soaP = wx.StaticText(self, -1, _("Plan"))
-        __szr_soaP.Add(__lbl_soaP, 1, wx.ALIGN_CENTER_VERTICAL, 5)
-        __vline_soaP = wx.StaticLine(self, -1, style=wx.LI_VERTICAL)
-        __szr_soaP.Add(__vline_soaP, 0, wx.RIGHT|wx.EXPAND, 5)
-        __lbl_soaP_codes = wx.StaticText(self, -1, _("Codes:"))
-        __lbl_soaP_codes.Hide()
-        __szr_soaP.Add(__lbl_soaP_codes, 0, wx.RIGHT|wx.ALIGN_CENTER_VERTICAL, 5)
-        __szr_soaP.Add(self._PRW_soaP_codes, 3, wx.TOP|wx.BOTTOM|wx.EXPAND|wx.ALIGN_CENTER_VERTICAL, 2)
-        __szr_main.Add(__szr_soaP, 0, wx.LEFT|wx.RIGHT|wx.EXPAND, 3)
-        __szr_main.Add(self._TCTRL_soaP, 0, wx.LEFT|wx.RIGHT|wx.BOTTOM|wx.EXPAND, 3)
-        __szr_main.Add(self._PNL_visual_soap, 0, wx.EXPAND, 0)
-        _hline_above_summary = wx.StaticLine(self, -1)
-        __szr_main.Add(_hline_above_summary, 0, wx.LEFT|wx.RIGHT|wx.TOP|wx.EXPAND, 5)
-        __szr_summary.Add(self._LBL_summary, 1, wx.ALIGN_CENTER_VERTICAL, 5)
-        __vline_summary = wx.StaticLine(self, -1, style=wx.LI_VERTICAL)
-        __szr_summary.Add(__vline_summary, 0, wx.RIGHT|wx.EXPAND, 5)
-        __lbl_summary_codes = wx.StaticText(self, -1, _("Codes:"))
-        __szr_summary.Add(__lbl_summary_codes, 0, wx.RIGHT|wx.ALIGN_CENTER_VERTICAL, 5)
-        __szr_summary.Add(self._PRW_episode_codes, 3, wx.TOP|wx.BOTTOM|wx.EXPAND|wx.ALIGN_CENTER_VERTICAL, 2)
-        __szr_main.Add(__szr_summary, 0, wx.LEFT|wx.RIGHT|wx.EXPAND, 3)
-        __szr_main.Add(self._TCTRL_episode_summary, 0, wx.LEFT|wx.RIGHT|wx.BOTTOM|wx.EXPAND, 3)
-        self.SetSizer(__szr_main)
-        __szr_main.Fit(self)
-        # end wxGlade
-
-    def _on_manage_Soap_codes_button_pressed(self, event): # wxGlade: wxgSoapNoteExpandoEditAreaPnl.<event_handler>
-        print "Event handler `_on_manage_Soap_codes_button_pressed' not implemented"
-        event.Skip()
-
-    def _on_manage_sOap_codes_button_pressed(self, event): # wxGlade: wxgSoapNoteExpandoEditAreaPnl.<event_handler>
-        print "Event handler `_on_manage_sOap_codes_button_pressed' not implemented"
-        event.Skip()
-
-    def _on_manage_soAp_codes_button_pressed(self, event): # wxGlade: wxgSoapNoteExpandoEditAreaPnl.<event_handler>
-        print "Event handler `_on_manage_soAp_codes_button_pressed' not implemented"
-        event.Skip()
-
-    def _on_manage_soaP_codes_button_pressed(self, event): # wxGlade: wxgSoapNoteExpandoEditAreaPnl.<event_handler>
-        print "Event handler `_on_manage_soaP_codes_button_pressed' not implemented"
-        event.Skip()
-
-# end of class wxgSoapNoteExpandoEditAreaPnl
-
-
diff --git a/client/wxGladeWidgets/wxgSoapPluginPnl.py b/client/wxGladeWidgets/wxgSoapPluginPnl.py
index 9336581..d1e33ed 100644
--- a/client/wxGladeWidgets/wxgSoapPluginPnl.py
+++ b/client/wxGladeWidgets/wxgSoapPluginPnl.py
@@ -21,20 +21,20 @@ class wxgSoapPluginPnl(wx.ScrolledWindow):
         # begin wxGlade: wxgSoapPluginPnl.__init__
         kwds["style"] = wx.NO_BORDER | wx.TAB_TRAVERSAL
         wx.Panel.__init__(self, *args, **kwds)
-        self._splitter_main = wx.SplitterWindow(self, -1, style=wx.SP_3D | wx.SP_BORDER | wx.SP_PERMIT_UNSPLIT)
-        self.__splitter_main_left_pnl = wx.Panel(self._splitter_main, -1, style=wx.NO_BORDER)
-        self._splitter_left = wx.SplitterWindow(self.__splitter_main_left_pnl, -1, style=wx.SP_3D | wx.SP_BORDER | wx.SP_PERMIT_UNSPLIT)
-        self.__splitter_left_top_pnl = wx.Panel(self._splitter_left, -1, style=wx.NO_BORDER)
-        self._CHBOX_show_closed_episodes = wx.CheckBox(self.__splitter_left_top_pnl, -1, _("Closed episodes"))
-        self._CHBOX_irrelevant_issues = wx.CheckBox(self.__splitter_left_top_pnl, -1, _("Non-relevant issues"))
-        self._LCTRL_active_problems = gmListWidgets.cReportListCtrl(self.__splitter_left_top_pnl, -1, style=wx.LC_REPORT | wx.NO_BORDER)
-        self._SZR_problem_list_staticbox = wx.StaticBox(self.__splitter_left_top_pnl, -1, _("Active problems"))
-        self.__splitter_left_bottom_pnl = wx.Panel(self._splitter_left, -1, style=wx.NO_BORDER)
-        self._RBTN_notes_only = wx.RadioButton(self.__splitter_left_bottom_pnl, -1, _("Notes only"))
-        self._RBTN_full_encounter = wx.RadioButton(self.__splitter_left_bottom_pnl, -1, _("Everything"))
-        self._TCTRL_recent_notes = wx.TextCtrl(self.__splitter_left_bottom_pnl, -1, _("In this area GNUmed will place the notes of the\nprevious encounter as well as notes by other\nstaff for the current encounter.\n\nNote that this may change depending on which\nactive problem is selected in the editor below."), style=wx.TE_MULTILINE | wx.TE_READONLY | wx.TE_WORDWRAP | wx.NO_BORDER)
-        self._SZR_recent_notes_staticbox = wx.StaticBox(self.__splitter_left_bottom_pnl, -1, _("Most recent info on above problem"))
-        self._PNL_editors = cFancySoapEditorPnl(self._splitter_main, -1, style=wx.NO_BORDER | wx.TAB_TRAVERSAL)
+        self._splitter_main = wx.SplitterWindow(self, wx.ID_ANY, style=wx.SP_3D | wx.SP_BORDER | wx.SP_PERMIT_UNSPLIT)
+        self.__splitter_main_left_pnl = wx.Panel(self._splitter_main, wx.ID_ANY, style=wx.NO_BORDER)
+        self._splitter_left = wx.SplitterWindow(self.__splitter_main_left_pnl, wx.ID_ANY, style=wx.SP_3D | wx.SP_BORDER | wx.SP_PERMIT_UNSPLIT)
+        self.__splitter_left_top_pnl = wx.Panel(self._splitter_left, wx.ID_ANY, style=wx.NO_BORDER)
+        self._CHBOX_show_closed_episodes = wx.CheckBox(self.__splitter_left_top_pnl, wx.ID_ANY, _("Closed episodes"))
+        self._CHBOX_irrelevant_issues = wx.CheckBox(self.__splitter_left_top_pnl, wx.ID_ANY, _("Non-relevant issues"))
+        self._LCTRL_active_problems = gmListWidgets.cReportListCtrl(self.__splitter_left_top_pnl, wx.ID_ANY, style=wx.LC_REPORT | wx.NO_BORDER)
+        self._SZR_problem_list_staticbox = wx.StaticBox(self.__splitter_left_top_pnl, wx.ID_ANY, _("Active problems"))
+        self.__splitter_left_bottom_pnl = wx.Panel(self._splitter_left, wx.ID_ANY, style=wx.NO_BORDER)
+        self._RBTN_notes_only = wx.RadioButton(self.__splitter_left_bottom_pnl, wx.ID_ANY, _("Notes only"))
+        self._RBTN_full_encounter = wx.RadioButton(self.__splitter_left_bottom_pnl, wx.ID_ANY, _("Everything"))
+        self._TCTRL_recent_notes = wx.TextCtrl(self.__splitter_left_bottom_pnl, wx.ID_ANY, _("In this area GNUmed will place the notes of the\nprevious encounter as well as notes by other\nstaff for the current encounter.\n\nNote that this may change depending on which\nactive problem is selected in the editor below."), style=wx.TE_MULTILINE | wx.TE_READONLY | wx.TE_WORDWRAP | wx.NO_BORDER)
+        self._SZR_recent_notes_staticbox = wx.StaticBox(self.__splitter_left_bottom_pnl, wx.ID_ANY, _("Most recent info on above problem"))
+        self._PNL_editors = cFancySoapEditorPnl(self._splitter_main, wx.ID_ANY, style=wx.NO_BORDER | wx.TAB_TRAVERSAL)
 
         self.__set_properties()
         self.__do_layout()
@@ -44,7 +44,6 @@ class wxgSoapPluginPnl(wx.ScrolledWindow):
         self.Bind(wx.EVT_LIST_ITEM_SELECTED, self._on_problem_selected, self._LCTRL_active_problems)
         self.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self._on_problem_activated, self._LCTRL_active_problems)
         self.Bind(wx.EVT_LIST_ITEM_FOCUSED, self._on_problem_focused, self._LCTRL_active_problems)
-        self.Bind(wx.EVT_LIST_ITEM_RIGHT_CLICK, self._on_problem_rclick, self._LCTRL_active_problems)
         self.Bind(wx.EVT_RADIOBUTTON, self._on_notes_only_selected, self._RBTN_notes_only)
         self.Bind(wx.EVT_RADIOBUTTON, self._on_full_encounter_selected, self._RBTN_full_encounter)
         # end wxGlade
@@ -70,7 +69,7 @@ class wxgSoapPluginPnl(wx.ScrolledWindow):
         self._SZR_problem_list_staticbox.Lower()
         _SZR_problem_list = wx.StaticBoxSizer(self._SZR_problem_list_staticbox, wx.VERTICAL)
         __szr_problem_filter = wx.BoxSizer(wx.HORIZONTAL)
-        __lbl_problem_filter = wx.StaticText(self.__splitter_left_top_pnl, -1, _("Include:"))
+        __lbl_problem_filter = wx.StaticText(self.__splitter_left_top_pnl, wx.ID_ANY, _("Include:"))
         __szr_problem_filter.Add(__lbl_problem_filter, 0, wx.RIGHT | wx.ALIGN_CENTER_VERTICAL, 10)
         __szr_problem_filter.Add(self._CHBOX_show_closed_episodes, 0, wx.RIGHT | wx.ALIGN_CENTER_VERTICAL, 5)
         __szr_problem_filter.Add(self._CHBOX_irrelevant_issues, 0, wx.ALIGN_CENTER_VERTICAL, 0)
diff --git a/client/wxGladeWidgets/wxgSplittedEMRTreeBrowserPnl.py b/client/wxGladeWidgets/wxgSplittedEMRTreeBrowserPnl.py
index 287d101..25b55c2 100644
--- a/client/wxGladeWidgets/wxgSplittedEMRTreeBrowserPnl.py
+++ b/client/wxGladeWidgets/wxgSplittedEMRTreeBrowserPnl.py
@@ -9,7 +9,7 @@ class wxgSplittedEMRTreeBrowserPnl(wx.Panel):
     def __init__(self, *args, **kwds):
 
         from Gnumed.wxpython import gmEMRBrowser
-        from Gnumed.wxpython.gmNarrativeWidgets import cVisualSoapPresenterPnl
+        from Gnumed.wxpython.gmVisualProgressNoteWidgets import cVisualSoapPresenterPnl
         from Gnumed.wxpython.gmNarrativeWidgets import cFancySoapEditorPnl
 
         # begin wxGlade: wxgSplittedEMRTreeBrowserPnl.__init__
diff --git a/client/wxGladeWidgets/wxgSubstanceAbuseEAPnl.py b/client/wxGladeWidgets/wxgSubstanceAbuseEAPnl.py
index c4237b6..79ba6b2 100644
--- a/client/wxGladeWidgets/wxgSubstanceAbuseEAPnl.py
+++ b/client/wxGladeWidgets/wxgSubstanceAbuseEAPnl.py
@@ -13,7 +13,7 @@ import gettext
 # begin wxGlade: extracode
 from Gnumed.wxpython.gmDateTimeInput import cDateInputPhraseWheel
 from Gnumed.wxpython.gmTextCtrl import cTextCtrl
-from Gnumed.wxpython.gmMedicationWidgets import cSubstancePhraseWheel
+from Gnumed.wxpython.gmSubstanceMgmtWidgets import cSubstancePhraseWheel
 # end wxGlade
 
 
@@ -24,16 +24,16 @@ class wxgSubstanceAbuseEAPnl(wx.ScrolledWindow):
 		wx.ScrolledWindow.__init__(self, *args, **kwds)
 		self._RBTN_tobacco = wx.RadioButton(self, wx.ID_ANY, _("&Nicotine"))
 		self._RBTN_c2 = wx.RadioButton(self, wx.ID_ANY, _("&Alcohol"))
-		self._RBTN_other_substance = wx.RadioButton(self, wx.ID_ANY, _("&Other"))
-		self._PRW_substance = cSubstancePRW(self, wx.ID_ANY, "", style=wx.BORDER_NONE)
-		self._RBTN_nonharmful_use = wx.RadioButton(self, wx.ID_ANY, _("&Non-harmful use"))
+		self._RBTN_other_substance = wx.RadioButton(self, wx.ID_ANY, _("&Other:"))
+		self._PRW_substance = cSubstancePhraseWheel(self, wx.ID_ANY, "", style=wx.BORDER_NONE)
+		self._RBTN_nonharmful_use = wx.RadioButton(self, wx.ID_ANY, _("&Non-harmful use"), style=wx.RB_GROUP)
 		self._RBTN_harmful_use = wx.RadioButton(self, wx.ID_ANY, _("&Harmful use"))
 		self._RBTN_presently_addicted = wx.RadioButton(self, wx.ID_ANY, _("Presently &addicted"))
 		self._RBTN_previously_addicted = wx.RadioButton(self, wx.ID_ANY, _("Previously &addicted"))
 		self._TCTRL_comment = cTextCtrl(self, wx.ID_ANY, "", style=wx.BORDER_NONE)
 		self._DPRW_quit_when = cDateInputPhraseWheel(self, wx.ID_ANY, "", style=wx.BORDER_NONE)
-		self._LBL_confirm_date = wx.StaticText(self, wx.ID_ANY, "")
-		self._CHBOX_confirm = wx.CheckBox(self, wx.ID_ANY, _("&Confirmed"))
+		self._LBL_confirm_date = wx.StaticText(self, wx.ID_ANY, _("?"))
+		self._CHBOX_confirm = wx.CheckBox(self, wx.ID_ANY, _("&Reconfirm as of today"))
 
 		self.__set_properties()
 		self.__do_layout()
@@ -47,12 +47,9 @@ class wxgSubstanceAbuseEAPnl(wx.ScrolledWindow):
 		# begin wxGlade: wxgSubstanceAbuseEAPnl.__set_properties
 		self.SetScrollRate(10, 10)
 		self._RBTN_tobacco.SetToolTipString(_("Select for documenting smoking status."))
-		self._RBTN_tobacco.Enable(False)
 		self._RBTN_tobacco.SetValue(1)
 		self._RBTN_c2.SetToolTipString(_("Select for documenting alcohol use status."))
-		self._RBTN_c2.Enable(False)
 		self._RBTN_other_substance.SetToolTipString(_("Select for documenting use of substances other than nicotine or alcohol."))
-		self._RBTN_other_substance.Enable(False)
 		self._PRW_substance.SetToolTipString(_("Select the abused substance."))
 		self._PRW_substance.Enable(False)
 		self._RBTN_nonharmful_use.SetToolTipString(_("Select if the substance use is not considered harmful (say, no use or non-harmful use)."))
@@ -68,8 +65,9 @@ class wxgSubstanceAbuseEAPnl(wx.ScrolledWindow):
 
 	def __do_layout(self):
 		# begin wxGlade: wxgSubstanceAbuseEAPnl.__do_layout
-		_gszr_main = wx.FlexGridSizer(5, 2, 1, 3)
+		_gszr_main = wx.FlexGridSizer(7, 2, 1, 3)
 		__szr_confirm = wx.BoxSizer(wx.HORIZONTAL)
+		__szr_addiction = wx.BoxSizer(wx.HORIZONTAL)
 		__szr_status = wx.BoxSizer(wx.HORIZONTAL)
 		__szr_substance = wx.BoxSizer(wx.HORIZONTAL)
 		__lbl_substance = wx.StaticText(self, wx.ID_ANY, _("Substance"))
@@ -77,17 +75,20 @@ class wxgSubstanceAbuseEAPnl(wx.ScrolledWindow):
 		_gszr_main.Add(__lbl_substance, 0, wx.ALIGN_CENTER_VERTICAL, 0)
 		__szr_substance.Add(self._RBTN_tobacco, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5)
 		__szr_substance.Add(self._RBTN_c2, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5)
-		__szr_substance.Add(self._RBTN_other_substance, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5)
-		__szr_substance.Add(self._PRW_substance, 1, wx.EXPAND, 0)
+		__szr_substance.Add(self._RBTN_other_substance, 0, wx.ALIGN_CENTER_VERTICAL, 5)
 		_gszr_main.Add(__szr_substance, 1, 0, 0)
+		_gszr_main.Add((20, 20), 1, wx.EXPAND, 0)
+		_gszr_main.Add(self._PRW_substance, 1, wx.EXPAND, 0)
 		__lbl_status = wx.StaticText(self, wx.ID_ANY, _("Status"))
 		__lbl_status.SetForegroundColour(wx.Colour(255, 0, 0))
 		_gszr_main.Add(__lbl_status, 0, wx.ALIGN_CENTER_VERTICAL, 0)
 		__szr_status.Add(self._RBTN_nonharmful_use, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 3)
-		__szr_status.Add(self._RBTN_harmful_use, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 3)
-		__szr_status.Add(self._RBTN_presently_addicted, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 3)
-		__szr_status.Add(self._RBTN_previously_addicted, 0, wx.ALIGN_CENTER_VERTICAL, 3)
+		__szr_status.Add(self._RBTN_harmful_use, 0, wx.ALIGN_CENTER_VERTICAL, 3)
 		_gszr_main.Add(__szr_status, 1, 0, 0)
+		_gszr_main.Add((20, 20), 1, wx.EXPAND, 0)
+		__szr_addiction.Add(self._RBTN_presently_addicted, 0, wx.ALIGN_CENTER_VERTICAL, 3)
+		__szr_addiction.Add(self._RBTN_previously_addicted, 0, wx.ALIGN_CENTER_VERTICAL, 3)
+		_gszr_main.Add(__szr_addiction, 1, 0, 0)
 		__lbl_comment = wx.StaticText(self, wx.ID_ANY, _("Comment"))
 		_gszr_main.Add(__lbl_comment, 0, wx.ALIGN_CENTER_VERTICAL, 0)
 		_gszr_main.Add(self._TCTRL_comment, 0, wx.EXPAND, 0)
@@ -96,7 +97,7 @@ class wxgSubstanceAbuseEAPnl(wx.ScrolledWindow):
 		_gszr_main.Add(self._DPRW_quit_when, 0, wx.EXPAND, 0)
 		__lbl_last_confirmed = wx.StaticText(self, wx.ID_ANY, _("Last confirmed"))
 		_gszr_main.Add(__lbl_last_confirmed, 0, wx.ALIGN_CENTER_VERTICAL, 0)
-		__szr_confirm.Add(self._LBL_confirm_date, 1, wx.ALIGN_CENTER_VERTICAL | wx.EXPAND | wx.RIGHT, 5)
+		__szr_confirm.Add(self._LBL_confirm_date, 1, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5)
 		__szr_confirm.Add(self._CHBOX_confirm, 0, wx.ALIGN_CENTER_VERTICAL, 0)
 		_gszr_main.Add(__szr_confirm, 1, 0, 0)
 		self.SetSizer(_gszr_main)
diff --git a/client/wxGladeWidgets/wxgTopPnl.py b/client/wxGladeWidgets/wxgTopPnl.py
index 39ee17b..63cdda4 100644
--- a/client/wxGladeWidgets/wxgTopPnl.py
+++ b/client/wxGladeWidgets/wxgTopPnl.py
@@ -1,71 +1,77 @@
 #!/usr/bin/env python
-# -*- coding: utf-8 -*-
-# generated by wxGlade 0.6.3 from "/home/ncq/Projekte/gm-git/gnumed/gnumed/client/wxg/wxgTopPnl.wxg"
+# -*- coding: UTF-8 -*-
+#
+# generated by wxGlade 0.6.8
+#
 
 import wx
 
-# begin wxGlade: extracode
+# begin wxGlade: dependencies
+import gettext
 # end wxGlade
 
+# begin wxGlade: extracode
+from Gnumed.wxpython.gmPatPicWidgets import cPatientPicture
+from Gnumed.wxpython.gmPatSearchWidgets import cActivePatientSelector
+from Gnumed.wxpython.gmDemographicsWidgets import cImageTagPresenterPnl
+from Gnumed.wxpython.gmEncounterWidgets import cActiveEncounterPnl
+# end wxGlade
 
 
 class wxgTopPnl(wx.Panel):
-    def __init__(self, *args, **kwds):
-
-        from Gnumed.wxpython.gmPatPicWidgets import cPatientPicture
-        from Gnumed.wxpython.gmPatSearchWidgets import cActivePatientSelector
-        from Gnumed.wxpython.gmDemographicsWidgets import cImageTagPresenterPnl
-        from Gnumed.wxpython.gmEncounterWidgets import cActiveEncounterPnl
+	def __init__(self, *args, **kwds):
+		# begin wxGlade: wxgTopPnl.__init__
+		kwds["style"] = wx.RAISED_BORDER
+		wx.Panel.__init__(self, *args, **kwds)
+		self._BMP_patient_picture = cPatientPicture(self, wx.ID_ANY, wx.NullBitmap)
+		self._TCTRL_patient_selector = cActivePatientSelector(self, wx.ID_ANY, "")
+		self._LBL_age = wx.StaticText(self, wx.ID_ANY, _("<age>"))
+		self._LBL_allergies = wx.StaticText(self, wx.ID_ANY, _("Caveat"))
+		self._TCTRL_allergies = wx.TextCtrl(self, wx.ID_ANY, "", style=wx.TE_READONLY)
+		self._PNL_tags = cImageTagPresenterPnl(self, wx.ID_ANY, style=wx.NO_BORDER)
+		self._LBL_lab = wx.StaticText(self, wx.ID_ANY, "")
+		self._PNL_enc = cActiveEncounterPnl(self, wx.ID_ANY, style=wx.SIMPLE_BORDER)
 
-        # begin wxGlade: wxgTopPnl.__init__
-        kwds["style"] = wx.RAISED_BORDER
-        wx.Panel.__init__(self, *args, **kwds)
-        self._BMP_patient_picture = cPatientPicture(self, -1, wx.NullBitmap)
-        self._TCTRL_patient_selector = cActivePatientSelector(self, -1, "")
-        self._LBL_age = wx.StaticText(self, -1, _("<age>"))
-        self._LBL_allergies = wx.StaticText(self, -1, _("Caveat"))
-        self._TCTRL_allergies = wx.TextCtrl(self, -1, "", style=wx.TE_READONLY)
-        self._PNL_tags = cImageTagPresenterPnl(self, -1, style=wx.NO_BORDER)
-        self._PNL_enc = cActiveEncounterPnl(self, -1, style=wx.SIMPLE_BORDER)
+		self.__set_properties()
+		self.__do_layout()
+		# end wxGlade
 
-        self.__set_properties()
-        self.__do_layout()
-        # end wxGlade
+	def __set_properties(self):
+		# begin wxGlade: wxgTopPnl.__set_properties
+		self._BMP_patient_picture.SetMinSize((50, 54))
+		self._TCTRL_patient_selector.SetFont(wx.Font(12, wx.SWISS, wx.NORMAL, wx.BOLD, 0, ""))
+		self._LBL_age.SetFont(wx.Font(10, wx.SWISS, wx.NORMAL, wx.BOLD, 0, ""))
+		self._LBL_age.SetToolTipString(_("The age."))
+		self._LBL_allergies.SetForegroundColour(wx.Colour(255, 0, 0))
+		self._LBL_allergies.SetFont(wx.Font(10, wx.SWISS, wx.NORMAL, wx.BOLD, 0, ""))
+		self._TCTRL_allergies.SetBackgroundColour(wx.SystemSettings_GetColour(wx.SYS_COLOUR_BACKGROUND))
+		self._TCTRL_allergies.SetForegroundColour(wx.Colour(255, 0, 0))
+		self._TCTRL_allergies.SetFont(wx.Font(12, wx.SWISS, wx.NORMAL, wx.BOLD, 0, ""))
+		# end wxGlade
 
-    def __set_properties(self):
-        # begin wxGlade: wxgTopPnl.__set_properties
-        self._BMP_patient_picture.SetMinSize((50, 54))
-        self._TCTRL_patient_selector.SetFont(wx.Font(12, wx.SWISS, wx.NORMAL, wx.BOLD, 0, ""))
-        self._LBL_age.SetFont(wx.Font(10, wx.SWISS, wx.NORMAL, wx.BOLD, 0, ""))
-        self._LBL_age.SetToolTipString(_("The age."))
-        self._LBL_allergies.SetForegroundColour(wx.Colour(255, 0, 0))
-        self._LBL_allergies.SetFont(wx.Font(10, wx.SWISS, wx.NORMAL, wx.BOLD, 0, ""))
-        self._TCTRL_allergies.SetBackgroundColour(wx.SystemSettings_GetColour(wx.SYS_COLOUR_BACKGROUND))
-        self._TCTRL_allergies.SetForegroundColour(wx.Colour(255, 0, 0))
-        self._TCTRL_allergies.SetFont(wx.Font(12, wx.SWISS, wx.NORMAL, wx.BOLD, 0, ""))
-        # end wxGlade
-
-    def __do_layout(self):
-        # begin wxGlade: wxgTopPnl.__do_layout
-        __szr_main = wx.BoxSizer(wx.HORIZONTAL)
-        __szr_stacked_rows = wx.BoxSizer(wx.VERTICAL)
-        __szr_bottom_row = wx.BoxSizer(wx.HORIZONTAL)
-        __szr_top_row = wx.BoxSizer(wx.HORIZONTAL)
-        __szr_main.Add(self._BMP_patient_picture, 0, wx.RIGHT | wx.ALIGN_CENTER_VERTICAL, 2)
-        __szr_top_row.Add(self._TCTRL_patient_selector, 2, wx.RIGHT | wx.ALIGN_CENTER_VERTICAL, 3)
-        __szr_top_row.Add(self._LBL_age, 0, wx.RIGHT | wx.ALIGN_CENTER_VERTICAL, 10)
-        __szr_top_row.Add(self._LBL_allergies, 0, wx.RIGHT | wx.ALIGN_CENTER_VERTICAL, 2)
-        __szr_top_row.Add(self._TCTRL_allergies, 3, wx.ALIGN_CENTER_VERTICAL, 0)
-        __szr_stacked_rows.Add(__szr_top_row, 0, wx.BOTTOM | wx.EXPAND, 2)
-        __szr_bottom_row.Add(self._PNL_tags, 1, wx.ALIGN_CENTER_VERTICAL, 0)
-        __szr_bottom_row.Add((20, 20), 1, wx.ALIGN_CENTER_VERTICAL, 0)
-        __szr_bottom_row.Add(self._PNL_enc, 1, wx.ALIGN_CENTER_VERTICAL, 0)
-        __szr_stacked_rows.Add(__szr_bottom_row, 0, wx.EXPAND, 0)
-        __szr_main.Add(__szr_stacked_rows, 1, 0, 0)
-        self.SetSizer(__szr_main)
-        __szr_main.Fit(self)
-        # end wxGlade
+	def __do_layout(self):
+		# begin wxGlade: wxgTopPnl.__do_layout
+		__szr_main = wx.BoxSizer(wx.HORIZONTAL)
+		__szr_stacked_rows = wx.BoxSizer(wx.VERTICAL)
+		__szr_bottom_row = wx.BoxSizer(wx.HORIZONTAL)
+		__szr_bottom_row_left = wx.BoxSizer(wx.HORIZONTAL)
+		__szr_top_row = wx.BoxSizer(wx.HORIZONTAL)
+		__szr_main.Add(self._BMP_patient_picture, 0, wx.RIGHT | wx.ALIGN_CENTER_VERTICAL, 2)
+		__szr_top_row.Add(self._TCTRL_patient_selector, 2, wx.RIGHT | wx.ALIGN_CENTER_VERTICAL, 3)
+		__szr_top_row.Add(self._LBL_age, 0, wx.RIGHT | wx.ALIGN_CENTER_VERTICAL, 10)
+		__szr_top_row.Add(self._LBL_allergies, 0, wx.RIGHT | wx.ALIGN_CENTER_VERTICAL, 2)
+		__szr_top_row.Add(self._TCTRL_allergies, 3, wx.ALIGN_CENTER_VERTICAL, 0)
+		__szr_stacked_rows.Add(__szr_top_row, 0, wx.BOTTOM | wx.EXPAND, 2)
+		__szr_bottom_row_left.Add(self._PNL_tags, 0, wx.ALIGN_CENTER_VERTICAL, 3)
+		__szr_bottom_row_left.Add((20, 20), 1, wx.EXPAND | wx.ALIGN_CENTER_VERTICAL, 0)
+		__szr_bottom_row_left.Add(self._LBL_lab, 0, wx.ALIGN_CENTER_VERTICAL, 0)
+		__szr_bottom_row_left.Add((20, 20), 1, wx.EXPAND | wx.ALIGN_CENTER_VERTICAL, 0)
+		__szr_bottom_row.Add(__szr_bottom_row_left, 2, wx.EXPAND | wx.ALIGN_CENTER_VERTICAL, 0)
+		__szr_bottom_row.Add(self._PNL_enc, 1, wx.ALIGN_CENTER_VERTICAL, 0)
+		__szr_stacked_rows.Add(__szr_bottom_row, 0, wx.EXPAND, 0)
+		__szr_main.Add(__szr_stacked_rows, 1, 0, 0)
+		self.SetSizer(__szr_main)
+		__szr_main.Fit(self)
+		# end wxGlade
 
 # end of class wxgTopPnl
-
-
diff --git a/client/wxGladeWidgets/wxgUnhandledExceptionDlg.py b/client/wxGladeWidgets/wxgUnhandledExceptionDlg.py
index 4d0c454..381a4fb 100644
--- a/client/wxGladeWidgets/wxgUnhandledExceptionDlg.py
+++ b/client/wxGladeWidgets/wxgUnhandledExceptionDlg.py
@@ -1,132 +1,133 @@
 #!/usr/bin/env python
 # -*- coding: UTF-8 -*-
-# generated by wxGlade 0.4.1 on Mon May  7 21:06:13 2007
+#
+# generated by wxGlade 0.7.1
+#
 
 import wx
 
-class wxgUnhandledExceptionDlg(wx.Dialog):
-    def __init__(self, *args, **kwds):
-        # begin wxGlade: wxgUnhandledExceptionDlg.__init__
-        kwds["style"] = wx.DEFAULT_DIALOG_STYLE|wx.RESIZE_BORDER|wx.MAXIMIZE_BOX|wx.MINIMIZE_BOX|wx.THICK_FRAME
-        wx.Dialog.__init__(self, *args, **kwds)
-        self.__szr_middle_staticbox = wx.StaticBox(self, -1, _("Details"))
-        self.__pnl_top_message = wx.Panel(self, -1, style=wx.NO_BORDER)
-        self._TCTRL_comment = wx.TextCtrl(self, -1, "")
-        self._TCTRL_sender = wx.TextCtrl(self, -1, _("<Please supply your email address here !>"))
-        self._TCTRL_helpdesk = wx.TextCtrl(self, -1, "", style=wx.TE_READONLY|wx.NO_BORDER)
-        self._TCTRL_logfile = wx.TextCtrl(self, -1, "", style=wx.TE_READONLY|wx.NO_BORDER)
-        self._TCTRL_exc_type = wx.TextCtrl(self, -1, "", style=wx.TE_READONLY|wx.NO_BORDER)
-        self._TCTRL_exc_value = wx.TextCtrl(self, -1, "", style=wx.TE_READONLY|wx.NO_BORDER)
-        self._TCTRL_traceback = wx.TextCtrl(self, -1, "", style=wx.TE_MULTILINE|wx.TE_READONLY|wx.HSCROLL)
-        self._BTN_ok = wx.Button(self, wx.ID_OK, _("Keep running"))
-        self._BTN_close = wx.Button(self, wx.ID_CANCEL, _("Close GNUmed"))
-        self._BTN_view_log = wx.Button(self, -1, _("View log"))
-        self._BTN_mail = wx.Button(self, -1, _("Send report"))
+# begin wxGlade: dependencies
+import gettext
+# end wxGlade
 
-        self.__set_properties()
-        self.__do_layout()
+# begin wxGlade: extracode
+# end wxGlade
 
-        self.Bind(wx.EVT_BUTTON, self._on_close_gnumed_button_pressed, id=wx.ID_CANCEL)
-        self.Bind(wx.EVT_BUTTON, self._on_view_log_button_pressed, self._BTN_view_log)
-        self.Bind(wx.EVT_BUTTON, self._on_mail_button_pressed, self._BTN_mail)
-        # end wxGlade
 
-    def __set_properties(self):
-        # begin wxGlade: wxgUnhandledExceptionDlg.__set_properties
-        self.SetTitle(_("GNUmed exception handler"))
-        self.__pnl_top_message.SetBackgroundColour(wx.Colour(255, 0, 0))
-        self._TCTRL_comment.SetToolTipString(_("Enter any additional data or commentary you wish to provide such as what you were about to do."))
-        self._TCTRL_comment.SetFocus()
-        self._TCTRL_sender.SetToolTipString(_("Please enter your email address so we can provide feedback directly to you. Otherwise, feedback will be given on the GNUmed mailing list (http://lists.gnu.org/mailman/listinfo/gnumed-bugs)."))
-        self._TCTRL_helpdesk.SetBackgroundColour(wx.SystemSettings_GetColour(wx.SYS_COLOUR_BACKGROUND))
-        self._TCTRL_helpdesk.SetToolTipString(_("Find help on http://wiki.gnumed.de, too."))
-        self._TCTRL_helpdesk.Enable(False)
-        self._TCTRL_logfile.SetBackgroundColour(wx.SystemSettings_GetColour(wx.SYS_COLOUR_BACKGROUND))
-        self._TCTRL_logfile.Enable(False)
-        self._TCTRL_exc_type.SetBackgroundColour(wx.SystemSettings_GetColour(wx.SYS_COLOUR_BACKGROUND))
-        self._TCTRL_exc_type.Enable(False)
-        self._TCTRL_exc_value.SetBackgroundColour(wx.SystemSettings_GetColour(wx.SYS_COLOUR_BACKGROUND))
-        self._TCTRL_exc_value.Enable(False)
-        self._BTN_ok.SetToolTipString(_("Close this dialog but keep running GNUmed."))
-        self._BTN_ok.SetDefault()
-        self._BTN_close.SetToolTipString(_("Close this dialog AND the GNUmed client."))
-        self._BTN_view_log.SetToolTipString(_("View the log file."))
-        self._BTN_mail.SetToolTipString(_("Email a bug report to the GNUmed developers.\n\nMost questions will be answered on the mailing list so you are well advised to either subscribe or check its archive (http://lists.gnu.org/mailman/listinfo/gnumed-bugs).\n\nIf you specify your address in the Sender field above the developers will be able to contact you directly for feedback."))
-        # end wxGlade
+class wxgUnhandledExceptionDlg(wx.Dialog):
+	def __init__(self, *args, **kwds):
+		# begin wxGlade: wxgUnhandledExceptionDlg.__init__
+		kwds["style"] = wx.DEFAULT_DIALOG_STYLE | wx.MAXIMIZE_BOX | wx.MINIMIZE_BOX | wx.RESIZE_BORDER
+		wx.Dialog.__init__(self, *args, **kwds)
+		self.__pnl_top_message = wx.Panel(self, wx.ID_ANY, style=wx.BORDER_NONE)
+		self._TCTRL_comment = wx.TextCtrl(self, wx.ID_ANY, "")
+		self._TCTRL_sender = wx.TextCtrl(self, wx.ID_ANY, _("Please supply your email address here !"))
+		self._TCTRL_helpdesk = wx.TextCtrl(self, wx.ID_ANY, "", style=wx.BORDER_NONE | wx.TE_READONLY)
+		self._TCTRL_logfile = wx.TextCtrl(self, wx.ID_ANY, "", style=wx.BORDER_NONE | wx.TE_READONLY)
+		self._TCTRL_exc_type = wx.TextCtrl(self, wx.ID_ANY, "", style=wx.BORDER_NONE | wx.TE_READONLY)
+		self._TCTRL_exc_value = wx.TextCtrl(self, wx.ID_ANY, "", style=wx.BORDER_NONE | wx.TE_READONLY)
+		self._TCTRL_traceback = wx.TextCtrl(self, wx.ID_ANY, "", style=wx.HSCROLL | wx.TE_MULTILINE | wx.TE_READONLY)
+		self.__szr_middle_staticbox = wx.StaticBox(self, wx.ID_ANY, _("Details"))
+		self._BTN_ok = wx.Button(self, wx.ID_OK, _("Keep running"))
+		self._BTN_close = wx.Button(self, wx.ID_CANCEL, _("Close GNUmed"))
+		self._BTN_view_log = wx.Button(self, wx.ID_ANY, _("View log"))
+		self._BTN_mail = wx.Button(self, wx.ID_ANY, _("Send report"))
 
-    def __do_layout(self):
-        # begin wxGlade: wxgUnhandledExceptionDlg.__do_layout
-        __szr_main = wx.BoxSizer(wx.VERTICAL)
-        __szr_buttons = wx.BoxSizer(wx.HORIZONTAL)
-        __szr_middle = wx.StaticBoxSizer(self.__szr_middle_staticbox, wx.VERTICAL)
-        _gszr_details = wx.FlexGridSizer(6, 2, 3, 5)
-        __szr_top_inner = wx.BoxSizer(wx.VERTICAL)
-        __lbl_top_message = wx.StaticText(self.__pnl_top_message, -1, _("An unhandled exception has occurred."), style=wx.ALIGN_CENTRE)
-        __lbl_top_message.SetBackgroundColour(wx.Colour(255, 0, 0))
-        __lbl_top_message.SetForegroundColour(wx.Colour(255, 255, 0))
-        __lbl_top_message.SetFont(wx.Font(14, wx.DEFAULT, wx.NORMAL, wx.BOLD, 0, ""))
-        __szr_top_inner.Add(__lbl_top_message, 0, wx.ALL|wx.EXPAND, 10)
-        self.__pnl_top_message.SetSizer(__szr_top_inner)
-        __szr_main.Add(self.__pnl_top_message, 0, wx.EXPAND, 0)
-        __lbl_explanation = wx.StaticText(self, -1, _("GNUmed detected an error for which no specific handler had been defined.\n\nDetails about the error can be found in the log file a copy of which has\nbeen saved away in your home directory (see below). It may contain\nbits of sensitive information so you may want to screen the content\nbefore handing it to IT staff for debugging.\n\nGNUmed will try to keep running. However, it is strongly advised to\nclose this GNUmed workplace as so [...]
-        __szr_main.Add(__lbl_explanation, 0, wx.ALL|wx.EXPAND, 5)
-        __lbl_comment = wx.StaticText(self, -1, _("Comment"))
-        __lbl_comment.SetToolTipString(_("Enter a short comment on what you were trying to do with GNUmed. This information will be added to the logfile for easier identification later on."))
-        _gszr_details.Add(__lbl_comment, 0, wx.ALIGN_CENTER_VERTICAL, 0)
-        _gszr_details.Add(self._TCTRL_comment, 0, wx.EXPAND|wx.ALIGN_CENTER_VERTICAL, 0)
-        __lbl_sender = wx.StaticText(self, -1, _("Sender"))
-        _gszr_details.Add(__lbl_sender, 0, wx.ALIGN_CENTER_VERTICAL, 0)
-        _gszr_details.Add(self._TCTRL_sender, 0, wx.EXPAND|wx.ALIGN_CENTER_VERTICAL, 0)
-        __lbl_helpdesk = wx.StaticText(self, -1, _("Help desk"))
-        _gszr_details.Add(__lbl_helpdesk, 0, wx.ALIGN_CENTER_VERTICAL, 0)
-        _gszr_details.Add(self._TCTRL_helpdesk, 0, wx.EXPAND|wx.ALIGN_CENTER_VERTICAL, 0)
-        __lbl_logfile = wx.StaticText(self, -1, _("Log file"))
-        _gszr_details.Add(__lbl_logfile, 0, wx.ALIGN_CENTER_VERTICAL, 0)
-        _gszr_details.Add(self._TCTRL_logfile, 0, wx.EXPAND|wx.ALIGN_CENTER_VERTICAL, 0)
-        __lbl_type = wx.StaticText(self, -1, _("Type"))
-        _gszr_details.Add(__lbl_type, 0, wx.ALIGN_CENTER_VERTICAL, 0)
-        _gszr_details.Add(self._TCTRL_exc_type, 0, wx.EXPAND|wx.ALIGN_CENTER_VERTICAL, 0)
-        __lbl_value = wx.StaticText(self, -1, _("Value"))
-        _gszr_details.Add(__lbl_value, 0, wx.ALIGN_CENTER_VERTICAL, 0)
-        _gszr_details.Add(self._TCTRL_exc_value, 0, wx.EXPAND|wx.ALIGN_CENTER_VERTICAL, 0)
-        _gszr_details.AddGrowableCol(1)
-        __szr_middle.Add(_gszr_details, 0, wx.TOP|wx.BOTTOM|wx.EXPAND, 5)
-        __szr_middle.Add(self._TCTRL_traceback, 1, wx.EXPAND, 0)
-        __szr_main.Add(__szr_middle, 1, wx.ALL|wx.EXPAND, 5)
-        __szr_buttons.Add((20, 20), 1, wx.EXPAND, 0)
-        __szr_buttons.Add(self._BTN_ok, 0, wx.RIGHT|wx.EXPAND, 3)
-        __szr_buttons.Add(self._BTN_close, 0, wx.LEFT|wx.EXPAND, 3)
-        __szr_buttons.Add((20, 20), 1, wx.EXPAND, 0)
-        __szr_buttons.Add(self._BTN_view_log, 0, wx.RIGHT|wx.EXPAND, 3)
-        __szr_buttons.Add(self._BTN_mail, 0, wx.LEFT|wx.EXPAND, 3)
-        __szr_buttons.Add((20, 20), 1, wx.EXPAND, 0)
-        __szr_main.Add(__szr_buttons, 0, wx.ALL|wx.EXPAND, 5)
-        self.SetSizer(__szr_main)
-        __szr_main.Fit(self)
-        self.Layout()
-        self.Centre()
-        # end wxGlade
+		self.__set_properties()
+		self.__do_layout()
 
-    def _on_close_gnumed_button_pressed(self, event): # wxGlade: wxgUnhandledExceptionDlg.<event_handler>
-        print "Event handler `_on_close_gnumed_button_pressed' not implemented"
-        event.Skip()
+		self.Bind(wx.EVT_BUTTON, self._on_close_gnumed_button_pressed, id=wx.ID_CANCEL)
+		self.Bind(wx.EVT_BUTTON, self._on_view_log_button_pressed, self._BTN_view_log)
+		self.Bind(wx.EVT_BUTTON, self._on_mail_button_pressed, self._BTN_mail)
+		# end wxGlade
 
-    def __on_keep_running_button_pressed(self, event): # wxGlade: wxgUnhandledExceptionDlg.<event_handler>
-        print "Event handler `__on_keep_running_button_pressed' not implemented"
-        event.Skip()
+	def __set_properties(self):
+		# begin wxGlade: wxgUnhandledExceptionDlg.__set_properties
+		self.SetTitle(_("GNUmed exception handler"))
+		self.__pnl_top_message.SetBackgroundColour(wx.Colour(255, 0, 0))
+		self._TCTRL_comment.SetToolTipString(_("Enter any additional data or commentary you wish to provide such as what you were about to do."))
+		self._TCTRL_comment.SetFocus()
+		self._TCTRL_sender.SetToolTipString(_("Please enter your email address so we can provide help to you directly.\n\nOtherwise, feedback can be given on the GNUmed mailing list (http://lists.gnu.org/mailman/listinfo/gnumed-bugs) ONLY to which you will then have to subscribe."))
+		self._TCTRL_helpdesk.SetBackgroundColour(wx.SystemSettings_GetColour(wx.SYS_COLOUR_BACKGROUND))
+		self._TCTRL_helpdesk.SetToolTipString(_("Find help on http://wiki.gnumed.de, too."))
+		self._TCTRL_helpdesk.Enable(False)
+		self._TCTRL_logfile.SetBackgroundColour(wx.SystemSettings_GetColour(wx.SYS_COLOUR_BACKGROUND))
+		self._TCTRL_logfile.Enable(False)
+		self._TCTRL_exc_type.SetBackgroundColour(wx.SystemSettings_GetColour(wx.SYS_COLOUR_BACKGROUND))
+		self._TCTRL_exc_type.Enable(False)
+		self._TCTRL_exc_value.SetBackgroundColour(wx.SystemSettings_GetColour(wx.SYS_COLOUR_BACKGROUND))
+		self._TCTRL_exc_value.Enable(False)
+		self._BTN_ok.SetToolTipString(_("Close this dialog but keep running GNUmed."))
+		self._BTN_ok.SetDefault()
+		self._BTN_close.SetToolTipString(_("Close this dialog AND the GNUmed client."))
+		self._BTN_view_log.SetToolTipString(_("View the log file."))
+		self._BTN_mail.SetToolTipString(_("Email a bug report to the GNUmed developers.\n\nMost questions will be answered on the mailing list so you are well advised to either subscribe or check its archive (http://lists.gnu.org/mailman/listinfo/gnumed-bugs).\n\nIf you specify your address in the Sender field above the developers will be able to contact you directly for feedback."))
+		# end wxGlade
 
-    def __on_close_gnumed_button_pressed(self, event): # wxGlade: wxgUnhandledExceptionDlg.<event_handler>
-        print "Event handler `__on_close_gnumed_button_pressed' not implemented"
-        event.Skip()
+	def __do_layout(self):
+		# begin wxGlade: wxgUnhandledExceptionDlg.__do_layout
+		__szr_main = wx.BoxSizer(wx.VERTICAL)
+		__szr_buttons = wx.BoxSizer(wx.HORIZONTAL)
+		self.__szr_middle_staticbox.Lower()
+		__szr_middle = wx.StaticBoxSizer(self.__szr_middle_staticbox, wx.VERTICAL)
+		_gszr_details = wx.FlexGridSizer(6, 2, 3, 5)
+		__szr_top_inner = wx.BoxSizer(wx.VERTICAL)
+		__lbl_top_message = wx.StaticText(self.__pnl_top_message, wx.ID_ANY, _("An unhandled exception has occurred."), style=wx.ALIGN_CENTER)
+		__lbl_top_message.SetBackgroundColour(wx.Colour(255, 0, 0))
+		__lbl_top_message.SetForegroundColour(wx.Colour(255, 255, 0))
+		__lbl_top_message.SetFont(wx.Font(14, wx.DEFAULT, wx.NORMAL, wx.BOLD, 0, ""))
+		__szr_top_inner.Add(__lbl_top_message, 0, wx.ALL | wx.EXPAND, 10)
+		self.__pnl_top_message.SetSizer(__szr_top_inner)
+		__szr_main.Add(self.__pnl_top_message, 0, wx.EXPAND, 0)
+		__lbl_explanation = wx.StaticText(self, wx.ID_ANY, _("GNUmed detected an error for which no specific handler had been defined.\n\nDetails about the error can be found in the log file a copy of which has\nbeen saved away in your home directory (see below). It may contain\nbits of sensitive information so you may want to screen the content\nbefore handing it to IT staff for debugging.\n\nGNUmed will try to keep running. However, it is strongly advised to\nclose this GNUmed workplace as s [...]
+		__szr_main.Add(__lbl_explanation, 0, wx.ALL | wx.EXPAND, 5)
+		__lbl_comment = wx.StaticText(self, wx.ID_ANY, _("Comment"))
+		__lbl_comment.SetToolTipString(_("Enter a short comment on what you were trying to do with GNUmed. This information will be added to the logfile for easier identification later on."))
+		_gszr_details.Add(__lbl_comment, 0, wx.ALIGN_CENTER_VERTICAL, 0)
+		_gszr_details.Add(self._TCTRL_comment, 0, wx.ALIGN_CENTER_VERTICAL | wx.EXPAND, 0)
+		__lbl_sender = wx.StaticText(self, wx.ID_ANY, _("Sender"))
+		_gszr_details.Add(__lbl_sender, 0, wx.ALIGN_CENTER_VERTICAL, 0)
+		_gszr_details.Add(self._TCTRL_sender, 0, wx.ALIGN_CENTER_VERTICAL | wx.EXPAND, 0)
+		__lbl_helpdesk = wx.StaticText(self, wx.ID_ANY, _("Help desk"))
+		_gszr_details.Add(__lbl_helpdesk, 0, wx.ALIGN_CENTER_VERTICAL, 0)
+		_gszr_details.Add(self._TCTRL_helpdesk, 0, wx.ALIGN_CENTER_VERTICAL | wx.EXPAND, 0)
+		__lbl_logfile = wx.StaticText(self, wx.ID_ANY, _("Log file"))
+		_gszr_details.Add(__lbl_logfile, 0, wx.ALIGN_CENTER_VERTICAL, 0)
+		_gszr_details.Add(self._TCTRL_logfile, 0, wx.ALIGN_CENTER_VERTICAL | wx.EXPAND, 0)
+		__lbl_type = wx.StaticText(self, wx.ID_ANY, _("Type"))
+		_gszr_details.Add(__lbl_type, 0, wx.ALIGN_CENTER_VERTICAL, 0)
+		_gszr_details.Add(self._TCTRL_exc_type, 0, wx.ALIGN_CENTER_VERTICAL | wx.EXPAND, 0)
+		__lbl_value = wx.StaticText(self, wx.ID_ANY, _("Value"))
+		_gszr_details.Add(__lbl_value, 0, wx.ALIGN_CENTER_VERTICAL, 0)
+		_gszr_details.Add(self._TCTRL_exc_value, 0, wx.ALIGN_CENTER_VERTICAL | wx.EXPAND, 0)
+		_gszr_details.AddGrowableCol(1)
+		__szr_middle.Add(_gszr_details, 0, wx.BOTTOM | wx.EXPAND | wx.TOP, 5)
+		__szr_middle.Add(self._TCTRL_traceback, 1, wx.EXPAND, 0)
+		__szr_main.Add(__szr_middle, 1, wx.ALL | wx.EXPAND, 5)
+		__szr_buttons.Add((20, 20), 1, wx.EXPAND, 0)
+		__szr_buttons.Add(self._BTN_ok, 0, wx.EXPAND | wx.RIGHT, 3)
+		__szr_buttons.Add(self._BTN_close, 0, wx.EXPAND | wx.LEFT, 3)
+		__szr_buttons.Add((20, 20), 1, wx.EXPAND, 0)
+		__szr_buttons.Add(self._BTN_view_log, 0, wx.EXPAND | wx.RIGHT, 3)
+		__szr_buttons.Add(self._BTN_mail, 0, wx.EXPAND | wx.LEFT, 3)
+		__szr_buttons.Add((20, 20), 1, wx.EXPAND, 0)
+		__szr_main.Add(__szr_buttons, 0, wx.ALL | wx.EXPAND, 5)
+		self.SetSizer(__szr_main)
+		__szr_main.Fit(self)
+		self.Layout()
+		self.Centre()
+		# end wxGlade
 
-    def _on_mail_button_pressed(self, event): # wxGlade: wxgUnhandledExceptionDlg.<event_handler>
-        print "Event handler `_on_mail_button_pressed' not implemented"
-        event.Skip()
+	def _on_close_gnumed_button_pressed(self, event):  # wxGlade: wxgUnhandledExceptionDlg.<event_handler>
+		print "Event handler '_on_close_gnumed_button_pressed' not implemented!"
+		event.Skip()
 
-    def _on_view_log_button_pressed(self, event): # wxGlade: wxgUnhandledExceptionDlg.<event_handler>
-        print "Event handler `_on_view_log_button_pressed' not implemented"
-        event.Skip()
-
-# end of class wxgUnhandledExceptionDlg
+	def _on_view_log_button_pressed(self, event):  # wxGlade: wxgUnhandledExceptionDlg.<event_handler>
+		print "Event handler '_on_view_log_button_pressed' not implemented!"
+		event.Skip()
 
+	def _on_mail_button_pressed(self, event):  # wxGlade: wxgUnhandledExceptionDlg.<event_handler>
+		print "Event handler '_on_mail_button_pressed' not implemented!"
+		event.Skip()
 
+# end of class wxgUnhandledExceptionDlg
diff --git a/client/wxGladeWidgets/wxgVaccineEAPnl.py b/client/wxGladeWidgets/wxgVaccineEAPnl.py
index 8f673bb..c70e60c 100644
--- a/client/wxGladeWidgets/wxgVaccineEAPnl.py
+++ b/client/wxGladeWidgets/wxgVaccineEAPnl.py
@@ -12,19 +12,19 @@ import wx
 class wxgVaccineEAPnl(wx.ScrolledWindow):
     def __init__(self, *args, **kwds):
 
-        from Gnumed.wxpython import gmMedicationWidgets
+        from Gnumed.wxpython import gmSubstanceMgmtWidgets
         from Gnumed.wxpython import gmPhraseWheel
 
         # begin wxGlade: wxgVaccineEAPnl.__init__
         kwds["style"] = wx.NO_BORDER | wx.TAB_TRAVERSAL
         wx.ScrolledWindow.__init__(self, *args, **kwds)
-        self._PRW_brand = gmMedicationWidgets.cBrandedDrugPhraseWheel(self, -1, "", style=wx.NO_BORDER)
+        self._PRW_brand = gmSubstanceMgmtWidgets.cBrandedDrugPhraseWheel(self, -1, "", style=wx.NO_BORDER)
         self._CHBOX_fake = wx.CheckBox(self, -1, _("Fake"))
         self._PRW_route = gmPhraseWheel.cPhraseWheel(self, -1, "", style=wx.NO_BORDER)
         self._CHBOX_live = wx.CheckBox(self, -1, _("Live"))
         self._TCTRL_indications = wx.TextCtrl(self, -1, "", style=wx.TE_MULTILINE | wx.TE_READONLY | wx.NO_BORDER)
         self._BTN_manage_indications = wx.Button(self, -1, _("&Manage"), style=wx.BU_EXACTFIT)
-        self._PRW_atc = gmMedicationWidgets.cATCPhraseWheel(self, -1, "", style=wx.NO_BORDER)
+        self._PRW_atc = gmSubstanceMgmtWidgets.cATCPhraseWheel(self, -1, "", style=wx.NO_BORDER)
         self._PRW_age_min = gmPhraseWheel.cPhraseWheel(self, -1, "", style=wx.NO_BORDER)
         self._PRW_age_max = gmPhraseWheel.cPhraseWheel(self, -1, "", style=wx.NO_BORDER)
         self._TCTRL_comment = wx.TextCtrl(self, -1, "", style=wx.NO_BORDER)
diff --git a/client/wxpython/gmAddressWidgets.py b/client/wxpython/gmAddressWidgets.py
index 982ff19..34a93e3 100644
--- a/client/wxpython/gmAddressWidgets.py
+++ b/client/wxpython/gmAddressWidgets.py
@@ -164,9 +164,9 @@ def configure_default_region(parent=None):
 		message = _('Select the default region (state/province/county/territory/arrondissement/prefecture/department/kanton/...) for new persons.\n'),
 		option = 'person.create.default_region',
 		bias = 'user',
-		choices = [ (r['l10n_country'], r['l10n_state'], r['code_state']) for r in regs ],
+		choices = [ (r['l10n_country'], r['l10n_region'], r['code_region']) for r in regs ],
 		columns = [_('Country'), _('Region'), _('Code')],
-		data = [ r['state'] for r in regs ]
+		data = [ r['region'] for r in regs ]
 	)
 #============================================================
 def edit_region(parent=None, region=None):
@@ -223,7 +223,7 @@ def manage_regions(parent=None):
 
 	#------------------------------------------------------------
 	def delete(region=None):
-		return delete_region(parent = parent, region = region['pk_state'])
+		return delete_region(parent = parent, region = region['pk_region'])
 	#------------------------------------------------------------
 	def edit(region=None):
 		return edit_region(parent = parent, region = region)
@@ -231,7 +231,7 @@ def manage_regions(parent=None):
 	def refresh(lctrl):
 		wx.BeginBusyCursor()
 		provinces = gmDemographicRecord.get_regions()
-		lctrl.set_string_items([ (p['l10n_country'], p['l10n_state']) for p in provinces ])
+		lctrl.set_string_items([ (p['l10n_country'], p['l10n_region']) for p in provinces ])
 		lctrl.set_data(provinces)
 		wx.EndBusyCursor()
 	#------------------------------------------------------------
@@ -288,59 +288,59 @@ FROM (
 		list_label,
 		rank
 	FROM (
-			-- 1: find states based on name, context: zip and country name
+			-- 1: find regions based on name, context: zip and country name
 			SELECT
-				code_state AS data,
-				state AS field_label,
-				state || ' (' || code_state || '), ' || l10n_country || ' (' || code_country || ')' AS list_label,
+				code_region AS data,
+				region AS field_label,
+				region || ' (' || code_region || '), ' || l10n_country || ' (' || code_country || ')' AS list_label,
 				1 AS rank
 			FROM dem.v_zip2data
 			WHERE
-				state %(fragment_condition)s
+				region %(fragment_condition)s
 				%(ctxt_country_name)s
 				%(ctxt_zip)s
 
 		UNION ALL
 
-			-- 2: find states based on code, context: zip and country name
+			-- 2: find regions based on code, context: zip and country name
 			SELECT
-				code_state AS data,
-				state AS field_label,
-				code_state || ': ' || state || ' (' || l10n_country || ', ' || code_country || ')' AS list_label,
+				code_region AS data,
+				region AS field_label,
+				code_region || ': ' || region || ' (' || l10n_country || ', ' || code_country || ')' AS list_label,
 				2 AS rank
 			FROM dem.v_zip2data
 			WHERE
-				code_state %(fragment_condition)s
+				code_region %(fragment_condition)s
 				%(ctxt_country_name)s
 				%(ctxt_zip)s
 
 		UNION ALL
 
-			-- 3: find states based on name, context: country
+			-- 3: find regions based on name, context: country
 			SELECT
 				code AS data,
 				name AS field_label,
 				name || ' (' || code || '), ' || country AS list_label,
 				3 AS rank
-			FROM dem.state
+			FROM dem.region
 			WHERE
 				name %(fragment_condition)s
 				%(ctxt_country_code)s
 
 		UNION ALL
 
-			-- 4: find states based on code, context: country
+			-- 4: find regions based on code, context: country
 			SELECT
 				code AS data,
 				name AS field_label,
 				code || ': ' || name || ', ' || country AS list_label,
 				3 AS rank
-			FROM dem.state
+			FROM dem.region
 			WHERE
 				code %(fragment_condition)s
 				%(ctxt_country_code)s
 
-	) AS candidate_states
+	) AS candidate_regions
 ) AS distinct_matches
 ORDER BY rank, list_label
 LIMIT 50"""
@@ -420,8 +420,8 @@ class cProvinceEAPnl(wxgProvinceEAPnl.wxgProvinceEAPnl, gmEditArea.cGenericEditA
 
 		# EA is refreshed automatically after save, so need this ...
 		self.data = {
-			'l10n_state' : self._PRW_region.GetValue().strip(),
-			'code_state' : self._TCTRL_code.GetValue().strip(),
+			'l10n_region' : self._PRW_region.GetValue().strip(),
+			'code_region' : self._TCTRL_code.GetValue().strip(),
 			'l10n_country' : self._PRW_country.GetValue().strip(),
 			'code_country' : self._PRW_country.GetData().strip()
 		}
@@ -446,8 +446,8 @@ class cProvinceEAPnl(wxgProvinceEAPnl.wxgProvinceEAPnl, gmEditArea.cGenericEditA
 		self._PRW_region.SetFocus()
 	#----------------------------------------------------------------
 	def _refresh_from_existing(self):
-		self._PRW_region.SetText(self.data['l10n_state'], self.data['code_state'])
-		self._TCTRL_code.SetValue(self.data['code_state'])
+		self._PRW_region.SetText(self.data['l10n_region'], self.data['code_region'])
+		self._TCTRL_code.SetValue(self.data['code_region'])
 		self._PRW_country.SetText(self.data['l10n_country'], self.data['code_country'])
 
 		self._PRW_region.SetFocus()
@@ -586,7 +586,7 @@ class cUrbPhraseWheel(gmPhraseWheel.cPhraseWheel):
 			SELECT
 				urb AS data,
 				urb AS field_label,
-				urb || ' (' || zip || ', ' || state || ', ' || l10n_country || ')' AS list_label,
+				urb || ' (' || zip || ', ' || region || ', ' || l10n_country || ')' AS list_label,
 				1 AS rank
 			FROM dem.v_zip2data
 			WHERE
@@ -683,7 +683,7 @@ def manage_addresses(parent=None):
 				a['postcode'],
 				a['urb'],
 				gmTools.coalesce(a['suburb'], u''),
-				a['l10n_state'],
+				a['l10n_region'],
 				a['l10n_country'],
 				gmTools.coalesce(a['notes_subunit'], u'')
 			] for a in adrs
@@ -820,7 +820,7 @@ class cAddressEAPnl(wxgGenericAddressEditAreaPnl.wxgGenericAddressEditAreaPnl, g
 			_log.exception('cannot save address')
 			gmGuiHelpers.gm_show_error (
 				_('Cannot save address.\n\n'
-				  'Does the state [%s]\n'
+				  'Does the region [%s]\n'
 				  'exist in country [%s] ?'
 				) % (
 					self._PRW_state.GetValue().strip(),
@@ -863,7 +863,7 @@ class cAddressEAPnl(wxgGenericAddressEditAreaPnl.wxgGenericAddressEditAreaPnl, g
 			_log.exception('cannot save address')
 			gmGuiHelpers.gm_show_error (
 				_('Cannot save address.\n\n'
-				  'Does the state [%s]\n'
+				  'Does the region [%s]\n'
 				  'exist in country [%s] ?'
 				) % (
 					self._PRW_state.GetValue().strip(),
@@ -911,7 +911,7 @@ class cAddressEAPnl(wxgGenericAddressEditAreaPnl.wxgGenericAddressEditAreaPnl, g
 		self._PRW_street.SetText(self.data['street'], data = self.data['street'])
 		self._PRW_suburb.SetText(gmTools.coalesce(self.data['suburb'], ''))
 		self._PRW_urb.SetText(self.data['urb'], data = self.data['urb'])
-		self._PRW_state.SetText(self.data['l10n_state'], data = self.data['code_state'])
+		self._PRW_state.SetText(self.data['l10n_region'], data = self.data['code_region'])
 		self._PRW_country.SetText(self.data['l10n_country'], data = self.data['code_country'])
 
 		if self.__type_is_editable:
@@ -931,7 +931,7 @@ class cAddressEAPnl(wxgGenericAddressEditAreaPnl.wxgGenericAddressEditAreaPnl, g
 		self._TCTRL_subunit.SetValue(gmTools.coalesce(self.data['subunit'], ''))
 		self._PRW_suburb.SetText(gmTools.coalesce(self.data['suburb'], ''))
 		self._PRW_urb.SetText(self.data['urb'], data = self.data['urb'])
-		self._PRW_state.SetText(self.data['l10n_state'], data = self.data['code_state'])
+		self._PRW_state.SetText(self.data['l10n_region'], data = self.data['code_region'])
 		self._PRW_country.SetText(self.data['l10n_country'], data = self.data['code_country'])
 		self._TCTRL_notes_subunit.SetValue(gmTools.coalesce(self.data['notes_subunit'], ''))
 
@@ -943,7 +943,7 @@ class cAddressEAPnl(wxgGenericAddressEditAreaPnl.wxgGenericAddressEditAreaPnl, g
 	# event handling
 	#----------------------------------------------------------------
 	def _on_zip_set(self):
-		"""Set the street, town, state and country according to entered zip code."""
+		"""Set the street, town, region and country according to entered zip code."""
 		zip_code = self._PRW_zip.GetValue()
 		if zip_code.strip() == u'':
 			self._PRW_street.unset_context(context = u'zip')
@@ -957,7 +957,7 @@ class cAddressEAPnl(wxgGenericAddressEditAreaPnl.wxgGenericAddressEditAreaPnl, g
 			self._PRW_country.set_context(context = u'zip', val = zip_code)
 	#----------------------------------------------------------------
 	def _on_country_set(self):
-		"""Set the states according to entered country."""
+		"""Set the regions according to entered country."""
 		country = self._PRW_country.GetData()
 		if country is None:
 			self._PRW_state.unset_context(context = 'country')
@@ -1014,7 +1014,7 @@ SELECT * FROM (
 		(street || ' ' || number || coalesce(' (' || subunit || ')', '') || ', '
 				|| urb || coalesce(' (' || suburb || ')', '') || ', '
 				|| postcode || ', '
-				|| l10n_state || ', '
+				|| l10n_region || ', '
 				|| l10n_country
 				|| coalesce(', ' || notes_street, '')
 				|| coalesce(', ' || notes_subunit, '')
@@ -1036,7 +1036,7 @@ SELECT * FROM (
 		(street || ' ' || number || coalesce(' (' || subunit || ')', '') || ', '
 				|| urb || coalesce(' (' || suburb || ')', '') || ', '
 				|| postcode || ', '
-				|| l10n_state || ', '
+				|| l10n_region || ', '
 				|| l10n_country
 				|| coalesce(', ' || notes_street, '')
 				|| coalesce(', ' || notes_subunit, '')
@@ -1058,7 +1058,7 @@ SELECT * FROM (
 		(street || ' ' || number || coalesce(' (' || subunit || ')', '') || ', '
 				|| urb || coalesce(' (' || suburb || ')', '') || ', '
 				|| postcode || ', '
-				|| l10n_state || ', '
+				|| l10n_region || ', '
 				|| l10n_country
 				|| coalesce(', ' || notes_street, '')
 				|| coalesce(', ' || notes_subunit, '')
@@ -1088,7 +1088,7 @@ LIMIT 50"""
 		(street || ' ' || number || coalesce(' (' || subunit || ')', '') || ', '
 				|| urb || coalesce(' (' || suburb || ')', '') || ', '
 				|| postcode || ', '
-				|| l10n_state || ', '
+				|| l10n_region || ', '
 				|| l10n_country
 				|| coalesce(', ' || notes_street, '')
 				|| coalesce(', ' || notes_subunit, '')
@@ -1219,7 +1219,7 @@ if __name__ == '__main__':
 		app.frame.Show(True)
 		app.MainLoop()
 	#--------------------------------------------------------
-	def test_state_prw():
+	def test_region_prw():
 		app = wx.PyWidgetTester(size = (200, 50))
 		pw = cStateSelectionPhraseWheel(app.frame, -1)
 		pw.set_context(context = u'zip', val = u'04318')
@@ -1272,7 +1272,7 @@ if __name__ == '__main__':
 	#--------------------------------------------------------
 	#test_address_type_prw()
 	#test_zipcode_prw()
-	#test_state_prw()
+	#test_region_prw()
 	#test_street_prw()
 	#test_suburb_prw()
 	#test_country_prw()
diff --git a/client/wxpython/gmAutoHintWidgets.py b/client/wxpython/gmAutoHintWidgets.py
index 042dfb8..0271fb1 100644
--- a/client/wxpython/gmAutoHintWidgets.py
+++ b/client/wxpython/gmAutoHintWidgets.py
@@ -19,7 +19,7 @@ from Gnumed.pycommon import gmDateTime
 from Gnumed.pycommon import gmNetworkTools
 
 from Gnumed.business import gmPerson
-from Gnumed.business import gmProviderInbox
+from Gnumed.business import gmAutoHints
 
 from Gnumed.wxpython import gmListWidgets
 from Gnumed.wxpython import gmAuthWidgets
@@ -71,7 +71,7 @@ def _display_clinical_reminders():
 	# dynamic hints
 	hint_dlg = cDynamicHintDlg(wx.GetApp().GetTopWindow(), -1)
 	for hint in pat._get_dynamic_hints(include_suppressed_needing_invalidation = True):
-		if hint['rationale4suppression'] == u'please_invalidate_suppression':
+		if hint['rationale4suppression'] == u'magic_tag::please_invalidate_suppression':
 			_log.debug('database asks for invalidation of suppression of hint [%s]', hint)
 			hint.invalidate_suppression(pk_encounter = pat.emr.current_encounter['pk_encounter'])
 			continue
@@ -135,13 +135,13 @@ def manage_dynamic_hints(parent=None):
 		conn = gmAuthWidgets.get_dbowner_connection(procedure = _('deleting a dynamic hint'))
 		if conn is None:
 			return False
-		gmProviderInbox.delete_dynamic_hint(link_obj = conn, pk_hint = hint['pk_auto_hint'])
+		gmAutoHints.delete_dynamic_hint(link_obj = conn, pk_hint = hint['pk_auto_hint'])
 		conn.commit()
 		conn.close()
 		return True
 	#------------------------------------------------------------
 	def refresh(lctrl):
-		hints = gmProviderInbox.get_dynamic_hints(order_by = u'is_active DESC, source, hint')
+		hints = gmAutoHints.get_dynamic_hints(order_by = u'is_active DESC, source, hint')
 		items = [ [
 			gmTools.bool2subst(h['is_active'], gmTools.u_checkmark_thin, u''),
 			h['title'],
@@ -223,7 +223,10 @@ class cDynamicHintDlg(wxgDynamicHintDlg.wxgDynamicHintDlg):
 			self._TCTRL_previous_rationale.Hide()
 		else:
 			self._TCTRL_title.SetValue(self.__hint['title'])
-			self._TCTRL_hint.SetValue(self.__hint['hint'])
+			self._TCTRL_hint.SetValue(u'%s%s' % (
+				self.__hint['hint'],
+				gmTools.coalesce(self.__hint['recommendation'], u'', u'\n\n%s')
+			))
 			if self.__hint['url'] is None:
 				self._URL_info.SetURL(u'')
 				self._URL_info.Disable()
@@ -342,7 +345,7 @@ class cAutoHintEAPnl(wxgAutoHintEAPnl.wxgAutoHintEAPnl, gmEditArea.cGenericEditA
 			return False
 
 		curs = conn.cursor()
-		data = gmProviderInbox.create_dynamic_hint (
+		data = gmAutoHints.create_dynamic_hint (
 			link_obj = curs,		# it seems this MUST be a cursor or else the successfully created row will not show up -- but why ?!?
 			query = self._TCTRL_query.GetValue().strip(),
 			title = self._TCTRL_title.GetValue().strip(),
@@ -443,11 +446,11 @@ def manage_suppressed_hints(parent=None, pk_identity=None):
 		)
 		if not really_delete:
 			return False
-		gmProviderInbox.delete_suppressed_hint(pk_suppressed_hint = hint['pk_suppressed_hint'])
+		gmAutoHints.delete_suppressed_hint(pk_suppressed_hint = hint['pk_suppressed_hint'])
 		return True
 	#------------------------------------------------------------
 	def refresh(lctrl):
-		hints = gmProviderInbox.get_suppressed_hints(pk_identity = pk_identity, order_by = u'title')
+		hints = gmAutoHints.get_suppressed_hints(pk_identity = pk_identity, order_by = u'title')
 		items = [ [
 			h['title'],
 			gmDateTime.pydt_strftime(h['suppressed_when'], '%Y %b %d'),
diff --git a/client/wxpython/gmBillingWidgets.py b/client/wxpython/gmBillingWidgets.py
index 52ea805..473b7a2 100644
--- a/client/wxpython/gmBillingWidgets.py
+++ b/client/wxpython/gmBillingWidgets.py
@@ -494,6 +494,7 @@ def create_bill_from_items(bill_items=None):
 	bill.set_missing_address_from_default()
 
 	return bill
+
 #----------------------------------------------------------------
 def create_invoice_from_bill(parent = None, bill=None, print_it=False, keep_a_copy=True):
 
@@ -623,6 +624,7 @@ def create_invoice_from_bill(parent = None, bill=None, print_it=False, keep_a_co
 			reference = bill['invoice_id']
 		)
 		bill['pk_doc'] = doc['pk_doc']
+		bill['pk_org_unit'] = gmPraxis.gmCurrentPraxisBranch()['pk_org_unit']
 		bill.save()
 
 	if not print_it:
@@ -799,6 +801,7 @@ def remove_items_from_bill(parent=None, bill=None):
 		gmBilling.delete_bill(pk_bill = bill['pk_bill'])
 
 	return True
+
 #----------------------------------------------------------------
 def manage_bills(parent=None, patient=None):
 
@@ -1000,7 +1003,7 @@ class cBillEAPnl(wxgBillEAPnl.wxgBillEAPnl, gmEditArea.cGenericEditAreaMixin):
 		if self.data['apply_vat'] is True:
 			tmp = u'%s %%(currency)s%%(total_vat)s %s %s %%(currency)s%%(total_amount_with_vat)s' % (
 				gmTools.u_corresponds_to,
-				gmTools.u_right_arrow,
+				gmTools.u_arrow2right,
 				gmTools.u_sum,
 			)
 			self._TCTRL_value_with_vat.SetValue(tmp % self.data)
@@ -1019,7 +1022,7 @@ class cBillEAPnl(wxgBillEAPnl.wxgBillEAPnl, gmEditArea.cGenericEditAreaMixin):
 		if self._CHBOX_vat_applies.ThreeStateValue == wx.CHK_CHECKED:
 			tmp = u'%s %%(currency)s%%(total_vat)s %s %s %%(currency)s%%(total_amount_with_vat)s' % (
 				gmTools.u_corresponds_to,
-				gmTools.u_right_arrow,
+				gmTools.u_arrow2right,
 				gmTools.u_sum,
 			)
 			self._TCTRL_value_with_vat.SetValue(tmp % self.data)
@@ -1032,7 +1035,7 @@ class cBillEAPnl(wxgBillEAPnl.wxgBillEAPnl, gmEditArea.cGenericEditAreaMixin):
 	def _on_select_address_button_pressed(self, event):
 		adr = gmPersonContactWidgets.select_address (
 			missing = _('billing'),
-			person = gmPerson.cIdentity(aPK_obj = self.data['pk_patient'])
+			person = gmPerson.cPerson(aPK_obj = self.data['pk_patient'])
 		)
 		if adr is None:
 			gmGuiHelpers.gm_show_info (
@@ -1139,10 +1142,10 @@ class cPersonBillItemsManagerPnl(gmListWidgets.cGenericListManagerPnl):
 
 		gmListWidgets.cGenericListManagerPnl.__init__(self, *args, **kwargs)
 
+		self.refresh_callback = self.refresh
 		self.new_callback = self._add_item
 		self.edit_callback = self._edit_item
 		self.delete_callback = self._del_item
-		self.refresh_callback = self.refresh
 
 		self.__show_non_invoiced_only = True
 
@@ -1571,6 +1574,5 @@ if __name__ == '__main__':
 
 	#----------------------------------------
 	app = wx.PyWidgetTester(size = (600, 600))
-	#app.SetWidget(cATCPhraseWheel, -1)
-	#app.SetWidget(cSubstancePhraseWheel, -1)
+	#app.SetWidget(cXxxPhraseWheel, -1)
 	app.MainLoop()
diff --git a/client/wxpython/gmChartPullingWidgets.py b/client/wxpython/gmChartPullingWidgets.py
index 03d1697..3e2389a 100644
--- a/client/wxpython/gmChartPullingWidgets.py
+++ b/client/wxpython/gmChartPullingWidgets.py
@@ -89,7 +89,7 @@ def _get_fairly_recent_encounter(pk_identity):
 	encounter = gmEMRStructItems.cEncounter(aPK_obj = rows[0][0])
 	cmd = u"""
 		SELECT title, firstnames, lastnames, gender, dob
-		FROM dem.v_basic_person WHERE pk_identity = %(pat)s"""
+		FROM dem.v_active_persons WHERE pk_identity = %(pat)s"""
 	pats, idx = gmPG2.run_ro_queries(queries = [{'cmd': cmd, 'args': args}])
 	pat = pats[0]
 	pat_str = u'%s %s %s (%s), %s  [#%s]' % (
diff --git a/client/wxpython/gmContactWidgets.py b/client/wxpython/gmContactWidgets.py
index 97fb0f6..54130ad 100644
--- a/client/wxpython/gmContactWidgets.py
+++ b/client/wxpython/gmContactWidgets.py
@@ -224,10 +224,10 @@ class cCommChannelsManagerPnl(gmListWidgets.cGenericListManagerPnl):
 
 		gmListWidgets.cGenericListManagerPnl.__init__(self, *args, **kwargs)
 
+		self.refresh_callback = self.refresh
 		self.new_callback = self._add_comm
 		self.edit_callback = self._edit_comm
 		self.delete_callback = self._del_comm
-		self.refresh_callback = self.refresh
 
 		self.__init_ui()
 		self.refresh()
diff --git a/client/wxpython/gmDataMiningWidgets.py b/client/wxpython/gmDataMiningWidgets.py
index dc16428..aa00a71 100644
--- a/client/wxpython/gmDataMiningWidgets.py
+++ b/client/wxpython/gmDataMiningWidgets.py
@@ -10,7 +10,7 @@ import sys
 import os
 import fileinput
 import logging
-import codecs
+import io
 import csv
 
 
@@ -28,6 +28,7 @@ from Gnumed.pycommon import gmPG2
 from Gnumed.pycommon import gmMatchProvider
 from Gnumed.pycommon import gmI18N
 from Gnumed.pycommon import gmNetworkTools
+from Gnumed.pycommon.gmExceptions import ConstructorError
 
 from Gnumed.business import gmPerson
 from Gnumed.business import gmDataMining
@@ -79,19 +80,19 @@ class cPatientListingCtrl(gmListWidgets.cReportListCtrl):
 
 		_log.debug('identifier column not configured, trying to detect')
 
-		if data.has_key('pk_patient'):
+		if u'pk_patient' in data:
 			return u'pk_patient'
 
-		if data.has_key('fk_patient'):
+		if u'fk_patient' in data:
 			return u'fk_patient'
 
-		if data.has_key('pk_identity'):
+		if u'pk_identity' in data:
 			return u'pk_identity'
 
-		if data.has_key('fk_identity'):
+		if u'fk_identity' in data:
 			return u'fk_identity'
 
-		if data.has_key('id_identity'):
+		if u'id_identity' in data:
 			return u'id_identity'
 
 		return gmListWidgets.get_choices_from_list (
@@ -125,7 +126,7 @@ class cPatientListingCtrl(gmListWidgets.cReportListCtrl):
 		pat_data = data[pk_pat_col]
 		try:
 			pat_pk = int(pat_data)
-			pat = gmPerson.cIdentity(aPK_obj = pat_pk)
+			pat = gmPerson.cPerson(aPK_obj = pat_pk)
 		except (ValueError, TypeError):
 			searcher = gmPersonSearch.cPatientSearcher_SQL()
 			idents = searcher.get_identities(pat_data)
@@ -144,6 +145,9 @@ class cPatientListingCtrl(gmListWidgets.cReportListCtrl):
 					return
 				pat = dlg.get_selected_person()
 				dlg.Destroy()
+		except ConstructorError:
+			gmDispatcher.send(signal = 'statustext', msg = _('No matching patient found.'))
+			return
 
 		from Gnumed.wxpython import gmPatSearchWidgets
 		gmPatSearchWidgets.set_active_patient(patient = pat)
@@ -410,7 +414,7 @@ class cDataMiningPnl(wxgDataMiningPnl.wxgDataMiningPnl):
 		gp.ylabel(y_col)
 		try:
 			gp.plot([ [r[x_col], r[y_col]] for r in self.query_results ])
-		except StandardError:
+		except Exception:
 			_log.exception('unable to plot results from [%s:%s]' % (x_col, y_col))
 			gmDispatcher.send(signal = 'statustext', msg = _('Error plotting data.'), beep = True)
 
@@ -447,7 +451,7 @@ class cDataMiningPnl(wxgDataMiningPnl.wxgDataMiningPnl):
 
 		comment = self._PRW_report_name.GetValue().strip()
 		for item in data:
-			pat = gmPerson.cIdentity(aPK_obj = item[pat_pk_key])
+			pat = gmPerson.cPerson(aPK_obj = item[pat_pk_key])
 			pat.put_on_waiting_list (comment = comment, zone = zone)
 
 	#--------------------------------------------------------
@@ -488,7 +492,7 @@ class cDataMiningPnl(wxgDataMiningPnl.wxgDataMiningPnl):
 		if choice != wx.ID_OK:
 			return
 
-		csv_file = codecs.open(csv_name, 'w', 'utf8')
+		csv_file = io.open(csv_name, mode = 'wt', encoding = 'utf8')
 		csv_file.write(u'#-------------------------------------------------------------------------------------\n')
 		csv_file.write(u'# GNUmed SQL report results\n')
 		csv_file.write(u'#\n')
diff --git a/client/wxpython/gmDateTimeInput.py b/client/wxpython/gmDateTimeInput.py
index 1a337a6..183c59b 100644
--- a/client/wxpython/gmDateTimeInput.py
+++ b/client/wxpython/gmDateTimeInput.py
@@ -6,7 +6,6 @@ this module.
 @copyright: author(s)
 """
 #==============================================================================
-__version__ = "$Revision: 1.66 $"
 __author__  = "K. Hilbert <Karsten.Hilbert at gmx.net>"
 __licence__ = "GPL v2 or later (details at http://www.gnu.org)"
 
@@ -70,6 +69,7 @@ _log = logging.getLogger('gm.ui')
 #	def getAllMatches(self):
 #		matches = (False, [])
 #		return matches
+
 #============================================================
 class cIntervalPhraseWheel(gmPhraseWheel.cPhraseWheel):
 
@@ -159,6 +159,7 @@ class cIntervalPhraseWheel(gmPhraseWheel.cPhraseWheel):
 			self._set_data_to_first_match()
 
 		return super(cIntervalPhraseWheel, self).GetData()
+
 #============================================================
 class cCalendarDatePickerDlg(wx.Dialog):
 	"""Shows a calendar control from which the user can pick a date."""
@@ -304,6 +305,7 @@ class cDateMatchProvider(gmMatchProvider.cMatchProvider):
 #		dlg.Destroy()
 #
 #		return matches
+
 #============================================================
 class cDateInputPhraseWheel(gmPhraseWheel.cPhraseWheel):
 
@@ -470,7 +472,7 @@ class cDateInputPhraseWheel(gmPhraseWheel.cPhraseWheel):
 			return False
 
 		date = self.GetData()
-		self.SetValue(gmDateTime.pydt_strftime(date, format = '%Y-%m-%d', accuracy = gmDateTime.acc_days))
+		self.SetValue(gmDateTime.pydt_strftime(date, format = '%Y-%m-%d', accuracy = gmDateTime.acc_days))#, none_str = u'')
 		self.display_as_valid(True)
 		return True
 	#--------------------------------------------------------
@@ -490,6 +492,7 @@ class cDateInputPhraseWheel(gmPhraseWheel.cPhraseWheel):
 #		)
 
 	date = property(_get_date, _set_date)
+
 #============================================================
 class cMatchProvider_FuzzyTimestamp(gmMatchProvider.cMatchProvider):
 	def __init__(self):
@@ -542,6 +545,7 @@ class cMatchProvider_FuzzyTimestamp(gmMatchProvider.cMatchProvider):
 	def getAllMatches(self):
 		"""Return all items."""
 		return (False, [])
+
 #==================================================
 class cFuzzyTimestampInput(gmPhraseWheel.cPhraseWheel):
 
diff --git a/client/wxpython/gmDemographicsWidgets.py b/client/wxpython/gmDemographicsWidgets.py
index 9a31ebb..50310f8 100644
--- a/client/wxpython/gmDemographicsWidgets.py
+++ b/client/wxpython/gmDemographicsWidgets.py
@@ -6,7 +6,7 @@ __license__ = 'GPL v2 or later (details at http://www.gnu.org)'
 # standard library
 import sys
 import sys
-import codecs
+import io
 import re as regex
 import logging
 import os
@@ -174,7 +174,7 @@ class cTagImageEAPnl(wxgTagImageEAPnl.wxgTagImageEAPnl, gmEditArea.cGenericEditA
 		if self.__selected_image_file is not None:
 			try:
 				open(self.__selected_image_file).close()
-			except StandardError:
+			except Exception:
 				valid = False
 				self.__selected_image_file = None
 				gmDispatcher.send(signal = 'statustext', msg = _('Cannot open the image file [%s].') % self.__selected_image_file, beep = True)
@@ -402,6 +402,7 @@ class cImageTagPresenterPnl(wxgVisualSoapPresenterPnl.wxgVisualSoapPresenterPnl)
 		self.__current_tag = evt.GetEventObject().tag
 		self.PopupMenu(self.__context_popup, pos = wx.DefaultPosition)
 		self.__current_tag = None
+
 #============================================================
 #============================================================
 class cKOrganizerSchedulePnl(gmDataMiningWidgets.cPatientListingPnl):
@@ -441,7 +442,7 @@ class cKOrganizerSchedulePnl(gmDataMiningWidgets.cPatientListingPnl):
 		except OSError: pass
 		gmShellAPI.run_command_in_shell(command=self.reload_cmd, blocking=True)
 		try:
-			csv_file = codecs.open(self.fname , mode = 'rU', encoding = 'utf8', errors = 'replace')
+			csv_file = io.open(self.fname , mode = 'rt', encoding = 'utf8', errors = 'replace')
 		except IOError:
 			gmDispatcher.send(signal = u'statustext', msg = _('Cannot access KOrganizer transfer file [%s]') % self.fname, beep = True)
 			return
@@ -474,6 +475,7 @@ class cKOrganizerSchedulePnl(gmDataMiningWidgets.cPatientListingPnl):
 	#--------------------------------------------------------
 	def repopulate_ui(self):
 		self.reload_appointments()
+
 #============================================================
 # occupation related widgets / functions
 #============================================================
@@ -536,6 +538,21 @@ def document_death_of_patient(identity=None):
 
 #------------------------------------------------------------
 def disable_identity(identity=None):
+
+	# already disabled ?
+	if identity['is_deleted']:
+		_log.debug('identity already deleted: %s', identity)
+		return True
+
+	# logged in staff ?
+	# if so -> return
+	prov = gmStaff.gmCurrentProvider()
+	if prov['pk_identity'] == identity['pk_identity']:
+		_log.warning('identity cannot delete itself while being logged on as staff member')
+		_log.debug('identity to delete: %s', identity)
+		_log.debug('logged on staff: %s', prov)
+		return False
+
 	# ask user for assurance
 	go_ahead = gmGuiHelpers.gm_show_question (
 		_('Are you sure you really, positively want\n'
@@ -552,28 +569,32 @@ def disable_identity(identity=None):
 			identity.get_formatted_dob(),
 			gmTools.bool2subst (
 				identity.is_patient,
-				_('This patient DID receive care.'),
-				_('This person did NOT receive care.')
+				_('This patient DID receive care here.'),
+				_('This person did NOT receive care here.')
 			)
 		),
 		_('Disabling person')
 	)
 	if not go_ahead:
-		return True
+		return False
 
 	# get admin connection
 	conn = gmAuthWidgets.get_dbowner_connection (
-		procedure = _('Disabling patient')
+		procedure = _('Disabling person')
 	)
 	# - user cancelled
 	if conn is False:
-		return True
+		return False
 	# - error
 	if conn is None:
-		return False
+		return None
+
+	# disable patient
+	gmPerson.disable_identity(identity['pk_identity'])
 
-	# now disable patient
-	gmPG2.run_rw_queries(queries = [{'cmd': u"update dem.identity set deleted=True where pk=%s", 'args': [identity['pk_identity']]}])
+	# change active patient to logged on staff = myself
+	from Gnumed.wxpython.gmPatSearchWidgets import set_active_patient
+	wx.CallAfter(set_active_patient, patient = prov.identity)
 
 	return True
 
@@ -1054,7 +1075,7 @@ class cPersonNameEAPnl(wxgPersonNameEAPnl.wxgPersonNameEAPnl, gmEditArea.cGeneri
 
 		try:
 			data = kwargs['name']
-			identity = gmPerson.cIdentity(aPK_obj = data['pk_identity'])
+			identity = gmPerson.cPerson(aPK_obj = data['pk_identity'])
 			del kwargs['name']
 		except KeyError:
 			data = None
@@ -1215,10 +1236,10 @@ class cPersonNamesManagerPnl(gmListWidgets.cGenericListManagerPnl):
 
 		gmListWidgets.cGenericListManagerPnl.__init__(self, *args, **kwargs)
 
+		self.refresh_callback = self.refresh
 		self.new_callback = self._add_name
 		self.edit_callback = self._edit_name
 		self.delete_callback = self._del_name
-		self.refresh_callback = self.refresh
 
 		self.__init_ui()
 		self.refresh()
@@ -1330,10 +1351,10 @@ class cPersonIDsManagerPnl(gmListWidgets.cGenericListManagerPnl):
 
 		gmListWidgets.cGenericListManagerPnl.__init__(self, *args, **kwargs)
 
+		self.refresh_callback = self.refresh
 		self.new_callback = self._add_id
 		self.edit_callback = self._edit_id
 		self.delete_callback = self._del_id
-		self.refresh_callback = self.refresh
 
 		self.__init_ui()
 		self.refresh()
@@ -1494,7 +1515,7 @@ class cPersonSocialNetworkManagerPnl(wxgPersonSocialNetworkManagerPnl.wxgPersonS
 
 		self._TCTRL_er_contact.SetValue(gmTools.coalesce(self.__identity['emergency_contact'], u''))
 		if self.__identity['pk_emergency_contact'] is not None:
-			ident = gmPerson.cIdentity(aPK_obj = self.__identity['pk_emergency_contact'])
+			ident = gmPerson.cPerson(aPK_obj = self.__identity['pk_emergency_contact'])
 			self._TCTRL_person.person = ident
 			tt = u'%s\n\n%s\n\n%s' % (
 				tt,
@@ -1565,8 +1586,8 @@ class cPersonSocialNetworkManagerPnl(wxgPersonSocialNetworkManagerPnl.wxgPersonS
 	def _on_button_activate_contact_pressed(self, event):
 		ident = self._TCTRL_person.person
 		if ident is not None:
-			from Gnumed.wxpython import gmPatSearchWidgets
-			gmPatSearchWidgets.set_active_patient(patient = ident, forced_reload = False)
+			from Gnumed.wxpython.gmPatSearchWidgets import set_active_patient
+			wx.CallAfter(set_active_patient, patient = ident)
 
 		event.Skip()
 
@@ -1648,6 +1669,7 @@ class cPersonDemographicsEditorNb(wx.Notebook):
 		self.__identity = identity
 
 	identity = property(_get_identity, _set_identity)
+
 #============================================================
 # old occupation widgets
 #============================================================
@@ -1715,6 +1737,7 @@ class cPatOccupationsPanel(wx.Panel):
 				self.__ident.unlink_occupation(occupation = job['l10n_occupation'])
 			self.__ident.link_occupation(occupation = new_job)
 		return True
+
 #============================================================
 class cNotebookedPatEditionPanel(wx.Panel, gmRegetMixin.cRegetOnPaintMixin):
 	"""Patient demographics plugin for main notebook.
@@ -1767,6 +1790,7 @@ class cNotebookedPatEditionPanel(wx.Panel, gmRegetMixin.cRegetOnPaintMixin):
 			self.__patient_notebook.identity = None
 		self.__patient_notebook.refresh()
 		return True
+
 #============================================================
 #============================================================
 if __name__ == "__main__":
@@ -1816,8 +1840,8 @@ if __name__ == "__main__":
 		if patient is None:
 			print "No patient. Exiting gracefully..."
 			sys.exit(0)
-		from Gnumed.wxpython import gmPatSearchWidgets
-		gmPatSearchWidgets.set_active_patient(patient=patient)
+		from Gnumed.wxpython.gmPatSearchWidgets import set_active_patient
+		set_active_patient(patient = patient)
 		return patient
 	#--------------------------------------------------------
 	if len(sys.argv) > 1 and sys.argv[1] == 'test':
diff --git a/client/wxpython/gmDocumentWidgets.py b/client/wxpython/gmDocumentWidgets.py
index 05e996e..bfe9886 100644
--- a/client/wxpython/gmDocumentWidgets.py
+++ b/client/wxpython/gmDocumentWidgets.py
@@ -26,12 +26,14 @@ from Gnumed.pycommon import gmDateTime
 from Gnumed.pycommon import gmTools
 from Gnumed.pycommon import gmShellAPI
 from Gnumed.pycommon import gmHooks
+from Gnumed.pycommon import gmNetworkTools
 
 from Gnumed.business import gmPerson
 from Gnumed.business import gmStaff
 from Gnumed.business import gmDocuments
 from Gnumed.business import gmEMRStructItems
 from Gnumed.business import gmPraxis
+from Gnumed.business import gmDICOM
 
 from Gnumed.wxpython import gmGuiHelpers
 from Gnumed.wxpython import gmRegetMixin
@@ -40,6 +42,7 @@ from Gnumed.wxpython import gmPlugin
 from Gnumed.wxpython import gmEMRStructWidgets
 from Gnumed.wxpython import gmEncounterWidgets
 from Gnumed.wxpython import gmListWidgets
+from Gnumed.wxpython import gmRegetMixin
 
 
 _log = logging.getLogger('gm.ui')
@@ -116,6 +119,7 @@ def manage_document_descriptions(parent=None, document=None):
 	)
 
 	return True
+
 #============================================================
 def _save_file_as_new_document(**kwargs):
 	try:
@@ -133,17 +137,19 @@ def _save_files_as_new_document(**kwargs):
 		pass
 	wx.CallAfter(save_files_as_new_document, **kwargs)
 #----------------------
-def save_file_as_new_document(parent=None, filename=None, document_type=None, unlock_patient=False, episode=None, review_as_normal=False):
+def save_file_as_new_document(parent=None, filename=None, document_type=None, unlock_patient=False, episode=None, review_as_normal=False, pk_org_unit=None):
 	return save_files_as_new_document (
 		parent = parent,
 		filenames = [filename],
 		document_type = document_type,
 		unlock_patient = unlock_patient,
 		episode = episode,
-		review_as_normal = review_as_normal
+		review_as_normal = review_as_normal,
+		pk_org_unit = pk_org_unit
 	)
+
 #----------------------
-def save_files_as_new_document(parent=None, filenames=None, document_type=None, unlock_patient=False, episode=None, review_as_normal=False, reference=None):
+def save_files_as_new_document(parent=None, filenames=None, document_type=None, unlock_patient=False, episode=None, review_as_normal=False, reference=None, pk_org_unit=None, date_generated=None, comment=None, reviewer=None, pk_document_type=None):
 
 	pat = gmPerson.gmCurrentPatient()
 	if not pat.connected:
@@ -171,18 +177,44 @@ def save_files_as_new_document(parent=None, filenames=None, document_type=None,
 					pat.locked = False
 				return None
 
-	doc_type = gmDocuments.create_document_type(document_type = document_type)
+	wx.BeginBusyCursor()
+
+	if pk_document_type is None:
+		pk_document_type = gmDocuments.create_document_type(document_type = document_type)['pk_doc_type']
 
 	docs_folder = pat.get_document_folder()
 	doc = docs_folder.add_document (
-		document_type = doc_type['pk_doc_type'],
+		document_type = pk_document_type,
 		encounter = emr.active_encounter['pk_encounter'],
 		episode = episode['pk_episode']
 	)
+	if doc is None:
+		wx.EndBusyCursor()
+		gmGuiHelpers.gm_show_error (
+			aMessage = _('Cannot create new document.'),
+			aTitle = _('saving document')
+		)
+		return False
+
 	if reference is not None:
 		doc['ext_ref'] = reference
-		doc.save()
-	doc.add_parts_from_files(files = filenames)
+	if pk_org_unit is not None:
+		doc['pk_org_unit'] = gmPraxis.gmCurrentPraxisBranch()['pk_org_unit']
+	if date_generated is not None:
+		doc['clin_when'] = date_generated
+	if comment is not None:
+		if comment != u'':
+			doc['comment'] = comment
+	doc.save()
+
+	success, msg, filename = doc.add_parts_from_files(files = filenames, reviewer = reviewer)
+	if not success:
+		wx.EndBusyCursor()
+		gmGuiHelpers.gm_show_error (
+			aMessage = msg,
+			aTitle = _('saving document')
+		)
+		return False
 
 	if review_as_normal:
 		doc.set_reviewed(technically_abnormal = False, clinically_relevant = False)
@@ -192,7 +224,60 @@ def save_files_as_new_document(parent=None, filenames=None, document_type=None,
 
 	gmDispatcher.send(signal = 'statustext', msg = _('Imported new document from %s.') % filenames, beep = True)
 
+	# inform user
+	cfg = gmCfg.cCfgSQL()
+	show_id = bool (
+		cfg.get2 (
+			option = 'horstspace.scan_index.show_doc_id',
+			workplace = gmPraxis.gmCurrentPraxisBranch().active_workplace,
+			bias = 'user'
+		)
+	)
+
+	wx.EndBusyCursor()
+
+	if not show_id:
+		gmDispatcher.send(signal = 'statustext', msg = _('Successfully saved new document.'))
+	else:
+		if reference is None:
+			msg = _('Successfully saved the new document.')
+		else:
+			msg = _(u'The reference ID for the new document is:\n'
+					u'\n'
+					u' <%s>\n'
+					u'\n'
+					u'You probably want to write it down on the\n'
+					u'original documents.\n'
+					u'\n'
+					u"If you don't care about the ID you can switch\n"
+					u'off this message in the GNUmed configuration.\n'
+			) % reference
+		gmGuiHelpers.gm_show_info (
+			aMessage = msg,
+			aTitle = _('Saving document')
+		)
+
+	# remove non-temp files
+	tmp_dir = gmTools.gmPaths().tmp_dir
+	files2remove = [ f for f in filenames if not f.startswith(tmp_dir) ]
+	if len(files2remove) > 0:
+		do_delete = gmGuiHelpers.gm_show_question (
+			_(	u'Successfully imported files as document.\n'
+				u'\n'
+				u'Do you want to delete imported files from the filesystem ?\n'
+				u'\n'
+				u' %s\n'
+				u'\n'
+				u'Note that temporary files will be deleted anyway.'
+			) % u'\n '.join(files2remove),
+			_('Removing files')
+		)
+		if do_delete:
+			for fname in files2remove:
+				gmTools.remove_file(fname)
+
 	return doc
+
 #----------------------
 gmDispatcher.connect(signal = u'import_document_from_file', receiver = _save_file_as_new_document)
 gmDispatcher.connect(signal = u'import_document_from_files', receiver = _save_files_as_new_document)
@@ -774,10 +859,12 @@ def acquire_images_from_capture_device(device=None, calling_window=None):
 	_log.debug('acquired %s images', len(fnames))
 
 	return fnames
+
 #------------------------------------------------------------
 from Gnumed.wxGladeWidgets import wxgScanIdxPnl
 
 class cScanIdxDocsPnl(wxgScanIdxPnl.wxgScanIdxPnl, gmPlugin.cPatientChange_PluginMixin):
+
 	def __init__(self, *args, **kwds):
 		wxgScanIdxPnl.wxgScanIdxPnl.__init__(self, *args, **kwds)
 		gmPlugin.cPatientChange_PluginMixin.__init__(self)
@@ -790,21 +877,19 @@ class cScanIdxDocsPnl(wxgScanIdxPnl.wxgScanIdxPnl, gmPlugin.cPatientChange_Plugi
 		# make me and listctrl a file drop target
 		dt = gmGuiHelpers.cFileDropTarget(self)
 		self.SetDropTarget(dt)
-		dt = gmGuiHelpers.cFileDropTarget(self._LBOX_doc_pages)
-		self._LBOX_doc_pages.SetDropTarget(dt)
-		self._LBOX_doc_pages.add_filenames = self.add_filenames_to_listbox
+		dt = gmGuiHelpers.cFileDropTarget(self._LCTRL_doc_pages)
+		self._LCTRL_doc_pages.SetDropTarget(dt)
+		self._LCTRL_doc_pages.add_filenames = self._add_parts_from_dropped_path_or_files
 
 		# do not import globally since we might want to use
 		# this module without requiring any scanner to be available
 		from Gnumed.pycommon import gmScanBackend
 		self.scan_module = gmScanBackend
+
 	#--------------------------------------------------------
 	# file drop target API
 	#--------------------------------------------------------
-	def add_filenames_to_listbox(self, filenames):
-		self.add_filenames(filenames=filenames)
-	#--------------------------------------------------------
-	def add_filenames(self, filenames):
+	def _add_parts_from_dropped_path_or_files(self, filenames):
 		pat = gmPerson.gmCurrentPatient()
 		if not pat.connected:
 			gmDispatcher.send(signal='statustext', msg=_('Cannot accept new documents. No active patient.'))
@@ -815,29 +900,34 @@ class cScanIdxDocsPnl(wxgScanIdxPnl.wxgScanIdxPnl, gmPlugin.cPatientChange_Plugi
 		for pathname in filenames:
 			try:
 				files = os.listdir(pathname)
-				gmDispatcher.send(signal='statustext', msg=_('Extracting files from folder [%s] ...') % pathname)
+				source = _('directory dropped on client')
+				gmDispatcher.send(signal = 'statustext', msg = _('Extracting files from folder [%s] ...') % pathname)
 				for file in files:
 					fullname = os.path.join(pathname, file)
 					if not os.path.isfile(fullname):
 						continue
 					real_filenames.append(fullname)
 			except OSError:
+				source = _('file dropped on client')
 				real_filenames.append(pathname)
 
-		self.acquired_pages.extend(real_filenames)
-		self.__reload_LBOX_doc_pages()
+		self.add_parts_from_files(real_filenames, source)
+
 	#--------------------------------------------------------
 	def repopulate_ui(self):
 		pass
+
 	#--------------------------------------------------------
 	# patient change plugin API
 	#--------------------------------------------------------
 	def _pre_patient_unselection(self, **kwds):
 		# FIXME: persist pending data from here
 		pass
+
 	#--------------------------------------------------------
 	def _post_patient_selection(self, **kwds):
 		self.__init_ui_data()
+
 	#--------------------------------------------------------
 	# internal API
 	#--------------------------------------------------------
@@ -868,22 +958,27 @@ class cScanIdxDocsPnl(wxgScanIdxPnl.wxgScanIdxPnl, gmPlugin.cPatientChange_Plugi
 		self._TBOX_description.SetValue('')
 		# -----------------------------
 		# the list holding our page files
-		self._LBOX_doc_pages.Clear()
-		self.acquired_pages = []
+		self._LCTRL_doc_pages.remove_items_safely()
+		self._LCTRL_doc_pages.set_columns([_('file'), _('path')])
+		self._LCTRL_doc_pages.set_column_widths()
 
 		self._PhWheel_doc_type.SetFocus()
+
 	#--------------------------------------------------------
-	def __reload_LBOX_doc_pages(self):
-		self._LBOX_doc_pages.Clear()
-		if len(self.acquired_pages) > 0:
-			for i in range(len(self.acquired_pages)):
-				fname = self.acquired_pages[i]
-				self._LBOX_doc_pages.Append(_('part %s: %s') % (i+1, fname), fname)
+	def add_parts_from_files(self, filenames, source=u''):
+		rows = gmTools.coalesce(self._LCTRL_doc_pages.string_items, [])
+		data = gmTools.coalesce(self._LCTRL_doc_pages.data, [])
+		rows.extend([ [gmTools.fname_from_path(f), gmTools.fname_dir(f)] for f in filenames ])
+		data.extend([ [f, source] for f in filenames ])
+		self._LCTRL_doc_pages.string_items = rows
+		self._LCTRL_doc_pages.data = data
+		self._LCTRL_doc_pages.set_column_widths()
+
 	#--------------------------------------------------------
 	def __valid_for_save(self):
 		title = _('saving document')
 
-		if self.acquired_pages is None or len(self.acquired_pages) == 0:
+		if self._LCTRL_doc_pages.ItemCount == 0:
 			dbcfg = gmCfg.cCfgSQL()
 			allow_empty = bool(dbcfg.get2 (
 				option =  u'horstspace.scan_index.allow_partless_documents',
@@ -936,6 +1031,7 @@ class cScanIdxDocsPnl(wxgScanIdxPnl.wxgScanIdxPnl, gmPlugin.cPatientChange_Plugi
 			return False
 
 		return True
+
 	#--------------------------------------------------------
 	def get_device_to_use(self, reconfigure=False):
 
@@ -986,6 +1082,7 @@ class cScanIdxDocsPnl(wxgScanIdxPnl.wxgScanIdxPnl, gmPlugin.cPatientChange_Plugi
 
 		# FIXME: add support for actually reconfiguring
 		return device[0]
+
 	#--------------------------------------------------------
 	# event handling API
 	#--------------------------------------------------------
@@ -1018,10 +1115,9 @@ class cScanIdxDocsPnl(wxgScanIdxPnl.wxgScanIdxPnl, gmPlugin.cPatientChange_Plugi
 		if len(fnames) == 0:		# no pages scanned
 			return True
 
-		self.acquired_pages.extend(fnames)
-		self.__reload_LBOX_doc_pages()
-
+		self.add_parts_from_files(fnames, _('captured by imaging device'))
 		return True
+
 	#--------------------------------------------------------
 	def _load_btn_pressed(self, evt):
 		# patient file chooser
@@ -1034,12 +1130,13 @@ class cScanIdxDocsPnl(wxgScanIdxPnl.wxgScanIdxPnl, gmPlugin.cPatientChange_Plugi
 			style = wx.OPEN | wx.FILE_MUST_EXIST | wx.MULTIPLE
 		)
 		result = dlg.ShowModal()
-		if result != wx.ID_CANCEL:
-			files = dlg.GetPaths()
-			for file in files:
-				self.acquired_pages.append(file)
-			self.__reload_LBOX_doc_pages()
-		dlg.Destroy()
+		files = dlg.GetPaths()
+		if result == wx.ID_CANCEL:
+			dlg.Destroy()
+			return
+
+		self.add_parts_from_files(files, _('picked from storage media'))
+
 	#--------------------------------------------------------
 	def _clipboard_btn_pressed(self, event):
 		event.Skip()
@@ -1048,105 +1145,57 @@ class cScanIdxDocsPnl(wxgScanIdxPnl.wxgScanIdxPnl, gmPlugin.cPatientChange_Plugi
 			return
 		if clip is False:
 			return
-		self.acquired_pages.append(clip)
-		self.__reload_LBOX_doc_pages()
+		self.add_parts_from_files([clip], _('pasted from clipboard'))
+
 	#--------------------------------------------------------
 	def _show_btn_pressed(self, evt):
-		# did user select a page ?
-		page_idx = self._LBOX_doc_pages.GetSelection()
-		if page_idx == -1:
-			gmGuiHelpers.gm_show_info (
-				aMessage = _('You must select a part before you can view it.'),
-				aTitle = _('displaying part')
-			)
-			return None
-		# now, which file was that again ?
-		page_fname = self._LBOX_doc_pages.GetClientData(page_idx)
 
-		(result, msg) = gmMimeLib.call_viewer_on_file(page_fname)
-		if not result:
-			gmGuiHelpers.gm_show_warning (
-				aMessage = _('Cannot display document part:\n%s') % msg,
-				aTitle = _('displaying part')
-			)
-			return None
-		return 1
+		# nothing to do
+		if self._LCTRL_doc_pages.ItemCount == 0:
+			return
+
+		# only one page, show that, regardless of whether selected or not
+		if self._LCTRL_doc_pages.ItemCount == 1:
+			page_fnames = [ self._LCTRL_doc_pages.get_item_data(0) ]
+		else:
+			# did user select one of multiple pages ?
+			page_fnames = self._LCTRL_doc_pages.get_selected_item_data()
+			if len(page_fnames) == 0:
+				gmDispatcher.send(signal = 'statustext', msg = _('No part selected for viewing.'), beep = True)
+				return
+
+		for page_fname in page_fnames:
+			(success, msg) = gmMimeLib.call_viewer_on_file(page_fname)
+			if not success:
+				gmGuiHelpers.gm_show_warning (
+					aMessage = _('Cannot display document part:\n%s') % msg,
+					aTitle = _('displaying part')
+				)
+
 	#--------------------------------------------------------
 	def _del_btn_pressed(self, event):
-		page_idx = self._LBOX_doc_pages.GetSelection()
-		if page_idx == -1:
-			gmGuiHelpers.gm_show_info (
-				aMessage = _('You must select a part before you can delete it.'),
-				aTitle = _('deleting part')
-			)
-			return None
-		page_fname = self._LBOX_doc_pages.GetClientData(page_idx)
 
-		# 1) del item from self.acquired_pages
-		self.acquired_pages[page_idx:(page_idx+1)] = []
+		if len(self._LCTRL_doc_pages.selected_items) == 0:
+			gmDispatcher.send(signal = 'statustext', msg = _('No part selected for removal.'), beep = True)
+			return
 
-		# 2) reload list box
-		self.__reload_LBOX_doc_pages()
+		sel_idx = self._LCTRL_doc_pages.GetFirstSelected()
+		rows = self._LCTRL_doc_pages.string_items
+		data = self._LCTRL_doc_pages.data
+		del rows[sel_idx]
+		del data[sel_idx]
+		self._LCTRL_doc_pages.string_items = rows
+		self._LCTRL_doc_pages.data = data
+		self._LCTRL_doc_pages.set_column_widths()
+		self._TCTRL_metadata.SetValue(u'')
 
-		# 3) optionally kill file in the file system
-		do_delete = gmGuiHelpers.gm_show_question (
-			_('The part has successfully been removed from the document.\n'
-			  '\n'
-			  'Do you also want to permanently delete the file\n'
-			  '\n'
-			  ' [%s]\n'
-			  '\n'
-			  'from which this document part was loaded ?\n'
-			  '\n'
-			  'If it is a temporary file for a page you just scanned\n'
-			  'this makes a lot of sense. In other cases you may not\n'
-			  'want to lose the file.\n'
-			  '\n'
-			  'Pressing [YES] will permanently remove the file\n'
-			  'from your computer.\n'
-			) % page_fname,
-			_('Removing document part')
-		)
-		if do_delete:
-			try:
-				os.remove(page_fname)
-			except:
-				_log.exception('Error deleting file.')
-				gmGuiHelpers.gm_show_error (
-					aMessage = _('Cannot delete part in file [%s].\n\nYou may not have write access to it.') % page_fname,
-					aTitle = _('deleting part')
-				)
-
-		return 1
 	#--------------------------------------------------------
 	def _save_btn_pressed(self, evt):
 
 		if not self.__valid_for_save():
 			return False
 
-		wx.BeginBusyCursor()
-
-		pat = gmPerson.gmCurrentPatient()
-		doc_folder = pat.get_document_folder()
-		emr = pat.get_emr()
-
-		# create new document
-		pk_episode = self._PhWheel_episode.GetData(can_create = True, is_open = True)
-		encounter = emr.active_encounter['pk_encounter']
-		document_type = self._PhWheel_doc_type.GetData()
-		new_doc = doc_folder.add_document(document_type, encounter, pk_episode)
-		if new_doc is None:
-			wx.EndBusyCursor()
-			gmGuiHelpers.gm_show_error (
-				aMessage = _('Cannot create new document.'),
-				aTitle = _('saving document')
-			)
-			return False
-
-		# update business object with metadata
-		# - date of generation
-		new_doc['clin_when'] = self._PhWheel_doc_date.GetData().get_pydt()
-		# - external reference
+		# external reference
 		cfg = gmCfg.cCfgSQL()
 		generate_uuid = bool (
 			cfg.get2 (
@@ -1156,26 +1205,32 @@ class cScanIdxDocsPnl(wxgScanIdxPnl.wxgScanIdxPnl, gmPlugin.cPatientChange_Plugi
 				default = False
 			)
 		)
-		ref = None
 		if generate_uuid:
-			ref = gmDocuments.get_ext_ref()
-		if ref is not None:
-			new_doc['ext_ref'] = ref
-		# - comment
-		comment = self._PRW_doc_comment.GetLineText(0).strip()
-		if comment != u'':
-			new_doc['comment'] = comment
-		# - save it
-		if not new_doc.save_payload():
-			wx.EndBusyCursor()
-			gmGuiHelpers.gm_show_error (
-				aMessage = _('Cannot update document metadata.'),
-				aTitle = _('saving document')
-			)
+			ext_ref = gmDocuments.get_ext_ref()
+		else:
+			ext_ref = None
+
+		# create document
+		new_doc = save_files_as_new_document (
+			parent = self,
+			filenames = self._LCTRL_doc_pages.data,
+			document_type = self._PhWheel_doc_type.GetValue().strip(),
+			pk_document_type = self._PhWheel_doc_type.GetData(),
+			unlock_patient = False,
+			episode = self._PhWheel_episode.GetData(can_create = True, is_open = True, as_instance = True),
+			review_as_normal = False,
+			reference = ext_ref,
+			pk_org_unit = self._PhWheel_source.GetData(),
+			date_generated = self._PhWheel_doc_date.GetData().get_pydt(),
+			comment = self._PRW_doc_comment.GetLineText(0).strip(),
+			reviewer = self._PhWheel_reviewer.GetData()
+		)
+		if new_doc is None:
 			return False
+
 		# - long description
 		description = self._TBOX_description.GetValue().strip()
-		if description != '':
+		if description != u'':
 			if not new_doc.add_description(description):
 				wx.EndBusyCursor()
 				gmGuiHelpers.gm_show_error (
@@ -1184,19 +1239,6 @@ class cScanIdxDocsPnl(wxgScanIdxPnl.wxgScanIdxPnl, gmPlugin.cPatientChange_Plugi
 				)
 				return False
 
-		# add document parts from files
-		success, msg, filename = new_doc.add_parts_from_files (
-			files = self.acquired_pages,
-			reviewer = self._PhWheel_reviewer.GetData()
-		)
-		if not success:
-			wx.EndBusyCursor()
-			gmGuiHelpers.gm_show_error (
-				aMessage = msg,
-				aTitle = _('saving document')
-			)
-			return False
-
 		# set reviewed status
 		if self._ChBOX_reviewed.GetValue():
 			if not new_doc.set_reviewed (
@@ -1205,47 +1247,21 @@ class cScanIdxDocsPnl(wxgScanIdxPnl.wxgScanIdxPnl, gmPlugin.cPatientChange_Plugi
 			):
 				msg = _('Error setting "reviewed" status of new document.')
 
-		gmHooks.run_hook_script(hook = u'after_new_doc_created')
-
-		# inform user
-		show_id = bool (
-			cfg.get2 (
-				option = 'horstspace.scan_index.show_doc_id',
-				workplace = gmPraxis.gmCurrentPraxisBranch().active_workplace,
-				bias = 'user'
-			)
-		)
-		wx.EndBusyCursor()
-		if show_id:
-			if ref is None:
-				msg = _('Successfully saved the new document.')
-			else:
-				msg = _(
-"""The reference ID for the new document is:
-
- <%s>
-
-You probably want to write it down on the
-original documents.
+		self.__init_ui_data()
 
-If you don't care about the ID you can switch
-off this message in the GNUmed configuration.""") % ref
-			gmGuiHelpers.gm_show_info (
-				aMessage = msg,
-				aTitle = _('Saving document')
-			)
-		else:
-			gmDispatcher.send(signal='statustext', msg=_('Successfully saved new document.'))
+		gmHooks.run_hook_script(hook = u'after_new_doc_created')
 
-		self.__init_ui_data()
 		return True
+
 	#--------------------------------------------------------
 	def _startover_btn_pressed(self, evt):
 		self.__init_ui_data()
+
 	#--------------------------------------------------------
 	def _reviewed_box_checked(self, evt):
 		self._ChBOX_abnormal.Enable(enable = self._ChBOX_reviewed.GetValue())
 		self._ChBOX_relevant.Enable(enable = self._ChBOX_reviewed.GetValue())
+
 	#--------------------------------------------------------
 	def _on_doc_type_loses_focus(self):
 		pk_doc_type = self._PhWheel_doc_type.GetData()
@@ -1254,6 +1270,23 @@ off this message in the GNUmed configuration.""") % ref
 		else:
 			self._PRW_doc_comment.set_context(context = 'pk_doc_type', val = pk_doc_type)
 		return True
+
+	#--------------------------------------------------------
+	def _on_part_selected(self, event):
+		event.Skip()
+		fname, source = self._LCTRL_doc_pages.get_item_data(item_idx = event.Index)
+		status, desc = gmMimeLib.describe_file(fname)
+		self._TCTRL_metadata.SetValue (_(
+			u'Source: %s\n'
+			u'File: %s\n'
+			u'\n'
+			u'%s'
+		) % (
+			source,
+			fname,
+			desc
+		))
+
 #============================================================
 def display_document_part(parent=None, part=None):
 
@@ -1377,6 +1410,7 @@ def manage_documents(parent=None, msg=None, single_selection=True):
 		refresh_callback = refresh
 		#,left_extra_button = (_('Import'), _('Import consumable substances from a drug database.'), add_from_db)
 	)
+
 #============================================================
 from Gnumed.wxGladeWidgets import wxgSelectablySortedDocTreePnl
 
@@ -1514,6 +1548,7 @@ class cDocTree(wx.TreeCtrl, gmRegetMixin.cRegetOnPaintMixin, treemixin.Expansion
 		gmDispatcher.connect(signal = u'post_patient_selection', receiver = self._on_post_patient_selection)
 		gmDispatcher.connect(signal = u'blobs.doc_med_mod_db', receiver = self._on_doc_mod_db)
 		gmDispatcher.connect(signal = u'blobs.doc_obj_mod_db', receiver = self._on_doc_page_mod_db)
+
 	#--------------------------------------------------------
 	def __build_context_menus(self):
 
@@ -1681,7 +1716,7 @@ class cDocTree(wx.TreeCtrl, gmRegetMixin.cRegetOnPaintMixin, treemixin.Expansion
 					gmTools.coalesce(initial = doc['comment'], instead = u'', template_initial = u' %s'),
 					no_parts
 				)
-				if not intermediate_nodes.has_key(inter_label):
+				if inter_label not in intermediate_nodes:
 					intermediate_nodes[inter_label] = self.AppendItem(parent = self.root, text = inter_label)
 					self.SetItemBold(intermediate_nodes[inter_label], bold = True)
 					self.SetItemPyData(intermediate_nodes[inter_label], None)
@@ -1695,9 +1730,9 @@ class cDocTree(wx.TreeCtrl, gmRegetMixin.cRegetOnPaintMixin, treemixin.Expansion
 					doc['clin_when'].strftime('%m/%Y'),
 					no_parts,
 					gmTools.coalesce(initial = doc['comment'], instead = u'', template_initial = u' %s'),
-					u'%s%s' % (doc['episode'], gmTools.coalesce(doc['health_issue'], u'', u' %s %%s' % gmTools.u_right_arrow))
+					u'%s%s' % (doc['episode'], gmTools.coalesce(doc['health_issue'], u'', u' %s %%s' % gmTools.u_arrow2right))
 				)
-				if not intermediate_nodes.has_key(inter_label):
+				if inter_label not in intermediate_nodes:
 					intermediate_nodes[inter_label] = self.AppendItem(parent = self.root, text = inter_label)
 					self.SetItemBold(intermediate_nodes[inter_label], bold = True)
 					self.SetItemPyData(intermediate_nodes[inter_label], None)
@@ -1716,7 +1751,7 @@ class cDocTree(wx.TreeCtrl, gmRegetMixin.cRegetOnPaintMixin, treemixin.Expansion
 					gmTools.coalesce(initial = doc['comment'], instead = u'', template_initial = u' %s'),
 					no_parts
 				)
-				if not intermediate_nodes.has_key(inter_label):
+				if inter_label not in intermediate_nodes:
 					intermediate_nodes[inter_label] = self.AppendItem(parent = self.root, text = inter_label)
 					self.SetItemBold(intermediate_nodes[inter_label], bold = True)
 					self.SetItemPyData(intermediate_nodes[inter_label], None)
@@ -2539,6 +2574,617 @@ class cDocTree(wx.TreeCtrl, gmRegetMixin.cRegetOnPaintMixin, treemixin.Expansion
 			emr = curr_pat.get_emr()
 			enc = emr.active_encounter
 			gmDocuments.delete_document(document_id = self.__curr_node_data['pk_doc'], encounter_id = enc['pk_encounter'])
+
+
+#============================================================
+# PACS
+#============================================================
+from Gnumed.wxGladeWidgets.wxgPACSPluginPnl import wxgPACSPluginPnl
+
+class cPACSPluginPnl(wxgPACSPluginPnl, gmRegetMixin.cRegetOnPaintMixin):
+
+	def __init__(self, *args, **kwargs):
+		wxgPACSPluginPnl.__init__(self, *args, **kwargs)
+		gmRegetMixin.cRegetOnPaintMixin.__init__(self)
+		self.__pacs = None
+		self.__patient = gmPerson.gmCurrentPatient()
+
+		self.__init_ui()
+		self.__register_interests()
+
+	#--------------------------------------------------------
+	# internal helpers
+	#--------------------------------------------------------
+	def __init_ui(self):
+		self._LCTRL_studies.set_columns(columns = [_('Study date'), _('Description'), _('Study time'), _('Patient'), _('DOB'), _('Gender')])
+		self._LCTRL_series.set_columns(columns = [_(u'Method'), _(u'Body part'), _('Description'), _('Time'), _('Date')])
+
+	#--------------------------------------------------------
+	def __reset_patient_data(self):
+		self._LBL_patient_identification.SetLabel(u'')
+		self._LBL_no_of_studies.SetLabel(u'')
+		self._BTN_browse_patient.Disable()
+		self._BTN_browse_study.Disable()
+		self._BTN_export_study.Disable()
+		self._BTN_export_all_studies.Disable()
+		self._BTN_save_selected_studies.Disable()
+		self._LCTRL_studies.set_string_items(items = [])
+		self._LCTRL_series.set_string_items(items = [])
+		#self.Layout()
+
+	#--------------------------------------------------------
+	def __reset_server_identification(self):
+		self._LBL_PACS_identification.SetLabel(_('<not connected>'))
+
+	#--------------------------------------------------------
+	def __reset_ui_content(self):
+		self.__reset_server_identification()
+		self.__reset_patient_data()
+
+	#-----------------------------------------------------
+	def __connect(self):
+		self.__pacs = None
+
+		self.__reset_server_identification()
+
+		host = self._TCTRL_host.Value.strip()
+		port = self._TCTRL_port.Value.strip()[:6]
+		if port == u'':
+			self._LBL_PACS_identification.SetLabel(_('Cannot connect without port (try 8042).'))
+			return False
+		if len(port) < 4:
+			return False
+
+		user = self._TCTRL_user.Value
+		if user == u'':
+			user = None
+		self._LBL_PACS_identification.SetLabel(_('Connect to [%s] @ port %s as "%s".') % (host, port, user))
+		password = self._TCTRL_password.Value
+		if password == u'':
+			password = None
+
+		pacs = gmDICOM.cOrthancServer()
+		if not pacs.connect(host = host, port = port, user = user, password = password):		#, expected_aet = 'another AET'
+			self._LBL_PACS_identification.SetLabel(_('Cannot connect to PACS.'))
+			_log.error('error connecting to server: %s', pacs.connect_error)
+			return False
+
+		self._LBL_PACS_identification.SetLabel(_('PACS: Orthanc "%s" (AET "%s", Version %s, DB v%s)') % (
+			pacs.server_identification['Name'],
+			pacs.server_identification['DicomAet'],
+			pacs.server_identification['Version'],
+			pacs.server_identification['DatabaseVersion']
+		))
+
+		self.__pacs = pacs
+		return True
+
+	#--------------------------------------------------------
+	def __refresh_patient_data(self):
+
+		if not self.__patient.connected:
+			self.__reset_patient_data()
+			return True
+
+		if not self.__connect():
+			return False
+
+		info_lines = []
+		for pacs_id in self.__patient.suggest_external_ids(target = u'PACS'):
+			info_lines.append(_(u'GNUmed patient: %s (generic PACS ID)') % pacs_id)
+		for pacs_id in self.__patient.get_external_ids(id_type = u'PACS', issuer = self.__pacs.as_external_id_issuer):
+			info_lines.append(_(u'GNUmed patient: "%(value)s" @ [%(issuer)s] (stored PACS ID)') % pacs_id)
+
+		# try to find patient
+		matching_pats = self.__pacs.get_matching_patients(person = self.__patient)
+		if len(matching_pats) == 0:
+			info_lines.append(_('PACS: no patients with matching IDs found'))
+		no_of_studies = 0
+		for pat in matching_pats:
+			info_lines.append (u'%s [#%s]' % (
+				gmTools.format_dict_like (
+					pat['MainDicomTags'],
+					relevant_keys = [u'PatientName', u'PatientSex', u'PatientBirthDate', u'PatientID'],
+					template = u'PACS patient: "%(PatientID)s" = %(PatientName)s (%(PatientSex)s) %(PatientBirthDate)s',
+					missing_key_template = u'?'
+				),
+				pat['ID']
+			))
+			no_of_studies += len(pat['Studies'])
+		if len(matching_pats) > 1:
+			info_lines.append(_('PACS: more than one patient with matching IDs found, carefully check studies'))
+
+		self._LBL_patient_identification.SetLabel(u'\n'.join(info_lines))
+
+		# get studies
+		study_list_items = []
+		study_list_data = []
+		if len(matching_pats) > 0:
+			self.__orthanc_patient = matching_pats[0]
+			for pat in self.__pacs.get_studies_list_by_orthanc_patient_list(orthanc_patients = matching_pats):
+				for study in pat['studies']:
+					study_list_items.append( [
+						u'%s-%s-%s' % (
+							study['date'][:4],
+							study['date'][4:6],
+							study['date'][6:8]
+						),
+						gmTools.coalesce (
+							study['description'],
+							_(u'%s series') % len(study['series']),
+							_(u'%%s (%s series)') % len(study['series'])
+						),
+						u'%s:%s:%s' % (
+							study['time'][:2],
+							study['time'][2:4],
+							study['time'][4:6]
+						),
+						pat['name'],
+						pat['date_of_birth'],
+						pat['gender']
+					] )
+					study_list_data.append(study)
+
+		self._LCTRL_studies.set_string_items(items = study_list_items)
+		self._LCTRL_studies.set_column_widths()
+		self._LCTRL_studies.set_data(data = study_list_data)
+
+		if len(study_list_items) == 0:
+			self._LBL_no_of_studies.SetLabel(_('no studies'))
+			self._BTN_browse_patient.Disable()
+			self._BTN_browse_study.Disable()
+			self._BTN_export_study.Disable()
+			self._BTN_export_all_studies.Disable()
+			self._BTN_save_selected_studies.Disable()
+		else:
+			self._LBL_no_of_studies.SetLabel(_('%s studies') % len(study_list_items))
+			self._BTN_browse_patient.Enable()
+			self._BTN_browse_study.Enable()
+			self._BTN_export_study.Enable()
+			self._BTN_export_all_studies.Enable()
+			self._BTN_save_selected_studies.Enable()
+
+		self.Layout()
+		return True
+
+	#--------------------------------------------------------
+	# reget-on-paint mixin API
+	#--------------------------------------------------------
+	def _populate_with_data(self):
+		if not self.__patient.connected:
+			self.__reset_ui_content()
+			return True
+
+		if not self.__refresh_patient_data():
+			return False
+
+		return True
+
+	#--------------------------------------------------------
+	# event handling
+	#--------------------------------------------------------
+	def __register_interests(self):
+		# client internal signals
+		gmDispatcher.connect(signal = u'pre_patient_unselection', receiver = self._on_pre_patient_unselection)
+		gmDispatcher.connect(signal = u'post_patient_selection', receiver = self._on_post_patient_selection)
+
+		# generic database change signal
+		gmDispatcher.connect(signal = u'gm_table_mod', receiver = self._on_database_signal)
+
+	#--------------------------------------------------------
+	def _on_pre_patient_unselection(self):
+		# only empty out here, do NOT access the patient
+		# or else we will access the old patient while it
+		# may not be valid anymore ...
+		self.__reset_patient_data()
+
+	#--------------------------------------------------------
+	def _on_post_patient_selection(self):
+		self._schedule_data_reget()
+
+	#--------------------------------------------------------
+	def _on_database_signal(self, **kwds):
+
+		if not self.__patient.connected:
+			# probably not needed:
+			#self._schedule_data_reget()
+			return True
+
+		if kwds['pk_identity'] != self.__patient.ID:
+			return True
+
+		if kwds['table'] == u'dem.lnk_identity2ext_id':
+			self._schedule_data_reget()
+			return True
+
+		return True
+
+	#--------------------------------------------------------
+	def _on_connect_button_pressed(self, event):
+		event.Skip()
+
+		if not self.__connect():
+			return False
+
+		if not self.__refresh_patient_data():
+			return False
+
+		return True
+
+	#--------------------------------------------------------
+	def _on_browse_pacs_button_pressed(self, event):
+		event.Skip()
+		if self.__connect() is False:
+			return
+		gmNetworkTools.open_url_in_browser(self.__pacs.url_browse_patients)
+
+	#--------------------------------------------------------
+	def _on_browse_patient_button_pressed(self, event):
+		event.Skip()
+		if self.__connect() is False:
+			return
+		gmNetworkTools.open_url_in_browser(self.__pacs.get_url_browse_patient(patient_id = self.__orthanc_patient['ID']))
+
+	#--------------------------------------------------------
+	def _on_browse_study_button_pressed(self, event):
+		event.Skip()
+		if self.__pacs is None:
+			return
+		study_data = self._LCTRL_studies.get_selected_item_data(only_one = True)
+		if study_data is None:
+			return
+		gmNetworkTools.open_url_in_browser(self.__pacs.get_url_browse_study(study_id = study_data['orthanc_id']))
+
+	#--------------------------------------------------------
+	def _on_export_study_button_pressed(self, event):
+		event.Skip()
+		if self.__pacs is None:
+			return
+
+		study_data = self._LCTRL_studies.get_selected_item_data(only_one = False)
+		if len(study_data) == 0:
+			return
+
+		wx.BeginBusyCursor()
+		filename = self.__pacs.get_studies_with_dicomdir(study_ids = [ s['orthanc_id'] for s in study_data ], create_zip = True)
+		wx.EndBusyCursor()
+
+		if filename is False:
+			gmGuiHelpers.gm_show_error (
+				title = _('Exporting DICOM studies'),
+				error = _('Unable to export selected studies.')
+			)
+			return
+
+		# check size and confirm if huge
+		zip_size = os.path.getsize(filename)
+		if zip_size > (300 * gmTools._MB):		# ~ 1/2 CD-ROM
+			really_export = gmGuiHelpers.gm_show_question (
+				title = _('Exporting DICOM studies'),
+				question = _('The DICOM studies are %s in compressed size.\n\nReally copy to export area ?') % gmTools.size2str(zip_size),
+				cancel_button = False
+			)
+			if not really_export:
+				wx.BeginBusyCursor()
+				gmTools.remove_file(filename)
+				wx.EndBusyCursor()
+				return
+
+		# import into export area
+		wx.BeginBusyCursor()
+		self.__patient.export_area.add_file (
+			filename = filename,
+			hint = _('DICOM studies of [%s] from Orthanc PACS "%s" (AET "%s")') % (
+				self.__orthanc_patient['MainDicomTags']['PatientID'],
+				self.__pacs.server_identification['Name'],
+				self.__pacs.server_identification['DicomAet']
+			)
+		)
+		gmTools.remove_file(filename)
+		wx.EndBusyCursor()
+
+	#--------------------------------------------------------
+	def _on_save_selected_studies_button_pressed(self, event):  # wxGlade: wxgPACSPluginPnl.<event_handler>
+		event.Skip()
+		if self.__pacs is None:
+			return
+
+		study_data = self._LCTRL_studies.get_selected_item_data(only_one = False)
+		if len(study_data) == 0:
+			return
+
+		# get target dir
+		default_path = os.path.join(gmTools.gmPaths().home_dir, 'gnumed', self.__patient.dirname)
+		gmTools.mkdir(default_path)
+		dlg = wx.DirDialog (
+			self,
+			message = _('Select the directory into which to save the DICOM studies.'),
+			defaultPath = default_path
+		)
+		choice = dlg.ShowModal()
+		target_dir = dlg.GetPath()
+		dlg.Destroy()
+		if choice != wx.ID_OK:
+			return True
+
+		wx.BeginBusyCursor()
+		target_dir = self.__pacs.get_studies_with_dicomdir(study_ids = [ s['orthanc_id'] for s in study_data ], target_dir = target_dir)
+		wx.EndBusyCursor()
+
+		if target_dir is False:
+			gmGuiHelpers.gm_show_error (
+				title = _('Saving DICOM studies'),
+				error = _('Unable to save selected studies.')
+			)
+
+	#--------------------------------------------------------
+	def _on_export_all_studies_button_pressed(self, event):
+		event.Skip()
+		if self.__pacs is None:
+			return
+
+		wx.BeginBusyCursor()
+		filename = self.__pacs.get_studies_with_dicomdir(patient_id = self.__orthanc_patient['ID'], create_zip = True)
+		wx.EndBusyCursor()
+
+		if filename is False:
+			gmGuiHelpers.gm_show_error (
+				title = _('Exporting DICOM studies'),
+				error = _('Unable to export studies.')
+			)
+			return
+
+		# check size and confirm if huge
+		zip_size = os.path.getsize(filename)
+		if zip_size > (300 * gmTools._MB):		# ~ 1/2 CD-ROM
+			really_export = gmGuiHelpers.gm_show_question (
+				title = _('Exporting DICOM studies'),
+				question = _('The DICOM studies are %s in compressed size.\n\nReally copy to export area ?') % gmTools.size2str(zip_size),
+				cancel_button = False
+			)
+			if not really_export:
+				wx.BeginBusyCursor()
+				gmTools.remove_file(filename)
+				wx.EndBusyCursor()
+				return
+
+		# import into export area
+		wx.BeginBusyCursor()
+		self.__patient.export_area.add_file (
+			filename = filename,
+			hint = _('All DICOM studies of [%s] from Orthanc PACS "%s" (AET "%s")') % (
+				self.__orthanc_patient['MainDicomTags']['PatientID'],
+				self.__pacs.server_identification['Name'],
+				self.__pacs.server_identification['DicomAet']
+			)
+		)
+		gmTools.remove_file(filename)
+		wx.EndBusyCursor()
+
+	#--------------------------------------------------------
+	def _on_studies_list_item_selected(self, event):
+		event.Skip()
+		if self.__pacs is None:
+			return
+		study_data = self._LCTRL_studies.get_selected_item_data(only_one = True)
+		if study_data is None:
+			return
+		series_list_items = []
+		series_list_data = []
+		for series in study_data['series']:
+			series_time = u''
+			if series['time'] is not None:
+				if series['time'] != study_data['time']:
+					series_time = u'%s:%s:%s' % (
+						series['time'][:2],
+						series['time'][2:4],
+						series['time'][4:6]
+					)
+			series_date = u''
+			if series['date'] is not None:
+				if series['date'] != study_data['date']:
+					series_date = u'%s-%s-%s' % (
+						series['date'][:4],
+						series['date'][4:6],
+						series['date'][6:8]
+					)
+			series_list_items.append ([
+				u'%s%s%s' % (
+					series['modality'],
+					gmTools.coalesce(series['protocol'], u'', u' [%s]'),
+					gmTools.coalesce(series['station'], u'', u' @ %s')
+				),
+				gmTools.coalesce(series['body_part'], u''),
+				_(u'%s%s images') % (
+					gmTools.coalesce(series['description'], u'', u'%s: '),
+					series['instances']
+				),
+				series_time,
+				series_date
+			])
+			series_list_data.append(series)
+
+		self._LCTRL_series.set_string_items(items = series_list_items)
+		self._LCTRL_series.set_column_widths()
+		self._LCTRL_series.set_data(data = series_list_data)
+
+	#--------------------------------------------------------
+	def _on_modify_orthanc_content_button_pressed(self, event):
+		event.Skip()
+		dlg = cModifyOrthancContentDlg(self, -1, server = self.__pacs)
+		dlg.ShowModal()
+		dlg.Destroy()
+		self._schedule_data_reget()
+
+	#--------------------------------------------------------
+	def _on_upload_button_pressed(self, event):
+		event.Skip()
+		dlg = wx.DirDialog (
+			self,
+			message = _('Select the directory from which to recursively upload DICOM files.'),
+			defaultPath = os.path.join(gmTools.gmPaths().home_dir, 'gnumed')
+		)
+		choice = dlg.ShowModal()
+		dicom_dir = dlg.GetPath()
+		dlg.Destroy()
+		if choice != wx.ID_OK:
+			return True
+		wx.BeginBusyCursor()
+		try:
+			uploaded, not_uploaded = self.__pacs.upload_from_directory (
+				directory = dicom_dir,
+				recursive = True,
+				check_mime_type = False,
+				ignore_other_files = True
+			)
+		finally:
+			wx.EndBusyCursor()
+		if len(not_uploaded) == 0:
+			q = _('Delete the uploaded DICOM files now ?')
+		else:
+			q = _('Some files have not been uploaded.\n\nDo you want to delete those DICOM files which have been sent to the PACS successfully ?')
+			_log.error(u'not uploaded:')
+			for f in not_uploaded:
+				_log.error(f)
+
+		delete_uploaded = gmGuiHelpers.gm_show_question (
+			title = _('Uploading DICOM files'),
+			question = q,
+			cancel_button = False
+		)
+		if not delete_uploaded:
+			return
+		wx.BeginBusyCursor()
+		for f in uploaded:
+			gmTools.remove_file(f)
+		wx.EndBusyCursor()
+
+#------------------------------------------------------------
+from Gnumed.wxGladeWidgets.wxgModifyOrthancContentDlg import wxgModifyOrthancContentDlg
+
+class cModifyOrthancContentDlg(wxgModifyOrthancContentDlg):
+	def __init__(self, *args, **kwds):
+		self.__srv = kwds['server']
+		del kwds['server']
+		kwds['title'] = _('Editing Orthanc content')
+		wxgModifyOrthancContentDlg.__init__(self, *args, **kwds)
+		self._LCTRL_patients.set_columns( [_('Patient ID'), _('Name'), _('Birth date'), _('Gender'), _('Orthanc')] )
+
+	#--------------------------------------------------------
+	def __refresh_patient_list(self):
+		self._LCTRL_patients.set_string_items()
+		search_term = self._TCTRL_search_term.Value.strip()
+		if search_term == u'':
+			return
+		pats = self.__srv.get_patients_by_name(name_parts = search_term.split(), fuzzy = True)
+		if len(pats) == 0:
+			return
+		list_items = []
+		list_data = []
+		for pat in pats:
+			mt = pat['MainDicomTags']
+			try:
+				gender = mt['PatientSex']
+			except KeyError:
+				gender = u''
+			try:
+				dob = mt['PatientBirthDate']
+			except KeyError:
+				dob = u''
+			list_items.append([mt['PatientID'], mt['PatientName'], dob, gender, pat['ID']])
+			list_data.append(mt['PatientID'])
+		self._LCTRL_patients.set_string_items(list_items)
+		self._LCTRL_patients.set_column_widths()
+		self._LCTRL_patients.set_data(list_data)
+
+	#--------------------------------------------------------
+	def _on_search_patients_button_pressed(self, event):
+		event.Skip()
+		self.__refresh_patient_list()
+
+	#--------------------------------------------------------
+	def _on_suggest_patient_id_button_pressed(self, event):
+		event.Skip()
+		pat = gmPerson.gmCurrentPatient()
+		if not pat.connected:
+			return
+		self._TCTRL_new_patient_id.Value = pat.suggest_external_id(target = u'PACS')
+
+	#--------------------------------------------------------
+	def _on_set_patient_id_button_pressed(self, event):
+		event.Skip()
+		new_id = self._TCTRL_new_patient_id.Value.strip()
+		if new_id == u'':
+			return
+		pats = self._LCTRL_patients.get_selected_item_data(only_one = False)
+		if len(pats) == 0:
+			return
+		really_modify = gmGuiHelpers.gm_show_question (
+			title = _('Modifying patient ID'),
+			question = _(
+				'Really modify %s patient(s) to have the new patient ID\n\n'
+				' [%s]\n\n'
+				'stored in the Orthanc DICOM server ?'
+			) % (
+				len(pats),
+				new_id
+			),
+			cancel_button = True
+		)
+		if not really_modify:
+			return
+		all_modified = True
+		for pat in pats:
+			success = self.__srv.modify_patient_id(old_patient_id = pat, new_patient_id = new_id)
+			if not success:
+				all_modified = False
+		self.__refresh_patient_list()
+		return all_modified
+
+#------------------------------------------------------------
+def upload_files():
+#	_on_upload_button_pressed(self, event)
+		event.Skip()
+		dlg = wx.DirDialog (
+			self,
+			message = _('Select the directory from which to recursively upload DICOM files.'),
+			defaultPath = os.path.join(gmTools.gmPaths().home_dir, 'gnumed')
+		)
+		choice = dlg.ShowModal()
+		dicom_dir = dlg.GetPath()
+		dlg.Destroy()
+		if choice != wx.ID_OK:
+			return True
+		wx.BeginBusyCursor()
+		try:
+			uploaded, not_uploaded = self.__pacs.upload_from_directory (
+				directory = dicom_dir,
+				recursive = True,
+				check_mime_type = False,
+				ignore_other_files = True
+			)
+		finally:
+			wx.EndBusyCursor()
+		if len(not_uploaded) == 0:
+			q = _('Delete the uploaded DICOM files now ?')
+		else:
+			q = _('Some files have not been uploaded.\n\nDo you want to delete those DICOM files which have been sent to the PACS successfully ?')
+			_log.error(u'not uploaded:')
+			for f in not_uploaded:
+				_log.error(f)
+
+		delete_uploaded = gmGuiHelpers.gm_show_question (
+			title = _('Uploading DICOM files'),
+			question = q,
+			cancel_button = False
+		)
+		if not delete_uploaded:
+			return
+		wx.BeginBusyCursor()
+		for f in uploaded:
+			gmTools.remove_file(f)
+		wx.EndBusyCursor()
+
 #============================================================
 # main
 #------------------------------------------------------------
diff --git a/client/wxpython/gmEMRBrowser.py b/client/wxpython/gmEMRBrowser.py
index 4f77ad2..983cf88 100644
--- a/client/wxpython/gmEMRBrowser.py
+++ b/client/wxpython/gmEMRBrowser.py
@@ -7,7 +7,7 @@ __license__ = "GPL v2 or later"
 import sys
 import os.path
 import StringIO
-import codecs
+import io
 import logging
 
 
@@ -30,6 +30,8 @@ from Gnumed.business import gmEMRStructItems
 from Gnumed.business import gmPerson
 from Gnumed.business import gmSOAPimporter
 from Gnumed.business import gmPersonSearch
+from Gnumed.business import gmSoapDefs
+from Gnumed.business import gmClinicalRecord
 
 from Gnumed.wxpython import gmGuiHelpers
 from Gnumed.wxpython import gmEMRStructWidgets
@@ -38,9 +40,12 @@ from Gnumed.wxpython import gmSOAPWidgets
 from Gnumed.wxpython import gmAllergyWidgets
 from Gnumed.wxpython import gmDemographicsWidgets
 from Gnumed.wxpython import gmNarrativeWidgets
+from Gnumed.wxpython import gmNarrativeWorkflows
 from Gnumed.wxpython import gmPatSearchWidgets
 from Gnumed.wxpython import gmVaccWidgets
 from Gnumed.wxpython import gmFamilyHistoryWidgets
+from Gnumed.wxpython import gmFormWidgets
+from Gnumed.wxpython import gmTimer
 
 
 _log = logging.getLogger('gm.ui')
@@ -82,7 +87,7 @@ def export_emr_to_ascii(parent=None):
 
 	_log.debug('exporting EMR to [%s]', fname)
 
-	output_file = codecs.open(fname, 'wb', encoding='utf8', errors='replace')
+	output_file = io.open(fname, mode = 'wt', encoding = 'utf8', errors = 'replace')
 	exporter = gmPatientExporter.cEmrExport(patient = pat)
 	exporter.set_output_file(output_file)
 	exporter.dump_constraints()
@@ -93,6 +98,7 @@ def export_emr_to_ascii(parent=None):
 
 	gmDispatcher.send('statustext', msg = _('EMR successfully exported to file: %s') % fname, beep = False)
 	return fname
+
 #============================================================
 class cEMRTree(wx.TreeCtrl, treemixin.ExpansionState):
 	"""This wx.TreeCtrl derivative displays a tree view of a medical record."""
@@ -116,6 +122,7 @@ class cEMRTree(wx.TreeCtrl, treemixin.ExpansionState):
 
 		self.__make_popup_menus()
 		self.__register_events()
+
 	#--------------------------------------------------------
 	# external API
 	#--------------------------------------------------------
@@ -124,8 +131,13 @@ class cEMRTree(wx.TreeCtrl, treemixin.ExpansionState):
 
 	def _set_soap_display(self, soap_display=None):
 		self.__soap_display = soap_display
+		self.__soap_display_prop_font = soap_display.GetFont()
+		self.__soap_display_mono_font = wx.FontFromNativeInfo(self.__soap_display_prop_font.NativeFontInfo)
+		self.__soap_display_mono_font.SetFamily(wx.FONTFAMILY_TELETYPE)
+		self.__soap_display_mono_font.SetPointSize(self.__soap_display_prop_font.GetPointSize() - 2)
 
 	soap_display = property(_get_soap_display, _set_soap_display)
+
 	#--------------------------------------------------------
 	def _get_image_display(self):
 		return self.__img_display
@@ -134,11 +146,13 @@ class cEMRTree(wx.TreeCtrl, treemixin.ExpansionState):
 		self.__img_display = image_display
 
 	image_display = property(_get_image_display, _set_image_display)
+
 	#--------------------------------------------------------
 	def set_enable_display_mode_selection_callback(self, callback):
 		if not callable(callback):
 			raise ValueError('callback [%s] not callable' % callback)
 		self.__cb__enable_display_mode_selection = callback
+
 	#--------------------------------------------------------
 	def _set_edit_mode_selector(self, callback):
 		if callback is None:
@@ -148,6 +162,7 @@ class cEMRTree(wx.TreeCtrl, treemixin.ExpansionState):
 		self.__cb__select_edit_mode = callback
 
 	edit_mode_selector = property(lambda x:x, _set_edit_mode_selector)
+
 	#--------------------------------------------------------
 	def _set_soap_editor_adder(self, callback):
 		if callback is None:
@@ -157,6 +172,7 @@ class cEMRTree(wx.TreeCtrl, treemixin.ExpansionState):
 		self.__cb__add_soap_editor = callback
 
 	soap_editor_adder = property(lambda x:x, _set_soap_editor_adder)
+
 	#--------------------------------------------------------
 	# ExpansionState mixin API
 	#--------------------------------------------------------
@@ -190,6 +206,7 @@ class cEMRTree(wx.TreeCtrl, treemixin.ExpansionState):
 			return u'dummy node::%s' % self.__pat.ID
 		# root node == EMR level
 		return u'root node::%s' % self.__pat.ID
+
 	#--------------------------------------------------------
 	# internal helpers
 	#--------------------------------------------------------
@@ -208,10 +225,12 @@ class cEMRTree(wx.TreeCtrl, treemixin.ExpansionState):
 		gmDispatcher.connect(signal = 'clin.episode_mod_db', receiver = self._on_episode_mod_db)
 		gmDispatcher.connect(signal = 'clin.health_issue_mod_db', receiver = self._on_issue_mod_db)
 		gmDispatcher.connect(signal = 'clin.family_history_mod_db', receiver = self._on_issue_mod_db)
+
 	#--------------------------------------------------------
 	def clear_tree(self):
 		self.DeleteAllItems()
 		self.__expanded_nodes = None
+
 	#--------------------------------------------------------
 	def __populate_tree(self):
 		"""Updates EMR browser data."""
@@ -222,6 +241,7 @@ class cEMRTree(wx.TreeCtrl, treemixin.ExpansionState):
 
 		if self.__pat is None:
 			self.clear_tree()
+			self.__expanded_nodes = None
 			wx.EndBusyCursor()
 			return True
 
@@ -286,16 +306,18 @@ class cEMRTree(wx.TreeCtrl, treemixin.ExpansionState):
 			self.__root_tooltip = u' '
 
 		return root_item
+
 	#--------------------------------------------------------
 	def __update_text_for_selected_node(self):
 		"""Displays information for the selected tree node."""
 
 		if self.__soap_display is None:
-			self.__img_display.clear()
 			return
 
+		self.__soap_display.Clear()
+		self.__img_display.clear()
+
 		if self.__curr_node is None:
-			self.__img_display.clear()
 			return
 
 		if not self.__curr_node.IsOk():
@@ -319,18 +341,27 @@ class cEMRTree(wx.TreeCtrl, treemixin.ExpansionState):
 			self.__cb__enable_display_mode_selection(True)
 			txt = u'invalid SOAP display mode [%s]' % self.__soap_display_mode
 			if self.__soap_display_mode == u'details':
-				txt = node_data.format(left_margin=1, patient = self.__pat)
+				txt = node_data.format(left_margin = 1, patient = self.__pat)
+				font = self.__soap_display_prop_font
 			if self.__soap_display_mode == u'journal':
 				txt = node_data.format_as_journal(left_margin = 1)
+				font = self.__soap_display_prop_font
 			if self.__soap_display_mode == u'revisions':
 				txt = node_data.formatted_revision_history
-			self.__img_display.refresh (
-				document_folder = doc_folder,
-				episodes = [ epi['pk_episode'] for epi in node_data.episodes ]
-			)
+				font = self.__soap_display_mono_font
+			epis = node_data.episodes
+			if len(epis) > 0:
+				self.__img_display.refresh (
+					document_folder = doc_folder,
+					episodes = [ epi['pk_episode'] for epi in epis ]
+				)
+			self.__soap_display.SetFont(font)
+			self.__soap_display.WriteText(txt)
+			self.__soap_display.ShowPosition(0)
+			return
 
 		# unassociated episodes		# FIXME: turn into real dummy issue
-		elif isinstance(node_data, type({})):
+		if isinstance(node_data, type({})):
 			self.__cb__enable_display_mode_selection(True)
 			if self.__soap_display_mode == u'details':
 				txt = _('Pool of unassociated episodes "%s":\n') % node_data['description']
@@ -376,28 +407,38 @@ class cEMRTree(wx.TreeCtrl, treemixin.ExpansionState):
 					)
 					txt += u'\n'
 					txt += epi.format_as_journal(left_margin = 2)
-			self.__img_display.clear()
+			self.__soap_display.SetFont(self.__soap_display_prop_font)
+			self.__soap_display.WriteText(txt)
+			self.__soap_display.ShowPosition(0)
+			return
 
-		elif isinstance(node_data, gmEMRStructItems.cEpisode):
+		if isinstance(node_data, gmEMRStructItems.cEpisode):
 			self.__cb__enable_display_mode_selection(True)
 			txt = u'invalid SOAP display mode [%s]' % self.__soap_display_mode
 			if self.__soap_display_mode == u'details':
 				txt = node_data.format(left_margin = 1, patient = self.__pat)
+				font = self.__soap_display_prop_font
 			if self.__soap_display_mode == u'journal':
 				txt = node_data.format_as_journal(left_margin = 1)
+				font = self.__soap_display_prop_font
 			if self.__soap_display_mode == u'revisions':
 				txt = node_data.formatted_revision_history
+				font = self.__soap_display_mono_font
 			self.__img_display.refresh (
 				document_folder = doc_folder,
-				episodes = [node_data['pk_episode']]
+				episodes = [ node_data['pk_episode'] ]
 			)
+			self.__soap_display.SetFont(font)
+			self.__soap_display.WriteText(txt)
+			self.__soap_display.ShowPosition(0)
+			return
 
-		elif isinstance(node_data, gmEMRStructItems.cEncounter):
-			#self.__cb__enable_display_mode_selection(False)
+		if isinstance(node_data, gmEMRStructItems.cEncounter):
 			self.__cb__enable_display_mode_selection(True)
 			epi = self.GetPyData(self.GetItemParent(self.__curr_node))
 			if self.__soap_display_mode == u'revisions':
 				txt = node_data.formatted_revision_history
+				font = self.__soap_display_mono_font
 			else:
 				txt = node_data.format (
 					episodes = [epi['pk_episode']],
@@ -406,31 +447,37 @@ class cEMRTree(wx.TreeCtrl, treemixin.ExpansionState):
 					patient = self.__pat,
 					with_co_encountlet_hints = True
 				)
+				font = self.__soap_display_prop_font
 			self.__img_display.refresh (
 				document_folder = doc_folder,
-				episodes = [epi['pk_episode']],
+				episodes = [ epi['pk_episode'] ],
 				encounter = node_data['pk_encounter']
 			)
+			self.__soap_display.SetFont(font)
+			self.__soap_display.WriteText(txt)
+			self.__soap_display.ShowPosition(0)
+			return
 
 		# root node == EMR level
+		self.__cb__enable_display_mode_selection(True)
+		if self.__soap_display_mode == u'details':
+			emr = self.__pat.get_emr()
+			txt = emr.format_summary()
 		else:
-			self.__cb__enable_display_mode_selection(True)
-			if self.__soap_display_mode == u'details':
-				emr = self.__pat.get_emr()
-				txt = emr.format_summary()
-			else:
-				txt = self.__pat.emr.format_as_journal(left_margin = 1, patient = self.__pat)
-			self.__img_display.clear()
-
-		self.__soap_display.Clear()
+			txt = self.__pat.emr.format_as_journal(left_margin = 1, patient = self.__pat)
+		self.__soap_display.SetFont(self.__soap_display_prop_font)
 		self.__soap_display.WriteText(txt)
 		self.__soap_display.ShowPosition(0)
+
 	#--------------------------------------------------------
 	def __make_popup_menus(self):
 
 		# - root node
 		self.__root_context_popup = wx.Menu(title = _('EMR Actions:'))
 
+		item = self.__root_context_popup.Append(-1, _('Print EMR'))
+		self.Bind(wx.EVT_MENU, self.__print_emr, item)
+
 		menu_id = wx.NewId()
 		self.__root_context_popup.AppendItem(wx.MenuItem(self.__root_context_popup, menu_id, _('Create health issue')))
 		wx.EVT_MENU(self.__root_context_popup, menu_id, self.__create_issue)
@@ -550,37 +597,45 @@ class cEMRTree(wx.TreeCtrl, treemixin.ExpansionState):
 
 		item = self.__enc_context_popup.Append(-1, _('Export for Medistar'))
 		self.Bind(wx.EVT_MENU, self.__export_encounter_for_medistar, item)
+
 	#--------------------------------------------------------
 	def __handle_root_context(self, pos=wx.DefaultPosition):
 		self.PopupMenu(self.__root_context_popup, pos)
+
 	#--------------------------------------------------------
 	def __handle_issue_context(self, pos=wx.DefaultPosition):
 #		self.__issue_context_popup.SetTitle(_('Episode %s') % episode['description'])
 		self.PopupMenu(self.__issue_context_popup, pos)
+
 	#--------------------------------------------------------
 	def __handle_episode_context(self, pos=wx.DefaultPosition):
 #		self.__epi_context_popup.SetTitle(_('Episode %s') % self.__curr_node_data['description'])
 		self.PopupMenu(self.__epi_context_popup, pos)
+
 	#--------------------------------------------------------
 	def __handle_encounter_context(self, pos=wx.DefaultPosition):
 		self.PopupMenu(self.__enc_context_popup, pos)
+
 	#--------------------------------------------------------
 	# episode level
 	#--------------------------------------------------------
 	def __move_encounters(self, event):
 		episode = self.GetPyData(self.__curr_node)
 
-		gmNarrativeWidgets.move_progress_notes_to_another_encounter (
+		gmNarrativeWorkflows.move_progress_notes_to_another_encounter (
 			parent = self,
 			episodes = [episode['pk_episode']],
 			move_all = True
 		)
+
 	#--------------------------------------------------------
 	def __edit_episode(self, event):
 		gmEMRStructWidgets.edit_episode(parent = self, episode = self.__curr_node_data)
+
 	#--------------------------------------------------------
 	def __promote_episode_to_issue(self, evt):
 		gmEMRStructWidgets.promote_episode_to_issue(parent=self, episode = self.__curr_node_data, emr = self.__pat.emr)
+
 	#--------------------------------------------------------
 	def __delete_episode(self, event):
 		dlg = gmGuiHelpers.c2ButtonQuestionDlg (
@@ -603,6 +658,7 @@ class cEMRTree(wx.TreeCtrl, treemixin.ExpansionState):
 
 		if not gmEMRStructItems.delete_episode(episode = self.__curr_node_data):
 			gmDispatcher.send(signal = 'statustext', msg = _('Cannot delete episode. There is still clinical data recorded for it.'))
+
 	#--------------------------------------------------------
 	def __expand_episode_node(self, episode_node=None):
 		self.DeleteChildren(episode_node)
@@ -642,6 +698,7 @@ class cEMRTree(wx.TreeCtrl, treemixin.ExpansionState):
 			self.SetItemHasChildren(encounter_node, False)
 
 		self.SortChildren(episode_node)
+
 	#--------------------------------------------------------
 	# encounter level
 	#--------------------------------------------------------
@@ -650,7 +707,7 @@ class cEMRTree(wx.TreeCtrl, treemixin.ExpansionState):
 		node_parent = self.GetItemParent(self.__curr_node)
 		episode = self.GetPyData(node_parent)
 
-		gmNarrativeWidgets.move_progress_notes_to_another_encounter (
+		gmNarrativeWorkflows.move_progress_notes_to_another_encounter (
 			parent = self,
 			encounters = [encounter['pk_encounter']],
 			episodes = [episode['pk_episode']]
@@ -661,7 +718,7 @@ class cEMRTree(wx.TreeCtrl, treemixin.ExpansionState):
 		node_parent = self.GetItemParent(self.__curr_node)
 		episode = self.GetPyData(node_parent)
 
-		gmNarrativeWidgets.manage_progress_notes (
+		gmNarrativeWorkflows.manage_progress_notes (
 			parent = self,
 			encounters = [encounter['pk_encounter']],
 			episodes = [episode['pk_episode']]
@@ -694,6 +751,7 @@ class cEMRTree(wx.TreeCtrl, treemixin.ExpansionState):
 	#--------------------------------------------------------
 	def __edit_issue(self, event):
 		gmEMRStructWidgets.edit_health_issue(parent = self, issue = self.__curr_node_data)
+
 	#--------------------------------------------------------
 	def __delete_issue(self, event):
 		dlg = gmGuiHelpers.c2ButtonQuestionDlg (
@@ -717,10 +775,9 @@ class cEMRTree(wx.TreeCtrl, treemixin.ExpansionState):
 
 		dlg.Destroy()
 
-		try:
-			gmEMRStructItems.delete_health_issue(health_issue = self.__curr_node_data)
-		except gmExceptions.DatabaseObjectInUseError:
+		if not gmEMRStructItems.delete_health_issue(health_issue = self.__curr_node_data):
 			gmDispatcher.send(signal = 'statustext', msg = _('Cannot delete health issue. There is still clinical data recorded for it.'))
+
 	#--------------------------------------------------------
 	def __expand_issue_to_encounter_level(self, evt):
 
@@ -733,6 +790,7 @@ class cEMRTree(wx.TreeCtrl, treemixin.ExpansionState):
 		while epi.IsOk():
 			self.Expand(epi)
 			epi, epi_cookie = self.GetNextChild(self.__curr_node, epi_cookie)
+
 	#--------------------------------------------------------
 	def __expand_issue_node(self, issue_node=None):
 		self.DeleteChildren(issue_node)
@@ -752,6 +810,7 @@ class cEMRTree(wx.TreeCtrl, treemixin.ExpansionState):
 			self.SetItemHasChildren(episode_node, True)
 
 		self.SortChildren(issue_node)
+
 	#--------------------------------------------------------
 	def __expand_pseudo_issue_node(self, fake_issue_node=None):
 		self.DeleteChildren(fake_issue_node)
@@ -772,18 +831,26 @@ class cEMRTree(wx.TreeCtrl, treemixin.ExpansionState):
 			self.SetItemHasChildren(episode_node, True)
 
 		self.SortChildren(fake_issue_node)
+
 	#--------------------------------------------------------
 	# EMR level
 	#--------------------------------------------------------
+	def __print_emr(self, event):
+		gmFormWidgets.print_doc_from_template(parent = self)
+
+	#--------------------------------------------------------
 	def __create_issue(self, event):
 		gmEMRStructWidgets.edit_health_issue(parent = self, issue = None)
+
 	#--------------------------------------------------------
 	def __create_episode(self, event):
 		gmEMRStructWidgets.edit_episode(parent = self, episode = None)
+
 	#--------------------------------------------------------
 	def __create_soap_editor(self, event):
 		self.__cb__select_edit_mode(True)
 		self.__cb__add_soap_editor(problem = self.__curr_node_data, allow_same_problem = False)
+
 	#--------------------------------------------------------
 	def __document_allergy(self, event):
 		dlg = gmAllergyWidgets.cAllergyManagerDlg(parent=self, id=-1)
@@ -793,21 +860,27 @@ class cEMRTree(wx.TreeCtrl, treemixin.ExpansionState):
 			self.__populate_tree()
 		dlg.Destroy()
 		return
+
 	#--------------------------------------------------------
 	def __manage_procedures(self, event):
 		gmEMRStructWidgets.manage_performed_procedures(parent = self)
+
 	#--------------------------------------------------------
 	def __manage_family_history(self, event):
 		gmFamilyHistoryWidgets.manage_family_history(parent = self)
+
 	#--------------------------------------------------------
 	def __manage_hospital_stays(self, event):
 		gmEMRStructWidgets.manage_hospital_stays(parent = self)
+
 	#--------------------------------------------------------
 	def __manage_occupation(self, event):
 		gmDemographicsWidgets.edit_occupation()
+
 	#--------------------------------------------------------
 	def __manage_vaccinations(self, event):
 		gmVaccWidgets.manage_vaccinations(parent = self)
+
 	#--------------------------------------------------------
 	def __expand_to_issue_level(self, evt):
 
@@ -827,6 +900,7 @@ class cEMRTree(wx.TreeCtrl, treemixin.ExpansionState):
 				self.Collapse(epi)
 				epi, epi_cookie = self.GetNextChild(issue, epi_cookie)
 			issue, issue_cookie = self.GetNextChild(root_item, issue_cookie)
+
 	#--------------------------------------------------------
 	def __expand_to_episode_level(self, evt):
 
@@ -846,6 +920,7 @@ class cEMRTree(wx.TreeCtrl, treemixin.ExpansionState):
 				self.Collapse(epi)
 				epi, epi_cookie = self.GetNextChild(issue, epi_cookie)
 			issue, issue_cookie = self.GetNextChild(root_item, issue_cookie)
+
 	#--------------------------------------------------------
 	def __expand_to_encounter_level(self, evt):
 
@@ -865,9 +940,10 @@ class cEMRTree(wx.TreeCtrl, treemixin.ExpansionState):
 				self.Expand(epi)
 				epi, epi_cookie = self.GetNextChild(issue, epi_cookie)
 			issue, issue_cookie = self.GetNextChild(root_item, issue_cookie)
+
 	#--------------------------------------------------------
 	def __export_encounter_for_medistar(self, evt):
-		gmNarrativeWidgets.export_narrative_for_medistar_import (
+		gmNarrativeWorkflows.export_narrative_for_medistar_import (
 			parent = self,
 			soap_cats = u'soapu',
 			encounter = self.__curr_node_data
@@ -879,14 +955,18 @@ class cEMRTree(wx.TreeCtrl, treemixin.ExpansionState):
 
 		issues = [{
 			'description': _('Unattributed episodes'),
+			'laterality': None,
+			'diagnostic_certainty_classification': None,
 			'has_open_episode': False,
 			'pk_health_issue': None
 		}]
-
 		issues.extend(self.__pat.emr.health_issues)
-
 		for issue in issues:
-			issue_node =  self.AppendItem(root_node, issue['description'])
+			issue_node =  self.AppendItem(root_node, u'%s%s%s' % (
+				issue['description'],
+				gmTools.coalesce(issue['laterality'], u'', u' [%s]', none_equivalents = [None, u'na']),
+				gmTools.coalesce(issue['diagnostic_certainty_classification'], u'', u' [%s]')
+			))
 			self.SetItemBold(issue_node, issue['has_open_episode'])
 			self.SetItemPyData(issue_node, issue)
 			# fake it so we can expand it
@@ -894,11 +974,13 @@ class cEMRTree(wx.TreeCtrl, treemixin.ExpansionState):
 
 		self.SetItemHasChildren(root_node, (len(issues) != 0))
 		self.SortChildren(root_node)
+
 	#--------------------------------------------------------
 	# event handlers
 	#--------------------------------------------------------
 	def _on_narrative_mod_db(self, *args, **kwargs):
 		self.__update_text_for_selected_node()
+
 	#--------------------------------------------------------
 	def _on_episode_mod_db(self, *args, **kwargs):
 		self.__expanded_nodes = self.ExpansionState
@@ -1356,6 +1438,7 @@ class cEMRJournalPluginPnl(wxgEMRJournalPluginPnl.wxgEMRJournalPluginPnl):
 	def __init__(self, *args, **kwds):
 
 		wxgEMRJournalPluginPnl.wxgEMRJournalPluginPnl.__init__(self, *args, **kwds)
+		self._TCTRL_journal.disable_keyword_expansions()
 		self._TCTRL_journal.SetValue(u'')
 	#--------------------------------------------------------
 	# external API
@@ -1364,26 +1447,14 @@ class cEMRJournalPluginPnl(wxgEMRJournalPluginPnl.wxgEMRJournalPluginPnl):
 		self._TCTRL_journal.SetValue(u'')
 		exporter = gmPatientExporter.cEMRJournalExporter()
 		if self._RBTN_by_encounter.GetValue():
-			txt = StringIO.StringIO()
-			# FIXME: if journal is large this will error out, use generator/yield etc
-			# FIXME: turn into proper list
-			try:
-				exporter.export(txt)
-				self._TCTRL_journal.SetValue(txt.getvalue())
-			except ValueError:
-				_log.exception('cannot get EMR journal')
-				self._TCTRL_journal.SetValue (_(
-					'An error occurred while retrieving the EMR\n'
-					'in journal form for the active patient.\n\n'
-					'Please check the log file for details.'
-				))
-			txt.close()
+			fname = exporter.export_to_file_by_encounter(patient = gmPerson.gmCurrentPatient())
 		else:
-			fname = exporter.export_to_file_by_mod_time()
-			f = codecs.open(filename = fname, mode = 'rU', encoding = 'utf8', errors = 'replace')
-			for line in f:
-				self._TCTRL_journal.AppendText(line)
-			f.close()
+			fname = exporter.export_to_file_by_mod_time(patient = gmPerson.gmCurrentPatient())
+
+		f = io.open(fname, mode = 'rt', encoding = 'utf8', errors = 'replace')
+		for line in f:
+			self._TCTRL_journal.AppendText(line)
+		f.close()
 
 		self._TCTRL_journal.ShowPosition(self._TCTRL_journal.GetLastPosition())
 		return True
@@ -1394,25 +1465,278 @@ class cEMRJournalPluginPnl(wxgEMRJournalPluginPnl.wxgEMRJournalPluginPnl):
 		gmDispatcher.connect(signal = u'pre_patient_unselection', receiver = self._on_pre_patient_unselection)
 		gmDispatcher.connect(signal = u'post_patient_selection', receiver = self._on_post_patient_selection)
 		return True
+
 	#--------------------------------------------------------
-	# event handler
+	# event handlers
 	#--------------------------------------------------------
 	def _on_pre_patient_unselection(self):
 		self._TCTRL_journal.SetValue(u'')
 		return True
+
 	#--------------------------------------------------------
 	def _on_post_patient_selection(self):
 		if self.GetParent().GetCurrentPage() != self:
 			return True
 		self.repopulate_ui()
 		return True
+
 	#--------------------------------------------------------
 	def _on_order_by_encounter_selected(self, event):
 		self.repopulate_ui()
+
 	#--------------------------------------------------------
 	def _on_order_by_last_mod_selected(self, event):
 		self.repopulate_ui()
 
+	#--------------------------------------------------------
+	def _on_button_find_pressed(self, event):
+		self._TCTRL_journal.show_find_dialog(title = _('Find text in EMR Journal'))
+
+#================================================================
+from Gnumed.wxGladeWidgets import wxgEMRListJournalPluginPnl
+
+class cEMRListJournalPluginPnl(wxgEMRListJournalPluginPnl.wxgEMRListJournalPluginPnl):
+
+	def __init__(self, *args, **kwds):
+
+		wxgEMRListJournalPluginPnl.wxgEMRListJournalPluginPnl.__init__(self, *args, **kwds)
+
+		self._LCTRL_journal.select_callback = self._on_row_selected
+		self._TCTRL_details.SetValue(u'')
+
+		self.__load_timer = gmTimer.cTimer(callback = self._on_load_details, delay = 1000, cookie = 'EMRListJournalPluginDBLoadTimer')
+
+		self.__data = {}
+
+	#--------------------------------------------------------
+	# external API
+	#--------------------------------------------------------
+	def repopulate_ui(self):
+		self._LCTRL_journal.remove_items_safely()
+		self._TCTRL_details.SetValue(u'')
+
+		if self._RBTN_by_encounter.Value:		# (... is True:)
+			order_by = u'c_vej.encounter_started, c_vej.pk_episode, c_vej.src_table, scr, c_vej.modified_when'
+						#, c_vej.clin_when (should not make a relevant difference)
+			date_col_header = _('Encounter')
+			date_fields = ['encounter_started', 'modified_when']
+		elif self._RBTN_by_last_modified.Value:	# (... is True:)
+			order_by = u'c_vej.modified_when, c_vej.pk_episode, c_vej.src_table, scr'
+						#, c_vej.clin_when (should not make a relevant difference)
+			date_col_header = _('Modified')
+			date_fields = ['modified_when']
+		elif self._RBTN_by_item_time.Value:		# (... is True:)
+			order_by = u'c_vej.clin_when, c_vej.pk_episode, c_vej.src_table, scr, c_vej.modified_when'
+			date_col_header = _('Clinical time')
+			date_fields = ['clin_when', 'modified_when']
+		else:
+			raise ValueError('invalid EMR journal list sort state')
+
+		self._LCTRL_journal.set_columns([date_col_header, u'', _('Entry'), _('Who / When')])
+		self._LCTRL_journal.set_resize_column(3)
+
+		journal = gmPerson.gmCurrentPatient().emr.get_as_journal(order_by = order_by)
+
+		items = []
+		data = []
+		self.__data = {}
+		prev_date = None
+		for entry in journal:
+			if entry['narrative'].strip() == u'':
+				continue
+			soap_cat = gmSoapDefs.soap_cat2l10n[entry['soap_cat']]
+			who = u'%s (%s)' % (entry['modified_by'], entry['date_modified'])
+			try:
+				entry_date = gmDateTime.pydt_strftime(entry[date_fields[0]], u'%Y-%m-%d')
+			except KeyError:
+				entry_date = gmDateTime.pydt_strftime(entry[date_fields[1]], u'%Y-%m-%d')
+			if entry_date == prev_date:
+				date2show = u''
+			else:
+				date2show = entry_date
+				prev_date = entry_date
+			lines = entry['narrative'].strip().split(u'\n')
+			entry_line = lines[0].rstrip()
+			items.append([date2show, soap_cat, entry_line, who])
+			try:
+				self.__data[entry['src_table']]
+			except KeyError:
+				self.__data[entry['src_table']] = {}
+			try:
+				self.__data[entry['src_table']][entry['src_pk']]
+			except KeyError:
+				self.__data[entry['src_table']][entry['src_pk']] = {}
+				self.__data[entry['src_table']][entry['src_pk']]['entry'] = entry
+				self.__data[entry['src_table']][entry['src_pk']]['formatted_instance'] = None
+				if entry['encounter_started'] is None:
+					enc_duration = gmTools.u_diameter
+				else:
+					enc_duration = u'%s - %s' % (
+						gmDateTime.pydt_strftime(entry['encounter_started'], '%Y %b %d  %H:%M'),
+						gmDateTime.pydt_strftime(entry['encounter_last_affirmed'], '%H:%M')
+					)
+				self.__data[entry['src_table']][entry['src_pk']]['formatted_header'] = _(
+					u'Chart entry: %s       [#%s in %s]\n'
+					u' Modified: %s by %s (%s rev %s)\n'
+					u'\n'
+					u'Health issue: %s%s\n'
+					u'Episode: %s%s\n'
+					u'Encounter: %s%s'
+				) % (
+					gmClinicalRecord.format_clin_root_item_type(entry['src_table']),
+					entry['src_pk'],
+					entry['src_table'],
+					entry['date_modified'],
+					entry['modified_by'],
+					gmTools.u_arrow2right,
+					entry['row_version'],
+					gmTools.coalesce(entry['health_issue'], gmTools.u_diameter, u'%s'),
+					gmTools.bool2subst(entry['issue_active'], u' (' + _('active') + u')', u' (' + _('inactive') + u')', u''),
+					gmTools.coalesce(entry['episode'], gmTools.u_diameter, u'%s'),
+					gmTools.bool2subst(entry['episode_open'], u' (' +  _('open') + u')', u' (' +  _('closed') + u')', u''),
+					enc_duration,
+					gmTools.coalesce(entry['encounter_l10n_type'], u'', u' (%s)'),
+				)
+				self.__data[entry['src_table']][entry['src_pk']]['formatted_root_item'] = _(
+					u'%s\n'
+					u'\n'
+					u'                        rev %s (%s) by %s in <%s>'
+				) % (
+					entry['narrative'].strip(),
+					entry['row_version'],
+					entry['date_modified'],
+					entry['modified_by'],
+					entry['src_table']
+				)
+			data.append ({
+				'table': entry['src_table'],
+				'pk': entry['src_pk']
+			})
+			if len(lines) > 1:
+				lines = lines[1:]
+				idx = 0
+				last_line = len(lines)
+				for entry_line in lines:
+					idx += 1
+					if entry_line.strip() == u'':
+						continue
+					if idx == last_line:
+						bar = gmTools.u_box_bottom_left_arc
+					else:
+						bar = gmTools.u_box_vert_light_4dashes
+					items.append([u'', bar, entry_line.rstrip(), who])
+					data.append ({
+						'table': entry['src_table'],
+						'pk': entry['src_pk']
+					})
+
+		self._LCTRL_journal.set_string_items(items)
+		self._LCTRL_journal.set_column_widths([wx.LIST_AUTOSIZE, wx.LIST_AUTOSIZE, wx.LIST_AUTOSIZE, wx.LIST_AUTOSIZE_USEHEADER])
+		self._LCTRL_journal.set_data(data)
+
+		self._LCTRL_journal.SetFocus()
+		return True
+
+	#--------------------------------------------------------
+	# internal helpers
+	#--------------------------------------------------------
+	def __register_events(self):
+		gmDispatcher.connect(signal = u'pre_patient_unselection', receiver = self._on_pre_patient_unselection)
+		gmDispatcher.connect(signal = u'post_patient_selection', receiver = self._on_post_patient_selection)
+		return True
+
+	#--------------------------------------------------------
+	# event handlers
+	#--------------------------------------------------------
+	def _on_pre_patient_unselection(self):
+		self._LCTRL_journal.remove_items_safely()
+		self._TCTRL_details.SetValue(u'')
+		self.__data = {}
+		return True
+
+	#--------------------------------------------------------
+	def _on_post_patient_selection(self):
+		if self.GetParent().GetCurrentPage() != self:
+			return True
+		self.repopulate_ui()
+		return True
+
+	#--------------------------------------------------------
+	def _on_row_selected(self, evt):
+		# FIXME: work on all selected
+		data = self._LCTRL_journal.get_item_data(item_idx = evt.Index)
+		if self.__data[data['table']][data['pk']]['formatted_instance'] is None:
+			txt = _(
+				u'%s\n'
+				u'%s\n'
+				u'%s'
+			) % (
+				self.__data[data['table']][data['pk']]['formatted_header'],
+				gmTools.u_box_horiz_4dashes * 40,
+				self.__data[data['table']][data['pk']]['formatted_root_item']
+			)
+
+			self._TCTRL_details.SetValue(txt)
+			self.__load_timer.Stop()
+			self.__load_timer.Start(oneShot = True)
+			return
+
+		txt = _(
+			u'%s\n'
+			u'%s\n'
+			u'%s'
+		) % (
+			self.__data[data['table']][data['pk']]['formatted_header'],
+			gmTools.u_box_horiz_4dashes * 40,
+			self.__data[data['table']][data['pk']]['formatted_instance']
+		)
+		self._TCTRL_details.SetValue(txt)
+
+	#--------------------------------------------------------
+	def _on_load_details(self, cookie):
+		data = self._LCTRL_journal.get_selected_item_data(only_one = True)
+		if self.__data[data['table']][data['pk']]['formatted_instance'] is None:
+			self.__data[data['table']][data['pk']]['formatted_instance'] = gmClinicalRecord.format_clin_root_item(data['table'], data['pk'], patient = gmPerson.gmCurrentPatient())
+		txt = _(
+			u'%s\n'
+			u'%s\n'
+			u'%s'
+		) % (
+			self.__data[data['table']][data['pk']]['formatted_header'],
+			gmTools.u_box_horiz_4dashes * 40,
+			self.__data[data['table']][data['pk']]['formatted_instance']
+		)
+		wx.CallAfter(self._TCTRL_details.SetValue, txt)
+
+	#--------------------------------------------------------
+	def _on_order_by_encounter_selected(self, event):
+		self.repopulate_ui()
+
+	#--------------------------------------------------------
+	def _on_order_by_last_mod_selected(self, event):
+		self.repopulate_ui()
+
+	#--------------------------------------------------------
+	def _on_order_by_item_time_selected(self, event):
+		self.repopulate_ui()
+
+	#--------------------------------------------------------
+	def _on_order_by_item_time_selected(self, event):
+		event.Skip()
+		self.repopulate_ui()
+
+	#--------------------------------------------------------
+	def _on_edit_button_pressed(self, event):
+		event.Skip()
+
+	#--------------------------------------------------------
+	def _on_delete_button_pressed(self, event):
+		event.Skip()
+
+	#--------------------------------------------------------
+#	def _on_button_find_pressed(self, event):
+#		self._TCTRL_details.show_find_dialog(title = _('Find text in EMR Journal'))
+
 #================================================================
 # MAIN
 #----------------------------------------------------------------
@@ -1442,7 +1766,7 @@ if __name__ == '__main__':
 				patient.cleanup()
 			except:
 				print "error cleaning up patient"
-	except StandardError:
+	except Exception:
 		_log.exception("unhandled exception caught !")
 		# but re-raise them
 		raise
diff --git a/client/wxpython/gmEMRStructWidgets.py b/client/wxpython/gmEMRStructWidgets.py
index 8405e87..c72eb55 100644
--- a/client/wxpython/gmEMRStructWidgets.py
+++ b/client/wxpython/gmEMRStructWidgets.py
@@ -49,18 +49,21 @@ _log = logging.getLogger('gm.ui')
 # EMR access helper functions
 #----------------------------------------------------------------
 def emr_access_spinner(time2spin=0):
-	"""Spin time in seconds."""
+	"""Spin time in seconds but let wx go on."""
 	if time2spin == 0:
 		return
-	sleep_time = 0.1
+	sleep_time = 0.1			# 100ms
 	total_rounds = int(time2spin / sleep_time)
 	if total_rounds < 1:
+		wx.Yield()
+		time.sleep(sleep_time)
 		return
 	rounds = 0
 	while rounds < total_rounds:
 		wx.Yield()
 		time.sleep(sleep_time)
 		rounds += 1
+
 #================================================================
 # performed procedure related widgets/functions
 #----------------------------------------------------------------
@@ -71,9 +74,23 @@ def manage_performed_procedures(parent=None):
 
 	if parent is None:
 		parent = wx.GetApp().GetTopWindow()
+
+	#-----------------------------------------
+	def get_tooltip(procedure=None):
+		if procedure is None:
+			return None
+		return procedure.format (
+			left_margin = 1,
+			include_episode = False,
+			include_codes = False,
+			include_address = True,
+			include_comm = True
+		)
+
 	#-----------------------------------------
 	def edit(procedure=None):
 		return edit_procedure(parent = parent, procedure = procedure)
+
 	#-----------------------------------------
 	def delete(procedure=None):
 		if gmEMRStructItems.delete_performed_procedure(procedure = procedure['pk_procedure']):
@@ -85,10 +102,10 @@ def manage_performed_procedures(parent=None):
 			beep = True
 		)
 		return False
+
 	#-----------------------------------------
 	def refresh(lctrl):
 		procs = emr.get_performed_procedures()
-
 		items = [
 			[
 				u'%s%s' % (
@@ -104,25 +121,28 @@ def manage_performed_procedures(parent=None):
 						)
 					)
 				),
+				p['performed_procedure'],
 				u'%s @ %s' % (p['unit'], p['organization']),
-				p['episode'],
-				p['performed_procedure']
+				p['episode']
 			] for p in procs
 		]
 		lctrl.set_string_items(items = items)
 		lctrl.set_data(data = procs)
+
 	#-----------------------------------------
 	gmListWidgets.get_choices_from_list (
 		parent = parent,
 		msg = _('\nSelect the procedure you want to edit !\n'),
 		caption = _('Editing performed procedures ...'),
-		columns = [_('When'), _('Where'), _('Episode'), _('Procedure')],
+		columns = [_('When'), _('Procedure'), _('Where'), _('Episode')],
 		single_selection = True,
 		edit_callback = edit,
 		new_callback = edit,
 		delete_callback = delete,
-		refresh_callback = refresh
+		refresh_callback = refresh,
+		list_tooltip_callback = get_tooltip
 	)
+
 #----------------------------------------------------------------
 def edit_procedure(parent=None, procedure=None):
 	ea = cProcedureEAPnl(parent = parent, id = -1)
@@ -135,6 +155,7 @@ def edit_procedure(parent=None, procedure=None):
 		return True
 	dlg.Destroy()
 	return False
+
 #----------------------------------------------------------------
 from Gnumed.wxGladeWidgets import wxgProcedureEAPnl
 
@@ -175,32 +196,24 @@ limit 25
 		if stay is None:
 			self._PRW_hospital_stay.SetText()
 			self._PRW_location.Enable(True)
-			self._PRW_location.display_as_disabled(False)
 			self._PRW_episode.Enable(True)
-			self._PRW_episode.display_as_disabled(False)
 			self._LBL_hospital_details.SetLabel(u'')
 		else:
 			self._PRW_location.SetText()
 			self._PRW_location.Enable(False)
-			self._PRW_location.display_as_disabled(True)
 			self._PRW_episode.SetText()
 			self._PRW_episode.Enable(False)
-			self._PRW_episode.display_as_disabled(True)
 			self._LBL_hospital_details.SetLabel(gmEMRStructItems.cHospitalStay(aPK_obj = stay).format())
 	#----------------------------------------------------------------
 	def _on_location_lost_focus(self):
 		loc = self._PRW_location.GetData()
 		if loc is None:
 			self._PRW_hospital_stay.Enable(True)
-			self._PRW_hospital_stay.display_as_disabled(False)
 			self._PRW_episode.Enable(False)
-			self._PRW_episode.display_as_disabled(True)
 		else:
 			self._PRW_hospital_stay.SetText()
 			self._PRW_hospital_stay.Enable(False)
-			self._PRW_hospital_stay.display_as_disabled(True)
 			self._PRW_episode.Enable(True)
-			self._PRW_episode.display_as_disabled(False)
 	#----------------------------------------------------------------
 	def _on_start_lost_focus(self):
 		if not self._DPRW_date.is_valid_timestamp():
@@ -383,23 +396,17 @@ limit 25
 		if self.data['pk_hospital_stay'] is None:
 			self._PRW_hospital_stay.SetText()
 			self._PRW_hospital_stay.Enable(False)
-			self._PRW_hospital_stay.display_as_disabled(True)
 			self._LBL_hospital_details.SetLabel(u'')
 			self._PRW_location.SetText(value = u'%s @ %s' % (self.data['unit'], self.data['organization']), data = self.data['pk_org_unit'])
 			self._PRW_location.Enable(True)
-			self._PRW_location.display_as_disabled(False)
 			self._PRW_episode.Enable(True)
-			self._PRW_episode.display_as_disabled(False)
 		else:
 			self._PRW_hospital_stay.SetText(value = u'%s @ %s' % (self.data['unit'], self.data['organization']), data = self.data['pk_hospital_stay'])
 			self._PRW_hospital_stay.Enable(True)
-			self._PRW_hospital_stay.display_as_disabled(False)
 			self._LBL_hospital_details.SetLabel(gmEMRStructItems.cHospitalStay(aPK_obj = self.data['pk_hospital_stay']).format())
 			self._PRW_location.SetText()
 			self._PRW_location.Enable(False)
-			self._PRW_location.display_as_disabled(True)
 			self._PRW_episode.Enable(False)
-			self._PRW_episode.display_as_disabled(True)
 
 		val, data = self._PRW_codes.generic_linked_codes2item_dict(self.data.generic_codes)
 		self._PRW_codes.SetText(val, data)
@@ -414,23 +421,17 @@ limit 25
 		if self.data['pk_hospital_stay'] is None:
 			self._PRW_hospital_stay.SetText()
 			self._PRW_hospital_stay.Enable(False)
-			self._PRW_hospital_stay.display_as_disabled(True)
 			self._LBL_hospital_details.SetLabel(u'')
 			self._PRW_location.SetText(value = u'%s @ %s' % (self.data['unit'], self.data['organization']), data = self.data['pk_org_unit'])
 			self._PRW_location.Enable(True)
-			self._PRW_location.display_as_disabled(False)
 			self._PRW_episode.Enable(True)
-			self._PRW_episode.display_as_disabled(False)
 		else:
 			self._PRW_hospital_stay.SetText(value = u'%s @ %s' % (self.data['unit'], self.data['organization']), data = self.data['pk_hospital_stay'])
 			self._PRW_hospital_stay.Enable(True)
-			self._PRW_hospital_stay.display_as_disabled(False)
 			self._LBL_hospital_details.SetLabel(gmEMRStructItems.cHospitalStay(aPK_obj = self.data['pk_hospital_stay']).format())
 			self._PRW_location.SetText()
 			self._PRW_location.Enable(False)
-			self._PRW_location.display_as_disabled(True)
 			self._PRW_episode.Enable(False)
-			self._PRW_episode.display_as_disabled(True)
 
 		self._PRW_procedure.SetFocus()
 	#----------------------------------------------------------------
@@ -1077,6 +1078,7 @@ class cEpisodeListSelectorDlg(gmListWidgets.cGenericListSelectorDlg):
 		)
 		self._LCTRL_items.set_column_widths()
 		self._LCTRL_items.set_data(data = episodes)
+
 #----------------------------------------------------------------
 class cEpisodeDescriptionPhraseWheel(gmPhraseWheel.cPhraseWheel):
 	"""Let user select an episode *description*.
@@ -1119,6 +1121,7 @@ LIMIT 30
 		)
 		gmPhraseWheel.cPhraseWheel.__init__(self, *args, **kwargs)
 		self.matcher = mp
+
 #----------------------------------------------------------------
 class cEpisodeSelectionPhraseWheel(gmPhraseWheel.cPhraseWheel):
 	"""Let user select an episode.
@@ -1369,7 +1372,7 @@ class cEpisodeEditAreaPnl(gmEditArea.cGenericEditAreaMixin, wxgEpisodeEditAreaPn
 		if self.data is None:
 			ident = gmPerson.gmCurrentPatient()
 		else:
-			ident = gmPerson.cIdentity(aPK_obj = self.data['pk_patient'])
+			ident = gmPerson.cPerson(aPK_obj = self.data['pk_patient'])
 		self._TCTRL_patient.SetValue(ident.get_description_gender())
 		self._PRW_issue.SetText()
 		self._PRW_description.SetText()
@@ -1379,7 +1382,7 @@ class cEpisodeEditAreaPnl(gmEditArea.cGenericEditAreaMixin, wxgEpisodeEditAreaPn
 		self._PRW_codes.SetText()
 	#----------------------------------------------------------------
 	def _refresh_from_existing(self):
-		ident = gmPerson.cIdentity(aPK_obj = self.data['pk_patient'])
+		ident = gmPerson.cPerson(aPK_obj = self.data['pk_patient'])
 		self._TCTRL_patient.SetValue(ident.get_description_gender())
 
 		if self.data['pk_health_issue'] is not None:
@@ -2132,7 +2135,7 @@ if __name__ == '__main__':
 		# lauch emr dialogs test application
 #		app = testapp(0)
 #		app.MainLoop()
-#	except StandardError:
+#	except Exception:
 #		_log.exception("unhandled exception caught !")
 		# but re-raise them
 #		raise
diff --git a/client/wxpython/gmEMRTimelineWidgets.py b/client/wxpython/gmEMRTimelineWidgets.py
index 1ad9375..19db51f 100644
--- a/client/wxpython/gmEMRTimelineWidgets.py
+++ b/client/wxpython/gmEMRTimelineWidgets.py
@@ -10,7 +10,6 @@ __license__ = "GPL v2 or later"
 import sys
 import logging
 import os.path
-#codecs
 
 
 # 3rd party
diff --git a/client/wxpython/gmEditArea.py b/client/wxpython/gmEditArea.py
index 6248492..bfd84b6 100644
--- a/client/wxpython/gmEditArea.py
+++ b/client/wxpython/gmEditArea.py
@@ -400,6 +400,8 @@ class cGenericEditAreaDlg2(wxgGenericEditAreaDlg2.wxgGenericEditAreaDlg2):
 		self._BTN_extra_left.Show()
 
 	left_extra_button = property(lambda x:x, _set_left_extra_button)
+
+
 #====================================================================
 #====================================================================
 #====================================================================
@@ -618,7 +620,7 @@ class cEditArea2(wx.Panel):
 			else:
 				self._save_modified_entry()
 				self.reset_ui()
-		except gmExceptions.InvalidInputError, err:
+		except Exception as err:
 			# nasty evil popup dialogue box
 			# but for invalid input we want to interrupt user
 			gmGuiHelpers.gm_show_error (err, _("Invalid Input"))
@@ -745,7 +747,7 @@ class cEditArea2(wx.Panel):
 	def _add_field(self, line=None, pos=None, widget=None, weight=0):
 		if None in (line, pos, widget):
 			_log.error('argument error in [%s]: line=%s, pos=%s, widget=%s' % (self.__class__.__name__, line, pos, widget))
-		if not self.fields.has_key(line):
+		if line not in self.fields:
 			self.fields[line] = {}
 		self.fields[line][pos] = (widget, weight)
 	#----------------------------------------------------------------
@@ -887,7 +889,11 @@ class cEditArea(wx.Panel):
 			try:
 				vszr.Add(self.field_line_szr[line], self.prompts[line][2], flag = wx.EXPAND) # use same lineweight as prompts
 			except KeyError:
-				_log.error("Error with line=%s, self.field_line_szr has key:%s; self.prompts has key: %s" % (line, self.field_line_szr.has_key(line), self.prompts.has_key(line) ) )
+				_log.error("Error with line=%s, self.field_line_szr has key:%s; self.prompts has key: %s" % (
+					line,
+					(line in self.field_line_szr),
+					(line in self.prompts)
+				))
 		# put them on the panel
 		self.fields_pnl.SetSizer(vszr)
 		vszr.Fit(self.fields_pnl)
@@ -947,7 +953,7 @@ class cEditArea(wx.Panel):
 	def _add_field(self, line=None, pos=None, widget=None, weight=0):
 		if None in (line, pos, widget):
 			_log.error('argument error in [%s]: line=%s, pos=%s, widget=%s' % (self.__class__.__name__, line, pos, widget))
-		if not self.fields.has_key(line):
+		if line not in self.fields:
 			self.fields[line] = {}
 		self.fields[line][pos] = (widget, weight)
 	#----------------------------------------------------------------
@@ -1012,7 +1018,7 @@ class cEditArea(wx.Panel):
 			else:
 				self._save_modified_entry()
 				self.set_data()
-		except gmExceptions.InvalidInputError, err:
+		except Exception as err:
 			# nasty evil popup dialogue box
 			# but for invalid input we want to interrupt user
 			gmGuiHelpers.gm_show_error (err, _("Invalid Input"))
@@ -1224,11 +1230,10 @@ class gmEditArea(cEditArea):
 	def _makeExtraColumns(self , parent, lines, weightMap = {} ):
 		"""this is a utlity method to add extra columns"""
 		#add an extra column if the class has attribute "extraColumns"
-		if self.__class__.__dict__.has_key("extraColumns"):
+		if u"extraColumns" in self.__class__.__dict__:
 			for x in self.__class__.extraColumns:
 				lines = self._addColumn(parent, lines, x, weightMap)
 		return lines
-	
 
 
 	def _addColumn(self, parent, lines, extra, weightMap = {}, existingWeight = 5 , extraWeight = 2):
@@ -1240,33 +1245,30 @@ class gmEditArea(cEditArea):
 		# 	; extra is a list  of tuples of  format -
 			# (	key for input_fields, widget label , widget class to instantiate ) 
 		"""
-		
 		newlines = []
 		i = 0
 		for x in lines:
 			# adjust weight if line has specific weightings.
-			if weightMap.has_key( x):
+			if x in weightMap:
 				(existingWeight, extraWeight) = weightMap[x]
 
 			szr = wx.BoxSizer(wx.HORIZONTAL)
 			szr.Add( x, existingWeight, wx.EXPAND)
-			if i < len(extra) and  extra[i] <> None:
-				
+			if i < len(extra) and  extra[i] is not None:
 				(inputKey, widgetLabel, aclass) = extra[i]
 				if aclass.__name__ in CONTROLS_WITHOUT_LABELS:
 					szr.Add( self._make_prompt(parent,  widgetLabel, richards_blue)  )
 					widgetLabel = ""
 
-					
 				w = aclass( parent, -1, widgetLabel)
 				if not aclass.__name__ in CONTROLS_WITHOUT_LABELS:
 					w.SetForegroundColour(richards_blue)
-				
+
 				szr.Add(w, extraWeight , wx.EXPAND)
 
 				# make sure the widget is locatable via input_fields
 				self.input_fields[inputKey] = w
-				
+
 			newlines.append(szr)
 			i += 1
 		return newlines	
@@ -1637,16 +1639,16 @@ class gmReferralEditArea(gmEditArea):
 		We are always saving a "new entry" here because data_ID is always None
 		"""
 		if not self.recipient:
-			raise gmExceptions.InvalidInputError(_('must have a recipient'))
+			raise UserWarning(_('must have a recipient'))
 		if self.fld_address.GetSelection() == -1:
-			raise gmExceptions.InvalidInputError(_('must select address'))
+			raise UserWarning(_('must select address'))
 		channel, addr = self.fld_address.GetClientData (self.fld_address.GetSelection())
 		text = self.fld_text.GetValue()
 		flags = {}
 		flags['meds'] = self.fld_med.GetValue()
 		flags['pasthx'] = self.fld_past.GetValue()
 		if not gmReferral.create_referral (self._patient, self.recipient, channel, addr, text, flags):
-			raise gmExceptions.InvalidInputError('error sending form')
+			raise UserWarning('error sending form')
 
 #====================================================================
 #====================================================================
diff --git a/client/wxpython/gmEncounterWidgets.py b/client/wxpython/gmEncounterWidgets.py
index 40920f7..7d73bde 100644
--- a/client/wxpython/gmEncounterWidgets.py
+++ b/client/wxpython/gmEncounterWidgets.py
@@ -415,7 +415,6 @@ class cEncounterEditAreaPnl(wxgEncounterEditAreaPnl.wxgEncounterEditAreaPnl):
 
 		self._PRW_encounter_type.SetText(self.__encounter['l10n_type'], data = self.__encounter['pk_type'])
 		self._PRW_location.Enable(True)
-		self._PRW_location.display_as_disabled(False)
 		branch = self.__encounter.praxis_branch
 		if branch is None:		# None or old entry because praxis has been re-configured
 			unit = self.__encounter.org_unit
@@ -423,7 +422,6 @@ class cEncounterEditAreaPnl(wxgEncounterEditAreaPnl.wxgEncounterEditAreaPnl):
 				self._PRW_location.SetText(u'', data = None)
 			else:										# old entry
 				self._PRW_location.Enable(False)
-				self._PRW_location.display_as_disabled(True)
 				self._PRW_location.SetText(_('old praxis branch: %s (%s)') % (unit['unit'], unit['organization']), data = None)
 		else:
 			self._PRW_location.SetText(self.__encounter['praxis_branch'], data = branch['pk_praxis_branch'])
diff --git a/client/wxpython/gmExportAreaWidgets.py b/client/wxpython/gmExportAreaWidgets.py
index 54b2bfb..70c5ee7 100644
--- a/client/wxpython/gmExportAreaWidgets.py
+++ b/client/wxpython/gmExportAreaWidgets.py
@@ -65,12 +65,8 @@ class cExportAreaPluginPnl(wxgExportAreaPluginPnl.wxgExportAreaPluginPnl, gmRege
 		pat = gmPerson.gmCurrentPatient()
 		if not pat.connected:
 			return
-		# no idea why this does not work:
-#		print "patient pk in signal:", kwargs['pk_identity']
-#		print "current patient ID:", pat.ID
-#		if kwargs['pk_identity'] == pat.ID:
-#			print "signal is about current patient"
-#			self.__on_table_mod()
+		if kwargs['pk_identity'] != pat.ID:
+			return
 		self._schedule_data_reget()
 	#--------------------------------------------------------
 	def _on_list_item_selected(self, event):
@@ -112,10 +108,11 @@ class cExportAreaPluginPnl(wxgExportAreaPluginPnl.wxgExportAreaPluginPnl, gmRege
 		if selected_docs is None:
 			return
 		gmPerson.gmCurrentPatient().export_area.add_documents(documents = selected_docs)
+
 	#--------------------------------------------------------
 	def _on_clipboard_items_button_pressed(self, event):
 		event.Skip()
-		clip = gmGuiHelpers.clipboard2file()
+		clip = gmGuiHelpers.clipboard2file(check_for_filename = True)
 		if clip is None:
 			return
 		if clip is False:
@@ -125,6 +122,7 @@ class cExportAreaPluginPnl(wxgExportAreaPluginPnl.wxgExportAreaPluginPnl, gmRege
 				title = _(u'Loading clipboard item (saved to file) into export area'),
 				error = _(u'Cannot add the following clip to the export area:\n%s ') % clip
 			)
+
 	#--------------------------------------------------------
 	def _on_scan_items_button_pressed(self, event):
 		event.Skip()
@@ -137,6 +135,7 @@ class cExportAreaPluginPnl(wxgExportAreaPluginPnl.wxgExportAreaPluginPnl, gmRege
 				title = _(u'Scanning files into export area'),
 				error = _(u'Cannot add (some of) the following scans to the export area:\n%s ') % u'\n '.join(fnames)
 			)
+
 	#--------------------------------------------------------
 	def _on_remove_items_button_pressed(self, event):
 		event.Skip()
@@ -208,10 +207,11 @@ class cExportAreaPluginPnl(wxgExportAreaPluginPnl.wxgExportAreaPluginPnl, gmRege
 					u'\n'
 					u' [%s]\n'
 					u'\n'
-					u'is not empty. Do you want to use it for saving the\n'
-					u'export area documents into, nevertheless ?\n'
+					u'already contains files. Do you still want to save the\n'
+					u'selected export area documents into that directory ?\n'
 					u'\n'
-					u'(this can be useful for including external documents)\n'
+					u'(this is useful for including the external documents\n'
+					u' already stored in or below this directory)\n'
 					u'\n'
 					u'[NO] will create a subdirectory for you and use that.'
 				) % path,
@@ -220,13 +220,24 @@ class cExportAreaPluginPnl(wxgExportAreaPluginPnl.wxgExportAreaPluginPnl, gmRege
 			if reuse_nonempty_dir is None:
 				return True
 			if reuse_nonempty_dir is False:
-				path = gmTools.get_unique_filename (
+				path = gmTools.mk_sandbox_dir (
 					prefix = u'export-%s-' % gmPerson.gmCurrentPatient().dirname,
-					suffix = '.dir',
-					tmp_dir = path
+					base_dir = path
 				)
 
-		export_dir = gmPerson.gmCurrentPatient().export_area.export_with_meta_data(base_dir = path, items = items)
+		include_metadata = gmGuiHelpers.gm_show_question (
+			title = _(u'Saving export area documents'),
+			question = _(
+				u'Create descriptive metadata files\n'
+				u'and save them alongside the\n'
+				u'selected export area documents ?'
+			),
+			cancel_button = True
+		)
+		if include_metadata is None:
+			return True
+
+		export_dir = gmPerson.gmCurrentPatient().export_area.export(base_dir = path, items = items, with_metadata = include_metadata)
 
 		self.save_soap_note(soap = _('Saved to [%s]:\n - %s') % (
 			export_dir,
@@ -264,7 +275,7 @@ class cExportAreaPluginPnl(wxgExportAreaPluginPnl.wxgExportAreaPluginPnl, gmRege
 			if not gmTools.dir_is_empty(path2include):
 				base_dir = path2include
 
-		export_dir = gmPerson.gmCurrentPatient().export_area.export_with_meta_data(base_dir = base_dir, items = items)
+		export_dir = gmPerson.gmCurrentPatient().export_area.export(base_dir = base_dir, items = items, with_metadata = True)
 		if export_dir is None:
 			return False
 
@@ -519,15 +530,14 @@ class cPrintMgrPluginPnl(wxgPrintMgrPluginPnl.wxgPrintMgrPluginPnl, gmRegetMixin
 	def _on_table_mod(self, *args, **kwargs):
 		if kwargs['table'] != 'clin.export_item':
 			return
-#		pat = gmPerson.gmCurrentPatient()
-#		if not pat.connected:
-#			return
-		# no idea why this does not work:
-#		print "patient pk in signal:", kwargs['pk_identity']
-#		print "current patient ID:", pat.ID
-#		if kwargs['pk_identity'] == pat.ID:
-#			print "signal is about current patient"
-#			self.__on_table_mod()
+		if self._RBTN_all_patients.Value is True:
+			self._schedule_data_reget()
+			return
+		pat = gmPerson.gmCurrentPatient()
+		if not pat.connected:
+			return
+		if kwargs['pk_identity'] != pat.ID:
+			return
 		self._schedule_data_reget()
 	#--------------------------------------------------------
 	def _on_all_patients_selected(self, event):
@@ -599,11 +609,6 @@ class cPrintMgrPluginPnl(wxgPrintMgrPluginPnl.wxgPrintMgrPluginPnl, gmRegetMixin
 		self._BTN_export_printouts.Enable(False)
 	#--------------------------------------------------------
 	# reget mixin API
-	#
-	# remember to call
-	#	self._schedule_data_reget()
-	# whenever you learn of data changes from database
-	# listener threads, dispatcher signals etc.
 	#--------------------------------------------------------
 	def _populate_with_data(self):
 		if self._RBTN_all_patients.Value is True:
diff --git a/client/wxpython/gmExternalCareWidgets.py b/client/wxpython/gmExternalCareWidgets.py
index f4fae4b..2db9871 100644
--- a/client/wxpython/gmExternalCareWidgets.py
+++ b/client/wxpython/gmExternalCareWidgets.py
@@ -56,7 +56,8 @@ def manage_external_care(parent=None):
 	def get_tooltip(data):
 		if data is None:
 			return None
-		return u'\n'.join(data.format(with_health_issue = True))
+		return u'\n'.join(data.format(with_health_issue = True, with_address = True, with_comms = True))
+
 	#------------------------------------------------------------
 	def refresh(lctrl):
 		care = emr.get_external_care_items(order_by = u'issue, provider, unit, organization')
@@ -213,10 +214,10 @@ class cExternalCareMgrPnl(gmListWidgets.cGenericListManagerPnl):
 
 		gmListWidgets.cGenericListManagerPnl.__init__(self, *args, **kwargs)
 
+		self.refresh_callback = self.refresh
 		self.new_callback = self._add_care
 		self.edit_callback = self._edit_care
 		self.delete_callback = self._del_care
-		self.refresh_callback = self.refresh
 
 		self.__init_ui()
 		self.refresh()
diff --git a/client/wxpython/gmFormWidgets.py b/client/wxpython/gmFormWidgets.py
index 9c4cc37..80ed51c 100644
--- a/client/wxpython/gmFormWidgets.py
+++ b/client/wxpython/gmFormWidgets.py
@@ -46,7 +46,7 @@ _ID_FORM_DISPOSAL_ARCHIVE_ONLY = range(4)
 #============================================================
 # generic form generation and handling convenience functions
 #------------------------------------------------------------
-def print_doc_from_template(parent=None, jobtype=None, episode=None):
+def print_doc_from_template(parent=None, jobtype=None, episode=None, edit_form=None):
 
 	form = generate_form_from_template (
 		parent = parent,
@@ -55,7 +55,7 @@ def print_doc_from_template(parent=None, jobtype=None, episode=None):
 			u'visual progress note',
 			u'invoice'
 		],
-		edit = True
+		edit = edit_form			# default None = respect template setting
 	)
 	if form is None:
 		return False
@@ -63,11 +63,15 @@ def print_doc_from_template(parent=None, jobtype=None, episode=None):
 	if form in [True, False]:	# returned by special OOo/LO handling
 		return form
 
+	if episode is None:
+		epi_name = u'administrative'
+	else:
+		epi_name = episode['description']
 	return act_on_generated_forms (
 		parent = parent,
 		forms = [form],
 		jobtype = jobtype,
-		episode_name = u'administrative',
+		episode_name = epi_name,
 		review_copy_as_normal = True
 	)
 
@@ -240,7 +244,8 @@ def act_on_generated_forms(parent=None, forms=None, jobtype=None, episode_name=N
 				unlock_patient = False,
 				episode = epi,
 				review_as_normal = review_copy_as_normal,
-				reference = None
+				reference = None,
+				pk_org_unit = gmPraxis.gmCurrentPraxisBranch()['pk_org_unit']
 			)
 
 		return True
diff --git a/client/wxpython/gmGuiHelpers.py b/client/wxpython/gmGuiHelpers.py
index a515350..4054422 100644
--- a/client/wxpython/gmGuiHelpers.py
+++ b/client/wxpython/gmGuiHelpers.py
@@ -11,7 +11,7 @@ __license__ = "GPL v2 or later (details at http://www.gnu.org)"
 import os
 import logging
 import sys
-import codecs
+import io
 
 
 import wx
@@ -23,6 +23,7 @@ from Gnumed.pycommon import gmMatchProvider
 from Gnumed.pycommon import gmExceptions
 from Gnumed.pycommon import gmLog2
 from Gnumed.pycommon import gmTools
+from Gnumed.pycommon import gmDispatcher
 from Gnumed.wxpython import gmPhraseWheel
 
 
@@ -304,7 +305,7 @@ def clipboard2text():
 	return None
 
 #-------------------------------------------------------------------------
-def clipboard2file():
+def clipboard2file(check_for_filename=False):
 
 	if wx.TheClipboard.IsOpened():
 		return False
@@ -315,11 +316,18 @@ def clipboard2file():
 	data_obj = wx.TextDataObject()
 	got_it = wx.TheClipboard.GetData(data_obj)
 	if got_it:
+		clipboard_text_content = data_obj.Text
+		wx.TheClipboard.Close()
+		if check_for_filename:
+			try:
+				io.open(clipboard_text_content).close()
+				return clipboard_text_content
+			except IOError:
+				_log.exception('clipboard does not seem to hold filename: %s', clipboard_text_content)
 		fname = gmTools.get_unique_filename(prefix = u'gm-clipboard-', suffix = u'.txt')
-		target_file = codecs.open(fname, u'wb', u'utf8')
-		target_file.write(data_obj.Text)
+		target_file = io.open(fname, mode = u'wt', encoding = u'utf8')
+		target_file.write(clipboard_text_content)
 		target_file.close()
-		wx.TheClipboard.Close()
 		return fname
 
 	data_obj = wx.BitmapDataObject()
@@ -334,27 +342,30 @@ def clipboard2file():
 	return None
 
 #-------------------------------------------------------------------------
-def file2clipboard(filename=None, announce_result=False):
-
+def text2clipboard(text=None, announce_result=False):
 	if wx.TheClipboard.IsOpened():
 		return False
-
 	if not wx.TheClipboard.Open():
 		return False
-
-	f = codecs.open(filename, u'rU', u'utf8')
 	data_obj = wx.TextDataObject()
-	data_obj.SetText(f.read())
-	f.close()
+	data_obj.SetText(text)
 	wx.TheClipboard.SetData(data_obj)
 	wx.TheClipboard.Close()
 	if announce_result:
+		gmDispatcher.send(signal = 'statustext', msg = _('The text has been copied into the clipboard.'), beep = False)
+	return True
+
+#-------------------------------------------------------------------------
+def file2clipboard(filename=None, announce_result=False):
+	f = io.open(filename, mode = u'rt', encoding = u'utf8')
+	result = text2clipboard(text = f.read(), announce_result = False)
+	f.close()
+	if announce_result:
 		gm_show_info (
 			title = _('file2clipboard'),
 			info = _('The file [%s] has been copied into the clipboard.') % filename
 		)
-
-	return True
+	return result
 
 # ========================================================================
 class cFileDropTarget(wx.FileDropTarget):
@@ -392,7 +403,7 @@ def file2scaled_image(filename=None, height=100):
 		img_data.Rescale(rescaled_width, rescaled_height, quality = wx.IMAGE_QUALITY_HIGH)		# w, h
 		bitmap = wx.BitmapFromImage(img_data)
 		del img_data
-	except StandardError:
+	except Exception:
 		_log.exception('cannot load image from [%s]', filename)
 		del img_data
 		del bitmap
@@ -423,6 +434,7 @@ def gm_show_error(aMessage=None, aTitle = None, error=None, title=None):
 	dlg.ShowModal()
 	dlg.Destroy()
 	return True
+
 #-------------------------------------------------------------------------
 def gm_show_info(aMessage=None, aTitle=None, info=None, title=None):
 
@@ -445,6 +457,7 @@ def gm_show_info(aMessage=None, aTitle=None, info=None, title=None):
 	dlg.ShowModal()
 	dlg.Destroy()
 	return True
+
 #-------------------------------------------------------------------------
 def gm_show_warning(aMessage=None, aTitle=None):
 	if aMessage is None:
@@ -462,6 +475,7 @@ def gm_show_warning(aMessage=None, aTitle=None):
 	dlg.ShowModal()
 	dlg.Destroy()
 	return True
+
 #-------------------------------------------------------------------------
 def gm_show_question(aMessage='programmer forgot to specify question', aTitle='generic user question dialog', cancel_button=False, question=None, title=None):
 	if cancel_button:
diff --git a/client/wxpython/gmGuiMain.py b/client/wxpython/gmGuiMain.py
index 4578730..935c1c2 100644
--- a/client/wxpython/gmGuiMain.py
+++ b/client/wxpython/gmGuiMain.py
@@ -1,5 +1,8 @@
 # -*- coding: utf-8 -*-
-"""GNUmed GUI client.
+
+from __future__ import print_function
+
+__doc__ = """GNUmed GUI client.
 
 This contains the GUI application framework and main window
 of the all signing all dancing GNUmed Python Reference
@@ -29,6 +32,7 @@ import glob
 _log = logging.getLogger('gm.main')
 
 # 3rd party libs
+# maybe show HTML page if wxversion/wx cannot be imported (and thus needs to be installed) ?
 # wxpython version cannot be enforced inside py2exe and friends
 if not hasattr(sys, 'frozen'):
 	import wxversion
@@ -48,18 +52,18 @@ try:
 	import wx
 	_log.info('wxPython version loaded: %s %s' % (wx.VERSION_STRING, wx.PlatformInfo))
 except ImportError:
-	print "GNUmed startup: Cannot import wxPython library."
-	print "GNUmed startup: Make sure wxPython is installed."
-	print 'CRITICAL ERROR: Error importing wxPython. Halted.'
+	print('GNUmed startup: Cannot import wxPython library.')
+	print('GNUmed startup: Make sure wxPython is installed.')
+	print('CRITICAL ERROR: Error importing wxPython. Halted.')
 	raise
 
 # do this check just in case, so we can make sure
 # py2exe and friends include the proper version, too
 version = int(u'%s%s' % (wx.MAJOR_VERSION, wx.MINOR_VERSION))
 if (version < 28) or ('unicode' not in wx.PlatformInfo):
-	print "GNUmed startup: Unsupported wxPython version (%s: %s)." % (wx.VERSION_STRING, wx.PlatformInfo)
-	print "GNUmed startup: wxPython 2.8+ with unicode support is required."
-	print 'CRITICAL ERROR: Proper wxPython version not found. Halted.'
+	print('GNUmed startup: Unsupported wxPython version (%s: %s).' % (wx.VERSION_STRING, wx.PlatformInfo))
+	print('GNUmed startup: wxPython 2.8+ with unicode support is required.')
+	print('CRITICAL ERROR: Proper wxPython version not found. Halted.')
 	raise ValueError('wxPython 2.8+ with unicode support not found')
 
 
@@ -78,6 +82,7 @@ from Gnumed.pycommon import gmBackendListener
 from Gnumed.pycommon import gmCfg2
 from Gnumed.pycommon import gmLog2
 from Gnumed.pycommon import gmNetworkTools
+from Gnumed.pycommon import gmMimeLib
 
 from Gnumed.business import gmPerson
 from Gnumed.business import gmClinicalRecord
@@ -101,7 +106,7 @@ from Gnumed.wxpython import gmListWidgets
 from Gnumed.wxpython import gmProviderInboxWidgets
 from Gnumed.wxpython import gmCfgWidgets
 from Gnumed.wxpython import gmExceptionHandlingWidgets
-from Gnumed.wxpython import gmNarrativeWidgets
+from Gnumed.wxpython import gmNarrativeWorkflows
 from Gnumed.wxpython import gmPhraseWheel
 from Gnumed.wxpython import gmMedicationWidgets
 from Gnumed.wxpython import gmStaffWidgets
@@ -128,6 +133,9 @@ from Gnumed.wxpython import gmEncounterWidgets
 from Gnumed.wxpython import gmAutoHintWidgets
 from Gnumed.wxpython import gmPregWidgets
 from Gnumed.wxpython import gmExternalCareWidgets
+from Gnumed.wxpython import gmHabitWidgets
+from Gnumed.wxpython import gmSubstanceMgmtWidgets
+from Gnumed.wxpython import gmVisualProgressNoteWidgets
 
 
 try:
@@ -366,6 +374,9 @@ class gmTopLevelFrame(wx.Frame):
 		item = menu_cfg_ui.Append(-1, _('Medication measurements'), _('Select the measurements panel to show in the medications plugin.'))
 		self.Bind(wx.EVT_MENU, self.__on_cfg_meds_lab_pnl, item)
 
+		item = menu_cfg_ui.Append(-1, _('General measurements'), _('Select the measurements panel to show in the top pane.'))
+		self.Bind(wx.EVT_MENU, self.__on_cfg_top_lab_pnl, item)
+
 		# -- submenu gnumed / config / ui / docs
 		menu_cfg_doc = wx.Menu()
 
@@ -436,6 +447,9 @@ class gmTopLevelFrame(wx.Frame):
 		item = menu_cfg_soap_editing.Append(-1, _('Auto-open editors'), _('Configure auto-opening editors for recent problems.'))
 		self.Bind(wx.EVT_MENU, self.__on_allow_auto_open_episodes, item)
 
+		item = menu_cfg_soap_editing.Append(-1, _('SOAP fields'), _('Configure SOAP editor - individual SOAP fields vs text editor like'))
+		self.Bind(wx.EVT_MENU, self.__on_use_fields_in_soap_editor, item)
+
 		menu_cfg_ui.AppendMenu(wx.NewId(), _('Progress notes handling ...'), menu_cfg_soap_editing)
 
 		menu_config.AppendMenu(wx.NewId(), _('User interface ...'), menu_cfg_ui)
@@ -702,6 +716,9 @@ class gmTopLevelFrame(wx.Frame):
 		item = menu_emr_edit.Append(-1, _('Suppressed hints'), _('Manage dynamic hints suppressed in this patient.'))
 		self.Bind(wx.EVT_MENU, self.__on_manage_suppressed_hints, item)
 
+		item = menu_emr_edit.Append(-1, _('Substance abuse'), _('Manage substance abuse documentation of this patient.'))
+		self.Bind(wx.EVT_MENU, self.__on_manage_substance_abuse, item)
+
 		menu_emr.AppendMenu(wx.NewId(), _('&Add / Edit ...'), menu_emr_edit)
 
 		# - EMR /
@@ -714,7 +731,6 @@ class gmTopLevelFrame(wx.Frame):
 #		# - EMR / Show as /
 #		menu_emr_show = wx.Menu()
 
-#		item = menu_emr_show.Append(-1, _('Statistics'), _('Show a high-level statistic summary of the EMR.'))
 		item = menu_emr.Append(-1, _('Statistics'), _('Show a high-level statistic summary of the EMR.'))
 		self.Bind(wx.EVT_MENU, self.__on_show_emr_summary, item)
 
@@ -726,29 +742,23 @@ class gmTopLevelFrame(wx.Frame):
 		# -- EMR / Export as
 		menu_emr_export = wx.Menu()
 
-		ID_EXPORT_EMR_ASCII = wx.NewId()
-		menu_emr_export.Append (
-			ID_EXPORT_EMR_ASCII,
-			_('Text document'),
-			_("Export the EMR of the active patient into a text file")
-		)
-		wx.EVT_MENU(self, ID_EXPORT_EMR_ASCII, self.OnExportEMR)
+		item = menu_emr_export.Append(-1, _('Journal (encounters) to file'), _("Save the EMR of the active patient as a chronological journal into a text file"))
+		self.Bind(wx.EVT_MENU, self.__on_save_emr_as_journal, item)
 
-		ID_EXPORT_EMR_JOURNAL = wx.NewId()
-		menu_emr_export.Append (
-			ID_EXPORT_EMR_JOURNAL,
-			_('Journal'),
-			_("Export the EMR of the active patient as a chronological journal into a text file")
-		)
-		wx.EVT_MENU(self, ID_EXPORT_EMR_JOURNAL, self.__on_export_emr_as_journal)
+		item = menu_emr_export.Append(-1, _('Journal (encounters) to export area'), _("Copy EMR of the active patient as a chronological journal into export area"))
+		self.Bind(wx.EVT_MENU, self.__on_export_emr_as_journal, item)
 
-		ID_EXPORT_MEDISTAR = wx.NewId()
-		menu_emr_export.Append (
-			ID_EXPORT_MEDISTAR,
-			_('MEDISTAR import format'),
-			_("GNUmed -> MEDISTAR. Export progress notes of active patient's active encounter into a text file.")
-		)
-		wx.EVT_MENU(self, ID_EXPORT_MEDISTAR, self.__on_export_for_medistar)
+		item = menu_emr_export.Append(-1, _('Journal (mod time) to file'), _("Save the EMR of the active patient as journal by last modification time into a text file"))
+		self.Bind(wx.EVT_MENU, self.__on_save_emr_by_last_mod, item)
+
+		item = menu_emr_export.Append(-1, _('Journal (mod time) to export area'), _("Copy EMR of the active patient as journal by last modification time into export area"))
+		self.Bind(wx.EVT_MENU, self.__on_export_emr_by_last_mod, item)
+
+		item = menu_emr_export.Append(-1, _('Text document'), _("Save the EMR of the active patient into a text file"))
+		self.Bind(wx.EVT_MENU, self.__on_save_emr_as_textfile, item)
+
+		item = menu_emr_export.Append(-1, _('MEDISTAR import format'), _("GNUmed -> MEDISTAR. Save progress notes of active patient's active encounter into a text file."))
+		self.Bind(wx.EVT_MENU, self.__on_export_for_medistar, item)
 
 		menu_emr.AppendMenu(wx.NewId(), _('Export as ...'), menu_emr_export)
 
@@ -911,16 +921,25 @@ class gmTopLevelFrame(wx.Frame):
 		menu_debugging.Append(ID_SCREENSHOT, _('Screenshot'), _('Save a screenshot of this GNUmed client.'))
 		wx.EVT_MENU(self, ID_SCREENSHOT, self.__on_save_screenshot)
 
-		item = menu_debugging.Append(-1, _('Show log file'), _('Show the log file in text viewer.'))
+		item = menu_debugging.Append(-1, _('Show log file'), _('Show log file in text viewer.'))
 		self.Bind(wx.EVT_MENU, self.__on_show_log_file, item)
 
 		ID = wx.NewId()
-		menu_debugging.Append(ID, _('Backup log file'), _('Backup the content of the log to another file.'))
+		menu_debugging.Append(ID, _('Backup log file'), _('Backup content of the log to another file.'))
 		wx.EVT_MENU(self, ID, self.__on_backup_log_file)
 
-		item = menu_debugging.Append(-1, _('Email log file'), _('Send the log file to the authors for help.'))
+		item = menu_debugging.Append(-1, _('Email log file'), _('Send log file to the authors for help.'))
 		self.Bind(wx.EVT_MENU, self.__on_email_log_file, item)
 
+		item = menu_debugging.Append(-1, _('Browse tmp dir'), _('Browse temporary directory [%s].') % gmTools.gmPaths().tmp_dir)
+		self.Bind(wx.EVT_MENU, self.__on_browse_tmp_dir, item)
+
+		item = menu_debugging.Append(-1, _('Browse work dir'), _('Browse user working directory [%s].') % os.path.join(gmTools.gmPaths().home_dir, u'gnumed'))
+		self.Bind(wx.EVT_MENU, self.__on_browse_work_dir, item)
+
+		item = menu_debugging.Append(-1, _('Browse internal work dir'), _('Browse internal working directory [%s].') % os.path.join(gmTools.gmPaths().home_dir, u'.gnumed'))
+		self.Bind(wx.EVT_MENU, self.__on_browse_internal_work_dir, item)
+
 		ID = wx.NewId()
 		menu_debugging.Append(ID, _('Bug tracker'), _('Go to the GNUmed bug tracker on the web.'))
 		wx.EVT_MENU(self, ID, self.__on_display_bugtracker)
@@ -1080,7 +1099,7 @@ class gmTopLevelFrame(wx.Frame):
 		_log.warning('unhandled event detected: QUERY_END_SESSION')
 		_log.info('we should be saving ourselves from here')
 		gmLog2.flush()
-		print "unhandled event detected: QUERY_END_SESSION"
+		print('unhandled event detected: QUERY_END_SESSION')
 	#----------------------------------------------
 	def _on_end_session(self, *args, **kwargs):
 		wx.Bell()
@@ -1088,7 +1107,7 @@ class gmTopLevelFrame(wx.Frame):
 		wx.Bell()
 		_log.warning('unhandled event detected: END_SESSION')
 		gmLog2.flush()
-		print "unhandled event detected: END_SESSION"
+		print('unhandled event detected: END_SESSION')
 	#-----------------------------------------------
 	def _register_pre_exit_callback(self, callback=None):
 		if not callable(callback):
@@ -1441,7 +1460,8 @@ class gmTopLevelFrame(wx.Frame):
 		)
 	#----------------------------------------------
 	def __on_configure_drug_data_source(self, evt):
-		gmMedicationWidgets.configure_drug_data_source(parent = self)
+		gmSubstanceMgmtWidgets.configure_drug_data_source(parent = self)
+
 	#----------------------------------------------
 	def __on_configure_adr_url(self, evt):
 
@@ -1587,7 +1607,7 @@ class gmTopLevelFrame(wx.Frame):
 		)
 	#----------------------------------------------
 	def __on_configure_visual_soap_cmd(self, event):
-		gmNarrativeWidgets.configure_visual_progress_note_editor()
+		gmVisualProgressNoteWidgets.configure_visual_progress_note_editor()
 	#----------------------------------------------
 	def __on_configure_freediams_cmd(self, event):
 
@@ -1778,6 +1798,25 @@ class gmTopLevelFrame(wx.Frame):
 				_('No, only auto-open one editor for a new, unassociated problem.')
 			]
 		)
+
+	#----------------------------------------------
+	def __on_use_fields_in_soap_editor(self, evt):
+		gmCfgWidgets.configure_boolean_option (
+			parent = self,
+			question = _(
+				'When editing progress notes, do you want GNUmed to\n'
+				'show individual fields for each of the SOAP categories\n'
+				'or do you want to use a text-editor like field for\n'
+				'all SOAP categories which can then be set per line\n'
+				'of input ?'
+			),
+			option = u'horstspace.soap_editor.use_one_field_per_soap_category',
+			button_tooltips = [
+				_('Yes, show a dedicated field per SOAP category.'),
+				_('No, use one field for all SOAP categories.')
+			]
+		)
+
 	#----------------------------------------------
 	def __on_configure_initial_pat_plugin(self, evt):
 
@@ -1889,6 +1928,9 @@ class gmTopLevelFrame(wx.Frame):
 	def __on_cfg_meds_lab_pnl(self, evt):
 		gmMedicationWidgets.configure_default_medications_lab_panel(parent = self)
 	#----------------------------------------------
+	def __on_cfg_top_lab_pnl(self, evt):
+		gmMeasurementWidgets.configure_default_top_lab_panel(parent = self)
+	#----------------------------------------------
 	def __on_cfg_enc_default_type(self, evt):
 		enc_types = gmEMRStructItems.get_encounter_types()
 		msg = _(
@@ -2275,8 +2317,8 @@ class gmTopLevelFrame(wx.Frame):
 			'enc_types': gmEncounterWidgets.manage_encounter_types,
 			'provinces': gmAddressWidgets.manage_regions,
 			'workplaces': gmPraxisWidgets.configure_workplace_plugins,
-			'drugs': gmMedicationWidgets.manage_branded_drugs,
-			'substances_in_brands': gmMedicationWidgets.manage_drug_components,
+			'drugs': gmSubstanceMgmtWidgets.manage_branded_drugs,
+			'substances_in_brands': gmSubstanceMgmtWidgets.manage_drug_components,
 			'labs': gmMeasurementWidgets.manage_measurement_orgs,
 			'test_types': gmMeasurementWidgets.manage_measurement_types,
 			'meta_test_types': gmMeasurementWidgets.manage_meta_test_types,
@@ -2284,7 +2326,7 @@ class gmTopLevelFrame(wx.Frame):
 			'vacc_indications': gmVaccWidgets.manage_vaccination_indications,
 			'orgs': gmOrganizationWidgets.manage_orgs,
 			'adr': gmAddressWidgets.manage_addresses,
-			'substances': gmMedicationWidgets.manage_consumable_substances,
+			'substances': gmSubstanceMgmtWidgets.manage_consumable_substances,
 			'patient_tags': gmDemographicsWidgets.manage_tag_images,
 			'communication_channel_types': gmContactWidgets.manage_comm_channel_types,
 			'billables': gmBillingWidgets.manage_billables,
@@ -2352,11 +2394,12 @@ class gmTopLevelFrame(wx.Frame):
 		doc = gmDocumentWidgets.save_file_as_new_document (
 			parent = self,
 			filename = arriba.pdf_result,
-			document_type = _('risk assessment')
+			document_type = _('risk assessment'),
+			pk_org_unit = gmPraxis.gmCurrentPraxisBranch()['pk_org_unit']
 		)
 
 		try: os.remove(arriba.pdf_result)
-		except StandardError: _log.exception('cannot remove [%s]', arriba.pdf_result)
+		except Exception: _log.exception('cannot remove [%s]', arriba.pdf_result)
 
 		if doc is None:
 			return
@@ -2367,7 +2410,7 @@ class gmTopLevelFrame(wx.Frame):
 		try:
 			open(arriba.xml_result).close()
 			part = doc.add_part(file = arriba.xml_result)
-		except StandardError:
+		except Exception:
 			_log.exception('error accessing [%s]', arriba.xml_result)
 			gmDispatcher.send(signal = u'statustext', msg = _('[arriba] XML result not found in [%s]') % arriba.xml_result, beep = False)
 
@@ -2415,12 +2458,13 @@ class gmTopLevelFrame(wx.Frame):
 			doc = gmDocumentWidgets.save_file_as_new_document (
 				parent = self,
 				filename = pdf,
-				document_type = u'risk assessment'
+				document_type = u'risk assessment',
+				pk_org_unit = gmPraxis.gmCurrentPraxisBranch()['pk_org_unit']
 			)
 
 			try:
 				os.remove(pdf)
-			except StandardError:
+			except Exception:
 				_log.exception('cannot remove [%s]', pdf)
 
 			if doc is None:
@@ -2435,7 +2479,7 @@ class gmTopLevelFrame(wx.Frame):
 #		from Gnumed.business import gmClinicalCalculator
 #		calc = gmClinicalCalculator.cClinicalCalculator(patient = gmPerson.gmCurrentPatient())
 #		result = calc.eGFR_CKD_EPI
-#		print u'%s' % result.format(with_formula = True, with_warnings = True, with_variables = True, with_sub_results = True, with_hints = True)
+#		print(u'%s' % result.format(with_formula = True, with_warnings = True, with_variables = True, with_sub_results = True, with_hints = True))
 #		return
 		gmMeasurementWidgets.show_hl7_file(parent = self)
 	#----------------------------------------------
@@ -2468,36 +2512,43 @@ class gmTopLevelFrame(wx.Frame):
 	#----------------------------------------------
 	def __on_medical_links(self, evt):
 		gmNetworkTools.open_url_in_browser(url = 'http://wiki.gnumed.de/bin/view/Gnumed/MedicalContentLinks#AnchorLocaleI%s' % gmI18N.system_locale_level['language'])
+
 	#----------------------------------------------
 	def __on_jump_to_drug_db(self, evt):
-		gmMedicationWidgets.jump_to_drug_database()
+		curr_pat = gmPerson.gmCurrentPatient()
+		if not curr_pat.connected:
+			curr_pat = None
+		gmSubstanceMgmtWidgets.jump_to_drug_database(parent = self, patient = curr_pat)
+
 	#----------------------------------------------
 	def __on_kompendium_ch(self, evt):
 		gmNetworkTools.open_url_in_browser(url = u'http://www.kompendium.ch')
+
 	#----------------------------------------------
 	# Office
 	#----------------------------------------------
 	def __on_display_audit_trail(self, evt):
 		gmPraxisWidgets.show_audit_trail(parent = self)
-		evt.Skip()
+
 	#----------------------------------------------
 	def __on_show_all_bills(self, evt):
 		gmBillingWidgets.manage_bills(parent = self)
-		evt.Skip()
+
 	#----------------------------------------------
 	def __on_manage_orgs(self, evt):
 		gmOrganizationWidgets.manage_orgs(parent = self)
-		evt.Skip()
+
 	#----------------------------------------------
 	# Help / Debugging
 	#----------------------------------------------
 	def __on_save_screenshot(self, evt):
-		evt.Skip()
 		fname = os.path.expanduser(os.path.join('~', 'gnumed', 'gnumed-screenshot-%s.png')) % pyDT.datetime.now().strftime('%Y-%m-%d_%H-%M-%S')
 		self.__save_screenshot_to_file(filename = fname)
+
 	#----------------------------------------------
 	def __on_test_exception(self, evt):
 		raise ValueError('raised ValueError to test exception handling')
+
 	#----------------------------------------------
 	def __on_test_segfault(self, evt):
 		import faulthandler
@@ -2509,7 +2560,7 @@ class gmTopLevelFrame(wx.Frame):
 			_('[-9999]: <access violation test error>'),
 			source = u'GNUmed code',
 			code = -9999,
-			details = _('This is a deliberate AcessDenied exception thrown to test the handling of access violations by means of a decorator.')
+			details = _('This is a deliberate AccessDenied exception thrown to test the handling of access violations by means of a decorator.')
 		)
 	#----------------------------------------------
 	@gmAccessPermissionWidgets.verify_minimum_required_role('admin', activity = _('testing access check for non-existant <admin> role'))
@@ -2518,7 +2569,7 @@ class gmTopLevelFrame(wx.Frame):
 			_('[-9999]: <access violation test error>'),
 			source = u'GNUmed code',
 			code = -9999,
-			details = _('This is a deliberate AcessDenied exception. You should not see this message because the role is checked in a decorator.')
+			details = _('This is a deliberate AccessDenied exception. You should not see this message because the role is checked in a decorator.')
 		)
 	#----------------------------------------------
 	def __on_invoke_inspector(self, evt):
@@ -2562,7 +2613,6 @@ class gmTopLevelFrame(wx.Frame):
 			curr_pat.locked = True
 	#----------------------------------------------
 	def __on_show_log_file(self, evt):
-		from Gnumed.pycommon import gmMimeLib
 		gmLog2.flush()
 		gmMimeLib.call_viewer_on_file(gmLog2._logfile_name, block = False)
 	#----------------------------------------------
@@ -2593,6 +2643,19 @@ class gmTopLevelFrame(wx.Frame):
 	#----------------------------------------------
 	def __on_email_log_file(self, evt):
 		gmExceptionHandlingWidgets.mail_log(parent = self)
+
+	#----------------------------------------------
+	def __on_browse_tmp_dir(self, evt):
+		gmMimeLib.call_viewer_on_file(gmTools.gmPaths().tmp_dir, block = False)
+
+	#----------------------------------------------
+	def __on_browse_work_dir(self, evt):
+		gmMimeLib.call_viewer_on_file(os.path.join(gmTools.gmPaths().home_dir, u'gnumed'), block = False)
+
+	#----------------------------------------------
+	def __on_browse_internal_work_dir(self, evt):
+		gmMimeLib.call_viewer_on_file(os.path.join(gmTools.gmPaths().home_dir, u'.gnumed'), block = False)
+
 	#----------------------------------------------
 	# GNUmed /
 	#----------------------------------------------
@@ -2606,17 +2669,13 @@ class gmTopLevelFrame(wx.Frame):
 		self.Destroy()
 		_log.debug('gmTopLevelFrame.OnClose() end')
 		return True
-	#----------------------------------------------
-	def OnExportEMR(self, event):
-		"""
-		Export selected patient EMR to a file
-		"""
-		gmEMRBrowser.export_emr_to_ascii(parent=self)
+
 	#----------------------------------------------
 	def __dermtool (self, event):
 		import Gnumed.wxpython.gmDermTool as DT
 		frame = DT.DermToolDialog(None, -1)
 		frame.Show(True)
+
 	#----------------------------------------------
 	def __on_start_new_encounter(self, evt):
 		pat = gmPerson.gmCurrentPatient()
@@ -2707,6 +2766,7 @@ class gmTopLevelFrame(wx.Frame):
 		gmVaccWidgets.manage_vaccinations(parent = self)
 		evt.Skip()
 	#----------------------------------------------
+	@gmAccessPermissionWidgets.verify_minimum_required_role('full clinical access', activity = _('manage family history'))
 	def __on_manage_fhx(self, evt):
 		pat = gmPerson.gmCurrentPatient()
 		if not pat.connected:
@@ -2728,6 +2788,7 @@ class gmTopLevelFrame(wx.Frame):
 	def __on_calc_edc(self, evt):
 		pat = gmPerson.gmCurrentPatient()
 		gmPregWidgets.calculate_edc(parent = self, patient = pat)
+
 	#----------------------------------------------
 	@gmAccessPermissionWidgets.verify_minimum_required_role('full clinical access', activity = _('manage suppressed hints'))
 	def __on_manage_suppressed_hints(self, evt):
@@ -2736,6 +2797,15 @@ class gmTopLevelFrame(wx.Frame):
 			gmDispatcher.send(signal = 'statustext', msg = _('Cannot manage suppressed hints. No active patient.'))
 			return False
 		gmAutoHintWidgets.manage_suppressed_hints(parent = self, pk_identity = pat.ID)
+
+	#----------------------------------------------
+	def __on_manage_substance_abuse(self, evt):
+		pat = gmPerson.gmCurrentPatient()
+		if not pat.connected:
+			gmDispatcher.send(signal = 'statustext', msg = _('Cannot manage smoking status. No active patient.'))
+			return False
+		gmHabitWidgets.manage_substance_abuse(parent = self, patient = pat)
+
 	#----------------------------------------------
 	def __on_show_emr_summary(self, event):
 		pat = gmPerson.gmCurrentPatient()
@@ -2755,12 +2825,64 @@ class gmTopLevelFrame(wx.Frame):
 		return True
 	#----------------------------------------------
 	def __on_search_emr(self, event):
-		return gmNarrativeWidgets.search_narrative_in_emr(parent=self)
+		return gmNarrativeWorkflows.search_narrative_in_emr(parent=self)
 	#----------------------------------------------
 	def __on_search_across_emrs(self, event):
-		gmNarrativeWidgets.search_narrative_across_emrs(parent=self)
+		gmNarrativeWorkflows.search_narrative_across_emrs(parent=self)
+
 	#----------------------------------------------
-	def __on_export_emr_as_journal(self, event):
+	def __on_save_emr_as_textfile(self, event):
+		gmEMRBrowser.export_emr_to_ascii(parent=self)
+
+	#----------------------------------------------
+	def __on_save_emr_by_last_mod(self, event):
+		# sanity checks
+		pat = gmPerson.gmCurrentPatient()
+		if not pat.connected:
+			gmDispatcher.send(signal = 'statustext', msg = _('Cannot export EMR journal by last modification time. No active patient.'))
+			return False
+
+		# get file name
+		aWildcard = "%s (*.txt)|*.txt|%s (*)|*" % (_("text files"), _("all files"))
+		aDefDir = os.path.expanduser(os.path.join('~', 'gnumed'))
+		fname = '%s-%s_%s.txt' % (_('journal_by_last_mod_time'), pat['lastnames'], pat['firstnames'])
+		dlg = wx.FileDialog (
+			parent = self,
+			message = _("Save patient's EMR journal as..."),
+			defaultDir = aDefDir,
+			defaultFile = fname,
+			wildcard = aWildcard,
+			style = wx.SAVE
+		)
+		choice = dlg.ShowModal()
+		fname = dlg.GetPath()
+		dlg.Destroy()
+		if choice != wx.ID_OK:
+			return True
+
+		_log.debug('exporting EMR journal (by last mod) to [%s]' % fname)
+
+		exporter = gmPatientExporter.cEMRJournalExporter()
+
+		wx.BeginBusyCursor()
+		try:
+			fname = exporter.export_to_file_by_mod_time(filename = fname, patient = pat)
+		except:
+			wx.EndBusyCursor()
+			_log.exception('error exporting EMR')
+			gmGuiHelpers.gm_show_error (
+				_('Error exporting patient EMR as journal by last modification time.'),
+				_('EMR journal export')
+			)
+			return
+		wx.EndBusyCursor()
+
+		gmDispatcher.send(signal = 'statustext', msg = _('Successfully exported EMR as journal by last modification time into file [%s].') % fname, beep=False)
+
+		return True
+
+	#----------------------------------------------
+	def __on_save_emr_as_journal(self, event):
 		# sanity checks
 		pat = gmPerson.gmCurrentPatient()
 		if not pat.connected:
@@ -2768,9 +2890,7 @@ class gmTopLevelFrame(wx.Frame):
 			return False
 		# get file name
 		aWildcard = "%s (*.txt)|*.txt|%s (*)|*" % (_("text files"), _("all files"))
-		aDefDir = os.path.expanduser(os.path.join('~', 'gnumed', pat['dirname']))
-		gmTools.mkdir(aDefDir)
-		# FIXME: make configurable
+		aDefDir = os.path.expanduser(os.path.join('~', 'gnumed'))
 		fname = '%s-%s_%s.txt' % (_('emr-journal'), pat['lastnames'], pat['firstnames'])
 		dlg = wx.FileDialog (
 			parent = self,
@@ -2792,26 +2912,81 @@ class gmTopLevelFrame(wx.Frame):
 
 		wx.BeginBusyCursor()
 		try:
-			fname = exporter.export_to_file(filename = fname)
+			fname = exporter.export_to_file_by_encounter(filename = fname, patient = pat)
 		except:
 			wx.EndBusyCursor()
+			_log.exception('error exporting EMR')
 			gmGuiHelpers.gm_show_error (
 				_('Error exporting patient EMR as chronological journal.'),
 				_('EMR journal export')
 			)
-			raise
+			return
 		wx.EndBusyCursor()
 
 		gmDispatcher.send(signal = 'statustext', msg = _('Successfully exported EMR as chronological journal into file [%s].') % fname, beep=False)
 
 		return True
+
+	#----------------------------------------------
+	def __on_export_emr_by_last_mod(self, event):
+		# sanity checks
+		pat = gmPerson.gmCurrentPatient()
+		if not pat.connected:
+			gmDispatcher.send(signal = 'statustext', msg = _('Cannot export EMR journal by last modification time. No active patient.'))
+			return False
+
+		exporter = gmPatientExporter.cEMRJournalExporter()
+		wx.BeginBusyCursor()
+		try:
+			fname = exporter.export_to_file_by_mod_time(patient = pat)
+		except:
+			wx.EndBusyCursor()
+			_log.exception('error exporting EMR')
+			gmGuiHelpers.gm_show_error (
+				_('Error exporting patient EMR as journal by last modification time.'),
+				_('EMR journal export')
+			)
+			return
+		wx.EndBusyCursor()
+
+		pat.export_area.add_file(filename = fname, hint = _(u'EMR journal by last modification time'))
+
+		return True
+
+	#----------------------------------------------
+	def __on_export_emr_as_journal(self, event):
+		# sanity checks
+		pat = gmPerson.gmCurrentPatient()
+		if not pat.connected:
+			gmDispatcher.send(signal = 'statustext', msg = _('Cannot export EMR journal. No active patient.'))
+			return False
+
+		exporter = gmPatientExporter.cEMRJournalExporter()
+		wx.BeginBusyCursor()
+		try:
+			fname = exporter.export_to_file_by_encounter(patient = pat)
+		except:
+			wx.EndBusyCursor()
+			_log.exception('error exporting EMR')
+			gmGuiHelpers.gm_show_error (
+				_('Error exporting patient EMR as chronological journal.'),
+				_('EMR journal export')
+			)
+			return
+		wx.EndBusyCursor()
+
+		pat.export_area.add_file(filename = fname, hint = _(u'EMR journal by encounter'))
+
+		return True
+
 	#----------------------------------------------
 	def __on_export_for_medistar(self, event):
-		gmNarrativeWidgets.export_narrative_for_medistar_import (
+		gmNarrativeWorkflows.export_narrative_for_medistar_import (
 			parent = self,
 			soap_cats = u'soapu',
 			encounter = None			# IOW, the current one
 		)
+
 	#----------------------------------------------
 	def __on_add_tag2person(self, event):
 		curr_pat = gmPerson.gmCurrentPatient()
@@ -2844,6 +3019,7 @@ class gmTopLevelFrame(wx.Frame):
 			tag['comment'] = comment.strip()
 
 		tag.save()
+
 	#----------------------------------------------
 	def __on_load_external_patient(self, event):
 		dbcfg = gmCfg.cCfgSQL()
@@ -2939,7 +3115,7 @@ class gmTopLevelFrame(wx.Frame):
 		if not pat.connected:
 			gmDispatcher.send(signal = 'statustext', msg = _('Cannot delete patient. No patient active.'))
 			return False
-		gmDemographicsWidgets.disable_identity(identity=pat)
+		gmDemographicsWidgets.disable_identity(identity = pat)
 		return True
 	#----------------------------------------------
 	def __on_merge_patients(self, event):
@@ -2961,17 +3137,21 @@ class gmTopLevelFrame(wx.Frame):
 	#----------------------------------------------
 	def __on_update_loinc(self, evt):
 		gmMeasurementWidgets.update_loinc_reference_data()
+
 	#----------------------------------------------
 	def __on_update_atc(self, evt):
-		gmMedicationWidgets.update_atc_reference_data()
+		gmSubstanceMgmtWidgets.update_atc_reference_data()
+
 	#----------------------------------------------
 	def __on_install_data_packs(self, evt):
 		gmDataPackWidgets.manage_data_packs(parent = self)
+
 	#----------------------------------------------
 	def __on_generate_vaccines(self, evt):
 		wx.BeginBusyCursor()
 		gmVaccination.regenerate_generic_vaccines()
 		wx.EndBusyCursor()
+
 	#----------------------------------------------
 	def _clean_exit(self):
 		"""Cleanup helper.
@@ -3008,8 +3188,8 @@ class gmTopLevelFrame(wx.Frame):
 			try:
 				call_back()
 			except:
-				print "*** pre-exit callback failed ***"
-				print call_back
+				print('*** pre-exit callback failed ***')
+				print('%s' % call_back)
 				_log.exception('callback [%s] failed', call_back)
 
 		# signal imminent demise to plugins
@@ -3022,26 +3202,29 @@ class gmTopLevelFrame(wx.Frame):
 		curr_width, curr_height = self.GetClientSizeTuple()
 		_log.info('GUI size at shutdown: [%s:%s]' % (curr_width, curr_height))
 		dbcfg = gmCfg.cCfgSQL()
-		dbcfg.set (
-			option = 'main.window.width',
-			value = curr_width,
-			workplace = gmPraxis.gmCurrentPraxisBranch().active_workplace
-		)
-		dbcfg.set (
-			option = 'main.window.height',
-			value = curr_height,
-			workplace = gmPraxis.gmCurrentPraxisBranch().active_workplace
-		)
+		try:
+			dbcfg.set (
+				option = 'main.window.width',
+				value = curr_width,
+				workplace = gmPraxis.gmCurrentPraxisBranch().active_workplace
+			)
+			dbcfg.set (
+				option = 'main.window.height',
+				value = curr_height,
+				workplace = gmPraxis.gmCurrentPraxisBranch().active_workplace
+			)
+		except:
+			_log.exception('cannot save current client window size')
 
 		if _cfg.get(option = 'debug'):
-			print '---=== GNUmed shutdown ===---'
+			print('---=== GNUmed shutdown ===---')
 			try:
-				print _('You have to manually close this window to finalize shutting down GNUmed.')
-				print _('This is so that you can inspect the console output at your leisure.')
+				print(_('You have to manually close this window to finalize shutting down GNUmed.'))
+				print(_('This is so that you can inspect the console output at your leisure.'))
 			except UnicodeEncodeError:
-				print 'You have to manually close this window to finalize shutting down GNUmed.'
-				print 'This is so that you can inspect the console output at your leisure.'
-			print '---=== GNUmed shutdown ===---'
+				print('You have to manually close this window to finalize shutting down GNUmed.')
+				print('This is so that you can inspect the console output at your leisure.')
+			print('---=== GNUmed shutdown ===---')
 
 		# shutdown GUI exception handling
 		gmExceptionHandlingWidgets.uninstall_wx_exception_handler()
@@ -3185,7 +3368,7 @@ class gmApp(wx.App):
 	def OnInit(self):
 
 		if _cfg.get(option = 'debug'):
-			self.SetAssertMode(wx.PYAPP_ASSERT_LOG)
+			self.SetAssertMode(wx.PYAPP_ASSERT_EXCEPTION | wx.PYAPP_ASSERT_LOG)
 		else:
 			self.SetAssertMode(wx.PYAPP_ASSERT_SUPPRESS)
 
@@ -3194,9 +3377,16 @@ class gmApp(wx.App):
 		gmExceptionHandlingWidgets.install_wx_exception_handler()
 		gmExceptionHandlingWidgets.set_client_version(_cfg.get(option = 'client_version'))
 
-		# set this so things like "wx.StandardPaths.GetDataDir()" work as expected
-		self.SetAppName(u'gnumed')
-		self.SetVendorName(u'The GNUmed Development Community.')
+		self.SetAppName(u'gnumed')				# set this so things like "wx.StandardPaths.GetDataDir()" work as expected
+		self.SetVendorName(u'gnumed_community')
+		try:
+			self.SetAppDisplayName(u'GNUmed %s' % _cfg.get(option = 'client_version'))
+		except AttributeError:
+			_log.info('SetAppDisplayName() not supported')
+		try:
+			self.SetVendorDisplayName(u'The GNUmed Development Community.')
+		except AttributeError:
+			_log.info('SetVendorDisplayName() not supported')
 		paths = gmTools.gmPaths(app_name = u'gnumed', wx = wx)
 		paths.init_paths(wx = wx, app_name = u'gnumed')
 
@@ -3255,9 +3445,9 @@ class gmApp(wx.App):
 			self.SetOutputWindowAttributes(title = _('GNUmed stdout/stderr window'))
 			# print this so people know what this window is for
 			# and don't get suprised when it pops up later
-			print '---=== GNUmed startup ===---'
-			print _('redirecting STDOUT/STDERR to this log window')
-			print '---=== GNUmed startup ===---'
+			print('---=== GNUmed startup ===---')
+			print(_('redirecting STDOUT/STDERR to this log window'))
+			print('---=== GNUmed startup ===---')
 
 		self.__setup_user_activity_timer()
 		self.__register_events()
@@ -3282,6 +3472,14 @@ class gmApp(wx.App):
 			sys.stdout = sys.__stdout__
 			sys.stderr = sys.__stderr__
 
+		top_wins = wx.GetTopLevelWindows()
+		if len(top_wins) > 0:
+			_log.debug('%s top level windows still around in <app>.OnExit()', len(top_wins))
+			_log.debug(top_wins)
+			for win in top_wins:
+				_log.debug('destroying: %s', win)
+				win.Destroy()
+
 		_log.debug('gmApp.OnExit() end')
 	#----------------------------------------------
 	def _on_query_end_session(self, *args, **kwargs):
@@ -3291,7 +3489,7 @@ class gmApp(wx.App):
 		_log.warning('unhandled event detected: QUERY_END_SESSION')
 		_log.info('we should be saving ourselves from here')
 		gmLog2.flush()
-		print "unhandled event detected: QUERY_END_SESSION"
+		print('unhandled event detected: QUERY_END_SESSION')
 	#----------------------------------------------
 	def _on_end_session(self, *args, **kwargs):
 		wx.Bell()
@@ -3299,7 +3497,7 @@ class gmApp(wx.App):
 		wx.Bell()
 		_log.warning('unhandled event detected: END_SESSION')
 		gmLog2.flush()
-		print "unhandled event detected: END_SESSION"
+		print('unhandled event detected: END_SESSION')
 	#----------------------------------------------
 	def _on_app_activated(self, evt):
 		if evt.GetActive():
@@ -3324,7 +3522,7 @@ class gmApp(wx.App):
 			self.elapsed_inactivity_slices += 1
 		else:
 			if self.elapsed_inactivity_slices >= self.max_user_inactivity_slices:
-#				print "User was inactive for 30 seconds."
+#				print("User was inactive for 30 seconds.")
 				pass
 
 		self.user_activity_timer.Start(oneShot = True)
@@ -3713,15 +3911,15 @@ class gmApp(wx.App):
 def _signal_debugging_monitor(*args, **kwargs):
 	try:
 		kwargs['originated_in_database']
-		print '==> got notification from database "%s":' % kwargs['signal']
+		print('==> got notification from database "%s":' % kwargs['signal'])
 	except KeyError:
-		print '==> received signal from client: "%s"' % kwargs['signal']
+		print('==> received signal from client: "%s"' % kwargs['signal'])
 
 	del kwargs['signal']
-	for key in kwargs.keys():
+	for key in kwargs:
 		# careful because of possibly limited console output encoding
-		try: print '    [%s]: %s' % (key, kwargs[key])
-		except: print 'cannot print signal information'
+		try: print('    [%s]: %s' % (key, kwargs[key]))
+		except: print('cannot print signal information')
 
 #==============================================================================
 def _safe_wxEndBusyCursor():
@@ -3732,7 +3930,7 @@ def setup_safe_wxEndBusyCursor():
 	# monkey patch wxPython, needed on Windows ...
 	if os.name != 'nt':
 		return
-	print "GNUmed startup: Monkey patching wx.EndBusyCursor..."
+	print('GNUmed startup: Monkey patching wx.EndBusyCursor...')
 	global _original_wxEndBusyCursor
 	_original_wxEndBusyCursor = wx.EndBusyCursor
 	wx.EndBusyCursor = _safe_wxEndBusyCursor
@@ -3765,6 +3963,7 @@ def main():
 	# - allow signals to be delivered
 	app = gmApp(redirect = False, clearSigInt = False)
 	app.MainLoop()
+
 #==============================================================================
 # Main
 #==============================================================================
diff --git a/client/wxpython/gmHabitWidgets.py b/client/wxpython/gmHabitWidgets.py
new file mode 100644
index 0000000..d59b348
--- /dev/null
+++ b/client/wxpython/gmHabitWidgets.py
@@ -0,0 +1,345 @@
+"""GNUmed habits widgets."""
+#================================================================
+__author__ = "Karsten Hilbert <Karsten.Hilbert at gmx.net>"
+__license__ = "GPL v2 or later"
+
+import sys
+import logging
+
+
+import wx
+
+
+if __name__ == '__main__':
+	sys.path.insert(0, '../../')
+from Gnumed.pycommon import gmTools
+from Gnumed.pycommon import gmDispatcher
+from Gnumed.pycommon import gmDateTime
+
+from Gnumed.business import gmATC
+from Gnumed.business import gmMedication
+
+from Gnumed.wxpython import gmEditArea
+from Gnumed.wxpython import gmListWidgets
+
+_log = logging.getLogger('gm.ui')
+
+#================================================================
+def edit_substance_abuse(parent=None, intake=None, patient=None):
+
+	if parent is None:
+		parent = wx.GetApp().GetTopWindow()
+
+	ea = cSubstanceAbuseEAPnl(parent = parent, id = -1, intake = intake, patient = patient)
+	dlg = gmEditArea.cGenericEditAreaDlg2(parent = parent, id = -1, edit_area = ea, single_entry = (intake is not None))
+	dlg.SetTitle(gmTools.coalesce(intake, _('Adding substance abuse'), _('Editing substance abuse')))
+	if dlg.ShowModal() == wx.ID_OK:
+		dlg.Destroy()
+		return True
+	dlg.Destroy()
+	return False
+
+#----------------------------------------------------------------
+def manage_substance_abuse(parent=None, patient=None):
+
+	if parent is None:
+		parent = wx.GetApp().GetTopWindow()
+
+#	#------------------------------------------------------------
+#	def add_from_db(substance):
+#		drug_db = get_drug_database(parent = parent, patient = gmPerson.gmCurrentPatient())
+#		if drug_db is None:
+#			return False
+#		drug_db.import_drugs()
+#		return True
+#	#------------------------------------------------------------
+	def edit(intake=None):
+		return edit_substance_abuse(parent = parent, intake = intake, patient = patient)
+
+	#------------------------------------------------------------
+	def delete(intake):
+		return intake.delete()
+
+	#------------------------------------------------------------
+	def get_tooltip(intake=None):
+		return intake.format(single_line = False)
+
+	#------------------------------------------------------------
+	def refresh(lctrl):
+		intakes = patient.emr.abused_substances
+		items = []
+		for i in intakes:
+			items.append ([
+				i['substance'],
+				i.harmful_use_type_string,
+				gmDateTime.pydt_strftime(i['last_checked_when'], '%b %Y')
+			])
+		lctrl.set_string_items(items)
+		lctrl.set_data(intakes)
+
+	#------------------------------------------------------------
+	msg = _('Substances abused by the patient:')
+
+	return gmListWidgets.get_choices_from_list (
+		parent = parent,
+		msg = msg,
+		caption = _('Showing abused substances.'),
+		columns = [ _('Intake'), _('Status'), _('Last confirmed') ],
+		single_selection = False,
+		new_callback = edit,
+		edit_callback = edit,
+		delete_callback = delete,
+		refresh_callback = refresh,
+		list_tooltip_callback = get_tooltip
+	)
+
+#----------------------------------------------------------------
+from Gnumed.wxGladeWidgets import wxgSubstanceAbuseEAPnl
+
+class cSubstanceAbuseEAPnl(wxgSubstanceAbuseEAPnl.wxgSubstanceAbuseEAPnl, gmEditArea.cGenericEditAreaMixin):
+
+	def __init__(self, *args, **kwargs):
+		try:
+			data = kwargs['intake']
+			del kwargs['intake']
+		except KeyError:
+			data = None
+
+		self.__patient = kwargs['patient']
+		del kwargs['patient']
+
+		if data is not None:
+			if data['pk_patient'] != self.__patient.ID:
+				_log.error('intake: %s', data)
+				_log.error('patient: %s', self.__patient)
+				raise ArgumentError('<intake> does not belong to <patient>')
+
+		wxgSubstanceAbuseEAPnl.wxgSubstanceAbuseEAPnl.__init__(self, *args, **kwargs)
+		gmEditArea.cGenericEditAreaMixin.__init__(self)
+
+		self.mode = 'new'
+		self.data = data
+		if data is not None:
+			self.mode = 'edit'
+
+		#self.__init_ui()
+
+#	#----------------------------------------------------------------
+#	def __init_ui(self):
+#		if self.mode == 'new':
+	#----------------------------------------------------------------
+	# generic Edit Area mixin API
+	#----------------------------------------------------------------
+	def _valid_for_save(self):
+		validity = True
+
+		if not self._DPRW_quit_when.is_valid_timestamp(allow_empty = True):
+			validity = False
+			self._DPRW_quit_when.SetFocus()
+
+		if self._RBTN_other_substance.GetValue() is True:
+			if self._PRW_substance.GetValue().strip() == u'':
+				validity = False
+				self._PRW_substance.display_as_valid(valid = False)
+				self._PRW_substance.SetFocus()
+			else:
+				self._PRW_substance.display_as_valid(valid = True)
+
+		return validity
+
+	#----------------------------------------------------------------
+	def _save_as_new(self):
+
+		if self._RBTN_tobacco.GetValue() is True:
+			pk_substance = gmMedication.create_consumable_substance_by_atc (
+				substance = _('nicotine'),
+				atc = gmATC.ATC_NICOTINE,
+				amount = 1,
+				unit = u'1'
+			)['pk_substance']
+
+		elif self._RBTN_c2.GetValue() is True:
+			pk_substance = gmMedication.create_consumable_substance_by_atc (
+				substance = _('nicotine'),
+				atc = gmATC.ATC_ETHANOL,
+				amount = 1,
+				unit = _('units')
+			)['pk_substance']
+
+		elif self._RBTN_other_substance.GetValue() is True:
+			pk_substance = self._PRW_substance.GetData()
+			if pk_substance is None:
+				pk_substance = gmMedication.create_consumable_substance (
+					substance = self._PRW_substance.GetValue().strip(),
+					amount = 1,
+					unit = _('units')
+				)['pk']
+
+		pk_encounter = self.__patient.emr.active_encounter['pk_encounter']
+		intake = gmMedication.create_substance_intake (
+			pk_substance = pk_substance,
+			preparation = _('unit'),
+			encounter = pk_encounter,
+			episode = gmMedication.create_default_medication_history_episode(encounter = pk_encounter)['pk_episode']
+		)
+
+		if self._RBTN_nonharmful_use.GetValue() is True:
+			intake['harmful_use_type'] = 0
+		elif self._RBTN_harmful_use.GetValue() is True:
+			intake['harmful_use_type'] = 1
+		elif self._RBTN_presently_addicted.GetValue() is True:
+			intake['harmful_use_type'] = 2
+		elif self._RBTN_previously_addicted.GetValue() is True:
+			intake['harmful_use_type'] = 3
+		intake['notes'] = self._TCTRL_comment.GetValue().strip()
+		if self._DPRW_quit_when.is_valid_timestamp(allow_empty = False):
+			intake['discontinued'] = self._DPRW_quit_when.date
+		intake.save()
+
+		self.data = intake
+
+		return True
+
+	#----------------------------------------------------------------
+	def _save_as_update(self):
+
+		if self._RBTN_nonharmful_use.GetValue() is True:
+			self.data['harmful_use_type'] = 0
+		elif self._RBTN_harmful_use.GetValue() is True:
+			self.data['harmful_use_type'] = 1
+		elif self._RBTN_presently_addicted.GetValue() is True:
+			self.data['harmful_use_type'] = 2
+		elif self._RBTN_previously_addicted.GetValue() is True:
+			self.data['harmful_use_type'] = 3
+		self.data['notes'] = self._TCTRL_comment.GetValue().strip()
+		if self._DPRW_quit_when.is_valid_timestamp(allow_empty = False):
+			self.data['discontinued'] = self._DPRW_quit_when.date
+		if self._CHBOX_confirm.GetValue() is True:
+			self.data['pk_encounter'] = self.__patient.emr.active_encounter['pk_encounter']
+
+		self.data.save()
+
+		return True
+
+	#----------------------------------------------------------------
+	def _refresh_as_new(self):
+
+		self._RBTN_tobacco.SetValue(False)
+		self._RBTN_c2.SetValue(False)
+		self._RBTN_other_substance.SetValue(True)
+		self._PRW_substance.SetText(u'', None)
+		self._PRW_substance.Enable()
+		self._RBTN_nonharmful_use.SetValue(True)
+		self._RBTN_harmful_use.SetValue(False)
+		self._RBTN_presently_addicted.SetValue(False)
+		self._RBTN_previously_addicted.SetValue(False)
+		self._TCTRL_comment.SetValue(u'')
+		self._DPRW_quit_when.SetText(u'', None)
+		self._LBL_confirm_date.SetLabel(u'<%s>' % _('today'))
+		self._CHBOX_confirm.SetValue(True)
+		self._CHBOX_confirm.Disable()
+
+		if gmMedication.substance_intake_exists_by_atc(pk_identity = self.__patient.ID, atc = gmATC.ATC_NICOTINE):
+			self._RBTN_tobacco.Disable()
+		else:
+			self._RBTN_tobacco.Enable()
+
+		if gmMedication.substance_intake_exists_by_atc(pk_identity = self.__patient.ID, atc = gmATC.ATC_ETHANOL):
+			self._RBTN_c2.Disable()
+		else:
+			self._RBTN_c2.Enable()
+
+		self._PRW_substance.SetFocus()
+
+	#----------------------------------------------------------------
+	def _refresh_as_new_from_existing(self):
+		self._refresh_as_new()
+
+	#----------------------------------------------------------------
+	def _refresh_from_existing(self):
+
+		self._RBTN_tobacco.Disable()
+		self._RBTN_c2.Disable()
+		self._RBTN_other_substance.Disable()
+		self._PRW_substance.Disable()
+
+		if self.data['atc_substance'] == gmATC.ATC_NICOTINE:
+			self._RBTN_tobacco.SetValue(True)
+			self._RBTN_c2.SetValue(False)
+			self._RBTN_other_substance.SetValue(False)
+			self._PRW_substance.SetText(u'', None)
+		elif self.data['atc_substance'] == gmATC.ATC_ETHANOL:
+			self._RBTN_tobacco.SetValue(False)
+			self._RBTN_c2.SetValue(True)
+			self._RBTN_other_substance.SetValue(False)
+			self._PRW_substance.SetText(u'', None)
+		else:
+			self._RBTN_tobacco.SetValue(False)
+			self._RBTN_c2.SetValue(False)
+			self._RBTN_other_substance.SetValue(True)
+			self._PRW_substance.SetText(self.data['substance'], self.data['pk_substance'])
+
+		if self.data['harmful_use_type'] == 0:
+			self._RBTN_nonharmful_use.SetValue(True)
+			self._RBTN_harmful_use.SetValue(False)
+			self._RBTN_presently_addicted.SetValue(False)
+			self._RBTN_previously_addicted.SetValue(False)
+		elif self.data['harmful_use_type'] == 1:
+			self._RBTN_nonharmful_use.SetValue(False)
+			self._RBTN_harmful_use.SetValue(True)
+			self._RBTN_presently_addicted.SetValue(False)
+			self._RBTN_previously_addicted.SetValue(False)
+		elif self.data['harmful_use_type'] == 2:
+			self._RBTN_nonharmful_use.SetValue(False)
+			self._RBTN_harmful_use.SetValue(False)
+			self._RBTN_presently_addicted.SetValue(True)
+			self._RBTN_previously_addicted.SetValue(False)
+		elif self.data['harmful_use_type'] == 3:
+			self._RBTN_nonharmful_use.SetValue(False)
+			self._RBTN_harmful_use.SetValue(False)
+			self._RBTN_presently_addicted.SetValue(False)
+			self._RBTN_previously_addicted.SetValue(True)
+
+		self._TCTRL_comment.SetValue(gmTools.coalesce(self.data['notes']))
+		self._DPRW_quit_when.SetText(data = self.data['discontinued'])
+		self._LBL_confirm_date.SetLabel(gmDateTime.pydt_strftime(self.data['last_checked_when'], '%Y %b %d'))
+		self._CHBOX_confirm.Enable()
+		self._CHBOX_confirm.SetValue(True)
+
+		self._TCTRL_comment.SetFocus()
+
+	#----------------------------------------------------------------
+	def _on_substance_rbutton_selected(self, event):
+		event.Skip()
+		if self._RBTN_other_substance.GetValue() is True:
+			self._PRW_substance.Enable(True)
+			return
+		self._PRW_substance.Disable()
+
+#================================================================
+# main
+#================================================================
+if __name__ == '__main__':
+
+	if len(sys.argv) < 2:
+		sys.exit()
+
+	if sys.argv[1] != 'test':
+		sys.exit()
+
+	gmI18N.activate_locale()
+	gmI18N.install_domain(domain = 'gnumed')
+
+#	def test_message_inbox():
+#		app = wx.PyWidgetTester(size = (800, 600))
+#		app.SetWidget(cProviderInboxPnl, -1)
+#		app.MainLoop()
+
+#	def test_msg_ea():
+#		app = wx.PyWidgetTester(size = (800, 600))
+#		app.SetWidget(cInboxMessageEAPnl, -1)
+#		app.MainLoop()
+
+
+	#test_message_inbox()
+	#test_msg_ea()
diff --git a/client/wxpython/gmHorstSpace.py b/client/wxpython/gmHorstSpace.py
index 92f902a..089e147 100644
--- a/client/wxpython/gmHorstSpace.py
+++ b/client/wxpython/gmHorstSpace.py
@@ -259,7 +259,7 @@ class cHorstSpaceLayoutMgr(wx.Panel):
 		for plugin_name in plugin_list:
 			try:
 				plugin = gmPlugin.instantiate_plugin('gui', plugin_name)
-			except StandardError:
+			except Exception:
 				continue
 			# not a plugin
 			if not isinstance(plugin, gmPlugin.cNotebookPlugin):
diff --git a/client/wxpython/gmKeywordExpansionWidgets.py b/client/wxpython/gmKeywordExpansionWidgets.py
index 003d72f..03fd856 100644
--- a/client/wxpython/gmKeywordExpansionWidgets.py
+++ b/client/wxpython/gmKeywordExpansionWidgets.py
@@ -31,16 +31,43 @@ _text_expansion_fillin_regex = r'\$\[[^]]*\]\$'
 #============================================================
 class cKeywordExpansion_TextCtrlMixin():
 
-	def __init__(self):
+	def __init__(self, *args, **kwargs):
 		if not isinstance(self, (wx.TextCtrl, wx.stc.StyledTextCtrl)):
 			raise TypeError('[%s]: can only be applied to wx.TextCtrl or wx.stc.StyledTextCtrl, not [%s]' % (cKeywordExpansion_TextCtrlMixin, self.__class__.__name__))
+
 	#--------------------------------------------------------
 	def enable_keyword_expansions(self):
 		self.__keyword_separators = regex.compile("[!?'\".,:;)}\]\r\n\s\t]+")
 		self.Bind(wx.EVT_CHAR, self.__on_char_in_keyword_expansion_mixin)
+
 	#--------------------------------------------------------
 	def disable_keyword_expansions(self):
 		self.Unbind(wx.EVT_CHAR)
+
+	#--------------------------------------------------------
+	def attempt_expansion(self, show_list_if_needed=False):
+
+		caret_pos_in_line, line_no = self.PositionToXY(self.InsertionPoint)
+		line = self.GetLineText(line_no)
+		keyword_candidate = self.__keyword_separators.split(line[:caret_pos_in_line])[-1]
+
+		if (
+			(show_list_if_needed is False)
+				and
+			(keyword_candidate != u'$$steffi')			# Easter Egg ;-)
+				and
+			(keyword_candidate not in [ r[0] for r in gmKeywordExpansion.get_textual_expansion_keywords() ])
+		):
+			return
+
+		# why does this work despite the wx.TextCtrl docs saying that
+		# InsertionPoint values cannot be used as indices into strings ?
+		# because we never cross an EOL which is the only documented
+		# reason for insertion point to be off the string index
+		start = self.InsertionPoint - len(keyword_candidate)
+		wx.CallAfter(self.__replace_keyword_with_expansion, keyword = keyword_candidate, position = start, show_list_if_needed = show_list_if_needed)
+		return
+
 	#--------------------------------------------------------
 	# event handling
 	#--------------------------------------------------------
@@ -53,59 +80,32 @@ class cKeywordExpansion_TextCtrlMixin():
 
 		char = unichr(evt.GetUnicodeKey())
 
-		explicit_expansion = False
-		if evt.GetModifiers() == (wx.MOD_CMD | wx.MOD_ALT): # portable CTRL-ALT-...
-			if evt.GetKeyCode() == wx.WXK_RETURN:		# CTRL-ALT-ENTER
-				explicit_expansion = True
-			elif evt.GetKeyCode() == 20:				# CTRL-ALT-T
-				explicit_expansion = True
+		user_wants_expansion_attempt = False
+		if evt.GetModifiers() == (wx.MOD_CMD | wx.MOD_ALT):	# portable CTRL-ALT-...
+			if evt.GetKeyCode() == wx.WXK_RETURN:			# CTRL-ALT-ENTER
+				user_wants_expansion_attempt = True
+			elif evt.GetKeyCode() == 20:					# CTRL-ALT-T
+				user_wants_expansion_attempt = True
 			else:
 				return
 
-		if not explicit_expansion:
+		if user_wants_expansion_attempt is False:
 			# user did not press CTRL-ALT-ENTER,
 			# however, did they last enter a
 			# "keyword separator", active character ?
 			if self.__keyword_separators.match(char) is None:
 				return
 
-		caret_pos_in_document = self.InsertionPoint
-		if isinstance(self, wx.stc.StyledTextCtrl):
-			caret_pos_in_line = self.GetCurrentPos()
-			line_no = self.GetCurrentLine()
-			# reimplement PositionToXY() as LineFromPos()/GetColumn(GetCurrentPos)
-		else:
-			caret_pos_in_line, line_no = self.PositionToXY(caret_pos_in_document)
-		line = self.GetLineText(line_no)
-		keyword = self.__keyword_separators.split(line[:caret_pos_in_line])[-1]
-
-		if (
-			(not explicit_expansion)
-				and
-			(keyword != u'$$steffi')			# Easter Egg ;-)
-				and
-			(keyword not in [ r[0] for r in gmKeywordExpansion.get_textual_expansion_keywords() ])
-		):
-			return
-
-		# why does this work despite the wx.TextCtrl docs saying that
-		# InsertionPoint values cannot be used as indices into strings ?
-		# because we never cross an EOL which is the only documented
-		# reason for insertion point to be off the string index
-		start = self.InsertionPoint - len(keyword)
-		wx.CallAfter(self.__replace_keyword_with_expansion, keyword, start, explicit_expansion)
+		self.attempt_expansion(show_list_if_needed = user_wants_expansion_attempt)
 
-		return
 	#--------------------------------------------------------
 	# internal helpers
 	#--------------------------------------------------------
-	def __replace_keyword_with_expansion(self, keyword=None, position=None, show_list=False):
-
-		expansion = expand_keyword(parent = self, keyword = keyword, show_list = show_list)
+	def __replace_keyword_with_expansion(self, keyword=None, position=None, show_list_if_needed=False):
 
+		expansion = expand_keyword(parent = self, keyword = keyword, show_list_if_needed = show_list_if_needed)
 		if expansion is None:
 			return
-
 		if expansion == u'':
 			return
 
@@ -178,9 +178,11 @@ class cTextExpansionEditAreaPnl(wxgTextExpansionEditAreaPnl.wxgTextExpansionEdit
 		self.__register_interests()
 
 		self.__data_filename = None
+
 	#--------------------------------------------------------
 #	def __init_ui(self, expansion=None):
 #		self._BTN_select_data_file.Enable(False)
+
 	#----------------------------------------------------------------
 	# generic Edit Area mixin API
 	#----------------------------------------------------------------
@@ -220,6 +222,7 @@ class cTextExpansionEditAreaPnl(wxgTextExpansionEditAreaPnl.wxgTextExpansionEdit
 			self.display_tctrl_as_valid(tctrl = self._TCTRL_keyword, valid = True)
 
 		return validity
+
 	#----------------------------------------------------------------
 	def _save_as_new(self):
 		expansion = gmKeywordExpansion.create_keyword_expansion (
@@ -237,6 +240,7 @@ class cTextExpansionEditAreaPnl(wxgTextExpansionEditAreaPnl.wxgTextExpansionEdit
 
 		self.data = expansion
 		return True
+
 	#----------------------------------------------------------------
 	def _save_as_update(self):
 
@@ -431,6 +435,7 @@ def configure_keyword_text_expansion(parent=None):
 		refresh_callback = refresh,
 		list_tooltip_callback = tooltip
 	)
+
 #============================================================
 from Gnumed.wxGladeWidgets import wxgTextExpansionFillInDlg
 
@@ -572,8 +577,9 @@ class cTextExpansionFillInDlg(wxgTextExpansionFillInDlg.wxgTextExpansionFillInDl
 	#---------------------------------------------
 	def _on_forward_button_pressed(self, event):
 		self.__goto_next_fillin()
+
 #============================================================
-def expand_keyword(parent=None, keyword=None, show_list=False):
+def expand_keyword(parent=None, keyword=None, show_list_if_needed=False):
 	"""Expand keyword and replace inside it.
 
 	Returns:
@@ -583,11 +589,10 @@ def expand_keyword(parent=None, keyword=None, show_list=False):
 	"""
 	if keyword is None:
 		return None
-
 	if parent is None:
 		parent = wx.GetApp().GetTopWindow()
 
-	if show_list:
+	if show_list_if_needed:
 		candidates = gmKeywordExpansion.get_matching_textual_keywords(fragment = keyword)
 		if len(candidates) == 0:
 			return None
diff --git a/client/wxpython/gmListWidgets.py b/client/wxpython/gmListWidgets.py
index 8ee6a3f..7710ad4 100644
--- a/client/wxpython/gmListWidgets.py
+++ b/client/wxpython/gmListWidgets.py
@@ -1,4 +1,4 @@
-"""GNUmed list controls and widgets.
+__doc__ = """GNUmed list controls and widgets.
 
 TODO:
 
@@ -122,14 +122,13 @@ def get_choices_from_list (
 		return sels
 
 	return None
+
 #----------------------------------------------------------------
 from Gnumed.wxGladeWidgets import wxgGenericListSelectorDlg
 
 class cGenericListSelectorDlg(wxgGenericListSelectorDlg.wxgGenericListSelectorDlg):
 	"""A dialog holding a list and a few buttons to act on the items."""
 
-	# FIXME: configurable callback on double-click action
-
 	def __init__(self, *args, **kwargs):
 
 		try:
@@ -152,17 +151,24 @@ class cGenericListSelectorDlg(wxgGenericListSelectorDlg.wxgGenericListSelectorDl
 
 		self.can_return_empty = False
 		self.ignore_OK_button = False			# by default do show/use the OK button
+
+		self.select_callback = None				# called when an item is selected, data of topmost selected item passed in
+		self._LCTRL_items.select_callback = self._on_list_item_selected_in_listctrl
+
 	#------------------------------------------------------------
 	def set_columns(self, columns=None):
 		self._LCTRL_items.set_columns(columns = columns)
+
 	#------------------------------------------------------------
 	def set_column_widths(self, widths=None):
 		self._LCTRL_items.set_column_widths(widths = widths)
+
 	#------------------------------------------------------------
 	def set_string_items(self, items=None, reshow=True):
 		self._LCTRL_items.set_string_items(items = items, reshow = reshow)
 		self._LCTRL_items.set_column_widths()
 		#self._LCTRL_items.Select(0)
+
 	#------------------------------------------------------------
 	def set_selections(self, selections = None):
 		self._LCTRL_items.set_selections(selections = selections)
@@ -174,26 +180,18 @@ class cGenericListSelectorDlg(wxgGenericListSelectorDlg.wxgGenericListSelectorDl
 			return
 		self._BTN_ok.Enable(True)
 		self._BTN_ok.SetDefault()
+
 	#------------------------------------------------------------
 	def set_data(self, data = None):
 		self._LCTRL_items.set_data(data = data)
+
 	#------------------------------------------------------------
 	def get_selected_item_data(self, only_one=False):
 		return self._LCTRL_items.get_selected_item_data(only_one=only_one)
+
 	#------------------------------------------------------------
 	# event handlers
 	#------------------------------------------------------------
-	def _on_list_item_selected(self, event):
-		if not self.__ignore_OK_button:
-			self._BTN_ok.SetDefault()
-			self._BTN_ok.Enable(True)
-
-		if self.edit_callback is not None:
-			self._BTN_edit.Enable(True)
-
-		if self.delete_callback is not None:
-			self._BTN_delete.Enable(True)
-	#------------------------------------------------------------
 	def _on_list_item_deselected(self, event):
 		if self._LCTRL_items.get_selected_items(only_one=True) == -1:
 			if not self.can_return_empty:
@@ -201,59 +199,51 @@ class cGenericListSelectorDlg(wxgGenericListSelectorDlg.wxgGenericListSelectorDl
 				self._BTN_ok.Enable(False)
 			self._BTN_edit.Enable(False)
 			self._BTN_delete.Enable(False)
+
+		event.Skip()
+
 	#------------------------------------------------------------
 	def _on_new_button_pressed(self, event):
-		if not self.new_callback():
-			self._LCTRL_items.SetFocus()
-			return
-		if self.refresh_callback is None:
-			self._LCTRL_items.SetFocus()
-			return
-		wx.BeginBusyCursor()
-		try:
-			self.refresh_callback(lctrl = self._LCTRL_items)
-		finally:
-			wx.EndBusyCursor()
-		self._LCTRL_items.set_column_widths()
-		self._LCTRL_items.SetFocus()
+		self.__do_insert()
+		event.Skip()
+
 	#------------------------------------------------------------
 	def _on_edit_button_pressed(self, event):
 		# if the edit button *can* be pressed there are *supposed*
 		# to be both an item selected and an editor configured
-		if not self.edit_callback(self._LCTRL_items.get_selected_item_data(only_one = True)):
-			self._LCTRL_items.SetFocus()
-			return
-		if self.refresh_callback is None:
-			self._LCTRL_items.SetFocus()
-			return
-		wx.BeginBusyCursor()
-		try:
-			self.refresh_callback(lctrl = self._LCTRL_items)
-		finally:
-			wx.EndBusyCursor()
-		self._LCTRL_items.set_column_widths()
-		self._LCTRL_items.SetFocus()
+		self.__do_edit()
+		event.Skip()
+
 	#------------------------------------------------------------
 	def _on_delete_button_pressed(self, event):
 		# if the delete button *can* be pressed there are *supposed*
 		# to be both an item selected and a deletor configured
-		item_data = self._LCTRL_items.get_selected_item_data(only_one=True)
-		if item_data is None:
-			self._LCTRL_items.SetFocus()
-			return
-		if not self.delete_callback(item_data):
-			self._LCTRL_items.SetFocus()
-			return
-		if self.refresh_callback is None:
-			self._LCTRL_items.SetFocus()
+
+		no_items = len(self._LCTRL_items.get_selected_items(only_one = False))
+		if no_items == 0:
 			return
-		wx.BeginBusyCursor()
-		try:
-			self.refresh_callback(lctrl = self._LCTRL_items)
-		finally:
-			wx.EndBusyCursor()
-		self._LCTRL_items.set_column_widths()
-		self._LCTRL_items.SetFocus()
+
+		if no_items > 1:
+			style = wx.YES_NO | wx.CANCEL | wx.ICON_QUESTION | wx.STAY_ON_TOP
+			title = _('Deleting list items')
+			question = _(
+				'You have selected %s list items.\n'
+				'\n'
+				'Really delete all %s items ?'
+			) % (no_items, no_items)
+			dlg = wx.MessageDialog(None, question, title, style)
+			btn_pressed = dlg.ShowModal()
+			dlg.Destroy()
+			if btn_pressed == wx.ID_NO:
+				self._LCTRL_items.SetFocus()
+				return
+			if btn_pressed == wx.ID_CANCEL:
+				self._LCTRL_items.SetFocus()
+				return
+
+		self.__do_delete()
+		event.Skip()
+
 	#------------------------------------------------------------
 	def _on_left_extra_button_pressed(self, event):
 		if self.__left_extra_button_wants_list:
@@ -263,16 +253,17 @@ class cGenericListSelectorDlg(wxgGenericListSelectorDlg.wxgGenericListSelectorDl
 		if not self.__left_extra_button_callback(item_data):
 			self._LCTRL_items.SetFocus()
 			return
-		if self.refresh_callback is None:
+		if self.__refresh_callback is None:
 			self._LCTRL_items.SetFocus()
 			return
 		wx.BeginBusyCursor()
 		try:
-			self.refresh_callback(lctrl = self._LCTRL_items)
+			self.__refresh_callback(lctrl = self._LCTRL_items)
 		finally:
 			wx.EndBusyCursor()
 		self._LCTRL_items.set_column_widths()
 		self._LCTRL_items.SetFocus()
+
 	#------------------------------------------------------------
 	def _on_middle_extra_button_pressed(self, event):
 		if self.__middle_extra_button_wants_list:
@@ -282,16 +273,17 @@ class cGenericListSelectorDlg(wxgGenericListSelectorDlg.wxgGenericListSelectorDl
 		if not self.__middle_extra_button_callback(item_data):
 			self._LCTRL_items.SetFocus()
 			return
-		if self.refresh_callback is None:
+		if self.__refresh_callback is None:
 			self._LCTRL_items.SetFocus()
 			return
 		wx.BeginBusyCursor()
 		try:
-			self.refresh_callback(lctrl = self._LCTRL_items)
+			self.__refresh_callback(lctrl = self._LCTRL_items)
 		finally:
 			wx.EndBusyCursor()
 		self._LCTRL_items.set_column_widths()
 		self._LCTRL_items.SetFocus()
+
 	#------------------------------------------------------------
 	def _on_right_extra_button_pressed(self, event):
 		if self.__right_extra_button_wants_list:
@@ -301,16 +293,101 @@ class cGenericListSelectorDlg(wxgGenericListSelectorDlg.wxgGenericListSelectorDl
 		if not self.__right_extra_button_callback(item_data):
 			self._LCTRL_items.SetFocus()
 			return
-		if self.refresh_callback is None:
+		if self.__refresh_callback is None:
 			self._LCTRL_items.SetFocus()
 			return
 		wx.BeginBusyCursor()
 		try:
-			self.refresh_callback(lctrl = self._LCTRL_items)
+			self.__refresh_callback(lctrl = self._LCTRL_items)
 		finally:
 			wx.EndBusyCursor()
 		self._LCTRL_items.set_column_widths()
 		self._LCTRL_items.SetFocus()
+
+	#------------------------------------------------------------
+	# internal helpers
+	#------------------------------------------------------------
+	def _on_list_item_selected_in_listctrl(self, event):
+		event.Skip()
+		if not self.__ignore_OK_button:
+			self._BTN_ok.SetDefault()
+			self._BTN_ok.Enable(True)
+		if self.edit_callback is not None:
+			self._BTN_edit.Enable(True)
+		if self.delete_callback is not None:
+			self._BTN_delete.Enable(True)
+		if self.__select_callback is not None:
+			item = self._LCTRL_items.get_selected_item_data(only_one = True)
+			self.__select_callback(item)
+
+	#------------------------------------------------------------
+	def _on_delete_key_pressed_in_listctrl(self):
+		self.__do_delete()
+
+	#------------------------------------------------------------
+	def __do_delete(self):
+		any_deleted = False
+		for item_data in self._LCTRL_items.get_selected_item_data(only_one = False):
+			if item_data is None:
+				continue
+			if self.__delete_callback(item_data):
+				any_deleted = True
+
+		self._LCTRL_items.SetFocus()
+
+		if any_deleted is False:
+			return
+
+		if self.__refresh_callback is None:
+			return
+
+		wx.BeginBusyCursor()
+		try:
+			self.__refresh_callback(lctrl = self._LCTRL_items)
+			self._LCTRL_items.set_column_widths()
+		finally:
+			wx.EndBusyCursor()
+
+	#------------------------------------------------------------
+	def _on_edit_invoked_in_listctrl(self):
+		self.__do_edit()
+
+	#------------------------------------------------------------
+	def __do_edit(self):
+		if not self.__edit_callback(self._LCTRL_items.get_selected_item_data(only_one = True)):
+			self._LCTRL_items.SetFocus()
+			return
+		if self.__refresh_callback is None:
+			self._LCTRL_items.SetFocus()
+			return
+		wx.BeginBusyCursor()
+		try:
+			self.__refresh_callback(lctrl = self._LCTRL_items)
+			self._LCTRL_items.set_column_widths()
+			self._LCTRL_items.SetFocus()
+		finally:
+			wx.EndBusyCursor()
+
+	#------------------------------------------------------------
+	def _on_insert_key_pressed_in_listctrl(self):
+		self.__do_insert()
+
+	#------------------------------------------------------------
+	def __do_insert(self):
+		if not self.__new_callback():
+			self._LCTRL_items.SetFocus()
+			return
+		if self.__refresh_callback is None:
+			self._LCTRL_items.SetFocus()
+			return
+		wx.BeginBusyCursor()
+		try:
+			self.__refresh_callback(lctrl = self._LCTRL_items)
+			self._LCTRL_items.set_column_widths()
+			self._LCTRL_items.SetFocus()
+		finally:
+			wx.EndBusyCursor()
+
 	#------------------------------------------------------------
 	# properties
 	#------------------------------------------------------------
@@ -329,6 +406,7 @@ class cGenericListSelectorDlg(wxgGenericListSelectorDlg.wxgGenericListSelectorDl
 					self._BTN_cancel.SetDefault()
 
 	ignore_OK_button = property(lambda x:x, _set_ignore_OK_button)
+
 	#------------------------------------------------------------
 	def _set_left_extra_button(self, definition):
 		if definition is None:
@@ -354,6 +432,7 @@ class cGenericListSelectorDlg(wxgGenericListSelectorDlg.wxgGenericListSelectorDl
 		self._BTN_extra_left.Show()
 
 	left_extra_button = property(lambda x:x, _set_left_extra_button)
+
 	#------------------------------------------------------------
 	def _set_middle_extra_button(self, definition):
 		if definition is None:
@@ -379,6 +458,7 @@ class cGenericListSelectorDlg(wxgGenericListSelectorDlg.wxgGenericListSelectorDl
 		self._BTN_extra_middle.Show()
 
 	middle_extra_button = property(lambda x:x, _set_middle_extra_button)
+
 	#------------------------------------------------------------
 	def _set_right_extra_button(self, definition):
 		if definition is None:
@@ -404,13 +484,14 @@ class cGenericListSelectorDlg(wxgGenericListSelectorDlg.wxgGenericListSelectorDl
 		self._BTN_extra_right.Show()
 
 	right_extra_button = property(lambda x:x, _set_right_extra_button)
+
 	#------------------------------------------------------------
 	def _get_new_callback(self):
 		return self.__new_callback
 
 	def _set_new_callback(self, callback):
 		if callback is not None:
-			if self.refresh_callback is None:
+			if self.__refresh_callback is None:
 				raise ValueError('refresh callback must be set before new callback can be set')
 			if not callable(callback):
 				raise ValueError('<new> callback is not a callable: %s' % callback)
@@ -419,11 +500,14 @@ class cGenericListSelectorDlg(wxgGenericListSelectorDlg.wxgGenericListSelectorDl
 		if callback is None:
 			self._BTN_new.Enable(False)
 			self._BTN_new.Hide()
+			self._LCTRL_items.new_callback = None
 		else:
 			self._BTN_new.Enable(True)
 			self._BTN_new.Show()
+			self._LCTRL_items.new_callback = self._on_insert_key_pressed_in_listctrl
 
 	new_callback = property(_get_new_callback, _set_new_callback)
+
 	#------------------------------------------------------------
 	def _get_edit_callback(self):
 		return self.__edit_callback
@@ -437,31 +521,36 @@ class cGenericListSelectorDlg(wxgGenericListSelectorDlg.wxgGenericListSelectorDl
 		if callback is None:
 			self._BTN_edit.Enable(False)
 			self._BTN_edit.Hide()
+			self._LCTRL_items.edit_callback = None
 		else:
 			self._BTN_edit.Enable(True)
 			self._BTN_edit.Show()
+			self._LCTRL_items.edit_callback = self._on_edit_invoked_in_listctrl
 
 	edit_callback = property(_get_edit_callback, _set_edit_callback)
+
 	#------------------------------------------------------------
 	def _get_delete_callback(self):
 		return self.__delete_callback
 
 	def _set_delete_callback(self, callback):
 		if callback is not None:
-			if self.refresh_callback is None:
+			if self.__refresh_callback is None:
 				raise ValueError('refresh callback must be set before delete callback can be set')
 			if not callable(callback):
 				raise ValueError('<delete> callback is not a callable: %s' % callback)
 		self.__delete_callback = callback
-
 		if callback is None:
 			self._BTN_delete.Enable(False)
 			self._BTN_delete.Hide()
+			self._LCTRL_items.delete_callback = None
 		else:
 			self._BTN_delete.Enable(True)
 			self._BTN_delete.Show()
+			self._LCTRL_items.delete_callback = self._on_delete_key_pressed_in_listctrl
 
 	delete_callback = property(_get_delete_callback, _set_delete_callback)
+
 	#------------------------------------------------------------
 	def _get_refresh_callback(self):
 		return self.__refresh_callback
@@ -469,7 +558,7 @@ class cGenericListSelectorDlg(wxgGenericListSelectorDlg.wxgGenericListSelectorDl
 	def _set_refresh_callback_helper(self):
 		wx.BeginBusyCursor()
 		try:
-			self.refresh_callback(lctrl = self._LCTRL_items)
+			self.__refresh_callback(lctrl = self._LCTRL_items)
 		finally:
 			wx.EndBusyCursor()
 		self._LCTRL_items.set_column_widths()
@@ -483,6 +572,19 @@ class cGenericListSelectorDlg(wxgGenericListSelectorDlg.wxgGenericListSelectorDl
 			wx.CallAfter(self._set_refresh_callback_helper)
 
 	refresh_callback = property(_get_refresh_callback, _set_refresh_callback)
+
+	#------------------------------------------------------------
+	def _get_select_callback(self):
+		return self.__select_callback
+
+	def _set_select_callback(self, callback):
+		if callback is not None:
+			if not callable(callback):
+				raise ValueError('<select> callback is not a callable: %s' % callback)
+		self.__select_callback = callback
+
+	select_callback = property(_get_select_callback, _set_select_callback)
+
 	#------------------------------------------------------------
 	def _set_list_tooltip_callback(self, callback):
 		self._LCTRL_items.item_tooltip_callback = callback
@@ -499,6 +601,7 @@ class cGenericListSelectorDlg(wxgGenericListSelectorDlg.wxgGenericListSelectorDl
 		self._LBL_message.Show()
 
 	message = property(lambda x:x, _set_message)
+
 #================================================================
 from Gnumed.wxGladeWidgets import wxgGenericListManagerPnl
 
@@ -519,22 +622,25 @@ class cGenericListManagerPnl(wxgGenericListManagerPnl.wxgGenericListManagerPnl):
 		else:
 			self._LBL_message.SetLabel(msg)
 
+		self.left_extra_button = None
+		self.middle_extra_button = None
+		self.right_extra_button = None
+
 		# new/edit/delete must return True/False to enable refresh
-		self.__new_callback = None				# called when NEW button pressed, no argument passed in
+		self.refresh_callback = None			# called when new/edit/delete callbacks return True (IOW were not cancelled)
+		self.new_callback = None				# called when NEW button pressed, no argument passed in
 		self.edit_callback = None				# called when EDIT button pressed, data of topmost selected item passed in
 		self.delete_callback = None				# called when DELETE button pressed, data of topmost selected item passed in
-		self.refresh_callback = None			# called when new/edit/delete callbacks return True (IOW were not cancelled)
 
-		self.__select_callback = None			# called when an item is selected, data of topmost selected item passed in
+		self.select_callback = None				# called when an item is selected, data of topmost selected item passed in
+		self._LCTRL_items.select_callback = self._on_list_item_selected_in_listctrl
 
-		self.left_extra_button = None
-		self.middle_extra_button = None
-		self.right_extra_button = None
 	#------------------------------------------------------------
 	# external API
 	#------------------------------------------------------------
 	def set_columns(self, columns=None):
 		self._LCTRL_items.set_columns(columns = columns)
+
 	#------------------------------------------------------------
 	def set_string_items(self, items=None, reshow=True):
 		self._LCTRL_items.set_string_items(items = items, reshow = reshow)
@@ -545,125 +651,193 @@ class cGenericListManagerPnl(wxgGenericListManagerPnl.wxgGenericListManagerPnl):
 			self._BTN_remove.Enable(False)
 		#else:
 		#	self._LCTRL_items.Select(0)
+
 	#------------------------------------------------------------
 	def set_selections(self, selections = None):
 		self._LCTRL_items.set_selections(selections = selections)
+
 	#------------------------------------------------------------
 	def set_data(self, data = None):
 		self._LCTRL_items.set_data(data = data)
+
 	#------------------------------------------------------------
 	def get_selected_item_data(self, only_one=False):
 		return self._LCTRL_items.get_selected_item_data(only_one=only_one)
+
 	#------------------------------------------------------------
-	# event handlers
+	# internal helpers
 	#------------------------------------------------------------
-	def _on_list_item_selected(self, event):
-		if self.edit_callback is not None:
+	def _on_list_item_selected_in_listctrl(self, event):
+		event.Skip()
+		if self.__edit_callback is not None:
 			self._BTN_edit.Enable(True)
-		if self.delete_callback is not None:
+		if self.__delete_callback is not None:
 			self._BTN_remove.Enable(True)
 		if self.__select_callback is not None:
-			item = self._LCTRL_items.get_selected_item_data(only_one=True)
+			item = self._LCTRL_items.get_selected_item_data(only_one = True)
 			self.__select_callback(item)
+
 	#------------------------------------------------------------
-	def _on_list_item_deselected(self, event):
-		if self._LCTRL_items.get_selected_items(only_one=True) == -1:
-			self._BTN_edit.Enable(False)
-			self._BTN_remove.Enable(False)
-			if self.__select_callback is not None:
-				self.__select_callback(None)
+	def _on_delete_key_pressed_in_listctrl(self):
+		self.__do_delete()
+
 	#------------------------------------------------------------
-	def _on_add_button_pressed(self, event):
-		if not self.new_callback():
+	def __do_delete(self):
+		if not self.__delete_callback(self._LCTRL_items.get_selected_item_data(only_one = True)):
+			return
+		if self.__refresh_callback is None:
+			self._LCTRL_items.SetFocus()
+			return
+		wx.BeginBusyCursor()
+		try:
+			self.__refresh_callback(lctrl = self._LCTRL_items)
+			self._LCTRL_items.set_column_widths()
+			self._LCTRL_items.SetFocus()
+		finally:
+			wx.EndBusyCursor()
+
+	#------------------------------------------------------------
+	def _on_edit_invoked_in_listctrl(self):
+		self.__do_edit()
+
+	#------------------------------------------------------------
+	def __do_edit(self):
+		if not self.__edit_callback(self._LCTRL_items.get_selected_item_data(only_one = True)):
+			self._LCTRL_items.SetFocus()
+			return
+		if self.__refresh_callback is None:
+			self._LCTRL_items.SetFocus()
+			return
+		wx.BeginBusyCursor()
+		try:
+			self.__refresh_callback(lctrl = self._LCTRL_items)
+			self._LCTRL_items.set_column_widths()
+			self._LCTRL_items.SetFocus()
+		finally:
+			wx.EndBusyCursor()
+
+	#------------------------------------------------------------
+	def _on_insert_key_pressed_in_listctrl(self):
+		self.__do_insert()
+
+	#------------------------------------------------------------
+	def __do_insert(self):
+		if not self.__new_callback():
+			self._LCTRL_items.SetFocus()
 			return
-		if self.refresh_callback is None:
+		if self.__refresh_callback is None:
+			self._LCTRL_items.SetFocus()
 			return
 		wx.BeginBusyCursor()
 		try:
-			self.refresh_callback(lctrl = self._LCTRL_items)
+			self.__refresh_callback(lctrl = self._LCTRL_items)
+			self._LCTRL_items.set_column_widths()
+			self._LCTRL_items.SetFocus()
 		finally:
 			wx.EndBusyCursor()
+
+	#------------------------------------------------------------
+	# event handlers
+	#------------------------------------------------------------
+	def _on_list_item_deselected(self, event):
+		event.Skip()
+		if self._LCTRL_items.get_selected_items(only_one = True) == -1:
+			self._BTN_edit.Enable(False)
+			self._BTN_remove.Enable(False)
+			if self.__select_callback is not None:
+				self.__select_callback(None)
+
 	#------------------------------------------------------------
 	def _on_list_item_activated(self, event):
-		if self.edit_callback is None:
+		event.Skip()
+		if self.__edit_callback is None:
 			return
 		self._on_edit_button_pressed(event)
+
 	#------------------------------------------------------------
-	def _on_edit_button_pressed(self, event):
-		item = self._LCTRL_items.get_selected_item_data(only_one=True)
-		if item is None:
-			return
-		if not self.edit_callback(item):
+	def _on_add_button_pressed(self, event):
+		if not self.__new_callback():
 			return
-		if self.refresh_callback is None:
+		if self.__refresh_callback is None:
 			return
 		wx.BeginBusyCursor()
 		try:
-			self.refresh_callback(lctrl = self._LCTRL_items)
+			self.__refresh_callback(lctrl = self._LCTRL_items)
 		finally:
 			wx.EndBusyCursor()
+
 	#------------------------------------------------------------
-	def _on_remove_button_pressed(self, event):
+	def _on_edit_button_pressed(self, event):
 		item = self._LCTRL_items.get_selected_item_data(only_one=True)
 		if item is None:
 			return
-		if not self.delete_callback(item):
+		if not self.__edit_callback(item):
 			return
-		if self.refresh_callback is None:
+		if self.__refresh_callback is None:
 			return
 		wx.BeginBusyCursor()
 		try:
-			self.refresh_callback(lctrl = self._LCTRL_items)
+			self.__refresh_callback(lctrl = self._LCTRL_items)
 		finally:
 			wx.EndBusyCursor()
+
+	#------------------------------------------------------------
+	def _on_remove_button_pressed(self, event):
+		if len(self._LCTRL_items.get_selected_items(only_one = True)) == 0:
+			return
+		self.__do_delete()
+
 	#------------------------------------------------------------
 	def _on_left_extra_button_pressed(self, event):
 		item_data = self._LCTRL_items.get_selected_item_data(only_one=True)
 		if not self.__left_extra_button_callback(item_data):
 			self._LCTRL_items.SetFocus()
 			return
-		if self.refresh_callback is None:
+		if self.__refresh_callback is None:
 			self._LCTRL_items.SetFocus()
 			return
 		wx.BeginBusyCursor()
 		try:
-			self.refresh_callback(lctrl = self._LCTRL_items)
+			self.__refresh_callback(lctrl = self._LCTRL_items)
 		finally:
+			self._LCTRL_items.set_column_widths()
+			self._LCTRL_items.SetFocus()
 			wx.EndBusyCursor()
-		self._LCTRL_items.set_column_widths()
-		self._LCTRL_items.SetFocus()
+
 	#------------------------------------------------------------
 	def _on_middle_extra_button_pressed(self, event):
 		item_data = self._LCTRL_items.get_selected_item_data(only_one=True)
 		if not self.__middle_extra_button_callback(item_data):
 			self._LCTRL_items.SetFocus()
 			return
-		if self.refresh_callback is None:
+		if self.__refresh_callback is None:
 			self._LCTRL_items.SetFocus()
 			return
 		wx.BeginBusyCursor()
 		try:
-			self.refresh_callback(lctrl = self._LCTRL_items)
+			self.__refresh_callback(lctrl = self._LCTRL_items)
 		finally:
+			self._LCTRL_items.set_column_widths()
+			self._LCTRL_items.SetFocus()
 			wx.EndBusyCursor()
-		self._LCTRL_items.set_column_widths()
-		self._LCTRL_items.SetFocus()
+
 	#------------------------------------------------------------
 	def _on_right_extra_button_pressed(self, event):
 		item_data = self._LCTRL_items.get_selected_item_data(only_one=True)
 		if not self.__right_extra_button_callback(item_data):
 			self._LCTRL_items.SetFocus()
 			return
-		if self.refresh_callback is None:
+		if self.__refresh_callback is None:
 			self._LCTRL_items.SetFocus()
 			return
 		wx.BeginBusyCursor()
 		try:
-			self.refresh_callback(lctrl = self._LCTRL_items)
+			self.__refresh_callback(lctrl = self._LCTRL_items)
 		finally:
 			wx.EndBusyCursor()
 		self._LCTRL_items.set_column_widths()
 		self._LCTRL_items.SetFocus()
+
 	#------------------------------------------------------------
 	# properties
 	#------------------------------------------------------------
@@ -672,25 +846,102 @@ class cGenericListManagerPnl(wxgGenericListManagerPnl.wxgGenericListManagerPnl):
 
 	def _set_new_callback(self, callback):
 		if callback is not None:
+			if self.__refresh_callback is None:
+				raise ValueError('refresh callback must be set before new callback can be set')
 			if not callable(callback):
 				raise ValueError('<new> callback is not a callable: %s' % callback)
 		self.__new_callback = callback
-		self._BTN_add.Enable(callback is not None)
+
+		if callback is None:
+			self._BTN_add.Enable(False)
+			self._BTN_add.Hide()
+			self._LCTRL_items.new_callback = None
+		else:
+			self._BTN_add.Enable(True)
+			self._BTN_add.Show()
+			self._LCTRL_items.new_callback = self._on_insert_key_pressed_in_listctrl
 
 	new_callback = property(_get_new_callback, _set_new_callback)
+
 	#------------------------------------------------------------
-	def _get_select_callback(self):
-		return self.__select_callback
+	def _get_edit_callback(self):
+		return self.__edit_callback
 
-	def _set_select_callback(self, callback):
+	def _set_edit_callback(self, callback):
 		if callback is not None:
 			if not callable(callback):
-				raise ValueError('<select> callback is not a callable: %s' % callback)
-		self.__select_callback = callback
+				raise ValueError('<edit> callback is not a callable: %s' % callback)
+		self.__edit_callback = callback
 
-	select_callback = property(_get_select_callback, _set_select_callback)
-	#------------------------------------------------------------
-	def _get_message(self):
+		if callback is None:
+			self._BTN_edit.Enable(False)
+			self._BTN_edit.Hide()
+			self._LCTRL_items.edit_callback = None
+		else:
+			self._BTN_edit.Enable(True)
+			self._BTN_edit.Show()
+			self._LCTRL_items.edit_callback = self._on_edit_invoked_in_listctrl
+
+	edit_callback = property(_get_edit_callback, _set_edit_callback)
+
+	#------------------------------------------------------------
+	def _get_delete_callback(self):
+		return self.__delete_callback
+
+	def _set_delete_callback(self, callback):
+		if callback is not None:
+			if self.__refresh_callback is None:
+				raise ValueError('refresh callback must be set before delete callback can be set')
+			if not callable(callback):
+				raise ValueError('<delete> callback is not a callable: %s' % callback)
+		self.__delete_callback = callback
+		if callback is None:
+			self._BTN_remove.Enable(False)
+			self._BTN_remove.Hide()
+			self._LCTRL_items.delete_callback = None
+		else:
+			self._BTN_remove.Enable(True)
+			self._BTN_remove.Show()
+			self._LCTRL_items.delete_callback = self._on_delete_key_pressed_in_listctrl
+
+	delete_callback = property(_get_delete_callback, _set_delete_callback)
+
+	#------------------------------------------------------------
+	def _get_refresh_callback(self):
+		return self.__refresh_callback
+
+	def _set_refresh_callback_helper(self):
+		wx.BeginBusyCursor()
+		try:
+			self.__refresh_callback(lctrl = self._LCTRL_items)
+		finally:
+			wx.EndBusyCursor()
+		self._LCTRL_items.set_column_widths()
+
+	def _set_refresh_callback(self, callback):
+		if callback is not None:
+			if not callable(callback):
+				raise ValueError('<refresh> callback is not a callable: %s' % callback)
+		self.__refresh_callback = callback
+		if callback is not None:
+			wx.CallAfter(self._set_refresh_callback_helper)
+
+	refresh_callback = property(_get_refresh_callback, _set_refresh_callback)
+
+	#------------------------------------------------------------
+	def _get_select_callback(self):
+		return self.__select_callback
+
+	def _set_select_callback(self, callback):
+		if callback is not None:
+			if not callable(callback):
+				raise ValueError('<select> callback is not a callable: %s' % callback)
+		self.__select_callback = callback
+
+	select_callback = property(_get_select_callback, _set_select_callback)
+
+	#------------------------------------------------------------
+	def _get_message(self):
 		return self._LBL_message.GetLabel()
 
 	def _set_message(self, msg):
@@ -703,6 +954,7 @@ class cGenericListManagerPnl(wxgGenericListManagerPnl.wxgGenericListManagerPnl):
 		self.Layout()
 
 	message = property(_get_message, _set_message)
+
 	#------------------------------------------------------------
 	def _set_left_extra_button(self, definition):
 		if definition is None:
@@ -721,6 +973,7 @@ class cGenericListManagerPnl(wxgGenericListManagerPnl.wxgGenericListManagerPnl):
 		self._BTN_extra_left.Show()
 
 	left_extra_button = property(lambda x:x, _set_left_extra_button)
+
 	#------------------------------------------------------------
 	def _set_middle_extra_button(self, definition):
 		if definition is None:
@@ -739,6 +992,7 @@ class cGenericListManagerPnl(wxgGenericListManagerPnl.wxgGenericListManagerPnl):
 		self._BTN_extra_middle.Show()
 
 	middle_extra_button = property(lambda x:x, _set_middle_extra_button)
+
 	#------------------------------------------------------------
 	def _set_right_extra_button(self, definition):
 		if definition is None:
@@ -757,6 +1011,7 @@ class cGenericListManagerPnl(wxgGenericListManagerPnl.wxgGenericListManagerPnl):
 		self._BTN_extra_right.Show()
 
 	right_extra_button = property(lambda x:x, _set_right_extra_button)
+
 #================================================================
 from Gnumed.wxGladeWidgets import wxgItemPickerDlg
 
@@ -777,7 +1032,7 @@ class cItemPickerDlg(wxgItemPickerDlg.wxgItemPickerDlg):
 		else:
 			self._LBL_msg.SetLabel(msg)
 
-		self.allow_duplicate_picks = True
+		self.ignore_dupes_on_picking = True
 
 		self._LCTRL_left.activate_callback = self.__pick_selected
 		self.__extra_button_callback = None
@@ -859,7 +1114,7 @@ class cItemPickerDlg(wxgItemPickerDlg.wxgItemPickerDlg):
 		selected_items = self._LCTRL_left.get_selected_string_items(only_one = False)
 		selected_data = self._LCTRL_left.get_selected_item_data(only_one = False)
 
-		if self.allow_duplicate_picks:
+		if self.ignore_dupes_on_picking is False:
 			right_items.extend(selected_items)
 			right_data.extend(selected_data)
 			self._LCTRL_right.set_string_items(items = right_items, reshow = True)
@@ -929,7 +1184,7 @@ class cItemPickerDlg(wxgItemPickerDlg.wxgItemPickerDlg):
 	right_item_tooltip_callback = property(lambda x:x, _set_right_item_tooltip_callback)
 
 #================================================================
-class cReportListCtrl(wx.ListCtrl, listmixins.ListCtrlAutoWidthMixin, listmixins.ColumnSorterMixin):
+class cReportListCtrl(listmixins.ListCtrlAutoWidthMixin, listmixins.ColumnSorterMixin, wx.ListCtrl):
 
 	# sorting: at set_string_items() time all items will be
 	# adorned with their initial row number as wxPython data,
@@ -966,27 +1221,45 @@ class cReportListCtrl(wx.ListCtrl, listmixins.ListCtrlAutoWidthMixin, listmixins
 		# for debugging sorting:
 		#self.Bind(wx.EVT_LIST_COL_CLICK, self._on_col_click, self)
 
+		# cols/rows
 		self.__widths = None
 		self.__data = None
+
+		# event callbacks
+		self.__select_callback = None
 		self.__activate_callback = None
-		self.__rightclick_callback = None
+		self.__new_callback = None
+		self.__edit_callback = None
+		self.__delete_callback = None
 
+		# context menu
+		self.__extend_popup_menu_callback = None
+		self.Bind(wx.EVT_LIST_ITEM_RIGHT_CLICK, self._on_list_item_rightclicked)	# (also handled by MENU key on EVT_LIST_KEY_DOWN)
+
+		# row tooltips
 		self.__item_tooltip_callback = None
 		self.__tt_last_item = None
-		self.__tt_static_part = _("""Select the items you want to work on.
-
-A discontinuous selection may depend on your holding down a platform-dependent modifier key (<ctrl>, <alt>, etc) or key combination (eg. <ctrl-shift> or <ctrl-alt>) while clicking.""")
+		self.__tt_static_part_base = _(
+			u'Select the items you want to work on.\n'
+			u'\n'
+			u'A discontinuous selection may depend on your holding '
+			u'down a platform-dependent modifier key (<CTRL>, <ALT>, '
+			u'etc) or key combination (eg. <CTRL-SHIFT> or <CTRL-ALT>) '
+			u'while clicking.'
+		)
+		self.__tt_static_part = self.__tt_static_part_base
 		self.Bind(wx.EVT_MOTION, self._on_mouse_motion)
 
+		# search related:
+		self.__search_term = None
 		self.__next_line_to_search = 0
-		self.__search_data = None
-		self.__search_dlg = None
 		self.__searchable_cols = None
+
+		# general event handling
 #		self.Bind(wx.EVT_KILL_FOCUS, self._on_lost_focus)
-		self.Bind(wx.EVT_CHAR, self._on_char)
-		self.Bind(wx.EVT_FIND_CLOSE, self._on_search_dlg_closed)
-		self.Bind(wx.EVT_FIND, self._on_search_first_match)
-		self.Bind(wx.EVT_FIND_NEXT, self._on_search_next_match)
+		self.Bind(wx.EVT_CHAR, self._on_char)						# CTRL-F / CTRL-N (LIST_KEY_DOWN does not support modifiers)
+		self.Bind(wx.EVT_LIST_KEY_DOWN, self._on_list_key_down)		# context menu key -> context menu / DEL / INS
+
 	#------------------------------------------------------------
 	# setters
 	#------------------------------------------------------------
@@ -1003,6 +1276,7 @@ A discontinuous selection may depend on your holding down a platform-dependent m
 			self.InsertColumn(idx, columns[idx])
 
 		self._invalidate_sorting_metadata()
+
 	#------------------------------------------------------------
 	def set_column_widths(self, widths=None):
 		"""Set the column width policy.
@@ -1034,6 +1308,15 @@ A discontinuous selection may depend on your holding down a platform-dependent m
 			width_type = wx.LIST_AUTOSIZE
 		for idx in range(self.GetColumnCount()):
 			self.SetColumnWidth(col = idx, width = width_type)
+
+	#------------------------------------------------------------
+	def set_resize_column(self, column='LAST'):
+		if column != 'LAST':
+			if column > self.ColumnCount:
+				return
+		# this column will take up all remaining space courtesy of the width mixin
+		self.setResizeColumn(column)
+
 	#------------------------------------------------------------
 	def remove_items_safely(self, max_tries=3):
 		tries = 0
@@ -1053,6 +1336,7 @@ A discontinuous selection may depend on your holding down a platform-dependent m
 
 		_log.error('<%s>: unable to delete list items after looping %s times', self.debug, max_tries)
 		return False
+
 	#------------------------------------------------------------
 	def set_string_items(self, items=None, reshow=True):
 		"""All item members must be unicode()able or None."""
@@ -1070,7 +1354,7 @@ A discontinuous selection may depend on your holding down a platform-dependent m
 				topmost_visible = self.TopItem
 
 		if not self.remove_items_safely(max_tries = 3):
-			_log.error("cannot remove items (?), continuing and hoping for the best")
+			_log.error("cannot remove items (!?), continuing and hoping for the best")
 
 		if items is None:
 			self.data = None
@@ -1115,6 +1399,22 @@ A discontinuous selection may depend on your holding down a platform-dependent m
 		self.data = items
 
 		wx.EndBusyCursor()
+
+	#--------------------------
+	def get_string_items(self):
+		rows = []
+		for row_idx in range(self.ItemCount):
+			row = []
+			for col_idx in range(self.ColumnCount):
+				row.append(self.GetItem(row_idx, col_idx).GetText())
+			rows.append(row)
+		return rows
+
+		# old: only returned first column
+		#return [ self.GetItemText(item_idx) for item_idx in range(self.GetItemCount()) ]
+
+	string_items = property(get_string_items, set_string_items)
+
 	#------------------------------------------------------------
 	def set_data(self, data=None):
 		"""<data> assumed to be a list corresponding to the item indices"""
@@ -1132,10 +1432,13 @@ A discontinuous selection may depend on your holding down a platform-dependent m
 
 	def _get_data(self):
 		# slower than "return self.__data" but helps with detecting
-		# problems with len(__data) <> self.GetItemCount()
-		return self.get_item_data() 		# returns all data if item_idx is None
+		# problems with len(__data) != self.GetItemCount(),
+		# also takes care of returning data in the order corresponding
+		# to the order get_string_items returns rows
+		return self.get_item_data() 		# returns all data since item_idx is None
 
 	data = property(_get_data, set_data)
+
 	#------------------------------------------------------------
 	def set_selections(self, selections=None):
 		# not sure why this is done:
@@ -1157,6 +1460,7 @@ A discontinuous selection may depend on your holding down a platform-dependent m
 		return selections
 
 	selections = property(__get_selections, set_selections)
+
 	#------------------------------------------------------------
 	# getters
 	#------------------------------------------------------------
@@ -1166,16 +1470,20 @@ A discontinuous selection may depend on your holding down a platform-dependent m
 			col = self.GetColumn(col = col_idx)
 			labels.append(col.GetText())
 		return labels
+
+	column_labels = property(get_column_labels, lambda x:x)
+
 	#------------------------------------------------------------
 	def get_item(self, item_idx=None):
 		if item_idx is not None:
 			return self.GetItem(item_idx)
+
 	#------------------------------------------------------------
 	def get_items(self):
 		return [ self.GetItem(item_idx) for item_idx in range(self.GetItemCount()) ]
-	#------------------------------------------------------------
-	def get_string_items(self):
-		return [ self.GetItemText(item_idx) for item_idx in range(self.GetItemCount()) ]
+
+	items = property(get_items, lambda x:x)
+
 	#------------------------------------------------------------
 	def get_selected_items(self, only_one=False):
 
@@ -1189,6 +1497,9 @@ A discontinuous selection may depend on your holding down a platform-dependent m
 			idx = self.GetNextSelected(idx)
 
 		return items
+
+	selected_items = property(get_selected_items, lambda x:x)
+
 	#------------------------------------------------------------
 	def get_selected_string_items(self, only_one=False):
 
@@ -1202,6 +1513,9 @@ A discontinuous selection may depend on your holding down a platform-dependent m
 			idx = self.GetNextSelected(idx)
 
 		return items
+
+	selected_string_items = property(get_selected_string_items, lambda x:x)
+
 	#------------------------------------------------------------
 	def get_item_data(self, item_idx=None):
 		if self.__data is None:	# this isn't entirely clean
@@ -1211,9 +1525,12 @@ A discontinuous selection may depend on your holding down a platform-dependent m
 			return self.__data[self.map_item_idx2data_idx(item_idx)]
 
 		# if <idx> is None return all data up to item_count,
-		# in case of len(__data) <> self.GetItemCount() this
+		# in case of len(__data) != self.GetItemCount() this
 		# gives the chance to figure out what is going on
 		return [ self.__data[self.map_item_idx2data_idx(item_idx)] for item_idx in range(self.GetItemCount()) ]
+
+	item_data = property(get_item_data, lambda x:x)
+
 	#------------------------------------------------------------
 	def get_selected_item_data(self, only_one=False):
 
@@ -1234,9 +1551,13 @@ A discontinuous selection may depend on your holding down a platform-dependent m
 			idx = self.GetNextSelected(idx)
 
 		return data
+
+	selected_item_data = property(get_selected_item_data, lambda x:x)
+
 	#------------------------------------------------------------
 	def deselect_selected_item(self):
 		self.Select(idx = self.GetFirstSelected(), on = 0)
+
 	#------------------------------------------------------------
 	def remove_item(self, item_idx=None):
 		# do NOT remove the corresponding data because even if
@@ -1248,6 +1569,218 @@ A discontinuous selection may depend on your holding down a platform-dependent m
 		self.DeleteItem(item_idx)
 		self.__tt_last_item = None
 		self._invalidate_sorting_metadata()
+
+	#------------------------------------------------------------
+	# internal helpers
+	#------------------------------------------------------------
+	def __show_context_menu(self, item_idx):
+
+		# build context menu
+		self._context_menu = wx.Menu(title = _('List Item Actions:'))
+
+		needs_separator = False
+		if self.__new_callback is not None:
+			menu_item = self._context_menu.Append(-1, _('Add (<INS>)'))
+			self.Bind(wx.EVT_MENU, self._on_add_row, menu_item)
+			needs_separator = True
+		if self.__edit_callback is not None:
+			menu_item = self._context_menu.Append(-1, _('&Edit'))
+			self.Bind(wx.EVT_MENU, self._on_edit_row, menu_item)
+			needs_separator = True
+		if self.__delete_callback is not None:
+			menu_item = self._context_menu.Append(-1, _('Delete (<DEL>)'))
+			self.Bind(wx.EVT_MENU, self._on_delete_row, menu_item)
+			needs_separator = True
+		if needs_separator:
+			self._context_menu.AppendSeparator()
+
+		menu_item = self._context_menu.Append(-1, _('Find (<CTRL-F>)'))
+		self.Bind(wx.EVT_MENU, self._on_show_search_dialog, menu_item)
+		if self.__search_term is not None:
+			if self.__search_term.strip() != u'':
+				menu_item = self._context_menu.Append(-1, _('Find next [%s] (<CTRL-N>)') % self.__search_term)
+				self.Bind(wx.EVT_MENU, self._on_search_match, menu_item)
+		self._context_menu.AppendSeparator()
+
+		clip_menu = wx.Menu()
+		col_headers = []
+		self._rclicked_row_idx = item_idx
+		self._rclicked_row_data = self.get_item_data(item_idx = self._rclicked_row_idx)
+		self._rclicked_row_cells = []
+		self._rclicked_row_cells_w_hdr = []
+		for col_idx in range(self.ColumnCount):
+			cell_content = self.GetItemText(self._rclicked_row_idx, col_idx).strip()
+			col_header = self.GetColumn(col_idx).m_text.strip()
+			col_headers.append(col_header)
+			self._rclicked_row_cells.append(cell_content)
+			self._rclicked_row_cells_w_hdr.append(u'%s: %s' % (col_header, cell_content))
+
+		# 1) set clipboard to item
+		# row tooltip
+		menu_item = clip_menu.Append(-1, _('Row tooltip'))
+		self.Bind(wx.EVT_MENU, self._tooltip2clipboard, menu_item)
+		# row data as formatted text if available
+		if hasattr(self._rclicked_row_data, 'format'):
+			menu_item = clip_menu.Append(-1, _('Row data (formatted as text)'))
+			self.Bind(wx.EVT_MENU, self._data2clipboard, menu_item)
+		# all fields of the list row as one line of text
+		menu_item = clip_menu.Append(-1, _('Row content (as one line)'))
+		self.Bind(wx.EVT_MENU, self._row2clipboard, menu_item)
+		# all fields of the list row as multiple lines of text
+		menu_item = clip_menu.Append(-1, _('Row content (one line per column)'))
+		self.Bind(wx.EVT_MENU, self._row_list2clipboard, menu_item)
+		# each field of the list row as text with and without header
+		clip_menu.AppendSeparator()
+		for col_idx in range(self.ColumnCount):
+			col_content = self._rclicked_row_cells[col_idx].strip()
+			# skip empty field
+			if col_content == u'':
+				continue
+			col_header = col_headers[col_idx]
+			if col_header == u'':
+				# skip one-character fields without header,
+				# actually, no, because in ideographic languages
+				# one character may mean a lot
+				#if len(col_content) == 1:
+				#	continue
+				# without column header
+				menu_item = clip_menu.Append(-1, _(u'Column &%s: "%s" [#%s]') % (col_idx+1, shorten_text(col_content, 35), col_idx))
+				self.Bind(wx.EVT_MENU, self._col2clipboard, menu_item)
+			else:
+				col_menu = wx.Menu()
+				# with full column header
+				menu_item = col_menu.Append(-1, u'"%s: %s" [#%s]' % (shorten_text(col_header, 8), shorten_text(col_content, 35), col_idx))
+				self.Bind(wx.EVT_MENU, self._col_w_hdr2clipboard, menu_item)
+				# without column header
+				menu_item = col_menu.Append(-1, u'"%s" [#%s]' % (shorten_text(col_content, 35), col_idx))
+				self.Bind(wx.EVT_MENU, self._col2clipboard, menu_item)
+				clip_menu.AppendMenu(-1, _(u'Column &%s: %s') % (col_idx+1, col_header), col_menu)
+		clip_menu.AppendSeparator()
+
+		# 2) append item to current clipboard item
+		clip_add_menu = wx.Menu()
+		# row tooltip
+		menu_item = clip_add_menu.Append(-1, _('Row tooltip'))
+		self.Bind(wx.EVT_MENU, self._add_tooltip2clipboard, menu_item)
+		# row data as formatted text if available
+		if hasattr(self._rclicked_row_data, 'format'):
+			menu_item = clip_add_menu.Append(-1, _('Row data (formatted as text)'))
+			self.Bind(wx.EVT_MENU, self._add_data2clipboard, menu_item)
+		# all fields of the list row as one line of text
+		menu_item = clip_add_menu.Append(-1, _('Row content (as one line)'))
+		self.Bind(wx.EVT_MENU, self._add_row2clipboard, menu_item)
+		# all fields of the list row as multiple lines of text
+		menu_item = clip_add_menu.Append(-1, _('Row content (one line per column)'))
+		self.Bind(wx.EVT_MENU, self._add_row_list2clipboard, menu_item)
+		# each field of the list row as text with and without header
+		clip_add_menu.AppendSeparator()
+		for col_idx in range(self.ColumnCount):
+			col_content = self._rclicked_row_cells[col_idx].strip()
+			# skip empty field
+			if col_content == u'':
+				continue
+			col_header = col_headers[col_idx]
+			if col_header == u'':
+				# without column header
+				menu_item = clip_add_menu.Append(-1, _(u'Column &%s: "%s" [#%s]') % (col_idx+1, shorten_text(col_content, 35), col_idx))
+				self.Bind(wx.EVT_MENU, self._add_col2clipboard, menu_item)
+			else:
+				col_add_menu = wx.Menu()
+				# with full column header
+				menu_item = col_add_menu.Append(-1, u'"%s: %s" [#%s]' % (shorten_text(col_header, 8), shorten_text(col_content, 35), col_idx))
+				self.Bind(wx.EVT_MENU, self._add_col_w_hdr2clipboard, menu_item)
+				# without column header
+				menu_item = col_add_menu.Append(-1, u'"%s" [#%s]' % (shorten_text(col_content, 35), col_idx))
+				self.Bind(wx.EVT_MENU, self._add_col2clipboard, menu_item)
+				clip_add_menu.AppendMenu(-1, _(u'Column &%s: %s') % (col_idx+1, col_header), col_add_menu)
+		clip_add_menu.AppendSeparator()
+
+		# show menu
+		self._context_menu.AppendMenu(-1, _('&Copy to clipboard...'), clip_menu)
+		self._context_menu.AppendMenu(-1, _('Append (&+) to clipboard...'), clip_add_menu)
+
+		if self.__extend_popup_menu_callback is not None:
+			self.__extend_popup_menu_callback(menu = self._context_menu)
+
+		# show menu
+		self.PopupMenu(self._context_menu, wx.DefaultPosition)
+		self._context_menu.Destroy()
+		return
+
+	#------------------------------------------------------------
+	def __handle_delete(self):
+		if self.__delete_callback is None:
+			return
+
+		no_items = len(self.get_selected_items(only_one = False))
+		if no_items == 0:
+			return
+
+		if no_items > 1:
+			question = _(
+				'%s list items are selected.\n'
+				'\n'
+				'Really delete all %s items ?'
+			) % (no_items, no_items)
+			title = _('Deleting list items')
+			style = wx.YES_NO | wx.CANCEL | wx.ICON_QUESTION | wx.STAY_ON_TOP
+			dlg = wx.MessageDialog(None, question, title, style)
+			btn_pressed = dlg.ShowModal()
+			dlg.Destroy()
+			if btn_pressed == wx.ID_NO:
+				self.SetFocus()
+				return
+			if btn_pressed == wx.ID_CANCEL:
+				self.SetFocus()
+				return
+
+		self.__delete_callback()
+		return
+
+	#------------------------------------------------------------
+	def __handle_insert(self):
+		if self.__new_callback is None:
+			return
+		self.__new_callback()
+
+	#------------------------------------------------------------
+	def __handle_edit(self):
+		if self.__edit_callback is None:
+			return
+		self.__edit_callback()
+
+	#------------------------------------------------------------
+	def __show_search_dialog(self):
+		#print "showing search dlg"
+		if self.__search_term is None:
+			#print "no prev search term"
+			default = u''
+		else:
+			#print "prev search term:", self.__search_term
+			default = self.__search_term
+		search_term = wx.GetTextFromUser (
+			_(u'Enter the search term:'),
+			_(u'List search'),
+			default_value = default
+		)
+		if search_term.strip() == u'':
+			#print "empty search term"
+			self.__search_term = None
+			self.__tt_static_part = self.__tt_static_part_base
+			return
+
+		#print "search term:", search_term
+		self.__search_term = search_term
+		self.__tt_static_part = _(
+			u'Current search term: [[%s]]\n'
+			u'\n'
+			u'%s'
+		) % (
+			search_term,
+			self.__tt_static_part_base
+		)
+		self.__search_match()
+
 	#------------------------------------------------------------
 	# event handlers
 	#------------------------------------------------------------
@@ -1255,41 +1788,56 @@ A discontinuous selection may depend on your holding down a platform-dependent m
 		event.Skip()
 		if self.__activate_callback is not None:
 			self.__activate_callback(event)
+			return
+		# default double-click / ENTER action: edit
+		self.__handle_edit()
+
+	#------------------------------------------------------------
+	def _on_list_item_selected(self, event):
+		if self.__select_callback is not None:
+			self.__select_callback(event)
+		else:
+			event.Skip()
+
 	#------------------------------------------------------------
 	def _on_list_item_rightclicked(self, event):
 		event.Skip()
-		if self.__rightclick_callback is not None:
-			self.__rightclick_callback(event)
+		self.__show_context_menu(event.Index)
+
 	#------------------------------------------------------------
-	def _on_char(self, evt):
+	def _on_list_key_down(self, evt):
+		evt.Skip()
 
-		if evt.GetModifiers() != wx.MOD_CMD:
-			evt.Skip()
+		if evt.KeyCode == wx.WXK_DELETE:
+			self.__handle_delete()
 			return
 
-		if unichr(evt.GetRawKeyCode()) != u'f':
-			evt.Skip()
+		if evt.KeyCode == wx.WXK_INSERT:
+			self.__handle_insert()
 			return
 
-		if self.__search_dlg is not None:
-			self.__search_dlg.Close()
+		if evt.KeyCode == wx.WXK_MENU:
+			self.__show_context_menu(evt.Index)
 			return
 
-		if self.__searchable_cols is None:
-			self.searchable_columns = None
+	#------------------------------------------------------------
+	def _on_char(self, evt):
 
-		if len(self.__searchable_cols) == 0:
-			return
+		if unichr(evt.GetRawKeyCode()) == u'f':
+			if evt.GetModifiers() == wx.MOD_CMD:
+				#print "search dialog invoked"
+				self.__show_search_dialog()
+				return
+
+		if unichr(evt.GetRawKeyCode()) == u'n':
+			if evt.GetModifiers() == wx.MOD_CMD:
+				#print "search-next key invoked"
+				self.__search_match()
+				return
+
+		evt.Skip()
+		return
 
-		if self.__search_data is None:
-			self.__search_data = wx.FindReplaceData()
-		self.__search_dlg = wx.FindReplaceDialog (
-			self,
-			self.__search_data,
-			_('Search in list'),
-			wx.FR_NOUPDOWN | wx.FR_NOMATCHCASE | wx.FR_NOWHOLEWORD
-		)
-		self.__search_dlg.Show(True)
 	#------------------------------------------------------------
 	def _on_mouse_motion(self, event):
 		"""Update tooltip on mouse motion.
@@ -1373,12 +1921,294 @@ A discontinuous selection may depend on your holding down a platform-dependent m
 			return
 
 		self.SetToolTipString(dyna_tt)
+
 	#------------------------------------------------------------
-	# search related methods
+	# context menu event hendlers
+	#------------------------------------------------------------
+	def _on_add_row(self, evt):
+		evt.Skip()
+		self.__handle_insert()
+
+	#------------------------------------------------------------
+	def _on_edit_row(self, evt):
+		evt.Skip()
+		self.__handle_edit()
+
+	#------------------------------------------------------------
+	def _on_delete_row(self, evt):
+		evt.Skip()
+		self.__handle_delete()
+
+	#------------------------------------------------------------
+	def _on_show_search_dialog(self, evt):
+		evt.Skip()
+		self.__show_search_dialog()
+
+	#------------------------------------------------------------
+	def _on_search_match(self, evt):
+		evt.Skip()
+		self.__search_match()
+
+	#------------------------------------------------------------
+	def _tooltip2clipboard(self, evt):
+		if wx.TheClipboard.IsOpened():
+			_log.debug('clipboard already open')
+			return
+		if not wx.TheClipboard.Open():
+			_log.debug('cannot open clipboard')
+			return
+		data_obj = wx.TextDataObject()
+
+		if (self.__data is None) or (self.__item_tooltip_callback is None):
+			txt = self.__tt_static_part
+		else:
+			txt = self.__item_tooltip_callback(self.__data[self.map_item_idx2data_idx(self._rclicked_row_idx)])
+			if txt is None:
+				txt = self.__tt_static_part
+
+		data_obj.SetText(txt)
+		wx.TheClipboard.SetData(data_obj)
+		wx.TheClipboard.Close()
+
+	#------------------------------------------------------------
+	def _add_tooltip2clipboard(self, evt):
+		if wx.TheClipboard.IsOpened():
+			_log.debug('clipboard already open')
+			return
+		if not wx.TheClipboard.Open():
+			_log.debug('cannot open clipboard')
+			return
+		data_obj = wx.TextDataObject()
+
+		txt = u''
+		# get previous text
+		got_it = wx.TheClipboard.GetData(data_obj)
+		if got_it:
+			txt = data_obj.Text + u'\n'
+
+		# add text
+		if (self.__data is None) or (self.__item_tooltip_callback is None):
+			txt += self.__tt_static_part
+		else:
+			tmp = self.__item_tooltip_callback(self.__data[self.map_item_idx2data_idx(self._rclicked_row_idx)])
+			if tmp is None:
+				txt += self.__tt_static_part
+			else:
+				txt += tmp
+
+		# set text
+		data_obj.SetText(txt)
+		wx.TheClipboard.SetData(data_obj)
+		wx.TheClipboard.Close()
+
+	#------------------------------------------------------------
+	def _row2clipboard(self, evt):
+		if wx.TheClipboard.IsOpened():
+			_log.debug('clipboard already open')
+			return
+		if not wx.TheClipboard.Open():
+			_log.debug('cannot open clipboard')
+			return
+		data_obj = wx.TextDataObject()
+		data_obj.SetText(u' // '.join(self._rclicked_row_cells))
+		wx.TheClipboard.SetData(data_obj)
+		wx.TheClipboard.Close()
+
+	#------------------------------------------------------------
+	def _add_row2clipboard(self, evt):
+		if wx.TheClipboard.IsOpened():
+			_log.debug('clipboard already open')
+			return
+		if not wx.TheClipboard.Open():
+			_log.debug('cannot open clipboard')
+			return
+		data_obj = wx.TextDataObject()
+
+		txt = u''
+		# get previous text
+		got_it = wx.TheClipboard.GetData(data_obj)
+		if got_it:
+			txt = data_obj.Text + u'\n'
+
+		# add text
+		txt += u' // '.join(self._rclicked_row_cells)
+
+		# set text
+		data_obj.SetText(txt)
+		wx.TheClipboard.SetData(data_obj)
+		wx.TheClipboard.Close()
+
+	#------------------------------------------------------------
+	def _row_list2clipboard(self, evt):
+		if wx.TheClipboard.IsOpened():
+			_log.debug('clipboard already open')
+			return
+		if not wx.TheClipboard.Open():
+			_log.debug('cannot open clipboard')
+			return
+		data_obj = wx.TextDataObject()
+		data_obj.SetText(u'\n'.join(self._rclicked_row_cells_w_hdr))
+		wx.TheClipboard.SetData(data_obj)
+		wx.TheClipboard.Close()
+
+	#------------------------------------------------------------
+	def _add_row_list2clipboard(self, evt):
+		if wx.TheClipboard.IsOpened():
+			_log.debug('clipboard already open')
+			return
+		if not wx.TheClipboard.Open():
+			_log.debug('cannot open clipboard')
+			return
+		data_obj = wx.TextDataObject()
+
+		txt = u''
+		# get previous text
+		got_it = wx.TheClipboard.GetData(data_obj)
+		if got_it:
+			txt = data_obj.Text + u'\n'
+
+		# add text
+		txt += u'\n'.join(self._rclicked_row_cells_w_hdr)
+
+		# set text
+		data_obj.SetText(txt)
+		wx.TheClipboard.SetData(data_obj)
+		wx.TheClipboard.Close()
+
+	#------------------------------------------------------------
+	def _data2clipboard(self, evt):
+		if wx.TheClipboard.IsOpened():
+			_log.debug('clipboard already open')
+			return
+		if not wx.TheClipboard.Open():
+			_log.debug('cannot open clipboard')
+			return
+		data_obj = wx.TextDataObject()
+		txt = self._rclicked_row_data.format()
+		if type(txt) == type([]):
+			txt = u'\n'.join(txt)
+		data_obj.SetText(txt)
+		wx.TheClipboard.SetData(data_obj)
+		wx.TheClipboard.Close()
+
+	#------------------------------------------------------------
+	def _add_data2clipboard(self, evt):
+		if wx.TheClipboard.IsOpened():
+			_log.debug('clipboard already open')
+			return
+		if not wx.TheClipboard.Open():
+			_log.debug('cannot open clipboard')
+			return
+		data_obj = wx.TextDataObject()
+
+		txt = u''
+		# get previous text
+		got_it = wx.TheClipboard.GetData(data_obj)
+		if got_it:
+			txt = data_obj.Text + u'\n'
+
+		# add text
+		tmp = self._rclicked_row_data.format()
+		if type(tmp) == type([]):
+			txt += u'\n'.join(tmp)
+		else:
+			txt += tmp
+
+		# set text
+		data_obj.SetText(txt)
+		wx.TheClipboard.SetData(data_obj)
+		wx.TheClipboard.Close()
+
 	#------------------------------------------------------------
-	def _on_search_dlg_closed(self, evt):
-		self.__search_dlg.Destroy()
-		self.__search_dlg = None
+	def _col2clipboard(self, evt):
+		if wx.TheClipboard.IsOpened():
+			_log.debug('clipboard already open')
+			return
+		if not wx.TheClipboard.Open():
+			_log.debug('cannot open clipboard')
+			return
+		data_obj = wx.TextDataObject()
+
+		#col_idx = int(self._context_menu.FindItemById(evt.Id).ItemLabel.split(u':', 1)[0].rstrip(u':')) - 1
+		col_idx = int(self._context_menu.FindItemById(evt.Id).ItemLabel.rsplit(u'#', 1)[1].rstrip(u']'))
+		txt = self._rclicked_row_cells[col_idx]
+
+		data_obj.SetText(txt)
+		wx.TheClipboard.SetData(data_obj)
+		wx.TheClipboard.Close()
+
+	#------------------------------------------------------------
+	def _add_col2clipboard(self, evt):
+		if wx.TheClipboard.IsOpened():
+			_log.debug('clipboard already open')
+			return
+		if not wx.TheClipboard.Open():
+			_log.debug('cannot open clipboard')
+			return
+		data_obj = wx.TextDataObject()
+
+		txt = u''
+		# get previous text
+		got_it = wx.TheClipboard.GetData(data_obj)
+		if got_it:
+			txt = data_obj.Text + u'\n'
+
+		# add text
+		#col_idx = int(self._context_menu.FindItemById(evt.Id).ItemLabel.split(u':', 1)[0].rstrip(u':')) - 1
+		col_idx = int(self._context_menu.FindItemById(evt.Id).ItemLabel.rsplit(u'#', 1)[1].rstrip(u']'))
+		txt += self._rclicked_row_cells[col_idx]
+
+		# set text
+		data_obj.SetText(txt)
+		wx.TheClipboard.SetData(data_obj)
+		wx.TheClipboard.Close()
+
+	#------------------------------------------------------------
+	def _col_w_hdr2clipboard(self, evt):
+		if wx.TheClipboard.IsOpened():
+			_log.debug('clipboard already open')
+			return
+		if not wx.TheClipboard.Open():
+			_log.debug('cannot open clipboard')
+			return
+		data_obj = wx.TextDataObject()
+
+		#col_idx = int(self._context_menu.FindItemById(evt.Id).ItemLabel.split(u':', 1)[0].rstrip(u':')) - 1
+		col_idx = int(self._context_menu.FindItemById(evt.Id).ItemLabel.rsplit(u'#', 1)[1].rstrip(u']'))
+		txt = self._rclicked_row_cells_w_hdr[col_idx]
+
+		data_obj.SetText(txt)
+		wx.TheClipboard.SetData(data_obj)
+		wx.TheClipboard.Close()
+
+	#------------------------------------------------------------
+	def _add_col_w_hdr2clipboard(self, evt):
+		if wx.TheClipboard.IsOpened():
+			_log.debug('clipboard already open')
+			return
+		if not wx.TheClipboard.Open():
+			_log.debug('cannot open clipboard')
+			return
+		data_obj = wx.TextDataObject()
+
+		txt = u''
+		# get previous text
+		got_it = wx.TheClipboard.GetData(data_obj)
+		if got_it:
+			txt = data_obj.Text + u'\n'
+
+		# add text
+		#col_idx = int(self._context_menu.FindItemById(evt.Id).ItemLabel.split(u':', 1)[0].rstrip(u':')) - 1
+		col_idx = int(self._context_menu.FindItemById(evt.Id).ItemLabel.rsplit(u'#', 1)[1].rstrip(u']'))
+		txt += self._rclicked_row_cells_w_hdr[col_idx]
+
+		# set text
+		data_obj.SetText(txt)
+		wx.TheClipboard.SetData(data_obj)
+		wx.TheClipboard.Close()
+
+	#------------------------------------------------------------
+	# search related methods
 	#------------------------------------------------------------
 #	def _on_lost_focus(self, evt):
 #		evt.Skip()
@@ -1387,14 +2217,30 @@ A discontinuous selection may depend on your holding down a platform-dependent m
 ##		print self.FindFocus()
 ##		print self.__search_dlg
 #		#self.__search_dlg.Close()
+
 	#------------------------------------------------------------
-	def __on_search_match(self, search_term):
+	def __search_match(self):
+		#print "search_match"
+		if self.__search_term is None:
+			#print "no search term"
+			return False
+		if self.__search_term.strip() == u'':
+			#print "empty search term"
+			return False
+		if self.__searchable_cols is None:
+			#print "searchable cols not initialized, now setting"
+			self.searchable_columns = None
+		if len(self.__searchable_cols) == 0:
+			#print "no cols to search"
+			return False
+
+		#print "on searching for match on:", self.__search_term
 		for row_idx in range(self.__next_line_to_search, self.ItemCount):
 			for col_idx in range(self.ColumnCount):
 				if col_idx not in self.__searchable_cols:
 					continue
 				col_val = self.GetItem(row_idx, col_idx).GetText()
-				if regex.search(search_term, col_val, regex.U | regex.I) is not None:
+				if regex.search(self.__search_term, col_val, regex.U | regex.I) is not None:
 					self.Select(row_idx)
 					self.EnsureVisible(row_idx)
 					if row_idx == self.ItemCount - 1:
@@ -1406,12 +2252,26 @@ A discontinuous selection may depend on your holding down a platform-dependent m
 		# wrap around
 		self.__next_line_to_search = 0
 		return False
+
 	#------------------------------------------------------------
-	def _on_search_first_match(self, evt):
-		self.__on_search_match(evt.GetFindString())
-	#------------------------------------------------------------
-	def _on_search_next_match(self, evt):
-		self.__on_search_match(evt.GetFindString())
+	def _set_searchable_cols(self, cols):
+		#print "setting searchable cols to:", cols
+		# zero-based list of which columns to search
+		if cols is None:
+			#print "setting searchable cols to:", range(self.ColumnCount)
+			self.__searchable_cols = range(self.ColumnCount)
+			return
+		# weed out columns to be searched which
+		# don't exist and uniquify them
+		new_cols = {}
+		for col in cols:
+			if col < self.ColumnCount:
+				new_cols[col] = True
+		#print "actually setting searchable cols to:", new_cols.keys()
+		self.__searchable_cols = new_cols.keys()
+
+	searchable_columns = property(lambda x:x, _set_searchable_cols)
+
 	#------------------------------------------------------------
 	# properties
 	#------------------------------------------------------------
@@ -1421,27 +2281,75 @@ A discontinuous selection may depend on your holding down a platform-dependent m
 	def _set_activate_callback(self, callback):
 		if callback is None:
 			self.Unbind(wx.EVT_LIST_ITEM_ACTIVATED)
-		else:
-			if not callable(callback):
-				raise ValueError('<activate> callback is not a callable: %s' % callback)
-			self.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self._on_list_item_activated)
+			self.__activate_callback = None
+			return
+		if not callable(callback):
+			raise ValueError('<activate> callback is not a callable: %s' % callback)
+		self.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self._on_list_item_activated)
 		self.__activate_callback = callback
 
 	activate_callback = property(_get_activate_callback, _set_activate_callback)
+
 	#------------------------------------------------------------
-	def _get_rightclick_callback(self):
-		return self.__rightclick_callback
+	def _get_select_callback(self):
+		return self.__select_callback
 
-	def _set_rightclick_callback(self, callback):
+	def _set_select_callback(self, callback):
 		if callback is None:
-			self.Unbind(wx.EVT_LIST_ITEM_RIGHT_CLICK)
-		else:
-			if not callable(callback):
-				raise ValueError('<rightclick> callback is not a callable: %s' % callback)
-			self.Bind(wx.EVT_LIST_ITEM_RIGHT_CLICK, self._on_list_item_rightclicked)
-		self.__rightclick_callback = callback
+			self.Unbind(wx.EVT_LIST_ITEM_SELECTED)
+			self.__select_callback = None
+			return
+		if not callable(callback):
+			raise ValueError('<selected> callback is not a callable: %s' % callback)
+		self.Bind(wx.EVT_LIST_ITEM_SELECTED, self._on_list_item_selected)
+		self.__select_callback = callback
+
+	select_callback = property(_get_select_callback, _set_select_callback)
+
+	#------------------------------------------------------------
+	def _get_delete_callback(self):
+		return self.__delete_callback
+
+	def _set_delete_callback(self, callback):
+		if callback is None:
+			#self.Unbind(wx.EVT_LIST_ITEM_SELECTED)
+			self.__delete_callback = None
+			return
+		if not callable(callback):
+			raise ValueError('<delete> callback is not a callable: %s' % callback)
+		#self.Bind(wx.EVT_LIST_ITEM_SELECTED, self._on_list_item_selected)
+		self.__delete_callback = callback
+
+	delete_callback = property(_get_delete_callback, _set_delete_callback)
+
+	#------------------------------------------------------------
+	def _get_new_callback(self):
+		return self.__new_callback
+
+	def _set_new_callback(self, callback):
+		if callback is None:
+			self.__new_callback = None
+			return
+		if not callable(callback):
+			raise ValueError('<new> callback is not a callable: %s' % callback)
+		self.__new_callback = callback
+
+	new_callback = property(_get_new_callback, _set_new_callback)
+
+	#------------------------------------------------------------
+	def _get_edit_callback(self):
+		return self.__edit_callback
+
+	def _set_edit_callback(self, callback):
+		if callback is None:
+			self.__edit_callback = None
+			return
+		if not callable(callback):
+			raise ValueError('<edit> callback is not a callable: %s' % callback)
+		self.__edit_callback = callback
+
+	edit_callback = property(_get_edit_callback, _set_edit_callback)
 
-	rightclick_callback = property(_get_rightclick_callback, _set_rightclick_callback)
 	#------------------------------------------------------------
 	def _set_item_tooltip_callback(self, callback):
 		if callback is not None:
@@ -1454,21 +2362,16 @@ A discontinuous selection may depend on your holding down a platform-dependent m
 	# the callback must return None if no item tooltip is to be shown
 	# otherwise it must return a string (possibly with \n)
 	item_tooltip_callback = property(lambda x:x, _set_item_tooltip_callback)
+
 	#------------------------------------------------------------
-	def _set_searchable_cols(self, cols):
-		# zero-based list of which columns to search
-		if cols is None:
-			self.__searchable_cols = range(self.ColumnCount)
-			return
-		# weed out columns to be searched which
-		# don't exist and uniquify them
-		new_cols = {}
-		for col in cols:
-			if col < self.ColumnCount:
-				new_cols[col] = True
-		self.__searchable_cols = new_cols.keys()
+	def _set_extend_popup_menu_callback(self, callback):
+		if callback is not None:
+			if not callable(callback):
+				raise ValueError('<extend_popup_menu> callback is not a callable: %s' % callback)
+		self.__extend_popup_menu_callback = callback
+
+	extend_popup_menu_callback = property(lambda x:x, _set_extend_popup_menu_callback)
 
-	searchable_columns = property(lambda x:x, _set_searchable_cols)
 	#------------------------------------------------------------
 	# ColumnSorterMixin API
 	#------------------------------------------------------------
@@ -1476,14 +2379,16 @@ A discontinuous selection may depend on your holding down a platform-dependent m
 		if self.itemDataMap is None:
 			self._update_sorting_metadata()
 		return self								# required
+
 	#------------------------------------------------------------
 	def OnSortOrderChanged(self):
-		self._cleanup_column_headers()
+		self._remove_sorting_indicators_from_column_headers()
 		# annotate sort column
 		col_idx, is_ascending = self.GetSortState()
 		col_state = self.GetColumn(col_idx)
 		col_state.m_text += self.sort_order_tags[is_ascending]
 		self.SetColumn(col_idx, col_state)
+
 	#------------------------------------------------------------
 	def GetSecondarySortValues(self, primary_sort_col, primary_item1_idx, primary_item2_idx):
 		return (primary_item1_idx, primary_item2_idx)
@@ -1570,8 +2475,9 @@ A discontinuous selection may depend on your holding down a platform-dependent m
 				#print u'[%s:%s] ' % (item_idx, col_idx), self.GetItem(item_idx, col_idx).GetText()
 
 		return dict2sort
+
 	#------------------------------------------------------------
-	def _cleanup_column_headers(self):
+	def _remove_sorting_indicators_from_column_headers(self):
 		for col_idx in range(self.ColumnCount):
 			col_state = self.GetColumn(col_idx)
 			if col_state.m_text.endswith(self.sort_order_tags[True]):
@@ -1579,18 +2485,21 @@ A discontinuous selection may depend on your holding down a platform-dependent m
 			if col_state.m_text.endswith(self.sort_order_tags[False]):
 				col_state.m_text = col_state.m_text[:-len(self.sort_order_tags[False])]
 			self.SetColumn(col_idx, col_state)
+
 	#------------------------------------------------------------
 	def _invalidate_sorting_metadata(self):
 		self.itemDataMap = None
 		self.SetColumnCount(self.GetColumnCount())
-		self._cleanup_column_headers()
+		self._remove_sorting_indicators_from_column_headers()
+
 	#------------------------------------------------------------
 	def _update_sorting_metadata(self):
 		# MUST have this name
 		self.itemDataMap = self._generate_map_for_sorting()
+
 	#------------------------------------------------------------
+	# for debugging:
 	def _on_col_click(self, event):
-		# for debugging:
 		sort_col, order = self.GetSortState()
 		print u'col clicked: %s / sort col: %s / sort direction: %s / sort flags: %s' % (event.GetColumn(), sort_col, order, self._colSortFlag)
 #		if self.itemDataMap is not None:
@@ -1613,6 +2522,13 @@ A discontinuous selection may depend on your holding down a platform-dependent m
 	secondary_sort_column = property(__get_secondary_sort_col, __set_secondary_sort_col)
 
 #================================================================
+def shorten_text(text=None, max_length=None):
+	if len(text) <= max_length:
+		return text
+	return text[:max_length-1] + u'\u2026'
+
+
+#================================================================
 # main
 #----------------------------------------------------------------
 if __name__ == '__main__':
diff --git a/client/wxpython/gmMacro.py b/client/wxpython/gmMacro.py
index 1304824..f5ba5ee 100644
--- a/client/wxpython/gmMacro.py
+++ b/client/wxpython/gmMacro.py
@@ -12,8 +12,9 @@ import random
 import types
 import logging
 import os
-import codecs
+import io
 import datetime
+import urllib
 
 
 import wx
@@ -32,6 +33,7 @@ from Gnumed.pycommon import gmExceptions
 from Gnumed.pycommon import gmCfg2
 from Gnumed.pycommon import gmDateTime
 from Gnumed.pycommon import gmMimeLib
+from Gnumed.pycommon import gmShellAPI
 
 from Gnumed.business import gmPerson
 from Gnumed.business import gmStaff
@@ -44,7 +46,7 @@ from Gnumed.business import gmKeywordExpansion
 from Gnumed.business import gmPraxis
 
 from Gnumed.wxpython import gmGuiHelpers
-from Gnumed.wxpython import gmNarrativeWidgets
+from Gnumed.wxpython import gmNarrativeWorkflows
 from Gnumed.wxpython import gmPatSearchWidgets
 from Gnumed.wxpython import gmPersonContactWidgets
 from Gnumed.wxpython import gmPlugin
@@ -66,18 +68,20 @@ _cfg = gmCfg2.gmCfgData()
 # using them, in use they must conform to the "placeholder::::max length" syntax,
 # as long as they resolve to None they return their respective names so the
 # developers can know which placeholder was not set
-_injectable_placeholders = {
-	u'form_name_long': None,
-	u'form_name_short': None,
-	u'form_version': None
-}
-
+known_injectable_placeholders = [
+	u'form_name_long',
+	u'form_name_short',
+	u'form_version',
+	u'form_version_internal',
+	u'form_last_modified'
+]
 
 # the following must satisfy the pattern "$<name::args::(optional) max string length>$" when used
 __known_variant_placeholders = {
 	# generic:
 	u'free_text': u"""show a dialog for entering some free text:
-		args: <message> shown in input dialog, must not contain '//' or '::',
+		args: <message> shown in input dialog, must not contain either
+		of '::' and whatever the arguments divider is set to (default '//'),
 		will cache input per <message>""",
 
 	u'text_snippet': u"""a text snippet, taken from the keyword expansion mechanism:
@@ -92,8 +96,32 @@ __known_variant_placeholders = {
 		target extension: target file name extension, derived from target mime type if not given
 	""",
 
+	u'range_of': u"""select range of enclosed text (note that this cannot take into account non-length characters such as enclosed LaTeX code
+		args: <enclosed text>
+	""",
+
+	u'ph_cfg': u"""Set placeholder handler options.
+		args: option name//option value//macro return string
+		option names:
+			ellipsis: what to use as ellipsis (if anything) when
+				shortening strings or string regions, setting the
+				value to NONE will switch off ellipis handling,
+				default is switched off
+			argumentsdivider: what to use as divider when splitting
+				an argument string into parts, default is '//',
+				note that the 'config' placeholder will ALWAYS
+				use '//' to split its argument string, regardless
+				of which setting of <argumentsdivider> is in effect,
+				use DEFAULT to reset this setting back to the
+				default '//'
+	""",
+
 	u'tex_escape': u"args: string to escape, mostly obsolete now",
 
+	u'url_escape': u"""Escapes a string suitable for use as _data_ in an URL
+		args: text to escape
+	""",
+
 	u'today': u"args: strftime format",
 
 	u'gender_mapper': u"""maps gender of patient to a string:
@@ -230,9 +258,19 @@ __known_variant_placeholders = {
 	u'adr_country': u"args: <type of address>, cached per type",
 
 	u'patient_comm': u"args: <comm channel type as per database>//<%(field)s-template>",
+
+	u'patient_vcf': u"""returns path to VCF for current patient
+		args: <template>
+		template: %s-template for path
+	""",
+	u'patient_gdt': u"""returns path to GDT for current patient
+		args: <template>
+		template: %s-template for path
+	""",
+
 	u'patient_tags': u"args: <%(field)s-template>//<separator>",
 	#u'patient_tags_table': u"no args",
-	u'patient_photo': u"""outputs URL to exported patient photo:
+	u'patient_photo': u"""outputs URL to exported patient photo (cached per mime type and extension):
 		args: <template>//<optional target mime type>//<optional target extension>,
 		returns full path to an exported copy of the
 		image rather than the image data itself,
@@ -274,6 +312,10 @@ __known_variant_placeholders = {
 		line length:   the maximum length of individual lines, not the total placeholder length
 		time range:		the number of weeks going back in time if given as a single number, or else it must be a valid PostgreSQL interval definition (w/o the ::interval)""",
 
+	u'substance_abuse': u"""returns substance abuse entries:
+		args: line template
+	""",
+
 	u'current_meds': u"""returns current medications:
 		args: line template//<select>
 		<select>: if this is present the user will be asked which meds to export""",
@@ -285,6 +327,31 @@ __known_variant_placeholders = {
 			%(contains)s -- list of components
 			%(amount2dispense)s -- how much/many to dispense""",
 
+	u'current_meds_AMTS': u"""emit LaTeX longtable lines with appropriate page breaks:
+		also creates per-page AMTS QR codes and sets the
+		following internal placeholders:
+			amts_png_file_1
+			amts_png_file_2
+			amts_png_file_3
+			amts_data_file_1
+			amts_data_file_2
+			amts_data_file_3
+			amts_png_file_current_page
+			amts_data_file_utf8
+			amts_png_file_utf8
+		the last of which contains the LaTeX command \\thepage (such that
+		LaTeX can use this in, say, page headers) but omitting the .png
+		(for which LaTeX will look by itself),
+		note that you will have to use the 2nd- or 3rd-pass placeholder
+		format if you plan to insert the above because they will only be
+		available by first (or second) pass processing of the initial
+		placeholder "current_meds_AMTS"
+	""",
+	u'current_meds_AMTS_enhanced': u"""emit LaTeX longtable lines with appropriate page breaks:
+		this returns the same content as current_meds_AMTS except that
+		it does not truncate output data whenever possible
+	""",
+
 	u'current_meds_table': u"emits a LaTeX table, no arguments",
 	u'current_meds_notes': u"emits a LaTeX table, no arguments",
 	u'lab_table': u"emits a LaTeX table, no arguments",
@@ -333,7 +400,10 @@ __known_variant_placeholders = {
 	u'praxis_address': u"args: <optional formatting template>",
 	u'praxis_comm': u"args: type//<optional formatting template>",
 	u'praxis_id': u"args: <type of ID>//<issuer of ID>//<optional formatting template>",
-
+	u'praxis_vcf': u"""returns path to VCF for current praxis branch
+		args: <template>
+		template: %s-template for path
+	""",
 
 	# billing related:
 	u'bill': u"""retrieve a bill
@@ -363,36 +433,55 @@ known_variant_placeholders.sort()
 	# followed by any number of numbers
 	# followed by ">"
 	# followed by "$"
-default_placeholder_regex = r'\$<[^<:]+::.*?::\d*?>\$'		# this one works [except that OOo cannot be non-greedy |-(    ]
-first_order_placeholder_regex =   r'\$<<<[^<:]+?::.*::\d*?>>>\$'
-second_order_placeholder_regex = r'\$<<[^<:]+?::.*::\d*?>>\$'
-third_order_placeholder_regex =  r'\$<[^<:]+::.*?::\d*?>\$'
 
-
-#default_placeholder_regex = r'\$<(?:(?!\$<).)+>\$'		# non-greedy equivalent, uses lookahead (but not supported by LO either |-o  )
+# previous:
+default_placeholder_regex = r'\$<[^<:]+::.*?::\d*?>\$|\$<[^<:]+::.*?::\d+-\d+>\$'         # this one works [except that OOo cannot be non-greedy |-(    ]
+first_pass_placeholder_regex = r'|'.join ([
+	r'\$<[^<:]+::.*?(?=::\d*?>\$)::\d*?>\$',
+	r'\$<[^<:]+::.*?(?=::\d+-\d+>\$)::\d+-\d+>\$'
+])
+second_pass_placeholder_regex = r'|'.join ([
+	r'\$<<[^<:]+?::.*?(?=::\d*?>>\$)::\d*?>>\$',
+	r'\$<<[^<:]+?::.*?(?=::\d+-\d+>>\$)::\d+-\d+>>\$'
+])
+third_pass_placeholder_regex = r'|'.join ([
+	r'\$<<<[^<:]+?::.*?(?=::\d*?>>>\$)::\d*?>>>\$',
+	r'\$<<<[^<:]+?::.*?(?=::\d+-\d+>>>\$)::\d+-\d+>>>\$'
+])
 
 default_placeholder_start = u'$<'
 default_placeholder_end = u'>$'
 #=====================================================================
 def show_placeholders():
+
 	fname = gmTools.get_unique_filename(prefix = 'gm-placeholders-', suffix = '.txt')
-	ph_file = codecs.open(filename = fname, mode = 'wb', encoding = 'utf8', errors = 'replace')
+	ph_file = io.open(fname, mode = 'wt', encoding = 'utf8', errors = 'replace')
 
 	ph_file.write(u'Here you can find some more documentation on placeholder use:\n')
 	ph_file.write(u'\n http://wiki.gnumed.de/bin/view/Gnumed/GmManualLettersForms\n\n\n')
 
-	ph_file.write(u'Variable placeholders (use like: $<PLACEHOLDER_NAME::ARGUMENTS::MAX OUTPUT LENGTH>$):\n')
+	ph_file.write(u'Variable placeholders:\n')
+	ph_file.write(u'Usage: $<PLACEHOLDER_NAME::ARGUMENTS::REGION_DEFINITION>$)\n')
+	ph_file.write(u' REGION_DEFINITION:\n')
+	ph_file.write(u'* a single number specifying the maximum output length or\n')
+	ph_file.write(u'* a number, a "-", followed by a second number specifying the region of the string to return\n')
+	ph_file.write(u'ARGUMENTS:\n')
+	ph_file.write(u'* depend on the actual placeholder (see there)\n')
+	ph_file.write(u'* if a template is supported it will be used to %-format the output\n')
+	ph_file.write(u'* templates may be either %s-style or %(name)s-style\n')
+	ph_file.write(u'* templates cannot contain "::"\n')
+	ph_file.write(u'* templates cannot contain whatever the arguments divider is set to (default "//")\n')
 	for ph in known_variant_placeholders:
 		txt = __known_variant_placeholders[ph]
 		ph_file.write(u'\n')
 		ph_file.write(u'	---=== %s ===---\n' % ph)
 		ph_file.write(u'\n')
 		ph_file.write(txt)
-		ph_file.write('\n\n')
+		ph_file.write(u'\n\n')
 	ph_file.write(u'\n')
 
-	ph_file.write(u'Injectable placeholders (use like: $<PLACEHOLDER_NAME::ARGUMENTS::MAX OUTPUT LENGTH>$):\n')
-	for ph in _injectable_placeholders:
+	ph_file.write(u'Known injectable placeholders (use like: $<PLACEHOLDER_NAME::ARGUMENTS::MAX OUTPUT LENGTH>$):\n')
+	for ph in known_injectable_placeholders:
 		ph_file.write(u' %s\n' % ph)
 	ph_file.write(u'\n')
 
@@ -419,7 +508,9 @@ class gmPlaceholderHandler(gmBorg.cBorg):
 		- they must be set up before use by set_placeholder()
 		- they should be removed after use by unset_placeholder()
 		- the syntax is like extended static placeholders
-		- they are listed in _injectable_placeholders
+		- known ones are listed in known_injectable_placeholders
+		- per-form ones can be used but must exist before
+		  the form is processed
 
 	variant placeholders
 		- those are listed in known_variant_placeholders
@@ -437,20 +528,33 @@ class gmPlaceholderHandler(gmBorg.cBorg):
 
 		self.invalid_placeholder_template = _('invalid placeholder >>>>>%s<<<<<')
 
+		self.__injected_placeholders = {}
 		self.__cache = {}
 
 		self.__esc_style = None
 		self.__esc_func = lambda x:x
+
+		self.__ellipsis = None
+		self.__args_divider = u'//'
 	#--------------------------------------------------------
 	# external API
 	#--------------------------------------------------------
-	def set_placeholder(self, key=None, value=None):
-		_injectable_placeholders[key]
-		_injectable_placeholders[key] = value
+	def set_placeholder(self, key=None, value=None, known_only=True):
+		_log.debug('setting [%s]', key)
+		try:
+			known_injectable_placeholders.index(key)
+		except ValueError:
+			_log.debug(u'injectable placeholder [%s] unknown', key)
+			if known_only:
+				raise
+		self.__injected_placeholders[key] = value
 	#--------------------------------------------------------
 	def unset_placeholder(self, key=None):
-		_injectable_placeholders[key]
-		_injectable_placeholders[key] = None
+		_log.debug('unsetting [%s]', key)
+		try:
+			del self.__injected_placeholders[key]
+		except KeyError:
+			_log.debug(u'injectable placeholder [%s] unknown', key)
 	#--------------------------------------------------------
 	def set_cache_value(self, key=None, value=None):
 		self.__cache[key] = value
@@ -475,11 +579,57 @@ class gmPlaceholderHandler(gmBorg.cBorg):
 
 	escape_function = property(lambda x:x, _set_escape_function)
 	#--------------------------------------------------------
+	def _set_ellipsis(self, ellipsis):
+		if ellipsis == u'NONE':
+			ellipsis = None
+		self.__ellipsis = ellipsis
+
+	ellipsis = property(lambda x: self.__ellipsis, _set_ellipsis)
+	#--------------------------------------------------------
+	def _set_arguments_divider(self, divider):
+		if divider == u'DEFAULT':
+			divider = u'//'
+		self.__args_divider = divider
+
+	arguments_divider = property(lambda x: self.__args_divider, _set_arguments_divider)
+	#--------------------------------------------------------
 	placeholder_regex = property(lambda x: default_placeholder_regex, lambda x:x)
 
-	first_order_placeholder_regex = property(lambda x: first_order_placeholder_regex, lambda x:x)
-	second_order_placeholder_regex = property(lambda x: second_order_placeholder_regex, lambda x:x)
-	third_order_placeholder_regex = property(lambda x: third_order_placeholder_regex, lambda x:x)
+	first_pass_placeholder_regex = property(lambda x: first_pass_placeholder_regex, lambda x:x)
+	second_pass_placeholder_regex = property(lambda x: second_pass_placeholder_regex, lambda x:x)
+	third_pass_placeholder_regex = property(lambda x: third_pass_placeholder_regex, lambda x:x)
+
+	#--------------------------------------------------------
+	def __parse_region_definition(self, region_str):
+		region_str = region_str.strip()
+
+		if region_str == u'':
+			return None, None
+
+		try:
+			pos_last_char = int(region_str)
+			return 0, pos_last_char
+		except (TypeError, ValueError):
+			_log.debug('region definition not a simple length')
+
+		# note that we only check for "legality", not for reasonable bounds
+		first_last = region_str.split('-')
+		if len(first_last) != 2:
+			_log.error('invalid placeholder region definition: %s', region_str)
+			raise ValueError
+
+		try:
+			pos_first_char = int(first_last[0].strip())
+			pos_last_char = int(first_last[1].strip())
+		except (TypeError, ValueError):
+			_log.error('invalid placeholder region definition: %s', region_str)
+			raise ValueError
+
+		# user says 1,2,... (= character position in string), Python needs 0,1,... (indexes 0-based)
+		if pos_first_char > 0:
+			pos_first_char -= 1
+
+		return pos_first_char, pos_last_char
 	#--------------------------------------------------------
 	# __getitem__ API
 	#--------------------------------------------------------
@@ -494,7 +644,7 @@ class gmPlaceholderHandler(gmBorg.cBorg):
 		"""
 		_log.debug('replacing [%s]', placeholder)
 
-		original_placeholder = placeholder
+		original_placeholder_def = placeholder
 
 		# remove leading/trailing '$<(<<)' and '(>>)>$'
 		if placeholder.startswith(default_placeholder_start):
@@ -504,64 +654,81 @@ class gmPlaceholderHandler(gmBorg.cBorg):
 			else:
 				_log.error('placeholder must either start with [%s] and end with [%s] or neither of both', default_placeholder_start, default_placeholder_end)
 				if self.debug:
-					return self._escape(self.invalid_placeholder_template % original_placeholder)
+					return self._escape(self.invalid_placeholder_template % original_placeholder_def)
 				return None
 
 		# injectable placeholder ?
 		parts = placeholder.split('::::', 1)
 		if len(parts) == 2:
-			name, lng = parts
+			ph_name, region_str = parts
 			is_an_injectable = True
 			try:
-				val = _injectable_placeholders[name]
+				val = self.__injected_placeholders[ph_name]
 			except KeyError:
 				is_an_injectable = False
 			except:
-				_log.exception('injectable placeholder handling error: %s', original_placeholder)
+				_log.exception('injectable placeholder handling error: %s', original_placeholder_def)
 				if self.debug:
-					return self._escape(self.invalid_placeholder_template % original_placeholder)
+					return self._escape(self.invalid_placeholder_template % original_placeholder_def)
 				return None
 			if is_an_injectable:
 				if val is None:
 					if self.debug:
-						return self._escape(u'injectable placeholder [%s]: no value available' % name)
+						return self._escape(u'injectable placeholder [%s]: no value available' % ph_name)
 					return placeholder
 				try:
-					lng = int(lng.strip())
-				except (TypeError, ValueError):
-					lng = len(val)
-				return val[:lng]
+					pos_first_char, pos_last_char = self.__parse_region_definition(region_str)
+				except ValueError:
+					if self.debug:
+						return self._escape(self.invalid_placeholder_template % original_placeholder_def)
+					return None
+				if pos_last_char is None:
+					return val
+				# ellipsis needed ?
+				if len(val) > (pos_last_char - pos_first_char):
+					# ellipsis wanted ?
+					if self.__ellipsis is not None:
+						return val[pos_first_char:(pos_last_char-len(self.__ellipsis))] + self.__ellipsis
+				return val[pos_first_char:pos_last_char]
 
 		# variable placeholders
 		if len(placeholder.split('::', 2)) < 3:
-			_log.error('invalid placeholder structure: %s', original_placeholder)
+			_log.error('invalid placeholder structure: %s', original_placeholder_def)
 			if self.debug:
-				return self._escape(self.invalid_placeholder_template % original_placeholder)
+				return self._escape(self.invalid_placeholder_template % original_placeholder_def)
 			return None
 
-		name, data = placeholder.split('::', 1)
-		data, lng_str = data.rsplit('::', 1)
-		_log.debug('placeholder parts: name=[%s]; length=[%s]; options=>>>%s<<<', name, lng_str, data)
+		ph_name, data_and_lng = placeholder.split('::', 1)		# note: split _is_ lsplit
+		options, region_str = data_and_lng.rsplit('::', 1)
+		_log.debug('placeholder parts: name=[%s]; region_def=[%s]; options=>>>%s<<<', ph_name, region_str, options)
 		try:
-			lng = int(lng_str.strip())
-		except (TypeError, ValueError):
-			lng = None
+			pos_first_char, pos_last_char = self.__parse_region_definition(region_str)
+		except ValueError:
+			if self.debug:
+				return self._escape(self.invalid_placeholder_template % original_placeholder_def)
+			return None
 
-		handler = getattr(self, '_get_variant_%s' % name, None)
+		handler = getattr(self, '_get_variant_%s' % ph_name, None)
 		if handler is None:
-			_log.warning('no handler <_get_variant_%s> for placeholder %s', name, original_placeholder)
+			_log.warning('no handler <_get_variant_%s> for placeholder %s', ph_name, original_placeholder_def)
 			if self.debug:
-				return self._escape(self.invalid_placeholder_template % original_placeholder)
+				return self._escape(self.invalid_placeholder_template % original_placeholder_def)
 			return None
 
 		try:
-			if lng is None:
-				return handler(data = data)
-			return handler(data = data)[:lng]
+			val = handler(data = options)
+			if pos_last_char is None:
+				return val
+			# ellipsis needed ?
+			if len(val) > (pos_last_char - pos_first_char):
+				# ellipsis wanted ?
+				if self.__ellipsis is not None:
+					return val[pos_first_char:(pos_last_char-len(self.__ellipsis))] + self.__ellipsis
+			return val[pos_first_char:pos_last_char]
 		except:
-			_log.exception('placeholder handling error: %s', original_placeholder)
+			_log.exception('placeholder handling error: %s', original_placeholder_def)
 			if self.debug:
-				return self._escape(self.invalid_placeholder_template % original_placeholder)
+				return self._escape(self.invalid_placeholder_template % original_placeholder_def)
 			return None
 
 		_log.error('something went wrong, should never get here')
@@ -569,6 +736,18 @@ class gmPlaceholderHandler(gmBorg.cBorg):
 	#--------------------------------------------------------
 	# placeholder handlers
 	#--------------------------------------------------------
+	def _get_variant_ph_cfg(self, data=None):
+		options = data.split(u'//')		# ALWAYS use '//' for splitting, regardless of self.__args_divider
+		name = options[0]
+		val = options[1]
+		if name == u'ellipsis':
+			self.ellipsis = val
+		elif name == u'argumentsdivider':
+			self.arguments_divider = val
+		if len(options) > 2:
+			return options[2] % {'name': name, 'value': val}
+		return u''
+	#--------------------------------------------------------
 	def _get_variant_client_version(self, data=None):
 		return self._escape (
 			gmTools.coalesce (
@@ -835,9 +1014,9 @@ class gmPlaceholderHandler(gmBorg.cBorg):
 					template = data_parts[2]
 
 		if mode == u'issue':
-			narr = gmNarrativeWidgets.select_narrative_by_issue(soap_cats = cats)
+			narr = gmNarrativeWorkflows.select_narrative_by_issue(soap_cats = cats)
 		else:
-			narr = gmNarrativeWidgets.select_narrative_by_episode(soap_cats = cats)
+			narr = gmNarrativeWorkflows.select_narrative_by_episode(soap_cats = cats)
 
 		if narr is None:
 			return u''
@@ -899,8 +1078,8 @@ class gmPlaceholderHandler(gmBorg.cBorg):
 			if len(data_parts) > 1:
 				template = data_parts[1]
 
-		#narr = gmNarrativeWidgets.select_narrative_from_episodes(soap_cats = cats)
-		narr = gmNarrativeWidgets.select_narrative(soap_cats = cats)
+		#narr = gmNarrativeWorkflows.select_narrative_from_episodes(soap_cats = cats)
+		narr = gmNarrativeWorkflows.select_narrative(soap_cats = cats)
 
 		if narr is None:
 			return u''
@@ -1032,7 +1211,7 @@ class gmPlaceholderHandler(gmBorg.cBorg):
 		return self.__get_variant_gen_adr_part(data = data, part = 'postcode')
 	#--------------------------------------------------------
 	def _get_variant_gen_adr_region(self, data=u'?'):
-		return self.__get_variant_gen_adr_part(data = data, part = 'l10n_state')
+		return self.__get_variant_gen_adr_part(data = data, part = 'l10n_region')
 	#--------------------------------------------------------
 	def _get_variant_gen_adr_country(self, data=u'?'):
 		return self.__get_variant_gen_adr_part(data = data, part = 'l10n_country')
@@ -1096,14 +1275,14 @@ class gmPlaceholderHandler(gmBorg.cBorg):
 		return self.__get_variant_receiver_part(data = data, part = 'postcode')
 	#--------------------------------------------------------
 	def _get_variant_receiver_region(self, data=u'%s'):
-		return self.__get_variant_receiver_part(data = data, part = 'l10n_state')
+		return self.__get_variant_receiver_part(data = data, part = 'l10n_region')
 	#--------------------------------------------------------
 	def _get_variant_receiver_country(self, data=u'%s'):
 		return self.__get_variant_receiver_part(data = data, part = 'l10n_country')
 	#--------------------------------------------------------
 	def _get_variant_patient_address(self, data=u''):
 
-		data_parts = data.split(u'//')
+		data_parts = data.split(self.__args_divider)
 
 		# address type
 		adr_type = data_parts[0].strip()
@@ -1124,14 +1303,14 @@ class gmPlaceholderHandler(gmBorg.cBorg):
 		adr = self.pat.get_addresses(address_type = adr_type)[0]
 
 		# formatting template
-		template = _('%(street)s %(number)s, %(postcode)s %(urb)s, %(l10n_state)s, %(l10n_country)s')
+		template = _('%(street)s %(number)s, %(postcode)s %(urb)s, %(l10n_region)s, %(l10n_country)s')
 		if len(data_parts) > 1:
 			if data_parts[1].strip() != u'':
 				template = data_parts[1]
 
 		try:
 			return template % adr.fields_as_dict(escape_style = self.__esc_style)
-		except StandardError:
+		except Exception:
 			_log.exception('error formatting address')
 			_log.error('template: %s', template)
 
@@ -1183,7 +1362,7 @@ class gmPlaceholderHandler(gmBorg.cBorg):
 		return self.__get_variant_adr_part(data = data, part = 'postcode')
 	#--------------------------------------------------------
 	def _get_variant_adr_region(self, data=u'?'):
-		return self.__get_variant_adr_part(data = data, part = 'l10n_state')
+		return self.__get_variant_adr_part(data = data, part = 'l10n_region')
 	#--------------------------------------------------------
 	def _get_variant_adr_country(self, data=u'?'):
 		return self.__get_variant_adr_part(data = data, part = 'l10n_country')
@@ -1192,7 +1371,7 @@ class gmPlaceholderHandler(gmBorg.cBorg):
 		comm_type = None
 		template = u'%(url)s'
 		if data is not None:
-			data_parts = data.split(u'//')
+			data_parts = data.split(self.__args_divider)
 			if len(data_parts) > 0:
 				comm_type = data_parts[0]
 			if len(data_parts) > 1:
@@ -1212,7 +1391,7 @@ class gmPlaceholderHandler(gmBorg.cBorg):
 		target_mime = None
 		target_ext = None
 		if data is not None:
-			parts = data.split(u'//')
+			parts = data.split(self.__args_divider)
 			template = parts[0]
 			if len(parts) > 1:
 				target_mime = parts[1].strip()
@@ -1222,23 +1401,47 @@ class gmPlaceholderHandler(gmBorg.cBorg):
 				if target_mime is not None:
 					target_ext = gmMimeLib.guess_ext_by_mimetype(mimetype = target_mime)
 
-		mugshot = self.pat.document_folder.latest_mugshot
-		if mugshot is None:
-			if self.debug:
-				return self._escape(_('no mugshot available'))
-			return u''
-
-		fname = mugshot.export_to_file (
-			target_mime = target_mime,
-			target_extension = target_ext,
-			ignore_conversion_problems = True
-		)
-		if fname is None:
-			if self.debug:
-				return self._escape(_('cannot export or convert latest mugshot'))
-			return u''
+		cache_key = u'patient_photo_path::%s::%s' % (target_mime, target_ext)
+		try:
+			fname = self.__cache[cache_key]
+			_log.debug('cache hit on [%s]: %s', cache_key, fname)
+		except KeyError:
+			mugshot = self.pat.document_folder.latest_mugshot
+			if mugshot is None:
+				if self.debug:
+					return self._escape(_('no mugshot available'))
+				return u''
+			fname = mugshot.export_to_file (
+				target_mime = target_mime,
+				target_extension = target_ext,
+				ignore_conversion_problems = True
+			)
+			if fname is None:
+				if self.debug:
+					return self._escape(_('cannot export or convert latest mugshot'))
+				return u''
+			self.__cache[cache_key] = fname
 
 		return template % fname
+
+	#--------------------------------------------------------
+	def _get_variant_patient_vcf(self, data):
+		options = data.split(self.__args_divider)
+		template = options[0].strip()
+		if template == u'':
+			template = u'%s'
+
+		return template % self.pat.export_as_vcard()
+
+	#--------------------------------------------------------
+	def _get_variant_patient_gdt(self, data):
+		options = data.split(self.__args_divider)
+		template = options[0].strip()
+		if template == u'':
+			template = u'%s'
+
+		return template % self.pat.export_as_gdt()
+
 	#--------------------------------------------------------
 	def _get_variant_patient_tags(self, data=u'%s//\\n'):
 		if len(self.pat.tags) == 0:
@@ -1263,7 +1466,7 @@ class gmPlaceholderHandler(gmBorg.cBorg):
 	# praxis related placeholders
 	#--------------------------------------------------------
 	def _get_variant_praxis(self, data=None):
-		options = data.split(u'//')
+		options = data.split(self.__args_divider)
 
 		if u'select' in options:
 			options.remove(u'select')
@@ -1280,12 +1483,29 @@ class gmPlaceholderHandler(gmBorg.cBorg):
 		return template % branch.fields_as_dict(escape_style = self.__esc_style)
 
 	#--------------------------------------------------------
+	def _get_variant_praxis_vcf(self, data=None):
+
+		cache_key = 'current_branch_vcf_path'
+		try:
+			vcf_name = self.__cache[cache_key]
+			_log.debug('cache hit (%s): [%s]', cache_key, vcf_name)
+		except KeyError:
+			vcf_name = gmPraxis.gmCurrentPraxisBranch().vcf
+			self.__cache[cache_key] = vcf_name
+
+		template = u'%s'
+		if data.strip() != u'':
+			template = data
+
+		return template % vcf_name
+
+	#--------------------------------------------------------
 	def _get_variant_praxis_address(self, data=u''):
 
-		options = data.split(u'//')
+		options = data.split(self.__args_divider)
 
 		# formatting template
-		template = _('%(street)s %(number)s, %(postcode)s %(urb)s, %(l10n_state)s, %(l10n_country)s')
+		template = _('%(street)s %(number)s, %(postcode)s %(urb)s, %(l10n_region)s, %(l10n_country)s')
 		if len(options) > 0:
 			if options[0].strip() != u'':
 				template = options[0]
@@ -1297,14 +1517,14 @@ class gmPlaceholderHandler(gmBorg.cBorg):
 			return u''
 		try:
 			return template % adr.fields_as_dict(escape_style = self.__esc_style)
-		except StandardError:
+		except Exception:
 			_log.exception('error formatting address')
 			_log.error('template: %s', template)
 
 		return None
 	#--------------------------------------------------------
 	def _get_variant_praxis_comm(self, data=None):
-		options = data.split(u'//')
+		options = data.split(self.__args_divider)
 		comm_type = options[0]
 		template = u'%(url)s'
 		if len(options) > 1:
@@ -1319,7 +1539,7 @@ class gmPlaceholderHandler(gmBorg.cBorg):
 		return template % comms[0].fields_as_dict(escape_style = self.__esc_style)
 	#--------------------------------------------------------
 	def _get_variant_praxis_id(self, data=None):
-		options = data.split(u'//')
+		options = data.split(self.__args_divider)
 		id_type = options[0].strip()
 		if id_type == u'':
 			return self._escape(u'praxis external ID: type is missing')
@@ -1363,7 +1583,7 @@ class gmPlaceholderHandler(gmBorg.cBorg):
 		return self._escape(tmp)
 	#--------------------------------------------------------
 	def _get_variant_current_provider_external_id(self, data=u''):
-		data_parts = data.split(u'//')
+		data_parts = data.split(self.__args_divider)
 		if len(data_parts) < 2:
 			return self._escape(u'current provider external ID: template is missing')
 
@@ -1403,7 +1623,7 @@ class gmPlaceholderHandler(gmBorg.cBorg):
 		return self._escape(tmp)
 	#--------------------------------------------------------
 	def _get_variant_primary_praxis_provider_external_id(self, data=u''):
-		data_parts = data.split(u'//')
+		data_parts = data.split(self.__args_divider)
 		if len(data_parts) < 2:
 			return self._escape(u'primary in-praxis provider external ID: template is missing')
 
@@ -1431,7 +1651,7 @@ class gmPlaceholderHandler(gmBorg.cBorg):
 		return self._escape(ids[0]['value'])
 	#--------------------------------------------------------
 	def _get_variant_external_id(self, data=u''):
-		data_parts = data.split(u'//')
+		data_parts = data.split(self.__args_divider)
 		if len(data_parts) < 2:
 			return self._escape(u'patient external ID: template is missing')
 
@@ -1483,6 +1703,241 @@ class gmPlaceholderHandler(gmBorg.cBorg):
 			return self._escape(_('template is missing'))
 
 		return u'\n'.join([ data % a.fields_as_dict(date_format = '%Y %b %d', escape_style = self.__esc_style) for a in self.pat.emr.get_allergies() ])
+
+	#--------------------------------------------------------
+	def _get_variant_current_meds_AMTS_enhanced(self, data=None):
+		return self._get_variant_current_meds_AMTS(data=data, strict=False)
+
+	#--------------------------------------------------------
+	def _get_variant_current_meds_AMTS(self, data=None, strict=True):
+
+		# select intakes
+		emr = self.pat.get_emr()
+		from Gnumed.wxpython import gmMedicationWidgets
+		intakes2export = gmMedicationWidgets.manage_substance_intakes(emr = emr)
+		if intakes2export is None:
+			return u''
+
+		# make them unique:
+		unique_intakes = {}
+		for intake in intakes2export:
+			if intake['pk_brand'] is None:
+				unique_intakes[intake['pk_substance']] = intake
+			else:
+				unique_intakes[intake['brand']] = intake
+		del intakes2export
+		unique_intakes = unique_intakes.values()
+
+		# create data files / QR code files
+		self.__create_amts_datamatrix_files(intakes = unique_intakes)
+
+		# create AMTS-LaTeX per intake
+		intake_as_latex_rows = []
+		for intake in unique_intakes:
+			intake_as_latex_rows.append(intake._get_as_amts_latex(strict = strict))
+		del unique_intakes
+
+		# append allergy information
+		# - state
+		intake_as_latex_rows.extend(emr.allergy_state._get_as_amts_latex(strict = strict))
+		# - allergies
+		for allg in emr.get_allergies():
+			intake_as_latex_rows.append(allg._get_as_amts_latex(strict = strict))
+
+		# insert \newpage after each group of 15 rows
+		table_rows = intake_as_latex_rows[:15]
+		if len(intake_as_latex_rows) > 15:
+			table_rows.append(u'\\newpage')
+			table_rows.extend(intake_as_latex_rows[15:30])
+		if len(intake_as_latex_rows) > 30:
+			table_rows.append(u'\\newpage')
+			table_rows.extend(intake_as_latex_rows[30:45])
+
+		if strict:
+			return u'\n'.join(table_rows)
+
+		# allow two more pages in enhanced mode
+		if len(intake_as_latex_rows) > 45:
+			table_rows.append(u'\\newpage')
+			table_rows.extend(intake_as_latex_rows[30:45])
+
+		if len(intake_as_latex_rows) > 60:
+			table_rows.append(u'\\newpage')
+			table_rows.extend(intake_as_latex_rows[30:45])
+
+		return u'\n'.join(table_rows)
+
+	#--------------------------------------------------------
+	def __create_amts_datamatrix_files(self, intakes=None):
+
+		# setup dummy files
+		for idx in [1,2,3]:
+			self.set_placeholder (
+				key = u'amts_data_file_%s' % idx,
+				value = './missing-file.txt',
+				known_only = False
+			)
+			self.set_placeholder (
+				key = u'amts_png_file_%s' % idx,
+				value = './missing-file.png',
+				known_only = False
+			)
+		self.set_placeholder (
+			key = u'amts_png_file_current_page',
+			value = './missing-file-current-page.png',
+			known_only = False
+		)
+		self.set_placeholder (
+			key = u'amts_png_file_utf8',
+			value = './missing-file-utf8.png',
+			known_only = False
+		)
+		self.set_placeholder (
+			key = u'amts_data_file_utf8',
+			value = './missing-file-utf8.txt',
+			known_only = False
+		)
+
+		# find processor
+		found, dmtx_creator = gmShellAPI.detect_external_binary(binary = u'gm-create_datamatrix')
+		_log.debug(dmtx_creator)
+		if not found:
+			_log.error(u'gm-create_datamatrix(.bat/.exe) not found')
+			return
+
+		png_dir = gmTools.mk_sandbox_dir()
+		_log.debug('sandboxing AMTS QR Code PNGs in: %s', png_dir)
+
+		from Gnumed.business import gmForms
+
+		# generate GNUmed-enhanced non-conformant data file and QR code
+		# for embedding (utf8, unabridged data fields)
+		amts_data_template_def_file = gmMedication.generate_amts_data_template_definition_file(strict = False)
+		_log.debug('amts data template definition file: %s', amts_data_template_def_file)
+		form = gmForms.cTextForm(template_file = amts_data_template_def_file)
+		intakes_as_amts_data = []
+		for intake in intakes:
+			intakes_as_amts_data.append(intake._get_as_amts_data(strict = False))
+		emr = self.pat.get_emr()
+		intakes_as_amts_data.extend(emr.allergy_state._get_as_amts_data(strict = False))
+		for allg in emr.get_allergies():
+			intakes_as_amts_data.append(allg._get_as_amts_data(strict = False))
+		self.set_placeholder (
+			key = u'amts_intakes_as_data_enhanced',
+			value = u'|'.join(intakes_as_amts_data),
+			known_only = False
+		)
+		self.set_placeholder (
+			key = u'amts_check_symbol',
+			value = gmMedication.calculate_amts_data_check_symbol(intakes = intakes),
+			known_only = False
+		)
+		success = form.substitute_placeholders(data_source = self)
+		self.unset_placeholder(key = u'amts_intakes_as_data_enhanced')
+		self.unset_placeholder(key = u'amts_check_symbol')
+		if not success:
+			_log.error(u'cannot substitute into amts data file form template')
+			return
+		data_file = form.re_editable_filenames[0]
+		png_file = os.path.join(png_dir, 'gm4amts-qrcode-utf8.png')
+		cmd = u'%s %s %s' % (dmtx_creator, data_file, png_file)
+		success = gmShellAPI.run_command_in_shell(command = cmd, blocking = True)
+		if not success:
+			_log.error(u'error running [%s]' % cmd)
+			return
+		self.set_placeholder (
+			key = u'amts_data_file_utf8',
+			value = data_file,
+			known_only = False
+		)
+		self.set_placeholder (
+			key = u'amts_png_file_utf8',
+			value = png_file,
+			known_only = False
+		)
+
+		# generate conformant per-page files:
+		total_pages = (len(intakes) / 15.0)
+		if total_pages > int(total_pages):
+			total_pages += 1
+		total_pages = int(total_pages)
+		_log.debug('total pages: %s', total_pages)
+
+		png_file_base = os.path.join(png_dir, 'gm4amts-qrcode-page-')
+		for this_page in range(1,total_pages+1):
+			intakes_this_page = intakes[(this_page-1)*15:this_page*15]
+			amts_data_template_def_file = gmMedication.generate_amts_data_template_definition_file(strict = True)
+			_log.debug('amts data template definition file: %s', amts_data_template_def_file)
+			form = gmForms.cTextForm(template_file = amts_data_template_def_file)
+			intakes_as_amts_data = []
+			for intake in intakes_this_page:
+				intakes_as_amts_data.append(intake.as_amts_data)
+			if this_page == total_pages:
+				intakes_as_amts_data.extend(emr.allergy_state._get_as_amts_data(strict = True))
+				for allg in emr.get_allergies():
+					intakes_as_amts_data.append(allg._get_as_amts_data(strict = True))
+			self.set_placeholder (
+				key = u'amts_intakes_as_data',
+				value = u'|'.join(intakes_as_amts_data),
+				known_only = False
+			)
+			self.set_placeholder (
+				key = u'amts_check_symbol',
+				value = gmMedication.calculate_amts_data_check_symbol(intakes = intakes_this_page),
+				known_only = False
+			)
+			self.set_placeholder (
+				key = u'amts_page_idx',
+				value = u'%s' % this_page,
+				known_only = False
+			)
+			self.set_placeholder (
+				key = u'amts_total_pages',
+				value = u'%s' % total_pages,
+				known_only = False
+			)
+			success = form.substitute_placeholders(data_source = self)
+			self.unset_placeholder(key = u'amts_intakes_as_data')
+			self.unset_placeholder(key = u'amts_check_symbol')
+			self.unset_placeholder(key = u'amts_page_idx')
+			self.unset_placeholder(key = u'amts_total_pages')
+			if not success:
+				_log.error(u'cannot substitute into amts data file form template')
+				return
+
+			data_file = form.re_editable_filenames[0]
+			png_file = u'%s%s.png' % (png_file_base, this_page)
+			latin1_data_file = gmTools.recode_file (
+				source_file = data_file,
+				source_encoding = u'utf8',
+				target_encoding = u'latin1',
+				base_dir = os.path.split(data_file)[0]
+			)
+			cmd = u'%s %s %s' % (dmtx_creator, latin1_data_file, png_file)
+			success = gmShellAPI.run_command_in_shell(command = cmd, blocking = True)
+			if not success:
+				_log.error(u'error running [%s]' % cmd)
+				return
+
+			# cache file names for later use in \embedfile
+			self.set_placeholder (
+				key = u'amts_data_file_%s' % this_page,
+				value = latin1_data_file,
+				known_only = False
+			)
+			self.set_placeholder (
+				key = u'amts_png_file_%s' % this_page,
+				value = png_file,
+				known_only = False
+			)
+
+		self.set_placeholder (
+			key = u'amts_png_file_current_page',
+			value = png_file_base + u'\\thepage',
+			known_only = False
+		)
+
+		return
 	#--------------------------------------------------------
 	def _get_variant_current_meds_for_rx(self, data=None):
 		if data is None:
@@ -1517,13 +1972,30 @@ class gmPlaceholderHandler(gmBorg.cBorg):
 			intakes2dispense[brand] = intake
 
 		return u'\n'.join([ data % intake for intake in intakes2dispense.values() ])
+
+	#--------------------------------------------------------
+	def _get_variant_substance_abuse(self, data=None):
+		if data is None:
+			return self._escape(_('template is missing'))
+		template = data
+		from Gnumed.wxpython import gmHabitWidgets
+		abuses = gmHabitWidgets.manage_substance_abuse(patient = self.pat)
+		if abuses is None:
+			return u''
+		lines = []
+		for a in abuses:
+			fields = a.fields_as_dict(date_format = '%Y %b %d', escape_style = self.__esc_style)
+			fields['harmful_use_type'] = a.harmful_use_type_string
+			lines.append(template % fields)
+		return u'\n'.join(lines)
+
 	#--------------------------------------------------------
 	def _get_variant_current_meds(self, data=None):
 
 		if data is None:
 			return self._escape(_('template is missing'))
 
-		parts = data.split(u'//')
+		parts = data.split(self.__args_divider)
 		template = parts[0]
 		ask_user = False
 		if len(parts) > 1:
@@ -1536,7 +2008,7 @@ class gmPlaceholderHandler(gmBorg.cBorg):
 			if current_meds is None:
 				return u''
 		else:
-			current_meds = emr.get_current_substance_intakes (
+			current_meds = emr.get_current_medications (
 				include_inactive = False,
 				include_unapproved = True,
 				order_by = u'brand, substance'
@@ -1578,7 +2050,7 @@ class gmPlaceholderHandler(gmBorg.cBorg):
 		date_format = '%Y %b %d %H:%M'
 		separator = u'\n'
 
-		options = data.split(u'//')
+		options = data.split(self.__args_divider)
 		try:
 			template = options[0].strip()
 			date_format = options[1]
@@ -1632,7 +2104,7 @@ class gmPlaceholderHandler(gmBorg.cBorg):
 
 		_log.debug('arguments: %s', data)
 
-		data_parts = data.split(u'//')
+		data_parts = data.split(self.__args_divider)
 		template = u'%s'
 		separator = u'\n'
 		date_format = '%Y %b %d'
@@ -1665,21 +2137,28 @@ class gmPlaceholderHandler(gmBorg.cBorg):
 		probs = self.pat.emr.get_problems()
 
 		return u'\n'.join([ data % p.fields_as_dict(date_format = '%Y %b %d', escape_style = self.__esc_style) for p in probs ])
+
 	#--------------------------------------------------------
 	def _get_variant_today(self, data='%Y %b %d'):
 		return self._escape(gmDateTime.pydt_now_here().strftime(str(data)).decode(gmI18N.get_encoding()))
+
 	#--------------------------------------------------------
 	def _get_variant_tex_escape(self, data=None):
 		return gmTools.tex_escape_string(text = data)
+
+	#--------------------------------------------------------
+	def _get_variant_url_escape(self, data=None):
+		return self._escape(urllib.quote(data.encode('utf8')))
+
 	#--------------------------------------------------------
 	def _get_variant_text_snippet(self, data=None):
-		data_parts = data.split(u'//')
+		data_parts = data.split(self.__args_divider)
 		keyword = data_parts[0]
 		template = u'%s'
 		if len(data_parts) > 1:
 			template = data_parts[1]
 
-		expansion = gmKeywordExpansionWidgets.expand_keyword(keyword = keyword, show_list = True)
+		expansion = gmKeywordExpansionWidgets.expand_keyword(keyword = keyword, show_list_if_needed = True)
 
 		if expansion is None:
 			if self.debug:
@@ -1688,9 +2167,10 @@ class gmPlaceholderHandler(gmBorg.cBorg):
 
 		#return template % self._escape(expansion)
 		return template % expansion
+
 	#--------------------------------------------------------
 	def _get_variant_data_snippet(self, data=None):
-		parts = data.split(u'//')
+		parts = data.split(self.__args_divider)
 		keyword = parts[0]
 		template = u'%s'
 		target_mime = None
@@ -1745,6 +2225,14 @@ class gmPlaceholderHandler(gmBorg.cBorg):
 
 		return template % target_fname
 	#--------------------------------------------------------
+	def _get_variant_range_of(self, data=None):
+		if data is None:
+			return None
+		# wrapper code already takes care of actually
+		# selecting the range so all we need to do here
+		# is to return the data itself
+		return data
+	#--------------------------------------------------------
 	def _get_variant_free_text(self, data=None):
 
 		if data is None:
@@ -2015,7 +2503,7 @@ class cMacroPrimitives:
 		searcher = gmPersonSearch.cPatientSearcher_SQL()
 		if type(search_params) == types.DictType:
 			idents = searcher.get_identities(search_dict=search_params)
-			raise StandardError("must use dto, not search_dict")
+			raise Exception("must use dto, not search_dict")
 		else:
 			idents = searcher.get_identities(search_term=search_params)
 		if idents is None:
@@ -2280,19 +2768,160 @@ if __name__ == '__main__':
 #			u'junk   $<date_of_birth::%Y %B %d::>$   $<date_of_birth::%Y %B %d::20>$   $<<date_of_birth::%Y %B %d::20>>$',
 #			u'junk   $<date_of_birth::::20>$',
 #			u'junk   $<date_of_birth::::>$',
-			u'$<<<current_meds::%(brand)s (%(substance)s): Dispense $<free_text::Dispense how many of %(brand)s %(preparation)s (%(substance)s) ?::20>$ (%(preparation)s) \\n::250>>>$',
+			u'junk $<<<current_meds::%(brand)s (%(substance)s): Dispense $<free_text::Dispense how many of %(brand)s %(preparation)s (%(substance)s) ?::20>$ (%(preparation)s) \\n::>>>$ junk',
+			u'junk $<<<current_meds::%(brand)s (%(substance)s): Dispense $<free_text::Dispense how many of %(brand)s %(preparation)s (%(substance)s) ?::20>$ (%(preparation)s) \\n::250>>>$ junk',
+			u'junk $<<<current_meds::%(brand)s (%(substance)s): Dispense $<free_text::Dispense how many of %(brand)s %(preparation)s (%(substance)s) ?::20>$ (%(preparation)s) \\n::3-4>>>$ junk',
+
+			u'should fail $<<<current_meds::%(brand)s (%(substance)s): Dispense $<free_text::Dispense how many of %(brand)s %(preparation)s (%(substance)s) ?::20>$ (%(preparation)s) \\n::->>>$ junk',
+			u'should fail $<<<current_meds::%(brand)s (%(substance)s): Dispense $<free_text::Dispense how many of %(brand)s %(preparation)s (%(substance)s) ?::20>$ (%(preparation)s) \\n::3->>>$ junk',
+			u'should fail $<<<current_meds::%(brand)s (%(substance)s): Dispense $<free_text::Dispense how many of %(brand)s %(preparation)s (%(substance)s) ?::20>$ (%(preparation)s) \\n::-4>>>$ should fail',
+			u'should fail $<<<current_meds::%(brand)s (%(substance)s): Dispense $<free_text::Dispense how many of %(brand)s %(preparation)s (%(substance)s) ?::20>$ (%(preparation)s) \\n::should_fail>>>$ junk',
+			u'should fail $<<<current_meds::%(brand)s (%(substance)s): Dispense $<free_text::Dispense how many of %(brand)s %(preparation)s (%(substance)s) ?::20>$ (%(preparation)s) \\n::should_fail->>>$ junk',
+			u'should fail $<<<current_meds::%(brand)s (%(substance)s): Dispense $<free_text::Dispense how many of %(brand)s %(preparation)s (%(substance)s) ?::20>$ (%(preparation)s) \\n::-should_fail>>>$ junk',
+			u'should fail $<<<current_meds::%(brand)s (%(substance)s): Dispense $<free_text::Dispense how many of %(brand)s %(preparation)s (%(substance)s) ?::20>$ (%(preparation)s) \\n::should_fail-4>>>$ junk',
+			u'should fail $<<<current_meds::%(brand)s (%(substance)s): Dispense $<free_text::Dispense how many of %(brand)s %(preparation)s (%(substance)s) ?::20>$ (%(preparation)s) \\n::3-should_fail>>>$ junk',
+			u'should fail $<<<current_meds::%(brand)s (%(substance)s): Dispense $<free_text::Dispense how many of %(brand)s %(preparation)s (%(substance)s) ?::20>$ (%(preparation)s) \\n::should_fail-should_fail>>>$ junk',
+		]
+
+		tests = [
+			u'junk $<<<should pass::template::>>>$ junk',
+			u'junk $<<<should pass::template::10>>>$ junk',
+			u'junk $<<<should pass::template::10-20>>>$ junk',
+			u'junk $<<<should pass::template $<<dummy::template 2::10>>$::>>>$ junk',
+			u'junk $<<<should pass::template $<dummy::template 2::10>$::>>>$ junk',
+
+			u'junk $<<<should pass::template::>>>$ junk $<<<should pass 2::template 2::>>>$ junk',
+			u'junk $<<<should pass::template::>>>$ junk $<<should pass 2::template 2::>>$ junk',
+			u'junk $<<<should pass::template::>>>$ junk $<should pass 2::template 2::>$ junk',
+
+			u'junk $<<<should fail::template $<<<dummy::template 2::10>>>$::>>>$ junk',
+
+			u'junk $<<<should fail::template::10->>>$ junk',
+			u'junk $<<<should fail::template::10->>>$ junk',
+			u'junk $<<<should fail::template::10->>>$ junk',
+			u'junk $<<<should fail::template::10->>>$ junk',
+			u'junk $<first_pass::junk $<<<3rd_pass::template::20>>>$ junk::8-10>$ junk'
 		]
 
-		print "testing placeholder regex:", first_order_placeholder_regex
-		print ""
+		#print "testing placeholder regex:", first_pass_placeholder_regex
+		##print "testing placeholder regex:", second_pass_placeholder_regex
+		##print "testing placeholder regex:", third_pass_placeholder_regex
+		#print ""
+		#for t in tests:
+		#	print 'line: "%s"' % t
+		#	phs = regex.findall(first_pass_placeholder_regex, t, regex.IGNORECASE)
+		#	#phs = regex.findall(second_pass_placeholder_regex, t, regex.IGNORECASE)
+		#	#phs = regex.findall(third_pass_placeholder_regex, t, regex.IGNORECASE)
+		#	print " %s placeholders:" % len(phs)
+		#	for p in phs:
+		#		print ' => ', p
+		#	print " "
+
+		all_tests = {
+			first_pass_placeholder_regex: [
+				# different lengths/regions
+				(u'junk $<first_level::template::>$ junk', [u'$<first_level::template::>$']),
+				(u'junk $<first_level::template::10>$ junk', [u'$<first_level::template::10>$']),
+				(u'junk $<first_level::template::10-12>$ junk', [u'$<first_level::template::10-12>$']),
+
+				# inside is other-level:
+				(u'junk $<first_level::$<<insert::insert_template::0>>$::10-12>$ junk', [u'$<first_level::$<<insert::insert_template::0>>$::10-12>$']),
+				(u'junk $<first_level::$<<<insert::insert_template::0>>>$::10-12>$ junk', [u'$<first_level::$<<<insert::insert_template::0>>>$::10-12>$']),
+
+				# outside is other-level:
+				(u'junk $<<second_level::$<insert::insert_template::0>$::10-12>>$ junk', [u'$<insert::insert_template::0>$']),
+				(u'junk $<<<third_level::$<insert::insert_template::0>$::10-12>>>$ junk', [u'$<insert::insert_template::0>$']),
+
+				# other level on same line
+				(u'junk $<first_level 1::template 1::>$ junk $<<second_level 2::template 2::>>$ junk', [u'$<first_level 1::template 1::>$']),
+				(u'junk $<first_level 1::template 1::>$ junk $<<<third_level 2::template 2::>>>$ junk', [u'$<first_level 1::template 1::>$']),
+
+				# this should produce 2 matches
+				(u'junk $<first_level 1::template 1::>$ junk $<first_level 2::template 2::>$ junk', [u'$<first_level 1::template 1::>$', u'$<first_level 2::template 2::>$']),
+
+				# this will produce a mismatch, due to illegal nesting of same-level placeholders
+				(u'returns illegal match: junk $<first_level::$<insert::insert_template::0>$::10-12>$ junk', [u'$<first_level::$<insert::insert_template::0>$::10-12>$']),
+			],
+			second_pass_placeholder_regex: [
+				# different lengths/regions
+				(u'junk $<<second_level::template::>>$ junk', [u'$<<second_level::template::>>$']),
+				(u'junk $<<second_level::template::10>>$ junk', [u'$<<second_level::template::10>>$']),
+				(u'junk $<<second_level::template::10-12>>$ junk', [u'$<<second_level::template::10-12>>$']),
+
+				# inside is other-level:
+				(u'junk $<<second_level::$<insert::insert_template::0>$::10-12>>$ junk', [u'$<<second_level::$<insert::insert_template::0>$::10-12>>$']),
+				(u'junk $<<second_level::$<<<insert::insert_template::0>>>$::10-12>>$ junk', [u'$<<second_level::$<<<insert::insert_template::0>>>$::10-12>>$']),
+
+				# outside is other-level:
+				(u'junk $<first_level::$<<insert::insert_template::0>>$::10-12>$ junk', [u'$<<insert::insert_template::0>>$']),
+				(u'junk $<<<third_level::$<<insert::insert_template::0>>$::10-12>>>$ junk', [u'$<<insert::insert_template::0>>$']),
+
+				# other level on same line
+				(u'junk $<first_level 1::template 1::>$ junk $<<second_level 2::template 2::>>$ junk', [u'$<<second_level 2::template 2::>>$']),
+				(u'junk $<<second_level 1::template 1::>>$ junk $<<<third_level 2::template 2::>>>$ junk', [u'$<<second_level 1::template 1::>>$']),
+
+				# this should produce 2 matches
+				(u'junk $<<second_level 1::template 1::>>$ junk $<<second_level 2::template 2::>>$ junk', [u'$<<second_level 1::template 1::>>$', u'$<<second_level 2::template 2::>>$']),
+
+				# this will produce a mismatch, due to illegal nesting of same-level placeholders
+				(u'returns illegal match: junk $<<second_level::$<<insert::insert_template::0>>$::10-12>>$ junk', [u'$<<second_level::$<<insert::insert_template::0>>$::10-12>>$']),
+
+			],
+			third_pass_placeholder_regex: [
+				# different lengths/regions
+				(u'junk $<<<third_level::template::>>>$ junk', [u'$<<<third_level::template::>>>$']),
+				(u'junk $<<<third_level::template::10>>>$ junk', [u'$<<<third_level::template::10>>>$']),
+				(u'junk $<<<third_level::template::10-12>>>$ junk', [u'$<<<third_level::template::10-12>>>$']),
+
+				# inside is other-level:
+				(u'junk $<<<third_level::$<<insert::insert_template::0>>$::10-12>>>$ junk', [u'$<<<third_level::$<<insert::insert_template::0>>$::10-12>>>$']),
+				(u'junk $<<<third_level::$<insert::insert_template::0>$::10-12>>>$ junk', [u'$<<<third_level::$<insert::insert_template::0>$::10-12>>>$']),
+
+				# outside is other-level:
+				(u'junk $<<second_level::$<<<insert::insert_template::0>>>$::10-12>>$ junk', [u'$<<<insert::insert_template::0>>>$']),
+				(u'junk $<first_level::$<<<insert::insert_template::0>>>$::10-12>$ junk', [u'$<<<insert::insert_template::0>>>$']),
+
+				# other level on same line
+				(u'junk $<first_level 1::template 1::>$ junk $<<<third_level 2::template 2::>>>$ junk', [u'$<<<third_level 2::template 2::>>>$']),
+				(u'junk $<<second_level 1::template 1::>>$ junk $<<<third_level 2::template 2::>>>$ junk', [u'$<<<third_level 2::template 2::>>>$']),
+
+				# this will produce a mismatch, due to illegal nesting of same-level placeholders
+				(u'returns illegal match: junk $<<<third_level::$<<<insert::insert_template::0>>>$::10-12>>>$ junk', [u'$<<<third_level::$<<<insert::insert_template::0>>>$::10-12>>>$']),
+			]
+		}
+
+		for pattern in [first_pass_placeholder_regex, second_pass_placeholder_regex, third_pass_placeholder_regex]:
+			print ""
+			print "-----------------------------"
+			print "regex:", pattern
+			tests = all_tests[pattern]
+			for t in tests:
+				line, expected_results = t
+				phs = regex.findall(pattern, line, regex.IGNORECASE)
+				if len(phs) > 0:
+					if phs == expected_results:
+						continue
+
+				print ""
+				print "failed"
+				print "line:", line
+
+				if len(phs) == 0:
+					print "no match"
+					continue
+
+				if len(phs) > 1:
+					print "several matches"
+					for r in expected_results:
+						print "expected:", r
+					for p in phs:
+						print "found:", p
+					continue
+
+				print "unexpected match"
+				print "expected:", expected_results
+				print "found:   ", phs
 
-		for t in tests:
-			print 'line: "%s"' % t
-			phs = regex.findall(first_order_placeholder_regex, t, regex.IGNORECASE)
-			print " %s placeholders:" % len(phs)
-			for p in phs:
-				print ' => "%s"' % p
-			print " "
 	#--------------------------------------------------------
 	def test_placeholder():
 
@@ -2310,7 +2939,7 @@ if __name__ == '__main__':
 			#u'adr_suburb::fehlt-auch::1234',
 			#u'external_id::Starfleet Serial Number//Star Fleet Central Staff Office::1234',
 			#u'primary_praxis_provider',
-			#u'current_provider',
+			#u'current_provider::::3-5',
 			#u'current_provider_external_id::Starfleet Serial Number//Star Fleet Central Staff Office::1234',
 			#u'current_provider_external_id::LANR//LÄK::1234'
 			#u'$<current_provider_external_id::KV-LANR//KV::1234>$'
@@ -2347,13 +2976,15 @@ if __name__ == '__main__':
 			#u'$<gen_adr_street::Street = %s//Wählen Sie die Empfängeradresse !::120>$', u'$<gen_adr_location::Ort = %s::120>$', u'$<gen_adr_country::::120>$'
 
 			#u'$<receiver_name::%s::120>$',
-			u'$<receiver_street::%s//a::120>$',
-			u'$<receiver_number:: %s//a::120>$',
+			#u'$<receiver_street::%s//a::120>$',
+			#u'$<receiver_number:: %s//a::120>$',
 			#u'$<receiver_subunit:: %s::120>$',
-			u'$<receiver_postcode::%s//b::120>$',
+			#u'$<receiver_postcode::%s//b::120>$',
 			#u'$<receiver_location:: %s::120>$',
 			#u'$<receiver_country::, %s::120>$',
-			#u'$<external_care::%(issue)s: %(provider)s of %(unit)s@%(organization)s (%(comment)s)::1024>$'
+			#u'$<external_care::%(issue)s: %(provider)s of %(unit)s@%(organization)s (%(comment)s)::1024>$',
+			#u'$<url_escape::hello world ü::>$',
+			u'$<substance_abuse::%(substance)s (%(harmful_use_type)s) last=%(last_checked_when)s stop=%(discontinued)s // %(notes)s::>$'
 		]
 
 		handler = gmPlaceholderHandler()
@@ -2395,6 +3026,3 @@ if __name__ == '__main__':
 	#test()
 	test_placeholder()
 	#test_show_phs()
-
-#=====================================================================
-
diff --git a/client/wxpython/gmMeasurementWidgets.py b/client/wxpython/gmMeasurementWidgets.py
index dfa1678..75c4831 100644
--- a/client/wxpython/gmMeasurementWidgets.py
+++ b/client/wxpython/gmMeasurementWidgets.py
@@ -10,7 +10,7 @@ import datetime as pyDT
 import decimal
 import os
 import subprocess
-import codecs
+import io
 import os.path
 
 
@@ -42,6 +42,7 @@ from Gnumed.business import gmOrganization
 from Gnumed.business import gmHL7
 
 from Gnumed.wxpython import gmRegetMixin
+from Gnumed.wxpython import gmPlugin
 from Gnumed.wxpython import gmEditArea
 from Gnumed.wxpython import gmPhraseWheel
 from Gnumed.wxpython import gmListWidgets
@@ -49,6 +50,7 @@ from Gnumed.wxpython import gmGuiHelpers
 from Gnumed.wxpython import gmAuthWidgets
 from Gnumed.wxpython import gmOrganizationWidgets
 from Gnumed.wxpython import gmEMRStructWidgets
+from Gnumed.wxpython import gmCfgWidgets
 
 
 _log = logging.getLogger('gm.ui')
@@ -196,7 +198,7 @@ def browse_incoming_unmatched(parent=None):
 		filename = staged_item.export_to_file()
 		if filename is None:
 			filename = gmTools.get_unique_filename()
-		tmp_file = codecs.open(filename, 'ab', 'utf8')
+		tmp_file = io.open(filename, mode = 'at', encoding = 'utf8')
 		tmp_file.write(u'\n')
 		tmp_file.write(u'-' * 80)
 		tmp_file.write(u'\n')
@@ -461,6 +463,7 @@ def manage_measurements(parent=None, single_selection=False, emr=None):
 		] for r in results ]
 		lctrl.set_string_items(items)
 		lctrl.set_data(results)
+
 	#------------------------------------------------------------
 	msg = _('Test results (ordered reverse-chronologically)')
 
@@ -481,6 +484,25 @@ def manage_measurements(parent=None, single_selection=False, emr=None):
 	)
 
 #================================================================
+def configure_default_top_lab_panel(parent=None):
+
+	if parent is None:
+		parent = wx.GetApp().GetTopWindow()
+
+	panels = gmPathLab.get_test_panels(order_by = u'description')
+	gmCfgWidgets.configure_string_from_list_option (
+		parent = parent,
+		message = _('Select the measurements panel to show in the top pane for continuous monitoring.'),
+		option = u'horstspace.top_panel.lab_panel',
+		bias = 'user',
+		default_value = None,
+		choices = [ u'%s%s' % (p['description'], gmTools.coalesce(p['comment'], u'', u' (%s)')) for p in panels ],
+		columns = [_('Lab panel')],
+		data = [ p['pk_test_panel'] for p in panels ],
+		caption = _('Configuring continuous monitoring measurements panel')
+	)
+
+#================================================================
 def configure_default_gnuplot_template(parent=None):
 
 	from Gnumed.wxpython import gmFormWidgets
@@ -621,18 +643,152 @@ def plot_adjacent_measurements(parent=None, test=None, format=None, show_year=Tr
 #================================================================
 # display widgets
 #================================================================
-from Gnumed.wxGladeWidgets import wxgMeasurementsDetailsPnl
+from Gnumed.wxGladeWidgets import wxgMeasurementsAsListPnl
 
-class cMeasurementsDetailsPnl(wxgMeasurementsDetailsPnl.wxgMeasurementsDetailsPnl):
+class cMeasurementsAsListPnl(wxgMeasurementsAsListPnl.wxgMeasurementsAsListPnl, gmRegetMixin.cRegetOnPaintMixin):
 
 	def __init__(self, *args, **kwargs):
-		wxgMeasurementsDetailsPnl.wxgMeasurementsDetailsPnl.__init__(self, *args, **kwargs)
+		wxgMeasurementsAsListPnl.wxgMeasurementsAsListPnl.__init__(self, *args, **kwargs)
+
+		gmRegetMixin.cRegetOnPaintMixin.__init__(self)
+
+		self.__patient = None
+#		self.__date_format = str('%Y %b %d')
+
+		self.__init_ui()
+		self.__register_events()
+
+	#------------------------------------------------------------
+	# internal helpers
+	#------------------------------------------------------------
+	def __init_ui(self):
+		self._LCTRL_results.set_columns([_('When'), _('Test'), _('Result'), _('Reference')])
+
+	#------------------------------------------------------------
+	def __register_events(self):
+		gmDispatcher.connect(signal = u'gm_table_mod', receiver = self._on_database_signal)
+
+	#------------------------------------------------------------
+	def __repopulate_ui(self):
+		if self.__patient is None:
+			self._TCTRL_measurements.SetValue(u'')
+			return
+
+		results = self.__patient.emr.get_test_results(order_by = 'clin_when DESC, unified_abbrev, unified_name')
+		items = []
+		data = []
+		for r in results:
+			range_info = gmTools.coalesce (
+				r.formatted_clinical_range,
+				r.formatted_normal_range
+			)
+			review = gmTools.bool2subst (
+				r['reviewed'],
+				u'',
+				u' ' + gmTools.u_writing_hand,
+				u' ' + gmTools.u_writing_hand
+			)
+			items.append ([
+				gmDateTime.pydt_strftime(r['clin_when'], '%Y %b %d  %H:%M', accuracy = gmDateTime.acc_minutes),
+				r['abbrev_tt'],
+				u'%s%s%s%s' % (
+					gmTools.strip_empty_lines(text = r['unified_val'])[0],
+					gmTools.coalesce(r['val_unit'], u'', u' %s'),
+					gmTools.coalesce(r['abnormality_indicator'], u'', u' %s'),
+					review
+				),
+				gmTools.coalesce(range_info, u'')
+			])
+			data.append({'data': r, 'formatted': r.format(with_source_data = True)})
+
+		self._LCTRL_results.set_string_items(items)
+		self._LCTRL_results.set_column_widths([wx.LIST_AUTOSIZE, wx.LIST_AUTOSIZE, wx.LIST_AUTOSIZE, wx.LIST_AUTOSIZE])
+		self._LCTRL_results.set_data(data)
+		if len(items) > 0:
+			self._LCTRL_results.Select(idx = 0, on = 1)
+			self._TCTRL_measurements.SetValue(self._LCTRL_results.get_item_data(item_idx = 0)['formatted'])
+
+		self._LCTRL_results.SetFocus()
+
+	#------------------------------------------------------------
+	# event handlers
+	#------------------------------------------------------------
+	def _on_database_signal(self, **kwds):
+		if self.__patient is None:
+			return True
+
+		if kwds['pk_identity'] is not None:				# review table doesn't have pk_identity yet
+			if kwds['pk_identity'] != self.__patient.ID:
+				return True
+
+		if kwds['table'] not in [u'clin.test_result', u'clin.reviewed_test_results']:
+			return True
+
+		self._schedule_data_reget()
+		return True
+
+	#------------------------------------------------------------
+	def _on_result_selected(self, event):
+		event.Skip()
+		item_data = self._LCTRL_results.get_item_data(item_idx = event.Index)
+		self._TCTRL_measurements.SetValue(item_data['formatted'])
+
+	#------------------------------------------------------------
+	# reget mixin API
+	#------------------------------------------------------------
+	def _populate_with_data(self):
+		self.__repopulate_ui()
+		return True
+
+	#------------------------------------------------------------
+	# properties
+	#------------------------------------------------------------
+	def _get_patient(self):
+		return self.__patient
+
+	def _set_patient(self, patient):
+		if (self.__patient is None) and (patient is None):
+			return
+		if (self.__patient is None) or (patient is None):
+			self.__patient = patient
+			self._schedule_data_reget()
+			return
+		if self.__patient.ID == patient.ID:
+			return
+		self.__patient = patient
+		self._schedule_data_reget()
+
+	patient = property(_get_patient, _set_patient)
+
+#================================================================
+from Gnumed.wxGladeWidgets import wxgMeasurementsByDayPnl
+
+class cMeasurementsByDayPnl(wxgMeasurementsByDayPnl.wxgMeasurementsByDayPnl, gmRegetMixin.cRegetOnPaintMixin):
+
+	def __init__(self, *args, **kwargs):
+		wxgMeasurementsByDayPnl.wxgMeasurementsByDayPnl.__init__(self, *args, **kwargs)
+
+		gmRegetMixin.cRegetOnPaintMixin.__init__(self)
+
 		self.__patient = None
 		self.__date_format = str('%Y %b %d')
 
 		self.__init_ui()
+		self.__register_events()
+
+	#------------------------------------------------------------
+	# internal helpers
+	#------------------------------------------------------------
+	def __init_ui(self):
+		self._LCTRL_days.set_columns([_('Day')])
+		self._LCTRL_results.set_columns([_('Time'), _('Test'), _('Result'), _('Reference')])
+
+	#------------------------------------------------------------
+	def __register_events(self):
+		gmDispatcher.connect(signal = u'gm_table_mod', receiver = self._on_database_signal)
+
 	#------------------------------------------------------------
-	def repopulate_panel(self):
+	def __repopulate_ui(self):
 		if self.__patient is None:
 			self._LCTRL_days.set_string_items()
 			self._TCTRL_measurements.SetValue(u'')
@@ -643,20 +799,28 @@ class cMeasurementsDetailsPnl(wxgMeasurementsDetailsPnl.wxgMeasurementsDetailsPn
 
 		self._LCTRL_days.set_string_items(items)
 		self._LCTRL_days.set_data(dates)
-		self._LCTRL_days.Select(idx = 0, on = 1)
-		self._LCTRL_days.SetFocus()
+		if len(items) > 0:
+			self._LCTRL_days.Select(idx = 0, on = 1)
+			self._LCTRL_days.SetFocus()
+
 	#------------------------------------------------------------
-	# internal helpers
+	# event handlers
 	#------------------------------------------------------------
-	def __init_ui(self):
-		self._LCTRL_days.set_columns([_('Day')])
-		self._LCTRL_results.set_columns([_('Time'), _('Test'), _('Result'), _('Reference')])
+	def _on_database_signal(self, **kwds):
+		if self.__patient is None:
+			return True
 
-		#self._LCTRL_days.activate_callback = self._on_day_activated
+		if kwds['pk_identity'] is not None:				# review table doesn't have pk_identity yet
+			if kwds['pk_identity'] != self.__patient.ID:
+				return True
 
-	#------------------------------------------------------------
-	#def _on_day_activated(self, event):
+		if kwds['table'] not in [u'clin.test_result', u'clin.reviewed_test_results']:
+			return True
 
+		self._schedule_data_reget()
+		return True
+
+	#------------------------------------------------------------
 	def _on_day_selected(self, event):
 		event.Skip()
 
@@ -694,12 +858,131 @@ class cMeasurementsDetailsPnl(wxgMeasurementsDetailsPnl.wxgMeasurementsDetailsPn
 		self._LCTRL_results.Select(idx = 0, on = 1)
 		self._TCTRL_measurements.SetValue(self._LCTRL_results.get_item_data(item_idx = 0)['formatted'])
 
-		#self._LCTRL_results.SetFocus()
 	#------------------------------------------------------------
 	def _on_result_selected(self, event):
 		event.Skip()
 		item_data = self._LCTRL_results.get_item_data(item_idx = event.Index)
 		self._TCTRL_measurements.SetValue(item_data['formatted'])
+
+	#------------------------------------------------------------
+	# reget mixin API
+	#------------------------------------------------------------
+	def _populate_with_data(self):
+		self.__repopulate_ui()
+		return True
+
+	#------------------------------------------------------------
+	# properties
+	#------------------------------------------------------------
+	def _get_patient(self):
+		return self.__patient
+
+	def _set_patient(self, patient):
+		if (self.__patient is None) and (patient is None):
+			return
+		if (self.__patient is None) or (patient is None):
+			self.__patient = patient
+			self._schedule_data_reget()
+			return
+		if self.__patient.ID == patient.ID:
+			return
+		self.__patient = patient
+		self._schedule_data_reget()
+
+	patient = property(_get_patient, _set_patient)
+
+#================================================================
+from Gnumed.wxGladeWidgets import wxgMeasurementsByBatteryPnl
+
+class cMeasurementsByBatteryPnl(wxgMeasurementsByBatteryPnl.wxgMeasurementsByBatteryPnl, gmRegetMixin.cRegetOnPaintMixin):
+
+	def __init__(self, *args, **kwargs):
+		wxgMeasurementsByBatteryPnl.wxgMeasurementsByBatteryPnl.__init__(self, *args, **kwargs)
+
+		gmRegetMixin.cRegetOnPaintMixin.__init__(self)
+
+		self.__patient = None
+
+		self.__init_ui()
+		self.__register_events()
+
+	#------------------------------------------------------------
+	# internal helpers
+	#------------------------------------------------------------
+	def __init_ui(self):
+		self._GRID_results_battery.show_by_panel = True
+
+	#------------------------------------------------------------
+	def __register_events(self):
+		gmDispatcher.connect(signal = u'gm_table_mod', receiver = self._on_database_signal)
+
+		self._PRW_panel.add_callback_on_selection(callback = self._on_panel_selected)
+		self._PRW_panel.add_callback_on_modified(callback = self._on_panel_selection_modified)
+
+	#------------------------------------------------------------
+	def __repopulate_ui(self):
+		self._GRID_results_battery.patient = self.__patient
+		return True
+
+	#--------------------------------------------------------
+	def __on_panel_selected(self, panel):
+		if panel is None:
+			self._TCTRL_panel_comment.SetValue(u'')
+			self._GRID_results_battery.panel_to_show = None
+		else:
+			pnl = self._PRW_panel.GetData(as_instance = True)
+			self._TCTRL_panel_comment.SetValue(gmTools.coalesce (
+				pnl['comment'],
+				u''
+			))
+			self._GRID_results_battery.panel_to_show = pnl
+#		self._GRID_results_battery.Fit()
+#		self.Layout()
+
+	#--------------------------------------------------------
+	def __on_panel_selection_modified(self):
+		self._TCTRL_panel_comment.SetValue(u'')
+		if self._PRW_panel.GetValue().strip() == u'':
+			self._GRID_results_battery.panel_to_show = None
+#			self._GRID_results_battery.Fit()
+#			self.Layout()
+
+	#------------------------------------------------------------
+	# event handlers
+	#------------------------------------------------------------
+	def _on_database_signal(self, **kwds):
+		if self.__patient is None:
+			return True
+
+		if kwds['pk_identity'] is not None:				# review table doesn't have pk_identity yet
+			if kwds['pk_identity'] != self.__patient.ID:
+				return True
+
+		if kwds['table'] not in [u'clin.test_result', u'clin.reviewed_test_results']:
+			return True
+
+		self._schedule_data_reget()
+		return True
+
+	#------------------------------------------------------------
+	def _on_manage_panels_button_pressed(self, event):
+		manage_test_panels(parent = self)
+
+	#--------------------------------------------------------
+	def _on_panel_selected(self, panel):
+		wx.CallAfter(self.__on_panel_selected, panel=panel)
+
+	#--------------------------------------------------------
+	def _on_panel_selection_modified(self):
+		wx.CallAfter(self.__on_panel_selection_modified)
+
+	#------------------------------------------------------------
+	# reget mixin API
+	#------------------------------------------------------------
+	def _populate_with_data(self):
+		self.__repopulate_ui()
+		return True
+
 	#------------------------------------------------------------
 	# properties
 	#------------------------------------------------------------
@@ -707,8 +990,261 @@ class cMeasurementsDetailsPnl(wxgMeasurementsDetailsPnl.wxgMeasurementsDetailsPn
 		return self.__patient
 
 	def _set_patient(self, patient):
+		if (self.__patient is None) and (patient is None):
+			return
+		if (self.__patient is None) or (patient is None):
+			self.__patient = patient
+			self._schedule_data_reget()
+			return
+		if self.__patient.ID == patient.ID:
+			return
+		self.__patient = patient
+		self._schedule_data_reget()
+
+	patient = property(_get_patient, _set_patient)
+
+#================================================================
+from Gnumed.wxGladeWidgets import wxgMeasurementsAsTablePnl
+
+class cMeasurementsAsTablePnl(wxgMeasurementsAsTablePnl.wxgMeasurementsAsTablePnl, gmRegetMixin.cRegetOnPaintMixin):
+
+	def __init__(self, *args, **kwargs):
+		wxgMeasurementsAsTablePnl.wxgMeasurementsAsTablePnl.__init__(self, *args, **kwargs)
+
+		gmRegetMixin.cRegetOnPaintMixin.__init__(self)
+
+		self.__patient = None
+
+		self.__init_ui()
+		self.__register_events()
+
+	#------------------------------------------------------------
+	# internal helpers
+	#------------------------------------------------------------
+	def __init_ui(self):
+		self.__action_button_popup = wx.Menu(title = _('Perform on selected results:'))
+
+		menu_id = wx.NewId()
+		self.__action_button_popup.AppendItem(wx.MenuItem(self.__action_button_popup, menu_id, _('Review and &sign')))
+		wx.EVT_MENU(self.__action_button_popup, menu_id, self.__on_sign_current_selection)
+
+		menu_id = wx.NewId()
+		self.__action_button_popup.AppendItem(wx.MenuItem(self.__action_button_popup, menu_id, _('Plot')))
+		wx.EVT_MENU(self.__action_button_popup, menu_id, self.__on_plot_current_selection)
+
+		menu_id = wx.NewId()
+		self.__action_button_popup.AppendItem(wx.MenuItem(self.__action_button_popup, menu_id, _('Export to &file')))
+		#wx.EVT_MENU(self.__action_button_popup, menu_id, self._GRID_results_all.current_selection_to_file)
+		self.__action_button_popup.Enable(id = menu_id, enable = False)
+
+		menu_id = wx.NewId()
+		self.__action_button_popup.AppendItem(wx.MenuItem(self.__action_button_popup, menu_id, _('Export to &clipboard')))
+		#wx.EVT_MENU(self.__action_button_popup, menu_id, self._GRID_results_all.current_selection_to_clipboard)
+		self.__action_button_popup.Enable(id = menu_id, enable = False)
+
+		menu_id = wx.NewId()
+		self.__action_button_popup.AppendItem(wx.MenuItem(self.__action_button_popup, menu_id, _('&Delete')))
+		wx.EVT_MENU(self.__action_button_popup, menu_id, self.__on_delete_current_selection)
+
+		# FIXME: create inbox message to staff to phone patient to come in
+		# FIXME: generate and let edit a SOAP narrative and include the values
+
+		self._GRID_results_all.show_by_panel = False
+
+	#------------------------------------------------------------
+	def __register_events(self):
+		gmDispatcher.connect(signal = u'gm_table_mod', receiver = self._on_database_signal)
+
+	#------------------------------------------------------------
+	def __repopulate_ui(self):
+		self._GRID_results_all.patient = self.__patient
+		#self._GRID_results_battery.Fit()
+		self.Layout()
+		return True
+
+	#------------------------------------------------------------
+	def __on_sign_current_selection(self, evt):
+		self._GRID_results_all.sign_current_selection()
+
+	#------------------------------------------------------------
+	def __on_plot_current_selection(self, evt):
+		self._GRID_results_all.plot_current_selection()
+
+	#------------------------------------------------------------
+	def __on_delete_current_selection(self, evt):
+		self._GRID_results_all.delete_current_selection()
+
+	#------------------------------------------------------------
+	# event handlers
+	#------------------------------------------------------------
+	def _on_database_signal(self, **kwds):
+		if self.__patient is None:
+			return True
+
+		if kwds['pk_identity'] is not None:				# review table doesn't have pk_identity yet
+			if kwds['pk_identity'] != self.__patient.ID:
+				return True
+
+		if kwds['table'] not in [u'clin.test_result', u'clin.reviewed_test_results']:
+			return True
+
+		self._schedule_data_reget()
+		return True
+
+	#--------------------------------------------------------
+	def _on_add_button_pressed(self, event):
+		edit_measurement(parent = self, measurement = None)
+
+	#--------------------------------------------------------
+	def _on_manage_types_button_pressed(self, event):
+		event.Skip()
+		manage_measurement_types(parent = self)
+
+	#--------------------------------------------------------
+	def _on_review_button_pressed(self, evt):
+		self.PopupMenu(self.__action_button_popup)
+
+	#--------------------------------------------------------
+	def _on_select_button_pressed(self, evt):
+		if self._RBTN_my_unsigned.GetValue() is True:
+			self._GRID_results_all.select_cells(unsigned_only = True, accountables_only = True, keep_preselections = False)
+		elif self._RBTN_all_unsigned.GetValue() is True:
+			self._GRID_results_all.select_cells(unsigned_only = True, accountables_only = False, keep_preselections = False)
+
+	#--------------------------------------------------------
+	# implement as notebook page
+#	def _on_list_button_pressed(self, event):
+#		event.Skip()
+#		manage_measurements(parent = self, single_selection = True)#, emr = pat.emr)
+
+	#------------------------------------------------------------
+	# reget mixin API
+	#------------------------------------------------------------
+	def _populate_with_data(self):
+		self.__repopulate_ui()
+		return True
+
+	#------------------------------------------------------------
+	# properties
+	#------------------------------------------------------------
+	def _get_patient(self):
+		return self.__patient
+
+	def _set_patient(self, patient):
+		if (self.__patient is None) and (patient is None):
+			return
+		if (self.__patient is None) or (patient is None):
+			self.__patient = patient
+			self._schedule_data_reget()
+			return
+		if self.__patient.ID == patient.ID:
+			return
+		self.__patient = patient
+		self._schedule_data_reget()
+
+	patient = property(_get_patient, _set_patient)
+
+#================================================================
+# notebook based measurements plugin
+#================================================================
+class cMeasurementsNb(wx.Notebook, gmPlugin.cPatientChange_PluginMixin):
+	"""Notebook displaying measurements pages:
+
+		- by test battery
+		- by day
+		- full grid
+		- full list
+
+	Used as a main notebook plugin page.
+	"""
+	#--------------------------------------------------------
+	def __init__(self, parent, id):
+
+		wx.Notebook.__init__ (
+			self,
+			parent = parent,
+			id = id,
+			style = wx.NB_TOP | wx.NB_MULTILINE | wx.NO_BORDER,
+			name = self.__class__.__name__
+		)
+		gmPlugin.cPatientChange_PluginMixin.__init__(self)
+		self.__patient = gmPerson.gmCurrentPatient()
+		self.__init_ui()
+		self.SetSelection(0)
+
+	#--------------------------------------------------------
+	# patient change plugin API
+	#--------------------------------------------------------
+	def _on_current_patient_unset(self, **kwds):
+		for page_idx in range(self.GetPageCount()):
+			page = self.GetPage(page_idx)
+			page.patient = None
+
+	#--------------------------------------------------------
+	def _post_patient_selection(self, **kwds):
+		for page_idx in range(self.GetPageCount()):
+			page = self.GetPage(page_idx)
+			page.patient = self.__patient
+
+	#--------------------------------------------------------
+	# notebook plugin API
+	#--------------------------------------------------------
+	def repopulate_ui(self):
+		for page_idx in range(self.GetPageCount()):
+			page = self.GetPage(page_idx)
+			page.patient = self.__patient
+
+		return True
+
+	#--------------------------------------------------------
+	# internal API
+	#--------------------------------------------------------
+	def __init_ui(self):
+
+		# by day
+		new_page = cMeasurementsByDayPnl(self, -1)
+		new_page.patient = self.__patient
+		self.AddPage (
+			page = new_page,
+			text = _('Days'),
+			select = True
+		)
+
+		# by test panel
+		new_page = cMeasurementsByBatteryPnl(self, -1)
+		new_page.patient = self.__patient
+		self.AddPage (
+			page = new_page,
+			text = _('Panels'),
+			select = False
+		)
+
+		# full grid
+		new_page = cMeasurementsAsTablePnl(self, -1)
+		new_page.patient = self.__patient
+		self.AddPage (
+			page = new_page,
+			text = _('Table'),
+			select = False
+		)
+
+		# full list
+		new_page = cMeasurementsAsListPnl(self, -1)
+		new_page.patient = self.__patient
+		self.AddPage (
+			page = new_page,
+			text = _('List'),
+			select = False
+		)
+
+	#--------------------------------------------------------
+	# properties
+	#--------------------------------------------------------
+	def _get_patient(self):
+		return self.__patient
+
+	def _set_patient(self, patient):
 		self.__patient = patient
-		self.repopulate_panel()
 
 	patient = property(_get_patient, _set_patient)
 
@@ -742,6 +1278,7 @@ class cMeasurementsGrid(wx.grid.Grid):
 
 		self.__init_ui()
 		self.__register_events()
+
 	#------------------------------------------------------------
 	# external API
 	#------------------------------------------------------------
@@ -835,13 +1372,13 @@ class cMeasurementsGrid(wx.grid.Grid):
 		selected_cells += list (
 			(row, col)
 				for row in sel_rows
-				for col in xrange(self.GetNumberCols())
+				for col in range(self.GetNumberCols())
 		)
 
 		# selected columns
 		selected_cells += list (
 			(row, col)
-				for row in xrange(self.GetNumberRows())
+				for row in range(self.GetNumberRows())
 				for col in sel_cols
 		)
 
@@ -849,8 +1386,8 @@ class cMeasurementsGrid(wx.grid.Grid):
 		for top_left, bottom_right in zip(self.GetSelectionBlockTopLeft(), self.GetSelectionBlockBottomRight()):
 			selected_cells += [
 				(row, col)
-					for row in xrange(top_left[0], bottom_right[0] + 1)
-					for col in xrange(top_left[1], bottom_right[1] + 1)
+					for row in range(top_left[0], bottom_right[0] + 1)
+					for col in range(top_left[1], bottom_right[1] + 1)
 			]
 
 		return set(selected_cells)
@@ -891,6 +1428,7 @@ class cMeasurementsGrid(wx.grid.Grid):
 
 		self.EndBatch()
 		wx.EndBusyCursor()
+
 	#------------------------------------------------------------
 	def repopulate_grid(self):
 		self.empty_grid()
@@ -911,6 +1449,7 @@ class cMeasurementsGrid(wx.grid.Grid):
 		emr = self.__patient.get_emr()
 		tests = emr.get_test_types_for_results(order_by = u'unified_abbrev', unique_meta_types = True)
 		self.__repopulate_grid(tests4rows = tests)
+
 	#------------------------------------------------------------
 	def __repopulate_grid(self, tests4rows=None, test_pks2show=None):
 
@@ -961,7 +1500,7 @@ class cMeasurementsGrid(wx.grid.Grid):
 				self.__cell_data[col_idx] = {}
 
 			# the tooltip always shows the youngest sub result details
-			if self.__cell_data[col_idx].has_key(row_idx):
+			if row_idx in self.__cell_data[col_idx]:
 				self.__cell_data[col_idx][row_idx].append(result)
 				self.__cell_data[col_idx][row_idx].sort(key = lambda x: x['clin_when'], reverse = True)
 			else:
@@ -1118,6 +1657,7 @@ class cMeasurementsGrid(wx.grid.Grid):
 
 		tt += result.format(with_review = True, with_evaluation = True, with_ranges = True)
 		return tt
+
 	#------------------------------------------------------------
 	# internal helpers
 	#------------------------------------------------------------
@@ -1241,6 +1781,7 @@ class cMeasurementsGrid(wx.grid.Grid):
 
 		# editing cells
 		self.Bind(wx.grid.EVT_GRID_CELL_LEFT_DCLICK, self.__on_cell_left_dclicked)
+
 	#------------------------------------------------------------
 	def __on_cell_left_dclicked(self, evt):
 		col = evt.GetCol()
@@ -1302,7 +1843,7 @@ class cMeasurementsGrid(wx.grid.Grid):
 		# use this logic to prevent tooltips outside the actual cells
 		# apply to GetRowSize, too
 #        tot = 0
-#        for col in xrange(self.NumberCols):
+#        for col in range(self.NumberCols):
 #            tot += self.GetColSize(col)
 #            if xpos <= tot:
 #                self.tool_tip.Tip = 'Tool tip for Column %s' % (
@@ -1320,6 +1861,7 @@ class cMeasurementsGrid(wx.grid.Grid):
 		self.__prev_col = col
 
 		evt.GetEventObject().SetToolTipString(self.get_cell_tooltip(col=col, row=row))
+
 	#------------------------------------------------------------
 	# properties
 	#------------------------------------------------------------
@@ -1343,6 +1885,9 @@ class cMeasurementsGrid(wx.grid.Grid):
 		self.repopulate_grid()
 
 	show_by_panel = property(lambda x:x, _set_show_by_panel)
+
+#================================================================
+# integrated measurements plugin
 #================================================================
 from Gnumed.wxGladeWidgets import wxgMeasurementsPnl
 
@@ -1582,6 +2127,7 @@ def review_tests(parent=None, tests=None):
 	wx.EndBusyCursor()
 
 	return True
+
 #----------------------------------------------------------------
 from Gnumed.wxGladeWidgets import wxgMeasurementsReviewDlg
 
@@ -1632,6 +2178,7 @@ class cMeasurementsReviewDlg(wxgMeasurementsReviewDlg.wxgMeasurementsReviewDlg):
 			self.EndModal(wx.ID_APPLY)
 		else:
 			self.Close()
+
 #================================================================
 from Gnumed.wxGladeWidgets import wxgMeasurementEditAreaPnl
 
@@ -1890,12 +2437,12 @@ class cMeasurementEditAreaPnl(wxgMeasurementEditAreaPnl.wxgMeasurementEditAreaPn
 
 		self.data = tr
 
-		wx.CallAfter (
-			plot_adjacent_measurements,
-			test = self.data,
-			plot_singular_result = False,
-			use_default_template = True
-		)
+#		wx.CallAfter (
+#			plot_adjacent_measurements,
+#			test = self.data,
+#			plot_singular_result = False,
+#			use_default_template = True
+#		)
 
 		return True
 	#--------------------------------------------------------
@@ -1972,12 +2519,12 @@ class cMeasurementEditAreaPnl(wxgMeasurementEditAreaPnl.wxgMeasurementEditAreaPn
 				make_me_responsible = False
 			)
 
-		wx.CallAfter (
-			plot_adjacent_measurements,
-			test = self.data,
-			plot_singular_result = False,
-			use_default_template = True
-		)
+#		wx.CallAfter (
+#			plot_adjacent_measurements,
+#			test = self.data,
+#			plot_singular_result = False,
+#			use_default_template = True
+#		)
 
 		return True
 	#--------------------------------------------------------
diff --git a/client/wxpython/gmMedicationWidgets.py b/client/wxpython/gmMedicationWidgets.py
index 1d81b44..02786b5 100644
--- a/client/wxpython/gmMedicationWidgets.py
+++ b/client/wxpython/gmMedicationWidgets.py
@@ -1,4 +1,4 @@
-"""GNUmed medication/substances handling widgets."""
+"""GNUmed medication handling widgets."""
 
 #================================================================
 __author__ = "Karsten Hilbert <Karsten.Hilbert at gmx.net>"
@@ -6,8 +6,6 @@ __license__ = "GPL v2 or later"
 
 import logging
 import sys
-import os.path
-import decimal
 import datetime as pydt
 
 
@@ -32,7 +30,6 @@ from Gnumed.pycommon import gmCfg2
 from Gnumed.pycommon import gmNetworkTools
 
 from Gnumed.business import gmPerson
-from Gnumed.business import gmATC
 from Gnumed.business import gmPraxis
 from Gnumed.business import gmMedication
 from Gnumed.business import gmForms
@@ -54,1165 +51,86 @@ from Gnumed.wxpython import gmPhraseWheel
 from Gnumed.wxpython import gmFormWidgets
 from Gnumed.wxpython import gmAllergyWidgets
 from Gnumed.wxpython import gmDocumentWidgets
+from Gnumed.wxpython import gmSubstanceMgmtWidgets
 
 
 _log = logging.getLogger('gm.ui')
 
 #============================================================
-# generic drug database access
+# perhaps leave this here:
 #============================================================
-def configure_drug_data_source(parent=None):
-	gmCfgWidgets.configure_string_from_list_option (
-		parent = parent,
-		message = _(
-			'\n'
-			'Please select the default drug data source from the list below.\n'
-			'\n'
-			'Note that to actually use it you need to have the database installed, too.'
-		),
-		option = 'external.drug_data.default_source',
-		bias = 'user',
-		default_value = None,
-		choices = gmMedication.drug_data_source_interfaces.keys(),
-		columns = [_('Drug data source')],
-		data = gmMedication.drug_data_source_interfaces.keys(),
-		caption = _('Configuring default drug data source')
-	)
-#============================================================
-def get_drug_database(parent = None):
-	dbcfg = gmCfg.cCfgSQL()
-
-	# load from option
-	default_db = dbcfg.get2 (
-		option = 'external.drug_data.default_source',
-		workplace = gmPraxis.gmCurrentPraxisBranch().active_workplace,
-		bias = 'workplace'
-	)
-
-	# not configured -> try to configure
-	if default_db is None:
-		gmDispatcher.send('statustext', msg = _('No default drug database configured.'), beep = True)
-		configure_drug_data_source(parent = parent)
-		default_db = dbcfg.get2 (
-			option = 'external.drug_data.default_source',
-			workplace = gmPraxis.gmCurrentPraxisBranch().active_workplace,
-			bias = 'workplace'
-		)
-		# still not configured -> return
-		if default_db is None:
-			gmGuiHelpers.gm_show_error (
-				aMessage = _('There is no default drug database configured.'),
-				aTitle = _('Jumping to drug database')
-			)
-			return None
-
-	# now it MUST be configured (either newly or previously)
-	# but also *validly* ?
-	try:
-		drug_db = gmMedication.drug_data_source_interfaces[default_db]()
-	except KeyError:
-		# not valid
-		_log.error('faulty default drug data source configuration: %s', default_db)
-		# try to configure
-		configure_drug_data_source(parent = parent)
-		default_db = dbcfg.get2 (
-			option = 'external.drug_data.default_source',
-			workplace = gmPraxis.gmCurrentPraxisBranch().active_workplace,
-			bias = 'workplace'
-		)
-		# deconfigured or aborted (and thusly still misconfigured) ?
-		try:
-			drug_db = gmMedication.drug_data_source_interfaces[default_db]()
-		except KeyError:
-			_log.error('still faulty default drug data source configuration: %s', default_db)
-			return None
-
-	pat = gmPerson.gmCurrentPatient()
-	if pat.connected:
-		drug_db.patient = pat
-
-	return drug_db
-#============================================================
-def jump_to_drug_database():
-	dbcfg = gmCfg.cCfgSQL()
-	drug_db = get_drug_database()
-	if drug_db is None:
-		return
-	drug_db.switch_to_frontend(blocking = False)
-
-#============================================================
-def jump_to_ifap(import_drugs=False):
-
-	dbcfg = gmCfg.cCfgSQL()
-
-	ifap_cmd = dbcfg.get2 (
-		option = 'external.ifap-win.shell_command',
-		workplace = gmPraxis.gmCurrentPraxisBranch().active_workplace,
-		bias = 'workplace',
-		default = 'wine "C:\Ifapwin\WIAMDB.EXE"'
-	)
-	found, binary = gmShellAPI.detect_external_binary(ifap_cmd)
-	if not found:
-		gmDispatcher.send('statustext', msg = _('Cannot call IFAP via [%s].') % ifap_cmd)
-		return False
-	ifap_cmd = binary
-
-	if import_drugs:
-		transfer_file = os.path.expanduser(dbcfg.get2 (
-			option = 'external.ifap-win.transfer_file',
-			workplace = gmPraxis.gmCurrentPraxisBranch().active_workplace,
-			bias = 'workplace',
-			default = '~/.wine/drive_c/Ifapwin/ifap2gnumed.csv'
-		))
-		# file must exist for Ifap to write into it
-		try:
-			f = open(transfer_file, 'w+b').close()
-		except IOError:
-			_log.exception('Cannot create IFAP <-> GNUmed transfer file [%s]', transfer_file)
-			gmDispatcher.send('statustext', msg = _('Cannot create IFAP <-> GNUmed transfer file [%s].') % transfer_file)
-			return False
-
-	wx.BeginBusyCursor()
-	gmShellAPI.run_command_in_shell(command = ifap_cmd, blocking = import_drugs)
-	wx.EndBusyCursor()
-
-	if import_drugs:
-		# COMMENT: this file must exist PRIOR to invoking IFAP
-		# COMMENT: or else IFAP will not write data into it ...
-		try:
-			csv_file = open(transfer_file, 'rb')						# FIXME: encoding
-		except:
-			_log.exception('cannot access [%s]', fname)
-			csv_file = None
-
-		if csv_file is not None:
-			import csv
-			csv_lines = csv.DictReader (
-				csv_file,
-				fieldnames = u'PZN Handelsname Form Abpackungsmenge Einheit Preis1 Hersteller Preis2 rezeptpflichtig Festbetrag Packungszahl Packungsgr\xf6\xdfe'.split(),
-				delimiter = ';'
-			)
-			pat = gmPerson.gmCurrentPatient()
-			emr = pat.get_emr()
-			# dummy episode for now
-			epi = emr.add_episode(episode_name = _('Current medication'))
-			for line in csv_lines:
-				narr = u'%sx %s %s %s (\u2258 %s %s) von %s (%s)' % (
-					line['Packungszahl'].strip(),
-					line['Handelsname'].strip(),
-					line['Form'].strip(),
-					line[u'Packungsgr\xf6\xdfe'].strip(),
-					line['Abpackungsmenge'].strip(),
-					line['Einheit'].strip(),
-					line['Hersteller'].strip(),
-					line['PZN'].strip()
-				)
-				emr.add_clin_narrative(note = narr, soap_cat = 's', episode = epi)
-			csv_file.close()
-
-	return True
-
-#============================================================
-# ATC related widgets
-#============================================================
-
-def browse_atc_reference(parent=None):
-
-	if parent is None:
-		parent = wx.GetApp().GetTopWindow()
-	#------------------------------------------------------------
-	def refresh(lctrl):
-		atcs = gmATC.get_reference_atcs()
-
-		items = [ [
-			a['atc'],
-			a['term'],
-			gmTools.coalesce(a['unit'], u''),
-			gmTools.coalesce(a['administrative_route'], u''),
-			gmTools.coalesce(a['comment'], u''),
-			a['version'],
-			a['lang']
-		] for a in atcs ]
-		lctrl.set_string_items(items)
-		lctrl.set_data(atcs)
-	#------------------------------------------------------------
-	gmListWidgets.get_choices_from_list (
-		parent = parent,
-		msg = _('\nThe ATC codes as known to GNUmed.\n'),
-		caption = _('Showing ATC codes.'),
-		columns = [ u'ATC', _('Term'), _('Unit'), _(u'Route'), _('Comment'), _('Version'), _('Language') ],
-		single_selection = True,
-		refresh_callback = refresh
-	)
-
-#============================================================
-def update_atc_reference_data():
-
-	dlg = wx.FileDialog (
-		parent = None,
-		message = _('Choose an ATC import config file'),
-		defaultDir = os.path.expanduser(os.path.join('~', 'gnumed')),
-		defaultFile = '',
-		wildcard = "%s (*.conf)|*.conf|%s (*)|*" % (_('config files'), _('all files')),
-		style = wx.OPEN | wx.FILE_MUST_EXIST
-	)
-
-	result = dlg.ShowModal()
-	if result == wx.ID_CANCEL:
-		return
-
-	cfg_file = dlg.GetPath()
-	dlg.Destroy()
-
-	conn = gmAuthWidgets.get_dbowner_connection(procedure = _('importing ATC reference data'))
-	if conn is None:
-		return False
-
-	wx.BeginBusyCursor()
-
-	if gmATC.atc_import(cfg_fname = cfg_file, conn = conn):
-		gmDispatcher.send(signal = 'statustext', msg = _('Successfully imported ATC reference data.'))
-	else:
-		gmDispatcher.send(signal = 'statustext', msg = _('Importing ATC reference data failed.'), beep = True)
-
-	wx.EndBusyCursor()
-	return True
-
-#============================================================
-
-class cATCPhraseWheel(gmPhraseWheel.cPhraseWheel):
-
-	def __init__(self, *args, **kwargs):
-
-		gmPhraseWheel.cPhraseWheel.__init__(self, *args, **kwargs)
-
-		query = u"""
-
-			SELECT DISTINCT ON (label)
-				atc_code,
-				label
-			FROM (
-
-				SELECT
-					code as atc_code,
-					(code || ': ' || term)
-						AS label
-				FROM ref.atc
-				WHERE
-					term %(fragment_condition)s
-						OR
-					code %(fragment_condition)s
-
-				UNION ALL
-
-				SELECT
-					atc_code,
-					(atc_code || ': ' || description)
-						AS label
-				FROM ref.consumable_substance
-				WHERE
-					description %(fragment_condition)s
-						OR
-					atc_code %(fragment_condition)s
-
-				UNION ALL
-
-				SELECT
-					atc_code,
-					(atc_code || ': ' || description || ' (' || preparation || ')')
-						AS label
-				FROM ref.branded_drug
-				WHERE
-					description %(fragment_condition)s
-						OR
-					atc_code %(fragment_condition)s
-
-				-- it would be nice to be able to include clin.vacc_indication but that's hard to do in SQL
-
-			) AS candidates
-			WHERE atc_code IS NOT NULL
-			ORDER BY label
-			LIMIT 50"""
-
-		mp = gmMatchProvider.cMatchProvider_SQL2(queries = query)
-		mp.setThresholds(1, 2, 4)
-#		mp.word_separators = '[ \t=+&:@]+'
-		self.SetToolTipString(_('Select an ATC (Anatomical-Therapeutic-Chemical) code.'))
-		self.matcher = mp
-		self.selection_only = True
-
-#============================================================
-# consumable substances widgets
-#------------------------------------------------------------
-def manage_consumable_substances(parent=None):
-
-	if parent is None:
-		parent = wx.GetApp().GetTopWindow()
-	#------------------------------------------------------------
-	def add_from_db(substance):
-		drug_db = get_drug_database(parent = parent)
-		if drug_db is None:
-			return False
-		drug_db.import_drugs()
-		return True
-	#------------------------------------------------------------
-	def edit(substance=None):
-		return edit_consumable_substance(parent = parent, substance = substance, single_entry = (substance is not None))
-	#------------------------------------------------------------
-	def delete(substance):
-		if substance.is_in_use_by_patients:
-			gmDispatcher.send(signal = 'statustext', msg = _('Cannot delete this substance. It is in use.'), beep = True)
-			return False
-
-		return gmMedication.delete_consumable_substance(substance = substance['pk'])
-	#------------------------------------------------------------
-	def refresh(lctrl):
-		substs = gmMedication.get_consumable_substances(order_by = 'description')
-		items = [ [
-			s['description'],
-			s['amount'],
-			s['unit'],
-			gmTools.coalesce(s['atc_code'], u''),
-			s['pk']
-		] for s in substs ]
-		lctrl.set_string_items(items)
-		lctrl.set_data(substs)
-	#------------------------------------------------------------
-	msg = _('\nThese are the consumable substances registered with GNUmed.\n')
-
-	gmListWidgets.get_choices_from_list (
-		parent = parent,
-		msg = msg,
-		caption = _('Showing consumable substances.'),
-		columns = [_('Substance'), _('Amount'), _('Unit'), 'ATC', u'#'],
-		single_selection = True,
-		new_callback = edit,
-		edit_callback = edit,
-		delete_callback = delete,
-		refresh_callback = refresh,
-		left_extra_button = (_('Import'), _('Import consumable substances from a drug database.'), add_from_db)
-	)
-
-#------------------------------------------------------------
-def edit_consumable_substance(parent=None, substance=None, single_entry=False):
-
-	if substance is not None:
-		if substance.is_in_use_by_patients:
-			gmDispatcher.send(signal = 'statustext', msg = _('Cannot edit this substance. It is in use.'), beep = True)
-			return False
-
-	ea = cConsumableSubstanceEAPnl(parent = parent, id = -1)
-	ea.data = substance
-	ea.mode = gmTools.coalesce(substance, 'new', 'edit')
-	dlg = gmEditArea.cGenericEditAreaDlg2(parent = parent, id = -1, edit_area = ea, single_entry = single_entry)
-	dlg.SetTitle(gmTools.coalesce(substance, _('Adding new consumable substance'), _('Editing consumable substance')))
-	if dlg.ShowModal() == wx.ID_OK:
-		dlg.Destroy()
-		return True
-	dlg.Destroy()
-	return False
-
-#============================================================
-from Gnumed.wxGladeWidgets import wxgConsumableSubstanceEAPnl
-
-class cConsumableSubstanceEAPnl(wxgConsumableSubstanceEAPnl.wxgConsumableSubstanceEAPnl, gmEditArea.cGenericEditAreaMixin):
-
-	def __init__(self, *args, **kwargs):
-
-		try:
-			data = kwargs['substance']
-			del kwargs['substance']
-		except KeyError:
-			data = None
-
-		wxgConsumableSubstanceEAPnl.wxgConsumableSubstanceEAPnl.__init__(self, *args, **kwargs)
-		gmEditArea.cGenericEditAreaMixin.__init__(self)
-
-		# Code using this mixin should set mode and data
-		# after instantiating the class:
-		self.mode = 'new'
-		self.data = data
-		if data is not None:
-			self.mode = 'edit'
-
-#		self.__init_ui()
-	#----------------------------------------------------------------
-#	def __init_ui(self):
-#		self._PRW_atc.selection_only = False
-	#----------------------------------------------------------------
-	# generic Edit Area mixin API
-	#----------------------------------------------------------------
-	def _valid_for_save(self):
-
-		validity = True
-
-		if self._TCTRL_substance.GetValue().strip() == u'':
-			validity = False
-			self.display_tctrl_as_valid(tctrl = self._TCTRL_substance, valid = False)
-			self._TCTRL_substance.SetFocus()
-		else:
-			self.display_tctrl_as_valid(tctrl = self._TCTRL_substance, valid = True)
-
-		try:
-			decimal.Decimal(self._TCTRL_amount.GetValue().strip().replace(',', '.'))
-			self.display_tctrl_as_valid(tctrl = self._TCTRL_amount, valid = True)
-		except (TypeError, decimal.InvalidOperation):
-			validity = False
-			self.display_tctrl_as_valid(tctrl = self._TCTRL_amount, valid = False)
-			self._TCTRL_amount.SetFocus()
-
-		if self._PRW_unit.GetValue().strip() == u'':
-			validity = False
-			self._PRW_unit.display_as_valid(valid = False)
-			self._TCTRL_substance.SetFocus()
-		else:
-			self._PRW_unit.display_as_valid(valid = True)
-
-		if validity is False:
-			gmDispatcher.send(signal = 'statustext', msg = _('Cannot save consumable substance. Missing essential input.'))
-
-		return validity
-	#----------------------------------------------------------------
-	def _save_as_new(self):
-		subst = gmMedication.create_consumable_substance (
-			substance = self._TCTRL_substance.GetValue().strip(),
-			atc = self._PRW_atc.GetData(),
-			amount = decimal.Decimal(self._TCTRL_amount.GetValue().strip().replace(',', '.')),
-			unit = gmTools.coalesce(self._PRW_unit.GetData(), self._PRW_unit.GetValue().strip(), function_initial = ('strip', None))
-		)
-		success, data = subst.save()
-		if not success:
-			err, msg = data
-			_log.error(err)
-			_log.error(msg)
-			gmDispatcher.send(signal = 'statustext', msg = _('Cannot save consumable substance. %s') % msg, beep = True)
-			return False
-
-		self.data = subst
-		return True
-	#----------------------------------------------------------------
-	def _save_as_update(self):
-		self.data['description'] = self._TCTRL_substance.GetValue().strip()
-		self.data['atc_code'] = self._PRW_atc.GetData()
-		self.data['amount'] = decimal.Decimal(self._TCTRL_amount.GetValue().strip().replace(',', '.'))
-		self.data['unit'] = gmTools.coalesce(self._PRW_unit.GetData(), self._PRW_unit.GetValue().strip(), function_initial = ('strip', None))
-		success, data = self.data.save()
-
-		if not success:
-			err, msg = data
-			_log.error(err)
-			_log.error(msg)
-			gmDispatcher.send(signal = 'statustext', msg = _('Cannot save consumable substance. %s') % msg, beep = True)
-			return False
-
-		return True
-	#----------------------------------------------------------------
-	def _refresh_as_new(self):
-		self._TCTRL_substance.SetValue(u'')
-		self._TCTRL_amount.SetValue(u'')
-		self._PRW_unit.SetText(u'', None)
-		self._PRW_atc.SetText(u'', None)
-
-		self._TCTRL_substance.SetFocus()
-	#----------------------------------------------------------------
-	def _refresh_from_existing(self):
-		self._TCTRL_substance.SetValue(self.data['description'])
-		self._TCTRL_amount.SetValue(u'%s' % self.data['amount'])
-		self._PRW_unit.SetText(self.data['unit'], self.data['unit'])
-		self._PRW_atc.SetText(gmTools.coalesce(self.data['atc_code'], u''), self.data['atc_code'])
-
-		self._TCTRL_substance.SetFocus()
-	#----------------------------------------------------------------
-	def _refresh_as_new_from_existing(self):
-		self._refresh_as_new()
-
-#============================================================
-# drug component widgets
-#------------------------------------------------------------
-def manage_drug_components(parent=None):
-
-	if parent is None:
-		parent = wx.GetApp().GetTopWindow()
-
-	#------------------------------------------------------------
-	def edit(component=None):
-		substance = gmMedication.cConsumableSubstance(aPK_obj = component['pk_consumable_substance'])
-		return edit_consumable_substance(parent = parent, substance = substance, single_entry = True)
-	#------------------------------------------------------------
-	def delete(component):
-		if component.is_in_use_by_patients:
-			gmDispatcher.send(signal = 'statustext', msg = _('Cannot remove this component from the drug. It is in use.'), beep = True)
-			return False
-
-		return component.containing_drug.remove_component(substance = component['pk_component'])
-	#------------------------------------------------------------
-	def refresh(lctrl):
-		comps = gmMedication.get_drug_components()
-		items = [ [
-			u'%s%s' % (c['brand'], gmTools.coalesce(c['atc_brand'], u'', u' [%s]')),
-			u'%s%s' % (c['substance'], gmTools.coalesce(c['atc_substance'], u'', u' [%s]')),
-			u'%s %s' % (c['amount'], c['unit']),
-			c['preparation'],
-			gmTools.coalesce(c['external_code_brand'], u'', u'%%s [%s]' % c['external_code_type_brand']),
-			c['pk_component']
-		] for c in comps ]
-		lctrl.set_string_items(items)
-		lctrl.set_data(comps)
-	#------------------------------------------------------------
-	msg = _('\nThese are the components in the drug brands known to GNUmed.\n')
-
-	gmListWidgets.get_choices_from_list (
-		parent = parent,
-		msg = msg,
-		caption = _('Showing drug brand components.'),
-		columns = [_('Brand'), _('Substance'), _('Strength'), _('Preparation'), _('Code'), u'#'],
-		single_selection = True,
-		#new_callback = edit,
-		edit_callback = edit,
-		delete_callback = delete,
-		refresh_callback = refresh
-	)
-
-#------------------------------------------------------------
-def edit_drug_component(parent=None, drug_component=None, single_entry=False):
-	ea = cDrugComponentEAPnl(parent = parent, id = -1)
-	ea.data = drug_component
-	ea.mode = gmTools.coalesce(drug_component, 'new', 'edit')
-	dlg = gmEditArea.cGenericEditAreaDlg2(parent = parent, id = -1, edit_area = ea, single_entry = single_entry)
-	dlg.SetTitle(gmTools.coalesce(drug_component, _('Adding new drug component'), _('Editing drug component')))
-	if dlg.ShowModal() == wx.ID_OK:
-		dlg.Destroy()
-		return True
-	dlg.Destroy()
-	return False
-
-#============================================================
-from Gnumed.wxGladeWidgets import wxgDrugComponentEAPnl
-
-class cDrugComponentEAPnl(wxgDrugComponentEAPnl.wxgDrugComponentEAPnl, gmEditArea.cGenericEditAreaMixin):
-
-	def __init__(self, *args, **kwargs):
-
-		try:
-			data = kwargs['component']
-			del kwargs['component']
-		except KeyError:
-			data = None
-
-		wxgDrugComponentEAPnl.wxgDrugComponentEAPnl.__init__(self, *args, **kwargs)
-		gmEditArea.cGenericEditAreaMixin.__init__(self)
-
-		# Code using this mixin should set mode and data
-		# after instantiating the class:
-		self.mode = 'new'
-		self.data = data
-		if data is not None:
-			self.mode = 'edit'
-
-		#self.__init_ui()
-	#----------------------------------------------------------------
-#	def __init_ui(self):
-#		# adjust phrasewheels etc
-	#----------------------------------------------------------------
-	# generic Edit Area mixin API
-	#----------------------------------------------------------------
-	def _valid_for_save(self):
-		if self.data is not None:
-			if self.data['is_in_use']:
-				gmDispatcher.send(signal = 'statustext', msg = _('Cannot edit drug component. It is in use.'), beep = True)
-				return False
-
-		validity = True
-
-		if self._PRW_substance.GetData() is None:
-			validity = False
-			self._PRW_substance.display_as_valid(False)
-		else:
-			self._PRW_substance.display_as_valid(True)
-
-		val = self._TCTRL_amount.GetValue().strip().replace(',', u'.', 1)
-		try:
-			decimal.Decimal(val)
-			self.display_tctrl_as_valid(tctrl = self._TCTRL_amount, valid = True)
-		except:
-			validity = False
-			self.display_tctrl_as_valid(tctrl = self._TCTRL_amount, valid = False)
-
-		if self._PRW_unit.GetValue().strip() == u'':
-			validity = False
-			self._PRW_unit.display_as_valid(False)
-		else:
-			self._PRW_unit.display_as_valid(True)
-
-		if validity is False:
-			gmDispatcher.send(signal = 'statustext', msg = _('Cannot save drug component. Invalid or missing essential input.'))
-
-		return validity
-	#----------------------------------------------------------------
-	def _save_as_new(self):
-		# save the data as a new instance
-		data = 1
-		data[''] = 1
-		data[''] = 1
-#		data.save()
-
-		# must be done very late or else the property access
-		# will refresh the display such that later field
-		# access will return empty values
-#		self.data = data
-		return False
-		return True
-	#----------------------------------------------------------------
-	def _save_as_update(self):
-		self.data['pk_consumable_substance'] = self._PRW_substance.GetData()
-		self.data['amount'] = decimal.Decimal(self._TCTRL_amount.GetValue().strip().replace(',', u'.', 1))
-		self.data['unit'] = self._PRW_unit.GetValue().strip()
-		return self.data.save()
-	#----------------------------------------------------------------
-	def _refresh_as_new(self):
-		self._TCTRL_brand.SetValue(u'')
-		self._TCTRL_components.SetValue(u'')
-		self._TCTRL_codes.SetValue(u'')
-		self._PRW_substance.SetText(u'', None)
-		self._TCTRL_amount.SetValue(u'')
-		self._PRW_unit.SetText(u'', None)
-
-		self._PRW_substance.SetFocus()
-	#----------------------------------------------------------------
-	def _refresh_from_existing(self):
-		self._TCTRL_brand.SetValue(u'%s (%s)' % (self.data['brand'], self.data['preparation']))
-		self._TCTRL_components.SetValue(u' / '.join(self.data.containing_drug['components']))
-		details = []
-		if self.data['atc_brand'] is not None:
-			details.append(u'ATC: %s' % self.data['atc_brand'])
-		if self.data['external_code_brand'] is not None:
-			details.append(u'%s: %s' % (self.data['external_code_type_brand'], self.data['external_code_brand']))
-		self._TCTRL_codes.SetValue(u'; '.join(details))
-
-		self._PRW_substance.SetText(self.data['substance'], self.data['pk_consumable_substance'])
-		self._TCTRL_amount.SetValue(u'%s' % self.data['amount'])
-		self._PRW_unit.SetText(self.data['unit'], self.data['unit'])
-
-		self._PRW_substance.SetFocus()
-	#----------------------------------------------------------------
-	def _refresh_as_new_from_existing(self):
-		#self._PRW_brand.SetText(u'', None)
-		#self._TCTRL_prep.SetValue(u'')
-		#self._TCTRL_brand_details.SetValue(u'')
-		self._PRW_substance.SetText(u'', None)
-		self._TCTRL_amount.SetValue(u'')
-		self._PRW_unit.SetText(u'', None)
-
-		self._PRW_substance.SetFocus()
-
-#============================================================
-class cDrugComponentPhraseWheel(gmPhraseWheel.cPhraseWheel):
-
-	def __init__(self, *args, **kwargs):
-
-		mp = gmMedication.cDrugComponentMatchProvider()
-		mp.setThresholds(2, 3, 4)
-		gmPhraseWheel.cPhraseWheel.__init__(self, *args, **kwargs)
-		self.SetToolTipString(_('A drug component with optional strength.'))
-		self.matcher = mp
-		self.selection_only = False
-	#--------------------------------------------------------
-	def _data2instance(self):
-		return gmMedication.cDrugComponent(aPK_obj = self.GetData(as_instance = False, can_create = False))
-
-#============================================================
-#============================================================
-class cSubstancePreparationPhraseWheel(gmPhraseWheel.cPhraseWheel):
-
-	def __init__(self, *args, **kwargs):
-
-		query = u"""
-(
-	SELECT DISTINCT ON (list_label)
-		preparation AS data,
-		preparation AS list_label,
-		preparation AS field_label
-	FROM ref.branded_drug
-	WHERE preparation %(fragment_condition)s
-) UNION (
-	SELECT DISTINCT ON (list_label)
-		preparation AS data,
-		preparation AS list_label,
-		preparation AS field_label
-	FROM clin.substance_intake
-	WHERE preparation %(fragment_condition)s
-)
-ORDER BY list_label
-LIMIT 30"""
-
-		mp = gmMatchProvider.cMatchProvider_SQL2(queries = query)
-		mp.setThresholds(1, 2, 4)
-		gmPhraseWheel.cPhraseWheel.__init__(self, *args, **kwargs)
-		self.SetToolTipString(_('The preparation (form) of the substance or brand.'))
-		self.matcher = mp
-		self.selection_only = False
-
-#============================================================
-class cSubstancePhraseWheel(gmPhraseWheel.cPhraseWheel):
-
-	def __init__(self, *args, **kwargs):
-
-		mp = gmMedication.cSubstanceMatchProvider()
-		mp.setThresholds(1, 2, 4)
-		gmPhraseWheel.cPhraseWheel.__init__(self, *args, **kwargs)
-		self.SetToolTipString(_('The substance with optional strength.'))
-		self.matcher = mp
-		self.selection_only = False
-		self.phrase_separators = None
-
-	#--------------------------------------------------------
-	def _data2instance(self):
-		return gmMedication.cConsumableSubstance(aPK_obj = self.GetData(as_instance = False, can_create = False))
-
-#============================================================
-# branded drugs widgets
-#------------------------------------------------------------
-def manage_components_of_branded_drug(parent=None, brand=None):
-
-	if brand is not None:
-		if brand.is_in_use_by_patients:
-			gmGuiHelpers.gm_show_info (
-				aTitle = _('Managing components of a drug'),
-				aMessage = _(
-					'Cannot manage the components of the branded drug product\n'
-					'\n'
-					' "%s" (%s)\n'
-					'\n'
-					'because it is currently taken by patients.\n'
-				) % (brand['brand'], brand['preparation'])
-			)
-			return False
-	#--------------------------------------------------------
-	if parent is None:
-		parent = wx.GetApp().GetTopWindow()
-	#--------------------------------------------------------
-#	def manage_substances():
-#		pass
-	#--------------------------------------------------------
-	if brand is None:
-		msg = _('Pick the substances which are components of this drug.')
-		right_col = _('Components of drug')
-		comp_substs = []
-	else:
-		right_col = u'%s (%s)' % (brand['brand'], brand['preparation'])
-		msg = _(
-			'Adjust the components of "%s"\n'
-			'\n'
-			'The drug must contain at least one component. Any given\n'
-			'substance can only be included once per drug.'
-		) % right_col
-		comp_substs = [ c.substance for c in brand.components ]
-
-	substs = gmMedication.get_consumable_substances(order_by = 'description')
-	choices = [ u'%s %s %s' % (s['description'], s['amount'], s['unit']) for s in substs ]
-	picks = [ u'%s %s %s' % (c['description'], c['amount'], c['unit']) for c in comp_substs ]
-
-	picker = gmListWidgets.cItemPickerDlg (
-		parent,
-		-1,
-		title = _('Managing components of a drug ...'),
-		msg = msg
-	)
-	picker.set_columns(['Substances'], [right_col])
-	picker.set_choices(choices = choices, data = substs)
-	picker.set_picks(picks = picks, data = comp_substs)
-#	picker.extra_button = (
-#		_('Substances'),
-#		_('Manage list of consumable substances'),
-#		manage_substances
-#	)
-
-	btn_pressed = picker.ShowModal()
-	substs = picker.get_picks()
-	picker.Destroy()
-
-	if btn_pressed != wx.ID_OK:
-		return (False, None)
-
-	if brand is not None:
-		brand.set_substances_as_components(substances = substs)
-
-	return (True, substs)
-#------------------------------------------------------------
-def manage_branded_drugs(parent=None, ignore_OK_button=False):
-
-	if parent is None:
-		parent = wx.GetApp().GetTopWindow()
-	#------------------------------------------------------------
-	def add_from_db(brand):
-		drug_db = get_drug_database(parent = parent)
-		if drug_db is None:
-			return False
-		drug_db.import_drugs()
-		return True
-	#------------------------------------------------------------
-	def get_tooltip(brand=None):
-		tt = u'%s %s\n' % (brand['brand'], brand['preparation'])
-		tt += u'\n'
-		tt += u'%s%s%s\n' % (
-			gmTools.bool2subst(brand.is_vaccine, u'%s, ' % _('Vaccine'), u''),
-			u'%s, ' % gmTools.bool2subst(brand.is_in_use_by_patients, _('in use'), _('not in use')),
-			gmTools.bool2subst(brand['is_fake_brand'], _('fake'), u'')
-		)
-		tt += gmTools.coalesce(brand['atc'], u'', _('ATC: %s\n'))
-		tt += gmTools.coalesce(brand['external_code'], u'', u'%s: %%s\n' % brand['external_code_type'])
-		if brand['components'] is not None:
-			tt += u'- %s' % u'\n- '.join(brand['components'])
-		return tt
-	#------------------------------------------------------------
-	def edit(brand):
-		if brand is not None:
-			if brand.is_vaccine:
-				gmGuiHelpers.gm_show_info (
-					aTitle = _('Editing medication'),
-					aMessage = _(
-						'Cannot edit the medication\n'
-						'\n'
-						' "%s" (%s)\n'
-						'\n'
-						'because it is a vaccine. Please edit it\n'
-						'from the vaccine management section !\n'
-					) % (brand['brand'], brand['preparation'])
-				)
-				return False
-
-		return edit_branded_drug(parent = parent, branded_drug = brand, single_entry = True)
-	#------------------------------------------------------------
-	def delete(brand):
-		if brand.is_vaccine:
-			gmGuiHelpers.gm_show_info (
-				aTitle = _('Deleting medication'),
-				aMessage = _(
-					'Cannot delete the medication\n'
-					'\n'
-					' "%s" (%s)\n'
-					'\n'
-					'because it is a vaccine. Please delete it\n'
-					'from the vaccine management section !\n'
-				) % (brand['brand'], brand['preparation'])
-			)
-			return False
-		gmMedication.delete_branded_drug(brand = brand['pk_brand'])
-		return True
-	#------------------------------------------------------------
-	def new():
-		return edit_branded_drug(parent = parent, branded_drug = None, single_entry = False)
-	#------------------------------------------------------------
-	def refresh(lctrl):
-		drugs = gmMedication.get_branded_drugs()
-		items = [ [
-			u'%s%s' % (
-				d['brand'],
-				gmTools.bool2subst(d['is_fake_brand'], ' (%s)' % _('fake'), u'')
-			),
-			d['preparation'],
-			gmTools.coalesce(d['atc'], u''),
-			gmTools.coalesce(d['components'], u''),
-			gmTools.coalesce(d['external_code'], u'', u'%%s [%s]' % d['external_code_type']),
-			d['pk_brand']
-		] for d in drugs ]
-		lctrl.set_string_items(items)
-		lctrl.set_data(drugs)
-	#------------------------------------------------------------
-	msg = _('\nThese are the drug brands known to GNUmed.\n')
-
-	gmListWidgets.get_choices_from_list (
-		parent = parent,
-		msg = msg,
-		caption = _('Showing branded drugs.'),
-		columns = [_('Name'), _('Preparation'), _('ATC'), _('Components'), _('Code'), u'#'],
-		single_selection = True,
-		ignore_OK_button = ignore_OK_button,
-		refresh_callback = refresh,
-		new_callback = new,
-		edit_callback = edit,
-		delete_callback = delete,
-		list_tooltip_callback = get_tooltip,
-		left_extra_button = (_('Import'), _('Import substances and brands from a drug database.'), add_from_db)
-		#, middle_extra_button = (_('Clone'), _('Clone selected drug into a new entry for editing.'), clone_from_existing)
-		#, right_extra_button = (_('Reassign'), _('Reassign all patients taking the selected drug to another drug.'), reassign_patients)
-	)
-
-#------------------------------------------------------------
-def edit_branded_drug(parent=None, branded_drug=None, single_entry=False):
-
-	if branded_drug is not None:
-		if branded_drug.is_in_use_by_patients:
-			gmGuiHelpers.gm_show_info (
-				aTitle = _('Editing drug'),
-				aMessage = _(
-					'Cannot edit the branded drug product\n'
-					'\n'
-					' "%s" (%s)\n'
-					'\n'
-					'because it is currently taken by patients.\n'
-				) % (branded_drug['brand'], branded_drug['preparation'])
-			)
-			return False
-
-	if parent is None:
-		parent = wx.GetApp().GetTopWindow()
-	#--------------------------------------------
-	def manage_substances(drug):
-		manage_consumable_substances(parent = parent)
-	#--------------------------------------------
-	ea = cBrandedDrugEAPnl(parent = parent, id = -1)
-	ea.data = branded_drug
-	ea.mode = gmTools.coalesce(branded_drug, 'new', 'edit')
-	dlg = gmEditArea.cGenericEditAreaDlg2(parent = parent, id = -1, edit_area = ea, single_entry = single_entry)
-	dlg.SetTitle(gmTools.coalesce(branded_drug, _('Adding new drug brand'), _('Editing drug brand')))
-	dlg.left_extra_button = (
-		_('Substances'),
-		_('Manage consumable substances'),
-		manage_substances
-	)
-	if dlg.ShowModal() == wx.ID_OK:
-		dlg.Destroy()
-		return True
-	dlg.Destroy()
-	return False
-
-#============================================================
-from Gnumed.wxGladeWidgets import wxgBrandedDrugEAPnl
-
-class cBrandedDrugEAPnl(wxgBrandedDrugEAPnl.wxgBrandedDrugEAPnl, gmEditArea.cGenericEditAreaMixin):
+class cSubstancePreparationPhraseWheel(gmPhraseWheel.cPhraseWheel):
 
 	def __init__(self, *args, **kwargs):
 
-		try:
-			data = kwargs['drug']
-			del kwargs['drug']
-		except KeyError:
-			data = None
-
-		wxgBrandedDrugEAPnl.wxgBrandedDrugEAPnl.__init__(self, *args, **kwargs)
-		gmEditArea.cGenericEditAreaMixin.__init__(self)
-
-		self.mode = 'new'
-		self.data = data
-		if data is not None:
-			self.mode = 'edit'
-			self.__component_substances = data.components_as_substances
-
-		#self.__init_ui()
-	#----------------------------------------------------------------
-#	def __init_ui(self):
-		# adjust external type PRW
-	#----------------------------------------------------------------
-	# generic Edit Area mixin API
-	#----------------------------------------------------------------
-	def _valid_for_save(self):
-
-		if self.data is not None:
-			if self.data.is_in_use_by_patients:
-				gmDispatcher.send(signal = 'statustext', msg = _('Cannot edit drug brand. It is in use.'), beep = True)
-				return False
-
-		validity = True
-
-		brand_name = self._PRW_brand.GetValue().strip()
-		if brand_name == u'':
-			validity = False
-			self._PRW_brand.display_as_valid(False)
-		else:
-			self._PRW_brand.display_as_valid(True)
-
-		preparation = self._PRW_preparation.GetValue().strip()
-		if preparation == u'':
-			validity = False
-			self._PRW_preparation.display_as_valid(False)
-		else:
-			self._PRW_preparation.display_as_valid(True)
-
-		if validity is True:
-			# dupe ?
-			drug = gmMedication.get_drug_by_brand(brand_name = brand_name, preparation = preparation)
-			if drug is not None:
-				validity = False
-				self._PRW_brand.display_as_valid(False)
-				self._PRW_preparation.display_as_valid(False)
-				gmGuiHelpers.gm_show_error (
-					title = _('Checking brand data'),
-					error = _(
-						'The brand information you entered:\n'
-						'\n'
-						' [%s %s]\n'
-						'\n'
-						'already exists as a drug product.'
-					) % (brand_name, preparation)
-				)
-
-			else:
-				# lacking components ?
-				self._TCTRL_components.SetBackgroundColour(wx.SystemSettings_GetColour(wx.SYS_COLOUR_BACKGROUND))
-				if len(self.__component_substances) == 0:
-					wants_empty = gmGuiHelpers.gm_show_question (
-						title = _('Checking brand data'),
-						question = _(
-							'You have not selected any substances\n'
-							'as drug components.\n'
-							'\n'
-							'Without components you will not be able to\n'
-							'use this drug for documenting patient care.\n'
-							'\n'
-							'Are you sure you want to save\n'
-							'it without components ?'
-						)
-					)
-					if not wants_empty:
-						validity = False
-						self.display_ctrl_as_valid(ctrl = self._TCTRL_components, valid = False)
-
-		if validity is False:
-			gmDispatcher.send(signal = 'statustext', msg = _('Cannot save branded drug. Invalid or missing essential input.'))
-
-		return validity
-	#----------------------------------------------------------------
-	def _save_as_new(self):
-
-		drug = gmMedication.create_branded_drug (
-			brand_name = self._PRW_brand.GetValue().strip(),
-			preparation = gmTools.coalesce (
-				self._PRW_preparation.GetData(),
-				self._PRW_preparation.GetValue()
-			).strip(),
-			return_existing = True
-		)
-		drug['is_fake_brand'] = self._CHBOX_is_fake.GetValue()
-		drug['atc'] = self._PRW_atc.GetData()
-		code = self._TCTRL_external_code.GetValue().strip()
-		if code != u'':
-			drug['external_code'] = code
-			drug['external_code_type'] = self._PRW_external_code_type.GetData().strip()
-
-		drug.save()
-
-		if len(self.__component_substances) > 0:
-			drug.set_substances_as_components(substances = self.__component_substances)
-
-		self.data = drug
-
-		return True
-	#----------------------------------------------------------------
-	def _save_as_update(self):
-		self.data['brand'] = self._PRW_brand.GetValue().strip()
-		self.data['preparation'] = gmTools.coalesce (
-			self._PRW_preparation.GetData(),
-			self._PRW_preparation.GetValue()
-		).strip()
-		self.data['is_fake_brand'] = self._CHBOX_is_fake.GetValue()
-		self.data['atc'] = self._PRW_atc.GetData()
-		code = self._TCTRL_external_code.GetValue().strip()
-		if code != u'':
-			self.data['external_code'] = code
-			self.data['external_code_type'] = self._PRW_external_code_type.GetData().strip()
-		success, data = self.data.save()
-		if not success:
-			err, msg = data
-			_log.error('problem saving')
-			_log.error('%s', err)
-			_log.error('%s', msg)
-		return (success is True)
-	#----------------------------------------------------------------
-	def _refresh_as_new(self):
-		self._PRW_brand.SetText(u'', None)
-		self._PRW_preparation.SetText(u'', None)
-		self._CHBOX_is_fake.SetValue(False)
-		self._TCTRL_components.SetValue(u'')
-		self._PRW_atc.SetText(u'', None)
-		self._TCTRL_external_code.SetValue(u'')
-		self._PRW_external_code_type.SetText(u'', None)
+		query = u"""
+(
+	SELECT DISTINCT ON (list_label)
+		preparation AS data,
+		preparation AS list_label,
+		preparation AS field_label
+	FROM ref.branded_drug
+	WHERE preparation %(fragment_condition)s
+) UNION (
+	SELECT DISTINCT ON (list_label)
+		preparation AS data,
+		preparation AS list_label,
+		preparation AS field_label
+	FROM clin.substance_intake
+	WHERE preparation %(fragment_condition)s
+)
+ORDER BY list_label
+LIMIT 30"""
 
-		self._PRW_brand.SetFocus()
+		mp = gmMatchProvider.cMatchProvider_SQL2(queries = query)
+		mp.setThresholds(1, 2, 4)
+		gmPhraseWheel.cPhraseWheel.__init__(self, *args, **kwargs)
+		self.SetToolTipString(_('The preparation (form) of the substance or brand.'))
+		self.matcher = mp
+		self.selection_only = False
 
-		self.__component_substances = []
-	#----------------------------------------------------------------
-	def _refresh_as_new_from_existing(self):
-		self._refresh_as_new()
-	#----------------------------------------------------------------
-	def _refresh_from_existing(self):
-		self._PRW_brand.SetText(self.data['brand'], self.data['pk_brand'])
-		self._PRW_preparation.SetText(self.data['preparation'], self.data['preparation'])
-		self._CHBOX_is_fake.SetValue(self.data['is_fake_brand'])
-		comps = u''
-		if self.data['components'] is not None:
-			comps = u'- %s' % u'\n- '.join(self.data['components'])
-		self._TCTRL_components.SetValue(comps)
-		self._PRW_atc.SetText(gmTools.coalesce(self.data['atc'], u''), self.data['atc'])
-		self._TCTRL_external_code.SetValue(gmTools.coalesce(self.data['external_code'], u''))
-		t = gmTools.coalesce(self.data['external_code_type'], u'')
-		self._PRW_external_code_type.SetText(t, t)
-
-		self._PRW_brand.SetFocus()
-
-		self.__component_substances = self.data.components_as_substances
-	#----------------------------------------------------------------
-	# event handler
-	#----------------------------------------------------------------
-	def _on_manage_components_button_pressed(self, event):
-		event.Skip()
-		if self.mode == 'new_from_existing':
-			brand = None
-		else:
-			brand = self.data
-		OKed, substs = manage_components_of_branded_drug(parent = self, brand = brand)
-		if OKed is True:
-			self.__component_substances = substs
-			comps = u''
-			if len(substs) > 0:
-				comps = u'- %s' % u'\n- '.join([ u'%s %s %s' % (s['description'], s['amount'], s['unit']) for s in substs ])
-			self._TCTRL_components.SetValue(comps)
 #============================================================
-class cBrandedDrugPhraseWheel(gmPhraseWheel.cPhraseWheel):
+# current substance intake widgets
+#------------------------------------------------------------
+class cBrandOrSubstancePhraseWheel(gmPhraseWheel.cPhraseWheel):
 
 	def __init__(self, *args, **kwargs):
 
-		query = u"""
-			SELECT
-				pk
-					AS data,
-				(description || ' (' || preparation || ')' || coalesce(' [' || atc_code || ']', ''))
-					AS list_label,
-				(description || ' (' || preparation || ')' || coalesce(' [' || atc_code || ']', ''))
-					AS field_label
-			FROM ref.branded_drug
-			WHERE description %(fragment_condition)s
-			ORDER BY list_label
-			LIMIT 50"""
-
-		mp = gmMatchProvider.cMatchProvider_SQL2(queries = query)
-		mp.setThresholds(2, 3, 4)
+		mp = gmMedication.cBrandOrSubstanceMatchProvider()
+		mp.setThresholds(1, 2, 4)
 		gmPhraseWheel.cPhraseWheel.__init__(self, *args, **kwargs)
-		self.SetToolTipString(_(
-			'The brand name of the drug.\n'
-			'\n'
-			'Note: a brand name will need to be linked to\n'
-			'one or more components before it can be used,\n'
-			'except in the case of fake (generic) vaccines.'
-		))
+		self.SetToolTipString(_('A substance with optional strength or a brand.'))
 		self.matcher = mp
 		self.selection_only = False
+		self.phrase_separators = None
+		self.IS_BRAND = 1
+		self.IS_SUBSTANCE = 2
+		self.IS_COMPONENT = 3
+
+	#--------------------------------------------------------
+	def _data2instance(self):
+		entry_type, pk = self.GetData(as_instance = False, can_create = False)
+		if entry_type == 1:
+			return gmMedication.cBrandedDrug(aPK_obj = pk)
+		if entry_type == 2:
+			return gmMedication.cConsumableSubstance(aPK_obj = pk)
+		if entry_type == 3:
+			return gmMedication.cDrugComponent(aPK_obj = pk)
+		raise ValueError('entry type must be 1=brand or 2=substance or 3=component')
 
 #============================================================
-# current substance intake widgets
-#------------------------------------------------------------
 class cSubstanceSchedulePhraseWheel(gmPhraseWheel.cPhraseWheel):
 
 	def __init__(self, *args, **kwargs):
 
 		query = u"""
-SELECT DISTINCT ON (sched)
-	schedule as sched,
-	schedule
-FROM clin.substance_intake
-WHERE schedule %(fragment_condition)s
-ORDER BY sched
-LIMIT 50"""
+			SELECT DISTINCT ON (sched)
+				schedule as sched,
+				schedule
+			FROM clin.substance_intake
+			WHERE schedule %(fragment_condition)s
+			ORDER BY sched
+			LIMIT 50"""
 
 		mp = gmMatchProvider.cMatchProvider_SQL2(queries = query)
 		mp.setThresholds(1, 2, 4)
@@ -1324,14 +242,14 @@ def manage_substance_intakes(parent=None, emr=None):
 		emr = gmPerson.gmCurrentPatient().emr
 #	#------------------------------------------------------------
 #	def add_from_db(substance):
-#		drug_db = get_drug_database(parent = parent)
+#		drug_db = get_drug_database(parent = parent, patient = gmPerson.gmCurrentPatient())
 #		if drug_db is None:
 #			return False
 #		drug_db.import_drugs()
 #		return True
 #	#------------------------------------------------------------
 #	def edit(substance=None):
-#		return edit_consumable_substance(parent = parent, substance = substance, single_entry = (substance is not None))
+#		return gmSubstanceMgmtWidgets.edit_consumable_substance(parent = parent, substance = substance, single_entry = (substance is not None))
 #	#------------------------------------------------------------
 #	def delete(substance):
 #		if substance.is_in_use_by_patients:
@@ -1341,10 +259,10 @@ def manage_substance_intakes(parent=None, emr=None):
 #		return gmMedication.delete_consumable_substance(substance = substance['pk'])
 	#------------------------------------------------------------
 	def get_tooltip(intake=None):
-		return intake.format(one_line = False, show_all_brand_components = True)
+		return intake.format(single_line = False, show_all_brand_components = True)
 	#------------------------------------------------------------
 	def refresh(lctrl):
-		intakes = emr.get_current_substance_intakes (
+		intakes = emr.get_current_medications (
 			include_inactive = False,
 			include_unapproved = True,
 			order_by = u'substance, brand, started'
@@ -1363,7 +281,7 @@ def manage_substance_intakes(parent=None, emr=None):
 				),
 				u'%s%s%s' % (
 					started,
-					gmTools.coalesce(i['schedule'], u'', u' %%s %s' % gmTools.u_right_arrow),
+					gmTools.coalesce(i['schedule'], u'', u' %%s %s' % gmTools.u_arrow2right),
 					gmTools.coalesce(i['duration'], u'', u' %s')
 				),
 				u'%s' % (
@@ -1420,20 +338,21 @@ class cSubstanceIntakeEAPnl(wxgCurrentMedicationEAPnl.wxgCurrentMedicationEAPnl,
 	#----------------------------------------------------------------
 	def __init_ui(self):
 
-		self._PRW_component.add_callback_on_lose_focus(callback = self._on_leave_component)
-		self._PRW_component.selection_only = True
-
-		self._PRW_substance.add_callback_on_lose_focus(callback = self._on_leave_substance)
-		self._PRW_substance.selection_only = True
+		self._PRW_drug.add_callback_on_lose_focus(callback = self._on_leave_drug)
+		self._PRW_drug.selection_only = True
 
 		self._PRW_duration.display_accuracy = gmDateTime.acc_days
 
+		# this we want to adjust later
 		self._PRW_aim.add_callback_on_set_focus(callback = self._on_enter_aim)
+
 	#----------------------------------------------------------------
-	def __refresh_allergies(self):
+	def __refresh_precautions(self):
+
 		curr_pat = gmPerson.gmCurrentPatient()
 		emr = curr_pat.emr
 
+		# allergies
 		state = emr.allergy_state
 		if state['last_confirmed'] is None:
 			confirmed = _('never')
@@ -1441,9 +360,7 @@ class cSubstanceIntakeEAPnl(wxgCurrentMedicationEAPnl.wxgCurrentMedicationEAPnl,
 			confirmed = gmDateTime.pydt_strftime(state['last_confirmed'], '%Y %b %d')
 		msg = _(u'%s, last confirmed %s\n') % (state.state_string, confirmed)
 		msg += gmTools.coalesce(state['comment'], u'', _('Comment (%s): %%s\n') % state['modified_by'])
-
-		tt = u''
-
+		tooltip = u''
 		allgs = emr.get_allergies()
 		if len(allgs) > 0:
 			msg += u'\n'
@@ -1453,15 +370,30 @@ class cSubstanceIntakeEAPnl(wxgCurrentMedicationEAPnl.wxgCurrentMedicationEAPnl,
 				allergy['l10n_type'],
 				gmTools.bool2subst(allergy['definite'], _('definite'), _('suspected'), u'?')
 			)
-			tt += u'%s: %s\n' % (
+			tooltip += u'%s: %s\n' % (
 				allergy['descriptor'],
 				gmTools.coalesce(allergy['reaction'], _('reaction not recorded'))
 			)
-
 		if len(allgs) > 0:
 			msg += u'\n'
-			tt += u'\n'
+			tooltip += u'\n'
+		del allgs
+
+		# history of substance abuse
+		abuses = emr.abused_substances
+		for abuse in abuses:
+			tooltip += abuse.format(single_line = False, include_metadata = False)
+			tooltip += u'\n'
+			if abuse['harmful_use_type'] in [None, 0]:
+				continue
+			msg += abuse.format(single_line = True)
+			msg += u'\n'
+		if len(abuses) > 0:
+			msg += u'\n'
+			tooltip += u'\n'
+		del abuses
 
+		# kidney function
 		gfr = emr.get_most_recent_results(loinc = gmLOINC.LOINC_gfr_quantity, no_of_results = 1)
 		if gfr is None:
 			self.calc.patient = curr_pat
@@ -1485,7 +417,7 @@ class cSubstanceIntakeEAPnl(wxgCurrentMedicationEAPnl.wxgCurrentMedicationEAPnl,
 						with_sub_results = False,
 						return_list = False
 					))
-				tt += u'\n'.join(tts)
+				tooltip += u'\n'.join(tts)
 		else:
 			msg += u'%s: %s %s (%s)\n' % (
 				gfr['unified_abbrev'],
@@ -1496,14 +428,15 @@ class cSubstanceIntakeEAPnl(wxgCurrentMedicationEAPnl.wxgCurrentMedicationEAPnl,
 					format = '%Y %b %d'
 				)
 			)
-			tt += _('GFR reported by path lab')
+			tooltip += _('GFR reported by path lab')
 
+		# pregnancy
 		edc = emr.EDC
 		if edc is not None:
 			msg += u'\n\n'
 			if emr.EDC_is_fishy:
 				msg += _(u'EDC (!?!): %s') % gmDateTime.pydt_strftime(edc, format = '%Y %b %d')
-				tt += _(
+				tooltip += _(
 					u'The Expected Date of Confinement is rather questionable.\n'
 					u'\n'
 					u'Please check patient age, patient gender, time until/since EDC.'
@@ -1512,21 +445,67 @@ class cSubstanceIntakeEAPnl(wxgCurrentMedicationEAPnl.wxgCurrentMedicationEAPnl,
 				msg += _(u'EDC: %s') % gmDateTime.pydt_strftime(edc, format = '%Y %b %d')
 
 		self._LBL_allergies.SetLabel(msg)
-		self._LBL_allergies.SetToolTipString(tt)
+		self._LBL_allergies.SetToolTipString(tooltip)
+
+	#----------------------------------------------------------------
+	def __refresh_drug_details(self):
+
+		drug = self._PRW_drug.GetData(as_instance = True)
+		if drug is None:
+			self._TCTRL_drug_details.SetValue(u'')
+			self._TCTRL_drug_details.SetToolTipString(u'')
+			return
+
+		entry_type, pk = self._PRW_drug.GetData(as_instance = False)
+
+		if entry_type == self._PRW_drug.IS_SUBSTANCE:
+			self._TCTRL_drug_details.SetValue (u'%s %s%s%s' % (
+				drug['description'],
+				drug['amount'],
+				drug['unit'],
+				gmTools.coalesce(drug['atc_code'], u'', u' [%s]')
+			))
+			self._TCTRL_drug_details.SetToolTipString(u'')
+			return
+
+		if entry_type == self._PRW_drug.IS_COMPONENT:
+			component = drug
+			drug = component.containing_drug
+			self._TCTRL_drug_details.SetValue(u'%s: %s' % (drug['brand'], u'; '.join(drug['components'])))
+			self._TCTRL_drug_details.SetToolTipString(component.format())
+			return
+
+		if entry_type == self._PRW_drug.IS_BRAND:
+			if drug['components'] is not None:
+				comps = u'; '.join(drug['components'])
+			else:
+				comps = _(u'<no components>')
+			self._TCTRL_drug_details.SetValue(u'%s: %s' % (drug['brand'], comps))
+			self._TCTRL_drug_details.SetToolTipString(drug.format())
+			return
+
 	#----------------------------------------------------------------
 	# generic Edit Area mixin API
 	#----------------------------------------------------------------
-	def _valid_for_save(self):
+	def _check_drug_is_valid(self):
 
-		validity = True
+		self._PRW_drug.display_as_valid(True)
 
-		has_component = (self._PRW_component.GetData() is not None)
-		has_substance = (self._PRW_substance.GetValue().strip() != u'')
+		# we aren't editing
+		if self.mode != 'new':
+			return True
 
-		self._PRW_component.display_as_valid(True)
+		selected_drug = self._PRW_drug.GetData(as_instance = True)
 
-		# cannot add duplicate components
-		if self.mode == 'new':
+		# no drug selected
+		if selected_drug is None:
+			self._PRW_drug.display_as_valid(False)
+			self._PRW_drug.SetFocus()
+			return False
+
+		# drug already exists as intake
+		if selected_drug.exists_as_intake(pk_patient = gmPerson.gmCurrentPatient().ID):
+			title = _('Adding substance intake entry')
 			msg = _(
 				'The patient is already taking\n'
 				'\n'
@@ -1534,43 +513,26 @@ class cSubstanceIntakeEAPnl(wxgCurrentMedicationEAPnl.wxgCurrentMedicationEAPnl,
 				'\n'
 				'You will want to adjust the schedule\n'
 				'rather than document the intake twice.'
-			)
-			title = _('Adding substance intake entry')
-			if has_component:
-				emr = gmPerson.gmCurrentPatient().get_emr()
-				if emr.substance_intake_exists(pk_component = self._PRW_component.GetData()):
-					gmGuiHelpers.gm_show_warning (
-						aTitle = title,
-						aMessage = msg % self._PRW_component.GetValue().strip()
-					)
-					self._PRW_component.display_as_valid(False)
-					validity = False
-			pk_substance = self._PRW_substance.GetData()
-			if pk_substance is not None:
-				emr = gmPerson.gmCurrentPatient().get_emr()
-				if emr.substance_intake_exists(pk_substance = pk_substance):
-					gmGuiHelpers.gm_show_warning (
-						aTitle = title,
-						aMessage = msg % self._PRW_substance.GetValue().strip()
-					)
-					self._PRW_substance.display_as_valid(False)
-					validity = False
+			) % self._PRW_drug.GetValue().strip()
+			gmGuiHelpers.gm_show_warning(aTitle = title, aMessage = msg)
+			self._PRW_drug.display_as_valid(False)
+			return False
 
-		# must have either brand or substance
-		if (has_component is False) and (has_substance is False):
-			self._PRW_substance.display_as_valid(False)
-			self._PRW_component.display_as_valid(False)
-			validity = False
-		else:
-			self._PRW_substance.display_as_valid(True)
+		entry_type, pk = self._PRW_drug.GetData(as_instance = False)
+		if entry_type in [self._PRW_drug.IS_COMPONENT, self._PRW_drug.IS_BRAND]:
+			self._PRW_preparation.display_as_valid(True)
+			return True
 
-		# brands already have a preparation, so only required for substances
-		if not has_component:
-			if self._PRW_preparation.GetValue().strip() == u'':
-				self._PRW_preparation.display_as_valid(False)
-				validity = False
-			else:
-				self._PRW_preparation.display_as_valid(True)
+		if self._PRW_preparation.GetValue().strip() == u'':
+			self._PRW_preparation.display_as_valid(False)
+			return False
+
+		return True
+
+	#----------------------------------------------------------------
+	def _valid_for_save(self):
+
+		validity = self._check_drug_is_valid()
 
 		# episode must be set if intake is to be approved of
 		if self._CHBOX_approved.IsChecked():
@@ -1595,13 +557,15 @@ class cSubstanceIntakeEAPnl(wxgCurrentMedicationEAPnl.wxgCurrentMedicationEAPnl,
 			else:
 				self._PRW_duration.display_as_valid(True)
 
-		# started must exist
-		started = self._DP_started.GetData()
-		if started is None:
-			self._DP_started.display_as_valid(False)
-			validity = False
-		else:
-			self._DP_started.display_as_valid(True)
+		# started must exist or be unknown
+		if self._CHBOX_start_unknown.IsChecked() is False:
+			started = self._DP_started.GetData()
+			if started is None:
+				self._DP_started.display_as_valid(False)
+				self._DP_started.SetFocus()
+				validity = False
+			else:
+				self._DP_started.display_as_valid(True)
 
 		if validity is False:
 			gmDispatcher.send(signal = 'statustext', msg = _('Input incomplete/invalid for saving as substance intake.'))
@@ -1646,25 +610,22 @@ class cSubstanceIntakeEAPnl(wxgCurrentMedicationEAPnl.wxgCurrentMedicationEAPnl,
 			# create new episode, Jim wants it to auto-open
 			epi = self._PRW_episode.GetData(can_create = True, is_open = True)
 
-		emr = gmPerson.gmCurrentPatient().get_emr()
-		if self._PRW_substance.GetData() is None:
-			# auto-creates all components as intakes
-			intake = emr.add_substance_intake (
-				pk_component = self._PRW_component.GetData(),
-				episode = epi
-			)
-		else:
-			intake = emr.add_substance_intake (
-				pk_substance = self._PRW_substance.GetData(),
-				episode = epi,
-				preparation = self._PRW_preparation.GetValue().strip()
-			)
+		selected_drug = self._PRW_drug.GetData(as_instance = True)
+		intake = selected_drug.turn_into_intake (
+			encounter = gmPerson.gmCurrentPatient().emr.current_encounter['pk_encounter'],
+			episode = epi,
+			preparation = self._PRW_preparation.GetValue().strip()
+		)
 
 		if intake is None:
 			gmDispatcher.send('statustext', msg = _('Cannot add duplicate of (maybe inactive) substance intake.'), beep = True)
 			return False
 
 		intake['started'] = self._DP_started.GetData()
+		if self._CHBOX_start_unknown.IsChecked():
+			intake['comment_on_start'] = u'?'
+		else:
+			intake['comment_on_start'] = self._PRW_start_certainty.GetValue().strip()
 		intake['discontinued'] = self._DP_discontinued.GetData()
 		if intake['discontinued'] is None:
 			intake['discontinue_reason'] = None
@@ -1692,6 +653,10 @@ class cSubstanceIntakeEAPnl(wxgCurrentMedicationEAPnl.wxgCurrentMedicationEAPnl,
 
 		# auto-applies to all components of a multi-component drug if any:
 		self.data['started'] = self._DP_started.GetData()
+		if self._CHBOX_start_unknown.IsChecked():
+			self.data['comment_on_start'] = u'?'
+		else:
+			self.data['comment_on_start'] = self._PRW_start_certainty.GetValue().strip()
 		self.data['discontinued'] = self._DP_discontinued.GetData()
 		if self.data['discontinued'] is None:
 			self.data['discontinue_reason'] = None
@@ -1725,16 +690,7 @@ class cSubstanceIntakeEAPnl(wxgCurrentMedicationEAPnl.wxgCurrentMedicationEAPnl,
 		return True
 	#----------------------------------------------------------------
 	def _refresh_as_new(self):
-		self._PRW_component.SetText(u'', None)
-		self._LBL_component.Enable(True)
-		self._PRW_component.Enable(True)
-		self._TCTRL_brand_ingredients.SetValue(u'')
-		self._TCTRL_brand_ingredients.SetToolTipString(u'')
-
-		self._LBL_or.Enable(True)
-
-		self._PRW_substance.SetText(u'', None)
-		self._PRW_substance.Enable(True)
+		self._PRW_drug.SetText(u'', None)
 
 		self._PRW_preparation.SetText(u'', None)
 		self._PRW_preparation.Enable(True)
@@ -1748,29 +704,35 @@ class cSubstanceIntakeEAPnl(wxgCurrentMedicationEAPnl.wxgCurrentMedicationEAPnl,
 		self._CHBOX_long_term.SetValue(False)
 		self._CHBOX_approved.SetValue(True)
 
+		self._CHBOX_start_unknown.SetValue(False)
 		self._DP_started.SetData(gmDateTime.pydt_now_here())
+		self._DP_started.Enable(True)
+		self._PRW_start_certainty.SetText(u'', None)
+		self._PRW_start_certainty.Enable(True)
 		self._DP_discontinued.SetData(None)
 		self._PRW_discontinue_reason.SetValue(u'')
 
-		self.__refresh_allergies()
+		self.__refresh_drug_details()
+		self.__refresh_precautions()
 
-		self._PRW_component.SetFocus()
+		self._PRW_drug.SetFocus()
 	#----------------------------------------------------------------
 	def _refresh_from_existing(self):
 
-		self._TCTRL_brand_ingredients.SetValue(u'')
-		self._TCTRL_brand_ingredients.SetToolTipString(u'')
-
 		if self.data['pk_brand'] is None:
-			self.__refresh_from_existing_substance()
+			self._PRW_drug.SetText (
+				u'%s %s %s' % (self.data['substance'], self.data['amount'], self.data['unit']),
+				[self._PRW_drug.IS_SUBSTANCE, self.data['pk_substance']]
+			)
 		else:
-			self.__refresh_from_existing_component()
+			self._PRW_drug.SetText (
+				u'%s %s %s' % (self.data['substance'], self.data['amount'], self.data['unit']),
+				[self._PRW_drug.IS_COMPONENT, self.data['pk_drug_component']]
+			)
 
-		# no editing of substance or component
-		self._LBL_component.Enable(False)
-		self._PRW_component.Enable(False)
-		self._LBL_or.Enable(False)
-		self._PRW_substance.Enable(False)
+		self._PRW_drug.Disable()
+		self._PRW_preparation.SetText(self.data['preparation'], self.data['preparation'])
+		self._PRW_preparation.Disable()
 
 		if self.data['is_long_term']:
 	 		self._CHBOX_long_term.SetValue(True)
@@ -1794,62 +756,26 @@ class cSubstanceIntakeEAPnl(wxgCurrentMedicationEAPnl.wxgCurrentMedicationEAPnl,
 		self._CHBOX_approved.SetValue(self.data['intake_is_approved_of'])
 
 		self._DP_started.SetData(self.data['started'])
+		self._PRW_start_certainty.SetText(self.data['comment_on_start'], None)
+		if self.data['start_is_unknown']:
+			self._CHBOX_start_unknown.SetValue(True)
+			self._DP_started.Enable(False)
+			self._PRW_start_certainty.Enable(False)
+		else:
+			self._CHBOX_start_unknown.SetValue(False)
+			self._DP_started.Enable(True)
+			self._PRW_start_certainty.Enable(True)
+
 		self._DP_discontinued.SetData(self.data['discontinued'])
 		self._PRW_discontinue_reason.SetValue(gmTools.coalesce(self.data['discontinue_reason'], u''))
 		if self.data['discontinued'] is not None:
 			self._PRW_discontinue_reason.Enable()
 
-		self.__refresh_allergies()
+		self.__refresh_drug_details()
+		self.__refresh_precautions()
 
 		self._PRW_schedule.SetFocus()
-	#----------------------------------------------------------------
-	def __refresh_from_existing_substance(self):
-		self._LBL_component.Enable(False)
-		self._PRW_component.Enable(False)
-		self._PRW_component.SetText(u'', None)
-		self._PRW_component.display_as_valid(True)
-
-		self._LBL_or.Enable(False)
-
-		# disable for 1.3 since we aren't saving
-		# the change which in combination spells
-		# doom for patient safety
-		#self._PRW_substance.Enable(True)
-		self._PRW_substance.Enable(False)
-		self._PRW_substance.SetText (
-			u'%s %s %s' % (self.data['substance'], self.data['amount'], self.data['unit']),
-			self.data['pk_substance']
-		)
-
-		self._PRW_preparation.SetText(self.data['preparation'], self.data['preparation'])
-		# see above
-		self._PRW_preparation.Enable(True)
-		self._PRW_preparation.Enable(False)
-	#----------------------------------------------------------------
-	def __refresh_from_existing_component(self):
-		self._LBL_component.Enable(True)
-		self._PRW_component.Enable(True)
-		self._PRW_component.SetText (
-			u'%s %s %s (%s)' % (self.data['substance'], self.data['amount'], self.data['unit'], self.data['brand']),
-			self.data['pk_drug_component']
-		)
-
-		brand = gmMedication.cBrandedDrug(aPK_obj = self.data['pk_brand'])
-		if brand['components'] is not None:
-			self._TCTRL_brand_ingredients.SetValue(u'; '.join(brand['components']))
-			tt = u'%s:\n\n- %s' % (
-				self.data['brand'],
-				u'\n- '.join(brand['components'])
-			)
-			self._TCTRL_brand_ingredients.SetToolTipString(tt)
 
-		self._LBL_or.Enable(False)
-		self._LBL_substance.Enable(False)
-		self._PRW_substance.SetText(u'', None)
-		self._PRW_substance.display_as_valid(True)
-
-		self._PRW_preparation.SetText(self.data['preparation'], self.data['preparation'])
-		self._PRW_preparation.Enable(False)
 	#----------------------------------------------------------------
 	def _refresh_as_new_from_existing(self):
 		self._refresh_as_new()
@@ -1857,56 +783,32 @@ class cSubstanceIntakeEAPnl(wxgCurrentMedicationEAPnl.wxgCurrentMedicationEAPnl,
 		self._PRW_episode.SetData(self.data['pk_episode'])
 		self._DP_started.SetData(self.data['started'])
 
-		self._PRW_component.SetFocus()
+		self._PRW_drug.SetFocus()
 	#----------------------------------------------------------------
 	# event handlers
 	#----------------------------------------------------------------
-	def _on_leave_component(self):
-		if self._PRW_component.GetData() is None:
-			self._LBL_or.Enable(True)
-			self._PRW_component.SetText(u'', None)
-			self._LBL_substance.Enable(True)
-			self._PRW_substance.Enable(True)
-			self._LBL_preparation.Enable(True)
+	def _on_leave_drug(self):
+		self.__refresh_drug_details()
+
+		drug = self._PRW_drug.GetData(as_instance = True)
+		if drug is None:
 			self._PRW_preparation.Enable(True)
-			#self._PRW_preparation.SetText(u'', None)
-			self._TCTRL_brand_ingredients.SetValue(u'')
-			self._TCTRL_brand_ingredients.SetToolTipString(u'')
-		else:
-			self._LBL_or.Enable(False)
-			self._LBL_substance.Enable(False)
-			self._PRW_substance.SetText(u'', None)
-			self._PRW_substance.display_as_valid(True)
-			self._PRW_substance.Enable(False)
-			self._LBL_preparation.Enable(False)
-			self._PRW_preparation.Enable(False)
-			comp = gmMedication.cDrugComponent(aPK_obj = self._PRW_component.GetData())
-			self._PRW_preparation.SetText(comp['preparation'], comp['preparation'])
-			brand = comp.containing_drug
-			if brand['components'] is not None:
-				self._TCTRL_brand_ingredients.SetValue(u'; '.join(brand['components']))
-				tt = u'%s:\n\n- %s' % (
-					brand['brand'],
-					u'\n- '.join(brand['components'])
-				)
-				self._TCTRL_brand_ingredients.SetToolTipString(tt)
-	#----------------------------------------------------------------
-	def _on_leave_substance(self):
-		if self._PRW_substance.GetData() is None:
-			self._LBL_or.Enable(True)
-			self._LBL_component.Enable(True)
-			self._PRW_component.Enable(True)
-			self._PRW_substance.SetText(u'', None)
-		else:
-			self._LBL_or.Enable(False)
-			self._LBL_component.Enable(False)
-			self._PRW_component.SetText(u'', None)
-			self._PRW_component.display_as_valid(True)
-			self._PRW_component.Enable(False)
-			self._LBL_preparation.Enable(True)
+			return
+
+		if isinstance(drug, gmMedication.cConsumableSubstance):
 			self._PRW_preparation.Enable(True)
-			self._TCTRL_brand_ingredients.SetValue(u'')
-			self._TCTRL_brand_ingredients.SetToolTipString(u'')
+			return
+
+		if isinstance(drug, gmMedication.cBrandedDrug):
+			self._PRW_preparation.SetValue(drug['preparation'])
+			self._PRW_preparation.Enable(False)
+			return
+
+		if isinstance(drug, gmMedication.cDrugComponent):
+			self._PRW_preparation.SetValue(drug['preparation'])
+			self._PRW_preparation.Enable(False)
+			return
+
 	#----------------------------------------------------------------
 	def _on_enter_aim(self):
 		# when a drug component/substance is selected (that is, when .GetData()
@@ -1914,57 +816,54 @@ class cSubstanceIntakeEAPnl(wxgCurrentMedicationEAPnl.wxgCurrentMedicationEAPnl,
 		# result because that will also have amount and unit appended, hence
 		# create the real component or substance instance and take the canonical
 		# substance name from there
-		subst = self._PRW_component.GetValue().strip()
-		if subst != u'':
-			comp = self._PRW_component.GetData(as_instance = True)
-			if comp is None:
-				self._PRW_aim.set_context(context = u'substance', val = subst)
-				return
-			self._PRW_aim.set_context(context = u'substance', val = comp['substance'])
+		drug = self._PRW_drug.GetData(as_instance = True)
+		if drug is None:
+			self._PRW_aim.unset_context(context = u'substance')
 			return
-
-		subst = self._PRW_substance.GetValue().strip()
-		if subst == u'':
+		if isinstance(drug, gmMedication.cBrandedDrug):
 			self._PRW_aim.unset_context(context = u'substance')
 			return
-		comp = self._PRW_substance.GetData(as_instance = True)
-		if comp is None:
-			self._PRW_aim.set_context(context = u'substance', val = subst)
+		if isinstance(drug, gmMedication.cConsumableSubstance):
+			self._PRW_aim.set_context(context = u'substance', val = drug['description'])
+			return
+		if isinstance(drug, gmMedication.cDrugComponent):
+			self._PRW_aim.set_context(context = u'substance', val = drug['substance'])
 			return
-		self._PRW_aim.set_context(context = u'substance', val = comp['description'])
+
 	#----------------------------------------------------------------
 	def _on_discontinued_date_changed(self, event):
 		if self._DP_discontinued.GetData() is None:
 			self._PRW_discontinue_reason.Enable(False)
 		else:
 			self._PRW_discontinue_reason.Enable(True)
+
 	#----------------------------------------------------------------
 	def _on_manage_brands_button_pressed(self, event):
-		manage_branded_drugs(parent = self, ignore_OK_button = True)
+		gmSubstanceMgmtWidgets.manage_branded_drugs(parent = self, ignore_OK_button = True)
+
 	#----------------------------------------------------------------
 	def _on_manage_substances_button_pressed(self, event):
-		manage_consumable_substances(parent = self)
+		gmSubstanceMgmtWidgets.manage_consumable_substances(parent = self)
+
 	#----------------------------------------------------------------
 	def _on_heart_button_pressed(self, event):
 		gmNetworkTools.open_url_in_browser(url = u'http://www.qtsyndrome.ch/drugs.html')
+
 	#----------------------------------------------------------------
 	def _on_kidneys_button_pressed(self, event):
-		if self._PRW_component.GetData() is not None:
-			search_term = self._PRW_component.GetData(as_instance = True)
-		elif self._PRW_substance.GetData() is not None:
-			search_term = self._PRW_substance.GetData(as_instance = True)
-		elif self._PRW_component.GetValue().strip() != u'':
-			search_term = self._PRW_component.GetValue().strip()
+		if self._PRW_drug.GetData() is None:
+			search_term = self._PRW_drug.GetValue().strip()
 		else:
-			search_term = self._PRW_substance.GetValue().strip()
+			search_term = self._PRW_drug.GetData(as_instance = True)
 
 		gmNetworkTools.open_url_in_browser(url = gmMedication.drug2renal_insufficiency_url(search_term = search_term))
+
 	#----------------------------------------------------------------
 	def _on_discontinued_as_planned_button_pressed(self, event):
 
 		now = gmDateTime.pydt_now_here()
 
-		self.__refresh_allergies()
+		self.__refresh_precautions()
 
 		if self.data is None:
 			return
@@ -1989,6 +888,7 @@ class cSubstanceIntakeEAPnl(wxgCurrentMedicationEAPnl.wxgCurrentMedicationEAPnl,
 		self._DP_discontinued.SetData(now)
 		self._PRW_discontinue_reason.Enable(True)
 		self._PRW_discontinue_reason.SetValue(u'')
+
 	#----------------------------------------------------------------
 	def _on_chbox_long_term_checked(self, event):
 		if self._CHBOX_long_term.IsChecked() is True:
@@ -2000,7 +900,20 @@ class cSubstanceIntakeEAPnl(wxgCurrentMedicationEAPnl.wxgCurrentMedicationEAPnl,
 			self._BTN_discontinued_as_planned.Enable(True)
 			self._PRW_discontinue_reason.Enable(True)
 
-		self.__refresh_allergies()
+		self.__refresh_precautions()
+
+	#----------------------------------------------------------------
+	def _on_start_unknown_checked(self, event):
+		event.Skip()
+		if self._CHBOX_start_unknown.IsChecked() is True:
+			self._DP_started.Enable(False)
+			self._PRW_start_certainty.Enable(False)
+		else:
+			self._DP_started.Enable(True)
+			self._PRW_start_certainty.Enable(True)
+
+		self.__refresh_precautions()
+
 	#----------------------------------------------------------------
 	def turn_into_allergy(self, data=None):
 		if not self.save():
@@ -2190,6 +1103,7 @@ def configure_prescription_template(parent=None):
 	)
 
 	return template
+
 #------------------------------------------------------------
 def get_prescription_template(parent=None):
 
@@ -2228,6 +1142,7 @@ def get_prescription_template(parent=None):
 		)
 		return None
 	return template
+
 #------------------------------------------------------------
 def print_prescription(parent=None, emr=None):
 
@@ -2274,7 +1189,7 @@ def prescribe_drugs(parent=None, emr=None):
 		return print_prescription(parent = parent, emr = emr)
 
 	if rx_mode == 'database':
-		drug_db = get_drug_database()
+		drug_db = get_drug_database()		#gmPerson.gmCurrentPatient() xxxxxxx ?
 		if drug_db is None:
 			return
 		drug_db.reviewer = gmStaff.gmCurrentProvider()
@@ -2291,7 +1206,7 @@ def update_substance_intake_list_from_prescription(parent=None, prescribed_drugs
 	if len(prescribed_drugs) == 0:
 		return
 
-	curr_brands =  [ i['pk_brand'] for i in emr.get_current_substance_intakes() if i['pk_brand'] is not None ]
+	curr_brands =  [ i['pk_brand'] for i in emr.get_current_medications() if i['pk_brand'] is not None ]
 	new_drugs = []
 	for drug in prescribed_drugs:
 		if drug['pk_brand'] not in curr_brands:
@@ -2303,7 +1218,7 @@ def update_substance_intake_list_from_prescription(parent=None, prescribed_drugs
 	if parent is None:
 		parent = wx.GetApp().GetTopWindow()
 
-	dlg = gmListWidgets.cItemPickerDlg (
+	picker = gmListWidgets.cItemPickerDlg (
 		parent,
 		-1,
 		msg = _(
@@ -2313,18 +1228,18 @@ def update_substance_intake_list_from_prescription(parent=None, prescribed_drugs
 			'Please select those you want added to the medication list.'
 		)
 	)
-	dlg.set_columns (
+	picker.set_columns (
 		columns = [_('Newly prescribed drugs')],
 		columns_right = [_('Add to medication list')]
 	)
 	choices = [ (u'%s %s (%s)' % (d['brand'], d['preparation'], u'; '.join(d['components']))) for d in new_drugs ]
-	dlg.set_choices (
+	picker.set_choices (
 		choices = choices,
 		data = new_drugs
 	)
-	dlg.ShowModal()
-	drugs2add = dlg.get_picks()
-	dlg.Destroy()
+	picker.ShowModal()
+	drugs2add = picker.get_picks()
+	picker.Destroy()
 
 	if drugs2add is None:
 		return
@@ -2370,8 +1285,9 @@ class cCurrentSubstancesGrid(wx.grid.Grid):
 				_('Substance'),
 				_('Strength'),
 				_('Schedule'),
-				_('Started'),
-				_('Duration / Until'),
+				_('Timeframe'),
+#				_('Started'),
+#				_('Duration / Until'),
 				_('Brand'),
 				_('Advice')
 			],
@@ -2380,8 +1296,9 @@ class cCurrentSubstancesGrid(wx.grid.Grid):
 				_('Schedule'),
 				_('Substance'),
 				_('Strength'),
-				_('Started'),
-				_('Duration / Until'),
+				_('Timeframe'),
+#				_('Started'),
+#				_('Duration / Until'),
 				_('Health issue'),
 				_('Advice')
 			],
@@ -2390,8 +1307,9 @@ class cCurrentSubstancesGrid(wx.grid.Grid):
 				_('Substance'),
 				_('Strength'),
 				_('Schedule'),
-				_('Started'),
-				_('Duration / Until'),
+				_('Timeframe'),
+#				_('Started'),
+#				_('Duration / Until'),
 				_('Brand'),
 				_('Advice')
 			],
@@ -2400,8 +1318,9 @@ class cCurrentSubstancesGrid(wx.grid.Grid):
 				_('Substance'),
 				_('Strength'),
 				_('Schedule'),
-				_('Started'),
-				_('Duration / Until'),
+				_('Timeframe'),
+#				_('Started'),
+#				_('Duration / Until'),
 				_('Brand'),
 				_('Advice')
 			],
@@ -2435,13 +1354,13 @@ class cCurrentSubstancesGrid(wx.grid.Grid):
 		selected_cells += list (
 			(row, col)
 				for row in sel_rows
-				for col in xrange(self.GetNumberCols())
+				for col in range(self.GetNumberCols())
 		)
 
 		# selected columns
 		selected_cells += list (
 			(row, col)
-				for row in xrange(self.GetNumberRows())
+				for row in range(self.GetNumberRows())
 				for col in sel_cols
 		)
 
@@ -2449,8 +1368,8 @@ class cCurrentSubstancesGrid(wx.grid.Grid):
 		for top_left, bottom_right in zip(self.GetSelectionBlockTopLeft(), self.GetSelectionBlockBottomRight()):
 			selected_cells += [
 				(row, col)
-					for row in xrange(top_left[0], bottom_right[0] + 1)
-					for col in xrange(top_left[1], bottom_right[1] + 1)
+					for row in range(top_left[0], bottom_right[0] + 1)
+					for col in range(top_left[1], bottom_right[1] + 1)
 			]
 
 		return set(selected_cells)
@@ -2474,7 +1393,7 @@ class cCurrentSubstancesGrid(wx.grid.Grid):
 			return
 
 		emr = self.__patient.get_emr()
-		meds = emr.get_current_substance_intakes (
+		meds = emr.get_current_medications (
 			order_by = self.__grouping2order_by_clauses[self.__grouping_mode],
 			include_unapproved = self.__filter_show_unapproved,
 			include_inactive = self.__filter_show_inactive
@@ -2508,9 +1427,9 @@ class cCurrentSubstancesGrid(wx.grid.Grid):
 				atcs = []
 				if med['atc_substance'] is not None:
 					atcs.append(med['atc_substance'])
-#				if med['atc_brand'] is not None:
-#					atcs.append(med['atc_brand'])
-#				allg = emr.is_allergic_to(atcs = tuple(atcs), inns = (med['substance'],), brand = med['brand'])
+				#if med['atc_brand'] is not None:
+				#	atcs.append(med['atc_brand'])
+				#allg = emr.is_allergic_to(atcs = tuple(atcs), inns = (med['substance'],), brand = med['brand'])
 				allg = emr.is_allergic_to(atcs = tuple(atcs), inns = (med['substance'],))
 				if allg not in [None, False]:
 					attr = self.GetOrCreateCellAttr(row_idx, 0)
@@ -2542,18 +1461,20 @@ class cCurrentSubstancesGrid(wx.grid.Grid):
 				self.SetCellValue(row_idx, 1, med['substance'])
 				self.SetCellValue(row_idx, 2, u'%s %s' % (med['amount'], med['unit']))
 				self.SetCellValue(row_idx, 3, gmTools.coalesce(med['schedule'], u''))
-				self.SetCellValue(row_idx, 4, med.medically_formatted_start)
 
-				if med['is_long_term']:
-					self.SetCellValue(row_idx, 5, gmTools.u_infinity)
-				else:
-					if med['discontinued'] is None:
-						if med['duration'] is None:
-							self.SetCellValue(row_idx, 5, u'')
-						else:
-							self.SetCellValue(row_idx, 5, gmDateTime.format_interval(med['duration'], gmDateTime.acc_days))
-					else:
-						self.SetCellValue(row_idx, 5, med['discontinued'].strftime('%Y-%m-%d'))
+				self.SetCellValue(row_idx, 4, med.medically_formatted_start_end)
+#				self.SetCellValue(row_idx, 4, med.medically_formatted_start)
+#
+#				if med['is_long_term']:
+#					self.SetCellValue(row_idx, 5, gmTools.u_infinity)
+#				else:
+#					if med['discontinued'] is None:
+#						if med['duration'] is None:
+#							self.SetCellValue(row_idx, 5, u'')
+#						else:
+#							self.SetCellValue(row_idx, 5, gmDateTime.format_interval(med['duration'], gmDateTime.acc_days))
+#					else:
+#						self.SetCellValue(row_idx, 5, med['discontinued'].strftime('%Y-%m-%d'))
 
 				if med['pk_brand'] is None:
 					brand = u'%s (%s)' % (gmTools.u_diameter, med['preparation'])
@@ -2568,7 +1489,8 @@ class cCurrentSubstancesGrid(wx.grid.Grid):
 							gmTools.coalesce(med['brand'], u''),
 							med['preparation']
 						)
-				self.SetCellValue(row_idx, 6, gmTools.wrap(text = brand, width = 35))
+#				self.SetCellValue(row_idx, 6, gmTools.wrap(text = brand, width = 35))
+				self.SetCellValue(row_idx, 5, gmTools.wrap(text = brand, width = 35))
 
 			elif self.__grouping_mode == u'issue':
 				if med['pk_health_issue'] is None:
@@ -2588,18 +1510,20 @@ class cCurrentSubstancesGrid(wx.grid.Grid):
 				self.SetCellValue(row_idx, 1, med['substance'])
 				self.SetCellValue(row_idx, 2, u'%s %s' % (med['amount'], med['unit']))
 				self.SetCellValue(row_idx, 3, gmTools.coalesce(med['schedule'], u''))
-				self.SetCellValue(row_idx, 4, med.medically_formatted_start)
 
-				if med['is_long_term']:
-					self.SetCellValue(row_idx, 5, gmTools.u_infinity)
-				else:
-					if med['discontinued'] is None:
-						if med['duration'] is None:
-							self.SetCellValue(row_idx, 5, u'')
-						else:
-							self.SetCellValue(row_idx, 5, gmDateTime.format_interval(med['duration'], gmDateTime.acc_days))
-					else:
-						self.SetCellValue(row_idx, 5, med['discontinued'].strftime('%Y-%m-%d'))
+				self.SetCellValue(row_idx, 4, med.medically_formatted_start_end)
+#				self.SetCellValue(row_idx, 4, med.medically_formatted_start)
+#
+#				if med['is_long_term']:
+#					self.SetCellValue(row_idx, 5, gmTools.u_infinity)
+#				else:
+#					if med['discontinued'] is None:
+#						if med['duration'] is None:
+#							self.SetCellValue(row_idx, 5, u'')
+#						else:
+#							self.SetCellValue(row_idx, 5, gmDateTime.format_interval(med['duration'], gmDateTime.acc_days))
+#					else:
+#						self.SetCellValue(row_idx, 5, med['discontinued'].strftime('%Y-%m-%d'))
 
 				if med['pk_brand'] is None:
 					brand = u'%s (%s)' % (gmTools.u_diameter, med['preparation'])
@@ -2614,7 +1538,8 @@ class cCurrentSubstancesGrid(wx.grid.Grid):
 							gmTools.coalesce(med['brand'], u''),
 							med['preparation']
 						)
-				self.SetCellValue(row_idx, 6, gmTools.wrap(text = brand, width = 35))
+#				self.SetCellValue(row_idx, 6, gmTools.wrap(text = brand, width = 35))
+				self.SetCellValue(row_idx, 5, gmTools.wrap(text = brand, width = 35))
 
 			elif self.__grouping_mode == u'brand':
 
@@ -2644,18 +1569,20 @@ class cCurrentSubstancesGrid(wx.grid.Grid):
 				self.SetCellValue(row_idx, 1, gmTools.coalesce(med['schedule'], u''))
 				self.SetCellValue(row_idx, 2, med['substance'])
 				self.SetCellValue(row_idx, 3, u'%s %s' % (med['amount'], med['unit']))
-				self.SetCellValue(row_idx, 4, med.medically_formatted_start)
 
-				if med['is_long_term']:
-					self.SetCellValue(row_idx, 5, gmTools.u_infinity)
-				else:
-					if med['discontinued'] is None:
-						if med['duration'] is None:
-							self.SetCellValue(row_idx, 5, u'')
-						else:
-							self.SetCellValue(row_idx, 5, gmDateTime.format_interval(med['duration'], gmDateTime.acc_days))
-					else:
-						self.SetCellValue(row_idx, 5, med['discontinued'].strftime('%Y-%m-%d'))
+				self.SetCellValue(row_idx, 4, med.medically_formatted_start_end)
+#				self.SetCellValue(row_idx, 4, med.medically_formatted_start)
+#
+#				if med['is_long_term']:
+#					self.SetCellValue(row_idx, 5, gmTools.u_infinity)
+#				else:
+#					if med['discontinued'] is None:
+#						if med['duration'] is None:
+#							self.SetCellValue(row_idx, 5, u'')
+#						else:
+#							self.SetCellValue(row_idx, 5, gmDateTime.format_interval(med['duration'], gmDateTime.acc_days))
+#					else:
+#						self.SetCellValue(row_idx, 5, med['discontinued'].strftime('%Y-%m-%d'))
 
 				if med['pk_health_issue'] is None:
 					issue = u'%s%s' % (
@@ -2664,13 +1591,15 @@ class cCurrentSubstancesGrid(wx.grid.Grid):
 					)
 				else:
 					issue = gmTools.coalesce(med['health_issue'], u'')
-				self.SetCellValue(row_idx, 6, gmTools.wrap(text = issue, width = 40))
+#				self.SetCellValue(row_idx, 6, gmTools.wrap(text = issue, width = 40))
+				self.SetCellValue(row_idx, 5, gmTools.wrap(text = issue, width = 40))
 
 			else:
 				raise ValueError('unknown grouping mode [%s]' % self.__grouping_mode)
 
 			if med['notes'] is not None:
-				self.SetCellValue(row_idx, 7, gmTools.wrap(text = med['notes'], width = 50))
+#				self.SetCellValue(row_idx, 7, gmTools.wrap(text = med['notes'], width = 50))
+				self.SetCellValue(row_idx, 6, gmTools.wrap(text = med['notes'], width = 50))
 
 			if self.__filter_show_unapproved:
 				self.SetCellValue (
@@ -2710,7 +1639,7 @@ class cCurrentSubstancesGrid(wx.grid.Grid):
 		if len(sel_rows) != 1:
 			return
 
-		drug_db = get_drug_database()
+		drug_db = get_drug_database(patient = self.__patient)
 		if drug_db is None:
 			return
 
@@ -2752,7 +1681,7 @@ class cCurrentSubstancesGrid(wx.grid.Grid):
 		if len(self.__row_data) == 0:
 			return
 
-		drug_db = get_drug_database()
+		drug_db = get_drug_database(patient = self.__patient)
 		if drug_db is None:
 			return
 
@@ -2879,22 +1808,22 @@ class cCurrentSubstancesGrid(wx.grid.Grid):
 		tt += gmTools.coalesce(entry['schedule'], u'', _(' Regimen: %s\n'))
 
 		if entry['is_long_term']:
-			duration = u' %s %s' % (gmTools.u_right_arrow, gmTools.u_infinity)
+			duration = u' %s %s' % (gmTools.u_arrow2right, gmTools.u_infinity)
 		else:
 			if entry['duration'] is None:
 				duration = u''
 			else:
-				duration = u' %s %s' % (gmTools.u_right_arrow, gmDateTime.format_interval(entry['duration'], gmDateTime.acc_days))
+				duration = u' %s %s' % (gmTools.u_arrow2right, gmDateTime.format_interval(entry['duration'], gmDateTime.acc_days))
 
 		tt += _(' Started %s%s%s\n') % (
-			gmDateTime.pydt_strftime(entry['started'], '%Y %b %d'),
+			entry.medically_formatted_start,
 			duration,
 			gmTools.bool2subst(entry['is_long_term'], _(' (long-term)'), _(' (short-term)'), u'')
 		)
 
 		if entry['discontinued'] is not None:
 			tt += _(' Discontinued %s\n') % gmDateTime.pydt_strftime(entry['discontinued'], '%Y %b %d')
-			tt += _(' Reason: %s\n') % entry['discontinue_reason']
+			tt += gmTools.coalesce(entry['discontinue_reason'], u'', _(' Reason: %s\n'))
 
 		tt += u'\n'
 
@@ -2985,7 +1914,7 @@ class cCurrentSubstancesGrid(wx.grid.Grid):
 		# use this logic to prevent tooltips outside the actual cells
 		# apply to GetRowSize, too
 #        tot = 0
-#        for col in xrange(self.NumberCols):
+#        for col in range(self.NumberCols):
 #            tot += self.GetColSize(col)
 #            if xpos <= tot:
 #                self.tool_tip.Tip = 'Tool tip for Column %s' % (
@@ -3077,7 +2006,7 @@ class cCurrentSubstancesPnl(wxgCurrentSubstancesPnl.wxgCurrentSubstancesPnl, gmR
 	#--------------------------------------------------------
 	def __refresh_lab(self, patient):
 
-		self._GSZR_lab.Clear()
+		self._GSZR_lab.Clear(True)		# also delete child windows
 		self._HLINE_lab.Hide()
 
 		if patient is None:
@@ -3088,7 +2017,7 @@ class cCurrentSubstancesPnl(wxgCurrentSubstancesPnl.wxgCurrentSubstancesPnl, gmR
 			self.Layout()
 			return
 
-		most_recent_results = self.__lab_panel.get_most_recent_results(pk_patient = patient.ID, order_by = u'unified_abbrev')
+		most_recent_results = self.__lab_panel.get_most_recent_results(pk_patient = patient.ID, order_by = u'unified_abbrev', group_by_meta_type = True)
 		edc = patient.emr.EDC
 		gfr = patient.emr.get_most_recent_results(loinc = gmLOINC.LOINC_gfr_quantity, no_of_results = 1)
 		crea = patient.emr.get_most_recent_results(loinc = gmLOINC.LOINC_creatinine_quantity, no_of_results = 1)
@@ -3311,6 +2240,7 @@ class cCurrentSubstancesPnl(wxgCurrentSubstancesPnl.wxgCurrentSubstancesPnl, gmR
 	#--------------------------------------------------------
 	def _on_rx_button_pressed(self, event):
 		self._grid_substances.prescribe()
+
 #============================================================
 # main
 #------------------------------------------------------------
@@ -3330,10 +2260,7 @@ if __name__ == '__main__':
 	gmPerson.set_active_patient(patient = pat)
 
 	#----------------------------------------
-	app = wx.PyWidgetTester(size = (600, 600))
-#	#app.SetWidget(cATCPhraseWheel, -1)
-#	app.SetWidget(cSubstancePhraseWheel, -1)
-#	app.MainLoop()
-	manage_substance_intakes()
-
-#============================================================
+	app = wx.PyWidgetTester(size = (600, 300))
+	app.SetWidget(cBrandOrSubstancePhraseWheel, -1)
+	app.MainLoop()
+	#manage_substance_intakes()
diff --git a/client/wxpython/gmNarrativeWidgets.py b/client/wxpython/gmNarrativeWidgets.py
index 2494064..77b4f6d 100644
--- a/client/wxpython/gmNarrativeWidgets.py
+++ b/client/wxpython/gmNarrativeWidgets.py
@@ -5,17 +5,11 @@ __license__ = "GPL v2 or later (details at http://www.gnu.org)"
 
 import sys
 import logging
-import os
 import os.path
 import time
-import re as regex
-import shutil
 
 
 import wx
-import wx.lib.expando as wx_expando
-import wx.lib.agw.supertooltip as agw_stt
-import wx.lib.statbmp as wx_genstatbmp
 
 
 if __name__ == '__main__':
@@ -30,30 +24,22 @@ if __name__ == '__main__':
 from Gnumed.pycommon import gmDispatcher
 from Gnumed.pycommon import gmTools
 from Gnumed.pycommon import gmDateTime
-from Gnumed.pycommon import gmShellAPI
-from Gnumed.pycommon import gmPG2
 from Gnumed.pycommon import gmCfg
-from Gnumed.pycommon import gmMatchProvider
 
 from Gnumed.business import gmPerson
 from Gnumed.business import gmStaff
 from Gnumed.business import gmEMRStructItems
-from Gnumed.business import gmClinNarrative
+from Gnumed.business import gmSoapDefs
 from Gnumed.business import gmPraxis
-from Gnumed.business import gmForms
-from Gnumed.business import gmDocuments
 from Gnumed.business import gmPersonSearch
-from Gnumed.business import gmKeywordExpansion
 
 from Gnumed.wxpython import gmListWidgets
 from Gnumed.wxpython import gmEMRStructWidgets
 from Gnumed.wxpython import gmEncounterWidgets
 from Gnumed.wxpython import gmRegetMixin
-from Gnumed.wxpython import gmPhraseWheel
 from Gnumed.wxpython import gmGuiHelpers
-from Gnumed.wxpython import gmCfgWidgets
-from Gnumed.wxpython import gmDocumentWidgets
-from Gnumed.wxpython import gmKeywordExpansionWidgets
+from Gnumed.wxpython import gmVisualProgressNoteWidgets
+from Gnumed.wxpython import gmProgressNotesEAWidgets
 from Gnumed.wxpython.gmPatSearchWidgets import set_active_patient
 
 from Gnumed.exporters import gmPatientExporter
@@ -61,801 +47,7 @@ from Gnumed.exporters import gmPatientExporter
 
 _log = logging.getLogger('gm.ui')
 #============================================================
-# narrative related widgets/functions
-#------------------------------------------------------------
-def move_progress_notes_to_another_encounter(parent=None, encounters=None, episodes=None, patient=None, move_all=False):
-
-	# sanity checks
-	if patient is None:
-		patient = gmPerson.gmCurrentPatient()
-
-	if not patient.connected:
-		gmDispatcher.send(signal = 'statustext', msg = _('Cannot move progress notes. No active patient.'))
-		return False
-
-	if parent is None:
-		parent = wx.GetApp().GetTopWindow()
-
-	emr = patient.get_emr()
-
-	if encounters is None:
-		all_encs_in_epi = emr.get_encounters(episodes = episodes, skip_empty = True)
-		# nothing to do ?
-		if len(all_encs_in_epi) == 0:
-			return True
-		encounters = gmEncounterWidgets.select_encounters (
-			parent = parent,
-			patient = patient,
-			single_selection = False,
-			encounters = all_encs_in_epi
-		)
-		# cancelled
-		if encounters is None:
-			return True
-		# none selected
-		if len(encounters) == 0:
-			return True
-
-	notes = emr.get_clin_narrative (
-		encounters = encounters,
-		episodes = episodes
-	)
-
-	# which narrative
-	if move_all:
-		selected_narr = notes
-	else:
-		selected_narr = gmListWidgets.get_choices_from_list (
-			parent = parent,
-			caption = _('Moving progress notes between encounters ...'),
-			single_selection = False,
-			can_return_empty = True,
-			data = notes,
-			msg = _('\n Select the progress notes to move from the list !\n\n'),
-			columns = [_('when'), _('who'), _('type'), _('entry')],
-			choices = [
-				[	narr['date'].strftime('%x %H:%M'),
-					narr['modified_by'],
-					gmClinNarrative.soap_cat2l10n[narr['soap_cat']],
-					narr['narrative'].replace('\n', '/').replace('\r', '/')
-				] for narr in notes
-			]
-		)
-
-	if not selected_narr:
-		return True
-
-	# which encounter to move to
-	enc2move2 = gmEncounterWidgets.select_encounters (
-		parent = parent,
-		patient = patient,
-		single_selection = True
-	)
-
-	if not enc2move2:
-		return True
-
-	for narr in selected_narr:
-		narr['pk_encounter'] = enc2move2['pk_encounter']
-		narr.save()
-
-	return True
-#------------------------------------------------------------
-def manage_progress_notes(parent=None, encounters=None, episodes=None, patient=None):
-
-	# sanity checks
-	if patient is None:
-		patient = gmPerson.gmCurrentPatient()
-
-	if not patient.connected:
-		gmDispatcher.send(signal = 'statustext', msg = _('Cannot edit progress notes. No active patient.'))
-		return False
-
-	if parent is None:
-		parent = wx.GetApp().GetTopWindow()
-
-	emr = patient.get_emr()
-	#--------------------------
-	def delete(item):
-		if item is None:
-			return False
-		dlg = gmGuiHelpers.c2ButtonQuestionDlg (
-			parent,
-			-1,
-			caption = _('Deleting progress note'),
-			question = _(
-				'Are you positively sure you want to delete this\n'
-				'progress note from the medical record ?\n'
-				'\n'
-				'Note that even if you chose to delete the entry it will\n'
-				'still be (invisibly) kept in the audit trail to protect\n'
-				'you from litigation because physical deletion is known\n'
-				'to be unlawful in some jurisdictions.\n'
-			),
-			button_defs = (
-				{'label': _('Delete'), 'tooltip': _('Yes, delete the progress note.'), 'default': False},
-				{'label': _('Cancel'), 'tooltip': _('No, do NOT delete the progress note.'), 'default': True}
-			)
-		)
-		decision = dlg.ShowModal()
-
-		if decision != wx.ID_YES:
-			return False
-
-		gmClinNarrative.delete_clin_narrative(narrative = item['pk_narrative'])
-		return True
-	#--------------------------
-	def edit(item):
-		if item is None:
-			return False
-
-		dlg = gmGuiHelpers.cMultilineTextEntryDlg (
-			parent,
-			-1,
-			title = _('Editing progress note'),
-			msg = _('This is the original progress note:'),
-			data = item.format(left_margin = u' ', fancy = True),
-			text = item['narrative']
-		)
-		decision = dlg.ShowModal()
-
-		if decision != wx.ID_SAVE:
-			return False
-
-		val = dlg.value
-		dlg.Destroy()
-		if val.strip() == u'':
-			return False
-
-		item['narrative'] = val
-		item.save_payload()
-
-		return True
-	#--------------------------
-	def refresh(lctrl):
-		notes = emr.get_clin_narrative (
-			encounters = encounters,
-			episodes = episodes,
-			providers = [ gmStaff.gmCurrentProvider()['short_alias'] ]
-		)
-		lctrl.set_string_items(items = [
-			[	narr['date'].strftime('%x %H:%M'),
-				gmClinNarrative.soap_cat2l10n[narr['soap_cat']],
-				narr['narrative'].replace('\n', '/').replace('\r', '/')
-			] for narr in notes
-		])
-		lctrl.set_data(data = notes)
-	#--------------------------
-
-	gmListWidgets.get_choices_from_list (
-		parent = parent,
-		caption = _('Managing progress notes'),
-		msg = _(
-			'\n'
-			' This list shows the progress notes by %s.\n'
-			'\n'
-		) % gmStaff.gmCurrentProvider()['short_alias'],
-		columns = [_('when'), _('type'), _('entry')],
-		single_selection = True,
-		can_return_empty = False,
-		edit_callback = edit,
-		delete_callback = delete,
-		refresh_callback = refresh
-	)
-#------------------------------------------------------------
-def search_narrative_across_emrs(parent=None):
-
-	if parent is None:
-		parent = wx.GetApp().GetTopWindow()
-
-	search_term_dlg = wx.TextEntryDialog (
-		parent = parent,
-		message = _('Enter (regex) term to search for across all EMRs:'),
-		caption = _('Text search across all EMRs'),
-		style = wx.OK | wx.CANCEL | wx.CENTRE
-	)
-	result = search_term_dlg.ShowModal()
-
-	if result != wx.ID_OK:
-		return
-
-	wx.BeginBusyCursor()
-	search_term = search_term_dlg.GetValue()
-	search_term_dlg.Destroy()
-	results = gmClinNarrative.search_text_across_emrs(search_term = search_term)
-	wx.EndBusyCursor()
-
-	if len(results) == 0:
-		gmGuiHelpers.gm_show_info (
-			_(
-			'Nothing found for search term:\n'
-			' "%s"'
-			) % search_term,
-			_('Search results')
-		)
-		return
-
-	items = [ [
-		gmPerson.cIdentity(aPK_obj = r['pk_patient'])['description_gender'],
-		r['narrative'],
-		r['src_table']
-	] for r in results ]
-
-	selected_patient = gmListWidgets.get_choices_from_list (
-		parent = parent,
-		caption = _('Search results for [%s]') % search_term,
-		choices = items,
-		columns = [_('Patient'), _('Match'), _('Match location')],
-		data = [ r['pk_patient'] for r in results ],
-		single_selection = True,
-		can_return_empty = False
-	)
-
-	if selected_patient is None:
-		return
-
-	wx.CallAfter(set_active_patient, patient = gmPerson.cIdentity(aPK_obj = selected_patient))
-#------------------------------------------------------------
-def search_narrative_in_emr(parent=None, patient=None):
-
-	# sanity checks
-	if patient is None:
-		patient = gmPerson.gmCurrentPatient()
-
-	if not patient.connected:
-		gmDispatcher.send(signal = 'statustext', msg = _('Cannot search EMR. No active patient.'))
-		return False
-
-	if parent is None:
-		parent = wx.GetApp().GetTopWindow()
-
-	search_term_dlg = wx.TextEntryDialog (
-		parent = parent,
-		message = _('Enter search term:'),
-		caption = _('Text search of entire EMR of active patient'),
-		style = wx.OK | wx.CANCEL | wx.CENTRE
-	)
-	result = search_term_dlg.ShowModal()
-
-	if result != wx.ID_OK:
-		search_term_dlg.Destroy()
-		return False
-
-	wx.BeginBusyCursor()
-	val = search_term_dlg.GetValue()
-	search_term_dlg.Destroy()
-	emr = patient.get_emr()
-	rows = emr.search_narrative_simple(val)
-	wx.EndBusyCursor()
-
-	if len(rows) == 0:
-		gmGuiHelpers.gm_show_info (
-			_(
-			'Nothing found for search term:\n'
-			' "%s"'
-			) % val,
-			_('Search results')
-		)
-		return True
-
-	txt = u''
-	for row in rows:
-		txt += u'%s: %s\n' % (
-			row['soap_cat'],
-			row['narrative']
-		)
-
-		txt += u' %s: %s - %s %s\n' % (
-			_('Encounter'),
-			row['encounter_started'].strftime('%x %H:%M'),
-			row['encounter_ended'].strftime('%H:%M'),
-			row['encounter_type']
-		)
-		txt += u' %s: %s\n' % (
-			_('Episode'),
-			row['episode']
-		)
-		txt += u' %s: %s\n\n' % (
-			_('Health issue'),
-			row['health_issue']
-		)
-
-	msg = _(
-		'Search term was: "%s"\n'
-		'\n'
-		'Search results:\n\n'
-		'%s\n'
-	) % (val, txt)
-
-	dlg = wx.MessageDialog (
-		parent = parent,
-		message = msg,
-		caption = _('Search results for [%s]') % val,
-		style = wx.OK | wx.STAY_ON_TOP
-	)
-	dlg.ShowModal()
-	dlg.Destroy()
-
-	return True
-#------------------------------------------------------------
-def export_narrative_for_medistar_import(parent=None, soap_cats=u'soapu', encounter=None):
-
-	# sanity checks
-	pat = gmPerson.gmCurrentPatient()
-	if not pat.connected:
-		gmDispatcher.send(signal = 'statustext', msg = _('Cannot export EMR for Medistar. No active patient.'))
-		return False
-
-	if encounter is None:
-		encounter = pat.get_emr().active_encounter
-
-	if parent is None:
-		parent = wx.GetApp().GetTopWindow()
-
-	# get file name
-	aWildcard = "%s (*.txt)|*.txt|%s (*)|*" % (_("text files"), _("all files"))
-		# FIXME: make configurable
-	aDefDir = os.path.abspath(os.path.expanduser(os.path.join('~', 'gnumed')))
-		# FIXME: make configurable
-	fname = '%s-%s-%s-%s-%s.txt' % (
-		'Medistar-MD',
-		time.strftime('%Y-%m-%d',time.localtime()),
-		pat['lastnames'].replace(' ', '-'),
-		pat['firstnames'].replace(' ', '_'),
-		pat.get_formatted_dob(format = '%Y-%m-%d')
-	)
-	dlg = wx.FileDialog (
-		parent = parent,
-		message = _("Save EMR extract for MEDISTAR import as..."),
-		defaultDir = aDefDir,
-		defaultFile = fname,
-		wildcard = aWildcard,
-		style = wx.SAVE
-	)
-	choice = dlg.ShowModal()
-	fname = dlg.GetPath()
-	dlg.Destroy()
-	if choice != wx.ID_OK:
-		return False
-
-	wx.BeginBusyCursor()
-	_log.debug('exporting encounter for medistar import to [%s]', fname)
-	exporter = gmPatientExporter.cMedistarSOAPExporter()
-	successful, fname = exporter.export_to_file (
-		filename = fname,
-		encounter = encounter,
-		soap_cats = u'soapu',
-		export_to_import_file = True
-	)
-	if not successful:
-		gmGuiHelpers.gm_show_error (
-			_('Error exporting progress notes for MEDISTAR import.'),
-			_('MEDISTAR progress notes export')
-		)
-		wx.EndBusyCursor()
-		return False
-
-	gmDispatcher.send(signal = 'statustext', msg = _('Successfully exported progress notes into file [%s] for Medistar import.') % fname, beep=False)
-
-	wx.EndBusyCursor()
-	return True
-
-#------------------------------------------------------------
-def select_narrative(parent=None, soap_cats=None, msg=None):
-
-	pat = gmPerson.gmCurrentPatient()
-	emr = pat.get_emr()
-
-	if parent is None:
-		parent = wx.GetApp().GetTopWindow()
-
-	if soap_cats is None:
-		soap_cats = u'soapu'
-	soap_cats = list(soap_cats)
-	i18n_soap_cats = [ gmClinNarrative.soap_cat2l10n[cat].upper() for cat in soap_cats ]
-
-	if msg is None:
-		msg = _('Pick the [%s] narrative you want to use.') % u'/'.join(i18n_soap_cats)
-
-	#-----------------------------------------------
-	def get_tooltip(soap):
-		return soap.format(fancy = True, width = 60)
-	#-----------------------------------------------
-	def refresh(lctrl):
-		lctrl.secondary_sort_column = 0
-		soap = emr.get_clin_narrative(soap_cats = soap_cats)
-		lctrl.set_string_items ([ [
-			gmDateTime.pydt_strftime(s['date'], '%Y %m %d'),
-			s['modified_by'],
-			gmClinNarrative.soap_cat2l10n[s['soap_cat']],
-			s['narrative'],
-			s['episode'],
-			s['health_issue']
-		] for s in soap ])
-		lctrl.set_data(soap)
-	#-----------------------------------------------
-	return gmListWidgets.get_choices_from_list (
-		parent = parent,
-		msg = msg,
-		caption = _('Picking [%s] narrative') % (u'/'.join(i18n_soap_cats)),
-		columns = [_('When'), _('Who'), _('Type'), _('Entry'), _('Episode'), _('Issue')],
-		single_selection = False,
-		can_return_empty = False,
-		refresh_callback = refresh,
-		list_tooltip_callback = get_tooltip
-	)
-
-#------------------------------------------------------------
-def select_narrative_by_issue(parent=None, soap_cats=None):
-
-	pat = gmPerson.gmCurrentPatient()
-	emr = pat.get_emr()
-
-	# not useful if you think about it:
-#	issues = [ i for i in emr.health_issues ]
-#	if len(issues) == 0:
-#		gmDispatcher.send(signal = 'statustext', msg = _('No progress notes found.'))
-#		return []
-
-	if parent is None:
-		parent = wx.GetApp().GetTopWindow()
-
-	if soap_cats is None:
-		soap_cats = u'soapu'
-	soap_cats = list(soap_cats)
-	i18n_soap_cats = [ gmClinNarrative.soap_cat2l10n[cat].upper() for cat in soap_cats ]
-
-	selected_soap = {}
-	#selected_narrative_pks = []
-
-	#-----------------------------------------------
-	def get_soap_tooltip(soap):
-		return soap.format(fancy = True, width = 60)
-	#-----------------------------------------------
-	def pick_soap_from_issue(issue):
-
-		if issue is None:
-			return False
-
-		narr_for_issue = emr.get_clin_narrative(issues = [issue['pk_health_issue']], soap_cats = soap_cats)
-
-		if len(narr_for_issue) == 0:
-			gmDispatcher.send(signal = 'statustext', msg = _('No narrative available for this health issue.'))
-			return True
-
-		selected_narr = gmListWidgets.get_choices_from_list (
-			parent = parent,
-			msg = _('Pick the [%s] narrative you want to include in the report.') % u'/'.join(i18n_soap_cats),
-			caption = _('Picking [%s] from %s%s%s') % (
-				u'/'.join(i18n_soap_cats),
-				gmTools.u_left_double_angle_quote,
-				issue['description'],
-				gmTools.u_right_double_angle_quote
-			),
-			columns = [_('When'), _('Who'), _('Type'), _('Entry')],
-			choices = [ [
-				gmDateTime.pydt_strftime(narr['date'], '%Y %b %d  %H:%M', accuracy = gmDateTime.acc_minutes),
-				narr['modified_by'],
-				gmClinNarrative.soap_cat2l10n[narr['soap_cat']],
-				narr['narrative'].replace('\n', '//').replace('\r', '//')
-			] for narr in narr_for_issue ],
-			data = narr_for_issue,
-			#selections=None,
-			#edit_callback=None,
-			single_selection = False,
-			can_return_empty = False,
-			list_tooltip_callback = get_soap_tooltip
-		)
-
-		if selected_narr is None:
-			return True
-
-		for narr in selected_narr:
-			selected_soap[narr['pk_narrative']] = narr
-
-		return True
-	#-----------------------------------------------
-	def edit_issue(issue):
-		return gmEMRStructWidgets.edit_health_issue(parent = parent, issue = issue)
-	#-----------------------------------------------
-	def refresh_issues(lctrl):
-		#issues = [ i for i in emr.health_issues ]
-		issues = emr.health_issues
-		lctrl.set_string_items ([ [
-				gmTools.bool2subst(i['is_confidential'], _('!! CONFIDENTIAL !!'), u''),
-				i['description'],
-				gmTools.bool2subst(i['is_active'], _('active'), _('inactive'))
-			] for i in issues
-		])
-		lctrl.set_data(issues)
-	#-----------------------------------------------
-	def get_issue_tooltip(issue):
-		return issue.format (
-			patient = pat,
-			with_encounters = False,
-			with_medications = False,
-			with_hospital_stays = False,
-			with_procedures = False,
-			with_family_history = False,
-			with_documents = False,
-			with_tests = False,
-			with_vaccinations = False
-		)
-	#-----------------------------------------------
-	#selected_episode_pks = []
-
-	issues_picked_from = gmListWidgets.get_choices_from_list (
-		parent = parent,
-		msg = _('\n Select the issue you want to report on.'),
-		caption = _('Picking [%s] from health issues') % u'/'.join(i18n_soap_cats),
-		columns = [_('Privacy'), _('Issue'), _('Status')],
-		edit_callback = edit_issue,
-		refresh_callback = refresh_issues,
-		single_selection = True,
-		can_return_empty = True,
-		ignore_OK_button = False,
-		left_extra_button = (
-			_('&Pick notes'),
-			_('Pick [%s] entries from selected health issue') % u'/'.join(i18n_soap_cats),
-			pick_soap_from_issue
-		),
-		list_tooltip_callback = get_issue_tooltip
-	)
-
-	if issues_picked_from is None:
-		return []
-
-	return selected_soap.values()
-
-#	selection_idxs = []
-#	for idx in range(len(all_epis)):
-#		if all_epis[idx]['pk_episode'] in selected_episode_pks:
-#			selection_idxs.append(idx)
-#	if len(selection_idxs) != 0:
-#		dlg.set_selections(selections = selection_idxs)
-#------------------------------------------------------------
-def select_narrative_by_episode(parent=None, soap_cats=None):
-
-	pat = gmPerson.gmCurrentPatient()
-	emr = pat.get_emr()
-
-	all_epis = [ epi for epi in emr.get_episodes(order_by = u'description') if epi.has_narrative ]
-	if len(all_epis) == 0:
-		gmDispatcher.send(signal = 'statustext', msg = _('No episodes with progress notes found.'))
-		return []
-
-	if parent is None:
-		parent = wx.GetApp().GetTopWindow()
-
-	if soap_cats is None:
-		soap_cats = u'soapu'
-	soap_cats = list(soap_cats)
-	i18n_soap_cats = [ gmClinNarrative.soap_cat2l10n[cat].upper() for cat in soap_cats ]
-
-	selected_soap = {}
-	#selected_narrative_pks = []
-
-	#-----------------------------------------------
-	def get_soap_tooltip(soap):
-		return soap.format(fancy = True, width = 60)
-	#-----------------------------------------------
-	def pick_soap_from_episode(episode):
-
-		if episode is None:
-			return False
-
-		narr_for_epi = emr.get_clin_narrative(episodes = [episode['pk_episode']], soap_cats = soap_cats)
-
-		if len(narr_for_epi) == 0:
-			gmDispatcher.send(signal = 'statustext', msg = _('No narrative available for selected episode.'))
-			return True
-
-		selected_narr = gmListWidgets.get_choices_from_list (
-			parent = parent,
-			msg = _('Pick the [%s] narrative you want to include in the report.') % u'/'.join(i18n_soap_cats),
-			caption = _('Picking [%s] from %s%s%s') % (
-				u'/'.join(i18n_soap_cats),
-				gmTools.u_left_double_angle_quote,
-				episode['description'],
-				gmTools.u_right_double_angle_quote
-			),
-			columns = [_('When'), _('Who'), _('Type'), _('Entry')],
-			choices = [ [
-				gmDateTime.pydt_strftime(narr['date'], '%Y %b %d  %H:%M', accuracy = gmDateTime.acc_minutes),
-				narr['modified_by'],
-				gmClinNarrative.soap_cat2l10n[narr['soap_cat']],
-				narr['narrative'].replace('\n', '//').replace('\r', '//')
-			] for narr in narr_for_epi ],
-			data = narr_for_epi,
-			#selections=None,
-			#edit_callback=None,
-			single_selection = False,
-			can_return_empty = False,
-			list_tooltip_callback = get_soap_tooltip
-		)
-
-		if selected_narr is None:
-			return True
-
-		for narr in selected_narr:
-			selected_soap[narr['pk_narrative']] = narr
-
-		return True
-
-#		selection_idxs = []
-#		for idx in range(len(narr_for_epi)):
-#			if narr_for_epi[idx]['pk_narrative'] in selected_narrative_pks:
-#				selection_idxs.append(idx)
-#		if len(selection_idxs) != 0:
-#			dlg.set_selections(selections = selection_idxs)
-
-#		selected_narrative_pks = [ i['pk_narrative'] for i in selected_narr ]
-#		for narr in selected_narr:
-#			selected_soap[narr['pk_narrative']] = narr
-#
-#		print "before returning from picking soap"
-#
-#		return True
-#	#-----------------------------------------------
-	def edit_episode(episode):
-		return gmEMRStructWidgets.edit_episode(parent = parent, episode = episode)
-	#-----------------------------------------------
-	def refresh_episodes(lctrl):
-		all_epis = [ epi for epi in emr.get_episodes(order_by = u'description') if epi.has_narrative ]
-		lctrl.set_string_items ([ [
-				u'%s%s' % (e['description'], gmTools.coalesce(e['health_issue'], u'', u' (%s)')),
-				gmTools.bool2subst(e['episode_open'], _('open'), _('closed'))
-			] for e in all_epis
-		])
-		lctrl.set_data(all_epis)
-	#-----------------------------------------------
-	def get_episode_tooltip(episode):
-		return episode.format (
-			patient = pat,
-			with_encounters = False,
-			with_documents = False,
-			with_hospital_stays = False,
-			with_procedures = False,
-			with_family_history = False,
-			with_tests = False,
-			with_vaccinations = False
-		)
-	#-----------------------------------------------
-	#selected_episode_pks = []
-
-	epis_picked_from = gmListWidgets.get_choices_from_list (
-		parent = parent,
-		msg = _('\n Select the episode you want to report on.'),
-		caption = _('Picking [%s] from episodes') % u'/'.join(i18n_soap_cats),
-		columns = [_('Episode'), _('Status')],
-		edit_callback = edit_episode,
-		refresh_callback = refresh_episodes,
-		single_selection = True,
-		can_return_empty = True,
-		ignore_OK_button = False,
-		left_extra_button = (
-			_('&Pick notes'),
-			_('Pick [%s] entries from selected episode') % u'/'.join(i18n_soap_cats),
-			pick_soap_from_episode
-		),
-		list_tooltip_callback = get_episode_tooltip
-	)
-
-	if epis_picked_from is None:
-		return []
-
-	return selected_soap.values()
-
-#	selection_idxs = []
-#	for idx in range(len(all_epis)):
-#		if all_epis[idx]['pk_episode'] in selected_episode_pks:
-#			selection_idxs.append(idx)
-#	if len(selection_idxs) != 0:
-#		dlg.set_selections(selections = selection_idxs)
-#------------------------------------------------------------
-def select_narrative_from_episodes(parent=None, soap_cats=None):
-	"""soap_cats needs to be a list"""
-
-	pat = gmPerson.gmCurrentPatient()
-	emr = pat.get_emr()
-
-	if parent is None:
-		parent = wx.GetApp().GetTopWindow()
-
-	selected_soap = {}
-	selected_issue_pks = []
-	selected_episode_pks = []
-	selected_narrative_pks = []
-
-	while 1:
-		# 1) select health issues to select episodes from
-		all_issues = emr.get_health_issues()
-		all_issues.insert(0, gmEMRStructItems.get_dummy_health_issue())
-		dlg = gmEMRStructWidgets.cIssueListSelectorDlg (
-			parent = parent,
-			id = -1,
-			issues = all_issues,
-			msg = _('\n In the list below mark the health issues you want to report on.\n')
-		)
-		selection_idxs = []
-		for idx in range(len(all_issues)):
-			if all_issues[idx]['pk_health_issue'] in selected_issue_pks:
-				selection_idxs.append(idx)
-		if len(selection_idxs) != 0:
-			dlg.set_selections(selections = selection_idxs)
-		btn_pressed = dlg.ShowModal()
-		selected_issues = dlg.get_selected_item_data()
-		dlg.Destroy()
-
-		if btn_pressed == wx.ID_CANCEL:
-			return selected_soap.values()
-
-		selected_issue_pks = [ i['pk_health_issue'] for i in selected_issues ]
-
-		while 1:
-			# 2) select episodes to select items from
-			all_epis = emr.get_episodes(issues = selected_issue_pks)
-
-			if len(all_epis) == 0:
-				gmDispatcher.send(signal = 'statustext', msg = _('No episodes recorded for the health issues selected.'))
-				break
-
-			dlg = gmEMRStructWidgets.cEpisodeListSelectorDlg (
-				parent = parent,
-				id = -1,
-				episodes = all_epis,
-				msg = _(
-					'\n These are the episodes known for the health issues just selected.\n\n'
-					' Now, mark the the episodes you want to report on.\n'
-				)
-			)
-			selection_idxs = []
-			for idx in range(len(all_epis)):
-				if all_epis[idx]['pk_episode'] in selected_episode_pks:
-					selection_idxs.append(idx)
-			if len(selection_idxs) != 0:
-				dlg.set_selections(selections = selection_idxs)
-			btn_pressed = dlg.ShowModal()
-			selected_epis = dlg.get_selected_item_data()
-			dlg.Destroy()
-
-			if btn_pressed == wx.ID_CANCEL:
-				break
-
-			selected_episode_pks = [ i['pk_episode'] for i in selected_epis ]
-
-			# 3) select narrative corresponding to the above constraints
-			all_narr = emr.get_clin_narrative(episodes = selected_episode_pks, soap_cats = soap_cats)
-
-			if len(all_narr) == 0:
-				gmDispatcher.send(signal = 'statustext', msg = _('No narrative available for selected episodes.'))
-				continue
-
-			dlg = cNarrativeListSelectorDlg (
-				parent = parent,
-				id = -1,
-				narrative = all_narr,
-				msg = _(
-					'\n This is the narrative (type %s) for the chosen episodes.\n\n'
-					' Now, mark the entries you want to include in your report.\n'
-				) % u'/'.join([ gmClinNarrative.soap_cat2l10n[cat] for cat in gmTools.coalesce(soap_cats, list(u'soapu')) ])
-			)
-			selection_idxs = []
-			for idx in range(len(all_narr)):
-				if all_narr[idx]['pk_narrative'] in selected_narrative_pks:
-					selection_idxs.append(idx)
-			if len(selection_idxs) != 0:
-				dlg.set_selections(selections = selection_idxs)
-			btn_pressed = dlg.ShowModal()
-			selected_narr = dlg.get_selected_item_data()
-			dlg.Destroy()
-
-			if btn_pressed == wx.ID_CANCEL:
-				continue
-
-			selected_narrative_pks = [ i['pk_narrative'] for i in selected_narr ]
-			for narr in selected_narr:
-				selected_soap[narr['pk_narrative']] = narr
+# narrative related widgets
 #------------------------------------------------------------
 class cNarrativeListSelectorDlg(gmListWidgets.cGenericListSelectorDlg):
 
@@ -871,10 +63,11 @@ class cNarrativeListSelectorDlg(gmListWidgets.cGenericListSelectorDlg):
 		self._LCTRL_items.set_columns([_('when'), _('who'), _('type'), _('entry')]) #, _('Episode'), u'', _('Health Issue')])
 		# FIXME: date used should be date of encounter, not date_modified
 		self._LCTRL_items.set_string_items (
-			items = [ [narr['date'].strftime('%x %H:%M'), narr['modified_by'], gmClinNarrative.soap_cat2l10n[narr['soap_cat']], narr['narrative'].replace('\n', '/').replace('\r', '/')] for narr in narrative ]
+			items = [ [narr['date'].strftime('%x %H:%M'), narr['modified_by'], gmSoapDefs.soap_cat2l10n[narr['soap_cat']], narr['narrative'].replace('\n', '/').replace('\r', '/')] for narr in narrative ]
 		)
 		self._LCTRL_items.set_column_widths()
 		self._LCTRL_items.set_data(data = narrative)
+
 #------------------------------------------------------------
 from Gnumed.wxGladeWidgets import wxgMoveNarrativeDlg
 
@@ -925,6 +118,8 @@ class cMoveNarrativeDlg(wxgMoveNarrativeDlg.wxgMoveNarrativeDlg):
 			self.EndModal(wx.ID_OK)
 		else:
 			self.Close()
+
+#============================================================
 #============================================================
 from Gnumed.wxGladeWidgets import wxgSoapPluginPnl
 
@@ -960,15 +155,30 @@ class cSoapPluginPnl(wxgSoapPluginPnl.wxgSoapPluginPnl, gmRegetMixin.cRegetOnPai
 	def __init_ui(self):
 		self._LCTRL_active_problems.set_columns([_('Last'), _('Problem'), _('In health issue')])
 		self._LCTRL_active_problems.set_string_items()
+		self._LCTRL_active_problems.extend_popup_menu_callback = self._extend_popup_menu
 
 		self._splitter_main.SetSashGravity(0.5)
 		self._splitter_left.SetSashGravity(0.5)
 
 		splitter_size = self._splitter_main.GetSizeTuple()[0]
-		self._splitter_main.SetSashPosition(splitter_size * 3 / 10, True)
+		self._splitter_main.SetSashPosition(splitter_size * 3 // 10, True)
 
 		splitter_size = self._splitter_left.GetSizeTuple()[1]
-		self._splitter_left.SetSashPosition(splitter_size * 6 / 20, True)
+		self._splitter_left.SetSashPosition(splitter_size * 6 // 20, True)
+
+	#--------------------------------------------------------
+	def _extend_popup_menu(self, menu=None):
+		problem = self._LCTRL_active_problems.get_selected_item_data(only_one = True)
+		if problem is None:
+			return
+		self.__focussed_problem = problem
+
+		menu_item = menu.Append(-1, _('Edit'))
+		if self.__focussed_problem['type'] == u'issue':
+			self.Bind(wx.EVT_MENU, self._on_edit_issue, menu_item)
+		if self.__focussed_problem['type'] == u'episode':
+			self.Bind(wx.EVT_MENU, self._on_edit_episode, menu_item)
+
 	#--------------------------------------------------------
 	def __reset_ui_content(self):
 		"""Clear all information from input panel."""
@@ -1178,20 +388,13 @@ class cSoapPluginPnl(wxgSoapPluginPnl.wxgSoapPluginPnl, gmRegetMixin.cRegetOnPai
 		"""Show related note at the bottom."""
 		pass
 	#--------------------------------------------------------
-	def _on_problem_rclick(self, event):
-		problem = self._LCTRL_active_problems.get_selected_item_data(only_one = True)
-		if problem is None:
-			return True
+	def _on_edit_issue(self, evt):
+		gmEMRStructWidgets.edit_health_issue(parent = self, issue = self.__focussed_problem.get_as_health_issue())
 
-		if problem['type'] == u'issue':
-			gmEMRStructWidgets.edit_health_issue(parent = self, issue = problem.get_as_health_issue())
-			return
-
-		if problem['type'] == u'episode':
-			gmEMRStructWidgets.edit_episode(parent = self, episode = problem.get_as_episode())
-			return
+	#--------------------------------------------------------
+	def _on_edit_episode(self, evt):
+		gmEMRStructWidgets.edit_episode(parent = self, episode = self.__focussed_problem.get_as_episode())
 
-		event.Skip()
 	#--------------------------------------------------------
 	def _on_problem_selected(self, event):
 		"""Show related note at the bottom."""
@@ -1257,13 +460,15 @@ class cSoapPluginPnl(wxgSoapPluginPnl.wxgSoapPluginPnl, gmRegetMixin.cRegetOnPai
 from Gnumed.wxGladeWidgets import wxgFancySoapEditorPnl
 
 class cFancySoapEditorPnl(wxgFancySoapEditorPnl.wxgFancySoapEditorPnl):
-	"""A panel holding everything needed to edit
+	"""A panel holding everything needed to edit in context:
 
 		- encounter metadata
-		- textual progress notes
-		- visual progress notes
+		- progress notes
+			- textual
+			- visual
+		- episode summary
 
-	in context. Does NOT act on the current patient.
+	Does NOT act on the current patient.
 	"""
 	def __init__(self, *args, **kwargs):
 
@@ -1282,8 +487,7 @@ class cFancySoapEditorPnl(wxgFancySoapEditorPnl.wxgFancySoapEditorPnl):
 		return self.__pat
 
 	def _set_patient(self, patient):
-		#if 
-		#	self.__pat.register_before_switching_from_patient_callback(callback = self._before_switching_from_patient_callback)
+		#self.__pat.register_before_switching_from_patient_callback(callback = self._before_switching_from_patient_callback)
 		self.__pat = patient
 		self.__refresh_encounter()
 		self.__refresh_soap_notebook()
@@ -1351,12 +555,14 @@ class cFancySoapEditorPnl(wxgFancySoapEditorPnl.wxgFancySoapEditorPnl):
 			if not epi['episode_open']:
 				continue
 			self._NB_soap_editors.add_editor(problem = epi)
+
 	#--------------------------------------------------------
 	def __reset_encounter_fields(self):
 		self._TCTRL_rfe.SetValue(u'')
 		self._PRW_rfe_codes.SetText(suppress_smarts = True)
 		self._TCTRL_aoe.SetValue(u'')
 		self._PRW_aoe_codes.SetText(suppress_smarts = True)
+
 	#--------------------------------------------------------
 	def __refresh_encounter(self):
 		"""Update encounter fields."""
@@ -1380,9 +586,11 @@ class cFancySoapEditorPnl(wxgFancySoapEditorPnl.wxgFancySoapEditorPnl):
 		self._PRW_rfe_codes.Refresh()
 		self._TCTRL_aoe.Refresh()
 		self._PRW_aoe_codes.Refresh()
+
 	#--------------------------------------------------------
 	def __refresh_current_editor(self):
 		self._NB_soap_editors.refresh_current_editor()
+
 #	#--------------------------------------------------------
 #	def __encounter_modified(self):
 #		"""Assumes that the field data is valid."""
@@ -1559,7 +767,7 @@ class cFancySoapEditorPnl(wxgFancySoapEditorPnl.wxgFancySoapEditorPnl):
 class cSoapNoteInputNotebook(wx.Notebook):
 	"""A notebook holding panels with progress note editors.
 
-	There can be one or several progress note editor panel
+	There can be one or several progress note editor panels
 	for each episode being worked on. The editor class in
 	each panel is configurable.
 
@@ -1602,7 +810,7 @@ class cSoapNoteInputNotebook(wx.Notebook):
 
 		# new unassociated problem or dupes allowed
 		if allow_same_problem:
-			new_page = cSoapNoteExpandoEditAreaPnl(parent = self, id = -1, problem = problem_to_add)
+			new_page = gmProgressNotesEAWidgets.cProgressNotesEAPnl(parent = self, id = -1, problem = problem_to_add)
 			result = self.AddPage (
 				page = new_page,
 				text = label,
@@ -1643,7 +851,7 @@ class cSoapNoteInputNotebook(wx.Notebook):
 				continue
 
 		# - or add new editor
-		new_page = cSoapNoteExpandoEditAreaPnl(parent = self, id = -1, problem = problem_to_add)
+		new_page = gmProgressNotesEAWidgets.cProgressNotesEAPnl(parent = self, id = -1, problem = problem_to_add)
 		result = self.AddPage (
 			page = new_page,
 			text = label,
@@ -1764,804 +972,6 @@ class cSoapNoteInputNotebook(wx.Notebook):
 		self.GetCurrentPage().add_visual_progress_note()
 
 #============================================================
-from Gnumed.wxGladeWidgets import wxgSoapNoteExpandoEditAreaPnl
-
-class cSoapNoteExpandoEditAreaPnl(wxgSoapNoteExpandoEditAreaPnl.wxgSoapNoteExpandoEditAreaPnl):
-	"""An Edit Area like panel for entering progress notes.
-
-	Subjective:					Codes:
-		expando text ctrl
-	Objective:					Codes:
-		expando text ctrl
-	Assessment:					Codes:
-		expando text ctrl
-	Plan:						Codes:
-		expando text ctrl
-	visual progress notes
-		panel with images
-	Episode synopsis:			Codes:
-		text ctrl
-
-	- knows the problem this edit area is about
-	- can deal with issue or episode type problems
-	"""
-
-	def __init__(self, *args, **kwargs):
-
-		try:
-			self.problem = kwargs['problem']
-			del kwargs['problem']
-		except KeyError:
-			self.problem = None
-
-		wxgSoapNoteExpandoEditAreaPnl.wxgSoapNoteExpandoEditAreaPnl.__init__(self, *args, **kwargs)
-
-		self.soap_fields = [
-			self._TCTRL_Soap,
-			self._TCTRL_sOap,
-			self._TCTRL_soAp,
-			self._TCTRL_soaP
-		]
-
-		self.__init_ui()
-		self.__register_interests()
-	#--------------------------------------------------------
-	def __init_ui(self):
-		self.refresh_summary()
-		if self.problem is not None:
-			if self.problem['summary'] is None:
-				self._TCTRL_episode_summary.SetValue(u'')
-		self.refresh_visual_soap()
-	#--------------------------------------------------------
-	def refresh(self):
-		self.refresh_summary()
-		self.refresh_visual_soap()
-	#--------------------------------------------------------
-	def refresh_summary(self):
-		self._TCTRL_episode_summary.SetValue(u'')
-		self._PRW_episode_codes.SetText(u'', self._PRW_episode_codes.list2data_dict([]))
-		self._LBL_summary.SetLabel(_('Episode synopsis'))
-
-		# new problem ?
-		if self.problem is None:
-			return
-
-		# issue-level problem ?
-		if self.problem['type'] == u'issue':
-			return
-
-		# episode-level problem
-		caption = _(u'Synopsis (%s)') % (
-			gmDateTime.pydt_strftime (
-				self.problem['modified_when'],
-				format = '%B %Y',
-				accuracy = gmDateTime.acc_days
-			)
-		)
-		self._LBL_summary.SetLabel(caption)
-
-		if self.problem['summary'] is not None:
-			self._TCTRL_episode_summary.SetValue(self.problem['summary'].strip())
-
-		val, data = self._PRW_episode_codes.generic_linked_codes2item_dict(self.problem.generic_codes)
-		self._PRW_episode_codes.SetText(val, data)
-	#--------------------------------------------------------
-	def refresh_visual_soap(self):
-		if self.problem is None:
-			self._PNL_visual_soap.refresh(document_folder = None)
-			return
-
-		if self.problem['type'] == u'issue':
-			self._PNL_visual_soap.refresh(document_folder = None)
-			return
-
-		if self.problem['type'] == u'episode':
-			pat = gmPerson.gmCurrentPatient()
-			doc_folder = pat.get_document_folder()
-			emr = pat.get_emr()
-			self._PNL_visual_soap.refresh (
-				document_folder = doc_folder,
-				episodes = [self.problem['pk_episode']],
-				encounter = emr.active_encounter['pk_encounter']
-			)
-			return
-	#--------------------------------------------------------
-	def clear(self):
-		for field in self.soap_fields:
-			field.SetValue(u'')
-		self._TCTRL_episode_summary.SetValue(u'')
-		self._LBL_summary.SetLabel(_('Episode synopsis'))
-		self._PRW_episode_codes.SetText(u'', self._PRW_episode_codes.list2data_dict([]))
-		self._PNL_visual_soap.clear()
-	#--------------------------------------------------------
-	def add_visual_progress_note(self):
-		fname, discard_unmodified = select_visual_progress_note_template(parent = self)
-		if fname is None:
-			return False
-
-		if self.problem is None:
-			issue = None
-			episode = None
-		elif self.problem['type'] == 'issue':
-			issue = self.problem['pk_health_issue']
-			episode = None
-		else:
-			issue = self.problem['pk_health_issue']
-			episode = gmEMRStructItems.problem2episode(self.problem)
-
-		wx.CallAfter (
-			edit_visual_progress_note,
-			filename = fname,
-			episode = episode,
-			discard_unmodified = discard_unmodified,
-			health_issue = issue
-		)
-	#--------------------------------------------------------
-	def save(self, emr=None, episode_name_candidates=None, encounter=None):
-
-		if self.empty:
-			return True
-
-		# new episode (standalone=unassociated or new-in-issue)
-		if (self.problem is None) or (self.problem['type'] == 'issue'):
-			episode = self.__create_new_episode(emr = emr, episode_name_candidates = episode_name_candidates)
-			# user cancelled
-			if episode is None:
-				return False
-		# existing episode
-		else:
-			episode = emr.problem2episode(self.problem)
-
-		if encounter is None:
-			encounter = emr.current_encounter['pk_encounter']
-
-		soap_notes = []
-		for note in self.soap:
-			saved, data = gmClinNarrative.create_clin_narrative (
-				soap_cat = note[0],
-				narrative = note[1],
-				episode_id = episode['pk_episode'],
-				encounter_id = encounter
-			)
-			if saved:
-				soap_notes.append(data)
-
-		# codes per narrative !
-#		for note in soap_notes:
-#			if note['soap_cat'] == u's':
-#				codes = self._PRW_Soap_codes
-#			elif note['soap_cat'] == u'o':
-#			elif note['soap_cat'] == u'a':
-#			elif note['soap_cat'] == u'p':
-
-		# set summary but only if not already set above for a
-		# newly created episode (either standalone or within
-		# a health issue)
-		if self.problem is not None:
-			if self.problem['type'] == 'episode':
-				episode['summary'] = self._TCTRL_episode_summary.GetValue().strip()
-				episode.save()
-
-		# codes for episode
-		episode.generic_codes = [ d['data'] for d in self._PRW_episode_codes.GetData() ]
-
-		return True
-	#--------------------------------------------------------
-	# internal helpers
-	#--------------------------------------------------------
-	def __create_new_episode(self, emr=None, episode_name_candidates=None):
-
-		episode_name_candidates.append(self._TCTRL_episode_summary.GetValue().strip())
-		for candidate in episode_name_candidates:
-			if candidate is None:
-				continue
-			epi_name = candidate.strip().replace('\r', '//').replace('\n', '//')
-			break
-
-		if self.problem is None:
-			msg = _(
-				u'Enter a short working name for this new problem\n'
-				u'(which will become a new, unassociated episode):\n'
-			)
-		else:
-			issue = emr.problem2issue(self.problem)
-			msg = _(
-				u'Enter a short working name for this new\n'
-				u'episode under the existing health issue\n'
-				u'\n'
-				u'"%s":\n'
-			) % issue['description']
-
-		dlg = wx.TextEntryDialog (
-			parent = self,
-			message = msg,
-			caption = _('Creating problem (episode) to save notelet under ...'),
-			defaultValue = epi_name,
-			style = wx.OK | wx.CANCEL | wx.CENTRE
-		)
-		decision = dlg.ShowModal()
-		if decision != wx.ID_OK:
-			return None
-
-		epi_name = dlg.GetValue().strip()
-		if epi_name == u'':
-			gmGuiHelpers.gm_show_error(_('Cannot save a new problem without a name.'), _('saving progress note'))
-			return None
-
-		# create episode
-		new_episode = emr.add_episode (
-			episode_name = epi_name[:45],
-			pk_health_issue = None,
-			is_open = True,
-			allow_dupes = True		# this ensures we get a new episode even if a same-name one already exists
-		)
-		new_episode['summary'] = self._TCTRL_episode_summary.GetValue().strip()
-		new_episode.save()
-
-		if self.problem is not None:
-			issue = emr.problem2issue(self.problem)
-			if not gmEMRStructWidgets.move_episode_to_issue(episode = new_episode, target_issue = issue, save_to_backend = True):
-				gmGuiHelpers.gm_show_warning (
-					_(
-						'The new episode:\n'
-						'\n'
-						' "%s"\n'
-						'\n'
-						'will remain unassociated despite the editor\n'
-						'having been invoked from the health issue:\n'
-						'\n'
-						' "%s"'
-					) % (
-						new_episode['description'],
-						issue['description']
-					),
-					_('saving progress note')
-				)
-
-		return new_episode
-	#--------------------------------------------------------
-	# event handling
-	#--------------------------------------------------------
-	def __register_interests(self):
-		for field in self.soap_fields:
-			wx_expando.EVT_ETC_LAYOUT_NEEDED(field, field.GetId(), self._on_expando_needs_layout)
-		wx_expando.EVT_ETC_LAYOUT_NEEDED(self._TCTRL_episode_summary, self._TCTRL_episode_summary.GetId(), self._on_expando_needs_layout)
-		gmDispatcher.connect(signal = u'blobs.doc_obj_mod_db', receiver = self.refresh_visual_soap)
-	#--------------------------------------------------------
-	def _on_expando_needs_layout(self, evt):
-		# need to tell ourselves to re-Layout to refresh scroll bars
-
-		# provoke adding scrollbar if needed
-		#self.Fit()				# works on Linux but not on Windows
-		self.FitInside()		# needed on Windows rather than self.Fit()
-
-		if self.HasScrollbar(wx.VERTICAL):
-			# scroll panel to show cursor
-			expando = self.FindWindowById(evt.GetId())
-			y_expando = expando.GetPositionTuple()[1]
-			h_expando = expando.GetSizeTuple()[1]
-			line_cursor = expando.PositionToXY(expando.GetInsertionPoint())[1] + 1
-			if expando.NumberOfLines == 0:
-				no_of_lines = 1
-			else:
-				no_of_lines = expando.NumberOfLines
-			y_cursor = int(round((float(line_cursor) / no_of_lines) * h_expando))
-			y_desired_visible = y_expando + y_cursor
-
-			y_view = self.ViewStart[1]
-			h_view = self.GetClientSizeTuple()[1]
-
-#			print "expando:", y_expando, "->", h_expando, ", lines:", expando.NumberOfLines
-#			print "cursor :", y_cursor, "at line", line_cursor, ", insertion point:", expando.GetInsertionPoint()
-#			print "wanted :", y_desired_visible
-#			print "view-y :", y_view
-#			print "scroll2:", h_view
-
-			# expando starts before view
-			if y_desired_visible < y_view:
-#				print "need to scroll up"
-				self.Scroll(0, y_desired_visible)
-
-			if y_desired_visible > h_view:
-#				print "need to scroll down"
-				self.Scroll(0, y_desired_visible)
-	#--------------------------------------------------------
-	# properties
-	#--------------------------------------------------------
-	def _get_soap(self):
-		soap_notes = []
-
-		tmp = self._TCTRL_Soap.GetValue().strip()
-		if tmp != u'':
-			soap_notes.append(['s', tmp])
-
-		tmp = self._TCTRL_sOap.GetValue().strip()
-		if tmp != u'':
-			soap_notes.append(['o', tmp])
-
-		tmp = self._TCTRL_soAp.GetValue().strip()
-		if tmp != u'':
-			soap_notes.append(['a', tmp])
-
-		tmp = self._TCTRL_soaP.GetValue().strip()
-		if tmp != u'':
-			soap_notes.append(['p', tmp])
-
-		return soap_notes
-
-	soap = property(_get_soap, lambda x:x)
-	#--------------------------------------------------------
-	def _get_empty(self):
-
-		# soap fields
-		for field in self.soap_fields:
-			if field.GetValue().strip() != u'':
-				return False
-
-		# summary
-		summary = self._TCTRL_episode_summary.GetValue().strip()
-		if self.problem is None:
-			if summary != u'':
-				return False
-		elif self.problem['type'] == u'issue':
-			if summary != u'':
-				return False
-		else:
-			if self.problem['summary'] is None:
-				if summary != u'':
-					return False
-			else:
-				if summary != self.problem['summary'].strip():
-					return False
-
-		# codes
-		new_codes = self._PRW_episode_codes.GetData()
-		if self.problem is None:
-			if len(new_codes) > 0:
-				return False
-		elif self.problem['type'] == u'issue':
-			if len(new_codes) > 0:
-				return False
-		else:
-			old_code_pks = self.problem.generic_codes
-			if len(old_code_pks) != len(new_codes):
-				return False
-			for code in new_codes:
-				if code['data'] not in old_code_pks:
-					return False
-
-		return True
-
-	empty = property(_get_empty, lambda x:x)
-#============================================================
-class cSoapLineTextCtrl(wx_expando.ExpandoTextCtrl, gmKeywordExpansionWidgets.cKeywordExpansion_TextCtrlMixin):
-
-	def __init__(self, *args, **kwargs):
-
-		wx_expando.ExpandoTextCtrl.__init__(self, *args, **kwargs)
-		gmKeywordExpansionWidgets.cKeywordExpansion_TextCtrlMixin.__init__(self)
-		self.enable_keyword_expansions()
-
-		self.__register_interests()
-	#------------------------------------------------
-	# monkeypatch platform expando.py
-	#------------------------------------------------
-	def _wrapLine(self, line, dc, width):
-
-		if (wx.MAJOR_VERSION >= 2) and (wx.MINOR_VERSION > 8):
-			return wx_expando.ExpandoTextCtrl._wrapLine(line, dc, width)
-
-		# THIS FIX LIFTED FROM TRUNK IN SVN:
-		# Estimate where the control will wrap the lines and
-		# return the count of extra lines needed.
-		pte = dc.GetPartialTextExtents(line)
-		width -= wx.SystemSettings.GetMetric(wx.SYS_VSCROLL_X)
-		idx = 0
-		start = 0
-		count = 0
-		spc = -1
-		while idx < len(pte):
-		    if line[idx] == ' ':
-		        spc = idx
-		    if pte[idx] - start > width:
-		        # we've reached the max width, add a new line
-		        count += 1
-		        # did we see a space? if so restart the count at that pos
-		        if spc != -1:
-		            idx = spc + 1
-		            spc = -1
-		        if idx < len(pte):
-		            start = pte[idx]
-		    else:
-		        idx += 1
-		return count
-	#------------------------------------------------
-	# event handling
-	#------------------------------------------------
-	def __register_interests(self):
-		#wx.EVT_KEY_DOWN (self, self.__on_key_down)
-		#wx.EVT_KEY_UP (self, self.__OnKeyUp)
-		wx.EVT_SET_FOCUS(self, self.__on_focus)
-	#--------------------------------------------------------
-	def __on_focus(self, evt):
-		evt.Skip()
-		wx.CallAfter(self._after_on_focus)
-	#--------------------------------------------------------
-	def _after_on_focus(self):
-		# robustify against PyDeadObjectError - since we are called
-		# from wx's CallAfter this SoapCtrl may be gone by the time
-		# we get to handling this layout request, say, on patient
-		# change or some such
-		if not self:
-			return
-		#wx. CallAfter(self._adjustCtrl)
-		evt = wx.PyCommandEvent(wx_expando.wxEVT_ETC_LAYOUT_NEEDED, self.GetId())
-		evt.SetEventObject(self)
-		#evt.height = None
-		#evt.numLines = None
-		#evt.height = self.GetSize().height
-		#evt.numLines = self.GetNumberOfLines()
-		self.GetEventHandler().ProcessEvent(evt)
-
-#============================================================
-# visual progress notes
-#============================================================
-def configure_visual_progress_note_editor():
-
-	def is_valid(value):
-
-		if value is None:
-			gmDispatcher.send (
-				signal = 'statustext',
-				msg = _('You need to actually set an editor.'),
-				beep = True
-			)
-			return False, value
-
-		if value.strip() == u'':
-			gmDispatcher.send (
-				signal = 'statustext',
-				msg = _('You need to actually set an editor.'),
-				beep = True
-			)
-			return False, value
-
-		found, binary = gmShellAPI.detect_external_binary(value)
-		if not found:
-			gmDispatcher.send (
-				signal = 'statustext',
-				msg = _('The command [%s] is not found.') % value,
-				beep = True
-			)
-			return True, value
-
-		return True, binary
-	#------------------------------------------
-	cmd = gmCfgWidgets.configure_string_option (
-		message = _(
-			'Enter the shell command with which to start\n'
-			'the image editor for visual progress notes.\n'
-			'\n'
-			'Any "%(img)s" included with the arguments\n'
-			'will be replaced by the file name of the\n'
-			'note template.'
-		),
-		option = u'external.tools.visual_soap_editor_cmd',
-		bias = 'user',
-		default_value = None,
-		validator = is_valid
-	)
-
-	return cmd
-#============================================================
-def select_file_as_visual_progress_note_template(parent=None):
-	if parent is None:
-		parent = wx.GetApp().GetTopWindow()
-
-	dlg = wx.FileDialog (
-		parent = parent,
-		message = _('Choose file to use as template for new visual progress note'),
-		defaultDir = os.path.expanduser('~'),
-		defaultFile = '',
-		#wildcard = "%s (*)|*|%s (*.*)|*.*" % (_('all files'), _('all files (Win)')),
-		style = wx.OPEN | wx.FILE_MUST_EXIST
-	)
-	result = dlg.ShowModal()
-
-	if result == wx.ID_CANCEL:
-		dlg.Destroy()
-		return None
-
-	full_filename = dlg.GetPath()
-	dlg.Hide()
-	dlg.Destroy()
-	return full_filename
-#------------------------------------------------------------
-def select_visual_progress_note_template(parent=None):
-
-	if parent is None:
-		parent = wx.GetApp().GetTopWindow()
-
-	dlg = gmGuiHelpers.c3ButtonQuestionDlg (
-		parent,
-		-1,
-		caption = _('Visual progress note source'),
-		question = _('From which source do you want to pick the image template ?'),
-		button_defs = [
-			{'label': _('Database'), 'tooltip': _('List of templates in the database.'), 'default': True},
-			{'label': _('File'), 'tooltip': _('Files in the filesystem.'), 'default': False},
-			{'label': _('Device'), 'tooltip': _('Image capture devices (scanners, cameras, etc)'), 'default': False}
-		]
-	)
-	result = dlg.ShowModal()
-	dlg.Destroy()
-
-	# 1) select from template
-	if result == wx.ID_YES:
-		_log.debug('visual progress note template from: database template')
-		from Gnumed.wxpython import gmFormWidgets
-		template = gmFormWidgets.manage_form_templates (
-			parent = parent,
-			template_types = [gmDocuments.DOCUMENT_TYPE_VISUAL_PROGRESS_NOTE],
-			active_only = True
-		)
-		if template is None:
-			return (None, None)
-		filename = template.export_to_file()
-		if filename is None:
-			gmDispatcher.send(signal = u'statustext', msg = _('Cannot export visual progress note template for [%s].') % template['name_long'])
-			return (None, None)
-		return (filename, True)
-
-	# 2) select from disk file
-	if result == wx.ID_NO:
-		_log.debug('visual progress note template from: disk file')
-		fname = select_file_as_visual_progress_note_template(parent = parent)
-		if fname is None:
-			return (None, None)
-		# create a copy of the picked file -- don't modify the original
-		ext = os.path.splitext(fname)[1]
-		tmp_name = gmTools.get_unique_filename(suffix = ext)
-		_log.debug('visual progress note from file: [%s] -> [%s]', fname, tmp_name)
-		shutil.copy2(fname, tmp_name)
-		return (tmp_name, False)
-
-	# 3) acquire from capture device
-	if result == wx.ID_CANCEL:
-		_log.debug('visual progress note template from: image capture device')
-		fnames = gmDocumentWidgets.acquire_images_from_capture_device(device = None, calling_window = parent)
-		if fnames is None:
-			return (None, None)
-		if len(fnames) == 0:
-			return (None, None)
-		return (fnames[0], False)
-
-	_log.debug('no visual progress note template source selected')
-	return (None, None)
-#------------------------------------------------------------
-def edit_visual_progress_note(filename=None, episode=None, discard_unmodified=False, doc_part=None, health_issue=None):
-	"""This assumes <filename> contains an image which can be handled by the configured image editor."""
-
-	if doc_part is not None:
-		filename = doc_part.export_to_file()
-		if filename is None:
-			gmDispatcher.send(signal = u'statustext', msg = _('Cannot export visual progress note to file.'))
-			return None
-
-	dbcfg = gmCfg.cCfgSQL()
-	cmd = dbcfg.get2 (
-		option = u'external.tools.visual_soap_editor_cmd',
-		workplace = gmPraxis.gmCurrentPraxisBranch().active_workplace,
-		bias = 'user'
-	)
-
-	if cmd is None:
-		gmDispatcher.send(signal = u'statustext', msg = _('Editor for visual progress note not configured.'), beep = False)
-		cmd = configure_visual_progress_note_editor()
-		if cmd is None:
-			gmDispatcher.send(signal = u'statustext', msg = _('Editor for visual progress note not configured.'), beep = True)
-			return None
-
-	if u'%(img)s' in cmd:
-		cmd = cmd % {u'img': filename}
-	else:
-		cmd = u'%s %s' % (cmd, filename)
-
-	if discard_unmodified:
-		original_stat = os.stat(filename)
-		original_md5 = gmTools.file2md5(filename)
-
-	success = gmShellAPI.run_command_in_shell(cmd, blocking = True)
-	if not success:
-		gmGuiHelpers.gm_show_error (
-			_(
-				'There was a problem with running the editor\n'
-				'for visual progress notes.\n'
-				'\n'
-				' [%s]\n'
-				'\n'
-			) % cmd,
-			_('Editing visual progress note')
-		)
-		return None
-
-	try:
-		open(filename, 'r').close()
-	except StandardError:
-		_log.exception('problem accessing visual progress note file [%s]', filename)
-		gmGuiHelpers.gm_show_error (
-			_(
-				'There was a problem reading the visual\n'
-				'progress note from the file:\n'
-				'\n'
-				' [%s]\n'
-				'\n'
-			) % filename,
-			_('Saving visual progress note')
-		)
-		return None
-
-	if discard_unmodified:
-		modified_stat = os.stat(filename)
-		# same size ?
-		if original_stat.st_size == modified_stat.st_size:
-			modified_md5 = gmTools.file2md5(filename)
-			# same hash ?
-			if original_md5 == modified_md5:
-				_log.debug('visual progress note (template) not modified')
-				# ask user to decide
-				msg = _(
-					u'You either created a visual progress note from a template\n'
-					u'in the database (rather than from a file on disk) or you\n'
-					u'edited an existing visual progress note.\n'
-					u'\n'
-					u'The template/original was not modified at all, however.\n'
-					u'\n'
-					u'Do you still want to save the unmodified image as a\n'
-					u'visual progress note into the EMR of the patient ?\n'
-				)
-				save_unmodified = gmGuiHelpers.gm_show_question (
-					msg,
-					_('Saving visual progress note')
-				)
-				if not save_unmodified:
-					_log.debug('user discarded unmodified note')
-					return
-
-	if doc_part is not None:
-		_log.debug('updating visual progress note')
-		doc_part.update_data_from_file(fname = filename)
-		doc_part.set_reviewed(technically_abnormal = False, clinically_relevant = True)
-		return None
-
-	if not isinstance(episode, gmEMRStructItems.cEpisode):
-		if episode is None:
-			episode = _('visual progress notes')
-		pat = gmPerson.gmCurrentPatient()
-		emr = pat.get_emr()
-		episode = emr.add_episode(episode_name = episode.strip(), pk_health_issue = health_issue, is_open = False)
-
-	doc = gmDocumentWidgets.save_file_as_new_document (
-		filename = filename,
-		document_type = gmDocuments.DOCUMENT_TYPE_VISUAL_PROGRESS_NOTE,
-		episode = episode,
-		unlock_patient = False
-	)
-	doc.set_reviewed(technically_abnormal = False, clinically_relevant = True)
-
-	return doc
-#============================================================
-class cVisualSoapTemplatePhraseWheel(gmPhraseWheel.cPhraseWheel):
-	"""Phrasewheel to allow selection of visual SOAP template."""
-
-	def __init__(self, *args, **kwargs):
-
-		gmPhraseWheel.cPhraseWheel.__init__ (self, *args, **kwargs)
-
-		query = u"""
-SELECT
-	pk AS data,
-	name_short AS list_label,
-	name_sort AS field_label
-FROM
-	ref.paperwork_templates
-WHERE
-	fk_template_type = (SELECT pk FROM ref.form_types WHERE name = '%s') AND (
-		name_long %%(fragment_condition)s
-			OR
-		name_short %%(fragment_condition)s
-	)
-ORDER BY list_label
-LIMIT 15
-"""	% gmDocuments.DOCUMENT_TYPE_VISUAL_PROGRESS_NOTE
-
-		mp = gmMatchProvider.cMatchProvider_SQL2(queries = [query])
-		mp.setThresholds(2, 3, 5)
-
-		self.matcher = mp
-		self.selection_only = True
-	#--------------------------------------------------------
-	def _data2instance(self):
-		if self.GetData() is None:
-			return None
-
-		return gmForms.cFormTemplate(aPK_obj = self.GetData())
-#============================================================
-from Gnumed.wxGladeWidgets import wxgVisualSoapPresenterPnl
-
-class cVisualSoapPresenterPnl(wxgVisualSoapPresenterPnl.wxgVisualSoapPresenterPnl):
-
-	def __init__(self, *args, **kwargs):
-		wxgVisualSoapPresenterPnl.wxgVisualSoapPresenterPnl.__init__(self, *args, **kwargs)
-		self._SZR_soap = self.GetSizer()
-		self.__bitmaps = []
-	#--------------------------------------------------------
-	# external API
-	#--------------------------------------------------------
-	def refresh(self, document_folder=None, episodes=None, encounter=None):
-
-		self.clear()
-		if document_folder is not None:
-			soap_docs = document_folder.get_visual_progress_notes(episodes = episodes, encounter = encounter)
-			if len(soap_docs) > 0:
-				for soap_doc in soap_docs:
-					parts = soap_doc.parts
-					if len(parts) == 0:
-						continue
-					part = parts[0]
-					fname = part.export_to_file()
-					if fname is None:
-						continue
-
-					# create bitmap
-					img = gmGuiHelpers.file2scaled_image (
-						filename = fname,
-						height = 30
-					)
-					#bmp = wx.StaticBitmap(self, -1, img, style = wx.NO_BORDER)
-					bmp = wx_genstatbmp.GenStaticBitmap(self, -1, img, style = wx.NO_BORDER)
-
-					# create tooltip
-					img = gmGuiHelpers.file2scaled_image (
-						filename = fname,
-						height = 150
-					)
-					tip = agw_stt.SuperToolTip (
-						u'',
-						bodyImage = img,
-						header = _('Created: %s') % gmDateTime.pydt_strftime(part['date_generated'], '%Y %b %d'),
-						footer = gmTools.coalesce(part['doc_comment'], u'').strip()
-					)
-					tip.SetTopGradientColor('white')
-					tip.SetMiddleGradientColor('white')
-					tip.SetBottomGradientColor('white')
-					tip.SetTarget(bmp)
-
-					bmp.doc_part = part
-					bmp.Bind(wx.EVT_LEFT_UP, self._on_bitmap_leftclicked)
-					# FIXME: add context menu for Delete/Clone/Add/Configure
-					self._SZR_soap.Add(bmp, 0, wx.LEFT | wx.RIGHT | wx.TOP | wx.BOTTOM | wx.EXPAND, 3)
-					self.__bitmaps.append(bmp)
-
-		self.GetParent().Layout()
-	#--------------------------------------------------------
-	def clear(self):
-		while len(self._SZR_soap.GetChildren()) > 0:
-			self._SZR_soap.Detach(0)
-#		for child_idx in range(len(self._SZR_soap.GetChildren())):
-#			self._SZR_soap.Detach(child_idx)
-		for bmp in self.__bitmaps:
-			bmp.Destroy()
-		self.__bitmaps = []
-	#--------------------------------------------------------
-	def _on_bitmap_leftclicked(self, evt):
-		wx.CallAfter (
-			edit_visual_progress_note,
-			doc_part = evt.GetEventObject().doc_part,
-			discard_unmodified = True
-		)
-
-#============================================================
 #============================================================
 from Gnumed.wxGladeWidgets import wxgSimpleSoapPluginPnl
 
@@ -2585,7 +995,7 @@ class cSimpleSoapPluginPnl(wxgSimpleSoapPluginPnl.wxgSimpleSoapPluginPnl, gmRege
 
 		self._splitter_main.SetSashGravity(0.5)
 		splitter_width = self._splitter_main.GetSizeTuple()[0]
-		self._splitter_main.SetSashPosition(splitter_width / 2, True)
+		self._splitter_main.SetSashPosition(splitter_width // 2, True)
 
 		self._TCTRL_soap.Disable()
 		self._BTN_save_soap.Disable()
@@ -2812,31 +1222,6 @@ if __name__ == '__main__':
 	gmI18N.install_domain(domain = 'gnumed')
 
 	#----------------------------------------
-	def test_select_narrative_from_episodes():
-		pat = gmPersonSearch.ask_for_patient()
-		set_active_patient(patient = pat)
-		app = wx.PyWidgetTester(size = (200, 200))
-		sels = select_narrative_from_episodes_new()
-		print "selected:"
-		for sel in sels:
-			print sel
-	#----------------------------------------
-	def test_select_narrative():
-		pat = gmPersonSearch.ask_for_patient()
-		set_active_patient(patient = pat)
-		app = wx.PyWidgetTester(size = (200, 200))
-		sels = select_narrative(parent=None, soap_cats = None)
-		print "selected:"
-		for sel in sels:
-			print sel
-	#----------------------------------------
-	def test_cSoapNoteExpandoEditAreaPnl():
-		pat = gmPersonSearch.ask_for_patient()
-		application = wx.PyWidgetTester(size=(800,500))
-		soap_input = cSoapNoteExpandoEditAreaPnl(application.frame, -1)
-		application.frame.Show(True)
-		application.MainLoop()
-	#----------------------------------------
 	def test_cSoapPluginPnl():
 		patient = gmPersonSearch.ask_for_patient()
 		if patient is None:
@@ -2850,9 +1235,4 @@ if __name__ == '__main__':
 		soap_input._schedule_data_reget()
 		application.MainLoop()
 	#----------------------------------------
-	#test_select_narrative_from_episodes()
-	test_select_narrative()
-	#test_cSoapNoteExpandoEditAreaPnl()
 	#test_cSoapPluginPnl()
-
-#============================================================
diff --git a/client/wxpython/gmNarrativeWorkflows.py b/client/wxpython/gmNarrativeWorkflows.py
new file mode 100644
index 0000000..9b65692
--- /dev/null
+++ b/client/wxpython/gmNarrativeWorkflows.py
@@ -0,0 +1,884 @@
+"""GNUmed narrative workflows."""
+#================================================================
+__author__ = "Karsten Hilbert <Karsten.Hilbert at gmx.net>"
+__license__ = "GPL v2 or later (details at http://www.gnu.org)"
+
+import sys
+import logging
+import os.path
+import time
+
+
+import wx
+
+
+if __name__ == '__main__':
+	sys.path.insert(0, '../../')
+
+from Gnumed.pycommon import gmI18N
+
+if __name__ == '__main__':
+	gmI18N.activate_locale()
+	gmI18N.install_domain()
+
+from Gnumed.pycommon import gmDispatcher
+from Gnumed.pycommon import gmTools
+from Gnumed.pycommon import gmDateTime
+
+from Gnumed.business import gmPerson
+from Gnumed.business import gmStaff
+from Gnumed.business import gmEMRStructItems
+from Gnumed.business import gmClinNarrative
+from Gnumed.business import gmSoapDefs
+
+from Gnumed.wxpython import gmListWidgets
+from Gnumed.wxpython import gmEMRStructWidgets
+from Gnumed.wxpython import gmEncounterWidgets
+from Gnumed.wxpython import gmGuiHelpers
+from Gnumed.wxpython import gmNarrativeWidgets
+from Gnumed.wxpython.gmPatSearchWidgets import set_active_patient
+
+from Gnumed.exporters import gmPatientExporter
+
+
+_log = logging.getLogger('gm.ui')
+#============================================================
+# narrative related widgets/functions
+#------------------------------------------------------------
+def move_progress_notes_to_another_encounter(parent=None, encounters=None, episodes=None, patient=None, move_all=False):
+
+	# sanity checks
+	if patient is None:
+		patient = gmPerson.gmCurrentPatient()
+
+	if not patient.connected:
+		gmDispatcher.send(signal = 'statustext', msg = _('Cannot move progress notes. No active patient.'))
+		return False
+
+	if parent is None:
+		parent = wx.GetApp().GetTopWindow()
+
+	emr = patient.get_emr()
+
+	if encounters is None:
+		all_encs_in_epi = emr.get_encounters(episodes = episodes, skip_empty = True)
+		# nothing to do ?
+		if len(all_encs_in_epi) == 0:
+			return True
+		encounters = gmEncounterWidgets.select_encounters (
+			parent = parent,
+			patient = patient,
+			single_selection = False,
+			encounters = all_encs_in_epi
+		)
+		# cancelled
+		if encounters is None:
+			return True
+		# none selected
+		if len(encounters) == 0:
+			return True
+
+	notes = emr.get_clin_narrative (
+		encounters = encounters,
+		episodes = episodes
+	)
+
+	# which narrative
+	if move_all:
+		selected_narr = notes
+	else:
+		selected_narr = gmListWidgets.get_choices_from_list (
+			parent = parent,
+			caption = _('Moving progress notes between encounters ...'),
+			single_selection = False,
+			can_return_empty = True,
+			data = notes,
+			msg = _('\n Select the progress notes to move from the list !\n\n'),
+			columns = [_('when'), _('who'), _('type'), _('entry')],
+			choices = [
+				[	narr['date'].strftime('%x %H:%M'),
+					narr['modified_by'],
+					gmSoapDefs.soap_cat2l10n[narr['soap_cat']],
+					narr['narrative'].replace('\n', '/').replace('\r', '/')
+				] for narr in notes
+			]
+		)
+
+	if not selected_narr:
+		return True
+
+	# which encounter to move to
+	enc2move2 = gmEncounterWidgets.select_encounters (
+		parent = parent,
+		patient = patient,
+		single_selection = True
+	)
+
+	if not enc2move2:
+		return True
+
+	for narr in selected_narr:
+		narr['pk_encounter'] = enc2move2['pk_encounter']
+		narr.save()
+
+	return True
+
+#------------------------------------------------------------
+def manage_progress_notes(parent=None, encounters=None, episodes=None, patient=None):
+
+	# sanity checks
+	if patient is None:
+		patient = gmPerson.gmCurrentPatient()
+
+	if not patient.connected:
+		gmDispatcher.send(signal = 'statustext', msg = _('Cannot edit progress notes. No active patient.'))
+		return False
+
+	if parent is None:
+		parent = wx.GetApp().GetTopWindow()
+
+	emr = patient.get_emr()
+	#--------------------------
+	def delete(item):
+		if item is None:
+			return False
+		dlg = gmGuiHelpers.c2ButtonQuestionDlg (
+			parent,
+			-1,
+			caption = _('Deleting progress note'),
+			question = _(
+				'Are you positively sure you want to delete this\n'
+				'progress note from the medical record ?\n'
+				'\n'
+				'Note that even if you chose to delete the entry it will\n'
+				'still be (invisibly) kept in the audit trail to protect\n'
+				'you from litigation because physical deletion is known\n'
+				'to be unlawful in some jurisdictions.\n'
+			),
+			button_defs = (
+				{'label': _('Delete'), 'tooltip': _('Yes, delete the progress note.'), 'default': False},
+				{'label': _('Cancel'), 'tooltip': _('No, do NOT delete the progress note.'), 'default': True}
+			)
+		)
+		decision = dlg.ShowModal()
+
+		if decision != wx.ID_YES:
+			return False
+
+		gmClinNarrative.delete_clin_narrative(narrative = item['pk_narrative'])
+		return True
+	#--------------------------
+	def edit(item):
+		if item is None:
+			return False
+
+		dlg = gmGuiHelpers.cMultilineTextEntryDlg (
+			parent,
+			-1,
+			title = _('Editing progress note'),
+			msg = _('This is the original progress note:'),
+			data = item.format(left_margin = u' ', fancy = True),
+			text = item['narrative']
+		)
+		decision = dlg.ShowModal()
+
+		if decision != wx.ID_SAVE:
+			return False
+
+		val = dlg.value
+		dlg.Destroy()
+		if val.strip() == u'':
+			return False
+
+		item['narrative'] = val
+		item.save_payload()
+
+		return True
+	#--------------------------
+	def refresh(lctrl):
+		notes = emr.get_clin_narrative (
+			encounters = encounters,
+			episodes = episodes,
+			providers = [ gmStaff.gmCurrentProvider()['short_alias'] ]
+		)
+		lctrl.set_string_items(items = [
+			[	narr['date'].strftime('%x %H:%M'),
+				gmSoapDefs.soap_cat2l10n[narr['soap_cat']],
+				narr['narrative'].replace('\n', '/').replace('\r', '/')
+			] for narr in notes
+		])
+		lctrl.set_data(data = notes)
+	#--------------------------
+
+	gmListWidgets.get_choices_from_list (
+		parent = parent,
+		caption = _('Managing progress notes'),
+		msg = _(
+			'\n'
+			' This list shows the progress notes by %s.\n'
+			'\n'
+		) % gmStaff.gmCurrentProvider()['short_alias'],
+		columns = [_('when'), _('type'), _('entry')],
+		single_selection = True,
+		can_return_empty = False,
+		edit_callback = edit,
+		delete_callback = delete,
+		refresh_callback = refresh
+	)
+
+#------------------------------------------------------------
+def search_narrative_across_emrs(parent=None):
+
+	if parent is None:
+		parent = wx.GetApp().GetTopWindow()
+
+	search_term_dlg = wx.TextEntryDialog (
+		parent = parent,
+		message = _('Enter (regex) term to search for across all EMRs:'),
+		caption = _('Text search across all EMRs'),
+		style = wx.OK | wx.CANCEL | wx.CENTRE
+	)
+	result = search_term_dlg.ShowModal()
+
+	if result != wx.ID_OK:
+		return
+
+	wx.BeginBusyCursor()
+	search_term = search_term_dlg.GetValue()
+	search_term_dlg.Destroy()
+	results = gmClinNarrative.search_text_across_emrs(search_term = search_term)
+	wx.EndBusyCursor()
+
+	if len(results) == 0:
+		gmGuiHelpers.gm_show_info (
+			_(
+			'Nothing found for search term:\n'
+			' "%s"'
+			) % search_term,
+			_('Search results')
+		)
+		return
+
+	items = [ [
+		gmPerson.cPerson(aPK_obj = r['pk_patient'])['description_gender'],
+		r['narrative'],
+		r['src_table']
+	] for r in results ]
+
+	selected_patient = gmListWidgets.get_choices_from_list (
+		parent = parent,
+		caption = _('Search results for [%s]') % search_term,
+		choices = items,
+		columns = [_('Patient'), _('Match'), _('Match location')],
+		data = [ r['pk_patient'] for r in results ],
+		single_selection = True,
+		can_return_empty = False
+	)
+
+	if selected_patient is None:
+		return
+
+	wx.CallAfter(set_active_patient, patient = gmPerson.cPerson(aPK_obj = selected_patient))
+
+#------------------------------------------------------------
+def search_narrative_in_emr(parent=None, patient=None):
+
+	# sanity checks
+	if patient is None:
+		patient = gmPerson.gmCurrentPatient()
+
+	if not patient.connected:
+		gmDispatcher.send(signal = 'statustext', msg = _('Cannot search EMR. No active patient.'))
+		return False
+
+	if parent is None:
+		parent = wx.GetApp().GetTopWindow()
+
+	search_term_dlg = wx.TextEntryDialog (
+		parent = parent,
+		message = _('Enter search term:'),
+		caption = _('Text search of entire EMR of active patient'),
+		style = wx.OK | wx.CANCEL | wx.CENTRE
+	)
+	result = search_term_dlg.ShowModal()
+
+	if result != wx.ID_OK:
+		search_term_dlg.Destroy()
+		return False
+
+	wx.BeginBusyCursor()
+	val = search_term_dlg.GetValue()
+	search_term_dlg.Destroy()
+	emr = patient.get_emr()
+	rows = emr.search_narrative_simple(val)
+	wx.EndBusyCursor()
+
+	if len(rows) == 0:
+		gmGuiHelpers.gm_show_info (
+			_(
+			'Nothing found for search term:\n'
+			' "%s"'
+			) % val,
+			_('Search results')
+		)
+		return True
+
+	txt = u''
+	for row in rows:
+		txt += u'%s: %s\n' % (
+			row['soap_cat'],
+			row['narrative']
+		)
+
+		txt += u' %s: %s - %s %s\n' % (
+			_('Encounter'),
+			row['encounter_started'].strftime('%x %H:%M'),
+			row['encounter_ended'].strftime('%H:%M'),
+			row['encounter_type']
+		)
+		txt += u' %s: %s\n' % (
+			_('Episode'),
+			row['episode']
+		)
+		txt += u' %s: %s\n\n' % (
+			_('Health issue'),
+			row['health_issue']
+		)
+
+	msg = _(
+		'Search term was: "%s"\n'
+		'\n'
+		'Search results:\n\n'
+		'%s\n'
+	) % (val, txt)
+
+	dlg = wx.MessageDialog (
+		parent = parent,
+		message = msg,
+		caption = _('Search results for [%s]') % val,
+		style = wx.OK | wx.STAY_ON_TOP
+	)
+	dlg.ShowModal()
+	dlg.Destroy()
+
+	return True
+
+#------------------------------------------------------------
+def export_narrative_for_medistar_import(parent=None, soap_cats=u'soapu', encounter=None):
+
+	# sanity checks
+	pat = gmPerson.gmCurrentPatient()
+	if not pat.connected:
+		gmDispatcher.send(signal = 'statustext', msg = _('Cannot export EMR for Medistar. No active patient.'))
+		return False
+
+	if encounter is None:
+		encounter = pat.get_emr().active_encounter
+
+	if parent is None:
+		parent = wx.GetApp().GetTopWindow()
+
+	# get file name
+	aWildcard = "%s (*.txt)|*.txt|%s (*)|*" % (_("text files"), _("all files"))
+		# FIXME: make configurable
+	aDefDir = os.path.abspath(os.path.expanduser(os.path.join('~', 'gnumed')))
+		# FIXME: make configurable
+	fname = '%s-%s-%s-%s-%s.txt' % (
+		'Medistar-MD',
+		time.strftime('%Y-%m-%d',time.localtime()),
+		pat['lastnames'].replace(' ', '-'),
+		pat['firstnames'].replace(' ', '_'),
+		pat.get_formatted_dob(format = '%Y-%m-%d')
+	)
+	dlg = wx.FileDialog (
+		parent = parent,
+		message = _("Save EMR extract for MEDISTAR import as..."),
+		defaultDir = aDefDir,
+		defaultFile = fname,
+		wildcard = aWildcard,
+		style = wx.SAVE
+	)
+	choice = dlg.ShowModal()
+	fname = dlg.GetPath()
+	dlg.Destroy()
+	if choice != wx.ID_OK:
+		return False
+
+	wx.BeginBusyCursor()
+	_log.debug('exporting encounter for medistar import to [%s]', fname)
+	exporter = gmPatientExporter.cMedistarSOAPExporter(patient = pat)
+	successful, fname = exporter.export_to_file (
+		filename = fname,
+		encounter = encounter,
+		soap_cats = u'soapu',
+		export_to_import_file = True
+	)
+	if not successful:
+		gmGuiHelpers.gm_show_error (
+			_('Error exporting progress notes for MEDISTAR import.'),
+			_('MEDISTAR progress notes export')
+		)
+		wx.EndBusyCursor()
+		return False
+
+	gmDispatcher.send(signal = 'statustext', msg = _('Successfully exported progress notes into file [%s] for Medistar import.') % fname, beep=False)
+
+	wx.EndBusyCursor()
+	return True
+
+#------------------------------------------------------------
+def select_narrative(parent=None, soap_cats=None, msg=None):
+
+	pat = gmPerson.gmCurrentPatient()
+	emr = pat.get_emr()
+
+	if parent is None:
+		parent = wx.GetApp().GetTopWindow()
+
+	if soap_cats is None:
+		soap_cats = u'soapu'
+	soap_cats = list(soap_cats)
+	i18n_soap_cats = [ gmSoapDefs.soap_cat2l10n[cat].upper() for cat in soap_cats ]
+
+	if msg is None:
+		msg = _('Pick the [%s] narrative you want to use.') % u'/'.join(i18n_soap_cats)
+
+	#-----------------------------------------------
+	def get_tooltip(soap):
+		return soap.format(fancy = True, width = 60)
+	#-----------------------------------------------
+	def refresh(lctrl):
+		lctrl.secondary_sort_column = 0
+		soap = emr.get_clin_narrative(soap_cats = soap_cats)
+		lctrl.set_string_items ([ [
+			gmDateTime.pydt_strftime(s['date'], '%Y %m %d'),
+			s['modified_by'],
+			gmSoapDefs.soap_cat2l10n[s['soap_cat']],
+			s['narrative'],
+			s['episode'],
+			s['health_issue']
+		] for s in soap ])
+		lctrl.set_data(soap)
+	#-----------------------------------------------
+	return gmListWidgets.get_choices_from_list (
+		parent = parent,
+		msg = msg,
+		caption = _('Picking [%s] narrative') % (u'/'.join(i18n_soap_cats)),
+		columns = [_('When'), _('Who'), _('Type'), _('Entry'), _('Episode'), _('Issue')],
+		single_selection = False,
+		can_return_empty = False,
+		refresh_callback = refresh,
+		list_tooltip_callback = get_tooltip
+	)
+
+#------------------------------------------------------------
+def select_narrative_by_issue(parent=None, soap_cats=None):
+
+	pat = gmPerson.gmCurrentPatient()
+	emr = pat.get_emr()
+
+	# not useful if you think about it:
+#	issues = [ i for i in emr.health_issues ]
+#	if len(issues) == 0:
+#		gmDispatcher.send(signal = 'statustext', msg = _('No progress notes found.'))
+#		return []
+
+	if parent is None:
+		parent = wx.GetApp().GetTopWindow()
+
+	if soap_cats is None:
+		soap_cats = u'soapu'
+	soap_cats = list(soap_cats)
+	i18n_soap_cats = [ gmSoapDefs.soap_cat2l10n[cat].upper() for cat in soap_cats ]
+
+	selected_soap = {}
+	#selected_narrative_pks = []
+
+	#-----------------------------------------------
+	def get_soap_tooltip(soap):
+		return soap.format(fancy = True, width = 60)
+	#-----------------------------------------------
+	def pick_soap_from_issue(issue):
+
+		if issue is None:
+			return False
+
+		narr_for_issue = emr.get_clin_narrative(issues = [issue['pk_health_issue']], soap_cats = soap_cats)
+
+		if len(narr_for_issue) == 0:
+			gmDispatcher.send(signal = 'statustext', msg = _('No narrative available for this health issue.'))
+			return True
+
+		selected_narr = gmListWidgets.get_choices_from_list (
+			parent = parent,
+			msg = _('Pick the [%s] narrative you want to include in the report.') % u'/'.join(i18n_soap_cats),
+			caption = _('Picking [%s] from %s%s%s') % (
+				u'/'.join(i18n_soap_cats),
+				gmTools.u_left_double_angle_quote,
+				issue['description'],
+				gmTools.u_right_double_angle_quote
+			),
+			columns = [_('When'), _('Who'), _('Type'), _('Entry')],
+			choices = [ [
+				gmDateTime.pydt_strftime(narr['date'], '%Y %b %d  %H:%M', accuracy = gmDateTime.acc_minutes),
+				narr['modified_by'],
+				gmSoapDefs.soap_cat2l10n[narr['soap_cat']],
+				narr['narrative'].replace('\n', '//').replace('\r', '//')
+			] for narr in narr_for_issue ],
+			data = narr_for_issue,
+			#selections=None,
+			#edit_callback=None,
+			single_selection = False,
+			can_return_empty = False,
+			list_tooltip_callback = get_soap_tooltip
+		)
+
+		if selected_narr is None:
+			return True
+
+		for narr in selected_narr:
+			selected_soap[narr['pk_narrative']] = narr
+
+		return True
+	#-----------------------------------------------
+	def edit_issue(issue):
+		return gmEMRStructWidgets.edit_health_issue(parent = parent, issue = issue)
+	#-----------------------------------------------
+	def refresh_issues(lctrl):
+		#issues = [ i for i in emr.health_issues ]
+		issues = emr.health_issues
+		lctrl.set_string_items ([ [
+				gmTools.bool2subst(i['is_confidential'], _('!! CONFIDENTIAL !!'), u''),
+				i['description'],
+				gmTools.bool2subst(i['is_active'], _('active'), _('inactive'))
+			] for i in issues
+		])
+		lctrl.set_data(issues)
+	#-----------------------------------------------
+	def get_issue_tooltip(issue):
+		return issue.format (
+			patient = pat,
+			with_encounters = False,
+			with_medications = False,
+			with_hospital_stays = False,
+			with_procedures = False,
+			with_family_history = False,
+			with_documents = False,
+			with_tests = False,
+			with_vaccinations = False
+		)
+	#-----------------------------------------------
+	#selected_episode_pks = []
+
+	issues_picked_from = gmListWidgets.get_choices_from_list (
+		parent = parent,
+		msg = _('\n Select the issue you want to report on.'),
+		caption = _('Picking [%s] from health issues') % u'/'.join(i18n_soap_cats),
+		columns = [_('Privacy'), _('Issue'), _('Status')],
+		edit_callback = edit_issue,
+		refresh_callback = refresh_issues,
+		single_selection = True,
+		can_return_empty = True,
+		ignore_OK_button = False,
+		left_extra_button = (
+			_('&Pick notes'),
+			_('Pick [%s] entries from selected health issue') % u'/'.join(i18n_soap_cats),
+			pick_soap_from_issue
+		),
+		list_tooltip_callback = get_issue_tooltip
+	)
+
+	if issues_picked_from is None:
+		return []
+
+	return selected_soap.values()
+
+#	selection_idxs = []
+#	for idx in range(len(all_epis)):
+#		if all_epis[idx]['pk_episode'] in selected_episode_pks:
+#			selection_idxs.append(idx)
+#	if len(selection_idxs) != 0:
+#		dlg.set_selections(selections = selection_idxs)
+
+#------------------------------------------------------------
+def select_narrative_by_episode(parent=None, soap_cats=None):
+
+	pat = gmPerson.gmCurrentPatient()
+	emr = pat.get_emr()
+
+	all_epis = [ epi for epi in emr.get_episodes(order_by = u'description') if epi.has_narrative ]
+	if len(all_epis) == 0:
+		gmDispatcher.send(signal = 'statustext', msg = _('No episodes with progress notes found.'))
+		return []
+
+	if parent is None:
+		parent = wx.GetApp().GetTopWindow()
+
+	if soap_cats is None:
+		soap_cats = u'soapu'
+	soap_cats = list(soap_cats)
+	i18n_soap_cats = [ gmSoapDefs.soap_cat2l10n[cat].upper() for cat in soap_cats ]
+
+	selected_soap = {}
+	#selected_narrative_pks = []
+
+	#-----------------------------------------------
+	def get_soap_tooltip(soap):
+		return soap.format(fancy = True, width = 60)
+	#-----------------------------------------------
+	def pick_soap_from_episode(episode):
+
+		if episode is None:
+			return False
+
+		narr_for_epi = emr.get_clin_narrative(episodes = [episode['pk_episode']], soap_cats = soap_cats)
+
+		if len(narr_for_epi) == 0:
+			gmDispatcher.send(signal = 'statustext', msg = _('No narrative available for selected episode.'))
+			return True
+
+		selected_narr = gmListWidgets.get_choices_from_list (
+			parent = parent,
+			msg = _('Pick the [%s] narrative you want to include in the report.') % u'/'.join(i18n_soap_cats),
+			caption = _('Picking [%s] from %s%s%s') % (
+				u'/'.join(i18n_soap_cats),
+				gmTools.u_left_double_angle_quote,
+				episode['description'],
+				gmTools.u_right_double_angle_quote
+			),
+			columns = [_('When'), _('Who'), _('Type'), _('Entry')],
+			choices = [ [
+				gmDateTime.pydt_strftime(narr['date'], '%Y %b %d  %H:%M', accuracy = gmDateTime.acc_minutes),
+				narr['modified_by'],
+				gmSoapDefs.soap_cat2l10n[narr['soap_cat']],
+				narr['narrative'].replace('\n', '//').replace('\r', '//')
+			] for narr in narr_for_epi ],
+			data = narr_for_epi,
+			#selections=None,
+			#edit_callback=None,
+			single_selection = False,
+			can_return_empty = False,
+			list_tooltip_callback = get_soap_tooltip
+		)
+
+		if selected_narr is None:
+			return True
+
+		for narr in selected_narr:
+			selected_soap[narr['pk_narrative']] = narr
+
+		return True
+
+#		selection_idxs = []
+#		for idx in range(len(narr_for_epi)):
+#			if narr_for_epi[idx]['pk_narrative'] in selected_narrative_pks:
+#				selection_idxs.append(idx)
+#		if len(selection_idxs) != 0:
+#			dlg.set_selections(selections = selection_idxs)
+
+#		selected_narrative_pks = [ i['pk_narrative'] for i in selected_narr ]
+#		for narr in selected_narr:
+#			selected_soap[narr['pk_narrative']] = narr
+#
+#		print "before returning from picking soap"
+#
+#		return True
+#	#-----------------------------------------------
+	def edit_episode(episode):
+		return gmEMRStructWidgets.edit_episode(parent = parent, episode = episode)
+	#-----------------------------------------------
+	def refresh_episodes(lctrl):
+		all_epis = [ epi for epi in emr.get_episodes(order_by = u'description') if epi.has_narrative ]
+		lctrl.set_string_items ([ [
+				u'%s%s' % (e['description'], gmTools.coalesce(e['health_issue'], u'', u' (%s)')),
+				gmTools.bool2subst(e['episode_open'], _('open'), _('closed'))
+			] for e in all_epis
+		])
+		lctrl.set_data(all_epis)
+	#-----------------------------------------------
+	def get_episode_tooltip(episode):
+		return episode.format (
+			patient = pat,
+			with_encounters = False,
+			with_documents = False,
+			with_hospital_stays = False,
+			with_procedures = False,
+			with_family_history = False,
+			with_tests = False,
+			with_vaccinations = False
+		)
+	#-----------------------------------------------
+	#selected_episode_pks = []
+
+	epis_picked_from = gmListWidgets.get_choices_from_list (
+		parent = parent,
+		msg = _('\n Select the episode you want to report on.'),
+		caption = _('Picking [%s] from episodes') % u'/'.join(i18n_soap_cats),
+		columns = [_('Episode'), _('Status')],
+		edit_callback = edit_episode,
+		refresh_callback = refresh_episodes,
+		single_selection = True,
+		can_return_empty = True,
+		ignore_OK_button = False,
+		left_extra_button = (
+			_('&Pick notes'),
+			_('Pick [%s] entries from selected episode') % u'/'.join(i18n_soap_cats),
+			pick_soap_from_episode
+		),
+		list_tooltip_callback = get_episode_tooltip
+	)
+
+	if epis_picked_from is None:
+		return []
+
+	return selected_soap.values()
+
+#	selection_idxs = []
+#	for idx in range(len(all_epis)):
+#		if all_epis[idx]['pk_episode'] in selected_episode_pks:
+#			selection_idxs.append(idx)
+#	if len(selection_idxs) != 0:
+#		dlg.set_selections(selections = selection_idxs)
+
+#------------------------------------------------------------
+def select_narrative_from_episodes(parent=None, soap_cats=None):
+	"""soap_cats needs to be a list"""
+
+	pat = gmPerson.gmCurrentPatient()
+	emr = pat.get_emr()
+
+	if parent is None:
+		parent = wx.GetApp().GetTopWindow()
+
+	selected_soap = {}
+	selected_issue_pks = []
+	selected_episode_pks = []
+	selected_narrative_pks = []
+
+	while 1:
+		# 1) select health issues to select episodes from
+		all_issues = emr.get_health_issues()
+		all_issues.insert(0, gmEMRStructItems.get_dummy_health_issue())
+		dlg = gmEMRStructWidgets.cIssueListSelectorDlg (
+			parent = parent,
+			id = -1,
+			issues = all_issues,
+			msg = _('\n In the list below mark the health issues you want to report on.\n')
+		)
+		selection_idxs = []
+		for idx in range(len(all_issues)):
+			if all_issues[idx]['pk_health_issue'] in selected_issue_pks:
+				selection_idxs.append(idx)
+		if len(selection_idxs) != 0:
+			dlg.set_selections(selections = selection_idxs)
+		btn_pressed = dlg.ShowModal()
+		selected_issues = dlg.get_selected_item_data()
+		dlg.Destroy()
+
+		if btn_pressed == wx.ID_CANCEL:
+			return selected_soap.values()
+
+		selected_issue_pks = [ i['pk_health_issue'] for i in selected_issues ]
+
+		while 1:
+			# 2) select episodes to select items from
+			all_epis = emr.get_episodes(issues = selected_issue_pks)
+
+			if len(all_epis) == 0:
+				gmDispatcher.send(signal = 'statustext', msg = _('No episodes recorded for the health issues selected.'))
+				break
+
+			dlg = gmEMRStructWidgets.cEpisodeListSelectorDlg (
+				parent = parent,
+				id = -1,
+				episodes = all_epis,
+				msg = _(
+					'\n These are the episodes known for the health issues just selected.\n\n'
+					' Now, mark the the episodes you want to report on.\n'
+				)
+			)
+			selection_idxs = []
+			for idx in range(len(all_epis)):
+				if all_epis[idx]['pk_episode'] in selected_episode_pks:
+					selection_idxs.append(idx)
+			if len(selection_idxs) != 0:
+				dlg.set_selections(selections = selection_idxs)
+			btn_pressed = dlg.ShowModal()
+			selected_epis = dlg.get_selected_item_data()
+			dlg.Destroy()
+
+			if btn_pressed == wx.ID_CANCEL:
+				break
+
+			selected_episode_pks = [ i['pk_episode'] for i in selected_epis ]
+
+			# 3) select narrative corresponding to the above constraints
+			all_narr = emr.get_clin_narrative(episodes = selected_episode_pks, soap_cats = soap_cats)
+
+			if len(all_narr) == 0:
+				gmDispatcher.send(signal = 'statustext', msg = _('No narrative available for selected episodes.'))
+				continue
+
+			dlg = cNarrativeListSelectorDlg (
+				parent = parent,
+				id = -1,
+				narrative = all_narr,
+				msg = _(
+					'\n This is the narrative (type %s) for the chosen episodes.\n\n'
+					' Now, mark the entries you want to include in your report.\n'
+				) % u'/'.join([ gmSoapDefs.soap_cat2l10n[cat] for cat in gmTools.coalesce(soap_cats, list(u'soapu')) ])
+			)
+			selection_idxs = []
+			for idx in range(len(all_narr)):
+				if all_narr[idx]['pk_narrative'] in selected_narrative_pks:
+					selection_idxs.append(idx)
+			if len(selection_idxs) != 0:
+				dlg.set_selections(selections = selection_idxs)
+			btn_pressed = dlg.ShowModal()
+			selected_narr = dlg.get_selected_item_data()
+			dlg.Destroy()
+
+			if btn_pressed == wx.ID_CANCEL:
+				continue
+
+			selected_narrative_pks = [ i['pk_narrative'] for i in selected_narr ]
+			for narr in selected_narr:
+				selected_soap[narr['pk_narrative']] = narr
+
+#============================================================
+# main
+#------------------------------------------------------------
+if __name__ == '__main__':
+
+	if len(sys.argv) < 2:
+		sys.exit()
+
+	if sys.argv[1] != 'test':
+		sys.exit()
+
+	from Gnumed.business import gmPersonSearch
+
+	gmI18N.activate_locale()
+	gmI18N.install_domain(domain = 'gnumed')
+
+	#----------------------------------------
+	def test_select_narrative_from_episodes():
+		pat = gmPersonSearch.ask_for_patient()
+		set_active_patient(patient = pat)
+		app = wx.PyWidgetTester(size = (200, 200))
+		sels = select_narrative_from_episodes_new()
+		print "selected:"
+		for sel in sels:
+			print sel
+	#----------------------------------------
+	def test_select_narrative():
+		pat = gmPersonSearch.ask_for_patient()
+		set_active_patient(patient = pat)
+		app = wx.PyWidgetTester(size = (200, 200))
+		sels = select_narrative(parent=None, soap_cats = None)
+		print "selected:"
+		for sel in sels:
+			print sel
+	#----------------------------------------
+	#test_select_narrative_from_episodes()
+	test_select_narrative()
diff --git a/client/wxpython/gmOrganizationWidgets.py b/client/wxpython/gmOrganizationWidgets.py
index a11004e..23d2b0d 100644
--- a/client/wxpython/gmOrganizationWidgets.py
+++ b/client/wxpython/gmOrganizationWidgets.py
@@ -167,6 +167,7 @@ class cOrgUnitPhraseWheel(gmPhraseWheel.cPhraseWheel):
 		if self.GetData() is None:
 			return None
 		return gmOrganization.cOrgUnit(aPK_obj = self.GetData())
+
 #============================================================
 class cOrgUnitsManagerPnl(gmListWidgets.cGenericListManagerPnl):
 	"""A list for managing organizational units."""
@@ -408,7 +409,6 @@ class cOrgUnitAddressPnl(wxgOrgUnitAddressPnl.wxgOrgUnitAddressPnl):
 			self.message = _('<no unit selected>')
 			self._PRW_address_searcher.SetText(u'', None)
 			self._PRW_address_searcher.Enable(False)
-			self._PRW_address_searcher.display_as_disabled(True)
 			self._BTN_save_picked_address.Enable(False)
 			self._BTN_add_new_address.Enable(False)
 		else:
@@ -429,7 +429,6 @@ class cOrgUnitAddressPnl(wxgOrgUnitAddressPnl.wxgOrgUnitAddressPnl):
 			self._PRW_address_searcher.Enable(True)
 			self._PRW_address_searcher.address = self.__unit['pk_address']
 			self._PRW_address_searcher.Enable(True)
-			self._PRW_address_searcher.display_as_disabled(False)
 			self._BTN_save_picked_address.Enable(True)
 			self._BTN_add_new_address.Enable(True)
 	#--------------------------------------------------------
@@ -523,10 +522,10 @@ class cOrgUnitIDsMgrPnl(gmListWidgets.cGenericListManagerPnl):
 
 		gmListWidgets.cGenericListManagerPnl.__init__(self, *args, **kwargs)
 
+		self.refresh_callback = self.refresh
 		self.new_callback = self._add_id
 		self.edit_callback = self._edit_id
 		self.delete_callback = self._del_id
-		self.refresh_callback = self.refresh
 
 		self.__init_ui()
 		self.refresh()
diff --git a/client/wxpython/gmPatOverviewWidgets.py b/client/wxpython/gmPatOverviewWidgets.py
index 2140e84..1fd2695 100644
--- a/client/wxpython/gmPatOverviewWidgets.py
+++ b/client/wxpython/gmPatOverviewWidgets.py
@@ -28,6 +28,8 @@ from Gnumed.business import gmVaccination
 from Gnumed.business import gmDocuments
 from Gnumed.business import gmProviderInbox
 from Gnumed.business import gmExternalCare
+from Gnumed.business import gmAutoHints
+from Gnumed.business import gmMedication
 
 from Gnumed.wxpython import gmRegetMixin
 from Gnumed.wxpython import gmDemographicsWidgets
@@ -41,6 +43,7 @@ from Gnumed.wxpython import gmVaccWidgets
 from Gnumed.wxpython import gmDocumentWidgets
 from Gnumed.wxpython import gmGuiHelpers
 from Gnumed.wxpython import gmPregWidgets
+from Gnumed.wxpython import gmHabitWidgets
 
 
 _log = logging.getLogger('gm.patient')
@@ -114,10 +117,6 @@ class cPatientOverviewPnl(wxgPatientOverviewPnl.wxgPatientOverviewPnl, gmRegetMi
 	#-----------------------------------------------------
 	# event handling
 	#-----------------------------------------------------
-	# remember to call
-	#	self._schedule_data_reget()
-	# whenever you learn of data changes from database listener
-	# threads, dispatcher signals etc.
 	def __register_interests(self):
 		# client internal signals
 		gmDispatcher.connect(signal = u'pre_patient_unselection', receiver = self._on_pre_patient_unselection)
@@ -210,6 +209,7 @@ class cPatientOverviewPnl(wxgPatientOverviewPnl.wxgPatientOverviewPnl, gmRegetMi
 		self.__refresh_documents(patient = pat)
 
 		return True
+
 	#-----------------------------------------------------
 	# internal helpers
 	#-----------------------------------------------------
@@ -319,6 +319,11 @@ class cPatientOverviewPnl(wxgPatientOverviewPnl.wxgPatientOverviewPnl, gmRegetMi
 			list_items.append(hint['title'])
 			list_data.append(hint)
 
+		hints = patient.suppressed_hints
+		if len(hints) > 0:
+			list_items.append(_("suppr'd:") + u' ' + u','.join([h['title'][:7] + gmTools.u_ellipsis for h in hints]))
+			list_data.append(_('Suppressed hints:\n') + u'\n'.join([h['title'] for h in hints]))
+
 		self._LCTRL_inbox.set_string_items(items = list_items)
 		self._LCTRL_inbox.set_data(data = list_data)
 
@@ -330,14 +335,18 @@ class cPatientOverviewPnl(wxgPatientOverviewPnl.wxgPatientOverviewPnl, gmRegetMi
 		if isinstance(data, gmProviderInbox.cInboxMessage):
 			return data.format()
 
-		if isinstance(data, gmProviderInbox.cDynamicHint):
-			return u'%s\n\n%s\n\n%s          %s' % (
+		if isinstance(data, gmAutoHints.cDynamicHint):
+			return u'%s\n\n%s%s\n\n%s          %s' % (
 				data['title'],
 				gmTools.wrap(data['hint'], width = 50),
+				gmTools.wrap(gmTools.coalesce(data['recommendation'], u'', u'\n\n%s'), width =  50),
 				gmTools.wrap(gmTools.coalesce(data['url'], u'', u'%s\n\n'), width = 50),
 				data['source']
 			)
 
+		if isinstance(data, type(u'')):
+			return data
+
 		return None
 	#-----------------------------------------------------
 	def _on_inbox_item_activated(self, event):
@@ -345,7 +354,7 @@ class cPatientOverviewPnl(wxgPatientOverviewPnl.wxgPatientOverviewPnl, gmRegetMi
 		data = self._LCTRL_inbox.get_selected_item_data(only_one = True)
 
 		# if it is a dynamic hint open the URL for that
-		if isinstance(data, gmProviderInbox.cDynamicHint):
+		if isinstance(data, gmAutoHints.cDynamicHint):
 			if data['url'] is not None:
 				gmNetworkTools.open_url_in_browser(data['url'])
 			return
@@ -542,6 +551,7 @@ class cPatientOverviewPnl(wxgPatientOverviewPnl.wxgPatientOverviewPnl, gmRegetMi
 		self._LCTRL_encounters.set_data(data = list_data)
 		if is_waiting:
 			self._LCTRL_encounters.SetItemTextColour(0, wx.NamedColour('RED'))
+
 	#-----------------------------------------------------
 	def _calc_encounters_list_item_tooltip(self, data):
 		emr = gmPerson.gmCurrentPatient().get_emr()
@@ -667,16 +677,23 @@ class cPatientOverviewPnl(wxgPatientOverviewPnl.wxgPatientOverviewPnl, gmRegetMi
 
 		vaccs = emr.get_latest_vaccinations()
 		for ind, tmp in vaccs.items():
-			tmp, vacc = tmp
-			sort_key = u'%s::%s' % (gmDateTime.pydt_strftime(vacc['date_given'], format = date_format4sorting), vacc['pk_vaccination'])
-			label = _('%s Vacc: %s') % (
+			no_of_shots, vacc = tmp
+			sort_key = u'%s::%s::%s' % (gmDateTime.pydt_strftime(vacc['date_given'], format = date_format4sorting), vacc['pk_vaccination'], ind)
+			label = _('%s Vacc: %s (latest of %s)') % (
 				gmDateTime.pydt_strftime(vacc['date_given'], format = '%Y %b'),
-				ind
+				ind,
+				no_of_shots
 			)
 			sort_key_list.append(sort_key)
 			data[sort_key] = [label, vacc]
 		del vaccs
 
+		for abuse in [ a for a in emr.abused_substances if a['harmful_use_type'] == 3 ]:
+			sort_key = u'%s::%s' % (gmDateTime.pydt_strftime(abuse['last_checked_when'], format = date_format4sorting), abuse['substance'])
+			label = _('Hx of addiction: %s') % abuse['substance']
+			sort_key_list.append(sort_key)
+			data[sort_key] = [label, abuse]
+
 		sort_key_list.sort()
 		sort_key_list.reverse()
 		list_items = []
@@ -703,6 +720,9 @@ class cPatientOverviewPnl(wxgPatientOverviewPnl.wxgPatientOverviewPnl, gmRegetMi
 				with_vaccinations = False
 			).strip(u'\n')
 
+		if isinstance(data, gmMedication.cSubstanceIntakeEntry):
+			return data.format(single_line = False)
+
 		if isinstance(data, gmFamilyHistory.cFamilyHistory):
 			return data.format(include_episode = True, include_comment = True)
 
@@ -710,7 +730,7 @@ class cPatientOverviewPnl(wxgPatientOverviewPnl.wxgPatientOverviewPnl, gmRegetMi
 			return data.format()
 
 		if isinstance(data, gmEMRStructItems.cPerformedProcedure):
-			return data.format(include_episode = True)
+			return data.format(include_episode = True, include_codes = False, include_address = True, include_comm = True)
 
 		if isinstance(data, gmVaccination.cVaccination):
 			return u'\n'.join(data.format (
@@ -776,13 +796,22 @@ class cPatientOverviewPnl(wxgPatientOverviewPnl.wxgPatientOverviewPnl, gmRegetMi
 	#-----------------------------------------------------
 	#-----------------------------------------------------
 	def __refresh_meds(self, patient=None):
-		# list by brand or substance:
+
 		emr = patient.get_emr()
-		intakes = emr.get_current_substance_intakes(include_inactive = False, include_unapproved = True, order_by = u'substance')
 
 		list_items = []
-		multi_brands_already_seen = []
 		data_items = []
+		first_red = False
+
+		# harmful substance use ?
+		abuses = emr.abused_substances
+		if len([ a for a in abuses if a['harmful_use_type'] in [1, 2] ]) > 0:
+			list_items.append(_('active substance abuse'))
+			data_items.append(u'\n'.join([ a.format(left_margin=0, date_format='%Y %b %d', single_line=True) for a in abuses ]))
+
+		# list by brand or substance:
+		intakes = emr.get_current_medications(include_inactive = False, include_unapproved = True, order_by = u'substance')
+		multi_brands_already_seen = []
 		for intake in intakes:
 			brand = intake.containing_drug
 			if brand is None or len(brand['pk_components']) == 1:
@@ -811,10 +840,17 @@ class cPatientOverviewPnl(wxgPatientOverviewPnl.wxgPatientOverviewPnl, gmRegetMi
 					)
 				))
 				data_items.append(intake)
+
 		self._LCTRL_meds.set_string_items(items = list_items)
 		self._LCTRL_meds.set_data(data = data_items)
+
+		if first_red:
+			self._LCTRL_meds.SetItemTextColour(0, wx.NamedColour('RED'))
+
 	#-----------------------------------------------------
 	def _calc_meds_list_item_tooltip(self, data):
+		if isinstance(data, basestring):
+			return data
 		emr = gmPerson.gmCurrentPatient().get_emr()
 		atcs = []
 		if data['atc_substance'] is not None:
@@ -825,15 +861,22 @@ class cPatientOverviewPnl(wxgPatientOverviewPnl.wxgPatientOverviewPnl, gmRegetMi
 		allg = emr.is_allergic_to(atcs = tuple(atcs), inns = (data['substance'],))
 		if allg is False:
 			allg = None
-		return data.format(one_line = False, allergy = allg, show_all_brand_components = True)
+		return data.format(single_line = False, allergy = allg, show_all_brand_components = True)
 	#-----------------------------------------------------
 	def _on_meds_item_activated(self, event):
 		data = self._LCTRL_meds.get_selected_item_data(only_one = True)
-		if data is not None:
-			# <ctrl> down ?
-			if wx.GetKeyState(wx.WXK_CONTROL):
-				wx.CallAfter(gmMedicationWidgets.edit_intake_of_substance, parent = self, substance = data)
-				return
+
+		if data is None:
+			return
+
+#		if isinstance(data, basestring):
+#			gmHabitWidgets.manage_substance_abuse(parent = self, patient = gmPerson.gmCurrentPatient())
+#			return
+
+		# <ctrl> down ? -> edit
+		if wx.GetKeyState(wx.WXK_CONTROL):
+			wx.CallAfter(gmMedicationWidgets.edit_intake_of_substance, parent = self, substance = data)
+			return
 
 		gmDispatcher.send(signal = 'display_widget', name = 'gmCurrentSubstancesPlugin')
 	#-----------------------------------------------------
@@ -876,11 +919,10 @@ class cPatientOverviewPnl(wxgPatientOverviewPnl.wxgPatientOverviewPnl, gmRegetMi
 
 		provider = patient.primary_provider
 		if provider is not None:
-			list_items.append(_('in-praxis: %s') % provider.identity['description_gender'])
+			list_items.append(_('in-praxis: %s') % patient.primary_provider_identity['description_gender'])
 			list_data.append(provider)
 
-		care = emr.get_external_care_items()
-		for item in care:
+		for item in emr.external_care_items:
 			list_items.append(_('care: %s%s@%s') % (
 				gmTools.coalesce(item['provider'], u'', u'%s, '),
 				item['unit'],
@@ -916,7 +958,7 @@ class cPatientOverviewPnl(wxgPatientOverviewPnl.wxgPatientOverviewPnl, gmRegetMi
 				parts.append(data['comment'])
 			return u'\n'.join(parts)
 
-		if isinstance(data, gmPerson.cIdentity):
+		if isinstance(data, gmPerson.cPerson):
 			return u'%s\n\n%s' % (
 				data['description_gender'],
 				u'\n'.join([
@@ -963,7 +1005,7 @@ class cPatientOverviewPnl(wxgPatientOverviewPnl.wxgPatientOverviewPnl, gmRegetMi
 				if isinstance(data, gmDemographicRecord.cCommChannel):
 					gmContactWidgets.edit_comm_channel(parent = self, comm_channel = data, channel_owner = gmPerson.gmCurrentPatient())
 					return
-				if isinstance(data, gmPerson.cIdentity):
+				if isinstance(data, gmPerson.cPerson):
 					pass
 				if isinstance(data, gmStaff.cStaff):
 					pass
@@ -1017,7 +1059,11 @@ class cPatientOverviewPnl(wxgPatientOverviewPnl.wxgPatientOverviewPnl, gmRegetMi
 	def _calc_problem_list_item_tooltip(self, data):
 
 		if isinstance(data, gmExternalCare.cExternalCareItem):
-			return u'\n'.join(data.format(with_health_issue = True, with_comms = True))
+			return u'\n'.join(data.format (
+				with_health_issue = True,
+				with_address = True,
+				with_comms = True
+			))
 
 		emr = gmPerson.gmCurrentPatient().get_emr()
 
diff --git a/client/wxpython/gmPatPicWidgets.py b/client/wxpython/gmPatPicWidgets.py
index 59148c8..3267997 100644
--- a/client/wxpython/gmPatPicWidgets.py
+++ b/client/wxpython/gmPatPicWidgets.py
@@ -15,8 +15,15 @@ import wx, wx.lib.imagebrowser
 
 
 # GNUmed
-from Gnumed.pycommon import gmDispatcher, gmTools, gmI18N, gmDateTime
-from Gnumed.business import gmDocuments, gmPerson
+from Gnumed.pycommon import gmDispatcher
+from Gnumed.pycommon import gmTools
+from Gnumed.pycommon import gmI18N
+from Gnumed.pycommon import gmDateTime
+
+from Gnumed.business import gmDocuments
+from Gnumed.business import gmPerson
+from Gnumed.business import gmPraxis
+
 from Gnumed.wxpython import gmGuiHelpers
 
 
@@ -143,11 +150,14 @@ class cPatientPicture(wx.StaticBitmap):
 				episode = epi['pk_episode'],
 				encounter = enc['pk_encounter']
 			)
+			doc['pk_org_unit'] = gmPraxis.gmCurrentPraxisBranch()['pk_org_unit']
+			doc.save()
 		else:
 			doc = docs[0]
 
-		obj = doc.add_part(file=fname)
+		obj = doc.add_part(file = fname)
 		return True
+
 	#-----------------------------------------------------------------
 	def __reload_photo(self):
 		"""(Re)fetch patient picture from DB."""
diff --git a/client/wxpython/gmPatSearchWidgets.py b/client/wxpython/gmPatSearchWidgets.py
index 0d4b1cd..c107328 100644
--- a/client/wxpython/gmPatSearchWidgets.py
+++ b/client/wxpython/gmPatSearchWidgets.py
@@ -47,7 +47,6 @@ from Gnumed.wxpython import gmGuiHelpers
 from Gnumed.wxpython import gmAuthWidgets
 from Gnumed.wxpython import gmRegetMixin
 from Gnumed.wxpython import gmEditArea
-from Gnumed.wxpython import gmPhraseWheel
 from Gnumed.wxpython.gmPersonCreationWidgets import create_new_person
 
 
@@ -62,6 +61,7 @@ ID_BTN_AddNew = wx.NewId()
 def merge_patients(parent=None):
 	dlg = cMergePatientsDlg(parent, -1)
 	result = dlg.ShowModal()
+
 #============================================================
 from Gnumed.wxGladeWidgets import wxgMergePatientsDlg
 
@@ -191,20 +191,21 @@ class cSelectPersonFromListDlg(wxgSelectPersonFromListDlg.wxgSelectPersonFromLis
 		wxgSelectPersonFromListDlg.wxgSelectPersonFromListDlg.__init__(self, *args, **kwargs)
 
 		self.__cols = [
-			_('Title'),
 			_('Lastname'),
 			_('Firstname'),
-			_('Nickname'),
 			_('DOB'),
-			_('Gender'),
+			u'%s%s' % (gmTools.u_female, gmTools.u_male),
 			_('last visit'),
+			_('Nickname / Comment'),
 			_('found via')
 		]
 		self.__init_ui()
+
 	#--------------------------------------------------------
 	def __init_ui(self):
 		for col in range(len(self.__cols)):
 			self._LCTRL_persons.InsertColumn(col, self.__cols[col])
+
 	#--------------------------------------------------------
 	def set_persons(self, persons=None):
 		self._LCTRL_persons.DeleteAllItems()
@@ -214,32 +215,40 @@ class cSelectPersonFromListDlg(wxgSelectPersonFromListDlg.wxgSelectPersonFromLis
 			return False
 
 		for person in persons:
-			row_num = self._LCTRL_persons.InsertStringItem(pos, label = gmTools.coalesce(person['title'], ''))
-			self._LCTRL_persons.SetStringItem(index = row_num, col = 1, label = person['lastnames'])
-			self._LCTRL_persons.SetStringItem(index = row_num, col = 2, label = person['firstnames'])
-			self._LCTRL_persons.SetStringItem(index = row_num, col = 3, label = gmTools.coalesce(person['preferred'], ''))
-			self._LCTRL_persons.SetStringItem(index = row_num, col = 4, label = person.get_formatted_dob(format = '%Y %b %d', encoding = gmI18N.get_encoding()))
-			self._LCTRL_persons.SetStringItem(index = row_num, col = 5, label = gmTools.coalesce(person['l10n_gender'], '?'))
+			row_num = self._LCTRL_persons.InsertStringItem(pos, label = gmTools.coalesce(person['title'], person['lastnames'], u'%s, %%s' % person['lastnames']))
+			self._LCTRL_persons.SetStringItem(index = row_num, col = 1, label = person['firstnames'])
+			self._LCTRL_persons.SetStringItem(index = row_num, col = 2, label = person.get_formatted_dob(format = '%Y %b %d', encoding = 'utf8'))
+			self._LCTRL_persons.SetStringItem(index = row_num, col = 3, label = gmTools.coalesce(person['l10n_gender'], u'?'))
+
 			label = u''
 			if person.is_patient:
 				enc = person.get_last_encounter()
 				if enc is not None:
 					label = u'%s (%s)' % (gmDateTime.pydt_strftime(enc['started'], '%Y %b %d'), enc['l10n_type'])
-			self._LCTRL_persons.SetStringItem(index = row_num, col = 6, label = label)
+			self._LCTRL_persons.SetStringItem(index = row_num, col = 4, label = label)
+
+			parts = []
+			if person['preferred'] is not None:
+				parts.append(person['preferred'])
+			if person['comment'] is not None:
+				parts.append(person['comment'])
+			self._LCTRL_persons.SetStringItem(index = row_num, col = 5, label = u' / '.join(parts))
+
 			try:
-				self._LCTRL_persons.SetStringItem(index = row_num, col = 7, label = person['match_type'])
+				self._LCTRL_persons.SetStringItem(index = row_num, col = 6, label = person['match_type'])
 			except KeyError:
 				_log.warning('cannot set match_type field')
-				self._LCTRL_persons.SetStringItem(index = row_num, col = 7, label = u'??')
+				self._LCTRL_persons.SetStringItem(index = row_num, col = 6, label = u'??')
 
 		for col in range(len(self.__cols)):
-			self._LCTRL_persons.SetColumnWidth(col=col, width=wx.LIST_AUTOSIZE)
+			self._LCTRL_persons.SetColumnWidth(col = col, width = wx.LIST_AUTOSIZE)
 
 		self._BTN_select.Enable(False)
 		self._LCTRL_persons.SetFocus()
 		self._LCTRL_persons.Select(0)
 
-		self._LCTRL_persons.set_data(data=persons)
+		self._LCTRL_persons.set_data(data = persons)
+
 	#--------------------------------------------------------
 	def get_selected_person(self):
 		return self._LCTRL_persons.get_item_data(self._LCTRL_persons.GetFirstSelected())
@@ -361,7 +370,7 @@ def load_persons_from_ca_msva():
 		try:
 			# FIXME: potentially return several persons per file
 			msva_dtos = gmCA_MSVA.read_persons_from_msva_file(filename = msva_file)
-		except StandardError:
+		except Exception:
 #			gmGuiHelpers.gm_show_error (
 #				_(
 #				'Cannot load patient from Medical Manager MSVA file\n\n'
@@ -834,6 +843,7 @@ def get_person_from_external_sources(parent=None, search_immediately=False, acti
 	dto.delete_from_source()
 
 	return ident
+
 #============================================================
 class cPersonSearchCtrl(wx.TextCtrl):
 	"""Widget for smart search for persons."""
@@ -903,7 +913,7 @@ class cPersonSearchCtrl(wx.TextCtrl):
 	#--------------------------------------------------------
 	def _remember_ident(self, ident=None):
 
-		if not isinstance(ident, gmPerson.cIdentity):
+		if not isinstance(ident, gmPerson.cPerson):
 			return False
 
 		# only unique identities
@@ -1100,6 +1110,7 @@ class cPersonSearchCtrl(wx.TextCtrl):
 		wx.EndBusyCursor()
 
 		return None
+
 #============================================================
 def _verify_staff_chart_access(patient=None):
 
@@ -1236,8 +1247,13 @@ def set_active_patient(patient=None, forced_reload=False):
 		return True
 
 	if isinstance(patient, gmPerson.cPatient):
-		pass
-	elif isinstance(patient, gmPerson.cIdentity):
+		if patient['is_deleted']:
+			_log.error('patient is disabled, will not use as active patient: %s', patient)
+			return False
+	elif isinstance(patient, gmPerson.cPerson):
+		if patient['is_deleted']:
+			_log.error('patient is disabled, will not use as active patient: %s', patient)
+			return False
 		patient = patient.as_patient
 	elif patient == -1:
 		pass
@@ -1245,7 +1261,7 @@ def set_active_patient(patient=None, forced_reload=False):
 		# maybe integer ?
 		success, pk = gmTools.input2int(initial = patient, minval = 1)
 		if not success:
-			raise ValueError('<patient> must be either -1, >0, or a cPatient, cIdentity or gmCurrentPatient instance, is: %s' % patient)
+			raise ValueError('<patient> must be either -1, >0, or a cPatient, cPerson or gmCurrentPatient instance, is: %s' % patient)
 		# but also valid patient ID ?
 		try:
 			patient = gmPerson.cPatient(aPK_obj = pk)
@@ -1459,7 +1475,6 @@ if __name__ == "__main__":
 #  Haywood, Ian <40
 #  ?, Ian 1977
 #  Ian Haywood, 19/12/77
-#  PUPIC
 # "hilb; karsten, 23.10.74"
 
 #------------------------------------------------------------
diff --git a/client/wxpython/gmPersonContactWidgets.py b/client/wxpython/gmPersonContactWidgets.py
index 4d6269c..191b9eb 100644
--- a/client/wxpython/gmPersonContactWidgets.py
+++ b/client/wxpython/gmPersonContactWidgets.py
@@ -4,7 +4,8 @@ __author__ = "R.Terry, SJ Tan, I Haywood, Carlos Moro <cfmoro1976 at yahoo.es>"
 __license__ = 'GPL v2 or later (details at http://www.gnu.org)'
 
 # standard library
-import sys, logging
+import sys
+import logging
 
 
 import wx
@@ -14,6 +15,8 @@ import wx
 if __name__ == '__main__':
 	sys.path.insert(0, '../../')
 from Gnumed.pycommon import gmTools
+from Gnumed.pycommon import gmNetworkTools
+
 from Gnumed.wxpython import gmGuiHelpers
 from Gnumed.wxpython import gmListWidgets
 from Gnumed.wxpython import gmEditArea
@@ -67,6 +70,7 @@ def select_address(missing=None, person=None):
 		single_selection = True,
 		list_tooltip_callback = calculate_tooltip
 	)
+
 #============================================================
 class cPersonAddressesManagerPnl(gmListWidgets.cGenericListManagerPnl):
 	"""A list for managing a person's addresses.
@@ -83,10 +87,10 @@ class cPersonAddressesManagerPnl(gmListWidgets.cGenericListManagerPnl):
 
 		gmListWidgets.cGenericListManagerPnl.__init__(self, *args, **kwargs)
 
+		self.refresh_callback = self.refresh
 		self.new_callback = self._add_address
 		self.edit_callback = self._edit_address
 		self.delete_callback = self._del_address
-		self.refresh_callback = self.refresh
 
 		self.__init_ui()
 		self.refresh()
@@ -109,7 +113,7 @@ class cPersonAddressesManagerPnl(gmListWidgets.cGenericListManagerPnl):
 					a['postcode'],
 					a['urb'],
 					gmTools.coalesce(a['suburb'], u''),
-					a['l10n_state'],
+					a['l10n_region'],
 					a['l10n_country'],
 					gmTools.coalesce(a['notes_subunit'], u'')
 				] for a in adrs
@@ -136,6 +140,12 @@ class cPersonAddressesManagerPnl(gmListWidgets.cGenericListManagerPnl):
 			_('Country'),
 			_('Comment')
 		])
+
+		self.left_extra_button = (
+			_('Map'),
+			_('Show selected address on map'),
+			self._show_address_on_map
+		)
 	#--------------------------------------------------------
 	def _add_address(self):
 		ea = gmAddressWidgets.cAddressEAPnl(self, -1)
@@ -175,6 +185,11 @@ class cPersonAddressesManagerPnl(gmListWidgets.cGenericListManagerPnl):
 		self.__identity.unlink_address(address = address)
 		return True
 	#--------------------------------------------------------
+	def _show_address_on_map(self, address):
+		if address is None:
+			return False
+		gmNetworkTools.open_url_in_browser(address.as_map_url, new = 2, autoraise = True)
+	#--------------------------------------------------------
 	def _calculate_tooltip(self, address):
 		tt = u'\n'.join(address.format())
 		tt += u'\n'
diff --git a/client/wxpython/gmPersonCreationWidgets.py b/client/wxpython/gmPersonCreationWidgets.py
index 3ded688..6347408 100644
--- a/client/wxpython/gmPersonCreationWidgets.py
+++ b/client/wxpython/gmPersonCreationWidgets.py
@@ -216,7 +216,7 @@ class cNewPatientEAPnl(wxgNewPatientEAPnl.wxgNewPatientEAPnl, gmEditArea.cGeneri
 		self._PRW_urb.SetText(value = adr['urb'], data = adr['urb'])
 		self._PRW_urb.set_context(context = u'zip', val = adr['postcode'])
 
-		self._PRW_region.SetText(value = adr['l10n_state'], data = adr['code_state'])
+		self._PRW_region.SetText(value = adr['l10n_region'], data = adr['code_region'])
 		self._PRW_region.set_context(context = u'zip', val = adr['postcode'])
 
 		self._PRW_country.SetText(value = adr['l10n_country'], data = adr['code_country'])
@@ -431,7 +431,7 @@ class cNewPatientEAPnl(wxgNewPatientEAPnl.wxgNewPatientEAPnl, gmEditArea.cGeneri
 		mapping = [
 			(self._PRW_street, 'street'),
 			(self._PRW_urb, 'urb'),
-			(self._PRW_region, 'l10n_state')
+			(self._PRW_region, 'l10n_region')
 		]
 		# loop through fields and invalidate address searcher if different
 		for ctrl, field in mapping:
@@ -515,7 +515,7 @@ class cNewPatientEAPnl(wxgNewPatientEAPnl.wxgNewPatientEAPnl, gmEditArea.cGeneri
 				_log.debug('street: >>%s<<', self._PRW_street.GetValue().strip())
 				_log.debug('postcode: >>%s<<', self._PRW_zip.GetValue().strip())
 				_log.debug('urb: >>%s<<', self._PRW_urb.GetValue().strip())
-				_log.debug('state: >>%s<<', self._PRW_region.GetData().strip())
+				_log.debug('region: >>%s<<', self._PRW_region.GetData().strip())
 				_log.debug('country: >>%s<<', self._PRW_country.GetData().strip())
 				_log.exception('cannot link address')
 				gmGuiHelpers.gm_show_error (
diff --git a/client/wxpython/gmPhraseWheel.py b/client/wxpython/gmPhraseWheel.py
index 52c0ec3..2bff8e6 100644
--- a/client/wxpython/gmPhraseWheel.py
+++ b/client/wxpython/gmPhraseWheel.py
@@ -46,6 +46,7 @@ WEB_CHARS = "a-zA-Z0-9\.\-_/:"
 
 
 _timers = []
+
 #============================================================
 def shutdown():
 	"""It can be useful to call this early from your shutdown code to avoid hangs on Notify()."""
@@ -66,6 +67,7 @@ class _cPRWTimer(wx.Timer):
 
 	def Notify(self):
 		self.callback()
+
 #============================================================
 # FIXME: merge with gmListWidgets
 class cPhraseWheelListCtrl(wx.ListCtrl, listmixins.ListCtrlAutoWidthMixin):
@@ -101,6 +103,7 @@ class cPhraseWheelListCtrl(wx.ListCtrl, listmixins.ListCtrlAutoWidthMixin):
 		if sel_idx == -1:
 			return None
 		return self.__data[sel_idx]['list_label']
+
 #============================================================
 # base class for both single- and multi-phrase phrase wheels
 #------------------------------------------------------------
@@ -250,25 +253,46 @@ class cPhraseWheelBase(wx.TextCtrl):
 		raise NotImplementedError('[%s]: set_from_pk()' % self.__class__.__name__)
 	#--------------------------------------------------------
 	def display_as_valid(self, valid=None, partially_invalid=False):
+
 		if valid is True:
-			self.SetBackgroundColour(self.__my_startup_color)
+			color2show = self.__my_startup_color
 		elif valid is False:
 			if partially_invalid:
-				self.SetBackgroundColour(color_prw_partially_invalid)
+				color2show = color_prw_partially_invalid
 			else:
-				self.SetBackgroundColour(color_prw_invalid)
+				color2show = color_prw_invalid
 		else:
 			raise ValueError(u'<valid> must be True or False')
-		self.Refresh()
+
+		if self.IsEnabled():
+			self.SetBackgroundColour(color2show)
+			self.Refresh()
+			return
+
+		self.__previous_enabled_bg_color = color2show
 	#--------------------------------------------------------
-	def display_as_disabled(self, disabled=None):
-		if disabled is True:
+	def Disable(self):
+		self.Enable(enable = False)
+	#--------------------------------------------------------
+	def Enable(self, enable=True):
+		if self.IsEnabled() is enable:
+			return
+
+		if self.IsEnabled():
+			self.__previous_enabled_bg_color = self.GetBackgroundColour()
+
+		super(cPhraseWheelBase, self).Enable(enable)
+
+		if enable is True:
+			#self.SetBackgroundColour(color_prw_valid)
+			self.SetBackgroundColour(self.__previous_enabled_bg_color)
+		elif enable is False:
 			self.SetBackgroundColour(wx.SystemSettings_GetColour(wx.SYS_COLOUR_BACKGROUND))
-		elif disabled is False:
-			self.SetBackgroundColour(color_prw_valid)
 		else:
-			raise ValueError(u'<disabled> must be True or False')
+			raise ValueError(u'<enable> must be True or False')
+
 		self.Refresh()
+
 	#--------------------------------------------------------
 	# callback API
 	#--------------------------------------------------------
@@ -1398,7 +1422,7 @@ if __name__ == '__main__':
 				firstnames || ' ' || lastnames || ', ' || to_char(dob, 'YYYY-MM-DD'),
 				firstnames || ' ' || lastnames
 			from
-				dem.v_basic_person
+				dem.v_active_persons
 			where
 				firstnames || lastnames %(fragment_condition)s
 		"""
diff --git a/client/wxpython/gmPlugin.py b/client/wxpython/gmPlugin.py
index ce98acc..210494a 100644
--- a/client/wxpython/gmPlugin.py
+++ b/client/wxpython/gmPlugin.py
@@ -65,6 +65,7 @@ class cLoadProgressBar (wx.ProgressDialog):
 					plugin))
 		self.prev_plugin = plugin
 		self.idx += 1
+
 #==================================================================
 # This is for NOTEBOOK plugins. Please write other base
 # classes for other types of plugins.
@@ -233,20 +234,32 @@ class cNotebookPlugin:
 	# -----------------------------------------------------
 	def __register_events(self):
 		gmDispatcher.connect(signal = 'display_widget', receiver = self._on_raise_by_signal)
+
 #==================================================================
 class cPatientChange_PluginMixin:
 	"""This mixin adds listening to patient change signals."""
 	def __init__(self):
 		gmDispatcher.connect(self._pre_patient_unselection, u'pre_patient_unselection')
+		gmDispatcher.connect(self._on_current_patient_unset, u'current_patient_unset')
 		gmDispatcher.connect(self._post_patient_selection, u'post_patient_selection')
+
 	# -----------------------------------------------------
 	def _pre_patient_unselection(self, **kwds):
-		print "%s._pre_patient_unselection() not implemented" % self.__class__.__name__
-		print "should usually be used to commit unsaved data"
+#		print "%s._pre_patient_unselection() not implemented" % self.__class__.__name__
+#		print "should usually be used to commit unsaved data"
+		pass
+
+	# -----------------------------------------------------
+	def _on_current_patient_unset(self, **kwds):
+#		print "%s._on_current_patient_unset() not implemented" % self.__class__.__name__
+#		print "should usually be used to empty to UI"
+		pass
+
 	# -----------------------------------------------------
 	def _post_patient_selection(self, **kwds):
 		print "%s._post_patient_selection() not implemented" % self.__class__.__name__
-		print "should usually be used to initialize state"
+		print "should usually be used to schedule reloading the UI"
+
 #==================================================================
 # some convenience functions
 #------------------------------------------------------------------
diff --git a/client/wxpython/gmPraxisWidgets.py b/client/wxpython/gmPraxisWidgets.py
index 3087be7..fd0a016 100644
--- a/client/wxpython/gmPraxisWidgets.py
+++ b/client/wxpython/gmPraxisWidgets.py
@@ -76,7 +76,7 @@ def show_audit_trail(parent=None):
 				r['event_by'],
 				u'%s %s %s' % (
 					gmTools.coalesce(r['row_version_before'], gmTools.u_diameter),
-					gmTools.u_right_arrow,
+					gmTools.u_arrow2right,
 					gmTools.coalesce(r['row_version_after'], gmTools.u_diameter)
 				),
 				r['event_table'],
@@ -485,7 +485,7 @@ def set_active_praxis_branch(parent=None, no_parent=False):
 	#--------------------
 	branch = gmListWidgets.get_choices_from_list (
 		parent = parent,
-		msg = _("Select branch (of praxis [%s]) which you are logging in from.\n") % branches[0]['praxis'],
+		msg = _("Select the branch of praxis [%s] which you are logging in from.\n") % branches[0]['praxis'],
 		caption = _('Praxis branch selection ...'),
 		columns = [_('Branch'), _('Branch type')],
 		can_return_empty = False,
@@ -533,7 +533,6 @@ def manage_praxis_branches(parent=None):
 		_('Manage organizations and their units'),
 		manage_orgs
 	)
-	picker.allow_duplicate_picks = False
 	picker.left_item_tooltip_callback = get_unit_tooltip
 	picker.right_item_tooltip_callback = get_unit_tooltip
 	picker.set_columns(columns = [_('Units of "%s"') % praxis], columns_right = [_('Branches of your praxis')])
diff --git a/client/wxpython/gmPregWidgets.py b/client/wxpython/gmPregWidgets.py
index a7a77e6..a069a28 100644
--- a/client/wxpython/gmPregWidgets.py
+++ b/client/wxpython/gmPregWidgets.py
@@ -15,6 +15,7 @@ import wx
 from Gnumed.pycommon import gmDateTime
 from Gnumed.pycommon import gmTools
 from Gnumed.business import gmClinicalCalculator
+from Gnumed.wxpython import gmGuiHelpers
 
 #====================================================================
 def calculate_edc(parent=None, patient=None):
@@ -23,23 +24,43 @@ def calculate_edc(parent=None, patient=None):
 		parent = wx.GetApp().GetTopWindow()
 
 	dlg = cEdcCalculatorDlg(parent, -1)
+	prev_edc = None
 	if patient.connected:
+		prev_edc = patient.emr.EDC
 		dlg.patient = patient
-		dlg.EDC = patient.emr.EDC
+		dlg.EDC = prev_edc
 	action = dlg.ShowModal()
-	edc = dlg.EDC
+	new_edc = dlg.EDC
 	dlg.Destroy()
 
-	if not patient.connected:
+	# cancelled ?
+	if action != wx.ID_SAVE:
 		return
 
-	if edc is None:
+	# but have we got a patient ?
+	if not patient.connected:
 		return
 
-	if action != wx.ID_SAVE:
+	# ignore setting EDC from NULL to NULL
+	if (new_edc is None) and (prev_edc is None):
 		return
 
-	patient.emr.EDC = edc
+	# setting from X to NULL -> is a deletion intended ?
+	# (prev_edc MUST be not None due to the previous condition)
+	if new_edc is None:
+		delete_edc = gmGuiHelpers.gm_show_question (
+			title = _('Editing EDC'),
+			question = _(
+				'Really delete the EDC documented previously ?\n'
+				'\n'
+				' EDC: %s'
+			) % gmDateTime.pydt_strftime(prev_edc, '%Y %b %d'),
+			cancel_button = False
+		)
+		if not delete_edc:
+			return
+
+	patient.emr.EDC = new_edc
 
 #====================================================================
 from Gnumed.wxGladeWidgets import wxgEdcCalculatorDlg
@@ -87,7 +108,7 @@ class cEdcCalculatorDlg(wxgEdcCalculatorDlg.wxgEdcCalculatorDlg):
 		event.Skip()
 		if self.__calc.patient is None:
 			return False
-		if self._PRW_edc.is_valid_timestamp(allow_empty = False):
+		if self._PRW_edc.is_valid_timestamp(allow_empty = True):
 			self.EndModal(wx.ID_SAVE)
 			return True
 		return False
diff --git a/client/wxpython/gmProgressNotesEAWidgets.py b/client/wxpython/gmProgressNotesEAWidgets.py
new file mode 100644
index 0000000..113bada
--- /dev/null
+++ b/client/wxpython/gmProgressNotesEAWidgets.py
@@ -0,0 +1,420 @@
+# -*- coding: utf-8 -*-
+"""GNUmed expando based textual progress notes handling widgets."""
+#================================================================
+__author__ = "Karsten Hilbert <Karsten.Hilbert at gmx.net>"
+__license__ = "GPL v2 or later (details at http://www.gnu.org)"
+
+import sys
+import logging
+
+
+import wx
+
+
+if __name__ == '__main__':
+	sys.path.insert(0, '../../')
+
+from Gnumed.pycommon import gmI18N
+
+if __name__ == '__main__':
+	gmI18N.activate_locale()
+	gmI18N.install_domain()
+
+from Gnumed.pycommon import gmDispatcher
+from Gnumed.pycommon import gmDateTime
+from Gnumed.pycommon import gmCfg
+
+from Gnumed.business import gmPerson
+from Gnumed.business import gmPraxis
+from Gnumed.business import gmEMRStructItems
+from Gnumed.business import gmClinNarrative
+
+from Gnumed.wxpython import gmGuiHelpers
+from Gnumed.wxpython import gmTextCtrl
+from Gnumed.wxpython import gmVisualProgressNoteWidgets
+
+_log = logging.getLogger('gm.ui')
+
+#============================================================
+from Gnumed.wxGladeWidgets import wxgProgressNotesEAPnl
+
+class cProgressNotesEAPnl(gmTextCtrl.cExpandoTextCtrlHandling_PanelMixin, wxgProgressNotesEAPnl.wxgProgressNotesEAPnl):
+	"""An Edit Area like panel for entering progress notes.
+
+	(
+		Subjective:					Codes:
+			expando text ctrl
+		Objective:					Codes:
+			expando text ctrl
+		Assessment:					Codes:
+			expando text ctrl
+		Plan:						Codes:
+			expando text ctrl
+	)
+		OR
+	SOAP editor (StyledTextCtrl)
+		AND
+	visual progress notes (panel with images)
+		AND
+	Episode synopsis:			Codes:
+		expando text ctrl
+
+	- knows the problem this edit area is about
+	- can deal with issue or episode type problems
+	"""
+	def __init__(self, *args, **kwargs):
+
+		try:
+			self.problem = kwargs['problem']
+			del kwargs['problem']
+		except KeyError:
+			self.problem = None
+
+		wxgProgressNotesEAPnl.wxgProgressNotesEAPnl.__init__(self, *args, **kwargs)
+
+		dbcfg = gmCfg.cCfgSQL()
+		self.__use_soap_fields = bool(dbcfg.get2 (
+			option = u'horstspace.soap_editor.use_one_field_per_soap_category',
+			workplace = gmPraxis.gmCurrentPraxisBranch().active_workplace,
+			bias = u'user',
+			default = True
+		))
+
+		self.__soap_fields = [
+			self._TCTRL_Soap,
+			self._TCTRL_sOap,
+			self._TCTRL_soAp,
+			self._TCTRL_soaP
+		]
+
+		self.__init_ui()
+		self.__register_interests()
+
+		return
+
+	#--------------------------------------------------------
+	def __init_ui(self):
+		if self.__use_soap_fields is False:
+			for field in self.__soap_fields:
+				field.Hide()
+			self._LBL_Soap.Hide()
+			self._PRW_Soap_codes.Hide()
+			self._LBL_sOap.Hide()
+			self._PRW_sOap_codes.Hide()
+			self._LBL_soAp.Hide()
+			self._PRW_soAp_codes.Hide()
+			self._LBL_soaP.Hide()
+			self._PRW_soaP_codes.Hide()
+			self._STC_soap.Show()
+
+		self.refresh_summary()
+		if self.problem is not None:
+			if self.problem['summary'] is None:
+				self._TCTRL_episode_summary.SetValue(u'')
+		self.refresh_visual_soap()
+
+	#--------------------------------------------------------
+	def refresh(self):
+		self.refresh_summary()
+		self.refresh_visual_soap()
+
+	#--------------------------------------------------------
+	def refresh_summary(self):
+		self._TCTRL_episode_summary.SetValue(u'')
+		self._PRW_episode_codes.SetText(u'', self._PRW_episode_codes.list2data_dict([]))
+		self._LBL_summary.SetLabel(_('Episode synopsis'))
+
+		# new problem ?
+		if self.problem is None:
+			return
+
+		# issue-level problem ?
+		if self.problem['type'] == u'issue':
+			return
+
+		# episode-level problem
+		caption = _(u'Synopsis (%s)') % (
+			gmDateTime.pydt_strftime (
+				self.problem['modified_when'],
+				format = '%B %Y',
+				accuracy = gmDateTime.acc_days
+			)
+		)
+		self._LBL_summary.SetLabel(caption)
+
+		if self.problem['summary'] is not None:
+			self._TCTRL_episode_summary.SetValue(self.problem['summary'].strip())
+
+		val, data = self._PRW_episode_codes.generic_linked_codes2item_dict(self.problem.generic_codes)
+		self._PRW_episode_codes.SetText(val, data)
+
+	#--------------------------------------------------------
+	def refresh_visual_soap(self):
+		if self.problem is None:
+			self._PNL_visual_soap.refresh(document_folder = None)
+			return
+
+		if self.problem['type'] == u'issue':
+			self._PNL_visual_soap.refresh(document_folder = None)
+			return
+
+		if self.problem['type'] == u'episode':
+			pat = gmPerson.gmCurrentPatient()
+			doc_folder = pat.get_document_folder()
+			emr = pat.get_emr()
+			self._PNL_visual_soap.refresh (
+				document_folder = doc_folder,
+				episodes = [self.problem['pk_episode']],
+				encounter = emr.active_encounter['pk_encounter']
+			)
+			return
+
+	#--------------------------------------------------------
+	def clear(self):
+		self._TCTRL_episode_summary.SetValue(u'')
+		self._LBL_summary.SetLabel(_('Episode synopsis'))
+		self._PRW_episode_codes.SetText(u'', self._PRW_episode_codes.list2data_dict([]))
+		self._PNL_visual_soap.clear()
+
+		if self.__use_soap_fields:
+			for field in self.__soap_fields:
+				field.SetValue(u'')
+		else:
+			self._STC_soap.SetText_from_SOAP()
+
+	#--------------------------------------------------------
+	def add_visual_progress_note(self):
+		fname, discard_unmodified = gmVisualProgressNoteWidgets.select_visual_progress_note_template(parent = self)
+		if fname is None:
+			return False
+
+		if self.problem is None:
+			issue = None
+			episode = None
+		elif self.problem['type'] == 'issue':
+			issue = self.problem['pk_health_issue']
+			episode = None
+		else:
+			issue = self.problem['pk_health_issue']
+			episode = gmEMRStructItems.problem2episode(self.problem)
+
+		wx.CallAfter (
+			gmVisualProgressNoteWidgets.edit_visual_progress_note,
+			filename = fname,
+			episode = episode,
+			discard_unmodified = discard_unmodified,
+			health_issue = issue
+		)
+
+	#--------------------------------------------------------
+	def save(self, emr=None, episode_name_candidates=None, encounter=None):
+
+		if self.empty:
+			return True
+
+		# new episode (standalone=unassociated or new-in-issue)
+		if (self.problem is None) or (self.problem['type'] == 'issue'):
+			episode = self.__create_new_episode(emr = emr, episode_name_candidates = episode_name_candidates)
+			# user cancelled
+			if episode is None:
+				return False
+		# existing episode
+		else:
+			episode = emr.problem2episode(self.problem)
+
+		if encounter is None:
+			encounter = emr.current_encounter['pk_encounter']
+
+		# set summary but only if not already set above for a
+		# newly created episode (either standalone or within
+		# a health issue)
+		if self.problem is not None:
+			if self.problem['type'] == 'episode':
+				episode['summary'] = self._TCTRL_episode_summary.GetValue().strip()
+				episode.save()
+
+		# codes for episode
+		episode.generic_codes = [ d['data'] for d in self._PRW_episode_codes.GetData() ]
+
+		gmClinNarrative.create_progress_note (
+			soap = self.soap,
+			episode_id = episode['pk_episode'],
+			encounter_id = encounter
+		)
+
+		return True
+
+	#--------------------------------------------------------
+	# internal helpers
+	#--------------------------------------------------------
+	def __create_new_episode(self, emr=None, episode_name_candidates=None):
+
+		episode_name_candidates.append(self._TCTRL_episode_summary.GetValue().strip())
+		for candidate in episode_name_candidates:
+			if candidate is None:
+				continue
+			epi_name = candidate.strip().replace('\r', '//').replace('\n', '//')
+			break
+
+		if self.problem is None:
+			msg = _(
+				u'Enter a short working name for this new problem\n'
+				u'(which will become a new, unassociated episode):\n'
+			)
+		else:
+			issue = emr.problem2issue(self.problem)
+			msg = _(
+				u'Enter a short working name for this new\n'
+				u'episode under the existing health issue\n'
+				u'\n'
+				u'"%s":\n'
+			) % issue['description']
+
+		dlg = wx.TextEntryDialog (
+			parent = self,
+			message = msg,
+			caption = _('Creating problem (episode) to save notelet under ...'),
+			defaultValue = epi_name,
+			style = wx.OK | wx.CANCEL | wx.CENTRE
+		)
+		decision = dlg.ShowModal()
+		if decision != wx.ID_OK:
+			return None
+
+		epi_name = dlg.GetValue().strip()
+		if epi_name == u'':
+			gmGuiHelpers.gm_show_error(_('Cannot save a new problem without a name.'), _('saving progress note'))
+			return None
+
+		# create episode
+		new_episode = emr.add_episode (
+			episode_name = epi_name[:45],
+			pk_health_issue = None,
+			is_open = True,
+			allow_dupes = True		# this ensures we get a new episode even if a same-name one already exists
+		)
+		new_episode['summary'] = self._TCTRL_episode_summary.GetValue().strip()
+		new_episode.save()
+
+		if self.problem is not None:
+			issue = emr.problem2issue(self.problem)
+			if not gmEMRStructWidgets.move_episode_to_issue(episode = new_episode, target_issue = issue, save_to_backend = True):
+				gmGuiHelpers.gm_show_warning (
+					_(
+						'The new episode:\n'
+						'\n'
+						' "%s"\n'
+						'\n'
+						'will remain unassociated despite the editor\n'
+						'having been invoked from the health issue:\n'
+						'\n'
+						' "%s"'
+					) % (
+						new_episode['description'],
+						issue['description']
+					),
+					_('saving progress note')
+				)
+
+		return new_episode
+
+	#--------------------------------------------------------
+	# event handling
+	#--------------------------------------------------------
+	def __register_interests(self):
+		if self.__use_soap_fields:
+			for field in self.__soap_fields:
+				self.bind_expando_layout_event(field)
+		self.bind_expando_layout_event(self._TCTRL_episode_summary)
+		gmDispatcher.connect(signal = u'blobs.doc_obj_mod_db', receiver = self.refresh_visual_soap)
+
+	#--------------------------------------------------------
+	# properties
+	#--------------------------------------------------------
+	def _get_soap(self):
+		if not self.__use_soap_fields:
+			return self._STC_soap.soap
+
+		soap = {}
+		tmp = self._TCTRL_Soap.GetValue().strip()
+		if tmp != u'':
+			soap['s'] = [tmp]
+		tmp = self._TCTRL_sOap.GetValue().strip()
+		if tmp != u'':
+			soap['o'] = [tmp]
+		tmp = self._TCTRL_soAp.GetValue().strip()
+		if tmp != u'':
+			soap['a'] = [tmp]
+		tmp = self._TCTRL_soaP.GetValue().strip()
+		if tmp != u'':
+			soap['p'] = [tmp]
+		return soap
+
+	soap = property(_get_soap, lambda x:x)
+	#--------------------------------------------------------
+	def _get_empty(self):
+		if self.__use_soap_fields:
+			for field in self.__soap_fields:
+				if field.GetValue().strip() != u'':
+					return False
+		else:
+			if not self._STC_soap.empty:
+				return False
+
+		# summary
+		summary = self._TCTRL_episode_summary.GetValue().strip()
+		if self.problem is None:
+			if summary != u'':
+				return False
+		elif self.problem['type'] == u'issue':
+			if summary != u'':
+				return False
+		else:
+			if self.problem['summary'] is None:
+				if summary != u'':
+					return False
+			else:
+				if summary != self.problem['summary'].strip():
+					return False
+
+		# codes
+		new_codes = self._PRW_episode_codes.GetData()
+		if self.problem is None:
+			if len(new_codes) > 0:
+				return False
+		elif self.problem['type'] == u'issue':
+			if len(new_codes) > 0:
+				return False
+		else:
+			old_code_pks = self.problem.generic_codes
+			if len(old_code_pks) != len(new_codes):
+				return False
+			for code in new_codes:
+				if code['data'] not in old_code_pks:
+					return False
+
+		return True
+
+	empty = property(_get_empty, lambda x:x)
+
+#============================================================
+# main
+#---------------------------------------------------
+if __name__ == '__main__':
+
+	if len(sys.argv) < 2:
+		sys.exit()
+
+	if sys.argv[1] != u'test':
+		sys.exit()
+
+	#----------------------------------------
+	def test_cProgressNotesEAPnl():
+		pat = gmPersonSearch.ask_for_patient()
+		application = wx.PyWidgetTester(size=(800,500))
+		soap_input = cProgressNotesEAPnl(application.frame, -1)
+		application.frame.Show(True)
+		application.MainLoop()
+	#----------------------------------------
+
+	test_cProgressNotesEAPnl()
diff --git a/client/wxpython/gmProviderInboxWidgets.py b/client/wxpython/gmProviderInboxWidgets.py
index b506f5d..093bac0 100644
--- a/client/wxpython/gmProviderInboxWidgets.py
+++ b/client/wxpython/gmProviderInboxWidgets.py
@@ -323,7 +323,7 @@ class cInboxMessageEAPnl(wxgInboxMessageEAPnl.wxgInboxMessageEAPnl, gmEditArea.c
 				if self.data['pk_patient'] is None:
 					self._PRW_patient.person = None
 				else:
-					self._PRW_patient.person = gmPerson.cIdentity(aPK_obj = self.data['pk_patient'])
+					self._PRW_patient.person = gmPerson.cPerson(aPK_obj = self.data['pk_patient'])
 		else:
 			self._CHBOX_active_patient.Enable(False)
 			self._CHBOX_active_patient.SetValue(False)
@@ -331,7 +331,7 @@ class cInboxMessageEAPnl(wxgInboxMessageEAPnl.wxgInboxMessageEAPnl, gmEditArea.c
 			if self.data['pk_patient'] is None:
 				self._PRW_patient.person = None
 			else:
-				self._PRW_patient.person = gmPerson.cIdentity(aPK_obj = self.data['pk_patient'])
+				self._PRW_patient.person = gmPerson.cPerson(aPK_obj = self.data['pk_patient'])
 
 		self._PRW_due.SetText(data = self.data['due_date'])
 		self._PRW_expiry.SetText(data = self.data['expiry_date'])
@@ -480,6 +480,7 @@ class cProviderInboxPnl(wxgProviderInboxPnl.wxgProviderInboxPnl, gmRegetMixin.cR
 		self._LCTRL_provider_inbox.set_columns([u'', _('Generated'), _('Status'), _('Category - Type'), _('Message')])
 		self._LCTRL_provider_inbox.searchable_columns = [2, 3, 4]
 		self._LCTRL_provider_inbox.item_tooltip_callback = self._get_msg_tooltip
+		self._LCTRL_provider_inbox.extend_popup_menu_callback = self._extend_popup_menu
 
 		self.__update_greeting()
 
@@ -544,7 +545,7 @@ class cProviderInboxPnl(wxgProviderInboxPnl.wxgProviderInboxPnl, gmRegetMixin.cR
 				order_by = u'due_date, importance DESC, received_when DESC'
 			)
 		elif self._RBTN_scheduled_messages.GetValue():
-			_log.debug('loading overdue messages only')
+			_log.debug('loading scheduled messages only')
 			self.__msgs = self.provider.inbox.get_messages (
 				pk_patient = pk_patient,
 				include_without_provider = include_without_provider,
@@ -587,7 +588,7 @@ class cProviderInboxPnl(wxgProviderInboxPnl.wxgProviderInboxPnl, gmRegetMixin.cR
 			item.append(u'%s: %s%s%s' % (
 				gmDateTime.pydt_strftime(m['received_when'], '%Y-%m-%d'),
 				m['modified_by'],
-				gmTools.u_right_arrow,
+				gmTools.u_arrow2right,
 				gmTools.coalesce(m['provider'], _(u'all'))
 			))
 			if m['due_date'] is None:
@@ -695,29 +696,21 @@ class cProviderInboxPnl(wxgProviderInboxPnl.wxgProviderInboxPnl, gmRegetMixin.cR
 
 		self._TXT_inbox_item_comment.SetValue(tmp)
 	#--------------------------------------------------------
-	def _lst_item_right_clicked(self, evt):
+	def _extend_popup_menu(self, menu=None):
 		tmp = self._LCTRL_provider_inbox.get_selected_item_data(only_one = True)
 		if tmp is None:
 			return
 		self.__focussed_msg = tmp
 
-		# build menu
-		menu = wx.Menu(title = _('Inbox Message Actions:'))
-
 		if self.__focussed_msg['pk_patient'] is not None:
-			ID = wx.NewId()
-			menu.AppendItem(wx.MenuItem(menu, ID, _('Activate patient')))
-			wx.EVT_MENU(menu, ID, self._on_goto_patient)
+			menu_item = menu.Append(-1, _('Activate patient'))
+			self.Bind(wx.EVT_MENU, self._on_goto_patient, menu_item)
 
 		if not self.__focussed_msg['is_virtual']:
-			# - delete message
-			ID = wx.NewId()
-			menu.AppendItem(wx.MenuItem(menu, ID, _('Delete')))
-			wx.EVT_MENU(menu, ID, self._on_delete_focussed_msg)
-			# - edit message
-			ID = wx.NewId()
-			menu.AppendItem(wx.MenuItem(menu, ID, _('Edit')))
-			wx.EVT_MENU(menu, ID, self._on_edit_focussed_msg)
+			menu_item = menu.Append(-1, _('Delete'))
+			self.Bind(wx.EVT_MENU, self._on_delete_focussed_msg, menu_item)
+			menu_item = menu.Append(-1, _('Edit'))
+			self.Bind(wx.EVT_MENU, self._on_edit_focussed_msg, menu_item)
 
 #		if self.__focussed_msg['pk_staff'] is not None:
 #			# - distribute to other providers
@@ -725,9 +718,6 @@ class cProviderInboxPnl(wxgProviderInboxPnl.wxgProviderInboxPnl, gmRegetMixin.cR
 #			menu.AppendItem(wx.MenuItem(menu, ID, _('Distribute')))
 #			wx.EVT_MENU(menu, ID, self._on_distribute_focussed_msg)
 
-		# show menu
-		self.PopupMenu(menu, wx.DefaultPosition)
-		menu.Destroy()
 	#--------------------------------------------------------
 	def _on_message_range_radiobutton_selected(self, event):
 		self._TXT_inbox_item_comment.SetValue(u'')
@@ -769,7 +759,7 @@ class cProviderInboxPnl(wxgProviderInboxPnl.wxgProviderInboxPnl, gmRegetMixin.cR
 		if pk_patient is not None:
 			#emr = gmClinicalRecord.cClinicalRecord(aPKey = pk_patient, allow_user_interaction = False)
 			from Gnumed.wxpython import gmChartPullingWidgets
-			emr = gmChartPullingWidgets.pull_chart(gmPerson.cIdentity(pk_patient))
+			emr = gmChartPullingWidgets.pull_chart(gmPerson.cPerson(pk_patient))
 			if emr is None:
 				return False
 			epi = emr.add_episode(episode_name = 'administrative', is_open = False)
@@ -812,7 +802,7 @@ class cProviderInboxPnl(wxgProviderInboxPnl.wxgProviderInboxPnl, gmRegetMixin.cR
 		) % pk_patient
 
 		try:
-			pat = gmPerson.cIdentity(aPK_obj = pk_patient)
+			pat = gmPerson.cPerson(aPK_obj = pk_patient)
 		except gmExceptions.ConstructorError:
 			wx.EndBusyCursor()
 			_log.exception('patient [%s] not found', pk_patient)
@@ -842,7 +832,7 @@ class cProviderInboxPnl(wxgProviderInboxPnl.wxgProviderInboxPnl, gmRegetMixin.cR
 		wx.BeginBusyCursor()
 
 		try:
-			pat = gmPerson.cIdentity(aPK_obj = pk_patient)
+			pat = gmPerson.cPerson(aPK_obj = pk_patient)
 		except gmExceptions.ConstructorError:
 			wx.EndBusyCursor()
 			_log.exception('patient [%s] not found', pk_patient)
@@ -870,7 +860,7 @@ class cProviderInboxPnl(wxgProviderInboxPnl.wxgProviderInboxPnl, gmRegetMixin.cR
 		wx.BeginBusyCursor()
 
 		try:
-			pat = gmPerson.cIdentity(aPK_obj = pk_patient)
+			pat = gmPerson.cPerson(aPK_obj = pk_patient)
 		except gmExceptions.ConstructorError:
 			wx.EndBusyCursor()
 			_log.exception('patient [%s] not found', pk_patient)
@@ -898,7 +888,7 @@ class cProviderInboxPnl(wxgProviderInboxPnl.wxgProviderInboxPnl, gmRegetMixin.cR
 		wx.BeginBusyCursor()
 
 		try:
-			pat = gmPerson.cIdentity(aPK_obj = pk_patient)
+			pat = gmPerson.cPerson(aPK_obj = pk_patient)
 		except gmExceptions.ConstructorError:
 			wx.EndBusyCursor()
 			_log.exception('patient [%s] not found', pk_patient)
diff --git a/client/wxpython/gmRegetMixin.py b/client/wxpython/gmRegetMixin.py
index 923aa04..944cfc9 100644
--- a/client/wxpython/gmRegetMixin.py
+++ b/client/wxpython/gmRegetMixin.py
@@ -141,6 +141,7 @@ class cRegetOnPaintMixin:
 	def repopulate_ui(self):
 		"""Just a glue method to make this compatible with notebook plugins."""
 		self.__repopulate_ui()
+
 #===========================================================================
 # main
 #---------------------------------------------------------------------------
diff --git a/client/wxpython/gmResizingWidgets.py b/client/wxpython/gmResizingWidgets.py
index e72e8b4..376285e 100644
--- a/client/wxpython/gmResizingWidgets.py
+++ b/client/wxpython/gmResizingWidgets.py
@@ -234,7 +234,7 @@ class cResizingWindow(wx.ScrolledWindow):
 		# FIXME: adapt to cSTCval
 		for line in self.__input_lines:
 			for widget in line:
-				if values.has_key(widget['ID']):
+				if widget['ID'] in values:
 					if isinstance(widget['instance'], wx.stc.StyledTextCtrl):
 						widget['instance'].SetText(values[widget['ID']])
 					elif isinstance(widget['instance'], (wx.Choice, wx.RadioBox)):
@@ -825,7 +825,7 @@ class cResizingSTC(wx.stc.StyledTextCtrl):
 				style = wx.SUNKEN_BORDER,
 				data_sink = self.__popup_keywords[kwd]['widget_data_sink']
 			)
-		except StandardError:
+		except Exception:
 			_log.exception('cannot call [%s] on keyword [%s] to create widget' % (create_widget, kwd))
 			gmGuiHelpers.gm_show_error (
 				aMessage = _('Cannot invoke [%s] for keyword [%s].') % (create_widget, kwd),
diff --git a/client/wxpython/gmSOAPWidgets.py b/client/wxpython/gmSOAPWidgets.py
index 3b73c16..ebcee91 100644
--- a/client/wxpython/gmSOAPWidgets.py
+++ b/client/wxpython/gmSOAPWidgets.py
@@ -1234,7 +1234,7 @@ if __name__ == "__main__":
 #		app.SetWidget(cSingleBoxSOAPPanel, -1)
 #		app.MainLoop()
 
-	except StandardError:
+	except Exception:
 		_log.exception("unhandled exception caught !")
 		# but re-raise them
 		raise
diff --git a/client/wxpython/gmSnellen.py b/client/wxpython/gmSnellen.py
index eb50268..153efc7 100644
--- a/client/wxpython/gmSnellen.py
+++ b/client/wxpython/gmSnellen.py
@@ -186,7 +186,7 @@ class cSnellenChart(wx.Frame):
 		"""
 		n = 5 # can change here
 		list = []
-		for i in xrange (0, n):
+		for i in range (0, n):
 			theta = (i+0.00001)/n*2*math.pi # points on a circle inside the 5x5 grid
 			x = 2.5 + 2.5*math.sin (theta)
 			y = 2.5 - 2.5*math.cos (theta)
diff --git a/client/wxpython/gmSoapSTCWidgets.py b/client/wxpython/gmSoapSTCWidgets.py
new file mode 100644
index 0000000..ae74953
--- /dev/null
+++ b/client/wxpython/gmSoapSTCWidgets.py
@@ -0,0 +1,1209 @@
+# -*- coding: utf-8 -*-
+__doc__ = """GNUmed StyledTextCtrl subclass for SOAP editing.
+
+based on: 11/21/2003 - Jeff Grimmett (grimmtooth at softhome.net)"""
+#================================================================
+__author__  = "K. Hilbert <Karsten.Hilbert at gmx.net>"
+__license__ = "GPL v2 or later (details at http://www.gnu.org)"
+
+import logging
+import sys
+
+
+import wx
+import wx.stc
+
+
+if __name__ == '__main__':
+	sys.path.insert(0, '../../')
+from Gnumed.business import gmSoapDefs
+from Gnumed.wxpython import gmKeywordExpansionWidgets
+
+
+_log = logging.getLogger('gm.stc')
+
+#================================================================
+class cWxTextCtrlCompatibility_StcMixin():
+
+	def __init__(self, *args, **kwargs):
+		if not isinstance(self, wx.stc.StyledTextCtrl):
+			raise TypeError('[%s]: can only be applied to wx.stc.StyledTextCtrl, not [%s]' % (cWxTextCtrlCompatibility_StcMixin, self.__class__.__name__))
+
+	#--------------------------------------------------
+	# wx.TextCtrl compatibility
+	#--------------------------------------------------
+	def GetValue(self):
+		_log.debug(u'%s.GetValue() - %s', cWxTextCtrlCompatibility_StcMixin, self.__class__.__name__)
+		return self.GetText()
+
+	#--------------------------------------------------
+	def SetValue(self, value):
+		_log.debug(u'%s.SetValue() - %s', cWxTextCtrlCompatibility_StcMixin, self.__class__.__name__)
+		return self.SetText(value)
+
+	#--------------------------------------------------
+	def GetLastPosition(self):
+		return self.Length
+
+	LastPosition = property(GetLastPosition, lambda x:x)
+
+	#--------------------------------------------------
+	def GetNumberOfLines(self):
+		return self.LineCount
+
+	#--------------------------------------------------
+	def GetLineText(self, line_no):
+		return self.GetLine(line_no)
+
+	#--------------------------------------------------
+	def GetInsertionPoint(self):
+		return self.CurrentPos
+
+	def SetInsertionPoint(self, position):
+		self.CurrentPos = position
+
+	InsertionPoint = property(GetInsertionPoint, SetInsertionPoint)
+
+	#--------------------------------------------------
+	def ShowPosition(self, position):
+		#self.ScrollToLine(self.LineFromPosition(position))
+		self.CurrentPos = position
+		self.EnsureCaretVisible()
+
+	#--------------------------------------------------
+	def IsMultiLine(self):
+		return True
+
+	#--------------------------------------------------
+	def PositionToXY(self, position):
+		try:
+			#return wx.stc.StyledTextCtrl.PositionToXY(position)			# does not work
+			#return wx.TextAreaBase.PositionToXY(position)					# does not work
+			return super(wx.TextAreaBase, self).PositionToXY(position)
+		except AttributeError:
+			# reimplement for wxPython 2.8
+			return (self.GetColumn(position), self.LineFromPosition(position))
+
+	#--------------------------------------------------
+	def Replace(self, start, end, replacement):
+		self.SetSelection(start, end)
+		self.ReplaceSelection(replacement)
+		wx.CallAfter(self.SetSelection, 0, 0)
+
+#----------------------------------------------------------------------
+class cSoapSTC(cWxTextCtrlCompatibility_StcMixin, gmKeywordExpansionWidgets.cKeywordExpansion_TextCtrlMixin, wx.stc.StyledTextCtrl):
+
+	_MARKER_ADM = 0
+	_MARKER_S = 1
+	_MARKER_O = 2
+	_MARKER_A = 3
+	_MARKER_P = 4
+	_MARKER_U = 5
+	_MARKER_LINE_BG_LIGHT_GREY = 31
+
+	_DEFINED_MARKERS_MASK = (
+		_MARKER_ADM
+			|
+		_MARKER_S
+			|
+		_MARKER_O
+			|
+		_MARKER_A
+			|
+		_MARKER_P
+			|
+		_MARKER_U
+			|
+		_MARKER_LINE_BG_LIGHT_GREY
+	)
+
+	_DEFINED_MARKER_NUMS = [
+		_MARKER_ADM,
+		_MARKER_S,
+		_MARKER_O,
+		_MARKER_A,
+		_MARKER_P,
+		_MARKER_U,
+		_MARKER_LINE_BG_LIGHT_GREY
+	]
+	_SOAP_MARKER_NUMS = [
+		_MARKER_ADM,
+		_MARKER_S,
+		_MARKER_O,
+		_MARKER_A,
+		_MARKER_P,
+		_MARKER_U
+	]
+	_SOAP2MARKER = {
+		None: _MARKER_ADM,
+		u' ': _MARKER_ADM,
+		u'.': _MARKER_ADM,
+		u's': _MARKER_S,
+		u'o': _MARKER_O,
+		u'a': _MARKER_A,
+		u'p': _MARKER_P,
+		u'u': _MARKER_U,
+		u'S': _MARKER_S,
+		u'O': _MARKER_O,
+		u'A': _MARKER_A,
+		u'P': _MARKER_P,
+		u'U': _MARKER_U
+	}
+	_MARKER2SOAP = {
+		_MARKER_ADM: None,
+		_MARKER_S: u's',
+		_MARKER_O: u'o',
+		_MARKER_A: u'a',
+		_MARKER_P: u'p',
+		_MARKER_U: u'u'
+	}
+	_SOAPMARKER2BACKGROUND = {
+		_MARKER_ADM: False,
+		_MARKER_S: True,
+		_MARKER_O: False,
+		_MARKER_A: True,
+		_MARKER_P: False,
+		_MARKER_U: True
+	}
+
+	def __init__(self, *args, **kwargs):
+
+		# normalize wxGlade output
+		if args[2] == u'':
+			l_args = list(args)
+			l_args[2] = wx.DefaultPosition
+			args = tuple(l_args)
+		wx.stc.StyledTextCtrl.__init__(self, *args, **kwargs)
+		cWxTextCtrlCompatibility_StcMixin.__init__(self)
+		gmKeywordExpansionWidgets.cKeywordExpansion_TextCtrlMixin.__init__(self)
+
+		# wrapping and overflow
+		self.SetWrapMode(wx.stc.STC_WRAP_NONE)
+		# said to be problematic:
+		self.SetEdgeColumn(80)
+		self.SetEdgeColour('grey')
+		#self.SetEdgeMode(wx.stc.STC_EDGE_LINE)
+		self.SetEdgeMode(wx.stc.STC_EDGE_BACKGROUND)
+
+		# EOL style
+		self.SetEOLMode(wx.stc.STC_EOL_LF)
+		#self.SetViewEOL(1)										# visual debugging
+		self.SetViewEOL(0)
+
+		# whitespace handling
+		#self.SetViewWhiteSpace(wx.stc.STC_WS_VISIBLEAFTERINDENT)	# visual debugging
+		self.SetViewWhiteSpace(wx.stc.STC_WS_INVISIBLE)
+		#self.SetWhitespaceBackground(1, a_color)					# 1 = override lexer
+		#self.SetWhitespaceForeground(1, a_color)					# 1 = override lexer
+
+		# caret handling
+		self.SetCaretLineBack('light goldenrod yellow')
+		self.SetCaretLineVisible(1)
+
+		# margins
+		# left margin: 0 pixel widths
+		self.SetMarginLeft(0)
+		# margin 0: SOAP markers
+		self.SetMarginType(0, wx.stc.STC_MARGIN_SYMBOL)
+		self.SetMarginWidth(0, 16)
+		self.SetMarginMask(0, cSoapSTC._DEFINED_MARKERS_MASK)
+		# margin 1 and 2: additional 2-letter markers (not yet supported)
+		self.SetMarginType(1, wx.stc.STC_MARGIN_SYMBOL)
+		self.SetMarginMask(1, 0)
+		self.SetMarginWidth(1, 0)
+		self.SetMarginType(2, wx.stc.STC_MARGIN_SYMBOL)
+		self.SetMarginMask(2, 0)
+		self.SetMarginWidth(2, 0)
+
+		# markers
+		# can only use ASCII so far, so must make sure translations are ASCII:
+		self.MarkerDefine(cSoapSTC._MARKER_ADM, wx.stc.STC_MARK_CHARACTER + ord(u'.'), 'blue', 'white')
+		self.MarkerDefine(cSoapSTC._MARKER_S, wx.stc.STC_MARK_CHARACTER + ord(gmSoapDefs.soap_cat2l10n['s']), 'blue', 'grey96')
+		self.MarkerDefine(cSoapSTC._MARKER_O, wx.stc.STC_MARK_CHARACTER + ord(gmSoapDefs.soap_cat2l10n['o']), 'blue', 'white')
+		self.MarkerDefine(cSoapSTC._MARKER_A, wx.stc.STC_MARK_CHARACTER + ord(gmSoapDefs.soap_cat2l10n['a']), 'blue', 'grey96')
+		self.MarkerDefine(cSoapSTC._MARKER_P, wx.stc.STC_MARK_CHARACTER + ord(gmSoapDefs.soap_cat2l10n['p']), 'blue', 'white')
+		self.MarkerDefine(cSoapSTC._MARKER_U, wx.stc.STC_MARK_CHARACTER + ord(gmSoapDefs.soap_cat2l10n['u']), 'blue', 'grey96')
+		self.MarkerDefine(cSoapSTC._MARKER_LINE_BG_LIGHT_GREY, wx.stc.STC_MARK_BACKGROUND, 'grey96', 'grey96')
+
+		# unset hotkeys we want to re-define
+		#self.CmdKeyClear('t', wx.stc.STC_SCMOD_CTRL)	# does not seem to work
+		self.__changing_SOAP_cat = False
+		self.__markers_of_prev_line = None
+		self.__ensure_has_all_soap_types = False
+
+		# we do our own popup menu
+		self.UsePopUp(0)
+		self.__build_context_menu()
+
+		# always keep one line of each of .SOAP around
+		self.SetText_from_SOAP()
+
+		self.__register_events()
+
+		# text expansion mixin
+		self.enable_keyword_expansions()
+
+	#-------------------------------------------------------
+	# SOAP-enhanced text setting
+	#-------------------------------------------------------
+	def SetText(self, *args, **kwargs):
+		_log.debug(u'%s.SetText()', self.__class__.__name__)
+		wx.stc.StyledTextCtrl.SetText(self, *args, **kwargs)
+
+	def AddText(self, *args, **kwargs):
+		_log.debug(u'%s.AddText()', self.__class__.__name__)
+		wx.stc.StyledTextCtrl.AddText(self, *args, **kwargs)
+
+	def AddStyledText(self, *args, **kwargs):
+		_log.debug(u'%s.AddStyledText()', self.__class__.__name__)
+		wx.stc.StyledTextCtrl.AddStyledText(self, *args, **kwargs)
+
+	def InsertText(self, *args, **kwargs):
+		_log.debug(u'%s.InsertText()', self.__class__.__name__)
+		wx.stc.StyledTextCtrl.InsertText(self, *args, **kwargs)
+
+	#-------------------------------------------------------
+	def ReplaceSelection(self, text):
+		sel_start, sel_end = self.GetSelection()
+		start_line = self.LineFromPosition(sel_start)
+		end_line = start_line + text.count(u'\n')
+		start_line_soap_cat = self.MarkerGet(start_line)
+		#_log.debug(u'replacing @ pos %s-%s with %s lines (line %s to line %s)', sel_start, sel_end, text.count(u'\n'), start_line, end_line)
+		wx.stc.StyledTextCtrl.ReplaceSelection(self, text)
+		if start_line != end_line:
+			for target_line in range(start_line, end_line):
+				self.MarkerDelete(target_line, -1)
+				self.__set_markers_of_line(target_line, start_line_soap_cat)
+
+	#-------------------------------------------------------
+	def ReplaceTarget(self, *args, **kwargs):
+		_log.debug(u'%s.ReplaceTarget()', self.__class__.__name__)
+		wx.stc.StyledTextCtrl.ReplaceTarget(self, *args, **kwargs)
+
+	def ReplaceTargetRE(self, *args, **kwargs):
+		_log.debug(u'%s.ReplaceTargetRE()', self.__class__.__name__)
+		wx.stc.StyledTextCtrl.ReplaceTargetRE(self, *args, **kwargs)
+
+	#-------------------------------------------------------
+	# external API
+	#-------------------------------------------------------
+	def SetText_from_SOAP(self, soap=None, sort_order=None):
+		# defaults
+		if soap is None:
+			#soap = {None: [u'']} # 'soap' will be added below by normalization
+			soap = {}
+		if sort_order is None:
+			sort_order = [u's', u'o', u'a', u'p', None, u'u']
+
+		# normalize input
+		for cat in u'soap':
+			try:
+				soap[cat]
+			except KeyError:
+				soap[cat] = [u'']
+		try:
+			soap[u'u']
+		except KeyError:
+			soap[u'u'] = []
+		try:
+			soap[None]
+		except KeyError:
+			soap[None] = []
+		if u'.' in soap:
+			soap[None].extend(soap[u'.'])
+			del soap[u'.']
+		if u' ' in soap:
+			soap[None].extend(soap[u' '])
+			del soap[u' ']
+
+		# normalize sort order
+		for cat in u'soapu':
+			if cat not in sort_order:
+				sort_order.append(cat)
+		if None not in sort_order:
+			sort_order.append(None)
+
+		# sort and flatten
+		soap_lines = []
+		line_categories = []
+		for cat in sort_order:
+			lines = soap[cat]
+			if len(lines) == 0:
+				continue
+			for line in lines:
+				soap_lines.append(line.strip())
+				line_categories.append(cat)
+
+		_log.debug(u'%s.SetText_from_SOAP(): 1 controlled use of .SetText() follows', self.__class__.__name__)
+		self.SetText(u'\n'.join(soap_lines))
+
+		for idx in range(len(line_categories)):
+			#self.set_soap_cat_of_line(idx, line_categories[idx], unconditionally = True)
+			self.set_soap_cat_of_line(idx, line_categories[idx])
+
+	#-------------------------------------------------------
+	def GetText_as_SOAP(self):
+		lines = self.GetText().split(u'\n')
+		soap = {}
+		for line_idx in range(len(lines)):
+			cat = self.get_soap_cat_of_line(line_idx)
+			try:
+				soap[cat]
+			except KeyError:
+				soap[cat] = []
+			soap[cat].append(lines[line_idx])
+		return soap
+
+	soap = property(GetText_as_SOAP, lambda x:x)
+
+	#--------------------------------------------------------
+	def _get_empty(self):
+		soap = self.GetText_as_SOAP()
+		for cat in soap:
+			if u''.join([ l.strip() for l in soap[cat] ]) != u'':
+				return False
+		return True
+
+	empty = property(_get_empty, lambda x:x)
+
+	#-------------------------------------------------------
+	def sort_by_SOAP(self, sort_order=None):
+		self.SetText_from_SOAP(self.GetText_as_SOAP(), sort_order)
+
+	#-------------------------------------------------------
+	def append_soap_line(self, soap_cat):
+		caret_pos = self.CurrentPos
+		self.GotoPos(self.Length)
+		self.AddText(u'\n')
+		#self.set_soap_cat_of_line(self.LineCount, soap_cat, True)
+		self.set_soap_cat_of_line(self.LineCount, soap_cat)
+
+	#-------------------------------------------------------
+	# generic helpers
+	#-------------------------------------------------------
+	def strip_trailing_whitespace_from_line(self, line):
+		line_text = self.GetLine(line)
+		line_start = self.PositionFromLine(line)
+		line_end = self.GetLineEndPosition(line)
+		self.SetTargetStart(line_start)
+		self.SetTargetEnd(line_end)
+		self.ReplaceTarget(line_text.rstrip())
+
+	#-------------------------------------------------------
+	def caret_coords_in_stc(self):
+		return self.PointFromPosition(self.CurrentPos)
+
+	#-------------------------------------------------------
+	def caret_coords_on_screen(self):
+		return self.ClientToScreen(self.caret_coords_in_stc())
+
+	#-------------------------------------------------------
+	# internal helpers
+	#-------------------------------------------------------
+	def __build_context_menu(self):
+
+		# build menu
+		self.__popup_menu = wx.Menu(title = _('SOAP Editor Actions:'))
+
+		# sort
+		item = self.__popup_menu.Append(-1, _('&Sort lines'), _('Sort lines by SOAP category'))
+		self.Bind(wx.EVT_MENU, self.__on_sort_by_soap, item)
+
+		# expand keyword
+		item = self.__popup_menu.Append(-1, _('e&Xpand keyword'), _('Expand keyword / macro'))
+		self.Bind(wx.EVT_MENU, self.__on_expand_keyword, item)
+
+		self.__popup_menu.AppendSeparator()
+
+		# undo
+		# redo
+
+		# submenu "line"
+		menu_line = wx.Menu()
+
+		item = menu_line.Append(-1, _(u'as &Subjective'), _('Set line to category "Subjective"'))
+		self.Bind(wx.EVT_MENU, self.__on_make_line_Soap, item)
+		item = menu_line.Append(-1, _(u'as &Objective'), _('Set line to category "Objective"'))
+		self.Bind(wx.EVT_MENU, self.__on_make_line_sOap, item)
+		item = menu_line.Append(-1, _(u'as &Assessment'), _('Set line to category "Assessment"'))
+		self.Bind(wx.EVT_MENU, self.__on_make_line_soAp, item)
+		item = menu_line.Append(-1, _(u'as &Plan'), _('Set line to category "Plan"'))
+		self.Bind(wx.EVT_MENU, self.__on_make_line_soaP, item)
+		item = menu_line.Append(-1, _(u'as &Unspecified'), _('Set line to category "unspecified"'))
+		self.Bind(wx.EVT_MENU, self.__on_make_line_soapU, item)
+		item = menu_line.Append(-1, _(u'as ad&Ministrative'), _('Set line to category "administrative"'))
+		self.Bind(wx.EVT_MENU, self.__on_make_line_soapADM, item)
+		menu_line.AppendSeparator()
+		item = menu_line.Append(-1, _(u'\u2192 &Clipboard'), _('Copy line to clipboard'))
+		self.Bind(wx.EVT_MENU, self.__on_line2clipboard, item)
+		item = menu_line.Append(-1, _(u'\u2192 +Clipboard+'), _('Add line to clipboard'))
+		self.Bind(wx.EVT_MENU, self.__on_add_line2clipboard, item)
+		# encrypt
+
+		# submenu "text"
+		menu_all = wx.Menu()
+
+		item = menu_all.Append(-1, _(u'\u2192 &Clipboard'), _('Copy content to clipboard'))
+		self.Bind(wx.EVT_MENU, self.__on_content2clipboard, item)
+		item = menu_all.Append(-1, _(u'\u2192 +Clipboard+'), _('Add content to clipboard'))
+		self.Bind(wx.EVT_MENU, self.__on_add_content2clipboard, item)
+		# ------
+		# cut
+		# copy
+		# paste
+		# delete
+		# -------
+
+		# selected region
+		self.__menu_selection = wx.Menu()
+
+		item = self.__menu_selection.Append(-1, _(u'\u2192 &Clipboard'), _('Copy selection to clipboard'))
+		self.Bind(wx.EVT_MENU, self.__on_region2clipboard, item)
+		item = self.__menu_selection.Append(-1, _(u'\u2192 +Clipboard+'), _('Add selection to clipboard'))
+		self.Bind(wx.EVT_MENU, self.__on_add_region2clipboard, item)
+
+		self.__popup_menu.AppendMenu(wx.NewId(), _('&Line ...'), menu_line)
+		self.__popup_menu.AppendMenu(wx.NewId(), _('&Text ...'), menu_all)
+		self.__popup_menu.AppendMenu(wx.NewId(), _('&Region ...'), self.__menu_selection)
+
+	#-------------------------------------------------------
+	def __show_context_menu(self, position):
+		sel_start, sel_end = self.GetSelection()
+		sel_menu_id = self.__popup_menu.FindItem(_('&Region ...'))
+		if sel_start == sel_end:
+			self.__popup_menu.Enable(sel_menu_id, False)
+		else:
+			self.__popup_menu.Enable(sel_menu_id, True)
+
+		self.PopupMenu(self.__popup_menu, position)
+
+	#-------------------------------------------------------
+	def __get_clipboard_text(self):
+		if wx.TheClipboard.IsOpened():
+			_log.debug('clipboard already open')
+			return u''
+		if not wx.TheClipboard.Open():
+			_log.debug('cannot open clipboard')
+			return u''
+		data_obj = wx.TextDataObject()
+		got_it = wx.TheClipboard.GetData(data_obj)
+		if not got_it:
+			return u''
+		return data_obj.Text
+
+	#-------------------------------------------------------
+	# context menu handlers
+	#-------------------------------------------------------
+	def __on_expand_keyword(self, evt):
+		self.attempt_expansion(show_list_if_needed = True)
+
+	#-------------------------------------------------------
+	def __on_content2clipboard(self, evt):
+		txt = self.GetText().strip()
+		if txt == u'':
+			return
+		self.CopyText(len(txt), txt)
+
+	#-------------------------------------------------------
+	def __on_add_content2clipboard(self, evt):
+		txt = self.GetText().strip()
+		if txt == u'':
+			return
+		txt = self.__get_clipboard_text() + u'\n' + txt
+		self.CopyText(len(txt), txt)
+
+	#-------------------------------------------------------
+	def __on_region2clipboard(self, evt):
+		self.Copy()
+
+	#-------------------------------------------------------
+	def __on_add_region2clipboard(self, evt):
+		region = self.GetTextRange(self.SelectionStart, self.SelectionEnd)
+		if region.strip() == u'':
+			return
+		txt = self.__get_clipboard_text() + u'\n' + region
+		self.CopyText(len(txt), txt)
+
+	#-------------------------------------------------------
+	def __on_line2clipboard(self, evt):
+		txt = self.GetLine(self.CurrentLine).strip()
+		if txt == u'':
+			return
+		self.CopyText(len(txt), txt)
+
+	#-------------------------------------------------------
+	def __on_add_line2clipboard(self, evt):
+		txt = self.GetLine(self.CurrentLine).strip()
+		if txt == u'':
+			return
+		txt = self.__get_clipboard_text() + u'\n' + txt
+		self.CopyText(len(txt), txt)
+
+	#-------------------------------------------------------
+	def __on_make_line_Soap(self, evt):
+		self.set_soap_cat_of_line(self.CurrentLine, u's')
+		wx.CallAfter(self.sort_by_SOAP)
+
+	#-------------------------------------------------------
+	def __on_make_line_sOap(self, evt):
+		self.set_soap_cat_of_line(self.CurrentLine, u'o')
+		wx.CallAfter(self.sort_by_SOAP)
+
+	#-------------------------------------------------------
+	def __on_make_line_soAp(self, evt):
+		self.set_soap_cat_of_line(self.CurrentLine, u'a')
+		wx.CallAfter(self.sort_by_SOAP)
+
+	#-------------------------------------------------------
+	def __on_make_line_soaP(self, evt):
+		self.set_soap_cat_of_line(self.CurrentLine, u'p')
+		wx.CallAfter(self.sort_by_SOAP)
+
+	#-------------------------------------------------------
+	def __on_make_line_soapU(self, evt):
+		self.set_soap_cat_of_line(self.CurrentLine, u'u')
+		wx.CallAfter(self.sort_by_SOAP)
+
+	#-------------------------------------------------------
+	def __on_make_line_soapADM(self, evt):
+		self.set_soap_cat_of_line(self.CurrentLine, u'.')
+		wx.CallAfter(self.sort_by_SOAP)
+
+	#-------------------------------------------------------
+	def __on_sort_by_soap(self, evt):
+		self.sort_by_SOAP()
+
+	#-------------------------------------------------------
+	# marker related helpers
+	#-------------------------------------------------------
+	def _clone_markers(self, source, target):
+		self.MarkerDelete(target, -1)
+		self.__set_markers_of_line(target, self.MarkerGet(source))
+
+	#-------------------------------------------------------
+	def __set_markers_of_line(self, line, markers):
+		for marker_num in cSoapSTC._DEFINED_MARKER_NUMS:
+			if markers & (1 << marker_num):
+				self.MarkerAdd(line, marker_num)
+
+	#-------------------------------------------------------
+	def get_soap_marker_of_line(self, line):
+		markers = self.MarkerGet(line)
+		for marker_num in cSoapSTC._SOAP_MARKER_NUMS:
+			if markers & (1 << marker_num):
+				return marker_num
+
+		return -1		# should only happen when deleting all lines -> STC empties out INCLUDING existing markers ...
+
+	#-------------------------------------------------------
+	def get_soap_cat_of_line(self, line):
+		markers = self.MarkerGet(line)
+		for marker_num in cSoapSTC._SOAP_MARKER_NUMS:
+			if markers & (1 << marker_num):
+				return cSoapSTC._MARKER2SOAP[marker_num]
+
+		return -1		# should only happen when deleting all lines -> STC empties out INCLUDING existing markers ...
+
+	#-------------------------------------------------------
+#	def set_soap_cat_of_line(self, line, soap_category, unconditionally=False):
+	def set_soap_cat_of_line(self, line, soap_category):
+
+		readd_soap_line = False
+		prev_soap_cat = u'-'
+#		if not unconditionally:
+		if True:
+			# need to keep at least one of previous SOAP
+			prev_soap_marker = self.get_soap_marker_of_line(line)
+			if prev_soap_marker != -1:
+				if self.marker_count(prev_soap_marker) < 2:
+					prev_soap_cat = cSoapSTC._MARKER2SOAP[prev_soap_marker]
+					readd_soap_line = True
+#				return False
+
+		# remove all SOAP markers of this line
+		for marker_num in cSoapSTC._SOAP_MARKER_NUMS:
+			self.MarkerDelete(line, marker_num)
+		self.MarkerDelete(line, cSoapSTC._MARKER_LINE_BG_LIGHT_GREY)
+
+		new_marker_num = cSoapSTC._SOAP2MARKER[soap_category]
+		self.MarkerAdd(line, new_marker_num)
+		if cSoapSTC._SOAPMARKER2BACKGROUND[new_marker_num]:
+			self.MarkerAdd(line, cSoapSTC._MARKER_LINE_BG_LIGHT_GREY)
+
+		# for some reason the marker is now set but the change is not always displayed ?
+		# -> this happens if wx.CallAfter is used on this method
+
+		if readd_soap_line:
+			wx.CallAfter(self.append_soap_line, prev_soap_cat)
+
+		return True
+
+	#-------------------------------------------------------
+	def check_has_all_soap_types(self):
+		for marker_num in [ cSoapSTC._MARKER_S, cSoapSTC._MARKER_O, cSoapSTC._MARKER_A, cSoapSTC._MARKER_P ]:
+			if self.MarkerNext(0, (1 << marker_num)) == -1:
+				return False
+		return True
+
+	#-------------------------------------------------------
+	def ensure_has_all_soap_types(self):
+		self.__ensure_has_all_soap_types = False
+		self.sort_by_SOAP()
+
+	#-------------------------------------------------------
+	def marker_count(self, marker):
+		line_count = 0
+		line_w_marker = -1
+		while True:
+			line_w_marker = self.MarkerNext(line_w_marker + 1, (1 << marker))
+			if line_w_marker == -1:
+				break
+			line_count += 1
+		return line_count
+
+	#-------------------------------------------------------
+	def soap_cat_count(self, soap_category):
+		marker = cSoapSTC._SOAP2MARKER[soap_category]
+		return self.marker_count(marker)
+
+	#-------------------------------------------------------
+	# key handlers
+	#-------------------------------------------------------
+	def __handle_delete_key(self, evt):
+
+		if evt.HasModifiers():
+			# we only handle DELETE w/o modifiers so far
+			evt.Skip()
+			return False
+
+		sel_start, sel_end = self.GetSelection()
+		if sel_start != sel_end:
+			evt.Skip()
+			sel_start_line = self.LineFromPosition(sel_start)
+			sel_end_line = self.LineFromPosition(sel_end)
+			# within one line -> allow in any case
+			if sel_start_line == sel_end_line:
+				return
+			sel_start_soap_marker = self.get_soap_marker_of_line(sel_start_line)
+			sel_end_soap_marker = self.get_soap_marker_of_line(sel_end_line)
+			if sel_start_soap_marker == sel_end_soap_marker:
+				# across lines of the same SOAP type -> allow
+				return
+			self.__ensure_has_all_soap_types = True
+			return
+
+		curr_line = self.CurrentLine
+		if (curr_line + 1) == self.LineCount:			# adjust for line index being 0-based
+			# we are on the last line, therefore we cannot end up
+			# pulling up a next line (and thereby remove the only
+			# line with a given SOAP category in case the last+1
+			# line would happen to be the only one of that category)
+			evt.Skip()
+			return False
+
+		# in last column
+		caret_pos = self.GetColumn(self.CurrentPos)
+		max_pos = self.LineLength(curr_line) - 1
+		if caret_pos < max_pos:
+			# DELETE _inside_ a line (as opposed to at the
+			# _end_ of one) will not pull up the next line
+			# so no special SOAP checking
+			evt.Skip()
+			return False
+
+		soap_marker_current_line = self.get_soap_marker_of_line(curr_line)
+		soap_marker_next_line = self.get_soap_marker_of_line(curr_line + 1)
+		if soap_marker_current_line == soap_marker_next_line:
+			# pulling up a line of the _same_ SOAP category
+			# is fine - and exactly what the user intended
+			# so allow that to happen (IOW no special DELETE
+			# handling)
+			evt.Skip()
+			return False
+
+		# now we have got
+		# - a DELETE
+		# - without modifier keys
+		# - _not_ on the last line
+		# - in the last column of the current line
+		# - but the next line is of a different SOAP category
+		# so, do NOT evt.Skip() - IOW, ignore this DELETE
+		return True
+
+	#-------------------------------------------------------
+	def __handle_backspace_key(self, evt):
+
+		if evt.HasModifiers():
+			# we only handle BACKSPACE w/o modifiers so far
+			evt.Skip()
+			return False
+
+		sel_start, sel_end = self.GetSelection()
+		if sel_start != sel_end:
+			evt.Skip()
+			sel_start_line = self.LineFromPosition(sel_start)
+			sel_end_line = self.LineFromPosition(sel_end)
+			# within one line -> allow in any case
+			if sel_start_line == sel_end_line:
+				return
+			sel_start_soap_marker = self.get_soap_marker_of_line(sel_start_line)
+			sel_end_soap_marker = self.get_soap_marker_of_line(sel_end_line)
+			if sel_start_soap_marker == sel_end_soap_marker:
+				# across lines of the same SOAP type -> allow
+				return
+			self.__ensure_has_all_soap_types = True
+			return
+
+		curr_line = self.LineFromPosition(self.CurrentPos)
+		if curr_line == 0:
+			# cannot BACKSPACE into line -1 anyway
+			evt.Skip()
+			return False
+
+		if self.GetColumn(self.CurrentPos) > 0:
+			# not in first column, so not BACKSPACing into previous line
+			evt.Skip()
+			return False
+
+		soap_marker_current_line = self.get_soap_marker_of_line(curr_line)
+		soap_marker_next_line = self.get_soap_marker_of_line(curr_line - 1)
+		if soap_marker_current_line == soap_marker_next_line:
+			# backspacing into previous line of the _same_ SOAP
+			# category is fine - and exactly what the user
+			# intended so allow that to happen (IOW no special
+			# DELETE handling)
+			evt.Skip()
+			return False
+
+		# now we have got
+		# - a BACKSPACE
+		# - without modifier keys
+		# - _not_ on the first line
+		# - in the first column of the current line
+		# - but the previous line is of a different SOAP category
+		# so, do NOT evt.Skip() - IOW, ignore this BACKSPACE
+		return True
+
+	#-------------------------------------------------------
+	def __handle_return_key_down(self, evt):
+		# currently we always want to pass on the RETURN (but remember the markers)
+		evt.Skip()
+		if evt.HasModifiers():
+			# we only handle RETURN w/o modifiers so far
+			self.__markers_of_prev_line = None
+			return
+		self.__markers_of_prev_line = self.MarkerGet(self.CurrentLine)
+
+	#-------------------------------------------------------
+	def __handle_soap_category_key_down(self, key, line):
+		self.__changing_SOAP_cat = False
+		try:
+			soap_category = gmSoapDefs.l10n2soap_cat[key]
+		except KeyError:
+			if key.islower():
+				key = key.upper()
+			else:
+				key = key.lower()
+			try:
+				soap_category = gmSoapDefs.l10n2soap_cat[key]
+			except KeyError:
+				return
+		self.set_soap_cat_of_line(line, soap_category)
+		wx.CallAfter(self.sort_by_SOAP)
+
+	#-------------------------------------------------------
+	def __handle_menu_key_down(self, evt):
+		if wx.MAJOR_VERSION > 2:
+			evt.Skip()
+			return
+		# on wxp2 we need to explicitely handle WXK_MENU
+		# for the context menu to properly work on a key press
+		self.__show_context_menu(self.caret_coords_on_screen())
+
+	#-------------------------------------------------------
+	def _on_context_menu_activated(self, evt):
+		menu_position = evt.GetPosition()
+		if menu_position == wx.DefaultPosition:
+			caret_pos_in_stc = self.PointFromPosition(self.CurrentPos)
+			caret_pos_on_screen = self.ClientToScreen(caret_pos_in_stc)
+			menu_position = caret_pos_on_screen
+		self.__show_context_menu(menu_position)
+
+	#-------------------------------------------------------
+	# event setup and handlers
+	#-------------------------------------------------------
+	def __register_events(self):
+		# wxPython events
+		self.Bind(wx.EVT_KEY_DOWN, self._on_key_down)			# happens before key gets into STC
+		#self.Bind(wx.EVT_CHAR, self._on_wx_char)				# happens before char gets into STC
+		self.Bind(wx.EVT_CONTEXT_MENU, self._on_context_menu_activated)
+
+		# STC events
+		self.Bind(wx.stc.EVT_STC_CHARADDED, self._on_stc_char_added)
+		self.Bind(wx.stc.EVT_STC_CHANGE, self._on_stc_change)
+
+		#self.Bind(stc.EVT_STC_DO_DROP, self.OnDoDrop)
+		#self.Bind(stc.EVT_STC_DRAG_OVER, self.OnDragOver)
+		#self.Bind(stc.EVT_STC_START_DRAG, self.OnStartDrag)
+		#self.Bind(stc.EVT_STC_MODIFIED, self.OnModified)
+
+		#self.Bind(wx.EVT_WINDOW_DESTROY, self.OnDestroy)
+
+	#-------------------------------------------------------
+	def _on_wx_char(self, evt):
+		evt.Skip()
+
+	#-------------------------------------------------------
+	def _on_key_down(self, evt):
+
+		# CTRL-T has been pressed last, now another character has been pressed
+		if self.__changing_SOAP_cat:
+			self.__handle_soap_category_key_down(unichr(evt.GetUniChar()).lower(), self.CurrentLine)
+			# somehow put cursor into the changed (and possibly moved) line
+			return
+
+		key = evt.KeyCode
+
+		# ENTER
+		if key == wx.WXK_RETURN:
+			self.__handle_return_key_down(evt)
+			return
+
+		# BACKSPACE
+		if key == wx.WXK_BACK:
+			self.__handle_backspace_key(evt)
+			return
+
+		# DELETE
+		if key == wx.WXK_DELETE:
+			self.__handle_delete_key(evt)
+			return
+
+		# MENU
+		if key == wx.WXK_MENU:
+			self.__handle_menu_key_down(evt)
+			return
+
+		# CTRL-T: set Type
+		if key == ord('T'):
+			if evt.HasModifiers():
+				if evt.CmdDown():		# CTRL-T or APPLE-T
+					self.__changing_SOAP_cat = True
+					return
+
+		evt.Skip()			# make sure unhandled keys get to the STC
+
+	#-------------------------------------------------------
+	def _on_stc_char_added(self, evt):
+		evt.Skip()
+		key = evt.GetKey()
+		if key == 10:
+			# we cannot simply transfer the markers of the previous
+			# line (where we pressed RETURN) into the current line
+			# (which appeared after the RETURN) because the STC handles
+			# creating the "new" line differently based on where in the
+			# previous line RETURN was pressed (!) -- if it happened
+			# to be in position 0 (at the start of the line) the previous
+			# line is pushed DOWN and an empty line is inserted BEFORE
+			# the previous line (likely an optimization)
+			# hence we need to remember the markers of the real previous
+			# line from _before_ the new line gets created and use that
+			# auto-set the markers of the new line... |-)
+			if self.__markers_of_prev_line is None:
+				return
+			self.__set_markers_of_line(self.CurrentLine - 1, self.__markers_of_prev_line)
+			self.__set_markers_of_line(self.CurrentLine, self.__markers_of_prev_line)
+			self.__markers_of_prev_line = None
+			return
+
+	#-------------------------------------------------------
+	def _on_stc_change(self, evt):
+		if self.__ensure_has_all_soap_types:
+			wx.CallAfter(self.ensure_has_all_soap_types)
+
+	#-------------------------------------------------------
+	#-------------------------------------------------------
+	#-------------------------------------------------------
+	#-------------------------------------------------------
+	# unused:
+	#-------------------------------------------------------
+	def OnDestroy(self, evt):
+		# This is how the clipboard contents can be preserved after
+		# the app has exited.
+		wx.TheClipboard.Flush()
+		evt.Skip()
+
+
+	def OnStartDrag(self, evt):
+		#self.log.write("OnStartDrag: %d, %s\n"
+		#			   % (evt.GetDragAllowMove(), evt.GetDragText()))
+
+		if debug and evt.GetPosition() < 250:
+			evt.SetDragAllowMove(False)		# you can prevent moving of text (only copy)
+			evt.SetDragText("DRAGGED TEXT") # you can change what is dragged
+			#evt.SetDragText("")			 # or prevent the drag with empty text
+
+
+	def OnDragOver(self, evt):
+		#self.log.write(
+		#	"OnDragOver: x,y=(%d, %d)  pos: %d	DragResult: %d\n"
+		#	% (evt.GetX(), evt.GetY(), evt.GetPosition(), evt.GetDragResult())
+		#	)
+
+		if debug and evt.GetPosition() < 250:
+			evt.SetDragResult(wx.DragNone)	 # prevent dropping at the beginning of the buffer
+
+
+	def OnDoDrop(self, evt):
+		#self.log.write("OnDoDrop: x,y=(%d, %d)	pos: %d	 DragResult: %d\n"
+		#			   "\ttext: %s\n"
+		#			   % (evt.GetX(), evt.GetY(), evt.GetPosition(), evt.GetDragResult(),
+		#				  evt.GetDragText()))
+
+		if debug and evt.GetPosition() < 500:
+			evt.SetDragText("DROPPED TEXT")	 # Can change text if needed
+			#evt.SetDragResult(wx.DragNone)	 # Can also change the drag operation, but it
+											 # is probably better to do it in OnDragOver so
+											 # there is visual feedback
+
+			#evt.SetPosition(25)			 # Can also change position, but I'm not sure why
+											 # you would want to...
+
+
+	def OnModified(self, evt):
+		#self.log.write("""OnModified
+#		Mod type:	  %s
+#		At position:  %d
+#		Lines added:  %d
+#		Text Length:  %d
+#		Text:		  %s\n""" % ( self.transModType(evt.GetModificationType()),
+#								  evt.GetPosition(),
+#								  evt.GetLinesAdded(),
+#								  evt.GetLength(),
+#								  repr(evt.GetText()) ))
+		pass
+
+
+	def transModType(self, modType):
+		st = ""
+		table = [(stc.STC_MOD_INSERTTEXT, "InsertText"),
+				 (stc.STC_MOD_DELETETEXT, "DeleteText"),
+				 (stc.STC_MOD_CHANGESTYLE, "ChangeStyle"),
+				 (stc.STC_MOD_CHANGEFOLD, "ChangeFold"),
+				 (stc.STC_PERFORMED_USER, "UserFlag"),
+				 (stc.STC_PERFORMED_UNDO, "Undo"),
+				 (stc.STC_PERFORMED_REDO, "Redo"),
+				 (stc.STC_LASTSTEPINUNDOREDO, "Last-Undo/Redo"),
+				 (stc.STC_MOD_CHANGEMARKER, "ChangeMarker"),
+				 (stc.STC_MOD_BEFOREINSERT, "B4-Insert"),
+				 (stc.STC_MOD_BEFOREDELETE, "B4-Delete")
+				 ]
+
+		for flag,text in table:
+			if flag & modType:
+				st = st + text + " "
+
+		if not st:
+			st = 'UNKNOWN'
+
+		return st
+
+#----------------------------------------------------------------------
+#----------------------------------------------------------------------
+#----------------------------------------------------------------------
+if wx.Platform == '__WXMSW__':
+	face1 = 'Arial'
+	face2 = 'Times New Roman'
+	face3 = 'Courier New'
+	pb = 12
+else:
+	face1 = 'Helvetica'
+	face2 = 'Times'
+	face3 = 'Courier'
+	pb = 14
+
+
+_USE_PANEL = 1
+
+def runTest(frame, nb):
+	if not _USE_PANEL:
+		ed = p = cSoapSTC(nb, -1)
+
+	else:
+		p = wx.Panel(nb, -1, style=wx.NO_FULL_REPAINT_ON_RESIZE)
+		ed = cSoapSTC(p, -1, log)
+		s = wx.BoxSizer(wx.HORIZONTAL)
+		s.Add(ed, 1, wx.EXPAND)
+		p.SetSizer(s)
+		p.SetAutoLayout(True)
+
+
+	#ed.SetBufferedDraw(False)
+	#ed.StyleClearAll()
+	#ed.SetScrollWidth(800)
+	#ed.SetWrapMode(True)
+	#ed.SetUseAntiAliasing(False)	 
+	#ed.SetViewEOL(True)
+
+	#ed.CmdKeyClear(stc.STC_KEY_BACK,
+	#				stc.STC_SCMOD_CTRL)
+	#ed.CmdKeyAssign(stc.STC_KEY_BACK,
+	#				 stc.STC_SCMOD_CTRL,
+	#				 stc.STC_CMD_DELWORDLEFT)
+
+	ed.SetText(demoText)
+
+	if wx.USE_UNICODE:
+		import codecs
+		decode = codecs.lookup("utf-8")[1]
+
+		ed.GotoPos(ed.GetLength())
+		ed.AddText("\n\nwx.StyledTextCtrl can also do Unicode:\n")
+		uniline = ed.GetCurrentLine()
+		unitext, l = decode('\xd0\x9f\xd0\xb8\xd1\x82\xd0\xbe\xd0\xbd - '
+							'\xd0\xbb\xd1\x83\xd1\x87\xd1\x88\xd0\xb8\xd0\xb9 '
+							'\xd1\x8f\xd0\xb7\xd1\x8b\xd0\xba \xd0\xbf\xd1\x80\xd0\xbe\xd0\xb3\xd1\x80\xd0\xb0\xd0\xbc\xd0\xbc\xd0\xb8\xd1\x80\xd0\xbe\xd0\xb2\xd0\xb0\xd0\xbd\xd0\xb8\xd1\x8f!\n\n')
+		ed.AddText('\tRussian: ')
+		ed.AddText(unitext)
+		ed.GotoPos(0)
+	#else:
+	#	 #ed.StyleSetFontEncoding(stc.STC_STYLE_DEFAULT, wx.FONTENCODING_KOI8)
+	#	 #text = u'\u041f\u0438\u0442\u043e\u043d - \u043b\u0443\u0447\u0448\u0438\u0439 \u044f\u0437\u044b\u043a \n\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f!'
+	#	 #text = text.encode('koi8-r')
+	#	 #ed.StyleSetFontEncoding(stc.STC_STYLE_DEFAULT, wx.FONTENCODING_BIG5)
+	#	 #text = u'Python \u662f\u6700\u597d\u7684\u7de8\u7a0b\u8a9e\u8a00\uff01'
+	#	 #text = text.encode('big5')
+	#	 ed.GotoPos(ed.GetLength())
+	#	 ed.AddText('\n\n' + text)
+
+	ed.EmptyUndoBuffer()
+
+	# make some styles
+	ed.StyleSetSpec(stc.STC_STYLE_DEFAULT, "size:%d,face:%s" % (pb, face3))
+	ed.StyleClearAll()
+	ed.StyleSetSpec(1, "size:%d,bold,face:%s,fore:#0000FF" % (pb, face1))
+	ed.StyleSetSpec(2, "face:%s,italic,fore:#FF0000,size:%d" % (face2, pb))
+	ed.StyleSetSpec(3, "face:%s,bold,size:%d" % (face2, pb))
+	ed.StyleSetSpec(4, "face:%s,size:%d" % (face1, pb-1))
+
+	# Now set some text to those styles...	Normally this would be
+	# done in an event handler that happens when text needs displayed.
+	ed.StartStyling(98, 0xff)
+	ed.SetStyling(6, 1)	 # set style for 6 characters using style 1
+
+	ed.StartStyling(190, 0xff)
+	ed.SetStyling(20, 2)
+
+	ed.StartStyling(310, 0xff)
+	ed.SetStyling(4, 3)
+	ed.SetStyling(2, 0)
+	ed.SetStyling(10, 4)
+
+
+	# line numbers in the margin
+	ed.SetMarginType(0, stc.STC_MARGIN_NUMBER)
+	ed.SetMarginWidth(0, 22)
+	ed.StyleSetSpec(stc.STC_STYLE_LINENUMBER, "size:%d,face:%s" % (pb-2, face1))
+
+	# setup some markers
+	ed.SetMarginType(1, stc.STC_MARGIN_SYMBOL)
+	ed.MarkerDefine(0, stc.STC_MARK_ROUNDRECT, "#CCFF00", "RED")
+	ed.MarkerDefine(1, stc.STC_MARK_CIRCLE, "FOREST GREEN", "SIENNA")
+	ed.MarkerDefine(2, stc.STC_MARK_SHORTARROW, "blue", "blue")
+	ed.MarkerDefine(3, stc.STC_MARK_ARROW, "#00FF00", "#00FF00")
+
+	# put some markers on some lines
+	ed.MarkerAdd(17, 0)
+	ed.MarkerAdd(18, 1)
+	ed.MarkerAdd(19, 2)
+	ed.MarkerAdd(20, 3)
+	ed.MarkerAdd(20, 0)
+
+
+	# and finally, an indicator or two
+	ed.IndicatorSetStyle(0, stc.STC_INDIC_SQUIGGLE)
+	ed.IndicatorSetForeground(0, wx.RED)
+	ed.IndicatorSetStyle(1, stc.STC_INDIC_DIAGONAL)
+	ed.IndicatorSetForeground(1, wx.BLUE)
+	ed.IndicatorSetStyle(2, stc.STC_INDIC_STRIKE)
+	ed.IndicatorSetForeground(2, wx.RED)
+
+	ed.StartStyling(836, stc.STC_INDICS_MASK)
+	ed.SetStyling(10, stc.STC_INDIC0_MASK)
+	ed.SetStyling(8, stc.STC_INDIC1_MASK)
+	ed.SetStyling(10, stc.STC_INDIC2_MASK | stc.STC_INDIC1_MASK)
+
+
+	# some test stuff...
+	if debug:
+		print "GetTextLength(): ", ed.GetTextLength(), len(ed.GetText())
+		print "GetText(): ", repr(ed.GetText())
+		print
+		print "GetStyledText(98, 104): ", repr(ed.GetStyledText(98, 104)), len(ed.GetStyledText(98, 104))
+		print
+		print "GetCurLine(): ", repr(ed.GetCurLine())
+		ed.GotoPos(5)
+		print "GetCurLine(): ", repr(ed.GetCurLine())
+		print
+		print "GetLine(1): ", repr(ed.GetLine(1))
+		print
+		ed.SetSelection(25, 35)
+		print "GetSelectedText(): ", repr(ed.GetSelectedText())
+		print "GetTextRange(25, 35): ", repr(ed.GetTextRange(25, 35))
+		print "FindText(0, max, 'indicators'): ",
+		print ed.FindText(0, ed.GetTextLength(), "indicators")
+		if wx.USE_UNICODE:
+			end = ed.GetLength()
+			start = ed.PositionFromLine(uniline)
+			print "GetTextRange(%d, %d): " % (start, end),
+			print repr(ed.GetTextRange(start, end))
+
+
+	wx.CallAfter(ed.GotoPos, 0)
+	return p
+
+
+#----------------------------------------------------------------------
+overview = """\
+<html><body>
+Once again, no docs yet.  <b>Sorry.</b>	 But <a href="data/stc.h.html">this</a>
+and <a href="http://www.scintilla.org/ScintillaDoc.html">this</a> should
+be helpful.
+</body><html>
+"""
+
+#===================================================
+# main
+#---------------------------------------------------
+if __name__ == '__main__':
+
+	if len(sys.argv) < 2:
+		sys.exit()
+
+	if sys.argv[1] != u'test':
+		sys.exit()
+
+	import wx.lib.colourdb
+
+	from Gnumed.pycommon import gmI18N
+	gmI18N.activate_locale()
+	gmI18N.install_domain(domain = 'gnumed')
+
+	#-----------------------------------------------
+	def test_stc():
+		app = wx.PyWidgetTester(size = (600, 600))
+		wx.lib.colourdb.updateColourDB()
+		print wx.lib.colourdb.getColourList()
+		app.SetWidget(cSoapSTC, -1)
+		app.MainLoop()
+		return True
+
+#		app = wx.PyWidgetTester(size = (200, 50))
+#		tc = cTextCtrl(parent = app.frame, id = -1)
+#		#tc.enable_keyword_expansions()
+#		app.frame.Show(True)
+#		app.MainLoop()
+#		return True
+
+	#-----------------------------------------------
+	test_stc()
diff --git a/client/wxpython/gmStaffWidgets.py b/client/wxpython/gmStaffWidgets.py
index 7f561cc..b925fc2 100644
--- a/client/wxpython/gmStaffWidgets.py
+++ b/client/wxpython/gmStaffWidgets.py
@@ -86,7 +86,7 @@ class cEditStaffListDlg(wxgEditStaffListDlg.wxgEditStaffListDlg):
 		for staff in staff_list:
 			row_num = self._LCTRL_staff.InsertStringItem(pos, label=staff['short_alias'])
 			self._LCTRL_staff.SetStringItem(index = row_num, col = 1, label = staff['db_user'])
-			self._LCTRL_staff.SetStringItem(index = row_num, col = 2, label = gmTools.coalesce(staff['l10n_role'], _('no current role')))
+			self._LCTRL_staff.SetStringItem(index = row_num, col = 2, label = staff['l10n_role'])
 			title = gmTools.coalesce(staff['title'], '')
 			self._LCTRL_staff.SetStringItem(index = row_num, col = 3, label = '%s %s, %s' % (title, staff['lastnames'], staff['firstnames']))
 			self._LCTRL_staff.SetStringItem(index = row_num, col = 4, label = gmTools.coalesce(staff['comment'], ''))
@@ -135,7 +135,7 @@ class cEditStaffListDlg(wxgEditStaffListDlg.wxgEditStaffListDlg):
 		self._TCTRL_name.SetValue('%s.%s %s' % (staff['title'], staff['firstnames'], staff['lastnames']))
 		self._TCTRL_alias.SetValue(staff['short_alias'])
 		self._TCTRL_account.SetValue(staff['db_user'])
-		self._PRW_user_role.SetText(value = gmTools.coalesce(staff['l10n_role'], u''), data = staff['role'], suppress_smarts = True)
+		self._PRW_user_role.SetText(value = staff['l10n_role'], data = staff['role'], suppress_smarts = True)
 		self._TCTRL_comment.SetValue(gmTools.coalesce(staff['comment'], ''))
 	#--------------------------------------------------------
 	def _on_listitem_deselected(self, evt):
@@ -214,7 +214,6 @@ class cEditStaffListDlg(wxgEditStaffListDlg.wxgEditStaffListDlg):
 		conn.close()
 		self.__init_ui_data()
 		return True
-
 #==========================================================================
 from Gnumed.wxGladeWidgets import wxgAddPatientAsStaffDlg
 
diff --git a/client/wxpython/gmSubstanceMgmtWidgets.py b/client/wxpython/gmSubstanceMgmtWidgets.py
new file mode 100644
index 0000000..e17c598
--- /dev/null
+++ b/client/wxpython/gmSubstanceMgmtWidgets.py
@@ -0,0 +1,1189 @@
+# -*- coding: utf-8 -*-
+
+#from __future__ import print_function
+
+__doc__ = """GNUmed drug / substance reference widgets."""
+
+#================================================================
+__author__ = "Karsten Hilbert <Karsten.Hilbert at gmx.net>"
+__license__ = "GPL v2 or later"
+
+import logging
+import sys
+import os.path
+import decimal
+
+
+import wx
+
+
+if __name__ == '__main__':
+	sys.path.insert(0, '../../')
+	from Gnumed.pycommon import gmI18N
+	gmI18N.activate_locale()
+	gmI18N.install_domain(domain = 'gnumed')
+
+from Gnumed.pycommon import gmDispatcher
+from Gnumed.pycommon import gmCfg
+from Gnumed.pycommon import gmShellAPI
+from Gnumed.pycommon import gmTools
+from Gnumed.pycommon import gmMatchProvider
+
+from Gnumed.business import gmPerson
+from Gnumed.business import gmATC
+from Gnumed.business import gmPraxis
+from Gnumed.business import gmMedication
+
+from Gnumed.wxpython import gmGuiHelpers
+from Gnumed.wxpython import gmAuthWidgets
+from Gnumed.wxpython import gmEditArea
+from Gnumed.wxpython import gmCfgWidgets
+from Gnumed.wxpython import gmListWidgets
+from Gnumed.wxpython import gmPhraseWheel
+
+
+_log = logging.getLogger('gm.ui')
+
+#============================================================
+# generic drug database access
+#------------------------------------------------------------
+def configure_drug_data_source(parent=None):
+	gmCfgWidgets.configure_string_from_list_option (
+		parent = parent,
+		message = _(
+			'\n'
+			'Please select the default drug data source from the list below.\n'
+			'\n'
+			'Note that to actually use it you need to have the database installed, too.'
+		),
+		option = 'external.drug_data.default_source',
+		bias = 'user',
+		default_value = None,
+		choices = gmMedication.drug_data_source_interfaces.keys(),
+		columns = [_('Drug data source')],
+		data = gmMedication.drug_data_source_interfaces.keys(),
+		caption = _('Configuring default drug data source')
+	)
+
+#============================================================
+def get_drug_database(parent=None, patient=None):
+	dbcfg = gmCfg.cCfgSQL()
+
+	# load from option
+	default_db = dbcfg.get2 (
+		option = 'external.drug_data.default_source',
+		workplace = gmPraxis.gmCurrentPraxisBranch().active_workplace,
+		bias = 'workplace'
+	)
+
+	# not configured -> try to configure
+	if default_db is None:
+		gmDispatcher.send('statustext', msg = _('No default drug database configured.'), beep = True)
+		configure_drug_data_source(parent = parent)
+		default_db = dbcfg.get2 (
+			option = 'external.drug_data.default_source',
+			workplace = gmPraxis.gmCurrentPraxisBranch().active_workplace,
+			bias = 'workplace'
+		)
+		# still not configured -> return
+		if default_db is None:
+			gmGuiHelpers.gm_show_error (
+				aMessage = _('There is no default drug database configured.'),
+				aTitle = _('Jumping to drug database')
+			)
+			return None
+
+	# now it MUST be configured (either newly or previously)
+	# but also *validly* ?
+	try:
+		drug_db = gmMedication.drug_data_source_interfaces[default_db]()
+	except KeyError:
+		# not valid
+		_log.error('faulty default drug data source configuration: %s', default_db)
+		# try to configure
+		configure_drug_data_source(parent = parent)
+		default_db = dbcfg.get2 (
+			option = 'external.drug_data.default_source',
+			workplace = gmPraxis.gmCurrentPraxisBranch().active_workplace,
+			bias = 'workplace'
+		)
+		# deconfigured or aborted (and thusly still misconfigured) ?
+		try:
+			drug_db = gmMedication.drug_data_source_interfaces[default_db]()
+		except KeyError:
+			_log.error('still faulty default drug data source configuration: %s', default_db)
+			return None
+
+	if patient is not None:
+		drug_db.patient = pat
+
+	return drug_db
+
+#============================================================
+def jump_to_drug_database(patient=None):
+	drug_db = get_drug_database(patient = patient)
+	if drug_db is None:
+		return
+	drug_db.switch_to_frontend(blocking = False)
+
+#============================================================
+def jump_to_ifap_deprecated(import_drugs=False, emr=None):
+
+	if import_drugs and (emr is None):
+		gmDispatcher.send('statustext', msg = _('Cannot import drugs from IFAP into chart without chart.'))
+		return False
+
+	dbcfg = gmCfg.cCfgSQL()
+
+	ifap_cmd = dbcfg.get2 (
+		option = 'external.ifap-win.shell_command',
+		workplace = gmPraxis.gmCurrentPraxisBranch().active_workplace,
+		bias = 'workplace',
+		default = 'wine "C:\Ifapwin\WIAMDB.EXE"'
+	)
+	found, binary = gmShellAPI.detect_external_binary(ifap_cmd)
+	if not found:
+		gmDispatcher.send('statustext', msg = _('Cannot call IFAP via [%s].') % ifap_cmd)
+		return False
+	ifap_cmd = binary
+
+	if import_drugs:
+		transfer_file = os.path.expanduser(dbcfg.get2 (
+			option = 'external.ifap-win.transfer_file',
+			workplace = gmPraxis.gmCurrentPraxisBranch().active_workplace,
+			bias = 'workplace',
+			default = '~/.wine/drive_c/Ifapwin/ifap2gnumed.csv'
+		))
+		# file must exist for Ifap to write into it
+		try:
+			f = io.open(transfer_file, mode = 'wt').close()
+		except IOError:
+			_log.exception('Cannot create IFAP <-> GNUmed transfer file [%s]', transfer_file)
+			gmDispatcher.send('statustext', msg = _('Cannot create IFAP <-> GNUmed transfer file [%s].') % transfer_file)
+			return False
+
+	wx.BeginBusyCursor()
+	gmShellAPI.run_command_in_shell(command = ifap_cmd, blocking = import_drugs)
+	wx.EndBusyCursor()
+
+	if import_drugs:
+		# COMMENT: this file must exist PRIOR to invoking IFAP
+		# COMMENT: or else IFAP will not write data into it ...
+		try:
+			csv_file = io.open(transfer_file, mode = 'rt', encoding = 'latin1')						# FIXME: encoding unknown
+		except:
+			_log.exception('cannot access [%s]', fname)
+			csv_file = None
+
+		if csv_file is not None:
+			import csv
+			csv_lines = csv.DictReader (
+				csv_file,
+				fieldnames = u'PZN Handelsname Form Abpackungsmenge Einheit Preis1 Hersteller Preis2 rezeptpflichtig Festbetrag Packungszahl Packungsgr\xf6\xdfe'.split(),
+				delimiter = ';'
+			)
+			# dummy episode for now
+			epi = emr.add_episode(episode_name = _('Current medication'))
+			for line in csv_lines:
+				narr = u'%sx %s %s %s (\u2258 %s %s) von %s (%s)' % (
+					line['Packungszahl'].strip(),
+					line['Handelsname'].strip(),
+					line['Form'].strip(),
+					line[u'Packungsgr\xf6\xdfe'].strip(),
+					line['Abpackungsmenge'].strip(),
+					line['Einheit'].strip(),
+					line['Hersteller'].strip(),
+					line['PZN'].strip()
+				)
+				emr.add_clin_narrative(note = narr, soap_cat = 's', episode = epi)
+			csv_file.close()
+
+	return True
+
+#============================================================
+# ATC related widgets
+#------------------------------------------------------------
+def browse_atc_reference_deprecated(parent=None):
+
+	if parent is None:
+		parent = wx.GetApp().GetTopWindow()
+	#------------------------------------------------------------
+	def refresh(lctrl):
+		atcs = gmATC.get_reference_atcs()
+
+		items = [ [
+			a['atc'],
+			a['term'],
+			gmTools.coalesce(a['unit'], u''),
+			gmTools.coalesce(a['administrative_route'], u''),
+			gmTools.coalesce(a['comment'], u''),
+			a['version'],
+			a['lang']
+		] for a in atcs ]
+		lctrl.set_string_items(items)
+		lctrl.set_data(atcs)
+	#------------------------------------------------------------
+	gmListWidgets.get_choices_from_list (
+		parent = parent,
+		msg = _('\nThe ATC codes as known to GNUmed.\n'),
+		caption = _('Showing ATC codes.'),
+		columns = [ u'ATC', _('Term'), _('Unit'), _(u'Route'), _('Comment'), _('Version'), _('Language') ],
+		single_selection = True,
+		refresh_callback = refresh
+	)
+
+#============================================================
+def update_atc_reference_data():
+
+	dlg = wx.FileDialog (
+		parent = None,
+		message = _('Choose an ATC import config file'),
+		defaultDir = os.path.expanduser(os.path.join('~', 'gnumed')),
+		defaultFile = '',
+		wildcard = "%s (*.conf)|*.conf|%s (*)|*" % (_('config files'), _('all files')),
+		style = wx.OPEN | wx.FILE_MUST_EXIST
+	)
+
+	result = dlg.ShowModal()
+	if result == wx.ID_CANCEL:
+		return
+
+	cfg_file = dlg.GetPath()
+	dlg.Destroy()
+
+	conn = gmAuthWidgets.get_dbowner_connection(procedure = _('importing ATC reference data'))
+	if conn is None:
+		return False
+
+	wx.BeginBusyCursor()
+
+	if gmATC.atc_import(cfg_fname = cfg_file, conn = conn):
+		gmDispatcher.send(signal = 'statustext', msg = _('Successfully imported ATC reference data.'))
+	else:
+		gmDispatcher.send(signal = 'statustext', msg = _('Importing ATC reference data failed.'), beep = True)
+
+	wx.EndBusyCursor()
+	return True
+
+#============================================================
+class cATCPhraseWheel(gmPhraseWheel.cPhraseWheel):
+
+	def __init__(self, *args, **kwargs):
+
+		gmPhraseWheel.cPhraseWheel.__init__(self, *args, **kwargs)
+		query = u"""
+
+			SELECT DISTINCT ON (label)
+				atc_code,
+				label
+			FROM (
+
+				SELECT
+					code as atc_code,
+					(code || ': ' || term)
+						AS label
+				FROM ref.atc
+				WHERE
+					term %(fragment_condition)s
+						OR
+					code %(fragment_condition)s
+
+				UNION ALL
+
+				SELECT
+					atc_code,
+					(atc_code || ': ' || description)
+						AS label
+				FROM ref.consumable_substance
+				WHERE
+					description %(fragment_condition)s
+						OR
+					atc_code %(fragment_condition)s
+
+				UNION ALL
+
+				SELECT
+					atc_code,
+					(atc_code || ': ' || description || ' (' || preparation || ')')
+						AS label
+				FROM ref.branded_drug
+				WHERE
+					description %(fragment_condition)s
+						OR
+					atc_code %(fragment_condition)s
+
+				-- it would be nice to be able to include clin.vacc_indication but that's hard to do in SQL
+
+			) AS candidates
+			WHERE atc_code IS NOT NULL
+			ORDER BY label
+			LIMIT 50"""
+
+		mp = gmMatchProvider.cMatchProvider_SQL2(queries = query)
+		mp.setThresholds(1, 2, 4)
+#		mp.word_separators = '[ \t=+&:@]+'
+		self.SetToolTipString(_('Select an ATC (Anatomical-Therapeutic-Chemical) code.'))
+		self.matcher = mp
+		self.selection_only = True
+
+#============================================================
+# consumable substances widgets
+#------------------------------------------------------------
+def edit_consumable_substance(parent=None, substance=None, single_entry=False):
+
+	if substance is not None:
+		if substance.is_in_use_by_patients:
+			gmDispatcher.send(signal = 'statustext', msg = _('Cannot edit this substance. It is in use.'), beep = True)
+			return False
+
+	ea = cConsumableSubstanceEAPnl(parent = parent, id = -1)
+	ea.data = substance
+	ea.mode = gmTools.coalesce(substance, 'new', 'edit')
+	dlg = gmEditArea.cGenericEditAreaDlg2(parent = parent, id = -1, edit_area = ea, single_entry = single_entry)
+	dlg.SetTitle(gmTools.coalesce(substance, _('Adding new consumable substance'), _('Editing consumable substance')))
+	if dlg.ShowModal() == wx.ID_OK:
+		dlg.Destroy()
+		return True
+	dlg.Destroy()
+	return False
+
+#------------------------------------------------------------
+def manage_consumable_substances(parent=None):
+
+	if parent is None:
+		parent = wx.GetApp().GetTopWindow()
+	#------------------------------------------------------------
+	def add_from_db(substance):
+		drug_db = get_drug_database(parent = parent)
+		if drug_db is None:
+			return False
+		drug_db.import_drugs()
+		return True
+	#------------------------------------------------------------
+	def edit(substance=None):
+		return edit_consumable_substance(parent = parent, substance = substance, single_entry = (substance is not None))
+	#------------------------------------------------------------
+	def delete(substance):
+		if substance.is_in_use_by_patients:
+			gmDispatcher.send(signal = 'statustext', msg = _('Cannot delete this substance. It is in use.'), beep = True)
+			return False
+
+		return gmMedication.delete_consumable_substance(substance = substance['pk'])
+	#------------------------------------------------------------
+	def refresh(lctrl):
+		substs = gmMedication.get_consumable_substances(order_by = 'description')
+		items = [ [
+			s['description'],
+			s['amount'],
+			s['unit'],
+			gmTools.coalesce(s['atc_code'], u''),
+			s['pk']
+		] for s in substs ]
+		lctrl.set_string_items(items)
+		lctrl.set_data(substs)
+	#------------------------------------------------------------
+	msg = _('\nThese are the consumable substances registered with GNUmed.\n')
+
+	gmListWidgets.get_choices_from_list (
+		parent = parent,
+		msg = msg,
+		caption = _('Showing consumable substances.'),
+		columns = [_('Substance'), _('Amount'), _('Unit'), 'ATC', u'#'],
+		single_selection = True,
+		new_callback = edit,
+		edit_callback = edit,
+		delete_callback = delete,
+		refresh_callback = refresh,
+		left_extra_button = (_('Import'), _('Import consumable substances from a drug database.'), add_from_db)
+	)
+
+#------------------------------------------------------------
+from Gnumed.wxGladeWidgets import wxgConsumableSubstanceEAPnl
+
+class cConsumableSubstanceEAPnl(wxgConsumableSubstanceEAPnl.wxgConsumableSubstanceEAPnl, gmEditArea.cGenericEditAreaMixin):
+
+	def __init__(self, *args, **kwargs):
+
+		try:
+			data = kwargs['substance']
+			del kwargs['substance']
+		except KeyError:
+			data = None
+
+		wxgConsumableSubstanceEAPnl.wxgConsumableSubstanceEAPnl.__init__(self, *args, **kwargs)
+		gmEditArea.cGenericEditAreaMixin.__init__(self)
+
+		# Code using this mixin should set mode and data
+		# after instantiating the class:
+		self.mode = 'new'
+		self.data = data
+		if data is not None:
+			self.mode = 'edit'
+
+#		self.__init_ui()
+	#----------------------------------------------------------------
+#	def __init_ui(self):
+#		self._PRW_atc.selection_only = False
+	#----------------------------------------------------------------
+	# generic Edit Area mixin API
+	#----------------------------------------------------------------
+	def _valid_for_save(self):
+
+		validity = True
+
+		if self._TCTRL_substance.GetValue().strip() == u'':
+			validity = False
+			self.display_tctrl_as_valid(tctrl = self._TCTRL_substance, valid = False)
+			self._TCTRL_substance.SetFocus()
+		else:
+			self.display_tctrl_as_valid(tctrl = self._TCTRL_substance, valid = True)
+
+		try:
+			decimal.Decimal(self._TCTRL_amount.GetValue().strip().replace(',', '.'))
+			self.display_tctrl_as_valid(tctrl = self._TCTRL_amount, valid = True)
+		except (TypeError, decimal.InvalidOperation):
+			validity = False
+			self.display_tctrl_as_valid(tctrl = self._TCTRL_amount, valid = False)
+			self._TCTRL_amount.SetFocus()
+
+		if self._PRW_unit.GetValue().strip() == u'':
+			validity = False
+			self._PRW_unit.display_as_valid(valid = False)
+			self._TCTRL_substance.SetFocus()
+		else:
+			self._PRW_unit.display_as_valid(valid = True)
+
+		if validity is False:
+			gmDispatcher.send(signal = 'statustext', msg = _('Cannot save consumable substance. Missing essential input.'))
+
+		return validity
+
+	#----------------------------------------------------------------
+	def _save_as_new(self):
+		subst = gmMedication.create_consumable_substance (
+			substance = self._TCTRL_substance.GetValue().strip(),
+			atc = self._PRW_atc.GetData(),
+			amount = decimal.Decimal(self._TCTRL_amount.GetValue().strip().replace(',', '.')),
+			unit = gmTools.coalesce(self._PRW_unit.GetData(), self._PRW_unit.GetValue().strip(), function_initial = ('strip', None))
+		)
+		success, data = subst.save()
+		if not success:
+			err, msg = data
+			_log.error(err)
+			_log.error(msg)
+			gmDispatcher.send(signal = 'statustext', msg = _('Cannot save consumable substance. %s') % msg, beep = True)
+			return False
+
+		self.data = subst
+		return True
+
+	#----------------------------------------------------------------
+	def _save_as_update(self):
+		self.data['description'] = self._TCTRL_substance.GetValue().strip()
+		self.data['atc_code'] = self._PRW_atc.GetData()
+		self.data['amount'] = decimal.Decimal(self._TCTRL_amount.GetValue().strip().replace(',', '.'))
+		self.data['unit'] = gmTools.coalesce(self._PRW_unit.GetData(), self._PRW_unit.GetValue().strip(), function_initial = ('strip', None))
+		success, data = self.data.save()
+
+		if not success:
+			err, msg = data
+			_log.error(err)
+			_log.error(msg)
+			gmDispatcher.send(signal = 'statustext', msg = _('Cannot save consumable substance. %s') % msg, beep = True)
+			return False
+
+		return True
+
+	#----------------------------------------------------------------
+	def _refresh_as_new(self):
+		self._TCTRL_substance.SetValue(u'')
+		self._TCTRL_amount.SetValue(u'')
+		self._PRW_unit.SetText(u'', None)
+		self._PRW_atc.SetText(u'', None)
+
+		self._TCTRL_substance.SetFocus()
+
+	#----------------------------------------------------------------
+	def _refresh_from_existing(self):
+		self._TCTRL_substance.SetValue(self.data['description'])
+		self._TCTRL_amount.SetValue(u'%s' % self.data['amount'])
+		self._PRW_unit.SetText(self.data['unit'], self.data['unit'])
+		self._PRW_atc.SetText(gmTools.coalesce(self.data['atc_code'], u''), self.data['atc_code'])
+
+		self._TCTRL_substance.SetFocus()
+
+	#----------------------------------------------------------------
+	def _refresh_as_new_from_existing(self):
+		self._refresh_as_new()
+
+#------------------------------------------------------------
+class cSubstancePhraseWheel(gmPhraseWheel.cPhraseWheel):
+
+	def __init__(self, *args, **kwargs):
+
+		mp = gmMedication.cSubstanceMatchProvider()
+		mp.setThresholds(1, 2, 4)
+		gmPhraseWheel.cPhraseWheel.__init__(self, *args, **kwargs)
+		self.SetToolTipString(_('The substance with optional strength.'))
+		self.matcher = mp
+		self.selection_only = False
+		self.phrase_separators = None
+
+	#--------------------------------------------------------
+	def _data2instance(self):
+		return gmMedication.cConsumableSubstance(aPK_obj = self.GetData(as_instance = False, can_create = False))
+
+#============================================================
+# drug component widgets
+#------------------------------------------------------------
+def manage_drug_components(parent=None):
+
+	if parent is None:
+		parent = wx.GetApp().GetTopWindow()
+
+	#------------------------------------------------------------
+	def edit(component=None):
+		substance = gmMedication.cConsumableSubstance(aPK_obj = component['pk_consumable_substance'])
+		return edit_consumable_substance(parent = parent, substance = substance, single_entry = True)
+	#------------------------------------------------------------
+	def delete(component):
+		if component.is_in_use_by_patients:
+			gmDispatcher.send(signal = 'statustext', msg = _('Cannot remove this component from the drug. It is in use.'), beep = True)
+			return False
+
+		return component.containing_drug.remove_component(substance = component['pk_component'])
+	#------------------------------------------------------------
+	def refresh(lctrl):
+		comps = gmMedication.get_drug_components()
+		items = [ [
+			u'%s%s' % (c['brand'], gmTools.coalesce(c['atc_brand'], u'', u' [%s]')),
+			u'%s%s' % (c['substance'], gmTools.coalesce(c['atc_substance'], u'', u' [%s]')),
+			u'%s %s' % (c['amount'], c['unit']),
+			c['preparation'],
+			gmTools.coalesce(c['external_code_brand'], u'', u'%%s [%s]' % c['external_code_type_brand']),
+			c['pk_component']
+		] for c in comps ]
+		lctrl.set_string_items(items)
+		lctrl.set_data(comps)
+	#------------------------------------------------------------
+	msg = _('\nThese are the components in the drug brands known to GNUmed.\n')
+
+	gmListWidgets.get_choices_from_list (
+		parent = parent,
+		msg = msg,
+		caption = _('Showing drug brand components.'),
+		columns = [_('Brand'), _('Substance'), _('Strength'), _('Preparation'), _('Code'), u'#'],
+		single_selection = True,
+		#new_callback = edit,
+		edit_callback = edit,
+		delete_callback = delete,
+		refresh_callback = refresh
+	)
+
+#------------------------------------------------------------
+def edit_drug_component(parent=None, drug_component=None, single_entry=False):
+	ea = cDrugComponentEAPnl(parent = parent, id = -1)
+	ea.data = drug_component
+	ea.mode = gmTools.coalesce(drug_component, 'new', 'edit')
+	dlg = gmEditArea.cGenericEditAreaDlg2(parent = parent, id = -1, edit_area = ea, single_entry = single_entry)
+	dlg.SetTitle(gmTools.coalesce(drug_component, _('Adding new drug component'), _('Editing drug component')))
+	if dlg.ShowModal() == wx.ID_OK:
+		dlg.Destroy()
+		return True
+	dlg.Destroy()
+	return False
+
+#------------------------------------------------------------
+from Gnumed.wxGladeWidgets import wxgDrugComponentEAPnl
+
+class cDrugComponentEAPnl(wxgDrugComponentEAPnl.wxgDrugComponentEAPnl, gmEditArea.cGenericEditAreaMixin):
+
+	def __init__(self, *args, **kwargs):
+
+		try:
+			data = kwargs['component']
+			del kwargs['component']
+		except KeyError:
+			data = None
+
+		wxgDrugComponentEAPnl.wxgDrugComponentEAPnl.__init__(self, *args, **kwargs)
+		gmEditArea.cGenericEditAreaMixin.__init__(self)
+
+		# Code using this mixin should set mode and data
+		# after instantiating the class:
+		self.mode = 'new'
+		self.data = data
+		if data is not None:
+			self.mode = 'edit'
+
+		#self.__init_ui()
+	#----------------------------------------------------------------
+#	def __init_ui(self):
+#		# adjust phrasewheels etc
+	#----------------------------------------------------------------
+	# generic Edit Area mixin API
+	#----------------------------------------------------------------
+	def _valid_for_save(self):
+		if self.data is not None:
+			if self.data['is_in_use']:
+				gmDispatcher.send(signal = 'statustext', msg = _('Cannot edit drug component. It is in use.'), beep = True)
+				return False
+
+		validity = True
+
+		if self._PRW_substance.GetData() is None:
+			validity = False
+			self._PRW_substance.display_as_valid(False)
+		else:
+			self._PRW_substance.display_as_valid(True)
+
+		val = self._TCTRL_amount.GetValue().strip().replace(',', u'.', 1)
+		try:
+			decimal.Decimal(val)
+			self.display_tctrl_as_valid(tctrl = self._TCTRL_amount, valid = True)
+		except:
+			validity = False
+			self.display_tctrl_as_valid(tctrl = self._TCTRL_amount, valid = False)
+
+		if self._PRW_unit.GetValue().strip() == u'':
+			validity = False
+			self._PRW_unit.display_as_valid(False)
+		else:
+			self._PRW_unit.display_as_valid(True)
+
+		if validity is False:
+			gmDispatcher.send(signal = 'statustext', msg = _('Cannot save drug component. Invalid or missing essential input.'))
+
+		return validity
+	#----------------------------------------------------------------
+	def _save_as_new(self):
+		# save the data as a new instance
+		data = 1
+		data[''] = 1
+		data[''] = 1
+#		data.save()
+
+		# must be done very late or else the property access
+		# will refresh the display such that later field
+		# access will return empty values
+#		self.data = data
+		return False
+		return True
+	#----------------------------------------------------------------
+	def _save_as_update(self):
+		self.data['pk_consumable_substance'] = self._PRW_substance.GetData()
+		self.data['amount'] = decimal.Decimal(self._TCTRL_amount.GetValue().strip().replace(',', u'.', 1))
+		self.data['unit'] = self._PRW_unit.GetValue().strip()
+		return self.data.save()
+	#----------------------------------------------------------------
+	def _refresh_as_new(self):
+		self._TCTRL_brand.SetValue(u'')
+		self._TCTRL_components.SetValue(u'')
+		self._TCTRL_codes.SetValue(u'')
+		self._PRW_substance.SetText(u'', None)
+		self._TCTRL_amount.SetValue(u'')
+		self._PRW_unit.SetText(u'', None)
+
+		self._PRW_substance.SetFocus()
+	#----------------------------------------------------------------
+	def _refresh_from_existing(self):
+		self._TCTRL_brand.SetValue(u'%s (%s)' % (self.data['brand'], self.data['preparation']))
+		self._TCTRL_components.SetValue(u' / '.join(self.data.containing_drug['components']))
+		details = []
+		if self.data['atc_brand'] is not None:
+			details.append(u'ATC: %s' % self.data['atc_brand'])
+		if self.data['external_code_brand'] is not None:
+			details.append(u'%s: %s' % (self.data['external_code_type_brand'], self.data['external_code_brand']))
+		self._TCTRL_codes.SetValue(u'; '.join(details))
+
+		self._PRW_substance.SetText(self.data['substance'], self.data['pk_consumable_substance'])
+		self._TCTRL_amount.SetValue(u'%s' % self.data['amount'])
+		self._PRW_unit.SetText(self.data['unit'], self.data['unit'])
+
+		self._PRW_substance.SetFocus()
+	#----------------------------------------------------------------
+	def _refresh_as_new_from_existing(self):
+		#self._PRW_brand.SetText(u'', None)
+		#self._TCTRL_prep.SetValue(u'')
+		#self._TCTRL_brand_details.SetValue(u'')
+		self._PRW_substance.SetText(u'', None)
+		self._TCTRL_amount.SetValue(u'')
+		self._PRW_unit.SetText(u'', None)
+
+		self._PRW_substance.SetFocus()
+
+#------------------------------------------------------------
+class cDrugComponentPhraseWheel(gmPhraseWheel.cPhraseWheel):
+
+	def __init__(self, *args, **kwargs):
+
+		mp = gmMedication.cDrugComponentMatchProvider()
+		mp.setThresholds(2, 3, 4)
+		gmPhraseWheel.cPhraseWheel.__init__(self, *args, **kwargs)
+		self.SetToolTipString(_('A drug component with optional strength.'))
+		self.matcher = mp
+		self.selection_only = False
+	#--------------------------------------------------------
+	def _data2instance(self):
+		return gmMedication.cDrugComponent(aPK_obj = self.GetData(as_instance = False, can_create = False))
+
+#============================================================
+# branded drugs widgets
+#------------------------------------------------------------
+def edit_branded_drug(parent=None, branded_drug=None, single_entry=False):
+
+	if branded_drug is not None:
+		if branded_drug.is_in_use_by_patients:
+			gmGuiHelpers.gm_show_info (
+				aTitle = _('Editing drug'),
+				aMessage = _(
+					'Cannot edit the branded drug product\n'
+					'\n'
+					' "%s" (%s)\n'
+					'\n'
+					'because it is currently taken by patients.\n'
+				) % (branded_drug['brand'], branded_drug['preparation'])
+			)
+			return False
+
+	if parent is None:
+		parent = wx.GetApp().GetTopWindow()
+	#--------------------------------------------
+	def manage_substances(drug):
+		manage_consumable_substances(parent = parent)
+	#--------------------------------------------
+	ea = cBrandedDrugEAPnl(parent = parent, id = -1)
+	ea.data = branded_drug
+	ea.mode = gmTools.coalesce(branded_drug, 'new', 'edit')
+	dlg = gmEditArea.cGenericEditAreaDlg2(parent = parent, id = -1, edit_area = ea, single_entry = single_entry)
+	dlg.SetTitle(gmTools.coalesce(branded_drug, _('Adding new drug brand'), _('Editing drug brand')))
+	dlg.left_extra_button = (
+		_('Substances'),
+		_('Manage consumable substances'),
+		manage_substances
+	)
+	if dlg.ShowModal() == wx.ID_OK:
+		dlg.Destroy()
+		return True
+	dlg.Destroy()
+	return False
+
+#------------------------------------------------------------
+def manage_branded_drugs(parent=None, ignore_OK_button=False):
+
+	if parent is None:
+		parent = wx.GetApp().GetTopWindow()
+	#------------------------------------------------------------
+	def add_from_db(brand):
+		drug_db = get_drug_database(parent = parent)
+		if drug_db is None:
+			return False
+		drug_db.import_drugs()
+		return True
+	#------------------------------------------------------------
+	def get_tooltip(brand=None):
+		tt = u'%s %s\n' % (brand['brand'], brand['preparation'])
+		tt += u'\n'
+		tt += u'%s%s%s\n' % (
+			gmTools.bool2subst(brand.is_vaccine, u'%s, ' % _('Vaccine'), u''),
+			u'%s, ' % gmTools.bool2subst(brand.is_in_use_by_patients, _('in use'), _('not in use')),
+			gmTools.bool2subst(brand['is_fake_brand'], _('fake'), u'')
+		)
+		tt += gmTools.coalesce(brand['atc'], u'', _('ATC: %s\n'))
+		tt += gmTools.coalesce(brand['external_code'], u'', u'%s: %%s\n' % brand['external_code_type'])
+		if brand['components'] is not None:
+			tt += u'- %s' % u'\n- '.join(brand['components'])
+		return tt
+	#------------------------------------------------------------
+	def edit(brand):
+		if brand is not None:
+			if brand.is_vaccine:
+				gmGuiHelpers.gm_show_info (
+					aTitle = _('Editing medication'),
+					aMessage = _(
+						'Cannot edit the medication\n'
+						'\n'
+						' "%s" (%s)\n'
+						'\n'
+						'because it is a vaccine. Please edit it\n'
+						'from the vaccine management section !\n'
+					) % (brand['brand'], brand['preparation'])
+				)
+				return False
+
+		return edit_branded_drug(parent = parent, branded_drug = brand, single_entry = True)
+	#------------------------------------------------------------
+	def delete(brand):
+		if brand.is_vaccine:
+			gmGuiHelpers.gm_show_info (
+				aTitle = _('Deleting medication'),
+				aMessage = _(
+					'Cannot delete the medication\n'
+					'\n'
+					' "%s" (%s)\n'
+					'\n'
+					'because it is a vaccine. Please delete it\n'
+					'from the vaccine management section !\n'
+				) % (brand['brand'], brand['preparation'])
+			)
+			return False
+		gmMedication.delete_branded_drug(brand = brand['pk_brand'])
+		return True
+	#------------------------------------------------------------
+	def new():
+		return edit_branded_drug(parent = parent, branded_drug = None, single_entry = False)
+	#------------------------------------------------------------
+	def refresh(lctrl):
+		drugs = gmMedication.get_branded_drugs()
+		items = [ [
+			u'%s%s' % (
+				d['brand'],
+				gmTools.bool2subst(d['is_fake_brand'], ' (%s)' % _('fake'), u'')
+			),
+			d['preparation'],
+			gmTools.coalesce(d['atc'], u''),
+			gmTools.coalesce(d['components'], u''),
+			gmTools.coalesce(d['external_code'], u'', u'%%s [%s]' % d['external_code_type']),
+			d['pk_brand']
+		] for d in drugs ]
+		lctrl.set_string_items(items)
+		lctrl.set_data(drugs)
+	#------------------------------------------------------------
+	msg = _('\nThese are the drug brands known to GNUmed.\n')
+
+	gmListWidgets.get_choices_from_list (
+		parent = parent,
+		msg = msg,
+		caption = _('Showing branded drugs.'),
+		columns = [_('Name'), _('Preparation'), _('ATC'), _('Components'), _('Code'), u'#'],
+		single_selection = True,
+		ignore_OK_button = ignore_OK_button,
+		refresh_callback = refresh,
+		new_callback = new,
+		edit_callback = edit,
+		delete_callback = delete,
+		list_tooltip_callback = get_tooltip,
+		left_extra_button = (_('Import'), _('Import substances and brands from a drug database.'), add_from_db)
+		#, middle_extra_button = (_('Clone'), _('Clone selected drug into a new entry for editing.'), clone_from_existing)
+		#, right_extra_button = (_('Reassign'), _('Reassign all patients taking the selected drug to another drug.'), reassign_patients)
+	)
+
+#------------------------------------------------------------
+def manage_components_of_branded_drug(parent=None, brand=None):
+
+	if brand is not None:
+		if brand.is_in_use_by_patients:
+			gmGuiHelpers.gm_show_info (
+				aTitle = _('Managing components of a drug'),
+				aMessage = _(
+					'Cannot manage the components of the branded drug product\n'
+					'\n'
+					' "%s" (%s)\n'
+					'\n'
+					'because it is currently taken by patients.\n'
+				) % (brand['brand'], brand['preparation'])
+			)
+			return False
+	#--------------------------------------------------------
+	if parent is None:
+		parent = wx.GetApp().GetTopWindow()
+	#--------------------------------------------------------
+#	def manage_substances():
+#		pass
+	#--------------------------------------------------------
+	if brand is None:
+		msg = _('Pick the substances which are components of this drug.')
+		right_col = _('Components of drug')
+		comp_substs = []
+	else:
+		right_col = u'%s (%s)' % (brand['brand'], brand['preparation'])
+		msg = _(
+			'Adjust the components of "%s"\n'
+			'\n'
+			'The drug must contain at least one component. Any given\n'
+			'substance can only be included once per drug.'
+		) % right_col
+		comp_substs = [ c.substance for c in brand.components ]
+
+	substs = gmMedication.get_consumable_substances(order_by = 'description')
+	choices = [ u'%s %s %s' % (s['description'], s['amount'], s['unit']) for s in substs ]
+	picks = [ u'%s %s %s' % (c['description'], c['amount'], c['unit']) for c in comp_substs ]
+
+	picker = gmListWidgets.cItemPickerDlg (
+		parent,
+		-1,
+		title = _('Managing components of a drug ...'),
+		msg = msg
+	)
+	picker.set_columns(['Substances'], [right_col])
+	picker.set_choices(choices = choices, data = substs)
+	picker.set_picks(picks = picks, data = comp_substs)
+#	picker.extra_button = (
+#		_('Substances'),
+#		_('Manage list of consumable substances'),
+#		manage_substances
+#	)
+
+	btn_pressed = picker.ShowModal()
+	substs = picker.get_picks()
+	picker.Destroy()
+
+	if btn_pressed != wx.ID_OK:
+		return (False, None)
+
+	if brand is not None:
+		brand.set_substances_as_components(substances = substs)
+
+	return (True, substs)
+
+#------------------------------------------------------------
+from Gnumed.wxGladeWidgets import wxgBrandedDrugEAPnl
+
+class cBrandedDrugEAPnl(wxgBrandedDrugEAPnl.wxgBrandedDrugEAPnl, gmEditArea.cGenericEditAreaMixin):
+
+	def __init__(self, *args, **kwargs):
+
+		try:
+			data = kwargs['drug']
+			del kwargs['drug']
+		except KeyError:
+			data = None
+
+		wxgBrandedDrugEAPnl.wxgBrandedDrugEAPnl.__init__(self, *args, **kwargs)
+		gmEditArea.cGenericEditAreaMixin.__init__(self)
+
+		self.mode = 'new'
+		self.data = data
+		if data is not None:
+			self.mode = 'edit'
+			self.__component_substances = data.components_as_substances
+
+		#self.__init_ui()
+	#----------------------------------------------------------------
+#	def __init_ui(self):
+		# adjust external type PRW
+	#----------------------------------------------------------------
+	# generic Edit Area mixin API
+	#----------------------------------------------------------------
+	def _valid_for_save(self):
+
+		if self.data is not None:
+			if self.data.is_in_use_by_patients:
+				gmDispatcher.send(signal = 'statustext', msg = _('Cannot edit drug brand. It is in use.'), beep = True)
+				return False
+
+		validity = True
+
+		brand_name = self._PRW_brand.GetValue().strip()
+		if brand_name == u'':
+			validity = False
+			self._PRW_brand.display_as_valid(False)
+		else:
+			self._PRW_brand.display_as_valid(True)
+
+		preparation = self._PRW_preparation.GetValue().strip()
+		if preparation == u'':
+			validity = False
+			self._PRW_preparation.display_as_valid(False)
+		else:
+			self._PRW_preparation.display_as_valid(True)
+
+		if validity is True:
+			# dupe ?
+			drug = gmMedication.get_drug_by_brand(brand_name = brand_name, preparation = preparation)
+			if drug is not None:
+				validity = False
+				self._PRW_brand.display_as_valid(False)
+				self._PRW_preparation.display_as_valid(False)
+				gmGuiHelpers.gm_show_error (
+					title = _('Checking brand data'),
+					error = _(
+						'The brand information you entered:\n'
+						'\n'
+						' [%s %s]\n'
+						'\n'
+						'already exists as a drug product.'
+					) % (brand_name, preparation)
+				)
+
+			else:
+				# lacking components ?
+				self._TCTRL_components.SetBackgroundColour(wx.SystemSettings_GetColour(wx.SYS_COLOUR_BACKGROUND))
+				if len(self.__component_substances) == 0:
+					wants_empty = gmGuiHelpers.gm_show_question (
+						title = _('Checking brand data'),
+						question = _(
+							'You have not selected any substances\n'
+							'as drug components.\n'
+							'\n'
+							'Without components you will not be able to\n'
+							'use this drug for documenting patient care.\n'
+							'\n'
+							'Are you sure you want to save\n'
+							'it without components ?'
+						)
+					)
+					if not wants_empty:
+						validity = False
+						self.display_ctrl_as_valid(ctrl = self._TCTRL_components, valid = False)
+
+		if validity is False:
+			gmDispatcher.send(signal = 'statustext', msg = _('Cannot save branded drug. Invalid or missing essential input.'))
+
+		return validity
+	#----------------------------------------------------------------
+	def _save_as_new(self):
+
+		drug = gmMedication.create_branded_drug (
+			brand_name = self._PRW_brand.GetValue().strip(),
+			preparation = gmTools.coalesce (
+				self._PRW_preparation.GetData(),
+				self._PRW_preparation.GetValue()
+			).strip(),
+			return_existing = True
+		)
+		drug['is_fake_brand'] = self._CHBOX_is_fake.GetValue()
+		drug['atc'] = self._PRW_atc.GetData()
+		code = self._TCTRL_external_code.GetValue().strip()
+		if code != u'':
+			drug['external_code'] = code
+			drug['external_code_type'] = self._PRW_external_code_type.GetData().strip()
+
+		drug.save()
+
+		if len(self.__component_substances) > 0:
+			drug.set_substances_as_components(substances = self.__component_substances)
+
+		self.data = drug
+
+		return True
+	#----------------------------------------------------------------
+	def _save_as_update(self):
+		self.data['brand'] = self._PRW_brand.GetValue().strip()
+		self.data['preparation'] = gmTools.coalesce (
+			self._PRW_preparation.GetData(),
+			self._PRW_preparation.GetValue()
+		).strip()
+		self.data['is_fake_brand'] = self._CHBOX_is_fake.GetValue()
+		self.data['atc'] = self._PRW_atc.GetData()
+		code = self._TCTRL_external_code.GetValue().strip()
+		if code != u'':
+			self.data['external_code'] = code
+			self.data['external_code_type'] = self._PRW_external_code_type.GetData().strip()
+		success, data = self.data.save()
+		if not success:
+			err, msg = data
+			_log.error('problem saving')
+			_log.error('%s', err)
+			_log.error('%s', msg)
+		return (success is True)
+
+	#----------------------------------------------------------------
+	def _refresh_as_new(self):
+		self._PRW_brand.SetText(u'', None)
+		self._PRW_preparation.SetText(u'', None)
+		self._CHBOX_is_fake.SetValue(False)
+		self._TCTRL_components.SetValue(u'')
+		self._PRW_atc.SetText(u'', None)
+		self._TCTRL_external_code.SetValue(u'')
+		self._PRW_external_code_type.SetText(u'', None)
+
+		self._PRW_brand.SetFocus()
+
+		self.__component_substances = []
+
+	#----------------------------------------------------------------
+	def _refresh_as_new_from_existing(self):
+		self._refresh_as_new()
+
+	#----------------------------------------------------------------
+	def _refresh_from_existing(self):
+		self._PRW_brand.SetText(self.data['brand'], self.data['pk_brand'])
+		self._PRW_preparation.SetText(self.data['preparation'], self.data['preparation'])
+		self._CHBOX_is_fake.SetValue(self.data['is_fake_brand'])
+		comps = u''
+		if self.data['components'] is not None:
+			comps = u'- %s' % u'\n- '.join(self.data['components'])
+		self._TCTRL_components.SetValue(comps)
+		self._PRW_atc.SetText(gmTools.coalesce(self.data['atc'], u''), self.data['atc'])
+		self._TCTRL_external_code.SetValue(gmTools.coalesce(self.data['external_code'], u''))
+		t = gmTools.coalesce(self.data['external_code_type'], u'')
+		self._PRW_external_code_type.SetText(t, t)
+
+		self._PRW_brand.SetFocus()
+
+		self.__component_substances = self.data.components_as_substances
+
+	#----------------------------------------------------------------
+	# event handler
+	#----------------------------------------------------------------
+	def _on_manage_components_button_pressed(self, event):
+		event.Skip()
+		if self.mode == 'new_from_existing':
+			brand = None
+		else:
+			brand = self.data
+		OKed, substs = manage_components_of_branded_drug(parent = self, brand = brand)
+		if OKed is True:
+			self.__component_substances = substs
+			comps = u''
+			if len(substs) > 0:
+				comps = u'- %s' % u'\n- '.join([ u'%s %s %s' % (s['description'], s['amount'], s['unit']) for s in substs ])
+			self._TCTRL_components.SetValue(comps)
+
+#------------------------------------------------------------
+class cBrandedDrugPhraseWheel(gmPhraseWheel.cPhraseWheel):
+
+	def __init__(self, *args, **kwargs):
+
+		query = u"""
+			SELECT
+				pk
+					AS data,
+				(description || ' (' || preparation || ')' || coalesce(' [' || atc_code || ']', ''))
+					AS list_label,
+				(description || ' (' || preparation || ')' || coalesce(' [' || atc_code || ']', ''))
+					AS field_label
+			FROM ref.branded_drug
+			WHERE description %(fragment_condition)s
+			ORDER BY list_label
+			LIMIT 50"""
+
+		mp = gmMatchProvider.cMatchProvider_SQL2(queries = query)
+		mp.setThresholds(2, 3, 4)
+		gmPhraseWheel.cPhraseWheel.__init__(self, *args, **kwargs)
+		self.SetToolTipString(_(
+			'The brand name of the drug.\n'
+			'\n'
+			'Note: a brand name will need to be linked to\n'
+			'one or more components before it can be used,\n'
+			'except in the case of fake (generic) vaccines.'
+		))
+		self.matcher = mp
+		self.selection_only = False
+
+#============================================================
+# main
+#------------------------------------------------------------
+if __name__ == '__main__':
+
+	if len(sys.argv) < 2:
+		sys.exit()
+
+	if sys.argv[1] != 'test':
+		sys.exit()
+
+	from Gnumed.business import gmPersonSearch
+
+	pat = gmPersonSearch.ask_for_patient()
+	if pat is None:
+		sys.exit()
+	gmPerson.set_active_patient(patient = pat)
+
+	#----------------------------------------
+	app = wx.PyWidgetTester(size = (600, 300))
+#	#app.SetWidget(cATCPhraseWheel, -1)
+	#app.SetWidget(cSubstancePhraseWheel, -1)
+	app.SetWidget(cBrandOrSubstancePhraseWheel, -1)
+	app.MainLoop()
+	#manage_substance_intakes()
diff --git a/client/wxpython/gmTextCtrl.py b/client/wxpython/gmTextCtrl.py
index 8afb16d..e0321ae 100644
--- a/client/wxpython/gmTextCtrl.py
+++ b/client/wxpython/gmTextCtrl.py
@@ -1,4 +1,4 @@
-"""GNUmed TextCtrl sbuclass."""
+__doc__ = """GNUmed TextCtrl sbuclass."""
 #===================================================
 __author__  = "K. Hilbert <Karsten.Hilbert at gmx.net>"
 __license__ = "GPL v2 or later (details at http://www.gnu.org)"
@@ -8,6 +8,7 @@ import sys
 
 
 import wx
+import wx.lib.expando
 
 
 if __name__ == '__main__':
@@ -18,25 +19,199 @@ from Gnumed.wxpython import gmKeywordExpansionWidgets
 
 _log = logging.getLogger('gm.txtctrl')
 
-#===================================================
+#============================================================
 color_tctrl_invalid = 'pink'
 color_tctrl_partially_invalid = 'yellow'
 
-class cTextCtrl(wx.TextCtrl, gmKeywordExpansionWidgets.cKeywordExpansion_TextCtrlMixin):
+class cColoredStatus_TextCtrlMixin():
+	"""Mixin for setting background color based on validity of content.
 
+	Note that due to Python MRO classes using this mixin must
+	list it before their base class (because we override Enable/Disable).
+	"""
 	def __init__(self, *args, **kwargs):
 
-		wx.TextCtrl.__init__(self, *args, **kwargs)
+		if not isinstance(self, (wx.TextCtrl)):
+			raise TypeError('[%s]: can only be applied to wx.TextCtrl, not [%s]' % (cColoredStatus_TextCtrlMixin, self.__class__.__name__))
+
+		self.__initial_background_color = self.GetBackgroundColour()
+		self.__previous_enabled_bg_color = self.__initial_background_color
+
+	#--------------------------------------------------------
+	def display_as_valid(self, valid=None):
+		if valid is True:
+			color2show = self.__initial_background_color
+		elif valid is False:
+			color2show = color_tctrl_invalid
+		elif valid is None:
+			color2show = color_tctrl_partially_invalid
+		else:
+			raise ValueError(u'<valid> must be True or False or None')
+
+		if self.IsEnabled():
+			self.SetBackgroundColour(color2show)
+			self.Refresh()
+			return
+
+		# remember for when it gets enabled
+		self.__previous_enabled_bg_color = color2show
+
+	#--------------------------------------------------------
+	def display_as_disabled(self, disabled=None):
+		current_enabled_state = self.IsEnabled()
+		desired_enabled_state = disabled is False
+		if current_enabled_state is desired_enabled_state:
+			return
+
+		if disabled is True:
+			self.__previous_enabled_bg_color = self.GetBackgroundColour()
+			color2show = wx.SystemSettings_GetColour(wx.SYS_COLOUR_BACKGROUND)
+		elif disabled is False:
+			color2show = self.__previous_enabled_bg_color
+		else:
+			raise ValueError(u'<disabled> must be True or False')
+
+		self.SetBackgroundColour(color2show)
+		self.Refresh()
+
+	#--------------------------------------------------------
+	def Disable(self):
+		self.Enable(enable = False)
+
+	#--------------------------------------------------------
+	def Enable(self, enable=True):
+
+		if self.IsEnabled() is enable:
+			return
+
+		wx.TextCtrl.Enable(self, enable)
+
+		if enable is True:
+			self.SetBackgroundColour(self.__previous_enabled_bg_color)
+		elif enable is False:
+			self.__previous_enabled_bg_color = self.GetBackgroundColour()
+			self.SetBackgroundColour(wx.SystemSettings_GetColour(wx.SYS_COLOUR_BACKGROUND))
+		else:
+			raise ValueError(u'<enable> must be True or False')
+
+		self.Refresh()
+
+#============================================================
+class cTextSearch_TextCtrlMixin():
+	"""Code using classes with this mixin must call
+	   show_find_dialog() at appropriate times. Everything
+	   else will be handled.
+	"""
+	def __init__(self, *args, **kwargs):
+		if not isinstance(self, (wx.TextCtrl, wx.stc.StyledTextCtrl)):
+			raise TypeError('[%s]: can only be applied to wx.TextCtrl or wx.stc.StyledTextCtrl, not [%s]' % (cTextSearch_TextCtrlMixin, self.__class__.__name__))
+
+		self.__mixin_find_replace_data = None
+		self.__mixin_find_replace_dlg = None
+		self.__mixin_find_replace_last_match_start = 0
+		self.__mixin_find_replace_last_match_end = 0
+		self.__mixin_find_replace_last_match_attr = None
+
+	#--------------------------------------------------------
+	def show_find_dialog(self, title=None):
+
+		if self.__mixin_find_replace_dlg is not None:
+			return self.__mixin_find_replace_dlg
+
+		self.__mixin_find_replace_last_match_end = 0
+
+		if title is None:
+			title = _('Find text')
+		self.__mixin_find_replace_data = wx.FindReplaceData()
+		self.__mixin_find_replace_dlg = wx.FindReplaceDialog (
+			self,
+			self.__mixin_find_replace_data,
+			title,
+			wx.FR_NOUPDOWN | wx.FR_NOMATCHCASE | wx.FR_NOWHOLEWORD
+		)
+		self.__mixin_find_replace_dlg.Bind(wx.EVT_FIND, self._mixin_on_find)
+		self.__mixin_find_replace_dlg.Bind(wx.EVT_FIND_NEXT, self._mixin_on_find)
+		self.__mixin_find_replace_dlg.Bind(wx.EVT_FIND_CLOSE, self._mixin_on_find_close)
+		self.__mixin_find_replace_dlg.Show()
+		return self.__mixin_find_replace_dlg
+
+	#--------------------------------------------------------
+	# events
+	#--------------------------------------------------------
+	def _mixin_on_find(self, evt):
+
+		# reset style of previous match
+		if self.__mixin_find_replace_last_match_attr is not None:
+			self.SetStyle (
+				self.__mixin_find_replace_last_match_start,
+				self.__mixin_find_replace_last_match_end,
+				self.__mixin_find_replace_last_match_attr
+			)
+
+		# find current match
+		search_term = self.__mixin_find_replace_data.GetFindString().lower()
+		match_start = self.Value.lower().find(search_term, self.__mixin_find_replace_last_match_end)
+		if match_start == -1:
+			# wrap around
+			self.__mixin_find_replace_last_match_start = 0
+			self.__mixin_find_replace_last_match_end = 0
+			wx.Bell()
+			return
+
+		# remember current match for next time around
+		attr = wx.TextAttr()
+		if self.GetStyle(match_start, attr):
+			self.__mixin_find_replace_last_match_attr = attr
+		else:
+			self.__mixin_find_replace_last_match_attr = None
+		self.__mixin_find_replace_last_match_start = match_start
+		self.__mixin_find_replace_last_match_end = match_start + len(search_term)
+
+		# react to current match
+		self.Freeze()
+		self.SetStyle (
+			self.__mixin_find_replace_last_match_start,
+			self.__mixin_find_replace_last_match_end,
+			wx.TextAttr("red", "black")
+		)
+		self.ShowPosition(0)
+		self.ShowPosition(self.__mixin_find_replace_last_match_end)
+		self.Thaw()
+
+	#--------------------------------------------------------
+	def _mixin_on_find_close(self, evt):
+		# cleanup after last match if any
+		if self.__mixin_find_replace_last_match_attr is not None:
+			self.SetStyle (
+				self.__mixin_find_replace_last_match_start,
+				self.__mixin_find_replace_last_match_end,
+				self.__mixin_find_replace_last_match_attr
+			)
+		# deactivate the events
+		self.__mixin_find_replace_dlg.Unbind(wx.EVT_FIND)
+		self.__mixin_find_replace_dlg.Unbind(wx.EVT_FIND_NEXT)
+		self.__mixin_find_replace_dlg.Unbind(wx.EVT_FIND_CLOSE)
+		# unshow dialog
+		self.__mixin_find_replace_dlg.Destroy()
+		self.__mixin_find_replace_data = None
+		self.__mixin_find_replace_dlg = None
+		self.__mixin_find_replace_last_match_end = 0
+
+#============================================================
+class cTextCtrl(gmKeywordExpansionWidgets.cKeywordExpansion_TextCtrlMixin, cTextSearch_TextCtrlMixin, cColoredStatus_TextCtrlMixin, wx.TextCtrl):
+
+	def __init__(self, *args, **kwargs):
 
 		self._on_set_focus_callbacks = []
 		self._on_lose_focus_callbacks = []
 		self._on_modified_callbacks = []
 
-		self.__initial_background_color = self.GetBackgroundColour()
-
+		wx.TextCtrl.__init__(self, *args, **kwargs)
 		gmKeywordExpansionWidgets.cKeywordExpansion_TextCtrlMixin.__init__(self)
-		self.enable_keyword_expansions()
+		cTextSearch_TextCtrlMixin.__init__(self)
+		cColoredStatus_TextCtrlMixin.__init__(self)
 
+		self.enable_keyword_expansions()
 	#--------------------------------------------------------
 	# callback API
 	#--------------------------------------------------------
@@ -69,30 +244,7 @@ class cTextCtrl(wx.TextCtrl, gmKeywordExpansionWidgets.cKeywordExpansion_TextCtr
 		self._on_modified_callbacks.append(callback)
 		if len(self._on_modified_callbacks) == 1:
 			self.Bind(wx.EVT_TEXT, self._on_text_update)
-			#wx.EVT_TEXT(self, self.GetId(), self._on_text_update)
-	#--------------------------------------------------------
-	# state display API
-	#--------------------------------------------------------
-	def display_as_valid(self, valid=None, partially_invalid=False):
-		if valid is True:
-			self.SetBackgroundColour(self.__initial_background_color)
-		elif valid is False:
-			if partially_invalid:
-				self.SetBackgroundColour(color_tctrl_partially_invalid)
-			else:
-				self.SetBackgroundColour(color_tctrl_invalid)
-		else:
-			raise ValueError(u'<valid> must be True or False')
-		self.Refresh()
-	#--------------------------------------------------------
-	def display_as_disabled(self, disabled=None):
-		if disabled is True:
-			self.SetBackgroundColour(wx.SystemSettings_GetColour(wx.SYS_COLOUR_BACKGROUND))
-		elif disabled is False:
-			self.SetBackgroundColour(self.__initial_background_color)
-		else:
-			raise ValueError(u'<disabled> must be True or False')
-		self.Refresh()
+
 	#--------------------------------------------------------
 	# event handlers
 	#--------------------------------------------------------
@@ -125,6 +277,144 @@ class cTextCtrl(wx.TextCtrl, gmKeywordExpansionWidgets.cKeywordExpansion_TextCtr
 			callback()
 		return
 
+#============================================================
+# expando based text ctrl classes
+#============================================================
+class cExpandoTextCtrlHandling_PanelMixin():
+	"""Mixin for panels wishing to handel expand text ctrls within themselves.
+
+	Panels using this mixin will need to call
+
+		self.bind_expando_layout_event(<expando_field>)
+
+	on each <expando_field> they wish to auto-expand.
+	"""
+	#--------------------------------------------------------
+	def bind_expando_layout_event(self, expando):
+		wx.lib.expando.EVT_ETC_LAYOUT_NEEDED(expando, expando.GetId(), self._on_expando_needs_layout)
+
+	#--------------------------------------------------------
+	def _on_expando_needs_layout(self, evt):
+		# need to tell ourselves to re-Layout to refresh scroll bars
+
+		# provoke adding scrollbar if needed
+		#self.Fit()				# works on Linux but not on Windows
+		self.FitInside()		# needed on Windows rather than self.Fit()
+
+		if self.HasScrollbar(wx.VERTICAL):
+			# scroll panel to show cursor
+			expando = self.FindWindowById(evt.GetId())
+			y_expando = expando.GetPositionTuple()[1]
+			h_expando = expando.GetSizeTuple()[1]
+			line_cursor = expando.PositionToXY(expando.GetInsertionPoint())[1] + 1
+			if expando.NumberOfLines == 0:
+				no_of_lines = 1
+			else:
+				no_of_lines = expando.NumberOfLines
+			y_cursor = int(round((float(line_cursor) / no_of_lines) * h_expando))
+			y_desired_visible = y_expando + y_cursor
+
+			y_view = self.ViewStart[1]
+			h_view = self.GetClientSizeTuple()[1]
+
+#			print "expando:", y_expando, "->", h_expando, ", lines:", expando.NumberOfLines
+#			print "cursor :", y_cursor, "at line", line_cursor, ", insertion point:", expando.GetInsertionPoint()
+#			print "wanted :", y_desired_visible
+#			print "view-y :", y_view
+#			print "scroll2:", h_view
+
+			# expando starts before view
+			if y_desired_visible < y_view:
+#				print "need to scroll up"
+				self.Scroll(0, y_desired_visible)
+
+			if y_desired_visible > h_view:
+#				print "need to scroll down"
+				self.Scroll(0, y_desired_visible)
+
+#============================================================
+class cExpandoTextCtrl(gmKeywordExpansionWidgets.cKeywordExpansion_TextCtrlMixin, cTextSearch_TextCtrlMixin, cColoredStatus_TextCtrlMixin, wx.lib.expando.ExpandoTextCtrl):
+	"""Expando based text ctrl
+
+	- auto-sizing on input
+	- keyword based text expansion
+	- text search on show_find_dialog()
+	- (on demand) status based background color
+
+	Parent panels should apply the cExpandoTextCtrlHandling_PanelMixin.
+	"""
+	def __init__(self, *args, **kwargs):
+
+		wx.lib.expando.ExpandoTextCtrl.__init__(self, *args, **kwargs)
+		gmKeywordExpansionWidgets.cKeywordExpansion_TextCtrlMixin.__init__(self)
+		cTextSearch_TextCtrlMixin.__init__(self)
+		cColoredStatus_TextCtrlMixin.__init__(self)
+
+		self.__register_interests()
+		self.enable_keyword_expansions()
+
+	#------------------------------------------------
+	# event handling
+	#------------------------------------------------
+	def __register_interests(self):
+		wx.EVT_SET_FOCUS(self, self.__cExpandoTextCtrl_on_focus)
+
+	#--------------------------------------------------------
+	def __cExpandoTextCtrl_on_focus(self, evt):
+		evt.Skip()	# allow other processing to happen
+		wx.CallAfter(self._cExpandoTextCtrl_after_on_focus)
+
+	#--------------------------------------------------------
+	def _cExpandoTextCtrl_after_on_focus(self):
+		# robustify against PyDeadObjectError - since we are called
+		# from wx's CallAfter this SoapCtrl may be gone by the time
+		# we get to handling this layout request, say, on patient
+		# change or some such
+		if not self:
+			return
+
+		#wx. CallAfter(self._adjustCtrl)
+		evt = wx.PyCommandEvent(wx.lib.expando.wxEVT_ETC_LAYOUT_NEEDED, self.GetId())
+		evt.SetEventObject(self)
+		#evt.height = None
+		#evt.numLines = None
+		#evt.height = self.GetSize().height
+		#evt.numLines = self.GetNumberOfLines()
+		self.GetEventHandler().ProcessEvent(evt)
+
+	#------------------------------------------------
+	# fix platform expando.py if needed
+	#------------------------------------------------
+	def _wrapLine(self, line, dc, width):
+
+		if (wx.MAJOR_VERSION >= 2) and (wx.MINOR_VERSION > 8):
+			return wx.lib.expando.ExpandoTextCtrl._wrapLine(line, dc, width)
+
+		# THIS FIX LIFTED FROM TRUNK IN SVN:
+		# Estimate where the control will wrap the lines and
+		# return the count of extra lines needed.
+		partial_text_extents = dc.GetPartialTextExtents(line)
+		max_width -= wx.SystemSettings.GetMetric(wx.SYS_VSCROLL_X)
+		idx = 0
+		start = 0
+		count_of_extra_lines_needed = 0
+		idx_of_last_blank = -1
+		while idx < len(partial_text_extents):
+		    if line[idx] == ' ':
+		        idx_of_last_blank = idx
+		    if (partial_text_extents[idx] - start) > max_width:
+		        # we've reached the max width, add a new line
+		        count_of_extra_lines_needed += 1
+		        # did we see a space? if so restart the count at that pos
+		        if idx_of_last_blank != -1:
+		            idx = idx_of_last_blank + 1
+		            idx_of_last_blank = -1
+		        if idx < len(partial_text_extents):
+		            start = partial_text_extents[idx]
+		    else:
+		        idx += 1
+		return count_of_extra_lines_needed
+
 #===================================================
 # main
 #---------------------------------------------------
@@ -145,10 +435,9 @@ if __name__ == '__main__':
 		app = wx.PyWidgetTester(size = (200, 50))
 		tc = cTextCtrl(parent = app.frame, id = -1)
 		#tc.enable_keyword_expansions()
+		tc.Enable(False)
 		app.frame.Show(True)
 		app.MainLoop()
 		return True
 	#-----------------------------------------------
 	test_gm_textctrl()
-
-#---------------------------------------------------
diff --git a/client/wxpython/gmTimer.py b/client/wxpython/gmTimer.py
index 86ad206..f57585c 100644
--- a/client/wxpython/gmTimer.py
+++ b/client/wxpython/gmTimer.py
@@ -2,10 +2,7 @@
 
 @copyright: author(s)
 """
-############################################################################
-# $Source: /home/ncq/Projekte/cvs2git/vcs-mirror/gnumed/gnumed/client/wxpython/gmTimer.py,v $
-# $Id: gmTimer.py,v 1.13 2008-12-26 16:04:12 ncq Exp $
-__version__ = "$Revision: 1.13 $"
+#===========================================================================
 __author__  = "K. Hilbert <Karsten.Hilbert at gmx.net>"
 __licence__ = "GPL v2 or later (details at http://www.gnu.org)"
 
@@ -18,6 +15,7 @@ import wx
 
 _log = logging.getLogger('gm.timers')
 _timers = []
+
 #===========================================================================
 def shutdown():
 	global _timers
@@ -26,6 +24,7 @@ def shutdown():
 		_log.debug('timer [%s]', timer.cookie)
 		timer.Stop()
 	_timers = []
+
 #===========================================================================
 class cTimer(wx.Timer):
 	"""wx.Timer proxy.
@@ -63,15 +62,18 @@ class cTimer(wx.Timer):
 		if milliseconds == -1:
 			milliseconds = self.__delay
 		wx.Timer.Start(self, milliseconds=milliseconds, oneShot=oneShot)
+
 	#-----------------------------------------------------------------------
 	def Notify(self):
 		self.__callback(self.cookie)
+
 	#-----------------------------------------------------------------------
 	def set_cookie(self, cookie=None):
 		if cookie is None:
 			self.cookie = id(self)
 		else:
 			self.cookie = cookie
+
 #===========================================================================
 if __name__ == '__main__':
 	import time
diff --git a/client/wxpython/gmTopPanel.py b/client/wxpython/gmTopPanel.py
index eca0e6b..aaae45e 100644
--- a/client/wxpython/gmTopPanel.py
+++ b/client/wxpython/gmTopPanel.py
@@ -9,6 +9,7 @@ import sys
 import os.path
 import datetime as pyDT
 import logging
+import decimal
 
 
 import wx
@@ -17,6 +18,7 @@ import wx
 from Gnumed.pycommon import gmGuiBroker
 from Gnumed.pycommon import gmDispatcher
 from Gnumed.pycommon import gmTools
+from Gnumed.pycommon import gmCfg
 from Gnumed.pycommon import gmCfg2
 from Gnumed.pycommon import gmDateTime
 from Gnumed.pycommon import gmI18N
@@ -24,6 +26,10 @@ from Gnumed.pycommon import gmI18N
 from Gnumed.business import gmPerson
 from Gnumed.business import gmEMRStructItems
 from Gnumed.business import gmAllergy
+from Gnumed.business import gmLOINC
+from Gnumed.business import gmClinicalCalculator
+from Gnumed.business import gmPathLab
+from Gnumed.business import gmPraxis
 
 from Gnumed.wxpython import gmGuiHelpers
 from Gnumed.wxpython import gmDemographicsWidgets
@@ -64,6 +70,18 @@ class cTopPnl(wxgTopPnl.wxgTopPnl):
 				mac_font = wx.FontFromNativeInfo(curr_font.NativeFontInfo)
 				mac_font.SetPointSize(pointSize = int(curr_font.GetPointSize() / 0.8))
 				ctrl.SetFont(mac_font)
+
+		# get panel to use
+		dbcfg = gmCfg.cCfgSQL()
+		pk_panel = dbcfg.get2 (
+			option = u'horstspace.top_panel.lab_panel',
+			workplace = gmPraxis.gmCurrentPraxisBranch().active_workplace,
+			bias = 'user'
+		)
+		if pk_panel is None:
+			self.__lab_panel = None
+		else:
+			self.__lab_panel = gmPathLab.cTestPanel(aPK_obj = pk_panel)
 	#-------------------------------------------------------
 	def __register_interests(self):
 		# events
@@ -88,12 +106,12 @@ class cTopPnl(wxgTopPnl.wxgTopPnl):
 	#----------------------------------------------
 	def _on_database_signal(self, **kwds):
 
-		if kwds['table'] not in [u'dem.identity', u'dem.names', u'dem.identity_tag', u'clin.allergy', u'clin.allergy_state']:
+		if kwds['table'] not in [u'dem.identity', u'dem.names', u'dem.identity_tag', u'clin.allergy', u'clin.allergy_state', u'clin.test_result', u'clin.patient']:
 			return True
 
 		if self.curr_pat.connected:
 			# signal is not about our patient: ignore signal
-			if int(kwds['pk_identity']) != self.curr_pat.ID:
+			if kwds['pk_identity'] != self.curr_pat.ID:
 				return True
 
 		if kwds['table'] == u'dem.identity':
@@ -111,21 +129,27 @@ class cTopPnl(wxgTopPnl.wxgTopPnl):
 			self.__update_tags()
 			return True
 
-		if kwds['table'] == u'clin.allergy':
+		if kwds['table'] in [u'clin.allergy', u'clin.allergy_state']:
 			self.__update_allergies()
 			return True
 
-		if kwds['table'] == u'clin.allergy_state':
-			self.__update_allergies()
+		if kwds['table'] in [u'clin.test_result', u'clin.patient']:
+			self.__update_lab()
 			return True
 
 		return True
 
 	#----------------------------------------------
 	def _on_post_patient_selection(self, **kwargs):
+		wx.CallAfter(self.__on_post_patient_selection)
+
+	#-------------------------------------------------------
+	def __on_post_patient_selection(self):
 		self.__update_age_label()
 		self.__update_allergies()
 		self.__update_tags()
+		self.__update_lab()
+		self.Layout()
 
 	#-------------------------------------------------------
 	def _on_focus_patient_search(self, **kwargs):
@@ -136,6 +160,63 @@ class cTopPnl(wxgTopPnl.wxgTopPnl):
 	def __update_tags(self):
 		self._PNL_tags.refresh(patient = self.curr_pat)
 	#-------------------------------------------------------
+	def __update_lab(self):
+
+		if not self.curr_pat.connected:
+			self._LBL_lab.SetLabel(u'')
+			return
+
+		tests2show = []
+
+		rr = self.curr_pat.emr.get_most_recent_results(loinc = gmLOINC.LOINC_rr_quantity, no_of_results = 1)
+		if rr is None:
+			tests2show.append(_(u'RR ?'))
+		else:
+			#tests2show.append(_(u'%s%s') % (rr['unified_val'], rr['val_unit']))
+			tests2show.append(rr['unified_val'])
+
+		hr = self.curr_pat.emr.get_most_recent_results(loinc = gmLOINC.LOINC_heart_rate_quantity, no_of_results = 1)
+		if hr is not None:
+			tests2show.append(u'%s %s' % (hr['abbrev_tt'], hr['unified_val']))
+
+		bmi = self.curr_pat.emr.bmi
+		if bmi.numeric_value is not None:
+			tests2show.append(_(u'BMI %s') % bmi.numeric_value.quantize(decimal.Decimal('1.')))
+		else:
+			weight = self.curr_pat.emr.get_most_recent_results(loinc = gmLOINC.LOINC_weight, no_of_results = 1)
+			if weight is None:
+				tests2show.append(_(u'BMI ?'))
+			else:
+				tests2show.append(u'%s%s' % (weight['unified_val'], weight['val_unit']))
+
+		gfr_or_crea = self.curr_pat.emr.best_gfr_or_crea
+		if gfr_or_crea is None:
+			tests2show.append(_(u'GFR ?'))
+		else:
+			try:
+				tests2show.append(_(u'GFR %s') % gfr_or_crea.numeric_value.quantize(decimal.Decimal('1.')))
+			except AttributeError:
+				tests2show.append(u'%s %s' % (gfr_or_crea['abbrev_tt'], gfr_or_crea['unified_val']))
+
+		edc = self.curr_pat.emr.EDC
+		if edc is not None:
+			if self.curr_pat.emr.EDC_is_fishy:
+				tests2show.append(_(u'?EDC %s') % gmDateTime.pydt_strftime(edc, '%Y-%b-%d', accuracy = gmDateTime.acc_days))
+			else:
+				tests2show.append(_(u'EDC %s') % gmDateTime.pydt_strftime(edc, '%Y-%b-%d', accuracy = gmDateTime.acc_days))
+
+		inr = self.curr_pat.emr.get_most_recent_results(loinc = gmLOINC.LOINC_inr_quantity, no_of_results = 1)
+		if inr is not None:
+			tests2show.append(u'%s %s' % (inr['abbrev_tt'], inr['unified_val']))
+
+		# include panel if configured, only show if exist
+		if self.__lab_panel is not None:
+			for result in self.__lab_panel.get_most_recent_results(pk_patient = self.curr_pat.ID, order_by = u'unified_abbrev', group_by_meta_type = True):
+				tests2show.append(u'%s %s' % (result['abbrev_tt'], result['unified_val']))
+
+		self._LBL_lab.SetLabel(u'; '.join(tests2show))
+
+	#-------------------------------------------------------
 	def __update_age_label(self):
 
 		# no patient
@@ -206,7 +287,7 @@ class cTopPnl(wxgTopPnl.wxgTopPnl):
 			u'sex': self.curr_pat.gender_symbol,
 			u'dob': self.curr_pat.get_formatted_dob(format = '%d %b %Y', encoding = gmI18N.get_encoding()),
 			u'age': self.curr_pat['medical_age'],
-			u'r_arr': gmTools.u_right_arrow,
+			u'r_arr': gmTools.u_arrow2right,
 			u'l_arr': gmTools.u_left_arrow
 		}
 
diff --git a/client/wxpython/gmVaccWidgets.py b/client/wxpython/gmVaccWidgets.py
index 9c7b20d..c2984fd 100644
--- a/client/wxpython/gmVaccWidgets.py
+++ b/client/wxpython/gmVaccWidgets.py
@@ -1289,5 +1289,5 @@ if __name__ == "__main__":
 		sys.exit()
 
 	app = wx.PyWidgetTester(size = (600, 600))
-	app.SetWidget(cATCPhraseWheel, -1)
+	app.SetWidget(cXxxPhraseWheel, -1)
 	app.MainLoop()
diff --git a/client/wxpython/gmVisualProgressNoteWidgets.py b/client/wxpython/gmVisualProgressNoteWidgets.py
new file mode 100644
index 0000000..f48fdf0
--- /dev/null
+++ b/client/wxpython/gmVisualProgressNoteWidgets.py
@@ -0,0 +1,436 @@
+# -*- coding: utf-8 -*-
+"""GNUmed visual progress notes handling widgets."""
+#================================================================
+__author__ = "Karsten Hilbert <Karsten.Hilbert at gmx.net>"
+__license__ = "GPL v2 or later (details at http://www.gnu.org)"
+
+import sys
+import logging
+import os
+import os.path
+import shutil
+
+
+import wx
+import wx.lib.agw.supertooltip as agw_stt
+import wx.lib.statbmp as wx_genstatbmp
+
+
+if __name__ == '__main__':
+	sys.path.insert(0, '../../')
+
+from Gnumed.pycommon import gmI18N
+
+if __name__ == '__main__':
+	gmI18N.activate_locale()
+	gmI18N.install_domain()
+
+from Gnumed.pycommon import gmDispatcher
+from Gnumed.pycommon import gmTools
+from Gnumed.pycommon import gmDateTime
+from Gnumed.pycommon import gmShellAPI
+from Gnumed.pycommon import gmCfg
+from Gnumed.pycommon import gmMatchProvider
+
+from Gnumed.business import gmPerson
+from Gnumed.business import gmEMRStructItems
+from Gnumed.business import gmPraxis
+from Gnumed.business import gmForms
+from Gnumed.business import gmDocuments
+
+from Gnumed.wxpython import gmPhraseWheel
+from Gnumed.wxpython import gmGuiHelpers
+from Gnumed.wxpython import gmCfgWidgets
+from Gnumed.wxpython import gmDocumentWidgets
+
+
+_log = logging.getLogger('gm.ui')
+
+#============================================================
+# visual progress notes
+#============================================================
+def configure_visual_progress_note_editor():
+
+	def is_valid(value):
+
+		if value is None:
+			gmDispatcher.send (
+				signal = 'statustext',
+				msg = _('You need to actually set an editor.'),
+				beep = True
+			)
+			return False, value
+
+		if value.strip() == u'':
+			gmDispatcher.send (
+				signal = 'statustext',
+				msg = _('You need to actually set an editor.'),
+				beep = True
+			)
+			return False, value
+
+		found, binary = gmShellAPI.detect_external_binary(value)
+		if not found:
+			gmDispatcher.send (
+				signal = 'statustext',
+				msg = _('The command [%s] is not found.') % value,
+				beep = True
+			)
+			return True, value
+
+		return True, binary
+	#------------------------------------------
+	cmd = gmCfgWidgets.configure_string_option (
+		message = _(
+			'Enter the shell command with which to start\n'
+			'the image editor for visual progress notes.\n'
+			'\n'
+			'Any "%(img)s" included with the arguments\n'
+			'will be replaced by the file name of the\n'
+			'note template.'
+		),
+		option = u'external.tools.visual_soap_editor_cmd',
+		bias = 'user',
+		default_value = None,
+		validator = is_valid
+	)
+
+	return cmd
+
+#============================================================
+def select_file_as_visual_progress_note_template(parent=None):
+	if parent is None:
+		parent = wx.GetApp().GetTopWindow()
+
+	dlg = wx.FileDialog (
+		parent = parent,
+		message = _('Choose file to use as template for new visual progress note'),
+		defaultDir = os.path.expanduser('~'),
+		defaultFile = '',
+		#wildcard = "%s (*)|*|%s (*.*)|*.*" % (_('all files'), _('all files (Win)')),
+		style = wx.OPEN | wx.FILE_MUST_EXIST
+	)
+	result = dlg.ShowModal()
+
+	if result == wx.ID_CANCEL:
+		dlg.Destroy()
+		return None
+
+	full_filename = dlg.GetPath()
+	dlg.Hide()
+	dlg.Destroy()
+	return full_filename
+
+#------------------------------------------------------------
+def select_visual_progress_note_template(parent=None):
+
+	if parent is None:
+		parent = wx.GetApp().GetTopWindow()
+
+	dlg = gmGuiHelpers.c3ButtonQuestionDlg (
+		parent,
+		-1,
+		caption = _('Visual progress note source'),
+		question = _('From which source do you want to pick the image template ?'),
+		button_defs = [
+			{'label': _('Database'), 'tooltip': _('List of templates in the database.'), 'default': True},
+			{'label': _('File'), 'tooltip': _('Files in the filesystem.'), 'default': False},
+			{'label': _('Device'), 'tooltip': _('Image capture devices (scanners, cameras, etc)'), 'default': False}
+		]
+	)
+	result = dlg.ShowModal()
+	dlg.Destroy()
+
+	# 1) select from template
+	if result == wx.ID_YES:
+		_log.debug('visual progress note template from: database template')
+		from Gnumed.wxpython import gmFormWidgets
+		template = gmFormWidgets.manage_form_templates (
+			parent = parent,
+			template_types = [gmDocuments.DOCUMENT_TYPE_VISUAL_PROGRESS_NOTE],
+			active_only = True
+		)
+		if template is None:
+			return (None, None)
+		filename = template.export_to_file()
+		if filename is None:
+			gmDispatcher.send(signal = u'statustext', msg = _('Cannot export visual progress note template for [%s].') % template['name_long'])
+			return (None, None)
+		return (filename, True)
+
+	# 2) select from disk file
+	if result == wx.ID_NO:
+		_log.debug('visual progress note template from: disk file')
+		fname = select_file_as_visual_progress_note_template(parent = parent)
+		if fname is None:
+			return (None, None)
+		# create a copy of the picked file -- don't modify the original
+		ext = os.path.splitext(fname)[1]
+		tmp_name = gmTools.get_unique_filename(suffix = ext)
+		_log.debug('visual progress note from file: [%s] -> [%s]', fname, tmp_name)
+		shutil.copy2(fname, tmp_name)
+		return (tmp_name, False)
+
+	# 3) acquire from capture device
+	if result == wx.ID_CANCEL:
+		_log.debug('visual progress note template from: image capture device')
+		fnames = gmDocumentWidgets.acquire_images_from_capture_device(device = None, calling_window = parent)
+		if fnames is None:
+			return (None, None)
+		if len(fnames) == 0:
+			return (None, None)
+		return (fnames[0], False)
+
+	_log.debug('no visual progress note template source selected')
+	return (None, None)
+
+#------------------------------------------------------------
+def edit_visual_progress_note(filename=None, episode=None, discard_unmodified=False, doc_part=None, health_issue=None):
+	"""This assumes <filename> contains an image which can be handled by the configured image editor."""
+
+	if doc_part is not None:
+		filename = doc_part.export_to_file()
+		if filename is None:
+			gmDispatcher.send(signal = u'statustext', msg = _('Cannot export visual progress note to file.'))
+			return None
+
+	dbcfg = gmCfg.cCfgSQL()
+	cmd = dbcfg.get2 (
+		option = u'external.tools.visual_soap_editor_cmd',
+		workplace = gmPraxis.gmCurrentPraxisBranch().active_workplace,
+		bias = 'user'
+	)
+
+	if cmd is None:
+		gmDispatcher.send(signal = u'statustext', msg = _('Editor for visual progress note not configured.'), beep = False)
+		cmd = configure_visual_progress_note_editor()
+		if cmd is None:
+			gmDispatcher.send(signal = u'statustext', msg = _('Editor for visual progress note not configured.'), beep = True)
+			return None
+
+	if u'%(img)s' in cmd:
+		cmd = cmd % {u'img': filename}
+	else:
+		cmd = u'%s %s' % (cmd, filename)
+
+	if discard_unmodified:
+		original_stat = os.stat(filename)
+		original_md5 = gmTools.file2md5(filename)
+
+	success = gmShellAPI.run_command_in_shell(cmd, blocking = True)
+	if not success:
+		gmGuiHelpers.gm_show_error (
+			_(
+				'There was a problem with running the editor\n'
+				'for visual progress notes.\n'
+				'\n'
+				' [%s]\n'
+				'\n'
+			) % cmd,
+			_('Editing visual progress note')
+		)
+		return None
+
+	try:
+		open(filename, 'r').close()
+	except Exception:
+		_log.exception('problem accessing visual progress note file [%s]', filename)
+		gmGuiHelpers.gm_show_error (
+			_(
+				'There was a problem reading the visual\n'
+				'progress note from the file:\n'
+				'\n'
+				' [%s]\n'
+				'\n'
+			) % filename,
+			_('Saving visual progress note')
+		)
+		return None
+
+	if discard_unmodified:
+		modified_stat = os.stat(filename)
+		# same size ?
+		if original_stat.st_size == modified_stat.st_size:
+			modified_md5 = gmTools.file2md5(filename)
+			# same hash ?
+			if original_md5 == modified_md5:
+				_log.debug('visual progress note (template) not modified')
+				# ask user to decide
+				msg = _(
+					u'You either created a visual progress note from a template\n'
+					u'in the database (rather than from a file on disk) or you\n'
+					u'edited an existing visual progress note.\n'
+					u'\n'
+					u'The template/original was not modified at all, however.\n'
+					u'\n'
+					u'Do you still want to save the unmodified image as a\n'
+					u'visual progress note into the EMR of the patient ?\n'
+				)
+				save_unmodified = gmGuiHelpers.gm_show_question (
+					msg,
+					_('Saving visual progress note')
+				)
+				if not save_unmodified:
+					_log.debug('user discarded unmodified note')
+					return
+
+	if doc_part is not None:
+		_log.debug('updating visual progress note')
+		doc_part.update_data_from_file(fname = filename)
+		doc_part.set_reviewed(technically_abnormal = False, clinically_relevant = True)
+		return None
+
+	if not isinstance(episode, gmEMRStructItems.cEpisode):
+		if episode is None:
+			episode = _('visual progress notes')
+		pat = gmPerson.gmCurrentPatient()
+		emr = pat.get_emr()
+		episode = emr.add_episode(episode_name = episode.strip(), pk_health_issue = health_issue, is_open = False)
+
+	doc = gmDocumentWidgets.save_file_as_new_document (
+		filename = filename,
+		document_type = gmDocuments.DOCUMENT_TYPE_VISUAL_PROGRESS_NOTE,
+		episode = episode,
+		unlock_patient = False,
+		pk_org_unit = gmPraxis.gmCurrentPraxisBranch()['pk_org_unit']
+	)
+	doc.set_reviewed(technically_abnormal = False, clinically_relevant = True)
+
+	return doc
+
+#============================================================
+class cVisualSoapTemplatePhraseWheel(gmPhraseWheel.cPhraseWheel):
+	"""Phrasewheel to allow selection of visual SOAP template."""
+
+	def __init__(self, *args, **kwargs):
+
+		gmPhraseWheel.cPhraseWheel.__init__ (self, *args, **kwargs)
+
+		query = u"""
+SELECT
+	pk AS data,
+	name_short AS list_label,
+	name_sort AS field_label
+FROM
+	ref.paperwork_templates
+WHERE
+	fk_template_type = (SELECT pk FROM ref.form_types WHERE name = '%s') AND (
+		name_long %%(fragment_condition)s
+			OR
+		name_short %%(fragment_condition)s
+	)
+ORDER BY list_label
+LIMIT 15
+"""	% gmDocuments.DOCUMENT_TYPE_VISUAL_PROGRESS_NOTE
+
+		mp = gmMatchProvider.cMatchProvider_SQL2(queries = [query])
+		mp.setThresholds(2, 3, 5)
+
+		self.matcher = mp
+		self.selection_only = True
+	#--------------------------------------------------------
+	def _data2instance(self):
+		if self.GetData() is None:
+			return None
+
+		return gmForms.cFormTemplate(aPK_obj = self.GetData())
+
+#============================================================
+from Gnumed.wxGladeWidgets import wxgVisualSoapPresenterPnl
+
+class cVisualSoapPresenterPnl(wxgVisualSoapPresenterPnl.wxgVisualSoapPresenterPnl):
+	"""A panel displaying a number of images (visual progress note thumbnails)."""
+
+	def __init__(self, *args, **kwargs):
+		wxgVisualSoapPresenterPnl.wxgVisualSoapPresenterPnl.__init__(self, *args, **kwargs)
+		self._SZR_soap = self.GetSizer()
+		self.__bitmaps = []
+	#--------------------------------------------------------
+	# external API
+	#--------------------------------------------------------
+	def refresh(self, document_folder=None, episodes=None, encounter=None):
+
+		self.clear()
+		if document_folder is None:
+			self.GetParent().Layout()
+			return
+
+		soap_docs = document_folder.get_visual_progress_notes(episodes = episodes, encounter = encounter)
+		if len(soap_docs) == 0:
+			self.GetParent().Layout()
+			return
+
+		for soap_doc in soap_docs:
+			parts = soap_doc.parts
+			if len(parts) == 0:
+				continue
+			parts_str = u''
+			if len(parts) > 1:
+				parts_str = _(' [part 1 of %s]') % len(parts)
+			part = parts[0]
+			fname = part.export_to_file()
+			if fname is None:
+				continue
+
+			# create bitmap
+			img = gmGuiHelpers.file2scaled_image (
+				filename = fname,
+				height = 30
+			)
+			bmp = wx_genstatbmp.GenStaticBitmap(self, -1, img, style = wx.NO_BORDER)
+
+			# create tooltip
+			img = gmGuiHelpers.file2scaled_image (
+				filename = fname,
+				height = 150
+			)
+			tip = agw_stt.SuperToolTip (
+				u'',
+				bodyImage = img,
+				header = _('Created: %s%s') % (gmDateTime.pydt_strftime(part['date_generated'], '%Y %b %d'), parts_str),
+				footer = gmTools.coalesce(part['doc_comment'], u'').strip()
+			)
+			tip.SetTopGradientColor('white')
+			tip.SetMiddleGradientColor('white')
+			tip.SetBottomGradientColor('white')
+			tip.SetTarget(bmp)
+
+			bmp.doc_part = part
+			bmp.Bind(wx.EVT_LEFT_UP, self._on_bitmap_leftclicked)
+			# FIXME: add context menu for Delete/Clone/Add/Configure
+			self._SZR_soap.Add(bmp, 0, wx.LEFT | wx.RIGHT | wx.TOP | wx.BOTTOM | wx.EXPAND, 3)
+			self.__bitmaps.append(bmp)
+
+		self.GetParent().Layout()
+	#--------------------------------------------------------
+	def clear(self):
+		while len(self._SZR_soap.GetChildren()) > 0:
+			self._SZR_soap.Detach(0)
+#		for child_idx in range(len(self._SZR_soap.GetChildren())):
+#			self._SZR_soap.Detach(child_idx)
+		for bmp in self.__bitmaps:
+			bmp.Destroy()
+		self.__bitmaps = []
+	#--------------------------------------------------------
+	def _on_bitmap_leftclicked(self, evt):
+		wx.CallAfter (
+			edit_visual_progress_note,
+			doc_part = evt.GetEventObject().doc_part,
+			discard_unmodified = True
+		)
+
+#============================================================
+# main
+#------------------------------------------------------------
+if __name__ == '__main__':
+
+	if len(sys.argv) < 2:
+		sys.exit()
+
+	if sys.argv[1] != 'test':
+		sys.exit()
+
+	gmI18N.activate_locale()
+	gmI18N.install_domain(domain = 'gnumed')
+
+	#----------------------------------------
diff --git a/client/wxpython/gmWaitingListWidgets.py b/client/wxpython/gmWaitingListWidgets.py
index 8e7fb2d..451a16a 100644
--- a/client/wxpython/gmWaitingListWidgets.py
+++ b/client/wxpython/gmWaitingListWidgets.py
@@ -118,7 +118,7 @@ class cWaitingListEntryEditAreaPnl(wxgWaitingListEntryEditAreaPnl.wxgWaitingList
 		self._SPCTRL_urgency.SetValue(0)
 	#--------------------------------------------------------
 	def _refresh_from_existing(self):
-		self._PRW_patient.person = gmPerson.cIdentity(aPK_obj = self.data['pk_identity'])
+		self._PRW_patient.person = gmPerson.cPerson(aPK_obj = self.data['pk_identity'])
 		self._PRW_patient.Enable(False)
 		self._PRW_patient._display_name()
 
@@ -359,7 +359,7 @@ class cWaitingListPnl(wxgWaitingListPnl.wxgWaitingListPnl, gmRegetMixin.cRegetOn
 		if item is None:
 			return
 		try:
-			pat = gmPerson.cIdentity(aPK_obj = item['pk_identity'])
+			pat = gmPerson.cPerson(aPK_obj = item['pk_identity'])
 		except gmExceptions.ConstructorError:
 			gmGuiHelpers.gm_show_info (
 				aTitle = _('Waiting list'),
@@ -379,7 +379,7 @@ class cWaitingListPnl(wxgWaitingListPnl.wxgWaitingListPnl, gmRegetMixin.cRegetOn
 		if item is None:
 			return
 		try:
-			pat = gmPerson.cIdentity(aPK_obj = item['pk_identity'])
+			pat = gmPerson.cPerson(aPK_obj = item['pk_identity'])
 		except gmExceptions.ConstructorError:
 			gmGuiHelpers.gm_show_info (
 				aTitle = _('Waiting list'),
@@ -397,7 +397,7 @@ class cWaitingListPnl(wxgWaitingListPnl.wxgWaitingListPnl, gmRegetMixin.cRegetOn
 		if item is None:
 			return
 		try:
-			pat = gmPerson.cIdentity(aPK_obj = item['pk_identity'])
+			pat = gmPerson.cPerson(aPK_obj = item['pk_identity'])
 		except gmExceptions.ConstructorError:
 			gmGuiHelpers.gm_show_info (
 				aTitle = _('Waiting list'),
diff --git a/client/wxpython/gui/gmCardiacDevicePlugin.py b/client/wxpython/gui/gmCardiacDevicePlugin.py
index 8f6c967..3785a9b 100644
--- a/client/wxpython/gui/gmCardiacDevicePlugin.py
+++ b/client/wxpython/gui/gmCardiacDevicePlugin.py
@@ -85,7 +85,7 @@ if __name__ == '__main__':
 				patient.cleanup()
 			except:
 				print "error cleaning up patient"
-	except StandardError:
+	except Exception:
 		_log.exception("unhandled exception caught !")
 		# but re-raise them
 		raise
diff --git a/client/wxpython/gui/gmEMRBrowserPlugin.py b/client/wxpython/gui/gmEMRBrowserPlugin.py
index 9085268..47fd8cb 100644
--- a/client/wxpython/gui/gmEMRBrowserPlugin.py
+++ b/client/wxpython/gui/gmEMRBrowserPlugin.py
@@ -26,7 +26,7 @@ _log.info(__version__)
 class gmEMRBrowserPlugin(gmPlugin.cNotebookPlugin):
 	"""Plugin to encapsulate patient EMR browser window."""
 
-	tab_name = _('EMR tree')
+	tab_name = _('EMR Tree')
 	required_minimum_role = 'full clinical access'
 
 	@gmAccessPermissionWidgets.verify_minimum_required_role (
@@ -46,7 +46,7 @@ class gmEMRBrowserPlugin(gmPlugin.cNotebookPlugin):
 		return self._widget
 	#-------------------------------------------------
 	def MenuInfo(self):
-		return ('emr', _('EMR &Tree (topical)'))
+		return ('emr', _('EMR &Tree'))
 	#-------------------------------------------------
 	def can_receive_focus(self):
 		# need patient
@@ -89,7 +89,7 @@ if __name__ == "__main__":
                 patient.cleanup()
             except:
                 print "error cleaning up patient"
-    except StandardError:
+    except Exception:
         _log.exception("unhandled exception caught !")
         # but re-raise them
         raise
diff --git a/client/wxpython/gui/gmEMRJournalPlugin.py b/client/wxpython/gui/gmEMRJournalPlugin.py
index 4f574c7..e41e49c 100644
--- a/client/wxpython/gui/gmEMRJournalPlugin.py
+++ b/client/wxpython/gui/gmEMRJournalPlugin.py
@@ -19,7 +19,7 @@ _log = logging.getLogger('gm.ui')
 class gmEMRJournalPlugin(gmPlugin.cNotebookPlugin):
 	"""Plugin to encapsulate patient EMR Journal window."""
 
-	tab_name = _('EMR journal')
+	tab_name = _('EMR Journal')
 	required_minimum_role = 'full clinical access'
 
 	def name (self):
@@ -39,7 +39,7 @@ class gmEMRJournalPlugin(gmPlugin.cNotebookPlugin):
 		return self._widget
 
 	def MenuInfo (self):
-		return ('emr', _('EMR &Journal (chronological)'))
+		return ('emr', _('EMR &Journal (text)'))
 
 	def can_receive_focus(self):
 		# need patient
@@ -83,7 +83,7 @@ if __name__ == "__main__":
                 patient.cleanup()
             except:
                 print "error cleaning up patient"
-    except StandardError:
+    except Exception:
         _log.exception("unhandled exception caught !")
         # but re-raise them
         raise
diff --git a/client/wxpython/gui/gmEMRJournalPlugin.py b/client/wxpython/gui/gmEMRListJournalPlugin.py
similarity index 77%
copy from client/wxpython/gui/gmEMRJournalPlugin.py
copy to client/wxpython/gui/gmEMRListJournalPlugin.py
index 4f574c7..a3ab6e2 100644
--- a/client/wxpython/gui/gmEMRJournalPlugin.py
+++ b/client/wxpython/gui/gmEMRListJournalPlugin.py
@@ -1,6 +1,6 @@
 # -*- coding: utf-8 -*-
 #======================================================================
-# GNUmed patient EMR Journal plugin
+# GNUmed patient EMR Journal plugin (list based)
 #======================================================================
 __author__ = "Karsten Hilbert"
 __license__ = 'GPL v2 or later (details at http://www.gnu.org)'
@@ -16,15 +16,17 @@ from Gnumed.wxpython import gmAccessPermissionWidgets
 _log = logging.getLogger('gm.ui')
 
 #======================================================================
-class gmEMRJournalPlugin(gmPlugin.cNotebookPlugin):
-	"""Plugin to encapsulate patient EMR Journal window."""
+class gmEMRListJournalPlugin(gmPlugin.cNotebookPlugin):
+	"""Plugin to encapsulate patient EMR list based Journal window."""
 
-	tab_name = _('EMR journal')
+	tab_name = _('EMR Journal')
 	required_minimum_role = 'full clinical access'
 
+	#-------------------------------------------------
 	def name (self):
-		return gmEMRJournalPlugin.tab_name
+		return gmEMRListJournalPlugin.tab_name
 
+	#-------------------------------------------------
 	@gmAccessPermissionWidgets.verify_minimum_required_role (
 		required_minimum_role,
 		activity = _('loading plugin <%s>') % tab_name,
@@ -33,14 +35,17 @@ class gmEMRJournalPlugin(gmPlugin.cNotebookPlugin):
 	)
 	def register(self):
 		gmPlugin.cNotebookPlugin.register(self)
+
 	#-------------------------------------------------
 	def GetWidget (self, parent):
-		self._widget = gmEMRBrowser.cEMRJournalPluginPnl(parent, -1)
+		self._widget = gmEMRBrowser.cEMRListJournalPluginPnl(parent, -1)
 		return self._widget
 
+	#-------------------------------------------------
 	def MenuInfo (self):
-		return ('emr', _('EMR &Journal (chronological)'))
+		return ('emr', _('EMR &Journal (list)'))
 
+	#-------------------------------------------------
 	def can_receive_focus(self):
 		# need patient
 		if not self._verify_patient_avail():
@@ -71,7 +76,7 @@ if __name__ == "__main__":
 
         # display standalone browser
         application = wx.wxPyWidgetTester(size=(800,600))
-        emr_journal = gmEMRBrowser.cEMRJournalPluginPnl(application.frame, -1)
+        emr_journal = gmEMRBrowser.cEMRListJournalPluginPnl(application.frame, -1)
         emr_journal.refresh_journal()
 
         application.frame.Show(True)
@@ -83,7 +88,7 @@ if __name__ == "__main__":
                 patient.cleanup()
             except:
                 print "error cleaning up patient"
-    except StandardError:
+    except Exception:
         _log.exception("unhandled exception caught !")
         # but re-raise them
         raise
diff --git a/client/wxpython/gui/gmEMRTimelinePlugin.py b/client/wxpython/gui/gmEMRTimelinePlugin.py
index f4b4ed1..c780a94 100644
--- a/client/wxpython/gui/gmEMRTimelinePlugin.py
+++ b/client/wxpython/gui/gmEMRTimelinePlugin.py
@@ -18,6 +18,7 @@ from Gnumed.wxpython import gmAccessPermissionWidgets
 _log = logging.getLogger('gm.ui')
 #================================================================
 class gmEMRTimelinePlugin(gmPlugin.cNotebookPlugin):
+
 	tab_name = _("EMR Timeline")
 	required_minimum_role = 'full clinical access'
 
@@ -38,7 +39,7 @@ class gmEMRTimelinePlugin(gmPlugin.cNotebookPlugin):
 		return self._widget
 	#--------------------------------------------------------
 	def MenuInfo (self):
-		return ('emr', _('Show &Timeline'))
+		return ('emr', _('EMR &Timeline'))
 	#--------------------------------------------------------
 	def can_receive_focus(self):
 		if not self._verify_patient_avail():
@@ -93,7 +94,7 @@ if __name__ == '__main__':
 				patient.cleanup()
 			except:
 				print "error cleaning up patient"
-	except StandardError:
+	except Exception:
 		_log.exception("unhandled exception caught !")
 		# but re-raise them
 		raise
diff --git a/client/wxpython/gui/gmExamplePlugin.py b/client/wxpython/gui/gmExamplePlugin.py
index acf1ecc..a46432e 100644
--- a/client/wxpython/gui/gmExamplePlugin.py
+++ b/client/wxpython/gui/gmExamplePlugin.py
@@ -133,7 +133,7 @@ if __name__ == '__main__':
 				patient.cleanup()
 			except:
 				print "error cleaning up patient"
-	except StandardError:
+	except Exception:
 		_log.exception("unhandled exception caught !")
 		# but re-raise them
 		raise
diff --git a/client/wxpython/gui/gmExportAreaPlugin.py b/client/wxpython/gui/gmExportAreaPlugin.py
index c95919c..c5fc03d 100644
--- a/client/wxpython/gui/gmExportAreaPlugin.py
+++ b/client/wxpython/gui/gmExportAreaPlugin.py
@@ -93,7 +93,7 @@ if __name__ == '__main__':
 				patient.cleanup()
 			except:
 				print "error cleaning up patient"
-	except StandardError:
+	except Exception:
 		_log.exception("unhandled exception caught !")
 		# but re-raise them
 		raise
diff --git a/client/wxpython/gui/gmMeasurementsPlugin.py b/client/wxpython/gui/gmMeasurementsPlugin.py
new file mode 100644
index 0000000..0abf0df
--- /dev/null
+++ b/client/wxpython/gui/gmMeasurementsPlugin.py
@@ -0,0 +1,61 @@
+# -*- coding: utf-8 -*-
+#======================================================================
+# GNUmed patient measurements plugin
+#
+# @copyright: author
+#======================================================================
+__author__ = "Karsten Hilbert"
+__license__ = 'GPL v2 or later (details at http://www.gnu.org)'
+
+import logging
+
+
+from Gnumed.wxpython import gmPlugin
+from Gnumed.wxpython import gmMeasurementWidgets
+from Gnumed.pycommon import gmI18N
+from Gnumed.wxpython import gmAccessPermissionWidgets
+
+
+_log = logging.getLogger('gm.ui')
+
+#======================================================================
+class gmMeasurementsPlugin(gmPlugin.cNotebookPlugin):
+	"""Plugin to encapsulate patient measurements."""
+
+	tab_name = _('Measurements')
+	required_minimum_role = 'full clinical access'
+
+	#-------------------------------------------------
+	@gmAccessPermissionWidgets.verify_minimum_required_role (
+		required_minimum_role,
+		activity = _('loading plugin <%s>') % tab_name,
+		return_value_on_failure = False,
+		fail_silently = False
+	)
+	def register(self):
+		gmPlugin.cNotebookPlugin.register(self)
+
+	#-------------------------------------------------
+	def name (self):
+		return gmMeasurementsPlugin.tab_name
+
+	#-------------------------------------------------
+	def GetWidget (self, parent):
+		self._widget = gmMeasurementWidgets.cMeasurementsNb(parent, -1)
+		return self._widget
+
+	#-------------------------------------------------
+	def MenuInfo (self):
+		return ('emr', _('&Measurements'))
+
+	#-------------------------------------------------
+	def can_receive_focus(self):
+		if not self._verify_patient_avail():
+			return None
+		return 1
+
+#======================================================================
+# main
+#----------------------------------------------------------------------
+if __name__ == "__main__":
+	print "no test code"
diff --git a/client/wxpython/gui/gmNotebookedPatientEditionPlugin.py b/client/wxpython/gui/gmNotebookedPatientEditionPlugin.py
index 34d2638..75fd818 100644
--- a/client/wxpython/gui/gmNotebookedPatientEditionPlugin.py
+++ b/client/wxpython/gui/gmNotebookedPatientEditionPlugin.py
@@ -96,7 +96,7 @@ if __name__ == "__main__":
 				patient.cleanup()
 			except:
 				print "error cleaning up patient"
-	except StandardError:
+	except Exception:
 		_log.exception("unhandled exception caught !")
 		# but re-raise them
 		raise
diff --git a/client/wxpython/gui/gmNotebookedProgressNoteInputPlugin.py b/client/wxpython/gui/gmNotebookedProgressNoteInputPlugin.py
index 352d8d6..9e7c524 100644
--- a/client/wxpython/gui/gmNotebookedProgressNoteInputPlugin.py
+++ b/client/wxpython/gui/gmNotebookedProgressNoteInputPlugin.py
@@ -98,7 +98,7 @@ if __name__ == "__main__":
 				patient.cleanup()
 			except:
 				print "error cleaning up patient"
-	except StandardError:
+	except Exception:
 		_log.exception("unhandled exception caught !")
 		# but re-raise them
 		raise
diff --git a/client/wxpython/gui/gmPACSPlugin.py b/client/wxpython/gui/gmPACSPlugin.py
new file mode 100644
index 0000000..297c18d
--- /dev/null
+++ b/client/wxpython/gui/gmPACSPlugin.py
@@ -0,0 +1,54 @@
+# -*- coding: utf-8 -*-
+#======================================================================
+# GNUmed PACS plugin
+#
+# @copyright: author
+#======================================================================
+__author__ = "Karsten Hilbert"
+__license__ = 'GPL v2 or later (details at http://www.gnu.org)'
+
+import logging
+
+
+from Gnumed.wxpython import gmPlugin
+from Gnumed.wxpython.gmDocumentWidgets import cPACSPluginPnl
+from Gnumed.wxpython import gmAccessPermissionWidgets
+
+
+_log = logging.getLogger('gm.ui')
+#======================================================================
+class gmPACSPlugin(gmPlugin.cNotebookPlugin):
+	"""Plugin to browse an Orthanc PACS."""
+
+	tab_name = _('PACS')
+	required_minimum_role = 'full clinical access'
+
+	@gmAccessPermissionWidgets.verify_minimum_required_role (
+		required_minimum_role,
+		activity = _('loading plugin <%s>') % tab_name,
+		return_value_on_failure = False,
+		fail_silently = False
+	)
+	def register(self):
+		gmPlugin.cNotebookPlugin.register(self)
+
+	def name (self):
+		return gmPACSPlugin.tab_name
+
+	def GetWidget (self, parent):
+		self._widget = cPACSPluginPnl(parent, -1)
+		return self._widget
+
+	def MenuInfo (self):
+		return ('tools', _('&PACS'))
+
+	def can_receive_focus(self):
+		if not self._verify_patient_avail():
+			return None
+		return 1
+
+#======================================================================
+# main
+#----------------------------------------------------------------------
+if __name__ == "__main__":
+	print "no test code"
diff --git a/client/wxpython/gui/gmPatientOverviewPlugin.py b/client/wxpython/gui/gmPatientOverviewPlugin.py
index 9837834..59ab03b 100644
--- a/client/wxpython/gui/gmPatientOverviewPlugin.py
+++ b/client/wxpython/gui/gmPatientOverviewPlugin.py
@@ -91,7 +91,7 @@ if __name__ == "__main__":
 				patient.cleanup()
 			except:
 				print "error cleaning up patient"
-	except StandardError:
+	except Exception:
 		_log.exception("unhandled exception caught !")
 		# but re-raise them
 		raise
diff --git a/client/wxpython/gui/gmPrintManagerPlugin.py b/client/wxpython/gui/gmPrintManagerPlugin.py
index c9ec75c..11ad434 100644
--- a/client/wxpython/gui/gmPrintManagerPlugin.py
+++ b/client/wxpython/gui/gmPrintManagerPlugin.py
@@ -82,7 +82,7 @@ if __name__ == '__main__':
 				patient.cleanup()
 			except:
 				print "error cleaning up patient"
-	except StandardError:
+	except Exception:
 		_log.exception("unhandled exception caught !")
 		# but re-raise them
 		raise
diff --git a/client/wxpython/gui/gmSimpleSoapPlugin.py b/client/wxpython/gui/gmSimpleSoapPlugin.py
index aa4efa1..98fde15 100644
--- a/client/wxpython/gui/gmSimpleSoapPlugin.py
+++ b/client/wxpython/gui/gmSimpleSoapPlugin.py
@@ -85,7 +85,7 @@ if __name__ == "__main__":
 				patient.cleanup()
 			except:
 				print "error cleaning up patient"
-	except StandardError:
+	except Exception:
 		_log.exception("unhandled exception caught !")
 		# but re-raise them
 		raise
diff --git a/client/wxpython/gui/gmSoapPlugin.py b/client/wxpython/gui/gmSoapPlugin.py
index 4c63124..53472f2 100644
--- a/client/wxpython/gui/gmSoapPlugin.py
+++ b/client/wxpython/gui/gmSoapPlugin.py
@@ -100,7 +100,7 @@ if __name__ == "__main__":
 				patient.cleanup()
 			except:
 				print "error cleaning up patient"
-	except StandardError:
+	except Exception:
 		_log.exception("unhandled exception caught !")
 		# but re-raise them
 		raise
diff --git a/client/wxpython/gui/gmXdtViewer.py b/client/wxpython/gui/gmXdtViewer.py
index a05f688..44ae38c 100644
--- a/client/wxpython/gui/gmXdtViewer.py
+++ b/client/wxpython/gui/gmXdtViewer.py
@@ -13,7 +13,7 @@ TODO:
 #=============================================================================
 __author__ = "S.Hilbert, K.Hilbert"
 
-import sys, os, os.path, codecs, logging
+import sys, os, os.path, io, logging
 
 
 import wx
@@ -98,7 +98,7 @@ class cXdtListPnl(wxgXdtListPnl.wxgXdtListPnl):
 			_log.warning('xDT file [%s] does not define an encoding, assuming [%s]' % (filename, encoding))
 
 		try:
-			xdt_file = codecs.open(filename=filename, mode='rU', encoding=encoding, errors='replace')
+			xdt_file = io.open(filename, mode = 'rt', encoding = encoding, errors = 'replace')
 		except IOError:
 			gmGuiHelpers.gm_show_error (
 				_('Cannot access xDT file\n\n'
@@ -430,7 +430,7 @@ if __name__ == '__main__':
 	try:
 		app = TestApp ()
 		app.MainLoop ()
-	except StandardError:
+	except Exception:
 		_log.exception('Unhandled exception.')
 		raise
 
diff --git a/external-tools/check-prerequisites.py b/external-tools/check-prerequisites.py
index 8267421..09364f6 100644
--- a/external-tools/check-prerequisites.py
+++ b/external-tools/check-prerequisites.py
@@ -222,6 +222,17 @@ except ImportError:
 	print "  INFO : this is used to handle vCard data"
 	print "  INFO : GNUmed will still work without it"
 
+print " unidecode...",
+try:
+	import unidecode
+	print "found"
+except ImportError:
+	missing = True
+	print ""
+	print "  ERROR: unidecode not installed"
+	print "  INFO : this is used to transliterate names"
+	print "  INFO : GNUmed will still work without it"
+
 if missing:
 	print ""
 	print "sys.path is currently set as follows:"
diff --git a/external-tools/check-prerequisites.sh b/external-tools/check-prerequisites.sh
index cde2526..ce803d7 100755
--- a/external-tools/check-prerequisites.sh
+++ b/external-tools/check-prerequisites.sh
@@ -86,17 +86,6 @@ else
 fi
 
 
-echo -n " 'Ginkgo CADx' DICOM viewer... "
-BIN=`which ginkgocadx`
-if [ "x${BIN}x" == "xx" ]; then
-	echo ""
-	echo "  INFO : You don't seem to have the 'ginkgocadx' command installed."
-	echo "  INFO : This is the recommended DICOM viewer."
-else
-	echo "found"
-fi
-
-
 echo -n " 'Aeskulap' DICOM viewer... "
 BIN=`which aeskulap`
 if [ "x${BIN}x" == "xx" ]; then
@@ -167,26 +156,6 @@ else
 	echo "found"
 fi
 
-echo -n " 'gm-print_doc' command... "
-BIN=`which gm-print_doc`
-if [ "x${BIN}x" == "xx" ]; then
-	echo ""
-	echo "  INFO : You don't seem to have the 'gm-print_doc' command installed."
-	echo "  INFO : It is used to print files from GNUmed."
-else
-	echo "found"
-fi
-
-echo -n " 'gm-convert_file' command... "
-BIN=`which gm-convert_file`
-if [ "x${BIN}x" == "xx" ]; then
-	echo ""
-	echo "  INFO : You don't seem to have the 'gm-convert_file' command installed."
-	echo "  INFO : It is used to convert files between formats from within GNUmed."
-else
-	echo "found"
-fi
-
 echo -n " 'pdflatex' command... "
 BIN=`which pdflatex`
 if [ "x${BIN}x" == "xx" ]; then
@@ -252,4 +221,105 @@ else
 	echo "found"
 fi
 
+echo -n " 'gm-print_doc' command... "
+BIN=`which gm-print_doc`
+if [ "x${BIN}x" == "xx" ]; then
+	echo ""
+	echo "  INFO : You don't seem to have the 'gm-print_doc' command installed."
+	echo "  INFO : It is used to print files from GNUmed."
+else
+	echo "found"
+fi
+
+echo -n " 'gm-fax_doc' command... "
+BIN=`which gm-fax_doc`
+if [ "x${BIN}x" == "xx" ]; then
+	echo ""
+	echo "  INFO : You don't seem to have the 'gm-fax_doc' command installed."
+	echo "  INFO : It is used to fax files from GNUmed."
+else
+	echo "found"
+fi
+
+echo -n " 'gm-mail_doc' command... "
+BIN=`which gm-mail_doc`
+if [ "x${BIN}x" == "xx" ]; then
+	echo ""
+	echo "  INFO : You don't seem to have the 'gm-mail_doc' command installed."
+	echo "  INFO : It is used to e-mail files from GNUmed."
+else
+	echo "found"
+fi
+
+echo -n " 'gm-burn_doc' command... "
+BIN=`which gm-burn_doc`
+if [ "x${BIN}x" == "xx" ]; then
+	echo ""
+	echo "  INFO : You don't seem to have the 'gm-burn_doc' command installed."
+	echo "  INFO : It is used to burn to disk an ISO image of files from GNUmed."
+else
+	echo "found"
+fi
+
+echo -n " 'gm-convert_file' command... "
+BIN=`which gm-convert_file`
+if [ "x${BIN}x" == "xx" ]; then
+	echo ""
+	echo "  INFO : You don't seem to have the 'gm-convert_file' command installed."
+	echo "  INFO : It is used to convert files between formats from within GNUmed."
+else
+	echo "found"
+fi
+
+echo -n " 'gm-create_datamatrix' command... "
+BIN=`which gm-create_datamatrix`
+if [ "x${BIN}x" == "xx" ]; then
+	echo ""
+	echo "  INFO : You don't seem to have the 'gm-create_datamatrix' command installed."
+	echo "  INFO : It is used to create data matrix barcodes from within GNUmed."
+else
+	echo "found"
+fi
+
+echo -n " 'gm-create_dicomdir' command... "
+BIN=`which gm-create_dicomdir`
+if [ "x${BIN}x" == "xx" ]; then
+	echo ""
+	echo "  INFO : You don't seem to have the 'gm-create_dicomdir' command installed."
+	echo "  INFO : It is used to create DICOMDIR files from within GNUmed."
+else
+	echo "found"
+fi
+
+echo -n " 'gm-describe_file' command... "
+BIN=`which gm-describe_file`
+if [ "x${BIN}x" == "xx" ]; then
+	echo ""
+	echo "  INFO : You don't seem to have a 'gm-describe_file' command installed."
+	echo "  INFO : It is used to extract metadata from files for display within GNUmed."
+else
+	echo "found"
+fi
+
+# obsolete
+#echo -n " 'gm-download_data' command... "
+#BIN=`which gm-download_data`
+#if [ "x${BIN}x" == "xx" ]; then
+#	echo ""
+#	echo "  INFO : You don't seem to have the 'gm-download_data' command installed."
+#	echo "  INFO : It is used to download data files from within GNUmed."
+#else
+#	echo "found"
+#fi
+#
+#echo -n " 'Ginkgo CADx' DICOM viewer... "
+#BIN=`which ginkgocadx`
+#if [ "x${BIN}x" == "xx" ]; then
+#	echo ""
+#	echo "  INFO : You don't seem to have the 'ginkgocadx' command installed."
+#	echo "  INFO : This is the recommended DICOM viewer."
+#else
+#	echo "found"
+#fi
+
 #=================================================================

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-med/gnumed-client.git



More information about the debian-med-commit mailing list